Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 - ein kompakter Mikrocontroller 8-Bit-Mikrocontroller Mitglied der AVR8-Familie ATmega Reihe größere Bauform als ATtiny ATtiny: DIL8, ATmega: QIL64, etwas erweiterter Prozessorkern
82
Embed
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 -
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte1
2.6 Mikrocontroller-Beispiele
2.6.1 ATmega128 - ein kompakter Mikrocontroller
8-Bit-Mikrocontroller
Mitglied der AVR8-Familie
ATmega Reihe
größere Bauform als ATtiny ATtiny: DIL8, ATmega: QIL64,
etwas erweiterter Prozessorkern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte2
2.6 Mikrocontroller-Beispiele
Einordnung in die Familie
ATtiny1X 2X 4X
8X
Grundmodelle mit 1, 2, 4 oder 8 kBytes ROM. Je nach X unterschiedliche Versionen, z.B. ATtiny11 mit 6 MHz, ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz.
ATmega 8X 16X
32X 64X 128X
256X
Erweiterte Modelle mit 8 bis 256 kBytes ROM. Je nach X unterschiedliche Varianten, z.B. ATmega128 mit 4 kBytes RAM und ATmega1280 mit 8 kBytes RAM
AT90X
Spezialversionen, z.B. AT90CAN128 mit CAN-Bus-Einheit oder AT90PWM1 mit Pulsweitenmodulator
AT94X Enthält programmierbare Logik (FPGA)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte3
2.6 Mikrocontroller-Beispiele
Prozessorkern- RISC-Architektur- Taktfrequenz bis 16 MHz- Harvard-Architektur mit 8 Bit Datenbus, 16 Bit
Befehlsbus und 16 Bit Adressbus- 32 allgemeine 8 Bit Register, 6 davon paarweise als
16 Bit Indexregister nutzbar- 7 Adressierungsarten- Gemeinsame Adressierung (Memory Mapped IO)- 8 x 8 Bit Multiplikation
Speicher- statisches RAM- FlashRAM- EEPROM
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte4
2.6 Mikrocontroller-Beispiele
Zeitgeber und Ein-/Ausgabeeinheiten - 7 parallele Ein-/Ausgabeeinheiten, insgesamt 53 Bit- 2 synchrone serielle Ein-/Ausgabeeinheiten- 2 synchrone/asynchrone serielle Ein-/Ausgabeeinheiten- 2 8-Bit-Zähler/Zeitgeber mit Compare-Funktion und
Pulsweitenmodulator- 2 16-Bit-Zähler/Zeitgeber mit Capture/Compare-Funktion
und Pulsweitenmodulator- 1 Watchdog- 1 Analogvergleicher- 8 Digital/Analog-Wandlerkanäle, jeweils 10 Bit- 8-Bit-Erweiterungsbus im Daten-/Adressmultiplexing, 16
F - - 8 Analog/Digital-Wandler, Debugschnittstelle
G - - 5 Erweiterungsbus Steuersignale, Zähler/Zeitgeber
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte15
2.6 Mikrocontroller-Beispiele
Digitale serielle EA
Max. Baudrate
USART: 250 kBaudSPI: 4 MBaudTwo Wire 400 kBaud
Synchrone serielle Schnittstelle 2
(SPI)
TxD (Transmit
Data)
RxD (Receive
Data)
MOSI (Master
Out Slave In)
MISO (Master
In Slave Out)
SCK (Serial Clock)
SS (Slave Select)
Synchrone serielle Schnittstelle 1
(Two Wire)
SDA (Serial Data)
SCL (Serial Clock)
Synchrone/Asynchrone serielle Schnittstelle 1
(USART)
XCK (External
Clock)
TxD (Transmit
Data)
RxD (Receive
Data)
Synchrone/Asynchrone serielle Schnittstelle 2
(USART)
XCK (External
Clock)
max 128 Teilnehmer
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte16
2.6 Mikrocontroller-Beispiele
Analog/Digital-Wandler
Wägeverfahren
16 µsec Wandlungszeit
10 Bit Auflösung
8 Kanäle
Single oder Free Running Conversion Mode
Analog MUX
10-Bit AD-Wandler
Kanalwahl-register 8 Bit
1
Status/Steuerre-gister 8 Bit
Ausgangsregister low
interner Datenbus 8-Bit
Analog- Signal
Digitalwert
Analog In 0
Analog In 7
. . .
Ausgangsregister high
16 Bit
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte17
2.6 Mikrocontroller-Beispiele
Zählerund Zeitgeber
Watchdog:
1 MHz Takt,
8 Stufen
(214 – 221 =
14msec – 1,8sec)
Modulator:
Wahlweise Und bzw Oder Verknüpfungzweier Signale
8 Bit Zähler +/-
Zählerbus
Compare-Register
Datenbus
Impulsausgang
Compare-Interrupt
Vorteiler Takt
Externer Takt
Interner Takt
Impuls-erzeuger
8-Bit Zähler/Zeitgeber 0
Programmierbarer Watchdog-Zähler
Reset
Modulator (Und/Oder)
Impulsausgang Modulator
Impulsausgang C von 16-Bit Zähler/Zeitgeber 1
Impulsausgang von 8-Bit Zähler/Zeitgeber 2 Watchdog Modulator
8-Bit Zähler/Zeitgeber 2
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte18
2.6 Mikrocontroller-Beispiele
16 Bit Zähler +/-
Zählerbus Datenbus
Impulsausgang A
Compare-Intterupt A
Vorteiler Takt
Externer Takt
Interner Takt
Impuls-erzeuger
16-Bit Zähler/Zeitgeber 1
Impulsausgang B
Compare-Interrupt B
Impuls-erzeuger
Compare-Register C
Impulsausgang C
Compare-Interrupt C
Impuls-erzeuger
Compare-Register B
Compare-Register A
Capture-Register
Capture-Eingang Analog-Vergleicher
Flanken-erken-nung
Capture-Interrupt
16-Bit Zähler/Zeitgeber 3
Impulserzeuger:
erzeugt zahlreiche Impulsformen bei Compare-Ereignis, z.B. Ausgang setzen, rücksetzen,wechseln,setzen bei Compare und rücksetzen bei max. Zählerstand, ...
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte19
2.6 Mikrocontroller-Beispiele
2.6.1.5 Erweiterungsbus
Kann über Steuerregister aktiviert und konfiguriert werden
Bei aktivem Erweiterungsbus sind die geteilten parallelen EA-
Einheiten nicht verfügbar
Unterstützt variablen Adressraum
Die Adressbits A8 – A15 sind schrittweise zuschaltbar
Nicht benutzte Adressbits stehen den parallelen EA-Einheiten zur
Verfügung
Wartezyklen (bis zu 3) beim Zugriff sind programmierbar
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte20
2.6 Mikrocontroller-Beispiele
Aufbau des Erweiterungsbusses:
A8 – A15
Lat
ch
A0 – A7
D0 – D7
RW
En
ALE
RW
Port C
Port A
AT
meg
a128
WR WR
Port
G
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte21
2.6 Mikrocontroller-Beispiele
2.6.2 PXA 255 – ein Hochleistungs-Mikrocontroller
• 32 Bit Mikrocontroller
• Weiterentwicklung der StrongARM Familie
• ARM Version 5 RISC Prozessorkern
• Vielfältige Peripherie
• Wird z.B. gerne in Palmtops eingestetzt
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte22
2.6 Mikrocontroller-Beispiele
• Prozessorkern
- skalare RISC-Architektur ARM Version 5TE- Taktfrequenz bis 400 MHz- 32-Bit-Datenbus, 32-Bit-Adressbus- Virtuelle Speicherverwaltung für Daten und Befehle- 32 KBytes Befehls-Cache- 32 KBytes Daten-Cache- 2 KBytes Mini-Daten-Cache zur Aufnahme von Daten- strömen- Erweiterte Multiplikations-/Additionseinheit für Signalverar- beitung- komprimierbarer Befehlssatz- Ruhebetrieb
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte23
2.6 Mikrocontroller-Beispiele
• Speicher- außer dem Cache kein weiterer integrierter
Speicher- Schnittstelle für verschiedene Speichertypen (ROM,
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte26
2.6 Mikrocontroller-Beispiele
2.6.2.1 Prozessorkern
• Intel XScale Mikroarchitektur
• 7-stufige skalare Pipeline
• spekulative Befehlsausführung mit 2-Bit Sprungvorhersage
• ARM Version 5
• Erweitert die im Vorgänger StrongARM verwendete ARM Version 4 um Codekompression und MAC-Einheit
• Mehrere Registerbänke, die je nach Betriebsart gewechselt werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte27
2.6 Mikrocontroller-Beispiele
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15 (PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8fiq *
R9fiq *
R10fiq *
R11fiq *
R12fiq *
R13fiq *
R14fiq *
R15 (PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13irq *
R14irq *
R15 (PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13svc *
R14svc *
R15 (PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13abt *
R14abt *
R15 (PC)
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13und *
R14und *
R15 (PC)
CPSR CPSR
SPSRfiq *
CPSR
SPSRirq *
CPSR
SPSRsvc *
CPSR
SPSRabt *
CPSR
SPSRund *
Benutzer undSystem
FIQ IRQ Supervisor Abbruch Undefiniert
allg
emei
ne R
egis
ter
Stat
usre
gist
er
0 310 310 31 0 31 0 31 0 31
PC : Programm Counter, ProgrammzählerCPSR : Current Program Status Register, ProzessorstatuswortSPSR : Saved Program Status Register, gerettetes Prozessorstatuswort
*: betriebsart-spezifisches Register
Programmier-modell
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte28
2.6 Mikrocontroller-Beispiele
Besonderheiten des Befehlssatzes:• MAC-Einheit wie bei Signalprozessoren• 32-Bit Standard RISC Befehlssatz• 16-Bit komprimierter Thumb-Befehlssatz• Für RISC eher untypisch viele Adressierungsarten
Vier Arbeitsmodi:• Turbo-Modus: hohe Taktfrequenz• Normaler Modus: niedere Taktfrequenz, Umschaltung
zu hoher Taktfrequenz in Nanosekunden• Idle-Modus: Kern ist angehalten, Wecken durch
Interrupt• Schlaf-Modus: Kern ist abgeschaltet, nur Peripherie
wird noch mit Energie versorgt
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte29
2.6 Mikrocontroller-Beispiele
2.6.2.2. Unterbrechungsbehandlung
Einfaches Unterbrechungssystem mit festen Vektoren
8 verschiedene Vektoren, davon 2 extern (IRQ, FIQ)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte46
2.6 Mikrocontroller-Beispiele
2.6.3.1 Reduktion der Busaktivitäten und Erhöhung der Code-Dichte
Reduktion der ex-ternen Busaktivitätendurch reichhaltigenRegistersatz
R0 (SP)
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
PC
Benutzer
0 31
C
R0 (SP)
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13
R14
R15
PC
Supervisor
0 31
C
R0*
R1*
R2*
R3*
R4*
R5*
R6*
R7*
R8*
R9*
R10*
R11*
R12*
R13*
R14*
R15*
0 31
CR0
CR1
CR2
CR3
CR4
CR5
CR6
CR7
CR8
CR9
CR10
CR11
CR12
0 31
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte47
2.6 Mikrocontroller-Beispiele
Hohe Code-Dichte durch 16-Bit Befehlssatz
Befehlscode Rx Displacement
15 12 11 8 7 0
Befehlscode Displacement
15 11 10 0
Befehlscode Immediate Rx
15 11 10 4 3 0
Befehlscode Ry Rx
15 8 7 4 3 0
Befehlscode Rx
15 4 3 0
Rx = Register R0... R15
Adressierung mit einem Register
Adressierung mit zwei Registern
Adressierung mit Register undunmittelbarer Konstanten
Adressierung mit Displacement
Adressierung mit Register undDisplacement
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte48
2.6 Mikrocontroller-Beispiele
2.6.3.2 Statisches Power Management Voll statisches Steuerwerk, bis zu 0 Hz
Taktfrequenz Niedere Versorgungsspannung von 1.8 Volt Spezialbefehle und Ausgangssignale (LPMD = low
power mode) um nicht benötigte Komponenten abzuschalten
Modus (Befehl) LPMD1 LPMD0 Stop 0 0 Wait 0 1 Doze 1 0 Run 1 1
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte49
2.6 Mikrocontroller-Beispiele
2.6.3.3 Dynamisches Power Management
Power Aware Pipeline
Die Pipeline erkennt und deaktiviert gerade nicht benötigte Komponenten
Eine Addition aktiviert z.B. den Addierer, deaktiviert aber den Barrel-Shifter
Unterschiedliche Datengrößen werden unterstützt
Für 8 und 16 Bit Operationen werden unbenutzte Teile der internen 32 Bit Datenpfade und Verarbeitungseinheiten abgeschaltet
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte50
2.6 Mikrocontroller-Beispiele
Gesamtverteilung des Energiebedarfs im Prozessorkern
Taktleitungen: 36% des gesamten Energiebedarfs
Datenpfade: 36% des gesamten Energiebedarfs
Steuerlogik: 28% des gesamten Energiebedarfs
=> Optimierung der Taktleitungen und Sperrung von Teilen des Takt-Baumes (Clock Gating) kann viel
Energie einsparen
Die Pipeline sperrt z.B. den Takt für einige Komponenten während dem Auftreten von Pipeline-Hazards
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte51
2.6 Mikrocontroller-Beispiele
2.6.4 Komodo - ein Forschungs-Mikrocontroller
Java
einfacheProgrammierung,
Threads
Echtzeit
Zeitbedingungen,Scheduling
MehrfädigeProzessortechnik
schnellerKontextwechsel
Komodo Mikrocontroller
Java Prozessor,mehrfädige Hardware,
Thread-basierteUnterbrechungsbehandlung,
Middleware
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte52
2.6 Mikrocontroller-Beispiele
Das Komodo-Projekt ist in fünf Ebenen gegliedert
Der Mikrocontroller ist die niedrigste Ebene
Middleware OSA+
Anwendung
Heap
Traps
GarbageCollection Mem.
KlasseEthreads.Klasse
Driver.KlassenStandard Klassen
Signal EinheitPrioritäts-Manager
Multithreading I/O Einheit
Komodo-Mikrocontroller
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte53
2.6 Mikrocontroller-Beispiele
Prozessorkern– mehrfädige 32 Bit Architektur– bis zu 4 Hardware-Threads– direkte Ausführung von Java Bytecode– thread-basierte Unterbrechungsbehandlung– extrem schneller Kontextwechsel (0 Taktzyklen)
Speicher– Schnittstelle für externen Arbeitsspeicher– Datentransferpuffer für Ein-/Ausgabedaten
Zeitgeber und Ein-/Ausgabeeinheiten– 1 parallele und 2 serielle Ein-/Ausgabeschnittstellen– 1 Capture- und Compare-Einheit– 1 Zähler- und Zeitgebereinheit
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte54
2.6 Mikrocontroller-Beispiele
Architektur des Komodo-Mikrocontrollers
Prozessorkern
mehrfädige Java Pipeline
Datentransfer-PufferSignal-
EinheitEin-/Ausgabe-
Einheit
Weck-Einheit Parallele Ein-/Ausgabe-
Einheit
Serielle Ein-/Ausgabe-
Einheit
Capture-/Compare-
Einheit
Zähler-/Zeitgeber-
Einheit
Speicher-schnittstelle
ExternerSpeicher
ExterneEreignisse
Parallele EA Serielle EA
Takt
Quarz
Einfangen/Treffer Zählen/Takt
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte55
2.6 Mikrocontroller-Beispiele
2.6.4.1 Prozessorkern
Java Prozessor
Ausführung von Java Bytecode•direkt in Hardware (Einfache Bytecodes)•Mikrocode (mittel-komplexe Bytecodes)•Trap Routinen (komplexe Bytecodes)
Stack-Register-Satz
Hardware-Unterstützung für Garbage Collection
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte56
2.6 Mikrocontroller-Beispiele
Mehrfädiger Prozessor
Kann mehr als einen Thread gleichzeitig in der Pipeline verarbeiten
Besitzt mehrere Programmzähler und Registersätze
Extrem schneller Kontextwechsel
Latenzen bei der Ausführung eines Threads können durch Instruktionen aus anderen Threads überbrückt werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte57
2.6 Mikrocontroller-Beispiele
Mikroarchitektur:
Mehrfädig (0 Takte Kontextwechsel)
Bis zu 4 Hardware Threads
Prioritäten-Manager für Echtzeit-Scheduling (in Hardware)
Signaleinheit für externe Komponenten
Befehlsholeinheit
PC1 PC2 PC3 PC4
Spei
cher
schn
ittst
elle
Adressen
Befehle
IW1 IW2 IW3 IW4
Prioritätenmanager
BefehlsdecodiereinheitMikro-codeROM
Signal-einheit
Peripherie-Signale
Operandenholeinheit
Speicherzugriffs-einheit
Ausführungs-einheit
Ein-/Ausgabe-zugriffseinheit
RS1 RS2 RS3 RS4
Stackregistersätze
Adressen
Daten
Adressen
Daten
Ein
-/A
usga
besc
hnitt
stel
le. . .
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte58
2.6 Mikrocontroller-Beispiele
2.6.4.2 Echtzeit-Scheduling
Erfolgt in Hardware durch den Prioritäten-Manager
2 Ebenen Scheduling:
1. Ebene: ordnet den Threads gemäß Echtzeit-Scheduling Prioritäten zu
2. Ebene: wählt den Thread höchster Priorität, der gerade keine Latenz besitzt
=> Kombination von Echtzeit-Scheduling und Latenzzeitnutzung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte59
2.6 Mikrocontroller-Beispiele
Unterstützte Echtzeit-Scheduling Verfahren:
Fixed Priority Preemptive (FPP)
Earliest Deadline First (EDF)
Least Laxity First (LLF)
Guarantied Percentage (GP)
Das Scheduling wird in Hardware durchgeführt, um eine Entscheidung in einem Taktzyklus zu erlauben
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte60
2.6 Mikrocontroller-Beispiele
Guaranteed Percentage Scheduling
weist einem Thread einen garantierten Prozentsatz der Prozessorleistung zu, garantiert dies in einem kurzen Intervall
Thread A, 30%
Thread B, 20%
Thread C, 40%
Thread A30 Taktzyklen
Thread B20 Taktzyklen
Thread C40 Taktzyklen
Thread A30 Taktzyklen
Thread B20 Taktzyklen
Thread C40 Taktzyklen
. . .. . .
100 Taktzyklen 100 Taktzyklen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte61
2.6 Mikrocontroller-Beispiele
Klassen:
• Exakt ein Thread erhält genau den geforderten Prozentsatz
• Minimum ein Thread erhält mindestens den geforderten Prozentsatz
• Maximum ein Thread erhält höchstens den geforderten Prozentsatz
Die Summe der geforderten Prozentsätze der Klassen Exakt und Minimum darf 100 % nicht überschreiten
Der Latenzgewinn über 100% kann von der Klasse Maximum genutzt werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte62
2.6 Mikrocontroller-Beispiele
Vorteile von GP:
strikte zeitliche Isolation der Threads
Garantierte Antwortzeiten und Datenraten für mehrere Threads
Einfache Erkennung von Überlast (>100%)
Ermöglicht Debug-Threads ohne Veränderung des Echtzeit-Verhaltens
Fein-granulare Realisierung auf einem mehrfädigen Prozessorkern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte63
2.6 Mikrocontroller-Beispiele
2.6.4.3 Unterbrechungsbehandlung
Standard Echtzeit-Ereignisbehandlung:
Interrupt Service Routinen (ISR) mit festen Prioritäten (FPP)
Nicht-optimale Prozessorausnutzung (< 100%)
Blockierung niederpriorer Ereignisse Komplexe Programme, schwer zu testen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte64
2.6 Mikrocontroller-Beispiele
Komodo benutzt Interrupt Service Threads (IST)
Ein Ereignis aktiviert direkt einen zugeordneten Hardware-Thread im mehrfädigen Prozessorkern
Ereignisse werden durch Java Threads behandelt Die Aktivierung erfolgt per Hardware (der
Signaleinheit) Jeder IST wird in einen Thread-Slot des mehrfädigen
Prozessorkerns geladen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte65
2.6 Mikrocontroller-Beispiele
Vorteile: Interrupt Service Threads passen perfekt in das Thread Konzept von
Java. Ereignisse lassen sich wie alle anderen Aufgaben einheitlich mittels
Java Threads behandeln. Die direkte Aktivierung per Hardware vermeidet
Verzögerungszeiten. Alle Threads inklusive der Interrupt Service Threads unterliegen
einem einheitlichen, hardwareunterstützten Scheduling. Es können flexible Kontextwechsel zwischen Interrupt Service
Threads und anderen Threads stattfinden. Schedulingverfahren wie EDF, LLF oder GP erlauben eine
Prozessorauslastung von 100 Prozent
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte66
2.6 Mikrocontroller-Beispiele
Verküpfung von Ereignissen und Threads durch die Signaleinheit
Verbindungsmatrix mitSteuer- und Statusregister
Steuerregister StatusregisterP
wer
iphe
rie-
Sig
nale
(E
reig
niss
e)
Thread 1 Thread 2 Thread 3 Thread 4
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte67
2.6 Mikrocontroller-Beispiele
2.6.4.4 Anbindung der periphere Komponenten
Einfach (kein Forschungsschwerpunkt in diesem Projekt)
Ein-/Ausgabe-Zugriffseinheit
SerielleSchnittstelle
1
SerielleSchnittstelle
2
ParalleleSchnittstelle
Zähler-/Zeitgeber
Capture/Compare
Datentransfer-puffer
Ein-/Ausgabebus: Daten / Adressen / Steuersignale
Daisy Chain
Prozessorkern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte68
2.6 Mikrocontroller-Beispiele
Datentransferpuffer
entlastet den Prozessorkern von der Aufgabe der Datenübertragung
da die Zeitbedingungen für die Datenübertragung und Datenverarbeitung meist unterschiedlich sind, müsste anderenfalls ein eigener Thread zur Datenübertragung oder ein Thread mit wechselnden Zeitbedingungen für Übertragung und Verarbeitung eingesetzt werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte69
2.6 Mikrocontroller-Beispiele
2.6.4.5 Evaluierungs-Ergebnisse
Leistungsgewinn durch den mehrfädigen Ansatz für die Echtzeit-Scheduling Verfahren FPP, EDF, LLF and GP
ModelleEinfädig (Standard Prozessor, 100 Takte Kontextwechselzeit)Mehrfädig mit 0 Takte Kontextwechselzeit, aber keiner LatenzzeitnutzungMehrfädig mit Latenzzeitnutzung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte70
2.6 Mikrocontroller-Beispiele
Threads mit ähnlichen Deadlines (4 * Impulszähler) :
0,00
0,50
1,00
1,50
2,00
2,50
3,00
Gew
inn
FPP EDF GP LLF
Einfädig
Mehrfädig, ohne Latenzzeitnutzung
Mehrfädig, mit Latenzzeitnutzung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte71
2.6 Mikrocontroller-Beispiele
– Für einfädige Prozessorkerne kein Leistungsunterschied zwischen einfachem FPP und komplexeren EDF. Ursache: einfacher Impulszähler
– GP und LLF fallen hier ab. Ursache: häufige Kontextwechsel
– Mehrfädiger Prozessorkern ohne Latenzzeitnutzung eliminiert diesen Nachteil. Leistungssteigerung um Faktor 1,45
– Mehrfädigen Prozessorkern mit Latenzzeitnutzung steigert den Gewinn. GP und LLF effizienter als FPP und EDF. Ursache: Anzahl aktiv-bleibender Threads.
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte72
2.6 Mikrocontroller-Beispiele
T1
T2
T3
T4
4 3 2 1
Anzahl aktive Threads
d4
d3
d2
d1Kontextwechsel
Deadlines T1
T2
T3
T4
4 3 2 1
Anzahl aktive Threads
d4
d3
d2
d1Kontextwechsel
Deadlines
a: FPP und EDF Scheduling b: GP und LLF Scheduling
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte73
2.6 Mikrocontroller-Beispiele
Threads mit verschiedenen Deadlines :
0,00
0,50
1,00
1,50
2,00
2,50
3,00
Gew
inn
FPP EDF GP LLF
Einfädig
Mehrfädig, ohne Latenzzeitnutzung
Mehrfädig, mit Latenzzeitnutzung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte74
2.6 Mikrocontroller-Beispiele
– Für den einfädigen Prozessorkern bestätigt sich zunächst das Er-gebnis der ersten Evaluation: GP und LLF schneiden schlecht ab
– Durch die komplexere Last: Unterschiede zwischen dem einfachen FPP und dem leistungsfähigeren EDF
– Dies gilt auch für den mehrfädigen Prozessorkern ohne Latenzzeitnutzung. GP fällt durch die schwierige Wahl geeigneter Prozentsätze ab.
– Beim mehrfädigen Prozessorkern mit Latenzzeitnutzung liefert wie bei der ersten Evaluierung LLF hervorragende Ergebnisse. Auch GP kann die Latenzen sehr gut verwerten, verliert aber durch die oben genannten Probleme
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte75
2.6 Mikrocontroller-Beispiele
2.6.4.6 Weiterführende Konzepte
Problem: Pipeline-Hemmnisse oder Locks verringern den Durchsatz, zeitliche Vorhersagbarkeit (Echtzeit) wird erschwert
Beispiel Komodo, GP-Scheduling, Klasse Exakt, GP = 30% idealerweise IPC = 30 / 100 = 0,3
treten jedoch z.B. 5 Latenzzyklen auf IPC = 25 / 100 = 0,25
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte76
2.6 Mikrocontroller-Beispiele
Abhilfe: Einsatz eines geschlossenen Regelkreises
Regelung des Durchsatzes mittels eines PID-Reglers
PID-Regler
Komodo-Prozessorkern
Messung des
Durchsatzes
Sollwert
Stellwert
Istwert
Neuer GP-Prozentsatz -
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte77
2.6 Mikrocontroller-Beispiele
ModifizierteKomodo-Pipeline
Befehlsholeeinheit
PC1 PC2 PC3 PC4
Spei
cher
schn
ittst
elle
Adressen
Befehle
IW1 IW2 IW3 IW4
Prioritätenmanager
Befehlsdecodiereinheit
Mikro-code ROM
Signal-einheit
Peripherie- Signale
Operandenholeeinheit
Speicherzugriffs-einheit
Ausführungs-einheit
Ein-/Ausgabe-zugriffseinheit
RS1
RS2
RS3
RS4
Stack-Registersätze
Adressen
Daten
Adressen
Daten
Ein
-/A
usga
besc
hnitt
stel
le
. . .
PID-Regler
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte78
2.6 Mikrocontroller-Beispiele
Durchsatz eines Erzeuger-Threads in einem Erzeuger/Verbraucher-Benchmark
GP = 0,49
keineRegelung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte79
2.6 Mikrocontroller-Beispiele
Durchsatz eines Erzeuger-Threads in einem Erzeuger/Verbraucher-Benchmark
GP = 0,49
PID-Regler
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte80
2.6 Mikrocontroller-Beispiele
Verbleibendes Problem: Kurzfristige Änderungen der IPC-Rate können nicht kompensiert werden, da
der Regler nicht in die Zukunft blicken kann
Idee: Vorhersage der Latenzen für das nächste 100 Taktzyklen-Intervall Verbesserung des Regelverhaltens
Vorgehensweise: Aufteilung des Programms in Basic Blocks (von Sprung zu Sprung) Lineare Analyse vor Programmstart Sprungvorhersage für bedingte Sprünge am Blockende
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte81
2.6 Mikrocontroller-Beispiele
Programmzähler zu Beginn des
Intervalls Latenzzähler = 0
2 Latenzen
3 Latenzen
3 Latenzen
Sprungbefehl
Sprungbefehl
Latenzzähler = 2
Latenzzähler = 5
Latenzzähler = 8
Sprungvorhersage: Sprung genommen
Sprungvorhersage: Sprung genommen
.
.
.
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte82
2.6 Mikrocontroller-Beispiele
Durchsatz eines Erzeuger-Threads in einem Erzeuger/Verbraucher-Benchmark