Cooperative Caching with Keep-Me and Evict-Me

  • Authors:
  • Jennifer B. Sartor;Subramaniam Venkiteswaran;Kathryn S. McKinley;Zhenlin Wang

  • Affiliations:
  • University of Texas at Austin;University of Texas at Austin;University of Texas at Austin;Michigan Technological University

  • Venue:
  • INTERACT '05 Proceedings of the 9th Annual Workshop on Interaction between Compilers and Computer Architectures
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

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 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.