Browse Prior Art Database

Partial Paging of Segments

IP.com Disclosure Number: IPCOM000091736D
Original Publication Date: 1968-May-01
Included in the Prior Art Database: 2005-Mar-05
Document File: 3 page(s) / 29K

Publishing Venue

IBM

Related People

Randell, B: AUTHOR

Abstract

The drawing shows a flow chart of accessing a memory system, which combines the advantages of paging techniques and program reference table techniques, for providing program segmentation. A quantum of allocation Q is defined as the accuracy with which segment requests are honored. In other words, a programmer can specify a segment to have a length of N words. This number of rounded-up to the nearest multiple of Q to form N(0), the number of words allocated to the segment. It is assumed that Q is a power of two. Therefore N(Q) - N words are wasted and contribute to loss of storage utilization.

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 53% of the total text.

Page 1 of 3

Partial Paging of Segments

The drawing shows a flow chart of accessing a memory system, which combines the advantages of paging techniques and program reference table techniques, for providing program segmentation. A quantum of allocation Q is defined as the accuracy with which segment requests are honored. In other words, a programmer can specify a segment to have a length of N words. This number of rounded-up to the nearest multiple of Q to form N(0), the number of words allocated to the segment. It is assumed that Q is a power of two. Therefore N(Q) - N words are wasted and contribute to loss of storage utilization.

The page size P is defined as the largest size of block of physically contiguous words of storage that is provided in honoring a request for fetching a segment. P is a power of two and is greater than or equal to Q. Thus a segment of N words is allocated as zero or more blocks of P words plus a block of words N(PO), where N(PO) is the difference between N(Q)and the largest multiple of P which is not greater than N(Q).

The storage allocation system responds to requests for blocks of contiguous storage of various different sizes. The number of different sizes is s = P/Q. Any existing method for maintaining lists of free blocks of storage, and choosing a suitable block can be used. Similarly, various well-known strategies for deciding when a block is to be allocated on demand, before a program starts, etc., and which of several requests are to be honored can be used.

All accesses to storage involve one level of indirection or mapping through a Program Reference Table PRT which contains one entry for each segment. In addition, those accesses to segments which are declared as being larger than P words in extent involve a further level of mapping through a page table. Various ways for reducing the average time taken to perform mapping can be used.

Each entry in PRT has the form shown as designated by reference numeral
10. Field C is a single bit indicating whether the corresponding segment is greater than P words in extent, C=0, or whether it is less than or equal to P words in extent, C=1, and hence is allocated in a contiguous block of storage locations. Field C is not logically necessary, since the information it conveys is also given implicitly in field SE to be described. However, it is convenient to assume the existenc...