ЛР7. Разработка обобщённого графа индивидуального задания и ввод исходных данных для эмулятора «СUU» (1065594), страница 5
Текст из файла (страница 5)
а в
«ВВОД»
УИ
ПВ
б
A:=S1
PA:=A
СТОП
A:=ОП[PA]


з
Дисплей:=A
стоп
ж
B:=РИ

B:=B


B:=F.R

1
PA:=B
A:=S1


A:=ОП[PA]
POH[1]:=A


POH[1]:=A
г д е
Сл ПУ ПБК
Рис. 5 Микропрограмма машинных операций
Эта микрооперация задает четыре старших двоичных разряда адреса шестнадцатеричной константой F(1111), а четыре младших разряда адреса берет из поля R команды ПВ. В нашем случае в поле R должен быть нуль, когда сформируется требуемый адрес;
в) «Установка индекса» (УИ) – используется при работе с массивами, а также при организации циклов. По этой команде значение индекса переписывается из ячейки памяти, адрес которой указан в поле S1, в индексный регистр (рис. 5в);
г) «Сложение с модификацией» (Сл) – команда выполняет операции Сi=Ai+Bi, причем операнды и результат хранятся в памяти. В полях S1, S2 и S3 команды Сл записаны начальные адреса соответствующих массивов А, В и С. Адреса элементов массивов определяются как сумма начального адреса массива и содержимого индексного регистра. При каждом выполнении команды содержимое индексного регистра уменьшается на единицу. В задаче и в машинной программе индексы массивов меняются от единицы до n, а в микропрограмме они должны меняться от нуля до (n-1), чтобы начальный адрес массива в теле команды соответствовал начальному элементу массива (рис. 5г). В микропрограмме используется микрооперация РОН[2]:=А. Она получается из микрооперации РОН [Т]:=РОН [Т]*А, где Т=2 (см. табл. 7) операции пересылки y – (см. табл. 1). Выбор Т=2 и операции пересылки А в РОН [2] выполняются с помощью управляющих сигналов y8, y11, y13,y15. Регистр РОН [2] используется для временного хранения первого операнда.
Примечание. В АЛУ выполняются микрооперации типа W:=X*Y, где X - первый операнд, Y - второй операнд, звездочка - арифметическая операция.
В нашем случае первым операндом будет РОН [Т], а вторым аккумулятор;
д) «Переход условный» (ПУ) – команда анализирует содержимое индексного регистра. Если оно равно нулю, то осуществляется переход к следующей команде, а если не равно, то выполняется переход к команде, адрес которой указан в поле S1 команды ПУ (рис. 5д). В микропрограмме необходимо проанализировать значение индекса на нуль, но признак нуля Z(как и все остальные признаки N, C, P) вырабатываются только в АЛУ, поэтому необходимо значение индекса пропустить через АЛУ. Для этого используется две микрооперации, В:=РИ и В:=В.
Выбор регистра общего назначения
Таблица 7
Управляющие сигналы | Адрес РОН [Т] | |||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
y7 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
y8 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
y9 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
y10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Примечание. Формирование адреса следующей команды происходит вне микропрограммы операции;
е) «Переход безусловный» (ПБК) – команда реализует безусловный переход по косвенному адресу, т.е. по адресу, который хранится в ячейке возврата в оперативной памяти. В качестве ячейки возврата можно использовать любое слова страницы F (адреса от F0 до FF). Номер слова в странице F указывают в поле R команды ПБК (рис. 5е).
ж) «Вывод» (Выв) - по этой команде байт информации из памяти выдается на экран дисплея в шестнадцатеричной системе. Адрес выдаваемого байта указывается в поле S1 (рис. 5ж);
з) «Останов» (Стоп) - по этой команде происходит выключение центрального устройства управления. Эта команда должна быть последней исполняемой в программе пользователя. Она выдает на пульт управления специальный сигнал о завершении работы процессора, а само ЦУУ переходит в состояние ожидания (исходное состояние) (рис. 5з).
6. Разработать обобщенную микропрограмму, описывающую работу ЦУУ:
а) в исходном положении ЦУУ находится в состоянии ожидания. Включение ЦУУ производится сигналом "Пуск", подаваемым с пульта управления. После этого в программный счетчик (РОН[1]) и регистр адреса РА заносится начальный адрес машинной программы - нуль. (В качестве начального адреса программы можно использовать любой адрес оперативной памяти, однако в большинстве процессоров он равен нулю. Это объясняется удобствами схемной реализации - во всех регистрах имеются специальные входы обнуления.);
б) произвести выборку команды из оперативной памяти в регистр команд. В каждом варианте задания длина всех команд одинакова: 2, 3 или 4 байта. В соответствии с этим использовать микрооперацию, записывающую в старшие разряды регистра команд слово длиной 2, 3 или 4 байта и на соответствующее число единиц увеличивать содержимое программного счетчика, чтобы сформировать адрес следующей команды. Длина трехадресных команд 4 байта, поэтому счетчик увеличить на 4 с помощью микрооперации
РОН [Т]: = РОН [Т] *А. Выбор номера регистра и типа операции задать по табл. 7 и 8 с помощью управляющих сигналов. Для получения микрооперации РОН[1]: = РОН[1] + 4 необходимы управляющие сигналы: y7, y11, y13, y14;
в) проанализировать код операции машинной команды и перейти к выполнению соответствующей операции. Микропрограммы всех необходимых в задании операций приведены на рис. 5. Код операции всегда размешается в четырех старших разрядах регистра команд (31:28). Коды операций используемых команд приведены в табл. 6. С помощью четырех разрядов в КОП можно закодировать до 16 различных машинных команд. В нашей задаче используются только восемь команд с кодами 0000-OIII. При появлении несуществующего кода операции в микропрограмме формируется сигнал ошибки "Ошибка в КОП" и выполнение микропрограммы завершается;
г) после завершения выполнения микропрограмм всех операций, кроме операции "Стоп", в регистр адреса ЦУУ необходимо занести адрес следующей машинной команды. После выполнения команды "Стоп" в регистре адреса хранится адрес последней выполненной команды.
Управление работой схемы инкремента-декремента
Таблица 8
Управляющий сигнал | Выполняемая микрооперация |
У6 =1 | Декремент (-1) |
У6 = 0 | Инкремент (+1) |
-
Построить обобщенную микропрограмму (рис. 6).
-
По обобщенной микропрограмме построить закодированный граф микропрограммы (рис. 7) и по нему - управляющий автомат Мура или Мили. В общем случае автомат Мили имеет меньше состояний и для него необходим регистр состояний меньшей разрядности. В лабораторной работе использован восьмиразрядный регистр состояний. Его разрядности достаточно для построения автомата любого типа во всех вариантах. В качестве примера можно построить автомат Мура. В табл. 9 приведены списки переходов автомата. Разметка автомата указана на рис. 7.