Memory Redundancy Elimination to Improve Application Energy Efficiency

Keith D. Cooper and Li Xu

To appear at 16th Workshop on Languages and Compilers for Parallel Computing (LCPC03), College Station, TX, 2-4 October 2003

Full Text, Printable Abstract.


Abstract

Application energy consumption has become an increasingly important issue for both high-end microprocessors and mobile and embedded devices. A multitude of circuit and architecture-level techniques have been developed to improve application energy efficiency. However, relatively less work studies the effects of compiler transformations in terms of application energy efficiency. As the software running on these platforms ultimately determines system activity and its energy consumption, it is therefore important to measure energy efficiency at the application level and apply code transformations to reduce energy consumption. In this paper, we use energy-estimation tools to profile the execution of benchmark applications. The experimental results show that energy consumption due to execution of memory instructions accounts for a large share of total application energy. An effective compiler technique that can improve application energy efficiency is memory redundancy elimination, which removes redundant memory instructions from the executed instruction stream. This technique reduces both application execution cycles and the number of cache accesses. We evaluate the energy improvement over 12 benchmark applications from SPEC2000 and MediaBench. The results show that memory redundancy elimination can significantly reduce energy consumption in the processor clocking network and the instruction and data caches, which are the top energy-consuming components. The overall application energy consumption can be reduced by up to 15%, and the reduction in terms of energy-delay product is up to 24%.