82
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 - ein kompakter Mikrocontroller 8-Bit-Mikrocontroller Mitglied der AVR8-Familie ATmega Reihe größere Bauform als ATtiny ATtiny: DIL8, ATmega: QIL64, etwas erweiterter Prozessorkern

2.6 Mikrocontroller-Beispiele

  • Upload
    felix

  • View
    63

  • Download
    0

Embed Size (px)

DESCRIPTION

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. 2.6 Mikrocontroller-Beispiele. - PowerPoint PPT Presentation

Citation preview

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

.

.

.

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+Latenz-Prädiktor