Слово состояния программы - Основные компоненты PSW

Слово состояния программы следовало бы назвать (как это и сделано в некоторых системах, схожих с Системой 360) Двойным словом состояния программы. PSW фактически представляет собой 64-раз- рядный регистр, подразделяемый, как это показано на рис. 11.1, на несколько полей. Для пользователей обычно представляет интерес содержимое второго слова. В этой части регистра находится информация, наиболее тесно связанная с процессом выполнения их программ. Содержимое первого слова имеет большое значение для правильного функционирования операционной системы, поскольку оно содержит некоторую управляющую информацию, влияющую на работу системы в целом.

Мы начнем с рассмотрения PSW Системы 360. Система 370 имеет два режима управления, определяющие структуру и использование управляющей информации: режим основного управления (ВС) и режим расширенного управления (ЕС). Режим ЕС используется при организации работы с виртуальной памятью. Слово состояния программы Системы 370 в режиме ВС практически ничем не отличается от Слова состояния программы Системы 360. С точки зрения отладки использование в Системе 370 режима ЕС предполагает несколько иное расположение необходимой информации. Однако с точки зрения большинства других применений режимы управления не оказывают никакого влияния на работу программиста-пользователя.

До сих пор дело было представлено так, как будто признак результата и текущее значение счетчика команд находятся в двух различных регистрах специального назначения. Из рис. 11.1 видно, что PC (счетчик команд) и СС (признак результата) в действительности являются составными частями PSW. 24-битовое значение PC располагается в разрядах с 40-го по 63-й PSW. Для хранения признака результата, устанавливаемого последней выполненной арифметической командой или командой сравнения, отведены разряды 34 и 35.

На втором этапе выполнения команды содержимое PC изменяется на значение адреса команды, которую нужно выполнить следующей. Фактически к прежнему содержимому счетчика добавляется длина выполняемой команды в байтах. Если, например, некоторая команда только что выбрана для выполнения по адресу 2000 и имеет длину 6 байтов, то следующая будет выбрана по адресу 2006. Таким образом, для установки значения PC необходимо знать длину выполняемой в данный момент команды. Нам уже известно, что содержимое первых двух разрядов кода операции команды однозначно определяет ее длину. При выборке команды из памяти эта информация, правда в несколько измененном формате, заносится в разряды 32 и 33 PSW. Содержимое этих разрядов называется кодом длины команды (ILC).

Рис. 11.1. Формат PSW Системы 360 и режима ВС Системы 370.

ILC представляет собой 2-битовое двоичное число, равное количеству полуслов, из которых состоит команда. В приводимой ниже таблице можно найти значения ILC, соответствующие командам различной длины.

Длина команды (в байтах)

Длина команды (в полусловах)

СодержимоеILC (двоичное)

2

1

01

4

2

10

6

3

11

ILC не может обычно иметь значение 002, однако такой результат иногда получается как следствие наличия ошибки при выполнении некоторых команд.

Рис. 11.2. Формат PSW Системы 370 для режима ЕС.


Нам осталось рассмотреть лишь разряды 36—39 второго слова PSW. Содержимое этих битов называется маской программы, которая будет нами рассмотрена позднее, после обсуждения прерываний. На рис. 11.2 изображен формат PSW для режима ЕС Системы 370. Счетчик команд в этом случае размещается точно так же, как и в предыдущем, т. е. в разрядах 40—63. Информация о признаке результата и маска программы хранятся теперь в разрядах 18—23 PSW. ILC и некоторые другие компоненты PSW формата ВС при режиме ЕС помещаются в специальные управляющие регистры, рассмотрение которых выходит за пределы данной книги.

 



Будет полезно почитать по теме:
Расскажи друзьям
 
Статьи раздела