Architektur Eingebetteter Rechner

Eingebettetes System

Komponenten

  • Prozessor, i.A. RISC Architektur,
  • 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

figpi3blockxdevs.com/article/rpi3\_oc


Abb. 1. Raspberry Pi 3 Rechnerarchitektur

Eingebettetes System

Modellierung eines Sensorknotens

figsensor_node_architecture


Abb. 2. Komponenten eines Sensorknotens (Datenflussarchitektur)

Eingebettetes System

  • Sensormodell: Ein Sensorknoten ist mit verschiedenen Sensoren verbunden.

    1. Dehnungsmessstreifen (elektrische Größe) II.Energiesensor (Ladezustand eines Energiespeichers ∼ Ladespannung)
  • Energiemodell: Jeder Sensorknoten verfügt über einen Energiespeicher, der

    1. Über eine zeitlich fluktuierende Energiequelle (Energy Harvester) mit Energie gespeist wird, und der
    2. Durch Berechnungs- und Kommunikationaktivität des Sensorknotens entladen wird.
\[\begin{gathered}
  E(t) = {E_0} + \sum\limits_{\tau  = 0}^t {{e_{{\text{harvest}}}}(\tau )}  + \sum\limits_{\tau  = 0}^t {{e_{{\text{computing}}}}(\tau )}  \hfill \\
  {e_{{\text{computing}}}}(t) = \sum\limits_{i = 0}^n {{e_{\operatorname{instruction} }}(i)}  \hfill \\ 
\end{gathered}
\]

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

figrtl1


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.

figflynn1[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.

figflynn2


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:

    1. Befehlsholphase
    2. Dekodierungsphase
    3. Operandenholphase
    4. Ausführungsphase
    5. Rückschreibephase
    6. Neuadressierung

Rechnerarchitekturen

figca1


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!

figflynn3


Abb. 6. Ãœbergang von zentralem Hauptspeicher zu N-Speicher System [CC,Wolf,2008]

Rechnerarchitekturen

Beispiel: ATMEG32 Mikrokontroller

figatmega32


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

figflynn4


Abb. 8. SIMD Model [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

figflynn5


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.

figflynn6


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

figflynn7


Abb. 11. MIMD Modell [PCRTSPC,Tokhi et al.,2003 ]

Rechnerarchitekturen

Shared-Memory und Dsitributed-Memory Multiprozessor Architektur