Для гипотетической машины

Описание стандартных циклов команды

 

Микропрограммы для отдельных этапов исполнения команд гипотетической вычислительной машины (рис. 2.72.) приведены в таблице 2.17.

 

Таблица 2.17. Микропрограммы отдельных этапов циклов команд (гипотетическая вычислительная машина)

 

Этап Команда Номер такта Микропрограмма
  КОп АЧ    
ВК     T0 РАП_СК: РАП:= СК, ЧтЗУ: РДП := ОП[(РАП)]
ВК+ДК     T1 РК РДП: РК := РДП, МПА := УнитК := DECOD(РК(КОП))
ВО LDA ADR T2 РАП_РА: РАП:= РК(РА); ЧтЗУ: РДП := ОП[(РАП)|
ИО     T3 Акк_РДП: Акк:= РДП
ИО STA ADR T2 РАП_РА: РАП := РК(РА); РДП_Акк: РДП := Акк
ИО     T3 ЗпЗУ: ОП[(РАП)]:= РДП
ВО ADD ADR T2 РАП_РА: РАП := РК(РА), ЧтЗУ: РДП := ОП[(РАП)]
ИО     T3 РХ_РДП: РХ:= РДП, PY_Aкк: PY:= Акк, ОпБ:= PY+PX Рпрз := Признаки
ИО     T4 Акк__ОпБ: Акк := ОпБ
ВО SUB ADR T2 РАП_РА: РАП:= РК(РА), ЧтЗУ: РДП := ОП[(РАП)]
ИО     T3 РХ_РДП: РХ:= РДП, РУ_Акк: PY := Акк, ОпБ := PY – РХ Рпрз: = Признаки
ИО     T4 Акк_ОпБ: Акк := ОпБ
ИО INP IPRT T2 ДВВ_РА: ДВВ := РК(РА)
ИО     T3 Вв: Акк := Порт ввода IPRT
ИО OUT OPRT T2 ДВВ_РА: ДВВ := РК(РА)
ИО     T3 Выв: Порт вывода OPRT:= Акк
ИО JMP ADR T2 БПУП: СК:=РА
ИО BRZ ADR T2 If Z=1 then БПУП: СК := РА else +1СК:СК:= СК+1
ИО HLT   T2 ОСТ:
ФАСК     T4 T5 +1СК: СК := СК+1 ; <Для команд LDA, STA, INP, OUT> +1СК: СК := СК+1; <Для команд ADD, SUB>

 

Этап выборки любой команды ВМ. На этом этапе происходит извлечение двоичного кода команды из ячейки основной памяти и его занесение в регистр команды. Этап реализуется в двух начальных тактах цикла команды (Т0 и Т1):

· Такт Т0 – вырабатывается сигнал управления РАП_СК, инициирующий пересылку содержимого счетчика команд (СК) в регистр адреса памяти (РАП), после чего по сигналу ЧтЗУ содержимое ячейки, выбранной дешифратором адреса памяти (код команды), переписывается в регистр данных памяти (РДП).

• Такт Т1 – формируется сигнал РК_РДП, по которому содержимое регистра данных памяти РДП передается в РК, при этом поле РКОП заполняется кодом операции, а поле РА – адресной частью команды.

Этап декодирования любой команды ВМ. Сразу же после размещения кода операции в РК производится его декодирование, в результате которого активным становится выход дешифратора кода операции (ДКОП), соответствующий коду операции:

• Такт Т1 – дешифратор кода операции ДКОП непосредственно подключен к соответствующему полю регистра команды, поэтому специальный сигнал управления не нужен, а декодирование происходит сразу же после заполнения РК, то есть параллельно второй фазе этапа выборки команды ВК.

 

Этап вычисления исполнительных адресов. В гипотетической вычислительной машине предусмотрена только прямая адресация, поэтому этап вычисления исполнительных адресов отсутствует.

 

Этап выборки операндов. В рассматриваемой системе команд этап выборки операндов имеется только в командах LDA (загрузка в аккумулятор содержимого ячейки ОП), ADD (сложение данных аккумулятора и ячейки ОП) и SUB (вычитание из содержимого аккумулятора содержимого ячейки ОП).

 

Этапы команды LDA ADR. Команда обеспечивает занесение в аккумулятор содержимого ячейки ОП с адресом ADR:

· Такт Т2 (этап выборки операндов) – по сигналу РАП_РА содержимое регистра адреса РА (адресная часть команды) пересылается в РАП, после чего по сигналу ЧтЗУ содержимое ячейки с адресом ADR заносится в регистр данных памяти РДП.

· Такт Т3 (этап исполнение операции ИО) – по сигналу Акк_РДП операнд из РДП пересылается в аккумулятор.

 

Этап исполнения операции для команды STA ADR. Команда обеспечивает сохранение содержимого аккумулятора в ячейке ОП с адресом ADR:

· Такт Т2 – сигналом РАП_РА адресная часть команды (ADR) из РА пересылается в РАП, одновременно с этим содержимое аккумулятора по сигналу РДП_Акк заносится в РДП.

· Такт Т3 – по сигналу ЗпЗУ происходит физическая запись содержимого РДП в ячейку ОП, на которую указывает адрес, находящийся в РАП.

 

Этапы команды ADD ADR. Команда обеспечивает суммирование текущего содержимого аккумулятора с содержимым ячейки основной памяти ОП, имеющей адрес ADR. Результат сложения остается в аккумуляторе. Одновременно с этим в АЛУ формируются признаки результата, которые запоминаются в регистре признаков:

· Такт Т2 (этап выборка операндов) – вырабатывается сигнал РАП_РА, и содержимое регистра адреса РА поступает в регистр адреса памяти РАП. В том же такте по сигналу ЧтЗУ второе слагаемое из ячейки с адресом ADR (первое слагаемое берется из аккумулятора) заносится в регистр данных памяти РДП.

· Такт Т3 (этап исполнение операции) – сигнал управления РХ_РДП вызывает пересылку второго операнда из регистра данных памяти РДП в регистр РХ арифметико-логического устройства. Одновременно с этим, сигналом РY_Акк первый операнд из аккумулятора переписывается в PY. Операционный блок выполняет над данными, расположенными в РХ и PY, операцию, заданную в коде операции команды (в нашем случае – сложение), а также формирует признаки, характеризующие этот результат. Признаки автоматически заносятся в регистр признаков Рпрз.

· Такт Т4 (этап исполнение операции) – по сигналу Акк_ОпБ информация с выхода ОпБ сохраняется в аккумуляторе.

 

Этапы команды SUB ADR. Команда обеспечивает вычитание из текущего содержимого аккумулятора содержимого ячейки основной памяти ОП, имеющей адрес ADR. Результат вычитания остается в аккумуляторе. Как и при сложении, формируются и запоминаются признаки результата. Содержание подобно описанию для команды ADD ADR, за исключением действия, выполняемого в операционном блоке ОПБ в такте Т3 (вычитание вместо сложения).

 

Этап исполнения для команды IMP IPRT. Команда обеспечивает занесение в аккумулятор информации из периферийного устройства (ПУ), подключенного к порту ввода с номером IPRT:

· Такт Т2 (этап исполнение операции) – вырабатывается управляющий сигнал ДВВ_РА, по которому адресная часть команды – номер порта ввода – из регистра адреса РА поступает на вход дешифратора номера порта ввода/вывода.

· Такт Т3 (этап исполнение операции) – по сигналу Вв информация из периферийного устройства ПУ, подключенного к выбранному дешифратором порту ввода, заносится в аккумулятор.

 

Этап исполнения для команды OUT OPRT. Команда обеспечивает вывод содержимого аккумулятора на периферийное устройство ПУ, подключенное к порту вывода с номером OPRT:

· Такт Т2 (этап исполнение операции) – по сигналу ДВВ_РА адресная часть команды – номер порта вывода – из регистра адреса РА подается на вход дешифратора номера порта ввода/вывода.

· Такт Т3 (этап исполнение операции) – сигналом Выв содержимое аккумулятора через выбранный с помощью ДВВ порт вывода передается на подключенное периферийное устройство ПУ.

 

Этап исполнения операции для команды JMP ADR. Команда обеспечивает безусловный переход к команде, расположенной в ячейке основной памяти ОП с адресом ADR:

· Такт Т2 – по сигналу БПУП адресная часть команды (ADR) заносится в счетчик команд, тем самым фактически реализуется этап формирования адреса следующей команды.

 

Этап исполнения операции для команды BRZ ADR. Команда анализирует хранящийся в регистре признаков Рпрз признак (флаг) нулевого результата, выработанный в АЛУ на предыдущем этапе вычислений, и формирует адрес следующей команды в зависимости от состояния этого признака:

· Такт Т2 – при нулевом значении признака (условие перехода не выполнено) естественный порядок выполнения программы не нарушается, и адрес следующей команды формируется обычным образом, путем увеличения содержимого счетчика команд СК на единицу; при единичном значении признака (условие перехода выполнено) в счетчик команд СК заносится содержимое регистра адреса РА. В регистре адреса РА находится адресная часть извлеченной из основной памяти ОП команды перехода, то есть адрес точки перехода (ADR).

 

Этап исполнения для команды HLT. Команда приводит к завершению вычислений. При этом вырабатывается сигнал ОСТ, нужный для того, чтобы известить операционную систему о завершении текущей программы.

 

Этап формирования адреса следующей команды. Для формирования адреса следующей команды (если текущая команда не меняет естественной последовательности вычислений) достаточно увеличить содержимое счетчика команд на единицу.