Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.04.2024

Просмотров: 314

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Пространственно-временному распределению микроопераций и микрокоманд отвечает некоторая последовательность двоичных ко­ дов, если формированию каждого управляющего сигнала в данный момент времени поставить в соответствие единицу, а противополож­ ному событию— нуль. Иначе говоря, каждая микрокоманда выра­ жается отдельным двоичным кодом. Для случая, отвечающего вре­ менной диаграмме рис. 9.4, имеют место следующие отношения, если управляющая цепь УЦП принимается за цепь передачи стар-

ш ег о р а з р я д а м и к р о к о м а н д ы :

MKj -*■ 0 . . . 101,

МК 2 — 1 . . . 0 0 1 ,

МК 3 — 0 . . . 0 1 0 ,

МК , - 1 . . . 100,

МК Ц— 0 . . . 1 1 1 .

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

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

В состав блоков управления командами включаются регистры, счетчики, сумматоры, группы вентилей и другие логические элемен­ ты. Регистры, счетчики, а иногда и сумматоры накапливающего типа, включаемые в состав БУК, обычно являются программно-до­ ступными, т. е. их содержимое может быть изменено за счет вы­ полнения некоторых команд рабочей или управляющей программы. Программно-доступные узлы, независимо от их типа, называют программно-доступными регистрами или просто программными

283


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

§ 9.3. Блоки управления командами

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

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

Структурная схема блока управления командами одноадресной машины, в котором может использоваться как прямая, так и отно­ сительная адресация, приведена на рис. 9.5. На этой схеме показа­ ны только основные узлы БУК и их связи; подразумевается, что группы вентилей и других логических элементов включаются в цепи внутренних и внешних связей узлов блока.

Р е г и с т р к о м а н д РгК служит для размещения кода испол­ няемой команды, получаемого из ЗУ по кодовым шинам КШ, и его хранения в течение цикла. Функционально он разделяется на три части: РКО — разряды, содержащие код операции, РКП — разря­ ды, содержащие код признаков, и РКА — разряды, содержащие адресную часть команды, которая в рассматриваемом случае со­ стоит из одного адреса. При выполнении арифметических операций адресная часть команды указывает адрес второго операнда; пер­ вый операнд находится в сумматоре или регистре сумматора АУ; результат операции сохраняется в арифметическом устройстве.

Содержимое РКО и РКП, обозначаемое скобками, передается непосредственно на дешифраторы операций и признаков:

(РКО) -> ДшО, (РКП) -> ДшП.

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

284


дексных регистров (ИРг1, ИРг2, ИРгЗ). Коды признаков являются двухразрядными.

Если (РКП) =00, то Аа= А+0, т. е. исполнительным оказывает­ ся адрес, непосредственно содержащийся в команде; этот случай отвечает прямой адресации, когда операнд есть не что иное, как содержимое ячейки ЗУ с номером А =(РКА ). Это значение адреса выдается в кодовые шины адреса КША для выборки операнда из

В КША

Рис. 9.5. Блок управления командами одноадресной машины

запоминающего устройства (считается, что все операнды и коман­ ды располагаются только в оперативном ЗУ). Если содержимое признаковой части регистра команд не равно нулю, т. е. (РКП) Ф0, то исполнительный адрес образуется путем модификации исходного адреса, представляющего собой часть кода команды.

При (РКП) =

01

Ан= (Р К А ) +

(ИРг1),

*

при (РКП) =

10

Ан =

(РКА) +

(ИРг2),

 

при (РКП) =

11

Аи =

(РКА) +

(ИРгЗ).

Сч е

т ч и к к о м а н д СчК служит для формирования адресов

команд,

располагающихся в ячейках ЗУ с последовательными но­

мерами. В каждом цикле к содержимому СчК прибавляется еди­ ница, поэтому адреса команд представляют собой естественную

285

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

Команда безусловной передачи управления всегда прерывает естественную последовательность адресов команд; в ее адресной части содержится номер той ячейки ЗУ, в которой хранится коман­ да, выполняемая в следующем цикле. Далее команды выбираются

из ячеек

с последовательными адресами,

т. е. имеющими номера

(РКА)бп,

(РКА)бп+1, (РКА)бп + 2 и т. д.,

если (РКА)бп — содер­

жимое адресной части команды безусловного перехода. Команда условной передачи управления выполняется так же, как и команда безусловной передачи управления, если значение некоторого при­ знака, например признака знака результата выполнения операции в арифметическом устройстве — ш, равно единице. В противном случае, т. е. при ш= 0, команда условной передачи управления не прерывает выполнявшуюся до этого последовательность команд. Итак, изменение содержимого СчК в процессе решения задачи мо­ жет быть описано следующим соотношением;

(СчК).+1: = { [(СчК); + 1] (?бп V РУ„ V Руп») V (РКА) X

X (Рбп V Руп },

(9.4)

где Рбп и Руп — сигналы на выходах дешифратора операций, от­ вечающих командам безусловного и условного пе­ реходов;

: = — знак присваивания значения.

Соотношение (9.4.) читается так: содержимому счетчика команд в ( i + l ) - M цикле присвоить значение содержимого СчК в предыду­ щем I-м цикле, увеличенное на единицу, если не выполняются команды БП или УП или выполняется команда УП при ш= 0, или значение содержимого адресной части регистра команд, если вы­ полняется команда БП или команда УП при ш=1.

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

И н д е к с н ы е р е г и с т р ы ИРг1, ИРг2, ИРгЗ служат для хранения и преобразования кодов констант переадресации, назы­ ваемых также кодами индексов или кодами модификаторов. Ис­ пользование нескольких индексных регистров расширяет возмож­

286


ности сокращения общего количества команд в рабочих програм­ мах за счет неоднократного их использования с изменением (мо­ дификацией) адресных частей. В схеме рис. 9.5 все индексные ре­ гистры выполнены как регистры-счетчики, что позволяет изменять их содержимое на единицу за счет подачи на входы единичных им­ пульсов (цепи «+1»). Начальные значения кодов вводятся в ин­ дексные регистры по специальным командам; если выполняется команда первого типа с кодом операции 0И то в индексный ре­

гистр, номер которого определяется содержимым РКП, вводится содержимое адресной части команды, т. е. (РКА); если выполняет­ ся команда с 0И то в соответствующий индексный регистр вводит­

ся содержимое ячейки ЗУ, номер которой задан адресной частью этой команды. По команде с 0И содержимое соответствующего ин­

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

 

(ИРгК)г+1: = (

[(ИРгК), + 1] («!>Д pHi V Ри>) V (РКА) X

 

х (Р„, Л

Щ

) V (А) (Ри, Л F V P J ! [(РКП) =

АТ],

(9.5)

где

К — номер индексного регистра;

 

 

 

 

 

(/1) — содержимое ячейки ЗУ с номером А =(РКА );

 

 

ф — признак изменения

содержимого

индексного

регистра на

 

единицу.

 

 

выдачи

содержимого

индексных

По аналогии с (9.5) условие

регистров в ячейку с номером А,

определяемым

адресной

частью

команды с 9И ,

записывается так:

 

 

 

 

 

 

 

(А ): = [(ИРгК) ри>] [(РКП) =/С].

 

 

(9.6)

С у м м а т о р

а д р е с а

СмА

используется

для

формирова­

ния

исполнительных

адресов

и

в качестве буферного регистра

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

Теперь рассмотрим принципы построения и работы блока управления командами трехадресной машины, в которой осуще­ ствляется совмещение выборки кода очередной команды с выполне­ нием операции в АУ по данной команде. Схема такого блока при­ ведена на рис. 9.6, где кроме основных узлов показаны группы логических элементов, включенные в соответствующие цепи связи. В состав блока входят регистр команд РгК с группами выходных вентилей Вь В2, В3 и отдельными вентилями В.|, В5, В6, выходы ко­ торых объединяет элемент ИЛИ(, регистр адреса команды РгАК,

2 8 7


индексный регистр ИРг, сумматор адреса СмА, группа вентилей В7 и группа логических элементов ИЛИ2. Принято, что емкость ОЗУ равна 4096, поэтому все адреса являются 12-разрядными.

Регистр команд представляет собой триггерный регистр парал­ лельного действия, функционально разбитый на три части: РКО, РКП и РКА. Адресная часть, в свою очередь, разбита на три 12-разрядные части, служащие для хранения адресов Al, А2 и АЗ.

В РгА ОЗУ

Рис. 9.6. Блок управления командами трехадресноп машины

Через соответствующие группы вентилей Вь В2, В3 и ИЛИ2 со­ держимое этих частей выдается на сумматор адреса. Признаковая часть является трехадресной и служит для размещения трех одно­ адресных признаков модификации адресов команды. Признаки ис­ пользуются следующим образом: если признак модификации, отве­ чающий данному адресу, равен единице, то исполнительный адрес равен сумме данного адреса и содержимого ИРг; в противном слу­ чае осуществляется прямая адресация. Расшифровка значений признаков осуществляется с помощью вентилей В4,- В5, В6, на ко­ торые подаются соответствующие управляющие сигналы из блока микрокоманд.

Регистр адреса команды служит для хранения кода адреса вы­ полняемой команды; этот код обеспечивает и образование на сум­ маторе адреса при включении цепи « + 1» кода адреса очередной команды. Полученный в СмА код адреса очередной команды для выборки последней направляется в регистр адреса РгА ОЗУ. Одно­ временно этот код записывается в РгАК. Собственно регистр адреса команды является 12-разрядным триггерным регистром параллель­ ного действия с входными и выходными вентилями, не показан­ ными на рис. 9.6. Очевидно, что вместе с сумматором адреса оц

288

выполняет функции счетчика команд. При выполнении команд бе­ зусловной и условной передач управления в РгАК через сумматор адреса вводится содержимое АЗ адресной части команды.

Индексный регистр, единственный в рассматриваемом блоке, служит для размещения кода модификатора, который используется при модификации всех трех адресов команды. Ввод кода в ИРг осуществляется по специальной команде. Выдача кода модифика­ тора на СмА осуществляется только тогда, когда соответствующий управляющий сигнал пройдет через один из вентилей B.i, В 5 , В6, логический элемент ИЛИ1 и поступит на вторые входы вентилей группы Вг. Такое прохождение сигнала возможно только тогда, когда хотя бы один из триггеров признаковой части РгК находится в состоянии 1.

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

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

В первом подцикле осуществляется формирование первого ис­ полнительного адреса А1И с отсылкой его в РгА ОЗУ для выборки первого операнда, направляемого в АУ. С этой целью выполняются следующие действия. По управляющему сигналу УС| через группу вентилей Bj код первого адреса передается на сумматор адреса. Так как (РКП)] = 1, то управляющий сигнал У С 4, формируемый практически одновременно с УСЬ проходит через вентиль В4, логи­ ческий элемент ИЛИ1 и поступает на вторые входы вентилей груп­ пы В7. На СмА подается код модификатора; в сумматоре адреса устанавливается значение первого исполнительного адреса. Код А1И выдается в РгА ОЗУ, что и обеспечивает выборку первого операнда, направляемого в АУ.

Во втором подцикле аналогичным образом осуществляется вы­ борка второго операнда из ОЗУ и отсылка его в арифметическое устройство.

В течение третьего подцикла в АУ выполняется заданная опера­ ция и осуществляется выборка из ОЗУ очередной команды.

289