The research currently being explored by ESE covers three major themes:
- Modeling and analysis. Covering real-time logics, system-level modeling and analysis and model-based development
- Multi-core platforms. Covering multimedia applications, programming models, reconfigurable platforms and biochips.
- Networked embedded systems. Covering wireless sensor networks, space systems and automotive electronics.
In the following examples of each of these are discussed in more details.
Modeling and Analysis
A special characteristic of embedded systems solutions is obedience to strong requirements, because if such systems are not correct from the very beginning, they are often extremely costly to repair, and a failure may even cause loss of lives in the case of safety-critical applications. In ESE we focus on coherent, model-based development on a mathematically well-founded basis. We consider all levels of a development starting from requirements analysis, over software design to software-hardware codesign and models of applications executing on a multi-core platform, and we address systematic development processes as well as the construction of specialized, high-quality tools. Examples of topics are (a) real-time, temporal logics, verification, model checking, hybrid systems (b) modeling, analysis and construction of concurrent systems, (c) modeling and analysis using e.g. formal specification languages, process algebra, Petri nets, Duration Calculus, timed automata and associated tools (c) models and analysis of execution platforms, and (d) development of domain specific languages, including semantics and tool construction, e.g. ARTS, Gezel, REA.
Due to technology constraints, future computers will be inherently parallel devices. The transition to parallelism has already happened in server and desktop systems where so called multi-core processors are readily available. In embedded systems, the shift to multi-core processors has started. One main challenge is to develop methods for programming the multi-core processors in an efficient manner. In ESE we focus on programming ease and productivity and in particular task based programming models. Of particular interest are programming models from which task graphs can be extracted. Such graphs are important in embedded system design and analysis and they allow advanced analysis methods to be applied to programs. Another challenge is to find a suitable hardware/software interface between programs and the underlying hardware. Here we conduct research on processor architecture, network interface design and memory systems.
Networked Embedded Systems
Embedded applications have to be designed such that they implement correctly the required functionality. Very important for the correct functioning of such applications are their timing constraints. The correctness of the functionality depends not only on the results of the computation, but also on the physical instant when the results are produced. Moreover, embedded applications have to deliver the required functionality even in the presence of faults. Many such applications, following physical, modularity or safety constraints, are implemented using distributed architectures. Initially, each function was implemented on a dedicated hardware component. However, in order to use the resources more efficiently and reduce costs, several functions have later been integrated in one component and, at the same time, certain functionality has been distributed over several components. Although an application is typically distributed over one single network, we begin to see applications that are distributed across several networks. This trend is driven by the need to further reduce costs, improve resource usage, but also by application constraints like having to be physically close to particular sensors and actuators. In ESE we focus on the analysis and design of such applications.