Direkte Integration von FPGA-Strukturen in CPU-Architekturen

| Autor / Redakteur: Alok Sanghavi * / Sebastian Gerstl

d
d (Bild: Achronix)

In der Vergangenheit schreckten Systementwickler noch vor dem Einsatz von FPGAs eher zurück: Die Komplexität, der Stromverbrauch und der zusätzliche Platzbedarf sprach bisweilen gegen die zusätzlichen Bauteile. Inzwischen lassen sich FPGAs allerdings auch von Beginn an als eigenes Element ins Chipdesign einer CPU integrieren.

Die physikalischen Gesetze diktieren, wie weit uns die weitere Verkleinerung der Prozessgeometrien noch bringen kann, um den Durchsatz der Prozessoren zu steigern. Die Designer debattieren zwischenzeitlich darüber, wie sich die gewünschten Geschwindigkeitssteigerungen erreichen lassen, ohne dass immer mehr Transistoren auf einen Chip gepackt werden müssen. Eine der größten Innovationen der Branche wird dabei durch die grundlegend neue Anwendung einer Technologie entstehen, die schon seit einiger Zeit bekannt und erforscht ist. Gemeint ist das FPGA (Field-Programmable Gate Array).

FPGAs kamen 1984 als diskrete Bauelemente auf den Markt. Xilinx und Actel stellten seinerzeit Produkte vor, die hauptsächlich für Kleinserien und Prototyping-Zwecke sowie zum behelfsmäßigen Ausfüllen von Fehlstellen in der Systemlogik gedacht waren. Altera Lucent und Agere ebnet den FPGAs dann den Weg in Netzwerk- und Telekommunikations-Anwendungen.

Schrumpfende Prozessgeometrien, sinkende Maskenkosten sowie die Integration von SRAM-Blöcken, großen MACs, ausgefeilten, konfigurierbaren I/Os und SerDes-Funktionen markierten das Wachstum bei den FPGAs ab 1995. In den letzten zehn Jahren ist die Verbreitung der FPGAs gestiegen, während das Preisniveau so weit sank, dass sie auch in Großserien-Anwendungen eine signifikante Wertsteigerung bewirken können, und zwar in Funktionen, die man ursprünglich mit DSPs, GPUs und MCUs in Verbindung gebracht hätte.

Dank immer kostengünstiger und stromsparenderer FPGAs scheint sich nun eine dritte Phase der FPGA-Entwicklung anzubahnen. Systemarchitekten integrieren zunehmen FPGAs in Systeme für Rechenzentren, wo sie etwa als Hardwarebeschleuniger zur Paketinspektion, für Beschleunigungs- und Security-Aufgaben in Datenbanken sowie für maschinelles Lernen und Software-Defined Networking eingesetzt werden. Auch in der Entwicklung und Anwendung künstlicher Intelligenzen spielen FPGAs eine zunehmend wichtige Rolle.

"Embedded FPGA": Einbindung von FPGA-Strukturen in CPUs

Diese Idee stieß in der Vergangenheit auf Widerstände: SoC-Entwickler hegten Bedenken wegen der Abmessungen, der Geschwindigkeit und der Kosten. Diese Argumente stechen jedoch nicht mehr, denn die FPGAs haben sich in allen Belangen um eine ganze Größenordnung verbessert. Es ist nicht mehr notwendig zwingend notwendig, einen FPGA als separaten Baustein in sein Systemdesign einzuplanen – FPGAs lassen sich nun direkt ins geplante Chipdesign integrieren.

Die Grundlagen

Jede moderne CPU, mit der Sie sich befassen, wird im Wesentlichen auf der modifizierten Harvard-Architektur nach dem Load/Store-Prinzip basieren, in der Befehle und Daten separat gespeichert und auf unterschiedlichen Wegen übertragen werden. Die Befehlssätze werden auf der Steuerungsebene kommuniziert. Dies beschreibt, wie mit den Daten umgegangen wird, und übernimmt die ‚Housekeeping‘- Funktionen für das gesamte System.

Eine typische CPU ist relativ ineffizient in der Verarbeitung komplexer, dabei aber weitgehend konsistenter Operationen auf der Daten-Ebene. Das ist aus mehreren Gründen der Fall: Die fortlaufende Notwendigkeit, ständig oftmals komplexe Befehle zu laden und die resultierenden Daten abzuspeichern ist ein Faktor. Auch der Zwang, eine Vielzahl unterschiedlicher fest verdrahteter Strukturen ‚auf Standby‘ vorzuhalten, um Daten im selben Chip zu bearbeiten, ist keine Aufgabe, für die sich Prozessoren besonders gut eignen. Hinzu kommt das Erfordernis, ständig (d. h. ungefähr alle 100 Zyklen) den Kontext zu wechseln, um verschiedene Aufgaben auszuführen.

Ein FPGA ist eine Anordnung von Logikblöcken, die durch rekonfigurierbare Routing-Kanäle miteinander verbunden sind, sodass sie zur Ausführung sehr spezieller Funktionen verknüpft werden können. Natürlich verarbeiten FPGAs – ebenso wie CPUs – Befehle und Daten separat mithilfe von Speichern und Logik. FPGAs nutzen Speicher zum Konfigurieren von Wertetabellen, Multiplexern, partiell bestückten Verbindungs-Matrizen und einer Reihe weiterer Elemente. Dennoch gibt es einen entscheidenden Unterschied, denn eine CPU ist für schnelle Kontextwechsel optimiert. Sie lädt Befehle und Daten aus Registern und Speichern, um nur wenige Zyklen später einen ganz neuen Satz mit Befehlen und Daten zu laden.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44921819 / FPGA)