При выборе формата команд необходимо учесть:
- адресность машины;
- способы адресации;
- количество команд;
- месторасположение операнда.
Структура команды:
КОП | Адресная часть |
КОП – код операции. Адресностью машины определяется количество адресных частей.
Способы адресации:
1. Относительная
2. Прямая
3. Косвенная
4. Непосредственная
1. Адресная часть при относительной адресации подразделяется:
Адресная часть | ||
ПА | База | Смещение |
ПА – признак адресации. Одно поле связано с адресацией базы, другое – с расположением смещения относительно некоторой базы. В смещении может храниться само смещение или адрес регистра, где хранится смещение.
2. Прямая адресация.
ПА | Адресная часть |
3. Косвенная адресация.
ПА | L | Адрес |
Разрядность поля адреса зависит от объема ОП. Поле L отвечает за глубину косвенной адресации; т.е. это количество обращений к памяти, необходимых для выборки операнда или определения исполнительного адреса. Если L – по умолчанию, и равно, например, 2, то это поле можно убрать; таким образом можно сократить длину команды или увеличить адресную часть.
4. Непосредственная адресация.
ПА | Операнд |
Операнд хранится в поле команды; также можно хранить операнд в следующей за командой ячейке. Если 2 операнда – то, соответственно, они хранятся в двух последующих ячейках.
Существует 3 формата команд:
- RR – оба операнда находятся в разных регистрах;
- SS – оба операнда находятся в памяти;
- SR – один операнд находится в памяти, другой – в регистре.
RR
SS
SR
Необходимо выполнить согласование формата команды с памятью и с шиной. В качестве шины – шина данных и шина адреса.
Пусть память имеет 16-ти разрядное слово, а команда – 17 разрядов. Тогда команда в памяти будет располагаться так:
15 0
/////////////////// |
// |
\\\\\\\\\\\\\\\\\\\ |
\\ |
4. ОБОБЩЕННЫЙ АЛГОРИТМ
ФУНКЦИОНИРОВАНИЯ ЭВМ
![]() |
(п.1)
![]() | |||
![]() | |||
да
![]() | |||
![]() |
|
ческая опе-
рация
![]() |
нет
на (п.2)
да
|
Обработка адресной
части 1 – это вычис- (п.3)
ление исполнитель-
ного адреса 1-го
|
![]() |
да
нет
да
нет
|
![]() |
да
![]() |
(п.4)
|
да да
нет (п.5) нет
![]() | |||||
![]() | |||||
![]() | |||||
(п.6)
На (п.1)
ЛО - логические
нет нет операции;
(п.2) на (п.7) ПО - посылочные
да да операции.
|
На (п.3)
![]() |
да
![]() | |||
![]() |
(п.8)
|
![]() |
да
![]() |
да на (п.5)
![]() |
|

На (п.1)
Если посылочная операция выполняет пересылку операнда, то:
с (п.8):
![]() |
|
ввода-вы-
вода
КБП - команды
безуслов-
на (п.4) ного пере-
хода
(п.7): да да
![]() | ![]() | ||
нет
![]() |
нет
|
|
да на (п.10)
| ||||||
|
| |||||
(п.9)
![]() | |||||
![]() | ![]() | ||||
да да
![]() | ![]() | ||||||
![]() | ![]() | ||||||
нет нет
![]() | |||
![]() | |||
нет нет
|
|
ПП – программное
прерывание
![]() | ![]() | ||
|
условного
перехода
![]() |
На (п.4)
(п.10):
нет да
на (п.5)
да нет
![]() | ![]() |
нет
нет
да
|
|
На (п.9) на (п.4)
![]() | ![]() |
На (п.6) на (п.5)
РАЗРАБОТКА КОНВЕЙЕРА
При разработке конвейера необходимо выписать все операции, выполняемые машиной.
1. Загрузка РА
2. Инициация чтения (выборка команд)
3. Дешифрация КОП (кода операции)
4. Определение исполнительного адреса и вычисление его
5. Выборка операнда
6. Инициация выполнения команды
7. Выполнение команды
8. Сохранение результата
9. Модификация СЧАК (счетчика адреса команд)
10. Инициация обработки прерываний
11. Загрузка буфера (порта)
12. Пересылка из буфера
13. Аварийный ОСТАНОВ.