Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1...

50
1 Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E - ein einfacher Mikrocontroller 8-Bit-Mikrocontroller Mitglied der MC68HC11-Familie Der MC68HC11E zeichnet sich durch besonders flexible und umfangreiche EA sowie Zähler und Zeitgeber aus

Transcript of Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1...

Page 1: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

1Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.1 MC68HC11E - ein einfacher Mikrocontroller

8-Bit-Mikrocontroller

Mitglied der MC68HC11-Familie

Der MC68HC11E zeichnet sich durch besonders flexible und

umfangreiche EA sowie Zähler und Zeitgeber aus

Page 2: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

2Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Einordnungin dieFamilie

A-Serie: MC68HC11Ax Grundmodell, z.B. MC68HC11A8 mit8-KByte-ROM, 256-Byte-RAM, 512-Byte-EEPROM, 8 x 8-Bit-DA-Wandler

D-Serie: MC68HC11Dx Economie-Version mit weniger Spei-cher und Peripherie

E-Serie: MC68HC11Ex Besonders flexible E/A, kombiniertesEPROM/EEPROM

F-Serie: MC68HC11Fx High-Speed Version, nicht gemulti-plexter externer 4 Mhz Bus, 1-KByte-RAM, extra E/A-Kanäle

G-Serie: MC68HC11Gx Version mit 10-Bit-DA-Wandler, ver-besserte Zeitgeber

K-Serie: MC68HC11Kx Hochleistungsversion mit hoher Ge-schwindigkeit, großem Speicher undSpeicherverwaltung

L-Serie: MC68HC11Lx Low-Power Version, großes ROM (16KBytes), statisches Design (Taktfre-quenzen bis 0 Hz)

M-Serie: MC68HC11Mx Basierend auf K-Serie, zusätzlichermathematischer Coprozessor, mehrDMA-Kanäle

P-Serie: MC68HC11Px Low-Power Version, zusätzliche serielleKanäle

Page 3: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

3Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Prozessorkern– CISC-Architektur– Taktfrequenz bis 6 MHz– 8 Bit Datenbus, 16 Bit Adressbus– 2 x 8 Bit oder 1 x 16 Bit Akkumulatorregister– 2 x 16 Bit Indexregister– 6 Adressierungsarten– Gemeinsame Adressierung (Memory mapped IO)– 16 / 16 Bit Division– 8 x 8 Bit Multiplikation

Speicher– statisches RAM– ROM oder EPROM, EEPROM

Page 4: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

4Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Zeitgeber und Ein-/Ausgabeeinheiten

– 5 parallele Ein-/Ausgabeeinheiten, insgesamt 38 Bit– 1 synchrone serielle Ein-/Ausgabeeinheit– 1 asynchrone serielle Ein-/Ausgabeeinheit– 1 Watchdog– 1 Zähler-/Zeitgebereinheit mit einem 16-Bit-Zähler und 8 Capture-und-Compare-Kanälen– 8 Digital/Analog-Wandlerkanäle, jeweils 8 Bit– 8-Bit-Erweiterungsbus im Daten-/Adressmultiplexing, 16- Bit-Adressen

Page 5: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

Aufbau:Betriebsart-Steuerung

TaktUnterbrechungs-

Steuerung ROM oder EPROM(siehe Tabelle)

EEPROM(siehe Tabelle)

RAM(siehe Tabelle)

Prozessorkern

Zähler/Zeitgeber

Capture/Compare

Wat

chdo

gPu

ls A

kkum

ulat

or Peri

od. U

nter

brec

hung

Erweiterungsbus Adressen (8-15) Daten/Adressen (0-7)

Synchroneserielle

Schnittstelle(SPI)

Asynchrone serielleSchnittstelle (SCI)

Analog/DigitalWandler

ParalleleSchnittstelle A

ParalleleSchnittstelle D

ParalleleSchnittstelle E

ParalleleSchnittstelle B

ParalleleSchnittstelle C

Capture / Compare,Parallele EA

ErweiterungsbusAdressen (8-15),

Parallele EA

ErweiterungsbusDaten / Adressen (0-7),

Parallele EA

Sync. & async. serielle EA,Parallele EA

Analoge EA,Parallele EA

MODA MODB Quarz IRQ XIRQ Reset

Typ RAM ROM EPROM EEPROMMC68HC11E0 512 Bytes - - -MC68HC11E1 512 Bytes - - 512 BytesMC68HC11E9 512 Bytes 12 KBytes - 512 BytesMC68HC711E9 512 Bytes - 12 KBytes 512 BytesMC68HC11E20 768 Bytes 20 KBytes - 512 BytesMC68HC711E20 768 Bytes - 20 KBytes 512 BytesMC68HC811E2 256 Bytes - - 2 KBytes

Page 6: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

6Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.1.1 Prozessorkern

Programmiermodell: 8- und 16 Bit Datentypen, Einzelbits

15 D 0

7 A 0 7 B 0

15 IX 0

15 IY 0

15 SP 0

15 PC 0

7 PSW 0 S X H I N Z V C

16 Bit Akkumulator D oder

8 Bit Akkumulatoren A & B

16 Bit Indexregister IX

16 Bit Indexregister IY

16 Bit Kellerzeiger SP (Stack Pointer)

16 Bit Programmzähler PC (Program Counter)

8 Bit Prozessorstatuswort

(C = Carry, V = Overflow, Z = Zero,

N = Negative, H = Half Carry, S = Stop Disable,

X, I = Interrupt Masken)

Page 7: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

7Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Unmittelbar ADDA 5 A = A + 5 8B 05

Adressdirekt ADDA ($2000) A = A + (2000h) BB 00 20

Adressdirekt ADDA ($20) A = A + (20h) 9B 20 verkürzte Adr.

RegisterindirektADDA (IX + 5) A = A + (IX + 5) AB 05

Inhärent ABA A = A + B 1B

PC Relativ BRA (PC + $10) 25 0A

Adressierungsarten:

Einadressformat: Akku = Akku + Operand

Page 8: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

8Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.1.2. Unterbrechungsbehandlung

Einfacher Vektorinterrupt

Vektoren fest den Komponenten und 2 externen Interrupt-

Eingängen zugeordnet

32 Vektoren (5 Bit Vektorbreite)

64 Bit Vektortabelle (16 Bit pro Eintrag = Adressbreite)

Vektortabelle fest am Ende des Adressraums positioniert

(FFC0 - FFFF)

Feste Prioritäten

Page 9: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

Adresse Vektor Priorität Unterbrechungsquelle MaskenbitFFC0h – FFD5h 0 – 10 nieder reserviert -FFD6h 11 Asynchrone serielle Schnittstelle SCI IFFD8h 12 Synchrone serielle Schnittstelle SPI IFFDAh 13 Puls Akkumulator Flanke IFFDCh 14 Puls Akkumulator Überlauf IFFDEh 15 Zeitgeber Überlauf IFFE0h 16 Capture 4 / Compare 5 IFFE2h 17 Compare 4 IFFE4h 18 Compare 3 IFFE6h 19 Compare 2 IFFE8h 20 Compare 1 IFFEAh 21 Capture 3 IFFECh 22 Capture 2 IFFEEh 23 Capture 1 IFFF0h 24 Periodischer Interrupt IFFF2h 25 Externer Interrupt-Eingang IRQ IFFF4h 26 Externer Interrupt-Eingang XIRQ XFFF6h 27 Software Interrupt keinesFFF8h 28 Unbekannter Befehlscode (Trap) keinesFFFAh 29 Watchdog keinesFFFCh 30 Taktfehler keinesFFFEh 31 hoch Rücksetzen keines

Page 10: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

10Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Externe Interrupt-Eingänge:

XIRQ: quasi nicht maskierbarer Interrupt, nach Resetzunächst

maskiert, Freigabe per Software durch X-Bit im CCR,

Freigabe ist irreversibel

IRQ: maskierbarer Interrupt, Freigabe und Sperre durch

I-Bit im CCREine der I-maskierten Unterbrechungsquellen kann durch ein Register (HPRIO) über alle anderen gehoben werden

Page 11: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

5.1.3 Speicher und Adressraum

alle nicht belegten Adressenkönnen von externen Komponentenbelegt werden(sofern Erweiterungsbus aktiv, siehe später)

RAM256 – 768 Bytes

Ein-/AusgabeZähler/Zeitgeber

64 Bytes

EEPROM512 – 2048 Bytes

EPROM / ROM12 – 20 KBytes

0000h

1000h

8600h

FFFFh

Interrupt Vektortabelle64 Bytes

Page 12: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

12Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.1.4 EA-Einheiten, Zähler und Zeitgeber

Digitale parallele EA

Einheit Eingabe-Bits

Ausgabe-Bits

Bidirektio-nale Bits

Adresse Geteilt mit

A 3 3 2 1000h Zähler/ZeitgeberB - 8 - 1004h Erweiterungsbus AdressenC - - 8 1003h Erweiterungsbus Daten/Adr.D - - 6 1008h Serielle E/A-EinheitenE 8 - - 100Ah Analog/Digital Wandler

Page 13: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

13Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Digitale serielle EA

Synchrone serielle Schnittstelle(SPI)

Asynchrone serielleSchnittstelle (SCI)

TxD(Transmit

Data)

RxD(Receive

Data)

MOSI(Master

OutSlave

In)

MISO(Master

InSlaveOut)

SCK(SerialClock)

SS(SlaveSelect)

Max. Baudrate

async: 128 kBaud

sync: 1,5 MBaud

Page 14: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

14Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Analog/Digital-Wandler

AnalogMUX

8-Bit AD-Wandler

Ausgangsregister1

Ausgangsregister2

Ausgangsregister3

Ausgangsregister4

Digital DEMUX

interner Datenbus8-Bit

Analog-Signal

Digitalwert

AnalogIn 0

AnalogIn 7

. . .

Wägeverfahren

32 µsec Wandlungszeit

8 Bit Auflösung

8 Kanäle

Single oder Multiple Channel Operation

Page 15: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

15Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Zähler und Zeitgeber Taktgenerator AS (Address Strobe)

interner Prozessortakt 4

prog. Vorteiler( 2, 4, 16, 32) Takt für SPI

prog. Vorteiler( 1 ... 1664) Takt für SCI

Vorteiler( 26)

Puls-Akkum. Unterbrechung

prog. Vorteiler( 213, 214, 215, 216) Periodische Unterbrechung

(Real-Time Interrupt)

Vorteiler( 215)

Prozessor rücksetzenWatchdog( 1, 4, 16, 64)

prog. Vorteiler( 1, 4, 8, 16)

Capture- undCompare-Einheit

Puls-Akkumulatorexterner Eingang

Lebenszeichen

Page 16: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

Capture- und

Compare-EinheitFreilaufender Zähler

16 Bit

Takt aus Vorteiler( 1, 4, 8, 16)

Zählerbus

Compare-Register 1

interner Datenbus

Compare 1

Unterbrechung

Capture-Register 1 Capture 1

Unterbrechung

Compare-Register 4 Compare 4

Unterbrechung

.

.

.

Capture-Register 3 Capture 3

Unterbrechung

Compare-Register 5 Compare 5/Capture 4Capture-Register 4

Unterbrechung

.

.

.

.

.

.

.

.

.

Page 17: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

17Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.1.5 Erweiterungsbus

Der MC68HC11E kennt 4 Betriebsarten (MODA/MODB Eingänge)

Single Chip Mode

Kein Erweiterungsbus (parallele Ports B und C nutzbar) Expanded Mode

Erweiterungsbus aktiv (parallel Ports B und C nicht verfügbar) Test Mode

Wie Expanded Mode, zusätzliche Debug- und Kalibrierungs-

register ansprechbar Bootstrap Mode

Wie Single Chip Mode, zusätzlich Boot-ROM eingeblendet

Page 18: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

18Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Aufbau des Erweiterungsbusses:

A8 – A15

Lat

ch A0 – A7

D0 – D7

RW

En

AS

RW

Port B

Port C

MC

68H

C11

E

Page 19: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

19Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.4 MCore - optimiert für niedrigen Energieverbrauch

• Architektur bzw. Mikroarchitektur eines Prozessorkerns

• Primäres Ziel: niedriger Energieverbrauch

• Wird in verschiedenen Mikrocontrollerns verwendet,z.B. MMC2001, MMC2003, MMC2107, MMC2114, ...

Wir wollen uns hier auf die Energiespartechniken im Prozessorkern konzentrieren

Page 20: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

20Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Eigenschaften: skalare RISC Architektur Load/Store Konzept 32 Bit Datenbus, Register und

Ausführungseinheiten 32 Bit Adressbus Feste 16 Bit Befehlslänge 4-stufige Pipeline 2 Registersätze mit je 16 Registern zum schnellen

Kontextwechsel 8-, 16- und 32-Bit Datentypen Statisches und dynamisches Power-Management Statisches CMOS Design (bis 0 Hz Taktfrequenz) 33 MHz maximale Taktfrequenz 1,8 bis 3,6 Volt Versorgungsspannung

Page 21: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

21Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Registersatz

Verringerung der Busaktivitäten

AllgemeinerRegistersatz

16 x 32 Bit

AlternativerRegistersatz

16 x 32 Bit

Steuerregister-satz

13 x 32 Bit

Multiplizierer,Dividierer,

Barrel-Shifter

Dynamisches Power-Management

Addierer, Subtrahierer,Logische Operationen,

Lade- und Speicheroperationen

Dynamisches Power-Management

Betriebsartensteuerung

Statisches Power-Management

Adresserzeugung

Code-Dichte

Befehls-Pipeline: 1. Befehl holen2. Befehl decodieren / Register lesen3. Befehl ausführen4. Register schreiben

Dynamisches Power-Management, Code-Dichte

Datenbus Adressbus

Low-Power Betriebsart(LPMD)

Operationswerk Steuerwerk

MCore Verringerung derBusaktivitäten

Page 22: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

22Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.4.1 Reduktion der Busaktivitäten und Erhöhung der Code-Dichte

Reduktion der ex-ternen Busaktivitätendurch reichhaltigenRegistersatz

R0 (SP)

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

PC

Benutzer

0 31

C

R0 (SP)

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

R11

R12

R13

R14

R15

PC

Supervisor

0 31

C

R0*

R1*

R2*

R3*

R4*

R5*

R6*

R7*

R8*

R9*

R10*

R11*

R12*

R13*

R14*

R15*

0 31

CR0

CR1

CR2

CR3

CR4

CR5

CR6

CR7

CR8

CR9

CR10

CR11

CR12

0 31

Page 23: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

23Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Hohe Code-Dichte durch 16-Bit Befehlssatz

Befehlscode Rx Displacement

15 12 11 8 7 0

Befehlscode Displacement

15 11 10 0

Befehlscode Immediate Rx

15 11 10 4 3 0

Befehlscode Ry Rx

15 8 7 4 3 0

Befehlscode Rx

15 4 3 0

Rx = Register R0... R15

Adressierung mit einem Register

Adressierung mit zwei Registern

Adressierung mit Register undunmittelbarer Konstanten

Adressierung mit Displacement

Adressierung mit Register undDisplacement

Page 24: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

24Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.4.2 Statisches Power Management Voll statisches Steuerwerk, bis zu 0 Hz

Taktfrequenz Niedere Versorgungsspannung von 1.8 Volt Spezialbefehle und Ausgangssignale (LPMD = low

power mode) um nicht benötigte Komponenten abzuschalten

Modus (Befehl) LPMD1 LPMD0 Stop 0 0 Wait 0 1 Doze 1 0 Run 1 1

Page 25: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

25Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.4.3 Dynamisches Power Management

Power Aware Pipeline

Die Pipeline erkennt und deaktiviert gerade nicht benötigte Komponenten

Eine Addition aktiviert z.B. den Addierer, deaktiviert aber den Barrel-Shifter

Unterschiedliche Datengrößen werden unterstützt

Für 8 und 16 Bit Operationen werden unbenutzte Teile der internen 32 Bit Datenpfade und Verarbeitungseinheiten abgeschaltet

Page 26: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

26Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Gesamtverteilung des Energiebedarfs im Prozessorkern

Taktleitungen: 36% des gesamten Energiebedarfs

Datenpfade: 36% des gesamten Energiebedarfs

Steuerlogik: 28% des gesamten Energiebedarfs

=> Optimierung der Taktleitungen und Sperrung von Teilen des Takt-Baumes (Clock Gating) kann viel

Energie einsparen

Die Pipeline sperrt z.B. den Takt für einige Komponenten während dem Auftreten von Pipeline-Hazards

Page 27: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

27Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5 Komodo - ein Forschungs-Mikrocontroller

Java

einfacheProgrammierung,

Threads

Echtzeit

Zeitbedingungen,Scheduling

MehrfädigeProzessortechnik

schnellerKontextwechsel

Komodo Mikrocontroller

Java Prozessor,mehrfädige Hardware,

Thread-basierteUnterbrechungsbehandlung,

Middleware

Page 28: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

28Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Das Komodo-Projekt ist in fünf Ebenen gegliedert

Der Mikrocontroller ist die niedrigste Ebene

Middleware OSA+

Anwendung

Heap

Traps

GarbageCollection Mem.

KlasseEthreads.Klasse

Driver.KlassenStandard Klassen

Signal EinheitPrioritäts-Manager

Multithreading I/O Einheit

Komodo-Mikrocontroller

Page 29: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

29Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Prozessorkern– mehrfädige 32 Bit Architektur– bis zu 4 Hardware-Threads– direkte Ausführung von Java Bytecode– thread-basierte Unterbrechungsbehandlung– extrem schneller Kontextwechsel (0 Taktzyklen)

Speicher– Schnittstelle für externen Arbeitsspeicher– Datentransferpuffer für Ein-/Ausgabedaten

Zeitgeber und Ein-/Ausgabeeinheiten– 1 parallele und 2 serielle Ein-/Ausgabeschnittstellen– 1 Capture- und Compare-Einheit– 1 Zähler- und Zeitgebereinheit

Page 30: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

30Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Architektur des Komodo-Mikrocontrollers

Prozessorkern

mehrfädige Java Pipeline

Datentransfer-PufferSignal-

EinheitEin-/Ausgabe-

Einheit

Weck-Einheit Parallele Ein-/Ausgabe-

Einheit

Serielle Ein-/Ausgabe-

Einheit

Capture-/Compare-

Einheit

Zähler-/Zeitgeber-

Einheit

Speicher-schnittstelle

ExternerSpeicher

ExterneEreignisse

Parallele EA Serielle EA

Takt

Quarz

Einfangen/Treffer Zählen/Takt

Page 31: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

31Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5.1 Prozessorkern

Java Prozessor

Ausführung von Java Bytecode•direkt in Hardware (Einfache Bytecodes)•Mikrocode (mittel-komplexe Bytecodes)•Trap Routinen (komplexe Bytecodes)

Stack-Register-Satz

Hardware-Unterstützung für Garbage Collection

Page 32: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

32Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Mehrfädiger Prozessor

Kann mehr als einen Thread gleichzeitig in der Pipeline verarbeiten

Besitzt mehrere Programmzähler und Registersätze

Extrem schneller Kontextwechsel

Latenzen bei der Ausführung eines Threads können durch Instruktionen aus anderen Threads überbrückt werden

Befehl holen Befehl dekodieren Stackadresseberechnen

Stack-Zugriff

Befehl ausführen,Speicherzugriff

Thread-Kennung Thread-Kennung Thread-Kennung Thread-Kennung Thread-Kennung

Befehl 1(aus Thread 1)

Befehl 2(aus Thread 2)

Befehl 3(aus Thread 3)

Befehl 4(aus Thread 3)

Befehl 5(aus Thread 4)

Page 33: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

33Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Mikroarchitektur:

Mehrfädig (0 Takte Kontextwechsel)

Bis zu 4 Hardware Threads

Prioritäten-Manager für Echtzeit-Scheduling (in Hardware)

Signaleinheit für externe Komponenten

Befehlsholeinheit

PC1 PC2 PC3 PC4

Spei

cher

schn

ittst

elle

Adressen

Befehle

IW1 IW2 IW3 IW4

Prioritätenmanager

BefehlsdecodiereinheitMikro-codeROM

Signal-einheit

Peripherie-Signale

Operandenholeinheit

Speicherzugriffs-einheit

Ausführungs-einheit

Ein-/Ausgabe-zugriffseinheit

RS1 RS2 RS3 RS4

Stackregistersätze

Adressen

Daten

Adressen

Daten

Ein

-/A

usga

besc

hnitt

stel

le. . .

Page 34: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

34Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5.2 Echtzeit-Scheduling

Erfolgt in Hardware durch den Prioritäten-Manager

2 Ebenen Scheduling:

1. Ebene: ordnet den Threads gemäß Echtzeit-Scheduling Prioritäten zu

2. Ebene: wählt den Thread höchster Priorität, der gerade keine Latenz besitzt

=> Kombination von Echtzeit-Scheduling und Latenzzeitnutzung

Page 35: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

35Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Unterstützte Echtzeit-Scheduling Verfahren:

Fixed Priority Preemptive (FPP)

Earliest Deadline First (EDF)

Least Laxity First (LLF)

Guarantied Percentage (GP)

Das Scheduling wird in Hardware durchgeführt, um eine Entscheidung in einem Taktzyklus zu erlauben

Page 36: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

36Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Guaranteed Percentage Scheduling

weist einem Thread einen garantierten Prozentsatz der Prozessorleistung zu, garantiert dies in einem kurzen Intervall

Thread A, 30%

Thread B, 20%

Thread C, 40%

Thread A30 Taktzyklen

Thread B20 Taktzyklen

Thread C40 Taktzyklen

Thread A30 Taktzyklen

Thread B20 Taktzyklen

Thread C40 Taktzyklen

. . .. . .

100 Taktzyklen 100 Taktzyklen

Page 37: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

37Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Klassen:

• Exakt ein Thread erhält genau den geforderten Prozentsatz

• Minimum ein Thread erhält mindestens den geforderten Prozentsatz

• Maximum ein Thread erhält höchstens den geforderten Prozentsatz

Die Summe der geforderten Prozentsätze der Klassen Exakt und Minimum darf 100 % nicht überschreiten

Der Latenzgewinn über 100% kann von der Klasse Maximum genutzt werden

Page 38: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

38Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Vorteile von GP:

strikte zeitliche Isolation der Threads

Garantierte Antwortzeiten und Datenraten für mehrere Threads

Einfache Erkennung von Überlast (>100%)

Ermöglicht Debug-Threads ohne Veränderung des Echtzeit-Verhaltens

Fein-granulare Realisierung auf einem mehrfädigen Prozessorkern

Page 39: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

39Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5.3 Unterbrechungsbehandlung

Standard Echtzeit-Ereignisbehandlung:

Interrupt Service Routinen (ISR) mit festen Prioritäten (FPP)

Nicht-optimale Prozessorausnutzung (< 100%)

Blockierung niederpriorer Ereignisse Komplexe Programme, schwer zu testen

Page 40: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

40Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Komodo benutzt Interrupt Service Threads (IST)

Ein Ereignis aktiviert direkt einen zugeordneten Hardware-Thread im mehrfädigen Prozessorkern

Ereignisse werden durch Java Threads behandelt Die Aktivierung erfolgt per Hardware (der

Signaleinheit) Jeder IST wird in einen Thread-Slot des mehrfädigen

Prozessorkerns geladen

Page 41: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

41Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Vorteile: Interrupt Service Threads passen perfekt in das Thread Konzept von

Java. Ereignisse lassen sich wie alle anderen Aufgaben einheitlich mittels

Java Threads behandeln. Die direkte Aktivierung per Hardware vermeidet

Verzögerungszeiten. Alle Threads inklusive der Interrupt Service Threads unterliegen

einem einheitlichen, hardwareunterstützten Scheduling. Es können flexible Kontextwechsel zwischen Interrupt Service

Threads und anderen Threads stattfinden. Schedulingverfahren wie EDF, LLF oder GP erlauben eine

Prozessorauslastung von 100 Prozent

Page 42: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

42Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Verküpfung von Ereignissen und Threads durch die Signaleinheit

Verbindungsmatrix mitSteuer- und Statusregister

Steuerregister StatusregisterP

wer

iphe

rie-

Sig

nale

(E

reig

niss

e)

Thread 1 Thread 2 Thread 3 Thread 4

Page 43: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

43Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5.4 Anbindung der periphere Komponenten

Einfach (kein Forschungsschwerpunkt in diesem Projekt)

Ein-/Ausgabe-Zugriffseinheit

SerielleSchnittstelle

1

SerielleSchnittstelle

2

ParalleleSchnittstelle

Zähler-/Zeitgeber

Capture/Compare

Datentransfer-puffer

Ein-/Ausgabebus: Daten / Adressen / Steuersignale

Daisy Chain

Prozessorkern

Page 44: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

44Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Datentransferpuffer

entlastet den Prozessorkern von der Aufgabe der Datenübertragung

da die Zeitbedingungen für die Datenübertragung und Datenverarbeitung meist unterschiedlich sind, müsste anderenfalls ein eigener Thread zur Datenübertragung oder ein Thread mit wechselnden Zeitbedingungen für Übertragung und Verarbeitung eingesetzt werden

Page 45: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

45Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

5.5.5 Evaluierungs-Ergebnisse

Leistungsgewinn durch den mehrfädigen Ansatz für die Echtzeit-Scheduling Verfahren FPP, EDF, LLF and GP

LastprogrammFFT (ca. 6 Millionen Befehle)PID-Regler (ca. 6000 Befehle) Impulszähler (ca. 10 Befehle)

ModelleEinfädig (Standard Prozessor, 100 Takte Kontextwechselzeit)Mehrfädig mit 0 Takte Kontextwechselzeit, aber keiner LatenzzeitnutzungMehrfädig mit Latenzzeitnutzung

Page 46: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

46Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Threads mit ähnlichen Deadlines (4 * Impulszähler) :

0,00

0,50

1,00

1,50

2,00

2,50

3,00

Gew

inn

FPP EDF GP LLF

Einfädig

Mehrfädig, ohne Latenzzeitnutzung

Mehrfädig, mit Latenzzeitnutzung

Page 47: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

47Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

– Für einfädige Prozessorkerne kein Leistungsunterschied zwischen einfachem FPP und komplexeren EDF. Ursache: einfacher Impulszähler

– GP und LLF fallen hier ab. Ursache: häufige Kontextwechsel

– Mehrfädiger Prozessorkern ohne Latenzzeitnutzung eliminiert diesen Nachteil. Leistungssteigerung um Faktor 1,45

– Mehrfädigen Prozessorkern mit Latenzzeitnutzung steigert den Gewinn. GP und LLF effizienter als FPP und EDF. Ursache: Anzahl aktiv-bleibender Threads.

Page 48: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

48Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

T1

T2

T3

T4

4 3 2 1

Anzahl aktive Threads

d4

d3

d2

d1Kontextwechsel

Deadlines T1

T2

T3

T4

4 3 2 1

Anzahl aktive Threads

d4

d3

d2

d1Kontextwechsel

Deadlines

a: FPP und EDF Scheduling b: GP und LLF Scheduling

Page 49: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

49Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

Threads mit verschiedenen Deadlines :

0,00

0,50

1,00

1,50

2,00

2,50

3,00

Gew

inn

FPP EDF GP LLF

Einfädig

Mehrfädig, ohne Latenzzeitnutzung

Mehrfädig, mit Latenzzeitnutzung

Page 50: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 5. Beispiele verschiedener Mikrocontroller 5.1 MC68HC11E.

50Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

5. Beispiele verschiedener Mikrocontroller

– Für den einfädigen Prozessorkern bestätigt sich zunächst das Er-gebnis der ersten Evaluation: GP und LLF schneiden schlecht ab

– Durch die komplexere Last: Unterschiede zwischen dem einfachen FPP und dem leistungsfähigeren EDF

– Dies gilt auch für den mehrfädigen Prozessorkern ohne Latenzzeitnutzung. GP fällt durch die schwierige Wahl geeigneter Prozentsätze ab.

– Beim mehrfädigen Prozessorkern mit Latenzzeitnutzung liefert wie bei der ersten Evaluierung LLF hervorragende Ergebnisse. Auch GP kann die Latenzen sehr gut verwerten, verliert aber durch die oben genannten Probleme