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.