Микропрограммный УА с принудительной адресацией

Структура УА с принудительной адресацией приведена на рис. 7.

Микропрограммный УА с принудительной адресацией - student2.ru
Рис. 7. Структура УА с принудительной адресацией

На рис.7: MS1 – мультиплексор входных сигналов, MS2 – мультиплексор адреса микрокоманды, РАМК – регистр адреса микрокоманды, МПЗУ – ROM микропрограмм из рис. 6, РМК – регистр микрокоманд.

Разрядность MS2 и РАМК равна адресности ROM n=]log2k[, где k – кол-во микрокоманд автомата. Например, если у нас 13 микрокоманд, то для них надо 13 ячеек ПЗУ, для адресации которых требуется n=]log213[=4 разряда адреса.

Разрядность ПЗУ и РМК равна кол-ву всех сигналов, которое должна выдавать ROM

Формат РМК идентичен формату микрокоманды: A0 и A1 – адрес следующей МК в ПЗУ, по которому перейдёт автомат, если выбранный управляющий сигнал равен 0 или 1 соответственно. Nx – код входного сигнала, проверяемого в текущей МК, ОЧ – операционная часть, содержит все выходные сигналы автомата.

ДШМО – дешифратор микрооперации. Его назначение – уменьшить разрядность ПЗУ и РАМК, в том случае, если все или часть входных сигналов Y являются унитарными и их можно закодировать таким образом, чтобы разрядность поля ОЧ была меньше кол-ва выходных сигналов. В общем случае он не нужен.

В реальности регистр РМК можно исключить, т.к. ПЗУ не меняют состояния своих выходов при неизменности адреса. Т.е., пока содержимое РАМК неизменно, то и на выходах ПЗУ будет неизменная информация.

Целесообразность использования ДШМО на практике зависит и от разрядности реальных ПЗУ, из которых будет строиться МПЗУ автомата.

Так, например, если мы будем использовать 8-разрядные ПЗУ, то, понятно, что конечная разрядность МПЗУ будет кратна 8 битам. Поэтому, если, допустим, на все поля в сумме без доп. кодирования Y понадобится 15 разрядов, а с кодированием 12, то доп. кодирование каких-то Yi и введение дешифратора не приведёт к уменьшению конечного МПЗУ (и на 15 и на 12 сигналов надо 2 8-битных микросхемы ПЗУ), а дополнительный дешифратор только усложнит схему и, возможно, снизит её быстродействие. Но, если в распоряжении есть и 8 и 4-разрядные ПЗУ (8+4=12), то в случае с 12-разрядной МК мы можем применить не две 8-битные микросхемы, а одну 8 и одну 4 битную, то вариант с ДШ может оказаться выгоднее.

Также, следует отметить, что промышленность не выпускает регистров с двумя входными шинами (РАМК на рис. 7). Поэтому, при необходимости такой узел м.б. заменён многоразрядным мультиплексором с двух направлений и обычным одновходовым регистром.

Рассмотрим подробно работу микропрограммного автомата с принудительной адресацией.

Работа автомата начинается с занесения в регистр адреса микрокоманд (РАМК) кода операции (по сути стартового адреса микрокоманды). В простейшем случае вместо занесения адреса можно использовать вход сброса регистра.

На время исполнения микрокоманда из RAM копируется в регистр микрокоманд РМК.

Далее мультиплексор MS1 передаёт на свой выход значение входного сигнала Xi, указанного полем Nx микрокоманды.

По сигналу с MS1 мультиплексор MS2 выбирает один из двух адресов A0/А1 и передаёт его на вход РАМК.

После этого всё повторяется.

Отметим, что на первый (с номером 0) вход мультиплексора MS1 заведен постоянный лог. 0. Это даёт возможность реализации МК с безусловным переходом по адресу A0 в тех МК, где не нужно проверять никакие входные сигналы. Вместо лог. 0 можно использовать лог. 1. Это повлияет только на то, что адресом перехода будет считаться содержимое поля A1, а не A0.

Наличие MS1 обусловливает следующую особенность автомата – любая МК может проверять (учитывать) только один сигнал Xi. Это обстоятельство относится к любым автоматам с микропрограммным управлением (не только с принудительной адресацией). Поэтому, если в какой-либо МК необходимо проверять несколько Xi, то такая МК разбивается на несколько, проверяющих требуемые Xi в произвольном порядке.

В ряде случаев, если входных сигналов не очень много, то, в принципе, можно заменить мультиплексор MS1 простой схемой совпадения кодов, а в МК вместо Nx записывать требуемое сочетание Xi.

В качестве примера рассмотрим микропрограммную реализацию того же автомата, который мы рассматривали для моделей Мили и Мура.

Напомним его ТИ:

Сост. x1 x2 y1 y2 y3 y4

Сначала нам необходимо закодировать входные сигналы автомата x1, x2 и постоянный лог. 0 на нулевом входе мультиплексора MS1:

Вход Поле Nx микрокоманды
0 (лог. 0)
1 (x1)
2 (x2)

Микропрограмма (МП) автомата будет иметь вид:

Адрес МК (состояние) A0 A1 Nx (Xi) Y={y1,y2,y3,y4}
0000 (сост. 0а) 01 (x1)
0001 (сост. 0б) 10 (x2)
0010 (сост. 1а) 01 (x1)
0011 (сост. 1б) 10 (x2)
0100 (сост. 2а) 01 (x1)
0101 (сост. 2б) 10 (x2)
0110 (сост. 3а) 01 (x1)
0111 (сост. 3б) 10 (x2)
1000 (сост. 4а) 01 (x1)
1001 (сост. 4б) 10 (x2)
1010 (сост. 5а) 01 (x1)
1011 (сост. 5б) 10 (x2)

Таким образом, требуемая адресность ПЗУ равна 4 (4-разрядный адрес), а его разрядность равна 4+4+2+4 = 14. Ёмкость ПЗУ составит 16 ячеек, из которых мы займём 12.

Отметим следующие особенности:

1. Кол-во состояний автомата удвоилось, т.к. микропрограммные автоматы описываемой архитектуры не могут реагировать в одном состоянии сразу на несколько входных сигналов. Но, если бы мы имели в ТИ автомата следующую строку:

Сост. x1 x2 y1 y2 y3 y4
*

то при разработке МП мы могли бы обойтись одним состоянием:

1010 (сост. 5) 10 (x2)

2. Сигнал лог. 0 (Nx==0) нам здесь не понадобился. Для иллюстрации его использования представим себе, что в ТИ есть такая строка:

Сост. x1 X2 y1 y2 y3 y4
* *
*

Т.е. из состояния 6 мы всегда переходим в состояние 7.

В этом случае в МП мы можем написать:

Адрес МК (состояние) A0 A1 Nx (Xi) Y={y1,y2,y3,y4}
1100 (сост. 6) 00 (лог. 0)
1101 (сост. 7) 01 (x1)

Как видно, в состоянии 6 автомат не будет проверять никакие Xi, а просто перейдёт из него в состояние 7.

3. Таблица МП представляет собой так называемую «прошивку» автомата, она полностью описывает содержимое ROM автомата: 1-й столбец – адрес МК в ПЗУ, 4 остальных – сами МК (содержимое ПЗУ). Она на 100% задаёт его алгоритм работы.

Из практического примера виден один общий недостаток МП автоматов – из-за невозможности проверить несколько Xi одновременно, кол-во состояний (микрокоманд) МП автомата всегда больше кол-ва состояний эквивалентного автомата Мура (или Мили). Соответственно, и его быстродействие ниже – тем дольше, чем больше входных сигналов нужно обработать в одном состоянии эквивалентного автомата с жёсткой логикой.

Но т.к. современные микросхемы ПЗУ имеют достаточно большие ёмкости, то этот недостаток несущественен на фоне огромного преимущества, заключающегося в том, что если нам понадобится как-то изменить алгоритм функционирования автомата, то нам достаточно «подправить» микропрограмму и перепрошить (изменить содержимое) ПЗУ. Аналогичная задача для автоматов с жёсткой логикой потребует повторного полного цикла разработки схемы автомата «с нуля».

Наши рекомендации