InitRech 2015/2016, sujet 17

De Wiki de Projets IMA

Fast and Accurate Embedded Systems Energy Characterization Using Non-intrusive Measurements

Synthesis

Introduction

This paper is the proposition of a method of energy characterization using non-intrusive measurements.
Foremost, the author presents us the problematic : we are now able to build tiny platforms with tremendous processing power, but, this processing power needs a lot of energy to work.
Hence, our need to measure the energy consumption of every platform in order to improve them in energetic level.
For these measurements, we can build our models following several methods. The two mentioned are either electrical stimulation or inter/extrapolation from measures on a prototype.

State of the art

The second section of the paper is about the state of the art of the non-intrusive measurement.
This part deals with different methods used to characterize VLSI (Very Large Scale Integration) circuits. These VLSI circuits can be organized using two criteria : the level of hardware abstraction of the circuit and the calibration method.

For the first criterion there are many methods that can be used to measure the energy consumption :

  • For the least abstract circuits, we can compute every change of state for all the transistors in the circuit. This is a very accurate solution but a very long one to simulate.
  • At the upper level of abstraction (architectural level), the system is divided into functional units that can be represented by a specific model ( whose energy consumption is known). To be even more accurate, these units can be subdivided into sub-blocks (whose energy consumption is known).
  • At the highest level of abstraction (instruction level), the models are based on events such as instructions execution and we measure the energy consumption by characterizing the inter-instruction energy consumption. This method is quite accurate but poorly represents the peripherals of the platform.

When we talk about the second criterion, the models are generally based on datasheet information and need a full knowledge of the underlying level architecture (low-level hardware through VHDL and Verilog descriptions).

Presentation and application

The third section is the presentation of the model the author wants to put forward, and I will talk about it in the "Main Contribution" part of my presentation of the paper.

Finally, the fourth section is a case study of a model construction using the method of the third section.
It essentially explains the creation of calibration benchmarks , the application of this benchmarks to build the models of the blocks used (CPU, Bus, memory and peripherals such as UART, interrupt, and timers).
Then, we have a presentation of the results in graphics where we can see the energy consumption per event depending on the clock period. We can see that energy consumption increases when frequency decreases.
Finally it presents the validation of the model. Indeed after running the simulation, the results were compared to physical measurements in order to validate or not the method.
The first thing that has been put forward is the speed of the method (less than 30 seconds by simulation). Then we have the accuracy, less than 10% error rate. Those two facts allied to the simplicity of implementation allow validating the model as a very good one.

Main Contribution

As we have seen it so far, VLSI circuits are organized according to their hardware level of abstraction, there are three levels from least to most abstract : transistor level , architectural level and instruction level.
For this method, we will need to be in architectural abstraction level.

The system is then divided into functional blocks (CPU, Memory hierarchy, interconnection bus,peripherals,...) and we can have an application consumption Eapp by adding the individual consumption of each block Ebl.
E_{app}=\sum E_{bl}
Each block has its own energy consumption model and for the CPU block to suit better to software development, we will write it at the instruction level of abstraction.
E_{CPU}= E_{insn}+E_{cache}+E_{MMU}
With Einsn the energy consumed by the instruction execution, Ecache and EMMU the cache and MMU( Memory management unit) overheads consumption.
We finally got : E_{app}= E_{insn}+E_{cache}+E_{MMU}+\sum E_{bl}

This method must have a time slot energy consumption and the chosen time slot is the CPU instruction execution for two main reasons :

  • It's the finest time reference since the CPU generally have the highest clock frequency in an embedded system.
  • The interrupt requests are managed at the end of this time slot.


The only thing left is to define every parameter that should be needed in order to have a simulation on behaviors and states of each component of the VLSI circuit.
As we have seen it in the last section, this method is validated because of its relative accuracy coupled with the simplicity of implementation and the speed of simulation.

Applications

Since the paper deals with a method of measurement on embedded systems, It can only apply to applications in this field.
However, there are some limits that I will expose on this part of my presentation.

Obviously, this method can be applied on every single embedded system that we can conceive but the limits reside in the peculiarities of this method.
Indeed, we know that the error rate is a little less than 10%.
For an application in the car industry or in ground-communication this is not a big deal because an error around 10% can quickly be compensated by using another power supply.
Nevertheless, for an application into a space program or for medical and military uses, we need to be very accurate in order to save both energy and space that can be used in other purposes (instruments in a spaceship, reducing the size of military and medical gear).

Another limit we can see is that we won't use this method in very simple embedded systems for two main reasons :

  • This kind of system is often powered by standard power source and does not really need a deep study of its energy consumption.
  • This kind of system is easier to analyse by other methods maybe at the transistor level of abstraction where we can ally the same speed of simulation and a far more accurate result concerning the consumption of each part of the system (peripherals, bus, CPU, ...).

If this paper is not a gigantic breakthrough in our era of new technologies, it is yet a real improvement in our way to measure the energy consumption of embedded systems, as well by the speed of simulation this method offers as by its simplicity of use on every system.




--Kevin LE VAN PHUNG 19 juin 2016 à 17:12 (CEST)