US2008010413A1PendingUtilityA1

Method and apparatus for application-specific dynamic cache placement

45
Assignee: KAILAS KRISHNAN KUNJUNNYPriority: Jul 7, 2006Filed: Jul 7, 2006Published: Jan 10, 2008
Est. expiryJul 7, 2026(expired)· nominal 20-yr term from priority
G06F 12/0842G06F 9/3824G06F 12/121G06F 9/30043
45
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

One embodiment of the present method and apparatus for application-specific dynamic cache placement includes grouping sets of data in a cache memory system into two or more virtual partitions and processing a load/store instruction in accordance with the virtual partitions, where the load/store instruction specifies at least one of the virtual partitions to which the load/store instruction is assigned.

Claims

exact text as granted — not AI-modified
1 . A method for accessing data in a cache memory system, the method comprising:
 grouping sets of data in the cache memory system into two or more virtual partitions; and   processing a load/store instruction in accordance with the two or more virtual partitions, where the load/store instruction specifies at least one of the two or more virtual partitions to which the load/store instruction is assigned.   
   
   
       2 . The method of  claim 1 , wherein the processing comprises:
 checking at least a subset of the two or more virtual partitions for a data item referenced by the load/store instruction;   fetching the data item referenced by the load/store instruction from one of the two or more virtual partitions, if the data item is located therein and the load/store instruction specifies a load operation;   storing the data item referenced by the load/store instruction in one of the two or more virtual partitions, if the load/store instruction specifies a store operation; and   loading the data item to the at least one of the two or more virtual partitions to which the load/store instruction is assigned, if the data item is not located in the subset of the two or more virtual partitions.   
   
   
       3 . The method of  claim 2 , wherein the checking comprises:
 checking each of the two or more virtual partitions for the data item.   
   
   
       4 . The method of  claim 2 , wherein the checking comprises:
 identifying one or more sets in the cache memory system that comprise the at least one of the two or more virtual partitions to which the load/store instruction is assigned; and   checking the one or more sets for the data item.   
   
   
       5 . The method of  claim 2 , wherein the loading and storing comprises:
 selecting a virtual partition from among two or more virtual partitions to which the load/store instruction is assigned, in accordance with a cache replacement policy.   
   
   
       6 . The method of  claim 1 , wherein the at least one of the two or more virtual partitions to which the load/store instruction is assigned is specified by an identifier in the load/store instruction. 
   
   
       7 . The method of  claim 6 , wherein the load/store instruction comprises a number of extra bits for specifying the identifier. 
   
   
       8 . The method of  claim 6 , wherein the identifier is implemented as a prefix instruction to the load/store instruction, the prefix instruction specifying one or the two or more virtual partitions that is associated with a next sequential load/store instruction. 
   
   
       9 . The method of  claim 6 , wherein the identifier is specified in accordance with one or more registers implemented as operands of the load/store instruction. 
   
   
       10 . The method of  claim 1 , wherein the grouping comprises:
 identifying one or more load/store instructions that are encountered most frequently from among a plurality of load/store instructions;   identifying one or more data items accessed by the one or more load/store instructions;   modeling the one or more load/store instructions as a graph; and   assigning each of the one or more load/store instructions to at least one virtual partition in accordance with the graph.   
   
   
       11 . The method of  claim 10 , wherein the modeling comprises:
 dividing each of the one or more load/store instructions into one or more sub-instructions, each of the one or more sub-instructions comprising a node of the graph;   calculating an affinity metric for each pair of load/store instructions within the one or more load/store instructions;   calculating a conflict metric for each pair of load/store instructions; and   assigning weights to edges of the graph in accordance with the affinity metric and the conflict metric, the weights indicating whether each pair of load/store instructions should be assigned to a common virtual partition or to different virtual partitions.   
   
   
       12 . A computer readable medium containing an executable program for accessing data in a cache memory system, where the program performs the steps of:
 grouping sets of data in the cache memory system into two or more virtual partitions; and   processing a load/store instruction in accordance with the two or more virtual partitions, where the load/store instruction specifies at least one of the two or more virtual partitions to which the load/store instruction is assigned.   
   
   
       13 . The computer readable medium of  claim 12 , wherein the processing comprises:
 checking at least a subset of the two or more virtual partitions for a data item referenced by the load/store instruction;   fetching the data item referenced by the load/store instruction from one of the two or more virtual partitions, if the data item is located therein and the load/store instruction specifies a load operation;   storing the data item referenced by the load/store instruction in one of the two or more virtual partitions, if the load/store instruction specifies a store operation; and   loading the data item to the at least one of the two or more virtual partitions to which the load/store instruction is assigned, if the data item is not located in the subset of the two or more virtual partitions.   
   
   
       14 . The computer readable medium of  claim 13 , wherein the checking comprises:
 checking each of the two or more virtual partitions for the data item.   
   
   
       15 . The computer readable medium of  claim 13 , wherein the checking comprises:
 identifying one or more sets in the cache memory system that comprise the at least one of the two or more virtual partitions to which the load/store instruction is assigned; and   checking the one or more sets for the data item.   
   
   
       16 . The computer readable medium of  claim 12 , wherein the at least one of the two or more virtual partitions to which the load/store instruction is assigned is specified by an identifier in the load/store instruction. 
   
   
       17 . The computer readable medium of  claim 16 , wherein the load/store instruction comprises a number of extra bits for specifying the identifier. 
   
   
       18 . The computer readable medium of  claim 12 , wherein the grouping comprises:
 identifying one or more load/store instructions that are encountered most frequently from among a plurality of load/store instructions;   identifying one or more data items accessed by the one or more load/store instructions;   modeling the one or more load/store instructions as a graph; and   assigning each of the one or more load/store instructions to at least one virtual partition in accordance with the graph.   
   
   
       19 . The computer readable medium of  claim 18 , wherein the modeling comprises:
 dividing each of the one or more load/store instructions into one or more sub-instructions, each of the one or more sub-instructions comprising a node of the graph;   calculating an affinity metric for each pair of load/store instructions within the one or more load/store instructions;   calculating a conflict metric for each pair of load/store instructions; and   assigning weights to edges of the graph in accordance with the affinity metric and the conflict metric, the weights indicating whether each pair of load/store instructions should be assigned to a common virtual partition or to different virtual partitions.   
   
   
       20 . A cache controller for controlling access to a cache memory, the cache controller comprising:
 means for grouping sets of data in the cache memory system into two or more virtual partitions; and   means for processing a load/store instruction in accordance with the two or more virtual partitions, where the load/store instruction specifies at least one of the two or more virtual partitions to which the load/store instruction is assigned.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.