Patent ID: 7899996

Claim:
A method for adaptively pre-fetching data, comprising: collecting a first set of statistics based on a number of avoidable read-misses in which data exists that is prior to data being read; collecting a second set of statistics based on a number of avoidable read-misses in which data exists that follows data being read; collecting a third set of statistics based on said first and second sets of statistics; on the basis of said second set of statistics, selecting a pre-fetch technique from a first technique that pre-fetches data following data being read and a second technique that pre-fetches data before and following the data being read, wherein the selecting of the second technique reduces a number of instances where out of order reads result in avoidable read-misses, and wherein the avoidable read-misses are read-misses that could have been averted had a sector of data at a storage location been pre-fetched with other sectors of data at the storage location that were previously fetched; upon detection of an avoidable read-miss and selecting the first technique, pre-fetching data following data being read based on comparison of a generated random number and the first set of statistics; and upon detection of the avoidable read-miss and selecting the second technique, pre-fetching data before and following data being read based on a comparison of a generated random number and the third set of statistics.