Der aktuelle Stand der Mikrochipentwicklung offenbart zwei wichtige Zukunftstrends. Der erste betrifft die Mikrochips selbst. Moderne FPGAs (Field Programmable Gate Arrays) erlauben den dynamischen Austausch von Teilen ihrer Schaltung, während der Rest des Chips ungestört weiterläuft. Diese Technologie nennt sich dynamische partielle Rekonfiguration (DPR). Der zweite Trend betrifft die Art wie Hardware beschrieben wird. Zur Zeit sind VHDL und Verilog die beidenwichtigstenHardwarebeschreibungssprachen. Allerdings agieren beide auf demsogenannten Register-Transfer-Level, was die Verwendung von Registern, Taktsignalen und Taktungszonen (Clock-Domains) nötig macht. In einer Sprache die auf dem algorithmischen Level agiert ist dies nicht mehr notwendig. Hier gleichen die Hardwarebeschreibungssprachen üblichen Programmiersprachen wie C oder Java. Eine Beschreibung von Takten oder Taktzyklen entfällt. Die Generierung von Hardware aus einer Sprache auf algorithmischer Ebene nennt sich High-Level-Synthese (HLS). Obwohl DPR und HLS vielbeachtete Zukunftstrends darstellen, entwickeln sich beide nahezu unabhängig voneinander. Die meisten der heutigen HLS-Tools konzentrieren sich auf konventionelle statische Hardware und müssen daher dynamische Sprachelemente, wie das Instantiieren von Objekten zur Laufzeit, durch andere Verfahren ersetzen oder sie sogar ganz verbieten. Auf der anderen Seite arbeiten die meisten heutigen DPRTools auf der für FPGAs niedrigsten Ebene: dem Bit-Level. Dadurch müssen sich derzeit Hardwareentwickler, die DPR einsetzen wollen, mit Details der FPGA-Architektur und Details der entsprechenden Synthese-Tools auseinandersetzen und sind dadurch gezwungen den Hauptteil der Entwicklungszeit in DPR statts in ihre eigentliche Arbeit zu investieren— was natürlich das Gegenteil dessen ist, was Hardwareentwickler wollen. Diese Doktorarbeit hat sich zum Ziel gesetzt, DPR und HLS zu kombinieren, da dies das Potential birgt, zwei Probleme auf einmal zu lösen. Zum einen kann DPR die Programmierparadigmen zukünftiger Hardwarebeschreibungssprachen bezüglich der dynamischen Instantiierung von Objekten wesentlich verändern: Dynamik müsste nicht mehr ersetzt oder entfernt werden, sondern könnte mittels DPR direkt auf dem FPGA umgesetzt werden. Zum anderen vereinfacht die Unterstützung von DPR in einer Hochsprache die Verwendung dynamische Elemente und könnte dazu beisteuern, dass DPR zu einer allgemein anerkannten und genutzten Technologie wird. Dabei sollen ausschließlich Hochsprachenkonstrukte, welche bereits aus der Softwareentwicklung bekannt sind, zum Einsatz kommen. Zuerst wurden hierzu die typische Struktur und die typischen Einsatzgebiete rekonfigurierbarer Hardware untersucht. Ergebnis dieser Untersuchung war, dass sich vor allem die Objekt-Orientierung in Kombination mit Multithreading eignet um Hardware auf algorithmischer Ebene zu beschreiben. Aus diesem Grund wurde eine Sprache namens POL (Parallel Object Language) entwickelt, welche ein leicht erweitertes Subset von Java darstellt und die Benutzung von parallel laufenden Objekten forciert. Die Spezifikation von POL stellt hohe Anforderungen an die zu generierende Hardware. Der herausfordernste Part ist die große Flexibilität bezüglich der Instantiierung, Zerstörung und Verbindung von Objekten. POL erlaubt selbiges an jeder beliebigen Stelle des Codes. Darüber hinaus erlaubt POL ein sogenanntes Overmapping des FPGA, das sich nur durch den Einsatz von DPR realisieren lässt. Um die Fähigkeiten und Grenzen von POL testen zu können, wurde eine komplette Entwicklungsumgebung implementiert. Diese enthält einen Emulator der es erlaubt POL in Software auszuführen, einen Compiler der POL nach VHDL übersetzt, die sogenannte Kommunikations-Matrix welche eine schnelle und flexible Kommunikationsstruktur auf dem FPGA zur Verfügung stellt und einen Scheduler der entscheidet, welches dynamische Modul zu welchem Zeitpunkt auf den FPGA geladen wird. Zwei Beispielanwendungen wurden mit Hilfe der Entwicklungsumgebung entwickelt und übersetzt: Pong und ein Audio-Filter. Anhand des Pong-Beispiels kann gezeigt werden, dass alle zuvor genannten Teile der Entwicklungsumgebung korrekt funktionieren, es also tatsächlich möglich ist, DPR in einer Hochsprache zu beschreiben. Weiterhin zeigt es, dass ein Overmapping möglich ist. Das Audio-Beispiel zeigt, dass Overmapping in einer Umgebung mit einer Datenrate von maximal 100 000 Samples/s verwendet werden kann. Ein szenario-basiertes Scheduling hingegen lässt sich sogar in Umgebungen mit einer Datenrate von maximal 100 000 000 Samples/s einsetzen. Diese Maximalwerte konnten nur aufgrund der Verwendung von Objekt-Orientierung in POL und den dadurch ermöglichten Optimierungen in der darunterliegenden Hardware erreicht werden. Ein weiteres wichtiges Ergebnis der durchgeführten Tests ist, dass die Entwicklungsumgebung hilft, die Produktivität von Hardwareentwicklern die DPR einsetzen wollen, signifikant zu erhöhen. Aufgrund dieser vielversprechenden Ergebnisse konnten bereits erste Kooperationen, welche zumZiel haben DPR und HLS in einemkommerziellen Produkt zu vereinigen, initiiert werden. |