Upload
dinhnguyet
View
215
Download
0
Embed Size (px)
Citation preview
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte1
2.6 Mikrocontroller-Beispiele
2.6.1 ATmega128A - ein kompakter Mikrocontroller
8-Bit-Mikrocontroller
Mitglied der AVR8-Familie
ATmega Reihe
größere Bauform als ATtiny ATtiny: DIL8, ATmega: QIL64,
etwas erweiterter Prozessorkern
50% Reduktion des Energieverbrauchs zu ATmega128
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. ATmega128A 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 16 MHz
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
Registerindirekt LD R1,X R1 = (X) 90 1C
Registerindirekt LD 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
Registerindirekt LD 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
Befehsbreite 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 EA
Einheit Eingabe-Bits
Ausgabe-Bits
Bidirektionale 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 RunningConversion 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
a12
8
WR WR
Po
rt G
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte21
2.6 Mikrocontroller-Beispiele
2.6.2 PXA 270 – ein Hochleistungs-Mikrocontroller
• 32 Bit Mikrocontroller
• Weiterentwicklung der StrongARM Familie
• ARM Version 5TE RISC Prozessorkern
• Vielfältige Peripherie
• Wird z.B. gerne in portablen Geräten eingesetzt
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 624 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- Multimedia Coprozessor- Ruhebetrieb
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte23
2.6 Mikrocontroller-Beispiele
• Speicher- 256 kBytes statischer Speicher (zusätzlich zu den bereits
genannten Caches)- Schnittstelle für verschiedene Speichertypen (ROM, Flash-
RAM, statisches RAM, dynamisches RAM, PC-Karten, ...)
• Zeitgeber und Ein-/Ausgabeeinheiten
- 119 Bit breite parallele Ein-/Ausgabe- 3 synchrone serielle Ein-/Ausgabeschnittstellen- 3 asynchrone serielle Ein-/Ausgabeschnittstelle, davon eine
optimiert für den Bluetooth-Funkstandard- 1 serielle Infrarot-Schnittstelle- 2 USB-Schnittstellen
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 Highspeed Chip zu Chip Schnittstelle (Mobile Serial Link)- 1 Tastaturschnittstelle- 1 USIM (Universal Subscriber Identity Module) Schnittstelle
für Mobiltelefonie- 1 Kameraschnittstelle- 1 LCD-Anzeigecontroller- 32 DMA-Kanäle
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte25
2.6 Mikrocontroller-Beispiele
• Zeitgeber und Ein-/Ausgabeeinheiten (fortg.)
- 1 Echtzeit-Zähler- 1 Zähler mit 4 Compare-Einheiten und Watchdog-Funktion- 8 Zeitgeber- 4 Pulsweitenmodulatoren- vollständiger Erweiterungsbus mit 32 Bit Daten und 26 Bit
Adressen
Aufbau:
Takt
Unter-
brechungs-
Steuerung
32 KBytes Befehls-
Cache
Prozessorkern
ARM 5TE
Multimedia Coprozessor
Serielle
Schnittstellen
Tastatur-
Schnittstelle, Kamera-
Schnittstelle,
MSL,
Echtzeituhr,
Zeitgeber,
Watchdog PWM,
USIM
Interrupts,
parallele EA
Adr. Daten Steuer-
signale,
parallele EA
Quarz
32 KBytes Daten-Cache
Virtuelle
Speicherverwaltung
Daten
Virtuelle
Speicherverwaltung
Befehle
2 KBytes
Mini-Daten-
Cache
DMA-Controller
LCD-
Controller
Audio-
Controller
Erweiterungs
-bus/
Speicher-
controller
LCD-Anzeige,
parallele EA
Audio-
Schnittstelle,
parallele EA
Serielle EA,
Kamera,
Tastatur,
parallele EA
Parallele Schnittstellen
Zeitgeber,
Pulsweitenmodulator,
USIM
parallele EA
256 KBytes statischer
Speicher
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte27
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. Brinkschulte28
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 und
System
FIQ IRQ Supervisor Abbruch Undefiniert
allg
emei
ne
Reg
iste
rS
tatu
sreg
iste
r
0 310 310 31 0 31 0 31 0 31
PC : Programm Counter, Programmzähler
CPSR : Current Program Status Register, Prozessorstatuswort
SPSR : 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. Brinkschulte29
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
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte30
2.6 Mikrocontroller-Beispiele
Acht Arbeitsmodi:
• Turbo-Modus: hohe Taktfrequenz
• Half-Turbo-Modus: halbe Taktfrequenz
• Normaler Modus: niedere Taktfrequenz, Umschaltung zu hoher Taktfrequenz in Nanosekunden
• Idle-Modus: Kern ist angehalten, Wecken durch Interrupt
• Deep-Idle-Modus: Wie Idle-Modus, jedoch bleiben nur Tastatur und LCD aktiv
• Standby-Modus: Kern und alle Komponenten bis auf Echtzeituhr, Takt und Power-Manager abgeschaltet, erniedrigte Versorgungsspannung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte31
2.6 Mikrocontroller-Beispiele
Acht Arbeitsmodi (fortg.):
• Sleep-Modus: Wie Standby, jedoch mit weiter reduzierter Versorgungsspannung, nur Echtzeituhr, Takt und Power-Manager und vom Benutzer definierte Komponenten bewahren ihren Zustand
• Deep-Sleep-Modus: Wie Sleep-Modus, nur Echtzeituhr, Takt und Power-Manager bewahren ihren Zustand
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte32
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. Brinkschulte33
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. Brinkschulte34
2.6 Mikrocontroller-Beispiele
Die Zuordnung der externen und internen Komponenten auf IRQ und FIQ erfolgt durch einen integrierten Interruptcontroller
Mas
ken
reg
iste
r
(IC
MR
) 0
31
Zu
ord
nu
ng
sreg
iste
r
(IC
LR
) IRQ
FIQ. . .. . .
Un
terb
rech
un
gsa
nfo
rder
un
gen
der
peri
ph
eren
Kom
po
nen
ten
Sta
tusr
egis
ter*
(IC
PR
) 0
3
1. . .
Wel
che
Kom
pon
ente
hat
die
Un
terb
rech
un
g a
usg
elö
st ?
* Existiert auch als ICIP und ICFP
Register getrennt für IRQ und FIQ
2.6.2.3 Speicher und Adressraum
Externer Speicher ist inBänken zu je 64 MBytesorganisiert
Ext. statische Speicherbank 1
64 MBytes
Ext. statische Speicherbank 2 64 MBytes
Ext. statische Speicherbank 3 64 MBytes
Ext. statische Speicherbank 4
64 MBytes
Ext. statische Speicherbank 5 64 MBytes
Ext. statische Speicherbank 6 64 MBytes
Reserviert
2 x 64 MBytes
PCMCIA Slot 1
4 x 64 MBytes
PCMCIA Slot 2
4 x 64 MBytes
Interne Komponenten,
interner Speicher
8 x 64 MBytes
Reserviert
16 x 64 MBytes
Ext. dynamische Speicherbank 1
64 MBytes
Ext. dynamische Speicherbank 2
64 MBytes
Ext. dynamische Speicherbank 3 64 MBytes
Ext. dynamische Speicherbank 4
64 MBytes
Reserviert
20 x 64 MBytes
00000000h
04000000h
08000000h
0C000000h
10000000h
14000000h
18000000h
20000000h
30000000h
40000000h
60000000h
A0000000h
A4000000h
A8000000h
AC000000h
B0000000h
FFFFFFFFh
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte36
2.6 Mikrocontroller-Beispiele
2.6.2.4 EA-Einheiten, Zähler und Zeitgeber
Digitale parallele EA
119 parallele E/A-Bits, Richtung einzelbitweise festlegbarJedes Bit kann als Interrupt-Eingang genutzt werden
Digitale serielle EA
3 asynchrone serielle Schnittstellen (Standard, Bluetooth, Modem)
3 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. Brinkschulte37
2.6 Mikrocontroller-Beispiele
Tx
D (T
ran
smit D
ata
)
Rx
D (R
eceive Da
ta)
CT
S (C
lear to
Sen
d)
RT
S (R
equ
est to S
end)
DT
R (D
ata
Term
ina
l Rea
dy)
DS
R (D
ata
Set R
ead
y)
DC
D (D
ata
Ca
rrier D
etect)
RI (R
ing
Ind
icato
r)
Schnittstelle 1
(Standard)
Schnittstelle 2
(Bluetooth)
Schnittstelle 3
(Modem)
Asynchrone serielle Schnittstellen
FIF
Os (6
4 B
ytes)
FIF
Os (6
4 B
ytes)
FIF
Os (6
4 B
ytes)
Tx
D (T
ran
smit D
ata
)
Rx
D (R
eceive Da
ta)
CT
S (C
lear to
Sen
d)
RT
S (R
equ
est to S
end)
Tx
D (T
ran
smit D
ata
)
Rx
D (R
eceive Da
ta)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte38
2.6 Mikrocontroller-Beispiele
synchrone und spezielle serielle Schnittstellen
Tx
D
Rx
D
Infrarot
US
B+
US
B-
USB
SD
A (S
erial D
ata
/Ad
dress)
SL
C (S
erial C
lock
)
I2C
SD
O (S
erial D
ata
Ou
t)
SD
I (Seria
l Da
ta In
)
CL
K (B
it Clo
ck)
LR
(Left/R
ight)
I2S
Tx
D
Rx
D
FR
M (F
ram
e)
CL
K (In
terna
l Seria
l Clo
ck)
EX
TC
LK
(Extern
al S
erial C
lock))
SSP1,2,3
geteilt mit
asynchroner
Schnittstelle 1 (Standard)
geteilt mit Audio-Controller
CL
KE
N (In
ternal C
lock E
neb
lae)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte39
2.6 Mikrocontroller-Beispiele
Stereo-Datenübertragung zwischen Audio-Bausteinen über die I2S Schnittstelle
rechter Kanal1 32 linker Kanal1 32 rechter Kanal
1 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. Brinkschulte40
2.6 Mikrocontroller-Beispiele
• Audio-Controller (Abspielen und Aufnehmen von Audiosignalen im PCM-Format)
• LCD Controller
Bilddaten
im
externen
Speicher
DMA-
ControllerFIFO DitheringFarbpalette Ausgabe-
steuerungAnzeige
Bild-
punkte
Steuer-
signale
LCD-Controller
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte41
2.6 Mikrocontroller-Beispiele
Zähler und Zeitgeber
Prog.
Vo
Prog.
Vortei
Prog.
Vortei
Prog.
Vortei
Prog.
Vor
Prog.
Vort
Prog.
Vortei
4 Compare-
Register
4 Compare-
Register
4 Compare-
Register
4 x Compare-
Register
PXA255 Kompatibilitäts-
Zeitgeber
Echtzeituhr
100 Hz Takt
1 kHz Takt
8 x prog.
Vorteiler
Compare-
Register 1-8
Compare-
Register 1-8
Pulsweiten-
modulator 1-4 Pulsweiten-
modulator 1-4 Pulsweiten-
modulator 1-4
Vorteiler
1 Hz Takt
Echtzeit-
Zähler
32 Bit (freilaufend)
Compare-
Register
(Alarm)
Echtzeit-
Unterbrechung
1 Hz
Ausgang
Systemtakt
Zähler 32 Bit
(freilaufend)
Unterbrechung 1-4,
Watchdog Ereignis
4 x Pulsweiten-
modulator
PWM Ausgang
1-4
Feinjus-
tierung
Echtzeit- Zähler
32 Bit (freilaufend)
Compare-Register
(Alarm)
Echtzeit-
Unterbrechung
Echtzeit-
Zähler
32 Bit (freilaufend)
Compare-
Register
(Alarm)
Echtzeit-
Unterbrechung
Echtzeit-
Zähler
32 Bit (freilaufend)
Compare-
Register
(Alarm)
Echtzeit-
Unterbrechung
Compare-
Register 4
Compare-Register 3
Compare-
Register 2
Compare-
Register 1-8
Unterbrechung 5-12 Compare-
Register 1-8
8 x Compare-
Register
Compare-
Register 1-8
Compare-
Register 1-8
Compare-
Register 4
Compare-Register 3
Compare-
Register 2
Compare-
Register 1-8
Compare-
Register 1-8
8 x Zähler 32 Bit
(freilaufend)
Betriebssystem-Zeitgeber
Pulsweitenmodulator
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte42
2.6 Mikrocontroller-Beispiele
DMA-Controller
32 Kanäle, frei den internen und drei externen Komponenten zuordenbar
DRCMR0 DREQ1
DREQ2 DRCMR1
Interne DMA-Anforderung 1
Interne DMA-Anforderung 72
Asynchrone serielle Schnittstellen,
synchrone serielle Schnittstelle,
I2C,
I2S,
USB,
Audio Controller
. . .
. . .
DRCMR2
DRCMR73
DMA-Kanal 0
Steuerregister
DMA-Kanal
31
Steuerregister
. . .
. . .
Externe Eingänge 1 und 2 Zuordnung
DMA Controller
5 Bit
DRCMR74 DREQ3 Externer Eingang 3
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte43
2.6 Mikrocontroller-Beispiele
Bedienung der DMA Gruppen im Round Robin Verfahren
1 2 1 3 1 2 1 4
Gruppen
Gruppe Kanäle Priorität Bedienhäufigkeit
1 0,1,2,3,16,17,18,19 hoch 4 2 4,5,6,7,20,21,22,23 mittel 2 3 8,9,10,11,24,25,26,27 nieder 1 4 12,13,14,15,28,29,30,31 nieder 1
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte44
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)
Sp
eich
er-C
on
tro
ller
PXA270
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. Brinkschulte46
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. Brinkschulte47
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. Brinkschulte48
2.6 Mikrocontroller-Beispiele
Registersatz
Verringerung der Busaktivitäten
Allgemeiner
Registersatz
16 x 32 Bit
Alternativer
Registersatz
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 holen
2. Befehl decodieren / Register lesen
3. Befehl ausführen
4. Register schreiben
Dynamisches Power-Management, Code-Dichte
Datenbus Adressbus
Low-Power Betriebsart
(LPMD)
Operationswerk Steuerwerk
MCore Verringerung der
Busaktivitäten
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte49
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. Brinkschulte50
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 und
unmittelbarer Konstanten
Adressierung mit Displacement
Adressierung mit Register und
Displacement
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte51
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 LPMD0Stop 0 0Wait 0 1Doze 1 0Run 1 1
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte52
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. Brinkschulte53
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. Brinkschulte54
2.6 Mikrocontroller-Beispiele
2.6.4 Komodo - ein Forschungs-Mikrocontroller
Java
einfache
Programmierung,
Threads
Echtzeit
Zeitbedingungen,
Scheduling
Mehrfädige
Prozessortechnik
schneller
Kontextwechsel
Komodo Mikrocontroller
Java Prozessor,
mehrfädige Hardware,
Thread-basierte
Unterbrechungsbehandlung,
Middleware
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte55
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. Brinkschulte56
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. Brinkschulte57
2.6 Mikrocontroller-Beispiele
Architektur des Komodo-Mikrocontrollers
Prozessorkern
mehrfädige Java Pipeline
Datentransfer-
PufferSignal-
Einheit
Ein-/Ausgabe-
Einheit
Weck-Einheit Parallele Ein-
/Ausgabe-
Einheit
Serielle Ein-
/Ausgabe-
Einheit
Capture-
/Compare-
Einheit
Zähler-
/Zeitgeber-
Einheit
Speicher-
schnittstelle
Externer
Speicher
Externe
Ereignisse
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. Brinkschulte58
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. Brinkschulte59
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 Stackadresse
berechnen
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. Brinkschulte60
2.6 Mikrocontroller-Beispiele
Mikroarchitektur:
Mehrfädig(0 Takte Kontextwechsel)
Bis zu 4 Hardware Threads
Prioritäten-Managerfür Echtzeit-Scheduling(in Hardware)
Signaleinheit für externeKomponenten
Befehlsholeinheit
PC1 PC2 PC3 PC4
Sp
eich
ersc
hn
itts
tell
e
Adressen
Befehle
IW1 IW2 IW3 IW4
Prioritätenmanager
BefehlsdecodiereinheitMikro-
code
ROM
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
usg
abes
chn
itts
tell
e
. . .
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte61
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. Brinkschulte62
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. Brinkschulte63
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 A
30 Taktzyklen
Thread B
20 Taktzyklen
Thread C
40 Taktzyklen
Thread A
30 Taktzyklen
Thread B
20 Taktzyklen
Thread C
40 Taktzyklen. . .. . .
100 Taktzyklen 100 Taktzyklen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte64
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 Exaktund Minimum darf 100 % nicht überschreiten
Der Latenzgewinn über 100% kann von der Klasse Maximumgenutzt werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte65
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. Brinkschulte66
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. Brinkschulte67
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. Brinkschulte68
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. Brinkschulte69
2.6 Mikrocontroller-Beispiele
Verküpfung von Ereignissen und Threads durch die Signaleinheit
Verbindungsmatrix mit
Steuer- und Statusregister
Steuerregister StatusregisterP
wer
ipher
ie-S
ignal
e (E
reig
nis
se)
Thread 1 Thread 2 Thread 3 Thread 4
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte70
2.6 Mikrocontroller-Beispiele
2.6.4.4 Anbindung der periphere Komponenten
Einfach (kein Forschungsschwerpunkt in diesem Projekt)
Ein-/Ausgabe-
Zugriffseinheit
Serielle
Schnittstelle
1
Serielle
Schnittstelle
2
Parallele
Schnittstelle
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. Brinkschulte71
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. Brinkschulte72
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
Lastprogramm
FFT (ca. 6 Millionen Befehle)
PID-Regler (ca. 6000 Befehle)
Impulszähler (ca. 10 Befehle)
Modelle
Einfädig (Standard Prozessor, 100 Takte Kontextwechselzeit)
Mehrfädig mit 0 Takte Kontextwechselzeit, aber keiner Latenzzeitnutzung
Mehrfädig mit Latenzzeitnutzung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte73
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. Brinkschulte74
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 eliminiertdiesen Nachteil. Leistungssteigerung um Faktor 1,45
– Mehrfädigen Prozessorkern mit Latenzzeitnutzung steigertden 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. Brinkschulte75
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. Brinkschulte76
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. Brinkschulte77
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. Brinkschulte78
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. Brinkschulte79
2.6 Mikrocontroller-Beispiele
Abhilfe: Einsatz eines geschlossenen Regelkreises
Regelung des Durchsatzes mittels eines PID-Reglers
PID-
Regler
Komodo-
Prozessorkern
Messung
des
Durchsatze
s
Sollwert
Stellwert
Istwert
Neuer GP-Prozentsatz -
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte80
2.6 Mikrocontroller-Beispiele
ModifizierteKomodo-Pipeline
Befehlsholeeinheit
PC1 PC2 PC3 PC4
Sp
eich
ersc
hn
itts
tell
e
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
usg
abes
chn
itts
tell
e
. . .
PID-
Regler
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte81
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. Brinkschulte82
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. Brinkschulte83
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. Brinkschulte84
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. Brinkschulte85
2.6 Mikrocontroller-Beispiele
Durchsatz eines Erzeuger-Threads in einem Erzeuger/Verbraucher-Benchmark
GP = 0,49
PID-Regler+Latenz-Prädiktor