Hardware/Software-Codesign - Kapitel 1 - Einführung M. Schölzel
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Entwicklungsgeschichte Job User User Ergebnis Großrechner Mainframes / Großrechner Desktops Physisches System Sensoren Aktuatoren Eingebettete Systeme Prozessrechner Finden Eingang in viele Bereiche… Zuverlässigkeit nimmt zu Erster Mikroprozessor Intel 4004 Logik auf einem Chip integriert 1950 1960 1970 1980 1990 2000 2010
Beispiel für diesen Trend Komet Küchenmaschine anno 1958 Küchenmaschine anno 2010 • Rührwerk • 1 Schalter • Rührwerk, Waage, Heizplatte, Uhr • Drehzahl über Getriebe wählbar • 15 Schalter/Knöpfe (teilweise Mehrfachbelegung) • Kaum elektronische Bauteile • 18 LEDs • Digitalanzeige • Platine mit Prozessor 3
Eingebettete Elektronik ist Überall Mikrocontroller Mikroprozessor Mehrkernprozessor 80 bis 100 Prozessoren Fensterhebermotor Regelung durch Mikroprozessor
Schematische Darstellung Eingebettetes System Kopplung Standard- Speicher ASIC komponente Prozessor Prozessor Eingebettetes System Systemumgebung
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* Digitale Digitale Analog-Digital- Signale Digitales Signale Digital-Analog- Wandler Verarbeitungssystem Wandler Analoge Analoge Signale Signale Sensoren Regelstrecke Aktoren Physical-System* *Lee, Edward. Cyber Physical Systems: Design Challenges. University of California, Berkeley Technical Report No. UCB/EECS-2008-8.
Entwurfsprozesses für Cyber-Physical-System Gesamtsystems Entwurf mechanischer Entwurf elektronischer Komponenten Komponenten Formales Modell der Formales Modell der mechanischen Komponenten elektronischen Komponenten Testen mechanischer Komponenten Testen elektronischer Komponenten Gesamtsystem
Motivation für HW/SW-Codesign Freiheitsgrade beim Entwurf elektronischer Komponenten Application Specific Circuit (ASIC) … Standardprozessor + Software Gründe für Implementierung in Software: Entwurfszeit, Flexibilität, Entwicklungskosten. Gründe für Implementierung in Hardware: Verarbeitungsgeschwindigkeit, Stromverbrauch, Platzverbrauch, (Fertigungskosten).
Verarbeitungsgeschwindigkeit hoch • 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 niedrig werden Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Entwurfszeit hoch • 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- niedrig bungssprachen Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Entwicklungskosten hoch • Korreliert mit Entwurfszeit • Korreliert mit Entwurfszeit niedrig Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Flexibilität hoch • Auch nach der Fertigung noch Änderungen an der Software möglich • Einmal gefertigt nicht mehr änderbar niedrig Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Platz-/Stromverbrauch hoch • Programmgesteuerte Universalarchitektur verbraucht Platz und Strom für Programmverarbeitung • Längere Verarbeitungszeit • Überflüssige Hardware • Auf das Problem zugeschnittene Hardwarearchitektur und Technologie • Spezialisierte Hardware - niedrig komponenten Umsetzung als ASIC Umsetzung mit Standardprozessor und Software
Gesamtkosten pro Stück hoch • Bei geringer Stückzahl • Bei hoher Stückzahl • Bei hoher Stückzahl • Bei geringer Stückzahl niedrig Umsetzung als ASIC Umsetzung mit Standardprozessor und Software Beispiel: Fixkosten: 2.100.000€ Fixkosten: 750.000€ Herstellungskosten pro Stück 2,50€ Kaufpreis pro Stück: 3,00€ 2.100.000 2, 5 x 750.000 3 x 1.350.000 x (3 2, 5) 2.700.000 x
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 Co-Design is a simultaneous consideration of hardware and software within the design process. Lockheed Martin 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
Aspekte des HW/SW Codesign: Partitionierung Informale Spezifikation (Beschreibung der Funktionalität) Formale Spezifikation Betrachtung unterschiedlicher HW/SW Partitionierungen für die Funktionen Fi im System. F4 F5 F1 F2 F4 F5 F1 F2 F4 F1 F3 F6 F3 F6 F3 F6 F2 F5 HW SW HW SW HW SW Variante 1 Variante 2 Variante k
Aspekte des HW/SW Codesign: High- Level-Synthese F4 F5 K1 F1 K2 F2 F4 F5 K1 F1 K2 F2 F4 K1 F1 F3 F6 K3 F3 F6 K3 F3 K4 F6 F2 K5 F5 HW SW HW SW HW SW Variante 1 Variante 2 Variante k Abbilden der Funktionalität, die in Form einer Hochsprachenbeschreibung (Programmiersprache, Graphmodell) auf eine Hardwareimplementierung (Struktur) Dabei Optimierung der Hardware für die geforderte Funktionalität
Aspekte des HW/SW Codesign: HW für SW optimieren F4 F5 K1 F1 K2 F2 F4 F5 K1 F1 K2 F2 F4 K1 F1 F3 F6 K3 F3 F6 K3 F3 K4 F6 P1 P2 F2 P2 K5 F5 P1 HW SW HW SW HW SW Variante 1 Variante 2 Variante k 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 …
Aspekte des HW/SW Codesign: SW für HW optimieren F4 F5 K1 F1 K2 F2 F4 F5 K1 F1 K2 F2 F4 K1 F1 F3 F6 K3 F3 F6 K3 F3 K4 F6 P1 P2 F2 P2 K5 F5 P1 HW SW HW SW HW SW Variante 1 Variante 2 Variante k 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
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 Komplexität Design-Gap Komplexität Beherrschbare Komplexität Hardware mit Entwurfswerkzeugen Jahr Eine Lösungsstrategie: Abstraktion
Systematisierung Systementwurf Abstraktion Sichten Granularität der Modellierung: Beschreiben unterschiedliche Systemebene (Prozessoren, Speicher, Busse, …) Modellierungsarten: Architektureben (Register, ALU, …) Verhalten Logikebene (Gatter, Flip-Flops, …) Struktur Schalterebene (Physische Sicht) Verfeinerung ( ) ist die Verringerung der Synthese ( ) ist die Überführung von Abstraktion Verhalten in Struktur bzw. Struktur in Physische Sicht System Prozessor Verhalten Logik Struktur Schalter Physisch Abstraktionen / Ebenen nach Gajski (Y-Chart)
Typische Modelle im Entwurfsablauf Prozessbasierte Modelle (Kommunizierende Prozesse, DFGs), Zustandsbasierte Systeme (Petrinetze, State Charts) Prozessoren, ASICs, Speicher, Busse, … System ALUs, Register, Prozessor Multiplizierer, … Verhalten Logik Struktur Programmiersprachen, CFG, Schalter DAGs zur Modellierung sequentiellen Verhaltens Gatter (NAND, NOR), Flip-Flops Transistoren, Netzlisten Zustandsautomaten zur Modellierung sequentieller Logik, Aussagenlogische Formeln, Transistorlayout Wahrheitswertetabellen zur Physisch Modellierung Boolescher Funktionen Spannungs- Gatterlayout /Stromgleichungen Layout der Module Physische Aufteilung des Chips
Einbeziehung der Software System Software Hardware Prozessor Verhalten Logik Struktur Schalter System Modul Architektur Logik Block Physisch Abstraktionen / Ebenen nach J. Teich Abstraktionen / Ebenen nach Gajski (Doppeldach) (Y-Chart)
Typische Modelle Prozessbasierte Modelle (Kommunizierende Prozesse, DFGs) Zustandsbasierte Modelle (Petrinetze, State Charts) Prozessoren, ASICs, ASIPs, Busse, Speicher,… Programmiersprachen, Software Hardware Hardwarebeschreibungssprachen, Algebraische Spezifikation DAGs, … System Boolesche Funktionen, Graph-basierte Modelle, DAGs, Zustandsautomaten,… CFG, 3-Address-Code Modul Architektur Logik Block Assembler- /Maschinenprogramm ALUs, Register, Multiplexer,… Imperatives Programm Gatter, Flip-Flops, … Abstraktionen / Ebenen nach J. Teich
Typischer Entwurfsablauf Systemspezifikation Validierung HW/SW-Partitionierung Hardwareentwurf Softwareentwurf Validierung Validierung Hardwaresynthese Softwaresynthese 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) Fertig! Aufgabe: Fensterhebermotor bauen CoMet Mechanische Elektronische Komponenten entwerfen Komponenten entwerfen Prozessor entwerfen Prozessor muss zur Software entwerfen Software passen! Software ist in der Regel zuerst da!
Prozessorsynthese (2) Spezifikation des Prozessormodells Assembler Anpassung des Übersetzungswerkzeuge Binärcode Simulators Ergebnisse der Software des Anwen - Compiler Profilings dung
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? Modellierungs- Systemspezifikation möglichkeiten für eingebettete Systeme Validierung Implementierungsvarianten für eingebettete Systeme: ASICs, verschiedene Prozessorarchitekturen, HW/SW-Partitionierung FPGAs, Softcores, … Hardwareentwurf Softwareentwurf Validierung Validierung VHDL Hardwaresynthese Softwaresynthese Synthesecompiler Compiler: Optimierung Validierung (Standardoptimierungen / Zielarchitekturabhängige High-Level-Synthese, Optimierungen), Architektursynthese Fertig Retargierbare Compiler
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.
Sie können auch lesen