Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Организация ЭВМиС; Орлов С.А., Цилькер Б.Я

..pdf
Скачиваний:
422
Добавлен:
25.12.2020
Размер:
5.43 Mб
Скачать

Цикл команды

131

 

 

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

Структура ВМ может внести дополнительные ограничения на возможность параллельного выполнения микроопераций. Микрооперации называются структурно несовместимыми, если из-за ограничений, обусловленных структурой ВМ, они не могут выполняться параллельно. Обычно структурная несовместимость связана с использованием микрооперациями одного и того же оборудования.

Цикл команды

Программавфон-неймановскойЭВМ реализуетсяцентральнымпроцессором(ЦП) посредством последовательного исполнения образующих эту программу команд. Действия, требуемые для выборки (извлечения из основной памяти) и выполнения команды, называют циклом команды. В общем случае цикл команды включает в себя несколько составляющих (этапов):

выборку команды (ВК); декодирование команды (ДК);

вычисление исполнительных адресов (ВА); выборку операндов (ВО); исполнение операции (ИО); запись результата (ЗР);

формирование адреса следующей команды (ФАСК).

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

В определенных ситуациях возможны еще два этапа:

косвенная адресация (КА);реакция на прерывание (РП).

Стандартный цикл команды

Кратко охарактеризуем каждый из вышеперечисленных этапов стандартного цикла команды. При изучении данного материала следует учитывать, что приводимое описание лишь дает представление о сущности каждого из этапов. В то же время распределение функций по разным этапам цикла команды и последовательность выполнения этапов в реальных ВМ могут отличаться от излагаемых.

Этап выборки команды

Цикл любой команды начинается с того, что центральный процессор извлекает команду из памяти, используя адрес, хранящийся в счетчике команд (СК). Двоичный код команды помещается в регистр команды (РК) и с этого момента становится

132

Глава 3. Функциональная организация фон-неймановской ВМ

 

 

«видимым» для процессора. Без учета промежуточных пересылок и сигналов управления это можно описать следующим образом: РК := ОП[(СК)].

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

Такое декодирование может быть произведено после того, как первое слово кода команды окажется в РК. В случае многословного формата команды процесс выборки продолжается вплоть до занесения в РК всех слов команды. Например, для 16разрядной команды, занимающей две 8-разрядных ячейки памяти, выборку можно описать так:

ПСтРК: РК(15–8) := ОП[(СК)]; <Занесение в РК старшего байта команды> +1СК: СК := СК + 1;

ПМлРК: РК(7–0) := ОП[(СК)]. <Занесение в РК младшего байта команды>

Этап декодирования команды

После выборки команды она должна быть декодирована, для чего ЦП расшифровывает находящийся в РК код команды. В результате декодирования выясняются следующие моменты:

находится ли в РК полный код команды или требуется дозагрузка остальных слов команды;

какие последующие действия нужны для выполнения данной команды;

если команда использует операнды, то откуда они должны быть взяты (номер регистра или адрес ячейки основной памяти);

лен.если команда формирует результат, то куда этот результат должен быть направ-

Ответы на два первых вопроса дает расшифровка кода операции, результатом которой может быть унитарный код, где каждый разряд соответствует одной из команд, что можно описать в виде УнитК := DECOD (КОП). На практике вместо унитарного кода могут встретиться самые разнообразные формы представления результатов декодирования, например адрес ячейки специальной управляющей памяти, где хранится первая микрокоманда микропрограммы для реализации указанной в команде операции.

Полное выяснение всех аспектов команды, помимо расшифровки кода операции, требует также анализа адресной части команды, включая поле способа адресации.

По результатам декодирования производится подготовка электронных схем ВМ к выполнению предписанных командой действий.

Цикл команды

133

 

 

Этап вычисления исполнительных адресов

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

Этап выборки операндов

Данный этап характерен лишь для команд обработки операндов. Вычисленные на предыдущем этапе исполнительные адреса используются для считывания операндов из памяти и занесения в определенные регистры процессора. Например, в случае арифметической команды операнд после извлечения из памяти может быть загружен во входной регистр АЛУ. Однако чаще операнды предварительно заносятся в специальные вспомогательные регистры процессора, а их пересылка на вход АЛУ происходит на этапе исполнения операции.

Этап исполнения операции

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

Этап записи результата

Этап записи результата присутствует в цикле тех команд, которые предполагают занесение результата в регистр или ячейку основной памяти. Фактически его можно считать частью этапа исполнения, особенно для тех команд, которые помещают результат сразу в несколько мест.

Этап формирования адреса следующей команды

Дляфон-неймановскихмашинхарактерноразмещениесоседнихкомандпрограммы в смежных ячейках памяти. Если извлеченная команда не нарушает естественного порядка выполнения программы, для вычисления адреса следующей выполняемой команды достаточно увеличить содержимое счетчика команд на длину текущей команды, представленную количеством занимаемых кодом команды ячеек памяти. Для однословной команды это описывается микрооперацией: +1СК: СК := СК + 1.

Длина команды, а также то, способна ли она изменить естественный порядок выполнения команд программы, выясняются на этапе декодирования. Если извлеченная команда способна изменить последовательность выполнения программы (команда условного или безусловного перехода, вызова процедуры и т. п.), процесс

134

Глава 3. Функциональная организация фон-неймановской ВМ

 

 

формирования адреса следующей команды сводится к занесению в СК адресной части кода команды и фактически происходит уже на этапе исполнения.

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

Для иллюстрации содержания стандартного цикла команд обратимся к гипотетической ВМ (см. рис. 3.1). Микропрограммы отдельных этапов исполнения ее команд приведены в табл. 3.2. В таблице также указаны номера тактовых периодов, в течение которых выполняется каждая микрокоманда.

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

Этап

Команда

Номер

Микропрограмма

 

 

 

такта

 

 

КОп

АЧ

 

 

ВК

 

 

T0

РАП_СК: РАП := СК, ЧтЗУ: РДП := ОП[(РАП)]

ВК+ДК

 

 

T1

РК_РДП: РК := РДП, МПА := УнитК := DECOD (РК

 

 

 

 

(КОП))

 

 

 

 

 

ВО

LDA

ADR

T2

РАП_РА: РАП := РК(РА); ЧтЗУ: РДП := ОП[(РАП)]

ИО

 

 

T3

Акк_РДП: Акк := РДП

 

 

 

 

 

ИО

STA

ADR

T2

РАП_РА: РАП := РК(РА); РДП_Акк: РДП := Акк

ИО

 

 

T3

ЗпЗУ: ОП[(РАП)] := РДП

ВО

ADD

ADR

T2

РАП_РА: РАП := РК(РА), ЧтЗУ: РДП := ОП[(РАП)]

ИО

 

 

T3

РX_РДП: РX := РДП, PY_Акк: РY := Акк, ОпБ := РY + РX,

 

 

 

 

Рпрз := Признаки

 

 

 

 

 

ИО

 

 

T4

Акк_ОпБ: Акк := ОпБ

 

 

 

 

 

ВО

SUB

ADR

T2

РАП_РА: РАП := РК(РА), ЧтЗУ: РДП := ОП[(РАП)]

ИО

 

 

T3

РX_РДП: РX := РДП, PY_Акк: РY := Акк, ОпБ := РY – РX,

 

 

 

 

Рпрз: = Признаки

 

 

 

 

 

ИО

 

 

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

+1СК: СК := СК+1; <Для команд LDA, STA, INP, OUT>

 

 

 

T5

+1СК: СК := СК+1; <Для команд ADD, SUB >

 

 

 

 

 

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

Цикл команды

135

 

 

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

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

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

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

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

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

Этап выборки операндов. В рассматриваемой системе команд этап выборки операндов имеется только в командах LDA, ADD и SUB.

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

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

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

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

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

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

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

136

Глава 3. Функциональная организация фон-неймановской ВМ

 

 

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

Такт T3 (этап ИО) — сигнал управления РX_РДП вызывает пересылку второго операнда из РДП в регистр РX арифметико-логического устройства. Одновременно с этим, сигналом PY_Акк первый операнд из аккумулятора переписывается в РY. Операционный блок выполняет над данными, расположенными в PX и PY, операцию, заданную в коде операции команды (в нашем случае — сложение), а также формирует признаки, характеризующие этот результат. Признаки автоматически заносятся в регистр признаков Рпрз.

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

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

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

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

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

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

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

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

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

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

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

Такт T2 — при нулевом значении признака (условие перехода не выполнено) естественный порядок выполнения программы не нарушается, и адрес следующей

Контрольные вопросы

137

 

 

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

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

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

Машинный цикл с косвенной адресацией

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

Применительно к вычислительной машине, приведенной на рис. 3.1, при косвенной адресации должны обеспечиваться следующие микрооперации:

РАП_РА: РАП := РК(РА), ЧтЗУ: РДП := ОП[(РАП)]; РА_РДП: РК(РА) := РДП <Заметим, что в нашей ВМ такого сигнала нет>.

Контрольные вопросы

1.Какую функцию выполняет счетчик команд и какой должна быть его разрядность?

2.Какое из полей регистра команд должно быть заполнено в первую очередь?

3.Какой адрес должен быть занесен в указатель стека при его инициализации?

4.Какими средствами компенсируется различие в быстродействии процессора и основной памяти?

5.На основании какой информации микропрограммный автомат формирует сигналы управления?

6.Можно ли считать наличие регистров операндов обязательным условием работы любого операционного блока?

7.Каким образом используется информация, хранящаяся в регистре признаков?

8.С каким понятием можно ассоциировать сигнал управления?

138Глава 3. Функциональная организация фон-неймановской ВМ

9. В чем состоит различие между микрокомандой и микрооперацией?

10. Какие существуют способы записи микропрограмм?

11. Перечислите основные правила составления граф-схемы алгоритма.

12. Как в предложенном языке микропрограммирования описывается разрядность шины?

13. Какие варианты описания слова памяти допускает язык микропрограммирования?

14. Описание каких видов микроопераций допускает рассмотренный в учебнике язык микропрограммирования?

15. Что подразумевает понятие «совместимость микроопераций»?

16. Какие из этапов цикла команды являются обязательными для всех команд? 17. Какие узлы ВМ участвуют в реализации этапа выборки команды?

Глава 4

Устройства управления

Данная глава детализирует аспекты структурной организации и функционирования устройств управления вычислительной машины, не рассмотренные в главах 1, 3.

Функции и структура устройства управления

Устройство управления (УУ) вычислительной машины реализует функции управления ходом вычислительного процесса, обеспечивая автоматическое выполнение команд программы.

Процесс выполнения программы в ВМ представляет собой последовательность машинных циклов отдельных команд. Напомним основные целевые функции устройства управления в ходе типового машинного цикла:

выборка и декодирование команды,вычисление исполнительных адресов и выборка операндов,исполнение операции,

формирование адреса следующей команды.

В свою очередь, каждая функция (этап цикла) реализуется последовательностью элементарных действий в узлах. Такие элементарные действия, выполняемые в течение одного такта сигналов синхронизации, называются микрооперациями (МО). Совокупность сигналов управления, вызывающих одновременно выполняемые ми­ крооперации, образует микрокоманду (МК). Последовательность микрокоманд, определяющую содержание и порядок реализации цикла команды, принято называть микропрограммой. Сигналы управления генерируются центральным узлом устройством управления — микропрограммным автоматом (МПА). Название отражает то, что МПА определяет микропрограмму как последовательность выполнения микроопераций.

Микропрограммы реализации перечисленных целевых функций инициируются

задающим оборудованием, то есть собственно УУ.

140

Глава 4. Устройства управления

 

 

Выполняются микропрограммы исполнительным оборудованием вычислительной машины. Основной частью исполнительного оборудования является операционное устройство процессора.

Вобобщенной структуре УУ (рис. 4.1) можно выделить две части: управляющую и адресную. Управляющая часть УУ предназначена для управления работой исполнительного оборудования ВМ. Адресная часть УУ обеспечивает формирование адресов команд и исполнительных адресов операндов (в основной памяти), то есть относится к исполнительному оборудованию ВМ.

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

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

Дешифратор кода операции обеспечивает преобразование кода операции в форму, обеспечивающую эффективный запуск микропрограммного автомата.

Микропрограммный автомат на основании результатов декодирования кода операции (и кода способа адресации) вырабатывает определенную последовательность микрокоманд, вызывающих выполнение всех целевых функций УУ.

Узел прерываний программ позволяет реагировать на различные ситуации, связанные как с выполнением рабочих программ, так и с состоянием ВМ.

Адресная часть УУ включает в себя: операционный узел устройства управления (ОПУУ), счетчик команд (СК), указатель стека (УС) и регистр адреса памяти (РАП).

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

Указатель стека хранит адрес вершины стека, а его содержимое используется при выполнении операций со стеком.

Регистр адреса памяти используется для хранения исполнительных адресов операндов, а счетчик команд — для выработки и хранения адресов команд. Содержимое РАП и СК посылается в регистр адреса основной памяти (ОП) для выборки операндов и команд соответственно.

В состав УУ могут также входить дополнительные узлы, в частности узел организации прямого доступа к памяти. Этот узел обычно реализуется в виде