Patent EP0724863A2 successfully refreshed from Google Patents.
← Back to Patent Explorer
EP0493984A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

Storage device array architecture with copyback cache

Assignee: EMC Corp
•
Filing: 1991-12-31
•
Granted: —
•
Expires: 2011-12-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A fault-tolerant storage device array using a copyback cache storage unit for temporary storage. When a Write occurs to the RAID system, the data is immediately written to the first available location in the copyback cache storage unit. Upon completion of the Write to the copyback cache storage unit, the host CPU is immediately informed that the Write was successful. Thereafter, further storage unit accesses by the CPU can continue without waiting for an error-correction block update for the data just written. In a first embodiment of the invention, during idle time for relevant storage units of the storage system, an error-correction block is computed for each "pending" data block on the copyback cache storage unit, and the data block and corresponding error-correction block are copied to their proper location in the RAID system. The copyback cache storage unit in effect stores "peak load" Write data and then completes the actual Write operations to the RAID system during relatively quiescent periods of I/O accesses by the CPU. In a second embodiment of the invention, after Write data is logged to the copyback cache storage unit, normal Read-Modify-Write operation by the RAID system controller continues in overlapped fashion with other CPU I/O accesses using Write data in the controller's buffer memory. Performance is enhanced because the CPU can continue processing as soon as the simple Write operation to the copyback cache storage unit completes, thus eliminating the delay caused by a normal Read-Modify-Write RAID system. In this embodiment, the copyback cache storage unit acts more as a running "log" of Write data.

Inventors

  • 👤 William Alexander Brant
  • 👤 Mark Walker
  • 👤 David Charles Stallmo
  • 👤 Albert Lui

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-10-27 07:15
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/16; G06F11/1666; G06F11/08; G06F11/10; G06F11/1076; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1435; G06F11/20; G06F11/2053; G06F11/2056; G06F11/2087; G06F11/2094; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0804; G11; G11B; G11B20/00; G11B20/10; G11B20/18; G11B20/1833; G06F11/1441; G06F11/2089; G06F12/0866; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1019; G06F2211/1059

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 192 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information in the form of stripes of blocks, the types of blocks including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks; c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, including control means for: (1) writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; (2) during idle time of at least some of the plurality of storage units: (a) reading at least one pending data block from at least one copyback cache storage unit; (b) generating an associated error-correction block for each pending data block; (c) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; (3) reading requested data blocks from at least one copyback cache storage unit when such requested data blocks have not been written to the plurality of storage units, otherwise from the plurality of storage units.
Claim 2
Dependent Claim 30 words
The storage device array of claim 1, wherein the control means substantially immediately acknowledges the completion of writing a received record to the at least one copyback cache storage unit.
Claim 3
Dependent Claim 61 words
The storage device array of claim 1, wherein the control means function of generating an associated error-correction block for each pending data block further includes generating a new error-correction block a a function of at least the pending data block, and a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the idle storage units.
Claim 4
Dependent Claim 73 words
The storage device array of claim 3, wherein the control means function of generating a new error-correction block further includes: a. reading a corresponding old data block from the corresponding stripe of the idle storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the idle storage units; c. exclusively-OR'ing the old data block, the old error-correction block, and the pending data block, thereby generating a new error-correction block.
Claim 5
Independent Claim 178 words
A method for storing data in a fault-tolerant storage device array comprising a plurality of failure independent storage units for storing information in the form of stripes of blocks, the types of blocks including at least data blocks and associated error-correction blocks, including the steps of: a. providing at least one copyback cache storage unit for temporarily storing data blocks; b. writing received data blocks initially onto the at least one copyback cache storage unit as pending data blocks; c. during idle time of at least some of the plurality of storage units: (1) reading at least one pending data block from at least one copyback cache storage unit; (2) generating an associated error-correction block for each such read pending data block; (3) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; d. reading requested data blocks from at least one copyback cache storage unit when such requested data blocks have not been written to the plurality of storage units, otherwise from the plurality of storage units.
Claim 6
Dependent Claim 29 words
The method of claim 5, further including the step of substantially immediately acknowledging the completion of writing a received record to the at least one copyback cache storage unit.
Claim 7
Dependent Claim 60 words
The method of claim 5, wherein the step of generating an associated error-correction block for each pending data block comprises the steps of: a. generating a new error-correction block as a function of at least the pending data block, and a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the idle storage units.
Claim 8
Dependent Claim 71 words
The method of claim 7, wherein the step of generating a new error-correction block comprises the steps of: a. reading a corresponding old data block from the corresponding stripe of the idle storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the idle storage units; c. exclusively-OR'ing the old data block, the old error-correction block, and the pending data block, thereby generating a new error-correction block.
Claim 9
Dependent Claim 199 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information in the form of stripes of blocks, the types of blocks including at least data blocks and associated error-correction blocks; b. at least one copyback cache storage unit for temporarily storing data blocks; c. a storage unit controller, coupled to the plurality of storage units and to the at least one copyback cache storage unit, having a buffer memory and including control means for: (1) writing received data blocks initially onto the at least one copyback cache storage unit; (2) temporarily storing received data blocks in the buffer memory a pending data blocks; (3) during idle time of at least some of the plurality of storage units: (a) accessing at least one pending data block from the buffer memory; (b) generating an associated error-correction block for each pending data block; (c) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; (4) reading requested data blocks from the buffer memory when such requested data blocks have not been written to the plurality of storage units, otherwise from the plurality of storage units.
Claim 10
Dependent Claim 30 words
The storage device array of claim 9, wherein the control means substantially immediately acknowledges the completion of writing a received record to the at least one copyback cache storage unit.
Claim 11
Dependent Claim 61 words
The storage device array of claim 9, wherein the control means function of generating an associated error-correction block for each pending data block further includes generating a new error-correction block as a function of at least the pending data block, and a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the idle storage units.
Claim 12
Dependent Claim 73 words
The storage device array of claim 11, wherein the control means function of generating a new error-correction block further includes: a. reading a corresponding old data block from the corresponding stripe of the idle storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the idle storage units; c. exclusively-OR'ing the old data block, the old error-correction block, and the pending data block, thereby generating a new error-correction block.
Claim 13
Dependent Claim 60 words
The storage device array of claim 9, further including means for reading selected data blocks from the at least one copyback cache storage unit and writing such selected data blocks to the plurality of storage units upon a failure of the storage unit controller to write all corresponding data blocks from the buffer memory to the plurality of storage units.
Claim 14
Independent Claim 184 words
A method for storing data in a fault-tolerant storage device array comprising a plurality of failure independent storage units for storing information in the form of stripes of blocks, the types of blocks including at least data blocks and associated error-correction blocks, including the steps of: a. providing a buffer memory and at least one copyback cache storage unit for temporarily storing data blocks; b. writing received data blocks initially onto the at least one copyback cache storage unit; c. temporarily storing received data blocks in the buffer memory as pending data blocks; d. during idle time of at least some of the plurality of storage units: (1) accessing at least one pending data block from the buffer memory; (2) generating an associated error-correction block for each such read pending data block; (3) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; e. reading requested data blocks from the buffer memory when such requested data blocks have not been written to the plurality of storage units, otherwise from the plurality of storage units.
Claim 15
Dependent Claim 29 words
The method of claim 14, further including the step of substantially immediately acknowledging the completion of writing a received record to the at least one copyback cache storage unit.
Claim 16
Dependent Claim 60 words
The method of claim 14, wherein the step of generating an associated error-correction block for each pending data block comprises the steps of: a generating a new error-correction block a a function of at least the pending data block, and a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the idle storage units.
Claim 17
Dependent Claim 71 words
The method of claim 16, wherein the step of generating a new error-correction block comprises the steps of: a. reading a corresponding old data block from the corresponding stripe of the idle storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the idle storage units; c. exclusively-OR'ing the old data block, the old error-correction block, and the pending data block, thereby generating a new error-correction block.
Claim 18
Dependent Claim 59 words
The method of claim 14, further including the steps of reading selected data blocks from the at least one copyback cache storage unit and writing such selected data blocks to the pluralily of storage units upon a failure of the storage unit controller to write all corresponding data blocks from the buffer memory to the plurality of storage units.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag