IBM370
.pdfК |
Приказ |
од |
|
|
|
0 |
Начальная загрузка микропро- |
A |
грамм |
|
|
0 |
Начальный сброс процессора |
B |
|
|
|
0 |
Сброс процессора |
C |
|
|
|
0 |
Не определены |
D |
|
… |
|
F |
|
F |
|
|
|
Приказы определяются следующим образом.
Уточнить состояние. Адресованный процессор передает процессору, выдавшему приказ,
информацию о своем состоянии. Значение битов этой информации определено в подразделе
“Биты состояния” раздела 7.3. Этот приказ не вызывает никаких других действий в адресован-
ном процессоре. Если не все биты состояния равны нулю, то информация о состоянии зано-
сится в общий регистр, указанный полем R1, и устанавливается признак результата 1. Если все биты состояния равны нулю, устанавливается признак результата 0.
Внешний вызов. В адресованном процессоре возникает условие внешнего прерывания с признаком внешнего вызова. Во время выполнения команды СИГНАЛ ПРОЦЕССОРУ запрос на прерывание остается в ожидании обработки. Соответствующее прерывание происходит тогда,
когда в процессоре разрешено прерывание по этому условию, и не обязательно во время вы-
полнения команды СИГНАЛ ПРОЦЕССОРУ, вызвавшей его возникновение. Когда прерывание происходит, записываются код прерывания и адрес процессора, пославшего сигнал. В каждый момент в процессоре может находиться в состоянии ожидания только одно условие внешнего вызова.
Экстренный сигнал. В адресованном процессоре возникает условие внешнего прерывания
“экстренный сигнал”. Во время выполнения команды СИГНАЛ ПРОЦЕССОРУ запрос на преры-
вание сохраняется в ожидании обработки. Соответствующее прерывание происходит тогда,
когда в процессоре разрешено прерывание по этому условию, причем не обязательно во время выполнения команды, вызвавшей его возникновение. Когда прерывание происходит, записы-
ваются код прерывания и адрес процессора, пославшего сигнал. В каждый момент времени в принимающем процессоре может находиться в состоянии ожидания по одному условию экс-
тренного сигнала от каждого процессора мультипроцессорной системы, включая сигнал от са-
мого принимающего процессора.
161
Пуск. Адресованный процессор переходит в состояние “работа”. Процессор не обязательно переходит в состояние “работа” во время выполнения команды СИГНАЛ ПРОЦЕССОРУ. Если в момент приема приказа процессор уже находится в состоянии “работа”, приказ не вызывает в принимающем процессоре никаких действий.
Стоп. Адресованный процессор переходит в состояние “стоп”. Это состояние описано в подразделе “Состояние “стоп/работа”” раздела 4.1. Процессор не обязательно переходит в со-
стояние “стоп” во время выполнения команды СИГНАЛ ПРОЦЕССОРУ. Если в момент приема приказа принимающий процессор уже находится в состоянии “стоп”, приказ не вызывает в нем никаких действий.
Повторный пуск. Адресованный процессор выполняет повторный пуск (раздел 6.7). По-
вторный пуск не обязательно выполняется процессором за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
Начальный программный сброс. Адресованный процессор выполняет начальный про-
граммный сброс (подраздел “Сбросы” раздела 4.14). Выполнение этого сброса не воздействует на другие процессоры и на каналы, подключенные к процессору, выполняющему сброс. Опера-
ция сброса не обязательно завершается за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
Программный сброс. Адресованный процессор выполняет программный сброс (подраздел
“Сбросы” раздела 4.14). Выполнение этого сброса не воздействует на другие процессоры и на каналы, не подключенные к процессору, выполняющему сброс. Операция сброса не обяза-
тельно завершается за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
Остановиться и записать состояние. Адресованный процессор переходит в состояние
“стоп”, а затем производит запись состояния (состояния “стоп” и “работа”, а также операции останова и записи состояния описаны в главе 4). Не только запись состояния, но и переход в состояние “стоп” не обязательно завершаются за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
Начальная загрузка микропрограмм (IMPL). Адресованный процессор выполняет началь-
ный программный сброс, а затем инициирует начальную загрузку микропрограмм. Последняя операция не отличается от операции, которая выполняется как часть ручной начальной загруз-
ки микропрограмм. Если на адресованном процессоре начальная загрузка микропрограмм не предусмотрена, то код приказа рассматривается как неопределенный и ошибочный. Эта опе-
рация не обязательно завершается за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
Начальный сброс процессора. Адресованный процессор выполняет начальный сброс про-
цессора (подраздел “Сбросы” раздела 4.14). Выполнение этого сброса не оказывает воздей-
ствия на другие процессоры и не вызывает сброса в каналах, в том числе и в подключенных к адресованному процессору, который должен выполнить сброс. Операция сброса не обязатель-
но завершается за время выполнения команды СИГНАЛ ПРОЦЕССОРУ.
162
Сброс процессора. Адресованный процессор выполняет сброс процессора (подраздел
“Сбросы” раздела 4.14). Выполнение этого сброса не воздействует на другие процессоры и не вызывает сброса в каналах, в том числе и в подключенных к адресованному процессору, кото-
рый должен выполнить сброс. Операция сброса не обязательно завершается за время выпол-
нения команды СИГНАЛ ПРОЦЕССОРУ.
Условия, определяющие ответ
Условия, препятствующие интерпретации кода приказа
Приведенные ниже ситуации определяют ход выполнения приказов. Ситуации перечислены в порядке приоритетов, определяющих, какая из этих ситуаций, если они встретятся одновре-
менно, будет распознана при попытке выполнить приказ.
1. Пути доступа к адресованному процессору заняты, так как средства сигнализации между процессорами используются другой командой СИГНАЛ ПРОЦЕССОРУ. Эта вторая команда может быть выдана адресованным процессором или адресованному процессору либо процес-
сором или процессору, который направил рассматриваемый приказ. Приказ отвергается. Уста-
навливается признак результата 2.
2. Адресованный процессор не работоспособен, т.е. адресованный процессор вообще от-
сутствует в системе, не подключен к обращающемуся процессору или у него отключено пита-
ние. Приказ отвергается. Устанавливается признак результата 3.
3. В адресованном процессоре имеет место одно из следующих условий:
а) принят к выполнению один из ранее выданных приказов, например “пуск”, “стоп”, “повтор-
ный пуск” или “остановиться и записать состояние”, и выполнение этого приказа еще не завер-
шилось;
б) с пульта начато выполнение операций ручного пуска, останова, повторного пуска или за-
писи состояния и эти операции еще не завершились;
в) с пульта начата процедура начальной загрузки программы и завершена только часть операции, соответствующая сбросу (загрузка программы не завершена).
Если при этом в качестве приказа выдан такой приказ, как “уточнить состояние”, “внешний вызов”, “экстренный сигнал”, “пуск”, “стоп”, “повторный пуск” или “остановиться и записать со-
стояние”, то этот приказ отвергается и устанавливается признак результата 2. Если выдан при-
каз начальной загрузки микропрограмм, один из приказов на сброс или же неопределенный ли-
бо не реализуемый в данной установке приказ, то код приказа интерпретируется так, как это описано ниже в подразделе “Биты состояния”.
4. В адресованном процессоре имеет место одно из следующих условий:
а) адресованный процессор принял к выполнению один из таких ранее выданных приказов,
как “начальный программный сброс”, “программный сброс”, “начальная загрузка микропро-
грамм”, “начальный сброс процессора” или “сброс процессора”, и выполнение этого приказа еще не завершилось;
163
б) на адресованном процессоре с пульта начата и еще не завершилась процедура сброса или начальной загрузки микропрограмм. В данном случае под процедурой сброса имеется в ввиду и соответствующая часть процедуры начальной загрузки программ.
Если при этом одновременно выдан приказ “уточнить состояние”, “внешний вызов”, “экс-
тренный сигнал”, “пуск”, “стоп”, “повторный пуск” или “остановиться и записать состояние”, то приказ отвергается и устанавливается признак результата 2. Если выдан приказ “начальная загрузка микропрограмм”, один из приказов на сброс или же неопределенный либо не реализу-
емый в данной установке приказ, то или приказ отвергается и устанавливается признак резуль-
тата 2, или код приказа интерпретируется, как это описано ниже в подразделе “Биты состоя-
ния”.
Если имеют место условия, описанные выше в пунктах 3 и 4, адресованный процессор счи-
тается занятым. То, что процессор занят, не индицируется, если он находится в состоянии
“стоп при сбое” или имеет место условие вмешательство оператора. Обычно процессор бывает занятым в течение недолгого промежутка времени, однако условия, описанные выше в пункте
3, могут существовать неопределенно долго по причине нескончаемой последовательности прерываний или недействительного адреса в регистре префикса. Однако в этом случае про-
цессор не является занятым для любого из приказов сброса или начальной загрузки микропро-
грамм.
Биты состояния
Как направляющий приказ, так и адресованные процессоры могут индицировать свою реак-
цию на этот приказ с помощью восьми признаков состояния. Эти признаки состояния и соответ-
ствующие им биты общего регистра, номер которого указан в поле R1 команды СИГНАЛ ПРОЦЕССОРУ, определяются следующим образом:
По- |
Признак состояния |
зиция |
|
|
|
0 |
Сбой оборудования |
1–23 |
Не определены, записываются |
|
нули |
24 |
Ждущий внешний вызов |
25 |
Стоп |
26 |
Вмешательство оператора |
27 |
Стоп при сбое |
28 |
Не готов |
29 |
Не определен; записывается |
|
нуль |
30 |
Недействительный приказ |
31 |
Сбой в принимающем процес- |
|
|
164
ПоПризнак состояния
зиция
соре
Признак состояния, соответствующий позиции 0, формируется процессором, выполняющим команду СИГНАЛ ПРОЦЕССОРУ. Признаки состояния, соответствующие позициям 24–31,
формируются адресованным процессором.
Адресованный процессор сообщает свое состояние процессору, выдающему приказ, в том случае, если путь доступа к адресованному процессору не занят, этот процессор работоспосо-
бен, а также не занят по отношению к заданному приказу. Имеются два типа признаков состоя-
ния:
1. Биты состояния 24–28 указывают на наличие соответствующих состояний в адресован-
ном процессоре во время получения кода приказа. За исключением ответа на приказ “уточнить состояние”, каждое состояние индицируется только в тех случаях, когда оно препятствует успешному выполнению приказа. В случае же приказа “уточнить состояние” производится ин-
дикация всех имеющих место признаков состояния; признаки вмешательства оператора и него-
товности индицируются, если эти состояния препятствуют выполнению любого приказа, преду-
смотренного на данном процессоре.
2. Биты состояния 30 и 31 указывают, что соответствующие состояния обнаружены на адре-
сованном процессоре во время приема приказа.
Если все представленные биты состояния равны нулю, это означает, что адресованный процессор принял приказ и в направляющем приказ процессоре устанавливается признак ре-
зультата 0; если не все представленные биты состояния равны нулю, то это означает, что ад-
ресованный процессор отверг приказ и биты состояния записываются в общий регистр посы-
лающего процессора, определяемый полем R1 команды СИГНАЛ ПРОЦЕССОРУ; в биты 0–23
регистра записываются нули и устанавливается признак результата 1.
Если имеется признак сбоя оборудования, то в бит 0 общего регистра, определяемого по-
лем R1 команды СИГНАЛ ПРОЦЕССОРУ, заносится единица, в биты 1–23 заносятся нули, а
содержимое битов 24–31 непредсказуемо.
При этом независимо от того, работоспособен ли адресуемый процессор, занят ли путь до-
ступа к нему и все ли представленные биты состояния равны нулю, всегда устанавливается признак результата 1.
Ниже дается определение признаков состояния.
Сбой оборудования. Это состояние возникает, когда в процессоре при выполнении команды обнаруживается неисправность оборудования, которая влияет только на выполнение этой ко-
манды и связанного с ней приказа. Код приказа не обязательно будет передан и не обязатель-
но принят, а биты состояния, вырабатываемые адресованным процессором, могут быть оши-
бочными.
165
Ждущий внешний вызов. Это состояние имеет место, если в адресованном процессоре из-
за обработки ранее выданной команды СИГНАЛ ПРОЦЕССОРУ откладывается обработка условия внешнего прерывания “внешний вызов”. Условие существует с момента приема прика-
за “внешний вызов” и до завершения выполнения вызываемого этим условием внешнего пре-
рывания. Это состояние может возникнуть в результате действий как процессора, выдавшего приказ, так и другого процессора. Индикация этого состояния, если оно имеет место, произво-
дится только в ответ на приказы “уточнить состояние” и “внешний вызов”.
Стоп. Это состояние имеет место, если адресованный процессор находится в состоянии
“стоп”. Индикация этого состояния, если оно наблюдается, производится только в ответ на при-
каз “уточнить состояние”.
Вмешательство оператора. Это состояние имеет место, если адресованный процессор выполняет определенные действия, инициированные с пульта или удаленной панели управле-
ния системой. Какая конкретно операция, начатая с пульта, вызывает рассматриваемое состо-
яние, зависит от модели и приказа. Индикация этого состояния, если оно наблюдается, может производиться в ответ на все приказы. Индикация вмешательства оператора производится в ответ на приказ “уточнить состояние”, если это состояние имеет место и препятствует приня-
тию любого из реализуемых в данной установке приказов. Возможна индикация этого состоя-
ния также и в ответ на неопределенные или не реализуемые в данной установке приказы.
Стоп при сбое. Это состояние имеет место, если адресованный процессор находится в со-
стоянии “стоп при сбое”. Индикация этого состояния, если оно наблюдается, производится только в ответ на приказы “уточнить состояние”, “внешний вызов”, “экстренный сигнал”, “пуск”, “стоп”, “повторный пуск” и “остановиться и записать состояние”. Возможна индикация этого со-
стояния также в ответ на неопределенные или не реализуемые в данной установке приказы.
Не готов. Это состояние имеет место, когда адресованный процессор использует переза-
гружаемую управляющую память для выполнения приказа, а требуемая микропрограмма в нее не загружена. Индикация состояния “не готов” может производиться в ответ на все приказы,
кроме IMPL.
Некорректный приказ. Это состояние существует во время обмена сигналами, связанного с выполнением команды СИГНАЛ ПРОЦЕССОРУ, если адресованный процессор принимает не-
определенный или не реализуемый в данной установке приказ.
Сбой в принимающем процессоре. Это состояние имеет место, если во время обмена сиг-
налами, связанного с выполнением команды СИГНАЛ ПРОЦЕССОРУ, в адресованном процес-
соре обнаруживается неисправность оборудования. Если произошла индикация этого состоя-
ния, то приказ не выполняется и, поскольку сбой, возможно, повлиял на формирование других битов состояния, эти биты могут иметь неправильные значения. Условие прерывания от схем контроля на адресованном процессоре может не возникнуть.
Следующая таблица показывает, какие состояния будут представлены процессору, выдав-
шему приказ, в зависимости от кода этого приказа.
166
|
Жду |
Сто |
Вме |
Сто |
Не |
Не- |
Сбо |
|
щий |
п |
ша- |
п |
го- |
дей |
й в |
|
вне |
|
тель |
при |
тов |
ств |
при |
|
шни |
|
ство |
сбо |
|
ите |
ни- |
|
й |
|
опе |
е |
|
льн |
ма- |
|
вы- |
|
ра- |
|
|
ый |
ющ |
|
зов |
|
тора |
|
|
при |
ем |
|
|
|
1 |
|
|
каз |
про |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
цес |
|
|
|
|
|
|
|
со- |
|
|
|
|
|
|
|
ре 2 |
|
|
|
|
|
|
|
|
Уточнить состояние |
Х |
х |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Внешний сигнал |
Х |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Экстренный вызов |
0 |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Пуск |
0 |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Стоп |
0 |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Повторный пуск |
0 |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Начальный программный сброс |
0 |
0 |
х |
0 |
х |
0 |
х |
|
|
|
|
|
|
|
|
Программный сброс |
0 |
0 |
х |
0 |
х |
0 |
х |
|
|
|
|
|
|
|
|
Остановиться и записать состояние |
0 |
0 |
х |
х |
х |
0 |
х |
|
|
|
|
|
|
|
|
Начальная загрузка микропрограмм 3 |
0 |
0 |
х |
0 |
0 |
0 |
х |
|
|
|
|
|
|
|
|
Начальный сброс процессора 3 |
0 |
0 |
х |
0 |
х |
0 |
х |
|
|
|
|
|
|
|
|
Сброс процессора 3 |
0 |
0 |
х |
0 |
х |
0 |
х |
|
|
|
|
|
|
|
|
Приказ не определен |
0 |
0 |
0/х |
х |
х |
1 |
х |
|
|
|
|
|
|
|
|
167
1 Текущее состояние признака вмешательства оператора может зависеть от интерпрети-
руемого кода приказа.
2Если в позиции, соответствующей сбою в принимающем процессоре, устанавливается единица, то значения других позиций могут оказаться неверными.
3Если приказ реализован в адресованном процессоре, то следует использовать соот-
ветствующую строку таблицы; в противном случае – строку “Приказ не определен”.
Обозначения
0 – в данной позиции устанавливается нуль независимо от текущего состояния;
1 – в данной позиции устанавливается единица;
X – в данной позиции устанавливается 0 или 1 в зависимости от наличия соответствую-
щего состояния;
0/X – либо устанавливается нуль, либо отражается текущее состояние соответствующе-
го признака.
Если все представленные биты состояния равны нулю, то приказ принят к исполнению и в процессоре, выдавшем приказ, устанавливается признак результата 0. Если среди представ-
ленных битов состояния имеются единичные, то это означает, что приказ отвергнут, причем в этом случае в процессоре, выдавшем приказ, устанавливается признак результата 1 и в ре-
гистр, определенный полем R1 команды СИГНАЛ ПРОЦЕССОРУ, записываются биты состоя-
ния.
Замечания по программированию
Адресуя команду СИГНАЛ ПРОЦЕССОРУ самому себе, процессор может использовать следующие возможности:
1.Приказ “уточнить состояние”, позволяющий обнаружить, имеется ли ждущее условие внешнего вызова.
2.Приказы “внешний вызов” и “экстренный сигнал”, вызывающие соответствующее условие прерывания. Приказ “внешний вызов” может быть отвергнут из-за ранее сформированного при-
знака внешнего вызова.
3.Приказ “пуск”, устанавливающий признак результата 0 и не вызывающий никаких других действий.
4.Приказ “стоп”, устанавливающий признак результата 0, вызывающий выполнение разре-
шенных ждущих прерываний и переход в состояние “стоп”.
5. Приказ “повторный пуск”, позволяющий записать в память текущее PSW.
Два процессора могут одновременно выполнять команду СИГНАЛ ПРОЦЕССОРУ, адресу-
ясь друг к другу. При этом только один процессор может обнаружить, что путь доступа занят передачей приказа или битов состояния, связанных с выполнением команды SIGP другим про-
168
цессором. С другой стороны, оба процессора могут обнаружить, что путь доступа свободен, и
передать приказы друг другу. В частности, оба процессора могут одновременно вызывать друг у друга останов, повторный пуск или сброс.
Синхронизация часов
В вычислительных установках, содержащих более одного процессора, в зависимости от мо-
дели каждый из процессоров может иметь свои часы или же несколько процессоров могут сов-
местно использовать одни часы. В любом случае каждый процессор имеет доступ к одним ча-
сам. Изменение конфигурации не влияет ни на содержимое часов, ни на то, к каким часам про-
цессор имеет доступ.
Если на установке с данной конфигурацией имеется несколько часов, то они синхронизиро-
ваны так, что их содержимое увеличивается с одной и той же скоростью. С той же скоростью уменьшается содержимое таймера CPU.
Средства синхронизации часов в процессоре позволяют с помощью единой, не зависящей от модели программы синхронизации часов обслуживать установки как с одними, так и с не-
сколькими часами. Кроме того, средства синхронизации совместно с супервизорной програм-
мой синхронизации часов обеспечивают фактически единые часы для всей мультипроцессор-
ной системы, а именно все программы, одновременно обращающиеся к часам на разных про-
цессорах, получают одно и то же показание времени.
Синхронизация обеспечивается проверкой того, что содержимое младших 32 битов всех часов в мультипроцессорной системе изменяется в одно и то же время, а также тем, что сто-
явшие часы начинают идти в ответ на сигнал от других часов. Отсутствие синхронизации вызы-
вает внешнее прерывание по условию нарушения синхронизации часов. Управление синхрони-
зацией осуществляется с помощью бита управления синхронизацией (разряда 2 управляющего регистра 0; см. разделы 6.5 и 4.10).
Замечания по программированию
Если бит управления синхронизацией часов установлен в единицу, то стоящие часы начи-
нают идти, как только заносятся нули в биты 32–63 любых идущих в системе часов. Это позво-
ляет программно синхронизировать все часы с любыми конкретными часами, не требуя, чтобы оператор выбрал “главные часы” как источник синхронизирующих импульсов. Супервизорная программа синхронизации часов должна проверять синхронность старших битов и обеспечи-
вать эту синхронность, передавая их значения в часы, подлежащие синхронизации.
Адрес процессора
Каждому процессору в мультипроцессорной системе присваивается собственный адрес.
При обращении к процессору по команде СИГНАЛ ПРОЦЕССОРУ адрес процессора записыва-
ется в соответствующее поле этой команды. Если процессор посылает оповещение о сбое,
экстренный сигнал или внешний вызов, то его адрес записывается в специальное поле адреса процессора в ходе прерывания. Адрес присваивается процессору во время монтажа вычисли-
169
тельной установки и не зависит от изменений конфигурации. Программа имеет доступ к адресу
процессора с помощью команду ЗАПИСЬ В ПАМЯТЬ АДРЕСА ПРОЦЕССОРА.
170
