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

IBM370

.pdf
Скачиваний:
36
Добавлен:
02.06.2015
Размер:
5.21 Mб
Скачать

Операнд команды рассматривается как двоичное число без знака длиной 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]