Browse Prior Art Database

Adaptive Transfer Unit Size Variation

IP.com Disclosure Number: IPCOM000084720D
Original Publication Date: 1975-Dec-01
Included in the Prior Art Database: 2005-Mar-02
Document File: 3 page(s) / 16K

Publishing Venue

IBM

Related People

Franaszek, PA: AUTHOR

Abstract

Typically, data at each level of a storage hierarchy is partitioned into aggregates, termed pages or blocks, of a particular size. For example, main memory may have pages of 2k bytes, while at a lower level the block size would be n x 2k bytes, with n being perhaps 8 for disk storage. Henceforth, the aggregates associated with main and lower levels of storage will be termed pages and blocks, respectively.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 47% of the total text.

Page 1 of 3

Adaptive Transfer Unit Size Variation

Typically, data at each level of a storage hierarchy is partitioned into aggregates, termed pages or blocks, of a particular size. For example, main memory may have pages of 2k bytes, while at a lower level the block size would be n x 2k bytes, with n being perhaps 8 for disk storage. Henceforth, the aggregates associated with main and lower levels of storage will be termed pages and blocks, respectively.

At various times, data is moved between levels in aggregates termed transfer units. In current systems, a fault causes the missing page to be brought into main memory. Here the transfer unit size between main and auxiliary memory is a page.

In many applications, good programming practice may result in a situation where blocks in secondary storage contain pages that are likely to be used together. Thus it may at times be advantageous to transfer, rather than a page, the entire block (R pages) that contains it. A class of procedures for automatically (adaptively) determining which blocks should be treated in this fashion is described herein.

The description is limited to the case of transfers between main memory and the level directly below it, but may be easily generalized to transfers between any two levels.

Each page in main memory is associated with a particular block (its home address) in secondary storage. Associated with each block B(i) in secondary storage is a field containing transfer information.

This is a number TN(i), termed the transfer number, which determines, at the time of a fault to a page contained in the block, what portion of the block will be copied into main memory. The TN(i) are automatically updated by the system to reflect current patterns of usage.

TN(i) may vary between +/-Q. If TN(i) >/- 0, the entire block B(i) is transferred. Otherwise, only the faulted page is brought into main memory.

This method deals with only two possibilities: (a) a page is transferred, and
(b) the entire block is transferred. Thus if a fault occurs to a page from a block B(i) for which TN(i) >/- 0, all missing pages from this block are brought into main memory. The method may be generalized to include copying into main memory any subset of the pages contained in the block. This may be done, for example, by having TN be a vector. Information Required.

The system tables used for vitual to real address translation are also used for modifying the TN associated with each block. Entries for each page in the table contain parameters used in updating TN. Typically, this would be of the form: block name; displacement; Usage; Time

A page is identified by the name of the block containing it in secondary memory and its displacement within that block. The usage field is a bit which

1

Page 2 of 3

indicates whether that page has been referenced since its entry into main memory. The time field contains a parameter indicating a time value. All pages within a given block which enter main memory in one trans...