HNI Logo
Entwicklung rekonfigurierbarer Architekturen

Projektübersicht

In diesem Projekt beschäftigen wir uns mit der Realisierung dynamisch rekonfigurierbarer Hardware-Architekturen auf Basis von Feld-Programmierbaren Gatter-Arrays (FPGA). FPGAs bestehen aus einer großen Zahl gitterförmig angeordneten Logik- und Speicherelementen, deren Funktionalität und Verschaltung über einen Konfigurationsdaten-strom definiert werden kann. Dies ermöglicht die Abbildung prinzipiell jeder digitalen Schaltung auf diese Technologie. Eine relativ neue Weiterentwicklung dieser Technologie stellen dynamisch und partiell rekonfigurierbare FPGAs dar, die es erlauben, zur Laufzeit beliebig große Teile des FPGAs zu rekonfigurieren. In dem Projekt “Entwickung rekonfigurierbarer Architekturen” untersuchen wir daher, wie die Eigenschaften dynamisch rekonfigurierbarer FPGAs möglichst effizient genutzt werden können. Ziel ist dabei, eine Systemarchitektur zu entwickeln, die die Flexibilität von Software mit der Leistungsfähigkeit digitaler Schaltungen vereint. Darüber hinaus entwickeln wir Methoden, die die Nutzung dieser Technologie auf einer hohen Abstraktionsebene erlauben.

Die Systemarchitektur

Bild 1: Systemarchitektur mit eingebettetem Prozessor (PPC) und rekonfigurierbaren Modulen

Bild 1 zeigt den schematischen Aufbau unserer Systemarchitektur. Sie besteht aus einem Prozessorsystem mit einem eingebetteten PowerPC (PPC), Speichercontroller und Ein-/Ausgabeschnittstellen, sowie aus rekonfigurierbarer Hardware, auf die zur Laufzeit digitale Schaltungen (sog. Module) geladen werden können. Das Laden der Module übernimmt dabei ein Konfigurationsmanager, der über den Prozessorbus angesprochen werden kann. Die Kommunikation zwischen Prozessor und den Modulen sowie zwischen den Modulen findet ebenfalls über den Prozessorbus statt. Für die Umsetzung dieser Architektur verwenden wir mit den Virtex-II, Virtex-II-Pro und Virtex-4 FPGAs der Firma Xilinx die derzeit leistungsfähigsten, dynamisch rekonfigurierbaren FPGAs.

Schichtenmodell der Rekonfigurierung

Bild 2: Schrittweise Abstraktion von der Hardware zur Anwendung durch ein Schichtenmodell

Um eine gegebene Menge rekonfigurierbarer Ressourcen effizient nutzen zu können, müssen eine Reihe von Aufgaben wahrgenommen werden, die wir in vier Schichten eines Schichtenmodells einteilen (siehe Bild 2). Mit Hilfe dieser Schichten abstrahieren wir schrittweise von der Hardware und erlauben es schließlich dem Benutzer (Anwendung), über einfache Funktionsaufrufe (LoadModule, DeleteModule, etc.) digitale Schaltungen dynamisch in das System zu laden. Als oberste Schicht verwaltet die Designverwaltungsschicht alle auf dem FPGA befindlichen Module und deren Adressräume. Sie weist den anfragenden Anwendungen ein geeignetes vorhandenes Modul zu oder lässt das geforderte Modul ggf. durch die unteren Schichten nachladen. Die darunter liegende Allokationsschicht verwaltet die freien und benutzten Ressourcen des FPGA und weist zu ladenden Modulen geeignete Positionen auf dem FPGA zu. Da die Konfigurationsdatenströme bei Xilinx bereits Positionsinformationen enthalten, ist eine Positionierungsschicht notwendig, die diese Informationen innerhalb des Datenstroms an die geforderte Position anpasst. Mit dem so gewonnenen Datenstrom wird schließlich durch die Konfigurierungsschicht das FPGA teilweise neu konfiguriert und ein neues Modul somit auf das FPGA geladen. Nachdem dem neuen Modul durch die Designverwaltungsschicht ein Adressraum  zugewiesen wurde, steht es der Anwendung zu Verfügung. In Bild 1 finden sich Konfigurierungs- und Positionierungsschicht im Konfigurationsmanager wieder. Allokations- und Designverwaltungsschicht sind in Software auf dem PowerPC realisiert.

Kontakt

 Dr.-Ing. Mario Porrmann

Telefon: +49 (0) 5251 | 60-6352

Telefax: +49 (0) 5251 | 60-6351



Nach oben