Preview only show first 10 pages with watermark. For full document please download

Gliederung Echtzeitsysteme

   EMBED


Share

Transcript

¨ 1 Uberblick Gliederung Echtzeitsysteme Exkurs: WCET-Analyse 1 ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht 4 Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung Lehrstuhl Informatik 4 24. Januar 2013 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 c fs (Lehrstuhl Informatik 4) 1 / 38 ¨ 1 Uberblick IX WCET Fragestellungen WS 2012/13 2 / 38 WS 2012/13 4 / 38 2 Problemstellung Gliederung Alle sprechen von der WCET – aber wo kommt sie eigentlich her? Wie geht man mit der Abh¨angigkeit von Eingabedaten um? Welche Rolle spielt der Prozessor beim Thema WCET? Pfadanalyse ; bestimmt den l¨angsten Pfad durch ein Programm 1 ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht 4 Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung Timing Schema ; orientiert sich an der Programmstruktur Implicit Path Enumeration Technique (IPET) ; Abbildung auf ein Flussproblem Hardware-Analyse ; bestimme Dauer des l¨angsten Pfads Prozessoren werden hinsichtlich Geschwindigkeit optimiert . . . Caches, Pipelines, Out-of-Order-Execution, Sprungvorhersage, . . . . . . nicht hinsichtlich Vorhersagbarkeit Warum bestimmen wir die WCET nicht einfach durch Messung? c fs (Lehrstuhl Informatik 4) Echtzeitsysteme Echtzeitsysteme WS 2012/13 3 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme IX WCET 2 Problemstellung IX WCET 2 Problemstellung Auf der Suche nach dem e Warum ist es so schwierig, e zu bestimmen? Die maximale Ausf¨ uhrungszeit ist eine unabk¨ ommliche Information f¨ ur die Ablaufplanung Anders: Wovon h¨ angt die maximale Ausf¨ uhrungszeit eigentlich ab? Statische Ablaufplanung ordnet Jobs Zeitintervallen zu ; diese Zeitintervalle m¨ ussen ausreichend groß sein Planbarkeitsanalyse basiert auf Absch¨atzungen . . . der maximalen CPU-Auslastung: k=1 binp ek + ≤1 min(Dk , pk ) min(Di , pi ) for ( i = size - 1; i > 0; --i ) { for ( j = 0; j < i ; ++ j ) { if ( a [ j ] > a [ j +1]) { swap (& a [ j ] ,& a [ j +1]); } } } ; i = 1, 2, . . . , n return ; Pipeline ; Wie ist der Zustand der Pipeline an einer Instruktion? Cache ; Liegt die Instruktion/das Datum im schnellen Cache? Out-of-Order-Execution, Branch-Prediction, Hyper-Threading, . . . die ohne die maximale Ausf¨ uhrungszeit e nicht auskommen selbst die Blockadezeit b np ist eine maximale Ausf¨ uhrungszeit ; n¨ amlich die des l¨ angsten kritischen Abschnitts Echtzeitsysteme IX WCET sowohl die Gr¨oße als auch der Inhalt des Felds kann zur Laufzeit variieren Die Maschinenprogrammebene liefert Dauer der Elementaroperationen: wie lange dauert ein ADD, ein LOAD, . . . ist prozessorabh¨angig und f¨ ur moderne Prozessoren sehr schwierig  i−1  X t e k ; 0 < t ≤ pi pk k=1 c fs (Lehrstuhl Informatik 4) Anzahl der Vertauschungen (swap) h¨angt vom Inhalt des Feldes ab ; exakte Vorhersage ist kaum m¨oglich } der maximalen Antwortzeit: ωi (t) = ei + binp + Anzahl der Schleifendurchl¨aufe h¨angt von der Gr¨oße des Feldes a[] ab void bubbleSort ( int a [] , int size ) { int i , j ; mindestens so groß, wie die maximale Ausf¨ uhrungszeit e des Jobs n X Programmiersprachenebene: Beispiel: Bubblesort WS 2012/13 c fs (Lehrstuhl Informatik 4) 5 / 38 2 Problemstellung IX WCET Aufgabenstellung Echtzeitsysteme WS 2012/13 6 / 38 WS 2012/13 8 / 38 3 Pfadanalyse Gliederung Die maximale Ausf¨ uhrungszeit nach oben absch¨ atzen BCET WCET 1 2 3 4 beobachtete Verteilung 5 6 ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht 4 Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung Ausführungszeit Bereits f¨ ur relativ einfache Programme ergibt sich eine Bandbreite m¨ oglicher Programmlaufzeiten, besondere Bedeutung haben bestm¨ogliche Ausf¨ uhrungszeiten (engl. best case execution time) 1 1 tatsächlich mögliche Verteilung Häufigkeit gesch¨atzt, 2 tats¨achlich und 3 beobachtet und maximale Ausf¨ uhrungszeiten (engl. worst case execution time) 4 + beobachtet, 5 tats¨achlich und 6 gesch¨atzt Ziel ist eine sichere Absch¨atzung der WCET und den Abstand zur tats¨achlichen WCET klein zu halten c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 7 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme IX WCET 3 Pfadanalyse 3.1 Problemstellung IX WCET Ableitung des maximalen Pfads anhand der Programmstruktur betrachte Aufrufe: bubbleSort(a,s) void bubbleSort ( int a [] , int size ) { int i , j ; for ( i = size - 1; i > 0; --i ) { for ( j = 0; j < i ; ++ j ) { if ( a [ j ] > a [ j +1]) { swap (& a [ j ] ,& a [ j +1]); } } } Anzahl von Durchl¨aufen, Vergleichen und Vertauschungen (engl. Swap) Sequenzen ; Hintereinanderausf¨ uhrung a = {1, 2}, s = 2 S1; Summation der WCETs: eseq = eS1 + eS2 S1 (); S2 (); S2; ; D = 1, V = 1, S = 0; a = {1, 3, 2}, s = 3 ; D = 3, V = 3, S = 1; Verzweigung ; bedingte Ausf¨ uhrung ; D = 3, V = 3, S = 3; if ( P1 ()) S1 (); else S2 (); a = {3, 2, 1}, s = 3 return ; } 3.2 Timing Schema Abstrakter Syntaxbaum ; Timing Schema Den l¨angsten Weg durch ein Programm finden Beispiel: Bubblesort 3 Pfadanalyse ist f¨ ur den allgemeinen Fall nicht berechenbar ; Halteproblem Absch¨atzung der Gesamtausf¨ uhrungszeit: econd = eP1 + max (eS1 , eS2 ) P1; f t S1; S2; Wieviele Schleifendurchl¨aufe werden ben¨ otigt? ; in Echtzeitsystemen ist dieses Problem aber h¨aufig l¨osbar Schleifen ; wiederholte Ausf¨ uhrung kanonische Schleifenkonstrukte: for(int i = 0;i < X;++I) X ist oft eine Konstante oder zumindest beschr¨ ankt ggf. muss die obere Schranke manuell annotiert werden while ( P1 ()) S1 (); P1; t S1; f Schleifendurchl¨aufe ber¨ ucksichtigen: eloop = eP1 + n (eP1 + eS1 ) die maximale, nicht die exakte Pfadl¨ange ist von Belang c fs (Lehrstuhl Informatik 4) IX WCET Echtzeitsysteme 3 Pfadanalyse WS 2012/13 9 / 38 3.2 Timing Schema IX WCET Beispiel: Bubblesort void bubbleSort ( int a [] , int size ) { int i , j ; for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); } } } return ; } c fs (Lehrstuhl Informatik 4) Echtzeitsysteme 3 Pfadanalyse WS 2012/13 10 / 38 3.2 Timing Schema Timing Schema: Vor- und Nachteile Schleife L1 : P1 = i > 0 Traversierung des abstrakten Syntaxbaums bottom-up Rumpf: L2 ; --i; Durchl¨aufe: size - 1 ; eL1 = eP1 +(size −1)(eP1 +eL2 +e−−i ) d. h. an den Bl¨attern beginnend, bis man zur Wurzel gelangt maximale Ausf¨ uhrungszeit wird nach festen Regeln akkumuliert f¨ ur Sequenzen, Verzweigungen und Schleifen Schleife L2 : P2 = j < i Rumpf: C1 ; ++j; Durchl¨aufe: size - 1 ; eL2 = eP2 +(size −1)(eP2 +eC1 +e++j ) Vorteile + einfaches Verfahren mit geringem Berechnungsaufwand + skaliert gut mit der Programmgr¨oße Verzweigung C1 : P3 = a[j] > a[j + 1] Nachteile - generische Flussinformation kann kaum ber¨ ucksichtigt werden S1 = swap(&a[j],&a[j + 1]) ; e C1 = e P3 + e S 1 Funktionsaufruf S1 = swap(&a[j],&a[j + 1]) z. B. sich ausschließende Zweige aufeinanderfolgender Verzweigungen analog zum hier vorgestellten Verfahren c fs (Lehrstuhl Informatik 4) Echtzeitsysteme - schwierige Integration mit einer separaten Hardware-Analyse WS 2012/13 11 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 12 / 38 IX WCET 3 Pfadanalyse 3.3 IPET IX WCET 3 Pfadanalyse 3.3 IPET Den l¨angsten Weg durch ein Programm finden Wie berechnet man den l¨angsten Pfad? Die m¨ oglichen Wege lassen sich durch Kontrollflussgraphen beschreiben . . . und bestimmt so auch gleicht die maximale Ausf¨ uhrungszeit L¨osungsansatz: Fasse die Bestimmung der WCET als Flussproblem auf [2] Ein Kontrollflussgraphen (engl. control flow graph) ist ein gerichteter Graph und setzt sich aus Grundbl¨ ocken (engl. basic blocks) zusammen Grundbl¨ocke sind sequentielle Code-Schnipsel“ ” die Maximierung des Flusses in einem gerichteten Graphen ist ein gut untersuchtes Problem aus dem Bereich der Graphentheorie hier wird gearbeitet ; Grundbl¨ocke verbrauchen Rechenzeit Kanten im Kontrollflussgraphen ; Spr¨ unge zwischen Grundbl¨ocken i = size - 1; void bubbleSort ( int a [] , int size ) { int i , j ; i > 0 t f for(i = size - 1; i > 0; --i) { for (j = 0; j < i; ++j) { if(a[j] > a[j+1]) { swap(&a[j],&a[j+1]); } } } return; 1 bestimme einen Zeitanalysegraph aus dem Kontrollflussgraphen 2 formuliere das lineare Optimierungsproblem bestimme die Flussrestriktionen des Zeitanalysegraphen f --i return; 3 t a[j] < a[j + 1] t f swap(&a[j],&a[j + 1]); } ++j IX WCET Vorgehen: Transformiere den Kontrollflussgraphen in ein ganzzahliges, lineares Optimierungsproblem (ILP) und l¨ose es j = 0; j <= i c fs (Lehrstuhl Informatik 4) mithilfe ganzzahliger linearer Programmierung (engl. integer linear programming) l¨asst sich dieses Problem zudem effektiv l¨osen 4 1 Echtzeitsysteme 3 Pfadanalyse dies sind die Nebenbedingungen im Optimierungsproblem WS 2012/13 13 / 38 3.3 IPET l¨ose des Optimierungsproblem (z.B. mit lpsolve1 ) http://lpsolve.sourceforge.net/ c fs (Lehrstuhl Informatik 4) IX WCET Der Zeitanalysegraph (engl. timing analysis graph) Knoten, aus denen/in die nur Kanten entspringen/m¨ unden jede Kante ist Bestandteile eines Pfads P von der Senke zur Kante jeder Kante wird ihre WCET ei zugeordnet Grundbl¨ocke des Kontrollflussgraphen werden auf Kanten abgebildet f¨ ur Verzweigungen ben¨ otigt man Dummy-Kanten di 1 2 1:e1 2:e2 1 2 P 2:e2 3:e3 4:e4 Echtzeitsysteme + L¨ osung: fasse die Bestimmung der WCET als Flussproblem auf ; der maximale Fluss durch das durch den T-Graphen gegebene Netzwerk f¨ uhrt zur gesuchten WCET 3:e3 2:e2 3 d1 4 ; Flussprobleme sind mathematisch gut untersucht und lassen sich durch lineare Ganzzahlprogrammierung l¨osen 4:e4 WS 2012/13 Ei ∈P ; das ist algorithmisch nicht handhabbar 1:e1 1 2 3 4 c fs (Lehrstuhl Informatik 4) d1 3.3 IPET + Problem: erfordert die explizite Aufz¨ahlung aller Pfade Schleife 1:e1 d2 14 / 38 Mit der Anzahl fi der Ausf¨ uhrungen einer Kante Ei bestimmt man die WCET e durch Summation der Ausf¨ uhrungszeiten des l¨angsten Pfades: X e = max fi e i solche ein Pfad P entspricht einer m¨oglichen Abarbeitung Verzweigung 3 Pfadanalyse WS 2012/13 Bestimmung der WCET Ein Zeitanalysegraph (oder kurz T-Graph) ist ein gerichteter Graph mit einer Menge von Knoten V = {Vi } und Kanten E = {Ei }. mit genau einer Quelle und einer Senke Sequenz Echtzeitsysteme 15 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 16 / 38 IX WCET 3 Pfadanalyse 3.3 IPET IX WCET Zirkulationen 3 Pfadanalyse 3.3 IPET Beispiel: Bubblesort Eine Abbildung f : E 7→ R heißt Zirkulation, falls sie den Fluss erh¨alt 1:e1 jeder Kante wird die Zahl der Ausf¨ uhrungen fi als Fluss zugeordnet Flusserhaltung: jeder Knoten wird gleich oft betreten und verlassen i = size - 1; 1:e1 f erfordert die Einf¨ uhrung einer R¨ uckkehrkante Ee mit fe = 1 9:e9 return; d8 8:e8 --i f 8:e8 4:e4 d j <= i 4:e4 t Beschr¨ankung der maximalen Anzahl von Schleifendurchl¨aufen d1 3:e3 j = 0; 3:e3 Flussrestriktionen schließen Zirkulationen ung¨ ultiger Abarbeitungen aus Formulierung als Nebenbedingungen des Optimierungsproblems 2:e2 d7 i > 0 2:e2 t 6 d2 a[j] < a[j + 1] 5:e5 t f swap(&a[j],&a[j + 1]); 6:e6 9:e9 d5 5:e5 d4 d3 2:e2 4:e4 d1 7:e7 ++j f1 = f2 + f4 wird durch die Zirkulation garantiert g¨ ultige Zirkulation: {E1 , E4 , d2 , E5 , Ee } ∪ {E3 , d1 } 1:e1 3:e3 d2 d3 5:e5 c fs (Lehrstuhl Informatik 4) IX WCET ; aber keine g¨ ultige Abarbeitung Flussrestriktionen, die sich aus Schleifen ergeben: Flussrestriktion f3 ≤ 5f2 l¨ost dieses Problem wird E2 nicht abgearbeitet, so gilt f3 ≤ 5 · 0 = 0 hier: Beschr¨ankung auf 5 Schleifendurchl¨aufe ; Nebenbedingung des Optimierungsproblems Echtzeitsysteme WS 2012/13 3 Pfadanalyse 17 / 38 3.3 IPET c fs (Lehrstuhl Informatik 4) Echtzeitsysteme 3 Pfadanalyse WS 2012/13 18 / 38 3.3 IPET zun¨achst wird aus dem Kontrollflussgraph ein T-Graph erzeugt dieser wird in ganzzahliges lineares Optimierungsproblem u uhrt ¨berf¨ Ei ∈E Vorteile + M¨oglichkeit komplexer Flussrestriktionen Nebenbedingungen garantieren tats¨achlich m¨ ogliche Ausf¨ uhrungen Flusserhaltung f¨ ur jeden Knoten des T-Graphen X X fj = fk ¨ z. B. sich ausschließende Aste aufeinanderfolgender Verzweigungen + Nebenbedingungen f¨ ur das ILP sind leicht aufzustellen Ek− =Vi + viele Werkzeuge zur L¨osung von ILPs verf¨ ugbar Nachteile Flussrestriktionen f¨ ur alle Schleifen des T-Graphen, z.B. - das L¨osen eines ILP ist im Allgemeinen NP-hart - auch Flussrestriktionen sind kein Allheilmittel f2 ≤ (size − 1)f1 Beschreibung der Ausf¨ uhrungsreihenfolge ist problematisch R¨ uckkehrkante kann nur einmal durchlaufen werden: fEe = 1 Echtzeitsysteme bedingte Vertauschung: fd3 + f6 = f7 betrachte m¨ogliche Abarbeitungen des Kontrollflussgraphen dabei werden alle Pfade implizit in Betracht gezogen ; der Vektor (f1 , . . . , fe ) maximiert die Ausf¨ uhrungszeit c fs (Lehrstuhl Informatik 4) Flussrestriktionen, die sich aus Verzweigungen ergeben: Vor- und Nachteile Zielfunktion: Maximierung des gewichteten Flusses X WCETe = max fi e i Ej+ =Vi ¨außere Schleife“: f2 ≤ (size − 1)f1 ” innerer Schleife“: f4 ≤ (size − 1)f3 ” IX WCET Ganzzahliges Lineares Optimierungsproblem (f1 ,...,fe ) 6:e6 7:e7 WS 2012/13 19 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 20 / 38 IX WCET ¨ 3.4 Ubersicht 3 Pfadanalyse IX WCET Werkzeugkette f¨ur die WCET-Analyse [3] Gliederung Extraktion von Flussrestriktionen Quelltext 1 ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht 4 Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung Transformation von Flussrestriktionen ¨ Ubersetzer 4 Hardware-Analyse Berechnung der Ausf¨ uhrungsszenarien Harware-Analyse Bin¨ arcode WCET c fs (Lehrstuhl Informatik 4) Echtzeitsysteme IX WCET WS 2012/13 21 / 38 4 Hardware-Analyse c fs (Lehrstuhl Informatik 4) IX WCET Wie lange dauern die sequentiellen Code-Schnipsel“ ” Echtzeitsysteme WS 2012/13 22 / 38 4 Hardware-Analyse Hardware-Analyse Die WCETs ei der einzelnen Grundbl¨ ocke ist Eingabe f¨ ur die Flussanalyse Hardware-Analyse teilt sich in verschiedene Phasen Grundproblem: Ausf¨ uhrungszyklen von Instruktionen z¨ahlen _getop : link moveml movel movel a6 ,#0 #0 x3020 , sp@ a6@ (8) , a2 a6@ (12) , d3 ; ; ; ; 16 32 16 16 Zyklen Zyklen Zyklen Zyklen Aufteilung ist nicht dogmenhaft festgeschrieben Ergebnis: e getopt = 80 Zyklen Annahmen: obere Schranke f¨ ur jede Instruktion die obere Schranke der Sequenz bestimmt man durch Summation Quelle: Peter Puschner [2] WS 2012/13 Cache- und Pfad-Analyse sowie WCET-Berechnung Separate Pfad- und Cache-Analyse 1 Cache-Analyse pessimistisch f¨ ur moderne Prozessoren Pipeline, Cache, Branch Prediction, Prefetching, . . . haben großen Anteil an der verf¨ ugbaren Rechenleistung heutiger Prozessoren blanke Summation einzelner WCETs ignoriert diese Maßnahmen Echtzeitsysteme Wie lange dauert die Ausf¨ uhrung der Instruktionssequenz? 2 Cache-Analyse wird direkt in das Optimierungsproblem integriert Problem: Vorgehen ist ¨außerst pessimistisch und zum Teil falsch falsch f¨ ur Prozessoren mit Laufzeitanomalien WCET der Sequenz > Summe der WCETs aller Instruktionen c fs (Lehrstuhl Informatik 4) Integration von Pfad- und Cache-Analyse 1 Pipeline-Analyse 23 / 38 kategorisiert Speicherzugriffe mit Hilfe einer Datenflussanalyse 2 Pipeline-Analyse Ergebnisse der Cache-Analyse werden direkt ber¨ ucksichtigt 3 Pfad-Analyse und WCET-Berechnung c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 24 / 38 IX WCET 4 Hardware-Analyse 4.1 Cache-Analyse IX WCET Cache-Analyse [4, Kapitel 22] engl. (pseudo) least recently used, (Pseudo-)LRU engl. (pseudo) first in first out, (Pseudo-)FIFO Echtzeitsysteme IX WCET 4.1 Cache-Analyse Ergebnisse der Cache-Analyse Cache: ein kleiner, schneller Zwischenspeicher, Zugriffszeiten auf Daten/Instruktionen variieren je nach Zustand des Caches enorm: Treffer (engl. hit), Daten/Instruktion sind im Cache ; eh Fehlschlag (engl. miss), Daten/Instruktion sind nicht im Cache ; em Hits sind schneller als Misses: em  eh (> 100 Taktzyklen m¨oglich) Folgende Eigenschaften von Caches haben Einfluss auf seine Analyse Typ Cache f¨ ur Instruktionen Cache f¨ ur Daten kombinierter Cache f¨ ur Instruktionen und Daten Auslegung direkt abgebildet (engl. direct mapped) vollassoziativ (engl. fully associative) satz- oder mengenassoziativ (engl. set associative) Seitenersetzungsstrategie c fs (Lehrstuhl Informatik 4) 4 Hardware-Analyse 4 Hardware-Analyse Hilfreich ist, zu wissen, ob z.B. eine Instruktion im Cache ist, oder nicht: must, die Instruktion ist garantiert im Cache ; man kann immer die schnellere Ausf¨ uhrungszeit eh annehmen wird f¨ ur die Vorhersage von Treffern verwendet may, die Instruktion ist vielleicht im Cache ; ist dies nicht der Fall, muss man die Ausf¨ uhrungszeit em annehmen wird f¨ ur die Vorhersage von Fehlschl¨agen verwendet persistent, die Instruktion verbleibt im Cache ; erster Zugriff ist ein Fehlschlag, alle weiteren sind Treffer ; erster Zugriff: em , weitere Zugriffe: eh ist besonders f¨ ur Schleifen interessant, die den Cache f¨ ullen“ ” WS 2012/13 25 / 38 4.1 Cache-Analyse c fs (Lehrstuhl Informatik 4) IX WCET Beispiel: LRU-Cache, 4-fach assoziativ Echtzeitsysteme 4 Hardware-Analyse WS 2012/13 26 / 38 4.1 Cache-Analyse Beispiel: LRU-Cache, Zugriff auf eine Speicherstelle LRU = least recently used“ – Das ¨ alteste Element fliegt raus! ” Ann¨aherung des Cache-Verhaltens durch must- und may-Approximation: Aktualisierung von Inhalt und Verwaltungsinformation Caches werden h¨aufig in S¨atze (engl. cache set) unterteilt ein n-fach assoziativer Cache besitzt pro Satz n Cache-Bl¨ocke ; Aufnahme von n konkurrierende Speicherstellen pro Satz m¨oglich Inhalt und Verwaltungsinformation (bei LRU das Alter des Blocks) werden sowohl bei Treffern als auch bei Fehlschl¨agen aktualisiert konkrete Semantik des Cache Cache Miss {S} mustApproximation S S Z Y X Alter Z Y S T S Z Y T Alter must-Analyse und may-Analyse approximieren diese konkrete Semantik: must Obergrenze des Alters ; Unterapproximation des Inhalts Obergrenze ≤ Assoziativit¨at ; garantiert im Cache ¨ may Untergrenze des Alters ; Uberapproximation des Inhalts Untergrenze > Assoziativit¨at ; garantiert nicht im Cache c fs (Lehrstuhl Informatik 4) Definitive Cache Hit {Z } Cache Hit S Z Y X T Potential Cache Miss Echtzeitsysteme WS 2012/13 27 / 38 {X } {Z } {X } {S} {} {X } {} {X } {S, T } {} {S, T } {T } {} {S, T } {} {} Definitive Cache Miss Potential Cache Hit {Z } {S} mayApproximation c fs (Lehrstuhl Informatik 4) {X } {Z } {X } {S} {} {X } {} {X } {S, T } {} {S, T } {} {Y } {S, T } {Y } {Y , T } Echtzeitsysteme WS 2012/13 28 / 38 IX WCET 4 Hardware-Analyse 4.1 Cache-Analyse IX WCET Wie funktioniert nun die Cache-Analyse? 4 Hardware-Analyse 4.1 Cache-Analyse Verschmelzungsoperatoren f¨ur must- und may-Analyse Die Analyse ist eine Datenflussanalysen [1, Kapitel 8] may-Analyse must-Analyse 1 sammle Information in den Grundbl¨ocken Speicherzugriffe (s. Folie IX/28) ¨ man bestimmt die Ubertragungsfunktion (engl. transfer function) des Grundblocks Entry 3 1 2 2 2 1 2 die Information wird u ¨ber ausgehende Kanten weiterverteilt ¨ Eingabe f¨ ur die Ubertragungsfunktion der folgenden Grundbl¨ ocke 1 3 {A} {} {C , F } {D} 3 1 + Verschmelzungsoperatoren f¨ ur must- und may-Analyse c fs (Lehrstuhl Informatik 4) Echtzeitsysteme IX WCET WS 2012/13 4 Hardware-Analyse 29 / 38 4.1 Cache-Analyse Schnittmenge + max. Alter“ ” Vereinigungsmenge + min. Alter“ ” c fs (Lehrstuhl Informatik 4) Echtzeitsysteme 4 Hardware-Analyse WS 2012/13 30 / 38 4.1 Cache-Analyse Praxisrelevante Cache-Implementierungen Cache-Analyse mithilfe einer Datenflussanalyse funktioniert f¨ ur mengenassoziative Caches mit LRU sehr gut Entry [{} , {} , {} , {}] A t {A, C } {E } {F } {D} IX WCET Beispiel: must-Analyse f¨ur LRU {C } {E } {A} {D} {} {} {A, C } {D} fließt der Kontrollfluss wieder zusammen, wird auch die Information verschmolzen ; Verschmelzungsoperatoren Exit t {A} {} {C , F } {D} {C } {E } {A} {D} [{D} , {} , {A} , {}] t [{} , {} , {} , {}] = [{} , {} , {} , {}] Zugriffe auf unterschiedliche Cache-Zeilen beeinflussen sich nicht TriCore: 2-fach assoziativer LRU-Cache Zur Leistungssteigerung kommen auch andere Strategien zum Einsatz: [{A} , {} , {} , {}] B C D [{A} , {} , {} , {}] im Durchschnitt ¨ahnliche Leistung wie LRU, weniger vorhersagbar Psuedo-LRU [{B} , {A} , {} , {}] t [{C } , {A} , {} , {}] = [{} , {A} , {} , {}] Cache-Zeilen werden als Bl¨atter eines Baums verwaltet must-Analyse eingeschr¨ankt brauchbar, may-Analyse unbrauchbar z. B. PowerPC 750/755 Pseudo-Round-Robin Exit [{D} , {} , {A} , {}] 4-fach mengenassoziativer Cache mit einem 2-bit Ersetzungsz¨ahler Z¨ ahler deutet auf zu ersetzende Cache-Zeile, Erh¨ ohung bei Fehlschlag + Hier ist leider keine Vorhersage von Treffern m¨oglich / ; Tip: ein einfaches, virtuelles Ausrollen der Schleife hilft weiter! c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 must-Analyse kaum, may-Analyse u ¨berhaupt nicht brauchbar z. B. Motorola Coldfire 5307 31 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 32 / 38 IX WCET 5 Messbasierte WCET-Analyse IX WCET Gliederung Messbasierte WCET-Analyse [3] 1 ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht Idee: der Prozessor selbst ist das pr¨aziseste Hardware-Modell ; F¨ uhre das Programm aus und beobachte die Ausf¨ uhrungszeit! Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung IX WCET Probleme messbasierter Ans¨atze - in der Praxis ist es unm¨oglich alle relevanten Pfade zu betrachten - gew¨ahlte Testdaten f¨ uhren nicht unbedingt zum l¨angsten Pfad - seltene Ausf¨ uhrungsszenarien werden nicht abgedeckt - abschnittsweise WCET-Messung 6; globalen WCET 4 c fs (Lehrstuhl Informatik 4) - schwierig/unm¨oglich den Startzustand des Prozessors zu identifizieren/erzwingen, der zur WCET f¨ uhrt + messbasierte Ans¨atze untersch¨atzen die WCET meistens + systematischere, messbasierte Analysetechniken sind vonn¨oten Echtzeitsysteme WS 2012/13 Messbasierte WCET-Analyse [3] c fs (Lehrstuhl Informatik 4) 33 / 38 5 Messbasierte WCET-Analyse IX WCET z. B. Echtzeitsystem mit weichen Zeitschranken (engl. soft real-time systems) ¨ Uberblick 2 Problemstellung 3 Pfadanalyse Problemstellung Timing Schema Implicit Path Enumeration Technique ¨ Ubersicht 4 Hardware-Analyse Cache-Analyse 5 Messbasierte WCET-Analyse 6 Zusammenfassung h¨aufig ist kein geeignetes statisches Analysewerkzeug verf¨ ugbar geringer Aufwand f¨ ur Annotationen verschafft leicht Orientierung u ¨ber die tats¨achliche Laufzeit sinnvolle Erg¨anzung zur statischen WCET-Analyse Validierung statisch bestimmter Werte Ausgangspunkt f¨ ur die Verbesserung der statischen Analyse + Allerdings sollte man nicht einfach draus los messen“ ” ; z. B. immer Pfade vermessen (d. h. Ablauf und Zeit) Echtzeitsysteme WS 2012/13 34 / 38 WS 2012/13 36 / 38 6 Zusammenfassung 1 lassen sich leicht an neue Hardwareplattformen anpassen ; auf einen definierten Startzustand achten Echtzeitsysteme Gliederung (Forts.) Andererseits besteht Bedarf f¨ ur messbasierte Methoden g¨angige Praxis in der Industrie nicht alle Echtzeitsysteme ben¨ otigen eine sichere WCET c fs (Lehrstuhl Informatik 4) 5 Messbasierte WCET-Analyse WS 2012/13 35 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme IX WCET 6 Zusammenfassung IX WCET Res¨umee 7 Bibliographie Literaturverzeichnis Problemdefinition identifiziert zwei Teilprobleme Flussanalyse finde die l¨angsten Pfade durch ein Programm Hardwareanalyse bestimmt die WCET einzelner Grundbl¨ocke [1] Muchnick, S. S.: Advanced compiler design and implementation. San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 1997. – ISBN 1–55860–320–4 Pfadanalyse ; findet auf Programmiersprachenebene statt Timing Schema verwendet den abstrakten Syntaxbaum IPET basiert auf dem Kontrollflussgraphen [2] Puschner, P. : Zeitanalyse von Echtzeitprogrammen. Treitlstr. 1-3/182-1, 1040 Vienna, Austria, Technische Universit¨ at Wien, Institut f¨ ur Technische Informatik, Diss., 1993 Erzeugung eines T-Graphen, Ableitung eines Flussproblems ; ganzzahliges lineares Optimierungsproblem [3] Puschner, P. ; Huber, B. : Zeitanalyse von sicherheitskritischen Echtzeitsystemen. http://ti.tuwien.ac.at/rts/teaching/courses/wcet, 2012. – Lecture Notes Werkzeugkette f¨ ur die statische WCET-Analyse Hardware-Analyse ; Eingaben f¨ ur die WCET-Berechnung Hauptaufgaben: Cache- und Pipeline-Analyse Beispiel: Datenflussanalyse f¨ ur 4-fach assoziativen LRU-Cache [4] Wilhelm, R. : Embedded Systems. http: //react.cs.uni-sb.de/teaching/embedded-systems-10-11/lecture-notes.html, 2010. – Lecture Notes must-Approximation und may-Approximation messbasierte WCET-Analyse ; ein kleiner Fingerzeig! c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 37 / 38 c fs (Lehrstuhl Informatik 4) Echtzeitsysteme WS 2012/13 38 / 38