Nichtflüchtiger Programm- und Datenspeicher ROM (Read Only Memory), i.A. FLASH ROM
Flüchtiger Programm- und Datenspeicher RAM (Random Access Memory), i.A. DRAM
Timer und Clock Generator
IO
Verdrahtete serielle Kommunikation mit UART / RS232
Verdrahtete serielle Kommunikation mit Ethernet
Drahtlose serielle Kommunikation mit Bluetooth (kurzreichweitig, P2P)
Drahtlose serielle Kommunikation mit WLAN (kurzreichweitig, P2M)
Drahtlose serielle Kommunikation mit WWAN (langreichweitig, P2M)
General Purpose IO (Digitale Ports)
Analoge Eingänge mit ADC
Eingebettetes System
Energieversorgung
Spannungskonverter
Spannungsüberwachung (Watchdog)
Energiegewinnung
Energiespeicher
Eingebettetes System
Rapsberry PI
xdevs.com/article/rpi3\_oc
Abb. 1.Raspberry Pi 3 Rechnerarchitektur
Eingebettetes System
Modellierung eines Sensorknotens
Abb. 2.Komponenten eines Sensorknotens (Datenflussarchitektur)
Eingebettetes System
Sensormodell: Ein Sensorknoten ist mit verschiedenen Sensoren verbunden.
Dehnungsmessstreifen (elektrische Größe)
II.Energiesensor (Ladezustand eines Energiespeichers ∼ Ladespannung)
Energiemodell: Jeder Sensorknoten verfügt über einen Energiespeicher, der
Über eine zeitlich fluktuierende Energiequelle (Energy Harvester) mit Energie gespeist wird, und der
Durch Berechnungs- und Kommunikationaktivität des Sensorknotens entladen wird.
Eingebettetes System
Die Bilanzierung der Energie kann vereinfacht werden: Jede elementare Berechnung des Sensorknotens benötigt die gleiche Energiemenge einstruction.
Energiemanagement muss verwendet werden, um mit der zur Verfügung stehenden Energie E(t) die Aufgaben und Ziele 1. Lokal (Knotenebene) und 2. Global (Netzwerk) zu erfüllen.
Eingebettetes System
Prozessor
Tasks und Prozesse sind softwarebasierte oder virtuelle Einheiten. Ein Prozessor, oder allgemein eine Datenverarbeitungseinheit (Processing Element PE) ist eine hardwarebasierte physikalische Ressource, deren Anzahl und Eigenschaften i.A. zur Laufzeit fest (statisch) sind. Ein oder mehrere Prozesse {P1,P2,..} sowie Taks {T1,T2,..} können temporal verteilt einem Prozessor PE zugeteilt und von ihm ausgeführt werden.
Programm
Schrittweise Ablaufvorschrift von Anweisungen {A1,A2,..}
Datenpfad
Der Datenpfad eines Programms stellt alle funktionalen Anteile (mit arithmetischen, relationalen, und booleschen Operation) und den Datenspeicher dar (Register, Speicherblöcke).
x := (a+b)/100;
y := f(a,b-1);
Eingebettetes System
Kontrollpfad
Der Kontrollpfad eines Programms beschreibt und steuert die schrittweise Berechnung, die sich mit einem Kontrollflussgraphen bzw. Zustandsgraphen darstellen lässt. Der Programmfluss kann von der Entwicklung von Daten abhängen.
for i := 1 to 20 do x := x * i; done;
if x < 0 then x := 0; end;
Eingebettetes System
Abb. 3.(Links) Programm (Mitte) Kontrollpfad als Zustandsdiagramm (Rechts) Datenpfad auf Registerebene
Rechnerarchitekturen
Datenverarbeitung kann prinzipiell
programmgesteuert mit einem generischen oder anwendungsoptimierten Prozessor [dynamisch], oder
anwendungsspezifisch [statisch] mit Register-Transfer Logik Architekturen implementiert werden. Hier wird die Maschine zur Entwicklungszeit festgelegt.
Klassifikation von Parallelrechnerarchitekturen kann basierend auf dem Flynn’schen Modell erfolgen. Klassifikation nach
Datenstrom und
Instruktionsstrom
zwischen Speicher- und Datenverarbeitungseinheiten.
[Tokhi,2003]
Rechnerarchitekturen
SISD: Single-Instruction Single-Data Stream
Ein von-Neumann Rechner besteht aus einer zentralen PE, dem Mikroprozessor, einem für Daten und Instruktionen gemeinsamen Hauptspeicher, und Ein-/Ausgabeeinheiten.
Abb. 4.Von-Neumann Rechnerarchitektur und Flynns SISD Modell [PCRTSPC,Tokhi et al.,2003 ]
Rechnerarchitekturen
Es gibt nur einen Daten- und Instruktionsstrom, der zeitlich sequenziell ist (Temporales Multiplexing).
Die Ausführung einer Maschinenanweisung ist in mehrere Teilschritte (Phasen) unterteilt:
Befehlsholphase
Dekodierungsphase
Operandenholphase
Ausführungsphase
Rückschreibephase
Neuadressierung
Rechnerarchitekturen
Abb. 5.Ausführungsebenen (Stufen) in einem Mikroprozessor [ECSOC,Rowen,2004]
Rechnerarchitekturen
Harvard Architektur
Der von Daten- und Instruktionen gemeinsam geteilte Hauptspeicher ist der Flaschenhals bei der Programmausführung.
Aufteilung von Daten und Programmcode in getrennten Speicher beschleunigt die Ausführung von Maschinenanweisungen.
Das Leitwerk des Prozessors kann direkt mit dem Codespeicher verbunden werden!
Abb. 6.Übergang von zentralem Hauptspeicher zu N-Speicher System [CC,Wolf,2008]
Rechnerarchitekturen
Beispiel: ATMEG32 Mikrokontroller
Abb. 7.Rechnerarchitektur des Atmel ATMEGA 32 Mikrokontrollers mit Harvardarchitektur [Atmel]
Rechnerarchitekturen
SIMD: Single-Instruction Multiple-Data
Multiprozessorarchitektur
Datenverarbeitung (Berechnung) und Steuerung (Kontrollfluss) sind getrennt
Es gibt einen Instruktionsstrom, aber mehrere Datenströme
Es wird eine Instruktion auf verschiedenen Daten angewendet
Anwendung: Verarbeitung von Vektoren und Matrizen, z.B. in der digitalen Bildverarbeitung
RTL Architektur mit Zustandsautomat und RT Datenpfad gehört zur SIMD Klasse!
Bei Digitallogik und Registertransferarchitektur entspricht SIMD der Ausführung mehrerer Datenpfadoperationen (Berechnungen) in einem Zeitschritt
Rechnerarchitekturen
Abb. 8.SIMD Model [PCRTSPC,Tokhi et al.,2003 ]
Rechnerarchitekturen
Abb. 9.SIMD Architekturen: Vektor- und Arrayrechner [PCRTSPC,Tokhi et al.,2003 ]
Rechnerarchitekturen
MISD: Multiple-Instruction Single-Data
Es gibt mehrere Kontroll- und Datenverarbeitungseinheiten, die mit mehreren Instruktionsströmen arbeiten und die jeweils mit verschiedenen Anweisungen auf den gleichen Daten operieren.
Abb. 10.MISD Modell [PCRTSPC,Tokhi et al.,2003 ]
Rechnerarchitekturen
MIMD: Multiple-Instruction Multiple-Data
Mehrere Kontroll- und Datenverarbeitungseinheiten können unabhängig verschiedene Anweisungen mit verschiedenen Daten bearbeiten → Shared-Memory Multiprozessor
Alternative System-on-Chip Architektur: Multi-RTL mit multiplen Zustandsautomaten und RT Datenpfaden
Abb. 11.MIMD Modell [PCRTSPC,Tokhi et al.,2003 ]
Rechnerarchitekturen
Shared-Memory und Dsitributed-Memory Multiprozessor Architektur