Managing a multi-way associative cache
AssigneeHewlett-Packard Development Company, L.P.
InventorSimon Steely
Life of this patent
Estimating the term…
Abstract
Methods for storing replacement data in a multi-way associative cache are disclosed. One method comprises logically dividing the cache's cache sets into segments of at least one cache way; searching a cache set in accordance with a segment search sequence for a segment currently comprising a way which has not yet been accessed during a current cycle of the segment search sequence; searching the current segment in accordance with a way search sequence for a way which has not yet been accessed during a current way search cycle; and storing the replacement data in a first way which has not yet been accessed during a current cycle of the way search sequence. A cache controller that performs such methods is also disclosed.
Claims26
A method for storing replacement data in a multi-way associative cache, comprising:
- logically dividing the cache's cache sets into segments of at least one cache way;
- searching a cache set in accordance with a segment search sequence for a segment currently comprising a way which has not yet been accessed during a current cycle of the segment search sequence;
- searching the current segment in accordance with a way search sequence for a way which has not yet been accessed during a current way search cycle;
- and
- storing the replacement data in a first way which has not yet been accessed during a current cycle of the way search sequence.
A method for managing a multi-associative cache comprising:
- logically dividing each cache set of the cache into segments each comprising at least one cache way;
- storing replacement data in an invalidated way, if any, in the cache set, in response to a cache miss, and setting, in response to a processor accessing the replacement data, a way access indicator corresponding to the accessed way to a value indicating the way has been accessed;
- and
- selecting, when no invalidated way is in the cache set, a current segment of a segment search sequence for an available way;
- and searching the current segment in accordance with a way search sequence, for a next way not yet accessed during a current cycle of the way search sequence.
A processing environment comprising:
- a processor;
- a multi-way associative cache;
- a cache controller configured to logically divide the cache's sets into segments of at least one cache way, and comprising replacement logic that, in response to a cache miss, stores the replacement data in a way, if available, that contains invalidated data, and if not available, searches a cache set in accordance with a segment search sequence for a segment comprising a way which has not yet been accessed during a current cycle of the segment search sequence, and searches each segment in accordance with a way search sequence for a way which has not yet been accessed during a current way search cycle;
- and stores the replacement data in a first way which has not yet been accessed during a current cycle of the way search sequence.
A processing environment comprising:
- means for logically dividing cache sets of a multi-way associative cache into segments of at least one cache way;
- and
- means for storing, in response to a cache miss, replacement data in a way, if available, that contains invalidated data, and if not available, searches a cache set in accordance with a segment search sequence for a segment comprising a way which has not yet been accessed during a current cycle of the segment search sequence, and searches each segment in accordance with a way search sequence for a way which has not yet been accessed during a current way search cycle;
- and stores the replacement data in a first way which has not yet been accessed during a current cycle of the way search sequence.
Dependencies are inferred from the claim text.