US5381528A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Demand allocation of read/write buffer partitions favoring sequential read cache
Assignee: Maxtor Corp
•
Filing: 1992-10-15
•
Granted: 1995-01-10
•
Expires: 2012-10-15
Abstract
Abstract A method and apparatus is disclosed for partitioning a data buffer to create separate read and write buffers, wherein the boundaries between the buffers and the sizes of the buffers change dynamically depending upon the command mix received from the host computer. Data buffer space is allocated to provide highest priority to processing the current host command, and next priority to preserving a read ahead cache.
Inventors
- 👤 Philip E. Brunelle
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 00:53
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/06; G06F3/0601; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0866; G06F2212/00; G06F2212/31; G06F2212/312; G06F3/0628; G06F3/0655; G06F3/0656
Claims Analysis
Total Claims: 16
Claim 1
Independent Claim
274 words
A method for transferring data between a host computer and storage media of a storage device, comprising the steps of: (a) receiving a command from the host computer, the command comprising a read or write transaction and a data length; (b) if the command is a read transaction, then allocating a read buffer in a forward direction in a circular data buffer starting at a read location in the circular data buffer determined by a host pointer into the circular data buffer, and transferring a read data block from the storage media through the read buffer to the host computer, the read buffer having a length equal to the data length; allocating read ahead cache in the circular data buffer in the forward direction; initiating a read ahead operation to transfer a plurality of sequential read data blocks from the storage media to the read ahead cache; (c) if the command is a write transaction, then allocating a write buffer in a reverse circular direction in the circular data buffer starting at a write location in the circular data buffer determined by subtracting the data length from the host pointer into the circular data buffer, and transferring a write data block from the host computer through the write buffer to the storage media, the write buffer having a length equal to the data length; (d) receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; terminating the read ahead operation if the next command is not the read transaction targeted for a read data block stored in the read ahead cache.
Claim 2
Independent Claim
274 words
A method for transferring data between a host computer and storage media of a storage device, comprising the steps of: (a) receiving a command from the host computer, the command comprising a read or write transaction and a data length; (b) if the command is a read transaction, then allocating a read buffer in a forward direction in a circular data buffer starting at a read location in the circular data buffer determined by a host pointer into the circular data buffer, and transferring a read data block from the storage media through the read buffer to the host computer, the read buffer having a length equal to the data length; allocating read ahead cache in the circular data buffer in the forward direction; initiating a read ahead operation to transfer a plurality of sequential read data blocks from the storage media to the read ahead cache; (c) if the command is a write transaction, then allocating a write buffer in a reverse circular direction in the circular data buffer starting at a write location in the circular data buffer determined by subtracting the data length from the host pointer into the circular data buffer, and transferring a write data block from the host computer through the write buffer to the storage media, the write buffer having a length equal to the data length; (d) receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; terminating the read ahead operation if the next command is not the read transaction targeted for a read data block stored in the read ahead cache.
Claim 3
Dependent Claim
44 words
The method of claim 1, wherein step (b) further comprises the steps of: (a) allocating a next read buffer in the circular data buffer in the forward direction; (b) transferring a sequential read data block from the storage media to the next read buffer.
Claim 4
Dependent Claim
74 words
The method of claim 1, wherein step (b) further comprises the steps of: (a) allocating a next read buffer in the circular data buffer in the forward direction; (b) transferring a sequential read data block from the storage media to the next read buffer; (c) receiving a next command from the host computer, and repeating steps (a) through (b) if the next command is a read transaction targeted for the sequential read data block.
Claim 5
Dependent Claim
22 words
The method of claim 1, wherein the storage device is a disk drive comprising read/write heads and at least one disk platter.
Claim 6
Dependent Claim
52 words
The method of claim 4, further comprising the steps of: receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; terminating the read ahead operation if the next command requires repositioning of the read/write heads over the disk platter.
Claim 7
Dependent Claim
46 words
The method of claim 1, further comprising the step of transferring a next read data block from the read ahead cache, to the host computer if the next command is the read transaction targeted for the next read data block stored in the read ahead cache.
Claim 8
Dependent Claim
136 words
The method of claim 6, further comprising the steps of: if the next command is the read transaction not targeted for the next read data block stored in the read ahead cache, then allocating a next read buffer in the forward direction in a circular data buffer, and transferring the next read data block from the storage media through the next read buffer to the host computer, the next read buffer having a length equal to the next data length; if the command is the write transaction, then allocating a next write buffer in the reverse circular direction in the circular data buffer, and transferring a next write data block from the host computer through the next write buffer to the storage media, the next write buffer having a length equal to the next data length.
Claim 9
Independent Claim
281 words
An apparatus for transferring data between a host computer and a storage media of a storage device, comprising: means for receiving a command from the host computer, the command comprising a read or a write transaction and a data length; means for allocating a read buffer in a forward direction in a circular data buffer starting at a read location in the circular data buffer determined by a host pointer into the circular data buffer if the command is a read transaction, and transferring a read data block from the storage media through the read buffer to the host computer, the read buffer having a length equal to the data length; means for allocating a read ahead cache in the circular data buffer in the forward direction; means for initiating a read ahead operation to transfer a plurality of sequential read data blocks from the storage media to the read ahead cache; means for allocating a write buffer in a reverse circular direction in the circular data buffer starting at a write location in the circular data buffer determined by subtracting the data length from the host pointer into the circular buffer if the command is a write transaction, and transferring a write data block from the host computer through the write buffer to the storage media, the write buffer having a length equal to the data length; means for receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; means for terminating the read ahead operation if the next command is not the read transaction targeted for a read data block stored in the read ahead cache.
Claim 10
Independent Claim
281 words
An apparatus for transferring data between a host computer and a storage media of a storage device, comprising: means for receiving a command from the host computer, the command comprising a read or a write transaction and a data length; means for allocating a read buffer in a forward direction in a circular data buffer starting at a read location in the circular data buffer determined by a host pointer into the circular data buffer if the command is a read transaction, and transferring a read data block from the storage media through the read buffer to the host computer, the read buffer having a length equal to the data length; means for allocating a read ahead cache in the circular data buffer in the forward direction; means for initiating a read ahead operation to transfer a plurality of sequential read data blocks from the storage media to the read ahead cache; means for allocating a write buffer in a reverse circular direction in the circular data buffer starting at a write location in the circular data buffer determined by subtracting the data length from the host pointer into the circular buffer if the command is a write transaction, and transferring a write data block from the host computer through the write buffer to the storage media, the write buffer having a length equal to the data length; means for receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; means for terminating the read ahead operation if the next command is not the read transaction targeted for a read data block stored in the read ahead cache.
Claim 11
Dependent Claim
57 words
The apparatus of claim 8, wherein the means for allocating a read buffer in a forward direction in a circular data buffer further comprises: means for allocating a next read buffer in the circular data buffer in the forward direction; means for transferring a sequential read data block from the storage media to the next read buffer.
Claim 12
Dependent Claim
57 words
The apparatus of claim 8, wherein the means for allocating a read buffer in a forward direction in a circular data buffer further comprises: means for allocating a next read buffer in the circular data buffer in the forward direction; means for transferring a sequential read data block from the storage media to the next read buffer.
Claim 13
Dependent Claim
22 words
The apparatus of claim 8, wherein the storage device is a disk drive comprising read/write heads and at least one disk platter.
Claim 14
Dependent Claim
53 words
The apparatus of claim 11, further comprising: means for receiving a next command from the host computer, the next command comprising the read or the write transaction and a next data length; means for terminating the read ahead operation if the next command requires repositioning of the read/write heads over the disk platter.
Claim 15
Dependent Claim
45 words
The apparatus of claim 8, further comprising means for transferring a next read data block from the read ahead cache to the host computer if the next command is the read transaction targeted for the next read data block stored in the read ahead cache.
Claim 16
Dependent Claim
135 words
The apparatus of claim 13, further comprising: means for allocating a next read buffer in the forward direction in a circular data buffer if the next command is the read transaction not targeted for the next read data block stored in the read ahead cache, and transferring the next read data block from the storage media through the next read buffer to the host computer, the next read buffer having a length equal to the next data length; means for allocating a next write buffer in the reverse circular direction in the circular data buffer if the command is the write transaction, and transferring a next write data block from the host computer through the next write buffer to the storage media, the next write buffer having a length equal to the next data length.
References Cited (Backward Citations)
US3924245A
Cited
US4169289A
Cited
US4592019A
Cited
US4866671A
Cited
US4825098A
Cited
US5121480A
Cited
US5003471A
Cited
US5034916A
Cited
US5056010A
Cited
US5042007A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-01-09 | 1998-07-11 | 1999-01-10 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-01-09 | 2002-07-11 | 2003-01-10 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-01-09 | 2006-07-11 | 2007-01-10 | $7700.00 | Window Closed / Lapsed |