Storage device array architecture with copyback cache
First Claim
1. A fault-tolerant storage device array, comprising:
- (a) failure independent storage units for storing information, including data blocks and associated error-correction blocks;
(b) a copyback cache comprising at least one copyback storage unit for temporarily storing data blocks; and
(c) a storage unit controller, coupled to said failure independent storage units and to said copyback cache storage unit, and having a controller buffer providing a logical area corresponding to an area in said copyback cache, said storage unit controller for;
(i) receiving data blocks into the controller buffer as pending data blocks;
(ii) writing each pending data block into said logical area of said copyback cache; and
(iii) during an idle time of at least one of the failure independent storage units;
(1) reading at least one pending data block from the controller buffer;
(2) accessing at least one of the plurality of failure independent storage units and reading information corresponding to at least one read pending data block;
(3) generating an associated error-correction block from the read information and at least one read pending data block; and
(4) writing at least one such read pending data block and said associated error-correction block to at least one idle storage unit.
0 Assignments
0 Petitions
Accused Products
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.
90 Citations
32 Claims
-
1. A fault-tolerant storage device array, comprising:
-
(a) failure independent storage units for storing information, including data blocks and associated error-correction blocks; (b) a copyback cache comprising at least one copyback storage unit for temporarily storing data blocks; and (c) a storage unit controller, coupled to said failure independent storage units and to said copyback cache storage unit, and having a controller buffer providing a logical area corresponding to an area in said copyback cache, said storage unit controller for; (i) receiving data blocks into the controller buffer as pending data blocks; (ii) writing each pending data block into said logical area of said copyback cache; and (iii) during an idle time of at least one of the failure independent storage units; (1) reading at least one pending data block from the controller buffer; (2) accessing at least one of the plurality of failure independent storage units and reading information corresponding to at least one read pending data block; (3) generating an associated error-correction block from the read information and at least one read pending data block; and (4) writing at least one such read pending data block and said associated error-correction block to at least one idle storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A fault-tolerant storage device array, comprising:
-
a. failure independent storage units for storing blocks of information, including at least data blocks and associated error-correction blocks; b. a copyback cache, comprising at least one copyback storage unit, for temporarily storing data blocks; and c. a storage unit controller, coupled to said failure independent storage units and to the copyback cache and having a buffer memory, said storage unit controller for; (1) writing received data blocks initially into the copyback cache; (2) temporarily storing received data blocks in the buffer memory as pending data blocks; and (3) while at least one of the plurality of storage units is idle; (a) accessing at least one pending data block from the buffer memory; (b) accessing the storage units and reading information corresponding to at least one accessed pending data block; (c) generating an associated error-correction block from the read information and at least one accessed pending data block; (d) and writing each such accessed pending data block and associated error-correction block to at least one idle storage unit; and (4) reading requested data blocks from the buffer memory when such required data blocks are in the buffer memory, otherwise making access to the plurality of storage units. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification