2.6 Mikrocontroller-Beispiele
description
Transcript of 2.6 Mikrocontroller-Beispiele
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
Bit Adressen- JTAG Test- und Debuginterface
Aufbau:
Takt
Unterbrechungs- Steuerung
FlashRAM
128 kByte
EEPROM 4 kByte
RAM 4 kByte
Prozessorkern
Erweiterungsbus Daten/Adressen (0-7) Adressen (8-15) Steuersignale
Synchrone serielle
Schnittstelle 2
(SPI)
2 x synchrone/ asynchrone
serielle Schnittstellen
(USART)
Analog/Digital Wandler
Parallele Schnittstelle A
Parallele Schnittstelle F
Parallele Schnittstelle D
Parallele Schnittstelle C
Parallele Schnittstelle B
Erweiterungsbus Daten / Adressen (0-7),
Parallele EA
Erweiterungsbus Adressen (8-15),
Parallele EA
Analoge EA, Testschnittstelle,
Parallele EA,
Quarz Reset
Parallele Schnittstelle E
Unterbrechungen (INT0-INT7)
Synchrone serielle
Schnittstelle 1
(Two Wire)
4 x Zähler/Zeitgeber (2 x 8 Bit, 2 x 16 Bit,
Capture/Compare, Pulsweitenmodulator)
Watchdog Test/Debug Schnittstelle
(JTAG)
Parallele Schnittstelle G
Erweiterungsbus Steuersignale,
Zähler/Zeitgeber, Parallele EA
Serielle EA, Zähler/Zeitgeber,
Parallele EA,
Unterbrechungen (0-3), Zähler/Zeitgeber,
Serielle EA, Parallele EA
Unterbrechungen (4-7), Zähler/Zeitgeber,
Serielle EA, Parallele EA
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte6
2.6 Mikrocontroller-Beispiele
2.6.1.1 Prozessorkern
Adress-, Daten- und Befehlsbusse des Prozessorkerns
FlashRAM
128 kByte
(Programmspeicher)
EEPROM 4 kByte
(Datenspeicher)
RAM 4 kByte
(Datenspeicher)
Prozessorkern
ALU
Registersatz
Zähler/Zeitgeber
Schnittstellen
8-Bit Datenbus
16-Bit Befehlsbus
Programmzähler 16-Bit Adressbus
• Harvard Architektur
• Direkte Verbindung
zwischen ALU und
Registersatz (RISC)
• Befehlsadressraum
64kWorte = 128 kBytes
• Taktfrequenz 8 MHz
(ATmega128L) und
16 MHz
(ATmega128)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte7
2.6 Mikrocontroller-Beispiele
Programmiermodell:
Load/Store-Architektur
RAMPZ (Bit0):Ansprechen deroberen oder unteren64k Byte des Programmspeichersals Datum
RAMPX, RAMPY beim ATmega128 nicht vorhanden(Datenspeicher 64 kBytes)
R0
R1
R2
R3
R13
R14
R26
R27
R28
R29
R30
R31
. . .
. . .
7 0
X-Register Low
X-Register High
Y-Register Low
Y-Register High
Z-Register Low
Z-Register High
PSW I T H S V N Z C
7 0
Prozessorstatuswort (C = Carry, V = Overflow, Z = Zero, N = Negative, H = Half Carry, S = Sign, I = Interrupt Maske, T = Bit Copy)
32 allgemeine Register
SPL
SPH
7 0
RAMPX
RAMPY
RAMPZ
7 0
Speichererweiterungsregister
Kellerzeiger (Stack Pointer)
PC
15 0
Programmzähler (Program Counter)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte8
2.6 Mikrocontroller-Beispiele
Registerdirekt ADD R1,R0 R1 = R1 + R0 0C 10
Unmittelbar SUBI R16,$10 R16 = R16 - 10h 51 00
Adressdirekt LDS R1,($2000) R1 = (2000h) 50 10 20 00
RegisterindirektLD R1,X R1 = (X) 90 1C
RegisterindirektLD R1,X+ R1 = (X), X++ 90 1D (Postinc, Predec)
Adressierungsarten:
2-Adress Format Rx = Rx + Ry (x, y {0 .. 31})
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte9
2.6 Mikrocontroller-Beispiele
RegisterindirektLD R1,Y+5 R1 = (Y + 5) 80 15 (Displacement)
PC Relativ RJMP $10 PC = (PC + 10) C0 10
133 Befehle
8 und 16 Bit Ganzahl-Datentypen, Einzelbits
Befehlsbreite 16 Bit (Ausnahme adressdirekte Adressierung, dort 32 Bit)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte10
2.6 Mikrocontroller-Beispiele
SLEEP-Befehl für statisches Power-Management
Betriebsarten:
Idle Mode: Prozessorkern abgeschaltet
ADC Noise Reduction Prozessorkern und Teil der Peripherie abgeschaltet
Power Save Mode Prozessorkern und alle Peripherie bis auf externe Unterbrechungen, Watchdog, eine serielle
Schnittstelle und ein Zähler/Zeitgeber abgeschaltet
Power Down Mode wie Power Save, nur Zähler/Zeitgeber ebenfalls abgeschaltet
Standby Mode wie Power Down, aber Taktgenerator bleibt zum schnellen
Wiederanfahren aktiv
Extended Standby Mode wie Power Save, aber Taktgenerator bleibt aktiv
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte11
2.6 Mikrocontroller-Beispiele
2.6.1.2. Unterbrechungsbehandlung
Einfacher Vektorinterrupt
Vektoren fest den Komponenten und 8 externen Interrupt-
Eingängen zugeordnet
35 Vektoren
70 Byte Vektortabelle (16 Bit pro Eintrag = Adressbreite)
Vektortabelle am Anfang des Programmadressraums positioniert (0000h – 0044h), kann jedoch auch auf den
Anfang des Boot-Bereiches verschoben werden
Feste Prioritäten, globales Maskenbit (I-Bit), jede Quelle kann
jedoch durch Steuerregister auch individuell maskiert werden
Adresse Vektor Priorität Unterbrechungsquelle 0000h 1 hoch Rücksetzen 0002h 2 Externer Interrupt-Eingang INT0 0004h 3 Externer Interrupt-Eingang INT1 0006h 4 Externer Interrupt-Eingang INT2 0008h 5 Externer Interrupt-Eingang INT3 000Ah 6 Externer Interrupt-Eingang INT4 000Ch 7 Externer Interrupt-Eingang INT5 000Eh 8 Externer Interrupt-Eingang INT6 0010h 9 Externer Interrupt-Eingang INT7 0012h 10 Zähler/Zeitgeber 2 (8 Bit) Compare 0014h 11 Zähler/Zeitgeber 2 (8 Bit) Überlauf 0016h 12 Zähler/Zeitgeber 1 (16 Bit) Capture 0018h 13 Zähler/Zeitgeber 1 (16 Bit) Compare A 001Ah 14 Zähler/Zeitgeber 1 (16 Bit) Compare B 001Ch 15 Zähler/Zeitgeber 1 (16 Bit) Überlauf 001Eh 16 Zähler/Zeitgeber 0 (8 Bit) Compare 0020h 17 Zähler/Zeitgeber 0 (8 Bit) Überlauf 0022h 18 Synchrone serielle Schnittstelle 2 (SPI) 0024h 19 Sync/async. Schnittstelle 1 (USART) empfangen 0026h 20 Sync/async. Schnittstelle 1 (USART) leer 0028h 21 Sync/async. Schnittstelle 1 (USART) senden 002Ah 22 Analog/Digitalwandler 002Ch 23 EEPROM bereit 002Eh 24 Analogvergleicher 0030h 25 Zähler/Zeitgeber 1 (16 Bit) Compare C 0032h 26 Zähler/Zeitgeber 3 (16 Bit) Capture 0034h 27 Zähler/Zeitgeber 3 (16 Bit) Compare A 0036h 28 Zähler/Zeitgeber 3 (16 Bit) Compare B 0038h 29 Zähler/Zeitgeber 3 (16 Bit) Compare C 003Ah 30 Zähler/Zeitgeber 3 (16 Bit) Überlauf 003Ch 31 Sync/async. Schnittstelle 2 (USART) empfangen 003Eh 32 Sync/async. Schnittstelle 2 (USART) leer 0040h 33 Sync/async. Schnittstelle 2 (USART) senden 0042h 34 Synchrone serielle Schnittstelle 1 (Two Wire) 0044h 35 niedrig Programmspeicher (FlashRAM) programmiert
2.6.1.3 Speicher und Adressraum
Internes FlashRAM
64k x 16 Bit
0000h 0044h
FFFFh Programmspeicher
0 15
Anwendungsbereich
Bootbereich
konfigurierbare Größe, 512, 1024, 2048 oder 4096 Worte
Externes RAM
Datenspeicher
0 7
0000h
0020h
0060h
0100h
1100h
FFFFh
Registersatz
EA-Register
Externe EA-Register
Internes RAM
4096 x 8 Bit
EEPROM
4096 x 8 Bit
0 7
Über EA-Register zugreifbar/ programmierbar
0000h
0FFFh
Interrupt-Vektortabelle
Interrupt-Vektortabelle
Boot-Bereich:
nur dort können Befehle zum Schreiben des FlashRAMs ausgeführt werden => generisches Ladeprogramm über serielle oder Debugschnittstelle dort ladbar
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte14
2.6 Mikrocontroller-Beispiele
2.6.1.4 EA-Einheiten, Zähler und Zeitgeber
Digitale parallele EAEinheit Eingabe-
Bits Ausgabe-
Bits Bidirektion
ale Bits Geteilt mit
A - - 8 Erweiterungsbus Daten/Adressen
B - - 8 Zähler/Zeitgeber, synchrone serielle E/A (SPI)
C - - 8 Erweiterungsbus Adressen
D - - 8 Ext. Unterbr. 0-3, Zähler/Zeitgeber, sync. /async. serielle E/A (USART, Two Wire)
E - - 8 Ext. Unterbr 4-7, Zähler/Zeitgeber, sync./async. serielle E/A (USART)
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,
Flash-RAM, statisches RAM, dynamisches RAM, PC-Karten, ...)
• Zeitgeber und Ein-/Ausgabeeinheiten
- 85 Bit breite parallele Ein-/Ausgabe- 2 synchrone serielle Ein-/Ausgabeschnittstellen- 4 asynchrone serielle Ein-/Ausgabeschnittstelle,
davon eine optimiert für den Bluetooth-Funkstandard
- 1 serielle Infrarot-Schnittstelle- 1 USB-Schnittstelle
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte24
2.6 Mikrocontroller-Beispiele
• Zeitgeber und Ein-/Ausgabeeinheiten (fortg.)
- 1 serielle I2C-Schnittstelle- 1 serielle Audio-Schnittstelle (I2S)- 1 Audiocontroller- 1 LCD-Anzeigecontroller- 16 DMA-Kanäle- 1 Echtzeit-Zähler mit einer Compare-Einheit- 1 Zähler mit 4 Compare-Einheiten und Watchdog-
Funktion- 2 Pulsweitenmodulatoren- vollständiger Erweiterungsbus mit 32 Bit Daten und
26 Bit Adressen
Takt
Unter-brechungs-Steuerung
32 KBytes Befehls-Cache
ProzessorkernARM 5TE
SerielleSchnittstellen(synchron,.asynchron,USB, I2C,I2S, IRed)
Echtzeituhr,Zeitgeber,Watchdog
PWM
Interrupts,parallele EA
Adr. Daten Steuer- signale, parallele EA
Quarz
32 KBytes Daten-Cache
VirtuelleSpeicherverwaltung
Daten
VirtuelleSpeicherverwaltung
Befehle
2 KBytesMini-Daten-
Cache
DMA-Controller
LCD-Controller
Audio-Controller
Erweiterungs-bus/
Speicher-controller
LCD-Anzeige,parallele EA
Audio-Schnittstelle,parallele EA
Serielle EA,parallele EA
Parallele Schnittstellen
Zeitgeber,parallele EA
Aufbau:
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)
Adresse
Vektor Unterbrechungsquelle Priorität
0h 0 Rücksetzen 1 4h 1 Undefinierter Befehl 6 8h 2 Software Interrupt 6 Ch 3 Abbruch vorgezogener Datenzugriff 5 10h 4 Abbruch Datenzugriff 2 14h 5 Reserviert - 18h 6 IRQ (Interrupt) 4 1Ch 7 FIQ (Fast Interrupt) 3
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte30
2.6 Mikrocontroller-Beispiele
FIQ (Fast Interrupt) erlaubt eine etwas kürzere Reaktionszeit auf einen Interrupt als IRQ
Grund: Der Prozessorkern entnimmt der Vektortabelle nicht die Adresse der Behandlungsroutine
Vielmehr springt er auf die Tabellenadresse. Dort muss dann ein Sprungbefehl zur Behandlungsroutine stehen => eher Sprungtabelle als Vektortabelle
FIQ ist der letzte Eintrag der Tabelle. Daher muss hier kein Sprungbefehl stehen, die Behandlungsroutine kann sofort beginnen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte31
2.6 Mikrocontroller-Beispiele
Die Zuordnung der externen und internen Komponenten auf IRQ und FIQ erfolgt durch einen integrierten Interruptcontroller
Mas
kenr
egis
ter
(IC
MR
) 0
3
1
Zuo
rdnu
ngsr
egis
ter
(IC
LR
) IRQ
FIQ. . .. . .
Unt
erbr
echu
ngsa
nfor
deru
ngen
der
peri
pher
en K
ompo
nent
en
Stat
usre
gist
er*
(IC
PR)
0
31
. . .
Wel
che
Kom
pone
nte
hat d
ieU
nter
brec
hung
aus
gelö
st ?
* Existiert auch als ICIP und ICFP Register getrennt für IRQ und FIQ
2.6.2.3 Speicher und Adressraum
außer Cache kein integrierterSpeicher
Externer Speicher ist inBänken zu je 64 MBytesorganisiert
Ext. statische Speicherbank 164 MBytes
Ext. statische Speicherbank 264 MBytes
Ext. statische Speicherbank 364 MBytes
Ext. statische Speicherbank 464 MBytes
Ext. statische Speicherbank 564 MBytes
Ext. statische Speicherbank 664 MBytes
Reserviert2 x 64 MBytes
PCMCIA Slot 14 x 64 MBytes
PCMCIA Slot 24 x 64 MBytes
Interne Komponenten3 x 64 MBytes
Reserviert21 x 64 MBytes
Ext. dynamische Speicherbank 164 MBytes
Ext. dynamische Speicherbank 264 MBytes
Ext. dynamische Speicherbank 364 MBytes
Ext. dynamische Speicherbank 464 MBytes
Reserviert20 x 64 MBytes
00000000h
04000000h
08000000h
0C000000h
10000000h
14000000h
18000000h
20000000h
30000000h
40000000h
4C000000h
A0000000h
A4000000h
A8000000h
AC000000h
B0000000h
FFFFFFFFh
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte33
2.6 Mikrocontroller-Beispiele
2.6.2.4 EA-Einheiten, Zähler und Zeitgeber
Digitale parallele EA
85 parallele E/A-Bits, Richtung einzelbitweise festlegbarJedes Bit kann als Interrupt-Eingang genutzt werden
Digitale serielle EA
4 asynchrone serielle Schnittstellen (Standard, Bluetooth, Modem, Hardware Handshake)
2 synchrone serielle Schnittstellen Spezielle serielle Schnittstellen (Fast Infrared, USB, I2C,
I2S)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte34
2.6 Mikrocontroller-Beispiele
TxD
(Transmit D
ata)
RxD
(Receive D
ata)
CT
S (Clear to Send)
RT
S (Request to Send)
DT
R (D
ata Terminal R
eady)
DSR
(Data Set R
eady)
DC
D (D
ata Carrier D
etect)
RI (R
ing Indicator) Schnittstelle 1
(Standard) Schnittstelle 2
(Bluetooth) Schnittstelle 4
(Modem)
Asynchrone serielle Schnittstellen
FIFOs (64 B
ytes)
FIFOs (64 B
ytes)
FIFOs (64 B
ytes)
TxD
(Transmit D
ata)
RxD
(Receive D
ata)
CT
S (Clear to Send)
RT
S (Request to Send)
TxD
(Transmit D
ata)
RxD
(Receive D
ata)
CT
S (Clear to Send)
RT
S (Request to Send)
FIFOs (64 B
ytes)
TxD
(Transmit D
ata)
RxD
(Receive D
ata)
Schnittstelle 3 (Hardware-Handshake)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte35
2.6 Mikrocontroller-Beispiele
synchrone und spezielle serielle Schnittstellen
TxD
RxD
Infrarot
USB
+
USB
-
USB
SDA
(Serial Data/A
ddress)
SLC
(Serial Clock)
I2C
SDO
(Serial Data O
ut)
SDI (Serial D
ata In)
CL
K (B
it Clock)
LR
(Left/Right)
I2S
TxD
RxD
FRM
(Fram
e)
CL
K (Internal Serial C
lock)
EX
TC
LK
(External Serial C
lock))
SSP
geteilt mit asynchroner
Schnittstelle 1 (Standard)
geteilt mit Audio-Controller
TxD
RxD
FRM
(Fram
e)
CL
K (Internal Serial C
lock)
NSSP
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte36
2.6 Mikrocontroller-Beispiele
Stereo-Datenübertragung zwischen Audio-Bausteinen über die I2S Schnittstelle
rechter Kanal1 32 linker Kanal1 32 rechter Kanal1 32 linker Kanal1 32 . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Bit Clock
Serial Data
Left/Right . . .
Stereodaten i Stereodaten i+1
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte37
2.6 Mikrocontroller-Beispiele
• Audio-Controller (Abspielen und Aufnehmen von Audiosignalen im PCM-Format)
• LCD Controller
Bilddatenim
externenSpeicher
DMA-Controller
FIFO DitheringFarbpalette Ausgabe-steuerung
Anzeige
Bild-punkte
Steuer-signale
LCD-Controller
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte38
2.6 Mikrocontroller-Beispiele
Zähler und Zeitgeber
(eher einfach, Controller mehr auf Kommunikations- denn Steuerungsaufgaben ausgelegt)
Vorteiler mitFeinjustierung 1 Hz Takt
Echtzeit-Zähler32 Bit
(freilaufend)
Compare-Register(Alarm)
Unterbrechung
1 HzAusgang
Systemtakt
Zähler32 Bit
(freilaufend)
Compare-Register 1 Unterbrechung
Compare-Register 2 Unterbrechung
Compare-Register 3 Unterbrechung
Compare-Register 4 Unterbrechung,
Watchdog Ereignis
Pulsweiten-modulator 1
Pulsweiten-modulator 2
PWMAusgang 2
PWMAusgang 1
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte39
2.6 Mikrocontroller-Beispiele
DMA-Controller
16 Kanäle, frei den internen und zwei externen Komponentenzuordenbar
DRCMR0DREQ1
DREQ2 DRCMR1
Interne DMA-Anforderung 1
Interne DMA-Anforderung 38
Asynchrone serielle Schnittstellen,synchrone serielle Schnittstelle,I2C,I2S,USB,Audio Controller
. . .
. . .
DRCMR2
DRCMR39
DMA-Kanal 0
Steuerregister
DMA-Kanal 15
Steuerregister
. . .
. . .
Externe EingängeZuordnung
DMA Controller
4 Bit
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte40
2.6 Mikrocontroller-Beispiele
Bedienung der DMA Gruppen im Round Robin Verfahren
Gruppe Kanäle Priorität Bedienhäufigkeit 1 0,1,2,3 hoch 4 2 4,5,6,7 mittel 2 3 8,9,10,11 nieder 1 4 12,13,14,15 nieder 1
1 2 1 3 1 2 1 4
Gruppen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte41
2.6 Mikrocontroller-Beispiele
2.6.2.5 Erweiterungsbus
• 26-Bit Adressbus
• 32-Bit Datenbus
• Steuerbus
- zum Anschluss von 6 statischen Speicherbänken à 64 MBytes
- zum Anschluss von 4 dynamischen Speicherbänken à 64 MBytes
- zum Anschluss einer PC-Kartenschnittstelle (PCMCIA)
Statische Speicherbank 1 (64 Mbytes)
Statische Speicherbank 2 (64 Mbytes)
Statische Speicherbank 3 (64 Mbytes)
Statische Speicherbank 4 (64 Mbytes)
Statische Speicherbank 5 (64 Mbytes)
Statische Speicherbank 6 (64 Mbytes)
Dynamische Speicherbank 1 (64 Mbytes)
Dynamische Speicherbank 2 (64 Mbytes)
Dynamische Speicherbank 3 (64 Mbytes)
Dynamische Speicherbank 4 (64 Mbytes)
S
peic
her-
Con
trol
ler
PXA255 CS1
CS2
CS3
CS4
CS5
CS6
DCS1
DCS2
DCS3
DCS4
Daten (D0 – D31)
Adressen (A0 – A25)
Steuersignale
Multi- plex
PC-Karten-schnittstelle
(D0 – D15)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte43
2.6 Mikrocontroller-Beispiele
2.6.3 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
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte44
2.6 Mikrocontroller-Beispiele
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
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte45
2.6 Mikrocontroller-Beispiele
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
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
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)
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
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
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
Durchsatz = Anzahl Befehle / Anzahl Taktzyklen (IPC, Instructions per Cycle)
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
.
.
.