Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen...

34
Hardware/Software-Codesign Kapitel 6: Systemsynthese M. Schölzel

Transcript of Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen...

Page 1: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Hardware/Software-Codesign

Kapitel 6: Systemsynthese

M. Schölzel

Page 2: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Modelle für den Systementwurf

Page 3: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 4: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 5: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Details Prozess

Nichtdeterministisches Verhalten kann entstehen (Race-Conditions) Deadlocks können entstehen

P3

Steuerflussgraph des Prozesses

Kommunikation

Prozess

Page 6: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 7: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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.

Page 8: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 9: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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.

Page 10: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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.

Page 11: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 12: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 13: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 14: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 15: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 16: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 17: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 18: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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)

Page 19: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 20: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 21: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 22: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Entwurfsmethoden

Page 23: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Syntheseprobleme

Struktur

Physisch

Standard- zellen

Logik

Prozessor

System

Systemsynthese

Prozessorsynthese / Architektursynthese

Logiksynthese

Verhalten

Page 24: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 25: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 26: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 27: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Beispiel: Gültige Bindung

R

S

A1

P

A2

P1

P

P2

1

2

3

4

5

7

6

Page 28: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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)

Page 29: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 30: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

Anwendungsbeispiel 2

HW/SW-Partitionierung:

Prozessor

ASIC

BUS

1

2

3

Page 31: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 32: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 33: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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

Page 34: Hardware/Software-Codesign - Universität Potsdam · Verhalten Struktur . Physisch . Standardzellen . Logik . Prozessor . System . Programmiersprachen, CFG, DAGs zur Modellierung

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