z/Architecture, initially and briefly called
ESA Modal Extensions (ESAME), is
IBM's
64-bit complex instruction set computer (CISC)
instruction set architecture
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
, implemented by its
mainframe computer
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
s. 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
IBM System z9 is a line of IBM mainframe computers. The first models were available on September 16, 2005. The System z9 also marks the end of the previously used eServer zSeries naming convention. It was also the last mainframe computer ...
,
System z10,
zEnterprise 196,
zEnterprise 114
IBM Z is a family name used by IBM for all of its z/Architecture mainframe computers.
In July 2017, with another generation of products, the official family was changed to IBM Z from IBM z Systems; the IBM Z family now includes the newest mod ...
,
zEC12,
zBC12,
z13,
z14,
z15 and
z16.
z/Architecture retains
backward compatibility with previous 32-bit-data/31-bit-addressing architecture
ESA/390 and its predecessors back to the 32-bit-data/24-bit-addressing
System/360
The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applica ...
. The IBM z13 is the last z Systems server to support running an operating system in ESA/390 architecture mode. However, all 24-bit and 31-bit problem-state application programs originally written to run on the ESA/390 architecture will be unaffected by this change.
Features
z/Architecture includes almost all of the features of ESA/390, and adds some new features. Among the features of z/Architecture are
:A channel subsystem with the architecture introduced by
S/370-XA
:Branch relative instructions introduced by
ESA/390
:Trimodal (24/31/64-bit) addresses
:16 32-bit access registers (ARs) introduced by
ESA/370
:16 64-bit general registers (GRs)
:16 64-bit control registers (CRs) introduced by
System/370
:16 64-bit floating-point registers (FPRs)
:32 128-bit vector registers (VRs); bits 0-63 of VR0-VR15 contain FPR0-FPR15
:1 32-bit floating point control (FPC) register
:1 128-bit processor status register (PSW), which includes a 64-bit instruction address
:An 8-KiB prefix storage area (PSA)
:Cryptographic Facility
:
IEEE Binary-floating-point instructions added by ESA/390
:
IEEE Decimal-floating point instructions
For information on when each feature was introduced, consult Principles of operation.
Registers
Each processor has these registers
*
Access registers
*
Breaking-event-address register (BEAR)
*
Control registers
A control register is a processor register which 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 ...
*
Floating point Control (FPC) register
Floating may refer to:
* a type of dental work performed on horse teeth
* use of an isolation tank
* the guitar-playing technique where chords are sustained rather than scratched
* ''Floating'' (play), by Hugh Hughes
* Floating (psychological phe ...
*
Floating point registers
Floating may refer to:
* a type of dental work performed on horse teeth
* use of an isolation tank
* the guitar-playing technique where chords are sustained rather than scratched
* ''Floating'' (play), by Hugh Hughes
* Floating (psychological phe ...
*
General registers
A general officer is an officer of high rank in the armies, and in some nations' air forces, space forces, and marines or naval infantry.
In some usages the term "general officer" refers to a rank above colonel."general, adj. and n.". OED On ...
*
Prefix register
*
Program status word (PSW)
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/3 ...
*
Vector registers
Access registers
Each CPU has 16 32-bit access registers. When a program running in AR mode specifies register 1-15 as a base register or as a register operand containing an address, the CPU uses the associated access register during address translation.
Breaking-event-address register (BEAR)
The 64-bit BEAR} contains the address of the last instruction the broke the sequential execution of instructions; an interrupt stores the BEAR in the doubleword at real address 272 (). After an Execute of a branch, the BEAR contains the address of the execute, not that of the branch.
Control registers
The 16 64-bit control registers provide controls over and the status of a CPU, except for information included in the PSW. They are an evolutionary enhancement to the control registers on the earlier
ESA/390 on the
IBM S/390
The IBM System/390 is a discontinued mainframe product family implementing the 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) ...
processors. For details on which fields are dependent on specific features, consult the Principles of Operation.
Because z/Architecture expands the control registers from 32 bits to 64, the bit numbering differs from that in ESA/390.
Floating point Control (FPC) register
The FPC register contains Interrupt Masks (IM), Status Flags (SF), Data Exception Code (DXC), Decimal Rounding Mode (DRM) and Binary Rounding Mode (BRM). An interruption only stores the DXC if the FPC register if the AFP-register (additional floating-point register) control bit, bit 13 of control register 0, is one. Also, while individual bits of the DXC usually have significance, programs should normally treat it as an 8-bit integer rather than querying individual bits.
Floating point registers
Each CPU had 16 64-bit floating point registers; FP0-15 occupy bits 0-63 of VR0-15.
General registers
Each CPU has 16 64-bit general registers, which serve as
accumulators, base registers and
index registers. Instructions designated as ''Grandé'' operate on all 64 bits; some instructions added by the Extended-Immediate Facility operate on any halfword or word in the register; most other instructions do not change or use bits 0-31.
Prefix register
The prefix register is used in translating a real address to an absolute address. In z/Architecture mode, the PSA is 2 pages (8 KiB). Bits 0-32 and 51-63 are always zero. If bits 0-50 of a real address are zero then they are replaced by bits 0-50 of the prefix register; if bits 0-50 of the real address are equal to bits 0-50 of the prefix register then they are replaced with zeros.
Program status word (PSW)
The PSW holds the instruction address and other fields reflecting the status of the program currently running on a CPU. The status of the program is also affected by the contents of the
Control registers
A control register is a processor register which 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 ...
.
Vector registers
Each CPU has 32 128-bit vector registers.{{sfn, z, lo
Vector Registerspp=2-5–2-6 bits 0-63 of VR0-15 are also FPR0-15. A vector register may contain 16 8-bit fields, 8 16-bit fields, 4 32-bit fields, 2 64-bit fields or 1 128-bit field.
Memory
IBM classifies memory in z/Architecture into Main Storage and Expanded Storage.
Main storage is addressed in 8-bit
bytes (
octets), with larger aligned{{efn, Some instructions allow references to unaligned data. groupings:
;Halfword
:Two bytes
:16 bits
;Word
:Four bytes
:32 bits
;Doubleword
:8 bytes
:64 bits
;Quadword
:16 bytes
:128 bits
;Page
:4096 bytes
Although z/Architecture allows real and virtual addresses from 0 to 2
64-1, engineering constraints limit current and planned models to far less.
Expanded storage is address in 4 KiB blocks, with block numbers ranging fom 0 to 2
32.
Addressing
{{stub-section, date=June 2024
Types of main storage addresses
There are three types of main storage addresses in z/Architecture
;Virtual address
:The address as seen by application programs. It is an offset into an address space and is subject to address translation via page and segment tables.
;Real address
:The address after address translation, or the address seen by an OS component running with translation off. It is subject to prefixing.
;Absolute address
:The address after prefixing references to the first two pages{{efn, References to the first page in ESA mode, but that is not available on current models. via the prefix register.
Address encoding
z/Architecture uses the same truncated addressing as ESA, with some additional instruction formats. As with ESA, in AR mode each nonzero base register is associated with a base register specifying the address space. Depending on the instruction, an address may be provided in several different formats.
;R
:The address is contained in a general register
;Relative
:A signed 16-bit halfword offset from the current instruction.
;Relative long
:A signed 32-bit halfword offset from the current instruction.
;RS
:A base register and a 12-bit displacement
;RX
:A base register, an index register, and a 12-bit displacement
;Y
:A base register, an index register, and a 20-bit displacement; colloquially known as "Yonder".
Addressing modes
In addition to the two addressing modes supported by
S/370-XA and
ESA, a/Architecture has an extended addressing mode with 64-bit virtual addresses. The addressing mode is controlled by the EA (bit 31) and BA (bit 32) bits in the PSW. The valid combinations are
* 00 24-bit addressing
* 01 31-bit addressing
* 11 64-bit addressing
Translation modes
z/Architecture supports four virtual ''translation modes'', controlled by{{sfn, z, loc=Figure 3-15. Translation Modes, p
3-41, 3-42} bit 5, the DAT-mode bit, and bits 16-17, the Address-Space Control (AS) bits, of the
PSW.
;Primary-space mode
:All storage references use the translation tables for the primary address space
;Access-register mode
:All storage references use the translation tables designated by the access register associated with the base register.
;Secondary-space mode
:All storage references use the translation tables for the secondary address space
;Home-space mode
:All storage references use the translation tables for the home address space
Operating system support
IBM's
operating systems
z/OS,
z/VSE,
z/TPF
Transaction Processing Facility (TPF) is an IBM real-time operating system for mainframe computers descended from the IBM System/360 family, including zSeries and System z9.
TPF delivers fast, high-volume, high-throughput transaction processing ...
, and
z/VM are versions of
MVS,
VSE,
Transaction Processing Facility (TPF), and
VM that support z/Architecture. Older versions of z/OS, z/VSE, and z/VM continued to support 32-bit systems; z/OS version 1.6 and later, z/VSE Version 4 and later, and
z/VM Version 5 and later require z/Architecture.
Linux also supports z/Architecture with
Linux on IBM Z.
z/Architecture supports running multiple concurrent operating systems and applications even if they use different address sizes. This allows software developers to choose the address size that is most advantageous for their applications and data structures.
On July 7, 2009, IBM on occasion of announcing a new version of one of its operating systems implicitly stated that Architecture Level Set 4 (ALS 4) exists, and is implemented on the System z10 and subsequent machines. The ALS 4 is also specified in LOADxx as ARCHLVL 3, whereas the earlier z900, z800, z990, z890, System z9 specified ARCHLVL 2. Earlier announcements of System z10 simply specified that it implements z/Architecture with some additions: 50+ new machine instructions, 1 MB page frames, and hardware decimal floating point unit (HDFU).
[{{Cite web , url=http://publibfp.boulder.ibm.com/epubs/pdf/dz9zr010.pdf , title=z/Architecture Principles of Operation , access-date=2016-01-15 , archive-date=2020-11-30 , archive-url=https://web.archive.org/web/20201130225514/http://publibfp.boulder.ibm.com/epubs/pdf/dz9zr010.pdf , url-status=live ]
Most{{citation needed, date=September 2017
operating systems for the z/Architecture, including
z/OS, generally restrict code execution to the first 2 GB (31 address bits, or 2
31 addressable bytes) of each
virtual address space for reasons of efficiency and compatibility rather than because of architectural limits. Linux on IBM Z allows code to execute within 64-bit address ranges.
z/OS
Each z/OS
address space
In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.
For software programs to save and retrieve st ...
, called a 64-bit address space, is 16
exabytes in size.
Code (or mixed) spaces
The z/OS implementation of the
Java programming language is an exception. The z/OS
virtual memory implementation supports multiple 2 GB address spaces, permitting more than 2 GB of concurrently resident program code.
Data-only spaces
Data-only spaces are memory regions that can be read from and written to, but not used as executable code. (Similar to the
NX bit on other modern processors.)
By default, the z/Architecture memory space is indexed by 64-bit pointers, allowing up to 16 exabytes of memory to be visible to an executing program.
={{anchorDataspaces and hiperspaces
=
Applications that need more than a 16
exabyte data address space can employ extended
addressability techniques, using additional address spaces or data-only spaces. The data-only spaces that are available for user programs are called:
* dataspaces (sometimes referred to as "data spaces")
[{{cite book
, last1 = Hoskins
, first1 = Jim
, last2 = Frank
, first2 = Bob
, title = Exploring IBM Eserver Zseries and S/390 Servers
, year = 2002
, publisher = Maximum Press
, isbn = 1885068913
, url = https://books.google.com/books?id=NtHhpIjIFMEC&pg=PA26
, page = 26
, quote = VM Data Spaces architecture is standard on all System/390 processors.
, access-date = 2017-10-19
, archive-date = 2021-04-27
, archive-url = https://web.archive.org/web/20210427054109/https://books.google.com/books?id=NtHhpIjIFMEC&pg=PA26
, url-status = live
] and
* hiperspaces (High performance space).
These spaces are similar in that both are areas of virtual storage that a program can create, and can be up to 2
gigabyte
The gigabyte () is a multiple of the unit byte for digital information. The prefix ''giga'' means 109 in the International System of Units (SI). Therefore, one gigabyte is one billion bytes. The unit symbol for the gigabyte is GB.
This defini ...
s. Unlike an address space, a dataspace or hiperspace contains only user data; it does not contain system control blocks or common areas. Program code cannot run in a dataspace or a hiperspace.
A dataspace differs from a hiperspace in that dataspaces are byte-addressable, whereas hiperspaces are page-addressable.
IBM mainframe expanded storage
Traditionally
IBM Mainframe memory has been
byte-addressable
Byte addressing in hardware architectures supports accessing individual bytes. Computers with byte addressing are sometimes called ''byte machines,'' in contrast to ''word-addressable'' architectures, ''word machines'', that access data by word. ...
. This kind of memory is termed "Central Storage". IBM Mainframe processors through much of the 1980s and 1990s supported another kind of memory: Expanded Storage. It was first introduced with the
IBM 3090 high-end mainframe series in 1985.
Expanded Storage is 4KB-page addressable. When an application wants to access data in Expanded Storage it must first be moved into Central Storage. Similarly, data movement from Central Storage to Expanded Storage is done in multiples of 4KB pages. Initially page movement was performed using relatively expensive instructions, by paging subsystem code.
The overhead of moving single and groups of pages between Central and Expanded Storage was reduced with the introduction
of the
MVPG (Move Page) instruction and the
ADMF (Asynchronous Data Mover Facility) capability.
The MVPG instruction and ADMF are explicitly invoked—generally by middleware in
z/OS or
z/VM (and ACP?)—to access data in expanded storage. Some uses are namely:
* MVPG is used by
VSAM Local Shared Resources (LSR) buffer pool management to access buffers in a hiperspace in Expanded Storage.
* Both MVPG and ADMF are used by
IBM Db2
Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON a ...
to access hiperpools. Hiperpools are portions of a buffer pool located in a hiperspace.
* VM Minidisk Caching.
Until the mid-1990s Central and Expanded Storage were physically different areas of memory on the processor. Since the mid-1990s Central and Expanded Storage were merely assignment choices for the underlying processor memory.
These choices were made based on specific expected uses:
For example, Expanded Storage is required for the Hiperbatch function (which uses the MVPG instruction to access its hiperspaces).
In addition to the hiperspace and paging cases mentioned above there are other uses of expanded storage, including:
* Virtual I/O (VIO) to Expanded Storage which stored temporary data sets in simulated devices in Expanded Storage. (This function has been replaced by VIO in Central Storage.)
* VM Minidisk Caching.
z/OS removed the support for Expanded Storage. All memory in z/OS is now Central Storage.
z/VM 6.4 fulfills Statement of Direction to drop support for all use of Expanded Storage.
MVPG and ADMF
MVPG
IBM described MVPG as "moves a single page and the central processor cannot execute any other instructions until the page move is completed."
The MVPG mainframe instruction (MoVe PaGe, opcode X'B254') has been compared to the MVCL (MoVe Character Long) instruction, both of which can move more than 256 bytes within main memory using a single instruction. These instructions do not comply with definitions for
atomicity, although they can be used as a single instruction within documented timing and non-overlap restrictions.{{rp, Note 8, page 7–27
The need to move more than 256 bytes within main memory had historically been addressed with software (MVC loops), MVCL, which was introduced with the 1970 announcement of the
System/370, and MVPG, patented and announced by IBM in 1989, each have advantages.
ADMF
ADMF (Asynchronous Data Mover Facility), which was introduced in 1992, goes beyond the capabilities of the MVPG (Move Page) instruction, which is limited to a single page, and can move groups of pages between Central and Expanded Storage.
A
macro instruction named IOSADMF, which has been described as an
API that avoids "direct, low-level use of ADMF", can be used to read{{efn, AREAD - transfer data from a hiperspace to the program's primary address space. or write data to or from a hiperspace. Hiperspaces are created using DSPSERV CREATE.
To provide
reentrancy, IOSADMF is used together with a "List form" and "Execute form."
Non-IBM implementations
Platform Solutions Inc. (PSI) previously marketed
Itanium-based servers which were compatible with z/Architecture. IBM bought PSI in July 2008, and the PSI systems are no longer available.
[{{cite press release , title=IBM Acquires Platform Solutions , publisher=IBM , date=2008-07-02 , url=http://www-03.ibm.com/press/us/en/pressrelease/24560.wss , access-date=2008-09-06 , archive-date=2008-09-05 , archive-url=https://web.archive.org/web/20080905095542/http://www-03.ibm.com/press/us/en/pressrelease/24560.wss , url-status=live ] FLEX-ES,
zPDT and the
Hercules emulator also implement z/Architecture.
Hitachi
() is a Japanese multinational corporation, multinational Conglomerate (company), conglomerate corporation headquartered in Chiyoda, Tokyo, Japan. It is the parent company of the Hitachi Group (''Hitachi Gurūpu'') and had formed part of the Ni ...
mainframes running newer releases of the
VOS3 operating system implement ESA/390 plus Hitachi-unique CPU instructions, including a few 64-bit instructions. While Hitachi formally collaborated with IBM on the z900-G2/z800 CPUs introduced in 2002, Hitachi's machines are not z/Architecture-compatible.
Notes
{{Notelist
References
;z
:{{cite book
, title = z/Architecture Principles of Operation
, id = SA22-7832-13
, date = May 2022
, edition = Fourteenth
, ref = {{sfnref, z
, url = https://www.vm.ibm.com/library/other/22783213.pdf
, publisher =
IBM
, access-date = June 28, 2024
{{Reflist
Further reading
Preshing on Programming - Atomic vs. Non-Atomic OperationsPrinciples of Computer Design - Atomicity
{{CPU technologies
{{DEFAULTSORT:Z Architecture
IBM mainframe technology
Instruction set architectures
Computer-related introductions in 2000
mainframe expanded storage
64-bit computers