LRU cache replacement for a partitioned set associative cache
First Claim
1. A method including:
- dedicating a first portion comprising one or more ways of an N way set associative cache exclusively to a first thread;
dedicating a second portion comprising one or more ways of the cache exclusively to a second thread;
dynamically sharing a third portion comprising one or more ways of the cache between the first and second threads; and
performing victim selection in the cache by,examining a Least Recently Used (LRU) history for a selected set to identify a least recently used way within the cache as a candidate way to store an information item associated with the first thread;
determining whether the candidate way is within the first or the third portion of the cache;
if the candidate way is within the first or the third portion of the cache, then storing the information associated with the first thread in the candidate way; and
if the candidate way is within the second portion of the cache, then identifying a further way within the cache as being the candidate way, wherein the further way is not the candidate way previously identified.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of partitioning a memory resource, associated with a multi-threaded processor, includes defining the memory resource to include first and second portions that are dedicated to the first and second threads respectively. A third portion of the memory resource is then designated as being shared between the first and second threads. Upon receipt of an information item, (e.g., a microinstruction associated with the first thread and to be stored in the memory resource), a history of Least Recently Used (LRU) portions is examined to identify a location in either the first or the third portion, but not the second portion, as being a least recently used portion. The second portion is excluded from this examination on account of being dedicated to the second thread. The information item is then stored within a location, within either the first or the third portion, identified as having been least recently used.
133 Citations
35 Claims
-
1. A method including:
-
dedicating a first portion comprising one or more ways of an N way set associative cache exclusively to a first thread; dedicating a second portion comprising one or more ways of the cache exclusively to a second thread; dynamically sharing a third portion comprising one or more ways of the cache between the first and second threads; and performing victim selection in the cache by, examining a Least Recently Used (LRU) history for a selected set to identify a least recently used way within the cache as a candidate way to store an information item associated with the first thread; determining whether the candidate way is within the first or the third portion of the cache; if the candidate way is within the first or the third portion of the cache, then storing the information associated with the first thread in the candidate way; and if the candidate way is within the second portion of the cache, then identifying a further way within the cache as being the candidate way, wherein the further way is not the candidate way previously identified. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An N way set associative cache comprising:
-
a first portion comprising one or more ways dedicated to utilization by a first thread executing within a multi-threaded processor; a second portion comprising one or more ways dedicated to utilization by a second thread executing within the multi-threaded processor; a third portion comprising one or more ways shared by the first and second threads; and selection logic to examine a Least Recently Used (LRU) history for a selected set to identify a least recently used way within the cache as a candidate way within which to store an information item associated with the first thread, to store the information associated the first thread in the candidate way if the candidate way is within the first or third portions of the cache, but if the candidate way is within the second portion of the cache, then to identify a further way within the cache as being the candidate way, wherein the further way is not the candidate way previously identified. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method including:
-
configuring an N way set associative cache, associated with a multi-threaded processor, to include first and second portions comprising one or more ways dedicated to the first and second threads respectively and a third portion comprising one or more ways shared between the first and second threads; for an information item associated with the first thread, examining for a selected set a history of least recently used ways until one is found that is within one of the first and third portions; and storing the information item within the found way. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computer storage storing a sequence of instructions that, when executed within a processor, causes the processor to perform the steps of:
-
dedicating a first portion comprising one or more ways of an N way set associative cache exclusively to a first thread; dedicating a second portion comprising one or more ways of the cache exclusively to a second thread; dynamically sharing a third portion comprising one or more ways of the cache between the first and second threads; and performing victim selection in the cache by, examining a Least Recently Used (LRU) history for a selected set to identify a least recently used way within the cache as a candidate way to store an information item associated with the first thread; determining whether the candidate way is within the first or the third portion of the cache; if the candidate way is within the first or the third portion of the cache, then storing the information associated with the first thread in the candidate way; and if the candidate way is within the second portion of the cache, then identifying a further way within the cache as being the candidate way, wherein the further way is not the candidate way previously identified. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. A method comprising:
-
detecting misses in an N way set associative cache of a processor; performing victim selection responsive to each of the misses in a manner that partitions the capacity of the cache to make a first and second portion each comprising one or more ways available for replacement respectively only by each of a first and second instruction threads while at the same time that defines a shared portion comprising one or more ways available to both the first and second instruction threads, wherein the performing victim selection responsive to each of the misses includes examining entries of a least recently used history until an available one of said ways within a selected set is found. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. An apparatus comprising:
a processor including, an N way set associative cache having a storage capacity, and victim selection logic including logic to partition the storage capacity of the cache having a dedicated portion comprising one or more ways for each of a first and second instruction threads while at the same time having a shared portion comprising one or more ways accessible by both the first and second threads, wherein the victim selection logic responsive to each of the misses in the cache to examine entries of a least recently used history for a selected set of the cache until one of said ways is found that is available to the instruction thread causing that cache miss. - View Dependent Claims (31, 32, 33, 34, 35)
Specification