Patent ID: 8713260

Claim:
A method comprising: receiving a request for a first data block, including an indication of a length of the first data block; in response to receiving the request fetching a first pre-fetched data block having a first length greater than the length of the requested first data block; storing said first pre-fetched data block in a cache; receiving a subsequent request for a second data block, including an indication of a length of the second data block; and when data in the requested second data block is not stored within a valid part of said cache, in response to receiving the subsequent request, fetching a second pre-fetched data block having a second length greater than the length of the requested second data block, wherein the second length is different than said first length, said requested second data block having an offset, and when the offset of said requested second data block is not in said valid part of said cache, in response to receiving the subsequent request fetching a second pre-fetched data block having a second length smaller than said first length, wherein the first and second pre-fetched data blocks are associated with a storage device over a channel.