
- •Расчетно-графическая работа
- •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. Схемы алгоритмов работы процессора
4.1 Общий алгоритм цикла работы процессора
Процессор запускается по сигналу «Пуск» и начинается стадия извлечения команды, на которой в РгК(IR) записывается КОП команды, на стадии декодирования анализируется КОП и в соответствии с ним запускается нужная процедура обработки команды, и докачивается столько байт, сколько было определено при анализе mod r/m байта. Если же это неизвестная команда, то вызывается прерывание. На стадии вычисления исполнительного адреса, в РгАОП записывается адрес операнда в ОП и назначение регистров. После выполнения команды, результат записывается либо в ОП, либо сохраняется в регистре и устанавливаются флаги.

Рисунок 4.1 Общая схема работы процессора
4.2 Выборка команд
Счётчик адреса команд СчАК содержит 22 бита. Старший бит СчАК(21) указывает на то, с какого полуслова начинается извлекаемая команда. При значениях СчАК(21) = 0 или 1 команда начинается с 0 или 2 байта соответственно. Для фиксации порядка следования команд введён триггер перехода ТП, устанавливаемый в состояние 0 при естественном порядке выборки и в состояние 1 – в случае перехода.
В случае естественного следования команд, анализируется самый старший бит СчАК(21). Если он равен 0 (команда начинается с нулевого байта в слове ОП), то в РгАОП заносятся значения 21 бита из СчАК. Происходит чтение ОП и в РгЧтОП заносится считанное слово. Затем в РгК помещаются значения регистра РгЧтОП. Если бит СчАК равен 1 (команда начинается со второго байта в слове ОП), то в РгК заносится содержимое буферного регистра РгБ.
В случае перехода, в РгАОП заносится содержимое 21 бита СчАК. Происходит чтение оперативной памяти. Затем анализируется самый старший бит СчАК. Если он равен 0, то в РгК помещается содержимое регистра РгЧтОП, если же этот бит равен 1, то в РгК заносятся старшие 16 бит регистра РгЧтОП.
После этого триггер перехода устанавливается в ноль. После выборки кода операции и значения поля mod r/m необходимо декодировать полученный код и загрузить в РгК оставшуюся часть команды. Длина этой части команды будет определяться по уже ранее декодированному коду операции и полю mod r/m.
После записи данных в РгК, происходит увеличения СчАК на соответствующее число (количество записанных байт).
Рисунок 4.2 Выборка машинной команды
4.3 Извлечение команды
Рисунок
4.3.Извлечение команды
4.4.Формирование исполнительных адресов и выборка операндов из памяти
Рисунок 4.4. Выборка второго операнда для SHR
Этот этап выполняется для подготовки операндов команд. После вычисления исполнительный адрес проверяется на корректность, в случае несоответствия вызывается прерывание. Для команды OR размер операнда зависит от режима работы процессора. Выполняется проверка выравнивания операнда в памяти. Процедура извлечения операнда выполняется сразу после формирования адреса, и операнд помещается в рабочий регистр либо БФТ. Алгоритм для команды OR показан на рисунке 4.5.
Рисунок 4.5. Формирование EA для команды OR