Characterizing and Exploiting Small-Value Memory Instructions
Journal article, 2014
This paper exploits small-value locality to accelerate the execution of memory instructions. We find that small-value loads-loads with small-value operands of 8 bits or less-are common across 52 applications from the desktop, embedded, and media domains. We show that the relative occurrences of small-value loads remain fairly stable during the program execution. Moreover, we establish that the frequency of small-value loads are almost independent of compiler and input data. We then introduce the concept of small-value caches (SVC) to compactly store small-value memory words. We show that SVCs provide significant speedup and reduce the overall energy dissipation with negligible chip-area overhead.