3.3 Verarbeitungseinheiten
181
3.3.3 Rekonfigurierbare Logik
Für viele Anwendungsfälle ist ein vollständiger Hardwareentwurf und der Einsatz
von anwendungsspezifischen integrierten Schaltkreisen (ASICs) zu teuer. Andererseits sind Lösungen, die auf Software basieren, häufig zu langsam oder verbrauchen
zu viel Energie. Rekonfigurierbare Logik kann dann eine Lösung darstellen, wenn
die verwendeten Algorithmen effizient in speziell angepasster Hardware implementiert werden können. Diese Lösung kann beinahe so schnell sein wie der Einsatz
von ASICs. Im Gegensatz zu diesen kann die ausgeführte Funktion allerdings durch
das Ändern von Konfigurationsdaten verändert werden. Wegen dieser Eigenschaften
findet die rekonfigurierbare Logik in den folgenden Gebieten Anwendung:
• Prototypen: Moderne ASICs können sehr komplex sein und der Entwurfsprozess ist langwierig und teuer. Daher möchte man häufig einen Prototypen zur
Verfügung haben, der für Versuche mit dem System verwendet werden kann und
der sich „fast“ wie das endgültige System verhält. Der Prototyp darf teurer und
größer als das endgültige System sein. Auch darf sein Stromverbrauch durchaus
noch höher sein und Zeitbedingungen können entschärft werden. Es ist auch
möglich, dass der Prototyp nur die wichtigsten Funktionen implementiert. Solch
ein Prototyp kann dazu verwendet werden, das grundlegende Verhalten des zu
entwickelnden Systems zu überprüfen.
• Kleine Stückzahlen: Wenn das zu erwartende Marktvolumen zu klein ist, um
die hohen Entwicklungskosten für ASICs zu amortisieren, kann rekonfigurierbare
Logik der richtige Ansatz für Anwendungen sein, die sich nicht allein in Software
implementieren lassen.
• Echtzeitsysteme: Das Zeitverhalten FPGA-basierter Systeme lässt sich meist
sehr genau bestimmen. Daher können FPGAs verwendet werden, um Systeme
mit vorhersagbarem Zeitverhalten zu implementieren.
• Anwendungen mit möglicher stark paralleler Verarbeitung: Beispielsweise
kann die parallele Suche nach bestimmten Mustern sehr effizient in paralleler
Hardware realisiert werden. Dementsprechend wird rekonfigurierbare Logik bei
der Suche nach genetischer Information, bei der Suche nach Mustern der InternetKommunikation, bei Börsendaten, bei der seismischen Analyse usw. eingesetzt.
Rekonfigurierbare Hardware enthält typischerweise einen Speicher, um die Konfigurationsinformation während des normalen Betriebs der Hardware abzuspeichern.
Wir unterscheiden zwischen flüchtigem und persistentem Konfigurationsspeicher
(engl. volatile and persistent configuration memory). Bei persistentem Speicher
wird die Information nach einem Ausschalten der Betriebsspannung beibehalten.
Bei flüchtigem Speicher geht sie dagegen verloren und muss beim Start aus einem
persistenten Speicher (wie einem Flash-Speicher) geladen werden.
Field programmable gate arrays (FPGAs) sind die häufigste Form rekonfigurierbarer Hardware. Diese Schaltungen können „im Feld” (d.h. nach der Herstellung) mit
Konfigurationsdaten programmiert werden. Sie bestehen aus einer matrixförmigen
Anordnung von Verarbeitungselementen.
181
3.3.3 Rekonfigurierbare Logik
Für viele Anwendungsfälle ist ein vollständiger Hardwareentwurf und der Einsatz
von anwendungsspezifischen integrierten Schaltkreisen (ASICs) zu teuer. Andererseits sind Lösungen, die auf Software basieren, häufig zu langsam oder verbrauchen
zu viel Energie. Rekonfigurierbare Logik kann dann eine Lösung darstellen, wenn
die verwendeten Algorithmen effizient in speziell angepasster Hardware implementiert werden können. Diese Lösung kann beinahe so schnell sein wie der Einsatz
von ASICs. Im Gegensatz zu diesen kann die ausgeführte Funktion allerdings durch
das Ändern von Konfigurationsdaten verändert werden. Wegen dieser Eigenschaften
findet die rekonfigurierbare Logik in den folgenden Gebieten Anwendung:
• Prototypen: Moderne ASICs können sehr komplex sein und der Entwurfsprozess ist langwierig und teuer. Daher möchte man häufig einen Prototypen zur
Verfügung haben, der für Versuche mit dem System verwendet werden kann und
der sich „fast“ wie das endgültige System verhält. Der Prototyp darf teurer und
größer als das endgültige System sein. Auch darf sein Stromverbrauch durchaus
noch höher sein und Zeitbedingungen können entschärft werden. Es ist auch
möglich, dass der Prototyp nur die wichtigsten Funktionen implementiert. Solch
ein Prototyp kann dazu verwendet werden, das grundlegende Verhalten des zu
entwickelnden Systems zu überprüfen.
• Kleine Stückzahlen: Wenn das zu erwartende Marktvolumen zu klein ist, um
die hohen Entwicklungskosten für ASICs zu amortisieren, kann rekonfigurierbare
Logik der richtige Ansatz für Anwendungen sein, die sich nicht allein in Software
implementieren lassen.
• Echtzeitsysteme: Das Zeitverhalten FPGA-basierter Systeme lässt sich meist
sehr genau bestimmen. Daher können FPGAs verwendet werden, um Systeme
mit vorhersagbarem Zeitverhalten zu implementieren.
• Anwendungen mit möglicher stark paralleler Verarbeitung: Beispielsweise
kann die parallele Suche nach bestimmten Mustern sehr effizient in paralleler
Hardware realisiert werden. Dementsprechend wird rekonfigurierbare Logik bei
der Suche nach genetischer Information, bei der Suche nach Mustern der InternetKommunikation, bei Börsendaten, bei der seismischen Analyse usw. eingesetzt.
Rekonfigurierbare Hardware enthält typischerweise einen Speicher, um die Konfigurationsinformation während des normalen Betriebs der Hardware abzuspeichern.
Wir unterscheiden zwischen flüchtigem und persistentem Konfigurationsspeicher
(engl. volatile and persistent configuration memory). Bei persistentem Speicher
wird die Information nach einem Ausschalten der Betriebsspannung beibehalten.
Bei flüchtigem Speicher geht sie dagegen verloren und muss beim Start aus einem
persistenten Speicher (wie einem Flash-Speicher) geladen werden.
Field programmable gate arrays (FPGAs) sind die häufigste Form rekonfigurierbarer Hardware. Diese Schaltungen können „im Feld” (d.h. nach der Herstellung) mit
Konfigurationsdaten programmiert werden. Sie bestehen aus einer matrixförmigen
Anordnung von Verarbeitungselementen.
