
- •Расчетно-графическая работа
- •1.Задание на ргр
- •1.1.Общие аспекты проектирования процессора
- •1.2.Исходные данные
- •2.Архитектура процессора
- •2.1.Форматы команд
- •2.2.Описание формата команд, определенных по индивидуальному заданию
- •2.3.Форматы данных
- •2.4.Расчет и выбор разрядности основных узлов процессора
- •2.5 Виды адресации
- •3. Структурная организация процессора
- •3. Структурная организация процессора
- •3.1 Общая структура процессора
- •3.2 Выбор и обоснование элементной базы
- •3.3 Блок(и) обработки данных (бод)
- •3.5 Регистровая память (рп)
- •4. Схемы алгоритмов работы процессора
- •4.1 Общий алгоритм цикла работы процессора
- •4.2 Выборка команд
- •4.3 Извлечение команды
- •4.4.Формирование исполнительных адресов и выборка операндов из памяти
- •4.5.Выполнение операций из индивидуального задания
- •5. Микропрограммное управление
- •5.1 Формат микрокоманды
4.5.Выполнение операций из индивидуального задания
В алгоритме любой команды над числами с фиксированной точкой сначала проверяется текущее состояние процессора (CR0(0)), а также занесение операндов, которые находятся в РгА1 и РгБ1 в буферные регистры РЗУ.
SHR
Алгоритм: если количество сдвигов равно единице то во флаг OF помещается самый старший бит числа, далее идет цикл: во флаг CF помещается самый младший бит числа, идет деление на 2 числа, а также декремент счетчика сдвигов.
Рисунок 4.6. Алгоритм операции SHR
OR
Команда выполняет операцию ИЛИ между операндом из памяти и непосредственным операндом. На момент выполнения команды операнды уже находятся в рабочих регистрах.
Рисунок 4.7. Алгоритм операции OR
5. Микропрограммное управление
5.1 Формат микрокоманды
В таблице приведена структура микрокоманды процессора, поскольку от этого зависят действия процессора.
Зона |
Поле |
Количество разрядов |
№ поля в МК |
Назначение |
Значение по умолчанию |
БФТ |
A |
4 |
0..3 |
Выбор операнда из РЗУ |
0 |
B |
4 |
4..7 |
Выбор операнда из РЗУ |
0 |
|
SRC |
3 |
8..10 |
Выбор источника операнда |
1 |
|
ALU |
4 |
11..13 |
Стандартная функция АЛУ |
0 |
|
DST |
2 |
14..16 |
Управление сохранением результата |
3 |
|
УВП |
2 |
17..18 |
Управление входным переносом |
0 |
|
OE |
1 |
19 |
Разрешение выходов |
0 |
|
T |
1 |
20 |
Разрешение записи в РЗУ |
1 |
|
БМУ |
УСЛ |
3 |
42..44 |
Выбор условия |
0 |
ФФ |
1 |
45 |
Текущий блок (флаги) |
1 |
|
РР |
1 |
46 |
Выбор предыдущих флагов |
0 |
|
И |
1 |
47 |
Инверсия условия |
0 |
|
УСА |
2 |
48..49 |
Управ. След. адресом |
E |
|
П |
1 |
50 |
Безусловный переход |
0 |
|
адрес |
12 |
51..62 |
Адрес след. мк |
0 |
|
РП1 |
R/W |
1 |
63 |
Чтение/запись в РП1 |
0 |
RAddr |
3 |
64..66 |
Выбор регистра |
000 |
|
РП2 |
R/W |
1 |
67 |
Чтение/запись в РП2 |
0 |
RAddr |
2 |
68..69 |
Выбор регистра |
000 |
|
ОП |
CS |
1 |
70 |
Доступ к ОП |
1 |
R/W |
1 |
71 |
Чтение/запись ОП |
1 |
|
БИНТ |
MuxРгК |
4 |
97..100 |
Выбор байтов для записи |
0 |
MuxРгК2 |
4 |
101..104 |
Чтение нужных байтов |
0 |
|
MuxA |
1 |
105 |
Адрес РЗУ |
0 |
|
MuxB |
1 |
106 |
Адрес РЗУ |
0 |
|
MuxD |
1 |
107 |
Выбор операнда |
0 |
|
MuxFF |
1 |
108 |
Выбор блока |
0 |
|
MuxRR |
1 |
109 |
Выбор пред. флагов |
0 |
|
МКУ |
3 |
110..112 |
Код условия |
0 |
|
Mux INV |
1 |
113 |
Инверсия условия |
0 |
|
MuxN |
4 |
114..117 |
Запись флага в EFLAGS |
0 |
|
CONST |
64 |
172..235 |
Константа |
0 |
Зона БФТ:
Поля А и B служат для передачи в БФТ адресов регистров, которые предположительно могут быть операндами АЛУ.
Поле SRC служит для определения операндов R и S:
Поле SRC |
Управляющие сигналы |
Источники операндов АЛУ |
||||
I2 |
I1 |
I0 |
Операнд R |
Операнд S |
||
0 1 2 3 4 5 6 7 |
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
A A 0 0 0 D D D |
Q B Q B A A Q B |
Поле ALU отвечает за выбор операции:
Поле ALU |
Управляющие сигналы |
Операция АЛУ |
||
I5 |
I4 |
I3 |
||
0 1 2 3 4 5 6 7 |
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
S+R+C0 S-R-1+C0 R-S-1+C0 RvS R&S !R&S (R xor S) !(R xor S) |
Поле DST отвечает за выбор приемника результата и сдвиги (где x –состояние входа безразлично):
Поле DST |
Управляющие сигналы |
РЗУ |
RG Q |
|||||
I8 |
I7 |
I6 |
Сдвиг |
Загрузка |
Сдвиг |
Загрузка |
||
0 1 2 3 4 5 6 7 |
0 0 0 0 1 1 1 1 |
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
x x - - вправо вправо влево влево |
- - FB FB F/2B F/2B 2FB 2FB |
- x x x вправо x влево x |
FQ - - - Q/2Q - 2QQ - |
Поле УВП управляет входным переносом:
-
Поле УВП
00
01
10
11
Поле С0
0
1
С
С
Поле ОЕ разрешает выход результата при равенстве единице.
Зона БМУ:
УСЛ – выбор логического условия:
П – разрешение безусловного перехода. Соответствует схеме инструкций микросхемы ВУ4 для входя ССЕ (1 – переход разрешен). ФФ – функция флагов. Данное поле определяет флаги какого блока будут обрабатываться: БФТ (0) или БПТ (1). РР – определяет какие флаги будут обрабатываться: на текущем такте(0) или на предыдущем такте(1). И – инверсия условия (1-инверсия). УСА – управление следующим адресом. Поле задает функцию секвенсора ВУ4. Возможные значения в технической документации микропроцессорного набора 1804. Адрес – используется для записи адреса следующей МК.
Зона ОП:
Поле R/W отвечает за чтение/запись в ОП.
Зависимость режима работы ОП от полей r/w и CS:
Поле CS |
Поле R/W |
Режим работы ОП |
0 |
0 |
нет доступа |
0 |
1 |
нет доступа |
1 |
0 |
Память := РгОП |
1 |
1 |
РгОП := Память |
Зоны РП: Поле R/W отвечает за чтение/запись в РП.
Raddr – адрес регистра в РП.
Микропрограмма команды OR
Микропрограммы индивидуального задания
Микропрограмма чтения команды из ОП
Адрес |
Содержание МК |
Зона |
Поле |
Значение |
0 |
Адрес текущей команды ОП R + S |
БОМ |
B SRC ALU CONST |
C 4 0 0002 |
1 |
Адрес перехода Разрешение работы с ОП Чтение ОП РЗУ:=Y Запись РгК Безусловный переход JMAP |
БОМ ОП
БИНТ БМПУ |
B CS ЧтОП DST ЗпРгК JFI CHA |
F 1 1 1 1 4 4 |
Микропрограмма чтения данных из ОП
Адрес |
Содержание МК |
Зона |
Поле |
Значение |
0 |
|
ОП
БОМ |
CS ЧтОП SRC |
1 1 6 |
Микропрограмма записи данных в ОП
Адрес |
Содержание МК |
Зона |
Поле |
Значение |
0 |
РгЗпОп:=Y |
ОП
БОМ |
CS ЗпОП DST SRC |
1 1 0 6 |
Микропрограмма OR
Адрес |
Содержание МК |
Зона |
Поле |
Значение |
Примечание |
0 |
OR |
БОМ |
MA MB ALU CHA |
1 2 B 0 |
Reg1 Reg2 R+S переход |
|
|
|
|
|
|