To deal with the increasing dynamism in (networked) embedded systems, IMEC launches a new research program. This program will focus on moving the management of the system's resources from the design phase to runtime software solutions. The resulting embedded systems will be more flexible and efficient, and will have a shorter time-to-market. Systems that would profit from such improved dynamism are, for example, multimedia appliances, from servers to mobile devices, standalone or connected in a video processing network. Other examples are cognitive radios, sensor networks, body area networks, or smart energy grid applications.
Today’s embedded systems operate under increasingly dynamic conditions. They have to support unpredictable interaction with users or with the environment. And they should work with widely varying input data, downloadable software, online services, and a wider range of software applications than is traditionally supported by embedded systems. Worst-case system designs take into account all this unpredictability upfront, resulting in overallocated resources, higher costs and longer time-to-market. In addition, embedded systems that are connected in a network also have to deal with the dynamism and unpredictability of distributed systems, further increasing the design challenges. This forces designers of embedded systems to consider alternatives to the traditional design methods.
IMEC’s new research program will examine methods to optimally exploit the flexibility offered by modern hardware platforms and networks. These have the hardware that is needed to implement a more dynamic behavior: multiple heterogeneous processing cores, including general-purpose processors. And in a distributed setting, the number and variety of available processing elements is even larger. This allows more flexibility to select processing resources for executing software, not only at design time, but also at run time. The goal of IMEC’s program is to create a run-time resource manager that addresses the dynamically changing conditions and makes a trade-off between processing availability and type, communication bandwidth, power consumption, or any other relevant constraint, while meeting the required quality of service. In addition, the program will contribute to the software infrastructure that exchanges information with the run-time manager. Different versions of this infrastructure will range from light-weight to advanced, depending on the openness of the software development methods used in a particular project. Advanced infrastructure will offer techniques such as virtualization, managed code, just-in-time compilation and optimization.