Data and parity prefetching for redundant arrays of disk drives
First Claim
1. An apparatus for prefetching data from a plurality of disk drives, each of the plurality of disk drives organized into a plurality of disk blocks, the plurality of disk blocks further organized into a plurality of stripes, each of the plurality of stripes including at least one disk block from each of the plurality of disk drives, each of the plurality of stripes further including a parity disk block storing parity data generated from the data stored in the other disk blocks of the stripe, the apparatus comprising:
- memory means for storing data, said memory means partitioned into memory blocks compatible with the disk block organization of the plurality of disk drives;
means for maintaining said memory blocks in a least recently used (LRU) order;
means for generating a low threshold signal in response to a first predetermined number of said memory blocks being filled with data; and
means, responsive to said low threshold signal, for starting a prefetch procedure to read disk blocks associated with a predetermined stripe, said predetermined stripe including at least one disk block to be overwritten by a LRU memory block.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for prefetching the data and parity blocks for generating parity data of a stripe. The method uses a low and high thresholds marker indicative of a first and second level of fullness of the cache to determine whether or not to prefetch the data and parity blocks. If the cache is filled to a level exceeding the first level of fullness, the data and parity blocks are prefetched for any blocks to be written to the disk drive between the low and high threshold. The data and parity blocks are read from the disk drive at a lower processing priority in anticipation of the writing of the block.
-
Citations
10 Claims
-
1. An apparatus for prefetching data from a plurality of disk drives, each of the plurality of disk drives organized into a plurality of disk blocks, the plurality of disk blocks further organized into a plurality of stripes, each of the plurality of stripes including at least one disk block from each of the plurality of disk drives, each of the plurality of stripes further including a parity disk block storing parity data generated from the data stored in the other disk blocks of the stripe, the apparatus comprising:
-
memory means for storing data, said memory means partitioned into memory blocks compatible with the disk block organization of the plurality of disk drives; means for maintaining said memory blocks in a least recently used (LRU) order; means for generating a low threshold signal in response to a first predetermined number of said memory blocks being filled with data; and means, responsive to said low threshold signal, for starting a prefetch procedure to read disk blocks associated with a predetermined stripe, said predetermined stripe including at least one disk block to be overwritten by a LRU memory block. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for prefetching data from a plurality of disk drives, each of the plurality of disk drives organized into a plurality of disk blocks, the plurality of disk blocks further organized into a plurality of stripes, each of the plurality of stripes including at least one disk block from each of the plurality of disk drives, each of the plurality of stripes further including a parity disk block storing parity data generated from the data stored in the other disk blocks of the stripe, the method comprising the steps of;
-
storing data in a memory means, said memory means partitioned into memory blocks compatible with the disk block organization of the plurality of disk drives; maintaining said memory blocks in a least recently used (LRU) order; generating a low threshold signal in response to a first predetermined number of said memory blocks being filled with data; and starting, in response to said low threshold signal, a prefetch procedure to read disk blocks associated with a predetermined stripe, said predetermined stripe including at least one disk block to be overwritten by a LRU memory block. - View Dependent Claims (7, 8, 9, 10)
-
Specification