Микросхемы интегральные Л1839ВМ1. Техническое описание

Материал из Emuverse

1.12. Система микрокоманд

В микропроцессорной системе "Электроника 32" имеется несколько форматов микрокоманд.

Форматы МА, МВ, МС это содержательные микрокоманды операционного блока (ОБ), остальные форматы микрокоманд не воспринимаются ОБ и служат для управления выборкой микрокоманд из ПЗУ-микрокода, а также для управления ПЛМ-дешифратора команд (ПЛМ ДШК).

Форматы микрокоманд операционного блока МА, МВ, МС приведены на рис. 42.

Расшифруем значение полей содержательных микрокоманд.

Поле "ФМК" - формат микрокоманды

+-------+----+----------------------------------------------+-------------+
| Разряды МК | Наименование формата микрокоманды            | Обобщенное  |
+-----+------+                                              | обозначение |
| 31  |  30  |                                              |             |
+-----+------+----------------------------------------------+-------------+
|  0  |  0   | Одноадресная  ОБ                             |     MA      |
+-----+------+----------------------------------------------+-------------+
|  0  |  I   | Двухадресная  ОБ                             |     MB      |
+-----+------+----------------------------------------------+-------------+
|  I  |  0   | Трехадресная  ОБ                             |     MC      |
+-----+------+----------------------------------------------+-------------+

Поле "ФД" - формат данных

+-------+----+-------------------------------------------------------+
| Разряды МК | Формат данных в ОБ                                    |
+-----+------+                                                       |
| 29  |  28  |                                                       |
+-----+------+-------------------------------------------------------+
|  0  |  0   | Двойное слово (ДС) - 32 разряда                       |
+-----+------+-------------------------------------------------------+
|  0  |  1   | Слово (СЛ) - I6 разрядов (возможно изменение          |
|     |      | только мл.части РСП)                                  |
+-----+------+-------------------------------------------------------+
|  1  |  1   | Байт  (БТ) - 8 разрядов                               |
+-----+------+-------------------------------------------------------+
|  1  |  0   | Резервный код "ФД" , признак подсветки приема         |
|     |      | в регистр косвенной адресации (РКА)                   |
+-----+------+-------------------------------------------------------+

Поле "КОП2" - коды операций двухадресных и трехадресных микрокоманд

+----+----+----+------------------+------------------+----------------------+
|   КОП2       |                  |                  |                      |
+ Разряды  МК  +  Обозначение     |  Обозначение     |  Операция            |
| 27 | 26 | 25 |                  |                  |                      |
+----+----+----+------------------+------------------+----------------------+
|  0 |  0 |  0 |   Y → X          |   X → Z          | Пересылка            |
+----+----+----+------------------+------------------+----------------------+
|  0 |  0 |  1 |   X+Y → X        |   X+Y → Z        | Сложение             |
+----+----+----+------------------+------------------+----------------------+
|  0 |  1 |  0 |   X-Y → X        |   X-Y → Z        | Вычитание            |
+----+----+----+------------------+------------------+----------------------+
|  0 |  1 |  1 |   Y-X → X        |   Y-X → Z        | Обр.вычитание        |
+----+----+----+------------------+------------------+----------------------+
|  1 |  0 |  0 |   X⊕Y → X       |   X⊕Y → Z        | MOD2                 |
+----+----+----+------------------+------------------+----------------------+
|  1 |  0 |  I |   X ∨ Y → X      |   X ∨ Y → Z      | Дизъюнкция           |
+----+----+----+------------------+------------------+----------------------+
|  1 |  1 |  0 |   X & Ȳ → X      |   X & Ȳ → Z      | Конъюнкция с         |
|    |    |    |                  |                  | отрицанием           |
+----+----+----+------------------+------------------+----------------------+
|  1 |  1 |  1 |   X & Y → X      |   X & Y → Z      | Конъюнкция           |
+----+----+----+------------------+------------------+----------------------+

Здесь: Для двухадресных микрокоманд:

      Х - операнд в поле Х (МК 19-15),
      Y - операнд в поле У (МК 24-20),

Для трехадресных микрокоманд:

  Х - операнд в поле Х (МК 19-15),
  Y - операнд в поле У (МК 24-20),
  Z - операнд в поле Z (МК 11-7 ).

Поле "КОП1" - коды операций одноадресных микрокоманд

+----+----+----+----+------------------+------------------------------------+
|      КОП1         |                  |                 |                  |
+    Разряды МК     +                  |  Обозначение    |  О п е р а ц и я |
| 27 | 26 | 25 | 24 |                  |                 |                  |
+----+----+----+----+------------------+------------------------------------+
|  O |  O |  O |  O |   M → X          | Пересылка                          |
+----+----+----+----+------------------+------------------------------------+
|  O |  O |  O |  1 |                  | Резерв                             |
+----+----+----+----+------------------+------------------------------------+
|  O |  O |  1 |  O |   X + M → X      | Сложение                           |
+----+----+----+----+------------------+------------------------------------+
|  O |  O |  1 |  1 |   X → X          | Пересылка                          |
+----+----+----+----+------------------+------------------------------------+
|  O |  1 |  O |  O |   X - M → X      | Вычитание                          |
+----+----+----+----+------------------+------------------------------------+
|  O |  1 |  O |  1 |                  | Резерв                             |
+----+----+----+----+------------------+------------------------------------+
|  O |  1 |  1 |  O |   M - X → X      | Обратное вычитание                 |
+----+----+----+----+------------------+------------------------------------+
|  O |  1 |  1 |  1 |   X → X̄          | Инверсия                           |
+----+----+----+----+------------------+------------------------------------+
|  1 |  O |  O |  O |   X⊕M → X        | MOD2                               |
+----+----+----+----+------------------+------------------------------------+
|  1 |  O |  O |  1 |   АЛ(Х)          | Арифметический сдвиг               |
|    |    |    |    |                  | влево                              |
+----+----+----+----+------------------+------------------------------------+
|  1 |  O |  1 |  O |   X ∨ M → X      | Дизъюнкция                         |
+----+----+----+----+------------------+------------------------------------+
|  1 |  O |  1 |  1 |   ЦЛ(Х)          | Циклический сдвиг влево            |
+----+----+----+----+------------------+------------------------------------+
|  1 |  1 |  O |  O |   X & M̄ → X      | Конъюнкция с отрицанием            |
+----+----+----+----+------------------+------------------------------------+
|  1 |  1 |  O |  1 |   АП(Х)          | Арифметический сдвиг               |
|    |    |    |    |                  | вправо                             |
+----+----+----+----+------------------+------------------------------------+
|  1 |  1 |  1 |  O |   X & M → X      | Конъюнкция                         |
+----+----+----+----+------------------+------------------------------------+
|  1 |  1 |  1 |  1 |   ЦП(Х)          | Циклический сдвиг вправо           |
+----+----+----+----+------------------+------------------------------------+

Здесь Х - операнд по адресу в поле Х (МК 19-15), М - модификатор, или константа, по адресу в поле АМ (МК 23-20), (т.е. в одноадресной микроинструкции константа читается по полю "Y").

Поле "ПС" - прием состояния

+-------+----+------------------------------------------+
|      ПС    |                                          |
+------------+          Прием  состояния                |
| разряды МК |                                          |
+----+--+----+                                          |
| 14 |  13   |                                          |
+----+-------+------------------------------------------+
|  O |  O    | Запись признаков  N, Z, V, C        (ЗС) |
+----+-------+------------------------------------------+
|  1 |  O    | Запись  N, Z, V  ; Сохранение  C    (МС) |
+----+-------+------------------------------------------+
|  O |  1    | Запись  N, Z ,обнуление  V, C       (НV) |
+----+-------+------------------------------------------+
|  1 |  1    | Нет записи состояния                (НЗС)|
+----+-------+------------------------------------------+

Поле "ВА" - запись в регистр виртуального адреса (РВА)

  • ВА (МК 12) = 0 - адрес в фазе чтения
  • ВА (МК 12) = I - адрес в фазе записи.

Если поле ВА (МК 12):=0 в одноадресных микроинструкциях циклических сдвигов, то сдвиг осуществляется минуя разряд "С" в регистре состояния процессора (РСП) (см. рис. 43).

Однако, при любых микрооперациях сдвигов, арифметических либо циклических, выдвигаемый разряд заносится в "С" РСП. Кроме того, необходимо учесть, что при арифметическом сдвиге влево, если поле ВА:=0 , то данная микрооперация трансформируется в циклический левый сдвиг.


Поле "НО" - направление обмена

+-------+----+------------------------------------------+
|     НО     |                                          |
+------------+            Тип  обмена                   |
| Разряды МК |                                          |
+----+--+----+                                          |
| 11 |  10   |                                          |
+----+-------+------------------------------------------+
|  O |  O    | Обмен с основной памятью (ПМ)            |
+----+-------+------------------------------------------+
|  O |  1    | Обмен с памятью с перехватом в БРА (ПП)  |
+----+-------+------------------------------------------+
|  1 |  O    | Обмен с системными регистрами (СР)       |
+----+-------+------------------------------------------+
|  1 |  1    | Обмен с системной памятью (СП)           |
+----+-------+------------------------------------------+

Поле "ФО" - формата обмена

+-------+----+------------------------------------------+
|      ФО    |                                          |
+------------+         Тип формата  обмена              |
| Разряды МК |                                          |
+----+-------+                                          |
|  9 |  8    |                                          |
+----+-------+------------------------------------------+
|  O |  O    | Длинное слово обмена       (ДСО)         |
+----+-------+------------------------------------------+
|  O |  I    | Слово обмена                (СЛО)        |
+----+-------+------------------------------------------+
|  I |  I    | Байт обмена                 (БО)         |
+----+-------+------------------------------------------+
|  I |  O    | Четверное слово обмена      (ЧСО)        |
+----+-------+------------------------------------------+

I) Если в микрокоманде поле "ФО" (МК ⟨9,8⟩) : = ⟨I,0⟩ , то за одну такую микрокоманду можно осуществить сложение/вычитание с переносом (БИТ "С" РСП), используя выходной признак CARRY⟨===⟩ МК⟨9,8⟩:=⟨I,0⟩ (см. синтаксические таблицы микроассемблера). Сложение/вычитание с переносом блокируется, если в данной микрокоманде инициирован обмен.

2) Если в микрокоманде поле "ФО" (МК ⟨9,8⟩ ):= ⟨I,0⟩ , то при использовании микроопераций сдвигов влево (АЛ, ЦЛ) в специальном флажке запоминается признак " V " - переполнение. Логика установления данного флажка такова: если любой из выдвигаемых (на место знакового) разрядов не совпадает со знаковым разрядом, то V:=I, иначе V:=0.

По флагу записи состояния соответствующим образом (в соответствии с данным флажком) устанавливается бит "V" в РСП.

Накопленный признак "V" (флаг переполнения) сбрасывается по концу команды (КК). В противном случае (если поле "ФО" (МК ⟨9,8⟩ ) : ≠ ⟨I,0⟩ ) блокируется установка " V " при сдвигах.

Рассмотрим теперь поле кода обмена ("КОБ") в формате микрокоманды. Для осуществления двойных обменов (обмены 64-разрядными данными) необходимо использовать формат обмена ("ФО") ЧСО (МК ⟨9,8⟩ : = ⟨I,0⟩ ).

Поле "КОБ" - кода обмена

+-------+----+------------------------------------------+
|    КОБ     |                                          |
+------------+           Тип  обмена                    |
| Разряды МК |                                          |
+----+--+----+                                          |
|  7 | 6 | 5 |                                          |
+----+---+---+------------------------------------------+
|  0 | 0 | 0 | Нет обмена (НОБ)                         |
+----+---+---+------------------------------------------+
|  0 | 0 | 1 | Чтение данных (ЧД)                       |
+----+---+---+------------------------------------------+
|  0 | 1 | 0 | Запись данных (ЗД)                       |
+----+---+---+------------------------------------------+
|  0 | 1 | 1 | Чтение-модификация-запись (ЧЗ)           |
+----+---+---+------------------------------------------+
|  1 | 0 | 0 | Запись в регистр-аккумулятор R(I7) (WDAK)|
+----+---+---+------------------------------------------+
|  1 | 0 | 1 | Чтение команды (ЧК)                      |
+----+---+---+------------------------------------------+
|  1 | 1 | 0 | Резерв                                   |
+----+---+---+------------------------------------------+
|  1 | 1 | 1 | Запись смещения в БРД (ЗпЧТ)             |
+----+---+---+------------------------------------------+

Процедура чтение-модификация-запись (ЧМЗ) для работы с 64-разрядными данными имеет свои особенности, а именно:

ЧМЗ трансформируется в чтение 64-разрядных данных, а адрес записи аппаратно помещается в регистр-аккумулятор процессора R(I7) и для завершения процедуры ЧМЗ необходимо проинициировать запись по адресу, находящемуся : R(I7), т.е. тип обмена ЧМЗ 64-разрядными данными фактически не является неделимой операцией.

Разряд (МК0) служит для останова выборки микрокоманд из ПЗУ микрокода (S-бит). Если в микрокоманде МК0:=1, то после выборки этой микрокоманды выборка микрокоманд из ПЗУ приостанавливается до следующей записи в регистр адреса ПЗУ, т.е. если установлен S-бит и заполнены хотя бы две ячейки буфера команд (готовность буфера команд), то блок синхронизации дешифратора команд (БС ПЛМ ДШК) запускает новый цикл ПЛМ.

Разряд (МК 4) - признак приема данных - ПД; используется при чтении с буферного регистра данных (БРД). ПД:=1 в случае использования в переменных полях ПХ, ПУ микрокоманды номера регистра - 1F (БРД). (ПД:=1 - признак продвижения БРД).

Разряды (МК 1-3) управляют выдачей переменных полей микрокоманды. Если признак равен 1, то соответствующее поле микрокоманды выдается не из буфера ПЗУ, а из соответствующего регистра переменного поля, который загружается при дешифрации команды.

Признаки:

  • ПХ:=1 — заменить переменное поле Х;
  • ПУ:=1 — то же — У;
  • ПZ:=1 — то же — Z;
  • ПО:=1 — то же — обмена от ПЛМ.