Potential Energy Savings Through Eliminating Unnecessary Writes in the Cache-Memory Hierarchy
Many different areas of research are addressing reduction of energy in computing systems. These include new semiconductor technologies, low-power design rules, clock gating, and voltage/frequency scaling, just to name a few. This paper presents a new energy reduction approach involving the compiler and computer system architecture. Eliminating unnecessary writes in the system has the potential to reduce energy by 15 percent in the cache-memory hierarchy. Unnecessary writes occur when modified cache lines are evicted and written back to the next cache level or to main memory even though the modified data contained in those lines is no longer needed by the program or does not change the existing memory contents. Unnecessary writes include values in retreating stacks and values in heap objects that have been deallocated. Unnecessary writes also occur as a result of unmodified data values being written back as part of a modified cache line. Unnecessary writes affect a computer system’s performance in several ways. The energy used by these writes is wasted energy. The unnecessary writes require execution time as memory bandwidth and they reduce the component lifetime of limited write-cycle technologies such as flash memory or phase-change memory (PCM). This paper characterizes the number and type of unnecessary writes through the memory hierarchy and quantifies the amount of potential energy savings that can be obtained from eliminating unnecessary writes.