Energy aware programming and controller synthesis

Real-time programming considers timing as part of the correctness of a program. By analogy, we define "Real-Energy" programming.

Real-time programming exists, in the sense that there are languages, compiler optimizations, implementation methods and execution environments that are specifically designed to meet
timing requirements. Real-energy programming does not exist, yet.

The group has started to work on the implementations methods that can
be defined for a global managing of energy consumption between the
embedded software and the various device drivers in the nodes of a
sensor network. Existing work in systems like TinyOS allow for a
quite ad-hoc managing of energy consumption, in the driver of each
hardware element. When a global policy has to be implemented, the
global state of the hardware elements has to be taken into account,
but this is done in a per-case basis. In fact, some of the global
optimizations problems can be formulated as a controller synthesis
problem. Moreover, in other application domains like
systems-on-a-chip for multimedia applications, people have developed
solutions based on the notion of a power manager component. Our
approach will be to adopt the idea of power managers, and to try and
generate them from the specifications of energy policies, by
techniques similar to controller synthesis.