SoftExplorer: Estimating and Optimizing the Power and Energy Consumption of a C Program for DSP Applications

<p/> <p>We present a method to estimate the power and energy consumption of an algorithm directly from the C program. Three models are involved: a model for the targeted processor (the power model), a model for the algorithm, and a model for the compiler (the prediction model). A functio...

Full description

Bibliographic Details
Main Authors: Senn Eric, Laurent Johann, Julien Nathalie, Martin Eric
Format: Article
Language:English
Published: SpringerOpen 2005-01-01
Series:EURASIP Journal on Advances in Signal Processing
Subjects:
Online Access:http://dx.doi.org/10.1155/ASP.2005.2641
Description
Summary:<p/> <p>We present a method to estimate the power and energy consumption of an algorithm directly from the C program. Three models are involved: a model for the targeted processor (the power model), a model for the algorithm, and a model for the compiler (the prediction model). A functional-level power analysis is performed to obtain the power model. Five power models have been developed so far, for different architectures, from the simple RISC ARM7 to the very complex VLIW DSP TI C64. Important phenomena are taken into account, like cache misses, pipeline stalls, and internal/external memory accesses. The model for the algorithm expresses the algorithm's influence over the processor's activity. The prediction model represents the behavior of the compiler, and how it will allow the algorithm to use the processor's resources. The data mapping is considered at that stage. We have developed a tool, SoftExplorer, which performs estimation both at the C-level and the assembly level. Estimations are performed on real-life digital signal processing applications with average errors of <inline-formula><graphic file="1687-6180-2005-728647-i1.gif"/></inline-formula>% at the C-level and <inline-formula><graphic file="1687-6180-2005-728647-i2.gif"/></inline-formula>% at the assembly level. We present how SoftExplorer can be used to optimize the consumption of an application. We first show how to find the best data mapping for an algorithm. Then we demonstrate a method to choose the processor and its operating frequency in order to minimize the global energy consumption.</p>
ISSN:1687-6172
1687-6180