IBM Enterprise Systems Architecture
| Company type | Instruction set architecture |
|---|---|
| Industry | Computer architecture |
| Founded | 1988 |
| Founder | IBM |
| Products | ESA/370, ESA/390 |
IBM Enterprise Systems Architecture (ESA) represents an instruction set architecture launched by IBM in 1988 under the name Enterprise Systems Architecture/370 (ESA/370), building upon the foundation of the IBM System/370-XA architecture.
ESA enhanced the dual-address-space feature found in later IBM System/370 models by incorporating an access register mode. In this mode, each of the general-purpose registers numbered 1 through 15 is linked to a corresponding access register that designates a specific address space; thus, when instructions use these registers as base pointers, they reference the selected address space.
The follow-up architecture, Enterprise Systems Architecture/390 (ESA/390), introduced in 1990, improved device description retrieval via channel commands and broadened floating-point functionality by increasing floating-point registers from four to sixteen and integrating IEEE 754 binary floating-point operations.
At its core, ESA is a 32-bit architecture: general-purpose registers are 32 bits wide, and arithmetic instructions operate on 32-bit data. Both real and virtual memory addressing are confined to 31 bits, reserving the highest-order bit to ensure compatibility with software designed for 24-bit addressing and to support instruction set extensions. ESA preserves backward compatibility with earlier IBM systems dating back to 1964, including System/360 and System/370 variants. Its input/output subsystem is derived from the System/370 Extended Architecture (S/370-XA).
ESA/370 architecture
On February 15, 1988, IBM introduced ESA/370 targeting enhanced ("E") versions of the IBM 3090 as well as the 4381 model series 91E and 92E.
ESA supports primary-space and secondary-space addressing modes consistent with those in later System/370 and S/370-XA models, while adding an access register mode that assigns each general register (1–15) an associated access register to select an address space. Additionally, ESA introduces data spaces—memory areas that do not contain executable code—thereby increasing memory management versatility.
Systems implementing ESA can be divided into Logical Partitions (LPARs), each possessing its own virtual system memory. This capability allows multiple operating systems to operate simultaneously on a single physical machine.
ESA/390 architecture
In 1994, ESA/390 incorporated significant enhancements to support the Parallel Sysplex, improving clustering capabilities for enterprise-level systems.
The architecture extended the Sense ID command to deliver more detailed device information and added new device-dependent channel commands to optimize I/O device control.
With the release of the System/390 G5, IBM advanced ESA/390 by introducing:
- fundamental floating-point extension features that increased floating-point registers from four to sixteen;
- binary floating-point (BFP) extensions compliant with IEEE 754 standards, including a new floating-point control register;
- floating-point support (FPS) extensions that facilitate loading, storing, and conversion between hexadecimal and IEEE formats;
- hexadecimal floating-point (HFP) extensions providing new instructions consistent with binary floating-point operations.
Certain PC-based IBM-compatible mainframes equipped with ESA/390 processors have been made available primarily for software development activities.
New Capabilities
ESA/390 incorporates a variety of new capabilities, which include:
- Applicable to all models
-
- Protection controlled by access lists
- Available on select models
-
- Concurrent sense functionality
- PER 2 enhancement
- Override for storage protection
- Move-page facility version 2
- Square root operation
- String manipulation instruction
- Protection suppression combined with virtual-address improvements
- Fast setting of address space control
- Subspace grouping feature
- Identification of called spaces
- Checksum calculation
- Extended compare and move instruction
- Immediate and relative addressing instructions
- Branch with authority setting
- Execution of locked operations
- Additional floating-point operations
- Accelerated program call
- Program resume capability
- Trap mechanism
- Extended time-of-day (TOD) clock
- Override control for TOD clock
- System information storage feature
- Extended translation levels 1 and 2
- Certain instructions supporting z/Architecture
- Enhanced input/output operations
Instruction Format Enhancements
ESA/390 introduces new instruction formats such as RI, RIL, and RSI, designed for relative branching. These formats include signed immediate fields expressed in halfword units.
Channel Command Updates
ESA/390 revises or adds the following channel commands. Sense ID data now encompasses command codes for reading configuration data, retrieving node identifiers, and setting interface identifiers:
| Command | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| Read configuration data | D | D | D | D | D | D | D | 0 |
| Read node identifier | D | D | D | D | D | D | D | 0 |
| Sense ID | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
| Set interface identifier | D | D | D | D | D | D | D | 1 |
| Note: 'D' denotes device-dependent. Command codes recognized by an I/O device are accessible through Sense ID. | ||||||||
References
- S370-ESA
- S/390-ESA