Post on 14-Aug-2019
Eingebettete Systeme
Jürgen Teich
Hardware-Software-Co-Design, Friedrich-Alexander-UniversitätErlangen-Nürnberg
WS 2016/2017
Inhalt der Vorlesung
1. Eigenschaften und Beispiele eingebetteter Systeme
2. Abstraktionsebenen und Entwurfsmethodik
3. Spezifikation eingebetteter Systeme (Sprachen undModelle)
4. Ablaufplanungsverfahren (Scheduling)
5. Architektursynthese
6. Echtzeitsysteme
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 1
Abstraktionsebenen
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 2
Synthese
• Verhalten• Beschreibung von Funktionen unabhängig von ihrer
Implementierung• Struktur
• Beschreibung der Verschaltung kommunizierenderKomponenten. Die Aufteilung entspricht der tatsächlichenImplementierung.
• Synthese:• Aufgabe der Synthese ist die (teil-)automatische
Transformation zwischen den verschiedenenAbstraktionsebenen und Sichten.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 3
Beispiel: Architektursynthese
• Synthese:• Generierung einer strukturellen
Register-Transfer-Beschreibung aus einerVerhaltensbeschreibung (Algorithmus)
• Aufgaben:• Identifikation von Hardware-Elementen, die die spezifische
Operation ausführen können (Allokation)• Zuordnung von Variablen zu Speichern, Operationen zu
den Hardware-Elementen und Kommunikationskanälen zuBussen (Bindung).
• Bestimmung der Ausführungsreihenfolge der Operationenbei beschränkter Anzahl von Hardware-Elementen(Ablaufplanung).
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 4
Beispiel: Euler-Verfahren
Synthese eines Differentialgleichungslösers für diegewöhnliche Differentialgleichung
y ′′+ 3xy ′+ 3y = 0
im Intervall [x0,a], Schrittweite dx und Anfangswerteny(x0) = y0, y ′(x0) = u.
Gesucht daher:Funktionsverlauf y(x) im Intervall [x0,a].
Lösung: Numerische Integration
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 5
Exkurs: Euler-Verfahren
• Für y ′(x) = f(x,y(x)), y(x0) = y0 gibt f(x,y(x)) dieSteigung y ′(x) der gesuchten Funktion y(x) an• Für dx > 0 kann man also schreiben:
f(x,y(x))≈ y(x + dx)− y(x)
dx• Iteration: Bestimme mit Startwert x0 und y0 äquidistante
Punkte xi = x0 + i · dx die Approximationswerte µi für dieWerte yi = y(xi)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 6
Beispiel: Euler in SystemC
Die Spezifikation des Gleichungslösers erfolgt in SystemC(Einführung später in diesem Kap.):
1 class dgl : sc_module {2 public: //...3 SC_HAS_PROCESS(dgl);4 dgl(sc_module_name) :5 sc_module(module_name) {6 SC_METHOD(algorithm);7 sensitive << activate;8 }9 private:
10 void algorithm () {11 double x = x_in;12 double y = y_in; //...13 double x1, u1, y1;14 while (x <= a) {15 x1 = x + dx;16 u1 = u - (3 * x * u * dx) - (3 * y * dx);17 y1 = y + (u * dx);18 x = x1; u = u1; y = y1;19 }20 y_out = y;21 }22 };
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 7
Datenabhängigkeiten
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 8
Beispiel: Schaltungsstruktur
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 9
Synthese
• Aufgaben:• Allokation• Ablaufplanung• Bindung
• Algorithmen:• exakte Verfahren• Heuristiken
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 10
Ausgangspunkt
Sequenzgraph GS = (VS,ES)
Ressourcegraph GR = (VR,ER)
Kostenfunktion VT →Q+0 ,VR = VS ∪VT
Ausführungszeiten w : ER→ N0
• ordnet jeder Kante (vs,vt) ∈ ER die Ausführungszeitvon Operation vs ∈ VS auf Ressourcetypvt ∈ VR \VS zu
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 11
Sequenzgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 12
Ausgangspunkt
Definition (Ressourcegraph):GR = (VR,ER) bestehend aus• Knoten VR = VS ∪VT
• VS: Knoten des Sequenzgraphen GS• VT : Knoten, die die Ressourcentypen repräsentieren.
• Kanten (vs,vt) ∈ ER mit vs ∈ VS und vt ∈ VT :Abbildbarkeit einer Instanz eines Ressourcetypen vt
für eine Operation vs.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 13
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 14
Ablaufplanung
Definition (Ablaufplan):Ein Ablaufplan (Schedule) eines SequenzgraphenGS = (VS,ES) ist eine Funktion τ : VS→ N0, die dieBedingungen
τ(vj)− τ(vi)≥ di ∀(vi ,vj) ∈ ES
erfüllt.
(di = w(vi ,vk) im Fall eindeutiger Ressourcetypbindung).
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 15
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 16
Ablaufplanung
Definition (Latenz):Die Latenz L eines Ablaufplans τ eines SequenzgraphenGS = (VS,ES) ist definiert als
L = maxvi∈VS{τ(vi)+ di}− min
vi∈VS{τ(vi)}
und bezeichnet damit die Anzahl der Zeitschritte deskleinsten Intervalls, das die Ausführungsintervalle allerKnoten vi ∈ VS einschließt.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 17
Allokation
Definition (Allokation):Eine Allokation ist eine Funktion α : VT → N0, die jedemRessourcetypen vt ∈ VT die Anzahl α(vt) verfügbarerInstanzen zuordnet.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 18
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 19
Bindung
Definition (Bindung):Die Bindung eines Sequenzgraphen sind Funktionenβ : VS→ VT , und γ : VS→ Z+, wobei β (vs) = vt undγ(vs) = r bedeutet, dass Operation vs ∈ VS durch die r -teInstanz des Ressourcetyps vt ∈ VT implementiert wird.
Eine gültige Bindung erfüllt die Bedingungen
1. β (vs) = vt , vt ∈ VT und (vs,β (vs)) ∈ ER
2. γ(vs)≤ α(β (vs))
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 20
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 21
Beispiel
• Dedizierte Ressourcen:nops = 11 Ressourcen notwendig• Bindung:
β (v1) = r1, γ(v1) = 1, β (v2) = r1, γ(v2) = 2, β (v3) = r1,γ(v3) = 3, β (v4) = r2, γ(v4) = 1, β (v5) = r2, γ(v5) = 2,β (v6) = r1, γ(v6) = 4, β (v7) = r1, γ(v7) = 5,β (v8) = r1, γ(v8) = 6, β (v9) = r2, γ(v9) = 3,β (v10) = r2, γ(v10) = 4, β (v11) = r2, γ(v11) = 5
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 22
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 23
Algorithmen und Komplexität
• Entscheidungs- und Optimierungsprobleme• Algorithmus
Definition (Algorithmus): Ein Algorithmus ist eineBerechnungsvorschrift, die aus einer Menge von Eingaben,Ausgaben und einer endlichen Anzahl von eindeutigenBerechnungsschritten besteht und in einer endlichen Anzahlvon Schritten terminiert.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 24
Klassifikation von Algorithmen
• Kriterien:• Qualität der Lösung:
• exakt• approximativ (heuristisch)
• Berechnungsaufwand: Zeit- und Speicherbedarf• worst case und average case• Komplexitätsanalyse
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 25
Komplexität
• Maß der Zeitkomplexität:Wachstum an elementaren Operationen als Funktion derProblemgröße n.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 26
Komplexität
Definition: Die Zeitkomplexität eines Algorithmus derProblemgröße n ist von der Ordnung f(n), geschriebenO(f(n)), wenn es eine Konstante c gibt, so dass c f(n) eineobere Schranke für die Anzahl elementarer Operationendarstellt.
Anderer Ausdruck: Laufzeit.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 27
Effizienz
• Effizient: polynomielle Algorithmen (f(n) ist ein Polynom inn), z. B.
f(n) = n3 +1
2n
• Ineffizient: exponentielle Algorithmen, z. B.
f(n) = 2n, f(n) = nn2
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 28
Effizienz
Size n 10 20 30 40 50 60
n 0,00001 s 0,00002 s 0,00003 s 0,00004 s 0,00005 s 0,00006 s
n2 0,0001 s 0,0004 s 0,0009 s 0,0016 s 0,0025 s 0,0036 s
n3 0,001 s 0,008 s 0,027 s 0,064 s 0,125 s 0,216 s
n5 0,1 s 3,2 s 24,3 s 1,7 min 5,2 min 13 min
2n 0,001 s 1 s 17,9 min 12,7 Tage 35,7 Jahre 366Jahrhunderte
3n 0,059 s 58 Min 6,5 Jahre 3855 2 · 108 1,3 · 1013
Jahrhunderte Jahrhunderte Jahrhunderte
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 29
Effizienz
Das größte Problem, dass in 1 Stunde gelöst werden kann.
Problem heute 100 mal schneller 1000 mal schneller
n N1 100N1 1000N1
n2 N2 10N2 31,6N2
n3 N3 4,64N3 24,3N3
n5 N4 2,5N4 3,98N4
2n N5 6,64+N5 9,5+N5
3n N6 4,19+N6 6,29+N6
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 30
Optimalität
Definition (Optimalität): Ein Algorithmus heißt optimal, wennseine Komplexität gleich der dem Problem inhärentenKomplexität ist.
Beispiel: Bestimmung des Maximums von n ganzen Zahlen.Untere Schranke: n Operationen. Jeder Algorithmus mitKomplexitätO(n) ist optimal.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 31
Klassifikation von Problemen
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 32
Ablaufplanung
• Einteilung• Unbeschränkte Ressourcen: Keine Vorgaben• Beschränkte Ressourcen: Vorgaben von
Ressourcenbeschränkungen (Anzahl, Typen), die denLösungsraum geeigneter Ablaufpläne einschränken.
• Transformatorische Algorithmen• Konstruktive Algorithmen
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 33
Ablaufplanung
• Ablaufplanung ohne Ressourcenbeschränkungen• Bestimmung unterer Schranken• Bindung mit dedizierten Ressourcen• Lösung der Ablaufplanung nach der Bindung. Die Kosten
der Implementierung sind in diesem Fall unabhängig vonder Ablaufplanung.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 34
Ablaufplanung
Definition:Gegeben: Sequenzgraph GS = (VS,ES) undRessourcegraph GR = (VR,ER) mit derGewichtungsfunktion, die jeder Kante (vs,vt) in GR dieAusführungszeit ds = ws = w((vs,vt)) zuordnet.
Unter Latenzminimierung ohne Ressourcenbeschränkungversteht man das Problem
min{L | τ(vj)− τ(vi)≥ di ∀(vi ,vj) ∈ ES}
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 35
ASAP
1: function ASAP(GS(VS,ES),d)2: for each vi ohne Vorgänger do3: τ(vi)S← 04: end for5: repeat6: Wähle einen Knoten vi aus, dessen Vorgänger
alle geplant sind7: τ(vi)S← maxj:(vj ,vi)∈ES{τ(vj)S + dj}8: until Alle Knoten vi geplant9: return τS
10: end function
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 36
ASAP (as soon as possible)
• latenzoptimaler Ablaufplan: L = 4
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 37
ALAP
1: function ALAP(GS(VS,ES),d,L)2: for each vi ohne Nachfolger do3: τ(vi)L← L− di
4: end for5: repeat6: Wähle einen Knoten vi aus, dessen Nachfolger
alle geplant sind7: τ(vi)L← minj:(vi ,vj)∈ES{τ(vj)L}− di
8: until Alle Knoten vi geplant9: return τL
10: end function
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 38
ALAP (as late as possible)
• Latenzschranke: L = 4
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 39
Mobilität
• µ(vi) := τ(vi)L− τ(vi)S
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 40
CPM-Methode
• CPM: Critical Path Methode• Prinzip:
• Operationen mit Mobilität µ(vi) = 0 liegen auf demkritischen Pfad
• In jedem Ablauf, der die Latenzschranke erfüllt, könnendiese Operationen nicht nach hinten verschoben werden,ohne dass sich die Latenz vergrößern würde
• Andere Operationen vj könnten prinzipiell um µ(vi)Zeitschritte später als ihre ASAP-Zeit τ(vi)
S gestartetwerden
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 41
Ablaufplanung
• Ablaufplanung mit Zeitbeschränkungen• absolute Zeitbeschränkungen
• Deadlines (späteste Startzeitpunkte)• Releasezeiten (früheste Startzeitpunkte)
• relative Zeitbeschränkungen• zeitliche Relationen zwischen Paaren von Operationen
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 42
Zeitbeschränkungen
Definition (Relative Zeitbeschränkungen):Eine relative Zeitbeschränkung zwischen zweiOperationen vi und vk eines Sequenzgraphen GS(VS,ES)drückt man durch Zahlen li,k ∈ N wie folgt aus:
Minimumsbeschränkung: τ(vk)− τ(vi)≥ li,k
Maximumsbeschränkung: τ(vk)− τ(vi)≤ li,k
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 43
Constraintgraph
Definition (Constraintgraph):Gegeben:• Sequenzgraph GS(VS,ES)• Ausführungszeiten w : ER→ N,• Menge von Minimums- und
Maximumsbeschränkungen li,k ∈ N
Ein Constraintgraph GC(VC,EC,d) ist einkantengewichteter, gerichteter Graph mitGewichtungsfunktion d : EC → Z
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 44
Constraintgraph
GC erhält man aus GS wie folgt:
VC = VS; EC = ES ∪E ′ und |E ′|= n; E ′ beinhaltet jeweilseine Kante pro Minimums- bzw. Maximumsbeschränkung.
E ′ bildet man wie folgt: Pro Minimumsbeschränkung li,k gibt eseine Kante (vi ,vk) ∈ E ′ mit d((vi ,vk)) = li,k ; proMaximumsbeschränkung li,k gibt es eine Kante (vk ,vi) ∈ E ′
mit d((vk ,vi)) =−li,k ; ∀(vi ,vk) ∈ ES : d((vi ,vk)) = wi
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 45
Beispiel
Relative Zeitbeschränkungen: l0,4 = 4 und l1,3 = 3
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 46
Beispiel
• Ablaufplan: τ(v0) = τ(v1) = τ(v2) = 0, τ(v3) = 1 undτ(v4) = 4.• Latenz: L = τ(vn)− τ(v0) = 5− 0 = 5• Komplexität: Bellman-Ford: O(|VS||ES|)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 47
Ressourcenbeschränkungen
• erweitertes ASAP, ALAP• zuerst ASAP oder ALAP• dann Verschiebung von Tasks nach vorne (ALAP) oder
nach hinten (ASAP), bis die Ressourcenbeschränkungenerfüllt sind
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 48
Ressourcenbeschränkungen
Latenzminimierung unter Ressourcenbeschränkung:Definition:
Geg. GS = (VS,ES), GR = (VR,ER) und w : ER→ N(Ausführungszeit ws = w((vs,vt))).
{minτ(vn)− τ(v0) | τ(vj)− τ(vi)≥ wi ∀(vi ,vj) ∈ ES∧| {vs : β (vs) = vk ∧ τ(vs)≤ t < τ(vs)+ws} | ≤ α(vk)∀vk ∈ VT ,∀0≤ t < L}
Kostenminimierung unter Latenzbeschränkung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 49
erweitertes ALAP
• 2 Multiplizierer, 2 ALUs (+, -, <)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 50
Listscheduling
• Tasks werden nach einem bestimmten Kriterium in einePrioritätsliste eingereiht• In jedem Zeitschritt wird jeder freien Ressource diejenige
ausführbare Operation zugeteilt, die die höchste Prioritäthat• Kriterien: Anzahl der Nachfolgerknoten, Mobilität, . . .
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 51
Listscheduling
1: function LIST(GS(VS,ES),GR(VR,ER),α,p)2: t← 03: repeat4: for k ← 1 to |VT | do5: Bestimme Kandidatenmenge Kt,k
6: Bestimme Menge nicht beendeter Operationen Gt,k
7: Wähle eine Menge maximaler Priorität St ⊆ Kt,k
|St |+ |Gt,k | ≤ α(rk)
8: for each vi ∈ St do τ(vi)← t end for9: end for
10: t← t + 111: until Alle Knoten vi geplant12: return τ
13: end function
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 52
Listscheduling (Mobilität)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 53
Listscheduling (1)
• Kriterium: Anzahl der Nachfolgerknoten• Ressourcen: 1 Multiplizierer, 1 ALU (+, -, <)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 54
Listscheduling (2)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 55
Force Directed Scheduling
• Eigenschaften• Dynamische Änderung der Dringlichkeit von Operationen• konstruktiv• Planung aufgrund eines Kräftemodells• Grundstruktur: Ähnlich Listscheduling• Komplexität:O(|VS|2)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 56
Force Directed Scheduling
• Zeitrahmen einer Operation vi ∈ VS:
[τ(vi)S,τ(vi)
L]
• Ausführungswahrscheinlichkeit pi,t einer Operation:
pi,t =
{ 1µ(vi)+1 , ∀t ∈ [τ(vi)S,τ(vi)L]
0, sonst
• Belegung qk ,t des Ressourcentyps rk zum Zeitpunkt t :
qk ,t = ∑∀i:(vi ,rk )∈ER
pi,t
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 57
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 58
Beispiel
• µ(v1) = 0 : p1,0 = 1, p1,1 = p1,2 = p1,3 = 0• v2 : genauso• µ(v6) = 1, Zeitrahmen [0,1]: p6,0 = p6,1 = 0,5,
p6,2 = p6,3 = 0• µ(v8) = 2, Zeitrahmen [0,2]: p8,0 = p8,1 = p8,2 = 0,33,
p8,3 = 0
Belegung des Multiplizierers (k = 1) zum Zeitschritt 0:q1,0 = 1+ 1+ 0,5+ 0,33 = 2,83
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 59
Beispiel, Belegungsgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 60
Force Directed Scheduling
• Kräfte: Analogie zu dem mechanischen Modell einer Feder(F = cx). Analogie zu c : qk ,t• Selbstkräfte:
F Si,t =
τ(vi)L
∑m=τ(vi)
S
qk ,m(δt,m− pi,m)
F Si,t = qk ,t− qk ,i
Mittelwert der Belegungen im Mobilitätsintervall derOperation vi :
qk ,i =1
µ(vi)+ 1
τ(vi)L
∑m=τ(vi)
S
qk ,m
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 61
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 62
Beispiel
• Selbstkraft von v6 bzgl. Planung zum Zeitschritt 0:2,83 · (1− 0,5)+ 2,33 · (0− 0,5) = 0,25
• Selbstkraft von v6 bzgl. Planung zum Zeitschritt 1:2,83 · (0− 0,5)+ 2,33 · (1− 0,5) =−0,25
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 63
Vorgänger und Nachfolger
• Achtung:Die Planung eines Knotens zu einem Zeitpunkt schränktdas Mobilitätsintervall von Vorgänger- undNachfolgerknoten im Graphen ein.
• Um dies zu berücksichtigen, definiert man zusätzlicheVorgänger/Nachfolgerkräfte: Kräfte auf direkte Vorgänger-und Nachfolgerknoten im Sequenzgraphen.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 64
Beispiel
• Die Planung von v6 in Zeitschritt 1 impliziert die Planungvon v7 in Zeitschritt 2.• Die Selbstkraft von v7 bezüglich Zeitschritt 2
q1,1(0− p7,1)+ q1,2(1− p7,2) =2,33(0− 0,5)+ 0,83(1− 0,5) =−0,75Dies ist die Nachfolgerkraft von v6.• Gesamtkraft auf v6 im Zeitschritt 1: Summe aus
Selbstkraft und Nachfolgerkraft:−0,25− 0,75 =−1• Gesamtkraft auf v6 im Zeitschritt 0: 0,25 (nur Selbstkraft,
da das Intervall von v7 nicht eingeschränkt wird).
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 65
Force Directed Scheduling
• Sei [τ(vi)S,τ(vi)L] der ursprüngliche Zeitrahmen einerOperation und [τ̃(vi)S,τ̃(vi)L] der reduzierte Zeitrahmen.Dann erhält man als Kraftvariation
F Ni,t =
1
µ̃(vi)+ 1
τ̃(vi)L
∑m=τ̃(vi)
S
qk ,m−1
µ(vi)+ 1
τ(vi)L
∑m=τ(vi)
S
qk ,m
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 66
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 67
Beispiel
• Die Planung von Operation v8 im Zeitschritt 1 impliziert diePlanung von Operation v9 in Zeitschritt 2 oder 3.• Die Variation der Kraft auf v9 ist daher
1/2(q2,2 + q2,3)− 1/3(q2,1 + q2,2 + q2,3) =1/2(2+ 1,6)− 1/3(1+ 2+ 1,6) = 0,27.• Gesamtkraft:
Fi,t = F Si,t + ∑
∀vj :(vi ,vj)∈E
F Nj,t + ∑
∀vj :(vj ,vi)∈E
F Nj,t
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 68
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1} ∀vi ∈ VS,∀t : li ≤ t ≤ hihi
∑t=li
xi,t = 1 ∀vi ∈ VS
hi
∑t=li
t · xi,t = τ(vi) ∀vi ∈ VS
τ(vj)− τ(vi)≥ di ∀(vi ,vj) ∈ ES
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1}hi
∑t=li
xi,t = 1
xi,t drückt die Ablaufplanung vonOperationen aus: Wenn dieOperation vi zum Zeitpunkt t startetdann ist xi,t = 1, sonst 0.
hi
∑t=li
t · xi,t = τ(vi)
τ(vj)− τ(vi)≥ di
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1}hi
∑t=li
xi,t = 1Die Operation vi wird genau einmalgeplant.
hi
∑t=li
t · xi,t = τ(vi)
τ(vj)− τ(vi)≥ di
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1}hi
∑t=li
xi,t = 1
hi
∑t=li
t · xi,t = τ(vi) Explizite Berechnung von τ(vi).
τ(vj)− τ(vi)≥ di
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1}hi
∑t=li
xi,t = 1
hi
∑t=li
t · xi,t = τ(vi)
τ(vj)− τ(vi)≥ diBerücksichtigung derDatenabhängigkeiten
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Ganzzahlige lineare Programmierung
Definition: Gegeben: GS, GR, α(rk), di , li := τ(vi)S undhi := τ(vi)L der Operation vi .
xi,t ∈ {0,1}hi
∑t=li
xi,t = 1
hi
∑t=li
t · xi,t = τ(vi)
τ(vj)− τ(vi)≥ di
∑∀i:(vi ,rk )∈ER
min{di−1,t−li}
∑p=max{0,t−hi}
xi,t−p ≤ α(rk)Ressourcen-beschränkungen
∀rk ∈ VT ,∀min{li : vi ∈ VS} ≤ t ≤ max{hi : vi ∈ VS}WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 69
Beispiel
∑p
x1,t−p
∑p
x2,t−p
∑i∑p
xi,t−p
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 70
Beispiel: FIR-Filter
[li ,hi ]
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 71
Beispiel: FIR-Filter
Es seien zwei Ressourcen des Ressourcetyps r1
(Multiplizierer) (α(r1) = 2) und eine Ressource des Typs r2
(Addierer) (α(r2) = 1) alloziert.
Die Berechnungszeit einer Multiplikation betrage 2 Zeitschritte,die einer Addition 1 Zeitschritt.
Vorgabe L: 5.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 72
Beispiel: FIR-Filter
1) Einführung binärer Variablen
τ(v1) = 0x1,0 + 1x1,1 x1,0 + x1,1 = 1
τ(v2) = 0x2,0 + 1x2,1 x2,0 + x2,1 = 1
τ(v3) = 0x3,0 + 1x3,1 + 2x3,2 x3,0 + x3,1 + x3,2 = 1
τ(v4) = 2x4,2 + 3x4,3 x4,2 + x4,3 = 1
τ(v5) = 3x5,3 + 4x5,4 x5,3 + x5,4 = 1
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 73
Beispiel: FIR-Filter
2) Datenabhängigkeiten
τ(v4)− τ(v2)≥ 2
τ(v4)− τ(v1)≥ 2
τ(v5)− τ(v3)≥ 2
τ(v5)− τ(v4)≥ 1
τ(v1),τ(v2),τ(v3)≥ 0
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 74
Beispiel: FIR-Filter
3) Berechnung der Belegungen durch Faltung und Summationder Belegungen (hier: nur Multipliziererressourcen (r1))
x1,0 + x2,0 + x3,0 ≤ 2 (t = 0)
x1,0 + x1,1 + x2,0 + x2,1 + x3,0 + x3,1 ≤ 2 (t = 1)
x1,1 + x2,1 + x3,1 + x3,2 ≤ 2 (t = 2)
x3,2 ≤ 2 (t = 3)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 75
Beispiel: FIR-Filter
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 76
Iterative Algorithmen
Definition (Iterative Algorithmen): Ein iterativer Algorithmusbesteht aus einer Menge quantifizierter, linear indizierterGleichungen Si [n]:
S1[n] . . .Si [n] . . .S|V |[n] ∀n ≥ 0
Jede Gleichung Si [n] besitzt die Form
xi [n] = fi(. . . ,xk [n− sk ,i ], . . .)
wobei der Index n ∈ N0 die Iteration des Algorithmus angibt.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 77
Beispiel: IIR-Filter
Iterativer Algorithmus (1. Ordnung):
y[n] = ay[n− 1]+ x[n] ∀n ≥ 0
Signalflussgraph IIR-Filter Iterativer Problemgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 78
Erweiterter Sequenzgraph
Definition (Iterativer Problemgraph): Ein iterativerProblemgraph G(V ,E,s) ist ein Netzwerk mitKantengewichtungsfunktion s : E → N0. Die Funktion sordnet jeder Kante (vk ,vi) ∈ E die Indexverschiebungs(vk ,vi) (kurz sk ,i ) zu. Ein iterativer Problemgraph kannferner Zyklen besitzen.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 79
Beispiel Iterativer Algorithmus
x2[n] = f2(x1[n]) ∀n ≥ 0
x3[n] = f3(x1[n]) ∀n ≥ 0
x4[n] = f4(x2[n],x3[n]) ∀n ≥ 0
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 80
Erweiterter Sequenzgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 81
Ressourcegraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 82
Definitionen
Definition (Iteration): Eine Iteration ist die Berechnung allerVariablen xi [n] eines iterativen Algorithmus für ein festes n.
Definition (Iterationsintervall): Das Iterationsintervall Pbezeichnet die Anzahl von Taktzyklen zwischen dem Beginnzweier aufeinanderfolgender Iterationen.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 83
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 84
Periodischer Ablaufplan
Definition: Ein periodischer Ablaufplan (mit IterationsintervallP) eines iterativen Problemgraphen G(V ,E,s) ist eineFunktion t : V ∈ Z+ , die jedem Knoten vi ∈ V dieStartzeitpunkte
τ(vi ,n) = t(vi)+ n ·P ∀n ∈ N0
zuordnet, so dass für alle Kanten (vi ,vj) ∈ E gilt:
t(vj)− t(vi)≥ di− si,j ·P
Dabei gelte τ(vi ,n) = 0 für alle n < 0. τ(vi ,n) stellt denStartzeitpunkt der n-ten Iteration von Knoten vi dar.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 85
Beispiel
ti := t(vi) = τ(vi ,0) bezeichne im Folgenden denStartzeitpunkt von Knoten vi zur nullten Iteration. Ein iterativerAblaufplan lässt sich folglich eindeutig durch dasIterationsintervall P und die Startzeitpunkte ti ,i = 1, . . . ,|V |beschreiben.
Für τ(vi ,n) wird im folgenden auch ti(n) geschrieben:
ti(n) = ti + nP
mit ti = i ∀i = 1, . . . ,4.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 86
Funktionale Fließbandverarbeitung
Definition (Funktionale Fließbandverarbeitung):Geg.: Ein iterativer Algorithmus und ein IterationsintervallP. Unter funktionaler Fließbandverarbeitung (functionalpipelining) versteht man die gleichzeitige Bearbeitung vonzu unterschiedlichen Iterationen gehörenden Datensätzen.Es gibt also Kontrollschritte t , an denen Operationen mitDaten aus verschiedenen Iterationen n ausgeführt werden.Falls von 0 verschiedene Indexabhängigkeiten erlaubtsind, spricht man weiter von Schleifenfaltung.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 87
Beispiel: Sequentielle Abarbeitung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 88
Beispiel: Fließbandverarbeitung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 89
Beispiel: Fließbandverarbeitung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 89
Iterative Ablaufplanung
Definition (Maximales Zyklengewicht (Fet76)):Gegeben sei ein iterativer Problemgraph G(V ,E,s) undeine zusätzliche Funktion w : E → Z+
0 , die jeder Kante(vi ,vj) ∈ E die Berechnungszeit w(vi ,vj) = di desKnotens vi als Gewicht zuweist. DieIterationsintervallschranke (engl. iteration period bound)Pmin ist gegeben durch:
Pmin = max
∑e∈Z
w(e)
∑e∈Z
s(e)
∣∣∣∣∣∣∣ ∀ gerichteten Zyklen Z(G)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 90
Beispiel
Pmin = max
{2+ 2+ 2
3,2+ 2+ 2
2
}= 3
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 91
Beispiel
Ein gültiger Ablaufplan ti(n) = ti + nP mit P = 8 ist t1 = 0,t2 = 2, t3 = 4, t4 = 6 und t5 = 6.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 92
Beispiel
Ein gültiger Ablaufplan ti(n) = ti + nP mit P = 3 ist t1 = 0,t2 = 2, t3 = 4, t4 = 6 und t5 = 8.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 93
Bemerkungen
Die Bedingung
∑e∈Z
s(e)> 0 ∀ gerichteten Zyklen Z von G
ist notwendig und hinreichend zur Existenz eines periodischenAblaufplans.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 94
Bemerkungen
Pmin kann man durch Lösen des linearen Programms
min
{P
∣∣∣∣ (φ ,P)(Cs
)≥ w
}erhalten. Bei gegebenem P erhält man durch Umformung dieBeschränkungen
φC ≥ w ′ = w−Ps
Bei Unzulässigkeit wurde P zu klein gewählt, sonst erhält maneinen periodischen Ablaufplan mit
ti(n) = φi + n ·P(vgl. τ(vi ,n) = t(vi)+ n ·P)WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 95
Beispiel: IIR-Filter
Iterativer Algorithmus (1. Ordnung):
y[n] = a y[n− 1]+ x[n] ∀n ≥ 0
Signalflussgraph IIR-Filter Problemgraph
Unter der Annahme, dass Addition und Multiplikation jeweilsdie Ausführungszeit 1 besitzen, erhält man Pmin = 2.WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 96
Iterative Ablaufplanung
Ablaufplanung mit Ressourcenbeschränkungen
Theorem (Minimale Ressourcen (SB86))Gegeben sei ein iterativer Problemgraph G(V ,E,s), einRessourcetyp, auf dem jeder Knoten vi ∈ V mitBerechnungszeit di ausgeführt werden kann (z. B. Prozessor),und ein Iterationsintervall P. Die minimale Anzahl notwendigerRessourcen beträgt
αmin =
|V |
∑i=1
di
P
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 97
ILP für Iterative Algorithmen
Theorem (Fließbandver. und Schleifenfaltung)Gegeben: G(V ,E,s) und GR(VR,ER), P, Latenzschranke L mitP < L und die ASAP- und ALAP-Zeiten li und hi der Knotenvi ∈ V . Ungleichungen im ILP werden ersetzt durch:
t(vj)− t(vi)≥ di− si,j ·P ∀(vi ,vj) ∈ E
∑∀i:(vi ,rk )∈ER
di−1
∑p=0
∑∀i:li≤t−p−n·P≤hi
xi,t−p−n·P ≤ α(rk)
∀0≤ t < P, ∀rk ∈ VT
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 98
Beweis
Jede Datenabhängigkeitskante (vi ,vj) ∈ E besitzt nun dasGewicht si,j . Die in Iteration n durch die Ausführung vonOperation vi erzeugten Daten werden in Iteration n+ si,j vonOperation vj benötigt. Die n-te Ausführung von Operation vi
beginne zum Zeitschritt t = ti + nP. Für den frühestmöglichenZeitschritt, an dem die Ausführung der (n+ si,j)-ten Iterationvon vj beginnen kann, gilt also:
tj +(n+ si,j)P ≥ ti + nP + di
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 99
Beweis
Die Ausführung von vi mit dem Index n eines iterativenAlgorithmus beginnt zum Zeitschritt ti(n) = ti + nP. Wird dieAusführung einer Operation vi zum Zeitschritt ti zur nulltenIteration begonnen, belegt sie entsprechende Ressourcenwährend sämtlicher Zeitschritte t mit
t = ti + p+ nP ∀p : 0≤ p ≤ di− 1
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 100
Beweis
Für n = 0 ergeben sich die Zeitschritte t mitti ≤ t ≤ ti +di−1. Dies entspricht den Startzeitpunkten von vi
im nichtiterativen Fall. Für n 6= 0 sind dies die jeweils um nPZeitschritte verschobenen Startzeitpunkte von Knoten vi .
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 101
Beweis
Betrachte das Grundintervall von 0≤ t < P bzgl. derRessourcenbelegung. Da die Belegung im Grundintervall vonOperationen unterschiedlicher Iterationen n stammen kann,muss man das entsprechende n finden, das im Grundintervallausgeführt wird.
Mit li ≤ t− p− nP ≤ hi erhalten wir dasjenige n, für das vi imGrundintervall berechnet wird.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 102
Beweis
Die Summation
di−1
∑p=0
∑∀i:li≤t−p−n·P≤hi
xi,t−p−n·P ≤ α(rk)
hat für alle t , zu denen Operationen vi innerhalb desGrundintervalls 0≤ t < P eine Ressource belegt, den Wert 1,sonst 0.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 103
Beispiel: FIR-Filter
y[n] = a0x[n]+ a1x[n− 1]+ a2x[n− 2] ∀n ≥ 0
Gesucht: Implementierung mit beschränkten Ressourcen (≤ 2Multiplizierer,≤ 1 Addierer).
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 104
Beispiel: FIR-Filter
[li ,hi ]
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 105
Beispiel: FIR-Filter
Es seien zwei Ressourcen des Ressourcetyps r1
(Multiplizierer) (α(r1) = 2) und eine Ressource des Typs r2
(Addierer) (α(r2) = 1) alloziert.
Die Berechnungszeit einer Multiplikation betrage 2 Zeitschritte,die einer Addition 1 Zeitschritt.
Vorgabe L: 5.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 106
Beispiel: FIR-Filter
1) Einführung binärer Variablen
τ(v1) = 0x1,0 + 1x1,1 x1,0 + x1,1 = 1
τ(v2) = 0x2,0 + 1x2,1 x2,0 + x2,1 = 1
τ(v3) = 0x3,0 + 1x3,1 + 2x3,2 x3,0 + x3,1 + x3,2 = 1
τ(v4) = 2x4,2 + 3x4,3 x4,2 + x4,3 = 1
τ(v5) = 3x5,3 + 4x5,4 x5,3 + x5,4 = 1
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 107
Beispiel: FIR-Filter
2) Datenabhängigkeiten
τ(v4)− τ(v2)≥ 2
τ(v4)− τ(v1)≥ 2
τ(v5)− τ(v3)≥ 2
τ(v5)− τ(v4)≥ 1
τ(v1),τ(v2),τ(v3)≥ 0
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 108
Beispiel: FIR-Filter
3) Berechnung der Belegungen durch Faltung und Summationder Belegungen (hier: nur Multipliziererressourcen (r1))
x1,0 + x2,0 + x3,0 ≤ 2 (t = 0)
x1,0 + x1,1 + x2,0 + x2,1 + x3,0 + x3,1 ≤ 2 (t = 1)
x1,1 + x2,1 + x3,1 + x3,2 ≤ 2 (t = 2)
x3,2 ≤ 2 (t = 3)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 109
Beispiel: FIR-Filter
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 110
Beispiel: FIR-Filter
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 111
Beispiel: FIR-Filter
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 112
Beispiel: FIR-Filter
Berechnung der Belegungen durch Faltung und Summationder Belegungen für P = 4:
x1,0 + x2,0 + x3,0 ≤ 2 (t = 0)
x1,0 + x1,1 + x2,0 + x2,1 + x3,0 + x3,1 ≤ 2 (t = 1)
x1,1 + x2,1 + x3,1 + x3,2 ≤ 2 (t = 2)
x3,2 ≤ 2 (t = 3)
x1,0︸︷︷︸1,4−0−1·4
+ x2,0 + x3,0 ≤ 2 (t = 4)
...
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 113
Beispiel: FIR-Filter
Berechnung der Belegungen durch Faltung und Summationder Belegungen für P = 3:
x3,2 + x1,0 + x2,0 + x3,0 ≤ 2 (t = 0)
x1,0 + x1,1 + x2,0 + x2,1 + x3,0 + x3,1 ≤ 2 (t = 1)
x1,1 + x2,1 + x3,1 + x3,2 ≤ 2 (t = 2)
Bestimmung einer möglichen Belegung.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 113
Beispiel: FIR-Filter
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 114
Bindung: Sequenzgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 115
Bindung: Ressourcegraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 116
Verträglichkeit
Definition (Verträglichkeit): Gegeben sei eine Spezifikation(G(VS,ES), GR(VR,ER)). Ein Paar von Knoten (vi ,vj) mitvi ,vj ∈ VS heißt
• schwach verträglich, falls
∃rk ∈ VT : (vi ,rk) ∈ ER ∧ (vj ,rk) ∈ ER
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 117
Verträglichkeit
• ablaufplanverträglich, falls (vi ,vj) schwach verträglich istund für die Startzeit τ(vi) von Knoten vi beiBerechnungszeit di gilt:
τ(vj)≥ τ(vi)+ di
oderτ(vi)≥ τ(vj)+ dj
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 118
Verträglichkeit
• stark verträglich, falls (vi ,vj) schwach verträglich ist undfalls in G ein gerichteter Pfad von vi nach vj oderumgekehrt existiert.
• Allgemein wird die Verträglichkeit zwischen vi und vj durchdie Schreibweise vi ∼ vj ausgedrückt.
Definition (Verträglichkeitsgraph): Als (Ressourcen-)Verträglichkeitsgraphen GV(VV ,EV) bezeichnet man denungerichteten Graphen mit Knoten VV und KantenmengeEV = {{vi ,vj} : vi ∼ vj ,vi ,vj ∈ VV , i 6= j}
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 119
Verträglichkeitsgraph GV
• Eine Menge gegenseitig verträglicher Operationenentspricht einer Clique in GV . Eine Clique ist einvollständiger Teilgraph.• Eine maximale Verträglichkeitsmenge entspricht einer
maximalen 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.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 120
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 121
Schwache Verträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 122
Ablaufplanverträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 123
Starke Verträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 124
Alternative Betrachtungsweise
Definition (Konflikt): Gegeben sei eine Spezifikation(G(VS,ES), GR(VR,ER)). Ein Paar von Knoten (vi ,vj),vi ,vj ∈ VS ist im Konflikt genau dann, wenn vi und vj nichtverträglich sind.
Definition (Konfliktgraph): Als (Ressourcen-)Konfliktgraphen GK (VK ,EK ) bezeichnet man einenungerichteten Graphen mit Knoten VK und KantenmengeEK = {{vi ,vj} : vi � vj ,vi ,vj ∈ VK , i 6= j}
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 125
Schwache Verträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 126
Konfliktgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 127
Ablaufplanverträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 128
Konfliktgraph
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 129
Beobachtungen
• Konfliktgraph und Verträglichkeitsgraph sindkomplementär.• Eine Menge gegenseitig verträglicher Knoten VV
entspricht einer unabhängigen Menge in GK . (Eineunabhängige Menge eines Graphen bezeichnet eineTeilmenge von Knoten, von denen keiner mit irgendeinemanderen Knoten dieser Teilmenge adjazent ist.)• Kostenoptimale Bindung: Färbung von GK mit einer
minimalen Anzahl von Farben, so dass adjazente Knotenunterschiedliche Farben erhalten.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 130
Bindung nach Ablaufplanung
• Man ist im Besitz eines Intervallgraphen: Sei τ(vi) derStartzeitpunkt von Operationen vi , dann gilt für dasIntervall I seiner Ausführung [τ(vi),τ(vi)+ di− 1].• Optimale Bindung in polynomieller Zeit mit LEFTEDGE
(wird später vorgestellt.)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 131
Erweiterungen
• Bindung hierarchischer Graphen: Auflösung der Hierarchie;resultierende Graphen sind i. a. nicht mehr chordal.• Bindung vor Ablaufplanung: (polynomiell)
• schwache Verträglichkeit: Sequentialisierungentsprechender Operationen einführen, die nichtnebenläufig ausgeführt werden dürfen oder
• starke Verträglichkeit
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 132
Algorithmen und Komplexität
Für allgemeine Graphen gilt:• Cliquepartitionierung: NP-vollständig• Graphfärbung: NP-vollständig
Berechnung der Bindung wird daher mit Heuristiken zurGraphfärbung durchgeführt.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 133
Färbungsalgorithmen
• VERTEXCOLOR
• exakt für chordale Graphen• Komplexität:O(|V ||E|)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 134
Färbungsalgorithmen
1: function VERTEXCOLOR(G(V ,E))2: for i ← 1 to |V | do3: c← 14: while ∃ Knoten adjazent zu vi mit Farbe c do5: c← c+ 16: end while7: Färbe vi mit Farbe c8: end for9: end function
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 135
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Konfliktgraph nach Ablaufplanung
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136
Färbungsalgorithmen
• LEFTEDGE
• Komplexität:O(|V | log |V |)
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 137
Färbungsalgorithmen
1: function LEFTEDGE(I)2: Sortiere Elemente von I in Liste L aufsteigender Reihenfolge li3: j← 14: while L 6= {} do5: S←{}6: r ← 07: while ∃ Element ∈ L, dessen linke Grenze li ≥ r do8: i← erstes Element in L mit li ≥ r9: S← S∪{Ii}
10: r ← ri11: L← L\{Ii}12: end while13: for each Ii ∈ S do c(Ii)← j end for14: j← j + 115: end while16: end function
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 138
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139
Architektursynthese
• Synthese:• Generierung einer strukturellen
Register-Transfer-Beschreibung aus einerVerhaltensbeschreibung (Algorithmus)
• Aufgaben:• Identifikation von Hardware-Elementen, die die spezifische
Operation ausführen können (Allokation), Zuordnung vonVariablen zu Speichern, Operationen zu denHardware-Elementen und Kommunikationskanälen zuBussen (Bindung).
• Bestimmung der Ausführungsreihenfolge der Operationenbei beschränkter Anzahl von Hardware-Elementen(Ablaufplanung).
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 140
RTL-Struktur
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 141
RTL-Struktur: Multiplexerbasiert
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 142
RTL-Struktur: Busorientiert
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 143
Zustandsautomat
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 144
Moore-Schaltwerk
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 145
Mikroprogrammierter Steuerkreis
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 146
Abschätzen der Ausführungszeit
Mit einer gegebenen Taktperiode T ergibt sich dieAusführungszeit Tex zu
Tex = LT
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 147
Abschätzen der Kosten
• Rechenwerk• Speicherressourcen (Anzahl der Register)• funktionale Ressourcen (Anzahl Multiplizierer, ALU)• Ansteuerlogik und Verdrahtung (z. B. Multiplexer, Busse
sowie Verbindungs- und Ansteuerleitung)• Steuerwerk
• Zustandsregister• Ausgabeschaltnetz (zur Erzeugung der Ansteuersignale
des Datenpfads)• Zustandsübergangsregister zur Berechnung des neuen
Zustands.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 148
Bestimmung der Anzahl der Register
Definition (Bestimmung der Anzahl der Register):Gegeben sei ein Sequenzgraph GS(VS,ES) und ein (nichtiterativer) Ablaufplan τ : V → Z+
0 , der jedem Knoteneinen Startzeitpunkt zuordnet. Sei ferner d(vi) dieBerechnungszeit von Knoten vi ∈ V . Dann gilt für dieLebensdauer life(vi) der durch Knoten vi dargestelltenVariable:
life(vi) = maxj:(vi ,vj)∈E
{τ(vj)+ d(vj)− (τ(vi)+ d(vi))}
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 149
Bestimmung der Anzahl der Register
Das Lebenszeitintervall von vi ist damit das nach oben offeneIntervall
[τ(vi)+ d(vi), maxj:(vi ,vj)∈E
(τ(vj)+ d(vj)))
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 150
Beispiel
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 151
Bestimmung der Anzahl der Register
• Aufstellen eines Konfliktgraphen• Lösen des Färbungsproblems mit VERTEXCOLOR oder
LEFTEDGE ergibt Anzahl der Register.
WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 152