Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр по арх.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
893.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