- •197376, Санкт-Петербург, ул. Проф. Попова, 5.
- •Содержание
- •1.3 Исходные данные для проектирования
- •1.4 Результаты проектирования
- •1.5.1 Уточнение структуры системы
- •1.5.2 Выбор форматов данных
- •1.5.3 Определение модели памяти и структуры регистровой памяти
- •1.5.7 Основные алгоритмы функционирования
- •Алгоритмы выполнения отдельных операций
- •1.5.9Разработка алгоритмов выполнения основных операций на шине
- •2.2 Определение модели памяти и структуры регистровой памяти
- •2.3 Определение структуры внешних выводов
- •2.4 Система команд
- •2.5 Внутренняя организация
- •2.6 Структурно-функциональная схема процессора
- •2.7 Основные алгоритмы функционирования и алгоритмы выполнения отдельных операций
- •2.8 Алгоритмы выполнения операций на шине
1.5.7 Основные алгоритмы функционирования
В процессе выполнения проекта должны быть разработаны основные алгоритмы функционирования процессора, а именно:
- обобщенный алгоритм функционирования системы;
- алгоритмы функционирования отдельных подсистем (процессоров);
- алгоритмы взаимодействия отдельных подсистем (процессоров).
Разработка обобщенного алгоритма предполагает выделение отдельных фаз выполнения. Например, возможно выделение следующих фаз выполнения команды:
1) IF-выборка команды из кэш-памяти команд;
2) RD-выборка данных из регистровой памяти (при этом одновременно дешифрируется код операции);
3) ALU-выполнение операции в АЛУ;
4) MEM-запись результата в кэш-память данных;
5) WB-запись в РОН результата выполнения операции.
Использование подобного конвейера команд позволяет в ряде случаев заканчивать выполнение команды в каждом такте.
Алгоритмы выполнения отдельных операций
Необходимо подробно рассмотреть структуру и основные алгоритмы функционирования исполнительной подсистемы.
В командах ветвления используется механизм отложенного условного перехода. Данный механизм предполагает, что при появлении команды перехода выполняется “по инерции” одна команда, которая располагается в программе непосредственно за командой перехода.
При реализации команд работы с подпрограммами возможно либо использование стека, расположенного в оперативной памяти, либо запоминание адреса возврата в одном из РОН.
В системе команд необходимо предусмотреть команды программного прерывания, при выполнении которых следует запоминать наряду с адресом возврата состояние регистра флажков.
1.5.9Разработка алгоритмов выполнения основных операций на шине
Требуется разработать алгоритмы выполнения основных операций на шине:
- чтение данных;
- запись данных;
- прерывание;
- ввод, вывод;
- захват шины.
При работе с кэш-памятью обмен данными между ней и основной памятью осуществляется в режиме передачи блоков данных.
Необходимо привести временные диаграммы работы шины.
2. Разработка архитектуры встроенного процессора
2.1 Определение форматов команд и данных
2.1.1 Определение форматов данных
Используемые типы данных, представлены на рисунке 2.
Целые числа представляют собой числа со знаком или без знака. Целые числа со знаком представляются в дополнительных кодах. Целые числа без знака используются также и для представления адресов.
Рисунок 2
Формат 1 – полуслово, целые числа со знаком и без знака;
Формат 2 – слово, целые числа со знаком и без знака;
Формат 3 – число с ПТ одинарной точности.
2.1.2 Определение форматов команд
Будем использовать форматы команд, представленные на рисунке 3.
Рисунок 3
CO – 6 разрядный код операции;
F – разрешение (0) или запрет (1) обращения к регистру флажков;
AR0, AR1 – 6 разрядные адреса регистров;
IMM – указывает на способ адресации (00- относительная, 01 – прямая, 10 - косвенная);
DISP –смещение относительно базового адреса;
Address –адрес УВВ или ОП (какой адрес определяется с помощью V);
V – указывает какой адрес хранит поле Address (0 – адрес ОП, 1- адрес УВВ);
AIC – адрес прерывающей команды.
Формат 1 – используется для арифметических и логических операций, а также для записи данных из одного регистра в другой.
AR0 – адрес регистра в котором хранится первый операнд, а также для помещения результата. AR1 – адрес регистра в котором хранится второй операнд.
Формат 2 – используется для команд перехода и вызова подпрограммы.
Формат 3 – используется для работы с УВВ, либо для записи данных из регистра в память или из памяти в регистр.
Формат 4 – используется для команд работы с прерываниями (разрешение и запрет прерывания, возврат из прерывания).
Формат 5 – используется для команд сдвигов.
Формат 6 – используется для команды прерывания.