FPGA
Field Programmable Gate Array (FPGA) ist ein integrierter Schaltkreis, der vom Kunden oder Konstrukteur nach der Herstellung konfiguriert und somit “feldprogrammierbar” ist. FPGAs sind integrierte Schaltkreise, die nach ihrer Herstellung für eine bestimmte Aufgabe, wie zum Beispiel für den Mining von Bitcoins, angepasst werden können, wodurch ASIC entsteht.
Inhaltsverzeichnis
Was ist FPGA?
Die FPGA-Konfiguration wird im Allgemeinen unter Verwendung einer Hardwarebeschreibungssprache (HDL) festgelegt, ähnlich der für einen anwendungsspezifischen integrierten Schaltkreis (ASIC) verwendeten (früher wurden Schaltpläne verwendet, um die Konfiguration wie bei ASICs anzugeben), dies wird jedoch zunehmend Selten). FPGAs können verwendet werden, um jede logische Funktion zu implementieren, die ein ASIC ausführen kann. Die Möglichkeit, die Funktionalität nach dem Versand zu aktualisieren, eine teilweise Neukonfiguration eines Teils des Designs und die geringen einmaligen Engineeringkosten im Vergleich zu einem ASIC-Design (ungeachtet der allgemein höheren Stückkosten) bieten für viele Anwendungen Vorteile.
FPGAs enthalten programmierbare Logikkomponenten, die als “Logikblöcke” bezeichnet werden, und eine Hierarchie von rekonfigurierbaren Verbindungen, die es ermöglichen, die Blöcke “miteinander zu verbinden”, ähnlich wie viele Logikgatter, die in (vielen) verschiedenen Konfigurationen miteinander verbunden werden können. Logikblöcke können konfiguriert werden, um komplexe Kombinationsfunktionen auszuführen, oder lediglich einfache Logikgatter wie AND und XOR. In den meisten FPGAs enthalten die Logikblöcke auch Speicherelemente, die einfache Flip-Flops oder vollständigere Speicherblöcke sein können.
FPGA-Architektur
Der FPGA enthält drei programmierbare Hauptelemente:
- nicht kommutierte programmierbare Logikblöcke (PLBs);
- E/A-Einheiten (E/A-Einheiten);
- interne Kommunikation.
- Lbf sind die funktionalen Elemente für die Erstellung der Benutzerlogik. Der BVV ermöglicht die Kommunikation zwischen den Kontakten des Körpers und den internen Signalleitungen. Programmierbare interne Kommunikationsressourcen steuern die Verbindungsmöglichkeiten der Ein- und Ausgänge von PLBs und E/A-Einheiten (E/A-Einheiten) mit den jeweiligen Netzwerken. Alle Spurkanäle haben dieselbe Breite (dieselbe Anzahl von Leitern). Die meisten E / A-Einheiten (E/A-Einheiten) befinden sich entweder in derselben Zeile (Höhe) oder in derselben Spalte (Breite) des Ventilarrays.
Die logische Einheit (PLB) eines klassischen PMPP besteht aus einer Wahrheitstabelle (siehe Diskussion) (engl. Lookup-Tabelle, LUT) an vier Eingängen und einem Trigger (siehe Abbildung unten). In den letzten Jahren haben Hersteller begonnen, in eine Wahrheitstabelle mit einer großen Anzahl von Eingängen zu konvertieren, wodurch für typische Anwendungen weniger Logikblöcke verwendet werden können.
Technologie
Ein typischer logischer Block
Die logische Einheit (PLB) verfügt über eine Wahrheitstabelle mit vier Eingängen und einem Takteingang. Die Ausgabe der Einheit ist nur eine Wahrheitstabelle mit einem Register oder einem Ausgang ohne Register. Da die Synchronisationssignale in kommerziellem AVMS (und häufig andere Signale, die durch eine große Anzahl von Eingängen parallelisiert werden – High-Fanout-Signale) auf spezielle Weise durch spezielle Verfolgungsschaltungen verfolgt werden, erfolgt die Verwaltung dieser Signale getrennt.
Für die folgende Beispielarchitektur wird unten die Position der logischen Blockkontakte angezeigt.
Position der logischen Blockkontakte
Die Eingänge befinden sich auf separaten Seiten der logischen Einheit. Der Ausgangspin kann in zwei Kanälen verfolgt werden: entweder rechts neben dem Gerät oder unten. Die Ausgangspins jeder logischen Einheit können mit Spurensegmenten in benachbarten Kanälen verbunden werden. In ähnlicher Weise kann der Kontaktbereich der E/A-Einheit (Pad) mit einem Spurenelement in einem beliebigen Nachbarkanal verbunden werden. Beispielsweise kann die obere Kontaktfläche des Chips mit einem der W-Leiter (wobei W die Breite des Kanals ist) in einem horizontalen Kanal direkt darunter angeordnet sein.
In der Regel ist der AVM-Trace nicht segmentiert, dh jedes Leitersegment verbindet nur einen logischen Block mit dem Switch-Block. Aufgrund der Beugung der programmierbaren Schalter in der Schalterlinie fällt die Spur länger aus. Um die Geschwindigkeit von In-System-Verbindungen zu erhöhen, werden in einigen IMPM-Architekturen längere Trace-Verbindungen zwischen logischen Blöcken verwendet.
Schalterblöcke werden am Schnittpunkt von vertikalen und horizontalen Kanälen erstellt. Bei dieser Architektur gibt es drei programmierbare Schalter für jeden Leiter in der Schaltbox, mit denen er mit drei anderen Leitern in benachbarten Kanalsegmenten verbunden werden kann. Das Switch-Modell oder die Topologie, die in dieser Architektur verwendet wird, ist die planare oder Domain-Topologie der Switch-Einheiten. In dieser Topologie ist eine Führung für die Autobahn 1 nur mit den Leiterbahnen der Nummer 1 in den benachbarten Kanälen verbunden, die Führungsroute Nr. 2 ist nur mit den Leitern der Spurnummer 2 usw. verbunden. Die folgende Abbildung zeigt die Anschlüsse in der Switchbox.
Die Topologie des Schalterblocks
Moderne FPGA-Familien erweitern die oben aufgeführten Möglichkeiten und bieten integrierte Funktionen auf hohem Niveau. Aufgrund des Vorhandenseins dieser gemeinsamen Funktionen im Siliziumkristall ist es möglich, die Fläche des Kristalls zu reduzieren. Zusätzlich zu diesem Schema funktionieren diese Funktionen schneller als wenn sie auf Basis von Grundelementen implementiert werden. Beispiele für solche Funktionen sind Multiplexer, digitale Signalverarbeitungseinheiten, eingebaute Prozessoren, schnelle E/A-Logik und eingebauter Speicher.
PMTCT wird auch häufig für Eignungsprüfungssysteme verwendet, einschließlich Eignungsprüfungen vor und nach Silizium sowie für die Entwicklung von Programmen für eingebettete Systeme. Dies ermöglicht Herstellern von integrierten Schaltkreisen, die Leistung ihrer Geräte vor der Herstellung im Werk zu testen, was die Zeit des Markteintritts verkürzt.
Verschiedene FPGAs
Produkt | Hash rate [Mhash/s] | Effizienz [Mhash/J] | Effizienz [Mhash/s/$] | Leistung [W] | Preis [$] |
---|---|---|---|---|---|
Avnet Spartan-6 LX150T Development Kit | 100 | 0.10 | 995 | ||
Bitcoin Dominator X5000 | 100 | 440 | |||
BitForce SHA256 Single | 832 | 10.4 | 1.38 | 80 | 599 |
Butterflylabs Mini Rig | 25,200 | 20.16 | 1.64 | 1,250 | 15,295 |
Digilent Nexys 2 500K | 5 | 0.03 | 149 | ||
Icarus | 380 | 19.79 | 0.66 | 19.2 | 569 |
KnCMiner Mars | 6,000 | ??? | 2.15 | ??? | 2,795 |
Lancelot | 400 | 26 | 350 | ||
ModMiner Quad | 800 | 20 | 0.75 | 40 | 1,069 |
Terasic DE2-115 | 80 | 0.13 | 595 | ||
X6500 FPGA Miner | 400 | 23.25 | 0.72 | 17.2 | 550 |
ZTEX USB-FPGA Module 1.15b | 90 | 0.27 | 325 | ||
ZTEX USB-FPGA Module 1.15x | 215 | 0.52 | 406 | ||
ZTEX USB-FPGA Module 1.15y | 860 | 0.65 | 1,304 |
FPGA und ASIC
Die anwendungsspezifische integrierte Schaltung ist ein einzigartiger IC, der für einen bestimmten Zweck entwickelt wurde. Diese Art von ICs ist heutzutage in der meisten Hardware sehr verbreitet, da das Bauen mit Standard-IC-Komponenten zu großen und sperrigen Schaltungen führen würde. Ein FPGA (Field Programmable Gate Array) ist ebenfalls eine Art IC, jedoch ist die Programmierung während der Produktion nicht integriert. Wie der Name schon sagt, kann der IC vom Benutzer programmiert werden, solange er über die richtigen Werkzeuge und das richtige Wissen verfügt.
Ein ASIC kann nicht mehr geändert werden, nachdem er die Produktionslinie verlassen hat. Aus diesem Grund müssen sich die Konstrukteure absolut sicher sein, insbesondere wenn große Mengen des gleichen ASICs hergestellt werden. Der programmierbare Charakter eines FPGAs erlaubt es den Herstellern, Fehler zu korrigieren und sogar Patches oder Updates zu versenden, nachdem das Produkt gekauft wurde. Die Hersteller nutzen dies auch, indem sie ihre Prototypen in einem FPGA erstellen, so dass dieser gründlich getestet und in der realen Welt überarbeitet werden kann, bevor der Entwurf an die IC-Gießerei für die ASIC-Produktion gesendet wird.
ASICs haben einen großen Vorteil hinsichtlich der wiederkehrenden Kosten, da aufgrund der festen Anzahl von Transistoren im Design sehr wenig Material verschwendet wird. Mit einem FPGA wird immer eine bestimmte Anzahl von Transistorelementen verschwendet, da diese Pakete Standard sind. Dies bedeutet, dass die Kosten eines FPGAs oft höher sind als die eines vergleichbaren ASICs. Obwohl die wiederkehrenden Kosten eines ASIC recht niedrig sind, sind seine einmaligen Kosten relativ hoch und reichen oft bis in die Millionen. Da es jedoch nicht wiederkehrend ist, nimmt sein Wert pro IC mit zunehmendem Volumen ab. Wenn Sie die Produktionskosten im Verhältnis zum Volumen analysieren, werden Sie feststellen, dass die Verwendung von FPGA bei niedrigeren Produktionszahlen tatsächlich günstiger ist als bei Verwendung von ASICs.