1Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.1 MC68HC11E - ein einfacher Mikrocontroller
8-Bit-Mikrocontroller
Mitglied der MC68HC11-Familie
Der MC68HC11E zeichnet sich durch besonders flexible und
umfangreiche EA sowie Zähler und Zeitgeber aus
2Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Einordnungin dieFamilie
A-Serie: MC68HC11Ax Grundmodell, z.B. MC68HC11A8 mit8-KByte-ROM, 256-Byte-RAM, 512-Byte-EEPROM, 8 x 8-Bit-DA-Wandler
D-Serie: MC68HC11Dx Economie-Version mit weniger Spei-cher und Peripherie
E-Serie: MC68HC11Ex Besonders flexible E/A, kombiniertesEPROM/EEPROM
F-Serie: MC68HC11Fx High-Speed Version, nicht gemulti-plexter externer 4 Mhz Bus, 1-KByte-RAM, extra E/A-Kanäle
G-Serie: MC68HC11Gx Version mit 10-Bit-DA-Wandler, ver-besserte Zeitgeber
K-Serie: MC68HC11Kx Hochleistungsversion mit hoher Ge-schwindigkeit, großem Speicher undSpeicherverwaltung
L-Serie: MC68HC11Lx Low-Power Version, großes ROM (16KBytes), statisches Design (Taktfre-quenzen bis 0 Hz)
M-Serie: MC68HC11Mx Basierend auf K-Serie, zusätzlichermathematischer Coprozessor, mehrDMA-Kanäle
P-Serie: MC68HC11Px Low-Power Version, zusätzliche serielleKanäle
3Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Prozessorkern– CISC-Architektur– Taktfrequenz bis 6 MHz– 8 Bit Datenbus, 16 Bit Adressbus– 2 x 8 Bit oder 1 x 16 Bit Akkumulatorregister– 2 x 16 Bit Indexregister– 6 Adressierungsarten– Gemeinsame Adressierung (Memory mapped IO)– 16 / 16 Bit Division– 8 x 8 Bit Multiplikation
Speicher– statisches RAM– ROM oder EPROM, EEPROM
4Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Zeitgeber und Ein-/Ausgabeeinheiten
– 5 parallele Ein-/Ausgabeeinheiten, insgesamt 38 Bit– 1 synchrone serielle Ein-/Ausgabeeinheit– 1 asynchrone serielle Ein-/Ausgabeeinheit– 1 Watchdog– 1 Zähler-/Zeitgebereinheit mit einem 16-Bit-Zähler und 8 Capture-und-Compare-Kanälen– 8 Digital/Analog-Wandlerkanäle, jeweils 8 Bit– 8-Bit-Erweiterungsbus im Daten-/Adressmultiplexing, 16- Bit-Adressen
Aufbau:Betriebsart-Steuerung
TaktUnterbrechungs-
Steuerung ROM oder EPROM(siehe Tabelle)
EEPROM(siehe Tabelle)
RAM(siehe Tabelle)
Prozessorkern
Zähler/Zeitgeber
Capture/Compare
Wat
chdo
gPu
ls A
kkum
ulat
or Peri
od. U
nter
brec
hung
Erweiterungsbus Adressen (8-15) Daten/Adressen (0-7)
Synchroneserielle
Schnittstelle(SPI)
Asynchrone serielleSchnittstelle (SCI)
Analog/DigitalWandler
ParalleleSchnittstelle A
ParalleleSchnittstelle D
ParalleleSchnittstelle E
ParalleleSchnittstelle B
ParalleleSchnittstelle C
Capture / Compare,Parallele EA
ErweiterungsbusAdressen (8-15),
Parallele EA
ErweiterungsbusDaten / Adressen (0-7),
Parallele EA
Sync. & async. serielle EA,Parallele EA
Analoge EA,Parallele EA
MODA MODB Quarz IRQ XIRQ Reset
Typ RAM ROM EPROM EEPROMMC68HC11E0 512 Bytes - - -MC68HC11E1 512 Bytes - - 512 BytesMC68HC11E9 512 Bytes 12 KBytes - 512 BytesMC68HC711E9 512 Bytes - 12 KBytes 512 BytesMC68HC11E20 768 Bytes 20 KBytes - 512 BytesMC68HC711E20 768 Bytes - 20 KBytes 512 BytesMC68HC811E2 256 Bytes - - 2 KBytes
6Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.1.1 Prozessorkern
Programmiermodell: 8- und 16 Bit Datentypen, Einzelbits
15 D 0
7 A 0 7 B 0
15 IX 0
15 IY 0
15 SP 0
15 PC 0
7 PSW 0 S X H I N Z V C
16 Bit Akkumulator D oder
8 Bit Akkumulatoren A & B
16 Bit Indexregister IX
16 Bit Indexregister IY
16 Bit Kellerzeiger SP (Stack Pointer)
16 Bit Programmzähler PC (Program Counter)
8 Bit Prozessorstatuswort
(C = Carry, V = Overflow, Z = Zero,
N = Negative, H = Half Carry, S = Stop Disable,
X, I = Interrupt Masken)
7Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Unmittelbar ADDA 5 A = A + 5 8B 05
Adressdirekt ADDA ($2000) A = A + (2000h) BB 00 20
Adressdirekt ADDA ($20) A = A + (20h) 9B 20 verkürzte Adr.
RegisterindirektADDA (IX + 5) A = A + (IX + 5) AB 05
Inhärent ABA A = A + B 1B
PC Relativ BRA (PC + $10) 25 0A
Adressierungsarten:
Einadressformat: Akku = Akku + Operand
8Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.1.2. Unterbrechungsbehandlung
Einfacher Vektorinterrupt
Vektoren fest den Komponenten und 2 externen Interrupt-
Eingängen zugeordnet
32 Vektoren (5 Bit Vektorbreite)
64 Bit Vektortabelle (16 Bit pro Eintrag = Adressbreite)
Vektortabelle fest am Ende des Adressraums positioniert
(FFC0 - FFFF)
Feste Prioritäten
Adresse Vektor Priorität Unterbrechungsquelle MaskenbitFFC0h – FFD5h 0 – 10 nieder reserviert -FFD6h 11 Asynchrone serielle Schnittstelle SCI IFFD8h 12 Synchrone serielle Schnittstelle SPI IFFDAh 13 Puls Akkumulator Flanke IFFDCh 14 Puls Akkumulator Überlauf IFFDEh 15 Zeitgeber Überlauf IFFE0h 16 Capture 4 / Compare 5 IFFE2h 17 Compare 4 IFFE4h 18 Compare 3 IFFE6h 19 Compare 2 IFFE8h 20 Compare 1 IFFEAh 21 Capture 3 IFFECh 22 Capture 2 IFFEEh 23 Capture 1 IFFF0h 24 Periodischer Interrupt IFFF2h 25 Externer Interrupt-Eingang IRQ IFFF4h 26 Externer Interrupt-Eingang XIRQ XFFF6h 27 Software Interrupt keinesFFF8h 28 Unbekannter Befehlscode (Trap) keinesFFFAh 29 Watchdog keinesFFFCh 30 Taktfehler keinesFFFEh 31 hoch Rücksetzen keines
10Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Externe Interrupt-Eingänge:
XIRQ: quasi nicht maskierbarer Interrupt, nach Resetzunächst
maskiert, Freigabe per Software durch X-Bit im CCR,
Freigabe ist irreversibel
IRQ: maskierbarer Interrupt, Freigabe und Sperre durch
I-Bit im CCREine der I-maskierten Unterbrechungsquellen kann durch ein Register (HPRIO) über alle anderen gehoben werden
5.1.3 Speicher und Adressraum
alle nicht belegten Adressenkönnen von externen Komponentenbelegt werden(sofern Erweiterungsbus aktiv, siehe später)
RAM256 – 768 Bytes
Ein-/AusgabeZähler/Zeitgeber
64 Bytes
EEPROM512 – 2048 Bytes
EPROM / ROM12 – 20 KBytes
0000h
1000h
8600h
FFFFh
Interrupt Vektortabelle64 Bytes
12Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.1.4 EA-Einheiten, Zähler und Zeitgeber
Digitale parallele EA
Einheit Eingabe-Bits
Ausgabe-Bits
Bidirektio-nale Bits
Adresse Geteilt mit
A 3 3 2 1000h Zähler/ZeitgeberB - 8 - 1004h Erweiterungsbus AdressenC - - 8 1003h Erweiterungsbus Daten/Adr.D - - 6 1008h Serielle E/A-EinheitenE 8 - - 100Ah Analog/Digital Wandler
13Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Digitale serielle EA
Synchrone serielle Schnittstelle(SPI)
Asynchrone serielleSchnittstelle (SCI)
TxD(Transmit
Data)
RxD(Receive
Data)
MOSI(Master
OutSlave
In)
MISO(Master
InSlaveOut)
SCK(SerialClock)
SS(SlaveSelect)
Max. Baudrate
async: 128 kBaud
sync: 1,5 MBaud
14Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Analog/Digital-Wandler
AnalogMUX
8-Bit AD-Wandler
Ausgangsregister1
Ausgangsregister2
Ausgangsregister3
Ausgangsregister4
Digital DEMUX
interner Datenbus8-Bit
Analog-Signal
Digitalwert
AnalogIn 0
AnalogIn 7
. . .
Wägeverfahren
32 µsec Wandlungszeit
8 Bit Auflösung
8 Kanäle
Single oder Multiple Channel Operation
15Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Zähler und Zeitgeber Taktgenerator AS (Address Strobe)
interner Prozessortakt 4
prog. Vorteiler( 2, 4, 16, 32) Takt für SPI
prog. Vorteiler( 1 ... 1664) Takt für SCI
Vorteiler( 26)
Puls-Akkum. Unterbrechung
prog. Vorteiler( 213, 214, 215, 216) Periodische Unterbrechung
(Real-Time Interrupt)
Vorteiler( 215)
Prozessor rücksetzenWatchdog( 1, 4, 16, 64)
prog. Vorteiler( 1, 4, 8, 16)
Capture- undCompare-Einheit
Puls-Akkumulatorexterner Eingang
Lebenszeichen
Capture- und
Compare-EinheitFreilaufender Zähler
16 Bit
Takt aus Vorteiler( 1, 4, 8, 16)
Zählerbus
Compare-Register 1
interner Datenbus
Compare 1
Unterbrechung
Capture-Register 1 Capture 1
Unterbrechung
Compare-Register 4 Compare 4
Unterbrechung
.
.
.
Capture-Register 3 Capture 3
Unterbrechung
Compare-Register 5 Compare 5/Capture 4Capture-Register 4
Unterbrechung
.
.
.
.
.
.
.
.
.
17Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.1.5 Erweiterungsbus
Der MC68HC11E kennt 4 Betriebsarten (MODA/MODB Eingänge)
Single Chip Mode
Kein Erweiterungsbus (parallele Ports B und C nutzbar) Expanded Mode
Erweiterungsbus aktiv (parallel Ports B und C nicht verfügbar) Test Mode
Wie Expanded Mode, zusätzliche Debug- und Kalibrierungs-
register ansprechbar Bootstrap Mode
Wie Single Chip Mode, zusätzlich Boot-ROM eingeblendet
18Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Aufbau des Erweiterungsbusses:
A8 – A15
Lat
ch A0 – A7
D0 – D7
RW
En
AS
RW
Port B
Port C
MC
68H
C11
E
19Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.4 MCore - optimiert für niedrigen Energieverbrauch
• Architektur bzw. Mikroarchitektur eines Prozessorkerns
• Primäres Ziel: niedriger Energieverbrauch
• Wird in verschiedenen Mikrocontrollerns verwendet,z.B. MMC2001, MMC2003, MMC2107, MMC2114, ...
Wir wollen uns hier auf die Energiespartechniken im Prozessorkern konzentrieren
20Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Eigenschaften: skalare RISC Architektur Load/Store Konzept 32 Bit Datenbus, Register und
Ausführungseinheiten 32 Bit Adressbus Feste 16 Bit Befehlslänge 4-stufige Pipeline 2 Registersätze mit je 16 Registern zum schnellen
Kontextwechsel 8-, 16- und 32-Bit Datentypen Statisches und dynamisches Power-Management Statisches CMOS Design (bis 0 Hz Taktfrequenz) 33 MHz maximale Taktfrequenz 1,8 bis 3,6 Volt Versorgungsspannung
21Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
Registersatz
Verringerung der Busaktivitäten
AllgemeinerRegistersatz
16 x 32 Bit
AlternativerRegistersatz
16 x 32 Bit
Steuerregister-satz
13 x 32 Bit
Multiplizierer,Dividierer,
Barrel-Shifter
Dynamisches Power-Management
Addierer, Subtrahierer,Logische Operationen,
Lade- und Speicheroperationen
Dynamisches Power-Management
Betriebsartensteuerung
Statisches Power-Management
Adresserzeugung
Code-Dichte
Befehls-Pipeline: 1. Befehl holen2. Befehl decodieren / Register lesen3. Befehl ausführen4. Register schreiben
Dynamisches Power-Management, Code-Dichte
Datenbus Adressbus
Low-Power Betriebsart(LPMD)
Operationswerk Steuerwerk
MCore Verringerung derBusaktivitäten
22Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.4.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
23Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
24Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.4.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
25Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.4.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
26Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
27Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5 Komodo - ein Forschungs-Mikrocontroller
Java
einfacheProgrammierung,
Threads
Echtzeit
Zeitbedingungen,Scheduling
MehrfädigeProzessortechnik
schnellerKontextwechsel
Komodo Mikrocontroller
Java Prozessor,mehrfädige Hardware,
Thread-basierteUnterbrechungsbehandlung,
Middleware
28Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
29Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
30Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
31Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5.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
32Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
Befehl holen Befehl dekodieren Stackadresseberechnen
Stack-Zugriff
Befehl ausführen,Speicherzugriff
Thread-Kennung Thread-Kennung Thread-Kennung Thread-Kennung Thread-Kennung
Befehl 1(aus Thread 1)
Befehl 2(aus Thread 2)
Befehl 3(aus Thread 3)
Befehl 4(aus Thread 3)
Befehl 5(aus Thread 4)
33Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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. . .
34Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5.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
35Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
36Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
37Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
38Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
39Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5.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
40Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
41Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
42Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
43Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5.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
44Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
45Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
5.5.5 Evaluierungs-Ergebnisse
Leistungsgewinn durch den mehrfädigen Ansatz für die Echtzeit-Scheduling Verfahren FPP, EDF, LLF and GP
LastprogrammFFT (ca. 6 Millionen Befehle)PID-Regler (ca. 6000 Befehle) Impulszähler (ca. 10 Befehle)
ModelleEinfädig (Standard Prozessor, 100 Takte Kontextwechselzeit)Mehrfädig mit 0 Takte Kontextwechselzeit, aber keiner LatenzzeitnutzungMehrfädig mit Latenzzeitnutzung
46Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
47Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
– 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.
48Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
49Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
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
50Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer
5. Beispiele verschiedener Mikrocontroller
– 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
Top Related