1 Universitä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
50
Embed
Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.
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
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
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
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
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
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