Fehlertoleranz und Robustheit Präsentation von Thomas Schlögl
Fehlertoleranz Definition: Die Fähigkeit eines Systems sich mit einer begrenzten Anzahl fehlerhafter Subsysteme gemäß Spezifikation zu verhalten. Vor allem in Bezug auf die Umgebung Eher auf HW-Ebene
Robustheit Definition: Die Eigenschaft eines Systems oder Verfahrens auch unter ungünstigen und unvorhersehbaren Bedingungen noch zuverlässig zu funktionieren. Vor allem in Bezug auf Eingaben (inkonsistent, unvollständig, …) Eher auf SW-Ebene
Wobei entstehen Fehler/Ausfälle? Datenübertragung Überlagerung des übertragenen Signals mit Rauschen Datenspeicherung Bitflips durch Umwelteinflüsse (Temperatur, Strahlung, Feuchtigkeit, …) Berechnung Ausfall von Komponenten aufgrund von Design-/Fertigungsfehlern und/oder Umwelteinflüssen
Phasen der Fehlertoleranz Fehlererkennung Error Detecting Codes Reasonableness Check State Estimation Fehlereinschätzung Fehlerkorrektur (Recovery) Error Correcting Codes Wiederaufnahme des normalen Betriebs
Ausfallsverhalten Fail-Safe Nach Ausfall sicherer, unproduktiver Zustand Sicherheit und Zuverlässigkeit sind nicht gekoppelt Fail-Operational Nach Ausfall System muss weiterarbeiten um Sicherheit zu gewährleisten Sicherheit und Zuverlässigkeit sind gekoppelt
Fehler-/Ausfallstypen „Ausfallshierarchie“ Byzantine Failure Performance Failure Omission Failure Crash Failure Fail-Stop Failure Assumption Coverage?! Soft Error Verursacht durch transiente Fehler Hard Error Verursacht durch permanenten Fehler
Maßnahmen zur Fehlertoleranz auf HW-Ebene Redundanz TMR (Triple Modular Redundancy) Passive Redundancy Active Redundancy Wartung Preventive Maintenance
Probleme und Grenzen Maskieren von Fehlern Spare Exhaustion Single Point of Failure (SPoF) Bei TMR: Voter Bei Active Redundancy: Switch Common Cause Failure Ausfall aufgrund gemeinsamer äußeren Ursache Ausfall aufgrund gemeinsamer innewohnender Ursache Geringe Assumption Coverage
Saturn Launch Vehicle Digital Computer (LVDC) Autopilot für Saturn V Rakete Redundante Stromversorgung 2 Hauptspeichermodule Duplex mode – hohe Zuverlässigkeit Simplex mode - hohe Speicherkapazität Einsatz eines TMR Für jede der 7 Pipelinestufen Auch Voter werden dreifach ausgeführt Verhinderung eines Single Point of Failure Zusätzlicher Disagreement Detector ermöglicht Wartung (Austausch)
MTMRDD
Maßnahmen zur Fehlertoleranz auf HW/SW-Ebene Design Diversität Parallele/mehrfache Ausführung verschiedener Implementierungen eines Algorithmus Daten Diversität Daten werden mehrmals bearbeitet, aber immer leicht modifiziert Temporale Diversität Mehrfache Ausführung desselben Algorithmus lediglich verwendbar gegen transiente HW-Fehler Error Correcting Codes Hamming Code Turbo Code
Maßnahmen zur Fehlertoleranz auf SW-Ebene Verwendung robuster Datenstrukturen z.B. zyklische doppelt verkettete Liste Duplizieren von Instruktionen ACCE (Automatic Correction of Control- flow Errors)
Hamming Code Hamming Distanz 3 Korrektur eines Bitfehlers möglich Gebildet durch Einfügen redundanter Bits an Position 1,2,4, … 2 k Even/Odd Parity b 1 = b 3 xor b 5 xor b 7 xor b 9 xor b 11 b 2 = b 3 xor b 6 xor b 7 xor b 10 xor b 11 b 4 = b 5 xor b 6 xor b 7 xor b 12 b 8 = b 9 xor b 10 xor b 11
Instruction Duplication Programmcode dupliziert in 2. Thread ausgeführt Periodische Synchronisierung zwischen den beiden Threads (Checkpoints) Erkennung von transienten HW-Fehlern möglich Behebung durch Neuausführung
Automatic Correction of Control-flow Errors Statisches Einfügen von Zusatzinstruktionen zur Überprüfung von Control-flow Errors Checkpoints (Recovery) Behebung transienter Fehler
COTS Commercial Off-The-Shelf Seriengefertige Produkte Große Stückzahl Meist billiger Preis Für allgemeine Anwendungsszenarien entworfen
Vorteile und Nachteile von COTS in Fehlertoleranten Systemen Vorteile Günstig Kostenreduktion Kürzere Time-to-Market aufgrund entfallender Entwicklung In hoher Stückzahl vorhanden (Ersatz) Weitverbreitet im Einsatz Test- und Erfahrungsberichte Nachteile Lebensdauer - Zuverlässigkeit Suboptimales Worst-Case Verhalten Abhängig vom jeweiligen Unternehmen Einführung zusätzlicher Verfahren zur Erhöhung der Zuverlässigkeit notwendig Erhöhung der Systemkomplexität
Quellen Quellenangaben: dortmund.de/Teaching/WS2012/SFt/Downloads/ausarbeitungen/Julian_Kuerby.pdf dortmund.de/Teaching/WS2012/SFt/Downloads/ausarbeitungen/Julian_Kuerby.pdf Volume1-GeneralDescriptionAndTheory.pdf Volume1-GeneralDescriptionAndTheory.pdf ing_Voter_Replication_and_Disagreement_Detection ing_Voter_Replication_and_Disagreement_Detection Bilder: figure 1-7. of Volume1-GeneralDescriptionAndTheory.pdf Volume1-GeneralDescriptionAndTheory.pdf figure 3 of ing_Voter_Replication_and_Disagreement_Detection ing_Voter_Replication_and_Disagreement_Detection