Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
IBM System/370
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
IBM System/370
(section)
Add topic