Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по практике ЭВМ и ПУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
11.64 Mб
Скачать

8.2.2 Фазы выполнения машинных команд.

Выполнение команд организуется на основе принципа микропрограммного управления: любая команда рассматривается как сложное действие и выполняется в виде последовательности микрокоманд. Каждая из микрокоманд в течение одного такта машинного времени обеспечивает выполнение одного или нескольких элементарных машинных действий (микрооперации). Время выполнения команды (цикл команды) определяется общим числом тактовых импульсов (микрокоманд), требуемых для её выполнения. Цикл команды можно условно разбить на две фазы (машинных цикла): фаза выборки команды и фаза выполнения операции (рисунок 7). После окончания выполнения каждой команды проверяется наличие запроса на прерывание программы. Если запроса на прерывание нет, производится переход к выборке следующей команды.

Рисунок 7  Структура цикла выполнения команды

8.2.2.1 Выборка команды.

В данном машинном цикле производится выборка команды из памяти и её частичное декодирование с целью определения длины команды и типа адресации. Порядок работы определяется последовательностью управляющих сигналов У, которые выдаются устройством УУ процессора (рисунок 8):

Содержимое счетчика (адрес команды) по шине данных передается в промежуточный регистр, а от туда, через шину адреса, в регистр адреса. После этого адрес дешифрируется, после чего становится доступна одна из ячеек памяти, где хранится необходимая команда. Затем выбирается содержимое ячейки (команда), и через буферный информационный регистр чтения (БИРчт) по шине данных передается в РК1 или РК2 (если команда двухсловная). После этого содержимое счетчика увеличивается на единицу, тем самым в нем хранится адрес следующей команды. Ниже представлена микропрограмма выполнения описанного алгоритма.

У1 <СЧК> -> ШД – содержимое СЧК выставить на ШД

У2 ПР:=ШД - промежуточному регистру присвоить информацию

У3 <ПР> -> ША – содержимое ПР выставить на ША

У4 РА:=ША – записать в РА адрес с ША

У5 чт – сигнал, определяющий тип обращения к ЗУ (чтение)

У6 БИРчт:=<j> - переписать в БИРчт содержимое ячейки с адресом j

У7 <БИРчт> -> ШД – выставить содержимое БИРчт на ШД.

У8 РК1:=ШД – регистру команд 1 присвоить содержимое шины данных.

У9 СЧК:=<СЧК>+1- увеличивает содержимое СЧК на 1;

После выполнения этих действий анализируется старший разряд РК1 с целью определения длины команды (16 или 32 разряда). Если в старшем разряде 0 (команда 16-тиразрядная), процессор переходит ко второй фазе выполнения команды. Если в старшем разряде 1 (команда 32-разрядная), повторяются сигналы У1…У7, У8(б), У9, в результате чего из памяти выбирается второе слово команды, которое записывается в регистр команд 2 (РК2). После выборки двухсловной команды в РК1 хранится первое слово, в РК2-второе слово. Процессор переходит к выполнению второй фазы.

8.2.2.2 Выполнение команды.

После выборки команды из памяти в регистры РК1, РК2 записана команда формат которой показан на рисунке 5. Поле КОП задает выполнение операции АСЛ над двумя числами. Одно из чисел хранится в РОНе, номер которого указан в поле НОР (номер общего регистра), второе число в памяти. Адрес ячейки памяти будет определяться по типу относительной адресации. Фазу выполнения операции можно условно разделить на циклы, показанных на рисунке 9.

Рисунок 8  Схема и микропрограмма фазы выборки команды

Рисунок 9  Структура фазы выполнения команды

Формирование исполнительного адреса.

Исполнительный адрес определяется как сумма базового и относительного адреса. Базовый адрес хранится в РБА, номер которого указан в поле НРБА команды. Относительный адрес указан в поле смещение команды и хранится в РК.

Для определения исполнительного адреса необходимо считать содержимое регистра базовых адресов (РБА) и по шине данных записать в регистр результата на время выборки значения смещения. После этого, из РК1 считывается содержимое поля смещения на шину данных, по которой данные подаются на вход 2 АЛУ. На первый вход подается содержимое регистра результата (РР). Результат суммирования с выхода АЛУ записывается в РР. Это уже исполнительный адрес одного операнда. После этого, адрес поступает на шину данных, а затем записывается в промежуточный регистр (рисунок 10). Ниже представлена микропрограмма описанных операций.

У10 <РБА> -> ШД – содержимое РБА (базовый адрес) выставить на ШД.

У11 РР:=ШД – записать в РР информацию с ШД (запись на временное хранение БА в РР).

У12 <РК2(смещ)> -> ШД – содержимое поля смещения выставить на ШД (выставить на ШД относительный адрес).

У13 <вх1>+<вх2> - выполнить сложение чисел, которые поданы на вх1 и вх2 АЛУ (на вх1 подается БА из РР, на вх2 – относительный адрес с ШД).

У14 РР:=вых. АЛУ – запись в РР результат операции, выполненной АЛУ (исполнительный адрес).

У15 <РР> -> ШД – выставить на ШД содержимое РР.

У2 ПР:=ШД – записать в ПР информацию с ШД (исполнительный адрес).

Нумерация управляющих сигналов ведется с учетом фазы выборки команды.

Выборка операнда из памяти.

Адрес ячейки в которой хранится операнд, в конце предыдущего машинного цикла, был записан в ПР. Из ПР адрес пересылается в РА, дешифрируется и содержимое выбранной ячейки (операнд 1) через БИРчт выставляется на ШД, а затем с ШД записывается на временное хранение в РР (рисунок 3.11). Ниже представлена микропрограмма выполнения описанных операций.

У3 <ПР> ->ША – содержимое ПР выставить на ША.

У4 РА:=ША – записать в РА адрес с ША (исполнительный адрес).

У5 чт – сигнал, определяющий тип обращения к ЗУ (чтение).

У6 БИРчт:=<j> - содержимое ячейки, адрес который указан в РА, записать в БИРчт.

У7 <БИРчт> -> ШД – содержимое БИРчт выставить на ШД.

У11 РР:=ЩД – записать в РР информацию с ШД (операнд 1).

В данной микропрограмме все операции совпадают с операциями, которые использовались в фазе выборки команды. Поэтому управляющим сигналам присвоен тот же номер, что и в том алгоритме. Исключением является последний такт (У11). Он совпадает с операцией, которая использовалась при формировании исполнительного адреса.

Рисунок 10  Схема и микропрограмма формирования исполнительного адреса при относительной адресации

Выборка операнда из РОНа.

Второй операнд из регистра общего назначения (РОН), номер которого указан в поле НОР команды, выдается на ШД. Поэтому микропрограмма данного цикла будет состоять из одной микрокоманды (рисунок 12).

У16 <ОР> -> ШД – содержимое операционного регистра выставить на ШД.

Выполнение операции.

Первый операнд из РР подается на вх1 АЛУ, второй с ШД – на вх2 АЛУ. АЛУ выполняет операцию, заданную полем КОП команды. Результат с выхода АЛУ записывается в РР (рисунок 13).

У17 (вх1+вх2) – выполняется арифметическое сложение чисел, поданных на вх1 и вх2.

У14 РР:=вых АЛУ – результат операции записать в РР.

Рисунок 11  Схема и микропрограмма выборки операнда из памяти

Рисунок 12  Схема и микропрограмма выборки операнда из РОНа

Рисунок 13  Схема и микропрограмма выполнения операции

Запись результата операции.

Результат операции может быть записан либо в память на место первого операнда, либо в РОН на место второго операнда. Направление записи результата определяют по полю Н команды (рисунок 5).

Рассмотрим случай, когда запись производится в регистр, т. е. Н=0.

Из регистра результата данные выдаются на шину данных, а затем записывается в РОН, в котором хранился первый операнд (рисунок 14).

У15 <РР> -> ЩД – содержимое РР выставить на ШД.

У18 ОР:=ШД – записать информацию с ШД в РОН, номер которого указан в поле НОР команды.

При записи результата в память, т. е. Н=1, данные из регистра результата выдаются на шину данных, а затем поступают в БИРзп.. Одновременно в память выдается сигнал записи данных. После чего результат записывается в ячейку памяти, в которой хранился операнд (рисунок 14).

У15 <РР> -> ЩД

У5 зп - сигнал, определяющий тип обращения к памяти.

У19 БИРзп:=ШД – запись в БИРзп информацию с ШД.

У20 [ j ]:=<БИРзп> - в ячейку с адресом j записать содержимое БИРзп. Адрес ячейки до сих пор хранится в РА (он был записан в регистр в машинном цикле выборки операнда из памяти).

Порядок выполнения команды АСЛ представлен в виде алгоритма показанного на рисунке 15. В соответствии с этим алгоритмом выполняется любая команда обработки данных.

Рисунок 14  Схема и микропрограмма записи результата