Post on 06-Aug-2019
transcript
Entwicklungsgeschichte
Mainframes / Großrechner
Erster Mikroprozessor Intel 4004
Job User Ergebnis User
Physisches System
Aktuatoren Sensoren
Prozessrechner
Großrechner
Desktops
Eingebettete Systeme
1950 1960 1970 1980 1990 2000 2010
Zuve
rläss
igke
it ni
mm
t zu
Logik auf einem Chip integriert
Finden Eingang in viele Bereiche…
Beispiel für diesen Trend
3
• Rührwerk • 1 Schalter • Drehzahl über Getriebe wählbar • Kaum elektronische Bauteile
• Rührwerk, Waage, Heizplatte, Uhr • 15 Schalter/Knöpfe (teilweise Mehrfachbelegung) • 18 LEDs • Digitalanzeige • Platine mit Prozessor
Komet Küchenmaschine anno 1958 Küchenmaschine anno 2010
Eingebettete Elektronik ist Überall
Mikrocontroller Mikroprozessor Mehrkernprozessor
80 bis 100 Prozessoren Fensterhebermotor Regelung durch Mikroprozessor
Schematische Darstellung Eingebettetes System
Systemumgebung
Eingebettetes System
Speicher ASIC Standard-
komponente
Prozessor Prozessor
Kopplung
Kopplung Prozessrechner mit physischem System
Analoge Signale sind kontinuierlich in der Zeit und den Werten Digitale Signale sind diskret in der Zeit und den Werten Mit zunehmender Integrationsdichte wurden digitale
Verarbeitungssysteme immer kleiner (Schrankgröße -> Stecknadelkopfgröße)
Damit zunehmende Verbreitung der eingebetteten Systeme
Cyber-System*
Physical-System*
Digitales Verarbeitungssystem
Analog-Digital-Wandler
Digital-Analog-Wandler
Digitale Signale
Analoge Signale
Regelstrecke Sensoren Aktoren
Digitale Signale
Analoge Signale
*Lee, Edward. Cyber Physical Systems: Design Challenges. University of California, Berkeley Technical Report No. UCB/EECS-2008-8.
Testen elektronischer Komponenten Testen mechanischer Komponenten
Gesamtsystem
Entwurfsprozesses für Cyber-Physical-System
Gesamtsystems
Entwurf mechanischer Komponenten
Entwurf elektronischer Komponenten
Formales Modell der mechanischen Komponenten
Formales Modell der elektronischen Komponenten
Motivation für HW/SW-Codesign
Gründe für Implementierung in Software: Entwurfszeit Flexibilität Entwicklungskosten Gründe für Implementierung in Hardware: Verarbeitungsgeschwindigkeit Stromverbrauch Platzverbrauch (Fertigungskosten)
… Application Specific Circuit (ASIC) Standardprozessor + Software
Freiheitsgrade beim Entwurf elektronischer Komponenten
Verarbeitungsgeschwindigkeit
• Auf das Problem zugeschnittene Hardwarearchitektur und Technologie
• Spezialhardware möglich
• Programmgesteuerte Universalarchitektur verbraucht Zeit für Programmverarbeitung
• Alle erforderlichen Operationen müssen mit dem vorhandenen Befehlssatz umgesetzt werden
hoch
niedrig
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Transistoranzahl und Performance
Verarbeitungsleistung stieg ebenfalls exponentiell an. Übertragen auf einen Rolls-Royce aus den 70ern würde das bedeuten: Preis: 40 $ 3,8 Liter Benzin reichen für 8
Weltumrundungen Höchstgeschwindigkeit ca. 4,5 Millionen
Stundenkilometer
Entwurfszeit
hoch
niedrig
• Oft vollständiger Neuentwurf erforderlich.
• Korrektur von Entwurfsfehlern kostet viel Zeit.
• Niedriges Abstraktionsniveau
• Neuentwurf erforderlich, aber Programmiersprachen stellen oft schon zahlreiche Bibliotheken mit vorgefertigter Funktionalität bereit.
• Höheres Abstraktionsniveau als in Hardwarebeschrei-bungssprachen
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Entwicklungskosten
hoch
niedrig
• Korreliert mit Entwurfszeit
• Korreliert mit Entwurfszeit
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Flexibilität
hoch
niedrig
• Einmal gefertigt nicht mehr änderbar
• Auch nach der Fertigung noch Änderungen an der Software möglich
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Platz-/Stromverbrauch
hoch
niedrig
• Auf das Problem zugeschnittene Hardwarearchitektur und Technologie
• Spezialisierte Hardware -komponenten
• Programmgesteuerte Universalarchitektur verbraucht Platz und Strom für Programmverarbeitung
• Längere Verarbeitungszeit • Überflüssige Hardware
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Gesamtkosten pro Stück
hoch
niedrig
• Bei geringer Stückzahl • Bei hoher Stückzahl
Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
• Bei hoher Stückzahl • Bei geringer Stückzahl
Beispiel: Fixkosten: 2.100.000€ Herstellungskosten pro Stück 2,50€
Fixkosten: 750.000€ Kaufpreis pro Stück: 3,00€ 2.100.000 2,5 750.000 3
1.350.000 (3 2,5)
2.700.000
x x
x
x
Beispiel Fertigungskosten
Technology Gates / mm² (KU) costs per million gates ($)
90 nm 637 0,0401
65 nm 1109 0,0282
40 nm 2130 0,0194
28 nm 3948 0,0140
20 nm 6992 0,0142
16 nm 12391 0,0162 Quelle: http://electroiq.com/wp-content/uploads/2014/03/4.png
Schlussfolgerung
Gesucht ist eine Lösung, die die Gesamtkosten minimiert und dabei alle Randbedingungen (Verarbeitungszeit, Entwicklungszeit, Platz-/Stromverbrauch,…) einhält.
Durch eine Softwarerealisierung können die Entwicklungskosten und –zeiten gering gehalten werden.
Anforderungen bzgl. Verarbeitungsgeschwindigkeit, Platz-/Stromverbrauch werden dann aber evtl. nicht eingehalten.
Hardware-/Software Codesign dient dem Finden einer Systemimplementierung, zwischen diesen beiden Extremen.
Was ist HW/SW-Codesign?
Hardware/software co-design means meeting system-level objectives by exploiting the synergism of hardware and software through their
concurrent design. DeMicheli
Hardware/software co-design means meeting system-level objectives by exploiting the synergism of hardware and software through their
concurrent design. Software-hardware co-design is an important approach to ensure an efficient final implementation of the product.
Wikipedia
Co-Design is a simultaneous consideration of hardware and software within the design process.
Lockheed Martin
Aspekte des HW/SW Codesign: Partitionierung
Informale Spezifikation (Beschreibung der Funktionalität)
Formale Spezifikation
HW SW
F1 F2
F3
F4 F5
F6
HW SW
F1
F2
F4 F5
F6 F3
HW SW
F1 F2
F3
F4
F5
F6
Betrachtung unterschiedlicher HW/SW Partitionierungen für die Funktionen Fi im System.
Variante 1 Variante 2 Variante k
Aspekte des HW/SW Codesign: High-Level-Synthese
Abbilden der Funktionalität, die in Form einer Hochsprachenbeschreibung (Programmiersprache, Graphmodell) gegeben sind auf eine Hardwareimplementierung (Struktur)
Dabei Optimierung der Hardware für die geforderte Funktionalität
HW SW
F1 F2
F3
F4 F5
F6
HW SW
F1
F2
F4 F5
F6 F3
HW SW
F1 F2
F3
F4
F5
F6
Variante 1 Variante 2 Variante k
K1 K1 K2
K3
K1 K2
K3 K4
K5
Aspekte des HW/SW Codesign: HW für SW optimieren
Software fest vorgegeben: Optimierung der Hardware durch Auswahl geeigneter Prozessoren für die Softwarefunktionalität. Möglichkeiten: Verwendung von Standardprozessoren Verwendung Domain-spezifischer Prozessoren (z.B. Digitale Signalprozessoren, Mikrocontroller) Verwendung von ASIPs (Application Sepcific Instruction Set Processors); Ableiten des Befehlssatzes des
Prozessors aus der Anwendung erforderlich …
HW SW
F1 F2
F3
F4 F5
F6
HW SW
F1
F2
F4 F5
F6 F3
HW SW
F1 F2
F3
F4
F5
F6
Variante 1 Variante 2 Variante k
P1 P2
P2 P1
K1 K1 K2
K3
K1 K2
K3 K4
K5
Aspekte des HW/SW Codesign: SW für HW optimieren
Hardware fest vorgegeben: Optimierung der Software bei der Softwaresynthese oder Auswahl eines geeigneten Algorithmus aus einem ganzen Spektrum von Algorithmen, der besonders gut auf vorliegender HW abgearbeitet werden kann. Softwaresynthese: Abbilden der in Software implementierten Funktionen auf den Zielprozessor Programm muss für Zielarchitektur optimiert werden Für jede Zielarchitektur wird ein spezifischer optimierender Compiler benötigt: Anpassung der Hardware zur Unterstützung bestimmter Optimierungstechniken in Compilern Anpassung des Compilers zur Unterstützung bestimmter Optimierungen für die Zielarchitektur
HW SW
F1 F2
F3
F4 F5
F6
HW SW
F1
F2
F4 F5
F6 F3
HW SW
F1 F2
F3
F4
F5
F6
Variante 1 Variante 2 Variante k
P1 P2
P2 P1
K1 K1 K2
K3
K1 K2
K3 K4
K5
Problematik des Systementwurfs
Höhere Integrationsdichte erlaubt Fertigung immer komplexerer Systeme: System on Chips (SoC) Multi-Processor Systems on Chip (MPSoC) Design-Gap: Entwicklung geeigneter Entwurfswerkzeuge hält mit Systemkomplexität, die gefertigt werden kann, nicht Schritt Eine Lösungsstrategie: Abstraktion
Design-Gap
Komplexität Hardware
Beherrschbare Komplexität mit Entwurfswerkzeugen
Jahr
Kom
plex
ität
Systematisierung Systementwurf
Abstraktion Granularität der Modellierung: Systemebene (Prozessoren, Speicher, Busse, …) Architektureben (Register, ALU, …) Logikebene (Gatter, Flip-Flops, …) Schalterebene Verfeinerung ( ) ist die Verringerung der
Abstraktion
Sichten Beschreiben unterschiedliche Modellierungsarten: Verhalten Struktur (Physische Sicht)
Synthese ( ) ist die Überführung von Verhalten in Struktur bzw. Struktur in
Physische Sicht
Verhalten Struktur
Physisch
Schalter
Logik
Prozessor
System
Abstraktionen / Ebenen nach Gajski (Y-Chart)
Typische Modelle im Entwurfsablauf
Verhalten Struktur
Physisch
Schalter
Logik
Prozessor
System
Programmiersprachen, CFG, DAGs zur Modellierung
sequentiellen Verhaltens
ALUs, Register, Multiplizierer, …
Gatter (NAND, NOR), Flip-Flops
Zustandsautomaten zur Modellierung sequentieller Logik,
Aussagenlogische Formeln, Wahrheitswertetabellen zur
Modellierung Boolescher Funktionen
Prozessoren, ASICs, Speicher, Busse, …
Prozessbasierte Modelle (Kommunizierende Prozesse, DFGs), Zustandsbasierte Systeme
(Petrinetze, State Charts)
Spannungs-/Stromgleichungen
Transistoren, Netzlisten
Transistorlayout
Gatterlayout
Layout der Module
Physische Aufteilung des Chips
Einbeziehung der Software Bl
ock
Mod
ul Sy
stem
Arch
itekt
ur
Logi
k Software Hardware
Abstraktionen / Ebenen nach J. Teich (Doppeldach)
Verhalten Struktur
Physisch
Schalter
Logik
Prozessor
System
Abstraktionen / Ebenen nach Gajski (Y-Chart)
Typische Modelle
Bloc
k
Mod
ul Sy
stem
Arch
itekt
ur
Logi
k
Software Hardware
Abstraktionen / Ebenen nach J. Teich
Prozessbasierte Modelle (Kommunizierende Prozesse, DFGs)
Zustandsbasierte Modelle (Petrinetze, State Charts) Prozessoren, ASICs, ASIPs, Busse, Speicher,…
Algebraische Spezifikation
Imperatives Programm
Graph-basierte Modelle, DAGs, CFG, 3-Address-Code
Assembler-/Maschinenprogramm
Programmiersprachen, Hardwarebeschreibungssprachen,
DAGs, …
ALUs, Register, Multiplexer,…
Boolesche Funktionen, Zustandsautomaten,…
Gatter, Flip-Flops, …
Typischer Entwurfsablauf
Systemspezifikation
Validierung
HW/SW-Partitionierung
Hardwaresynthese
Hardwareentwurf
Validierung
Softwaresynthese
Softwareentwurf
Validierung
Validierung
Fertig
Typischer Ablauf der High-Level-Synthese
Eingabe der Spezifikation
Berechnung einer Allokation, Ablaufplanung
und Bindung
Ausgabe des Datenpfads Ausgabe des Kontrollpfads
Prozessorsynthese (1)
Aufgabe: Fensterhebermotor bauen
Software entwerfen
Prozessor entwerfen
Fertig!
Mechanische Komponenten entwerfen
Elektronische Komponenten entwerfen
Software ist in der Regel zuerst da!
Prozessor muss zur Software passen!
CoM
et
Prozessorsynthese (2)
Übersetzungswerkzeuge
Spezifikation des Prozessormodells
Assembler
Compiler
Anpassung des
Simulators Binärcode der
Anwen - dung
Software Ergebnisse
des Profilings
Typischer Ablauf der Software-Synthese
Eingabe des Hochsprachenprogramms
Berechnung einer Ablaufplanung,
Zielcodeauswahl und Registerallokation
Ausgabe des Binärcodes
Was soll behandelt werden in der VL?
Systemspezifikation
Validierung
HW/SW-Partitionierung
Hardwaresynthese
Hardwareentwurf
Validierung
Softwaresynthese
Softwareentwurf
Validierung
Validierung
Fertig
Modellierungs-möglichkeiten für
eingebettete Systeme
Implementierungsvarianten für eingebettete Systeme: ASICs,
verschiedene Prozessorarchitekturen, FPGAs, Softcores, …
High-Level-Synthese, Architektursynthese
Synthesecompiler Compiler: Optimierung (Standardoptimierungen / Zielarchitekturabhängige
Optimierungen), Retargierbare Compiler
VHDL
Literatur
J. Teich: „Digitale Hardware/Software-Systeme – Synthese und Optimierung“, Springer, 1997. R. Gessler, T. Mahr: „Hardware-Software-Codesign – Entwicklung flexibler Mikroprozessor-FPGA-Hochleistungssysteme“, Vieweg, 2007. A. Jentsch: „Modeling Embedded Systems and SOC‘s – Concurrency and Time in Models of Computation“, Morgan Kaufmann, 2004. Rajesh Kumar Gupta: „Co-Synthesis of Hardware and Software for Digital Embedded Systems“, Kluwer Academic Publishers, 1995. Daniel D. Gajski, Frank Vahid, Sinjiv Narayan, Jie Gong: „Specification and Design of Embedded Systems“, Prentice Hall, 1994. D. Gajski, S. Abdi, A. Gerstlauer, G. Schirner: “Embedded System Design – Modeling, Synthesis and Verification”, Springer, 2009.