IP Library Granted Patent US 9,558,120
Granted Patent B2
US 9,558,120 · App. 14/227,940 · Granted Jan 31, 2017

Method, apparatus and system to cache sets of tags of an off-die cache memory

Inventors: Dyer Rolan (Verin, ES); Nevin Hyuseinova (Istanbul, TR); Blas A. Cuesta (Barcelona, ES); Qiong Cai (Barcelona, ES)
Assignee: Intel Corporation
G06F12/0833G06F12/0864G06F12/0871G06F12/123G06F2212/604G06F2212/62G06F2212/69
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,558,120
App. No.
14/227,940
Granted
Jan 31, 2017
Kind
B2
Abstract

Techniques and mechanism to provide a cache of cache tags in determining an access to cached data. In an embodiment, a tag storage stores a first set including tags associated with respective data locations of a cache memory. A cache of cache tags store a subset of tags stored by the tag storage. In response to any determination that a tag of the first set is to be stored to the cache of cache tags, all tags of the first set are stored to the first portion. Any storage of tags of the first set to the cache of cache tags includes storage of the tags of the first set to only a first portion of the cache of cache tags. In another embodiment, a replacement table is maintained for use in determining, based on an indicated level of activity for a set of the cache of cache tags, whether the set is to be selected for eviction and replacement of cached tags.

Claims (48)

1. A method comprising:

in response to storage of a first set of tags to a cache of cache tags, associating a first entry of a replacement table with the first set of tags, including setting a first activity variable of the first entry to an initial value of a pre-determined plurality of values, wherein a tag storage stores tags which are each associated with a respective data location of a cache memory, and wherein the cache of cache tags stores a subset of multiple tags stored at the tag storage, wherein the multiple tags includes the first set of tags; and

if a first memory access request comprises a tag corresponding to one of the first set of tags, then changing the first activity variable to a first value of the pre-determined plurality of values to indicate an increase of a level of activity of the first set, otherwise changing the first activity variable to a second value of the pre-determined plurality of values to indicate a decrease of the level of activity of the first set; and

in response to a failure to identify any tag of the cache of cache tags which matches a tag of a second memory access request, selecting a set of tags to evict from the cache of cache tags, including searching the replacement table for an activity variable which is equal to the initial value.

2. The method of claim 1 , wherein in response to any determination that a tag of the first set is to be stored to the cache of cache tags, the controller to store all tags of the first set to a first portion of the cache of cache tags, wherein the cache of cache tags includes the first portion and a second portion.

3. The method of claim 1 , wherein the cache of cache tags and a processor to provide the first memory access request are located on a first die.

4. The method of claim 3 , wherein the tag storage is located on a second die coupled to the first die.

5. The method of claim 1 , wherein the cache of cache tags contains one or more of the most recently used tags stored in the tag storage.

6. An apparatus comprising:

a cache of cache tags to store a subset of multiple tags stored at a tag storage, the tags of the subset each associated with a respective data location of a cache memory; and

a controller including circuitry to associate a first entry of a replacement table with a first set of tags stored to the cache of cache tags, wherein the multiple tags includes the first set of tags, including the controller to set a first variable of the first entry to an initial value of a pre-determined plurality of values,

wherein, if a first memory access request comprises a tag corresponding to one of the first set of tags, then the controller further to change the first variable to a first value of the pre-determined plurality of values to indicate an increase of a level of activity, otherwise, the controller to change the first variable to a second value of the pre-determined plurality of values to indicate a decrease of the level of activity; and

wherein, in response to a failure to identify any tag of the cache of cache tags which matches a tag of a second memory access request, the controller further to select a set of tags to evict from the cache of cache tags, including the controller to search the replacement table for a variable which is equal to the initial value.

7. The apparatus of claim 6 , wherein in response to any determination that a tag of the first set is to be stored to the cache of cache tags, the controller to store all tags of the first set to a first portion of the cache of cache tags, wherein the cache of cache tags includes the first portion and a second portion.

8. The apparatus of claim 6 , wherein the cache of cache tags and a processor to provide the first memory access request are located on a first die.

9. The apparatus of claim 8 , wherein the tag storage is located on a second die coupled to the first die.

10. The apparatus of claim 6 , wherein the cache of cache tags contains one or more of the most recently used tags stored in the tag storage.

11. An apparatus comprising:

a cache memory to couple to a processor;

a tag storage, coupled to the cache memory, to store a first set including first tags each associated with a respective data location of the cache memory;

a cache of cache tags to store a subset of multiple tags stored at the tag storage, the multiple tags including the first set, the cache of cache tags including first storage locations and second storage locations other than the first storage locations; and

a controller coupled to the cache of cache tags, the controller to update the subset of tags based on memory access requests from the processor, wherein in response to any determination that a tag of the first set is to be stored to the cache of cache tags, the controller to store all tags of the first set to the first storage locations, wherein any storage of tags of the first set to the cache of cache tags by the controller includes storage of the tags of the first set to only the first storage locations.

12. The apparatus of claim 11 , the tag storage further to store a second set including second tags each associated with a respective data location stored within the cache memory.

13. The apparatus of claim 12 , wherein in response to any determination that a tag of the second set is to be stored to the cache of cache tags, the controller to store all tags of the second set to the second storage locations, wherein any storage of tags of the second set to the cache of cache tags by the controller includes storage of the tags of the second set to only the second storage locations.

14. The apparatus of claim 11 , wherein, of all sets of tags of the tag storage, the first storage locations are to support tag storage only on behalf of the first set.

15. The apparatus of claim 12 , wherein the tag storage comprises:

a first plurality of sets including the first set; and

a second plurality of sets including the second set;

wherein, of the first plurality of sets and the second plurality of sets, the first storage locations are dedicated to only the first plurality of sets and the second storage locations are dedicated to only the second plurality of sets.

16. The apparatus of claim 15 , wherein the first plurality of sets correspond to odd sets of the cache memory and wherein the second plurality of sets correspond to even sets of the cache memory.

17. The apparatus of claim 11 , wherein the cache of cache tags and the processor are located on a first die.

18. The apparatus of claim 17 , wherein the tag storage is located on a second die coupled to the first die.

19. A method comprising:

storing at a tag storage a first set including first tags each associated with a respective data location of a cache memory coupled to a processor;

storing at a cache of cache tags a subset of multiple tags stored at the tag storage, the multiple tags including the first set, the cache of cache tags including first storage locations and second storage locations other than the first storage locations; and

updating the subset of tags based on memory access requests from the processor, wherein in response to any determination that a tag of the first set is to be stored to the cache of cache tags, all tags of the first set are stored to the first storage locations, wherein any storage of tags of the first set to the cache of cache tags includes storage of the tags of the first set to only the first storage locations.

20. The method of claim 19 , further comprising:

storing at the tag storage a second set including second tags each associated with a respective data location stored within the cache memory; and

in response to any determination that a tag of the second set is to be stored to the cache of cache tags, storing all tags of the second set to the second storage locations.

21. The method of claim 20 , wherein any storage of tags of the second set to the cache of cache tags by the controller includes storage of the tags of the second set to only the second storage locations.

22. The method of claim 19 , wherein, of all sets of tags of the tag storage, the first storage locations are to support tag storage only on behalf of the first set.

23. The method of claim 20 , wherein the tag storage comprises:

a first plurality of sets including the first set; and

a second plurality of sets including the second set;

wherein, of the first plurality of sets and the second plurality of sets, the first storage locations are dedicated to only the first plurality of sets and the second storage locations are dedicated to only the second plurality of sets.

24. The method of claim 23 , wherein the first plurality of sets correspond to odd sets of the cache memory and wherein the second plurality of sets correspond to even sets of the cache memory.

25. The method of claim 19 , wherein the cache of cache tags and the processor are located on a first die.

26. The method of claim 25 , wherein the tag storage is located on a second die coupled to the first die.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2014
From: ROLAN, DYER; HYUSEINOVA, NEVIN; CUESTA, BLAS A.; CAI, QIONG
To: INTEL CORPORATION
Reel/Frame 032862/0727 →
Continuity (1)
Related Publication 20150278096A1 · Oct 1, 2015