Energy can be optimized for constrained-budget embedded system by using energy-aware processors and by techniques to minimize energy complexity in software coding. With sophisticated processor already in use, the latter is becoming the order of the day. For example, in Windows 8, a Battery Life Analyzer assists developers write energy-aware applications. In this paper, we focus on software energy optimization using simulation. We first develop a custom 8051 board to measure the energy consumed by a program (coded with a fixed set of instructions) excluding any additional overhead (of OS or monitor codes). We then estimate and trace the energy consumption of a software on this board and validate with an EFM32 Board. Based on these experimental data, we analyze different algorithms and data structures to identify factors to effectively improve energy consumption. Finally, we develop a simulator for energy estimation using PIN, a dynamic instrumentation framework by Intel. We validate the results of the simulator against those of the boards to suggest a simulation-based approach that can be developed into active assistance in a compiler for keeping software developers abreast of the energy needs.
[1]
Harish Patil,et al.
Pin: building customized program analysis tools with dynamic instrumentation
,
2005,
PLDI '05.
[2]
Hagen Höpfner,et al.
Resource Substitution for the Realization of Mobile Information Systems
,
2007,
ICSOFT.
[3]
Hagen Höpfner,et al.
Towards an Energy-Consumption Based Complexity Classification for Resource Substitution Strategies
,
2010,
Grundlagen von Datenbanken.
[4]
Mark C. Johnson,et al.
Software design for low power
,
1997
.
[5]
Suman Roychoudhury,et al.
Choosing the "Best" Sorting Algorithm for Optimal Energy Consumption
,
2009,
ICSOFT.