IBM mainframe expanded storage
Traditionally IBM Mainframe memory has been byte-accessible. 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.
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. In 1989, however, the MVPG (Move Page) instruction was introduced, decreasing the cost for single page moves. In 1992 the ADMF (Asynchronous Data Mover Facility) was introduced - to reduce the cost of moving groups of pages between Central and Expanded Storage.
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 DB2 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 continues to support Expanded Storage.