Entwicklung integrierter HW/SW-Systeme Integrierte Hard- und Softwaresysteme 2 Seminar Jorge Meza jorge.meza@tu-ilmenau.de Zusebau R2082, Tel: -4128 Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Integrated HW/SW Systems Group 15. Januar 2015 Self-Organization 15 January 2015 1
Inhalt des Seminars Modelle für high-level Synthesis High-level Synthesis Datenflussgraph (DFG) Kontrollflussgraph (CFG) Leistungsbewertung Taskgraph Aufgaben Verteilung von Tasks auf Prozessoren Antwortzeit und Auslastung 15. Januar 2015 2
Modelle für high-level Synthesis Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Integrated HW/SW Systems Group 15. Januar 2015 Self-Organization 15 January 2015 3
Y-Diagramm Domänen und Abstraktionen des HW-Entwurfes Verhalten Systemspezifikation Algorithmen Register-Transfers System-level Synthesis High-level Synthesis RTL Synthesis Logic Synthesis Boolesche Gleichungen Gatter, Flip-Flops Circuit Synthesis Differentialgleichungen Transistoren Struktur Prozessoren, Coprozessoren, Bussen Datenpfad, Kontrollpfad Register, ALUs, Muxer Transistor Layout Zellen Floorplan Cluster Geometrie Board/SoC 15. Januar 2015 4
High-Level Synthesis Vollautomatischer Entwurf auf algorithmischer Ebene Entwickler ist mit den Aufgaben der Spezifikation der Algorithmen beauftragt SystemC, C, Matlab Automatischer Entwurf des Datenpfades und Kontrollpfades Grundaufgaben Allokation Bestimmung von Ressourcentypen und Anzahl der benötigten Instanzen Scheduling (Ablaufplanung [1]) Festlegen von Startzeiten der Aufgaben unter Berücksichtigung aller Datenabhängigkeiten Mapping (Bindung [1]) Spezifiziert auf welchen Ressourcentyp und Instanz eine Aufgabe implementiert wird DFGs und CFGs Als Zwischendarstellungen verwendet [1] J. Teich: Digitale Hardware/Software Systeme. Springer, 1997. 15. Januar 2015 5
DFG (Datenflussgraph) Formale Beschreibung für Daten-dominierte Anwendungen (bspw. digitale Signalverarbeitung) Menge von Verarbeitungseinheiten (Knoten) Menge von Pfeilen, die den Datenfluss und die Datenabhängigkeiten repräsentieren Ausgabe ist eine Funktion der Eingabe Keine Zustände, keine externen Ereignisse zum Auslösen von Zustandsänderungen Anwendbar für Scheduling (Ablaufplanung) und Code-Generierung 15. Januar 2015 6
ASAP Algorithmus (ohne Ressourcenbeschränkungen) Idee: Jeden Knoten so früh wie möglich (as soon as possible ASAP) starten Bestimmung des latenzoptimalen Ablaufplanes Problem der Latenzminimierung kann in polynomieller Zeit exakt gelöst werden 15. Januar 2015 7
ALAP Algorithmus (ohne Ressourcenbeschränkungen) Idee: Jeden Knoten so spät wie möglich (as late as possible ALAP) starten Komplementärer Algorithmus Der Algorithmus ermittelt die spätesten Startzeitpunkte alle Knoten. 15. Januar 2015 8
DFG + Scheduling Aufgabe 1 Erzeugen Sie für folgende Gleichungen eine Datenflussbeschreibung (DFG) x = 3*7+4*a y = 2*x+b^2 z = a*b+5 Führen Sie dies mit folgenden Algorithmen durch ASAP ohne Ressourcenbeschränkungen ALAP ohne Ressourcenbeschränkungen 15. Januar 2015 9
Latenz + Mapping Aufgabe 2 Wie viele Takte werden für die ASAP und ALAP Lösungen benötigt, wenn eine Multiplikation 4 Takte benötigt eine Addition 2 Takte benötigt Wie viele Ressourcen (Multiplizierer und ALUs mit 2 Eingängen) sind notwendig für eine maximal parallele Abarbeitung? (Mapping) ASAP ALAP Wie kann die Abarbeitung mit wenigen Ressourcen im Vergleich zu ASAP und ALAP Lösungen umgesetzt werden? Anforderung: Latenz < 18 Takte Wie viele Multiplizierer und ALUs sind notwendig? Wie viele Takte sind für die gesamte Abarbeitung notwendig? Ist es möglich die Ressourcen zu minimieren ohne die Abarbeitungszeit zu erhöhen? 15. Januar 2015 10
Ressourcenbeschränkungen Aufgabe 3 Wie sieht der DFG aus, wenn nur 1 Multiplizierer und eine ALU zur Verfügung stehen? Wie viele Takte werden in diesem Fall benötigt, wenn eine Multiplikation 4 Takte benötigt eine Addition 2 Takte benötigt 15. Januar 2015 11
Aufgabe 4 Erzeugen Sie für folgende Gleichungen eine optimierte DFG Lösung (minimale Latenz mit wenigen Ressourcen) wenn x = 2*b+4*a y = (2+x)+b^2 z = d*(e+5) eine Multiplikation 4 Takte benötigt eine Addition 2 Takte benötigt Führen Sie eine Ablaufplanung mit minimalen Ressourcen (1x Mult, 1x ALU) durch. Berechnen sie die Latenz. 15. Januar 2015 12
Anmerkungen Unberücksichtigt sind bisher geblieben: Der Aufwand für die Speicherung der Daten Die Ressourcen für die Speicherung der Daten Die Ressourcen für das Multiplexen der Daten zu den einzelnen Ausführungseinheiten, wenn diese für mehr als eine Berechnung genutzt werden. Die genauen zusätzlichen Kosten hängen von der verwendeten Hardware ab und werden hier deshalb vernachlässigt. 15. Januar 2015 13
Kontrollflussgraph (CFG) Formale Beschreibung mit Fokus auf Steueraspekten eines Systems Knoten stellen Operationen und Kanten bedingte Übergänge dar Datenabhängigkeiten der Operationen werden nicht dargestellt Modellierung von Kontrollstrukturen wie Verzweigungen und Schleifen Verzweigungsknoten Knoten mit mehreren Nachfolgern Anwendbar zur Darstellung des Kontrollflusses eines Programms 15. Januar 2015 14
Kontrollflussgraph (CFG) 15. Januar 2015 15
CFG Aufgabe 1 1 program { 2 output (1,2); 3 tmp := input; 4 if tmp == 0 { 5 i := 1; 6 a := 2; } 7 else { 8 done := false; 9 loop { 10 tmp := tmp-1; } 11 until tmp = 0 } 12 output (3,3); 13 } Das Programm ist in Pseudocode geschrieben. 15. Januar 2015 16
Leistungsbewertung Prof. Dr.-Ing. habil. Andreas Mitschele-Thiel Integrated HW/SW Systems Group 15. Januar 2015 Self-Organization 15 January 2015 17
Leistungsbewertung Qualität eines Entwurfs bzgl. Zeit- und Leistungsaspekten abzuschätzen Antwortzeit (Latenz): Zeitintervall zwischen einem Service-Request und der entsprechenden Antwort Auslastung: Nutzungsgrad einer Ressource in einem bestimmten Zeitraum Notwendig für: Validierung und Verifikation der Leistungsanforderungen des Systems Festlegung und Optimierung des zu entwickelnden Systems Heute: Modellbasierte Bewertung Modell: Taskgraph Methode: Diskrete ereignisorientierte Simulation Leistungskriterien: Antwortzeit und Ressourcenauslastung 15. Januar 2015 18
Taskgraph Verhaltensmodell einer Applikation/Funktion Knoten repräsentieren funktionelle Einheiten (Funktion, Prozedur, Operation, etc.) Allgemeine Bezeichnung Task Gerichtete Kanten repräsentieren Reihenfolgeabhängigkeiten A B C D 15. Januar 2015 19
Aufgaben Ereignisorientierte Simulation Bestimmung der Startzeiten und Verteilung von Tasks auf Prozessoren A Scheduling erfolgt nach bestimmten Prioritäten Ziel: Analyse der minimale Antwortzeit und Auslastung unter Berücksichtigung der Prioritäten und Abhängigkeiten B C D Ausführungszeiten E F A: 3, B: 2, C: 4, D: 1 E: 2, F: 7, G: 3, H: 4 G I: 1, J: 3, K: 2 H Vorgaben Die Prioritäten werden nur berücksichtigt, wenn zwei Tasks gleichzeitig gestartet werden können. Ist nur ein Task bereit, wird dieser unabhängig von seiner Priorität gestartet. Ein einmal gestartetes Task wird nicht unterbrochen (ohne Verdrängung) I K J 15. Januar 2015 20
Aufgaben Ereignisorientierte Simulation 1. Scheduling: vordefinierte Prioritäten A 1.1. Ordnen Sie die Tasks A..K einem Prozessor zu. 1.2. Ordnen Sie die Tasks zwei Prozessoren zu, so dass die gesamte Ausführungszeit möglichst minimal wird. B C D 1.3. Ordnen Sie die Tasks drei Prozessoren zu. 1.4. Wie verändert sich das Verhalten, wenn D und F eine höhere Priorität als B und C haben und zwei Prozessoren verwendet werden? E G F Berechnen Sie für alle Aufgaben die Auslastung der Prozessoren, sowie die Antwortzeit von Task F H In welchen Fällen werden folgende Anforderungen erfüllt? Deadline für Abarbeitung von F < 12 Zeiteinheiten. Auslastung > 60% I J Prioritäten: Ein Buchstabe, der vorne im Alphabet steht, hat eine höhere Priorität. Also A vor B vor C vor D bzw. A hat die höchste Priorität, K die niedrigste. K 15. Januar 2015 21
Aufgaben Ereignisorientierte Simulation Aufgabe 1.1.: Einheiten gesamte Abarbeitungszeit A P1 Antwortzeit von Task F: Einheiten Auslastung der Prozessoren (in % bzw. als Bruch) Prozessor 1: B C D E F Aufgabe 1.2.: Einheiten gesamte Abarbeitungszeit G P1 P2 H Antwortzeit von Task F: Einheiten Auslastung der Prozessoren (in % bzw. als Bruch) Beide Prozessoren zusammen: I J Prozessor 1: Prozessor 2: K 15. Januar 2015 22
Aufgaben Ereignisorientierte Simulation Aufgabe 1.3: Einheiten gesamte Abarbeitungszeit P1 A P2 P3 Antwortzeit von Task F: Einheiten Auslastung der Prozessoren (in % bzw. als Bruch) Alle Prozessoren zusammen: Prozessor 1: Prozessor 2: Prozessor 3: B C E G D F Aufgabe 1.4.: Einheiten gesamte Abarbeitungszeit P1 H P2 Antwortzeit von Task F: Einheiten Auslastung der Prozessoren (in % bzw. als Bruch) Beide Prozessoren zusammen: Prozessor 1: Prozessor 2: I K J 15. Januar 2015 23
Aufgaben Ereignisorientierte Simulation 2. Scheduling: Listschedulingverfahren HLFET A 2.1. Ordnen Sie die Aufgaben zwei Prozessoren zu, so dass die gesamte Ausführungszeit möglichst minimal wird. Berechnen Sie die Auslastung der Prozessoren, sowie die Antwortzeit von Task F. Werden die Anforderungen erfüllt? Deadline für Abarbeitung von F < 12 Zeiteinheiten. Auslastung > 60% B C E G D F Highest Level First with Estimated Times (HLFET) Ziel: Festlegung der Task-Prioritäten!! H Schritte: 1. Berechnung des längsten Pfades (Level) aller Knoten. Das ist als die maximale Ausführungszeit vom Knoten X bis zum Exit-Knoten K definiert. 2. Festlegung von Prioritäten für alle Knoten. Der berechnete Level ist der Prioritätswert eines Knotens. Ein höherer Wert entspricht einer höheren Priorität. I K J 15. Januar 2015 24
Aufgaben Ereignisorientierte Simulation Aufgabe 2.1.: A Task A B C D E F G H I J K Level B C D Task Priorität E F Einheiten gesamte Abarbeitungszeit G P1 P2 H Antwortzeit von Task F: Einheiten Auslastung der Prozessoren (in % bzw. als Bruch) I J Beide Prozessoren zusammen: Prozessor 1: K Prozessor 2: 15. Januar 2015 25
Fragen zum Seminar Wie funktioniert ein DFG? Geben Sie für eine vorgegebene Berechnung den DFG an, wenn sie beliebig viele Ressourcen zur Verfügung haben. Was kann man daraus ablesen? Wie ändert sich der DFG bei minimalen Ressourcen? Wie funktioniert ein CFG? Wie wird die Leistung eines Systems bewertet? Berechnen Sie an einem einfachen Beispiel die Antwortzeit und Auslastung. Berechnen Sie die Prioritäten von Tasks mittels heuristischen Algorithmen wie HLFET. 15. Januar 2015 26
Literatur Schaltsysteme (H.-D. Wuttke K. Henke, Pearson Verlag, 2006) Systems Engineering with SDL (A. Mitschele-Thiel, Wiley Verlag, 2001) Digitale Hardware/Software Systeme (J. Teich, Springer Verlag, 1997) 15. Januar 2015 27
Fakultative Aufgaben Geben Sie ein Beispiel von einem Kontroll- Datenflussgraph (CDFG). Was sind seine Vorteile gegenüber DFG und CFG? Benutzen Sie das Schedulingverfahren SCFET, um die Prioritäten des Taskgraphen festzulegen. Welche anderen Leistungsbewertungskriterien gibt es? Wie werden sie berechnet? 15. Januar 2015 28