Zusammenfassung - Informatik - FB3
Transcription
Zusammenfassung - Informatik - FB3
Hw-Sw-Co-Design Zusammenfassung - komple x e m ge kt e r r - ko m a s in Systemsynthese, Partitionierung Systementwurf Prozessor, Compiler, Codegenerierung Spezialprozessoren embedded systems Hw-Sw-CO-Design t rrec ordinated - koordiniert mplex n c ur r e nt -n e be nlä u fig 9 – Interface- und Kommunikationssynthese – Co-Simulation, Co-Emulation und Rapid Prototyping ¾ Weiterführende Codesign-Themen ¾ Schätzung der Entwurfsqualität ¾ Partitionierung ¾ Compiler und Codegenerierung ¾ Systementwurf - Modelle und Methoden 9 9 9 9 ¾ Zielarchitekturen für Hw/Sw-Systeme 9 Inhalt der Vorlesung Performance Application-specific integrated circuits (ASICs) • FPGA (field-programmable gate arrays) Programmable hardware • Microcontroller • DSPs (digital signal processors) • Application-specific instruction set processors (ASIPs) General-purpose processors • CISC (complex instruction set) • RISC (reduced instruction set) Zielarchitekturen Power consumption Flexibility ¾ Board, multi-board Systeme ¾ System-on-a-Chip (SoC) Systemaufbau system bus Expressiontree DAG (optimaler Code) Syntaxbaum, DAG Zielcode - Schleifenzähler - Graphfärbung Registervergabe - global ExpressionDAG (Heuristik) Maschinenmodell “RISC” Grundblock, CFG Maschinenmodell “CISC” einfacher Codegenerator 3-Adress Code Codegenerierung lokal global Baumübersetzungsschemata Prozessormodelle retargetable Compiler peephole Codeoptimierung heterogene Registersätze, irreguläre Datenpfade Adressrecheneinheiten, Adresszuweisung Codekompression Codegenerierung für Spezialprozessoren Codegenerierung/optimierung Maschinencode SW-Synthese I/F-Synthese Systemsynthese Spezifikation HW-Synthese Schätzung Netzlisten Systementwurf Hierarchical clustering iterativ Evolutionäre Algorithmen Hw-orientiert Sw-orientiert greedy Hw/Sw Partitionierung Simulated Annealing Kernighan-Lin heuristisch konstruktiv Random mapping Enumeration ILP exakt allgemeine Verfahren Systempartitionierung Treue Schätzmethoden max.Operatordelay, Clockschlupf, FSMD Modell Hardware Exaktheit Parameter Taktperiode, Latenz, Ausführungszeit, Bitrate WCET, Programmpfadanalyse, Modellierung der Zielarchitektur Software Qualitätsmaße Performance Schätzung Chipfläche, Speicher Kosten Standards HW-Sicht Verhaltens-Dokumentation, Binden von Kommunikation an Implementation SLIF SW-Sicht Modellierung Bus-Wrapper, Virtuell Component Interface, OCB Datenfluss, FU, Task Verfeinerung SLD (System-Level Data-Types) Effizienz, Interoperabilität, Vertrauen Modell Systematisierung Interfacesynthese Aptix FPGA-Typ Spyder Beipielsysteme System Emulation Raptor System-SW Prozessoren ASICS FPGA Memory Module FPGA, FPICS Verbindung Rapid Prototyping Emulation und Rapid Prototyping Block SW Modul System HW Architektur Abstraktionsebenen Struktur Logik Verhalten 1 2 * - * 3 4 5 * - * * 7 6 8 9 * + Architektursynthese < + 11 10 ALU ALU * MUX MUX MUX MUX Registerdatei Rechenwerk FSM Steuerwerk RTL Struktur: Multiplexbasiert * ALU Ergebnisbus ALU Operandenbus Registerdatei Rechenwerk FSM Steuerwerk RTL Struktur: Busorientiert Zeit 4 Zeit 3 Zeit 2 Zeit 1 Zeit 0 - x0 x3 1,2,10 5,9 reset reset reset x2 x1 reset * 7 4 - * 6 2 * 3 * 5 * 1 4,7,8 reset 3,6,11 + 9 * 8 Zustandsautomat 10 < 11 + ALARM 24h TIMER lr lr ur CHIME ul ul ll ALARM update lr/update TIME UPDATE lr/update ALARM UPDATE ll/change_item lr/update lr/start_stop ur ll ul ul STOP WATCH ur/light AM, PM ll lr lr ll/change_item Beispiel Armbanduhr ur/stop_bell R2 Architektur (RTL) ALU R1 PM System GC BC BM FC CM CODEC PM Logik C1 1D Q Strukturorientierte Modelle & Simulator Debugger Entwicklungsplattform Debugger Compiler Software Source Code USER Modulebene microprocessor FPGA Binary Code OS Zielhardware RAM Flash – Dient der dynamischen Verwaltung der Ressourcen eines Rechners. • Speicherverwaltung • Prozeßverwaltung • 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 ¾ Betriebsystem Betriebsystem – 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 (engl. real-time operating system (RTOS)) Klassifikation: Echtzeitbetriebsysteme Hardware Device Driver Betriebssystem Anwendung – Initialisierung • beim Betriebssystem anmelden • Unterbechungsbehandlung init. • Speicher allozieren • Hardware initialisieren – Datenzugriff • Datenaustausch zwischen Anwendung und Hardware (z.B. memory mapped, DMA) • Protokollverarbeitung – Unterbrechungsbehandlung Aufgaben eines Gerätetreibers: Schnittstellen Device Glue Logic Driver – Device-Eigenschaften sind überlicherweise in Datenbanken gespeichert auf denen die Softwaregenerierung aufsetzt. – Spezifische Treiber zwischen Hardware- und Softwarekomponenten Hardware Software werden synthetisiert. ¾ Softwaregenerierung ist Teil heutiger Entwicklungsumgebungen, z.B. Aisys DriveWay, Stenkil MakeApp, Intel ApBuidler, Motorola MCUnit, CoWare, … Schnittstellen – 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. ¾ Wesentliche Aufgaben der Prozessverwaltung: Prozessverwaltung activate signal wait wait wait terminate ready ready preemption dispatch run run ¾ Minimale Prozesszustände: idle idle end_cycle resume Betriebssysteme TIMER – 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 von Tasks heißt ablaufbar, falls ein zulässiger Ablaufplan existiert. ¾ Echtzeitsysteme Grundbegriffe – – – – – – 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 Zeitbedingungen 1993 2+M transistors 0.8 - 0.5 μ 75 - 100 mHz 1995 5+M transistors 0.5 - 0.35 μ 133 - 167 mHz 1999 22+M transistors 0.25 - 0.18 μ 500 - 600 mHz – – – – programmierbarer Hardware (analogen) Schnittstellen digitalen Signalprozessoren Speicher ¾ Eingebettete CPU-Cores werden kleiner ¾ Hohe Rechenleistung durch höhere Taktrate, tiefere Pipelines, Verzweigungsvorhersage,... ¾ Tiefere Integration von CPU-Cores mit 1989 > 500k transistors 1 - 0.8 μ 33 mHz Trends – – – – – – – – verteilte Objekte DCOM CORBA, Firewire, Bluetooth, USB, IrDA, Jini, TCP/IP, … ¾ Kommunikation spielt in eingebetteten Systemen eine zunehmende Rolle Trends