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

Принципиально иной подход, позволяющий преодолеть сложности УУ с аппаратной логикой, был предложен британским ученым М. Уилксом в начале 50-х годов. В основе идеи лежит тот факт, что для инициирования любой микрооперации достаточно сформировать соответствующий СУ на соответствующей линии уп­равления, то есть перевести такую линию в активное состояние. Этоможет быть представлено с помощью двоичных цифр 1 (активное состояние – есть СУ) и 0 (пассивное состояние – нет СУ). Для указания микроопераций, выполняемых в данном такте, можно сформировать управляющее слово, в котором каждый бит соответствует одной управляющей линии. Такое управляющее словоназывают микрокомандой (МК). Таким образом, микрокоманда может быть представлена управляющим словомсо своей комбинацией нулей и единиц. Последовательность микрокоманд, реализующих определенный этап машинного цикла, образует мик­ропрограмму. В терминологии на английском языке микропрограмму часто назы­вают firтware, подчеркивая тот факт, что этонечто среднее между аппаратурой (hardware) и программным обеспечением (software). Микропрограммы для каж­дой команды процессора и для каждого этапа (ступени) цикла команды размещаются в специальном запоминающем устройстве (ЗУ), называемом памятью микропрограмм (ПМП). Процесс формирования СУ можно реализовать, последовательно (с каждым тактовым импульсом) извлекая микрокоманды микропрограммы из памяти и интерпретируя содержащуюся в них информацию о сигналах управления /2,9-11/.

Идея создания УУ с программируемой логикой заинтересовала многих разработчиков вычислительных машин, но в 50-е годы была нереализуема, по­скольку требовала использования быстрой памяти относительно большой емкости. Вновь вернулись к этой идее в 1964 году, в ходе создания вычислительной системы IBM 360. С тех пор устройства управления с программируемой логикой стали чрезвычайно популяр­ными и были реализованы во многих ЭВМ, а в настоящее время нашли широкое применение в микропроцессорах. Следует сказать, что вклад в развитие УУ с программируемой логикой внесли и отечественные ученые, в частности, академиком В. М. Глушковым был предложен принцип ступенчатого микропрограммиро­вания, который он впервые реализовал в ЭВМ «Проминь».

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


Типичная структура микропрограммного автомата УУ представлена на рис.2.4.

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

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

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

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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.