Zusammenfassung - Informatik - FB3 - Uni Bremen
Transcription
Zusammenfassung - Informatik - FB3 - Uni Bremen
Zusammenfassung H S C D i Hw-Sw-Co-Design WS 2008/09 Rolf Drechsler Informatik, Universität Bremen Nach: Jürgen Teich, Universität Erlangen Hw-Sw-CO-Design embedded systems Spezialprozessoren Prozessor, Compiler, C d Codegenerierung i Systementwurf Systemsynthese, Partitionierung Inhalt der Vorlesung 9 • Zielarchitekturen für Hw/Sw‐Systeme 9 • Systementwurf Systementwurf ‐ Modelle und Methoden Modelle und Methoden 9 • Compiler und Codegenerierung ii i 9 • Partitionierung 9 • Schätzung der Entwurfsqualität 9 • Weiterführende Codesign‐Themen – Interface‐ und Kommunikationssynthese y – Co‐Simulation, Co‐Emulation und Rapid Prototyping Zielarchitekturen General-purpose G l processors • CISC (complex instruction set) • RISC (reduced instruction set) Performance • Microcontroller • DSPs ((digital g signal g processors) p ) • Application-specific instruction set processors (ASIPs) Programmable hardware • FPGA (field (field-programmable programmable gate arrays) Application-specific Application specific integrated circuits (ASICs) Flexibility Power P consumption Systemaufbau • System‐on‐a‐Chip (SoC) • Board, multi‐board Systeme system bus Codegenerierung Syntaxbaum, DAG 3-Adress Code ExpressionDAG (Heuristik) Expressiontree DAG (optimaler Code) Registervergabe - global - Schleifenzähler - Graphfärbung Zielcode G dbl k CFG Grundblock, Maschinenmodell “RISC” einfacher i f h Codegenerator M Maschinenmodell hi d ll “CISC” Codegenerierung/optimierung Codeoptimierung Codegenerierung für Spezialprozessoren peephole lokal global retargetable Compiler Codekompression Adressrecheneinheiten, Adresszuweisung Prozessormodelle Baumübersetzungsschemata heterogene g Registersätze, g , irreguläre Datenpfade Systementwurf Spezifikation Schätzung Systemsynthese SW-Synthese Maschinencode I/F-Synthese HW-Synthese Netzlisten Systempartitionierung Hw/Sw Partitionierung allgemeine Verfahren ILP greedy g y heuristisch exakt k konstruktiv ki Sw orientiert Sw-orientiert i iterativ i Enumeration Hw-orientiert Kernighan-Lin Random mapping pp g Hierarchical clustering Simulated Annealing Evolutionäre Algorithmen Schätzung Qualitätsmaße Parameter Exaktheit Performance Treue Taktperiode, Latenz, Ausführungszeit, Bitrate Schätzmethoden Hardware max.Operatordelay, p y Clockschlupf, FSMD Modell Software WCET, Programmpfadanalyse, Modellierung der Zielarchitektur Kosten Chipfläche, Speicher Interfacesynthese Systematisierung Modellierung SW-Sicht Modell HW-Sicht Effizienz, Interoperabilität, Vertrauen Verfeinerung Datenfluss, FU, Task Standards SLD (System-Level (System Level Data Data-Types) Types) SLIF Verhaltens-Dokumentation,, Binden von Kommunikation an Implementation OCB Bus-Wrapper, Virtuell Component Interface, Emulation und Rapid Prototyping Emulation Rapid Prototyping System-SW FPGA-Typ System Module Prozessoren ASICS FPGA Memory Beipielsysteme Aptix p Spyder py Raptor p Verbindung FPGA, FPICS Abstraktionsebenen Verhalten System Modul Block SW Architektur HW Logik Struktur Architektursynthese 1 * 2 3 * 4 - * 5 - * 6 * 8 + 10 * 7 + 9 < 11 RTL Struktur: Multiplexbasiert Rechenwerk St Steuerwerk k Registerdatei MUX * MUX MUX ALU ALU MUX FSM RTL Struktur: Busorientiert Rechenwerk St Steuerwerk k Registerdatei Operandenbus * ALU ALU Ergebnisbus FSM reset Zustandsautomat 1,2,10 x0 reset x1 reset x3 5,9 Zeit 0 * 2 * 1 Zeit 1 * 6 * 3 + Zeit 2 - 4 * 7 * 8 Zeit 3 5 Zeit 4 - + 9 10 < 11 reset 3,6,11 reset x2 4,7,8 Beispiel Armbanduhr TIMER ll/change_item 24h lr ul AM, PM l lr TIME UPDAT E ul lr/update ur/light ll lr/start_stop STOP WATC H ll ALARM lr/update ur ur lr lr ll ALARM update ll/change_item ul CHIME ul ALAR M UPDAT E lr/update ur/stop_bell Strukturorientierte Modelle CODEC CM FC BC GC BM PM PM System R1 R2 & 1D Q ALU Architektur (RTL) C1 Logik Modulebene USER Zielhard are Zielhardware Software Source Code Simulator Debugger Binary Bi Code OS Compiler FPGA Flash Debugger Entwicklungsplattform microprocessor RAM Betriebsystem • Betriebsystem – Dient der dynamischen Verwaltung der Ressourcen eines Rechners. • Speicherverwaltung • Prozessverwaltung • Verwaltung der Ein‐/Ausgabe (Gerätetreiber) • Sicherheits‐ und Schutzfunktionen – In eingebetteten Systemen ohne Dateiverwaltung I i b tt t S t h D t i lt – Sicherstellen der Echtzeitfähigkeit des Betriebsystems • bei einfachen Laufzeitsystemen über Interrupt des Prozessors bei einfachen Laufzeitsystemen über Interrupt des Prozessors • Echtzeitbetriebsystem bei größeren Systemen Echtzeitbetriebsysteme (engl. real‐time operating system (RTOS)) Klassifikation: – Echtzeitbetriebssystemkerne (engl. real‐time kernels), z.B. VRTX, RTEMS – Kommerzielle Betriebssysteme mit Echtzeiterweiterungen: Hierzu gehören beispielsweise Erweiterungen von UNIX, RT‐Linux. – Systeme aus der Forschung Schnittstellen Anwendung Betriebssystem Device Driver i i Hardware Aufgaben eines Gerätetreibers: – Initialisierung • beim Betriebssystem anmelden • Unterbechungsbehandlung init. • Speicher allozieren S i h ll i • Hardware initialisieren – Datenzugriff • Datenaustausch zwischen Anwendung und Hardware (z.B. memory mapped, DMA) • Protokollverarbeitung – Unterbrechungsbehandlung Schnittstellen • Softwaregenerierung ist Teil heutiger Entwicklungsumgebungen, z.B. Aisys DriveWay, Stenkil MakeApp Intel ApB idler Motorola MCUnit CoWare MakeApp, Intel ApBuidler, Motorola MCUnit, CoWare, … – Device‐Eigenschaften sind überlicherweise in Datenbanken gespeichert auf denen die Softwaregenerierung aufsetzt gespeichert auf denen die Softwaregenerierung aufsetzt. – Spezifische Treiber zwischen Hardware‐ und zwischen Hardware und Hardware Software Softwarekomponenten werden synthetisiert. Device Gl Logic Glue L i Driver Prozessverwaltung • Wesentliche Aufgaben der Prozessverwaltung: – Ausführung quasiparalleler Aufgaben auf einem Prozessor. – Gemeinsame Nutzung von Ressourcen. – Einhaltung von Deadlines, Minimierung von Wartezeiten, Fairness bei der Ausführung. – Aufgaben können eventuell (dynamisch) während des Programmablaufs generiert werden. Betriebssysteme • Minimale Prozesszustände: terminate TIMER wait wait run end_cycle dispatch preemption signal activate readyy resume idle Grundbegriffe • Echtzeitsysteme – Hart: Ein Task heißt hart, falls eine Abarbeitung nach seiner Deadline katastrophale Auswirkungen auf das Gesamtsystem hat. – Weich: h Ein Task heißt weich, falls das Verpassen seiner kh ß h f ll d Deadline die Leistungsfähigkeit des Gesamtsystems herabsetzt. herabsetzt – Ein Ablaufplan heißt zulässig, falls alle Tasks innerhalb ihrer Zeitbedingungen abgearbeitet werden. Zeitbedingungen abgearbeitet werden. – Eine Menge von Tasks heißt ablaufbar, falls ein zulässiger p Ablaufplan existiert. Zeitbedingungen – – – – – – Tasks: J{J1, J2, ...} Ankunftszeit ai oder r Ankunftszeit a oder ri: Task ist bereit zur Ausführung : Task ist bereit zur Ausführung Berechnungszeit Ci : Zeit zur Ausführung ohne Unterbrechung (WCET) Deadline di : Task muss vorher ausgeführt sein, d Deadline d : Task muss vorher ausgeführt sein di ≥ ri + C + Ci Startzeit si: Ausführung startet Endzeit fi: Abarbeitung des Tasks ist beendet Endzeit f : Abarbeitung des Tasks ist beendet Trends > 500k transistors 1 - 0.8 μ 33 mHz 1989 2+M transistors 0.8 - 0.5 μ 75 - 100 mHz 1993 5+M transistors 0.5 - 0.35 μ 133 - 167 mHz 1995 22+M transistors 0.25 - 0.18 μ 500 - 600 mHz 1999 • Eingebettete CPU‐Cores werden kleiner • Hohe Rechenleistung durch höhere Taktrate, tiefere Pipelines, Verzweigungsvorhersage,... • Tiefere Integration von CPU‐Cores mit – – – – programmierbarer Hardware b d (analogen) Schnittstellen digitalen Signalprozessoren digitalen Signalprozessoren Speicher Trends • Kommunikation spielt in eingebetteten Systemen eine zunehmende Rolle – verteilte Objekte DCOM CORBA, t ilt Obj kt DCOM CORBA – Firewire, – Bluetooth, Bl h – USB, – IrDA, – Jini, – TCP/IP, –…