Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz...

85
Goethe-Universität Frankfurt am Main Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 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

Transcript of Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz...

Page 1: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 2: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 3: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 4: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 5: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 6: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 7: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 8: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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})

Page 9: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 10: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 11: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 12: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 13: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 14: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 15: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 16: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 17: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 18: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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, ...

Page 19: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 20: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 21: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 22: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 23: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 24: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 25: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 26: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 27: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 28: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 29: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 30: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 31: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 32: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 33: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 34: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 35: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 36: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 37: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 38: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 39: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 40: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 41: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 42: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 43: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 44: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 45: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 46: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 47: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 48: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 49: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 50: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 51: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 52: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 53: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 54: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 55: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 56: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 57: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 58: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 59: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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)

Page 60: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

. . .

Page 61: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 62: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 63: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 64: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 65: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 66: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 67: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 68: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 69: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 70: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 71: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 72: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 73: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 74: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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.

Page 75: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 76: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 77: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 78: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 79: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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 -

Page 80: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 81: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 82: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 83: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

Page 84: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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

.

.

.

Page 85: Folien Kapitel 2, Teil 6 - es.cs.uni-frankfurt.de · ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X Erweiterte ... - 2 synchrone serielle

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