Ausgewählte Kapitel eingebetteter Systeme Verfahren zur Bestimmung der WCET Andreas Kaiser Friedrich-Alexander University Erlangen-Nuremberg
Übersicht Wieso WCET Berechnung? Methoden zur Bestimmung der WCET Messung Programmflussanalyse - Pfadanalyse - Architektur - Ganzzahlige Lineare Programmierung 2
Wieso WCET Berechnung? Bei Echtzeitanwendungen hängt die Korrektheit nicht nur vom logischen Ereignis ab, sondern auch vom Zeitpunkt, wann das Ereignis geliefert wird. WCET zu niedrig: Verpassen der Deadline WCET zu groß: ineffizient, nicht schedulbar 3
Bestimmung der WCET: Messung Alle Inputwerte müssen betrachtet werden Adaptive Messmethoden: nur Praxisrelevante Inputwerte Trotzdem zeitlich zu aufwendig Seltene Inputkombinationen führen zu falscher Abschätzung BCET WCET Schwer bestimmbare Spitze am Rand Ausführungszeit fehlerhaft unsicher sicher Geschätzte WCET Verfahren ungeeignet, wird trotzdem häufig angewandt 4
Programmflussanalyse: Grundblöcke Vorüberlegung: Addition der Ausführungszeiten der einzelnen Instruktionen Grundblockanfang Erster Befehl Ziele von Sprüngen Befehle die direkt auf Sprünge folgen Grundblock Grundblockanfang bis exklusive nächster Grundblockanfang 5
Programmflussanalyse: Grundblöcke Beispiel anhand von 3-Adress-Code: /* Grundblock 1 */ (1) prod := 0 (2) i := 0 /* Grundblock 2 */ (3) t1 := 4 * i (10) t7 := i + 1 (11) i := t7 (12) if i<=19 goto (3) /* Grundblock 3 */ (13) t8 := t7 + t6 6
Programmflussanalyse: Kontrollfluss Grundblöcke werden zu Knoten Kanten verbinden aufeinanderfolgende Grundblöcke 7
Programmlussanalyse: Architektur WCET jedes Grundblockes bestimmen Problem: heuristische Bausteine Hardwarenahe Analyse Instruction-Timing Addition (ITA) - Instruktionenausführungszeiten in Tabellen Path-Segment-Simulation (PSS) - Zyklengenaue Simulation 8
PFA: Datenabh. Ausführungszeiten Besipiel: Multiplizierer Shift Befehle Add Befehle Block-Move Befehle Nicht implementierte Befehle Software Funktion mit datenabhängiger Ausführungszeit ITA schlägt exakte Zeiten in Tabelle nach PSS kann exakte Werte nicht garantieren 9
PFA: Caches Programmcaches Abhängig von Reihenfolge des Befehlsholens Cachekonfliktgraph Datencaches Abhängig von Reihenfolge des Datenzugriffs Cache Hit nur wenn sicher PSS ist hier genauer als ITA 10
PFA: Pipelining Faktoren: Tiefe und Länge der Pipeline Deshalb Betrachtung über Grundblöcke hinaus Zeit 10 Zeit 6 Pipeline stufen Pipeline stufen (a) ohne Pipelining (b) mit Pipelining ITA addiert nur die Ausführungszeiten PSS ist hier genauer als ITA 11
PFA: Superskalare Architekturen Gleichzeitige Ausführung mehrerer Grundblöcke Mit ITA nicht darstellbar Simulation mit PSS möglich 12
PFA: Zusammenfassung Architektur ITA für einfache Architekturen geeignet PSS für komplexere Modelle Aber: Keine Methode deckt alle Fälle ab 13
Programmflussanalyse: längster Pfad Finden des zeitlich längsten Graphen durch KFG Alle möglichen Pfade identifizieren Falsche Programmpfade von ausführbaren unterscheiden - Unendliche Schleifeniterationen - Funktionale Beschränkungen Probleme: - Verschachtelte Schleifen - Rekursive Programmaufrufe 14
15
PFA: Lösungsansätze Verbieten von Rekursionen und Sprungebfehlen Einschränkung der Programmierer Compiler verwerten funktionale Beschränkungen Vom Programmierer angegeben Normalerweise keine solchen Compiler vorhanden Eigene Beschreibungssprache Informationen vom Programmierer bereitgestellt 16
Ganzzahlige Lineare Programmierung Alternative zur Berechnung des längsten Pfades Es müssen nicht alle Pfade einzeln berechnet werden Funktionsweise Strukturelle Beschränkungen - Integervariable für jede Programmverzweigung - Aufstellen von Flussgleichungen Funktionale Beschränkungen - Weitere Nebenbedingungen 17
ILP: Flussgleichungen 18
ILP: Formeln Erster Ansatz: WCET = Σ ci * xi WCET = max{ Σ c i * x i d 1 = 1 Λ Σd j = Σ d k = x i, i = 1 N Λ funktionale Beschränkungen} Mit Cache: c i * x i = c i hit * x i hit + c i miss * x i miss Lösung mit ILP - Solver - c i : Ausführungszeit des Grundblockes Bi - x i : Maximale Anzahl der Ausführungen von Bi - N : Anzahl der Grundblöcke - d j : Eingehende Kanten - d k : Ausgehende Kanten 19
Ausblick Weitere Probleme Netzwerkanwendungen Nebenläufigkeit Hardwareunabhängige WCET Analyse Verbesserungsmöglichkeiten Single feasible Path 20
Ausblick Programmflussanalyse noch in Forschung, aber auch schon im Einsatz Beispiele: - ait für WCET in Flugzeugsteuerungssystemen der Airbus France - SYMTA (eingebettete Systeme: Automobil, Multi-Media, etc.) 21
Fragen und Diskussion Danke für die Aufmerksamkeit 22