|
|
8th International Workshop on
Software and Compilers for Embedded Systems
SCOPES 2004
Workshop Program - Presentation Abstract
| Combined Data Partitioning and Loop Nest Splitting for Energy
Consumption Minimization |
Heiko Falk - University of Dortmund, Computer Science 12, Germany
Manish Verma - University of Dortmund, Computer Science 12, Germany
|
| For mobile embedded systems, the energy consumption is a limiting
factor because of today's battery capacities. Besides the processor,
memory accesses consume a high amount of energy. The use of additional
less power hungry memories like caches or scratchpads is thus common.
This paper presents a combined approach for energy consumption
minimization consisting of two complementary and phase-coupled
optimizations, viz. data partitioning and loop nest splitting. In a
first step, data partitioning partitions large arrays found in typical
embedded software into smaller ones which are placed onto an on-chip
scratchpad memory. Although being effective w.r.t. energy dissipation,
this optimization adds overhead to the code since the correct part of a
partitioned array has to be selected at runtime. Therefore, the control
flow is optimized as a second step in our framework. In this phase, loop
nests containing if-statements are split using genetic algorithms
leading to minimized if-statement executions. However, loop nest
splitting leads to an increase in code size and can potentially annul
the program layout achieved by the first step. Consequently, the
proposed approach iteratively applies these optimizations till a local
optimum is found. The proposed framework of combined memory and control
flow optimization leads to considerable energy savings for a
representative set of typical embedded software routines. Using an
accurate energy model for the ARM7 processor, energy savings between
20.3% and 43.3% were measured. |
Presentation
|