Устройство управления с программируемой логикой
Принципиально иной подход, позволяющий преодолеть сложности УУ с аппаратной логикой, был предложен британским ученым М. Уилксом в начале 50-х годов. В основе идеи лежит тот факт, что для инициирования любой микрооперации достаточно сформировать соответствующий СУ на соответствующей линии управления, то есть перевести такую линию в активное состояние. Этоможет быть представлено с помощью двоичных цифр 1 (активное состояние – есть СУ) и 0 (пассивное состояние – нет СУ). Для указания микроопераций, выполняемых в данном такте, можно сформировать управляющее слово, в котором каждый бит соответствует одной управляющей линии. Такое управляющее словоназывают микрокомандой (МК). Таким образом, микрокоманда может быть представлена управляющим словомсо своей комбинацией нулей и единиц. Последовательность микрокоманд, реализующих определенный этап машинного цикла, образует микропрограмму. В терминологии на английском языке микропрограмму часто называют firтware, подчеркивая тот факт, что этонечто среднее между аппаратурой (hardware) и программным обеспечением (software). Микропрограммы для каждой команды процессора и для каждого этапа (ступени) цикла команды размещаются в специальном запоминающем устройстве (ЗУ), называемом памятью микропрограмм (ПМП). Процесс формирования СУ можно реализовать, последовательно (с каждым тактовым импульсом) извлекая микрокоманды микропрограммы из памяти и интерпретируя содержащуюся в них информацию о сигналах управления /2,9-11/.
Идея создания УУ с программируемой логикой заинтересовала многих разработчиков вычислительных машин, но в 50-е годы была нереализуема, поскольку требовала использования быстрой памяти относительно большой емкости. Вновь вернулись к этой идее в 1964 году, в ходе создания вычислительной системы IBM 360. С тех пор устройства управления с программируемой логикой стали чрезвычайно популярными и были реализованы во многих ЭВМ, а в настоящее время нашли широкое применение в микропроцессорах. Следует сказать, что вклад в развитие УУ с программируемой логикой внесли и отечественные ученые, в частности, академиком В. М. Глушковым был предложен принцип ступенчатого микропрограммирования, который он впервые реализовал в ЭВМ «Проминь».
Отличительной особенностью микропрограммного автомата с программируемой логикой является хранение микрокоманд в виде кодов в специализированном запоминающем устройстве – памяти микропрограмм. Каждой команде вычислительной машины в этом ЗУ в явной форме соответствует микропрограмма, поэтому часто устройства управления, в состав которых входит микропрограммный автомат с программируемой логикой, называют микропрограммными.
Типичная структура микропрограммного автомата УУ представлена на рис.2.4.
В состав устройства входят: память микропрограмм (ПМП), регистр адреса микрокоманды (РАМ), регистр микрокоманды (РМК), дешифратор микрокоманд (ДшМК), преобразователь кода операции, формирователь адреса следующей микрокоманды (ФАСМ), формирователь синхроимпульсов (ФСИ).
Запуск микропрограммы выполнения операции осуществляется путем передачи кода операции из РК на вход преобразователя, в котором код операции преобразуется в начальный (первый) адрес микропрограммы Ан. Этот адрес поступает через ФАСМ в регистр адреса микрокоманды. Выбранная по адресу Ан из ПМП микрокоманда заносится в РМК. Каждая микрокоманда в общем случае содержит микрооперационную (МО) и адресную (А) части. Микрооперационная часть микрокоманды поступает на дешифратор микрокоманды, на выходе которого образуются управляющие сигналы Сi, инициирующие выполнение микроопераций в исполнительных устройствах и узлах арифметико-логического устройства. Адресная часть микрокоманды подается в ФАСМ, где формируется адрес следующей микрокоманды Амк. Этот адрес может зависеть от адреса на выходе преобразователя кода операции Ан, адресной части текущей микрокоманды А и значений осведомительных сигналов (флагов), поступающих от исполнительных устройств. Сформированный адрес микрокоманды снова записывается в РАМ, и процесс повторяется до окончания микропрограммы.
Разрядность адресной (RА) и микрооперационной (RMО) частей микрокоманды определяются соотношениями:
RА = int (log2 NMK) и RMO = int (log2 NСУ),
где NMK – общее количество микрокоманд; NСУ – общее количество формируемых сигналов управления.
В свою очередь, необходимая емкость памяти микропрограмм равна
ЕПМП = NМК(RА + RMО) = NMK(int(log2 NMK) + int(log2 NСУ)).
Информация о том, какие сигналы управления должны быть сформированы в процессе выполнения текущей МК, в закодированном виде содержится в микрооперационной части (МО) микрокоманды. Способ кодирования микроопераций во многом определяет сложность аппаратных средств устройства управления и его скоростные характеристики. Применяемые в микрокомандах варианты кодирования сигналов управления можно свести к трем группам: минимальное кодирование (горизонтальное микропрограммирование), максимальное кодирование (вертикальное микропрограммирование) и групповое кодирование (смешанное микропрограммирование).
При горизонтальном микропрограммировании под каждый сигнал управления в микрооперационной части микрокоманды выделен один разряд (RMO = NСУ). Это позволяет в рамках одной микрокоманды формировать любые сочетания СУ, чем обеспечивается максимальный параллелизм выполнения микроопераций. Кроме того, отсутствует необходимость в декодировании МО и выходы регистра микрокоманды могут быть непосредственно подключены к соответствующим управляемым точкам процессора. Широкому распространению горизонтального микропрограммирования тем не менее препятствуют большие затраты на хранение микрооперационных частей микрокоманд (ЕМО = NMK х NСУ), причем эффективность использования ПМП получается низкой, так как при большом числе микроопераций в каждой отдельной МК реализуется лишь одна или несколько из них, то есть подавляющая часть разрядов МО содержит нули.
При максимальном (вертикальном) кодировании каждой микрооперации присваивается определенный код, например, ее порядковый номер в полном списке возможных микроопераций. Этот код и заносится в МО. Микрооперационная часть МК имеет минимальную длину, определяемую как двоичный логарифм от числа управляющих сигналов (микроопераций) по формуле RMO = int (log2 NСУ.
Такой способ кодирования требует минимальных аппаратных затрат в ПМП на хранение микрокоманд, однако возникает необходимость в дешифраторе ДшМК, который должен преобразовать код микрооперации в соответствующий сигнал управления. При большом количестве СУ дешифратор вносит значительную временную задержку, а главное – в каждой МК указывается лишь один сигнал управления, инициирующий только однумикрооперацию, за счет чего увеличиваются длина микропрограммы и время ее реализации.
Последний недостаток устраняется при подключении к выходам ДшМК шифратора, что приводит к увеличению количества СУ, формируемых одновременно. Естественно, что помимо кодов отдельных микроопераций должны быть предусмотрены коды, представляющие и определенные комбинации микроопераций.
Минимальное и максимальное кодирование являются двумя крайними точками широкого спектра возможных решений задачи кодирования СУ. Промежуточное положение занимает групповое или смешанное кодирование.
В этом способе все сигналы управления (микрооперации) разбиваются на К групп, причем в зависимости от принципа разбиения микроопераций на группы различают горизонтально-вертикальное и вертикально-горизонтальное кодирование.
В горизонтально-вертикальном методе в каждую группу включаются взаимно несовместимые сигналы управления (микрооперации), то есть СУ, которые никогда не встречаются вместе в одной микрокоманде. При этом сигналы, обычно формируемые в одном и том же такте, оказываются в разных группах. Внутри каждой группы сигналы управления кодируются максимальным (вертикальным) способом, а группы – минимальным (горизонтальным) способом.
При вертикально-горизонтальном способе все множество сигналов управления (микроопераций) также делится на несколько групп, однако в группу включаются сигналы управления (микрооперации), наиболее часто встречающиеся вместе в одном такте. Поле МО делится на две части: МО1 и МО2. Поле MO1, длина которого равна максимальному количеству сигналов управления (микроопераций) в группе, кодируется горизонтально, а поле МО2, указывающее на принадлежность к определенной группе, – вертикально. Со сменой группы меняются и управляемые точки, куда должны быть направлены сигналы управления из каждой позиции MO1. Это достигается с помощью демультиплексоров, управляемых кодом номера группы из поля МО2.
При горизонтальном, вертикальном и горизонтально-вертикальном способах кодирования микроопераций каждое поле микрокоманды несет фиксированные функции, то есть имеет место прямое кодирование. При косвенном кодировании одно из полей отводится для интерпретации других полей. Примером косвенного кодирования микроопераций может служить вертикально-горизонтальное кодирование.
Иногда используется двухуровневое кодирование микроопераций. На первом уровне с вертикальным кодированием выбирается микрокоманда, поле МО которой является адресом горизонтальной микрокоманды второго уровня – нанокоманды. Данный способ сочетания вертикального и горизонтального микропрограммирования часто называют нанопрограммированием. Метод предполагает двухуровневую систему кодирования микроопераций и, соответственно, двухуровневую организацию управляющей памяти.
Рассмотренные УУ с программируемой логикой существенно уступают по быстродействию УУ с аппаратной логикой, т.к. каждая команда реализуется микропрограммой, которая состоит из многих микрокоманд, которые, в свою очередь, состоят из микроопераций. Поэтому выполнение команды требует многократного обращения к ПМП, что существенно увеличивает время командного цикла. С другой стороны, УУ с записанными в памяти микропрограммами команд, позволяет существенно расширить систему команд, что значительно упрощает процесс написания программ. УУ с программируемой логикой нашли применение в процессорах с архитектурой с полным набором команд CISC (Complex Instructions Set Computer) /2/.
Дата добавления: 2016-06-13; просмотров: 2847;