KIP-Veröffentlichungen

Jahr 2011
Autor(en) Norbert Abel
Titel Design and Implementation of an Object-Oriented Framework for Dynamic Partial Reconfiguration
KIP-Nummer HD-KIP 11-161
KIP-Gruppe(n) F16
Dokumentart Dissertation
Keywords (angezeigt) FPGA, Dynamic Partial Reconfiguration, HLS
Abstract (de)

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.

Abstract (en)

Nowadays, two innovative future trends regarding embedded hardware development and hardware description can be found. The first trend concerns the hardware itself. Modern FPGAs (Field Programmable Gate Arrays) provide the possibility that parts of the hardware can be exchanged while the rest of the circuit is running untouched – which is called dynamic partial reconfiguration (DPR).
The second trend concerns the way hardware is described. Currently, the most important hardware description languages (HDLs) are VHDL and Verilog. Although they allow to describe hardware on a very high level, the developer still has to handle registers, clocks and clock domains. Using an HDL operating on the algorithmic level, this is not necessary any longer. Here, designs can be described exactly as they are in software languages like C, without the need to care about registers or clocks – which is called high level synthesis (HLS).
Although both, DPR and HLS are very important future trends regarding hardware design, they develop rather independently. Most of today’s software-to-hardware compilers focus on conventional hardware and therefore have to remove dynamic aspects, such as the instantiation of calculating modules at runtime. On the other hand, DPR tools work on the lowest possible layer regarding FPGAs: the bitfile level. Currently, the use of DPR leads to a struggle with architectural details of the FPGAs and the corresponding synthesis and implementation tools. A hardware developer who makes use of DPR would focus most of the time on DPR and only a small part of the time on the implementation of the actual functionality — which is obviously the opposite of what hardware engineers want.
This thesis focuses on a combination of DPR and HLS, since this has the potential to kill two birds with one stone. Firstly, DPR can change the programming paradigm in future HDLs with regard to dynamic instantiations. Dynamic parts would not have to be removed any longer, but could be realized on the target FPGA using DPR. Secondly, a high level language support of DPR technologies could help to end its shadowy existence and to become a common used method. Hence, the aim of this study is to find a solution how HDLs on algorithmic level and DPR can be combined, solely using language constructs which are already well-known to software-developers. As a first step regarding the development of this framework, the typical structure and behavior of reconfigurable hardware has been analyzed. Thereby it turned out that the best way to describe such hardware is to make use of the object-oriented paradigm combined with multi-threading. In consequence, an enriched subset of Java, forcing the programmer to make use of multiple objects running in parallel, has been defined: POL (Parallel Object Language).
The specification of POL comes with a set of requirements. The most challenging part is the high degree of flexibility regarding object instantiation and inter-object communication. POL allows the user to instantiate and to destroy objects as well as to establish and to dissolve their connection at any position in the code. Beyond that, POL allows an overmapping of the FPGA, which is realized via DPR.
In order to enable the evaluation of the possibilities and limitations of POL, a development framework has been implemented. This framework includes an emulator which allows the execution of POL in software, a compiler which is responsible for the translation from POL to VHDL, a so called Communication Matrix which serves as fast and flexible communication structure on the FPGA, and a scheduler that decides which hardware module is loaded when. Two example applications have been implemented: Pong and an audio filter.
The Pong example shows, that all parts of the framework are working correctly and thus that it is really possible to describe DPR in an HDL on algorithmic level. Furthermore it proves that it is possible to overmap the FPGA via DPR.
The audio example is used to analyze the behavior of the framework regarding data streams. It shows that overmapping can be used in environments with a data rate of 100 000 samples/s, while scenario-based scheduling algorithms can be used in streaming applications with data rates of 100 000 000 samples/s. These maximum data rates are solely possible due to the usage of object-orientation in POL and the corresponding optimizations of the reconfiguration times.
A further important result is that the framework helps to significantly increase the productivity of hardware developers who want to make use of DPR. Based on these promising results, first cooperations focusing the combination of DPR an HLS in a commercial product could already be initiated.

bibtex
@article{abel11,
  author   = {Norbert Abel},
  title    = {Design and Implementation of an Object-Oriented Framework for Dynamic Partial Reconfiguration},
  journal  = {},
  volume   = {},
  year     = {2011},
  pages    = {237}
}
Datei OO-DPRF(PDF)
URL OO-DPRF(Amazon)
KIP - Bibliothek
Im Neuenheimer Feld 227
Raum 3.402
69120 Heidelberg