Mein IBM Anmelden Abonnieren
Was ist ein vor Field Programmable Gate Array (FPGA)?

Was ist ein vor Field Programmable Gate Array (FPGA)?

IBM Storage FlashSystem entdecken Melden Sie sich für Cloud-Updates an
Illustration mit Collage aus Piktogrammen von Computermonitor, Server, Wolken, Punkten

Veröffentlicht: 8. Mai 2024
Mitwirkende: Josh Schneider, Ian Smalley

Was ist ein vor Field Programmable Gate Array (FPGA)?

Was ist ein vor Field Programmable Gate Array (FPGA)?

Ein Field Programmable Gate Array (FPGA) ist eine vielseitige Art von integriertem Schaltkreis, der im Gegensatz zu herkömmlichen Logikgeräten wie anwendungsspezifischen integrierten Schaltungen (ASICs) so konzipiert ist, dass er programmierbar (und oft umprogrammierbar) ist, um für verschiedene Zwecke, insbesondere Hochleistungs-Computing( HPC) und Prototyping, geeignet zu sein.

Der Begriff Field Programmable (vor Ort programmierbar) bezieht sich auf die Fähigkeit eines FPGA, „vor Ort“ oder nach der Freigabe des Chips vom Hersteller programmiert zu werden. Xilinx, ein Technologiehersteller, führte FPGAs erstmals im Jahr 1985 ein. 

FPGAs können an zahlreiche Anwendungsfälle angepasst werden, auch für neue oder experimentelle Zwecke, ohne dass ihre Hardware physisch modifiziert oder verändert werden muss. Diese rekonfigurierbare Vielseitigkeit wird durch eine Reihe von festen programmierbaren Logikblöcken (PLBs) und flexiblen Verbindungen erreicht, die so konfiguriert werden können, dass sie entweder komplexe Operationen ausführen oder als einfache Logikgatter dienen. FPGAs enthalten auch Speicherelemente, die von Single-Bit-Flip-Flops bis hin zu sehr dichten Speicherarrays reichen und zur digitalen Datenspeicherung innerhalb des Geräts dienen.

FPGAs werden für ihre Kombination aus hoher Leistung und extremer Vielseitigkeit sehr geschätzt. Sie sind besonders in Anwendungen nützlich, die hohe Leistung, geringe Latenz und Echtzeitflexibilität erfordern. Aus diesem Grund werden sie häufig in der Telekommunikations-, Automobil- und Luft- und Raumfahrtindustrie eingesetzt.

Wie sich die IT mit autonomen Operationen selbst verwalten kann

Erfahren Sie, wie zukunftsorientierte IT-Führungskräfte KI und Automatisierung einsetzen, um durch autonomes IT-Betriebsmanagement Wettbewerbsfähigkeit zu erzielen.

Ähnliche Inhalte Think-Newsletter abonnieren
Field Programmable Gate Arrays (FPGAs) im Vergleich zu anwendungsspezifischen integrierten Schaltungen (ASICs)

Field Programmable Gate Arrays (FPGAs) im Vergleich zu anwendungsspezifischen integrierten Schaltungen (ASICs)

FPGAs und ASICs dienen unterschiedlichen Zwecken.

Ein ASIC wird für eine bestimmte Anwendung entwickelt und optimiert und kann nicht neu konfiguriert werden. Die internen Schaltungselemente (Transistoren) sind in einer festen Struktur angeordnet, zwischen denen sich eine feste und unveränderliche Verbindung (Verdrahtung) befindet.   

Weil ein ASIC nur einem Zweck dient, beinhaltet er nur die logischen Elemente, die für diesen Zweck notwendig sind. Wenn zum Beispiel kein Gleitkomma-Multiplikator benötigt wird, dann ist er nicht in das Design integriert. 

Umgekehrt kann ein FPGA für alle potenziellen Anwendungen konfiguriert und neu konfiguriert werden. Wie bei einem ASIC sind die internen Schaltungselemente in einer festen Struktur angeordnet (programmierbare Logikblöcke oder PLBs), jedoch mit rekonfigurierbaren Verbindungen dazwischen. Die Logikelemente in einem FPGA werden so ausgewählt, dass sie eine Vielzahl von Anwendungen unterstützen, leiden jedoch unter dem Prinzip „Use it or lose it“, wenn bestimmte Logikelemente nicht verwendet werden. Wenn für eine bestimmte Anwendung kein Gleitkommamultiplikator erforderlich ist, das FPGA jedoch einen enthält, ist diese Ressource nicht verbunden und stellt „verschwendeten Speicherplatz“ innerhalb des FPGAs dar.

Beide Geräte können zwar Hunderte Millionen von Transistoren enthalten, aber ein ASIC kann diese Transistoren verwenden, um hohe Effizienz und Leistung auf Kosten der Flexibilität zu erzielen. Die anfänglichen NRE-Gebühren für die Entwicklung eines ASIC können exorbitant sein, während die Kosten pro Einheit relativ niedrig sein können. 

Ein FPGA nutzt seine Transistoren, um eine hohe Effizienz und hohe Leistung zu liefern, aber auch eine enorme Flexibilität. Die NRE-Gebühren für die Entwicklung eines FPGA können im Voraus extrem niedrig sein, während die Kosten pro Einheit in der Regel höher sind. Es ist wichtig zu beachten, dass dies keine festen Regeln sind. Im Performance-Bereich haben sich beispielsweise die jüngsten FPGAs zu Taktraten von mehr als 500 MHz weiterentwickelt und werden in der Regel auf dem neuesten Stand der Technik in Silizium-Prozessgeometrien hergestellt. Kurz gesagt: Die Grenze zwischen FPGAs und ASIC wird mit jeder neuen FPGA-Generation immer unschärfer.

Wie funktionieren Field Programmable Gate Arrays?

Wie funktionieren Field Programmable Gate Arrays?

Ein FPGA wird zu einem angepassten Hardwaregerät, indem seine PLBs und Verbindungen mit einer Standard-Hardwarebeschreibungssprache (HDL) wie Verilog oder VHDL konfiguriert werden.

Spezifische FPGA-basierte Funktionen sowie die Verbindungen zwischen diesen Funktionen werden in einem HDL „beschrieben“. Die Beschreibung wird kompiliert, um eine FPGA-Konfigurationsdatei zu erstellen. Durch die Verwendung einer Hardwarebeschreibungssprache ist es möglich, integrierte FPGA-Ressourcen (Speicherarrays, PCI-Kerne und viele mehr) zu verwenden und aus primitiveren FPGA-Elementen benutzerdefinierte Logikschaltungen (Addierer, Multiplexer und andere anwendungsspezifische Funktionen) zu erstellen.

In einem Prozess, der als Synthese bekannt ist, wird der HDL-Code in eine Netzliste übersetzt, eine effektive Beschreibung der Logikgatter und Verbindungen, die zur Implementierung des HDL-Codes benötigt werden. Die Netzliste wird dann auf die PLBs und Verbindungen gemappt, die physisch die einzigartige Schaltung bilden.

Moderne FPGAs von Herstellern wie Intel und Altera bieten eine breite Palette digitaler und analoger Funktionen, darunter beeindruckende Logikdichten, Flash-Speicher, eingebettete Prozessoren und Blöcke zur digitalen Signalverarbeitung (DSP). FPGAs können konfiguriert und neu konfiguriert werden, indem elektrische Ein- und Ausgänge geändert werden, ausgewählt wird, welche internen Ressourcen verwendet werden, und über konfigurierbare Routing-Ressourcen bestimmt wird, wie diese Ressourcen verbunden werden. Das Endergebnis ist eine dedizierte Hardwarelösung zur Lösung eines bestimmten Problems.

Wie bei der Software kann die Entwicklung komplexer FPGA-Designs durch die Verwendung vorgefertigter Bibliotheken mit verschiedenen Funktionen und digitalen Schaltkreisen, die als IP-Cores (Intellectual Property) bezeichnet werden, rationalisiert werden. Diese Bibliotheken können von FPGA-Anbietern und Drittanbietern, die oft auf die Entwicklung verschiedener Funktionen spezialisiert sind, gekauft oder geleast werden.

Field Programmable Gate Array Module und Komponenten

Field Programmable Gate Array Module und Komponenten

Zusätzlich zu den traditionellen Schaltungskomponenten wie Mikrocontrollern und Wandlern verwenden moderne FPGA-Bauelemente eine Kombination aus verschiedenen programmierbaren Elementen, um ihre rekonfigurierbaren Funktionen zu erreichen.

Bei diesen programmierbaren Elementen handelt es sich in erster Linie um konfigurierbare Logikblöcke (CLBs), programmierbare Verbindungselemente, programmierbares Routing, programmierbare Eingabe-/Ausgabeblöcke (IOBs), On-Chip-Speicher und digitale Signalverarbeitungsblöcke (DSPs). 

Konfigurierbare Logikbausteine

Konfigurierbare Logikblöcke (CLBs) sind die Hauptkomponente von FPGAs. CLBs enthalten in der Regel einige primitive Logikelemente (Logikgatter, kleine Nachschlagetabellen, Flip-Chips, Multiplexer und vieles mehr). Innerhalb des CLB dient ein Flip-Flop in der Regel als Hauptdatenspeicherelement, obwohl neuere Gerätefamilien auch flache Speicherelemente innerhalb des CLB enthalten können.

Programmierbare Verbindungen

Verbindungen, die aus Kabelsegmenten bestehen, die durch elektrisch programmierbare Schalter verbunden sind, ermöglichen Routingpfade zwischen dem Logikblock des FPGA. Schaltkästen mit mehreren grundlegenden Halbleiterschaltern werden häufig verwendet, um die programmierbare Verbindung eines FPGAs herzustellen. Über diese Verbindungen können die Outputs einer bestimmten Einheit oder eines Eingangspads mit einer anderen Zelle oder einem anderen Pad innerhalb der Schaltungstechnik verknüpft werden.

Programmierbares Routing

Vorgefertigte Kabelsegmente werden durch die programmierbaren Verbindungen miteinander verbunden (oder offen gelassen), um eine vollständig programmierbare Routing-Infrastruktur innerhalb eines FPGA zu schaffen. Routing-Ressourcen sind hierarchischer Natur, mit einer Kombination aus langen, mittleren und kurzen Leitungen, die verschiedene „Längen“ innerhalb des FPGA abdecken.  Diese programmierbare Routing-Infrastruktur, die durch die programmierbaren Verbindungen entsteht, ermöglicht es Benutzern, FPGA-Ressourcen für die Implementierung einer bestimmten Aufgabe oder Anwendung zu konfigurieren.

Programmierbare Ein-/Ausgabeblöcke (IOBs)

Die Schnittstelle zwischen einem FPGA und anderen externen Geräten wird durch Eingabe/Ausgabe (I/O) in Blöcken (IOBs) ermöglicht. IOBs sind programmierbare Ein- und Ausgaberessourcen, die so konfiguriert sind, dass sie den Protokollen aller externen Geräte entsprechen, mit denen der FPGA verbunden ist. Alle Signale, die in das FPGA eintreten oder es verlassen, erfolgen über Gerätepins und zugehörige IOBs.

On-Chip-Speicher

Die frühesten FPGAs verwendeten nur Flip-Flops (FFs), um Speicher in die FPGA-Logikblöcke zu integrieren. Mit der Zunahme der FPGA-Funktionen erforderten die immer komplexeren Designs jedoch einen dedizierten On-Chip-Speicher für die Pufferung und Wiederverwendung von Daten. Moderne FPGAs verwenden große SRAM-Speicherarrays, kleinere Look-up-Tabellen (LUTs) und traditionelle Flip-Flop-Elemente, um den erforderlichen Speicher für eine bestimmte Anwendung bereitzustellen.

Blöcke für die digitale Signalverarbeitung (DSP)

In frühen FPGAs waren die einzigen verfügbaren arithmetischen Ressourcen einfache Addierer. Alles Komplexere wurde aus einfacheren Logikelementen aufgebaut. Mit dem Fortschritt der Siliziumtechnologie wurden jedoch komplexere arithmetische Ressourcen in FPGAs integriert, was im modernen FPGA-DSP-Block gipfelte. DSP-Blöcke stellen hochoptimierte Ressourcen (Multiplikatoren, Akkumulatoren und vieles mehr) für die Implementierung von besonders leistungsstarken arithmetischen Funktionen zur Verfügung.

Durch ihre Verwendung entfällt die Notwendigkeit, diese Funktionen in universelle CLBs zu implementieren, wodurch die CLBs für andere Zwecke frei werden. Diese Ressourcen können bei Operationen wie digitaler Filterung, Faltung, Fourier-Transformationen, trigonometrischen Operationen und vielen weiteren zum Einsatz kommen, um Echtzeitleistung in Anwendungen wie der Radarverarbeitung, Strahlformung, Mustererkennung und anderen zu erzielen.

Verschiedene Arten von Field Programmable Gate Arrays

Verschiedene Arten von Field Programmable Gate Arrays

FPGAs sind in verschiedenen Varianten erhältlich, die verschiedene Arten von Konfigurierbarkeit, Stromverbrauch, programmierbaren Elementen und On-Chip-Speicher bieten.

  • Auf Anti-Sicherung basierte FPGAs: FPGAs, die konfigurierbar, aber nicht rekonfigurierbar sind. Sie verwenden ein einmaliges programmierbares Element, das als Anti-Sicherung bezeichnet und durch Anlegen einer Hochspannung konfiguriert wird, um Verbindungen zwischen internen Drähten herzustellen. Ein FPGA auf Anti-Sicherungsbasis kann nur einmal konfiguriert und nicht neu konfiguriert werden.
  • SRAM-basierte FPGAs: Diese Arten von FPGAs sind äußerst vielseitig und können zur Laufzeit konfiguriert werden. SRAM-basierte FPGAs verwenden statische Direktzugriffsspeicher (SRAM), um ihre Konfigurationsanweisungen zu speichern, und benötigen externe Speicher, um den Konfigurationscode zu speichern.
  • Flash-basierte FPGAs: Im Gegensatz zu SRAM-basierten FPGAs speichern Flash-basierte FPGAs ihre Konfiguration in einem nichtflüchtigen Flash-Speicher, was den zusätzlichen Vorteil hat, dass sie neu programmierbar sind.
  • EEPROM-basierte FPGAs: Diese Art von FPGAs ähnelt Flash-basierten FPGAs, aber der elektronisch löschbare programmierbare Read-Only-Speicher (EEPROM) speichert die Konfiguration des FPGAS. Beide Stile sind nichtflüchtig und umprogrammierbar.
  • Hybride FPGAs: Hybride FPGAs bieten unterschiedliche Leistungsniveaus, einen stromsparenden Betrieb und Vielseitigkeit durch eine Kombination verschiedener programmierbarer Elemente, wie z. B. SRAM- oder Flash-basierte Logikblöcke.
  • System-on-Chip-FPGAs: System-on-Chip (SoC) FPGAs integrieren programmierbare Logik mit harten Prozessorkernen und kombinieren die Funktionalität eines FPGAs und eines SoC, einem einzigen Siliziumchip, der mehrere Systemverarbeitungschips wie CPUs, GPUs und RAM in einer Einheit kombiniert.
Anwendungsfälle für Field Programmable Gate Arrays

Anwendungsfälle für Field Programmable Gate Arrays

FPGAs sind von Natur aus vielseitig einsetzbar und eignen sich für viele verschiedene Anwendungen.

Radar-Anwendungen

FPGAs werden aufgrund ihrer Hochgeschwindigkeits- und Parallelverarbeitungsfähigkeiten für die Signalverarbeitung und Datenerfassung bevorzugt.

Unbemannte Luftfahrzeuge (UAVs)

Aufgrund ihrer schnellen Algorithmen zur Signalverarbeitung eignen sich FPGAs gut für die Durchführung von Flugsteuerungs-, Sensorverarbeitungs- und Kommunikationsaufgaben, die in unbemannten Luftfahrzeugen wie Drohnen verwendet werden.

Industrielle Steuerungssysteme (ICS)

Industrielle Steuerungssysteme zur Überwachung von Infrastrukturen wie Stromnetzen, Ölraffinerien und Wasseraufbereitungsanlagen verwenden FPGAs, die leicht optimiert werden können, um die individuellen Anforderungen verschiedener Branchen zu erfüllen. In diesen kritischen Branchen können FPGAs verwendet werden, um verschiedene Automatisierungen und hardwarebasierte Verschlüsselungsfunktionen für eine effiziente Cybersicherheit zu implementieren.

ASIC-Prototyping

FPGAs sind zwar nützliche Lösungen für Aufgaben, die Flexibilität erfordern, aber aufgabenspezifische ASICs eignen sich oft besser für standardisierte Abläufe. Bei der Entwicklung neuer Systeme sind FPGAs wertvoll für die Entwicklung und das Prototyping neuer ASICs für neue Technologien.

Rechenzentren

FPGAs steigern den Wert von Rechenzentren, indem sie Server sowie Netzwerk- und Speicherinfrastrukturen mit hoher Bandbreite und geringer Latenz ermöglichen.

Weiterführende Lösungen

Weiterführende Lösungen

IBM Storage FlashSystem 5300

Auf Unternehmen abgestimmter Speicher, der mit Ihnen zusammen wächst. IBM Storage FlashSystem 5300 ist eine NVMe-Speicheroption für Unternehmen, die gerade am Anfang stehen und einen kompakten, leistungsstarken Speicher benötigen. Es vereinheitlicht die Datenverwaltung im Kern, in der Cloud und am Edge und verfügt über einen revolutionären 1U-Formfaktor. 

IBM Storage FlashSystem 5300 entdecken

IBM PCIe Cryptographic Coprocessor

Ein Coprozessor, mit dem Sie rechenintensive kryptografische Prozesse von Ihrem Host-Server abladen können. IBM PCIe Cryptographic Coprocessors sind eine Familie von Hochleistungs-Hardware-Sicherheitsmodulen (HSM). Diese programmierbaren PCIe-Karten arbeiten mit bestimmten IBM Z, x64 und IBM Power-Servern zusammen, um rechenintensive kryptografische Prozesse wie sichere Zahlungen oder Transaktionen vom Host-Server zu entlasten.

Erkunden Sie IBM PCIe Cryptographic Coprocessor

Apache Spark auf IBM Power

Ein Open-Source-Framework für Cluster Computing, das Daten enorm schnell und in großen Mengen verarbeitet. Apache Spark wurde im AMPLab an der UC Berkeley entwickelt. Es kann dabei helfen, die Komplexität von Dateninteraktionen zu verringern, die Verarbeitungsgeschwindigkeit zu erhöhen und geschäftskritische Anwendungen mit tiefer Intelligenz zu optimieren.

Mehr Informationen über Apache Spark auf IBM Power
Ressourcen

Ressourcen

Was ist Flash Speicher?

Flash-Speicher ist eine Solid-State-Speichertechnologie, die Flash-Speicherchips zum Schreiben und Speichern von Daten verwendet. Dies wird auch als Ein-/Ausgabeoperation pro Sekunde (IOPS) bezeichnet.

Was ist IT-Infrastruktur?

Die IT-Infrastruktur, auch als Informationstechnologie-Infrastruktur bekannt, bezieht sich auf die kombinierten Komponenten, die für den Betrieb und die Verwaltung von IT-Services und IT-Umgebungen eines Unternehmens erforderlich sind.

Was ist Datenspeicher?

Die Datenspeicherung bezieht sich auf magnetische, optische oder mechanische Medien, die digitale Informationen für laufende oder zukünftige Operationen aufzeichnen und aufbewahren.

Was ist Apache Spark?

Apache Spark ist eine blitzschnelle Engine zur Open Source Datenverarbeitung für maschinelles Lernen und KI-Anwendungen, unterstützt von der größten Open-Source-Community im Bereich Big Data.

Was ist KI-Infrastruktur?

KI ist ein Begriff, der sich auf die Hardware und Software bezieht, die zum Erstellen und Bereitstellen von KI-gestützten Anwendungen und Lösungen erforderlich ist.

Was ist Verschlüsselung?

Datenverschlüsselung ist eine Möglichkeit, Daten vom Klartext (unverschlüsselt) in Chiffretext (verschlüsselt) zu übersetzen.

Machen Sie den nächsten Schritt

Vereinfachen Sie das Daten- und Infrastrukturmanagement mit IBM Storage FlashSystem, einer hochleistungsfähigen All-Flash-Speicherlösung, die die Verwaltung und den Betrieb in On-Premises-, Hybrid Cloud-, virtualisierten und Container-Umgebungen optimiert.

    FlashSystem-Speicher entdecken Mehr erfahren