Patent Publication Number: US-7711901-B2

Title: Method, system, and apparatus for an hierarchical cache line replacement

Description:
FIELD OF INVENTION 
   The present disclosure is related to cache memory, such as for a cache line replacement scheme. 
   BACKGROUND 
   As is well-known, a cache stores information for a computer or computing system in order to decrease data retrieval times for a processor. Some examples of computing systems are a personal digital assistant, internet tablet, and a cellular phone. The cache stores specific subsets of information in high-speed memory. A few examples of information are instructions, addresses, and data. When a processor requests a piece of information, the system checks the cache first to see if the information is stored within the cache. If so, the processor can retrieve the information much faster than if the data was stored in other computer readable media, such as, random access memory, a hard drive, compact disc read-only memory (CD ROM), or a floppy disk. 
   Cache memories have a range of different architectures with respect to addresses locations mapped to predetermined cache locations. For example, cache memories may be direct mapped or fully associative. Alternatively, another cache memory is a set associative cache, which is a compromise between a direct mapped cache and fully associative cache. In a direct mapped cache, there is one address location in each set. Conversely, a fully associative cache that is N-way associative has a total number of N blocks in the cache. Finally, a set associative cache, commonly referred to as N-way set associative, divides the cache into a plurality of N ways wherein each address is searched associatively for a tag. 
   Efficient cache operation utilizes cache management techniques for replacing cache locations in the event of a cache miss. In a typical cache miss, the address and data fetched from the system or main memory is stored in cache memory. However, the cache needs to determine which cache location is to be replaced by the new address and data from system memory. One technique for replacing cache locations is implementing a protocol with least recently used (LRU) bits. Least recently used bits are stored for each cache location and are updated when the cache location is accessed or replaced. Valid bits determine the coherency status of the respective cache location. Therefore, based on the value of the least recently used bits and the valid bits, the cache effectively replaces the cache locations where the least recently used bits indicate the line is the least recently used or the line is not valid. There is a variety of replacement protocols utilized by cache memory, such as, pseudo-LRU, random, and not recently used (NRU) protocols. However, the present replacement protocols may result in increased inter-cache traffic. For example, replacing a line from an inclusive last level cache requires the same line to be evicted from all the lower level caches. Therefore, this results in increased inter-cache traffic. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Claimed subject matter is particularly and distinctly pointed out in the concluding portion of the specification. The claimed subject matter, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which: 
       FIG. 1  is a diagram illustrating inter-cache traffic. 
       FIG. 2  is a table of a state of a cache line versus cost of traffic as utilized by a first embodiment. 
       FIG. 3  is a table of the next two victims for a plurality of LRU states of a cache line as utilized by a first embodiment. 
       FIG. 4  is a table of the expected victim for each combination of potential cache line candidates for replacement as utilized by a first embodiment. 
       FIG. 5  is a schematic as utilized by a first embodiment. 
       FIG. 6  is a table of a state of a cache line versus cost of traffic as utilized by a second embodiment. 
       FIG. 7  is a table of the next two victims for a plurality of LRU states of a cache line as utilized by a second embodiment. 
       FIG. 8  is a table of the expected victim for each combination of potential cache line candidates for replacement as utilized by a second embodiment. 
       FIG. 9  is a schematic as utilized by a second embodiment. 
       FIG. 10  is a system as utilized by multiple embodiments. 
   

   DETAILED DESCRIPTION 
   In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the claimed subject matter. However, it will be understood by those skilled in the art that the claimed subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the claimed subject matter. 
   An area of current technological development relates to improving the speed and efficiency of cache memory replacement protocols. As previously described, the present replacement protocols may result in increased inter-cache traffic. For example, replacing a line from an inclusive last level cache requires the same line to be evicted from all the lower level caches. Therefore, this results in increased inter-cache traffic. For example,  FIG. 1  depicts inter-cache traffic between a Level 2 (L2) and Level 1 (L1) cache. 
   In contrast, the claimed subject matter facilitates a replacement protocol for selecting a victim line for replacement based at least in part on the potential inter-cache traffic associated with that particular victim line. Therefore, selecting a victim line based on the inter-cache traffic allows for efficient cache line replacement and/or decreasing the contention on the caches and various levels of the caches which results in more efficient bus utilization. In one embodiment, the replacement protocol is a four-way pseudo least recently used (LRU) replacement protocol and supports the MESI (modified Exclusive Shared Invalidate). In another embodiment, the replacement protocol is a four-way pseudo least recently used (LRU) replacement protocol and supports the MESI (modified Exclusive Shared Invalidate) and additional cache states such as MI, MS, and ES. The additional cache states, MI, MS, and ES facilitate snoop filtering. To explain these states, one interprets the cache states from a system perspective, the first letter stands for state of the line in the last level cache, in contrast, the second letter stands for line in the next lower level cache. As previously described, the same definitions apply for M, E, S, and I. For example, a cache line with a MI state is interpreted as having a modified state for the line in the last level cache, while having a invalidate statues for the line in the next lower level cache. 
   The claimed subject matter facilitates a LRU protocol to support a single core processor, as depicted in connection with  FIGS. 2-5 , and to support a multi-core processor, as depicted in connection with  FIGS. 6-9 , and a system that utilizes either a single or multi-core processor, or both, as depicted in connection with  FIG. 10 . 
     FIG. 2  is a table of a state of a cache line versus cost of traffic as utilized by an embodiment. The table depicts possible values of cache states ( 202 ), the inter-cache traffic ( 204 ), and the relative cost of evicting a cache line with the particular cache state ( 206 ). Evicting a cache line may result in different amounts of inter-cache traffic. For example, evicting a cache line in a level two (L2 cache) with a modified state (M state) utilizes two additional transactions: first, an invalidate for removing the line from all lower level caches and second, a writeback to main memory for recording the modified data. 
   In contrast, evicting a cache line in an Invalidate state (I state) does not cause any additional traffic because there is no need to remove this line from any other caches. Therefore, a cost of zero is assigned to this cache state in the table. 
     FIG. 3  is a table of the candidates for the next two victims for a plurality of LRU states of a cache line as utilized by an embodiment. In this embodiment, a four way pseudo LRU replacement protocol is utilized with three bits for each set (as depicted in column  302 ). For example, each bit is a node in a binary tree that points to the next victim. Consequently, all paths leading to the chosen way are inverted for pointing to the next victim to the other side of the tree. Therefore, in one aspect, the table depicts the next two victims for each possible LRU state (as depicted in column  304 ). 
     FIG. 4  is a table of the expected victim for each combination of potential cache line candidates for replacement as utilized by an embodiment. As previously described, the table in connection with  FIG. 3  depicted the way candidates for possible replacement.  FIG. 4  utilizes this information by depicting every combination of states for the two possible candidates and selecting one of the candidates based at least in part on the inter-cache traffic. For example, each possible state for the two candidates is depicted in each column of State  1  and State  2 . In contrast, the victim column depicts which one of the two candidates will be replaced. In one embodiment, the first candidate (state  1 ) will be replaced when the victim value is a zero. In contrast, the second candidate (state  2 ) will be replaced when the victim value is a one. 
   Therefore, the victim is chosen based on the two possible candidates depicted in connection with  FIG. 3  while considering the cost function depicted in connection with  FIG. 2 . For example, let us analyze the first set of candidates in the second line of the table. The candidate for state  1  has a modified state while the candidate for state  2  has an exclusive state, The cost function analysis from  FIG. 2  is applied. Consequently, the second candidate is chosen since it generates less inter-cache traffic (2 versus 4 for relative cost for E vs. M). 
     FIG. 5  is a schematic as utilized by an embodiment. In one aspect, the schematic depicts the logic associated with the analysis described in connection with  FIG. 4  for selecting one of the two candidates for replacement. As previously described, the state of each way is analyzed and the cost function (depicted in connection with  FIG. 2 ) selects the victim for replacement at multiplexer  504 . 
     FIG. 6  is a table of a state of a cache line versus cost of traffic as utilized by an embodiment. In this embodiment,  FIG. 6  supports a multi-core processor or a system with a multi-core processor. The table depicts possible values of cache states ( 602 ), the number of cores with the data ( 604 ), the inter-cache traffic ( 606 ), and the relative cost of evicting a cache line with the particular cache state ( 608 ). Evicting a cache line may result in different amounts of inter-cache traffic. For example, evicting a cache line in a level two (L2 cache) with a modified state (M state) for one core utilizes two additional transactions: first, an invalidate for removing the line from all lower level caches and second, a writeback to main memory for recording the modified data. Consequently, it has a high relative cost of seven associated with this state. 
   In contrast, evicting a cache line in an Invalidate state (I state) does not cause any additional traffic because there is no need to remove this line from any other caches. Therefore, a cost of zero is assigned to this cache state in the table. 
     FIG. 7  is a table of the candidates for the next two victims for a plurality of LRU states of a cache line as utilized by an embodiment. In this embodiment, a four way pseudo LRU replacement protocol is utilized with three bits for each set (as depicted in column  302 ). For example, each bit is a node in a binary tree that points to the next victim. Consequently, all paths leading to the chosen way are inverted for pointing to the next victim to the other side of the tree. Therefore, in one aspect, the table depicts the next two victims for each possible LRU state (as depicted in column  304 ). 
     FIG. 8  is a table of the expected victim for each combination of potential cache line candidates for replacement as utilized by an embodiment. As previously described, the table in connection with  FIG. 7  depicted the way candidates for possible replacement.  FIG. 8  utilizes this information by depicting every combination of states for the two possible candidates and selecting one of the candidates based at least in part on the inter-cache traffic. For example, each possible state for the two candidates is depicted in each column of State  1 /#cores and State  2 /#cores (and includes the number of cores with the relevant data). In contrast, the victim column depicts which one of the two candidates will be replaced. In one embodiment, the first candidate (state  1 ) will be replaced when the victim value is a zero. In contrast, the second candidate (state  2 ) will be replaced when the victim value is a one. 
   Therefore, the victim is chosen based on the two possible candidates depicted in connection with  FIG. 7  while considering the cost function depicted in connection with  FIG. 6 . For example, let us analyze the first set of candidates in the second line of the table. The candidate for state  1  has a modified state for one corewhile the candidate for state  2  has an exclusive state, The cost function analysis from  FIG. 6  is applied. Consequently, the second candidate is chosen since it generates less inter-cache traffic (3 versus 7 for relative cost for E vs. M). 
     FIG. 9  is a schematic as utilized by an embodiment. In one aspect, the schematic depicts the logic associated with the analysis described in connection with  FIG. 8  for selecting one of the two candidates for replacement based on the state of the cache line in the respective way and the value of the core bit. In one embodiment, the core bit is stored with each cache line that indicates whether a lower level cache has a copy of the cache line. In this embodiment, a single core bit is utilized for each core that shares the last level cache. As previously described, the state of each way is analyzed and the cost function (depicted in connection with  FIG. 6 ) selects the victim for replacement at multiplexer  904 . 
     FIG. 10  is a system for multiple embodiments. The multiple embodiments,  1002  and  1004  are intended to represent a range of systems having single or multiple processors, for example, computer systems, real-time monitoring systems, etc. Alternative multiprocessor systems can include more, fewer and/or different components. In certain situations, the cache management techniques described herein can be applied to both single processor and to multiprocessor systems. The bus system, CFB (cacheing frontside bus) can include any number of buses and associated interconnection circuitry, for example, bus bridges. The processors can communicate with a memory controller hub (MCH). 
   The systems can support any combination of dynamic (e.g., random access memory) and static (e.g., read-only memory, CD-ROM, disk storage, flash memory) memory devices and associated drives, where appropriate. The memory devices are used to store information and instructions to be executed by processor or multiple processors. 
   Instructions can be provided to the system  1002  or  1004  from a static or remote storage device, such as magnetic disk, a read-only memory (ROM) integrated circuit, CD-ROM, DVD, via a remote connection that is either wired or wireless, etc. In alternative embodiments, hard-wired circuitry can be used in place of or in combination with software instructions. Thus, execution of sequences of instructions is not limited to any specific combination of hardware circuitry and software instructions. 
   Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
   In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.