Optimierungsmethodik zur Steuerung hardwarekonfigurierbarer Knoten

Drittmittelfinanzierte Gruppenförderung - Teilprojekt

Details zum übergeordneten Gesamtprojekt

Titel des Gesamtprojektes: SPP 1148: Rekonfigurierbare Rechensysteme

Sprecher/in des Gesamtprojekts:
Prof. Dr.-Ing. Jürgen Teich (Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design))


Details zum Projekt

Projektleiter/in:
Prof. Dr.-Ing. Jürgen Teich

Projektbeteiligte:
Dr.-Ing. Josef Angermeier

Beteiligte FAU-Organisationseinheiten:
Lehrstuhl für Informatik 12 (Hardware-Software-Co-Design)

Mittelgeber: DFG / Schwerpunktprogramm (SPP)
Akronym: ReCoNodes
Projektstart: 01.06.2003
Projektende: 31.05.2009


Abstract (fachliche Beschreibung):


In diesem Projekt wird der bislang nur unzulänglich automatisierte Zugang zu rekonfigurierbaren Schaltungen, insbesondere FPGA-basierten Architekturen, erschlossen durch Bereitstellung von Modellen und Optimierungsmethoden im Zusammenhang mit der dynamischen Hardwarerekonfiguration. Diese Modelle und Methoden sollen schließlich in einer Art Betriebssystem für Hardwarefunktionen resultieren, das die Verwaltung der Ressourcen zur Laufzeit übernimmt. Konkreter Gegenstand unserer Untersuchungen sind Strategien und Methoden der mathematischen Optimierung für die optimale Steuerung und Nutzung neuester und künftiger Generationen von rekonfigurierbarer Hardware. Solche rekonfigurierbaren Chips werden bereits in verschiedensten technischen Zusammenhängen genutzt. Aufgrund praktischer Hindernisse (vor allem durch den hohen Rekonfigurationsaufwand) und theoretisch noch nicht voll entwickelter Methoden konnte das Potential rekonfigurierbarer Hardware bislang nur zu einem kleinen Teil verwirklicht werden. Wir haben mittlerweile gezeigt, dass die meisten dieser Schwierigkeiten bereits mit bestehender Technologie zu einem guten Teil überwunden werden können. Davon erwarten wir auch neue Impulse für Entwicklung und Einsatz neuer Chipgenerationen.

Modellierung: Die Anforderung von Ressourcen sowie die rekonfigurierbaren Ressourcen und Chips selbst müssen geeignet modelliert werden. Während bei Betriebssystemen für Mikroprozessoren die wichtigsten Einflussgrößen weitgehend bekannt sind, sind viele Eigenschaften im Bereich der Hardwareanforderungen alles andere als klar, etwa die Anzahl und Form angeforderter Ressourcen, die Ausführungszeit oder der erforderliche Rekonfigurationsaufwand. Dennoch reden wir hier in Analogie zum Task-Begriff in der Softwarewelt konsequent von Hardwaretasks bzw. Hardwareprozessen, um Anforderungen zu bezeichnen. Allerdings erweist es sich als zweckmäßig, zwischen Tasks und Modulen zu unterscheiden. Dabei stellt ein Modul eine Hardwarekonfiguration dar, auf der gewisse Tasks ausgeführt werden können; wie wir noch näher erläutern werden, machen es relativ hohe Rekonfigurationszeiten, aber u. U. relativ kurze Taskzeiten möglich und wünschenswert, bestehende Module auch nach Ende einer Task für mögliche weitere Tasks ohne zusätzlichen Rekonfigurationsaufwand bereit zu halten. Dies illustriert bereits, dass die vorhandenen Ressourcen der Hardware geeignet modelliert werden müssen. Eigenschaften, wie die Unterbrechbarkeit von Hardwaretasks, Rekonfigurationsaufwand, Kommunikationsmodelle etc., werden geeignet formalisiert.



Optimierung: Basierend auf den obigen mathematischen Modellen geht es bei der Optimierung darum, die vorhandenen Ressourcen effizient zu verwalten. In der Welt von Softwarebetriebssystemen sind hier die zentralen Probleme der Allokation von Ressourcen sowie der zeitlichen Zuteilung von Ressourcen unter dem Begriff der Ablaufplanung, engl. Scheduling, bekannt. Prinzipiell gilt dies auch für die Ressourcen auf einem rekonfigurierbaren Chip. Die Frage stellt sich nur, welche Optimierungsalgorithmen und welche Optimierungsziele im Rahmen der dynamischen Hardwarerekonfiguration zu verfolgen sind. Hier sollen drei unterschiedliche Szenarien untersucht werden: Das erste Szenario betrifft die optimale Allokation und Ablaufplanung einer statisch gegebenen Menge von Hardwaretasks zur Entwurfszeit. Die beiden anderen Szenarien gehen von unbekannten zeitlichen Anforderungen aus, wobei das erste von sich schnell ändernden Anfragen ausgeht, während das zweite eher den Fall betrachten soll, bei konstanter Last die Auslastung der Ressourcen zu optimieren.



Implementierung: Die obigen Verfahren werden im Kontext realer Hardware untersucht. Dazu wurde eine FPGA-Plattform, genannt Erlangen Slot Machine (ESM), entwickelt und gefertigt, auf der die verschiedenen Online-, Offline- und Caching- Algorithmen zur Allokation und Ablaufplanung auf einer speziellen CPU laufen, der ein kommerzielles FPGA ansteuert. Die ESM kann als einer der ersten voll partiell und dynamisch rekonfigurierbaren Computer auf FPGA-Basis weltweit aufgefasst werden. Bezüglich der partiellen dynamischen Rekonfiguration bietet die ESM eine bisher unerreichte Flexibilität. Diese Plattform und die Implementierung der Algorithmen werden als Beweis und Verifikation der Modellannahmen und des Rekonfigurationsoverheads dienen.



ESM-Architektur: ”Herz“ der ESM-Architektur ist ein großer relativ homogener FPGA. Um die I/O-Pin-Problematik zu lösen, müssen I/O-Pins flexibel zu den entsprechenden Peripherieeinheiten verdrahtet werden. Unsere Lösung ist eine Crossbar-Architektur außerhalb des FPGAs, mit der die I/O-Pins in Abhängigkeit von der Modulplatzierung korrekt mit Signalen der Peripherie verschaltet werden. Zahlreiche Applikationen, insbesondere im Bereich der Bildverarbeitung, benötigen mehr Speicher als auf heutigen FPGAs zur Verfügung steht. Deshalb wird dem FPGA auf der Plattform ausreichend viel Speicher zur Seite gestellt. Um Algorithmen zur Modulplatzierung erproben zu können, wurde für die Plattform ein Betriebssystem entworfen. Dies läuft auf einem externen Prozessor. Dieser Prozessor (PowerPC) dient als ”Gehirn“ der ESM-Architektur. Über ihn laufen Anwendungen sowie die Optimierungsalgorithmen zum Scheduling und zur Platzierung der Module. Weitere Aufgabe des Prozessors ist die Steuerung des Crossbars. Nach erfolgter Platzierung eines neuen Moduls wird bei Bedarf eine Verbindung zu den Peripheriebausteinen geschaffen bzw. umgeroutet. Zwischen dem Prozessor und dem Haupt-FPGA befindet sich der sog. Rekonfigurationsmanager, ebenfalls realisiert durch einen FPGA. Seine Funktionen beinhalten das Speichern, Laden und Relokieren von Modul-Konfigurationen auf dem Haupt-FPGA. Sobald der Rekonfigurationsmanager vom Prozessor aufgefordert wird, die Konfiguration eines bestimmten Moduls zu laden, wird diese ”on the fly“ für den gewünschten Bereich angepasst bzw. relokiert.



Anwendung: Schließlich werden die implementierten Algorithmen auf der eben beschriebenen Plattform getestet. Als Anwendungen betrachten wir erstens Anforderungen, die im Zusammenhang mit der Einbettung rekonfigurierbarer Knoten in verteilten Steuerungssystemen entstehen, sog. ReCoNets. Als Anwendungsszenario untersuchen wir die Anforderungen an ReCoNodes, für die in einem Netzwerk neue Hardwaretasks generiert werden. Dies ist realistisch beispielsweise im Bereich der Automobilinnenraumelektronik, für den am Lehrstuhl bereits Vorarbeiten geleistet wurden. In dem zweiten Anwendungsbereich untersuchen wir die adaptive Videoverarbeitung, die in der Lage ist, während der Verarbeitung von Videobildern die Filter durch Rekonfiguration auszutauschen. Hierbei liegt der Vorteil in dem unterbrechungsfreien Wechsel auf den optimalen Filter, wobei der Zeitpunkt der Anpassung adaptiv von der Anwendung selbst entschieden wird.



Publikationen
Go to first page Go to previous page 1 von 6 Go to next page Go to last page

Platzner, M., Teich, J., & Wehn, N. (2010). Dynamically Reconfigurable Systems - Architectures, Design Methods and Applications. Heidelberg: Springer.
Angermeier, J., Bobda, C., Majer, M., & Teich, J. (2010). Erlangen slot machine: An FPGA-based dynamically reconfigurable computing platform. Springer Netherlands.
Ahmadinia, A., Angermeier, J., Fekete, S.P., Kamphans, T., Koch, D., Majer, M.,... Van Der Veen, J.C. (2010). ReCoNodes-optimization methods for module scheduling and placement on reconfigurable hardware devices. Springer Netherlands.
Koch, D., Beckhoff, C., & Teich, J. (2009). A Communication Architecture for Complex Runtime Reconfigurable Systems and its Implementation on Spartan-3 FPGAs. In Proc. 17th ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (pp. 233-236). Monterey, California, US.
Teich, J., Beckhoff, C., & Koch, D. (2009). Hardware decompression techniques for FPGA-based embedded systems. ACM Transactions on Reconfigurable Technology and Systems, 2(2). https://dx.doi.org/10.1145/1534916.1534919
Koch, D., Beckhoff, C., & Teich, J. (2009). Minimizing Internal Fragmentation by Fine-grained Two-dimensional Module Placement for Runtime Reconfigurable Systems. In Proc. 17th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (pp. 251-254). Napa, CA, US.
Sim, J.E., Wong, W.-F., & Teich, J. (2009). Optimal Placement-aware Trace-based Scheduling of Hardware Reconfigurations for FPGA Accelerators. In Proc. 17th IEEE Symposium on Field Programmable Custom Computing Machines (pp. 279-282). Napa, CA, US.
Angermeier, J., Claus, C., Stechele, W., & Teich, J. (2008). A comparison of embedded reconfigurable video-processing architectures. In Proceedings of International Conference on Field-Programmable Logic and Applications (pp. 587-590). Heidelberg, DE: New York: IEEE Press.
Haubelt, C., Koch, D., & Teich, J. (2008). Efficient reconfigurable on-chip buses for fpgas. In Proceedings 16th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 2008) (pp. 287-290). Palo Alto, California, US.
Angermeier, J., & Teich, J. (2008). Heuristics for Scheduling Reconfigurable Devices with Consideration of Reconfiguration Overheads. In Proceedings 15th Reconfigurable Architectures Workshop (pp. 1-8). Miami, Florida, US: New York: IEEE Press.

Zuletzt aktualisiert 2018-22-11 um 19:21