- •1. Техническое задание
- •1.1. Предмет проектирования
- •1.2. Общие требования к разрабатываемому процессору
- •1.3. Исходные данные для курсового проектирования
- •1.4. Результаты проектирования
- •2. Последовательность выполнения курсового проекта
- •2.1. Общая последовательность
- •2.2. Разработка архитектуры цп
- •2.2.1. Уточнение структуры системы
- •2.2.2. Разработка архитектуры внешних выводов
- •2.2.3. Выбор форматов данных
- •2.2.5. Выбор форматов команд
- •2.2.7. Внутренняя организация
- •Р1, р2
- •Алу _
- •Y2 y9 y13, y14
- •3. Алгоритмы выполнения отдельных операций
- •3.1. Выборка команды оПкоманд y1 y2 x1 y4 ram d fl a rdwr rgрд
- •3.2. Обработка адресной части команды
- •Память данных
- •3.4. Передача управления
- •Flags fl
2.2.5. Выбор форматов команд
Все команды имеют единый формат. В соответствии с техническим заданием, команды должны быть трёхадресными.
В
каждом цикле работы, процессор считывает
из памяти команд 64-х разрядную команду,
т.к. разрядность шины команд - 64 бита. ПА1 63 17 КОП 54 ПА3 А1 ПА2 А2 51 49 36 34 18 31 10
бит 2
бита 14
бит 14
бит 2
бита 2
бита 0 А3 13 14
бит 33 52 14 ИР3 16 2
бита ИР2 ИР1 2
бита 2
бита 15 32 35 50 53
В битах 26 – 31 (КОП) хранится код операции.
Двухразрядное поле ПА1, ПА2, ПА3 указывает способ адресации для соответствующих полей А:
ПА1, ПА2, ПА3 = 0 – непосредственная адресация;
ПА1, ПА2, ПА3 = 1 – прямая адресация;
ПА1, ПА2, ПА3 = 2 – относительная адресация.
Адресные поля А1, А2 и А3 используются для хранения 1-го, 2-го операндов и результата. Поля ИР1, ИР2, ИР3 служат для указания номера индексного регистра, используемого при относительной адресации (это регистры R60 – R63).
Непосредственная адресация
Значение, записываемое в регистр, задаётся непосредственно в команде. Например mov ax,50.
Прямая адресация
Прямой адрес – номер ячейки памяти, в которой хранится операнд.
Исполнительный адрес AИСП=A.
Относительная адресация
Исполнительный адрес формируется следующим образом:
AИСП=A+X, где
A – базовый адрес, указываемый в адресном поле команды;
X – относительный адрес (индекс), указывающий положение данного, относительно базового адреса A. Для хранения индексов используются регистры R60 – R63 (см п. 3)
2.2.6. Разработка системы команд
N |
Мнемоника |
Название |
Содержание |
Флажок |
Код | |||
C |
Z |
S |
| |||||
1 |
ADD |
Сложение с ФТ |
R1 R1 + R3 |
+ |
+ |
+ |
0000000001 | |
2 |
SUB |
Вычитание с ФТ |
R1 R1 – R3 |
+ |
+ |
+ |
0000000010 | |
3 |
MUL |
Умножение с ФТ |
R1 R1 * R3 |
+ |
+ |
+ |
0000000011 | |
4 |
DIV |
Деление с ФТ |
R1 R1 /R3 |
+ |
+ |
+ |
0000000100 | |
5 |
STS |
Запись в ОЗУ |
[A] R1 |
- |
- |
- |
0000000101 | |
6 |
LDS |
Чтение из ОЗУ |
R1 [A] |
- |
- |
- |
0000000111 | |
7 |
AND |
Логическое «И» |
R1 R1 and R2 |
+ |
+ |
- |
0000001000 | |
8 |
EOR |
Исключающее «ИЛИ» |
R1 R1 xor R2 |
+ |
+ |
- |
0000001001 | |
9 |
OR |
Логическое «ИЛИ» |
R1 R1 or R2 |
+ |
+ |
- |
0000001010 | |
10 |
JCC |
Условный переход |
A R2+disp |
+ |
+ |
+ |
0000001011 | |
11 |
JMP |
Безусловный переход |
A R2+disp |
- |
- |
- |
00000001100 | |
12 |
IN |
Загрузка данных из порта в РОН |
R1 P |
- |
- |
- |
0000001101 | |
13 |
OUT |
Загрузка данных из РОН в порт |
P R1 |
- |
- |
- |
0000001110 | |
14 |
MOV |
Пересылка между РОН |
R1 R2 |
- |
- |
- |
0000001111 | |
15 |
BREAK |
Приостановка программы |
- |
- |
- |
- |
0000010000 |