System/370-XA
   HOME

TheInfoList



OR:

IBM System/370-XA is an instruction set architecture introduced by IBM in 1983 with the
IBM 308X The IBM 308XIBM used a capital X when referring to 308X, as did others needing an official reference; see the Congressional Record reference. is a line of mainframe computers, the first model of which, the Model 3081 Processor Complex, was introd ...
processors. It extends the
IBM System/370 The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path ...
architecture to support 31-bit virtual and physical addresses, and includes a redesigned I/O architecture.


31-bit virtual addressing

In the System/360, other than the 360/67, and
System/370 The IBM System/370 (S/370) is a model range of IBM mainframe computers announced on June 30, 1970, as the successors to the System/360 family. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path ...
architectures, the
general-purpose register A processor register is a quickly accessible location available to a computer's processor. Registers usually consist of a small amount of fast storage, although some registers have specific hardware functions, and may be read-only or write-only. ...
s were 32 bits wide, the machine did 32-bit arithmetic operations, and addresses were always stored in 32-bit words, so the architecture was considered 32-bit, but the machines ignored the top 8 bits of the address resulting in 24-bit addressing. Much of System/360's and System/370's large installed code base relied on a 24-bit
logical address In computing, a logical address is the address at which an item ( memory cell, storage element, network host) appears to reside from the perspective of an executing application program. A logical address may be different from the physical addr ...
; In particular, a heavily used machine instruction, , 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, or
31-bit In computer architecture, 31-bit integers, memory addresses, or other data units are those that are 31 bits wide. In 1983, IBM introduced 31-bit addressing in the System/370-XA mainframe architecture as an upgrade to the 24-bit physical and v ...
mode, in which only the uppermost bit of virtual addresses are ignored. Several reasons were given for the choice of 31 bits instead of 32 bits: # The desire to retain the high-order bit as a "control or escape bit." In particular, the standard subroutine calling convention marked the final parameter word by setting its high bit. # Interaction between 32-bit addresses and two loop control instructions, and 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). # 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). Certain machine instructions in this 31-bit addressing mode alter the addressing mode bit. For example, the original subroutine call instructions , Branch and Link, and its register-register equivalent, , Branch and Link Register, store certain status information, the instruction length code, the condition code and the program mask, in the top byte of the return address. A , Branch and Save, instruction was added to allow 31-bit return addresses. , and its register-register equivalent, , 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, , Branch and Save and Set Mode, 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, and , 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, and 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). Like (the 24-bit-only form of a call), is used as , 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 to (the 24-bit-only form of an unconditional return), is used as , 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.


31-bit physical addressing

System/370 initially supported only 24-bit physical addresses; the extended real address feature extended this to 26-bit addresses. 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. 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.


I/O

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


Notes


References

{{reflist 370-XA Computing platforms Computer-related introductions in 1983 Products and services discontinued in 1988 32-bit computers