Konfigurierbare Hardware- und Prozessorarchitekturen

In der heutigen Rechnerlandschaft werden mehrere Prozessorarchitekturen eingesetzt. Trotz immer mehr verbesserten Implementierungen, ist in manchen Fällen die Ausführungsgeschwindigkeit von Standardprozessoren nicht ausreichend. Dies gilt insbesondere für Echtzeitanwendungen. Für solche Anwendungen werden häufig die sogenannten ASIC’s (Application Specific Integrated Circuits) eingesetzt. Dabei wird eine Hardware für die Lösung einer bestimmten Aufgabe optimal programmiert. Der Nachteil dabei ist, daß ASICs wenig Flexibilität bieten. Ändert sich beispielsweise die Aufgabenstellung, so ist das bestehende ASIC nicht mehr dafür geeignet, da es nur für eine bestimmte Aufgabe konzipiert worden ist. In diesem Fall muß ein anderes ASIC entwickelt werden.

Es gibt eine weitere Familie von Hardware, die es erlaubt, mit mehr Flexibilität Hardwarelösungen zu implementieren. Wenn die Hardware auf den sogenannten Field Programmable Gate Array’s (FPGAs) basiert, kann sie mehrmals rekonfiguriert werden. Somit bietet jede Konfiguration der Hardware eine Möglichkeit, eine andere Aufgabe zu lösen. Zusätzlich bleibt dabei die schnelle Ausführung weitgehend erhalten, da im Allgemeinen eine Hardwarelösung immer schneller als eine Softwarelösung ist.

Viele Anwendungen sowie Rechner- und Prozessorarchitekturen wurden schon mit Hilfe solcher rekonfigurierbaren Hardware implementiert. Unsere Forschungsarbeiten verfolgen die  Idee einer dynamischen Prozessorarchitektur. Bei den modernen Prozessorarchitekturen werden mehrere spezialisierten Funktionseinheiten und die dazu gehörigen Register definiert, die parallel arbeiten können. Damit wird eine sehr hohe Befehlsparallelität ermöglicht und der Befehlsdurchsatz des Prozessors entsprechend hinaufgesetzt. Solche Funktionseinheiten werden fest verdrahtet während der Prozessorherstellung bereitgestellt.  Bei einer dynamischen Prozessorarchitektur wird erst während der Programmausführung mit Hilfe der Hardware Rekonfiguration festgelegt, welche Hardware Ressourcen (Funktionseinheiten, Register,…) zur Verfügung gestellt werden.

Aus dieser Forschung sollen Kenntnisse über die Möglichkeit einer Realisierung solcher Überlegungen gewonnen werden. Darüber hinaus sollen Schlußfolgerungen über die erzielte Prozessorleistung sowie über den Hardware-Verbrauch unter Berücksichtigung bestimmter Parameter (Chipfläche, Stromverbrauch,…) gezogen werden.