Zusammenfassung
Transcription
Zusammenfassung
Zusammenfassung Hw-Sw-Co-Design Hw-Sw-CO-Design embedded systems Spezialprozessoren Prozessor, Compiler, Codegenerierung Systementwurf Systemsynthese, Partitionierung 1 Inhalt der Vorlesung 9 ¾ Zielarchitekturen für Hw/Sw-Systeme 9 y - Modelle und Methoden ¾ Systementwurf 9 ¾ Compiler und Codegenerierung 9 ¾ Partitionierung 9 ¾ Schätzung der Entwurfsqualität 9 ¾ Weiterführende Codesign-Themen Codesign Themen – Interface- und Kommunikationssynthese – Co-Simulation, Co-Emulation und Rapid Prototyping Zielarchitekturen General-purpose processors • CISC (complex instruction set) • RISC (reduced instruction set) Performance • Microcontroller • DSPs (digital signal processors) • Application-specific instruction set processors (ASIPs) Programmable g hardware Flexibility Power consumption • FPGA (field-programmable gate arrays) Application-specific integrated circuits (ASICs) 2 Systemaufbau ¾ System-on-a-Chip (SoC) ¾ Board, multi-board multi board Systeme system bus Codegenerierung Syntaxbaum, DAG 3-Adress Code ExpressionDAG (Heuristik) Expressiontree DAG (optimaler Code) Registervergabe - global - Schleifenzähler - Graphfärbung Grundblock, CFG Maschinenmodell “RISC” einfacher Codegenerator Maschinenmodell “CISC” Zielcode 3 Codegenerierung/optimierung Codeoptimierung peephole lokal Codegenerierung für Spezialprozessoren p p global Codekompression Adressrecheneinheiten, Adresszuweisung retargetable Compiler heterogene Registersätze, irreguläre Datenpfade Prozessormodelle Baumübersetzungsschemata Systementwurf Spezifikation Systemsynthese Schätzung I/F-Synthese y HW-Synthese y SW-Synthese y Maschinencode Netzlisten 4 Systempartitionierung allgemeine Verfahren Hw/Sw Partitionierung heuristisch exakt ILP konstruktiv greedy Sw-orientiert iterativ Enumeration Hw-orientiert Kernighan-Lin Random mapping Simulated Annealing Hierarchical clustering Evolutionäre Algorithmen Schätzung Qualitätsmaße Parameter Exaktheit Performance Treue Taktperiode, Latenz, Ausführungszeit, Bitrate Schätzmethoden Hardware max.Operatordelay, Clockschlupf, FSMD Modell Kosten Chipfläche, Speicher Software WCET, Programmpfadanalyse, Modellierung der Zielarchitektur 5 Interfacesynthese Systematisierung Modellierung SW-Sicht Modell HW-Sicht Verfeinerung Effizienz, Interoperabilität, Vertrauen Datenfluss, FU, Task Standards SLD (System-Level Data-Types) OCB SLIF Verhaltens-Dokumentation, Binden von Kommunikation an Implementation Bus-Wrapper, Virtuell Component Interface, Emulation und Rapid Prototyping Emulation Rapid Prototyping System-SW FPGA-Typ System Module Prozessoren ASICS FPGA M Memory Beipielsysteme Aptix Spyder Verbindung FPGA, FPICS Raptor 6 Abstraktionsebenen Verhalten System Modul Bl k Block Architektur HW SW L ik Logik Struktur Architektursynthese 1 * 2 3 * 4 - * 5 * 6 * 8 + 10 * 7 + 9 < 11 - 7 RTL Struktur: Multiplexbasiert Rechenwerk Steuerwerk Registerdatei MUX * MUX MUX FSM ALU U ALU U MUX RTL Struktur: Busorientiert Rechenwerk Steuerwerk Registerdatei Operandenbus * FSM ALU U ALU U Ergebnisbus 8 Zustandsautomat Zeit 0 * 1 * 2 Zeit 1 * 3 * 6 - 4 * 7 + Zeit 2 8 * 10 < 11 Zeit 3 5 + 9 - Zeit 4 reset 1,2,10 x0 reset x1 reset x3 5,9 reset 3,6,11 reset x2 4,7,8 Beispiel Armbanduhr TIMER ll/change_item 24h ul lr AM, PM TIME UPDATE l lr ul lr/update ur/light ll lr/start_stop STOP WATCH ll ALARM lr/update ur ur lr lr ll ALARM update ur/stopp_bell ll/change_item ul CHIME ul ALARM UPDATE lr/update 9 Strukturorientierte Modelle CODEC CM FC BC GC BM PM PM System R1 R2 & 1D Q C1 ALU Logik Architektur (RTL) Modulebene USER Software Source Code Zi lh d Zielhardware Simulator Debugger Binary Code OS Compiler FPGA Flash Debugger microprocessor RAM Entwicklungsplattform 10 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 – Sicherstellen der Echtzeitfähigkeit des Betriebsystems • bei einfachen Laufzeitsystemen über Interrupt des Prozessors • Echtzeitbetriebsystem bei größeren Systemen Echtzeitbetriebsysteme (engl. real-time operating system (RTOS)) Klassifikation: – E Echtzeitbetriebssystemkerne ht itb t i b t k ((engl.l real-time l ti kkernels), l ) z.B. B VRTX, RTEMS – Kommerzielle Betriebssysteme mit Echtzeiterweiterungen: Hierzu gehören beispielsweise Erweiterungen von UNIX, RT-Linux. – Systeme aus der Forschung 11 Schnittstellen Aufgaben eines Gerätetreibers: Anwendung Betriebssystem Device Driver – Initialisierung • beim Betriebssystem anmelden • Unterbechungsbehandlung init. • Speicher allozieren • Hardware initialisieren – Datenzugriff • Datenaustausch zwischen Anwendung und Hardware (z.B. memory mapped, DMA) • Protokollverarbeitung – Unterbrechungsbehandlung Hardware Schnittstellen ¾ Softwaregenerierung ist Teil heutiger Entwicklungsumgebungen, z.B. Aisys DriveWay Stenkil MakeApp DriveWay, MakeApp, Intel ApBuidler ApBuidler, Motorola MCUnit, CoWare, … – Device-Eigenschaften sind überlicherweise in Datenbanken gespeichert auf denen die Softwaregenerierung aufsetzt. – Spezifische Treiber zwischen Hardware- und Softwarekomponenten Hardware Software werden synthetisiert. Device Glue Logic Driver 12 Prozessverwaltung ¾ Wesentliche Aufgaben der Prozessverwaltung: – Ausführung quasiparalleler Aufgaben auf einem Prozessor. 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 i run end_cycle dispatch preemption signal activate ready idle resume 13 Grundbegriffe ¾ Echtzeitsysteme – Hart: Ein Task heißt hart, falls eine Abarbeitung nach seiner Deadline katastrophale Auswirkungen auf das Gesamtsystem hat. – Weich: Ein Task heißt weich, falls das Verpassen seiner Deadline die Leistungsfähigkeit des Gesamtsystems herabsetzt. – Ein Ablaufplan heißt zulässig, falls alle Tasks innerhalb ihrer Zeitbedingungen abgearbeitet werden. – Eine Menge g von Tasks heißt ablaufbar,, falls ein zulässiger g Ablaufplan existiert. Zeitbedingungen – Tasks: J{J1, J2, ...} – Ankunftszeit ai oder ri: Task ist bereit zur Ausführung – Berechnungszeit Ci : Zeit zur Ausführung ohne Unterbrechung ( (WCET) ) – Deadline di : Task muss vorher ausgeführt sein, di ≥ ri + Ci – Startzeit si: Ausführung startet – Endzeit fi: Abarbeitung des Tasks ist beendet 14 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 (analogen) Schnittstellen digitalen Signalprozessoren Speicher Trends ¾ Kommunikation spielt in eingebetteten Systemen eine zunehmende Rolle – – – – – – – – verteilte Objekte DCOM CORBA CORBA, Firewire, Bluetooth, USB, IrDA, Jini, TCP/IP,, … 15