Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
248 words
An apparatus for generating parity data for a plurality of disk drives, each of the plurality of disk drives divided into a plurality of blocks, the plurality of blocks further organized into a plurality of stripes, each of the plurality of stripes including one block from each of the plurality of disk drives, one of the blocks of each stripe storing parity data generated from the data stored in the other blocks of the stripe, the apparatus comprising; memory means for storing data, said memory means partitioned into blocks compatible with the block structure of the plurality of disk drives; means for identifying an updated memory block storing data to be written to one of the plurality of disk drives; means for identifying a predetermined stripe, said predetermined stripe including a disk block to be overwritten by said updated memory block; first means for determining the number of I/O requests required to aggregate in said memory means all of the data, except the parity data, of said predetermined stripe; second means for determining the number of I/O requests required to aggregate in said memory means said block to be overwritten and the parity block of said predetermined stripe; and means for choosing said first means OR said second means to perform said I/O requests by choosing the means which requires the fewest number of I/O requests to aggregate in said memory means the blocks of said identified stripe necessary to generate the parity data of said predetermined stripe.
Claim 2
Independent Claim
248 words
An apparatus for generating parity data for a plurality of disk drives, each of the plurality of disk drives divided into a plurality of blocks, the plurality of blocks further organized into a plurality of stripes, each of the plurality of stripes including one block from each of the plurality of disk drives, one of the blocks of each stripe storing parity data generated from the data stored in the other blocks of the stripe, the apparatus comprising; memory means for storing data, said memory means partitioned into blocks compatible with the block structure of the plurality of disk drives; means for identifying an updated memory block storing data to be written to one of the plurality of disk drives; means for identifying a predetermined stripe, said predetermined stripe including a disk block to be overwritten by said updated memory block; first means for determining the number of I/O requests required to aggregate in said memory means all of the data, except the parity data, of said predetermined stripe; second means for determining the number of I/O requests required to aggregate in said memory means said block to be overwritten and the parity block of said predetermined stripe; and means for choosing said first means OR said second means to perform said I/O requests by choosing the means which requires the fewest number of I/O requests to aggregate in said memory means the blocks of said identified stripe necessary to generate the parity data of said predetermined stripe.
Claim 3
Dependent Claim
41 words
The apparatus as in claim 1 wherein said memory means includes a non-volatile memory for storing data to be written to the plurality of the disk drives, and a volatile memory for storing data read from the plurality of disk drives.
Claim 4
Dependent Claim
36 words
The apparatus as in claim 1 wherein said first and second means include means for determining if the data of the disk blocks of said predetermined stripe are stored in said memory means as memory blocks.
Claim 5
Dependent Claim
60 words
The apparatus as in claim 1 including means for generating the parity data of said predetermined stripe from all of the data, except the parity data, of said predetermined stripe, and means for generating the parity data of said predetermined stripe from said updated memory block, said disk block to be overwritten, and said parity block of said predetermined stripe.
Claim 6
Dependent Claim
23 words
The apparatus as in claim 4 wherein said means for generating the parity data includes a means for performing an exclusive OR function.
Claim 7
Independent Claim
238 words
A method for generating parity data for a plurality of disk drives, each of the plurality of disk drives divided into a plurality of blocks, the plurality of blocks further organized into a plurality of stripes, each of the plurality of stripes including one block from each of the plurality of disk drives, one of the blocks of each stripe storing parity data generated from the data stored in the other blocks of the stripe, the method comprising the steps of; storing data in a memory means, said memory means partitioned into blocks compatible with the block structure of the plurality of disk drives; identifying an updated memory block storing data to be written to one of the plurality of disk drives; identifying a predetermined stripe, said predetermined stripe including a disk block to be overwritten by said updated memory block; determining by a first means, the number of I/O requests required to aggregate in said memory means all of the data, except the parity data, of said predetermined stripe; determining by a second means, the number of I/O requests required to aggregate in said memory means said block to be overwritten and the parity block of said predetermined stripe; and aggregating in said memory means the blocks of said identified stripe necessary to generate the parity data of said predetermined stripe with the fewest number of I/O requests as determined by said second OR said first means.
Claim 8
Independent Claim
238 words
A method for generating parity data for a plurality of disk drives, each of the plurality of disk drives divided into a plurality of blocks, the plurality of blocks further organized into a plurality of stripes, each of the plurality of stripes including one block from each of the plurality of disk drives, one of the blocks of each stripe storing parity data generated from the data stored in the other blocks of the stripe, the method comprising the steps of; storing data in a memory means, said memory means partitioned into blocks compatible with the block structure of the plurality of disk drives; identifying an updated memory block storing data to be written to one of the plurality of disk drives; identifying a predetermined stripe, said predetermined stripe including a disk block to be overwritten by said updated memory block; determining by a first means, the number of I/O requests required to aggregate in said memory means all of the data, except the parity data, of said predetermined stripe; determining by a second means, the number of I/O requests required to aggregate in said memory means said block to be overwritten and the parity block of said predetermined stripe; and aggregating in said memory means the blocks of said identified stripe necessary to generate the parity data of said predetermined stripe with the fewest number of I/O requests as determined by said second OR said first means.
Claim 9
Dependent Claim
44 words
The method as in claim 6 wherein said memory means includes the step of storing data to be written to the plurality of the disk drives in a non-volatile memory, and storing data read from the plurality of disk drives in a volatile memory.
Claim 10
Dependent Claim
32 words
The method as in claim 6 further including the step of determining if the data of the disk blocks of said predetermined stripe are stored in said memory means as memory blocks.
Claim 11
Dependent Claim
73 words
The method as in claim 6 including the step of generating the parity data of said predetermined stripe from all of the data, except the parity data, of said predetermined stripe, OR generating the parity data of said predetermined stripe from said updated memory block, said disk block to be overwritten, and said parity block of said predetermined stripe, generating the parity data according to the step which requires the fewest I/O requests.
Claim 12
Dependent Claim
22 words
The method as in claim 6 further includes the step of generating the parity data by means of an exclusive OR function.