← Back to Patent Explorer
US5911779A Expired / Lapsed US ⏱️ 0.0 years remaining

Storage device array architecture with copyback cache

Assignee: EMC Corp
•
Filing: 1997-03-31
•
Granted: 1999-06-15
•
Expires: 2017-03-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, Read-Modify-Write operations are performed during idle time. In a second embodiment of the invention, normal Read-Modify-Write operation by the RAID system controller continue use Write data in the controller's buffer memory. In a third embodiment, at least two controllers, each associated with one copyback cache storage unit, copy Write data from controller buffers to the associated copyback cache storage unit. If a copyback cache storage unit fails, more than one controller share a single copyback storage unit. In a fourth embodiment, Write data is copied from a controller buffer to a reserved area of each storage unit comprising the array.

Inventors

  • 👤 David C. Stallmo
  • 👤 William A. Brant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 20:00
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: 31
Claim 1
Independent Claim 202 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 2
Dependent Claim 202 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 3
Dependent Claim 37 words
The storage device array of claim 1, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of idle storage units.
Claim 4
Dependent Claim 70 words
The storage device array of claim 1, wherein generating an 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; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 5
Dependent Claim 18 words
The fault-tolerant storage device array of claim 1, wherein at least one copyback cache storage unit is non-volatile.
Claim 6
Dependent Claim 186 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units.
Claim 7
Dependent Claim 186 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units.
Claim 8
Dependent Claim 39 words
The storage device array of claim 5, wherein the control means acknowledges completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 9
Dependent Claim 37 words
The storage device array of claim 6, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of idle storage units.
Claim 10
Dependent Claim 70 words
The storage device array of claim 7, wherein generating an 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; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 11
Dependent Claim 216 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 12
Dependent Claim 216 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) accessing the storage units and reading information corresponding to each read pending data block; (c) generating an associated error-correction block from the read information and each read pending data block; and (d) writing each such read pending data block and associated error-correction block to a corresponding stripe of the idle storage units; and (3) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 13
Dependent Claim 37 words
The storage device array of claim 9, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of idle storage units.
Claim 14
Dependent Claim 70 words
The storage device array of claim 9, wherein generating an 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; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 15
Dependent Claim 186 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 16
Dependent Claim 186 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 17
Dependent Claim 37 words
The storage device array of claim 12, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the storage units.
Claim 18
Dependent Claim 68 words
The storage device array of claim 12, wherein generating an error-correction block further includes: a. reading a corresponding old data block from the corresponding stripe of the storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the storage units; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 19
Dependent Claim 17 words
The storage device array of claim 12, wherein at least one copyback cache storage unit is non-volatile.
Claim 20
Dependent Claim 51 words
The storage device array of claim 12, wherein said storage unit controller further includes control means for 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 21
Dependent Claim 171 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; and (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units.
Claim 22
Dependent Claim 171 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; and (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units.
Claim 23
Dependent Claim 39 words
The storage device array of claim 17, wherein the control means acknowledges completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 24
Dependent Claim 37 words
The storage device array of claim 18, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the storage units.
Claim 25
Dependent Claim 68 words
The storage device array of claim 19, wherein generating an error-correction block further includes: a. reading a corresponding old data block from the corresponding stripe of the storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the storage units; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 26
Dependent Claim 51 words
The storage device array of claim 17, wherein said storage unit controller further includes control means for 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 27
Dependent Claim 200 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 28
Dependent Claim 200 words
A fault-tolerant storage device array including: a. a plurality of failure independent storage units for storing information as stripes 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, at least one of said at least one copyback cache storage unit being non-volatile; and 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) reading at least one pending data block from at least one copyback cache storage unit; (3) accessing the storage units and reading information corresponding to each read pending data block; (4) generating an associated error-correction block from the read information and each read pending data block; (5) writing each such read pending data block and associated error-correction block to a corresponding stripe of the storage units; and (6) acknowledging completion of writing each received data block to the at least one copyback cache storage unit before writing such data block to one of the storage units.
Claim 29
Dependent Claim 37 words
The storage device array of claim 22, wherein the information corresponding to each read pending data block includes a corresponding old error-correction block and corresponding old data block read from the corresponding stripe of the storage units.
Claim 30
Dependent Claim 68 words
The storage device array of claim 22, wherein generating an error-correction block further includes: a. reading a corresponding old data block from the corresponding stripe of the storage units; b. reading a corresponding old error-correction block from the corresponding stripe of the storage units; and c. exclusively-ORing the old data block, the old error correction block and the read pending data block, thereby generating a new error-correction block.
Claim 31
Dependent Claim 51 words
The storage device array of claim 22, wherein said storage unit controller further includes control means for 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.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-14 2002-12-14 2003-06-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-14 2006-12-14 2007-06-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-14 2010-12-14 2011-06-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag