MENÜ MENÜ  

Übersetzungsmethoden für strukturprogrammierbare Rechner

Markus Weinhardt

ISBN 978-3-89722-011-9
156 pages, year of publication: 1997
price: 40.00 €
Strukturprogrammierbare Rechner stellen eine neuartige Rechnerarchitektur dar: Sie bestehen aus einem konventionellen Mikroprozessor-System und rekonfigurierbaren, FPGA-basierten Hardware-Koprozessoren. Damit läßt sich die Flexibilität von Software mit der Leistungsfähigkeit anwendungsspezifischer Hardware kombinieren. Die Programmierung dieser Rechner ist bisher jedoch sehr zeitaufwendig und fehleranfällig. Sie erfordert Erfahrung sowohl im Software- als auch im Hardware-Entwurf. Deshalb werden Programmierumgebungen benötigt, die aus einer integrierten Spezifikation automatisch die Software- und Hardware-Anteile sowie die Schnittstelle zwischen beiden generiert.

Diese Arbeit stellt einen solchen Programmieransatz vor. Er basiert auf einer verallgemeinerten Vektorisierung imperativer Programmiersprachen. Für geeignete Schleifen werden Hardware-Pipelines synthetisiert, die das Programm parallelisieren und dadurch beschleunigen. Ein Partitionierer wählt die passenden Schleifen aus und integriert ihre Ansteürung in das Programm.

Zunächst wird die zu vektorisierende Schleife normalisiert. Aus dem Schleifenrumpf wird dann ein Datenfluß-Graph generiert, der später durch Pipelining parallelisiert wird. Dabei müssen schleifengetragene Datenabhängigkeiten (also solche zwischen verschiedenen Schleifeniterationen) berücksichtigt werden. Unser neuer Algorithmus ermöglicht auch beim Auftreten dieser Abhängigkeiten - im Gegensatz zur Implementierung auf Vektorrechnern - eine Vektorisierung der Schleife. Die Abhängigkeiten führen jedoch zu Rückkopplungszyklen im Datenfluß-Graphen, die den möglichen Parallelitätsgrad beschränken. Daraus resultierende Einschränkungen müssen bei der Pipeline-Optimierung berücksichtigt werden. Außerdem sollte zur bestmöglichen Nutzung der Hardware-Ressourcen die Anzahl der beim Pipelining eingefügten FPGA-Flipflops so gering wie möglich gehalten werden. Deshalb wurde ein auf ILP (integer linear programming) basierendes globales Optimierungsverfahren für FPGA-basierte Pipelines angepaßt und erweitert.

Ein weiterer Teil der Arbeit beschäftigt sich mit der Ansteuerung der generierten Pipelines und der Schnittstelle zum lokalen Speicher der Koprozessor-Karte und zum Host-Rechner. Dazu wurde eine Pipeline-Steuerungseinheit entwickelt, die für alle Programme gleich ist und architekturspezifische Details kapselt. Sie kann für verschiedene Pipeline-Typen konfiguriert werden und ermöglicht so die einheitliche Ansteuerung aller Pipelines. Bei der Portierung des Systems auf andere Rechnerarchitekturen muß auch nur die Steuerungseinheit an die Eigenheiten der Host- und Speicherschnittstelle angepaßt werden, während die eigentliche Pipeline-Synthese weitgehend architekturunabhängig ist.

Die Eigenschaften der Schnittstelle gehen auch in die Hardware/Software-Partitionierung ein. Denn neben der Beschleunigung durch die Pipeline müssen auch die Kosten für die Konfigurierung der FPGAs und für die Übertragung der Daten zu und von der Koprozessor-Karte berücksichtigt werden. Dazu wurde ein dynamisches Partitionierungsverfahren entwickelt, daß zur Laufzeit anhand der aktuellen Schleifenlänge, des Konfigurationszustands der FPGAs sowie der Verteilung der Daten die Ausführung in Software oder Hardware auswählt. Dies ermöglicht auch eine automatische dynamische Umkonfigurierung der FPGAs zwischen größeren Phasen des Programms.

Insgesamt wurde in dieser Arbeit eine neuartige Programmiermethodik für strukturprogrammierbare Rechner entwickelt, die auf die spezifischen Eigenschaften dieser Architekturen zugeschnitten ist. Sie wurde prototypisch in dem Modula Pipeline Compiler implementiert. Messungen auf einer Sun-Workstation mit einer FPGA-Koprozessorkarte haben die praktische Anwendbarkeit der Programmbeschleunigung durch automatisch generierte Koprozessoren gezeigt.

Keywords:
  • Rekonfigurierbare Rechner
  • FPGA
  • Hardware/Software-Codesign
  • Strukturprogrammierung

BUYING OPTIONS

40.00 €
in stock