Verhaltenssynthese Vorlesung Eingebettete Systeme II Frank Slomka 1 Oldenburg, Sommersemester 2003 Aufbau des Kapitels • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter Vorlesung Eingebettete Systeme II Frank Slomka 2 Oldenburg, Sommersemester 2003 Aufbau des Kapitels • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Bestimmung des Taktes • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter Vorlesung Eingebettete Systeme II Frank Slomka 3 Oldenburg, Sommersemester 2003 Verhaltenssynthese Verhalten Struktur Algorithmus Alu’s, Mux’s RTL-Beschreibung Boolsche Funktionen Differentialgleichungen RTL Schaltkreis Vorlesung Eingebettete Systeme II Frank Slomka Transistoren Maskenlayout Algorithmik Logik Gatter Zelllayout Floorplan physikalische Darstellung 4 Oldenburg, Sommersemester 2003 Grundaufgaben der Synthese • Allokation Auswahl einer Komponente • Verhaltenssynthese: ALU, Multiplizierer einer Operation auswählen • RTL-Synthese: Für eine Verzweigung einen MUX auswählen • Logiksynthese: Operation UND durch mehrere NANDs realisieren • Bindung Eine Operation konkret einer Komponente zuordnen • Verhaltenssynthese: Multiplikation 5 der ALU1 zuweisen. • RTL-Synthese: Verzweigung3 dem MUX7 zuweisen • Ablaufplanung Bei konkurierenden Bindungen die Reihenfolge des Zugriffs festlegen Vorlesung Eingebettete Systeme II Frank Slomka 5 Oldenburg, Sommersemester 2003 Literatur • Daniel D. Gajski et al.. Specification and Design of Embedded Systems. Prentice Hall, New Jersey, 1994 • Giovanni De Micheli. Synthesis and Optimization of Digital Circuits. MacGraw Hill,New Jersey, 1994 • Daniel D. Gajski. Principles of Logic Design. Prentice Hall. New Jersey, 1997 • Jürgen Teich. Digitale Hardware/Software Systeme. Springer Verlag, Berlin, 1997 Vorlesung Eingebettete Systeme II Frank Slomka 6 Oldenburg, Sommersemester 2003 Ausgangslogik Zustandsregister Eingangslogik Entwurfsmodell Register ALU Steuerwerk Vorlesung Eingebettete Systeme II Frank Slomka Rechenwerk RegisterBank * Register 7 Oldenburg, Sommersemester 2003 Motivierendes Beispiel • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Bestimmung des Taktes • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter Vorlesung Eingebettete Systeme II Frank Slomka 8 Oldenburg, Sommersemester 2003 Beispiel entity square_root is port ( a, b :in Integer; START :in Bit; RESULT:out Integer; DONE:out Bit); end square_root; architecture behavior of square_root is begin -- square_root(a^2 + b^2); process(START) begin if START =1 then RESULT := max((0.875*max(a,b) + 0.5 *min(a,b), max(a,b)); DONE <= 1; end if; end; end square_root; Vorlesung Eingebettete Systeme II Frank Slomka 9 Oldenburg, Sommersemester 2003 Beispiel entity square_root is port ( a, b :in Integer; START :in Bit; RESULT:out Integer; DONE:out Bit); end square_root; t1 = |a| t2 = |b| x = max (t1,t2) y = min (t1,t2) t3 = x >> 3 t4 = y >> 1 t5 = x - t3 t6 = t4 + t5 t7 = max(t6,x) DONE = 1 architecture behavior of square_root is begin process(START) begin if START =1 then RESULT := max((0.875*a + 0.5 *b), a); -- square_root(a^2 + b^2); DONE <= 1; end if; end; end square_root; Vorlesung Eingebettete Systeme II Frank Slomka 10 Oldenburg, Sommersemester 2003 Kontroll-/Datenflußgraph (CDFG) IF |a| |b| t1 t2 min max x y >>1 x >>3 t3 t4 - t5 + t6 t1 = |a| t2 = |b| x = max (t1,t2) y = min (t1,t2) t3 = x >> 3 t4 = y >> 1 t5 = x - t3 t6 = t4 + t5 t7 = max(t6,x) DONE = 1 max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 11 Oldenburg, Sommersemester 2003 Taktung • Welche Taktzykluszeit benötigt man? IF • Wievile Takt- oder Kontrollschritte werden benötigt? S1 |a| |b| t1 S2 t2 min max x y S3 >>1 x • In welchem Kontrollschritt wird welche Operation ausgeführt (Ablaufplanung)? >>3 t3 S4 S5 S6 S7 t4 - t5 + t6 max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 12 Oldenburg, Sommersemester 2003 Bauteile-Bibliothek Subtrahierer Addierer Subtrahierer Multiplexer Betrag Subtrahierer Subtrahierer Multiplexer Multiplexer Min Max Vorlesung Eingebettete Systeme II Frank Slomka 13 Oldenburg, Sommersemester 2003 Variablenbelegung a IF S1 |a| x t1 t2 t3 t4 t5 t6 t7 t2 min max x y S3 y |b| t1 S2 b >>1 x >>3 t3 S4 S5 S6 S7 t4 - t5 + t6 max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 14 Oldenburg, Sommersemester 2003 Operationsbelegung min IF S1 |a| - + abs 2 2 t2 min 1 max 1 2 x y S3 >> |b| t1 S2 max >>1 x 2 2 >>3 t3 S4 S5 S6 S7 t4 t5 + t6 1 1 - 1 1 1 1 max t7 1 1 Vorlesung Eingebettete Systeme II Frank Slomka 1 2 1 1 2 15 Oldenburg, Sommersemester 2003 Verbindungen O min max >>1 >>3 - + abs1 abs2 IF S1 |a| S2 t2 min max S3 >>1 x S5 S6 S7 I >>3 t4 I t6 t2 x y t3 I I I O O - t5 + O O O t3 S4 I I x y a b t1 I |b| t1 I O t4 O t5 O max I t7 O 1 Vorlesung Eingebettete Systeme II Frank Slomka O t6 t7 16 Oldenburg, Sommersemester 2003 Sortierte Variablenbelegung a IF S1 |a| x t1 t2 t4 t3 t5 t6 t7 t2 min max x y S3 y |b| t1 S2 b >>1 x >>3 t3 S4 S5 S6 S7 t4 - t5 + t6 max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 17 Oldenburg, Sommersemester 2003 Zuordnung der Register a IF S1 |a| |b| t1 S2 t2 min max y x t1 t2 t4 t3 t5 t6 t7 R1 = [a, y, t1,t4,t6,t7] R2 = [b, x, t2] R3 = [t3, t5] x y S3 b >>1 x >>3 t3 S4 S5 S6 S7 t4 - t5 + t6 max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 18 Oldenburg, Sommersemester 2003 Rechenwerk (Datenpfad) R1 = [a, y, t1,t4,t6,t7] R2 = [b, x, t2] R3 = [t3, t5] MUX MUX MUX R1 R2 R3 abs abs Vorlesung Eingebettete Systeme II Frank Slomka max min + - >>3 >>1 19 Oldenburg, Sommersemester 2003 Zusammenlegen von Variablen a b c MUX d MUX + MUX x b,d MUX MUX + MUX y Ressource-Sharing Vorlesung Eingebettete Systeme II Frank Slomka a,c MUX x,y Register-Sharing 20 Oldenburg, Sommersemester 2003 Algorithmische Bestimmung der Registeranzahl a a t1 x b t2 y Vorlesung Eingebettete Systeme II Frank Slomka b y x t1 t2 t3 t4 t5 t6 t7 21 Oldenburg, Sommersemester 2003 Aufstellen eines Kompatibilitätsgraphen a a t1 x b t2 y Vorlesung Eingebettete Systeme II Frank Slomka b y x t1 t2 t3 t4 t5 t6 t7 22 Oldenburg, Sommersemester 2003 Aufstellen eines Kompatibilitätsgraphen a a t1 y b t2 x Vorlesung Eingebettete Systeme II Frank Slomka b y x t1 t2 t3 t4 t5 t6 t7 23 Oldenburg, Sommersemester 2003 Aufstellen eines Kompatibilitätsgraphen t4 a t1 t2 b y x t1 t2 t3 t4 t5 t6 t7 y t3 b a x Vorlesung Eingebettete Systeme II Frank Slomka t5 t6 t7 24 Oldenburg, Sommersemester 2003 Bestimmung der Registerzuordnung durch Graphfärbung t4 a t1 y t3 b t2 x t5 t6 t7 R1 = [a, t1,y, t3, t5, t6, t7] Vorlesung Eingebettete Systeme II Frank Slomka 25 Oldenburg, Sommersemester 2003 Bestimmung der Registerzuordnung durch Graphfärbung t4 a t1 y t3 b t2 x t5 t6 t7 R1 = [a, t1,y, t3, t5, t6, t7] R2 = [b, t2, t4, t5, t5, t6] Vorlesung Eingebettete Systeme II Frank Slomka 26 Oldenburg, Sommersemester 2003 Bestimmung der Registerzuordnung durch Graphfärbung t4 a t1 y t3 b t2 x t5 t6 t7 R1 = [a, t1,y, t3, t5, t6, t7] R2 = [b, t2, t4, t5, t5, t6] R3 = [x] Vorlesung Eingebettete Systeme II Frank Slomka 27 Oldenburg, Sommersemester 2003 Nutzung gemeinsamer Ressourcen a b c d + - x y a b MUX Vorlesung Eingebettete Systeme II Frank Slomka d MUX +/x keine gemeinsame Nutzung c y gemeinsame Nutzung 28 Oldenburg, Sommersemester 2003 Aufstellen eines Kompatibilitätsgraphen IF S1 |a| t1 S2 |b| t2 min max x y S3 |a| |b| >>1 x max min >>3 t3 S4 S5 S6 S7 t4 - t5 + t6 + - max t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 29 Oldenburg, Sommersemester 2003 Partitionierung 1 IF S1 |a| |b| t1 S2 min x >>1 x >>3 t3 S4 S5 S6 S7 |b| max y S3 |a| t2 t4 max min - t5 + t6 + max - t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 30 Oldenburg, Sommersemester 2003 Partitionierung 2 IF S1 |a| |b| t1 S2 min x >>1 x >>3 t3 S4 S5 S6 S7 |b| max y S3 |a| t2 t4 max min - t5 + t6 + max - t7 1 Vorlesung Eingebettete Systeme II Frank Slomka 31 Oldenburg, Sommersemester 2003 Rechenwerk (Datenpfad) MUX MUX R1 R2 |a| MUX |b| R3 max min MUX abs/min Vorlesung Eingebettete Systeme II Frank Slomka abs/max/+/- + >>1 >>3 32 Oldenburg, Sommersemester 2003 Rechenwerk (Datenpfad) MUX MUX MUX R1 R2 R3 MUX abs/min Vorlesung Eingebettete Systeme II Frank Slomka abs/max/+/- >>1 >>3 33 Oldenburg, Sommersemester 2003 Zusammenlegen von Verbindungen: Busse N M MUX MUX MUX R1 R2 R3 D B A C abs/min I Vorlesung Eingebettete Systeme II Frank Slomka MUX E H G F >>1 abs/min/+/- J K >>3 L 34 Oldenburg, Sommersemester 2003 Zusammenlegen von Verbindungen: Busse S0 S1 S2 S3 S4 S5 S6 A X B C X D X X X X X X E F X X X X G X H X I X X J X X X X X K X L X Vorlesung Eingebettete Systeme II Frank Slomka S7 X 35 Oldenburg, Sommersemester 2003 Zusammenlegen von Verbindungen: Busse A M C D I K J L E B F N G Vorlesung Eingebettete Systeme II Frank Slomka H 36 Oldenburg, Sommersemester 2003 Zusammenlegen von Verbindungen: Busse Ausgangsleitungen (Register) Bus1 Eingangsleitungen (Register) A M C D E I K J L B F Bus2 N G Bus4 H Bus3 Vorlesung Eingebettete Systeme II Frank Slomka 37 Oldenburg, Sommersemester 2003 Rechenwerk (Datenpfad) R1 abs/min Vorlesung Eingebettete Systeme II Frank Slomka R2 abs/min/+/- R3 >>1 >>3 38 Oldenburg, Sommersemester 2003 Zusammenlegen von Registern S0 S1 S2 S3 S4 S5 S6 S7 R1 R2 R3 Vorlesung Eingebettete Systeme II Frank Slomka 39 Oldenburg, Sommersemester 2003 Zusammenlegen von Registern S0 S1 S2 S3 S4 S5 S6 S7 R1 R2 R3 R2 R1 R3 Vorlesung Eingebettete Systeme II Frank Slomka 40 Oldenburg, Sommersemester 2003 Rechenwerk (Datenpfad) R1 R3 abs/min Vorlesung Eingebettete Systeme II Frank Slomka R2 abs/min/+/- >>1 >>3 41 Oldenburg, Sommersemester 2003 Grundlagen • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Bestimmung des Taktes • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter • Optimierung Vorlesung Eingebettete Systeme II Frank Slomka 42 Oldenburg, Sommersemester 2003 Algorithmen und Komplexität • Bei der Verhaltenssynthese handelt es sich um Entscheidungs und Optimierungsprobleme. Definition : Ein Algorithmus ist eine Berechnungsvorschrift, die aus einer Menge von Eingaben, Ausgaben und einer endlichen Anzahl von Bearbeitungsschritten besteht und in einer endlichen Anzahl von Bearbeitungsschritten terminiert. oder ein Algorithmus ist : Ein Rezept für ein Programm Vorlesung Eingebettete Systeme II Frank Slomka 43 Oldenburg, Sommersemester 2003 Klassifikation von Algorithmen • Qualität der Lösung • exakt • approximativ (heuristisch) • Berechnungsaufwand (Zeit- und Speicherbedarf) • worst case • avarage case • Komplexitätsanalyse • Maß der Zeitkomplexität an elementaren Operationen als Funktion der Problemgröße n. Definition : Die Zeitkomlexität eines Algorithmus der Problemgröße n von der Ordnung f(n), geschrieben O(f(n)), wenn es eine Konstante c gibt, so daß c f(n) eine obere Schranke für die Anzahl von Operationen darstellt. Vorlesung Eingebettete Systeme II Frank Slomka 44 Oldenburg, Sommersemester 2003 Effizienz • Effizient: Polynomielle Algorithmen, bei denen f(n) ein Polynom in n ist: f(n) = n3 + 1/2 n • Ineffizient: Algorithmen mit exponentieller Laufzeit: f(n) = 2n f(n) =nn/2 Vorlesung Eingebettete Systeme II Frank Slomka 45 Oldenburg, Sommersemester 2003 Optimalität Definition : Optimalität - Ein Algorithmus heißt optimal, wenn seine Komplexität gleich der dem Problem inhärenten Komplexität ist. • Beispiel: Bestimmung des Maximums von n ganzen Zahlen. Untere Schranke: n Operationen. Jeder Algorithmus der Komplexität O(n) ist optimal. Vorlesung Eingebettete Systeme II Frank Slomka 46 Oldenburg, Sommersemester 2003 Klassifikation von Problemen NP-hart NP-Vollständig NP P Vorlesung Eingebettete Systeme II Frank Slomka 47 Oldenburg, Sommersemester 2003 NP-Vollständig 1) Raten einer Lösung 2) Überprüfen (in polynomieller Zeit!), ob Lösung gültig. SAT NP-Vollständig (Erfüllbarkeitsproblem) Cooksche Transformation Transformation mit polynomieller Komplexität G3C TSP Vorlesung Eingebettete Systeme II Frank Slomka 48 Oldenburg, Sommersemester 2003 Datenstrukturen • Kontrollflußgraph • Datenflußgraph • Kontrolldatenfluß- bzw. Sequenzgraph • Ressourcengraph • Algebraische Spezifikation von Allokation und Bindung Vorlesung Eingebettete Systeme II Frank Slomka 49 Oldenburg, Sommersemester 2003 Kontrollflußgraph • Modellierung des Kontrollflusses einer gegebenen algorithmischen Beschreibung (z.B. C-Programm) • Aufteilung der algorithmischen Beschreibung in Steuerund Basisblöcke. C-Programm: do { if (a > 0) { c = a + b + f; d = e - c; } else { a++; d = a + d; } } while (d > 0) Kontrollflußgraph: S1 S1 Steuerblock B1 B1 Basisblock Basisblock B2 B2 S2 Vorlesung Eingebettete Systeme II Frank Slomka S2 Steuerblock 50 Oldenburg, Sommersemester 2003 Datenflußgraph • Modellierung des Datenflußes von Datenoperationen einer algorithmischen Beschreibung C-Programm: do { if (a > 0) { c = a + b + f; d = e - c; } else { a++; d = a + d; } } while (d > 0) Datenflußgraphen: a b + B1 e B2 Vorlesung Eingebettete Systeme II Frank Slomka a - B1 d f 1 + + c + d B2 51 Oldenburg, Sommersemester 2003 Datenflußgraph x 3 * u dx 1 * * 2 u y 3 * 6 x dx * 8 dx + y dx a x1 3 * 7 + 9 10 < 11 u y1 - 4 - 5 u1 Vorlesung Eingebettete Systeme II Frank Slomka x1 = x +dx u1 = u - (3*x*u*dx) - (3*y*dx) y1 =y + u*dx c = x1 < A 52 Oldenburg, Sommersemester 2003 Kontrolldatenflußgraph • Modellierung der kompletten algorithmischen Beschreibung durch Kombination von CFG und DFG. • Aus den DFGs können sowohl die Kosten als auch das Zeitverhalten der einzelnen Steuerblöcke als auch der Basisblöcke abgeleitet werden. a b + e - B1 S1 Steuerblock a f + c d Vorlesung Eingebettete Systeme II Frank Slomka 1 + Basisblock Basisblock + S2 d Steuerblock B2 53 Oldenburg, Sommersemester 2003 Sequenzgraph (Funktionen) N * + N + C + * Call N N Vorlesung Eingebettete Systeme II Frank Slomka 54 Oldenburg, Sommersemester 2003 Sequenzgraph (Verzweigungen) N * + N Branch + BR + N * - N N B1 Vorlesung Eingebettete Systeme II Frank Slomka N B2 55 Oldenburg, Sommersemester 2003 Ressourcegraph x 3 * u dx 1 * * 2 u y 3 * 6 x dx 8 * dx + 10 y dx a x1 3 * 7 9 + 11 < u y1 - 4 - 5 u1 1 2 3 Vorlesung Eingebettete Systeme II Frank Slomka * 2 MUL 2 2 * * 2 r1 2 2 α(r1) = 2 * 6 * 7 * 8 56 Oldenburg, Sommersemester 2003 Ressourcegraph x 3 * u dx 1 * * 2 u y 3 * 6 x dx 8 * dx 10 + y dx a x1 3 * 7 9 + 11 < u y1 - 4 - 5 u1 4 5 9 Vorlesung Eingebettete Systeme II Frank Slomka - 1 ALU 1 1 - + 1 r2 + 10 < 11 1 α(r2) = 1 57 Oldenburg, Sommersemester 2003 Ressourcegraph GR(VR,ER) besteht aus Knoten VR = VS ∪ VT mit: 1 VS ∈ GS Knoten des Sequenzgra- 2 phen. VT Knoten, die den jeweiligen Ressourcentyp spezifizieren. 3 Kanten (vs,vt), die die Verfügbar- 4 keit einer Instanz vom Ressourcetyp vt für eine Operation vs 5 beschreiben. 9 Vorlesung Eingebettete Systeme II Frank Slomka * 2 MUL 2 2 * 2 r1 * 2 2 α(r1) = 2 - 1 1 ALU 1 - + 1 r2 * 6 * 7 * 8 + 10 < 11 1 α(r2) = 1 58 Oldenburg, Sommersemester 2003 Allokation, Bindung, Ablaufplan Definition : Eine Allokation ist eine Funktion α: VT -> Z+ die jedem Ressourcetyp vt ∈ VT die Anzahl α(vt) verfügbarer Instanzen zuweist. Definition : Die Bindung eines Sequenzgraphen sind Funktionen β: Vs -> VT und γ: Vs -> Z+, wobei β(vs) = vt und γ(vs) = r bedeutet, daß die r-te Instanz des Ressourcetyps vt implementiert wird. Eine gültige Bedingung erfüllt die Bedingungen: β(vs) = vt und γ(vs) < α(vt) . Definition : Ein Ablaufplan (Schedule) eines Sequenzgraphen GS = (VS,ES) ist eine Funktion τ: Vs -> N, die die Bedingungen τ(vj) - τ(vi) > wi ∀(vi,vj) ∈ ES erfüllt. Dabei beschreibt die Funktion wi: Vs -> N, die jeweilige Ausführungszeit von vi auf vt. Vorlesung Eingebettete Systeme II Frank Slomka 59 Oldenburg, Sommersemester 2003 Beispiel x 3 * u dx 1 * * 2 u y 3 * 6 x dx 8 * dx 10 + y dx a x1 3 * 7 9 + 11 < u y1 - 4 - 5 u1 4 5 9 Vorlesung Eingebettete Systeme II Frank Slomka - 1 ALU 1 1 - * 1 r2 * 10 * 11 1 α(r2) = 1 60 Oldenburg, Sommersemester 2003 Beispiel x 3 * u dx 1 * * 2 u y 3 * 6 x dx * 8 dx + y dx a x1 3 * 7 + 9 10 < 11 u y1 - 4 - 5 u1 Vorlesung Eingebettete Systeme II Frank Slomka β(v4) = r2 β(v5) = r2 β(v6) = r1 β(v7) = r1 β(v8) = r1 β(v9) = r2 β(v10) = r2 β(v11) = r2 γ(v4) = 1 γ(v5) = 1 γ(v6) = 1 γ(v7) = 1 γ(v8) = 1 γ(v9) = 1 γ(v10) = 1 γ(v11) = 1 61 Oldenburg, Sommersemester 2003 Beispiel x 3 * u dx 1 * * 2 u y 3 6 * x dx 8 * dx 10 + y dx a x1 3 7 * 9 + 11 < u 2 y1 - 4 1 - 5 u1 4 5 9 Vorlesung Eingebettete Systeme II Frank Slomka - 1 ALU 1 1 - * 1 r2 * 10 * 11 1 α(r2) = 2 62 Oldenburg, Sommersemester 2003 Beispiel x 3 * u dx 1 * * 2 u y 3 6 * x dx * 8 dx 10 + y dx a x1 3 7 * + 9 11 < u 2 y1 - 4 1 - 5 u1 Vorlesung Eingebettete Systeme II Frank Slomka β(v4) = β(v5) = β(v6) = β(v7) = β(v8) = β(v9) = β(v10) = β(v11) = γ(v4) = γ(v5) = γ(v6) = γ(v7) = γ(v8) = γ(v9) = γ(v10) = γ(v11) = 63 Oldenburg, Sommersemester 2003 Beispiel x 3 * u dx 1 * * 2 u y 3 6 * x dx * 8 dx 10 + y dx a x1 3 7 * + 9 11 < u 2 y1 - 4 1 - 5 u1 Vorlesung Eingebettete Systeme II Frank Slomka β(v4) = r2 β(v5) = r2 β(v6) = r1 β(v7) = r1 β(v8) = r1 β(v9) = r2 β(v10) = r2 β(v11) = r2 γ(v4) = 1 γ(v5) = 1 γ(v6) = 1 γ(v7) = 1 γ(v8) = 1 γ(v9) = 1 γ(v10) = 2 γ(v11) = 2 64 Oldenburg, Sommersemester 2003 Latenz x 3 * u dx 1 * * 2 u y 3 * 6 x dx * 8 dx + y dx a x1 3 * 7 + 9 10 < 11 u y1 - 4 - 5 u1 Vorlesung Eingebettete Systeme II Frank Slomka Definition : Die Latenz L eines Ablaufplans τ eines Sequenzgraphen GS = VS,ES) ist definiert als L = max (τ(vi) + wi) - min (vj) 65 Oldenburg, Sommersemester 2003 Beispiel τ1 x 3 w1 τ3 w3 τ4 w4 * u dx 1 * * 2 u y 3 * 6 x dx * 8 dx + y dx * 7 + 9 10 a x1 3 min(τ(vj)) < 11 u y1 τ2 w5 - 4 - 5 u1 Definition : Die Latenz L eines Ablaufplans τ eines Sequenzgraphen GS = VS,ES) ist definiert als L = max (τ(vi) + wi) - min (vj) max(τ(vi) + wi) Vorlesung Eingebettete Systeme II Frank Slomka 66 Oldenburg, Sommersemester 2003 Übersicht • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter • Optimierung Vorlesung Eingebettete Systeme II Frank Slomka 67 Oldenburg, Sommersemester 2003 Ablaufplanung Einteilung • Unbeschränkte Ressourcen: Keine Vorgaben • Beschränkte Ressourcen: Vorgaben von Ressourcenbeschränkungen (Anzahl, Typen), die den Lösungsraum geeigneter Ablaufpläne einschränken. • Transformatorische Algorithmen • Iterativ konstruktive Algorithmen Vorlesung Eingebettete Systeme II Frank Slomka 68 Oldenburg, Sommersemester 2003 Ablaufplanung Ablaufplanung ohne Ressourcenbeschränkungen • Bestimmung unterere Schranken • Bindung mit dedizierten Ressourcen • Lösung der Ablaufplanung nach der Bindung, d.h. die Kosten der späteren Implementierung sind unabhängig von der Ablaufplanung. Vorlesung Eingebettete Systeme II Frank Slomka 69 Oldenburg, Sommersemester 2003 Ablaufplanung Definition : Gegeben ein Sequenz- und eine Ressourcegraph, mit einer Gewichtungsfunktion, die jeder Kante in GR die Ausführungszeit ws = w(vs,vt) zuordnet. Unter Latenzminimierung ohne Ressourcenbeschränkung versteht man das Problem min {L | τ(vi) - τ(vj ) > wi, ∀(vi,vj) ∈ ES} Vorlesung Eingebettete Systeme II Frank Slomka 70 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * Vorlesung Eingebettete Systeme II Frank Slomka 71 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Soon as Possible (ASAP): DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1. Plane alle Startknoten 1 + Vorlesung Eingebettete Systeme II Frank Slomka 2 * + 6 + 8 72 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Soon as Possible (ASAP): 1. Plane alle Startknoten 2. Plane alle Knoten deren Vorgänger bereits eingeplant sind DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1 + 2 * + 6 * 7 + 8 < 9 3 * Vorlesung Eingebettete Systeme II Frank Slomka 73 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Soon as Possible (ASAP): 1. Plane alle Startknoten 2. Plane alle Knoten deren Vorgänger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1 + 2 * + 6 * 7 + 8 < 9 3 * 4 + Vorlesung Eingebettete Systeme II Frank Slomka 74 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Soon as Possible (ASAP): 1. Plane alle Startknoten 2. Plane alle Knoten deren Vorgänger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1 + 2 * + 6 * 7 + 8 < 9 3 * 4 + 5 * Vorlesung Eingebettete Systeme II Frank Slomka 75 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Soon as Possible (ASAP): Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * + 6 + 8 < 9 * 7 5 * 1 + Latenz = 7 Z.E. 1. Plane alle Startknoten 2. Plane alle Knoten deren Vorgänger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind DFG: 2 * + 6 * 7 + 8 < 9 3 * 4 + 5 * 76 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Late as Possible (ALAP): DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1. Plane alle Endknoten 5 * Vorlesung Eingebettete Systeme II Frank Slomka < 9 77 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Late as Possible (ALAP): DFG: 1 + 2 * + 6 + 8 < 9 * 7 5 * 1. Plane alle Endknoten 2. Plane alle Knoten deren Nachfolger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind 3 * 4 + 5 * Vorlesung Eingebettete Systeme II Frank Slomka * 7 + 8 < 9 78 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Late as Possible (ALAP): DFG: 1 + 2 * < 9 * 7 5 * 1. Plane alle Endknoten 2. Plane alle Knoten deren Nachfolger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind 3 * 4 + 5 * Vorlesung Eingebettete Systeme II Frank Slomka + 6 + 8 + 6 * 7 + 8 < 9 79 Oldenburg, Sommersemester 2003 ASAP/ALAP • Polynomielle Algorithmen • Keine Ressourcenbeschränkung! + = 1 Z.E. 3 * • Ablaufplan ist latenzoptimal * = 2 Z.E. 4 + • As Late as Possible (ALAP): Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * + 6 + 8 < 9 * 7 5 * Latenz = 7 Z.E. 1. Plane alle Endknoten 2. Plane alle Knoten deren Nachfolger bereits eingeplant sind 3. Führe Schritt 2 solange aus bis alle Knoten geplant sind DFG: 1 + 2 * 3 * 4 + 5 * + 6 * 7 + 8 < 9 80 Oldenburg, Sommersemester 2003 ASAP/ALAP • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * Ablaufplan ist suboptimal * = 2 Z.E. 4 + • DFG: 1 + 2 * + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL Latenz = 7 Z.E. 5 * Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * 3 * 4 + 5 * + 6 * 7 + 8 < 9 81 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 DFG: Mobilität: 0 1 2 1 + 2 * * 7 Ressourcen: 1 ALU 1 MUL 2 * 3 * Mobilität 4 + 5 * Vorlesung Eingebettete Systeme II Frank Slomka < 9 5 * 5 ASAP ALAP 1 + + 6 + 8 + 6 * 7 + 8 < 9 82 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Sortiere alle nicht geplanten Knoten deren Vorgänger zur Zeit t ausgeführt sind nach ihrer Priorität 3. Plane alle Knoten gemäß der sortierten Reihenfolge soweit die jeweils benötigten Ressourcen zur Zeit t frei sind. Vorlesung Eingebettete Systeme II Frank Slomka DFG: Mobilität: 0 1 2 1 + 2 * Priorität 1+ < 9 * 7 5 * 5 + 6 + 8 Ressourcen: 1 ALU 1 MUL 2 * 83 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Sortiere alle nicht geplanten Knoten deren Vorgänger zur Zeit t ausgeführt sind nach ihrer Priorität 3. Plane alle Knoten gemäß der sortierten Reihenfolge soweit die jeweils benötigten Ressourcen zur Zeit t frei sind. Vorlesung Eingebettete Systeme II Frank Slomka DFG: Mobilität: 0 1 2 1 + 2 * + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität 1+ 2 * + 6 84 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Sortiere alle nicht geplanten Knoten deren Vorgänger zur Zeit t ausgeführt sind nach ihrer Priorität 3. Plane alle Knoten gemäß der sortierten Reihenfolge soweit die jeweils benötigten Ressourcen zur Zeit t frei sind. Vorlesung Eingebettete Systeme II Frank Slomka DFG: Mobilität: 0 1 2 1 + 2 * + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität 1+ 2 * 3 * + 6 + 8 85 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Sortiere alle nicht geplanten Knoten deren Vorgänger zur Zeit t ausgeführt sind nach ihrer Priorität 3. Plane alle Knoten gemäß der sortierten Reihenfolge soweit die jeweils benötigten Ressourcen zur Zeit t frei sind. Vorlesung Eingebettete Systeme II Frank Slomka DFG: Mobilität: 0 1 2 1 + 2 * + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität 1+ 2 * 3 * + 6 + 8 < 9 86 Oldenburg, Sommersemester 2003 Listscheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Listscheduling: Vorlesung Eingebettete Systeme II Frank Slomka Mobilität: 0 1 2 1 + 2 * + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität Latenz = 8 Z.E. 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Sortiere alle nicht geplanten Knoten deren Vorgänger zur Zeit t ausgeführt sind nach ihrer Priorität 3. Plane alle Knoten gemäß der sortierten Reihenfolge soweit die jeweils benötigten Ressourcen zur Zeit t frei sind. DFG: 1+ 2 * + 6 + 8 < 9 3 * 4 + * 7 5 * 87 Oldenburg, Sommersemester 2003 Force-Directed Scheduling • Linearer Algorithmus • Ressourcenbeschränkung wird berücksichtigt + = 1 Z.E. 3 * • Ablaufplan ist suboptimal * = 2 Z.E. 4 + • Force-Directed Scheduling: 1. Berechne für jeden Knoten eine Priorität (z.B. Mobilität nach ASAP/ALAP), t = 0 2. Bestimme das Mobilitätsintervall der Knoten für jede Ressource getrennt. DFG: Mobilität: 0 1 2 1 + 2 * < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität ASAP ALAP 1 + 2 * 3 * Mobilität 4 + 5 * Vorlesung Eingebettete Systeme II Frank Slomka + 6 + 8 + 6 * 7 + 8 < 9 88 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 p i, t = ---------------------µ ( vi ) + 1 DFG: 1 + + = 1 Z.E. 3 * * = 2 Z.E. 4 + Mobilität: 0 1 2 + 6 + 8 2 * < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität ALU 1/2 1/3 1/6 1 1 6 8 9 Vorlesung Eingebettete Systeme II Frank Slomka 4 89 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 p i, t = ---------------------µ ( vi ) + 1 DFG: + 6 + 8 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + Mobilität: Zeit- 0 1 2 4. Bestimme für jeden schritt die Belegung der Ressource. 1 + < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität ALU 1/2 1/3 1/6 1 1 6 8 9 Vorlesung Eingebettete Systeme II Frank Slomka 4 qk,t = Σ 1 7/6 2/3 1/3 4/3 1/3 1/6 90 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 p i, t = ---------------------µ ( vi ) + 1 DFG: 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + Mobilität: Zeit- 0 1 2 4. Bestimme für jeden schritt die Belegung der Ressource. 1 + + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität MUL 1 1/3 2 3 5 Vorlesung Eingebettete Systeme II Frank Slomka 7 qk,t = Σ 1 4/3 4/3 4/3 1/3 1 1 91 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 p i, t = ---------------------µ ( vi ) + 1 t Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + Mobilität: Zeit- 0 1 2 4. Bestimme für jeden schritt die Belegung der Ressource. 5. Aus der Liste der ungeplanten Aufgaben, plane die Aufgabe mit der geringsten Kraft. Dabei wird die Kraft für jeden Zeitschritt unter der Annahme berechnet, daß die Operation jeweils in diesem Schritt geplant wird: F k, t = ∑ q k, t ⋅ ( p sched – p i, t ) k, t DFG: + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität MUL 1 -1/3 -7/9 -8/9 -8/9 0 0 2 3 5 0,33 -28/9 -28/9 7 -28/9 -47/9 qk,t = Σ 1 4/3 4/3 4/3 1/3 1 1 92 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 p i, t = ---------------------µ ( vi ) + 1 t Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + Mobilität: Zeit- 0 1 2 4. Bestimme für jeden schritt die Belegung der Ressource. 5. Aus der Liste der ungeplanten Aufgaben, plane die Aufgabe mit der geringsten Kraft. Dabei wird die Kraft für jeden Zeitschritt unter der Annahme berechnet, daß die Operation jeweils in diesem Schritt geplant wird: F k, t = ∑ q k, t ⋅ ( p sched – p i, t ) k, t DFG: + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität ALU 1/2 1/3 1/6 1 -1/12 1 -13/12 6 8 9 4 0 qk,t = Σ 1 7/6 2/3 1/3 4/3 1/3 1/6 93 Oldenburg, Sommersemester 2003 Force-Directed Scheduling 3. Berechne für jeden Knoten seine Ausführungswahrscheinlichkeit im Mobiltitätsintervall t = [τs(vi), τl(vi)]: 1 Vorlesung Eingebettete Systeme II Frank Slomka 2 * 3 * * = 2 Z.E. 4 + Mobilität: Zeit- 0 1 2 4. Bestimme für jeden schritt die Belegung der Ressource. 5. Aus der Liste der ungeplanten Aufgaben, plane die Aufgabe mit der geringsten Kraft. 6. Addiere zur Selbstkraft jedes einzelnen Knoten die Kräfte aller seiner Vorgänger und Nachfolger. 1 + + = 1 Z.E. + 6 + 8 < 9 * 7 Ressourcen: 1 ALU 1 MUL 5 * 5 Priorität Latenz = 8 Z.E. p i, t = ---------------------µ ( vi ) + 1 DFG: 1+ 2 * + 6 + 8 < 9 3 * 4 + * 7 5 * 94 Oldenburg, Sommersemester 2003 Pfadscheduling • Pfadbasiertes Verfahren: - As Fast as Possible (AFAP) (Camposano 1991) • • Globales Verfahren auf Kontrollflußgraphen (CFG) Vorteil: Ablaufplanung über die Grenzen von Basisblöcken ist möglich • Nachteil: Pfadexplosion bei komplexen Algorithmen • Voraussetzung: Allokation ist festgelegt Vorlesung Eingebettete Systeme II Frank Slomka a>0 > a>0 + + + + = = d>0 = > CFG do { if (a > 0) { c = a + b + f; d = e - c; } else { a++; d = a + d; } } while (d > 0) S1 B1 B2 S2 C-Programm 95 Oldenburg, Sommersemester 2003 Pfadschduling • Algorithmus: a>0 1. Schleifeneleminierung > 1 a>0 a>0 > va>0 l + + 2 + + 8 + + 3 + + 9 = = 4 = = 10 - 5 - = 6 = d>0 > Vorlesung Eingebettete Systeme II Frank Slomka Store: 1,5,d>0 > 7 vf 96 Oldenburg, Sommersemester 2003 Pfadschduling • Algorithmus: a>0 1. Schleifeneleminierung 2. Auftrennen des CFG in Teilgraphen, die durch Verzweigungen oder den Beginn von Schleifen definiert sind > a>0 a>0 > va>0 l + + 2 + + 8 + + 3 + Pfad + 9 = = 4 = 1 - 5 - = 6 = 2 = 10 d>0 > Vorlesung Eingebettete Systeme II Frank Slomka 1 Store: 1,5,d>0 > 7 vf 97 Oldenburg, Sommersemester 2003 Pfadschduling • Algorithmus: a>0 1. Schleifeneleminierung 2. Auftrennen des CFG in Teilgraphen, die durch Verzweigungen oder den Beginn von Schleifen definiert sind 3. Aufstellen von Randbedingungen für jeden Teilgraphen (Intervalle) wenn: • Zwei Knoten die gleiche Ressource benötigen • Die Summe von Knotenausführungen kleiner als ein gegebener Zyklus T ist > 1 a>0 a>0 > va>0 l + + 2 + + 8 + + 3 + Pfad + 9 = = 4 = 1 - 5 - = 6 = 2 = 10 d>0 > Store: 1,5,d>0 > 7 vf 1 ALU1 ALU2 2 REG 3 a ALU1 4 ALU2 5 REG ALU1 Vorlesung Eingebettete Systeme II Frank Slomka d 6 7 98 Oldenburg, Sommersemester 2003 Pfadschduling • Algorithmus: a>0 1. Schleifeneleminierung 2. Auftrennen des CFG in Teilgraphen, die durch Verzweigungen oder den Beginn von Schleifen definiert sind 3. Aufstellen von Randbedingungen für jeden Teilgraphen (Intervalle) wenn: • Zwei Knoten die gleiche Ressource benötigen • Die Summe von Knotenausführungen kleiner als ein gegebener Zyklus T ist > 1 a>0 + + 2 + + 8 + + 3 + Pfad + 9 = = 4 = 1 - 5 - = 6 = 2 = 10 d>0 > Store: 1,5,d>0 > 7 vf 1 ALU1 ALU2 2 REG 3 a b ALU1 4 c ALU2 5 REG ALU1 Vorlesung Eingebettete Systeme II Frank Slomka a>0 > va>0 l d 6 7 99 Oldenburg, Sommersemester 2003 Pfadscheduling • Algorithmus: a>0 1. Schleifeneleminierung 2. Auftrennen des CFG in Teilgraphen, die durch Verzweigungen oder den Beginn von Schleifen definiert sind 3. Aufstellen von Randbedingungen für jeden Teilgraphen (Intervalle) wenn: • Zwei Knoten die gleiche Ressource benötigen • Die Summe von Knotenausführungen kleiner als ein gegebener Zyklus T ist 4. Ermitteln der minimal benötigten Steuerschritte (cut) 1 a>0 a>0 > va>0 l + + 2 + + 8 + + 3 + Pfad + 9 = = 4 = 1 - 5 - = 6 = 2 = 10 d>0 Store: 1,5,d>0 > > ALU2 2 REG 3 vf clique 1 a b a b a b c d c d cut1 ALU1 4 c ALU2 5 ALU1 7 cut0 1 ALU1 REG Vorlesung Eingebettete Systeme II Frank Slomka > clique 2 d 6 7 cut2 100 Oldenburg, Sommersemester 2003 Pfadschduling • Algorithmus: a>0 > a>0 Takt 1 2 + 1. Schleifeneleminierung + 8 Takt 2 2. Auftrennen des CFG in Teil+ 9 3 + graphen, die durch VerzweiTakt 3 gungen oder den Beginn von = 10 4 = Schleifen definiert sind 5 3. Aufstellen von RandbedinTakt 4 gungen für jeden Teilgraphen 6 = (Intervalle) wenn: > 7 Takt 5 • Zwei Knoten die gleiche Ressource benötigen clique 1 10 20 • Die Summe von Knotenausführungen kleiner als ein gegebener Zyklus T clique 2 11 ist 21 4. Ermitteln der minimal benöclique 4 tigten Steuerschritte (cut) 5. überlagern der Steuer- clique 3 12 schritte aller Pfade Vorlesung Eingebettete Systeme II Frank Slomka cut10 cut20 cut21 cut11 Pfad 1 Pfad 2 cut12 10 20 11 21 11 101 Oldenburg, Sommersemester 2003 Pfadscheduling: Beispiel entity prefetch is port ( branchpc, ibus : in bit32; branch, ire : in bit; ppc, popc, abus: out bit32); end prefetch; architecture behavior of prefetch is begin process variable pc, oldpc: bit32 := 0; begin ppc <= pc; -- 1 popc <= oldpc; -- 2 abus <= ibus + 4; -- 3 if (branch = ’1’) then -- 4 pc := branchpc; -- 5 end if; -- 6 wait until (ire = ’1’); -- 7 oldpc := pc; -- 8 pc := pc + 4; -- 9, 10 endEingebettete process;Systeme II Vorlesung Frank Slomka end behavior; 1 2 3 branch 4 5 branch 6 ire 7 ire 8 9 0 102 Oldenburg, Sommersemester 2003 Pfadscheduling: Beispiel entity prefetch is port ( branchpc, ibus : in bit32; branch, ire : in bit; ppc, popc, abus: out bit32); end prefetch; architecture behavior of prefetch is begin process variable pc, oldpc: bit32 := 0; begin ppc <= pc; -- 1 popc <= oldpc; -- 2 abus <= ibus + 4; -- 3 if (branch = ’1’) then -- 4 pc := branchpc; -- 5 end if; -- 6 wait until (ire = ’1’); -- 7 oldpc := pc; -- 8 pc := pc + 4; -- 9, 10 endEingebettete process;Systeme II Vorlesung Frank Slomka end behavior; 1 2 3 branch 4 5 branch 6 ire 7 ire 8 9 0 103 Oldenburg, Sommersemester 2003 Entfernen der Schleifen entity prefetch is port ( branchpc, ibus : in bit32; branch, ire : in bit; ppc, popc, abus: out bit32); end prefetch; architecture behavior of prefetch is begin process variable pc, oldpc: bit32 := 0; begin ppc <= pc; -- 1 popc <= oldpc; -- 2 abus <= ibus + 4; -- 3 if (branch = ’1’) then -- 4 pc := branchpc; -- 5 end if; -- 6 wait until (ire = ’1’); -- 7 oldpc := pc; -- 8 pc := pc + 4; -- 9, 10 endEingebettete process;Systeme II Vorlesung Frank Slomka end behavior; 1 Store 7, 7, ire 1, 10, 1 2 3 branch 4 5 branch 6 7 8 9 0 104 Oldenburg, Sommersemester 2003 Bedingungen • In einem Kontrollschritt kann nur eine Variable zugewiesen werden. 1 2 • Eine Ressource kann in einem Kontrollschritt nur einmal verwendet werden. • I/O Ports können in einem Kontrollschritt nur einmal geschrieben bzw. gelesen werden. • Die maximale Zykluszeit begrenzt die Länge eines Kontrollschrittes. Vorlesung Eingebettete Systeme II Frank Slomka Store 7, 7, ire 1, 10, 1 3 4 5 6 7 8 9 0 105 Oldenburg, Sommersemester 2003 Bedingungen architecture behavior of prefetch is begin process variable pc, oldpc: bit32 := 0; begin ppc <= pc; -- 1 popc <= oldpc; -- 2 abus <= ibus + 4; -- 3 if (branch = ’1’) then -- 4 pc := branchpc; -- 5 end if; -- 6 wait until (ire = ’1’); -- 7 oldpc := pc; -- 8 pc := pc + 4; -- 9, 10 end process; end behavior; 1 Store 7, 7, ire 1, 10, 1 2 3 4 5 6 7 8 9 0 Vorlesung Eingebettete Systeme II Frank Slomka 106 Oldenburg, Sommersemester 2003 Intervallgraph cut 0 1 Store 7, 7, ire 1, 10, 1 2 3 2 4 2 1 cut 1 clique 1 1 5 6 7 8 9 0 Vorlesung Eingebettete Systeme II Frank Slomka 107 Oldenburg, Sommersemester 2003 Bedingungen architecture behavior of prefetch is begin process variable pc, oldpc: bit32 := 0; begin ppc <= pc; -- 1 popc <= oldpc; -- 2 abus <= ibus + 4; -- 3 if (branch = ’1’) then -- 4 pc := branchpc; -- 5 end if; -- 6 wait until (ire = ’1’); -- 7 oldpc := pc; -- 8 pc := pc + 4; -- 9, 10 end process; end behavior; 1 Store 7, 7, ire 1, 10, 1 2 1 3 2 3 4 5 4 6 7 8 9 0 Vorlesung Eingebettete Systeme II Frank Slomka 108 Oldenburg, Sommersemester 2003 Intervallgraph cut 0 1 2 clique 1 Store 7, 7, ire 1, 10, 1 2 1 3 2 3 1 cut 1 3 4 cut 2 5 4 5 clique 2 4 6 7 8 9 0 Vorlesung Eingebettete Systeme II Frank Slomka 109 Oldenburg, Sommersemester 2003 Überlappen der Pfade: Suchen der maximalen Überdeckung cut 20 cut 10 cut 11 1 1 2 2 3 3 4 4 cut 21 Vorgegeben durch Flächenbeschränkung 5 Vorlesung Eingebettete Systeme II Frank Slomka 6 6 7 7 7 8 8 8 9 9 9 0 0 0 cut 30 110 Oldenburg, Sommersemester 2003 ILP-Modell zur Ablaufplanung • Algorithmus: 1. Aufstellen des Gleichungssystems 2. Finden einer Variablenbelegung x, die das gleichungsystem mit minimaler Latenz erfüllt. Lösung mit z.B. Branch and Bound x i, t ∈ { 0, 1 } ∀v i ∈ V, ∀t:l i ≤ t ≤ h i hi ∑ ∀v i ∈ V x i, t = 1 t = li hi ∑ t ⋅ x i, t = τ ( v i ) ) ∀v i ∈ V t = li τ ( vi ) – τ ( v j ) ≥ di ∑ ∀( v i, v j ) ∈ V max { d i – 1, t – l i } ∑ ∀i: ( v i, v j ) ∈ E R p = max { 0, t – h i } x i, t – p ≤ α ( r k ) ∀r k ∈ V T, ∀min { l i } ≤ t ≤ max ( h i ) Vorlesung Eingebettete Systeme II Frank Slomka 111 Oldenburg, Sommersemester 2003 ILP-Modell zur Ablaufplanung x i, t ∈ { 0, 1 } ∀v i ∈ V, ∀t:l i ≤ t ≤ h i Jede Operation darf nur einmal geplant werden Vorlesung Eingebettete Systeme II Frank Slomka hi ∑ x i, t = 1 ∀v i ∈ V t = li 112 Oldenburg, Sommersemester 2003 ILP-Modell zur Ablaufplanung x i, t ∈ { 0, 1 } ∀v i ∈ V, ∀t:l i ≤ t ≤ h i Jede Operation darf nur einmal geplant werden Berechnung der Startzeitpunkte hi ∑ x i, t = 1 ∀v i ∈ V t = li hi ∑ t ⋅ x i, t = τ ( v i ) ) ∀v i ∈ V t = li Vorlesung Eingebettete Systeme II Frank Slomka 113 Oldenburg, Sommersemester 2003 ILP-Modell zur Ablaufplanung x i, t ∈ { 0, 1 } ∀v i ∈ V, ∀t:l i ≤ t ≤ h i Jede Operation darf nur einmal geplant werden Berechnung der Startzeitpunkte Berücksichigung von Datenabhängigkeiten Vorlesung Eingebettete Systeme II Frank Slomka hi ∑ x i, t = 1 ∀v i ∈ V t = li hi ∑ t ⋅ x i, t = τ ( v i ) ) ∀v i ∈ V t = li τ ( vi ) – τ ( v j ) ≥ di ∀( v i, v j ) ∈ V 114 Oldenburg, Sommersemester 2003 ILP-Modell zur Ablaufplanung x i, t ∈ { 0, 1 } ∀v i ∈ V, ∀t:l i ≤ t ≤ h i Jede Operation darf nur einmal geplant werden Berechnung der Startzeitpunkte Berücksichigung von Datenabhängigkeiten Berücksichtigung der Ressourcenbeschränkungen Vorlesung Eingebettete Systeme II Frank Slomka hi ∑ ∀v i ∈ V x i, t = 1 t = li hi ∑ t ⋅ x i, t = τ ( v i ) ) ∀v i ∈ V t = li τ ( vi ) – τ ( v j ) ≥ di ∑ ∀( v i, v j ) ∈ V max { d i – 1, t – l i } ∑ ∀i: ( v i, v j ) ∈ E R p = max { 0, t – h i } x i, t – p ≤ α ( r k ) ∀r k ∈ V T, ∀min { l i } ≤ t ≤ max ( h i ) 115 Oldenburg, Sommersemester 2003 Übersicht • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter Vorlesung Eingebettete Systeme II Frank Slomka 116 Oldenburg, Sommersemester 2003 Verträglichkeit Definition : Zwei Knoten eines Sequenz-, Kontrolloder Datenflußgraphen sind schwachverträglich falls gilt, ∃r k ∈ V T = ( v i, r k ) ∈ E R ∧ ( v j, r k ) ∈ E R Definition :Zwei Knoten eines Sequenz-, Kontroll- oder Datenflußgraphen sind ablaufplanverträglich, wenn sie schwachverträglich sind und für die Startzeit τ(vi) gilt τ(vi) > τ(vj) + dj Definition : Zwei Knoten eines Sequenz-, Kontrolloder Datenflußgraphen sind stark verträglich, falls sie schwachverträglich sind und falls ein gerichteter Pfad von Knoten vi nach vj existiert Vorlesung Eingebettete Systeme II Frank Slomka 117 Oldenburg, Sommersemester 2003 Bindung • Eien Menge gegenseitig verträglicher Operationen entspricht einer Clique in GV. Eine Clique ist ein vollständiger Teilgraph. • Eine maximale Verträglichkeitsmenge entspricht einer maximale Clique in GV (Eine Clique heißt maximal, wenn sie in keiner anderen Clique enthalten ist). • Kostenoptimale Bindung: Partitionierung von GV mit minimaler Anzahl von Cliquen. Vorlesung Eingebettete Systeme II Frank Slomka 118 Oldenburg, Sommersemester 2003 Beispiel DFG: 1 + 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + + 6 + 8 < 9 * 7 5 * Vorlesung Eingebettete Systeme II Frank Slomka 119 Oldenburg, Sommersemester 2003 Schwache Verträglichkeit Definition : Zwei Knoten eines Sequenz-, Kontroll- oder Datenflußgraphen sind schwachverträglich falls gilt, DFG: 1 + 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + ∃r k ∈ V T = ( v i, r k ) ∈ E R ∧ ( v j, r k ) ∈ E R < 9 * 7 5 * 1 + + 6 4 + + 8 < Vorlesung Eingebettete Systeme II Frank Slomka + 6 + 8 2 * * 3 5 * * 7 9 120 Oldenburg, Sommersemester 2003 Ablaufplan Verträglichkeit Latenz = 8 Z.E. Definition :Zwei Knoten eines Sequenz-, Kontroll- oder Datenflußgraphen sind ablaufplanverträglich, wenn sie schwachverträglich sind und für die Startzeit τ(vi) gilt τ(vi) > τ(vj) + dj 1+ + 6 + 8 < 9 3 * 4 + * 7 5 * 1 + + 6 4 + + 8 < Vorlesung Eingebettete Systeme II Frank Slomka 2 * 2 * * 3 5 * * 7 9 121 Oldenburg, Sommersemester 2003 Starke Verträglichkeit Definition : Zwei Knoten eines Sequenz-, Kontroll- oder Datenflußgraphen sind stark verträglich, falls sie schwachverträglich sind und falls ein gerichteter Pfad von Knoten vi nach vj existiert DFG: 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + + 6 + 8 < 9 * 7 5 * 1 + + 6 4 + + 8 < Vorlesung Eingebettete Systeme II Frank Slomka 1 + 2 * * 3 5 * * 7 9 122 Oldenburg, Sommersemester 2003 Konfliktgraph Definition :Zwei Operationen sind im Konflikt, 1 genau dann, wenn sie nicht verträglich sind. 4 + + 6 + + 8 < Vorlesung Eingebettete Systeme II Frank Slomka * * 3 5 * * 7 2 * * 3 5 * * 7 9 1 + + 6 4 + + 8 < 2 9 123 Oldenburg, Sommersemester 2003 Starker Konflikt Definition : Zwei Ope- 1 rationen sind im Konflikt, genau dann, wenn sie 4 nicht verträglich sind. + + 6 + + 8 < Vorlesung Eingebettete Systeme II Frank Slomka * * 3 5 * * 7 2 * * 3 5 * * 7 9 1 + + 6 4 + + 8 < 2 9 124 Oldenburg, Sommersemester 2003 Beobachtungen • Konfliktgraph und Verträglichkeitsgraph sind komplementär. • Eine Menge gegenseitig verträglicher Knoten VV entspricht einer unabhängigen Menge in GK. Eine unabhängige Menge eines Graphen bezeichnet eine Teilmenge von Knoten, von denen keiner mit irgendeinemanderen Knoten dieser Menge adjazent ist. • Kostenoptimale Bindung: Die Färbung von GK mit einer minimalen Anzahl von Farben, so daß adjazente Knoten unterschiedliche Farben erhalten. Vorlesung Eingebettete Systeme II Frank Slomka 125 Oldenburg, Sommersemester 2003 Erweiterungen • Bindung hierarchischer Graphen durch Auflösung der Hierarchie; resultierende Graphen sind i.a. nicht mehr chordal. • Bindung vor der Ablaufplanung (polynomiel): • schwache Verträglichkeit: Sequentialisierung • starke Verträglichkeit Vorlesung Eingebettete Systeme II Frank Slomka 126 Oldenburg, Sommersemester 2003 Algorithmen und Komplexität Für allgemeine Graphen gilt: • Cliquepartitionierung: NP-vollständig • Graphfärbung: NP-vollständig Die Berechnung der Graphfärbung erfolgt daher mit Heuristiken. Vorlesung Eingebettete Systeme II Frank Slomka 127 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj zu Knoten V gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 11 3 * * 6 * * 1 9 + < - + - 10 * 2 Vorlesung Eingebettete Systeme II Frank Slomka * 5 4 8 128 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 129 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 130 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 131 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 132 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 133 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 134 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 135 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 136 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 137 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 138 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 139 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 140 Oldenburg, Sommersemester 2003 Vertexcolor • Exakt für chordale Graphen • Komplexität O(|V||N|) 1. Für alle Knoten vi: 2. Farbe c = 1 3. Solange es einen adjazenten Knoten vj mit Farbe c zu Knoten vi gibt: 4. Farbe c = c + 1 5. Färbe Knoten vi mit C 7 * * 6 * * 1 9 + 2 * 5 < - + - 10 * Vorlesung Eingebettete Systeme II Frank Slomka 11 3 4 8 141 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2 4 3 1 5 2 4 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 5 142 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 4 5 2 3 1 2 4 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 5 143 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 4 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 144 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 145 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 146 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 147 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 148 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 149 Oldenburg, Sommersemester 2003 Left-Edge • Komplexität O(|V| log |V|) 1. Sortiere die gegebenen Intervalle 2. Lege Schranke auf erstes Intervall 3. Färbe Intervall 4. Lege Schranke ans Ende des gefärbten Intervalls. 5. Gehe solange zu 2 bis Ende des letzten Intervalls. 6. Erhöhe Farbe und setze Schranke an den linken Rand. 5 2 3 1 2 3 1 Vorlesung Eingebettete Systeme II Frank Slomka 4 5 150 Oldenburg, Sommersemester 2003 Strukturelle Bindung a wait on clk x := a + b; if (a = b) c :=(x-y)*z b + y y * X Vorlesung Eingebettete Systeme II Frank Slomka = X C 151 Oldenburg, Sommersemester 2003 Strukturelle Bindung a S max S max C on C l ( v i, v j ) = ------------- ⋅ -------------------------------------------- ⋅ --------------------------------- C max min ( S ( v i ), S ( v j ) ) S ( v i ) + S ( v j ) C on = C in ( v i, v j ) ⋅ C out ( v i, v j ) ⋅ W ( v i, v j ) b + 120 = 140 X X y y 160 * 180 C Cin(vi,vj) = Gemeinsame Eingänge zwischen Knoten Cout(vi,vj) = Gemeinsame Ausgänge W(vi,vj) = Verbindungen zwischen zwei Knoten Smax = Maximal erlaubte Kosten S(vi) = Kosten des Knotens (#Transistoren) Vorlesung Eingebettete Systeme II Frank Slomka 152 Oldenburg, Sommersemester 2003 Strukturelle Bindung 4 Bits a 8+0 300 300 C l ( v 1, v 2 ) = ------------ ⋅ --------- ⋅ ------------------------ = 2, 9 8 120 120 + 140 b + 0+4 300 300 C l ( v 4, v 3 ) = ------------ ⋅ --------- ⋅ ------------------------ = 0, 8 8 160 160 + 180 y y 160 - = 120 X 140 * 180 C X 1 2.9 2 = + 0 - 0 * 3 0.8 4 Vorlesung Eingebettete Systeme II Frank Slomka 153 Oldenburg, Sommersemester 2003 4 Bits a 8+0 300 300 C l ( v 1, v 2 ) = ------------ ⋅ --------- ⋅ ------------------------ = 2, 9 8 120 120 + 140 b + 0+4 300 300 C l ( v 4, v 3 ) = ------------ ⋅ --------- ⋅ ------------------------ = 0, 8 8 160 160 + 180 y y 160 - = 120 X 140 * 180 C X 1 2.9 2 = 0 + + 0 g1 * - 3 0.8 = * g2 - 4 Vorlesung Eingebettete Systeme II Frank Slomka 154 Oldenburg, Sommersemester 2003 Übersicht • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter • Optimierung Vorlesung Eingebettete Systeme II Frank Slomka 155 Oldenburg, Sommersemester 2003 Zustandsautomat x0 1,2 RESET & CLK x1 6 RESET & CLK RESET x2 DFG: 1 + 2 * + = 1 Z.E. 3 * * = 2 Z.E. 4 + 3,8 4,7 RESET & CLK x5 RESET & CLK x6 * 7 9 RESET & CLK x4 < 9 5 * RESET & CLK x3 + 6 + 8 5 RESET & CLK x7 Vorlesung Eingebettete Systeme II Frank Slomka x0 x1 x2 x3 x4 x5 x6 x7 1+ 2 * + 6 + 8 < 9 3 * 4 + * 7 5 * 156 Oldenburg, Sommersemester 2003 Moore-Automat x0 1,2 RESET & CLK x1 6 RESET & CLK RESET x2 3,8 Ausgangs- Zustandsüber- logik gangslogik RESET & CLK x3 9 RESET & CLK x4 4,7 RESET & CLK x5 RESET & CLK x6 5 RESET & CLK x7 Vorlesung Eingebettete Systeme II Frank Slomka 157 Oldenburg, Sommersemester 2003 Mealy-Automat x0 RESET & CLK (1,2) x1 RESET & CLK (6) RESET x2 Eingangs- Zustandsüber- logik gangslogik RESET & CLK (3,8) x3 RESET & CLK (9) x4 RESET & CLK (4,7) x5 RESET & CLK x6 RESET & CLK (5) x7 Vorlesung Eingebettete Systeme II Frank Slomka 158 Oldenburg, Sommersemester 2003 Mikroprogrammiertes Steuerwerk x0 1,2 RESET & CLK x1 6 RESET & CLK RESET x2 Zustandsüber- 3,8 gangslogik RESET & CLK x3 9 RESET & CLK x4 4,7 RESET & CLK x5 RESET & CLK x6 5 1,2 6 3,8 9 4,7 5 RESET & CLK x7 Vorlesung Eingebettete Systeme II Frank Slomka 159 Oldenburg, Sommersemester 2003 Übersicht • Einführung • Motivierendes Beispiel • Grundlagen • Rechenwerk • Algorithmen zur Ablaufplanung • Algorithmen zur Bindung • Steuerwerk • Ermittlung der Entwurfsparameter Vorlesung Eingebettete Systeme II Frank Slomka 160 Oldenburg, Sommersemester 2003 Ausgangslogik Zustandsregister Eingangslogik Schätzmodell Register ALU Steuerwerk Vorlesung Eingebettete Systeme II Frank Slomka Rechenwerk RegisterBank * Register 161 Oldenburg, Sommersemester 2003 Schätzmodelle Designmodell Zusätzliche Aufgaben Genauigkeit Exaktheit Geschwindigkeit Speicher Allokation niedrig niedrig niedrig Speicher + Funktionale Einheiten Allokation Speicher + Funktionale Einheiten + Register Lebenszeitanalyse Speicher + Funktionale Einheiten + Register + Multiplexer Bindung Speicher + Funktionale Einheiten + Register + Multiplexer + Leitungen Floorplaning hoch hoch hoch Vorlesung Eingebettete Systeme II Frank Slomka 162 Oldenburg, Sommersemester 2003 Berechnung der Taktperiode 150 ns * 1 3 + 80 ns 80 ns 2 + 4 150 ns * 6 5 + + 80 ns 80 ns T = 380 ns L=1 Tex = 380 ns Ressourcen: 2 *, 4 + Vorlesung Eingebettete Systeme II Frank Slomka 163 Oldenburg, Sommersemester 2003 Berechnung der Taktperiode 150 ns * 1 150 ns * 3 + 80 ns 80 ns 2 + 6 3 + 80 ns 4 150 ns * 1 5 + + 80 ns 80 ns 2 + 4 150 ns T = 380 ns L=1 Tex = 380 ns Ressourcen: 2 *, 4 + Vorlesung Eingebettete Systeme II Frank Slomka 80 ns * 6 5+ 150 ns + 80 ns 80 ns 150 ns T = 150 ns L=3 Tex = 450 ns Ressourcen: *,+,+ 164 Oldenburg, Sommersemester 2003 Berechnung der Taktperiode 150 ns * 1 150 ns * 3 + 80 ns 80 ns 2 + 6 3 + 80 ns 4 150 ns * 1 5 + + 80 ns 80 ns 150 ns 1 3 + 80 ns + 80 ns 4 2 + 4 T = 380 ns L=1 Tex = 380 ns Ressourcen: 2 *, 4 + Vorlesung Eingebettete Systeme II Frank Slomka 80 ns 150 ns * * 6 5+ 2 + + 80 ns 80 ns 150 ns * T = 150 ns L=3 Tex = 450 ns Ressourcen: *,+,+ 6 80 ns 5 + 80 ns T = 80 ns L=5 Tex = 400 ns Ressourcen: *,+ 165 Oldenburg, Sommersemester 2003 Berechnung der Taktperiode • Maximale Verzögerungszeit T = max ( z ( r k ) ) • Taktschlupf s ( T, r k ) = z ( rk ) ⋅ T – z ( rk ) ---------T Mul = 163 ns Schlupf Add = 49 ns Mul Sub = 56 ns Add Sub T = 163 ns 50 Vorlesung Eingebettete Systeme II Frank Slomka 100 150 t/ns 166 Oldenburg, Sommersemester 2003 Berechnung der Taktperiode • Mittlerer Taktschlupf VT ∑ h ( r k ) ⋅ s ( T, r k ) ms ( T ) = ----------------------------------------k=1 VT ∑ h ( rk ) k=1 • Mittlere Ressourcenauslastung ms ( T ) ma ( T ) = 1 – ---------------- ⋅ 100 T T T T Mittlerer Taktschlupf (T = 65 ns) 6*32 Mul Add 2*9 2*17 Mul + Sub + Add Sub 50 Vorlesung Eingebettete Systeme II Frank Slomka 100 150 t/ns 6 + 2 + 2 = 24.4 ns 167 Oldenburg, Sommersemester 2003 Registerabschätzung a 1. Ablaufplanung b DFG: + t1 + = 1 Z.E. * d c f eh g * + t2 * = 2 Z.E. t4 + t7 + j < t3 t5 i x2 * t6 * x1 + * + + < * + * * Vorlesung Eingebettete Systeme II Frank Slomka 168 Oldenburg, Sommersemester 2003 Registerabschätzung a 1. Ablaufplanung 2. Aufstellen der Lebenszeitintervalle b DFG: + t1 + = 1 Z.E. * d c f eh g * + t2 * = 2 Z.E. t4 + t7 + j < t3 t5 i x2 * t6 * x1 a b c d e f g h i j t1 t2 t3 t4 t5 t6 t7 x1 x2 + * + + < * + * * Vorlesung Eingebettete Systeme II Frank Slomka 169 Oldenburg, Sommersemester 2003 Registerabschätzung 1. Ablaufplanung 2. Aufstellen der Lebenszeitintervalle 3. Färbung der Intervalle 4. #Register = #Farben a b DFG: + t1 + = 1 Z.E. * d c f eh g * + t2 * = 2 Z.E. t4 + t7 + j < t3 t5 i x2 * t6 * x1 a b c d e f g h i j t1 t2 t3 t4 t5 t6 t7 x1 x2 + * + + < * + * * Vorlesung Eingebettete Systeme II Frank Slomka 170 Oldenburg, Sommersemester 2003