Automatische Erzeugung und Bewertung virtueller
Duplexsysteme zur Erkennung von Betriebsfehlern in
Mikroprozessoren
Markus Jochim
Fehlererkennung durch VDS
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
Eingabe E
V1
f1(E)
V2
f2(E)
Einstimmigf1,2(E) oder
keitsentscheidung Fehlermeldung
Knoten K
Maskierer
Virtuelles Duplexsystem (VDS)
(Zielfunktion f)
Ziel:
Berechnung von f(E) bzw. Fehlererkennung
mit einem Rechenknoten K.
Annahme:
In Abwesenheit von Soft- und
Hardwarefehlern gilt: f1 = f2 = f1,2 = f
Unerkannte Wertefehler:
f1(E) = f2(E) = f1,2(E) aber f1,2(E) f(E)
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Ablauf im VDS:
1) Ausführung V1
2) Ausführung V2
3) Maskierer
Systemüberlistung
Seite 2
Fehlererkennung durch VDS
Einführung
DIVERSIModule
V1
Eingabe E
Automatische
Diversität
V2
f2(E)
Knoten K
Optimierung
Einstimmigf1,2(E) oder
keitsentscheidung Fehlermeldung
Maskierer
Virtuelles Duplexsystem (VDS)
FehlerInjektion
(Zielfunktion f)
Resultate
Fehlerart
Pessimistische
Injektion
HW-Fehler
(temporär)
Zusammenfassung
f1(E)
HW-Fehler
(permanent)
SW-Fehler
Gegenmittel
Zeitredundanz
!
Source 1
Source 2
V1
V2
Diversität
Entwurfsdiversität
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Prozessor
Seite 3
Hauptziel . . .
Einführung
Diversität auf
Knopfdruck
DIVERSIModule
Automatische
Diversität
Optimierung
Ziele dieser Arbeit ?
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 4
Ziele und Gliederung . . .
Einführung
Ziele:
Gliederung:
DIVERSIModule
• Vollautomatische Diversifizierung
Automatische
Diversität
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
auf Assemblerebene
• Automatische zielgerichtete Suche
wirksamer Diversitäts-Kombinationen
• Experimentelle Bewertung automatisch
erzeugter VDSe
• Kombination:
„Automatische Diversität +
Entwurfsdiversität“
• Pessimistische Fehlerinjektion
DIVERSI-Module
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Optimierung
Fehler-Injektion,
Resultat
Resultat
Pessimistische
Injektion
Bei Bedarf !
Seite 5
DIVERSI-Tool
Einführung
Initiales System
(keine Diversität)
DIVERSIModule
Optimiertes System
(diversitäres VDS)
Optimierer
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Modifizierer
Fehlerinjektor
Pessimistische
Injektion
Zusammenfassung
Veränderungsregeln
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Testeingaben
Fehlerspezifikation
Seite 6
Veränderungsregeln
Einführung
DIVERSIModule
Instr. a
Beispiel:
Instr. a
Automatische
Diversität
Optimierung
FehlerInjektion
Instr. b
VDS (V1,V2)
Instr. c
Anwendung der
Regel R auf V2
Instr. a
VDS ( V1, V2R )
Instr. d
Resultate
Regel R
Instr. c
Instr. a
Instr. d
Instr. b
Instr. b‘1
Instr. b‘2
Instr. b‘3
Variante V2
Variante V2R
Pessimistische
Injektion
Zusammenfassung
Ersetze
„Instr. b“
Instr. b‘1
Instr. b‘2
Instr. b‘3
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 7
Veränderungsregeln
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
Instr. a
Instr. b‘1
Instr. b‘2
Instr. b‘3
Instr. a
Instr. b
Instr. c
Ersetze
„Instr. b“
Instr. c
Regel R
FehlerInjektion
Instr. a
Resultate
Instr. d
Pessimistische
Injektion
Instr. b
Instr. b‘1
Instr. b‘2
Instr. b‘3
Zusammenfassung
Variante V2
Variante V2R
Registerpermutation
Regel R‘
Instr. a
Instr. d
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Variante V2R,R‘
Seite 8
Implementierte Veränderungsregeln
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
• Explizite Adressberechnungen
• Arithmetische Befehle ersetzen
• Zerschneiden und umsortieren
• Registerpermutation
• Logische Befehle ersetzen (z.B. deMorgan)
• Diversitäre Daten
• Registertests
• Stackoperationen ersetzen
• Bedingte / unbedingte Sprünge
Σ: 27 Regeln
•. . .
Zusammenfassung
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 9
Gierige Optimierung
Einführung
DIVERSIModule
V0
Zyklus
1
R1
Automatische
Diversität
V 11
Optimierung
FehlerInjektion
Zyklus
2
Zusammenfassung
. . .
Rr
V 12
R1
R2
V 21
Resultate
Pessimistische
Injektion
R2
V
Zyklus
3
V 1r
. . .
Rr
2
2
V
R1
V 31
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
R2
V
3
2
2
r
. . .
Rr
V
3
r
Seite 10
Injektionstechnik
Einführung
DIVERSIModule
Automatische
Diversität
Haupt-Anforderungen:
• Schnelle Injektion
• Injektion permanenter Fehler
• Breites Spektrum von Fehlerarten
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
Zwei SWIFI-Techniken:
1) Einbringen von Inj-Code in
Assembler-Code des zu
bewertenden Programmes
2) Injektion durch Modifikation
ausführbarer Programme
Beispiele zu injizierender Fehler:
Haftfehler in Registern, Übersprechen zwischen Registern,
Fehlerhaftes Inkrementieren des Stackpointers, Fehler im
Statuswort, Fetch-Fehler, Speichertransfer-Fehler, Fehler
bei der Ausführung von ALU-Operationen, Fehler
beim Schieben, Decodierungsfehler, . . .
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Σ: 49
Fehlerarten
Seite 11
FAIL-Spezifikationen
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
All myVar1 substitute by {%eax,%ecx,%edx,%edi,%ebp}
All myVar2 substitute by {0,1,2,6,7,8,9,15,16,22,23,28,31}
Stuck-at dice{0,1} Bit myVar2 Register myVar1
EndAll
EndAll
Haftfehler in
Registern
StatuswortVerfälschung
All myVar3 substitute by {Carry,Zero,Sign,Overflow}
All myVar4 substitute by {cleared, inverted, set}
FlagProblemAfter dice {addl, subl, cmpl} Instruction myVar3 is myVar4
Endall
Endall
Speicherfehler
All myVar5 substitute by {text,rodata}
All myVar6 substitute by {1,3,5,9,20,30,40,50,60,75,95,100,200,300}
MemoryError randomly inject myVar5 Errors into myVar6 Segment
EndAll
EndAll
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 12
Einführung neuer Fehlerarten
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
All cc substitute by {o,no,b,ae,e,ne,be,a,s,ns,p,np,l,ge,le,g}
Condition-action:
Conditions
instr_found = statement,"movl"
s_register
= sMode,"gpr"
s_memory
= sMode,"memoryOperand"
d_register
= dMode,"gpr"
End-Conditions
Conjunctions
r32_r32 = instr_found & s_register & d_register
m32_r32 = instr_found & s_memory & d_register
End-Conjunctions
Neue Fehlerart:
„Fehlerbedingte
Aktivierung der
Condition-Unit
bei Ausführung
von DatentransferBefehlen“
Trigger: r32_r32 | m32_r32
Action
(r32_r32 | m32_r32):
End-Action
End-Condition-Action
EndAll
"CMOVccL "source","dest
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 13
Experimentaufbau
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
• 9 DIVERSI-Experimente
(bintree, hanoi, quicksort, crc_table, crc,...)
• FAIL-Spezifikation: 49 verschiedene Fehlerarten, 4788 Fehler
• Pro VDS:
4788 Fehler · 5 Programmeingaben = 23940 FI-Experimente
• Ø 244 VDSe pro DIVERSI-Experiment:
9 · 244 · 23940 = 5,26 · 107 FI-Experimente
ca. 1,72
ProzessorJahre !
( P3, 500 MHz )
• Reduktion des Rechenaufwandes:
- Vermeidung absehbarer Injektionen
- Vorgezogene Injektion erfolgreicher Fehler
=> Einsparung von 97,27% aller FI-Experimente
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
ca. 17
ProzessorTage
Seite 14
Systemüberlistungen im Verlauf der Optimierung
Einführung
Überlistungen
Überlistungen
3500
3500
DIVERSIModule
3000
3000
Automatische
Diversität
2500
2500
Optimierung
2000
2000
FehlerInjektion
1500
1500
1000
1000
500
500
0
0
Resultate
Pessimistische
Injektion
Zusammenfassung
1
2
3
4
5
6
7
hexint
arraywrk
adder
crc_table
8
9 10 11
Opt.-Zyklus
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
1
2
3
4
hanoi
bintree
bubblesort
5
6
7
quicksort
crc
8
9 10 11
Opt.-Zyklus
Seite 15
Systemüberlistungen im Verlauf der Optimierung
Einführung
3500
DIVERSIModule
3000
3500
Beispiel: „PGefahr für ein initiales System“
PGefahr =
3000
1823
23940 Fehler
2500
2500
Automatische
Diversität
2000
2000
Optimierung
1500
1500
FehlerInjektion
1000
Resultate
500
Pessimistische
Injektion
0
Zusammenfassung
Überlistungen
= 7,61%
Zugehöriges optimiertes System:
1000 23 Überlistungen
= 0,09%
PGefahr =
23940 Fehler
500
0
1
2
3
4
5
6
7
8
9 10 11
1
PGefahr für initiale Systeme = 8,41%
2
3
PGefahr für optimierte Systeme = 0,15%
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
4
5
6
7
8
9 10 11
Sicherheitsgewinn
um Faktor 56
Seite 16
Kombination mit Entwurfsdiversität
Einführung
Überlistungen
500
Ø PGefahr für initiale
Systeme = 1,94%
Ø PGefahr für optimierte
Systeme = 0,00%
DIVERSIModule
400
Automatische
Diversität
300
Optimierung
FehlerInjektion
200
Resultate
100
Pessimistische
Injektion
0
Zusammenfassung
1
+ Faktor 4 Faktor 56
+ weniger Opt.-Zyklen
+ evtl. Erkennung von
Softwarefehlern
2
3
4
crc/crc_table
quick/bubble
5
6
7
8
9
10 11
Opt.-Zyklus
crc_table/crc
bubble/quick
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 17
Pessimistische Injektion
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
Nennung der Grundidee . . .
. . . mehr bei Bedarf !
Beobachtung:
Ca. 90% aller (zeitaufwendig) injizierten Fehler sind zur
Systemüberlistung grundsätzlich ungeeignet.
Idee der pessimistischen Injektion:
Absenkung des Anteils der zur Systemüberlistung grundsätzlich
ungeeigneten Fehler.
Effekt:
Mehr Injektionen mit Überlistungspotential =>
Strengere Systembewertungen bei gleichem Zeitbedarf.
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 18
Zusammenfassung
Einführung
DIVERSIModule
Automatische
Diversität
• Automatische Diversifizierung (Technik & Tool)
• Unabhängigkeit von Compiler und Hochsprache
• Automatische Suche wirksamer Diversitäts-Kombinationen
• Geeignete Fehlerinjektionsumgebung & FAIL
• Schnelle & intensive Systembewertung
• Pessimistische Fehlerinjektion
Optimierung
FehlerInjektion
1)
Automatisch erzeugte VDSe:
Ø PGefahr: 8,41%
0,15% (Faktor: 56)
56 und besser... („90% temporäre Fehler“)
Resultate
2)
Pessimistische
Injektion
Zusammenfassung
Kombination mit Entwurfsdiversität:
Ø PGefahr: 8,41%
1,94%
0,00%
„Kostengünstige HW-Fehlererkennung durch virtuelle Duplexsysteme“
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 19
Einführung
DIVERSIModule
Automatische
Diversität
Optimierung
FehlerInjektion
Die folgenden Folien sind
KEIN BESTANDTEIL
des Vortrages.
Resultate
Pessimistische
Injektion
Dienen als Folienvorrat zur Klärung erwarteter Fragen.
Zusammenfassung
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 20
Stand der Technik . . .
Einführung
mathematische
Äquivalenzen
DIVERSIModule
Anzahl
Code-Segmente
Automatische
Diversität
verschiedene
Datentypen
Optimierung
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
RegisterPermutation
ÜbersetzerDiversität
Unabhängiger
Entwurf
komplementäre
Bedingungen
CodeOptimierungen
Umwandlung
von
Schleifen
Prozeduren
umgruppieren
Resultierende VDSe zeigen bei HW-Fehlern deutlichen
Sicherheitsgewinn gegenüber Simplexsystemen
VDS zur Erkennung temporärer + permanenter
HW-Fehler geeignet
preiswerte Alternative zum Duplexsystem
• Manuell / Automatisch
• Hochsprache / Assembler / Übersetzer
• Geeignete Kombinationen
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Aufwand +
Abhängigkeiten von
Hochsprache und Übersetzer
Seite 21
Kombination mit Entwurfsdiversität
Einführung
Bisher:
DIVERSIModule
crc
crc‘
Simplexsystem
Simplexsystem
Automatische
Diversität
Simplexsystem
Optimierung
virtuelles Duplexsystem
FehlerInjektion
Faktor 4
Resultate
Pessimistische
Injektion
Zusammenfassung
crc
DIVERSI
crc‘‘
Simplexsystem
Faktor 56
virtuelles Duplexsystem
Jetzt:
crc
crc‘
Simplexsystem
Simplexsystem
crc_table
DIVERSI
crc_table‘
Simplexsystem
Simplexsystem
virtuelles Duplexsystem
virtuelles Duplexsystem
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 22
Motivation zur pessimistischen Injektion
Einführung
DIVERSIModule
Härtegrad
- Korrekter Ausgabewert
im richtigen Format
harmlos
balanciert
- Fehlerhafter Ausgabewert
im richtigen Format
potentiell
gefährlich
FehlerInjektion
Resultate
Pessimistische
Injektion
Zusammenfassung
Gefährdung
zu weich
Automatische
Diversität
Optimierung
Ereignis
zu hart
- Fehlerhaftes Ausgabeformat
- Keine Ausgabe
- Timeout
- Absturz
harmlos
Beobachtungen:
• ca. 90% aller injizierten Fehler sind harmlos
• Fehlerinjektionsexperimente sind zeitaufwendig
Idee: Zu harte Fehler abschwächen zu balancierten Fehlern
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 23
Pessimistische Injektionstechnik
Einführung
Inst. 1
Inst. 1
DIVERSIModule
Inst. 2
Inst. 2
Inst. 3
Inst. 3
Automatische
Diversität
Inst. 4
Inst. 4
Inst. 5
Inst. 5
Optimierung
Inst. 6
Inst. 6
FehlerInjektion
VDS 1
Resultate
Pessimistische
Injektion
DIVERSI
• Permanent injizierte Fehler wirken
bei jeder Instruktion.
• Ziel: Wirkung nicht bei jeder
Instruktion
• Aber: Temporäre Fehler sind
ungeeignet
Inst. 1
Inst. 1
Inst. 2
Inst. 2‘
Inst. 2‘‘
Inst. 3
Inst. 3‘
Inst. 3‘‘
Inst. 3‘‘‘
Inst. 4
Inst. 5
Inst. 4‘
Inst. 4‘‘
Inst. 4‘‘‘
Inst. 5
Inst. 6‘
Inst. 6‘‘
Zusammenfassung
Inst. 6
VDS 2
Verlässlichkeit von Rechensystemen
Institut für Informatik und Wirtschaftsinformatik
Universität Duisburg-Essen
Seite 24