IBM Enterprise Systems Architecture

Last updated

IBM Enterprise Systems Architecture is an instruction set architecture introduced by IBM as ESA/370 in 1988. It is based on the IBM System/370-XA architecture.

Contents

It extended the dual-address-space mechanism introduced in later IBM System/370 models by adding a new mode in which general-purpose registers 1-15 are each associated with an access register referring to an address space, with instruction operands whose address is computed with a given general-purpose register as a base register will be in the address space referred to by the corresponding address register.

The later ESA/390, introduced in 1990, added a facility to allow device descriptions to be read using channel commands and, in later models, added instructions to perform IEEE 754 floating-point operations and increased the number of floating-point registers from 4 to 16.

Enterprise Systems Architecture is essentially a 32-bit architecture; as with System/360, System/370, and 370-XA, the general-purpose registers are 32 bits long, and the arithmetic instructions support 32-bit arithmetic. Only byte-addressable real memory (Central Storage) and Virtual Storage addressing is limited to 31 bits, as is the case with 370-XA. (IBM reserved the most significant bit to easily support applications expecting 24-bit addressing, as well as to sidestep a problem with extending two instructions to handle 32-bit unsigned addresses.) It maintains problem state backward compatibility dating back to 1964 with the 24-bit-address/32-bit-data (System/360 and System/370) and subsequent 24/31-bit-address/32-bit-data architecture (System/370-XA). However, the I/O subsystem is based on System/370 Extended Architecture (S/370-XA), not on the original S/370 I/O instructions.

ESA/370 architecture

ESA/370
Designer IBM
Bits32-bit
Introduced1988;36 years ago (1988)
Design CISC
TypeRegister–Register
Register–Memory
Memory–Memory
Encoding Variable (2, 4 or 6 bytes long)
Branching Condition code, indexing, counting
Endianness Big
Predecessor System/370-XA
SuccessorESA/390
Registers
General-purpose 16
Floating point 4 64-bit
IBM S/370-ESA and S/390-ESA registers
General Registers 0-15

Two's complement value
031
Access Registers 0-15 [1]

0000000PALESNALEN
0678151631
ESA Access register abbreviations
BitsFieldMeaning
0-60000000
7PPrimary
0=use dispatchable-unit access list
1=use primary-space access list
8-15ALESNaccess-list-entry sequence number
16-31ALENaccess-list-entry number
Control Registers 0-15

See Principles of Operation [2] [3] or Control Registers
031
Floating Point Control (FPC) Register
Interrupt Masks
(IM)
Status Flags
(SF)
Data Exception Code
(DXC)
Rounding Mode
(RM)
izoux000izoux000izouxy00000000RM
0123457891011121315161718192021222324293031
Floating Point Registers (hexadecimal) 0-6/0-15 [lower-alpha 1]

SBiased exponentMantissa
017831

Mantissa (continued)
3263
Floating Point Registers (binary, single precision) 0-15 [lower-alpha 2]

SBiased exponentMantissa
018931
Floating Point Registers (binary, double precision) 0-15 [lower-alpha 3]

SBiased exponentMantissa
01111231

Mantissa (continued)
3263
Enterprise Systems Architecture Extended Control mode PSW [4] [5]

0R000TI
O
E
X
Key1MWPASCCProgram
Mask
00000000
0124567811121314151617181920232431

AInstruction Address
323363
ESA 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=1Extended Control mode
13MMachine-check mask
14WWait state
15PProblem state
16-17ASAddress-Space Control
00=primary-space mode
01=Access-register mode
10=Secondary-space mode
11=Home-space mode
18-19CCCondition Code
20-23PM
Program Mask
BitMeaning
20Fixed-point overflow
21Decimal overflow
22Exponent underflow [lower-alpha 4]
23Significance [lower-alpha 5]
32AAddressing mode
0=24 bit; 1=31 bit
33-63IAInstruction Address

On February 15, 1988, IBM announced [6] [7] Enterprise Systems Architecture/370 (ESA/370) for 3090 enhanced ("E") models and for 4381 model groups 91E and 92E.

In addition to the primary-space and secondary-space addressing modes that later System/370 models, and System/370 Extended Architecture (S/370-XA) models, support, ESA has an access register mode in which each use of general register 1-15 as a base register uses an associated access register to select an address space. [8] In addition to the normal address spaces that machines with the dual-address-space facility support, ESA also allows data spaces, which contain no executable code.

A machine may be divided into Logical Partitions (LPARs), each with its own virtual system memory so that multiple operating systems may run concurrently on one machine.

ESA/390 architecture

ESA/390
Designer IBM
Bits32-bit
Introduced1990;34 years ago (1990)
Design CISC
TypeRegister–Register
Register–Memory
Memory–Memory
Encoding Variable (2, 4 or 6 bytes long)
Branching Condition code, indexing, counting
Endianness Big
PredecessorESA/370
Successor z/Architecture
Registers
Access 16× 32, Control 16×32, Floating Point Control (FPC) 32-bit, Prefix 32 bit, PSW 64-bit
General-purpose 16
Floating point 4 64-bit up to the G4; 16 64-bit starting with the G5 [9] [10]

An important capability to form a Parallel Sysplex was added to the architecture in 1994.

ESA/390 also extends the Sense ID command to provide additional information about a device, and additional device-dependent channel commands, the command codes for which are provided in the Sense ID information, to allow device description information to be fetched from a device. [11] [12]

Starting with the System/390 G5, [9] [10] IBM introduced: [13]

Some PC-based IBM-compatible mainframes which provide ESA/390 processors in smaller machines have been released over time, but are only intended for software development.

New facilities

ESA/390 adds the following [14] facilities

All models
  • Access-list-controlled protection
Some models
  • Concurrent sense
  • PER 2
  • Storage-protection override
  • Move-page facility 2
  • Square root
  • String instruction
  • Suppression on protection with virtual-address enhancement
  • Set address space control fast
  • Subspace group
  • Called-space identification
  • Checksum
  • Compare and move extended
  • Immediate and relative instruction
  • Branch and set authority
  • Perform locked operation
  • Additional floating-point
  • Program call fast
  • Resume program
  • Trap
  • Extended TOD clock
  • TOD-clock-control override
  • Store system information
  • Extended translation 1
  • Extended translation 2
  • z/Architecture (certain instructions)
  • Enhanced input/output

New channel commands

The following channel commands [lower-alpha 6] are new, or have their functionality changed, in ESA/390: [12]

ESA/390 I/O-Device Commands
CommandBit Position
01234567
Read configuration dataDDDDDDD0
Read node identifierDDDDDDD0
Sense ID11100100
Set interface identifierDDDDDDD1
Note:
D Device dependent. The command code, if any, recognized by an I/O device may be obtained by using a sense-ID command.

Notes

  1. The number and format of floating-point registers depends on the installed features:
    ESA/370
    ESA/390 without the new floating-point facilities
    Only the hexadecimal floating point (HFP) registers FP0, FP2, FP4 and FP6 exist
    ESA/390 with the new floating-point facilities
    FP0_FP15 may be HFP or IEEE floating point
  2. ESA/390 with the new floating-point facilities
  3. ESA/390 with the new floating-point facilities
  4. Bit 22 is renamed as HFP exponent underflow in ESA/390
  5. Bit 23 is renamed as HFP significance in ESA/390
  6. The data returned by Sense ID include the command codes for Read configuration data, Read node identifier and Set interface identifier.

Related Research Articles

IBM mainframes are large computer systems produced by IBM since 1952. During the 1960s and 1970s, IBM dominated the computer market with the 7000 series and the later System/360, followed by the System/370. Current mainframe computers in IBM's line of business computers are developments of the basic design of the System/360.

<span class="mw-page-title-main">MVS</span> Operating system for IBM mainframes

Multiple Virtual Storage, more commonly called MVS, is the most commonly used operating system on the System/370, System/390 and IBM Z IBM mainframe computers. IBM developed MVS, along with OS/VS1 and SVS, as a successor to OS/360. It is unrelated to IBM's other mainframe operating system lines, e.g., VSE, VM, TPF.

<span class="mw-page-title-main">IBM System/370</span> Family of mainframe computers 1970–1990

The IBM System/370 (S/370) is a range of IBM mainframe computers announced as the successors to the System/360 family on June 30, 1970. The series mostly maintains backward compatibility with the S/360, allowing an easy migration path for customers; this, plus improved performance, were the dominant themes of the product announcement.

In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32-bit units. Compared to smaller bit widths, 32-bit computers can perform large calculations more efficiently and process more data per clock cycle. Typical 32-bit personal computers also have a 32-bit address bus, permitting up to 4 GB of RAM to be accessed, far more than previous generations of system architecture allowed.

<span class="mw-page-title-main">VM (operating system)</span> Family of IBM operating systems

VM is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers.

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. In computer architecture, registers are typically addressed by mechanisms other than main memory, but may in some cases be assigned a memory address e.g. DEC PDP-10, ICT 1900.

Hexadecimal floating point is a format for encoding floating-point numbers first introduced on the IBM System/360 computers, and supported on subsequent machines based on that architecture, as well as machines which were intended to be application-compatible with System/360.

z/Architecture, initially and briefly called ESA Modal Extensions (ESAME), is IBM's 64-bit complex instruction set computer (CISC) instruction set architecture, implemented by its mainframe computers. IBM introduced its first z/Architecture-based system, the z900, in late 2000. Later z/Architecture systems include the IBM z800, z990, z890, System z9, System z10, zEnterprise 196, zEnterprise 114, zEC12, zBC12, z13, z14, z15 and z16.

A logical partition (LPAR) is a subset of a computer's hardware resources, virtualized as a separate computer. In effect, a physical machine can be partitioned into multiple logical partitions, each hosting a separate instance of an operating system.

The program status word (PSW) is a register that performs the function of a status register and program counter, and sometimes more. The term is also applied to a copy of the PSW in storage. This article only discusses the PSW in the IBM System/360 and its successors, and follows the IBM convention of numbering bits starting with 0 as the leftmost bit.

Since the rise of the personal computer in the 1980s, IBM and other vendors have created PC-based IBM mainframe-compatible systems which are compatible with the larger IBM mainframe computers. For a period of time PC-based mainframe-compatible systems had a lower price and did not require as much electricity or floor space. However, they sacrificed performance and were not as dependable as mainframe-class hardware. These products have been popular with mainframe developers, in education and training settings, for very small companies with non-critical processing, and in certain disaster relief roles.

A control register is a processor register that changes or controls the general behavior of a CPU or other digital device. Common tasks performed by control registers include interrupt control, switching the addressing mode, paging control, and coprocessor control.

Extended precision refers to floating-point number formats that provide greater precision than the basic floating-point formats. Extended precision formats support a basic format by minimizing roundoff and overflow errors in intermediate values of expressions on the base format. In contrast to extended precision, arbitrary-precision arithmetic refers to implementations of much larger numeric types using special software.

In IBM terminology, an Access Register (AR) is a hardware register in ESA/370 and later mainframe instruction set architectures. Access registers work in conjunction with the general purpose registers, giving a program transparent access to up to sixteen 2 GB address spaces simultaneously. ARs were introduced with ESA/370 in 1988, and supported by the MVS/ESA operating system.

In computing, quadruple precision is a binary floating-point–based computer number format that occupies 16 bytes with precision at least twice the 53-bit double precision.

The IBM System/360 architecture is the model independent architecture for the entire S/360 line of mainframe computers, including but not limited to the instruction set architecture. The elements of the architecture are documented in the IBM System/360 Principles of Operation and the IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information manuals.

<span class="mw-page-title-main">IBM 9370</span> IBM mainframe-compatible low-end system

The IBM 9370 systems are "baby mainframe" midrange computers, released 1986 at the very low end of, and compatible with System/370. The media of the day, referring to the VAX systems manufactured by Digital Equipment Corporation (DEC), carried IBM's alleged "VAX Killer" phrase, albeit often skeptically.

IBM System/370-XA is an instruction set architecture introduced by IBM in 1983 with the IBM 308X processors. It extends the IBM System/370 architecture to support 31-bit virtual and physical addresses, and includes a redesigned I/O architecture.

The IBM 3090 family is a family of mainframe computers that was a high-end successor to the IBM System/370 series, and thus indirectly the successor to the IBM System/360 launched 25 years earlier.

<span class="mw-page-title-main">IBM System/390</span> Line of mainframe computers

The IBM System/390 is a discontinued mainframe product family implementing ESA/390, the fifth generation of the System/360 instruction set architecture. The first computers to use the ESA/390 were the Enterprise System/9000 (ES/9000) family, which were introduced in 1990. These were followed by the 9672, Multiprise, and Integrated Server families of System/390 in 1994–1999, using CMOS microprocessors. The ESA/390 succeeded ESA/370, used in the Enhanced 3090 and 4381 "E" models, and the System/370 architecture last used in the IBM 9370 low-end mainframe. ESA/390 was succeeded by the 64-bit z/Architecture in 2000.

References

S370-ESA
IBM Enterprise Systems Architecture/370 Principles of Operation (PDF) (First ed.). IBM. August 1988. SA22-7200-0.
S/390-ESA
IBM Enterprise Systems Architecture/390 Principles of Operation (PDF) (Ninth ed.). IBM. June 2003. SA22-7201-08.
  1. S370-ESA, p. 5-30, Access-list-Entry Token.
  2. S370-ESA, pp. 4-7–4-9, Figure 4-3 Assignment of Control-Register Fields.
  3. S390-ESA, pp. 4-8–4-10, Figure 4-3 Assignment of Control-Register Fields.
  4. S370-ESA, p. 4-5, Program-Status-Word Format.
  5. S390-ESA, p. 4-5, Program-Status-Word Format.
  6. "IBM 3090 PROCESSOR UNIT MODELS 280E AND 500E AND IBM 3090 PROCESSOR UNIT MODEL 300E TO 400E UPGRADE". Announcement Letters. IBM. February 15, 1988. 188-038.
  7. "ENTERPRISE SYSTEMS ARCHITECTURE/370 (TM) AND MVS/SYSTEM PRODUCT VERSION 3". Announcement Letters. IBM. February 15, 1988. 288-059.
  8. S370-ESA.
  9. 1 2 Slegel, Timothy J. (August 17, 1998). "IBM S/390 G5 Microprocessor" (PDF). Hot Chips .
  10. 1 2 Schwarz, E. M.; Krygowski, C. A. (September 1, 1999). "The S/390 G5 floating-point unit". IBM Journal of Research and Development. 43 (5): 707–721. doi:10.1147/rd.435.0707.
  11. S390-ESA, pp. 1–8.
  12. 1 2 Enterprise Systems Architecture/390 Common I/O-Device Commands, Second Edition, IBM, April 1992, SA22-7204-01
  13. S390-ESA, pp. 1-3–1-4, Highlights of ESA/390.
  14. S390-ESA, pp. D-1–D-7, Appendix D. Comparison between ESA/370 and ESA/390.