Adaptive block pre-fetching method and system
AssigneeIntel Corporation
InventorsNadim Taha, Hormuzd Khosravi
Life of this patent
Estimating the term…
Abstract
A method and system may include fetching a first pre-fetched data block having a first length greater than the length of a first requested data block, storing the first pre-fetched data block in a cache, and then fetching a second pre-fetched data block having a second length, greater than the length of a second requested data block, if data in the second requested data block is not entirely stored in a valid part of the cache. The first and second pre-fetched data blocks may be associated with a storage device over a channel. Other embodiments are described and claimed.
Claims19
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.
A system comprising:
- a computer in communication with a storage device over a channel;
- a driver within said computer receiving a request for a first data block, including an indication of a length of the first data block and 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;
- and
- a cache within said computer for storing said first pre-fetched data block,
- the driver is to further receive a subsequent request for a second data block, including an indication of a length of the second data block and wherein 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, the driver fetches 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.
A computer memory tangibly embodying computer executable instructions therein, to be executed by a computer, for:
- 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.
Dependencies are inferred from the claim text.