Patent US5381528A successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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 04:26
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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag