Disk cache management techniques using non-volatile storage
First Claim
1. For use in a computer system having a hard disk and non-volatile write cache memory to reduce hard disk access operations, a method for using the non-volatile write cache memory more effectively, comprising the steps of:
- processing each of a plurality of requests to write a block of data to the hard disk by storing the block in the non-volatile write cache memory;
repeatedly checking to determine a percentage of a plurality of blocks in the non-volatile write cache memory that have not been written to the hard disk, and deciding to purge data to the hard disk when the percentage of such blocks exceeds a preselected upper threshold limit;
setting a purge request flag when the percentage of blocks that have not been written to the hard disk first exceeds the upper threshold limit;
leaving the puree request flag set when the percentage of blocks that have not been written to the hard disk falls below the upper threshold limit; and
clearing the purge request flag when the percentage of blocks that have not been written to the hard disk falls below a preselected lower threshold limit; and
if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, selecting at least one block from the non-volatile write cache memory, waiting until the hard disk is not busy with a plurality of read operations, and writing said selected block to the hard disk;
whereby the number of actual hard disk write accesses needed is reduced by the use of multiple decision threshold limits and Wherein the steps of selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk, are initiated only when the purge request flag is set.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, and apparatus for its use, for reducing the number of disk accesses needed to satisfy requests for reading data from and writing data to a hard disk. A non-volatile cache memory used to hold data blocks for which write requests have been made is purged of "dirty" blocks, not yet written to the disk, based on the proportion of dirty blocks in relation to an upper threshold and a lower threshold. A purge request flag is set when the proportion of dirty blocks goes above the upper threshold, but is not cleared until the proportion of dirty blocks goes below the lower threshold. So long as the purge request flag is set, dirty blocks are purged when the disk is not busy with read requests. Immediate purging is initiated when the write cache becomes totally full of dirty blocks. Purging of dirty blocks is also effected during disk read accesses, by "piggybacking" a writing operation with the reading operation, to write dirty blocks destined for the same track or cylinder in which the requested read data blocks are located.
-
Citations
40 Claims
-
1. For use in a computer system having a hard disk and non-volatile write cache memory to reduce hard disk access operations, a method for using the non-volatile write cache memory more effectively, comprising the steps of:
-
processing each of a plurality of requests to write a block of data to the hard disk by storing the block in the non-volatile write cache memory; repeatedly checking to determine a percentage of a plurality of blocks in the non-volatile write cache memory that have not been written to the hard disk, and deciding to purge data to the hard disk when the percentage of such blocks exceeds a preselected upper threshold limit; setting a purge request flag when the percentage of blocks that have not been written to the hard disk first exceeds the upper threshold limit; leaving the puree request flag set when the percentage of blocks that have not been written to the hard disk falls below the upper threshold limit; and clearing the purge request flag when the percentage of blocks that have not been written to the hard disk falls below a preselected lower threshold limit; and if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, selecting at least one block from the non-volatile write cache memory, waiting until the hard disk is not busy with a plurality of read operations, and writing said selected block to the hard disk; whereby the number of actual hard disk write accesses needed is reduced by the use of multiple decision threshold limits and Wherein the steps of selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk, are initiated only when the purge request flag is set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. For use in a computer system having a hard disk, a read cache memory and a non-volatile write cache memory to reduce hard disk access operations, a method for using the non-volatile write cache memory more effectively, comprising the steps of:
-
processing each of a plurality of requests to read a block of data from the hard disk by first checking to determine if the requested block is already in non-volatile write cache memory, and performing a read disk access only if the requested block is not available in non-volatile write cache memory; processing each request to write a block of data to the hard disk by storing the block in the non-volatile write cache memory; repeatedly checking to determine a percentage of blocks in the non-volatile write cache memory that have not been written to the hard disk, and deciding whether to purge data to the hard disk based on the percentage of such blocks as compared with a preselected upper threshold limit and a preselected lower threshold limit; setting a purge request flag when the percentage of blocks that have not been written to the hard disk first exceeds the upper threshold limit; leaving the purge request flag when the percentage of blocks that have not been written to the hard disk falls below the upper threshold limit; clearing the purge request flag when the percentage of blocks that have not been written to the hard disk falls below the lower threshold limit; and if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, selecting at least one block from the non-volatile write cache memory, waiting until the hard disk is not busy with read operations, and writing the selected one of the blocks to the hard disk; whereby the hard disk write accesses needed are reduced in number by the use of multiple decision thresholds and wherein the steps of selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk are initiated only when the purge request flag is set. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. For use in a computer system having a hard disk and a single non-volatile cache memory to reduce disk access operations for both reads and writes, a method for using the non-volatile cache memory more effectively, comprising the steps of:
-
processing each one of a plurality of requests to read a block of data from the hard disk by first checking to determine if the requested block is already in the non-volatile cache memory, and performing a read disk access only if the requested block is not available in non-volatile cache memory; processing each request to write a block of data to the hard disk by storing the block in the non-volatile cache memory; repeatedly checking the non-volatile cache memory to determine a percentage of "dirty" blocks, which have been written to the non-volatile cache memory but have not been written to the hard disk, and deciding whether to purge data to the hard disk based on the percentage of such blocks as compared with a preselected upper threshold limit and a preselected lower threshold limit; setting a purge request flag when the percentage of dirty blocks exceeds the upper threshold limit; leaving the purge request flag set when the percentage of dirty blocks falls below the upper threshold limit; clearing the purge request flag when the percentage of dirty blocks falls below the lower threshold limit; and if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, selecting at least one dirty block from the non-volatile cache memory, waiting until the hard disk is not busy with read operations, and writing the selected dirty block to the hard disk; whereby the number of actual hard disk write accesses needed is reduced by the use of multiple decision thresholds and when the steps of selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk, are initiated only when the purge request flag is set. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. Hard disk controller apparatus for reducing disk accesses needed to satisfy a plurality of read and write requests to a hard disk, the apparatus comprising:
-
a read cache memory for storing blocks of data read from the hard disk; a non-volatile write cache memory for storing blocks of data to be written to the hard disk; means for processing each request to write a block of data to the hard disk by storing the block in the non-volatile write cache memory; means for repeatedly checking to determine the a percentage of blocks in the non-volatile write cache memory that have not been written to the hard disk; means for deciding whether to purge data to the hard disk based on the percentage of such blocks as compared with a preselected upper threshold limit and a preselected lower threshold limit; means for setting a purge request flag when the percentage of blocks that have not been written to the hard disk first exceeds the upper threshold limit, and leaving the purge request flag set when the percentage of blocks that have not been written to the hard disk falls below the upper threshold limit; means for clearing the purge request flag when the percentage of blocks that have not been written to the hard disk falls below the lower threshold limit; and means operative if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, for selecting at least one block from the non-volatile write cache memory, then waiting until the hard disk is not busy with read operations, and writing each of the selected blocks to the hard disk; whereby the number of actual hard disk write accesses needed is reduced by the use of multiple decision thresholds and wherein the means for selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk, are operative only when the purge request flag is set. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. Hard disk controller apparatus for reducing disk accesses needed to satisfy a plurality of read and write requests to a hard disk, the apparatus comprising;
-
a single non-volatile cache memory for storing blocks of data read from, and to be written to, the hard disk; means for processing each request to read a block of data from the hard disk by first checking to determine if the requested block is already in the single non-volatile cache memory, and performing a read disk access only if the requested block is not available in single non-volatile cache memory; means for processing each request to write a block of data to the hard disk by storing the block in the single non-volatile cache memory; means for repeatedly checking to determine the proportion of blocks in the single non-volatile cache memory that have not been written to the hard disk; means for deciding whether to purge data to the hard disk based on the percentage of such blocks as compared with a preselected upper threshold limit and a preselected lower threshold limit; means for setting purge request flag when the percentage of blocks that have not been written to the hard disk first exceeds the upper threshold limit, and leaving the purge request flag set when the percentage of blocks that have not been written to the hard disk falls below the upper threshold limit; means for clearing the purge request flag when the percentage of blocks that have not been written to the hard disk falls below the lower threshold limit; and means operative if the step of deciding whether to purge to the hard disk results in a decision to initiate purging, for selecting at least one block from the single non-volatile write cache memory, then waiting until the hard disk is not busy with read operations, and writing the selected blocks to the hard disk; whereby the number of actual disk write accesses needed is reduced by the use of multiple decision thresholds and wherein the means for selecting at least one block, waiting until the hard disk is not busy, and writing to the hard disk, are operative only when the purge request flag is set. - View Dependent Claims (39, 40)
-
Specification