Cooperative caching with keep-me and evict-me
Document Type
Conference Proceeding
Publication Date
12-1-2005
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 setassociative 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 evictme. 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.
Publication Title
Proceedings - Annual Workshop on Interaction between Compilers and Computer Architectures, INTERACT
Recommended Citation
Sartor, J.,
Venkiteswaran, S.,
McKinley, K.,
&
Wang, Z.
(2005).
Cooperative caching with keep-me and evict-me.
Proceedings - Annual Workshop on Interaction between Compilers and Computer Architectures, INTERACT,
2005, 46-57.
http://doi.org/10.1109/INTERACT.2005.7
Retrieved from: https://digitalcommons.mtu.edu/michigantech-p/10643