- •1. Техническое задание
- •1.1. Предмет проектирования
- •1.2. Общие требования к разрабатываемому процессору
- •1.3. Исходные данные для курсового проектирования
- •Есть поддержка графики
- •1.4. Средства реализации модели
- •1.5. Результаты проектирования
- •2. Последовательность выполнения курсового проекта
- •2.1. Общая последовательность
- •2.2. Разработка архитектуры цп
- •2.2.1. Уточнение структуры системы
- •2.2.2. Разработка архитектуры внешних выводов
- •2.2.3. Выбор форматов данных
- •2.2.4. Определение модели памяти и структуры регистровой памяти Виртуальная память
- •2.2.5. Выбор форматов команд
- •2.2.6. Разработка системы команд
- •2.2.7. Внутренняя организация
- •2.2.8. Основные алгоритмы функционирования
- •Алгоритм функционирования сопроцессора
- •2.2.9. Алгоритмы выполнения отдельных операций
- •2.2.10. Разработка алгоритмов выполнения основных операций на шине
2.2.5. Выбор форматов команд
При выборе форматов следует исходить из принципов RISC-обработки, в соответствии с которыми используется минимальное число форматов команд.
Способы адресации
Адресация – процесс определения, где находится операнд.
Непосредственная
в адресной части содержится сам операнд. Такой операнд называется непосредственным операндом, поскольку он автоматически вызывается из памяти одновременно с командой; следовательно, он сразу непосредственно становится доступным
При непосредственной адресации не требуется дополнительного обращения к памяти для вызова операнда. Однако у такого способа адресации есть и некоторые недостатки: число значений ограничено размером поля.
КОП |
Операнд |
Относительная
В команде содержится смещение, адрес формируется суммированием базового адреса со смещением.
КОП |
Адрес базового регистра |
Смещение |
Прямая адресация
Обращение за операндом производится по адресному коду в поле команды.
Такой вид адресации удобен, но удлиняет команды
КОП |
Исполнительный адрес |
Косвенная
В команде явно или неявно указывается регистр процессора, содержащий адрес операнда
В этом случае, команда компактна, но для ее выполнения требуется предварительная загрузка регистра косвенного адреса.
КОП |
Адрес регистра |
Форматы команд
16-разрядный формат команд
15 |
9 |
8 |
7 |
6 |
5 |
3 |
2 |
0 | ||
КОП |
CAP |
IMM |
SCR1 |
SCR2 |
КОП – команда операции
CAP - предназначено для определения разрядности форматов данных.
IMM - предназначено для определения количества операндов
SCR1, SCR2 - предназначено для определения местоположения операндов
данный формат команд используется для:
команд, использующих два операнда
Форматы данных |
8 разрядные |
32 разрядные |
64 разрядные |
IMM |
IMM = 11 - указывает на наличие двух операндов в поле SCR1 и SRC2
| ||
CAP (необходим для указания разрядности данных) |
0 |
1 |
1 |
SCR1 (необходим для опеределения нахождения первого операнда) |
Номер байта в регистре R0 |
Первый бит в SRC1 = 0 Остальные 2 бита используются для определения слова в регистрах (R1-R2) |
Первый бит в SRC1 = 1 Остальные 2 бита используются для определения номера регистра (R3-R6) |
SCR2 (необходим для опеределения нахождения второго операнда) |
Номер байта в регистре R0 |
Первый бит в SRC2 = 0 Остальные 2 бита используются для определения слова в регистрах (R1-R2) |
Первый бит в SRC2 = 1 Остальные 2 бита используются для определения номера регистра (R3-R6) |
результат операции записывается в регистр, номер которого указан в SCR1 |
прямая (регистровая) адресация
команд без операндов
значения поля CAP игнорируется
бит IMM = 00 - команда не содержит операндов
SCR1 – пустое поле
SCR2 – пустое поле
команд c одним операндом ; прямая (регистровая) адресация
IMM = 10 - указывает на наличие одного операнда в поле SCR1 и указывает, что адресация прямая
SCR1 – номер регистра, где находится операнд
SCR2 – пустое поле
результат операции записывается в регистр, номер которого указан в SCR1
Форматы данных |
8 разрядные |
32 разрядные |
64 разрядные |
IMM |
IMM = 10 - указывает на наличие одного операнда в поле SCR1 и указывает, что адресация прямая
| ||
CAP (необходим для указания разрядности данных) |
0 |
1 |
1 |
SCR1 (необходим для опеределения нахождения первого операнда) |
Номер байта в регистре R0 |
Первый бит в SRC1 = 0 Остальные 2 бита используются для определения слова в регистрах (R1-R2) |
Первый бит в SRC1 = 1 Остальные 2 бита используются для определения номера регистра (R3-R6) |
SCR2 – пустое поле | |||
результат операции записывается в регистр, номер которого указан в SCR1 |
команд c одним операндом ; косвенная адресация
значения поля CAP игнорируется
IMM = 01 - указывает на наличие одного операнда в поле SCR2 и указывает, что адресация косвенная
SCR1 + SCR2 – номер регистра (или номер сегмента регистра)
адрес операнда находится в регистре R7.
результат операции записывается либо в регистр, либо в память (в зависимости от КОП)
32-разрядный формат команд
31 |
25 |
24 |
22 |
21 |
20 |
18 |
17 |
16 |
0 | ||||
КОП |
DEST |
IMM1 |
SRC1 |
IMM2 |
SRC2 |
Результат операции записывается в регистр, номер которого указывается в поле DEST
формат команд
DEST – номер регистра для записи результата
IMM1 = 1– указывает, что в поле SCR1 содержится номер регистра с операндом
SRC1 – номер регистра, где содержится первый операнда
IMM2 = 1– указывает, что в поле SCR2 содержится номер регистра с операндом
SRC2 – номер регистра, где содержится второй операнд
используется для команд с двумя операндами
формат команд
используется для команд с одним операндом
(относительная адресация)
DEST – номер регистра для записи результата
IMM1 = 0 – указывает, что в поле SCR1 содержится номер базового регистра
SRC1 – номер регистра, где содержится адрес
IMM2 = 0 – указывает, что в поле SCR2 содержится смещение
SRC2 –смещение