Cache pre-fetching using cyclic buffer
AssigneeAmazon Technologies, Inc.
InventorsOrestis Polychroniou, Naresh Kishin Chainani, Ippokratis Pandis
Life of this patent
Estimating the term…
Abstract
A computer system comprises memory to store computer-executable instructions. The computer system may, as a result of execution of the instructions by one or more processors, cause the system to load a first subset of a set of data elements into a first cache, load a second subset of the set of data elements into a second cache, and as a result of elements of the first subset being processed, issue commands to place elements of the second subset into the first cache to enable processing the second subset to be processed from the first cache.
Claims20
A computer-implemented method, comprising:
- generating code in response to a request to perform a query, wherein the code comprises instructions to:
- submit, in a sequence, a plurality of commands to add a plurality of data elements associated with a data set to a cyclic buffer in a hardware cache;
- in response to detecting that the buffer is full, remove a first data element of the plurality from the cyclic buffer;
- process the first data element as part of fulfillment of the request;
- and
- as a result of the first data element having been removed from the cyclic buffer, submit a different command of the plurality of commands to add an additional data element of the data set to the cyclic buffer to replace the first data element;
- and
- causing execution of the query according to the code.
A system, comprising main memory to store computer-executable instructions that, as a result of execution by one or more processors, cause the system to:
- obtain a request to process a set of data elements;
- load a first subset of the set of data elements into a first cache;
- load a second subset of the set of data elements into a second cache;
- and
- as a result of elements of the first subset of the set of data elements being processed, issue commands to place elements of the second subset of the set of data elements into the first cache to enable processing the second subset of the set of data elements to be processed from the first cache.
A non-transitory computer-readable storage medium having stored thereon executable instructions that, if executed by one or more processors of a computer system, cause the computer system to at least:
- submit commands to load a plurality of elements of a data set to a buffer;
- detect, as a result of a first command of the plurality of commands being fulfilled, that a first element of the plurality of elements was loaded into the buffer;
- process the first element of the plurality of elements based on an order in which the first command to was submitted relative to other commands of the plurality of commands to load other elements;
- and
- in response to detecting that the first element of the plurality of elements was processed, submit a second command to load, to the buffer, another element of the data set.
Dependencies are inferred from the claim text.