Browse Prior Art Database

Variable Block Paging for Virtual Memory

IP.com Disclosure Number: IPCOM000043650D
Original Publication Date: 1984-Sep-01
Included in the Prior Art Database: 2005-Feb-05
Document File: 3 page(s) / 48K

Publishing Venue

IBM

Related People

Kriz, TA: AUTHOR

Abstract

Existing virtual memory (VM) paging systems typically employ a fixed page size which is selected as a compromise to accommodate a wide variety of conditions involving: 1. Data processing (DP) system real random-access memory (RAM) size, 2. Data type (executable program routines - structured or unstructured, user data, etc.), 3. Data file structure and block size (physical sequential, indexed, etc.), and 4. Secondary storage device characteristics (disk track and sector size, head positioning speed, etc.). The selection of this single fixed page size, however, can have a detrimental impact on page fault rate as well as effective real memory size.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 49% of the total text.

Page 1 of 3

Variable Block Paging for Virtual Memory

Existing virtual memory (VM) paging systems typically employ a fixed page size which is selected as a compromise to accommodate a wide variety of conditions involving: 1. Data processing (DP) system real random-access memory (RAM) size, 2. Data type (executable program routines - structured or unstructured, user data, etc.), 3. Data file structure and block size (physical sequential, indexed, etc.), and 4. Secondary storage device characteristics (disk track and sector size, head positioning speed, etc.). The selection of this single fixed page size, however, can have a detrimental impact on page fault rate as well as effective real memory size. This can be seen by noting that if one chooses to use a 2K-byte page size to access blocks which are strongly connected over a 8K-byte neighborhood, the number of page faults and disk data access operations is increased by a factor of 4. Alternatively, if one chooses to access blocks which are strongly connected over a 256-byte neighborhood using 2K-byte page size, the effective real RAM is decreased by a factor of 8. The magnitude of these potential impacts on page access rate and real memory suggests the need for a variable-block paging approach which can respond intelligently to local affinity characteristics obtained either as a function of experimentally derived process execution information or as data input from a professional user concerning virtual address range correspondence to file structure characteristics in a user program. Assuming the use of a fast RAM address translation table of limited fixed size in such a VM system, one can make the following observations about page size. If the memory space is small, one would generally prefer to bias page size downward to provide effective concurrent usage of real memory by focusing only upon very strong local affinities. For large real memory, a larger page size can be tolerated which exploits local affinities more globally and minimizes fast RAM translation table misses. For indexed file structures, tables and directories, page size should be set as a function of logical block size (frequently small) and hierarchical order. Lastly, in the access of structured program routines or physical sequential files, which frequently have strong affinity over an extended neighborhood, page size should generally be reasonably large. In the fact of these observations, it can be seen that effective accommodation of these various requirements implies the use of hardware structure which can support variability of VM page size and distinguish between 1) program and data accesses and 2) a requirement to modify page size. A companion software facility is needed to dynamically make page size assignments as a function of program routine or data access, real memory size, and data file structure (which can be provided as a user input). The implementation of such a variable block paging system will now be outlined. HA...