Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
31
Добавлен:
03.06.2014
Размер:
365.57 Кб
Скачать

2.2.4. Определение модели памяти и структуры регистровой памяти

В соответствии с техническим заданием необходимо реализовать 64 шестнадцати разрядных функционально ориентированных регистра общего назначения. Каждому регистру условно присвоено имя R0 – R63. Все регистры общего назначения имеют разрядность равную 16 разделены на 3 группы по своей функциональной ориентации.

R40

R56

R0

R1

R33

R57

.

.

.

.

.

.

R54

R30

R62

R55

R63

R33

R0 – R33 регистры для хранения данных

R40 – R55 регистры для хранения базовых адресов

R

PC

13

0

Flags

и

РК

63

0

РД

15

0

РА

15

0

РКОП

15

0

Р1

15

0

Р2

15

0

Р3

15

0

Р4

15

0

56 – R63 регистры для хранения индексов

CI

NI

63

0

Регистры R0 – R63 доступны для пользователя, как на чтение, так и на запись.

Регистры PC, Флаги, Р1-P4, РКОП, РД , РА, NI, CI являются системными .

Регистр PC (PC – Program Counter) представляет собой счётчик команд, в котором постоянно хранится адрес следующей команды, которую необходимо выполнить.

CI и NI - 2 32-разрядных регистра (Current Instruction и Next Instruction) для хранения текущей (выполняемой на данный момент) команды и следующей команды. Эти два регистра образуют очередь команд из двух мест;

В регистре Flags хранится состояние процессора (см. рис. 3).

Z – признак нулевого результата;

C – признак переноса из старшего разряда;

S – знак результата;

O – признак переполнения результата;

I – разрешение прерывания;

T – пошаговый режим;

U – режим супервизор/пользователь.

Регистр РД – регистр данных.

Регистр РКОП – регистр кода операции.

Регистр РА– регистр адреса.

Регистры Р1, Р2, Р3 и Р4 это внутренние регистры АЛУ. Они предназначены для хранения 1-го и 2-го операндов, а также результатов и флагов выполнения операции.

2.2.5. Выбор форматов команд

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

  1. Команды для работы с памятью (прямая адресация).

Данный формат используется в командах записи в ОП и чтения из нее. В поле RG0 хранится 6-разрядный номер (адрес) регистра. Регистр RG0, в зависимости от кода операции, содержит значение для записи в ОП по адресу Addr или в него записывается значение, хранящееся по адресу Addr в ОП.

Код операции

RG0

Addr

31

26

19

4

3

0

20

25

Поле Addr 16-разрядное, с его помощью можно адресовать 2^16 слов. Для записи младшего байта, значение которого храниться по адресу Addr, в регистр с адресом RG0 применяется маска, имеющая вид:

digital

zero

0

7

15

8

где, разряды 15-8 равны нулю и маскируют старший байт, а разряды 7-0 оставляют без изменений младший байт. Запись и чтение аналогична.

  1. Команды для записи в регистры константы (непосредственная регистровая адресация).

Данный формат используется для записи констант в регистры R0-R63. В регистр с адресом RG1 заноситься значение, которое содержится в поле Const.

Код операции

RG1

Const

31

26

25

19

4

3

0

20

3) Команды для арифметических операций с прямой адресацией операндов.

Данный формат используется для арифметических и логических операций с операндами, хранящимися в регистрах, адреса которых записаны в поля RG3 и RG4. Результат записывается в регистр с адресом RG2.

Код операции

RG2

RG3

RG4

26

25

20

19

14

13

8

7

31

0

4) Команды условных переходов.

Команды данного формата имеют поля: код операции, поле флага условий перехода (F), адрес базового(BRG) и индексного регистра(IRG). При выполнении данных команд к счетчику команд PC прибавляется значения полей BRG и IRG . Таким образом, данная команда реализует косвенную адресацию относительно базы – значения в регистре PC.

Код операции

BRG

F

IRG

31

0

26

25

18

17

22

21

14

13

5) Команды, состоящие из кода операции.

Код операции

31

0

26

25

Все пустые поля в форматах команд зарезервированы (не используются).