Browse Prior Art Database

Improving Performance of Buffered DASD to which some References are Sequential

IP.com Disclosure Number: IPCOM000053021D
Original Publication Date: 1981-Aug-01
Included in the Prior Art Database: 2005-Feb-12
Document File: 2 page(s) / 15K

Publishing Venue

IBM

Related People

Bennett, BT: AUTHOR [+2]

Abstract

A buffered DASD (direct-access storage device) subsystem consists of direct-access storage devices, a controller, and a buffer memory. The buffer is managed by the controller, and used to store data in transit between the devices and a CPU. Typically, the buffer is managed by a least recently used (LRU) algorithm at the track level.

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

Page 1 of 2

Improving Performance of Buffered DASD to which some References are Sequential

A buffered DASD (direct-access storage device) subsystem consists of direct-access storage devices, a controller, and a buffer memory. The buffer is managed by the controller, and used to store data in transit between the devices and a CPU. Typically, the buffer is managed by a least recently used (LRU) algorithm at the track level.

In many instances, a significant fraction of the references to a buffered DASD subsystem are sequential: that is. a set of tracks are referenced in sequence. The present article describes a buffered management scheme that takes advantage of this sequentially to improve performance of the subsystem. The improvement consists of reducing the size of the buffer necessary to achieve a given buffer miss ratio, or, equivalently, decreasing the miss ratio achievable with a buffer of a given size.

Improved performance is achieved by detecting an ongoing stream of sequential record references to devices managed by the subsystem. When such a stream is detected, action proceeds as follows. (The specified actions are applied in addition to the underlying memory management scheme for the buffer.) 1. When a record near the end of the currently accessed track (track T) is transferred between the buffer and the CPU, the next track (track T+1) is prefetched from the device into the buffer (if it is not already in the buffer). (Nearness to end of current track is determined as outlined below.) 2. When a record near the end of the currently accessed track (track T) has already been transferred between the buffer and the CPU, and the first record on the next track (track T+1) is then referenced by the CPU, the buffer slot holding the preceding track (track T) is made available for re-use.

The foregoing applies to both input and output records if the buffer is non- volatile; it applies only to input records if the buffer is volatile. (``Input'' and ``output'' are from the viewpoint of the CPU.)

In order to perform the steps outlined above, the controller needs a way to detect both sequentiality and nearness of a record to the end of its track. The method is as follows: 1. For each device it manages, the controller maintains a table. The table contains N rows, where N is some previously determined integer. Each row maintains knowledge of a stream of sequential record references, or of a stream of record references whose sequentiality has not yet been determined. Each row contains several fields. (The table also contains pointers used to maintain the rows in LRU sequence.) The fields in a given row are the following. . Address - address of most recently referenced record for row. . Record size - length of physical records on current track for row (or maximum length of records seen on current track, in case of variable length records). . Count - number of records previously referenced for row. (In fact, this counter need only be large enough to hold...