Разработка прототипа ядра микроЭВМ (Функциональный состав и емкость основной памяти: DRAM – 4 Мбайт; EPROM – 64 Кбайт), страница 3

            Используем MPL в синхронном режиме (FTX=L, FTY=L, FTP=L, FTI=L). Так как не предполагается использование MPL в режиме «ведомый», то SLAVE=L. Входы разрешения загрузки регистров входных данных (ENXA#, ENXB#, ENYA#, ENYB#) и вход мультиплексора регистра промежуточных результатов (TSEL) управляются соответствующими битами микрокоманды. Разрешаем загрузку регистров инструкций, произведения и промежуточных результатов (ENI=L, ENT=L, ENP= L). Так как в данном проекте не используется контроль паритета для данных, входы и выходы PRERR, PP0-3, PX0-3, PY0-3 не используются. Так как на MPL выполняем только целочисленные операции и не выполняем операции над дробными числами, то ACC0=L, ACC1=L, FA=H, PSLE0=L, PSEL1=L, TCX=L, TCY=L. В связи с использованием MPL для умножения двойной точности – RND=L. Вход разрешения вывода произведения через порт P управляется соответствующим разрядом микрокоманды, так как на Y – шину помимо MPL выводит результат и ALU.

Структурная схема ОБ прилагается (рис. 1).

5. Логика сдвигов:

СБИС ЦПЭ Am29C332 содержит групповой  сдвигатель, представляющий собой 64-разрядную комбинационную схему, построенную из мультиплексоров. Перед использованием в АЛУ операнд А или В на шине DA или DB может быть сдвинут в одном такте влево, вправо или циклически на заданное количество разрядов, равное параметру сдвига P.

            Параметр сдвига задается в дополнительном коде в соответствии с таблицей 1 и под управлением бита инструкции I8 может выбираться P – MUX из двух источников: из МПП со входов P0-5 при I8=L, либо из статусного регистра, если I8=H. Когда I8=H, код параметра сдвига замещается кодом PR0-5 из нулевого байта статусного регистра. В таблице 1 положительные значения Р соответствуют сдвигу влево (для P5=1, Pr5=1).

            Сдвигатель АЛУ выполняет правосторонний сдвиг на два разряда для поддержки алгоритма умножения, сдвиг на один разряд влево для алгоритма деления, а также сдвиги влево/вправо на один разряд.

Таблица 1

Кодировка параметра сдвига Р

Входы

Р5Р4Р3Р2Р1Р0

Значение P, бит

0 0 0 0 0 0 0

0

0 0 0 0 0 0 1

1

0 0 0 0 0 1 0

2

……………

..

0 1 1 1 1 1 1

31

1 0 0 0 0 0 0

-32

1 0 0 0 0 0 1

-31

……………

..

1 1 1 1 1 1 1

-1

6. Формат статусного регистра (регистра слова состояния).

Вся  необходимая информация о выполняемой в СБМС операции сохраняется в 32-разрядном регистре состояния по окончании каждого микроцикла, что делает возможным прерывание АЛУ в каждом цикле.

     Регистр состояния может быть загружен с шины DA или с шины DB и прочитан на Y-шину для сохранения слова состояния во внешнем файле регистров. При загрузке регистра указывается байтовая ширина для задания обнавляемых в регистре байтов. Загрузка возможна, если HOLD=L (пассивен). Формат регистра состояния дан в таблице 2.

Таблица 2

Назначение разрядов регистра состояния.

Номер   байта

Номер разряда

Обозначение

Назначение

Примечание

0

    0-5

PR0-PR5

Регистр позиции                       (параметры сдвига)

Разряды (0:5) доступны для записи и чтения

      6

      7

PR6

PR7

Не используется

1

8-12

WR0-WR4

Регистр ширины поля маски

Разряды (8:12) доступны для записи и чтения

13

#C+Z

Беззнаковое меньше или равно

Разряды (13:15) доступны только для чтение  на Y-шину с помощью команды выделения статуса

    14

NÅV

Знаковое меньше

    15

(NÅV)+Z

Знаковое меньше или равно

2

    16

C

Перенос

    17

N

Отрицательный

Любой бит (16:22)

может устанавливаться

командой SETBITSTAT

или сбрасываться

командой RSTBITSTAT

    18

V

Переполнение

    19

Z

Ноль или равно

    20

L

Бит связи (сдвига)

    21

M

Бит множителя для умножения или результат сравнения знаков для деления

    22

S

Знак частичного остатка для беззнакого деления

    23

0

Константа 0

3

  24-31

NC0-NC7

Десятичные переносы для BCD-арифметики

Используются во втором цикле выполнения операций BCD-арифметики