Energy Consumption Analysis of Software for Smartphones

Occurrences : 


Nombre d'étudiants minimum: 


Nombre d'étudiants maximum: 


Nombre d'instances : 


The service uptime of battery-powered devices, e.g., smartphones or tablets, is a sensitive issue for nearly any user. Optimizing the battery-lifetime of smartphones is therefore a hot topic in the research and the industry arenas. Minimizing energy consumption of electronic devices can be achieved by hardware optimization, and gains can also be attained at the software layer. On the other hand, energy can also be controlled during runtime, for example by clock gating active components, introducing sleeping states for I/O devices, or also via dynamic voltage frequency scaling (DVFS).

Dynamic voltage and frequency scaling (DVFS) allows the CPU to operate at a regime that is less energy demanding, while however trading of some performance, e.g., execution time. It is shown that by scaling the CPU frequency the energy consumption is convex for small algorithms. This means there exist an optimal CPU frequency that is not the maximum nor the minimum CPU frequency, which minimizes the energy consumption.

While changing frequency regime from one to another the execution time and energy consumption are affected in one way or another. In fact, there are certain frequency transitions where both the energy consumption and execution time are reduced, whereas other transitions yield a gain only for either one, or for none. Finding frequency configurations where both energy consumption and execution time are increased is the objective of this PAF project.

The project will consist in running software benchmarks on an application processor commonly found in high-end smart phones while conducting power and performance measurements. The performance and energy consumption impact of different CPU frequency regimes will be analyzed. Eventually this should also allow us to define an energy profile for software programs (running on smartphones), similar to the energy profiles used for hardware circuits.