Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

IBM System/370-XA

From Wikipedia, the free encyclopedia
History ofIBM mainframes, 1952–present
Market name
Architecture
System/370-XA
DesignerIBM
Bits32-bit
Introduced1983; 42 years ago (1983)
DesignCISC
TypeRegister–Register
Register–Memory
Memory–Memory
EncodingVariable(2, 4 or 6 bytes long)
BranchingCondition code, indexing, counting
EndiannessBig
PredecessorSystem/370
SuccessorESA/370
Registers
General-purpose16× 32-bit
Floating point4× 64-bit
IBM S/370-XA registers
General Registers 0–15

Two's complement value
031
Control Registers 0–15

See Principles of Operation[1]: 4-6–4-8 
031
Floating-Point Registers 0–6

SBiased exponentMantissa
017831

Mantissa (continued)
3263
Extended ArchitectureExtendedControl mode PSW[1]: 4-5–4-6 

0R000TI
O
E
X
Key1MWPS0CCProgram
Mask
00000000
0124567811121314151617181920232431

AInstruction Address
323363
S/370-XA EC mode PSW abbreviations
BitsFieldMeaning
1RPER Mask
5TDAT mode
6IOI/O Mask; subject to channel mask in CR2
7EXExternal Mask; subject to external subclass mask in CR0
8–11KeyPSW key
12E=1ExtendedControl mode
13MMachine-check mask
14WWait state
15PProblem state
16SAddress-Space Control
0=primary-space mode
1=Secondary-space mode
18–19CCCondition Code
20–23PM
Program Mask
BitMeaning
20Fixed-point overflow
21Decimal overflow
22Exponent underflow
23Significance
32AAddressing mode
0=24-bit; 1=31-bit
33–63IAInstruction Address
  • IBM documentation numbers the bits from high order to low order; the most significant (leftmost) bit is designated as bit number 0.

IBM System/370-XA is aninstruction set architecture introduced by IBM in 1983 for theIBM 308X processors.[2]: 198  It extends theIBM System/370 architecture to support 31-bit virtual and physical addresses, and includes a redesigned I/O architecture.

31-bit virtual addressing

[edit]

In theSystem/360, other than the360/67, andSystem/370 architectures, thegeneral-purpose registers were 32 bits wide, the machine did 32-bit arithmetic operations, and addresses were always stored in 32-bit words, so the architecture was considered32-bit, but the machines ignored the top 8 bits of the address resulting in24-bit addressing. Much of System/360's and System/370's large installed code base relied on a 24-bitlogical address; In particular, a heavily used machine instruction,LA, Load Address, explicitly cleared the top eight bits of the address being placed in a register. If the 24-bit limit were to be removed, this would create migration problems for existing software.

This was addressed by adding an addressing mode bit to the Program Status Word controlling whether the program runs in 24-bit mode, in which the top eight bits of virtual addresses are ignored, or31-bit mode, in which only the uppermost bit of virtual addresses are ignored.[2]: 201-202 [1]: 1-2  Several reasons were given for the choice of 31 bits instead of 32 bits:

  1. The desire to retain the high-order bit as a "control or escape bit."[2]: 201  In particular, the standard subroutine calling convention marked the final parameter word by setting its high bit.[3]
  2. Interaction between 32-bit addresses and two loop control instructions,BXH andBXLE that treated their arguments as signed numbers when doing comparisons (and which was said to be the reason TSS used 31-bit addressing on the Model 67).[4]: 26, note 85 
  3. Input from key initial Model 67 sites, which had debated the alternatives during the initial system design period, and had recommended 31 bits (instead of the 32-bit design that was ultimately chosen at the time).[4]: 8–9, note 21 

Certain machine instructions in this 31-bit addressing mode alter the addressing mode bit. For example, the original subroutine call instructionsBAL, Branch and Link, and its register-register equivalent,BALR, Branch and Link Register, store certain status information, the instruction length code,[a] the condition code and the program mask, in the top byte of the return address. ABAS, Branch and Save, instruction was added to allow 31-bit return addresses.BAS, and its register-register equivalent,BASR, Branch and Save Register, was part of the instruction set of the 360/67, which was the only System/360 model to allow addresses longer than 24 bits. These instructions were maintained, but were modified and extended for 31-bit addressing.

Additional instructions in support of allowing calls between 24-bit-addressing and 31-bit-addressing code include two new register-register call/return instructions which also effect an addressing mode change,BASSM, Branch and Save and Set Mode,[5] the 24/31-bit version of a call where the linkage address including the mode is saved and a branch is taken to an address in a possibly different mode, andBSM, Branch and Set Mode, the 24/31 bit version of a return, where the return is directly to the previously saved linkage address and in its previous mode. Taken together,BASSM andBSM allow 24-bit calls to 31-bit (and return to 24-bit), 31-bit calls to 24-bit (and return to 31-bit), 24-bit calls to 24-bit (and return to 24-bit) and 31-bit calls to 31-bit (and return to 31-bit).[2]: 202 

LikeBALR 14,15 (the 24-bit-only form of a call),BASSM is used asBASSM 14,15, where the linkage address and mode are saved in register 14, and a branch is taken to the subroutine address and mode specified in register 15. Somewhat similarly toBCR 15,14 (the 24-bit-only form of an unconditional return),BSM is used asBSM 0,14, where 0 indicates that the current mode is not saved (the program is leaving the subroutine, anyway), and a return to the caller at the address and mode specified in register 14 is to be taken.[6]

31-bit physical addressing

[edit]

System/370 initially supported only 24-bit physical addresses; the extended real address feature extended this to 26-bit addresses.[7]

System/370-XA changed the page table entry format to support 19 bits of page frame address; pages are 4 KB in 370-XA, so combining a 19-bit page frame address with a 12-bit offset within the page produces a 31-bit physical address.[1]: 3-25  Channel command words can be in one of two formats, with format 0 being the System/370 format, with a 24-bit data address, and format 1 being an additional format, with a 31-bit data address.[2]: 202 [1]: 1-3 

I/O

[edit]
[icon]
This sectionneeds expansion. You can help byadding to it.(May 2023)

System/370-XA introduced a channel subsystem that performed I/O queuing previously done by the operating system.

Notes

[edit]
  1. ^Because the instruction length code is 00b for aBALR and is 01b for aBAL, the high order bit is always guaranteed to be set to 0, thereby indicating 24-bit mode, forBALR andBAL on XA and later systems.

References

[edit]
  1. ^abcdeIBM System/370 Extended Architecture Principles of Operation(PDF) (First ed.).IBM. March 1983. SA22-7085-0.
  2. ^abcdeA. Padegs (May 1983). "System/370 Extended Architecture: design considerations".IBM Journal of Research & Development.27 (3). IBM:198–205.doi:10.1147/rd.273.0198.
  3. ^"WAIT — Wait for one or more events".z/OS MVS Programming: Authorized Assembler Services Reference, Volume 4.IBM.... the high order bit in the last fullword must be set to one to indicate the end of the list.
  4. ^abVarian, Melinda (1997).VM and the VM community, past present, and future(PDF).SHARE 89 Sessions 9059-9061.
  5. ^"Using the BASSM and BSM instructions".z/OS MVS Programming: Assembler Services Guide.IBM.
  6. ^SeeMVS/Extended Architecture System Programming Library: 31-Bit Addressing(PDF) (Second ed.).IBM. January 1984. GC28-1158-1., for extensive examples of the use of BAS, BASR, BASSM and BSM, in particular, pp. 29–30.
  7. ^IBM System/370 Principles of Operation(PDF) (Eleventh ed.).IBM. September 1987. p. 3-26. A22-7000-10.
Retrieved from "https://en.wikipedia.org/w/index.php?title=IBM_System/370-XA&oldid=1283197300"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp