Eingebettete Systeme
Vorlesung: Eingebettete Systeme
Allgemein
Eingebettete Systeme (engl. Embedded Systems, ES) sind informationsverarbeitende Systeme, die in ein Produkt integriert sind. Sie übernehmen im Wesentlichen Aufgaben zur Steuerung und Überwachung von Komponenten dieses Produktes, sowie häufig auch signalverarbeitende Aufgaben. Die Anwendungsbereiche eingebetteter Systeme in der Praxis sind entsprechend weit gestreut: von der Maschinensteuerung bis zum Handy, vom DVD-Player bis zum GPS-Navigationssystem.
Überblick
In dieser Vorlesung werden wir uns zunächst mit grundlegenden Modellen und Architekturen für eingebettete Systeme beschäftigen. Dazu gehören neben State Machines, Petri-Netzen und Datenflußgraphen beispielsweise auch Grundlagen über allgemeine reaktive Systeme.
Ein weiterer Abschnitt der Vorlesung wird sich um Zieltechnologien für eingebettete Systeme drehen, sowohl auf der Hardwareseite - etwa VLSI-Chips, Field-Programmable Gate Arrays (FGPAs), System-on-a-Chip (SoC) oder Microcontroller - als auch auf der Softwareseite - etwa hardwareorientierte Programmierung oder Echtzeitbetriebssysteme.
Im zweiten großen Abschnitt der Vorlesung werden schließlich Techniken zur Synthese von eingebetteten Systemen, also des rechnergestützten Entwurfs und der Optimierung, behandelt.
Aus dem Inhalt
Modellierung engebetteter Systeme
- Einführung
- Modelle eingebetteter Systeme
- Einführendes Beispiel zur Modellierung
- Petri-Netze
- Zustandsorientierte Modelle
- Aktivitätsorientierte Modelle
- Strukturorientierte Modelle
- Heterogene Modelle
- Implementierung eingebetteter Systeme
- Implementierungsplattformen im Überblick
- ASIC Designzyklus
- ASIPs
- Microcontroller
- Echtzeitbetriebssysteme
- Fundamentale Probleme bei der Konstruktion eingebetteter Systeme
Verifikation eingebetteter Systeme
- Motivation und Techniken
- Linear Zeit Logik
- Baum Zeit Logik
Ablaufplanung (Scheduling)
- Statische Ablaufplanung
- Statische Ablaufplanung ohne Ressourcenbeschränkung
- Ablaufplanung mit Zeitbeschränkung
- Ablaufplanung mit Ressourcenbeschränkung
- Periodische Ablaufplanung
- Problemstellung
- Sequentielle periodische Ablaufplanung
- Retiming
- Überlappende, periodische Ablaufplanung
- Periodische Ablaufplanung unter Ressourcenbeschränkung
- Dynamische Ablaufplanung
- Problemstellung
- Nichtpräemptive dynamische Planung
- Präemtive dynamische Planung
- Präemptive periodische Planung
Architektursynthese
- Bindung
- Das Problem der Bindung
- Kostenminimale Bindung
- Kostenminimale Bindung mit Ablaufplanung
- Bindung unter periodischer Ablaufplanung
- Minimierung der Zahl der Register
- Hardwaresynthese
- Direkte Ableitung einer Implementierung
- Zur Wahl der Taktperiode
- Optimierungsverfahren zur Hardwaresynthese
- Besonderheiten bei der Hardwaresynthese
- Erweiterung von Listscheduling
- Zeitschlitzmodelle
- Flußmodelle
Softwaresynthese
- Übersetzer
- Phasen eines Übersetzers
- Zwischencode: 3-Adresscode
- Zwischencode als Kontrollflußgraph
- Grundblöcke und Grundblockgraph
- Registervergabe und Registerbindung
- Lebensspannen
- Lokale Registervergabe durch Graphfärbung
- Globale Registervergabe
- Codegenerierung
- Problemstellung
- Codeselektion