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%.