
книги из ГПНТБ / Дроздов Е.А. Многопрограммные цифровые вычислительные машины
.pdfустройств управления принимается, что каждый управляющий сиг нал вызывает выполнение одной микрооперации типа сброса триг геров регистра в нулевое состояние, передачи кода из одного триг гера в другой, перевода счетчика из одного состояния в другое и т. п.; иногда при описании устройств управления понятия управ ляющего сигнала и микрооперации условно отождествляют. Набор управляющих сигналов, формируемых одновременно, называется м и к р о к о м а н д о й . Последовательность микрокоманд, необхо димых для реализации одной машинной операции (сложения, умножения и т. п.), называют м и к р о п р о г р а м м о й выполне ния этой операции. В так называемых микропрограммных УУ имен но коды, эквивалентные последовательности микрокоманд, хранят ся в постоянных ЗУ.
§ 9.2. Структура устройства управления
Устройства управления универсального типа независимо от их видов имеют одинаковую общую структуру в соответствии с выпол няемыми ими общими основными функциями. Для реализации всех «внутренних» операций, связанных с выполнением первых трех основных функций УУ (выборкой очередной команды, хранением команды в течение цикла и преобразованием ее адресной части), выделяется отдельный блок, обычно называемый блоком управле ния командами (БУК). Преобразование операционной части коман ды осуществляется с помощью второго основного блока устройства управления — блока микрокоманд (БМК). В структуру УУ могут включаться также пульт управления, специальный блок пуска и останова, блок начального ввода информации, блок прерываний.
Структурная схема типового устройства управления универ сального типа приведена на рис. 9.3. На ней выделены основные блоки УУ — блок микрокоманд и блок управления командами, пульт управления, блок прерываний — и показаны их основные внутренние и внешние связи. Микрокоманды обозначены на схеме МК; РгА ЗУ и РгЧ ЗУ — соответственно регистр адреса и регистр числа запоминающего устройства машины.
Блок микрокоманд служит, как уже отмечалось, для преобразо вания операционной части команды, имеющего своей конечной целью формирование всех необходимых для выполнения заданной операции наборов управляющих сигналов. Основной исходной ин формацией, подлежащей преобразованию в БМК, является код операции, получаемый в начале цикла из блока управления коман дами; если машина рассчитана на выполнение арифметических и логических операций в нескольких модификациях, то в БМК из БУК дополнительно передается код признака модификации выпол няемой операции; в некоторых случаях в БМК передаются коды и других признаков. Для первичного преобразования кодов, получае мых из БУК, в блоках микрокоманд используются дешифраторы; это дешифраторы операций (дешифраторы кодов операций) и де шифраторы признаков.
280
Пусть код операции 0 имеет т\ разрядов, а код признаков тс — mi разрядов; тогда возбуждение одного из 2 т‘ выходов дешиф
ратора операций и одного из 2Ша выходов дешифратора признаков
однозначно определяет, какой набор управляющих сигналов необ ходимо сформировать в блоке микрокоманд за данный цикл рабо ты УУ. В связи с этим можно записать, что
Qft = ^fc(0>•*).
где Q* — микрокоманда номера k, т. е. микрокоманда, формиоуе- ' мая на некотором /е-м такте цикла.
Рис. 9.3. Структурная схема устройства управления
Поскольку любая |
микрокоманда Qk состоит из микроопераций |
• ■•. <7jh, •. <7nfc |
{n — предельное количество микроопераций |
в одной микрокоманде), то можно записать, что |
|
|
*)• |
В процессе выполнения операций промежуточные результаты во многих случаях оказывают существенное влияние на последо вательность формирования микрокоманд, на выполнение микроопе раций. Так, при делении знак остатка указывает на то, какую по следовательность действий надо выполнить для определения значе ния очередной цифры частного; при умножении очередное частич ное произведение формируется в зависимости от значений расшиф ровываемых цифр множителя и т. п. Поэтому в общем случае при формировании значений Q/t и qjh должны учитываться условия 5, вводимые в БМК по цепи обратной связи от других устройств сиг налами состояния устройств ССУ или из пульта управления/т. е.
Qk = |
Fk (Q, *, S), |
(9.1) |
= |
S ) . |
(9. |
Функция Fjk представляет собой в конечном итоге логическую функцию. Это можно показать следующим образом. Пусть микро операция qjh означает передачу содержимого некоторого регистра РгВ в регистр РгС, которая осуществляется при операциях с 0ь 02, 012, 0i8, iti, it2 и условии 52. Обозначая сигналы на выходах дешифра тора операций через (Зь р2 и т. д., а на выходах дешифратора при знаков — через ри Р2 и т. д., получим, что
= (Pi V EW Pi2 V Pis) (Pi V Л ) s2. |
(9.3) |
Соотношение (9.3) является частным, но оно отражает общий принцип формирования микроопераций в блоках микрокоманд.
Однако необходимо |
иметь |
в |
виду, |
что (9.3) относится только |
||
|
мк, мкг мк3 |
мк4 |
мка |
|||
УН, |
А |
лг |
1 |
1 |
А |
t |
|
1 |
1 |
1 |
1 |
i |
|
УЦ2 |
1 |
|
А |
1 |
_______А |
ъ |
----1---—1 |
1 |
I |
||||
УЦз |
1 |
1 |
1 |
А |
t |
|
т |
—1— |
1 |
1 |
|||
|
1 |
1 |
1 |
1 |
1 |
|
|
1 |
|
||||
Щп |
1 |
А |
1 |
А |
1 |
ь |
h |
Ч |
Ч |
ч |
|
||
|
|
|
||||
Рис. |
9.4. Временная |
диаграмма |
формирования |
микро |
||
|
|
|
|
команд |
|
|
к 6-му такту, и необходимо всегда обеспечивать временное распре деление микроопераций и их совокупностей, т. е. микрокоманд.
Итак, блок микрокоманд может быть представлен как совокуп ность узлов, обеспечивающих дешифрирование кодов операций и признаков, а также узлов, реализующих соотношения типа (9.3) и временное распределение микрокоманд. Такие узлы представляют собой логические схемы, дополненные запоминающими элемента ми типа триггеров; с целью их тактирования для временного рас пределения управляющих сигналов обычно используются генера торы тактовых или синхронизирующих импульсов. Устройства управления с блоками микрокоманд, построенными по такому принципу, относятся к УУ со схемным формированием наборов управляющих сигналов.
Последовательность выработки микрокоманд как некоторых наборов управляющих сигналов иллюстрируется временной диа граммой, приведенной на рис. 9.4. Сигнал, отвечающий некоторой микрооперации qjh, всегда посылается в одну и ту же управляемую цепь УЦ, например в цепь сброса триггеров некоторого регистра в нулевое состояние; учет условий S несколько усложняет времен ные диаграммы формирования микрокоманд. Моменты времени t\, t2, ..., tn, в которые осуществляется формирование микрокоманд МКь МК2, .... МКЦ, располагаются внутри временного интервала, отвечающего циклу работы устройства управления.
Пространственно-временному распределению микроопераций и микрокоманд отвечает некоторая последовательность двоичных ко дов, если формированию каждого управляющего сигнала в данный момент времени поставить в соответствие единицу, а противополож ному событию— нуль. Иначе говоря, каждая микрокоманда выра жается отдельным двоичным кодом. Для случая, отвечающего вре менной диаграмме рис. 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