Страница: 1/11
УПРАВЛЯЮЩИЕ АВТОМАТЫ.
ОСНОВНЫЕ СПОСОБЫ АДРЕСАЦИИ МИКРОКОМАНД
Начнем с рассмотрения простейшего варианта управления, в
котором не участвуют предикатные функции (переменные), т.е. в
микропрограмме переходы только безусловные. В таком случае УА
является автономным синхронным автоматом.
В более общем случае функция переходов УА зависит от
предикатных переменных, но УА должен быть автоматом Мура.
Условимся о некоторых ограничениях, позволяющих упрос-
тить схему на начальных этапах проектирования (от которых
легко впоследствии и отказаться):
- на каждом шаге процесса вычислений ветвление может осу-
ществляться только по одной двузначной предикатной перемен-
ной (т.е. разветвление возможно лишь на два направления);
- начальные значения всех регистров УА являются нулевыми.
Впредь на схемах УА не будем показывать цепей установки на-
чальных значений.
Для реализации в самом общем случае микропрограмм произ-
вольной структуры будем строить УА так, чтобы основным мате-
риальным носителем управляющей (автоматной) компоненты мик-
ропрограммы являлась бы управляющая память (реализованная,
например, в виде ПЗУ). В этом случае структура слова управля-
ющей памяти - МИКРОИНСТРУКЦИЯ - состоит из двух составных
частей: микрокоманды и адресной части.
Адресная часть микроинструкции содержит информацию, поз-
воляющую в следующем такте работы выбрать ( указать ) новый
адрес управляющей памяти. Реализация именно этого момента яв-
ляется основным предметом дальнейшего рассмотрения и опреде-
ляет, в основном, структуру, объем аппаратуры и быстродей-
ствие УА. При этом подлежит рассмотрению реализация следующих
типов переходов как между шагами алгоритма, так, соот-
ветственно, и между микроинструкциями:
- безусловный переход,
- условный переход,
- функциональный переход,
- переход к микроподпрограмме с возвратом.
Будем изучать работу управляющих автоматов различной
структуры, демонстрирующие основные применяемые варианты ад-
ресации микроинструкций, на следующем алгоритме:
███
┌───┐│
│ ┌VV─┐
n1│ │m1 │ n1 { m1 }
│ └─┬─┘
│ ┌─V─┐ n2 { m2 }
n2│ │m2 │
│ └─┬─┘ g1 <<GO(a;g1,n3)>>
│ │<──┐
│ ┌V┐ 0│ n3 { m3 }
g1│ < a >─┘
│ └┬┘ n4 { m4 }
│ 1│<────┐
│ │┌───┐│ g2 <<GO((a,b);n5,n3,n1,n1)>>
│ ┌─VV┐ ││
n3│ │m3 │ ││ n5 { m5 }
│ └─┬─┘ ││
│ ┌─V─┐ ││ g3 <<GO(a;n5,n3)>>
n4│ │m4 │ ││
│ └─┬─┘ ││
│10 ┌V┐ 01││
g2└──< ab>──┘│
11 └┬┘ │
00│┌───┐│
┌─VV┐ ││
n5 │m5 │ ││
└─┬─┘ ││
┌V┐ 0 ││
g3 < a >──┘│
└┬┘ 1 │
└─────┘
Укажем на некоторые особенности этого алгоритма: Опера-
тор перехода (предикатная вершина), помеченный меткой g1,
называют ждущим. Оператор, помеченный меткой g2, использует
для перехода 4-значный предикат, что не удовлeтворяет выше-
указанному ограничению. Поэтому потребуются эквивалентные
преобразования алгоритма для того, чтобы удовлетворить этому
ограничению.
Алогоритмы эквмвалентны, если они преобразуют информа-
цию одинаковым образом. Наиболее распространенным приемом эк-
вивалентного преобразования алгоритмов и микропрограмм явля-
ется включение микроблоков и, соответственно, тактов, в кото-
рых не выполняется модификация памяти ОА - "нет операции".
Но и это преобразование может быть не эквивалентным - см.при-
мер при определении понятия "микроблок"; кроме того, следует
учесть различное поведение во времени предикатных переменных
типа "РА" и "РВ" - см. раздел "Взаимодействие ОА и УА".
Реферат опубликован: 28/11/2009