english  | Home | Impressum | Datenschutz | KIT

Entwicklung eines Trace-Decoders zur Fehlererkennung in Leon3-Softcore-Prozessoren

Entwicklung eines Trace-Decoders zur Fehlererkennung in Leon3-Softcore-Prozessoren
Forschungsthema:Embedded Systems/ Fault Tolerance
Typ:Bachelor-/ Masterarbeit
Datum:offen (zu vergeben)
Betreuer:

M. Eng. Augusto Hoppe

Entwicklung eines Trace-Decoders zur Fehlererkennung in Leon3-Softcore-Prozessoren

Umfeld

Eingebettete elektronische Systeme unterliegen verschiedenen Anforderungen. Vor allem der Bedarf an Rechenleistung ist seit Jahrzehnten stetig gestiegen. Um dies zu lösen, kann der Einsatz moderner Prozessoren in Multicore- und Netzwerkarchitekturen nicht vermieden werden. Zunehmende Komplexität macht solche Architekturen jedoch anfälliger für zufällige Ausfälle, was katastrophale Auswirkungen haben kann. Strahlung kann zufällig Transistorzellen beeinflussen (Fig. 1), was dazu führt, dass sich die laufende Anwendung unvorhersehbar und unzuverlässig verhält.

                       

Fig. 1 Hochenergie-Neutronen-Effekte an einem N-MOS-Transistor


Im sicherheitskritischen Umfeld, wie dem des automatisierten Fahrens, der Avionik und der Luftfahrt, stellt dies eine massive Herausforderung dar: Denn trotz der Komplexität, die der Einsatz solch moderner Technologien hervorruft, muss das System die bestehenden Anforderungen nach Zuverlässigkeit und Verfügbarkeit erfüllen.

 

Fig. 2 Auswirkung von Soft-Errors auf eine Prozessor-Pipeline

 

 

Soft-Errors sind Fehler, die Signale oder Daten in einem Informationssystem beeinflussen. Sie können in Kommunikations- oder Speichereinheiten wie Bussen oder Speichern auftreten, einschließlich der internen Universalregister einer CPU (Fig. 2). Wenn ein Soft-Error auf Arbeitsdaten einwirkt, kann dies zu einem Datenbeschädigungsfehler führen, der eine falsche Ausgabe generiert. Wenn dieser Wert stattdessen Teil einer Kontrollstruktur ist, z. B. if-else-Anweisungen oder Schleifenstrukturen, kann sich das Programm möglicherweise unerwartet verhalten. Diese Art von Fehlern sind Control Flow Errors (CFE).

Wie es möglich ist, Multicore-Prozessoren auf effiziente Weise in einer sicherheitskritischen Umgebung einzusetzen, ist Gegenstand der Forschung.

 

Aufgabenstellung

Das Hauptziel dieser Arbeit ist die Entwicklung eines Trace-Decoder-Hardwaresystems zur Implementierung eines CFE-Erkennungsmechanismus. Dieses Teilsystem soll den Ablauf des Programm-Traces jedes Kerns in einer 4-Kern-CPU lesen und analysieren.

Das Dekodieren des Traces in Echtzeit ist der erste Schritt zur Implementierung eines CFE-Monitors. Durch statische Softwareanalyse ist es möglich, vor der Ausführung eines Programms einen Graphen zu generieren, der alle möglichen Entscheidungspunkte ("Jumps" und "Branches") des Programms enthält. Dieser Graph ist der Control Flow Graph (CFG) des Programms. Durch den Vergleich der Ausgabe des dekodierten Traces mit dem CFG können wir Kontrollflussfehler oder Synchronisationsfehler zwischen Kernen identifizieren.

Sobald ein Fehler erkannt wird, kann er an eine Management Unit oder ein Supervisor-System gemeldet und je nach Art der Anwendung entsprechend behandelt werden.

 

Voraussetzungen

Für den theoretischen Teil der Arbeit sind Kenntnisse im Bereich eingebetteter elektronischer Systeme notwendig. Vorkenntnisse in der Zuverlässigkeit von Systemen sind hilfreich. Für den praktischen Anteil sind gute Programmierkenntnisse erforderlich. Eine detaillierte Liste der Fähigkeiten folgt:

  • Erfahrung in der VHDL-Programmierung ist erforderlich.
  • Erfahrung mit LEON3 / GRLIB ist hilfreich.
  • Kenntnisse in C- und / oder Assembler-Programmierung sind hilfreich.
  • Kenntnisse in eingebetteten CPU-Architekturen sind hilfreich.