Systempartitionierung Dr. Jürgen Ruf Jürgen Ruf Systembeschreibungssprachen SS 2002 1 Inhalt • Motivation und Einleitung • Verilog • SystemC – Beschreibung von SoC-Entwürfen mit SystemC – Systempartitionierung – Interfacesynthese • Esterel • Optionale Themen Jürgen Ruf Systembeschreibungssprachen SS 2002 2 1 Synthese auf Systemebene Systembeschreibung Systemsynthese Partitionierung Schätzung IF-Synthese HW-Synthese SW-Synthese Maschinencode Jürgen Ruf Netzliste Systembeschreibungssprachen SS 2002 3 Modelle für die Partitionierung • Verteilen von Tasks auf Resourcen (Allokation + Bindung) • Problemgraph – Knoten: funktionale und Kommunikationsobjekte – Kanten: Abhängigkeiten • Architekturgraph – Knoten: funktionale- und Kommunikat. Resourcen • Spezifikationsgraph – Problemgraph + Architekturgraph + Abbildungsmöglichkeiten Jürgen Ruf Systembeschreibungssprachen SS 2002 4 2 Problemgraph Datenfluß 1 Problemgraph 2 1 2 5 6 3 3 7 4 Jürgen Ruf Kommunikationsknoten 4 Systembeschreibungssprachen SS 2002 5 Architekturgraph VRISC RISC Bus VBus HWM1 HWM2 VHWM1 Punkt-zu-Punkt Vptp VHWM2 Jürgen Ruf Systembeschreibungssprachen SS 2002 6 3 Spezifikationsgraph 1 VRISC 5 3 VBus 7 VHWM1 4 Vptp 6 VHWM2 2 Jürgen Ruf Systembeschreibungssprachen SS 2002 7 Alokation, Bindung 1 VRISC 5 3 VBus 7 VHWM1 4 Vptp 6 VHWM2 2 Jürgen Ruf Systembeschreibungssprachen SS 2002 8 4 Spezialfall: HW/SW-Partitionierung • Im einfachsten Fall nur zwei Blöcke: HW und SW (Bipartitionierung) SW Bus HW Jürgen Ruf VSW VBUS VHW Systembeschreibungssprachen SS 2002 9 Partitionierung - Abstraktionsebenen • Strukturelle Partitionierung – – – – auf RT- oder Gatterebene Bsp.: aufteilen der Gatter auf ASIC und FPGA Designparameter sind bereits gut bekannt kein Vergleich von Entwurfsalternativen mehr möglich • Funktionale Partitionierung – auf Systemebene – Vergleich von Entwurfsalternativen noch möglich (Entwurfsraumexploration) – Designparameter sind noch nicht bekannt ➔ Schätzung nötig Jürgen Ruf Systembeschreibungssprachen SS 2002 10 5 Partitionierung • Problemdefinition: Zuordnung von n Objekten O={o1, ... , on} zu m Partitionen P={p1, ... , pm}, so daß – p1 ∪ ... ∪ pm = O – p1 ∩ ... ∩ pm = ∅ – die Kosten c(P) minimal sind das allgemeine Partitionierungsproblem ist NP vollständig Jürgen Ruf Systembeschreibungssprachen SS 2002 11 Kostenfunktion - Beispiel F(C,L,P) = wChC(C,C) + wLhL(L,L) + wPhP(P,P) C ... Kosten in € L ... Ausführungszeit in Sekunden P ... Leistungsaufnahme in Watt hC , hL , hP ... geben an, wie stark C , L , P die Entwurfsbedingungen (Constraints) verletzen wC , wL , wP ... Gewichtung und Normalisierung Jürgen Ruf Systembeschreibungssprachen SS 2002 12 6 Allgemeine Partitionierungsverfahren • exakte Lösungsverfahren – Enumeration der Lösungen – Integer Linear Programs (ILP) • heuristische Lösungsverfahren – konstruktive Verfahren • random mapping • hierarchical clustering – iterative Verfahren • Kernighan-Lin Algorithmus • Simulated Annealing • evolutionäre Algorithmen Jürgen Ruf Systembeschreibungssprachen SS 2002 13 Konstruktive Verfahren • Verfahren (Auswahl) – random mapping jedes Objekt wird zufällig auf einen Block abgebildet – hierarchical clustering schrittweises Zusammengruppieren von Objekten Closenessfunktion: gibt an, wie wünschenswert die Gruppierung zweier Objekte ist • konstruktive Verfahren – werden oft verwendet, um eine Anfangspartition für iterative Verfahren zu erzeugen – haben das Problem, dass es sehr schwierig sein kann, eine geeignete Closenessfunktion zu definieren Jürgen Ruf Systembeschreibungssprachen SS 2002 14 7 Hierarchical Clustering v1 10 10 v2 8 20 v5 = v1 ∪ v3 v3 10 v2 6 4 v5 7 4 v4 v4 Closeness gibt an, wie eng zwei Knoten aneinander gekoppelt sind, d.h. je höher die Closeness, desto besser ist es, wenn beide Knoten auf der selben Resource ausgeführt werden Jürgen Ruf Systembeschreibungssprachen SS 2002 15 Hierarchical Clustering 10 v2 v5 7 v6 = v5 ∪ v2 v6 5.5 4 v4 Jürgen Ruf v4 Systembeschreibungssprachen SS 2002 16 8 Hierarchical Clustering v6 v7 = v6 ∪ v4 v7 5.5 v4 Jürgen Ruf Systembeschreibungssprachen SS 2002 17 Hierarchical Clustering v7 = v6 ∪ v4 cut lines (Partition) v6 = v5 ∪ v2 v5 = v1 ∪ v3 v1 Jürgen Ruf v3 v2 Systembeschreibungssprachen SS 2002 v4 18 9 Partitionierung Iterative Verfahren • Zufallsvertauschung (random interchange) – erzeuge Bipartition – wähle aus jeder Partition zufällig einen Kandidaten – vertausche Kandidaten wenn Kosten sinken • Kernighan-Lin • Simulated Anealing Jürgen Ruf Systembeschreibungssprachen SS 2002 19 Kernighan-Lin • Erzeugung von Bipartitionen: vertausche diejenigen Objekt in die jeweils andere Gruppe, die den größten Kostengewinn verursachen v6 v1 v2 v5 v4 v8 v3 Jürgen Ruf v9 v7 Systembeschreibungssprachen SS 2002 20 10 Kernighan-Lin - Erweiterung • Vertausche diejenigen Objekt, die den größten Kostengewinn oder den kleinsten Kostenzuwachs verursachen • solange eine bessere Partition gefunden wird: – vertausche versuchsweise jede Paarung – nimm von diesen (Versuchs-)Partitionen diejenige mit dem besten Kostenverhältnis und führe die entsprechenden Umgruppierungen durch – einmal vertauschte Objekte werden im weiteren Verlauf nicht wieder vertauscht Jürgen Ruf Systembeschreibungssprachen SS 2002 21 Kernighan-Lin • entkommt aus lokalen Minima • Zeitkomplexität O(n3) • Partitionierung in m Blöcke: O(m⋅n3) Jürgen Ruf Systembeschreibungssprachen SS 2002 22 11 Simulated Anealing • simuliertes Ausglühen – Metalle und Glas nehmen beim Abkühlen unter bestimmten Bedingungen einen Zustand minimaler Energie ein: • bei jeder Temperatur wird ein thermodynamisches Gleichgewicht erreicht • die Temperatur wird beliebig langsam erniedrigt – Wahrscheinlichkeit, dass ein Teilchen in einen Zustand höherer Energie springt P(ei,ej,T) = e Jürgen Ruf ei-ej kT Systembeschreibungssprachen SS 2002 23 Simulated Anealing Anwendung auf kombinatorische Optimierung • Energie = Kosten der Lösung • Verringerung der Kosten mit simulierter Temperatur, aber manchmal auch Akzeptieren von Kostenerhöhungen Jürgen Ruf Systembeschreibungssprachen SS 2002 24 12 Simulated Anealing temp = temp_start cost = c(P) WHILE (Frozen() == FALSE) { WHILE (Equilibrium() == FALSE) { P’ = RandomMove(P) cost’ = c(P’) deltacost = cost’ - cost IF (Accept(deltacost,temp) > random[0,1)) { P = P’ deltacost cost = cost’ k*temp ) min(1, e } } temp = DecreaseTemp(temp) } Jürgen Ruf Systembeschreibungssprachen SS 2002 25 Simulated Anealing • Abkühlung: DecreaseTemp (), Frozen() – temp_start = 1.0 – temp = α • temp (typisch: 0.8 = α =0.99) – Abbruch bei temp < temp_min oder wenn sich keine Verbesserung mehr ergibt • Gleichgewicht: Equilibrium() – nach bestimmter Anzahl von Iterationen – oder wenn sich keine Verbesserung mehr ergibt • Zeitkomplexität – von exponentiell bis konstant, je nach Implementierung der Funktionen Equilibrium, DecreaseTemp, Frozen – je länger die Laufzeit, desto besser die Ergebnisse – üblich: Funktionen so konstruiert, dass polynomielle Laufzeit erreicht wird Jürgen Ruf Systembeschreibungssprachen SS 2002 26 13 ILP - Integer Linear Programming • Formulierung des Partitionierungsproblems als System linearer (Un-)Gleichungen – binäre Variable xi,k Objekt oi im Block pk – Kosten ci,k wenn Objekt oi im Block pk ist – ganzzahliges lineares Programm: xi,k ∈{0,1} 1≤ i≤ n , 1≤ k ≤ m m Σ x = 1 1≤ i ≤ n k=1 i,k m n minimiere k=1 Σ i=1 Σ ci,k xi,k Jürgen Ruf 1≤i≤n,1≤k≤m Systembeschreibungssprachen SS 2002 27 ILP • Beschränkungen werden durch Neben-bedingungen modelliert – Bsp.: maximale Anzahl von hk Objekten in Partition pk n Σ x ≤ hk i=1 i,k 1≤k≤m • ILP ist NP-vollständig – im worst-case exponentielle Laufzeit – Lösung durch branch&bound Algorithmen – Formulierung wird schwierig, wenn die Nebenbedingungen nicht linear sind Jürgen Ruf Systembeschreibungssprachen SS 2002 28 14 Evolutionäre Algorithmen • Vorbild: Vererbung in der Biologie • Ausgangspunkt: Menge von Lösungen (nicht optimal) in kodierter (DNA) Form: Population • Iteration zur Erzeugung neuer Populationen, die dem Optimum näher kommen Jürgen Ruf Systembeschreibungssprachen SS 2002 29 Evolutionäre Algorithmen Iteration zur Bildung neuer Lösungen: Reproduktion „ungeschlechtliche Fortpflanzung“ wird auch als Selektion bezeichnet Kreuzung „geschlechtliche FortpfanzungMutation die Erbanlagen zweier Individuen werden für zwei neu Individuen vermischt Mutation spontane Veränderung der Erbanlagen Jürgen Ruf Systembeschreibungssprachen SS 2002 30 15 Evolutionäre Algorithmen P = generate_initial_population() k = 0 do { compute_fitness(P) P = reproduce(P) P = mixture(P) P = mutation(P) k = k + 1 while (Abbruchkriterium); Jürgen Ruf Systembeschreibungssprachen SS 2002 31 HW/SW-Partitionierung • einfachster Fall: Bipartitionierungsproblem P = {pSW , pHW } • softwareorientierter Ansatz: P = {O, {}} – in SW sind garantiert alle Funktionen realisierbar – Performance kann unzureichend sein ➔ migrieren von Objekten in die HW • hardwareorientierter Ansatz: P = {{}, O} – in HW ist garantiert die Performance ausreichend – Kosten können zu hoch sein ➔ migrieren von Objekten in die SW Jürgen Ruf Systembeschreibungssprachen SS 2002 32 16