Upload
trantram
View
217
Download
0
Embed Size (px)
Citation preview
Hardware/Software-Codesign
Kapitel 6: Systemsynthese
M. Schölzel
Modelle für den Systementwurf
Typische Modelle im Entwurfsablauf
Verhalten Struktur
Physisch
Standardzellen
Logik
Prozessor
System
Programmiersprachen, CFG, DAGs zur Modellierung
sequentiellen Verhaltens Komponenten: z.B.
ALUs, Register, Multiplizierer
Gatter (NAND, NOR), Flip-Flops
Zustandsautomaten zur Modellierung sequentieller Logik,
Aussagenlogische Formeln, Wahrheitswertetabellen zur
Modellierung Boolescher Funktionen
Verarbeitungselemente (Prozessoren, ASICs, ASIPs) und
Kommunikationselemente
Prozessbasierte Modelle (Kommunizierende Prozesse,, DFGs), Zustandsbasierte Systeme (Petrinetze, State Charts) zur Modellierung
von Nebenläufigkeit
Spannungs-/Stromgleichungen
Transistoren, Netzlisten
Prozess-basierte Modelle
Prozesse (P): Verarbeiten Daten Datenverarbeitung im Prozess sequentiell Prozesse arbeiten nebenläufig, Reihenfolge nur durch Datenabhängigkeiten gegeben Verschiedene Arten der Kommunikation (C) möglich: Gemeinsamer Speicher (Semaphore, Kritische Sektionen für gegenseitigen Ausschluss) Nachrichtenbasiert (synchron oder asynchron)
P1 P2
PE 3
C1
C3 C2
Details Prozess
Nichtdeterministisches Verhalten kann entstehen (Race-Conditions) Deadlocks können entstehen
P3
Steuerflussgraph des Prozesses
Kommunikation
Prozess
Beispiel: Deadlock
P3 besitzt 2 Ressourcen und wartet gleichzeitig auf Anforderungen von P1 und P2.
P1 bzw. P2 benötigen beide Ressourcen gleichzeitig. P1 fordert zuerst bei P3 eine Ressource an. Bevor P1 die zweite Ressource anfordern kann, fordert diese
P2 an. Weder P1 noch P2 können jetzt die benötigte zweite
Ressource erhalten.
P1 P2 P3
Beispiel: Race-Condition
P1 P2
P3
Schreibt X Schreibt danach Y
Liest dann erst Y
P1 P2
P3
Schreibt danach
X
Schreibt zuerst Y
Liest dann erst X
Reihenfolge, in der P1 und P2 den Kommunikationskanal (z.B. gemeinsame Variable) nutzen, beeinflusst das Ergebnis des Systems.
Kahn Prozess Netzwerk
Verhalten des Netzwerks wird deterministisch durch Einschränkungen bei der Kommunikation Kommunikationskanäle sind: Nachrichtenbasiert Unidirektional Punkt zu Punkt Verbindungen Asynchrone FIFOs mit unendlich großem Puffer Prozesse: Schreibende Prozesse werden wegen unendlich großer Puffer nie blockiert Lesende Prozess werden blockiert, falls keine Daten im Kanal vorhanden sind Gleichzeitiges Lesen mehrerer Kanäle nicht erlaubt Konsequenz: Reihenfolge, in der Kanäle von einem Prozess gelesen werden, ist durch den Prozess statisch
festgelegt; kann sich aber in Abhängigkeit verfügbarer Daten ändern KPN haben ein deterministisches Verhalten
P1 P3 K2
Praktische Umsetzung von KPN
Für KPN ist unentscheidbar Halteproblem Beschränkte Puffergröße Implementierung eines KPN Modells erfordert: Dynamische Ablaufplanung mit Prozesswechsel Anpassung der Puffergröße
…
…
Umschalten auf anderen Prozess, wenn Kanal blockiert.
Datenflussgraph (DFG)
Prozesse werden zu Aktoren: − Ein Aktor wird erst aktiviert, wenn alle eingehenden Kanäle genügend Daten
erhalten. − Daten werden gelesen, verarbeitet und Ausgabedaten geschrieben − Damit ist ein Aktor eine atomare Ausführungseinheit, bei dem – einmal
gestartet – kein Wechsel zu einem anderen Aktor erforderlich wird.
Kanäle: − sind weiterhin FIFOs mit unendlicher Kapazität − unidirektionale Punkt-zu-Punkt Verbindungen
DFGs erlauben eine vereinfachte Ablaufplanung verglichen mit KPN, da Ausführung von Aktoren nicht unterbrochen werden muss.
Trotzdem bleibt im Allgemeinen eine dynamische Ablaufplanung erforderlich.
Synchroner Datenflussgraph (SDF)
Anzahl der konsumierten/produzierten Daten eines Aktors je Kanal ist konstant
Damit statische Ablaufplanung möglich SDF G = (V,E,c,p,d) mit
− V ist die Menge der Knoten (Aktivitäten) − E Í V ´ V Kantenmenge (FIFO-Speicher) − c : E ® konsumierte Marken beim Feuern − p : E ® produzierte Marken beim Feuern − d : E ® Anzahl der initialen Marken in den FIFOs
Gut geeignet zur Modellierung von Signalverarbeitungssystemen
Beispiel zu SDF
produzierte Daten
Q: Quantisierer (1 Wert pro quantisiertem Block)
Quelle: Bildquelle DCT: Diskrete Cosinus-Transfor- mation
RLC: Lauflängen Kodierung R: Wert für Q muss für 77 Blöcke wieder- holt werden.
Schaltung zur Bilddatenkompression
konsumierte Daten
Quelle
1 1 77 1 1 1 1 77 1
77 1 R
D
DCT
Q
RLC
C
1
C: Neuer Wert für Q nach 77 Blöcken
Topologiematrix zum SDF
Aufbau der Topologiematrix: Jede Spalte j entspricht einer Kante Zeile i entspricht Knoten i Zwei Fälle für Eintrag cij:
− cij < 0: Knoten i produziert -cij Marken von Kante j − cij > 0: Knoten i konsumiert cij Marken auf Kante j
2
3 1
1
1
1 2
1
1
1 0 2
1 1 0
0 1 1
Kant
e vo
n 1
nach
2
Kant
e vo
n 2
nach
3
Kant
e vo
n 1
nach
3
Knoten 1
Knoten 2
Knoten3
Modellierung des dynamischen Verhaltens
Eine Markierung der Kanten ist gegeben durch d = (e1,…,e|E|)T mit ei Î . Schaltvorgang, bei dem Knoten i genau ki mal feuert, wird beschrieben durch einen Vektor k = (k1,…,k|V|). Damit ergibt sich eine neue Kantenmarkierung d' durch: d' = d – CT k, wobei CT die transponierte Topologiematrix des SDF ist. Beispiel zum SDF von voriger Folie:
Notwendige Bedingung für eine periodische Schaltfolge : CT k = 0, wobei k ¹ 0 (SDF wird dann konsistent genannt). Das kann nur erfüllt sein, wenn rang(CT) < |V| Knoten (Aktoren) in einem konsistenten SDF sind statisch planbar.
1 1 1 0 0 1 1 0
0 0 1 1 1 0 1 1
0 2 0 1 0 0 0 0
1 0 2
1 1 0
0 1 1
C
2
3 1
1 1
1 2
1 1 d CT k e1
e2
e3
Beispiel Konsistenz im SDF
2
3 1
1
1
1 2
1
1 2
3 1
1
1
1 2
1
2
1 0 2
1 1 0
0 1 1
C
1 1 0
0 1 1
2 0 1
TC
1 1 0
0 1 1
0 0 1
1 0 2
1 2 0
0 1 1
C
1 1 0
0 2 1
2 0 1
TC
1 1 0
0 2 1
0 0 0
nicht konsistent konsistent
Konsistenter Graph
Finden einer Schaltreihenfolge durch beliebige Planung; zum Beispiel: 3,3,1,2,3,3,1,3,3,1,2 Daraus initiale Kantenmarkierung ableiten, so dass jeder Knoten genug Marken zum Schalten hat, indem Schaltreihenfolge abgearbeitet wird: Hat eine Kante nicht genug Marken, darf der Knoten trotzdem feuern, Markenzahl der
entsprechenden Kanten wird auf 0 reduziert (sonst werden nur die verbrauchten Marken abgezogen.
Erreichte Schlussmarkierung ist auch Anfangsmarkierung: d (e1) = 1, d(e2) = 3, d(e3) = 0
2 0 2
3 3 0
0 1 1
C
2 3 0
0 3 1
2 0 1
TC
2 3 0
0 3 1
0 0 0
3k2 = k3
2k1=3k2
2
3 1
3
2
1 2
1
3 k1 k2 k3 k1 k2 k3
k1=3
k2=2
k3=6
Schalthäufigkeiten der Knoten
Zustandsbasierte Modelle
Endliche Automaten: Einfache Modellierung möglich Keine Hierarchie Keine Nebenläufigkeit Moore- und Mealy-Automat bekannt
State-Charts: unterstützen Hierarchie und Nebenläufigkeit
Hierarchische Modellierung in State Charts
Rechtecke mit runden Kanten sind Zustände Pfeile sind Zustandsübergänge Hierarchie Schachtelung der Zustände
A
B
C
α
βχ (K)
δ
D
Superzustand
Subzustand
Ereignis zum Auslösen des Zustandsübergangs
Zusätzliche Bedingung für Zustandsübergang
XOR-Dekomposition von D (entweder in A oder in C)
Zustandsübergang in State Charts
a ist ein Ereignis (elementar oder Verknüpfung von elementaren Ereignissen)
P ist boolescher Ausdruck (besonderer Ausdruck ist in S). A ist eine Aktion:
− Externes Ereignis aus Sicht des Systems − Internes Ereignis: Zuweisung eines Ausdrucks an eine Variable (die dann
z.B. in einer Bedingung verwendet wird)
S Tα (P) / A
Nebenläufige Zustände
A
C
Y
D
E
F
G
α β (in G) χ δ
α
µ B
Modellierung der Nebenläufigkeit durch AND-Dekomposition von Superzuständen (Ein Subzustand von A und ein Subzustand von D des Superzustandes Y ist aktiv)
Anfangszustände bei Eintritt in Y a ist Synchronisationsereignis (B,F) ® (C,G) unter a
State Chart für Armbanduhr mit Stoppuhr und Alarm
Timer
TIMEUPDATE
ur /light
24H AM_PM
lr
lr
ALARM_ONur
ur
lr
lrCHIME
ul
ul
ALARMUPDATE
ur / stop_bell
ALARMSTOPWATCH
lr / start_stop
ur / reset
ul
ul
l l
l l
l l
lr / update
l l / change_item
Ii / change_item
lr / update
Entwurfsmethoden
Syntheseprobleme
Struktur
Physisch
Standard- zellen
Logik
Prozessor
System
Systemsynthese
Prozessorsynthese / Architektursynthese
Logiksynthese
Verhalten
Typische Schritte Systemsynthese
Profiling: Informationen über Operationen, Speicher- und Buszugriffe einzelner Prozesse sammeln
Allokation von Prozessoren und Hardware
Binden von Prozessen und Kommunikation an Prozessoren und Busse
Ablaufplanung von Prozessen, die an denselben Prozessor gebunden sind
Zusammensetzen aller allokierten Komponenten zum strukturorientierten Modell
Modell der Systemsynthese
Spezifikation des Problems
Datenflussgraph (z.B. kommunizierende
Prozesse)
Problemgraph
1 2
3
4
1 2
3
4
5
7
6
Kommunikationsknoten
Operationsknoten
Spezifikation von Zielarchitekturen (Allokation von Prozessoren und Kommunikationseinheiten)
RISC ASIC 1
ASIC 2
gemeinsam genutzter Bus
(S)
Punkt-zu-Punkt Verbindung
(P)
R
S
A1
P
A2
Proc 1
Proc 2
Punkt-zu-Punkt Verbindung (P)
P1
P
P2
Zwei mögliche Zielarchitekturen Architekturgraphen
Spezifikation
Aktivierung aller verwendeten Knoten und Kanten Eine gültige Bindung muss folgende Eigenschaften haben: Alle Knoten und Kanten des
Problemgraphen sind aktiviert Für jeden aktivierten Knoten im
Problemgraphen ist genau eine Abbildungskante aktiviert.
Jede aktivierte Abbildungskante beginnt und endet in einem aktivierten Knoten
Für jede Kante (u,v) des Problemgraphen gilt: − Entweder werden u und v auf denselben
Knoten abgebildet oder − zwischen den zwei Knoten, auf die u und
v abgebildet sind, existiert eine Kante
R
S
A1
P
A2
P1
P
P2
1
2
3
4
5
7
6
Problem- graph
Architektur- graphen Abbildungskanten
Weggelassen wurden die Abbildungskanten von Kommunikationsknoten zu Operatorknoten im
Architekturgraph
Beispiel: Gültige Bindung
R
S
A1
P
A2
P1
P
P2
1
2
3
4
5
7
6
Modellierung der Kosten
Beschriftung der Abbildungskanten mit Tupeln, z.B.: (Kosten c, Latenz L, Leistungsverbrauch P) Bewertung mittels totale Kostenfunktion:
− Setzt voraus, dass Bindung vollständig vorliegt. − Vergleich gegebener Implementierungen möglich
partielle Kostenfunktion: − Bewertung unvollständiger Bindungen möglich − dient der Abwägung im Entscheidungsprozess bei der
Konstruktion einer Bindung
R
S
A1
P
A2
P1
P
P2
1
2
3
4
5
7
6
Weggelassen wurden die Abbildungskanten von Kommunikationsknoten zu Operatorknoten im Architekturgraph
(5,2)
Anwendungsbeispiel 1
Abbildung unabhängiger Prozesse auf homogenes Multiprozessorsystem:
1
2
3
4
Problemgraph
P1 P2 P3
Prozessorsystem Spezifikationsgraph
1
2
3
4
P1
P2
P3
BUS
Bus
Anwendungsbeispiel 2
HW/SW-Partitionierung:
Prozessor
ASIC
BUS
1
2
3
Simulated Annealing als Lösungsstrategie
Ausgangspunkt ist eine gültige Bindung (z.B. zufallsbasiert bestimmt) tn sei eine monoton gegen 0 fallende Folge von Zeitschritten i := 0 In jedem Zeitschritt ti führe k-mal aus: Es sei a die aktuelle Bindung Erzeuge aus a eine neue Bindung b durch Mutation; z.B. durch ändern der Bindung einer
Operation Falls Koste f(b) kleiner als f(a) sind, dann ist b die neue aktuelle Bindung Falls f(b) ³ f(a), dann wird b mit Wahrscheinlichkeit
die neue aktuelle Bindung.
i := i + 1 Solange ti kleiner als festgelegter Schwellwert, wiederhole ab Punkt 4
( ) ( )
i
f b f a
te
Top-Down-Entwurfsablauf
1: Funktionale Beschreibung des Systems einschließlich Nebenläufigkeit ohne Zeitverhalten (z.B. kommunizierende Prozesse) 2: Beschreibung der Struktur des Systems bestehend aus Prozessoren und Verbindungsnetzwerken einschließlich geeigneter Protokolle mit erforderlichem Zeitverhalten 3: Beschreibung des Verhaltens der Prozessoren z.B. durch CFGs und DAGs 4: Aufbaus der Prozessoren aus Komponenten (Register, ALU, Bus) 5 -> 6: Implementierung der Komponenten durch Logikgatter (Logiksynthese) 7->8: Logikgatter werden auf Standardzellen/Transistoren abgebildet 8->9: Layout, Routing
Verhalten Struktur
Physisch
Standard- zellen
Logik
Prozessor
System
1 2 3 4
5 6 7 8
9
Bottom-Up-Entwurfsablauf
1->2->3: Erstellen von Standardzellen (Flip-Flops, NAND-, NOR-Gatter) einschließlich Layout aus Transistoren 4->5->6: Erstellen von RT-Komponenten (Register, ALU, …) beschrieben durch Boolesche Ausdrücke, Endliche Automaten aus Standardzellen 7->8->9: Beschreibung des Verhaltens der Prozessoren durch Programme, CFG, DAGs. Überführung Datenpfad- und Kontrollpfad-Struktur, bis hin zum Layout unter Verwendung der RT-Komponenten
10->11->12: Funktionale Beschreibung des Systemverhaltens, z.B. kommunizierende Prozesse. Überführung in Kommunikationsstruktur zwischen Prozessoren. Schließlich Layoutgenerierung unter Verwendung der bereits entworfenen Prozessoren
Verhalten Struktur
Physisch
Standardzellen
Logik
Prozessor
System
2 1
7 8 4 5
3
6 9
10 11
12
Meet-in-the-Middle Entwurfsablauf
Top-Down-Entwurf auf höheren Abstraktionsebenen Bottom-Up-Entwurf auf niedrigeren Abstraktionsebenen Variante 1: Nutzung von RT-Komponenten aus Bibliothek Variante 2: Nutzung vorhandener Prozessoren
Verhalten Struktur
Physisch
Standardzellen
Logik
Prozessor
System
1 2 Verhalten
Struktur
Physisch
Standardzellen
Logik
Prozessor
System
1 2 3 4
1 2
3
4 5
6
1 2
3
4 5
6
7 8
9