Pacman: program-assisted cache management

  • Authors:
  • Jacob Brock;Xiaoming Gu;Bin Bao;Chen Ding

  • Affiliations:
  • University of Rochester, Rochester, NY, USA;Azul Systems, Inc., Sunnyvale, CA, USA;Adobe Systems Incorporated, Waltham, MA, USA;University of Rochester, Rochester, NY, USA

  • Venue:
  • Proceedings of the 2013 international symposium on memory management
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

As caches become larger and shared by an increasing number of cores, cache management is becoming more important. This paper explores collaborative caching, which uses software hints to influence hardware caching. Recent studies have shown that such collaboration between software and hardware can theoretically achieve optimal cache replacement on LRU-like cache. This paper presents Pacman, a practical solution for collaborative caching in loop-based code. Pacman uses profiling to analyze patterns in an optimal caching policy in order to determine which data to cache and at what time. It then splits each loop into different parts at compile time. At run time, the loop boundary is adjusted to selectively store data that would be stored in an optimal policy. In this way, Pacman emulates the optimal policy wherever it can. Pacman requires a single bit at the load and store instructions. Some of the current hardware has partial support. This paper presents results using both simulated and real systems, and compares simulated results to related caching policies.