
IBM370
.pdfОперанд команды рассматривается как двоичное число без знака длиной 64 бита. Этот операнд заменяет содержимое часов в соответствии с их разрешающей способностью. В часы заносятся только биты операнда, соответствующие позициям, в которых должно производиться обновление показаний часов; содержимое оставшихся младших битов в часах не сохраняется и игнорируется.
Как только содержимое часов занесено (часы выставлены), они переходят в состояние
“стоп”. Часы переходят из состояния “стоп” в состояние “отсчет” и возобновляют отсчет време-
ни под управлением бита синхронизации часов (бит 2 управляющего регистра 0).
Содержимое часов изменяется и часы переводятся в состояние “стоп” только в том случае,
если переключатель часов на пульте управления системой находится в положении “разрешить установку”. Если этот переключатель находится в положении “защита”, то содержимое и состо-
яние часов не могут быть изменены.
В этих двух случаях признак результата устанавливается в 0 или в 1 соответственно. Когда часы выключены, то независимо от положения переключателя часов показания и состояние часов не изменяются и устанавливается признак результата, равный 3.
Операнд должен быть расположен на границе двойного слова, в противном случае распо-
знается особый случай спецификации и операция подавляется. Особый случай доступа распо-
знается независимо от положения переключателя часов и их состояния.
Признак результата:
0 – часы выставлены;
1 – часы защищены;
2 – не бывает;
3 – часы выключены.
Программные прерывания:
привилегированная операция;
доступ (выборка второго операнда);
спецификация.
УСТАНОВИТЬ КОМПАРАТОР
SCKC D2(B2) |
|
[S] |
|
|
||
+ |
-------------------------- |
|
|
|
|
+ |
¦ |
B206 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Содержимое 8-байтового поля, указанного адресом второго операнда, заменяет текущее содержимое компаратора.
Соответствующие биты операнда заносятся только в те позиции компаратора, содержимое которых сравнивается с содержимым часов. Содержимое остальных (правых) битов игнориру-
ется и в компараторе не сохраняется.
181
Операнд должен быть расположен на границе двойного слова, в противном случае распо-
знается особый случай спецификации и операция подавляется. Операция также подавляется при особых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован компаратором);
привилегированная операция;
доступ (выборка второго операнда);
спецификация.
УСТАНОВИТЬ ТАЙМЕР CPU
SPT |
D2(B2) |
[S] |
|
|
||
+-------------------------- |
|
|
|
|
|
+ |
¦ |
B208 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Содержимое 8-байтового поля, указанного адресом второго операнда, заменяет текущее содержимое таймера CPU.
Биты операнда заносятся только в позиции таймера CPU, в которых в процессе его работы должны изменяться показания. Содержимое остальных (правых) битов игнорируется и в тай-
мере CPU не сохраняется.
Операнд должен быть расположен на границе двойного слова, в противном случае распо-
знается особый случай спецификации и операция подавляется. Операция также подавляется при особых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован таймером CPU);
привилегированная операция;
доступ (выборка второго операнда);
спецификация.
УСТАНОВИТЬ ПРЕФИКС
SPX |
D2(B2) |
[S] |
|
|
||
+-------------------------- |
|
|
|
|
|
+ |
¦ |
B210 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
182
В регистр префикса заносятся биты 8–19 слова, заданного адресом второго операнда. Вся информация в буфере быстрой переадресации данного процессора становится недействи-
тельной.
Если операция завершается, новый префикс используется при прерываниях, происходящих после выполнения команды, и при реализации последующих команд. Содержимое битов 0–7 и
20–31 операнда игнорируется.
Если имеется буфер быстрой переадресации, то для всех последующих команд он пред-
ставляется очищенным от своего предыдущего содержимого.
Производится временная отмена совмещений. Выполнение операции в процессоре задер-
живается до тех пор, пока каналы и другие процессоры не получат извещения о завершении предыдущих доступов к памяти. Если выполнение данной команды не завершено, то не произ-
водится выборка последующих команд, а также их операндов или строк таблиц динамической переадресации.
Операнд должен быть расположен на границе слова, в противном случае распознается особый случай переадресации и операция подавляется. Операция также подавляется при осо-
бых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован средствами мультипроцессирования);
привилегированная операция;
доступ (выборка второго операнда);
спецификация.
УСТАНОВИТЬ КЛЮЧ PSW
SPKA D2(B2) |
|
[S] |
|
|
||
+ |
-------------------------- |
|
|
|
|
+ |
¦ |
B20A |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Четырехразрядный ключ защиты в текущем PSW замещается битами 24–27 адреса опе-
ранда.
Адрес второго операнда не используется для адресации данных; вместо этого биты 24–27
адреса образуют новое значение ключа. Биты 8–23 и 28–31 адреса второго операнда игнори-
руются.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован средствами для работы с ключом PSW);
привилегированная операция.
183
Замечания по программированию
Формат команды SPKA позволяет программно заносить в текущее PSW ключ защиты из общего регистра, указанного полем B2, или из поля D2 самой команды.
Если прикладная программа требует, чтобы супервизорная программа осуществила доступ к области, которая указана этой прикладной программой, причем супервизорная программа не защищена от выборки, то супервизорная программа может использовать команду SPKA с це-
лью проверки того, что данной прикладной программе доступ разрешен. Супервизорная про-
грамма может выполнить проверку, заменив свой ключ защиты в PSW на ключ прикладной про-
граммы до осуществления доступа, а затем восстановив исходное значение своего ключа. Од-
нако следует соблюдать осторожность при обработке особых случаев защиты памяти при их возникновении, поскольку эти особые случаи могут вызвать прекращение операции; на некото-
рых моделях прерывание, обусловленное этими особыми случаями, может быть задержано, а
когда оно произойдет, то будет записано PSW с нулевым кодом длины команды.
УСТАНОВИТЬ КЛЮЧ ПАМЯТИ
SSK |
R1,R2 |
|
[RR] |
||
+-------------------- |
|
|
|
|
+ |
¦ 08 |
|
¦ |
R1 |
¦ |
R2 ¦ |
+-------------------- |
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
Ключ блока памяти, адресуемого при помощи регистра, который задан полем R2, замеща-
ется содержимым регистра, заданного полем R1.
Биты 8–20 регистра, заданного полем R2, указывают 2048-байтовый блок реальной основ-
ной памяти. Биты 0–7 и 21–27 регистра игнорируются. Биты 28–31 регистра должны содержать нули, в противном случае распознается особый случай спецификации и операция подавляется.
Адрес блока памяти, будучи реальным адресом, не подвергается динамической переадре-
сации. Следовательно, при обращении к ключу памяти не могут возникнуть особые случаи спе-
цификации переадресации, использования сегмента и страницы. Особый случай распознается только при недействительном адресе блока, но не в случае недействительного адреса строки таблицы. При обращении к ключу защита памяти не действует.
Семиразрядный ключ памяти берется из позиций 24–30 регистра, заданного полем R1. Со-
держимое битов 0–23 и 31 этого регистра игнорируется. Если процессор не оборудован сред-
ствами динамической переадресации, биты 29 и 30 игнорируются.
Признак результата не изменяется.
Программные прерывания:
привилегированная операция;
доступ (только адресация при доступе ко второму операнду);
спецификация.
184
УСТАНОВИТЬ МАСКУ СИСТЕМЫ
SSM |
D2(B2) |
[S] |
|
|
|
|
|||
+--------------------------------- |
|
|
|
|
|
|
|
|
+ |
¦ |
80 |
¦ |
////// |
¦ |
B2 |
¦ |
D2 |
¦ |
|
+--------------------------------- |
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
|
15 |
16 |
19 |
20 |
|
31 |
Биты 0–7 текущего PSW замещаются байтом из основной памяти, указанным адресом вто-
рого операнда.
Если в процессоре имеются средства подавления этой команды, то ее выполнение зависит от бита подавления команды УСТАНОВИТЬ МАСКУ СИСТЕМЫ, которым является бит 1 управ-
ляющего регистра 0. Если этот бит равен нулю, команда выполняется обычным образом. Если же этот бит равен единице и процессор находится в состоянии “супервизор”, то распознается особый случай – выполнение специальной операции – и операция подавляется.
Операция также подавляется при особых случаях адресации и защиты.
Биты 8–15 кода команды игнорируются.
Признак результата не изменяется.
Программные прерывания:
привилегированная операция;
доступ (при выборке второго операнда);
выполнение специальной операции.
СИГНАЛ ПРОЦЕССОРУ
SIGP |
|
R1,R3,D2(B2) |
|
[RS] |
|
|
|
|||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ B1 |
|
¦ |
R1 |
¦ |
R3 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
|
31 |
В процессор, адрес которого задан третьим операндом, передается 8-разрядный код прика-
за. Признак результата отражает исход операции. Более подробно об исходе операции изве-
щают биты состояния, заносимые в регистр, указанный полем R1.
Адрес второго операнда не используется в качестве адреса данных; вместо этого биты 24– 31 адреса содержат 8-разрядный код приказа. Биты 8–23 адреса второго операнда игнориру-
ются. Код приказа указывает, какие действия должны быть выполнены адресованным процес-
сором. Значения кодов приказов приведены в гл. 7.
16-разрядное двоичное число, размещаемое в позициях 16–31 общего регистра, заданного полем R3, представляют собой адрес процессора. Старшие 16 битов этого регистра игнориру-
ются.
185
Выполняется временная отмена совмещений. Выполнение операции задерживается до тех пор, пока каналы и другие процессоры не получат извещения о завершении предыдущих до-
ступов к основной памяти, а затем производится передача сигнала. До тех пор пока выполне-
ние данной команды не завершится, доступ к последующим командам и их операндам не про-
изводится.
Если код приказа принят и не возвращены ненулевые биты состояния, устанавливается признак результата 0. Если данным или адресованным процессором порождается информация о состоянии, она заносится в общий регистр, указанный полем R1, и устанавливается признак результата, равный 1.
Если занят путь доступа к адресованному процессору или адресованный процессор работо-
способен, но находится в таком состоянии, что не может ответить на код приказа, то устанав-
ливается признак результата, равный 2.
Если адресованный процессор неработоспособен, т.е. если он отсутствует в составе вычис-
лительной установки, или не подключен к данному процессору, или у него отключено питание,
то устанавливается признак результата, равный 3.
Более подробно признаки результата команды СИГНАЛ ПРОЦЕССОРУ рассмотрены в гл. 7.
Признак результата:
0 – код приказа принят;
1 – записана информация состояния;
2– занято;
3– неработоспособен.
Программные прерывания:
операция (если процессор не оборудован средствами мультипроцессирования);
привилегированная операция.
Замечания по программированию
Для того чтобы существующие в настоящее время программы правильно работали, когда вычислительная установка будет оборудована новыми средствами, использующими дополни-
тельные биты, в неиспользуемые биты адреса второго операнда и в биты 0–15 регистра, за-
данного полем R3, следует заносить только нули.
ЗАПИСЬ В ПАМЯТЬ ЗНАЧЕНИЯ КОМПАРАТОРА
STCKC |
D2(B2) |
[S] |
|
|
|||
+ |
-------------------------- |
|
|
|
|
|
+ |
¦ |
B207 |
|
¦ |
B2 |
¦ |
D2 |
¦ |
+ |
-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Текущее значение компаратора записывается в 8-байтовую область памяти, указанную ад-
ресом второго операнда.
186
Вмладшие (правые) позиции, которые соответствуют битам компаратора, не участвующим
всравнении с показаниями часов, заносятся нули.
Операнд должен быть расположен на границе двойного слова. В противном случае распо-
знается особый случай спецификации и операция подавляется. Операция также подавляется при особом случае защиты памяти или адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован компаратором);
привилегированная операция;
доступ (запись второго операнда);
спецификация.
ЗАПИСЬ В ПАМЯТЬ УПРАВЛЕНИЯ
STCTL |
|
R1,R3,D2(B2) |
[RS] |
|
|
|
||||
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
¦ B6 |
|
¦ |
R1 |
¦ |
R3 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------------------- |
|
|
|
|
|
|
|
|
|
+ |
0 |
7 |
8 |
11 |
12 |
15 |
16 |
19 |
20 |
|
31 |
Содержимое групп управляющих регистров, начиная с управляющего регистра, заданного полем R1, и кончая управляющим регистром, заданным полем R3, записывается в основную память по адресу второго операнда.
Область памяти, в которую помещается содержимое управляющих регистров, начинается по адресу второго операнда и занимает столько слов памяти, сколько определено управляю-
щих регистров. Содержимое управляющих регистров записывается в порядке возрастания ад-
ресов регистров, начиная с управляющего регистра, заданного полем R1, и кончая управляю-
щим регистром, заданным полем R3, при этом считается, что управляющий регистр 0 следует за регистром 15. Содержимое управляющих регистров не изменяется.
Попытка записи в память содержимого каждого из указанных регистров производится неза-
висимо от того, имеются ли в процессоре средства, которые требуют использования этих реги-
стров. Каждый раз, когда обращение к памяти вызывает особый случай доступа, осуществля-
ется индикация этого особого случая. Значение битов регистров, которые соответствуют сред-
ствам, отсутствующим в данном процессоре, непредсказуемо.
Второй операнд должен быть расположен на границе слова; в противном случае распозна-
ется особый случай спецификации и операция подавляется.
Признак результата не изменяется.
Программные прерывания:
привилегированная операция;
доступ (запись второго операнда);
спецификация.
187
Замечания по программированию
Хотя на некоторых процессорах выполнение команды ЗАПИСЬ В ПАМЯТЬ УПРАВЛЕНИЯ может привести к записи нулей в позиции, соответствующие нераспределенным битам управ-
ляющих регистров, при написании программы на это не следует полагаться.
ЗАПИСЬ В ПАМЯТЬ АДРЕСА CPU
STAP D2(B2) |
|
[S] |
|
|
||
+ |
-------------------------- |
|
|
|
|
+ |
¦ |
B212 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
В двухбайтовую область памяти, указанную адресом второго операнда, записывается адрес процессора. Этот адрес идентифицирует процессор в мультипроцессорной системе.
Операнд должен быть расположен на границе полуслова, иначе распознается особый слу-
чай спецификации и операция подавляется. Операция также подавляется при особых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован средствами мультипроцессирования);
привилегированная операция;
доступ (запись второго операнда);
спецификация.
ЗАПИСЬ В ПАМЯТЬ ИДЕНТИФИКАТОРА CPU
STIDP |
D2(B2) |
[S] |
|
|
|||
+ |
-------------------------- |
|
|
|
|
|
+ |
¦ |
B202 |
|
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Информация, идентифицирующая процессор, запоминается в двойном слове, заданном ад-
ресом второго операнда.
Идентификатор процессора имеет следующий формат:
+ |
-------------------------------------- |
|
|
+ |
¦ ??? ?????? |
¦ ?????-????????????? CPU |
¦ |
||
+-------------------------------------- |
|
|
|
+ |
0 |
7 |
8 |
31 |
|
+-------------------------------------- |
|
|
|
+ |
¦????? ?????? ¦ ????. ????? MCEL ¦
188
+-------------------------------------- |
|
|
+ |
32 |
47 |
48 |
63 |
Поле, отведенное для кода версии (разряды 0–7), содержит информацию, которая зависит от модели и которую трудно получить иным способом. Эта информация обычно имеет значе-
ние только для работы моделезависимых диагностических программ и программ восстановле-
ния.
Разряды 8–31 содержат номер-идентификатор CPU, состоящий из шести цифр: старшего нуля и пяти цифр, которые выбраны из регистрационного номера, указанного на процессоре,
или шести цифр регистрационного номера. Содержимое этого поля в сочетании с номером мо-
дели позволяет однозначно идентифицировать данный процессор.
Разряды 32–47 содержат номер модели, состоящий из четырех цифр: старшего нуля и трех цифр номера модели, например 0145 или 0168.
Биты 48–63 содержат 16-разрядное число, выражающее максимальную длину в байтах об-
ласти расширенной регистрации (MCEL), которая может быть выполнена процессором данной модели.
Операнд должен быть расположен на границе двойного слова; в противном случае распо-
знается особый случай спецификации и операция подавляется. Операция также подавляется при особых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
привилегированная операция;
доступ (запись второго операнда);
спецификация.
Замечания по программированию
В программе должна быть предусмотрена возможность записи в номер-идентификатор CPU
букв A–F наряду с цифрами 0–9.
Ниже приводятся основные случаи использования информации, которая записывается в память при выполнении команды ЗАПИСЬ В ПАМЯТЬ ИДЕНТИФИКАТОРА CPU.
1. Номер-идентификатор CPU в сочетании с номером модели позволяет однозначно иден-
тифицировать процессор, что можно использовать для фиксации того, на какой конкретной вы-
числительной установке получен результат; это особенно важно для учета функциональных отличий, различия в производительности и особенностей обработки ошибок.
2. Номер модели в сочетании с кодом версии можно использовать в моделенезависимых программах, чтобы определять, какая моделезависимая подпрограмма восстановления долж-
на быть вызвана.
3. Длину MCEL можно использовать в моделенезависимых программах для распределения основной памяти под область MCEL.
189
ЗАПИСЬ В ПАМЯТЬ ЗНАЧЕНИЯ ТАЙМЕРА CPU
STPT D2(B2) |
|
[S] |
|
|
||
+ |
-------------------------- |
|
|
|
|
+ |
¦ |
B209 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Текущее содержимое таймера CPU записывается в двойное слово, заданное адресом вто-
рого операнда.
В младшие (крайние правые) биты, содержимое которых не изменяется при работе таймера
CPU, заносятся нули.
Операнд должен быть расположен на границе двойного слова, иначе распознается особый случай спецификации и операция подавляется. Операция также подавляется при особых слу-
чаях адресации и защиты.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован таймером CPU);
привилегированная операция;
доступ (запись второго операнда);
спецификация.
ЗАПИСЬ В ПАМЯТЬ ПРЕФИКСА
STPX D2(B2) |
|
[S] |
|
|
||
+ |
-------------------------- |
|
|
|
|
+ |
¦ |
B211 |
¦ |
B2 |
¦ |
D2 |
¦ |
+-------------------------- |
|
|
|
|
|
+ |
0 |
15 |
16 |
19 |
20 |
|
31 |
Содержимое регистра префикса записывается в 4-байтовую область памяти, заданную ад-
ресом второго операнда. В биты 0–7 и 20–31 этой области заносятся нули.
Операнд должен быть расположен на границе слова, в противном случае распознается особый случай спецификации и операция подавляется. Операция также подавляется при осо-
бых случаях защиты и адресации.
Признак результата не изменяется.
Программные прерывания:
операция (если процессор не оборудован средствами мультипроцессирования);
привилегированная операция;
доступ (запись второго операнда);
спецификация.
190