Cache with multiway steering and modified cyclic reuse
First Claim
1. In a computing system a cache system for retrieving an answer in response to a query, the cache system comprising:
- at least one cache array of cache elements, a hash mechanism generating a hash value based on arguments in the query;
an indirect mapping module mapping the hash value to a cache index and accessing a cache element in a cache array;
a first retrieve module retrieving an answer from a first cache element if the arguments in the first cache element match the arguments in the query;
a second retrieve module retrieving an answer from a second cache element if the arguments in the second cache element match the arguments in the query;
an underlying search module searching for the answer in the storage system outside the cache array if neither first retrieve module or the second retrieve module retrieves an answer; and
a cyclic replacement module cycling through cache elements in one or more cache arrays to select a cache element in which the answer from the underlying search module is stored.
2 Assignments
0 Petitions
Accused Products
Abstract
In a cache system a steering array indirect maps queries to the cache cells, and a cyclic replacement mechanism allocates the cache cells for replacement in the cache. The cache system has a hash mechanism, a steering array and a cyclic replacement counter. The hash mechanism computes a hash value from arguments in the query. The cache has a plurality of cache cells, and each cell has an answer and a usage bit indicating whether the cell is in use. The steering array stores a cache index based on the hash value, and the cache index points to a cache cell that may contain the answer to the query. The cyclic replacement counter addresses each cell in the cache to determine if the cell is still in use or may store a new answer. A single steering array may be used with a single cache array. To handle collisions between queries producing the same hash value, a link index may be provided in a first cache cell addressed by the cache index. The link index provides access to a second cache cell having a previous answer for another query producing the same hash value. Also parallel cache arrays and parallel steering arrays may be used to provide more than one cache element for answers to queries producing the same hash value.
13 Citations
20 Claims
-
1. In a computing system a cache system for retrieving an answer in response to a query, the cache system comprising:
-
at least one cache array of cache elements, a hash mechanism generating a hash value based on arguments in the query;
an indirect mapping module mapping the hash value to a cache index and accessing a cache element in a cache array;
a first retrieve module retrieving an answer from a first cache element if the arguments in the first cache element match the arguments in the query;
a second retrieve module retrieving an answer from a second cache element if the arguments in the second cache element match the arguments in the query;
an underlying search module searching for the answer in the storage system outside the cache array if neither first retrieve module or the second retrieve module retrieves an answer; and
a cyclic replacement module cycling through cache elements in one or more cache arrays to select a cache element in which the answer from the underlying search module is stored. - View Dependent Claims (2, 3, 4)
-
-
5. A cache system for retrieving an answer in response to a query, the cache system comprising:
-
a hash mechanism computing a hash value from arguments in the query;
a cache with a plurality of cache cells, each cell having an answer and a usage bit indicating whether the cell is in use;
a steering array storing a cache index based on the hash value, the cache index pointing to a cache cell that may contain the answer;
a cyclic replacement counter addressing each cell in the cache to determine in the cell is still in use. - View Dependent Claims (6, 7, 8)
-
-
9. In a computing system having a cache system, a method for optimizing the use of the cache, the method comprising;
-
indirectly mapping a query to a cache cell in a cache array;
retrieving an answer from a first cache cell mapped to by the act of mapping;
retrieving an old answer from a second cache cell mapped to by the act of mapping;
searching for a new answer outside of the cache if neither act of retrieving is successful; and
cyclic accessing through cells in the cache to replace an answer in a cell with a new answer from the act of searching. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer program product readable by a computing system and encoding a computer program of instructions for executing a computer process for a cache system for retrieving an answer in response to a query, said computer process comprising:
-
generating a hash value based on arguments in the query;
mapping the hash value to a cache index and accessing a cache element in a cache array;
retrieving an answer from a first cache element if the arguments in the first cache element match the arguments in the query;
retrieving an answer from a second cache element if the arguments in the second cache element match the arguments in the query;
searching for the answer in a storage system outside the cache array if neither act of retrieving retrieves an answer for the query; and
cycling through cache elements in one or more cache arrays to select a cache element in which the answer from the act of searching may be stored. - View Dependent Claims (17, 18, 19, 20)
-
Specification