Z/Architecture

Last updated
z/Architecture
Designer IBM
Bits64-bit
Introduced2000;24 years ago (2000)
VersionARCHLVL 2 and ARCHLVL 3 (2008)
Design CISC
TypeRegister–Register
Register–Memory
Memory–Memory
Encoding Variable (2, 4 or 6 bytes long)
Branching Condition code, indexing, counting
Endianness Big
Predecessor ESA/390
Registers
General-purpose 16× 64-bit
Floating point 16× 64-bit
Vector 32× 128-bit

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. [1] 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.

Contents

z/Architecture retains backward compatibility with previous 32-bit-data/31-bit-addressing architecture ESA/390 and its predecessors all the way back to the 32-bit-data/24-bit-addressing System/360. The IBM z13 is the last z Systems server to support running an operating system in ESA/390 architecture mode. [2] 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.

Operating system support

IBM's operating systems z/OS, z/VSE, z/TPF, 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. [3] [4] 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). [5] [6]

Most[ citation needed ] operating systems for the z/Architecture, including z/OS, generally restrict code execution to the first 2 GB (31 address bits, or 231 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, 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.

Dataspaces 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") [7] [8] and
  • hiperspaces (High performance space). [9] [10]

These spaces are similar in that both are areas of virtual storage that a program can create, and can be up to 2  gigabytes. 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. [11]

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. 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. [12]

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:

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:

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." [13]

The MVPG mainframe instruction [14] (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. [15] :Note 8,page 7–27 [16]

The need to move more than 256 bytes within main memory had historically been addressed with software [17] (MVC loops), MVCL, [18] which was introduced with the 1970 announcement of the System/370, and MVPG, patented [19] and announced by IBM in 1989, each have advantages. [20]

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, [21] 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", [22] can be used to read [NB 1] or write data to or from a hiperspace. [23] Hiperspaces are created using DSPSERV CREATE.

To provide reentrancy, IOSADMF is used together with a "List form" and "Execute form." [24]

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. [25] FLEX-ES, zPDT and the Hercules emulator also implement z/Architecture. Hitachi 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

  1. AREAD - transfer data from a hiperspace to the program's primary address space.

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/360</span> IBM mainframe computer family (1964–1977)

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 applications and a complete range of applications from small to large. The design distinguished between architecture and implementation, allowing IBM to release a suite of compatible designs at different prices. All but the only partially compatible Model 44 and the most expensive systems use microcode to implement the instruction set, featuring 8-bit byte addressing and binary, decimal and hexadecimal floating-point calculations.

<span class="mw-page-title-main">VSE (operating system)</span>

VSEn is an operating system for IBM mainframe computers, the latest one in the DOS/360 lineage, which originated in 1965. It is less common than z/OS and is mostly used on smaller machines.

z/OS 64-bit operating system for IBM mainframes

z/OS is a 64-bit operating system for IBM z/Architecture mainframes, introduced by IBM in October 2000. It derives from and is the successor to OS/390, which in turn was preceded by a string of MVS versions. Like OS/390, z/OS combines a number of formerly separate, related products, some of which are still optional. z/OS has the attributes of modern operating systems but also retains much of the older functionality originated in the 1960s and still in regular use—z/OS is designed for backward compatibility.

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

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 for customers; this, plus improved performance, were the dominant themes of the product announcement. In September 1990, the System/370 line was replaced with the System/390.

<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.

<span class="mw-page-title-main">Amdahl Corporation</span> American mainframe computer manufacturer

Amdahl Corporation was an information technology company which specialized in IBM mainframe-compatible computer products, some of which were regarded as supercomputers competing with those from Cray Research. Founded in 1970 by Gene Amdahl, a former IBM computer engineer best known as chief architect of System/360, it has been a wholly owned subsidiary of Fujitsu since 1997. The company was located in Sunnyvale, California.

Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first delivered in June 1966. In its time, DOS/360 was the most widely used operating system in the world.

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.

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

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 that NASA ever used.

In computing, channel I/O is a high-performance input/output (I/O) architecture that is implemented in various forms on a number of computer architectures, especially on mainframe computers. In the past, channels were generally implemented with custom devices, variously named channel, I/O processor, I/O controller, I/O synchronizer, or DMA controller.

IBM S/390 Multiprise was a short-lived series of small, compact, entry-level mainframes.

Since the rise of the personal computer in the 1980s, IBM and other vendors have created PC-based IBM-compatible mainframes 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.

IBM Z Family name used by IBM for its z/Architecture mainframe computers

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 model, the IBM z16, as well as the z15, the z14, and the z13, the IBM zEnterprise models, the IBM System z10 models, the IBM System z9 models and IBM eServer zSeries models.

The IBM Basic assembly language and successors is a series of assembly languages and assemblers made for the IBM System/360 mainframe system and its successors through the IBM Z.

<span class="mw-page-title-main">IBM System/360 Model 67</span> 1967 IBM mainframe model with virtual memory and 32-bit addressing

The IBM System/360 Model 67 (S/360-67) was an important IBM mainframe model in the late 1960s. Unlike the rest of the S/360 series, it included features to facilitate time-sharing applications, notably a Dynamic Address Translation unit, the "DAT box", to support virtual memory, 32-bit addressing and the 2846 Channel Controller to allow sharing channels between processors. The S/360-67 was otherwise compatible with the rest of the S/360 series.

The history of IBM mainframe operating systems is significant within the history of mainframe operating systems, because of IBM's long-standing position as the world's largest hardware supplier of mainframe computers. IBM mainframes run operating systems supplied by IBM and by third parties.

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

IBM System z10 is a line of IBM mainframes. The z10 Enterprise Class (EC) was announced on February 26, 2008. On October 21, 2008, IBM announced the z10 Business Class (BC), a scaled-down version of the z10 EC. The System z10 represents the first model family powered by the z10 quad core processing engine. Its successors are the zEnterprise System models introduced in 2010 and 2012.

References

  1. Development and Attributes of z/Architecture Archived 2013-12-12 at the Wayback Machine , IBM Journal of Research and Development, 2002.
  2. "Accommodate functions for the z13 server to be discontinued on future servers". IBM . 25 June 2015. Archived from the original on 2017-09-15. Retrieved 2017-09-18.
  3. Preview: IBM z/VM V6.1 - Foundation for future virtualization growth Archived 2021-10-28 at the Wayback Machine , IBM United States Software Announcement 209-207, dated July 7, 2009
  4. ALS 1 was 9672 G2; ALS 2 was 9672 G5; ALS 3 was the original z/Architecture: "IBM CMOS Processor Table". 18 November 2008. Archived from the original on 10 December 2013. Retrieved 18 October 2012.
  5. "IBM System z10 Business Class (z10 BC) Reference Guide" (PDF). 2008. Archived (PDF) from the original on 2011-03-04. Retrieved 2012-10-18.
  6. "z/Architecture Principles of Operation" (PDF). Archived (PDF) from the original on 2020-11-30. Retrieved 2016-01-15.
  7. Hoskins, Jim; Frank, Bob (2002). Exploring IBM Eserver Zseries and S/390 Servers. Maximum Press. p. 26. ISBN   1885068913. Archived from the original on 2021-04-27. Retrieved 2017-10-19. VM Data Spaces architecture is standard on all System/390 processors.
  8. "CA Defends VSE Policy". InformationWeek. October 21, 1991. p. 15. Computer Associates International is now providing data space technology to VSE/ESA or System/370 users.
  9. "Analyzing data in memory". IBM.
  10. Hemanth Nandas (October 15, 2007). "What is hiperspace? Which was the first OS to support hiperspace?". Newsgroup:  ibmmainframes.com. Archived from the original on February 2, 2017. Retrieved January 25, 2017. HIGH PERFORMANCE SPACE or "High Performance Dataspace" (author Anuj Dhawan, same date)
  11. "CheatSheet #54 zTidBits z/OS Extended Addressing" (PDF). Retrieved 2022-07-17.
  12. Sakaki, M.; Samukawa, H.; Honjou, N. (1988). "Effective utilization of IBM 3090 large virtual storage in the numerically intensive computations of ab initio molecular orbitals". IBM Systems Journal. 27 (4): 528–540. doi:10.1147/sj.274.0528. ISSN   0018-8670.
  13. US 5442802 Asynchronous co-processor data mover method and means
  14. "HLASM - MVPG = MoVe PaGe". Archived from the original on 2013-10-06. Retrieved 2017-01-24.
  15. MOVE LONG, note 8. "GA22-7000-10, IBM System/370, Principles of Operation" (PDF). Archived (PDF) from the original on 2021-04-11. Retrieved 2021-10-11.
  16. "things are done immediately, and there is no chance of the instruction being half-completed or of another being interspersed. Used especially to convey that an operation cannot be interrupted." "Atomic from FOLDOC".
  17. "$MVCL – Move more than 256 bytes of storage". IBM . 20 September 2014. Archived from the original on 2 February 2017. Retrieved 24 January 2017.
  18. "Move Long". Archived from the original on 2017-04-27. Retrieved 2017-01-24.
  19. US 5237668 Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
  20. "MVPG faster than MVCL for aligned pages?". IBM-MAIN (Mailing list). Archived from the original on 2011-01-22. Retrieved 2017-01-24.
  21. IBM's patent EP0549924A1 describes MVPG as "moves a single page."
  22. Celestini, Art (Aug 20, 1997). "admf". IBM-MAIN (Mailing list). Archived from the original on 2011-01-22. Retrieved 2017-01-24 via Google Groups.
  23. z/OS MVS Programming: Extended Addressability Guide - SA23-1394-00
  24. "IOSADMF — Transfer hiperspace data". IBM . 7 February 2015. Archived from the original on 2 February 2017. Retrieved 24 January 2017.
  25. "IBM Acquires Platform Solutions" (Press release). IBM. 2008-07-02. Archived from the original on 2008-09-05. Retrieved 2008-09-06.

Further reading