- •«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)»
- •1.3. Исходные данные для курсового проектирования
- •Нет поддержки графики
- •2.2. Разработка архитектуры цп
- •2.2.1. Уточнение структуры системы
- •2.2.2. Архитектура внешних выводов
- •2.2.3. Выбор форматов данных
- •2.2.4. Определение модели памяти и структуры регистровой памяти
- •2.2.5. Выбор форматов команд
- •2.6. Разработка системы команд
- •2.7.Внутренняя организация
- •2.8.Основные алгоритмы функционирования
- •2.9. Основные алгоритмы функционирования
- •2.10. Алгоритмы выполнения операций на шине.
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
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 бита, что удобно при размещении команд в основной памяти и регистрах команд.
Команды для работы с памятью (прямая адресация).
Данный формат используется в командах записи в ОП и чтения из нее. В поле 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 оставляют без изменений младший байт. Запись и чтение аналогична.
Команды для записи в регистры константы (непосредственная регистровая адресация).
Данный формат используется для записи констант в регистры 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
Все пустые поля в форматах команд зарезервированы (не используются).