Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции РАЗДЕЛ 2.docx
Скачиваний:
70
Добавлен:
18.11.2019
Размер:
3.01 Mб
Скачать

2.21.2. Описание стандартных циклов команды для гипотетической машины

Микропрограммы для отдельных этапов исполнения команд гипотетической вычислительной машины (рис. 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. Команда приводит к завершению вычислений. При этом вырабатывается сигнал ОСТ, нужный для того, чтобы известить операционную систему о завершении текущей программы.

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