Patent ID: 8069310

Claim:
A method for prefetching data units into a cache memory, comprising: opening a first prefetch task to prefetch a first prefetch series of data units from an off-cache memory for storage in the cache memory, the off-cache memory being different from the cache memory, the opening the first prefetch task including: initiating a first prefetch operation to prefetch a first selected set of data units in the first prefetch series; and storing the first selected set of data units in the cache memory in accordance with the first prefetch task; making decisions about the first prefetch task, subsequent prefetch operations and prefetch tasks based on read requests, data units requested by the read requests, and data units that are stored in the cache memory and that are associated with the first prefetch task; determining whether or not an additional data unit, that is read from the off-cache memory in an operation separate from the first prefetch operation, is a first prefetch series member comprising a data unit that corresponds to the first prefetch series and that is not included in the first selected set of data units of the first prefetch series, wherein the determining is performed after the first selected set of data units is stored in the cache memory; upon determination that the additional data unit is a first prefetch series member, associating the additional data unit with the first prefetch operation in the cache memory; wherein making decisions includes, after associating the additional data unit with the first prefetch operation, subsequently determining whether to execute a second prefetch operation to prefetch a second set of selected data units from the off-cache memory based on treating the additional data unit as having been prefetched into cache memory in accordance with the first prefetch operation and based on a logical location of the additional data unit in the off-cache memory, wherein the additional data unit that is associated with the first prefetch operation is different from data units in the second set of selected data units that are prefetched in the second prefetch operation.