Файл: Дроздов Е.А. Многопрограммные цифровые вычислительные машины.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