Synchronous Programming of Device Drivers for Global Resource Control in Embedded Systems
I prepared my PhD in the Synchrone team at the Verimag laboratory, where I worked on the design of resource-aware software for embedded systems. The hardware platforms usually employed in these systems provide a limited amount of memory, computational power and energy. The software they execute is then constrained by such limited resources. Usual applications involve further objectives, such as reactivity and lifetime. In addition, these platforms comprise shared resources like buses or even the energy provided by a battery. Hence, global properties concerning the whole platform must be enforced, for instance to control concurrent accesses to a bus or power consumption. As device drivers are commonly developed individually, the knowledge necessary to implement global control policies is distributed among several pieces of software.
I proposed a global control approach, based on a centralized view of the devices' states. Built upon para-virtualization principles, it operates on the hardware/software interface. It involves a simple adaptation of the guest operating system, to communicate with the hardware via a control layer. The control layer itself is built from a set of simple automata: the device drivers, whose states correspond to functional or power consumption modes, and a controller to enforce global properties. All these automata are programmed using a synchronous language, and compiled into a single piece of sequential code.
I defended my PhD on March 12, 2012. My advisors were Florence Maraninchi and Laurent Mounier.
-
Thesis:
— in French;
-
Slides:
— in English;
- BibTeX.
Journal Article
-
Synchronous Programming of Device Drivers for Global Resource Control in Embedded Operating Systems
Nicolas Berthier, Florence Maraninchi, and Laurent Mounier. ACM Trans. Embed. Comput. Syst., 12(1s):39:1–39:26, March 2013.Abstract
In embedded systems, controlling a shared resource like a bus, or improving a property like power consumption, may be hard to achieve when programming device drivers individually. In this paper, we propose a global resource control approach, based on a centralized view of the devices' states. The solution we propose operates on the hardware/software interface. It involves a simple adaptation of the application level, to communicate with the hardware via a control layer. The control layer itself is built from a set of simple automata: the device drivers, whose states correspond to functional or power consumption modes, and a controller to enforce global properties. All these automata are programmed using a synchronous language, and compiled into a single piece of C code. We take as example the node of a sensor network. We explain the approach in details, demonstrate its use and benefits with an event-driven or multithreading operating system, and draw guidelines for its use in other contexts.
Papers
-
Synchronous Programming of Device Drivers for Global Resource Control in Embedded Operating Systems
Nicolas Berthier, Florence Maraninchi, and Laurent Mounier. In Proceedings of the 2011 SIGPLAN/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems, LCTES ’11, pages 81–90, New York, NY, USA, 2011. ACM.Abstract
In embedded systems, controlling a shared resource like the bus, or improving a property like power consumption, may be hard to achieve when programming device drivers individually. There is a need for global resource control, taking decisions based on a centralized view of the devices' states. In this paper, we study power consumption in sensor networks, where the nodes are small embedded systems powered by batteries. We concentrate on the hardware/software architecture of a node, where significant gains can be achieved by controlling the consumption modes of the various devices globally. The architecture we propose involves a simple adaptation of the application level, to communicate with the hardware via a control layer. The control layer itself is built from a set of simple automata: the drivers of the devices, whose states correspond to power consumption modes, and a controller that enforces global properties. All these automata are programmed using a synchronous language, whose compiler performs static scheduling and produces a single piece of C code. We explain the approach in details, demonstrate its use with either Contiki or a traditional multithreading operating system, and report on our experiments.
-
Article:
;
-
Slides:
;
- BibTeX.
-
Article:
-
Short Paper: Global Platform Management by Using Synchronous Device Drivers in µ-Kernel-based Systems
Nicolas Berthier, Florence Maraninchi, and Laurent Mounier. Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES). Fun Ideas and Thoughts Session — FIT, April 2011. Best fun ideas and thoughts award winner.Abstract
We prospect a solution for the problem of designing µ-kernel-based embedded systems, while allowing global platform management. This approach relies on a global platform management mechanism made of synchronous device drivers.
-
Article:
;
-
Slides:
.
- BibTeX.
-
Article:
Poster
-
Towards a System Architecture for Power-Aware Implementation of Embedded Systems
-
Poster presented at the fetch2010 winter school:
.
-
Poster presented at the fetch2010 winter school: