Реализация устройства управления
Для общей координации работы процессора выбрано микропрограммное горизонтальное устройство управления (УУ). В связи с этим, в ЦП присутствует специальное ЗУ (запоминающее устройство), хранящее микрокоманды (МК) управления процессором. Помимо этого аналогично РК и СК существует два регистра – РМК (регистр микрокоманд) и РАМК5 (регистр адреса микрокоманд). Первый содержит выполняемую (текущую) микрокоманду. На второй подаётся адрес следующей микрокоманды.
Алгоритм выполнения МК следующий:
1) На РАМК подаётся адрес МК;
2) Происходит чтение из ЗУ по адресу – значению регистра РАМК в регистр РМК.
Как только команда считалась в регистр РМК, происходит мгновенное её выполнение.
Каждый разряд РМК
соединён с соответствующим ему вентилем6.
Единица в данном разряде «открывает
вентиль», разрешая перезапись информации
из одного регистра в другой, между
которыми находится вентиль. Разрядность
РМК равна числу вентилей +
,
где K
– количество микрокоманд. Старшие
разряды, число которых равно числу
вентилей составляют операционную часть
микрокоманды, младшие
разрядов составляют адресную часть
микрокоманды – в них находится адрес
следующей микрокоманды.
3) Адресные разряды регистра РМК подаются на блок формирования адреса (БФА).
В простейшем случае БФА отсутствует, и сразу выполнятся следующий пункт. Но существуют алгоритмы, содержащие, например, ветвление, что требует от УУ обеспечения условных переходов. В этом случае приходится вводить БФА.
В данной работе
она состоит из двух последовательно
соединённых двухвходовых схем «или»7,
каждая из которых отвечает за реализацию
одного из двух использованных в работе
условных переходов, а также третьей
-входовой
схемой «или», на входы которой подаются
разряды счётчика циклов (СЦ)8.
Значение 0 на выходе третьей схемы «или»
означает, что СЦ равен 0.
Первая схема «или» (OR1) имеет следующие входы:
а) Подключённый через вентиль V28 младший разряд регистра R2;
(Обозначим его R2[0])
б) Младший разряд адресной части регистра РМК.
(Обозначим его РМК[0])
Выход первой схемы «или» подаётся на вход второй (OR2). Вторым входом второй схемы «или» является подключённый через вентиль V29
выход третьей схемы «или»(OR3). Более наглядно БФА характеризует следующая таблица истинности:
|
V28 |
R2[0] |
РМК[0] |
V29 |
OR3 |
OR2 |
|
0 |
X |
0 |
0 |
X |
0 |
|
0 |
X |
1 |
0 |
X |
1 |
|
0 |
X |
0 |
1 |
0 |
0 |
|
0 |
X |
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
X |
0 |
|
1 |
1 |
0 |
0 |
X |
1 |
Первые две строки таблицы описывают ситуацию, когда ни один из условных переходов не производится. В этом случае оба вентиля V28 и V29 равны нулю. В результате на выходе БФА будет формироваться неизменённый РМК[0].
При реализации переходов адресная часть микрокоманд, осуществляющих переход подобрана таким образом, что РМК[0] в обоих случаях равен 0. Это обеспечивает работоспособность относительно простого БФА из трёх схем «или».
Так как в силу алгоритма одновременно оба вентиля открытыми быть не могут, то когда открыт один – второй закрыт.
При реализации первого условного перехода открыт вентиль V28, и на выходе БФА формируется результат, равный текущему значению R2[0]. То есть если R2[0]=0, то на выходе БФА также 0 и наоборот, если R2[0]=1, то и на выходе БФА также 1.
При реализации второго перехода открыт уже V29, а V28 закрыт. При этом на выходе БФА генерируется сигнал, идентичный текущему значению на выходе OR3. То есть если счётчик циклов равен нулю, то на выходе БФА 0, если он нулю не равен – то на выходе БФА единица.
Возможность изменения младшего разряда, подаваемого на РАМК, и обеспечивает поддержку условных переходов на микропрограммном уровне: по чётному адресу (младший разряд РАМК, полученный через БФА, равен 0) записывается микрокоманда, которая должна выполняться, если элемент проверки равен 0,а по нечётному соответственно та, которая должна выполняться в противном случае.
4) После того, как исполнительный адрес следующей микрокоманды сгенерировался в схеме формирования адреса, он подаётся на РАМК через схему задержки9;
5) Переход к пункту 5).
