mirror of
https://github.com/2martens/uni.git
synced 2026-05-07 11:56:26 +02:00
459 lines
14 KiB
Markdown
459 lines
14 KiB
Markdown
# Einführung
|
|
|
|
## Anwendungsgebiete
|
|
|
|
* ES werden in unterschiedlichen Bereichen verwendet:
|
|
* Autos
|
|
* Flugzeuge
|
|
* Züge
|
|
* Mobiltelefone
|
|
* Gesundheitssektor
|
|
* Sicherheit
|
|
* TVs
|
|
* Fabriken
|
|
* Intelligente Gebäude
|
|
* Logistik (RFID) - Tracking von Objekten
|
|
* Robotik
|
|
|
|
## Wichtige Eigenschaften
|
|
* dependable
|
|
* Reliability - Probability that system will not fail
|
|
* Maintainability - Probability that failing system can be repaired within certain timeframe
|
|
* Availability - Probability that system is available
|
|
* Safety - System will not cause any harm
|
|
* Security - confidential data remains confidential and authentic communication is guaranteed
|
|
* efficient
|
|
* Energie
|
|
* Laufzeiteffizienz
|
|
* Codegröße
|
|
* Gewicht/Masse der Hardware
|
|
* Kosten
|
|
|
|
ES müssen oftmals Echtzeitbedingungen umsetzen.
|
|
Zwei Arten:
|
|
* harte Bedingungen - Nicht-Einhalten führt zu Katastrophe
|
|
* weiche Bedingungen - alle anderen Zeitbedingungen
|
|
|
|
weitere Eigenschaften
|
|
* reaktiv
|
|
* hybrid - analoge und digitale Bestandteile
|
|
* DUI - dedicated user interface
|
|
|
|
## Herausforderungen im Design von ES
|
|
* Software muss auf Hardware abgestimmt werden
|
|
* ¬funktionale Bedingungen müssen eingehalten werden
|
|
* Echtzeitbedingungen
|
|
* Energieeffizienz
|
|
* Dependability - Verlässlichkeit
|
|
* Zeitmanagement ist eine der größten Herausforderungen
|
|
* Concurrency (Nebenläufigkeit) ist essentiell
|
|
* Kombinieren von Komponenten ist wichtig für Design
|
|
* traditionelle sequentielle Prog.Sprachen sind nicht ideal
|
|
|
|
## Designflow
|
|
|
|
* rounded boxes - stored info
|
|
* rectangles - transformations on data
|
|
* application knowledge
|
|
-> specification
|
|
-> HW components
|
|
-> system software
|
|
=> design repository -> design -> [test]
|
|
| |
|
|
[application mapping]
|
|
* [optimization]
|
|
* [evaluation & validation]
|
|
* [test]
|
|
|
|
* Figure 1.6 page 13
|
|
* unbedingt die raw-Version ansehen hier
|
|
|
|
# Spezifikationen und Modellierung
|
|
|
|
## Bedingungen
|
|
|
|
* Model: Simplification of another entity, which can be a
|
|
physical thing or another model. The model contains exactly those
|
|
characteristics and properties of the modeled entity that are
|
|
relevant for a given task. A model is minimal with respect to a
|
|
task if it does not contain any other characteristics than those
|
|
relevant for the task.
|
|
|
|
Modelle werden in Sprachen beschrieben. Sprachen sollten
|
|
folgende Eigenschaften aufweisen (Wunschliste):
|
|
|
|
* Hierarchie
|
|
* Verhaltshierarchien - enthalten für Beschreibung des Systemverhaltens notwendige Objekte, z.B. Zustände, Events
|
|
* Strukturhierarchien - beschreiben physische Komponenten des Systems
|
|
* Komponenten-basiertes Design - Verhalten des Systems muss von Verhalten der Komponenten ableitbar sein
|
|
* Nebenläufigkeit
|
|
* Synchronisation und Kommunikation
|
|
* Zeitverhalten (timing behavior)
|
|
* elapsed time (vergangene Zeit) seit X
|
|
* Verzögern von Prozessen für spezifizierte Zeit
|
|
* being able to specify timeouts
|
|
* Fähigkeit Deadlines und Schedules zu spezifizieren
|
|
* Zustandorientiertes Verhalten
|
|
* Eventhandling
|
|
* Ausnahmeorientiertes Verhalten
|
|
* Vorhandensein von Programmierelementen
|
|
* Ausführbarkeit
|
|
* Support für Design großer Systeme
|
|
* Support für Anwendungsdomain
|
|
* Lesbarkeit
|
|
* Portabilität und Flexibilität
|
|
* Termination - feasible to identify processes which will terminate from the specification
|
|
* Support für ¬Standard I/O-Devices
|
|
* ¬funktionale Eigenschaften
|
|
* Support für Design von verlässlichen (dependable) Systemen
|
|
* keine Hindernisse für Generierung effizienter Implementierungen
|
|
* angemessenes MoC (Model of Computation)
|
|
|
|
## Models of computation (Berechnungsmodelle)
|
|
|
|
* MoCs definieren:
|
|
* Komponenten
|
|
* Kommunikationsprotokolle
|
|
|
|
Beziehungen zwischen diesen Punkten können in Graphen
|
|
festgehalten werden.
|
|
|
|
Models of Communication:
|
|
* shared memory
|
|
* message passing
|
|
* async message passing - non-blocking communication
|
|
* sync message passing - blocking communication, rendez-vous based communication
|
|
* extended rendez-vous, remote invocation
|
|
|
|
Organisation von Berechnungen innerhalb der Komponenten
|
|
* Von-Neumann Modell
|
|
* discrete event model
|
|
* endliche Automaten
|
|
* Differentialgleichungen
|
|
|
|
Kombinierte Modelle: Tatsächliche Sprachen kombinieren normalerweise ein Kommunikationsmodell mit einer Organisation von Berechnungen innerhalb der Komponenten.
|
|
|
|
Beispiele:
|
|
* StateChart - kombiniert endliche Automaten mit shared memory
|
|
* SDL - kombiniert asynchrones message passing mit endlichen Automaten
|
|
* ADA, CSP - kombinieren von-Neumann mit synchronem message passing
|
|
|
|
Figure 2.7 page 34
|
|
|
|
## Diskrete Event-basierte Sprachen
|
|
|
|
### VHDL
|
|
* kann in die 1980er Jahre zurückverfolgt werden
|
|
* im VHSIC Programm entwickelt (vom DoD)
|
|
* VHSIC hardware description language
|
|
* IEEE standard
|
|
|
|
Elemente:
|
|
* Entitäten
|
|
* Architekturen
|
|
|
|
definieren von Verhalten und Struktur
|
|
|
|
### SystemC
|
|
|
|
* erlaubt Spezifikation von Hardwarestrukturen in Software
|
|
|
|
# Hardware
|
|
|
|
## Input
|
|
|
|
Sensoren:
|
|
* Beschleunigungssensoren
|
|
* Regensensoren
|
|
* Bildsensoren (charge-coupled devices und CMOS)
|
|
* biometrische Sensoren
|
|
* künstliche Augen
|
|
* RFID
|
|
* andere Sensoren
|
|
|
|
Sensoren erzeugen Signale.
|
|
|
|
Diskretisierung von Zeit: Sample-and-hold circuits
|
|
* messen eines Wertes aus dem kontinuierlichen Zeitspektrum
|
|
* gemessener Wert wird für bestimmte Zeitdauer weitergeleitet
|
|
* danach zurück zur Messung des Wertes
|
|
* Output gleicht damit diskreten Werten (gleicher Wert für bestimmte Zeitdauer)
|
|
|
|
Diskretisierung von Werten: A/D Konverter
|
|
* Flash A/D converter
|
|
* large number of comparators
|
|
* each comparator has two inputs (+ and -)
|
|
* if voltage at + larger than at - -> logical 1, otherwise logical 0
|
|
* first comparator returns 1, if h(t) exceeds 3/4 Vref
|
|
* second returns 1, for h(t) > 2/4 Vref
|
|
* third returns 1, for h(t) > 1/4 Vref
|
|
* encoder tries to identify most significant '1'
|
|
* successive appriximation
|
|
|
|
## Processing Units
|
|
|
|
* Energie"verbrauch" ist wichtigste Beschränkung in ES
|
|
|
|
### ASICs (Application-specific circuits)
|
|
* hohe Kosten
|
|
* sehr gute Performance für sehr kleinen Anwendungsbereich
|
|
* keine Flexibilität
|
|
|
|
### Prozessoren
|
|
* Flexibilität
|
|
* Energieeffizienz ist wichtig - Compiler müssen so effizient sein wie möglich
|
|
* müssen nicht kompatibel mit PC-Prozessoren sein
|
|
* Dynamic power management
|
|
* power saving states (idle and sleep)
|
|
* changes between states
|
|
* Dynamic voltage scaling
|
|
* decreasing supply voltage reduces power quadratically
|
|
* only linear increase of runtime of algorithms
|
|
* Code-size efficiency
|
|
* CISC machines (Complex Instruction Set Processors)
|
|
* Kompressionstechniken
|
|
* Laufzeiteffizienz
|
|
|
|
### Reconfigurable Logic
|
|
application areas:
|
|
* fast prototyping
|
|
* low volume applications
|
|
* realtime systems
|
|
|
|
### Memories
|
|
* großer Geschwindigkeitsunterschied zw. Prozessoren und Memories
|
|
* kleinere Memories wichtig, da sie schnellere Zugriffszeiten bieten
|
|
* mehrere kleine Speicher für häufig genutzte Instruktionen und Daten plus ein größerer Speicher für restliche Daten und Instruktionen bieten i.A. höhere Energieeffizienz
|
|
* Scratch Pad memories (SPMs) als Alternative zu Caches
|
|
|
|
## Communication
|
|
* Informationen können durch Kanäle transportiert werden
|
|
* physische Entitäten, die Kommunikation ermöglichen heißen Kommunikationsmedien
|
|
* wichtige solche Medien:
|
|
* drahtlose Medien (Infrarot, RFID)
|
|
* optische Medien (Glasfaser)
|
|
* Kabel
|
|
|
|
### Requirements
|
|
* Echtzeitverhalten
|
|
* Effizienz
|
|
* angemessende Bandbreite und Kommunikationsverzögerung
|
|
* Support für eventbasierte Kommunikation
|
|
* Robustheit
|
|
* Fehlertoleranz
|
|
* Wartbarkeit, Diagnosefähigkeit
|
|
* Datenschutz
|
|
|
|
### Elektrische Robustheit
|
|
|
|
* single-ended signaling
|
|
* single ground wire
|
|
* affected by external noise
|
|
* difficult to establish high-quality ground signals
|
|
* differential signaling
|
|
* two wires for data transport
|
|
* noise can be effectively removed
|
|
* logic value only depends on polarity of voltage between two wires, magnitude can be affected without effect
|
|
* quality of ground wire unimportant
|
|
* no common ground wire required
|
|
* larger throughput than single-ended signaling
|
|
* used in standard Ethernet-based networks
|
|
|
|
### Echtzeitverhalten garantieren
|
|
|
|
* Nutzung von time division multiple access (TDMA)
|
|
* jeder Kommunikationspartner bekommt festen Zeitslot
|
|
* innerhalb dieses Slots darf gesendet werden
|
|
* Zeit wird in Frames unterteilt
|
|
* jedes Frame startet mit Synchronisierung und einem Gap, um dem Sender das ausschalten zu ermöglichen
|
|
|
|
carrier-sense multiple access/collision detect (CSMA/CD)
|
|
* wenn mehrere Partner zur gleichen Zeit kommunizieren, wird für jeden eine zufällige Wartezeit bestimmt
|
|
* sehr unwahrscheinlich, dass sich Szenario nach Wartezeit wiederholt
|
|
* kann nicht für ES benutzt werden, da Laufzeit nicht bestimmt werden kann
|
|
|
|
carrier-sense multiple access/collision avoidance (CSMA/CA)
|
|
* jeder Partner bekommt Priorität zugewiesen
|
|
* dies geschieht in Verhandlungsphasen
|
|
* wenn Partner einen Partner mit höherer Priorität erkennt, muss Ersterer seine NUtzungsabsicht sofort zurückziehen
|
|
* daher vorhersehbare Laufzeit für Partner mit höchster Priorität
|
|
* für andere auch, wenn Partner mit höchster Prio nicht dauerhaft Zugang verlangt
|
|
* Ethernet mit über 1GBit vermeidet ebenfalls Kollisionen
|
|
|
|
### Beispiele
|
|
|
|
* Sensor/actuator buses
|
|
* field buses
|
|
* Controler Area Network
|
|
* Time-Triggered-Protocol (TTP)
|
|
* FlexRay
|
|
* LIN
|
|
* MAP
|
|
* EIB
|
|
* Kabelgebundene Multimedia-Kommunikation
|
|
* drahtlose Kommunikation
|
|
|
|
## Output
|
|
|
|
* Displays
|
|
* Elektromechanische Geräte
|
|
|
|
* analog input zu analog output:
|
|
AA -> Sample & hold -> A/D conv. -> Verarbeitung -> D/A conv. -> filter
|
|
|
|
### D/A Konverter
|
|
|
|
* wandeln digital in analog um
|
|
* benutzen Kirchhoffs Regeln
|
|
|
|
### Sampling theorem
|
|
|
|
* mithilfe der Shannon-Wittaker interpolation kann das ursprüngliche analoge Signal approximiert werden
|
|
* ebenso wird die Fourier Transformation benutzt
|
|
* ansonsten sehr viel Mathe
|
|
|
|
# System Software
|
|
|
|
## Embedded Operating Systems
|
|
|
|
### Allgemeine Bedingungen
|
|
|
|
* muss flexibel für Anwendungsbereich angepasst werden können
|
|
* Konfigurabilität (configurability)
|
|
* OO
|
|
* Aspect-oriented Programming
|
|
* konditioniertes Kompilieren
|
|
* fortgeschrittene Kompilierzeit Evaluation
|
|
* Linker-basiertes Entfernen von nicht genutzten Funktionen
|
|
* Treiber sind vom OS getrennt
|
|
* keine Schutzmechanismen (wie privilegierter Zugang) notwendig, da ungetestete Software nicht geladen wird
|
|
* interrupts können mit jedem Prozess verbunden werden
|
|
* viele ES sind Echtzeitsysteme und daher muss deren OS ein RTOS sein
|
|
|
|
### Echtzeit OS
|
|
|
|
* Zeitverhalten des OS muss vorhersagbar sein
|
|
* OS muss das Scheduling der Tasks managen
|
|
* einige Systeme erfordern Zeitmanagement durch das OS
|
|
* OS muss schnell sein
|
|
|
|
vorhandene RTOS können in drei Kategorien eingeteilt werden:
|
|
* schnelle proprietäre Kernel
|
|
* Echtzeiterweiterungen zu Standard-OS
|
|
* Forschungssysteme
|
|
|
|
Kernunterschied zu Standard OS:
|
|
* es wird für den Worst Case optimiert
|
|
|
|
### Resources access protocols
|
|
|
|
#### Priority Inversion
|
|
|
|
* Prozess mit geringerer Priorität blockt Prozess mit höherer Priorität
|
|
|
|
#### Priority Inheritance
|
|
* T1 hat Prio 1
|
|
* T2 hat Prio 2
|
|
* T3 hat Prio 3
|
|
|
|
* T2 verlangt Zugang zu S
|
|
* T1 verlangt Zugang zu S - wird blockiert
|
|
* T2 erbt Prio von T1
|
|
|
|
## Hardware abstraction layers
|
|
|
|
* accessing hardware through hardware-independent API
|
|
|
|
## Middleware
|
|
|
|
* add communication functionality on top of OS
|
|
|
|
### OSEK
|
|
|
|
* für Autobranche benutzt
|
|
|
|
### Corba (Common Object Request Broker Architecture)
|
|
|
|
* standardisierter Zugriff auf Remote-Objekte
|
|
* standardmäßig nicht für RTOS geeignet
|
|
* separater Standard RT-CORBA für RTOS definiert
|
|
|
|
### MPI (Message passing interface)
|
|
|
|
* Alternative zu CORBA
|
|
* Kommunikation zwischen Prozessoren
|
|
|
|
### POSIX Threads (Pthreads)
|
|
|
|
* API für Threads auf der OS-Ebene
|
|
|
|
### OpenMP
|
|
|
|
* explizite Parallelität
|
|
* implizite Kommunikation, Synchronisation, etc.
|
|
|
|
### UPnP, DPWS, JXTA
|
|
|
|
* Universal Plug-and-Play
|
|
* Erweiterung von PnP für Netzwerke
|
|
* Devices Profile for Web Services (DPWS) allgemeiner als UPnP
|
|
* JXTA ist eine OpenSource Peer-to-Peer Protokollspezifikation
|
|
|
|
# Evaluation und Validierung
|
|
|
|
* Validierung überprüft, ob ein Design alle Restriktionen erfüllt, wie erwartet funktionieren wird und für den Zweck angemessen ist
|
|
* Validierung mit mathematischer Genauigkeit wird formale Validierung genannt
|
|
* sehr wichtig während Designprozess
|
|
* Evaluation ist Prozess des Berechnens von quantitativen Informationen von einigen Kern-Charakteristika eines bestimmten Designs
|
|
|
|
Kopetz' Designprinzipien:
|
|
* Safety muss möglicherweise als der zentrale Aspekt gesehen werden, von dem alles abhängt
|
|
* präzise Spezifikationen von Designhypothesen müssen gleich zu Beginn gemacht werden (inklusive erwarteten Fehlern und deren Wahrscheinlichkeit)
|
|
* "Fault containment regions" müssen erwogen werden
|
|
* Fehler in einer solchen Region beeinflussen keine andere solche Region
|
|
* konsistente Vorstellung von Zeit und Zustand muss etabliert werden
|
|
* wohldefinierte Schnittstellen müssen die Interna von Komponenten verstecken
|
|
* Komponenten müssen unabhängig voneinander versagen (kein Einfluss auf andere Komponenten)
|
|
* Komponenten müssen sich selbst als korrekt annehmen bis mindestens zwei andere Komponenten das Gegenteil annehmen
|
|
* Fehlertoleranz darf es nicht schwerer machen das Verhalten des Systems zu erklären; Fehlertoleranz Mechanismen sollten von der regulären Funktionalität entkoppelt sein
|
|
* das System muss für Diagnose designed werden
|
|
* man-machine interface muss intuitiv und vergebend sein; safety sollte trotz Fehler des Menschens weiter gewährleistet sein
|
|
* jede Anomalie sollte aufgezeichnet werden; Aufzeichnung sollte auch interne Effekte beinhalten
|
|
* provide never-give up strategy
|
|
|
|
# Application mapping
|
|
|
|
## Classification of scheduling algorithms
|
|
|
|
* soft and hard deadlines
|
|
* periodic vs. aperiodic tasks
|
|
* preemptive vs. non-preemptive scheduling
|
|
* static vs. dynamic scheduling
|
|
* independent vs. dependent tasks
|
|
* mono- vs. multi-processor scheduling
|
|
* centralized vs. distributed scheduling
|
|
|
|
## Scheduling algorithms
|
|
|
|
### Aperiodic scheduling without precedence constraints
|
|
* Earliest Due Date (identical arrival times)
|
|
* Earliest Deadline First (different arrival times with preemption)
|
|
* Least Laxity (deadline interval - execution time)
|
|
|
|
### Aperiodic Scheduling with precedence constraints
|
|
* LatestDeadlineFirst
|
|
* ASAP
|
|
* ALAP (as late as possible)
|
|
* list scheduling
|
|
* force-directed scheduling
|
|
* goal: balanced utilization of resources
|
|
* based on spring model
|
|
* originally proposed for high-level synthesis
|
|
|
|
### Periodic scheduling without precedence constraints
|
|
|
|
* rate monotonic scheduling
|
|
* Earliest deadline first
|
|
|
|
|