Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design,...

186
Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Transcript of Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design,...

Page 1: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Eingebettete Systeme

Jürgen Teich

Hardware-Software-Co-Design, Friedrich-Alexander-UniversitätErlangen-Nürnberg

WS 2016/2017

Page 2: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-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

Page 3: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Abstraktionsebenen

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 2

Page 4: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 5: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 6: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 7: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 8: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 9: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Datenabhängigkeiten

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 8

Page 10: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: Schaltungsstruktur

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 9

Page 11: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 12: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 13: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Sequenzgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 12

Page 14: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 15: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 14

Page 16: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 17: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 16

Page 18: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 19: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 20: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 19

Page 21: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 22: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 21

Page 23: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 24: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 23

Page 25: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 26: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 27: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 28: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 29: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 30: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 31: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 32: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 33: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Klassifikation von Problemen

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 32

Page 34: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 35: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 36: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 37: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 38: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 39: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 40: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

ALAP (as late as possible)

• Latenzschranke: L = 4

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 39

Page 41: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Mobilität

• µ(vi) := τ(vi)L− τ(vi)S

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 40

Page 42: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 43: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 44: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 45: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 46: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 47: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 48: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 49: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 50: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 51: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

erweitertes ALAP

• 2 Multiplizierer, 2 ALUs (+, -, <)

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 50

Page 52: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 53: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 54: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Listscheduling (Mobilität)

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 53

Page 55: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 56: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Listscheduling (2)

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 55

Page 57: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 58: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 59: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 58

Page 60: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 61: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel, Belegungsgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 60

Page 62: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 63: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 62

Page 64: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 65: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 66: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 67: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 68: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 67

Page 69: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 70: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 71: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 72: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 73: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 74: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 75: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 76: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 77: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

[li ,hi ]

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 71

Page 78: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 79: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 80: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 81: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 82: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 76

Page 83: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 84: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 85: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 86: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 87: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Erweiterter Sequenzgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 81

Page 88: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Ressourcegraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 82

Page 89: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 90: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 84

Page 91: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 92: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 93: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 94: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: Sequentielle Abarbeitung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 88

Page 95: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: Fließbandverarbeitung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 89

Page 96: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: Fließbandverarbeitung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 89

Page 97: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 98: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 99: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 100: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 101: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 102: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 103: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 104: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 105: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 106: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 107: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 108: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 109: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 110: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 111: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 112: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

[li ,hi ]

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 105

Page 113: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 114: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 115: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 116: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 117: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 110

Page 118: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 111

Page 119: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 112

Page 120: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 121: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 122: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel: FIR-Filter

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 114

Page 123: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Bindung: Sequenzgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 115

Page 124: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Bindung: Ressourcegraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 116

Page 125: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 126: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 127: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 128: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 129: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 121

Page 130: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Schwache Verträglichkeit

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 122

Page 131: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Ablaufplanverträglichkeit

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 123

Page 132: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Starke Verträglichkeit

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 124

Page 133: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 134: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Schwache Verträglichkeit

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 126

Page 135: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 127

Page 136: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Ablaufplanverträglichkeit

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 128

Page 137: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 129

Page 138: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 139: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 140: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 141: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 142: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 143: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 144: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 145: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 146: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 147: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 148: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 149: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 150: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 151: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 152: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 153: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 154: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Konfliktgraph nach Ablaufplanung

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 136

Page 155: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 156: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 157: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 158: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 159: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 160: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 161: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 162: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 163: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 164: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 165: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 166: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 167: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 168: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 169: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 170: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 171: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 172: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 173: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 139

Page 174: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 175: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

RTL-Struktur

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 141

Page 176: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

RTL-Struktur: Multiplexerbasiert

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 142

Page 177: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

RTL-Struktur: Busorientiert

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 143

Page 178: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Zustandsautomat

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 144

Page 179: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Moore-Schaltwerk

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 145

Page 180: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Mikroprogrammierter Steuerkreis

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 146

Page 181: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 182: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 183: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 184: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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

Page 185: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

Beispiel

WS 2016/2017 | © Jürgen Teich | Lehrstuhl für Hardware-Software-Co-Design | Eingebettete Systeme 151

Page 186: Eingebettete Systeme -  · Eingebettete Systeme Jürgen Teich Hardware-Software-Co-Design, Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017

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