Online-Platzierung funktional abhängiger Hardware-Module in heterogenen partiell rekonfigurierbaren Architekturen
Zusammenfassung der Projektergebnisse
Partiell rekonfigurierbare Hardware ermöglicht die Rekonfiguration einzelner Teile des Systems, während die verbleibenden Teile ihre bisherige Funktion beibehalten. Auf diese Weise können Systemkomponenten in Form von Hardware-Modulen zur Laufzeit hinzugefügt oder entfernt werden. Um die rekonfigurierbaren Ressourcen des Systems effizient zu nutzen, werden Methoden zur Ressourcenverwaltung, wie die Platzierung von Hardware-Modulen, benötigt. In dem Projekt wurde eine Methodik entwickelt, mit der Hardware-Module zur Entwurfszeit optimiert werden können. Mit Hilfe der Optimierung können die möglichen Positionen der Module zur Entwurfszeit derart festgelegt werden, dass die Anzahl der Überlappungen minimiert wird und dadurch die Platzierung der Module zur Laufzeit verbessert wird. Die Entwurfszeitoptimierung wurde anhand einer Beispielanwendung für ein Xilinx Virtex-4 FPGA getestet. Für das Beispiel konnte die durchschnittliche Anzahl der freien Positionen um das 6,4-fache erhöht werden. Gleichzeitig konnten die Anzahl der fehlgeschlagenen Platzierungen um 60,6% reduziert werden. Ein wesentlicher Schritt zur Beschleunigung einer Funktion in Form eines Hardware- Moduls ist die Spezifikation der Funktion im Hinblick auf Parallelität. Es wurde ein Verfahren entwickelt, welches eine Hardwarebeschreibung aus einer ANSI-C Beschreibung erzeugt. Anhand eines VLIW-Compilers wird dabei eine Hardwarebeschreibung erzeugt, die Parallelität auf der Instruktionsebene ausnutzt. Auf diese Weise kann eine Beschleunigung gegenüber einer äquivalenten Software-Implementierung erzeugt werden. Das Verfahren wurde anhand von unterschiedlichen Software-Applikationen getestet. Bei der Fibonacci-Testfunktion konnte die beste Beschleunigung von Faktor 9,6 im Vergleich zu einer software-basierten Implementierung erzielt werden. In anderen Beispielen war der Grad der Parallelität nicht groß genug, um den großen Unterschied der Taktfrequenz zwischen Hardware- und Software-Implementierung auszugleichen. Ein wichtiger Schritt im Entwurfsprozess partiell rekonfigurierbarer Systeme ist die Partitionierung der Architektur in statische und partiell rekonfigurierbare Regionen (PR-Regionen). Für Systeme mit mehreren PR-Regionen wurde ein Verfahren entwickelt, welches die Lage und Abmessungen der PR-Regionen bestimmt. Ziel des Verfahrens ist es möglichst identische PR-Regionen zu finden, so dass die dazugehörigen Hardware-Module für mehrere PR-Regionen genutzt werden können. Für eine Beispielanwendung wurde gezeigt, dass sich auf diese Weise der Speicherbedarf der resultierenden Hardware-Module um Faktor 5,3 verbessern ließ.
Projektbezogene Publikationen (Auswahl)
- A hardware compilation flow for instance-specific VLIW cores. In: Proceedings of the International Conference on Field Programmable Logic and Applications (FPL '08), S. 619-622. IEEE Computer Society, September 8-10. 2008
Koester, M.; Luk, W.; Brown, G.
- Design Optimizations of Partial Reconfiguration Modules to Improve Run-Time Placement. In: Proceedings of the International Conference on Design, Automation and Test in Europe (DATE '09). ACM Press New York, NY, USA, April 20-24, 2009
Koester, M.; Luk, W.; Hagemeyer, J.; Porrmann, M.