Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
IBM System/370
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Architecture details== <!-- Pretty up, add introductory text or move --> IBM documentation numbers the bits from high order to low order; the most significant (leftmost) bit is designated as bit number 0. {| class="infobox" style="font-size:88%" |- |+ align="center" | ''IBM S/370 registers'' |- | style="border-style: none;" | {| class="wikitable" style="font-size:75%" |+ General Registers 0β15 |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | colspan=32 | Two's complement value | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 0 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 1 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 2 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 3 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 4 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 5 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 6 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 7 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 8 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 9 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 10 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 11 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 12 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 13 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 14 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 15 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 16 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 17 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 18 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 19 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 20 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 21 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 22 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 23 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 24 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 25 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 26 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 27 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 28 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 29 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 30 --> | style="width:1%; text-align:right; border-style: none none none none;" | 31 | style="width:.5%; text-align:left; border-style: none none none none;" | |} |- | style="border-style: none;" | {| class="wikitable" style="font-size:75%" |+ Control Registers 0β15 |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | colspan=32 | See Principles of Operation{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=83 Assignment of Control-Register Fields]|pp=4-10-4-11}} | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 0 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 1 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 2 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 3 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 4 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 5 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 6 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 7 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 8 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 9 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 10 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 11 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 12 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 13 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 14 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 15 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 16 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 17 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 18 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 19 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 20 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 21 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 22 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 23 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 24 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 25 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 26 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 27 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 28 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 29 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 30 --> | style="width:1%; text-align:right; border-style: none none none none;" | 31 | style="width:.5%; text-align:left; border-style: none none none none;" | |} |- | style="border-style: none;" | {| class="wikitable" style="font-size:75%" |+ Floating Point Registers 0β6 |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | S | colspan=7 | Biased exponent | colspan=24 | Mantissa | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 0 | style="width:1%; text-align:left; border-style: none none none none;" | 1 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 2 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 3 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 4 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 5 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 6 --> | style="width:1%; text-align:right; border-style: none none none none;" | 7 | style="width:1%; text-align:left; border-style: none none none none;" | 8 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 9 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 10 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 11 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 12 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 13 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 14 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 15 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 16 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 17 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 18 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 19 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 20 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 21 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 22 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 23 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 24 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 25 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 26 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 27 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 28 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 29 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 30 --> | style="width:1%; text-align:right; border-style: none none none none;" | 31 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | colspan=32 | Mantissa (continued) | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 32 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 33 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 34 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 35 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 36 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 37 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 38 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 39 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 40 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 41 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 42 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 43 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 44 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 45 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 46 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 47 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 48 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 49 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 50 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 51 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 52 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 53 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 54 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 55 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 56 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 57 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 58 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 59 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 60 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 61 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 62 --> | style="width:1%; text-align:right; border-style: none none none none;" | 63 | style="width:.5%; text-align:left; border-style: none none none none;" | |} |- | style="border-style: none;" | {| class="wikitable" style="font-size:75%" |+ S/370 '''B'''asic '''C'''ontrol mode PSW{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=81 Program-Status Word Format in BC Mode]|pp=4-8{{snd}}4-9}} |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | colspan=6 |Chan.<br />Mask | I<br />O | E<br />X | colspan=4 | Key | 0 | M | W | P | colspan=16 | Interruption Code | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 0 | style="width:1%; text-align:left; border-style: none none none none;" | 1 | style="width:1%; text-align:left; border-style: none none none none;" | 2 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 3 --> | style="width:1%; text-align:right; border-style: none none none none;" | 4 | style="width:1%; text-align:left; border-style: none none none none;" | 5 | style="width:1%; text-align:left; border-style: none none none none;" | 6 | style="width:1%; text-align:left; border-style: none none none none;" | 7 | style="width:1%; text-align:left; border-style: none none none none;" | 8 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 9 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 10 --> | style="width:1%; text-align:right; border-style: none none none none;" | 11 | style="width:1%; text-align:left; border-style: none none none none;" | 12 | style="width:1%; text-align:left; border-style: none none none none;" | 13 | style="width:1%; text-align:left; border-style: none none none none;" | 14 | style="width:1%; text-align:left; border-style: none none none none;" | 15 | style="width:1%; text-align:left; border-style: none none none none;" | 16 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 17 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 18 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 19 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 20 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 21 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 22 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 23 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 24 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 25 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 26 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 27 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 28 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 29 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 30 --> | style="width:1%; text-align:right; border-style: none none none none;" | 31 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | colspan=34 style="border-style: none;" | <br> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | colspan=2 | ILC | colspan=2 | CC | colspan=4 | Program<br />Mask | colspan=24 | Instruction Address | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 32 | style="width:1%; text-align:right; border-style: none none none none;" | 33 | style="width:1%; text-align:left; border-style: none none none none;" | 34 | style="width:1%; text-align:right; border-style: none none none none;" | 35 | style="width:1%; text-align:left; border-style: none none none none;" | 36 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 37 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 38 --> | style="width:1%; text-align:right; border-style: none none none none;" | 39 | style="width:1%; text-align:left; border-style: none none none none;" | 40 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 41 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 42 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 43 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 44 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 45 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 46 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 47 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 48 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 49 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 50 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 51 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 52 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 53 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 54 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 55 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 56 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 57 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 58 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 59 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 60 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 61 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 62 --> | style="width:1%; text-align:right; border-style: none none none none;' | 63 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | colspan="34" style="border-style: none;"| {| class="wikitable mw-collapsible autocollapse" |+ {{nowrap|S/370 BC mode PSW abbreviations}} |- ! style="width:10%; text-align:left;"| Bits ! style="width:10%; text-align:left;"| Field ! style="width:80%; text-align:left;"| Meaning |- | 0β5 | | Channel Masks for channels 0β5 |- | 6 | IO | I/O Mask for channels > 5 |- | 7 | EX | External Mask |- | 8β11 | Key | PSW key |- | 12 | E=0 | '''B'''asic '''C'''ontrol mode |- | 13 | M | Machine-check mask |- | 14 | W | Wait state |- | 15 | P | Problem state |- | 16β31 | IC | Interruption Code{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=154 Interruption Action]|pp=6-3{{snd}}6-5}} |- | 32β33 | ILC | Instruction-Length Code{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=158 Instruction-Length Code]|pp=6-7{{snd}}6-9}} |- | 34β35 | CC | Condition Code |- | 36β39 | PM | {| class="wikitable mw-collapsible autocollapse" |+ style="text-align: left;" | {{nowrap|Program Mask}} ! Bit ! Meaning |- | 36 | Fixed-point overflow |- | 37 | Decimal overflow |- | 38 | Exponent underflow |- | 39 | Significance |} |- | 40β63 | IA | Instruction Address |} |} | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="border-style: none;" | {| class="wikitable" style="font-size:75%" |+ S/370 '''E'''xtended '''C'''ontrol mode PSW{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=79 Program-Status Word Format in EC Mode]|pp=4-6{{snd}}4-7}} |- | colspan=34 style="border-style: none;" | <br /> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | 0 | R | style="border-style: solid none solid solid" | 0 | style="border-style: solid none solid" | 0 | style="border-style: solid solid solid none" | 0 | T | I<br />O | E<br />X | colspan=4 | Key | 1 | M | W | P | S | 0 | colspan=2 | CC | colspan=4 | Program<br />Mask | style="border-style: solid none solid solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid solid solid none;" | 0 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 0 | style="width:1%; text-align:left; border-style: none none none none;" | 1 | style="width:1%; text-align:left; border-style: none none none none;" | 2 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 3 --> | style="width:1%; text-align:right; border-style: none none none none;" | 4 | style="width:1%; text-align:left; border-style: none none none none;" | 5 | style="width:1%; text-align:left; border-style: none none none none;" | 6 | style="width:1%; text-align:left; border-style: none none none none;" | 7 | style="width:1%; text-align:left; border-style: none none none none;" | 8 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 9 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 10 --> | style="width:1%; text-align:right; border-style: none none none none;" | 11 | style="width:1%; text-align:left; border-style: none none none none;" | 12 | style="width:1%; text-align:left; border-style: none none none none;" | 13 | style="width:1%; text-align:left; border-style: none none none none;" | 14 | style="width:1%; text-align:left; border-style: none none none none;" | 15 | style="width:1%; text-align:left; border-style: none none none none;" | 16 | style="width:1%; text-align:right; border-style: none none none none;" | 17 | style="width:1%; text-align:left; border-style: none none none none;" | 18 | style="width:1%; text-align:right; border-style: none none none none;" | 19 | style="width:1%; text-align:left; border-style: none none none none;" | 20 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 21 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 22 --> | style="width:1%; text-align:right; border-style: none none none none;" | 23 | style="width:1%; text-align:left; border-style: none none none none;" | 24 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 25 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 26 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 27 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 28 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 29 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 30 --> | style="width:1%; text-align:right; border-style: none none none none;" | 31 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | colspan=34 style="border-style: none;" | <br> |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="border-style: solid none solid solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid none solid;" | 0 | style="border-style: solid solid solid none;" | 0 | colspan=24 | Instruction Address | style="width:.5%; text-align:left; border-style: none none none none;" | |- | style="width:.5%; text-align:left; border-style: none none none none;" | | style="width:1%; text-align:left; border-style: none none none none;" | 32 | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 33 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 34 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 35 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 36 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 37 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 38 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 39 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 40 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 41 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 42 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 43 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 44 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 45 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 46 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 47 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 48 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 49 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 50 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 51 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 52 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 53 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 54 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 55 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 56 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 57 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 58 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 59 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 60 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 61 --> | style="width:1%; text-align:left; border-style: none none none none;" | <!-- 62 --> | style="width:1%; text-align:right; border-style: none none none none;' | 63 | style="width:.5%; text-align:left; border-style: none none none none;" | |- | colspan="34" style="border-style: none;"| {| class="wikitable mw-collapsible autocollapse" |+ {{nowrap|S/370 EC mode PSW abbreviations}} |- ! style="width:10%; text-align:left;"| Bits ! style="width:10%; text-align:left;"| Field ! style="width:80%; text-align:left;"| Meaning |- | 1 | R | PER Mask |- | 5 | T | DAT mode |- | 6 | IO | I/O Mask; subject to channel mask in CR2 |- | 7 | EX | External Mask; subject to external subclass mask in CR0 |- | 8β11 | Key | PSW key |- | 12 | E=1 | '''E'''xtended '''C'''ontrol mode |- | 13 | M | Machine-check mask |- | 14 | W | Wait state |- | 15 | P | Problem state |- | 16 | S | Address-Space Control<br />0=primary-space mode<br />1=Secondary-space mode |- | 18β19 | CC | Condition Code |- | 20β23 | PM | {| class="wikitable mw-collapsible autocollapse" |+ style="text-align: left;" | {{nowrap|Program Mask}} ! Bit ! Meaning |- | 20 | Fixed-point overflow |- | 21 | Decimal overflow |- | 22 | Exponent underflow |- | 23 | Significance |} |- | 40β63 | IA | Instruction Address |} |} |} S/370 also refers to a [[Computer architecture|computer system architecture]] specification,{{sfn|S370}} and is a direct and mostly [[backward compatible]] evolution of the System/360 architecture{{sfn|S370|loc=[http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf#page=16 Chapter 1 Introduction]|pp=1-1{{snd}}1-4}} from which it retains most aspects. This specification does not make any assumptions on the implementation itself, but rather describes the interfaces and the expected behavior of an implementation. The architecture describes mandatory interfaces that must be available on all implementations and optional interfaces which may or may not be implemented. Some of the aspects of this architecture are: * [[Big endian]] byte ordering * One or more processors with: ** 16 32-bit General purpose [[Processor register|register]]s ** 16 32-bit Control registers ** 4 64-bit [[IBM hexadecimal floating-point|Floating-point]] registers ** A 64-bit Program status word (PSW) which describes (among other things) *** [[Interrupt]] masks *** Privilege states *** A condition code *** A 24-bit [[Program counter|instruction address]] ** Timing facilities (Time of day clock, interval timer, CPU timer and clock comparator) ** An interruption mechanism, [[Interrupt|maskable]] and unmaskable interruption classes and subclasses ** An [[instruction set]]. Each instruction is wholly described and also defines the conditions under which an exception is recognized in the form of program interruption. * A [[Primary storage|memory (called storage) subsystem]] with: ** 8 bits per byte ** A special processor communication area starting at address 0 ** Key controlled protection ** 24-bit addressing * Manual control operations that provide: ** A [[booting|bootstrap]] process (a process called Initial Program Load or IPL) ** Operator-initiated interrupts ** Resetting the system ** Basic debugging facilities ** Manual display and modifications of the system's state (memory and processor) * An Input/Output mechanism{{snd}}which does not describe the devices themselves Some of the optional features are: * A [[Virtual memory#History|Dynamic Address Translation]] (DAT) mechanism that can be used to implement a [[virtual memory]] system * [[Floating point]] instructions IBM took great care to ensure that changes to the architecture would remain compatible for unprivileged (problem state) programs; some new interfaces did not break the initial interface contract for privileged (supervisor mode) programs. Some examples are ; <nowiki>ECPS:MVS</nowiki><ref>{{cite book | title = IBM System/370 Extended Facility and ECPS:MVS | id = GA22-7072-1 | date = November 1980 | edition = Second | publisher = IBM | url = http://www.computinghistory.org.uk/downloads/12265 }} </ref> :A feature to enhance performance for the [[MVS/370]] operating systems ;<nowiki>ECPS:VM</nowiki><ref>{{cite book | title = Virtual-Machine Assist and Shadow-Table-Bypass Assist | id = GA22-7074-0 | date = May 1980 | edition = First | publisher = IBM | url = http://bitsavers.org/pdf/ibm/370/VM/370/GA22-7074-0_Virtual-Machine_Assist_and_Shadow-Table-Bypass_Assist_May80.pdf | access-date = 2024-09-19 }}</ref> :A feature to enhance performance for the [[VM (operating system)|VM]] operating systems Other changes were compatible only for unprivileged programs, although the changes for privileged programs were of limited scope and well defined. Some examples are: ;<nowiki>ECPS:VSE</nowiki><ref>{{cite book | title = IBM 4300 Processors Principles of Operation for ECPS:VSE Mode | id = GA22-7070-1 | date = September 1980 | edition = Second | publisher = IBM | url = http://bitsavers.org/pdf/ibm/4300/GA22-7070-1_4300_Processors_PrincOps_ECPS_VSE_Mode_Sep80.pdf }} </ref> :A feature to enhance performance for the [[DOS/VSE]] operating system. ;S/370-XA{{sfn|S370-XA-1st}} :A feature to provide a new I/O interface and to support [[31-bit computing|31-bit]] virtual and physical addressing Great care was taken in order to ensure that further modifications to the architecture would remain compatible, at least as far as non-privileged programs were concerned. This philosophy predates the definition of the S/370 architecture and started with the S/360 architecture. If certain rules are adhered to, a program written for this architecture will run with the intended results on the successors of this architecture. <!-- One of the key aspect that allows this compatibility is to define that unused fields are to be set to a predetermined value (usually 0) - and that using another value leads to an exception condition being recognized.<ref name="370-princops-4"/>{{rp|10}} When the interface is modified, this unused field can then be used to alter the interface contract. A well formed program can then still produce the expected result even when executing on an implementation of the new interface. --> <!-- Not supported by cited reference, and certainly not true for CCW. --> Such an example is that the S/370 architecture specifies that the 64-bit PSW register bit number 32 has to be set to 0 and that doing otherwise leads to an exception. Subsequently, when the S/370-XA architecture was defined, it was stated that this bit would indicate whether the program was a program expecting a 24-bit address architecture or 31-bit address architecture. Thus, most programs that ran on the 24-bit architecture can still run on 31-bit systems; the 64-bit [[z/Architecture]] has an additional mode bit for 64-bit addresses, so that those programs, and programs that ran on the 31-bit architecture, can still run on 64-bit systems. However, not all of the interfaces can remain compatible. Emphasis was put on having non control programs (called problem state programs) remain compatible.{{sfn|S390-ESA|loc=[http://publibz.boulder.ibm.com/epubs/pdf/dz9ar008.pdf#page=45 Section 1.3.2.2 Problem-State Compatibility]|pp=1-13{{snd}}1-14}} Thus, operating systems have to be ported to the new architecture because the control interfaces can (and were) redefined in an incompatible way. For example, the I/O interface was redesigned in S/370-XA making S/370 program issuing I/O operations unusable as-is.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)