Устройства микропрограммного управления

Принципиально иной подход, позволяющий преодолеть сложность УУ с жесткой логикой, был предложен британским ученым М. Уилксом в начале 50-х годов. В основе идеи лежит тот факт, что для инициирования любой микрооперации достаточно сформировать соответствующий сигнал управления (СУ) на соответствующей линии управления, то есть перевести такую линию в активное состояние. Это может быть представлено с помощью двоичных цифр 1 (активное состояние — есть СУ) и 0 (пассивное состояние — нет СУ). Для указания микроопераций, выполняемых в данном такте, можно сформировать управляющее слово, в котором каждый бит соответствует одной управляющей линии. Такое управляющее слово называют микрокомандой (МК). Таким образом, микрокоманда может быть представлена управляющим словом со своей комбинацией нулей и единиц. Последовательность микрокоманд, реализующих определенный этап машинного цикла, образует микропрограмму. В терминологии на английском языке микропрограмму часто называют firmware, подчеркивая тот факт, что это нечто среднее между аппаратурой (hardware) и программным обеспечением (software). Микропрограммы для каждой команды ВМ и для каждого этапа цикла команды размещаются в специальном ЗУ, называемом памятью микропрограмм (ПМК). Процесс формирования СУ можно реализовать, последовательно (с каждым тактовым импульсом) извлекая микрокоманды микропрограммы из памяти и интерпретируя содержащуюся в них информацию о сигналах управления. Идея заинтересовала многих конструкторов ВМ, но была нереализуема, поскольку требовала использования быстрой памяти относительно большой емкости. Вновь вернулись к ней в 1964 году, в ходе создания системы IBM 360. С тех пор устройства управления с программируемой логикой стали чрезвычайно популярными и были встроены во многие ВМ.

Отличительной особенностью микропрограммного автомата с программируемой логикой является хранение микрокоманд в виде кодов в специализированном запоминающем устройстве — памяти микропрограмм. Каждой команде ВМ в этом ЗУ в явной форме соответствует микропрограмма, поэтому часто устройства управления, в состав которых входит микропрограммный автомат с программируемой логикой, называют микропрограммными.

Типичная структура микропрограммного автомата представлена на рис. 1. В составе узла присутствуют: память микропрограмм (ПМП), регистр адреса микрокоманды (РАМ), регистр микрокоманды (РМК), дешифратор микрокоманд (ДшМК), преобразователь кода операции, формирователь адреса следующей микрокоманды (ФАСМ), формирователь синхроимпульсов (ФСИ).

Устройства микропрограммного управления

Рис. 1. Микропрограммный автомат с программируемой логикой.

Запуск микропрограммы выполнения операции осуществляется путем передачи кода операции из РК на вход преобразователя, в котором код операции преобразуется в начальный (первый) адрес микропрограммы Ан. Этот адрес поступает через ФАСМ в регистр адреса микрокоманды. Выбранная по адресу Ан из ПМП микрокоманда заносится в РМК. Каждая микрокоманда в общем случае содержит микрооперационную (МО) и адресную (А) части. Микрооперационная часть микрокоманды поступает на дешифратор микрокоманды, на выходе которого образуются управляющие сигналы Сi , инициирующие выполнение микроопераций в исполнительных устройствах и узлах ВМ. Адресная часть микрокоманды подается в ФАСМ, где формируется адрес следующей микрокоманды Амк . Этот адрес может зависеть от адреса на выходе преобразователя кода операции Ан, адресной части текущей микрокоманды А и значений осведомительных сигналов (флагов), поступающих от исполнительных устройств. Сформированный адрес микрокоманды снова записывается в РАМ, и процесс повторяется до окончания микропрограммы.

Разрядность адресной (RA) и микрооперационной (RMO) частей микрокоманды определяются из соотношений

RA = int( log2 NMK )

RMO = int( log2 NСУ )

где NMK — общее количество микрокоманд; NСУ — общее количество формируемых сигналов управления.

В свою очередь, необходимая емкость памяти микропрограмм равна

ЕПМП = NMK (RA + RМО )

Информация о том, какие сигналы управления должны быть сформированы в процессе выполнения текущей МК, в закодированном виде содержится в микрооперационной части (МО) микрокоманды. Способ кодирования микроопераций во многом определяет сложность аппаратных средств устройства управления и его скоростные характеристики. Применяемые в микрокомандах варианты кодирования сигналов управления можно свести к трем группам: минимальное кодирование (горизонтальное микропрограммирование), максимальное кодирование (вертикальное микропрограммирование) и групповое кодирование (смешанное микропрограммирование). Структуры микропрограммных автоматов при различных способах кодирования микроопераций показаны на рис. 2.

При горизонтальном микропрограммировании (см. рис. 2, а) под каждый сигнал управления в микрооперационной части микрокоманды выделен один разряд (RMO = NСУ ). Это позволяет в рамках одной микрокоманды формировать любые сочетания СУ, чем обеспечивается максимальный параллелизм выполнения микроопераций. Кроме того, отсутствует необходимость в декодировании МО и выходы регистра микрокоманды могут быть непосредственно подключены к соответствующим управляемым точкам ВМ. Широкому распространению горизонтального микропрограммирования тем не менее препятствуют большие затраты на хранение микрооперационных частей микрокоманд (ЕПМП = NMK ´ NСУ), причем эффективность использования ПМП получается низкой, так как при большом числе микроопераций в каждой отдельной МК реализуется лишь одна или несколько из них, то есть подавляющая часть разрядов МО содержит нули.

Устройства микропрограммного управления

Рис. 2. Структуры МПА при различных способах кодирования микроопераций:

а — минимальном; б — максимальном; в — максимальном с шифратором;

г— горизонтально-вертикальном; д — вертикально-горизонтальном.

При максимальном (вертикальном) кодировании (см. рис. 2, б) каждой микрооперации присваивается определенный код, например, ее порядковый номер в полном списке возможных микроопераций. Этот код и заносится в МО. Микрооперационная часть МК имеет минимальную длину, определяемую как двоичный логарифм от числа управляющих сигналов (микроопераций). Такой способ кодирования требует минимальных аппаратных затрат в ПМП на хранение микрокоманд, однако возникает необходимость в дешифраторе ДшМК, который должен преобразовать код микрооперации в соответствующий сигнал управления. При большом количестве СУ дешифратор вносит значительную временную задержку, а главное — в каждой МК указывается лишь один сигнал управления, инициирующий только одну микрооперацию, за счет чего увеличиваются длина микропрограммы и время ее реализации.

Последний недостаток устраняется при подключении к выходам ДшМК шифратора (Ш) (см. рис. 2, в), что приводит к увеличению количества СУ, формируемых одновременно. Естественно, что помимо кодов отдельных микроопераций должны быть предусмотрены коды, представляющие и определенные комбинации микроопераций. Для повышения универсальности шифратор целесообразно строить на базе запоминающего устройства.

Минимальное и максимальное кодирование являются двумя крайними точками широкого спектра возможных решений задачи кодирования СУ. Промежуточное положение занимает групповое или смешанное кодирование.

Здесь все сигналы управления (микрооперации) разбиваются на К непересекающихся групп.Чаще всего применяется горизонтально-вертикальный метод (см. рис. 2, г) При этом в каждую группу включаются взаимно несовместимые сигналы управления (микрооперации), то есть СУ, которые никогда не встречаются вместе в одной микрокоманде. При этом сигналы, обычно формируемые в одном и том же такте, оказываются в разных группах.

Иногда используется двухуровневое кодирование микроопераций. На первом уровне с вертикальным кодированием выбирается микрокоманда, поле МО которой является адресом горизонтальной микрокоманды второго уровня — нанокоманды. Данный способ сочетания вертикального и горизонтального микропрограммирования часто называют нанопрограммированием. Метод предполагает двухуровневую систему кодирования микроопераций и, соответственно, двухуровневую организацию управляющей памяти (рис 3).

Устройства микропрограммного управления

Рис. 3. Нанопрограммное устройство управления

Верхний уровень управления образуют микропрограммы, хранящиеся в памяти микропрограмм. В микрокомандах используется вертикальное кодирование микроопераций. Каждой микрокоманде соответствует нанокоманда, хранящаяся в управляющей памяти нижнего уровня — памяти нанокоманд. Именно нанокоманды используются для непосредственного формирования сигналов управления. Микрокоманды вместо закодированного номера СУ содержат адресную ссылку на соответствующую нанокоманду.

Такой подход, сохраняя все достоинства горизонтального микропрограммирования, позволяет значительно сократить суммарную емкость управляющей памяти. Основным недостатком нанопрограммирования является невысокое быстродействие, поскольку для выполнения микрокоманды требуются два обращения к памяти, что, однако, частично компенсируется исключением из схемы дешифратора, свойственного вертикальному микропрограммированию.

Память микропрограмм может быть реализована запоминающими устройствами различных типов. В зависимости от типа применяемого ЗУ различают МПА со статическим и динамическим микропрограммированием. В первом случае в качестве ПМП используется постоянное ЗУ (ПЗУ) или программируемая логическая матрица (ПЛМ), во втором — оперативное ЗУ.

Динамическое микропрограммирование в отличие от статического позволяет оперативно модифицировать микропрограммы УУ, меняя тем самым функциональные свойства ВМ. Основное препятствие на пути широкого использования динамического микропрограммирования — энергозависимость и относительно невысокое быстродействие ОЗУ.

В УУ со статическим микропрограммированием более распространены ПЛМ. Программируемая логическая матрица является разновидностью ПЗУ, в котором программируются не только данные, но и адреса, благодаря чему на ПЛМ можно реализовал» как память микропрограмм, так и формирователь адреса следующей микрокоманды.

Устройства микропрограммного управления

Рис. 4. Организация управляющей памяти

На рис. 4 показано возможное размещение микрокоманд в памяти микропрограмм. Содержимое ПМП определяет последовательность микроопераций, которые должны выполняться на каждом этапе цикла команды, а также последовательность этапов. Каждый этап представлен соответствующей микропрограммой. Микропрограммы завершаются микрокомандой перехода, определяющей последующие действия. В управляющей памяти имеется также специальная микропрограмма-переключатель: в зависимости от текущего кода операции она указывает, этап исполнения какой команды должен быть выполнен.

Большей частью микрокоманды в микропрограмме выполняются последовательно, однако в общем случае очередность микроопераций не является фиксированной. По этой причине в УУ необходимо предусмотреть эффективную систему реализации переходов. Переходы, как безусловные, так и условные, являются неотъемлемой частью любой микропрограммы.

XDJ-Aero Firmware 3.0 + rekordbox App 1.2 (remote control update)


Похожие статьи.

Понравилась статья? Поделиться с друзьями: