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.