Table of Contents

6. Описание процессора-эмулятора на микроуровне

6.1. Блок микропрограммного управления

Центральный процессор представляет из себя устройство с микропрограммным управлением. В ЭВМ с микропрограммным принципом управления можно различить два уровня: уровень микромашины (регистры, память, арифметико-логическое устройство АЛУ или микропроцессор), доступный только из микропрограммы, и уровень пользователя.

Уровень пользователя определяется уровнем микромашины, в частности, содержимым памяти микрокоманд, что в некотором смысле может быть произвольным.

В состав устройства микропрограммного управления входят табличная память преобразователя начального адреса ПНА, память микрокоманд, схема управления адресом микропрограммы (СУАМ) и конвейерный регистр. Память микрокоманд предназначена для хранения микропрограмм, реализующих набор машинных команд уровня пользователя. Начальный адрес микропрограммы, соответствующей какой-либо команде уровня пользователя, находится в ПНА по адресу, определяемому кодом этой команды. Исключение составляет микропрограмма входа в обработку прерываний, адрес которой фиксирован.

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

БИС управления последовательностью выполнения микрокоманд (К1804ВУ4)

БИС К1804ВУ4 (СУАМ) - устройство управления последовательностью микрокоманд, позволяющее адресовать микропрограмму размером до 4к слов. Устройство управления имеет мультиплексор с четырьмя входами, используемый для выбора в качестве источника адреса следующей микрокоманды регистр/счетчик RC, вход прямого адреса D, счетчик микрокоманд РС или стек.

Структурная схема устройства:

              | d  | /rld                ---->
      --------|    |                     | full
      |       v    v                     |
      |   -------------         -------------------
      |   |  регистр/ |         | указатель стека |
   ---|-->|  счетчик  |         -------------------
   |  |   -------------                 |
   |  |      |                  -----------------
   |  |      |   ---------------|    с т е к    |
   |  |      |   |              -----------------
   |  ----   |   |   -------------------|
   |     |   |   |   |          -----------------
   |     |   |   |   |          |    счетчик    |
   |     v   v   v   v          |  микрокоманд  |
   |  -------------------       -----------------
   |  |  d   r   f  рс  |               |
   |  |                 |       ----------------
   |  |  мультиплексор  |       |  устройство  |<--
   |  |   следующего    |       |  приращения  | c|
   |  |     адреса      |       ----------------
   |  -------------------               |
   |     |            |                 |
   |  --------------  -------------------
   -->|            |            |
/сс-->| управление |            v у0-у11
ccen->|            |<------
  т-->|------------|  i0-i3
         |   |   |
         |   |   |
         v   v   v
        /ре /ме /vе

СЧЕТЧИК МИКРОКОМАНД (РС) используется одним из двух способов. Когда сигнал CI имеет высокий уровень, в РС во время следующего такта загружается передаваемый на выход У адрес, увеличенный на 1 (У+1 ⇒ РС). Таким образом обеспечивается последовательное выполнение команд. Если CI имеет низкий уровень, то РС перезагружается тем же самым адресом (У ⇒ РС). Следовательно, одна и та же команда может выполняться любое количесво раз.

Запись в РЕГИСТР/СЧЕТЧИК RС осуществляется при выдаче сигнала разрешения загрузки (/RLD), а также при выполнении некоторых команд. Вход прямого адреса d является источником данных, загружаемых в регистр/счетчик, а выход регистра подключен к мультиплексору и может быть использован в качестве источника адреса следующей микрокоманды. Регистр/счетчик при выполнении некоторых операций работает как счетчик, выполняющий отрицательное приращение, причем полученное в результате такого приращения значение 0 используется как признак перехода.

ИСТОЧНИК ПРЯМОГО АДРЕА D используется для выполнения переходов в микропрограмме по адресу, выбираемому из внешнего источника.

СТЕК обьемом 5 слов предназначен для хранения адреса возврата при выполнении в микропрограмме подпрограмм и циклов. При выполнении одних операций происходит загрузка информации в стек с увеличением на 1 указаталя стека (push), при выполнении других - извлечение (рор) с уменьшением на 1 указателя стека. При выполнении операции начальной установки глубина стека (указатель) становится равной нулю.

Использование сигналов:

БИС СУАМ вырабатывает сигналы /VЕ, /МЕ, /РЕ, которые используются для выборки внешних источников, подключенных к шине D:

Каждой микрокомандой вырабатывается только один сигнал разрешения для внешнего источника.

Сигналы I0-I3 поступают из микропрограммы; /RLD - с дешифратора триггеров признаков; /СС - с мультиплексора условий; выходы У0-У11 передают полученный адрес микрокоманды; на вход CI в зависимости от 36 разряда МП подается либо “1”, либо прямой или инверсный выход с мультиплексора условий, либо “0” в момент входа в микропрограмму обработки прерываний; сигнал /CCEN всегда равен “0”.

Коды операций СУАМ

У0-У11 и указатель стека устанавливаются в 0.

Если условие выполняется, адрес возврата (РС+1) загружается в стек и происходит переход к подпрограмме по адресу, выбираемому из конвейерного регистра (адрес перехода в микрокоманде). Иначе выполняется следующая микрокоманда.

Производится выдача сигнала разрешения выборки /МЕ, и адрес следующей микрокоманды выбирается из дешифрирующего ПЗУ.

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

Производится загрузка в стек адреса следующей микрокоманды (РС+1), при выполнении условия - в регистр/счетчик загружается величина, находящаяся в поле адреса перехода конвейерного регистра. Если условие не выполнено, загрузка счетчика не производится. Затем выполняется следующая микрокоманда.

Производится загрузка стека величиной РС+1 и инициируется одна из двух подпрограмм: если условие выполняется, адрес следующей микрокоманды определяется содержимым конвейерного регистра, иначе - содержимым регистра/счетчика.

Если условие выполняется, производится выдача сигнала разрешения выборки /VE и производится переход по векторному адресу. Иначе выполняется следующая микрокоманда.

Если условие выполняется, адрес следующей микрокоманды определяется содержимым конвейерного регистра, иначе - содержимым регистра/счетчика.

Если содержимое регистра/счетчика отлично от 0, его значение уменьшается на 1, и адрес следующей микрокоманды извлекается из стека. Если счетчик равен 0, выполняется следующая микрокоманда, а указатель стека уменьшается на 1. Перед выполнением этой микрокоманды в регистр/счетчик должно быть занесено число повторений микрокоманд в цикле, а в стек - адрес начала цикла.

Если содержимое регистра/счетчика не равно 0, его значение уменьшается на 1, и производится передача управления по адресу, содержащемуся в конвейерном регистре. Иначе выполняется следующая микрокоманда. Перед выполнением этой микрокоманды (RPCT) в регистр/счетчик должно быть занесено число повторений цикла.

Если условие выполняется, производится возврат из подпрограммы по адресу,выбираемому из стека. Иначе выполняется следующая микрокоманда.

Если условие выполняется, то производится переход по адресу микрокоманды и операция извлечения из стека. Иначе выполняется следующая микрокоманда.

Производится загрузка регистра/счетчика содержимым поля адреса микрокоманды и выполняется следующая микрокоманда.

Если условие не выполнено, производится переход по находящемуся в стеке адресу, иначе выполняется следующая по порядку микрокоманда и производится операция извлечения из стека.

Выполняется следующая по порядку микрокоманда.

Если условие не задано, производится отрицательное приращение счетчика и переход по адресу стека, пока счетчик не равен 0, затем адрес следующей микрокоманды выбирается из конвейерного регистра. Если условие задано, выполняется следующая по порядку микрокоманда. При выходе из цикла в обоих случаях указатель стека уменьшается на 1. Перед выполнением микрокоманды TWB в регистр/счетчик должно быть занесено число повторений цикла, а в стек - адрес начала цикла.

сч. НЕ РАВЕН 0: сч.= сч.- 1, переход по адресу стека; сч. РАВЕН 0: переход по адресу из КР.

выполняется следующия команда.

6.2. Формат микрокоманды

--------------------------------------------------------------
  поле  |  коп  |адрес: след. |выбор|вых|функ-|32/|   адрес
 микро- | суам  |микрокоманды | пна | у | ция |64р|  рзу мпс
команды |-------|   ----------|-----|мпс| мпс |мпс|  в  |  а
        |i3 - i0|   |пзу конст|в   а|   |i8-i0|   |     |
--------|-------|---|---------|-----|---|-----|---|-----|-----
 разряд |112 109|108|107    97|96 95| 94|93 85| 84|83 80|79 76
--------|-------|-------------|-----|---|-----|---|-----|-----
 n табл.|   1   |             |  2  |   |3,4,5|   |  6  |  6
--------|-------|-------------|-----|---|-----|---|-----|-----
мнемокод|  sqi  |      а      | мар |alu| func| н |  rв |  rа
--------------------------------------------------------------

--------------------------------------------------------------
 функ- |пр.|ист.N | номер |источ-|прием-| коп | коп |зап| про-
  ция  |r/w|модиф.|модифик| ник  | ник  |сдви-|арбит| в |пуск
 сусс  |i/о|или пар.сдвига|шины d|шины у| га  | ра  |рег| пиа
-------|---|--------------|------|------|-----|-----|---|-----
i12-i10|   |в    а|d     а|d    а|d    а|i1 i0|d   а|   |
-------|---|------|-------|------|------|-----|-----|---|-----
75   64| 63|62  61|60   56|55  52|51  48|47 46|45 42| 41|  40
-------|---|------|-------|------|------|-----|-----|---|-----
   7   |   |    8,9/10    |  11  |  12  |  13 |  14 |   |
-------|---|-----pshf-----|------|------|-----|-----|---|-----
  stf  |mod| mnsa | modnm | dsrc | ydst | shf | arbi|rld|lетс
--------------------------------------------------------------

--------------------------------------------------------------
 упр.|упр|инв|инв|   | запись в|упр. Озу|кан|зап|адрес|кан|зап
длит.| ci| ci|усл|пми| рг.сусс:|модифик:| в | по|кан.В| а | по
такта| sq| sq|   |   | м  | n  | cs| wr |бои| в | бои |бои| а
-----|---|---|---|---|----|----|---|----|---|---|-----|---|---
с   а|   |   |   |   |    |    |   |    |   |   |в   а|   |
-----|---|---|---|---|----|----|---|----|---|---|-----|---|---
39 37| 36| 35| 34| 33| 32 | 31 | 30| 29 | 28| 27|26 25| 24| 23
-----|---|---|---|---|----|----|---|----|---|---|-----|---|---
  15 |   |   |   |   |    |    |   |    |   |   |  16 |   |
-----|---|---|---|---|----|----|---|----|---|---|-----|---|---
cystr|sci|ici|iсс|ise| сем| cen|csm| wем|есв|wrb| bra |еса|wra
--------------------------------------------------------------

--------------------------------------------------------------
адрес|источн|зап. В|источн|зап. В|озу пп|устан/сброс |усло|мод
кан.А|приемн|ист/пр|приемн|ист/пр| или  |тг.призн.или| вие|или
 бои |шины у|шины у|шины d|шины d|призн.|адрес озу пп|    |сдв
-----|------|------|------|------|------|------------|----|---
в   а|с    а|      |с    а|      |      |е          а|е  а|
-----|------|------|------|------|------|------------|----|---
22 21|20  18|  17  |16  14|  13  |  12  |11         7|6  2| 1
-----|------|------|------|------|------|------------|----|---
  17 |  18  |      |  19  |      |      |   20/21    | 22 |
-----|------|------|------|------|------|------------|----|---
 ara | ydev | wry  | ddev | wrd  | iомр |ffcnt/mpadr |cond|mps
--------------------------------------------------------------

6.3. Таблицы полей микропрограммного слова и их назначения

Таблица 1

К О П   СУАМ

SEQUENCER INSTRUCTION (SQI)

i3 i2 i1 i0
0  0  0  0 - 0 - переход по 0-ому адресу (JZ).
0  0  0  1 - 1 - условный переход к подпрограмме по
                 адресу, выбираемому из конвейерного
                 регистра (CJS) *).
0  0  1  0 - 2 - переход по адресу, выбираемому из
                 дешифрирующего ППЗУ (JMAP).
0  0  1  1 - 3 - условный переход по адресу, выбираемому
                 из конвейерного регистра (CJP).
0  1  0  0 - 4 - загрузка стека и условная загрузка
                 счетчика (PUSH).
0  1  0  1 - 5 - условный переход к подпрограмме по
                 адресу, выбираемому из регистра/счетчика
                 или из конвейерного регистра (JSRP).
0  1  1  0 - 6 - условный переход по векторному
                 адресу (CJV).
0  1  1  1 - 7 - условный переход по адресу,
                 выбираемому из регистра/счетчика или из
                 конвейерного регистра (JRP).
1  0  0  0 - 8 - повторение цикла, если счетчик
                 не равен 0 (RFCT).
1  0  0  1 - 9 - повторение по адресу, выбираемому
                 из конвейерного регистра, если счетчик
                 не равен 0 (RPCT).
1  0  1  0 - 10 - условный возврат из подпрограммы (CRTN).
1  0  1  1 - 11 - условный переход по адресу, выбираемому
                 из конвейерного регистра, и извлечение
                 из стека (CJPP).
1  1  0  0 - 12 - загрузка счетчика и последовательная
                 выборка (LDCT).
1  1  0  1 - 13 - проверка условия окончания цикла (LOOP).
1  1  1  0 - 14 - последовательная выборка (CONT).
1  1  1  1 - 15 - переход по одному из трех адресов (TWB).

*). Вместо конвейерного регистра может использоваться другой источник адреса на вход D СУАМ (см. Табл.2).

Таблица 2

ВЫБОР ИСТОЧНИКА АДРЕСА НА ВХОД  D   С У А М

(МАР)

В а
0 0 - конвейерный регистр (сигнал РЕ)
0 1 - ПНА КОП основного или дополнительного формата
      в зависимости от КОП основного формата (3f)
1 0 - ПНА групп из РР, "след0", "след1"
1 1 - не используется

   /МЕ СУАМ - ПНА чтения/записи регистров и памяти по обращению ПП и командами RMOD, WMOD.
   /VЕ СУАМ - ПНА прерываний.

d00 - начальный адрес ПНА чт/зп регистров и памяти
е00 - начальный адрес ПНА групп
f00 - начальный адрес ПНА прерываний

ТАБЛИЦА 3

ПРИЕМНИКИ РЕЗУЛЬТАТА   А Л У   М П С

ALU DESTINATION (ALUD)

i8 i7 i6         сдвиг   загрузка   сдвиг   загрузка    у
0  0  0  - 0       -        -         -      f -> q     f
0  0  1  - 1       -        -         -         -       f
0  1  0  - 2       -      f -> в      -         -       а
0  1  1  - 3       -      f -> в      -         -       f
1  0  0  - 4    вправо  f/2 -> в   вправо   q/2 -> q    f
1  0  1  - 5     - " -  f/2 -> в      -         -       f
1  1  0  - 6     влево   2f -> в    влево    2q -> q    f
1  1  1  - 7     - " -   2f -> в      -         -       f

ТАБЛИЦА 4

КОДЫ ОПЕРАЦИЙ   А Л У   М П С

FUNCTION (FUNC)

I5 I4 I3           Операции
0  0  0  -  0    R + S + С0
0  0  1  -  1    S - R - 1 + С0
0  1  0  -  2    R - S - 1 + С0
0  1  1  -  3    R .or. S
1  0  0  -  4    R .and. S
1  0  1  -  5    (.nоt. R) .and. S
1  1  0  -  6    R .eor. S
1  1  1  -  7    .nоt. (R .eor. S)

ТАБЛИЦА 5

ИСТОЧНИКИ ОПЕРАНДОВ   А Л У   М П С

ALU SOURCE (ALUS)

i2 i1 i0      R   S
0  0  0 - 0   а   q
0  0  1 - 1   а   в
0  1  0 - 2   0   q
0  1  1 - 3   0   в
1  0  0 - 4   0   а
1  0  1 - 5   d   а
1  1  0 - 6   d   q
1  1  1 - 7   d   0

ТАБЛИЦА 6

АДРЕСА РЕГИСТРОВ  КАНАЛОВ  А И В  МПС

RА  И  RВ

d  с  в  а
х  х  х  х  -  номер регистра МПС, используемого
               в микропрограмме

ТАБЛИЦА 7

КОДЫ ОПЕРАЦИЙ СУСС

STATUS FUNCTION (STF)

операции с битами регистра состояния N (/CEN=0)


i5 i4 i3 i2 i1 i0
0  0  1  0  0  0   0->nz   уст. В "0" признака z
0  0  1  0  0  1   1->nz   уст. В "1" признака z
0  0  1  0  1  0   0->nс   уст. В "0" признака с
0  0  1  0  1  1   1->nс   уст. В "1" признака с
0  0  1  1  0  0   0->nn   уст. В "0" признака n
0  0  1  1  0  1   1->nn   уст. В "1" признака n
0  0  1  1  1  0   0->nv   уст. В "0" признака ovr
0  0  1  1  1  1   1->nv   уст. В "1" признака ovr

операции со словами регистра состояния N (/CEN=0)


i5 i4 i3 i2 i1 i0
0  0  0  0  0  0    м->n    запись содержимого рг. М в рг. N
0  0  0  0  0  1    1->n    уст. В "1" всех разрядов рг. N
0  0  0  0  1  0    м<->n   регистровый обмен
0  0  0  0  1  1    0->n    уст. В "0" всех разрядов рг. N

операции загрузки регистра состояния N (/CEN=0)


i5 i4 i3 i2 i1 i0
0  0  0  1  1  0    iz->nz       загрузка с запоминанием
0  0  0  1  1  1    iс->nс       признака переполнения
                    in->nn
                  iv.or.nv->nv

0  1  1  0  0  х    iz->nz       загрузка с инверсией
1  0  1  0  0  х   /iс->nс       признака переноса
1  1  1  0  0  х    in->nn
                    iv->nv

0  0  0  1  0  х    iz->nz       загрузка непосредственно
0  1  0  х  х  х    iс->nс       со входов признаков
0  1  1  0  1  х    in->nn       состояния
0  1  1  1  х  х    iv->nv
1  0  0  х  х  х
1  0  1  0  1  х
1  0  1  1  х  х
1  1  0  х  х  х
1  1  1  0  1  х
1  1  1  1  х  х

регистровые операции рг. М

/сем = /ez = /ес = /en = /ev = 0


i5 i4 i3 i2 i1 i0
0  0  0  0  0  0    у->м    запись с шины у в рг. М
0  0  0  0  0  1    1->м    уст. В "1" всех разрядов рг. М
0  0  0  0  1  0    n<->м   регистровый обмен
0  0  0  0  1  1    0->м    уст. В "0" всех разрядов рг. М
0  0  0  1  0  1   /м->м    инвертирование содержимого рг. М

0  0  0  1  0  0    iz->mz  используется при организации
                    mv->мс  сдвигов с использованием
                    in->mn  признака переполнения,
                    мс->mv  а не переноса

0  0  1  0  0  х    iz->mz  загрузка
0  1  1  0  0  х   /iс->мс  с инверсией
1  0  1  0  0  х    in->mn  признака переноса
1  1  1  0  0  х    iv->mv

0  0  0  1  1  х    iz->mz  загрузка непосредственно
0  0  1  0  1  х    iс->мс  со входов признаков
0  0  1  1  х  х    in->mn  состояния
0  1  0  х  х  х    iv->mv
0  1  1  0  1  х
0  1  1  1  х  х
1  0  0  х  х  х
1  0  1  0  1  х
1  0  1  1  х  х
1  1  0  х  х  х
1  1  1  0  1  х
1  1  1  1  х  х

управление выводом информации через шину У


/оеу i5 i4     у
  1   х  х     z   состояние высокого сопротивления
  0   0  х   n->у  при "0" на входах I5-I0 шина У всегда
                   является входной, независимо от /ОЕУ
  0   1  0   м->у
  0   1  1   i->у

управление выходом кода СТ (/ОЕСТ=0)


i3  i1      i5=i4=0     i5=0,i4=1    i5=1,i4=0     i5=i4=1
  i2  i0
0 0 0 0 (nn.eor.nv).or.nz       (mn.eor.mv).or.mz
                  (nn.eor.nv).or.nz        (in.eor.iv).or.iz
0 0 0 1 /(nn.eor.nv).and./nz  /(mn.eor.mv).and./mz
                /(nn.eor.nv).and./nz     /(in.eor.iv).and./iz
0 0 1 0    nn.eor.nv    nn.eor.nv    mn.eor.mv    in.eor.iv
0 0 1 1   /(nn.eor.nv) /(nn.eor.nv) /(mn.eor.mv) /(in.eor.iv)
0 1 0 0        nz           nz           mz           iz
0 1 0 1       /nz          /nz          /mz          /iz
0 1 1 0        nv           nv           mv           iv
0 1 1 1       /nv          /nv          /mv          /iv
1 0 0 0     nс.or.nz     nс.or.nz     мс.or.mz    /iс.or.iz
1 0 0 1   /nс.and./nz  /nс.and./nz  /мс.and./mz   iс.and./iz
1 0 1 0        nс           nс           мс           iс
1 0 1 1       /nс          /nс          /мс          /iс
1 1 0 0    /nс.or.nz    /nс.or.nz    /мс.or.mz    /iс.or.iz
1 1 0 1    nс.and./nz   nс.and./nz   мс.and./mz   iс.and./iz
1 1 1 0    in.eor.mn        nn           mn           in
1 1 1 1   /(in.eor.mn)     /nn          /mn          /in

проверка отношения чисел А и В

после выполнения операции (А-В)

числа без знака


отношение             I3-I0       I3-I0
         состояние     СТ=1        СТ=0
 а.eq.b     z=1      0 1 0 0     0 1 0 1
 а.nе.b     z=0      0 1 0 1     0 1 0 0
 а.gе.b     с=1      1 0 1 0     1 0 1 1
 а.lт.b     с=0      1 0 1 1     1 0 1 0
 а.gт.b  с.and./z=1  1 1 0 1     1 1 0 0
 а.lе.b  /с.or.z=1   1 1 0 0     1 1 0 1

числа в дополнительном коде


отношение                     I3-I0       I3-I0
              состояние        СТ=1        СТ=0
 а.eq.b          z=1         0 1 0 0     0 1 0 1
 а.nе.b          z=0         0 1 0 1     0 1 0 0
 а.gе.b     /(n.eor.v)=1     0 0 1 1     0 0 1 0
 а.lт.b       n.eor.v=1      0 0 1 0     0 0 1 1
 а.gт.b /(n.eor.v).and./z=1  0 0 0 1     0 0 0 0
 а.lе.b   (n.eor.v).or.z=1   0 0 0 0     0 0 0 1

управление формированием сигнала входного переноса


i12   i11   i5  i3  i2  i1    С0
 0     0     х   х   х   х     0
 0     1     х   х   х   х     1
 1     0     х   х   х   х    сх
 1     1     0   0   х   х    nс
 1     1     0   х   1   х    nс
 1     1     0   х   х   1    nс
 1     1     0   1   0   0   /nс
 1     1     1   0   х   х    мс
 1     1     1   х   1   х    мс
 1     1     1   х   х   1    мс
 1     1     1   1   0   0   /мс
вс7
управление сдвигами (/SЕ=0)

i10 i9 i8 i7 i6       тип  сдвига          pf0 pf3 pq0 pq3  мс

                 "0"         "0"
 0  0  0  0  0    -->рон-->   -->рг.Q-->    z   0   z   0   -

                 "1"         "1"
 0  0  0  0  1    -->рон-->   -->рг.Q-->    z   1   z   1   -

                 мс<-------|  mn
 0  0  0  1  0    "0"->рон-|  -->рг.Q-->    z   0   z  mn  pf0

                 "1"
 0  0  0  1  1    -->рон-------->рг.Q-->    z   1   z  pf0  -


 0  0  1  0  0    мс-->рон------>рг.Q-->    z  мс   z  pf0  -


 0  0  1  0  1    mn-->рон------>рг.Q-->    z  mn   z  pf0  -

                 "0"
 0  0  1  1  0    -->рон-------->рг.Q-->    z   0   z  pf0  -

                   мс<-----------------|
 0  0  1  1  1    "0"-->рон----->рг.Q--|    z   0   z  pf0 pq0

                    |-------| |--------|
 0  1  0  0  0  мс<-|->рон--| |->рг.Q--|    z  pf0  z  pq0 pf0

                v---------|   |--------|
 0  1  0  0  1  мс-->рон--|   |->рг.Q--|    z  мс   z  pq0 pf0

                 |--------|   |--------|
 0  1  0  1  0   |-->рон--|   |->рг.Q--|    z  pf0  z  pq0  -


 0  1  0  1  1    |с-->рон------>рг.Q-->    z  iс   z  pf0  -

                  v--------------------|
 0  1  1  0  0    мс->рон------>рг.Q---|    z  мс   z  pf0 pq0

                      |----------------|
 0  1  1  0  1   мс<--|-->рон--->рг.Q--|    z  pq0  z  pf0 pq0

                |n.eor.iv
 0  1  1  1  0   ------->рон---->рг.Q-->  z in.eor.iv z pf0 -

                 |---------------------|
 0  1  1  1  1   |--->рон------>рг.Q---|    z  pq0  z  pf0  -

                        "0"          "0"
 1  0  0  0  0  мс<--рон<--   <--рг.Q<--    0   z   0   z  pf3

                        "1"          "1"
 1  0  0  0  1  мс<--рон<--   <--рг.Q<--    1   z   1   z  pf3

                        "0"           "0"
 1  0  0  1  0    <--рон<--   <--рг.Q<--    0   z   0   z   -

                        "1"           "1"
 1  0  0  1  1    <--рон<--   <--рг.Q<--    1   z   1   z   -

                                     "0"
 1  0  1  0  0  мс<--рон<-------рг.Q<---   pq3  z   0   z  pf3

                                     "1"
 1  0  1  0  1  мс<--рон<-------рг.Q<---   pq3  z   1   z  pf3

                                     "0"
 1  0  1  1  0   <---рон<-------рг.Q<---   pq3  z   0   z   -

                                     "1"
 1  0  1  1  1   <---рон<-------рг.Q<---   pq3  z   1   z   -

                   |-------|  |--------|
 1  1  0  0  0 мс<-|-рон<--|  |--рг.Q<-|   pf3  z  pq3  z  pf3

                 |---------|  |--------|
 1  1  0  0  1   мс<--рон<-|  |--рг.Q<-|   мс   z  pq3  z  pf3

                  |-------|   |--------|
 1  1  0  1  0    |--рон<-|   |--рг.Q<-|   pf3  z  pq3  z   -

                   мс----|           "0"
 1  1  0  1  1   <--рон<-|   <--рг.Q<---   мс   z   0   z   -

                  |--------------------|
 1  1  1  0  0    мс<--рон<-----рг.Q<--|   pq3  z   мс  z  pf3

                      |----------------|
 1  1  1  0  1   мс<--|--рон<----рг.Q<-|   pq3  z  pf3  z  pf3

                     мс----------------|
 1  1  1  1  0     <--рон<------рг.Q<--|   pq3  z   мс  z   -

                   |-------------------|
 1  1  1  1  1     |---рон<-----рг.Q<--|   pq3  z  pf3  z   -

ТАБЛИЦА 8

ИСТОЧНИК НОМЕРА МОДИФИКАТОРА

MODIFICATOR NUMBER SOURCE ADRESS (MNSA)

в а
0  0  -  исполнительный адрес
0  1  -  поле модификатора команды
1  0  -
1  1  -  микропрограмма

ТАБЛИЦА 9

НОМЕР МОДИФИКАТОРА В ГРУППЕ

MODIFICATOR NUMBER (MODNM)

е  d  с  в  а
х  х  х  х  х - номер модификатора, используемого
                в микропрограмме (в обратном коде)

ТАБЛИЦА 10

ПАРАМЕТР СДВИГА

(PSHF)

j  f  е  d  с  в  а   параметр сдвига сдвигателя

0  х  х  х  х  х  х - сдвиг влево, количество сдвигов
                      задается в дополнительном коде;
1  х  х  х  х  х  х - сдвиг вправо, количество сдвигов
                      задается в прямом коде.

ТАБЛИЦА 11

ИСТОЧНИКИ ИНФОРМАЦИИ НА ШИНУ D ЦП

D - SOURCE (DSRC)

d с в а
0 0 0 0 - не используется
0 0 0 1 - регистр номера группы ОЗУ модификаторов
0 0 1 0 - регистр номера процесса
0 0 1 1 - триггеры признаков
0 1 0 0 - регистр физической страницы
0 1 0 1 - регистр КОП арбитра
0 1 1 0 - произведение (младшие разряды)
0 1 1 1 - произведение (старшие разряды)
1 0 0 0 - адрес команды
1 0 0 1 - результат сдвига
1 0 1 0 - КОП команды
1 0 1 1 - результат поиска левой единицы
1 1 0 0 - ПЗУ констант
1 1 0 1 -
1 1 1 0 - чтение часов и таймера СВ (нет dsrc15 и wrd)
1 1 1 1 - переключение направления ШФ от шины У ЦП
          к часам и таймеру СВ (запись: dsrc15 + wrd)

ТАБЛИЦА 12

ПРИЕМНИКИ ИНФОРМАЦИИ С ШИНЫ У ЦП;  СТРОБ Т1

У - DESTINATION (YDST)

С в а
0 0 0 0 - не используется
0 0 0 1 - регистр номера группы ОЗУ модификоторов
0 0 1 0 - регистр номера процесса
0 0 1 1 - регистр режимов и триггеры признаков (кроме ткк)
0 1 0 0 - регистр физической страницы
0 1 0 1 - регистр КОП арбитра
          (для пультового останова)
0 1 1 0 - множимое
0 1 1 1 - множитель, одновременно - запуск умножителя
1 0 0 0 - регистр исполнительного адреса
1 0 0 1 - регистр параметра сдвига
1 0 1 0 - запуск сброса кэша.
          на время сброса кэша обращение к нему блокируется,
          чтение происходит только из памяти.
1 0 1 1 - установка арбитра в начальное состояние или
          сброс BTR (одновременно с НОП арбитра).
          если КОП арбитра не 0, происходит запуск арбитра!
1 1 0 0 -
1 1 0 1 -
1 1 1 0 -
1 1 1 1 -

ТАБЛИЦА 13

КОД ОПЕРАЦИИ СДВИГАТЕЛЯ

SHIFT FUNCTION (SHF)

В а
0 0 - циклический сдвиг вправо
0 1 - логический сдвиг
1 0 - арифметический сдвиг
1 1 - "расхлопывание" (переход к формату БЭСМ-6)

ТАБЛИЦА 14

К О П   АРБИТРА

ARBITER INSTRUCTION (ARBI)

d с в а
0 0 0 0 - НОП
0 0 0 1 - чтение кэш команд
0 0 1 0 - запись в кэш команд
0 0 1 1 - чтение кэш операндов
0 1 0 0 - запись в кэш операндов
0 1 0 1 -
0 1 1 0 -
0 1 1 1 -
1 0 0 0 - чтение команды
1 0 0 1 - чтение операнда
1 0 1 0 - запись результата
1 0 1 1 - чтение - модификация - запись
          (семафорное чтение)
1 1 0 0 - запись в режиме блочной передачи (BTR)
1 1 0 1 - чтение в режиме блочной передачи (BTR)
1 1 1 0 - сброс прерываний на шине
1 1 1 1 - чтение прерываний с шины

ТАБЛИЦА 15

УПРАВЛЕНИЕ ДЛИТЕЛЬНОСТЬЮ ТАКТОВОГО ИМПУЛЬСА

CYCLE STRATCH (CYSTR)

с в а
0 0 1 - 3 нанотакта
        (минимальная длительность тактового импульса)
0 0 0 - 4
1 0 0 - 5
1 1 0 - 6
0 1 0 - 7
0 1 1 - 8
1 1 1 - 9
1 0 1 - 10 нанотактов (максимальная)

000                           001
       -------- 1 ----               --------- 1 ----
 т1 ---|   2  |---|               ---|   3   |---|

       -----   2  ----               -------  2  ----
 т2 ---| 1 |------|               ---|  2  |-----|

       -----   2  ----               -------  2  ----
 т3 ---| 1 |------|               ---|  2  |-----|

    ---- 1 --------               ---- 1 ---------
 т4    |---|   2  |---               |---|   3   |---

101                           111
       ---------- 1 ----             ----------- 1 ----
 т1 ---|    4   |---|             ---|    5    |---|

       --------  2  ----             ---------  2  ----
 т2 ---|   3  |-----|             ---|   4   |-----|

       -------   3  ----             --------   3  ----
 т3 ---|  2  |------|             ---|   3  |------|

    ---- 1 ----------             ---- 1 -----------
 т4    |---|    4   |---             |---|    5    |---

011                           010
       ------------ 1 ----           ------------- 1 ----
 т1 ---|     6    |---|           ---|     7     |---|

       ----------  2  ----           -----------  2  ----
 т2 ---|    5   |-----|           ---|    5    |-----|

       -------   4    ----           ---------   4   ----
 т3 ---|  3  |--------|           ---|   4   |-------|

    ---- 1 ------------           ---- 1 -------------
 т4    |---|    6     |---           |---|     7     |---

110                           100
       -------------- 1 ----         --------------- 1 ----
 т1 ---|      8     |---|         ---|      9      |---|

       ------------  2  ----         -------------  2  ----
 т2 ---|     6    |-----|         ---|     8     |-----|

       ---------    5   ----         ----------    5   ----
 т3 ---|   4   |--------|         ---|    5   |--------|

    ---- 1 --------------         ---- 1 ---------------
 т4    |---|     8      |---         |---|      9      |---

ТАБЛИЦА 16

АДРЕСА РЕГИСТРОВ КАНАЛА  В  Б О И   ДАННЫХ И ТЕГА

В - REGISTER ADRESS (BRA)

В а
0 0 - rg0 - физический адрес;
            в бои тега: не используется.
0 1 - rg1 - регистр левой, правой команды;
            в бои тега: тег команды.
1 0 - rg2 - регистр операнда;
            в бои тега: тег операнда.
1 1 - rg3 - регистр результата;
            в бои тега: тег результата (сумматора)

ТАБЛИЦА 17

АДРЕСА РЕГИСТРОВ КАНАЛА А БОИ ДАННЫХ

А - REGISTER ADRESS (ARA)

В а
0 0 - rg0 - физический адрес;
0 1 - rg1 - регистр левой, правой команды;
1 0 - rg2 - регистр операнда;
1 1 - rg3 - регистр результата.

ТАБЛИЦА 18

ИСТОЧНИКИ/ПРИЕМНИКИ ИНФОРМАЦИИ С ШИНЫ У

У - DEVICE (YDEV)

С в а
0 0 0 - не используется
0 0 1 - канал В БОИ тега (ЕСВ)
0 1 0 - физический адрес (только на чтение)
        одновременно - сигнал записи в РФС и
        изменение признаков БОБР,БИЗМ,БМСП и запуск арбитра
0 1 1 - регистр исполнительного адреса (только на чтение)
        (запись - см. Таблицу 12)
1 0 0 - ОЗУ приписок (CS)
1 0 1 - ОЗУ обмена с ПП
1 1 0 - ОЗУ останова 0 (только на запись)
1 1 1 - ОЗУ останова 1 (только на запись)

ТАБЛИЦА 19

ИСТОЧНИКИ/ПРИЕМНИКИ ИНФОРМАЦИИ С ШИНЫ D

D - DEVICE (DDEV)

С в а
0 0 0 - не используется
0 0 1 - БОБР, БИЗМ
0 1 0 - БМСП
0 1 1 - сброс ПИА
1 0 0 - регистр и таймер счетного времени (сигнал CS) (*)
1 0 1 - СУСС (**)
1 1 0 - ОЗУ приоритетов страниц 0 (**)
1 1 1 - ОЗУ приоритетов страниц 1 (**)

блоки, помеченные (*): источники, приемники с шины У;
блоки, помеченные (**): источники - на шину D, приемники - с шины У;
непомеченные: источники, приемники с шины D.

ТАБЛИЦА 20

УСТАНОВКА/СБРОС ТРИГГЕРОВ ПРИЗНАКОВ

FLIP-FLOP CONTROL (FFCNT)

е d с в а
0 0 0 0 0 - не используется
0 0 0 0 1 - логическая группа
0 0 0 1 0 - группа умножения
0 0 0 1 1 - группа сложения
0 0 1 0 0 -
0 0 1 0 1 - установка ПИА
0 0 1 1 0 - сброс ППК
0 0 1 1 1 - установка - " -
0 1 0 0 0 - сброс ППУ
0 1 0 0 1 - установка - " -
0 1 0 1 0 - сброс маски прерываний
0 1 0 1 1 - установка - " -
0 1 1 0 0 - сброс МП признака "след 0"
0 1 1 0 1 - установка - " -
0 1 1 1 0 - сброс МП признака "след 1"
0 1 1 1 1 - установка - " -
1 0 0 0 0 - сброс прерывания от часов счетного времени
1 0 0 0 1 - сброс прерывания от таймера счетного времени
1 0 0 1 0 - сброс ТКК (ППК стандартизатора)
1 0 0 1 1 - установка - " -
1 0 1 0 0 - установка нового режима
1 0 1 0 1 - запуск загрузки ОЗУ БМСП единицами
1 0 1 1 0 - установка режима эмуляции
1 0 1 1 1 - переброс тг. ТКК
1 1 0 0 0 - установка тг. "останов" (HALT)
1 1 0 0 1 - сброс прерываний (кроме прерываний от таймеров)
1 1 0 1 0 - сброс тг. "ПУСК"
1 1 0 1 1 - установка признака "озу пп->цп" прочитано
1 1 1 0 0 - установка признака в "озу пп->цп" есть информация
1 1 1 0 1 - установка признака в "озу цп->пп" есть информация,
            одновременно - установка тг., что "озу цп->пп занято" (условие 10111)
1 1 1 1 0 - установка программного прерывания (прерывание с номером 31,
            проходящее при отсутствии БВП и стробируемое ПМИ)
1 1 1 1 1 - установка внешнего прерывания на магистраль по шине D0
            (ЦП посылает прерывание, сам не прерываясь)


 в а - сигналы а1,а0 при обращении к часам и таймерам (IОМР=1).

ТАБЛИЦА 21

АДРЕС ОЗУ ОБМЕНА С ПП

(MPADR)

d  с  в  а
х  х  х  х  -  адрес слова ОЗУ обмена

ТАБЛИЦА 22

АДРЕС ВЫБОРКИ УСЛОВИЯ

CONDITION (COND)

е d с в а
0 0 0 0 0 - "да"
0 0 0 0 1 - БНОР
0 0 0 1 0 - БОКР
0 0 0 1 1 - БПП
0 0 1 0 0 - ББЧ
0 0 1 0 1 - БППУ
0 0 1 1 0 - РД
0 0 1 1 1 - РЭ
0 1 0 0 0 - ППК
0 1 0 0 1 - ПИА
0 1 0 1 0 - 20-й разряд РР (РЭС)
0 1 0 1 1 - СТ СУСС
0 1 1 0 0 - след1
0 1 1 0 1 - ПОП
0 1 1 1 0 - ИР15
0 1 1 1 1 - ТКК
1 0 0 0 0 - "пуск"
1 0 0 0 1 - отсутствие готовности умножителя
1 0 0 1 0 - 5 разряд статусного регистра ЦП
1 0 0 1 1 - признак наличия прерываний
1 0 1 0 0 - ОЗУ БМСП единицами заполнено
1 0 1 0 1 - готовность арбитра
1 0 1 1 0 -
1 0 1 1 1 - ОЗУ обмена "цп->пп" прочитано ("1"); ffcnt29 устанавливает
            его в "0"; ПП командой OUT 7F устанавливает в "1".
1 1 0 0 0 -
1 1 0 0 1 -
1 1 0 1 0 -
1 1 0 1 1 -
1 1 1 0 0 -

ЗНАЧЕНИЯ ОДНОБИТОВЫХ ПОЛЕЙ МИКРОИНСТРУКЦИИ

ALU  - разрешение выхода У МПС (ОЕ МПС)
Н    - в операции АЛУ участвуют 32 (0) или 64 (1) разряда МПС
MOD  - режим команд RMOD, WMOD
RLD  - загрузка в рг/сч СУАМ (сигнал RLD) и управление ШФ шин У ЦП и D СУАМ;
LETC - пропуск ПИА на вход ПНА КОП
SCI  - условие, выбираемое полем COND, подается на вход CI СУАМ ("жду");
       если SCI не задано, CI СУАМ равен 1.
ICI  - инверсия условия, подаваемого на вход CI СУАМ.
ICC  - инверсия условий, выбираемых полем COND
ISE  - признак последней микроинструкции, разрешающий прохождение некоторых
       прерываний и копирование ТКК в ППК (interrupt strobe enable)
СЕМ  - разрешение записи в регистр М СУСС (/СЕМ)
CEN  - разрешение записи в регистр N СУСС (/CEN)
CSM  - обращение к ОЗУ модификаторов
WEM  - запись в ОЗУ модификаторов (write enable modificator)
ЕСВ  - выбор канала В БОИ данных
WRB  - запись по каналу В в БОИ данных и БОИ тега
ЕСА  - выбор канала А БОИ данных
WRA  - запись по каналу А в БОИ данных
WRY  - запись в источники/приемники шины У
WRD  - запись в источники/приемники поля DDEV
IOMP - выбор ОЗУ обмена, сигналов А1А0 для таймеров или дешифратора триггеров признаков:
"1" - 7:10 разряды поля МП - адрес ОЗУ обмена;
"1" - 7:8 разряды - сигналы А1А0 часов и таймеров;
"0" - 7:11 - управление триггерами признаков.
MPS  - задание параметра сдвига:
       1 - из микропрограммы (56:62 разряды);
       0 - в регистре параметра сдвига.

6.4. Некоторые БИС, входящие в состав ЦП, и их использование

6.4.1. Блок обмена информацией (БОИ)

Обмен информацией между центральными процессорами, ОЗУ и внешними устройствами осуществляется 16 4-разрядными БИС типа К1802ВВ1, используемыми для чтения, записи команд и данных, и схемой из 2 аналогичных БИС для чтения, записи тега.

Структурная схема бои

                     ^               ^
                     |               |
                   4 v A           4 v X
               ----------------------------- <--- а0-а1
               |                           | <--- ес
               |    rg0, rg1, rg2, rg3     | <--- r
               |                           | <--- w
               -----------------------------
                   4 ^ B           4 ^ C
                     |               |
                     v               v

БОИ содержит 4 регистра: RG0,RG1,RG2,RG3. Ввод и вывод данных в регистры производится по 4-м каналам: А,В,С,Х. Канал Х может использоваться для выдачи информации на длинные линии связи; он подключен к общей шине данных.

Разрешением обмена информацией с каналами управляют сигналы /ЕСА, /ЕСВ, /ЕСС, /ЕСХ (Enable Channel) (здесь и далее символ “/” означает инвертированный сигнал). При “0” на этих входах разрешен обмен информацией выбранного регистра с соответствующим каналом. Выборка регистра осуществляется подачей 2-разрядного двоичного кода на адресные входы АА0-АА1, АВ0-АВ1, АС0-АС1, АХ0-АХ1.

Сигналы /RА, /RВ, /RС, /RХ (Read) разрешают считывание выбранных регистров по каналам А,В,С,Х. Сигналы /WА, /WВ, /WС, /WХ (Write) - разрешают запись, причем запись в RG0 производится “фронтом”, а в остальные регистры - “потенциалом”.

Использование регистров:

в БОИ тега - не используется.

в БОИ тега - тег команды.

в БОИ тега - тег операнда, 8 разрядов.

в БОИ тега - тег результата, 8 разрядов.

Использование каналов:

Использование сигналов:

При наличии сигналов /W и /ЕС при обращениях к БОИ происходит запись в соответствующий регистр. При наличии сигнала /ЕС и отсутствии /W происходит чтение внутреннего регистра. Сигналами каналов, обращенными к внешней шине данных (/WХ, /ЕСХ, АХ0-АХ1), управляет арбитр шины. Код адреса регистра канала С АС0-АС1 всегда равен 10. Сигналами /WА, /WВ, /ЕСА, /ЕСВ управляет микропрограмма. Значения АА0-АА1, АВ0-АВ1 задаются также в микропрограмме.

6.4.2. Микропроцессорная секция (К1804ВС1)

Четырехразрядная микропроцессорная секция (МПС) состоит из четырех основных блоков: внутренней памяти, АЛУ, регистра Q и управления.

Структурная схема МПС:

Блок внутренней
    памяти         -------------------
                   |                4|
                   v                 |
       pr3 ----------------- pr0     |
       <-->|    с  д  а    |<-->     |
           -----------------         |
                   | 4               |     блок регистра q
                   v                 |
  а0-а3  4 -----------------         |          ------------
  -------->|               |         |          |          |
  в0-в3  4 |    р  з  у    |         |          v          |
  -------->|               |         | pq3 ----------- pq0 |
           -----------------         | <-->|  с д р  |<--> |
               |       |             |     -----------     |
               v       v             |------    |          |
           -------- --------         |      |   | 4        |
т---->     | рг.А | | рг.В |         |      v   v          |
           -------- --------         |     -----------     |
               |       |             |     |  рг. q  |     |
               |4      |4            |     -----|-----     |
     ----------|       |             |          v          |
     |         |       |   ----------+----------------------
d0-d3|         |  "0"  |   |         |
-----+------   |   |   |   |         |
     |    4|   |   |4  |   |4        |
     |     v   v   v   v   v         |
     | ---------------------------   |
     | |    d   а   0   в   q    |   |
     | |          с и д          |   |
     | ---------------------------   |        управляющие
     |    | 4                 | 4    |          сигналы
     |    v                   v      |          ^....^
     | --------           --------   |          |....|
 с4<-+-\   r   \         /   s   /   |      --------------
 /g<-+--\       ---------       /    |      |    блок    |
 /р<-+---\       а  л  у       /  с0 |      | управления |
ovr<-+----\                   /<---- |      --------------
  z<-+-----\        f        /       |         ^   ^   ^
 f3<-+------\---------------/        |         |   |   |
     |              |                |         |   | i2-i0
     -----------|   |-----------------         | i5-i3
                v   v                        i8-i6
             ---------------
             |   с  в  д   |                 блок управления
             ---------------
арифметическо-      | 4
  логический        |<------/ое
     блок           v у

БЛОК ВНУТРЕННЕЙ ПАМЯТИ содержит регистровое запоминающее устройство (РЗУ) с двумя независимыми каналами выбора информации. Выбор из блока внутренней памяти любого регистра в качестве источника информации осуществляется сигналами на адресных входах А0-А3 или В0-В3. Из РЗУ могут быть одновременно считаны 2 слова, при этом, если на адресных входах установлены одинаковые адреса, на обоих выходах РЗУ появятся идентичные данные.

Запись данных производится в регистр, адресуемый сигналами В0-В3. Моментом начала записи является момент перехода тактового сигнала Т из “1” в “0”. С этого момента информация на выходах из регистров А и В фиксируется, что устраняет неопределенность в кольце передачи информации с выхода блока внутренней памяти на его вход.

Информация перед записью в РЗУ может быть сдвинута влево или вправо на 1 разряд. Эту операцию выполняет сдвигатель данных СДА. PR0, PR3 - сигналы на двунаправленных выводах МПС, возникающие при выполнении операции сдвига перед записью в РЗУ.

АРИФМЕТИЧЕСКО-ЛОГИЧЕСКИЙ БЛОК включает двухвходовое арифметическо-логическое устройство (АЛУ), выполняющее 8 логических и арифметических операций и формирующее 4 признака результата: перенос из старшего разряда С4, переполнение OVR, знак или содержимое старшего разряда на выходе F3 АЛУ и признак нулевого значения Z всех выходов АЛУ. На входах АЛУ включен селектор источника данных (СИД), позволяющий выбирать в качестве пары операндов АЛУ информацию из 5 источников: с внешней шины данных D0-D3, с каналов А и В РЗУ, из дополнительного регистра Q или нулевую константу. С выхода АЛУ информация подается на селектор выходных данных (СВД). На второй вход селектора информация может быть передана прямо с выхода А РЗУ, минуя АЛУ. С выхода СВД информация передается на выходную шину У. Разрешением выдачи информации через У-выходы управляет сигнал /ОЕ.

Выбор источников данных на входы R и S АЛУ задается сигналами микрокоманды I0-I2, приемника результата - сигналами I6-I8, функции - сигналами I3-I5.

Арифметические операции в АЛУ выполняются с учетом значения сигнала входного переноса С0 по правилам дополнительного кода при представлении отрицательных чисел. (в частности, при выполнении операции вычитания С0 устанавливается в 1 для представления результата в дополнительном коде).

БЛОК РЕГИСТРА Q состоит из дополнительного регистра Q и сдвигателя регистра (СДР), который позволяет записывать информацию в регистр Q с выхода АЛУ и сдвигать содержимое регистра Q вправо или влево на 1 разряд. PQ0, PQ3 - сигналы на двунаправленных выводах МПС, возникающие при выполнении операции сдвига информации перед записью в регистр Q.

БЛОК УПРАВЛЕНИЯ формирует управляющие сигналы для остальных блоков МПС в зависимости от сигналов кода микрокоманды I0-I8.

Арифметические и логические операции в ЦП с 64-разрядными данными производятся схемой из 16 4-разрядных микропроцессорных секций. Адресные вычисления и арифметические операции над модификаторами (32 разряда) выполняются схемой из 8 МПС, соответствующей младшей половине 64-разрядной схемы, причем сигналы выходного переноса, знакового разряда, переполнения и нулевого результата формируются в зависимости от типа данных (64 или 32).

Использование сигналов:

Сигналами I0-I8, А0-А3, В0-В3, /ОЕ, С0 управляет микропрограмма; сигналы D0-D3 поступают с входной шины D ЦП; У0-У3 выходят на шину У ЦП; сигналы С4, F4, OVR, Z, PR0, PR3, PQ0, PQ3 передаются на схему управления состоянием и сдвигами К1804ВР2, и далее - на мультиплексор условий; /Р и G используются для формирования ускоренного переноса.

6.4.3. Схема управления состоянием и сдвигами (К1804ВР2)

                                     блок обработки
                     iz,in,iv,iс        признаков
                          |
                          | 4
            --------------+-------------
            |         ----+---------   |
            |   ------+---+----    |   |   -------
          4 |   |     |   |   |    | 4 | 4 | 4   |
            v   v     |   |   |    v   v   v     |
       ------------   |   |   |   ------------   |
       |   muxn   |   |   |   |   |   muxm   |   |
       ------------   |   |   |   ------------   |
            | 4       |   |   |        | 4       |
            v         |   |   |        v         |
  /cen ------------   |   |   |   ------------   |/сем
  ---->|   рг.N   |   |   |   |   |   рг.М   |<--+----
       ------------   ^   |   ^   ------------   | /ev
            |         | 4 | 4 | 4      |         | /ez
            ----------|   |   ----------         | /en
i*                    v   v   v                  | /ес
  ^  ^  ^  ^       ---------------               |
  |  |  |  |       |   mux вых   |               ^
--------------     ---------------               |
|    блок    |            |                      |
| управления |            |------------>-----------------<--->
--------------            v          4             yz,yn,yv,ус
      ^          ------------------
      | 6        | схема проверки |
    i0-i5        |     условия    |
                 ------------------
                          |           /оест
                          |<---------------
                       ст v   блок проверки
                                условия

       сх  "0" "1"  мс  nс         "0" "1" мс  mn  iс in$iv
        |   |   |   |   |           |   |   |   |   |   |
        v   v   v   v   v           v   v   v   v   v   v
    2  -------------------       pf3---------------------pf0
------>| блок управления |<--    <->|  блок управления  |<->
i11,i12|    переносом    | i*    pq3|      сдвигами     |pq0
       -------------------       <->---------------------<->
                |                       ^     ^     |
                | с0                    |     |5    v
                v                      /sе  i6-i10  загрузка
                                                    разряда мс

Схема управления состоянием и сдвигами (СУСС) предназначена для выполнения различных функций обслуживания АЛУ: формирования сигнала входного переноса в МПС и схему ускоренного переноса; организации сдвигов; выполнения операции с регистрами состояния; проверки одного из 16 условий, поступающих с выходов регистров состояния или МПС. В схеме СУСС можно выделить 5 основных блоков: обработки признаков, проверки условия, управления переносом, управления сдвигами, управления.

БЛОК ОБРАБОТКИ ПРИЗНАКОВ состоит из двух 4-разрядных регистров состояния (рг. N и рг. М), двух входных мультиплексоров (MUXN и MUXM) и выходного мультиплексора (MUX Вых) и предназначен для хранения и модификации признаков состояния МПС: переноса (С), знака (N), переполнения (OVR) и нуля (Z).

В рг. N информация поступает с выхода двухвходового MUXN. В зависимости от сигналов микрокоманды I0-I5 в рг. N может быть записана информация со входов признаков состояния (IС, IN, IV, IZ) или с выходов рг. М (МС, MN, MV, MZ), а также “0” или “1”. Для записи необходимо, чтоб сигнал разрешения записи /CEN был установлен в “0”. С рг. N можно выполнять операции загрузки регистра со входов признаков состояния; регистровые операции и операции с отдельными разрядами регистра. Операции с битами представляют собой установку в “0” или “1” одного из разрядов рг. N в зависимости от сигналов микрокоманды I0-I5. Регистровые операции представляют собой операции со всем словом, записанным в рг. N. В зависимости от сигналов I0-I5 выполняется одна из четырех регистровых операций: запись содержимого рг. М в рг. N, регистровый обмен или установка всех разрядов рг. N в “0” или “1”. Операции загрузки регистра представляют собой запись информаци в рг. N со входов признаков состояния (IС, IN, IV, IZ).

В рг. М информация поступает с выхода трехвходового MUXM. В зависимости от значения сигналов I0-I5 в рг. М может быть записана информация со входов признаков состояниия, с выходов рг. N или с двунаправленной шины У (УС, YN, YV, YZ). Кроме того, в каждый разряд рг. М может быть записан “0” или “1”. Для выполнения записи необходимо, чтобы на входе разрешения записи в рг. М (/СЕМ) был установлен “0”.

Рг. М выполняет операции с битами, со словами и операции загрузки рг. М со входов IС, IN, IV, IZ. Операции с битами рг. М выполняет с помощью сигналов разрешения записи признаков (/ЕС, /EN, /EV, /EZ). При “1” на входе разрешения записи признака запрещается запись в соответствующий разряд рг. М. При “1” на входе /СЕМ запрещается запись во все разряды рг. М.

Информация с выходов рг. N, рг. М или со входов признаков состояния через выходной мультиплексор передается на двунаправленную трехстабильную шину У. Если на входах I0-I5 нули, то шина У является входной независимо от сигнала разрешения вывода информации (/ОЕУ). В остальных случаях шина У является выходной.

БЛОК ПРОВЕРКИ УСЛОВИЯ состоит из схемы проверки условия, мультиплексора со схемой управления полярностью и предназначен для формирования выходного сигнала кода условия. Под действием сигналов I3-I0 блок выполняет 16 операций, результат которых передается на выход кода условия (СТ). Выбор операндов для выполнения операций в блоке осуществляется под действием сигналов микрокоманды I4, I5.

4 выполняемые блоком проверки условия операции представляют собой передачу одного из признаков состояния на выход СТ. Другие 4 операции используются после окончания операций вычитания (А-В) в АЛУ для выполнения условий А=В, А/=В, А>=В и т. Д. При этом числа А и В могут быть представлены в дополнительном коде или как числа без знака. Затем результат одной из этих 8 операций выбирается мультиплексором для передачи на вход схемы управления полярностью, которая при необходимости инвертирует этот результат. Поэтому остальные 8 операций, выполняемых блоком, представляют собой инверсию первых 8 операций. Результат проверки условия с выхода схемы управления полярностью поступает на шину СТ, управляемую сигналом разрешения кода условия (/ОЕСТ).

БЛОК УПРАВЛЕНИЯ ПЕРЕНОСОМ формирует сигнал входного переноса С0 под действием сигналов микрокоманды I12, I11, I5, I3-I1. При этом в качестве входного переноса выбирается один из 7 источников (“0”, “1”, СХ, NС, МС, /NС, /МС), что позволяет легко реализовать операции сложения и вычитания чисел обычной и двойной длины.

БЛОК УПРАВЛЕНИЯ СДВИГАМИ предназначен для организации арифметических, логических и циклических сдвигов в зависимости от сигналов микрокоманды I6-I10. Сигнал I10 определяет направление сдвига.

БЛОК УПРАВЛЕНИЯ под действием сигналов микрокоманды I0-I12 формирует внутренние сигналы, управляющие блоками СУСС.

Использование сигналов

Выходы признаков состояния старшей МПС С4, OVR, F3, Z соединены с соответствующими входами признаков состояния СУСС. При этом старшей может считаться МПС, содержащая 32-28 или 64-60 разряды в зависимости от типа операций, производимых в АЛУ. Двунаправленная шина У (УС, YN, YV, YZ) соединена через ШФ со входной шиной D ЦП для выдачи информации из СУСС, и с выходной шиной У для чтения информации. Выход кода условия СТ подается на мультиплексор условий. Входы /СЕМ, /EZ, /ЕС, /EN, /EV, СХ, /ОЕСТ заземлены. Управление входом /SE осуществляется инверсным сигналом I8 МПС, I10 соединяется со входом I7 МПС. Сигналами /СЕМ и /CEN управляет микропрограмма.

6.5. Обработка прерываний на микроуровне

При запросе прерывания происходит замена адреса следующей микрокоманды на фиксированный адрес микропрограммы входа в прерывание. Микропрограмма входа в прерывание устанавливает маску на запрос прерываний, записывает адрес прерванной микропрограммы в стек. После чего производится передача управления микропрограмме самого приоритетного прерывания и сброс всех прерываний и маски.

Прерывания делятся на 2 группы: “псевдо” и все остальные (внешние и внутренние).

В случае внешних и внутренних прерываний выполнение программы будет продолжаться, начиная с выборки командного слова. Поэтому микропрограмма входа в прерывание должна делать сброс стека (командой CJPP производится выборка адреса из стека как минимум 2 раза!). Затем производится смена рабочей группы регистров с передачей управления программе обработки соответствующего прерывания согласно вектору прерываний.

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

6.6. Статусный регистр ЦП

В ЦП установлен статусный регистр, управляемый ПП. Значение отдельных разрядов статусного регистра:

Пультовой процессор имеет возможность управлять состоянием ЦП через статусный регистр, реализуя функции “пультовой отладки”:

Разряды 2 регистра БОПП, устанавливаемые микропрограммой, и их значение:

6.7. Адресация регистров и памяти ЦП

Для доступа из ПП и командами RMOD и WMOD

Весь список регистров и памяти ЦП доступен только ПП. Командам WMOD и RMOD доступны только некоторые из них (пока).

Обозначения:

РЕГИСТРЫ И ПАМЯТЬ ЦП имеют следующие восьмеричные адреса (в скобках приведены шестнадцатеричные эквиваленты):

000 0000 : 000 1777 (00000 : 003ff) - ОЗУ модификаторов; rwio;
                                      зап-У, чт-D, 32 разряда
000 2000 : 000 3777 (00400 : 007ff) - регистры
                                      приписки/защиты; rwio;
                                      зап/чт - У, 20 разрядов
000 4000 : 000 5777 (00800 : 00BFF) - БОБР, БИЗМ; rwio;
                                      зап/чт - D, 2,3 разряды
000 6000 : 000 7777 (00с00 : 00fff) - признаки БМСП; rwio;
                                      зап/чт - D, 1 разряд
001 0000 : 001 1777 (01000 : 013ff) - озу0 приорит. Стр.; rwio
001 2000 : 001 3777 (01400 : 017ff) - озу1 приорит. Стр.; rwio
                                      зп-У, чт-D,11-20 разряды
001 4000 : 001 5777 (01800 : 01bff) - регистры
001 6000 : 001 7777 (01с00 : 01fff) - регистры
002 0000 : 000 1777 (02000 : 023ff) -
002 2000 : 002 3777 (02400 : 027ff) -
002 4000 : 002 5777 (02800 : 02bff) -
002 6000 : 002 7777 (02с00 : 02fff) -
003 0000 : 003 1777 (03000 : 033ff) -
003 2000 : 003 3777 (03400 : 037ff) -
003 4000 : 003 5777 (03800 : 03bff) - кэш команд; iо
003 6000 : 003 7777 (03с00 : 03fff) - кэш операндов; iо

При обращениях к кэшу адрес задается следующим образом:

Таким образом, 30-21,10-1 разряды есть полный 20-разрядный адрес, необходимый для обращения к кэшу и эквивалентный адресу по памяти. Знаковый разряд адреса размножается в микропрограмме автоматически.

Адреса кэш команд и операндов “приписаны”, т.е. Если БП=1, задается физ.адрес; если БП=0 - мат.адрес с учетом приписки!

Регистры:

Регистры WR1,WR5,WR6,N и исполнительного адреса используются как рабочие при обращениях ПП.