a, t

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