Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 -

Ähnliche Präsentationen


Präsentation zum Thema: "Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 -"—  Präsentation transkript:

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

2 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Einordnung in die Familie

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

4 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Zeitgeber und Ein-/Ausgabeeinheiten - 7 parallele Ein-/Ausgabeeinheiten, insgesamt 53 Bit - 2 synchrone serielle Ein-/Ausgabeeinheiten - 2 synchrone/asynchrone serielle Ein-/Ausgabeeinheiten Bit-Zähler/Zeitgeber mit Compare-Funktion und Pulsweitenmodulator 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

5 Aufbau:

6 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Prozessorkern Adress-, Daten- und Befehlsbusse des Prozessorkerns Harvard Architektur Direkte Verbindung zwischen ALU und Registersatz (RISC) Befehlsadressraum 64kWorte = 128 kBytes Taktfrequenz 8 MHz (ATmega128L) und 16 MHz (ATmega128 )

7 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Programmiermodell: Load/Store-Architektur RAMPZ (Bit0): Ansprechen der oberenoder unteren 64k Byte des Programmspeichers als Datum RAMPX, RAMPY beim ATmega128 nicht vorhanden (Datenspeicher 64 kBytes)

8 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele RegisterdirektADD R1,R0R1 = R1 + R00C 10 UnmittelbarSUBI R16,$10R16 = R h AdressdirektLDS R1,($2000) R1 = (2000 h ) RegisterindirektLD R1,XR1 = (X)90 1C RegisterindirektLD R1,X+R1 = (X), X++90 1D (Postinc, Predec) Adressierungsarten: 2-Adress Format Rx = Rx + Ry (x, y {0.. 31})

9 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele RegisterindirektLD R1,Y+5R1 = (Y + 5)80 15 (Displacement) PC Relativ RJMP $10PC = (PC + 10)C Befehle 8 und 16 Bit Ganzahl-Datentypen, Einzelbits Befehlsbreite 16 Bit (Ausnahme adressdirekte Adressierung, dort 32 Bit)

10 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele SLEEP-Befehl für statisches Power-Management Betriebsarten: Idle Mode:Prozessorkern abgeschaltet ADC Noise ReductionProzessorkern und Teil der Peripherie abgeschaltet Power Save ModeProzessorkern und alle Peripherie bis auf externe Unterbrechungen, Watchdog, eine serielle Schnittstelle und ein Zähler/Zeitgeber abgeschaltet Power Down Modewie Power Save, nur Zähler/Zeitgeber ebenfalls abgeschaltet Standby Modewie Power Down, aber Taktgenerator bleibt zum schnellen Wiederanfahren aktiv Extended Standby Modewie Power Save, aber Taktgenerator bleibt aktiv

11 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele 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(0000 h – 0044 h ), 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

12

13 Speicher und Adressraum Boot-Bereich: nur dort können Befehle zum Schreiben des FlashRAMs ausgeführt werden => generisches Ladeprogramm über serielle oder Debugschnittstelle dort ladbar

14 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele EA-Einheiten, Zähler und Zeitgeber Digitale parallele EA

15 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Digitale serielle EA Max. Baudrate USART:250 kBaud SPI:4 MBaud Two Wire400 kBaud max 128 Teilnehmer

16 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Analog/Digital-Wandler Wägeverfahren 16 µsec Wandlungszeit 10 Bit Auflösung 8 Kanäle Single oder Free Running Conversion Mode

17 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Zähler und Zeitgeber Watchdog: 1 MHz Takt, 8 Stufen (2 14 – 2 21 = 14msec – 1,8sec) Modulator: Wahlweise Und bzw Oder Verknüpfung zweier Signale

18 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Impulserzeuger: erzeugt zahlreiche Impulsformen bei Compare-Ereignis, z.B. Ausgang setzen, rücksetzen, wechseln, setzen bei Compare und rücksetzen bei max. Zählerstand,...

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

20 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Aufbau des Erweiterungsbusses:

21 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele PXA 255 – ein Hochleistungs-Mikrocontroller 32 Bit Mikrocontroller Weiterentwicklung der StrongARM Familie ARM Version 5 RISC Prozessorkern Vielfältige Peripherie Wird z.B. gerne in Palmtops eingestetzt

22 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Prozessorkern - skalare RISC-Architektur ARM Version 5TE - Taktfrequenz bis 400 MHz - 32-Bit-Datenbus, 32-Bit-Adressbus - Virtuelle Speicherverwaltung für Daten und Befehle - 32 KBytes Befehls-Cache - 32 KBytes Daten-Cache - 2 KBytes Mini-Daten-Cache zur Aufnahme von Daten- strömen - Erweiterte Multiplikations-/Additionseinheit für Signalverar- beitung - komprimierbarer Befehlssatz - Ruhebetrieb

23 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Speicher -außer dem Cache kein weiterer integrierter Speicher -Schnittstelle für verschiedene Speichertypen (ROM, Flash- RAM, statisches RAM, dynamisches RAM, PC-Karten,...) Zeitgeber und Ein-/Ausgabeeinheiten -85 Bit breite parallele Ein-/Ausgabe -2 synchrone serielle Ein-/Ausgabeschnittstellen -4 asynchrone serielle Ein-/Ausgabeschnittstelle, davon eine optimiert für den Bluetooth-Funkstandard -1 serielle Infrarot-Schnittstelle -1 USB-Schnittstelle

24 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Zeitgeber und Ein-/Ausgabeeinheiten (fortg.) -1 serielle I 2 C-Schnittstelle -1 serielle Audio-Schnittstelle (I 2 S) -1 Audiocontroller -1 LCD-Anzeigecontroller -16 DMA-Kanäle -1 Echtzeit-Zähler mit einer Compare-Einheit -1 Zähler mit 4 Compare-Einheiten und Watchdog-Funktion -2 Pulsweitenmodulatoren -vollständiger Erweiterungsbus mit 32 Bit Daten und 26 Bit Adressen

25 Aufbau:

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

27 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele *: betriebsart- spezifisches Register Programmier- modell

28 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Besonderheiten des Befehlssatzes: MAC-Einheit wie bei Signalprozessoren 32-Bit Standard RISC Befehlssatz 16-Bit komprimierter Thumb-Befehlssatz Für RISC eher untypisch viele Adressierungsarten Vier Arbeitsmodi: Turbo-Modus: hohe Taktfrequenz Normaler Modus: niedere Taktfrequenz, Umschaltung zu hoher Taktfrequenz in Nanosekunden Idle-Modus: Kern ist angehalten, Wecken durch Interrupt Schlaf-Modus: Kern ist abgeschaltet, nur Peripherie wird noch mit Energie versorgt

29 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Unterbrechungsbehandlung Einfaches Unterbrechungssystem mit festen Vektoren 8 verschiedene Vektoren, davon 2 extern (IRQ, FIQ)

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

31 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Die Zuordnung der externen und internen Komponenten auf IRQ und FIQ erfolgt durch einen integrierten Interruptcontroller

32 Speicher und Adressraum außer Cache kein integrierter Speicher Externer Speicher ist in Bänken zu je 64 MBytes organisiert

33 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele EA-Einheiten, Zähler und Zeitgeber Digitale parallele EA 85 parallele E/A-Bits, Richtung einzelbitweise festlegbar Jedes Bit kann als Interrupt-Eingang genutzt werden Digitale serielle EA 4 asynchrone serielle Schnittstellen (Standard, Bluetooth, Modem, Hardware Handshake) 2 synchrone serielle Schnittstellen Spezielle serielle Schnittstellen (Fast Infrared, USB, I 2 C, I 2 S)

34 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele

35 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele synchrone und spezielle serielle Schnittstellen

36 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Stereo-Datenübertragung zwischen Audio-Bausteinen über die I 2 S Schnittstelle

37 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Audio-Controller (Abspielen und Aufnehmen von Audiosignalen im PCM-Format) LCD Controller

38 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Zähler und Zeitgeber (eher einfach, Controller mehr auf Kommunikations- denn Steuerungsaufgaben ausgelegt)

39 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele DMA-Controller 16 Kanäle, frei den internen und zwei externen Komponentenzuordenbar

40 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Bedienung der DMA Gruppen im Round Robin Verfahren

41 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele 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)

42

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

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

45 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele

46 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Reduktion der Busaktivitäten und Erhöhung der Code-Dichte Reduktion der ex- ternen Busaktivitäten durch reichhaltigen Registersatz

47 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Hohe Code-Dichte durch 16-Bit Befehlssatz

48 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele 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)LPMD1LPMD0 Stop 0 0 Wait 0 1 Doze 1 0 Run 1 1

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

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

51 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Komodo - ein Forschungs-Mikrocontroller

52 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Das Komodo-Projekt ist in fünf Ebenen gegliedert Der Mikrocontroller ist die niedrigste Ebene

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

54 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Architektur des Komodo-Mikrocontrollers

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

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

57 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Mikroarchitektur: Mehrfädig (0 Takte Kontextwechsel) Bis zu 4 Hardware Threads Prioritäten-Manager für Echtzeit-Scheduling (in Hardware) Signaleinheit für externe Komponenten

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

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

60 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Guaranteed Percentage Scheduling weist einem Thread einen garantierten Prozentsatz der Prozessorleistung zu, garantiert dies in einem kurzen Intervall

61 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Klassen: Exaktein Thread erhält genau den geforderten Prozentsatz Minimum ein Thread erhält mindestens den geforderten Prozentsatz Maximumein 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

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

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

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

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

66 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Verküpfung von Ereignissen und Threads durch die Signaleinheit

67 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Anbindung der periphere Komponenten q Einfach (kein Forschungsschwerpunkt in diesem Projekt)

68 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele q Datentransferpuffer m entlastet den Prozessorkern von der Aufgabe der Datenübertragung m 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

69 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Evaluierungs-Ergebnisse q Leistungsgewinn durch den mehrfädigen Ansatz für die Echtzeit- Scheduling Verfahren FPP, EDF, LLF and GP q Lastprogramm m FFT (ca. 6 Millionen Befehle) m PID-Regler(ca Befehle) m Impulszähler(ca. 10 Befehle) q Modelle m Einfädig (Standard Prozessor, 100 Takte Kontextwechselzeit) m Mehrfädig mit 0 Takte Kontextwechselzeit, aber keiner Latenzzeitnutzung m Mehrfädig mit Latenzzeitnutzung

70 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Threads mit ähnlichen Deadlines (4 * Impulszähler) :

71 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele – Für einfädige Prozessorkerne kein Leistungsunterschied zwischen einfachem FPP und komplexeren EDF. Ursache: einfacher Impulszähler – GP und LLF fallen hier ab. Ursache: häufige Kontextwechsel – Mehrfädiger Prozessorkern ohne Latenzzeitnutzung eliminiert diesen Nachteil. Leistungssteigerung um Faktor 1,45 – Mehrfädigen Prozessorkern mit Latenzzeitnutzung steigert den Gewinn. GP und LLF effizienter als FPP und EDF. Ursache: Anzahl aktiv-bleibender Threads.

72 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele

73 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Threads mit verschiedenen Deadlines :

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

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

76 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Abhilfe: Einsatz eines geschlossenen Regelkreises Regelung des Durchsatzes mittels eines PID-Reglers

77 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Modifizierte Komodo- Pipeline

78 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Durchsatz eines Erzeuger- Threads in einem Erzeuger/ Verbraucher- Benchmark GP = 0,49 keine Regelung

79 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Durchsatz eines Erzeuger- Threads in einem Erzeuger/ Verbraucher- Benchmark GP = 0,49 PID- Regler

80 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Verbleibendes Problem: Kurzfristige Änderungen der IPC-Rate könnennicht 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

81 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele

82 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Mikrocontroller-Beispiele Durchsatz eines Erzeuger- Threads in einem Erzeuger/ Verbraucher- Benchmark GP = 0,49 PID- Regler + Latenz-Prädiktor


Herunterladen ppt "Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.6 Mikrocontroller-Beispiele 2.6.1 ATmega128 -"

Ähnliche Präsentationen


Google-Anzeigen