GIT-CERCS-07-18
    Subramanian Ramaswamy, Sudhakar Yalamanchili,
    Improving Cache Efficiency via Resizing + Remapping

    In this paper we propose techniques to dynamically downsize or upsize a cache accompanied by cache set/line shutdown to produce efficient caches. Unlike previous approaches, resizing is accompanied by a remapping of memory into the upsized or downsized cache, thus avoiding misses to sets/lines that are shut off. The paper first provides an analysis into the causes of energy inefficiencies revealing a simple model for analyzing energy efficient behavior. Based on this model we propose the concept of "folding" - memory regions that normally map to disjoint cache resources are combined to share one or more cache sets producing a new placement function. Folding enables powering down cache sets at the expense of possible increasing conflict misses. Effective folding heuristics can substantially increase energy efficiency at the expense of acceptable increase in execution time. We target the L2 cache because of its larger size and greater energy consumption. Our techniques increase cache energy efficiency by 20%, and reduce the EDP (energy delay product) by up to 45% with an IPC degradation of less than 4%. The results also indicate opportunity for improving cache efficiencies further via cooperative compiler interactions.