Микросхемы интегральные Л1839ВМ1. Техническое описание
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 — то же — обмена от ПЛМ.