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. Brinkschulte
1
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. Brinkschulte
2
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. Brinkschulte
3
2.2 Systems-on-Chip (SoC)
Idee: man übertrage die Erfahrungen aus der
Software-Entwicklung auf die HardwareEntwicklung
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. Brinkschulte
4
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. Brinkschulte
5
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. Brinkschulte
6
2.2 Systems-on-Chip (SoC)
SoC Entwicklung mit einer
Hochsprache
High Level Design
(z.B. in SystemC)
Korrekturen
Verifikation
Low Level Design
(z.B. in VHDL)
Platzieren und Routen
Korrekturen
Verifikation
FPGA, ASIC
Test
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
7
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. Brinkschulte
8
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. Brinkschulte
9
2.2 Systems-on-Chip (SoC)
Erstellung eines SoC mit einer Prozessorkern-Bibliothek:
ProzessorkernBibliothek
(in VHDL)
erstellen bzw.
programmieren
Chip
(ASIC oder FPGA)
Anwendercode
(in VHDL)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
10
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. Brinkschulte
11
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. Brinkschulte
12
2.2 Systems-on-Chip (SoC)
ProzessorKern
Speicher
Programmierbare Hardware, FPGA
Speicher
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
Ein-/Ausgabe
13
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 FPGATechnologie
 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. Brinkschulte
14
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. Brinkschulte
15
2.2 Systems-on-Chip (SoC)
 Semi-statisch Rekonfigurierbar
Kann das FPGA schneller (Millisekunden) rekonfiguriert
werden
 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. Brinkschulte
16
2.2 Systems-on-Chip (SoC)
 Dynamisch Rekonfigurierbar
Neue FPGA Arrays ermöglichen eine sehr schnelle
Rekonfiguration (Mikrosekunden)
Ein andere Möglichkeit ist die “Vorab-Konfiguration”
bestimmter Teile des Arrays und das Umschalten durch ein
Konfigurations-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. Brinkschulte
17
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. Brinkschulte
18
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ützter
Konfigurationsspeicher (Ausleseschutz)
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
19
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. Brinkschulte
20
2.2 Systems-on-Chip (SoC)
 HoneyComb (Universität Karlsruhe)
HoneyComb Architecture
start node
routing node
occupied paths
adaptivly routed connection of distance i
 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. Brinkschulte
21
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 Berechnungen auf Datenströmen mit
maximalem Durchsatz
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
22
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. Brinkschulte
23
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. Brinkschulte
24
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. Brinkschulte
25
2.2 Systems-on-Chip (SoC)
Jeder Teil kann direkt durch das Instruktions-Wort gesteuert
werden
ProgramControl
ALUControl
MultiplierControl
OperandSelection
RAM Addr.- ROM Addr.Control
Control
Bit n
Bit 0
 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. Brinkschulte
26
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. Brinkschulte
27
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. Brinkschulte
28
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
Energie
kg • m2 / sec3 = Joule / sec = Watt
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. Brinkschulte
29
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 Leistungsaufnahme 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. Brinkschulte
30
2.3 Energiespar-Techniken
Hauptwege zur Reduktion des
Energieverbrauchs 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. Brinkschulte
31
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. Brinkschulte
32
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 Taktrate
Ea = 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. Brinkschulte
33
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 Energieverbrauch
Ea = 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 34
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
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  T a ~ U 2
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
35
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
cg / cf2  F3
~ U3
~ F3
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
36
2.3 Energiespar-Techniken
Reduktion der Versorgungsspannung und Taktfrequenz
 Auf konstante Zeit Tk betrachtet gilt für den Energieverbrauch
ebenfalls:
Ek = P  T k ~ U 3 ~ F 3
 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 / cf2  F3 ca / F = cg ca / cf2  F2 ~ F2 ~ U2
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
37
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. Brinkschulte
38
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. Brinkschulte
39
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. Brinkschulte
40
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. Brinkschulte
41
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. Brinkschulte
42
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. Brinkschulte
43
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-Transferund Gatter-Ebene
 Künftig: Abschätzungen auf Mikroarchitekturebene
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
44
2.3 Energiespar-Techniken
 Idee: man nehme einen taktgenauen MikroarchitekturSimulator (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. Brinkschulte
45
2.3 Energiespar-Techniken
Beispiel:
Programm
Taktschrittorientierter
Mikroarchitektursimulator
VerarbeitungsgeschwindigkeitsAbschätzung
Mikroarchitekturparameter
Energie- und
Leistungsmodelle
Schaltkreistechnolgieparameter
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
EnergiebedarfsAbschätzung
46
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. Brinkschulte
47
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. Brinkschulte
48
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. Brinkschulte
49
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. Brinkschulte
50
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. Brinkschulte
51
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. Brinkschulte
52
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. Brinkschulte
53
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. Brinkschulte
54
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. Brinkschulte
55
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
Garbage
Bytecode Operationen
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. Brinkschulte
56
2.4 Java und Java-Prozessoren für eingebettete
Systeme
Der Komodo-Mikrocontroller:
Java
einfache
Programmierung,
Threads
Echtzeit
Zeitbedingungen,
Scheduling
Mehrfädige
Prozessortechnik
schneller
Kontextwechsel
Komodo Mikrocontroller
Java Prozessor,
mehrfädige Hardware,
Thread-basierte
Unterbrechungsbehandlung,
Middleware
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
57
2.4 Java und Java-Prozessoren für eingebettete
Systeme
Das Komodo-Projekt ist in fünf Ebenen gegliedert
Anwendung
Middleware OSA+
Standard Klassen
Garbage
Collection
Traps
Driver.Klassen
Mem.
Klasse
Ethreads.
Klasse
Heap
PrioritätsManager
Multithreading
Signal Einheit
KomodoMikrocontroller
I/O Einheit
Der Mikrocontroller ist die niedrigste Ebene
Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte
58

SoC - Eingebettete Systeme - Goethe