From Wikipedia, the free encyclopedia
The program status word[a] (PSW) is a register that performs the function of a status register and program counter, and sometimes more. The term is also applied to a copy of the PSW in storage. This article only discusses the PSW in the IBM System/360[1] and its successors,[2][3][4][5][6] and follows the IBM convention of numbering bits starting with 0 as the leftmost (most significant) bit.
Although certain fields within the PSW may be tested or set by using non-privileged instructions, testing or setting the remaining fields may only be accomplished by using privileged instructions.
Contained within the PSW are the two bit condition code, representing zero, positive, negative, overflow, and similar flags of other architectures’ status registers. Conditional branch instructions test this encoded as a four bit value, with each bit representing a test of one of the four condition code values, 23 + 22 + 21 + 20. (Since IBM uses big-endian bit numbering, mask value 8 selects code 0, mask value 4 selects code 1, mask value 2 selects code 2, and mask value 1 selects code 3.)
The 64-bit PSW describes (among other things)
- Interrupt masks
- Privilege states
- Condition code
- Instruction address
In the early instances of the architecture (System/360 and early System/370), the instruction address was 24[b] bits; in later instances (XA/370), the instruction address was 31 bits plus a mode bit (24 bit addressing mode if zero; 31 bit addressing mode if one) for a total of 32 bits.
In the present instances of the architecture (z/Architecture), the instruction address is 64 bits and the PSW itself is 128 bits.
The PSW may be loaded by the LOAD PSW instruction (LPSW or LPSWE). Its contents may be examined with the Extract PSW instruction (EPSW).
Format[edit]
S/360[edit]
On all but 360/20,[c] the PSW has the following formats. S/360 Extended PSW format only applies to the 360/67 with bit 8 of control register 6 set.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
S/370[edit]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
S/370 Extended Architecture (S/370-XA)[edit]
|
Enterprise Systems Architecture (ESA)[edit]
|
z/Architecture[edit]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Notes[edit]
- ^ The nomenclature varies among architectures.
- ^ However, a 360/67[7] equipped with the Extended Dynamic Address Translation[8]
feature has a 32-bit mode selected by bit 4 of the PSW[9] in Extended PSW mode[8] (Control Register 6, bit 8[10]). - ^ Despite the name, the 350/20 does not adhere to the S/360 architecture.
- ^ Bit 22 is renamed as HFP exponent underflow in ESA/390
- ^ Bit 23 is renamed as HFP significance in ESA/390
References[edit]
- ^ S360.
- ^ S370.
- ^ S370-XA.
- ^ S370-ESA.
- ^ S390-ESA.
- ^ z.
- ^ func67.
- ^ a b func67, p. 57, Glossary.
- ^ func67, p. 15, Instruction Fetching and Execution.
- ^ func67, p. 16, Table 4. Control Registers.
- ^ S360, p. 15, Program Status Word.
- ^ S360, pp. 15–16, Interruption.
- ^ S370, pp. 15–16, Interruption.
- ^ S370, p. 156, Instruction-Length Code.
- ^ func67, pp. 15–16, Instruction Fetching and Execution.
- ^ S360, p. 156, Instruction-Length Code.
- ^ S370, pp. 4-8 – , 4–9, Program-Status Word Format in BC Mode.
- ^ S370, pp. 6-3 – , 6–5, Interruption Action.
- ^ S370, pp. 6-7 – , 6–9, Instruction-Length Code.
- ^ S370, pp. 4-6 – , 4–7, Program-Status Word Format in EC Mode.
- ^ S370-XA, p. 4-5, Program-Status-Word Format.
- ^ S370-ESA, p. 4-5, Program-Status-Word Format.
- ^ S390-ESA, p. 4-5, Program-Status-Word Format.
- ^ z, pp. 4-5 – , 4–8, Program-Status-Word Format.
- ^ z, p. 4-8, Short PSW Format.
- S360
- IBM System/360 Principles of Operation (PDF) (Eighth ed.). IBM. September 1968. A22-6821-7.
- func67
- IBM System/360 Model 67 Functional Characteristics (PDF) (Third ed.). IBM. February 1972. GA27-2719-2.
- S370
- IBM System/370 Principles of Operation (PDF) (Eleventh ed.). IBM. September 1987. A22-7000-10.
- S370-XA
- IBM System/370 Extended Architecture Principles of Operation (PDF) (Second ed.). IBM. January 1987. SA22-7085-1.
- S370-ESA
- IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) (First ed.). IBM. August 1988. SA22-7200-0.
- z
- z/Architecture Principles of Operation (PDF) (Thirteenth ed.). IBM. September 2019. SA22-7832-12.
Слово
состояния программы (program status word, PSW)
представляет собой 128 разрядную область
данных в процессоре, которая наряду со
множеством других типов регистров
(управляющих регистров, регистров
времени и регистров префикса), содержит
сведения, критически важные как для
аппаратного, так и для программного
обеспечения. Текущее слово состояния
программы содержит адрес следующей
программной инструкции и контрольную
информацию о выполняющейся программе.
Каждый
процессор имеет только одно текущее
слово состояния программы.
Таким образом, процессор может одновременно
выполнять только
одну
задачу.
PSW
контролирует порядок подачи инструкций
в процессор и отображает состояние
системы относительно текущей выполняющейся
программы. Несмотря на то что каждый
процессор имеет только одно слово
состояния программы, для понимания
обработки прерываний полезно рассматривать
три типа PSW:
• текущее
PSW,
• новое
PSW,
• старое
PSW.
Текущее
PSW указывает следующую выполняемую
инструкцию. Оно также указывает, включена
ли в процессоре поддержка прерываний
ввода-вывода, внешних прерываний,
прерываний от схем контроля работы
машины и некоторых программных прерываний.
Если поддержка прерываний включена,
могут возникать эти прерывания. Если
поддержка прерываний отключена, эти
прерывания игнорируются или остаются
в режиме ожидания.
Существуют
также новое PSW и старое PSW, связанные с
каждым из шести типов прерываний. Новое
PSW содержит адрес подпрограммы, которая
может обрабатывать соответствующее
прерывание. Если в процессоре включена
поддержка прерываний, тогда при
возникновении прерывания происходит
переключение PSW с использованием
следующего метода:
1.
Сохранение текущего PSW в старом PSW,
связанном с типом возникшего прерывания.
2.
Загрузка содержимого нового PSW для
возникшего прерывания в текущее PSW.
Текущее
PSW, указывающее следующую выполняемую
инструкцию, теперь содержит адрес
требуемой подпрограммы для обработки
прерывания. Это переключение вызывает
передачу управления требуемой подпрограмме
обработки прерываний.
Регистры.
Архитектура мэйнфрейма содержит регистры
для слежения за происходящими событиями.
PSW, например, представляет собой регистр,
используемый для записи информации,
необходимой для выполнения текущей
активной программы. Мэйнфреймы содержат
и другие регистры, в частности:
• регистры
доступа
–
используются для определения адресного
пространства, в котором находятся
данные;
• общие
регистры
–
используются для адресации данных в
памяти, а также для хранения пользовательских
данных;
• регистры
с плавающей точкой
–
используются для хранения численных
данных в формате с плавающей точкой;
• управляющие
регистры
–
используются самой операционной
системой, например для ссылки на таблицы
трансляции.
7.20. Диспетчеризуемые единицы работы z/os: tcb, srb. Вытесняемые и не вытесняемые единицы работы.
В
z/OS диспетчеризуемые единицы работы
представлены двумя видами управляющих
блоков:
• блоками
управления задачами (task
control blocks, TCB).
Представляют задачи, выполняющиеся в
адресном пространстве, в частности
пользовательские программы и системные
программы, поддерживающие пользовательские
программы.
• блоками
запросов обслуживания
(service request blocks, SRB).
Представляют запросы на выполнение
подпрограммы системного сервиса. SRB
обычно создаются, когда одно адресное
пространство обнаруживает событие,
влияющее на другое адресное пространство;
они обеспечивают единый механизм связи
между адресными пространствами.
TCB
– управляющий блок, представляющий
задачу, например вашу программу, при ее
выполнении в адресном пространстве.
TCB содержит информацию о запущенной
задаче, в частности адрес всех созданных
ею областей памяти. Задача управления
регионом (region control task, RCT), отвечающая за
подготовку адресного пространства к
загрузке и выгрузке, является задачей
наивысшего приоритета в адресном
пространстве. Все задачи в адресном
пространстве являются подзадачами RCT.
SRB
– управляющий блок, представляющий
подпрограмму, выполняющую определенную
функцию или службу в заданном адресном
пространстве. Подпрограмма, выполняющая
функцию или службу, называется
SRB-подпрограммой;
инициация процесса называется
планированием
SRB);
SRB-подпрограмма выполняется в операционном
режиме, называемом режимом
SRB.
SRB
подобен TCB в том, что он определяет
единицу работы в системе. В отличие от
TCB SRB не может «владеть» областями памяти.
SRB-подпрограммы могут получать, обращаться,
использовать и освобождать области
памяти, но этими областями должен владеть
TCB. В многопроцессорной среде
SRB-подпрограмма после планирования
может быть передана на другой процессор
и выполняться одновременно с программой,
ее запланировавшей. Программа,
запланировавшая SRB, может продолжать
выполнять обработку других задач
параллельно с подпрограммой SRB. Как
говорилось выше, SRB представляет средство
асинхронной связи между адресными
пространствами для программ, выполняющихся
в z/OS.
Вытесняемые
и не вытесняемые единицы работы.
То,
какая подпрограмма получит управление
после обработки прерывания, зависит от
того, была ли прерванная единица работы
вытесняемой.
Если была, тогда операционная система
определяет, какую единицу работы нужно
выполнять следующей. Другими словами,
система определяет, какая единица работы
из всей работы в системе имеет наивысший
приоритет, и передает управление в эту
единицу работы.
Невытесняемая
единица работы может быть прервана, но
должна получить управление после
обработки прерывания. Например, SRB часто
являются невытесняемыми. Другими
словами, если подпрограмма, представленная
невытесняемым SRB, прервана, после
обработки прерывания она получит
управление. С другой стороны, подпрограммы,
представленные TCB, например пользовательские
программы, обычно являются вытесняемыми.
Если ее выполнение прерывается, тогда
после обработки прерывания управление
возвращается операционной системе.
Затем z/OS определяет, какая задача из
всех готовых задач будет выполняться
следующей.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Слово состояния программы ( PSW ) представляет собой регистр , который выполняет функцию регистра состояния и программного счетчика , а иногда и более. Этот термин также применяется к копии PSW на хранении. В этой статье обсуждается только PSW в IBM System / 360 и его преемниках, и следует соглашению IBM о нумерации битов, начинающихся с 0 в качестве самого левого (наиболее значимого) бита.
Хотя некоторые поля в PSW могут быть протестированы или установлены с использованием непривилегированных инструкций, тестирование или установка остальных полей может быть выполнена только с использованием привилегированных инструкций.
В PSW содержится двухбитовый код состояния , представляющий нулевой, положительный, отрицательный, переполненный и аналогичные флаги регистров состояния других архитектур . Команды условного перехода проверяют это, закодированное как четырехбитовое значение, где каждый бит представляет тест одного из четырех значений кода условия, 2 3 + 2 2 + 2 1 + 2 0 . (Поскольку IBM использует нумерацию битов с прямым порядком байтов, значение маски 8 выбирает код 0, значение маски 4 выбирает код 1, значение маски 2 выбирает код 2, а значение маски 1 выбирает код 3.)
64-битный PSW описывает (среди прочего)
- Маски прерывания
- Состояния привилегий
- Код состояния
- Адрес инструкции
В ранних экземплярах архитектуры (System / 360 и ранних System / 370) адрес инструкции был 24 бита; в более поздних случаях (XA / 370) адрес инструкции составлял 31 бит плюс бит режима (режим адресации 24 бита, если ноль; режим адресации 31 бит, если один), всего 32 бита.
В настоящих экземплярах архитектуры ( z / Architecture ) адрес инструкции составляет 64 бита, а сам PSW — 128 бит.
PSW может быть загружен командой LOAD PSW ( LPSW или LPSWE). Его содержимое можно просмотреть с помощью инструкции Extract PSW (EPSW).
Формат
S / 360
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
S / 370
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
S / 370 Расширенная архитектура (S / 370-XA)
|
Архитектура корпоративных систем (ESA)
|
z / Архитектура
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Заметки
Рекомендации
- ^ S360 .
- ^ S370 .
- ^ S370-XA .
- ^ S370-ESA .
- ^ S390-ESA .
- ^ Г .
- ^ func67 .
- ^ a b func67 , стр. 57, Глоссарий .
- ^ func67 , стр. 15, Получение и выполнение инструкций .
- ^ func67 , стр. 16, таблица 4. Регистры управления .
- ^ S360 , стр. 15, Слово состояния программы .
- ^ S360 , стр. 15-16, прерывание .
- ^ S370 , стр. 15-16, прерывание .
- ^ S370 , стр. 156, код длины инструкции .
- ^ func67 , стр. 15-16, Получение и выполнение инструкций .
- ^ S360 , стр. 156, код длины инструкции .
- ^ S370 , стр. 4-8 — 4-9, Формат слова состояния программы в режиме BC .
- ^ S370 , стр. 6-3 — 6-5, Действие прерывания .
- ^ S370 , стр. 6-7 — 6-9, Код длины инструкции .
- ^ S370 , стр. 4-6 — 4-7, Формат слова состояния программы в режиме EC .
- ^ S370-XA , стр. 4-5, Формат слова программы-состояния .
- ^ S370-ESA , с. 4-5, Формат слова программы-состояния .
- ^ S390-ESA , стр. 4-5, Формат слова программы-состояния .
- ^ z , стр. 4-5 — 4-8, Формат слова программы-состояния .
- ^ г , стр. 4-8, короткий формат PSW .
- S360
-
Принципы работы IBM System / 360 (PDF) (Восьмое изд.). IBM. Сентябрь 1968 г. A22-6821-7.
- func67
- Функциональные характеристики IBM System / 360 Model 67 (PDF) (Третье изд.). IBM. Февраль 1972 года. GA27-2719-2.
- S370
- Принципы работы IBM System / 370 (PDF) (одиннадцатое изд.). IBM. Сентябрь 1987 г. A22-7000-10.
- S370-XA
- Принципы работы расширенной архитектуры IBM System / 370 (PDF) (второе изд.). IBM. Январь 1987 г. SA22-7085-1.
- S370-ESA
- Архитектура корпоративных систем IBM / 370 Принципы работы (PDF) (Первое изд.). IBM. Август 1988 г. SA22-7200-0.
- z
- z / Принципы работы архитектуры (PDF) (Тринадцатое изд.). IBM. Сентябрь 2019 г. SA22-7832-12.
The PSW (Program Status Word) describes the current configuration for the context. It control whenever DAT is enabled or not, which allows virtual spaces. It also controls several flags such as the Wait state, Problem state, interrupt masking and other essential execution parameters.
While the 390 documentation lists the PSW in Most-Significant-Bit order, the PSW listed here will be in Least-Significant-Bit order for simplicity.
Bits | Name |
---|---|
0 | Extended addressing mode (z/Arch only) |
1-7 | Reserved |
8 | Unknown (?) |
9 | Enable exception for Exponent Underflow |
10 | Enable exception for Decimal Overflow |
11 | Enable exception for Fixed Point Overflow |
12-13 | Condition code |
14-15 | Address space control |
16 | Problem state (1=Disables unprivileged instruction execution) |
17 | Wait state (Wait for interrupt) |
18 | Machine Check Interrupt mask |
19 | 1=S390, 0=z/Arch |
20-23 | PSW Key for complex memory protection |
24 | External Interrupt mask |
25 | Input/Output Interrupt mask |
26 | Enable DAT |
27-29 | Reserved |
30 | Enable program event recording |
31 | Reserved and must be 0 |
Contents
- 1 Examples
- 1.1 Structure (S390)
- 1.2 Structure (z/Arch)
- 1.3 Portable PSW declaration
- 1.4 Service Interrupt handler
- 2 See also
- 2.1 External links
- 2.2 Source code
Examples
Structure (S390)
struct s390_psw { uint32_t flags; uint32_t address; } __attribute__((packed, aligned(8)));
Structure (z/Arch)
struct s390x_psw { uint32_t hi_flags; uint32_t lo_flags; /* It's all zero except for the MSB (in S/390 order) */ uint32_t hi_address; uint32_t lo_address; } __attribute__((packed, aligned(8)));
Portable PSW declaration
/* Helper function to create a PSW adjusted to the current machine */ #if (MACHINE >= M_ZARCH) # define S390_PSW_DEFAULT_TYPE struct s390x_psw # define S390_PSW_DECL(name, address, flags) S390_PSW_DEFAULT_TYPE name = { (flags) | S390_PSW_AM64, S390_PSW_AM31, 0, (uint32_t)(address) } #else # define S390_PSW_DEFAULT_TYPE struct s390_psw # define S390_PSW_DECL(name, address, flags) S390_PSW_DEFAULT_TYPE name = { (flags), (uint32_t)(address) + S390_PSW_DEFAULT_AMBIT } #endif const S390_PSW_DECL( wait_io_psw, 0, S390_PSW_ENABLE_ARCHMODE | S390_PSW_ENABLE_MCI | S390_PSW_WAIT_STATE| S390_PSW_IO_INT | S390_PSW_DAT );
Service Interrupt handler
.globl s390_supervisor_call_handler_stub s390_supervisor_call_handler_stub: stm %r0, %r15, S390_FLCGRSAV lm %r0, %r15, S390_FLCCRSAV larl %r15, int_stack_bottom brasl %r14, s390_supervisor_call_handler lm %r0, %r15, S390_FLCGRSAV lpsw S390_FLCSOPSW
See also
External links
- Contains the structure of the PSW (in MSB order)
Source code
- Example I/O PSWs (HLASM)
- Handlers for different interrupts and exceptions (GAS)
- Program status word
-
In computers, the program status word (PSW) is an area of memory or a hardware register which contains information about program state used by the operating system and the underlying hardware. It will normally include a pointer (address) to the next instruction to be executed. The program status word typically contains an error status field and condition codes such as the interrupt enable/disable bit and a supervisor / user mode bit.
The program status word (PSW) is 32 bits in length and contains the information required for proper program execution. The PSW includes the instruction address, condition code, and other fields. In general, the PSW is used to control instruction sequencing and to hold and indicate the status of the system in relation to the program currently being executed. The active or controlling PSW is called the current PSW. By storing the current PSW during an interruption, the status of the CPU can be preserved for subsequent inspection. By loading a new PSW or part of a PSW, the state of the CPU can be initialized or changed.
«See also»: Status register – a strictly hardware-based type of PSW
Wikimedia Foundation.
2010.
Look at other dictionaries:
-
program status word — programos būsenos žodis statusas T sritis automatika atitikmenys: angl. program status word vok. Programmstatuswort, n; Programmzustandwort, n rus. слово состояния программы, n pranc. mot d état du programme, m … Automatikos terminų žodynas
-
Status register — A status register or flag register (also: condition code register, program status word, PSW, etc.) is a collection of flag bits for a processor. An example is the FLAGS register of the x86 architecture. The status register is a hardware register… … Wikipedia
-
status bar — UK / US noun [countable] Word forms status bar : singular status bar plural status bars computing a bar across the bottom of a computer screen giving information about a program and the job that it is doing … English dictionary
-
Nuclear program of Iran — See also: Iran and weapons of mass destruction Nuclear program of Iran … Wikipedia
-
Microsoft Word Viewer — Word Viewer Word Viewer Developer(s) Microsoft Corporation Stable release 2010 / June 15, 2010; 16 months ago ( … Wikipedia
-
Hangul (word processor) — Infobox Software name = Hangul (Windows) caption = Hangul 2007 developer = Haansoft Corporation latest release version = Hangul 2007 latest release date = August 2006 operating system = Microsoft Windows genre = Word processor license =… … Wikipedia
-
High-yield investment program — A High Yield Investment Program (HYIP) is a type of Ponzi Scheme, which is an investment scam. At one time, HYIP was used in the financial services sector to refer to an investment program which may have offered a high return on investment. The… … Wikipedia
-
Minimalist program — Linguistics … Wikipedia
-
Oversight of the Troubled Asset Relief Program — The Emergency Economic Stabilization Act created the Troubled Assets Relief Program to administer up to $700 billion. Several oversight mechanisms are established by the bill, including the Congressional Oversight Panel, the Special Inspector… … Wikipedia
-
Political status of Taiwan — The controversy regarding the political status of Taiwan (or Taiwan Issue as referred to by the Communist Party of China) hinges on whether Taiwan, Penghu, Kinmen, and Matsu should remain effectively independent as territory of the Republic of… … Wikipedia