Dependable Embedded Systems
Lecturer:
Module description:
Scope/Credit:
V2 + Ü2 (combined 5 ECTS)
Time & Date:
Lecture: Tuesday, 14:15-15:45, Room 02.133-128
Exercise: Tuesday, 16:00-17:30, Room 02.133-128
Register at StudOn
Materials (Slides and exercises):
The script will be available during the semester, accompanying the respective progress in StudOn
Introduction
Shrinking structure devices enabled the design and manufacturing of smaller and smaller, yet more and more powerful and at the same time affordable embedded systems. Given their use in both safety critical environments but also in the entertainment domain, we expect these systems to be dependable to avoid fatal accidents as well as disappointed customers, respectively. With these device structures, novel problems arise: There exist severe manufacturing tolerances and the structures themselves show an increasing susceptibility for aging and radiation effects. In fact, future embedded systems cannot be design based on the assumption of properly working components anymore – we need to design dependable embedded systems from unreliable components.
Course Purpose
In this course, the students will (a) be introduced to typical faults and their causes that occur in embedded systems at the lowest levels of abstraction, (b) learn about countermeasures that can be applied at different levels, and (c) apply countermeasures and analyze their costs and effects to be able to design high-quality, i.e., dependable and cost-efficient, embedded systems.
Content
Embedded systems typically consist of a combination of processors, hardware accelerators, and communication infrastructure. This course will at first introduce faults and their causes (e.g. radiation effects or aging effects like NBTI) that occur in the system components and then discuss how faults propagate in the system all the way up to the applications. Afterwards, focus is put on countermeasures that can be applied to enhance the system’s dependability. Here, different levels of abstraction like the circuit, register transfer, microarchitecture, and the system level and respective techniques that typically apply redundancy in either space or time to increase the reliability are covered. As will be shown, these techniques do not come for free, but their cost and effect needs to be considered. Thus, the lecture will introduce dependability analysis techniques (e.g. BDD- and success tree-based analysis) that enable to quantify the cost and benefits of applied techniques. Finally, the lecture will put emphasis on the aspect of design automation. Here, techniques for the automatic and efficient integration of dependability-enhancing techniques (e.g. based on meta-heuristics like Evolutionary Algorithms) across different levels of abstraction are introduced.