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

книги из ГПНТБ / Дроздов Е.А. Многопрограммные цифровые вычислительные машины

.pdf
Скачиваний:
22
Добавлен:
25.10.2023
Размер:
15.96 Mб
Скачать

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

§ 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

Соседние файлы в папке книги из ГПНТБ