Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
First Claim
1. A method for use in a cache hierarchy including at least two cache levels organized as a lower cache level and a higher cache level, each cache level configured to store one or more cache lines, the method comprising the steps of:
- providing a tag store at each cache level, the tag store containing tag values associated with the cache lines stored at the respective cache level, the tag values being settable between a valid state and a invalid state;
comparing at least a portion of the tag store of the lower cache level with a given tag value;
if the given tag value matches a tag value of the tag store, determining whether the matching tag value is in the valid state or the invalid state; and
if the matching tag value is in the invalid state, bypassing the higher level cache.
4 Assignments
0 Petitions
Accused Products
Abstract
A system for adaptively bypassing one or more higher cache levels following a miss in a lower level of a cache hierarchy is described. Each cache level preferably includes a tag store containing address and state information for each cache line resident in the respective cache. When an invalidate request is received at a given cache hierarchy, each cache level is searched for the address specified by the invalidate request. When an address match is detected, the state of the respective cache line is changed to the invalid state, although the address of the cache line is left in the tag store. Thereafter, if the processor or entity associated with this cache hierarchy issues its own request for this same cache line, the cache hierarchy begins searching the tag store of each level starting with the lowest cache level. Since the address of the invalidated cache line was left in the respective tag store, a match will be detected at one of the cache levels, although the corresponding state of this cache line is invalid. This condition is specifically detected and is considered to be an “inval_miss” occurrence. In response, to an inval miss, the cache hierarchy calls off searching any higher levels, and instead, issues a memory reference request for the desired cache line. In a further embodiment, the entity that sourced an invalidate request is stored, and a subsequent memory reference request for the same cache line is sent directly to the source entity.
-
Citations
17 Claims
-
1. A method for use in a cache hierarchy including at least two cache levels organized as a lower cache level and a higher cache level, each cache level configured to store one or more cache lines, the method comprising the steps of:
-
providing a tag store at each cache level, the tag store containing tag values associated with the cache lines stored at the respective cache level, the tag values being settable between a valid state and a invalid state;
comparing at least a portion of the tag store of the lower cache level with a given tag value;
if the given tag value matches a tag value of the tag store, determining whether the matching tag value is in the valid state or the invalid state; and
if the matching tag value is in the invalid state, bypassing the higher level cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17)
-
-
12. A method for use in a cache hierarchy including at least one cache level, the at least one cache level configured to store one or more cache lines, the method comprising the steps of:
-
providing a tag store at the at least one cache level, the tag store containing tag values associated with the cache lines stored at the cache level, the tag values being settable between a valid state and a invalid state;
receiving an invalidate request message specifying a given tag value and a source processor identifier;
comparing at least a portion of the tag store with the given tag value;
if the given tag value matches a tag value of the tag store, setting the matching tag value to the invalid state; and
storing the source processor identifier from the invalidate request message at the cache line associated with the particular tag value specified by the invalidate request message.
-
Specification