Title :
Cooperative caching with keep-me and evict-me
Author :
Sartor, Jennifer B. ; Venkiteswaran, Subramaniam ; McKinley, Kathryn S. ; Wang, Zhenlin
Author_Institution :
Dept. of Comput. Sci., Texas Univ., Austin, TX, USA
Abstract :
Cooperative caching seeks to improve memory system performance by using compiler locality hints to assist hardware cache decisions. In this paper, the compiler suggests cache lines to keep or evict in set-associative caches. A compiler analysis predicts data that will be and will not be reused, and annotates the corresponding memory operations with a keep-me or evict-me hint. The architecture maintains these hints on a cache line and only acts on them on a cache miss. Evict-me caching prefers to evict lines marked evict-me. Keep-me caching retains keep-me lines if possible. Otherwise, the default replacement algorithm evicts the least-recently-used (LRU) line in the set. This paper introduces the keep-me hint, the associated compiler analysis, and architectural support. The keep-me architecture includes very modest ISA support, replacement algorithms, and decay mechanisms that avoid retaining keep-me lines indefinitely. Our results are mixed for our implementation of keep-me, but show it has potential. We combine keep-me and evict-me from previous work, but find few additive benefits due to limitations in our compiler algorithm, which only applies each independently rather than performing a combined analysis.
Keywords :
cache storage; content-addressable storage; memory architecture; program compilers; compiler locality hint; cooperative caching; evict-me caching; hardware cache decision; keep-me caching; least-recently-used cache line; Computer science; Cooperative caching; Data analysis; Delay; Hardware; Instruction sets; Partitioning algorithms; Prefetching; Program processors; System performance;
Conference_Titel :
Interaction between Compilers and Computer Architectures, 2005. INTERACT-9. 9th Annual Workshop on
Print_ISBN :
0-7695-2321-8
DOI :
10.1109/INTERACT.2005.7