Detailseite
Projekt Druckansicht

DSy - Debugging Eingebetteter Systeme

Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Förderung Förderung von 2010 bis 2016
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 165955509
 
Erstellungsjahr 2017

Zusammenfassung der Projektergebnisse

Eingebettete Systeme spielen inzwischen in nahezu allen Bereichen des täglichen Lebens eine große Rolle als versteckte Computer, die verschiedenste Geräte steuern. Dies reicht von Handys bis hin zu Autos. Beim Entwurf eingebetteter Systeme sind Debugging und Diagnose zentrale Schwierigkeiten, da bei Fehlersuche und -beseitigung ein hoher zeitlicher Aufwand entsteht. Konventionelle Debugger unterstützen im Wesentlichen die handgesteuerte Analyse eines Programmes durch schrittweise Ausführung und Datenintrospektion. Im Bereich Diagnose existieren Werkzeuge, die eine gewisse Fehlerlokalisierung auf Basis ausgewählter Fehlermodelle erlauben. Jenseits dieser unterstützten Analyse fehlt die weiterführende Automatisierung wie sie bei anderen Entwurfsschritten wie Kompilation oder Synthese selbstverständlich ist. Zielsetzung des Projektes war also eine stärkere Automatisierung im Debugging für Eingebettete Systeme bereitzustellen. Bei der Debugging-Automatisierung wird grundsätzlich zwischen der Fehlerursache (engl. fault) und dem beobachtbaren Fehlersymptom (engl. error) sowie einem eventuellen Versagen des Systems (engl. failure) unterschieden. In einem hierarchisch organisierten System kann dabei das Versagen eines Teilsystems auf höherer Ebene zunächst als Fehlerursache abstrahiert werden. Beim Debugging muss jedoch wiederum die Fehlerursache im versagenden Teilsystem gefunden werden. Außerdem wird meist zwischen der Lokalisierung der Fehlerursache, also dem Finden der fehlerhaften Stelle im System beziehungsweise in der Entwurfsbeschreibung des Systems, und deren Korrektur, also der Ersetzung der Fehlerursache durch eine Realisierung, die zu korrektem Verhalten führt, unterschieden. Hierdurch ist die Modellierung im Debugging-Bereich ein inhärent schweres Problem. Es kann eine Vielzahl sehr verschiedener möglicher Fehlerursachen vorliegen, die zum Beispiel (systematische) physikalische Probleme aus der Fertigung, Fehler in der funktionalen Beschreibung oder Passungsprobleme bei der Komposition von Komponenten umfassen. Je nach System kann das Symptom bei gleicher Fehlerursache sehr unterschiedlich sein und umgekehrt auch ein Fehlersymptom durch unterschiedliche Ursachen hervorgerufen werden. Eine genaue Modellierung von Ursachen und Symptomen erlaubt typischer Weise eine genauere Bestimmung der Ursache bei gegebenem Symptom. Im Rahmen des Projektes wurde gezeigt, wie unterschiedlichste Fehlerarten geeignet modelliert werden konnen. Mit dieser Modellierung ist eine automatische Lokalisierung der jeweiligen Ursachen auf Basis der Symptome möglich. Ebenso wurden erstmals unterschiedliche Paradigmen für automatische Debuggingverfahren verglichen, so dass deren Schwächen und Stärken theoretisch und praktisch gezeigt wurden. Ein Kernthema des Projektes waren aber die Debugging-Verfahren selbst, die während des Entwurfes eingesetzt werden. Hierbei wurde oft auf formale Beweismethoden zurückgegriffen, die vollautomatisch Problemlösungen berechnen können. Gleichzeitig wurde Wert darauf gelegt, dass die Debugging-Verfahren in einem gängigen Entwurfsablauf eingesetzt werden können. Dort werden meist sogenannte Testbenches eingesetzt, die zur Simulation dienen, und mit dem Ansatz für das Debugging genutzt werden können. Andererseits bietet die formale Modellierung für das Debugging die Grundlage einen Entwurf zu optimieren, so zum Beispiel für eine hohe Verlässlichkeit. Formale Beweismethoden konnen zwar vollautomatisch arbeiten, können dafür aber oft nur relativ kleine Systeme behandeln. Im Gegensatz dazu kann eine Analyse der Simulationsdaten einer Testbench auch größere Entwürfe betrachten und gleichzeitig das Debugging unterstützten. Wenn dann noch eine detaillierte Beschreibung des Systems gegen eine abstraktere, aber übersichtlichere Beschreibung gestellt wird, hilft das zusätzlich beim Debugging. In Ergänzung zum ursprünglichen Projektplan wurde der Bereich Design Understanding erfolgreich untersucht. Dabei wird ein Entwerfer darin unterstützt, unbekannten Quellcode leichter zu verstehen. Für Software ist dies bereits seit mehreren Jahrzehnten ein gängiges Problem; für Hardware dagegen sind diese Untersuchungen neu. Schließlich wurde die Diagnose untersucht, in deren Rahmen nach physikalischen Fehlern in einem bereits gefertigten System gesucht wird. Hierzu existieren bereits zahlreiche Ansätze, die aber bisher die Variationen, die während der Fertigung auftreten, ignorieren. Für die Diagnose müssen zunächst die Auswirkungen dieser Variationen modelliert werden, um auf diesen Modellen Fehlerursachen finden zu können. Insgesamt wurde das Thema Debugging umfassend untersucht. Es wurden Methoden, Modelle und Verfahren entworfen, die sowohl während der Entwurfsphase als auch nach der Fertigung eingesetzt werden können; es wurden Hardware und Software betrachtet; unterschiedliche Verfahren und Modellierungen wurden verglichen. Zudem wurde der neue Bereich des Design Understanding für Hardware erschlossen.

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung