580 likes | 638 Views
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
E N D
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!
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
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
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)
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
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
2.2 Systems-on-Chip (SoC) SoC Entwicklung mit einer Hochsprache
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
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
2.2 Systems-on-Chip (SoC) Erstellung eines SoC mit einer Prozessorkern-Bibliothek:
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
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
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
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
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
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
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)
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)
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
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)
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
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
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
2.2 Systems-on-Chip (SoC) Sogar einfache Signalprozessoren ermöglichen den direkten Zugang zu ihren internen Komponenten:
2.2 Systems-on-Chip (SoC) Jeder Teil kann direkt durch das Instruktions-Wort gesteuert werden • Ein harmonische Integration beider Konzepte ist eine interessante Aufgabe • VLIW oder EPIC könnten einen vielversprechenden Ansatz darstellen
2.2 Systems-on-Chip (SoC) Selbstorganisation • Neuer Forschungsaspekt • Betrifft nicht nur SoC • Daher gesonderter Abschnitt später
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
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)
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
2.3 Energiespar-Techniken Hauptwege zur Reduktion des Energieverbrauchs bzw. der Leistungsaufnahme: • Verringerung der Taktfrequenz • Verringerung der Versorgungsspannung • Optimierung der Mikroarchitektur
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 TaktrateEk = P Tk= cd F Tk~ F
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 TaktrateTa = 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
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
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~ U2Ea = P Ta~ U2
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 / cf2 F3~ F3
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 U3ca / F = cg cf U3ca / (cf U) = cg ca U2= cg / cf2 F3ca / F = cgca / cf2 F2~ F2 ~ U2
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
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
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
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)
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
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
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
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
2.3 Energiespar-Techniken Beispiel:
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
2.4 Java und Java-Prozessoren für eingebettete Systeme Java Pakete für eingebettete Systems (Sun): • Java Micro-Editionfür einfache Geräte mit graphischer Oberfläche,ggf. Netzwerk, wie z.B. SetTop Boxen, Mobiltelefone, PDAs • Java StandardEditionfür leistungsfähigere eingebettete Systeme • Java Cardzur Programmierung von Smart Cards
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
2.4 Java und Java-Prozessoren für eingebettete Systeme Lösungen: • Hybride Java Systeme • Echtzeit-Java • Java-Prozessoren