Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | wang-bradford |
View: | 31 times |
Download: | 0 times |
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte1
2.2 Systems-on-Chip (SoC)
SoC sind die konsequente Fortsetzung der grundlegenden Mikrocontroller-Idee:
Aufbau eines Systems mit einer minimalen Anzahl
externer Komponenten
SoC: realisiere das ganze System mit einem einzigen Chip
Diese Idee ist Gegenstand vieler verschiedener Forschungsrichtungen!
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte2
2.2 Systems-on-Chip (SoC)
Interessante SoC Forschungsrichtungen:
Methoden für eine systematische SoC Entwicklung
Prozessorkerne als Benutzerbibliotheken
Rekonfigurierbare SoCs
Integration verschiedener Prozessorkerne
Selbstorganisation
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte3
2.2 Systems-on-Chip (SoC)
Methoden für eine systematische SoC Entwicklung
Notwendige Schritte: Design, Verifikation & Test
SoC kombinieren oft digitale und analoge Komponenten
Diese Komponenten müssen entwickelt, integriert und getestet werden
Klassische Hardware-Beschreibungssprachen (VHDL, Verilog) bewegen sich auf niederer Ebene im Vergleich zu Sprachen der Software-Entwicklung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte4
2.2 Systems-on-Chip (SoC)
Idee: man übertrage die Erfahrungen aus der Software-Entwicklung auf die Hardware-Entwicklung
Man definiert “High-Level-Hardware-Beschreibungssprachen”, die folgende aus der Software-Entwicklung bekannte Konzepte einzuführen:
Objektorientierung (object orientation) Vererbung (inheritance) Wiederverwendung (resuse)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte5
2.2 Systems-on-Chip (SoC)
Beispiele:
SystemC: Open System C Initiative
www.systemc.org
SystemVeriLog: System Verilog Organization
www.systemverilog.org
Cynthesizer: Forte Design Systems
www.ForteDS.com
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte6
2.2 Systems-on-Chip (SoC)
SystemC ist sehr ähnlich zu C++
Vorteile: Hardware-Komponenten können als Objekte mit Schnittstellen
(interfaces) und Funktionalität (functionality) definiert werden
ähnliche Sprachen zur Soft- und Hardware-Entwicklung ermöglichen zusätzliche Synergie-Effekte
Es können gemeinsame Werkzeuge für Soft- und Hardware verwendet werden
Der Datenaustausch wird erleichtert
Der Aufwand für das Erlernen durch den Benutzer wird verringert
Formale Hochsprachen erlauben eine Verifikation auf hoher Ebene
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte7
2.2 Systems-on-Chip (SoC)
SoC Entwicklung mit einer Hochsprache
High Level Design(z.B. in SystemC)
Verifikation
Low Level Design(z.B. in VHDL)
Verifikation
Platzieren und Routen
FPGA, ASIC
Korrekturen
Korrekturen
Test
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte8
2.2 Systems-on-Chip (SoC)
Das Testen kann unterstützt werden durch:
eingebettete Teststrukturen
Sichtbarmachung interner Hardware-Zustände
eingebauten Selbsttests
Herausforderung: die Entwicklung effizienter Selbsttests für analoge und digitale Teile eines SoC mit geringen Kosten und geringer zusätzlicher Fläche
Design for Testability.
Denke bereits während der Entwicklung an den Test
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte9
2.2 Systems-on-Chip (SoC)
Prozessorkern-Bibliotheken
Grundidee: liefere einen Prozessor nicht als Hardware, sondern als Bibliothek aus.
Der Anwender kann den Prozessorkern dann leicht in seine eigene FPGA oder ASIC Entwicklung integrieren
Viele Prozessorkerne sind bereits als ASIC-Bibliothek verfügbare, z.B.
• ARM
• PowerPC
• 80251 Kern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte10
2.2 Systems-on-Chip (SoC)
Erstellung eines SoC mit einer Prozessorkern-Bibliothek:
Prozessorkern-Bibliothek(in VHDL)
Anwendercode
(in VHDL)
Chip(ASIC oder FPGA)
erstellen bzw.programmieren
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte11
2.2 Systems-on-Chip (SoC)
Gegenwärtige Herausforderungen an die Forschung:
Versuche das Gleiche mit FPGAs
Für kleine Stückzahlen ist eine FPGA-Entwicklung deutlich preiswerter als eine ASIC-Entwicklung
FPGA-Lösungen können “im Haus” erstellt werden
Wegen der geringeren Logikdichte von FPGAs sind bisher aber erst kleine Prozessorkerne (z.B. 8051) verfügbar
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte12
2.2 Systems-on-Chip (SoC)
Rekonfigurierbare SoC
Umkehrung der Idee der Prozessorkern-Bibliotheken
Ein rekonfigurierbarer SoC besteht aus
einem Prozessorkern
Speicher
einem FPGA Array
Während der Prozessorkern und der Speicher unveränderlich sind, kann der FPGA-Anteil rekonfiguriert werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte13
2.2 Systems-on-Chip (SoC)
Prozessor-Kern
SpeicherProgrammierbare Hardware, FPGA
Speicher Ein-/Ausgabe
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte14
2.2 Systems-on-Chip (SoC)
Dieser Ansatz ist in doppelter Hinsicht ein guter Kompromiss:
Prozessorkern und Speicher können in optimaler Weise realisiert werden
Nur der rekonfigurierbare Anteil nutzt die hinsichtlich Geschwindigkeit und Logikdichte weniger optimale FPGA-Technologie
Der Anwender kann die Menge an “Spezial-Hardware” für eine gegebene Anwendung selbst bestimmen
Der rekonfigurierbare Teil kann so personalisiert werden, dass er eine Aufgabe viel schneller als mittels Software lösen kann
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte15
2.2 Systems-on-Chip (SoC)
Es können drei Typen von rekonfigurierbaren SoC unterschieden
werden:
Statisch Rekonfigurierbar
• Die Rekonfiguration benötigt längerer Zeit (Sekunden bis Minuten)
• Das SoC wird einmal statisch für eine Aufgabe konfiguriert
• Diese Konfiguration ändert sich zur Laufzeit niemals
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte16
2.2 Systems-on-Chip (SoC)
Semi-statisch Rekonfigurierbar
Kann das FPGA schneller (Millisekunden) rekonfiguriertwerden
Das System kann zur Laufzeit rekonfiguriert werden
• Eine Aufgabe kann dann in Unteraufgaben zerlegt werden
• Diese Unteraufgaben werden nach dem Pipeline-Prinzip durchgeführt
• Während eine Unteraufgabe in Software ausgeführt wird, kann das FPGA für die nächste Unteraufgabe rekonfiguriert werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte17
2.2 Systems-on-Chip (SoC)
Dynamisch Rekonfigurierbar
Neue FPGA Arrays ermöglichen eine sehr schnelleRekonfiguration (Mikrosekunden)
Ein andere Möglichkeit ist die “Vorab-Konfiguration”bestimmter Teile des Arrays und das Umschalten
durch einKonfigurations-Register
Das FPGA kann ‘on-the-fly’ rekonfiguriert werden
• Das FPGA kann während der Ausführung einer Prozessorkern-Instruktion rekonfiguriert werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte18
2.2 Systems-on-Chip (SoC)
Weiterhin zu unterscheiden:
Feinkörnig Rekonfigurierbare SoC
Rekonfiguration auf Gatterebene, die Verschaltung von Gattern und Registern kann verändert werden.
Grobkörnig Rekonfigurierbare SoC
Rekonfiguration auf Ebene von Funktionseinheiten (ALU, Speicher, …). Diese können neu vernetzt oder im Funktionsumfang verändert werden.
(Schneller und einfacher als feinkörnige Rekonfiguration)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte19
2.2 Systems-on-Chip (SoC)
Beispiele rekonfigurierbarer SoC
AT94X Reihe von Atmel
• statisch feinkörnig rekonfigurierbar
• AVR8 Prozessorkern
• FPGA Array mit bis zu 40k Gattern
• Bei einigen Modellen (AT94S) geschützterKonfigurationsspeicher (Ausleseschutz)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte20
2.2 Systems-on-Chip (SoC)
MorphoSys (UCI)
• dynamisch grobkörnig rekonfigurierbar• 32-Bit-TinyRISC-Prozessorkern• 64 reconfigurierbare Zellen• Jede Zelle enthält
– Logik– ALU– Register File
• Die Rekonfiguration “on the fly” in der Geschwindigkeit des Prozessorkerns geschieht durch Umschalten vorgesetzter Kontext-Wörter
• Anwendung: Bildbearbeitung
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte21
2.2 Systems-on-Chip (SoC)
HoneyComb Architecture
start node
routing node
occupied paths
adaptivly routed connection of distance i
HoneyComb (Universität Karlsruhe)
Dynamisch adaptive und rekonfigurierbare Datenpfade zwischen Zellen (Rechenzellen, Speicherzellen, Ein-/Ausgabezellen)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte22
2.2 Systems-on-Chip (SoC)
Integration unterschiedlicher Prozessorkerne
Kombination von Mikrocontrollern und Signalprozessoren
Eine Möglichkeit, die große Anzahl heute verfügbarer Transistoren auf einem Chip zu nutzen
Aufgaben des
Mikrocontroller-Teils: Ausführung von Steuer- und Regelanwendungen in Echtzeit
Signalprozessor-Teils: optimierte Ausführung von Berech-
nungen auf Datenströmen mit maximalem Durchsatz
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte23
2.2 Systems-on-Chip (SoC)
Beispiele: TriCore, TriCore 2 (Infineon, www.infineon.com)
TriCore kombiniert drei Teile:
• ein RISC Prozessorkern mit• Mikrocontroller-Peripherie und• einer Hochgeschwindigkeits-Multiplizier-/Addier-
Einheit
Daher ist TriCore ein erster Schritt
Er integriert Teile eines Signalprozessors in einen Mikrocontrollerkern
Es gibt immer noch einen einzigen Kern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte24
2.2 Systems-on-Chip (SoC)
Die Integration eines vollständigen Mikrocontrollerkerns mit einem
Signalprozessor ist immer noch eine Herausforderung, da:
die Programmausführung eines Mikrocontrollers und eines Signalprozessors total unterschiedlich ist
ein Mikrocontroller versteckt seine interne Mikrorachitektur durch eine Architektur-Ebene (wie bei Mikroprozessoren)
die Parallelität ist unter Kontrolle des Prozessorkerns
ein Signalprozessor offenbart dem Anwender seine Mikroarchitektur
für maximale Effizienz ist die Parallelität unter Kontrolle des Anwenders
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte25
2.2 Systems-on-Chip (SoC)
Sogar einfache Signalprozessoren ermöglichen den direkten Zugang zu ihren internen Komponenten:
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte26
2.2 Systems-on-Chip (SoC)
Jeder Teil kann direkt durch das Instruktions-Wort gesteuert werden
Program-Control
ALU-Control
Operand-Selection
Multiplier-Control
RAM Addr.-Control
ROM Addr.-Control
Bit 0Bit n
Ein harmonische Integration beider Konzepte ist eine interessante Aufgabe
VLIW oder EPIC könnten einen vielversprechenden Ansatz darstellen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte27
2.2 Systems-on-Chip (SoC)
Selbstorganisation
Neuer Forschungsaspekt
Betrifft nicht nur SoC
Daher gesonderter Abschnitt später
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte28
2.3 Energiespar-Techniken
Microcontroller werden mehr und mehr in kleinen, mobilen Geräten genutzt (Ubiquitous Computing, Pervasive Computing)
Die verfügbare Energie wird durch eine Batterie begrenzt
Hauptanforderung: Erzielung einer maximalen Betriebszeit mit der verfügbaren Energie
Wärmeabgabe ist ein anderer Grund, den Energieverbrauch zu reduzieren
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte29
2.3 Energiespar-Techniken
Präzisierung der Begriffe:
Energie (Energy) und Leistung (Power)
Leistung (P) ist Energiefluss (E) pro Zeit (T)
P = E / T bzw. E = P • T
Einheiten: Leistung kg • m2 / sec3 = Joule / sec = Watt
Energie kg • m2 / sec2 = Joule = Wattsekunde
Auf elektrische Geräte bezogen:Leistung ist aufgenommene bzw. verbrauchte Energie pro Zeit(Leistungsaufnahme, Verlustleistung)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte30
2.3 Energiespar-Techniken
Beispiel:
Mikrokontroller mit Leistungsaufnahme 10 Watt=> jede Sekunde werden 10 Wattsek. Energie verbraucht nach 1 Minute wurden 600 Wattsek verbraucht
Verringerung des Energieverbrauchs und der Leistungs-aufnahme sind verwandte, jedoch nicht identische Ziele
Zur Verlängerung der Batterielebensdauer=> Optimierungsziel Verringerung des Energieverbrauchs
Zur Reduktion der Temperatur=> Optimierungsziel Verringerung der Leistungsaufnahme
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte31
2.3 Energiespar-Techniken
Hauptwege zur Reduktion desEnergieverbrauchs bzw. der Leistungsaufnahme:
Verringerung der Taktfrequenz
Verringerung der Versorgungsspannung
Optimierung der Mikroarchitektur
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte32
2.3 Energiespar-Techniken
Reduktion der Taktfrequenz
Einfache Maßnahme
Für CMOS Schaltungen gilt idealerweise: P = cd F ~ F
Das bedeutet: Halbierung der Taktrate entspricht einer Halbierung der Leistungsaufnahme
Auf konstante Zeit Tk gesehen ist auch der Energieverbrauch proportional zur Taktrate
Ek = P Tk = cd F Tk ~ F
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte33
2.3 Energiespar-Techniken
Reduktion der Taktfrequenz
Problem: die Verarbeitungsgeschwindigkeit wird ebenfalls reduziert
Die Zeit Ta zur Erfüllung einer Aufgabe ist umgekehrt proportional zur Taktrate
Ta = ca / F ~ 1 / F
Der Energieverbrauch zur Erfüllung einer Aufgabe ist daher unabhängig von der TaktrateEa = P Ta = cd F Ta = cd F ca / F = cd ca = konstant
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte34
2.3 Energiespar-Techniken
Reduktion der Taktfrequenz
Für CMOS Schaltungen gilt realerweise: P = Ps + Pd = cs + cd F
Zusätzliche Verlustleistung Ps durch Leckströme, unabhängig von der Taktfrequenz, wachsen mit zunehmender Integrationsdichte1)
Es folgt für den EnergieverbrauchEa = P Ta = (cs + cd F) ca / F = cs ca /F + cd ca
Mit abnehmender Taktfrequenz sinkt die Leistungsaufnahme, der Energieverbrauch wächst jedoch
1) bei Mikrocontrollern meist noch vernachlässigbar
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte35
2.3 Energiespar-Techniken
Reduktion der Versorgungsspannung
Nach dem Ohm’schen Gesetz gilt:P = U I = U2 / R ~ U2
Dies bedeutet: 70% Versorgungsspannung bewirken 50% Leistungsaufnahme
Hält man die Taktfrequenz zunächst konstant, so gilt für den Energieverbrauch über eine Zeit Tk bzw. zur Erfüllung einer Aufgabe in der Zeit Ta:
Ek = P Tk ~ U2
Ea = P Ta ~ U2
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte36
2.3 Energiespar-Techniken
Reduktion der Versorgungsspannung und Taktfrequenz
Variiert man Versorgungsspannung und Taktfrequenz gemeinsam, so gilt (Leckströme vernachlässigt):
P = cg F U2 ~ F U2
Versorgungsspannung und Taktfrequenz sind jedoch nicht unabhängig, für die maximale Taktfrequenz gilt:
F = cf U ~ U
Daraus erhält man die Kubusregel für die Leistungsaufnahme:
P = cg cf U3 ~ U3 = cg / cf
2 F3 ~ F3
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte37
2.3 Energiespar-Techniken
Reduktion der Versorgungsspannung und Taktfrequenz
Auf konstante Zeit Tk betrachtet gilt für den Energieverbrauch ebenfalls:
Ek = P Tk ~ U3 ~ F3
Zur Erfüllung einer Aufgabe ergibt sich durch die umgekehrte Proportionalität der Ausführungszeit Ta zur Taktfrequenz:Ea = P Ta = cg cf U3 ca / F = cg cf U3 ca / (cf U)
= cg ca U2 = cg / cf
2 F3 ca / F = cg ca / cf2 F2 ~ F2 ~ U2
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte38
2.3 Energiespar-Techniken
Forschungsansätze:
Optimierung der Taktfrequenz für die Anwendung
z.B. für Echtzeitsysteme: Anpassen der Taktfrequenz und Versorgungsspannung an die Deadlines
Ist die Deadline noch weit entfernt, kann die Verarbeitungsgeschwindigkeit und damit der Energiebedarf bzw. Leistungsaufnahme reduziert werden
Ist die Deadline nahe, werden die maximale Taktfrequenz und Versorgungsspannung genutzt
Ein geschlossener Regelkreis kann Taktfrequenz und Versorgungsspannung steuern
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte39
2.3 Energiespar-Techniken
Optimierung der Mikroarchitektur
Die bisher beschriebenen Ansätze reduzieren auch die Verarbeitungsgeschwindigkeit
Ein vielversprechende Idee: Optimierung der Mikroarchitektur zur Reduktion der Leistungsaufnahme ohne gleichzeitige Reduktion der Verarbeitungsgeschwindigkeit
Ansatzpunkte der Optimierung:
• Reduktion externer Busaktivitäten
• Statisches Power-Management
• Dynamisches Power-Management
• Erhöhung der Code-Dichte
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte40
2.3 Energiespar-Techniken
Reduktion der externen Busaktivitäten:
RISC Load-/Store Architekturen arbeiten hauptsächlich mit den internen Registern
Die Bus-Schnittstelle wird so für viele Operationen nicht benötigt und kann abgeschaltet werden
Ein umfangreicher interner Registersatz hilft, externe Buszugriffe zu reduzieren
Unterstützung für schmale Datentypen kann dies ebenfalls
Während eines 8-Bit Transfers können die oberen 24 Bit einer 32-Bit Busschnittstelle abgeschaltet bleiben
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte41
2.3 Energiespar-Techniken
Statisches Power Management:
Spezielle Instruktionen deaktivieren gerade nicht benötigte Komponenten wie
• Nicht-flüchtigen Speicher
• Ein-/Ausgabeeinheiten
• Teile der ALU
Flüchtige Speicher können im Schlaf-Modus betrieben werden (z.B. durch Reduktion der Versorgungsspannung auf den zum Aufrechterhalten der Information notwendigen minimalen Level)
Schlaf-Modus des Prozessorkerns (z.B. durch statisches Steuerwerk mit 0 Hz minimaler Taktfrequenz)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte42
2.3 Energiespar-Techniken
Dynamisches Power Management:
Der Prozessor deaktiviert automatisch nicht benötigte Komponenten
Dies kann z.B. in der Pipeline durchgeführt werden
Wenn schmale Datentypen unterstützt werden, können Teile der ALU und der internen Datenpfade deaktiviert werden
Für einen 8-Bit Datentyp werden z.B. die oberen 24 Bit einer 32 Bit ALU nicht gebraucht und können zur Leistungs- und Energieeinsparung deaktiviert werden
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte43
2.3 Energiespar-Techniken
Erhöhung der Code-Dichte:
Code-Dichte: Anzahl benötigter Befehle um eine Anwendung zu schreiben
Eine hohe Code-Dichte bedeutet, weniger Befehle sind notwendig
Dies spart aus zwei Gründen Energie:
• Weniger Speicher wird gebraucht
• Weniger Buszyklen zur Ausführung der Anwendung sind nötig
Von diesem Standpunkt aus ist CISC besser als RISC
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte44
2.3 Energiespar-Techniken
Weitere Forschungsansätze
Die vorigen Sektionen haben gezeigt: es besteht ein komplexer Zusammenhang zwischen Architektur, Mikroarchitektur und Leistungsaufnahme bzw. Energiebedarf
Es wäre günstig, so früh wie möglich während der Entwicklung eines Mikrocontrollers Abschätzungen des Energieverbrauchs und der Leistungsaufnahme vorzunehmen
Heute: Abschätzung auf Grundlage der Register-Transfer- und Gatter-Ebene
Künftig: Abschätzungen auf Mikroarchitekturebene
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte45
2.3 Energiespar-Techniken
Idee: man nehme einen taktgenauen Mikroarchitektur-Simulator (zur Abschätzung der Verarbeitungsgeschwindigkeit)
Man füge Energie- und Leistungsmodelle zur Abschätzung hinzu
Diese Modelle schätzen den Energieverbrauch und die Leistungsaufnahme jeder Mikroarchitektur-Komponente für
• jeden Taktzyklus und
• jeden Zustand
Ein Standard-Simulator enthält nur Mikroarchitektur-Parameter
Energiemodelle beinhalten zusätzlich Technologie-Parameter
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte46
2.3 Energiespar-Techniken
Beispiel:
Taktschritt-orientierter
Mikroarchitektur-simulator
Energie- und Leistungsmodelle
Mikroarchitektur-parameter
Schaltkreistechnolgie-parameter
Energiebedarfs-Abschätzung
Verarbeitungs-geschwindigkeits-Abschätzung
Programm
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte47
2.4 Java und Java-Prozessoren für eingebettete Systeme
Java bietet viele Vorteile für eingebettete Systeme: Einfache Programmierung Wiederverwendbarkeit Robustheit Reicher Satz von Standard-Klassenbibliotheken
Java Bytecode ist portabel klein sicher
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte48
2.4 Java und Java-Prozessoren für eingebettete Systeme
Java Pakete für eingebettete Systems (Sun):
Java Micro-Edition
für einfache Geräte mit graphischer Oberfläche,ggf. Netzwerk, wie z.B. SetTop Boxen, Mobiltelefone, PDAs
Java StandardEdition
für leistungsfähigere eingebettete Systeme
Java Card
zur Programmierung von Smart Cards
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte49
2.4 Java und Java-Prozessoren für eingebettete Systeme
Probleme mit eingebetteten Echtzeitsystemen:
Die ursprüngliche Java-Sprachdefinition enthält keinerlei Echtzeit-Elemente
niedere Verarbeitungsgeschwindigkeit bei interpretierter
JVM
Schlechtes Best-/Worst-Case Intervall für die Ausführungszeit bei JIT-compiler basierter JVM
Leistungsfähige Hardware für Flash-Compiler erforderlich
Verlust der Portabilität bei nativem Compiler
Garbage Collection wirft zusätzliche Probleme auf
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte50
2.4 Java und Java-Prozessoren für eingebettete Systeme
Lösungen:
Hybride Java Systeme
Echtzeit-Java
Java-Prozessoren
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte51
2.4 Java und Java-Prozessoren für eingebettete Systeme
Hybride Java Systeme:
Kombinieren Java mit einem Standard-Echtzeit-OS
Java selbst ist nicht echtzeitfähig
Die Echtzeit-Anteile einer Anwendung werden in C oder C++ geschrieben
Beispiele: JWorks (WindRiver) oder Java for OS-9 (Microware Systems)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte52
2.4 Java und Java-Prozessoren für eingebettete Systeme
Echtzeit-Java Systeme:
machen Java selbst echtzeitfähig
Spracherweiterungen, z.B. zur Definition von Echtzeit-Threads, Synchronisation oder Speicherbereinigung sind erforderlich
Standard:
The Real-time Specifications for Java (RTSJ)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte53
2.4 Java und Java-Prozessoren für eingebettete Systeme
Wie realisiert man Echtzeit-Java ?
1. Man benutzt eine echtzeitfähige JVM
Interpretation von Java Bytecode wie bei Standard Java
Garantierte Ausführungszeiten
Zusätzliche Funktionen für Echtzeiterweiterungen
Beispiele: Java Real-Time (SUN), PERC (Aonix), Jamaica
(Aicas), SimpleRTJ
Problem: langsame Ausführung im Vergleich zu C
wegen Interpretation
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte54
2.4 Java und Java-Prozessoren für eingebettete Systeme
2. Man benutzt einen nativen Compiler
Java wird zu nativem Maschinencode übersetzt
Dies erlaubt eine schnelle Ausführung
Beispiel: JBed (Myriad)
Probleme: Verlust der Bytecode-Vorteile wie
Portabilität
Kein dynamisches Klassenladen
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte55
2.4 Java und Java-Prozessoren für eingebettete Systeme
3. JIT oder Flash Compiler
JIT (Just in Time) Compiler übersetzen den Code, wenn er gebraucht wird
Problem: Ausführungszeiten sind schwer abzuschätzen, großes Best-case Worst-case Intervall
Flash Compiler übersetzen die ganze Klasse, bevor sie geladen wird
Problem: der Compiler muss auf dem Zielsystem laufen
=> erhöht den Speicherbedarf beträchtlich (auch für JIT)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte56
2.4 Java und Java-Prozessoren für eingebettete Systeme
4. Java Prozessoren
Führen Java Bytecode direkt in Hardware aus
Optimiert für spezielle Java Eigenschaften wie
Stack-basierte Bytecode Operationen
Garbage Collection
Synchronisation
=> Hohe Verarbeitungsgeschwindigkeit für Bytecodes
Beispiele: PicoJava I + II, MicroJava, UltraJava (Sun), JEM (aJile systems), Delft (TU Delft) , PCS1000(Patriot Coorp.), JSM (Universität Rostock), JOP (Universität Wien), Komodo (Universitäten Karlsruhe/Augsburg)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte57
2.4 Java und Java-Prozessoren für eingebettete Systeme
Der Komodo-Mikrocontroller:
Java
einfacheProgrammierung,
Threads
Echtzeit
Zeitbedingungen,Scheduling
MehrfädigeProzessortechnik
schnellerKontextwechsel
Komodo Mikrocontroller
Java Prozessor,mehrfädige Hardware,
Thread-basierteUnterbrechungsbehandlung,
Middleware
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte58
2.4 Java und Java-Prozessoren für eingebettete Systeme
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