Programstatusord

Programstatusordet ( PSW ) är ett register som utför funktionen som ett statusregister och programräknare , och ibland mer. Termen tillämpas också på en kopia av PSW i lagring. Den här artikeln diskuterar endast PSW i IBM System/360 och dess efterföljare, och följer IBMs konvention om numrering av bitar som börjar med 0 som den längst till vänster (mest signifikanta) biten.

Även om vissa fält inom PSW kan testas eller ställas in med hjälp av icke-privilegierade instruktioner, kan testning eller inställning av de återstående fälten endast utföras genom att använda privilegierade instruktioner.

0 Inom PSW finns tvåbitars villkorskoden , som representerar noll, positiv, negativ, overflow och liknande flaggor för andra arkitekturers statusregister . Villkorliga greninstruktioner testar detta kodat som ett fyrabitarsvärde, där varje bit representerar ett test av ett av de fyra villkorskodvärdena, 2 3 + 2 2 + 2 1 + 2 . (Eftersom IBM använder big-endian bitnumrering väljer maskvärde 8 kod 0, maskvärde 4 väljer kod 1, maskvärde 2 väljer kod 2 och maskvärde 1 väljer kod 3.)

64-bitars PSW beskriver (bland annat)

I de tidiga instanserna av arkitekturen (System/360 och tidiga System/370) var instruktionsadressen 24 bitar; i senare fall (XA/370) var instruktionsadressen 31 bitar plus en modbit (24 bitars adresseringsläge om noll; 31 bitars adresseringsläge om en) för totalt 32 bitar.

I föreliggande fall av arkitekturen ( z/Architecture ) är instruktionsadressen 64 bitar och PSW själv är 128 bitar.

PSW kan laddas med LOAD PSW-instruktionen ( LPSW eller LPSWE). Dess innehåll kan undersökas med Extract PSW-instruktionen (EPSW).

Formatera

S/360

På alla utom 360/20 har PSW följande format. S/360 Extended PSW-format gäller endast 360/67 med bit 8 i kontrollregister 6 inställd.

IBM S/360 PSW-format
S/360 Standard PSW

Systemmask Nyckel A M W P Avbrottskod
0 7 8 11 12 13 14 15 16 31

ILC CC
Programmask _
Instruktionsadress
32 33 34 35 36 39 40 63
S/360 Standard PSW-förkortningar
Bits Fält Menande
0-7 SM
Systemmask
Bit Menande
0 Kanal 0 mask
1 Kanal 1 mask
2 Kanal 2 mask
3 Kanal 3 mask
4 Kanal 4 mask
5 Kanal 5 mask
6 Kanal 6 mask
7 Extern mask
8-11 Nyckel PSW-nyckel
12 A ASCII
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-31 IC Avbrottskod
32-33 ILC Instruktionslängdskod
34-35 CC Tillståndskod
36-39 PM
Programmask
Bit Menande
36 Brädda med fast punkt
37 Decimalspill
38 Exponentunderflöde
39 Betydelse
40-63 IA Instruktionsadress
S/360 Extended PSW

reserv
24/32 - bitarsläge

Överför Ctrl

I/O- mask

Ext. Mask
Nyckel A M W P ILC CC
Programmask _
reserv
0 3 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 31

Instruktionsadress
32 63
S/360 Utökade PSW-förkortningar
Bits Fält Menande
0-3 Reserv (måste vara 0)
4 24/32-bitars adressläge
5 Översättningskontroll
6 IO I/O-mask (sammanfattning)
7 EX Extern mask (sammanfattning)
8-11 Nyckel Skyddsnyckel
12 A ASCII
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-17 ILC Instruktionslängdskod
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 Exponentunderflöde
23 Betydelse
24-31 Reserv
32-63 IA Instruktionsadress

S/370

IBM S/370 PSW-format
S/ 370 Grundläggande kontrollläge PSW


Chan. Mask

Jag O

E X
Nyckel 0 M W P Avbrottskod
0 1 2 4 5 6 7 8 11 12 13 14 15 16 31

ILC CC
Programmask _
Instruktionsadress
32 33 34 35 36 39 40 63
S/370 BC-läge PSW-förkortningar
Bits Fält Menande
0-5 Kanalmasker för kanalerna 0-5
6 IO I/O-mask för kanaler > 5
7 EX Extern mask
8-11 Nyckel PSW-nyckel
12 E=0 Grundläggande kontrollläge _ _
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-31 IC Avbrottskod
32-33 ILC Instruktionslängdskod
34-35 CC Tillståndskod
36-39 PM
Programmask
Bit Menande
36 Brädda med fast punkt
37 Decimalspill
38 Exponentunderflöde
39 Betydelse
40-63 IA Instruktionsadress
/ 370 Utökat kontrollläge PSW

0 R 0 0 0 T
Jag O

E X
Nyckel 1 M W P S 0 CC
Programmask _
0 0 0 0 0 0 0 0
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 31

0 0 0 0 0 0 0 0 Instruktionsadress
32 39 40 63
S/370 EC-läge PSW-förkortningar
Bits Fält Menande
1 R PER Mask
5 T DAT-läge
6 IO I/O-mask; föremål för kanalmask i CR2
7 EX Extern mask; föremål för extern underklassmask i CR0
8-11 Nyckel PSW-nyckel
12 E=1 Utökat kontrollläge _ _
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16 S

Adress-utrymmeskontroll 0=primärt utrymmesläge 1=Sekundärt utrymmesläge
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 Exponentunderflöde
23 Betydelse
40-63 IA Instruktionsadress

S/370 utökad arkitektur (S/370-XA)

IBM Extended Architecture (XA) PSW-format
Utökad arkitektur Utökat kontrollläge PSW

0 R 0 0 0 T
Jag O

E X
Nyckel 1 M W P S 0 CC
Programmask _
0 0 0 0 0 0 0 0
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 31

A Instruktionsadress
32 33 63
S/370-XA EC-läge PSW-förkortningar
Bits Fält Menande
1 R PER Mask
5 T DAT-läge
6 IO I/O-mask; föremål för kanalmask i CR2
7 EX Extern mask; föremål för extern underklassmask i CR0
8-11 Nyckel PSW-nyckel
12 E=1 Utökat kontrollläge _ _
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16 S

Address-Space Control 0=primärt mellanslagsläge 1=Sekundärt mellanslagsläge
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 Exponentunderflöde
23 Betydelse
32 A
Adresseringsläge 0=24 bitar; 1=31 bitar
33-63 IA Instruktionsadress

Enterprise Systems Architecture (ESA)

IBM Enterprise Systems Architecture (ESA) PSW-format
Enterprise Systems Architecture Utökat kontrollläge PSW

0 R 0 0 0 T
Jag O

E X
Nyckel 1 M W P SOM CC
Programmask _
0 0 0 0 0 0 0 0
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 31

A Instruktionsadress
32 33 63
ESA EC-läge PSW-förkortningar
Bits Fält Menande
1 R PER Mask
5 T DAT-läge
6 IO I/O-mask; föremål för kanalmask i CR2
7 EX Extern mask; föremål för extern underklassmask i CR0
8-11 Nyckel PSW-nyckel
12 E=1 Utökat kontrollläge _ _
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-17 SOM



Address-Space Control 00=primärt utrymmesläge 01=Åtkomstregisterläge 10=Sekundärt utrymmesläge 11=Home-spaceläget
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 Exponentunderflöde
23 Betydelse
32 A
Adresseringsläge 0=24 bitar; 1=31 bitar
33-63 IA Instruktionsadress

z/Arkitektur

IBM z/Architecture PSW-format
z/Arkitektur lång PSW

0 R 0 0 0 T
Jag O

E X
Nyckel 0 M W P SOM CC
Programmask _

R I
0 0 0 0 0 0
E A
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 30 31


B A
0
32 33 63

Instruktionsadress
64 95

Instruktionsadress (fortsättning)
96 127
Långa PSW-förkortningar
Bits Fält Menande
1 R PER Mask
5 T DAT-läge
6 IO I/O-mask
7 EX Extern mask
8-11 Nyckel PSW-nyckel
12 E=0 Måste vara noll för LPSWE
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-17 SOM



Address-Space Control 00=primärt utrymmesläge 01=Åtkomstregisterläge 10=Sekundärt utrymmesläge 11=Home-spaceläget
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 HFP Exponent underflöde
23 HFP Betydelse
24 RI Reserverad för IBM
31 EA
Utökat adresseringsläge 0=definieras av BA nedan; 1=64-bitar, BA måste vara noll
32 BA
Grundläggande adresseringsläge 0=24 eller 64; 1=31
64-127 IA Instruktionsadress
z/Arkitektur kort PSW

0 R 0 0 0 T
Jag O

E X
Nyckel 1 M W P SOM CC
Programmask _

R I
0 0 0 0 0 0
E A
0 1 2 4 5 6 7 8 11 12 13 14 15 16 17 18 19 20 23 24 25 30 31


B A
Instruktionsadress
32 33 63
Korta PSW-förkortningar
Bits Fält Menande
1 R PER Mask
5 T DAT-läge
6 IO I/O-mask
7 EX Extern mask
8-11 Nyckel PSW-nyckel
12 E=1 Måste vara en för LPSW
13 M Maskinkontrollmask
14 W Vänteläge
15 P Problemtillstånd
16-17 SOM



Address-Space Control 00=primärt utrymmesläge 01=Åtkomstregisterläge 10=Sekundärt utrymmesläge 11=Home-spaceläget
18-19 CC Tillståndskod
20-23 PM
Programmask
Bit Menande
20 Brädda med fast punkt
21 Decimalspill
22 HFP Exponent underflöde
23 HFP Betydelse
24 RI Reserverad för IBM
31 EA
Utökat adresseringsläge 0=definieras av BA nedan; 1=64-bitar, BA måste vara noll
32 BA
Grundläggande adresseringsläge 0=24 eller 64; 1=31
33-63 IA Instruktionsadress

Anteckningar

S360
IBM System/360 Principles of Operation (PDF) (åttonde upplagan). IBM. September 1968. A22-6821-7.
func67
IBM System/360 Model 67 Functional Characteristics (PDF) (tredje upplagan). IBM. Februari 1972. GA27-2719-2.
S370
IBM System/370 Principles of Operation (PDF) (elfte upplagan). IBM. September 1987. A22-7000-10.
S370-XA
IBM System/370 Extended Architecture Principles of Operation (PDF) (andra upplagan). IBM. Januari 1987. SA22-7085-1.
S370-ESA
IBM Enterprise Systems Architecture/370 Operationsprinciper (PDF) (första upplagan). IBM. Augusti 1988. SA22-7200-0.
z
z/Architecture Principles of Operation (PDF) (Trettonde upplagan). IBM. September 2019. SA22-7832-12.