IBM ESA/390
Designer | IBM |
---|---|
Bits | 32-bit |
Introduced | 1990 |
Design | CISC |
Type | Register-memory Memory-memory |
Encoding | Variable (2, 4 or 6 bytes long) |
Branching | Condition code, indexing, counting |
Endianness | Big |
Registers | |
General purpose | 16 |
Floating point | 4 64-bit |
Lua error in package.lua at line 80: module 'strict' not found.
ESA/390 (Enterprise Systems Architecture/390) was introduced in September 1990[1][2] under the name Enterprise Systems Architecture/370 and was IBM's last 31-bit-address/32-bit-data mainframe computing design, copied by Amdahl, Hitachi, and Fujitsu among other competitors. It was the successor of System/370 Extended Architecture (S/370-XA) and, in turn, was succeeded by the 64-bit z/Architecture in 2000.
Machines supporting the architecture have been sold under the brand System/390 (S/390) from the beginning of the 1990s. The 9672 implementations of System/390 were the first high-end IBM mainframe architecture implemented first with CMOS CPU electronics rather than the traditional bipolar logic.
Contents
Architecture and memory
The architecture employs a channel I/O subsystem in the System/360 tradition, offloading almost all I/O activity to specialized hardware. It also includes a standard set[2] of CCW opcodes that new equipment is expect to provide.
The architecture maintains problem state backward compatibility with the 24-bit-address/32-bit-data System/360 (1964) and all intermediate large system 24/31-bit-address/32-bit-data architectures (System/370, System/370-XA, and ESA/370). 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/390 is arguably a 32-bit architecture; as with System/360, System/370, 370-XA, and ESA/370, 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. (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.)
In fact, total system memory is not limited to 31 bits (2 GB).[3] While the virtual storage of a single address space cannot exceed 2 GB, ESA/390 supports multiple concurrent 2GB address spaces. Further, each address space can have Dataspaces associated with it, each of which can have up to 2 GB of Virtual Storage. While Central Storage is limited to 2GB additional memory can be configured as expanded storage. With Expanded Storage 4KB pages can be moved between Central Storage and Expanded Storage. Expanded Storage can be used for a number of things such as ultra-fast paging, for disk caching and virtual disks within the VM/CMS operating system. Under Linux/390 this memory cannot be used for disk caching; instead, it is supported by a block device driver, allowing to use it as ultra-fast swap space and for RAM drives.
In addition, a machine may be divided into Logical Partitions (LPARs), each with its own system memory so that multiple operating systems may run concurrently on one machine.
An important capability to form a Parallel Sysplex was added to the architecture in 1994.
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.
The Hercules emulator is a portable ESA/390 and z/Architecture machine emulator which supports enough devices to boot many ESA/390 operating systems. Since it is written in pure C, it has been ported to many platforms, including S/390 itself. A commercial emulation product for IBM xSeries with higher execution speed is also available.
Common I/O Device Commands
2.0 Chapter 2. Specific I/O-Device Commands in Enterprise Systems Architecture/390 Common I/O-Device Commands[2] shows the following commands.
Command | Bit Position | |||||||
---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
Basic sense | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
No-operation (no-op) | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
Read configuration data | D | D | D | D | D | D | D | 0 |
Read IPL | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 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 |
Test I/O | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Note: D Device dependent. The command code, if any, recognized by an I/O device may be obtained by using a sense-ID command. |
S/390 computers
The ESA/370 architecture was introduced with the IBM 3090 mainframe and the ESA/390 architecture was introduced with the IBM ES/9000 family of mainframes.
Introduced in 1994, the six generations of the IBM 9672 machines were the first CMOS, microprocessor based systems intended for the high end. The initial generations were slower than the largest ES/9000 sold in parallel, but the fifth and sixth generations were the largest and most powerful ESA/390 machines built. [4]
Model[5] | Year Introduced | Number of CPUs | Performance (MIPS) | Memory (GB) |
---|---|---|---|---|
G1 – 9672-Rn1, 9672-Enn, 9672-Pnn[6] | 1994 | 1–6 | 15–66 | 0.125–2 |
G2 – 9672-Rn2, 9672-Rn3 | 1995 | 1–10 | 15–171 | 0.125–4 |
G3 – 9672-Rn4 | 1996 | 1–10 | 33–374 | 0.5–8 |
G4 – 9672-Rn5 | 1997 | 1–10 | 49–447 | 0.5–16 |
G5 – 9672-nn6 | 1998 | 1–10 | 88–1069 | 1–24 |
G6 – 9672-nn7 | 1999 | 1–12 | 178–1644 | 5–32 |
In the course of next generations, CPUs added more instructions and increased performance. All 9672s were CMOS, but were slower than the 9021 bipolar machines until the G5 models. CMOS designs permitted much smaller mainframes, such as the Multiprise 3000 introduced in 1999, which was actually based on 9672 G5. The 9672 G3 model and the Multiprise 2000 were the last versions to support pre-XA System/370 mode.
Operating systems
OS/390, VM/CMS, VSE, Slackware, Linux/390 and all systems supported by earlier System/370.
References
<templatestyles src="Reflist/styles.css" />
Cite error: Invalid <references>
tag; parameter "group" is allowed only.
<references />
, or <references group="..." />
- Notes
- IBM System/390 Announcement The text of an IBM U.S. Marketing & Services press release distributed on September 5, 1990.
- Enterprise Systems Architecture/390 Principles of Operation. IBM Publication No. SA22-7201.
External links
Wikimedia Commons has media related to IBM S/390. |
- Generations of the IBM 360/370/3090/390 by Lars Poulsen with multiple links and references
- Exterior and interior images of the IBM 390 at The Jim Austin Computer Collection, UK Computer Museum. Accessed February 2012
- Porting GCC to the IBM S/390 platform
- IBM Archives: A Brief History of the IBM ES/9000, System/390 AND zSeriesja:ESA/390
- ↑ http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/DZ9AR006/1.1?DT=19990630131355 Enterprise Systems Architecture/390 Principles of Operation. IBM Publication No. SA22-7201. Retrieved on 17-09-2007.
- ↑ 2.0 2.1 2.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ In the context of computer memory, 1 GB = 10243 bytes
- ↑ Lua error in package.lua at line 80: module 'strict' not found. Slide 28: "9672 to zSeries".
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.