Dynamic Cache Partitioning for CMP/SMT Systems
G. Edward Suh, Larry Rudolph, Srinivas Devadas · 2004
Abstract. This paper proposes a technique for dynamic cache partitioning amongst simultaneously executing processes/threads. We present a general partitioning scheme that can be applied to set-associative caches at any partition granularity. Furthermore, in our scheme, processes/threads can have overlapping partitions, which provides more degrees of freedom when partitioning caches with low associativity. Since memory reference characteristics of processes/threads can change very quickly, our method collects the miss-rate characteristics of processes/threads at run-time, and partitions the cache amongst the executing ones. Partition sizes are varied dynamically to improve miss-rates. Trace-driven simulation results show a relative improvement in the L2 hit-rate of up to 40.5 % over those generated by the standard least recently used replacement policy, and IPC improvements of up to 17%. Our results show that smart cache management and scheduling is important for CMP/SMT systems to achieve high performance. 1.