Ich höre von Leuten, die FPGAs verwenden, um die Leistung von Systemen zu verbessern, die Dinge wie Bit-Coin-Mining, elektronischen Handel und Proteinfaltung ausführen.

Wie kann ein FPGA hinsichtlich der Leistung mit einer CPU konkurrieren, wenn die CPU normalerweise mindestens eine Größenordnung schneller läuft (in Bezug auf die Taktrate)?

Kommentare

  • Das FPGA erledigt alles auf einmal.

Antwort

CPU „s sind sequentielle Verarbeitungsgeräte. Sie unterteilen einen Algorithmus in eine Folge von Operationen und führen sie einzeln aus.

FPGAs sind (oder können als) parallele Verarbeitungsgeräte konfiguriert werden. Ein ganzer Algorithmus kann in einem einzigen Tick der Uhr ausgeführt werden oder im schlimmsten Fall weit weniger Ticks als ein sequentieller Prozessor. Eine der Kosten für die erhöhte Logikkomplexität ist normalerweise eine Untergrenze, an der das Gerät getaktet werden kann.

In Anbetracht der obigen Ausführungen können FPGAs CPUs übertreffen, die bestimmte Aufgaben ausführen, weil sie dies können die gleiche Aufgabe in weniger Taktzeiten, wenn auch mit einer niedrigeren Gesamttaktrate. Die erzielbaren Gewinne hängen stark vom Algorithmus ab, aber mindestens eine Größenordnung ist für so etwas wie eine FFT nicht untypisch.

Da Sie mehrere parallele Ausführungseinheiten in ein FPGA einbauen können, Wenn Sie über ein großes Datenvolumen verfügen, das denselben Algorithmus durchlaufen soll, können Sie die Daten auf die parallelen Ausführungseinheiten verteilen und einen um weitere Größenordnungen höheren Durchsatz erzielen, als dies selbst mit einer Mehrkern-CPU möglich ist.

Der Preis, den Sie für die Vorteile zahlen, ist der Stromverbrauch und $$$ „s.

Kommentare

  • +1; FPGAs jedoch sind nicht so dynamisch wie CPUs, weshalb CPUs normalerweise besser für PCs geeignet sind.
  • “ Der Preis, den Sie für die Vorteile zahlen, ist Stromverbrauch und $$$ ‚ s. “ – Dies ist häufig der Fall, aber Sie können einen High-End-Intel Xeon-Computer mit mehreren 1000 US-Dollar mit einem Low-End $ 50 Xilinx Spartan-6 für viele Algorithmen. Dies nimmt jedoch in der Regel viel Entwicklungszeit in Anspruch und führt möglicherweise zu einem sehr benutzerdefinierten Design, das nur für eine Anwendung funktioniert und schwer zu ändern ist. Der Kompromiss ist also nicht nur Leistung und Geld, sondern auch Entwicklungszeit, Wiederverwendbarkeit und Flexibilität des Algorithmus. (Obwohl Sie über Zeit == Geld streiten können.)
  • markt, über Ihren letzten Satz, sind ‚ t FPGAs nicht viel leistungsfähiger als CPUs? Es gibt eine breite Palette von Geräten sowohl für CPUs als auch für FPGAs. Wenn wir uns jedoch diejenigen ansehen, die für Dinge wie Bit-Coin-Mining verwendet werden, sind ‚ nicht die für diese verwendeten CPUs Aufgaben, die viel mehr Strom verbrauchen als die verwendeten FPGAs?
  • @David: Wenn es um Bitcoin-Mining geht, ist die relevante Metrik die Anzahl der Hashes pro Watt. Markt spricht vom Gesamtstromverbrauch. Das heißt, ein bestimmtes FPGA verbraucht möglicherweise die dreifache Leistung einer typischen CPU, ist jedoch beim Bitcoin-Mining viel mehr als dreimal schneller. Für Bitcoin ist also ‚ ein Gewinn.
  • @Billy: Die Anzahl der Hashes pro Watt · Sekunde, nicht pro Watt.

Antwort

Markt hat dies größtenteils richtig, aber ich werde meine 2 einwerfen Cent hier:

Stellen Sie sich vor, ich hätte Ihnen gesagt, dass ich ein Programm schreiben möchte, das die Reihenfolge der Bits innerhalb einer 32-Bit-Ganzzahl umkehrt. Etwa so:

int reverseBits(int input) { output = 0; for(int i = 0;i < 32;i++) { // Check if the lowest bit is set if(input & 1 != 0) { output = output | 1; // set the lowest bit to match in the output! } input = input >> 1; output = output << 1; } return output; } 

Jetzt ist meine Implementierung nicht elegant, aber ich bin sicher, Sie stimmen zu, dass dies mit einer Reihe von Vorgängen und wahrscheinlich einer Art Schleife verbunden wäre. Dies bedeutet, dass Sie in der CPU viel mehr als einen Zyklus für die Implementierung dieses Vorgangs aufgewendet haben.

In einem FPGA können Sie dies einfach als Paar von Latches verkabeln. Sie erhalten Ihre Daten in ein Register und verdrahten sie dann in umgekehrter Bitreihenfolge in das andere Register. Dies bedeutet, dass der Vorgang im FPGA in einem einzigen Taktzyklus abgeschlossen wird. Somit hat das FPGS in einem einzigen Zyklus einen Vorgang abgeschlossen, für den Ihre Allzweck-CPU viele tausend Zyklen benötigt hat! Darüber hinaus können Sie wahrscheinlich einige hundert dieser Register parallel verkabeln. Wenn Sie also ein paar hundert Zahlen auf das FPGA übertragen können, werden diese Tausenden von Vorgängen in einem einzigen Zyklus hunderte Male abgeschlossen, alles in einem FPGA-Taktzyklus.

Es gibt viele Dinge, die a Allzweck-CPU kann dies, aber als Einschränkung richten wir verallgemeinerte und einfache Anweisungen ein, die notwendigerweise in Listen einfacher Anweisungen erweitert werden müssen, um einige Aufgaben auszuführen. Ich könnte also dafür sorgen, dass die Allzweck-CPU einen Befehl wie „umgekehrte Bitreihenfolge für 32-Bit-Register“ hat und der CPU die gleiche Fähigkeit wie das gerade gebaute FPGA gibt, aber es gibt unendlich viele solcher möglichen nützlichen Befehle, und so auch wir Setzen Sie nur diejenigen ein, die die Kosten in den gängigen CPUs rechtfertigen.

Mit FPGAs, CPLDs und ASICs haben Sie Zugriff auf die Rohhardware, mit der Sie verrückte Vorgänge wie „AES256-verschlüsselte Bytes mit Schlüssel entschlüsseln“ oder „Frame von h.264-Video entschlüsseln“ definieren können. Diese haben Latenzen von mehr als einem Taktzyklus in einem FPGA, können jedoch auf viel effizientere Weise implementiert werden, als die Operation in Millionen Zeilen allgemeinen Assembler-Codes zu schreiben. Dies hat auch den Vorteil, dass das FPGA / ASIC mit festem Verwendungszweck für viele dieser Vorgänge energieeffizienter wird, da sie nicht so viel Fremdarbeit leisten müssen!

Parallelität ist der andere Teil, der marktiert wies darauf hin, und obwohl dies ebenfalls wichtig ist, ist die Hauptsache, wenn ein FPGA etwas parallelisiert, was in der CPU in Bezug auf die für die Ausführung des Vorgangs erforderlichen Zyklen bereits teuer war. Sobald Sie anfangen zu sagen: „Ich kann in 10 FPGA-Zyklen a ausführen Aufgabe, die meine CPU 100.000 Zyklen benötigt, und ich kann diese Aufgabe parallel zu 4 Elementen gleichzeitig ausführen. „Sie können leicht erkennen, warum ein FPGA verdammt viel schneller sein kann als eine CPU!

Also Warum verwenden wir nicht für alles FPGAs, CPLDs und ASICs? Denn im Allgemeinen ist es ein ganzer Chip, der nur eine Operation ausführt. Dies bedeutet, dass Sie zwar einen Prozess veranlassen können, viele Größenordnungen schneller in Ihrem FPGA / ASIC auszuführen, ihn jedoch später nicht ändern können, wenn dieser Vorgang nicht mehr sinnvoll ist. Der Grund, warum Sie ein FPGA (im Allgemeinen) nicht einmal ändern können In einer Schaltung ist die Verkabelung für die Schnittstelle fest, und normalerweise enthält die Schaltung keine Komponenten, mit denen Sie das FPGA in eine nützlichere Konfiguration umprogrammieren können. Es gibt einige Forscher, die versuchen, Hybrid-FPGA-CPU-Module zu bauen, bei denen es einen Teil der CPU gibt, der wie ein FPGA neu verkabelt / programmiert werden kann, sodass Sie einen effektiven Teil der CPU „laden“ können, aber keinen davon habe es jemals auf den Markt geschafft (soweit mir bekannt ist).

Kommentare

  • Zum Beispiel für das Umkehren von Bits (und allen anderen Bits) Swap- / Auswahlaufgaben) ‚ dauert nicht wirklich 1 Taktzyklus, es dauert 0. In Ihrem Beispiel dauert es 1 Taktzyklus, um Daten in einem Latch zu speichern Dies ist nicht dieselbe Operation. Es dauert 1 Taktzyklus, unabhängig davon, ob Sie die Bits umkehren oder nicht. Die Operation zum Umkehren der Bits beträgt 0 Taktzyklen, kein Overhead, nur unterschiedliches Routing. Der Unterschied besteht nicht nur in der Semantik, insbesondere wenn Wenn Sie beispielsweise anfangen, Dinge zu addieren, wie lange dauert es beispielsweise, ein 32-Bit-Wort um 3 Bit nach unten zu verschieben, dann jedes andere Halbbyte auszutauschen und es dann umzukehren?
  • “ Hybrid-FPGA-CP U-Modul “ – diese sind seit langer Zeit auf dem Markt (siehe xilinx.com/products/silicon-devices/ soc / zynq-7000 / index.htm für eine moderne erfolgreiche Version), jedoch auch ohne besondere Unterstützung, erfolgt die Kombination von Software & HDL üblicherweise durch Implementierung einer weichen CPU im Inneren das FPGA auf dem Fabric.
  • @wjl Sie ‚ haben Recht, dass es technisch keine Zyklen dauert, um den Vorgang selbst auszuführen. Ich würde argumentieren, dass Ihr Beispiel jedoch nur semantisch unterschiedlich ist, hauptsächlich weil das Ausführen dieser drei Operationen logisch in ein festes Bitmuster übersetzt wird (d. H. Ich beginne mit b1b2b3b4 und ende mit b3b1b4b2). Das war irgendwie mein Punkt in der ganzen Antwort. Ich wollte darauf hinweisen, dass die Beschreibung einer Operation als eine Reihe von Schritten häufig nur erforderlich ist, wenn Sie eine feste Befehlssatz- / Gate-Anordnung haben.
  • @wjl: Die Art und Weise, wie David-Gardner die Frage gestellt hat, er scheint zu sagen, dass “ CPU “ einer hoch getakteten, Pipeline- und optimierten Intel- oder AMD x86 / x86_64-CPU entspricht. Es gibt viele weiche “ CPUs „, aber keine der CPUs, die für ein FPGA ausgelegt sind, kann wie ein i7 getaktet werden und ist es auch nicht Sie sind fast genauso optimiert oder fähig. Was Hybriden betrifft, habe ich eher so etwas gemeint: newsroom.intel.com/docs/DOC-1512 , das anscheinend existiert
  • the Zynq ist wirklich kein ‚ kein schlechter Prozessor (ARM Cortex-A9 – das gleiche, was Tablet-Computer usw. ausführt), aber ich stimme zu, dass es viel fantastischer wäre, ihn zu haben ein integriertes FPGA mit einem Highspeed x86_64. =)

Antwort

Alle anderen hier vorgestellten populären Antworten sprechen von wörtlichen Unterschieden zwischen FPGAs und CPUs. Sie weisen auf die Parallelität des FPGA mit der sequentiellen Natur einer CPU hin oder geben Beispiele dafür, warum bestimmte Algorithmen auf einem FPGA gut funktionieren könnten. All dies ist gut und wahr, aber ich würde vorschlagen, dass es einen grundlegenderen Unterschied zwischen CPUs und FPGAs gibt.

Was ist der gemeinsame Nenner zwischen einem FPGA und einer CPU? Es ist so, dass beide auf Silizium aufgebaut sind. Und in einigen Fällen buchstäblich die gleichen Siliziumprozesse.

Der grundlegende Unterschied sind die Abstraktionen, die wir auf diesem Silizium stapeln. Es ist für einen Menschen nicht möglich, alle Details eines einzelnen modernen CPU-Designs von Silizium bis zu gepacktem IC zu verstehen. Als Teil des Konstruktionsprozesses teilen wir dieses komplexe Problem in kleinere überschaubare Probleme auf, um die sich die Menschen kümmern können.

Überlegen Sie, was erforderlich ist, um aus diesem Silizium eine funktionierende CPU zu machen. Hier ist eine etwas vereinfachte Ansicht der für dieses Ziel erforderlichen Abstraktionsebenen:

  1. Zuerst haben wir Ingenieure, die wissen, wie man Transistoren aus Silizium erzeugt. Sie wissen, wie man winzige Transistoren entwirft, die Strom verbrauchen und mit einer Geschwindigkeit von 10 oder sogar 100 Gigahertz schalten, und sie wissen, wie man kräftige Transistoren entwirft, die Signale mit genügend Leistung ansteuern können, um sie aus einem IC-Gehäuse und über eine Leiterplatte zu senden auf einen anderen Chip.

  2. Dann haben wir Designer für digitale Logik, die wissen, wie man diese Transistoren zu Bibliotheken mit Hunderten verschiedener Logikzellen zusammenfügt. Logic Gates, Flip Flops, Muxes und Addierer, um nur einige zu nennen. Alles in verschiedenen Konfigurationen.

  3. Als nächstes haben wir verschiedene Gruppen von Ingenieuren, die wissen, wie man diese digitalen (und manchmal analogen) Blöcke zusammenfügt, um übergeordnete Funktionsblöcke wie Hochgeschwindigkeits-Transceiver, Speichercontroller, zu bilden. Zweigprädiktoren, ALUs usw.

  4. Dann haben wir CPU-Designer, die High-End-CPU-Designs entwerfen, indem sie diese Funktionseinheiten zu einem vollständigen System zusammenfassen.

Und es hört hier nicht auf. Zu diesem Zeitpunkt haben wir eine funktionierende CPU, auf der Assembly-Code ausgeführt wird, aber das ist keine Sprache, die die meisten Programmierer heutzutage schreiben.

  1. Möglicherweise haben wir einen C-Compiler, der zu Assembly kompiliert Code (wahrscheinlich durch eine Zwischendarstellung)
  2. Wir könnten eine weitere Abstraktion über C hinzufügen, um eine objektorientierte Sprache zu erhalten.
  3. Wir könnten sogar eine virtuelle Maschine über C oder C ++ schreiben damit wir Dinge wie Java-Bytecode interpretieren können

Und die Abstraktionsschichten können von dort aus fortgesetzt werden. Der wichtige Punkt hierbei ist, dass diese Abstraktionsschichten zusammen ein CPU-basiertes System ergeben, das massiv skaliert und einen winzigen Bruchteil eines benutzerdefinierten Siliziumdesigns kostet.

Der wichtige Punkt hierbei ist jedoch, dass jede Abstraktion auch selbst Kosten verursacht. Der Transistordesigner baut nicht für jeden Anwendungsfall den perfekten Transistor. Er baut eine vernünftige Bibliothek auf, und so wird manchmal ein Transistor verwendet, der etwas mehr Strom oder etwas mehr Silizium verbraucht, als für den jeweiligen Auftrag wirklich benötigt wird. Ebenso bauen die Logikdesigner nicht jede mögliche Logikzelle. Sie könnten ein NAND-Gatter mit 4 Eingängen und ein NAND-Gatter mit 8 Eingängen bauen, aber was passiert, wenn ein anderer Ingenieur ein NAND mit 6 Eingängen benötigt? Er verwendet ein NAND-Gatter mit 8 Eingängen und bindet 2 nicht verwendete Eingänge ab, was zu einem Verlust von Siliziumressourcen und einer taillierten Leistung führt. Und so geht es die Kette der Abstraktionen hinauf. Jede Schicht gibt uns die Möglichkeit, mit der Komplexität umzugehen, berechnet uns aber gleichzeitig zusätzliche zusätzliche Kosten in Bezug auf Silizium und Leistung.

Vergleichen Sie nun diese Abstraktionen mit denen, die für ein FPGA benötigt werden. Im Wesentlichen enden die FPGA-Abstraktionen bei # 2 in der obigen Liste. Mit dem FPGA können Entwickler auf der Ebene der digitalen Logik arbeiten. Es ist etwas ausgefeilter als das, da CPUs auf dieser Ebene „hartcodiert“ sind und FPGAs zur Laufzeit konfiguriert werden müssen (was übrigens der Grund ist, warum CPUs normalerweise viel höhere Frequenzen ausführen), aber die wesentliche wichtige Wahrheit ist, dass diese weit entfernt sind Einige Abstraktionen für FPGAs als für CPUs.

Warum kann ein FPGA schneller sein als eine CPU? Im Wesentlichen liegt es daran Das FPGA verwendet weit weniger Abstraktionen als eine CPU, was bedeutet, dass der Designer näher am Silizium arbeitet. Er zahlt nicht die Kosten für all die vielen Abstraktionsschichten, die für CPUs erforderlich sind. Er codiert auf einer niedrigeren Ebene und muss härter arbeiten, um ein bestimmtes Maß an Funktionalität zu erreichen, aber die Belohnung erhält er eine höhere Leistung.

Aber natürlich gibt es eine Ein Nachteil für weniger Abstraktionen. All diese CPU-Abstraktionen gibt es aus gutem Grund. Sie geben uns ein viel einfacheres Codierungsparadigma, was bedeutet, dass sich mehr Menschen leicht für sie entwickeln können. Dies bedeutet wiederum, dass es viel mehr CPU-Designs gibt und wir daher massive Vorteile in Bezug auf Preis, Umfang und Markteinführungszeit von CPUs haben.

Da haben Sie es also. FPGAs haben weniger Abstraktionen und können daher schneller und energieeffizienter sein, sind jedoch schwer zu programmieren. CPUs haben viele Abstraktionen, die einfach zu entwickeln, skalierbar und kostengünstig sind. Für diese Vorteile geben sie jedoch Geschwindigkeit und Macht im Handel auf.

Kommentare

  • Auch FPGA ‚ s werden mit einfachen sich wiederholenden Blöcken entworfen, die einfache logische Aufgaben ausführen sollen. Sie sind auf bestimmte Arten von Aufgaben zugeschnitten.CPU ‚ s, OTOH, haben viele komplexe Funktionsteile, die alle unterschiedliche Aufgaben ausführen. Man könnte annehmen, dass eine CPU eine Gruppe von vielen verschiedenen FPGA-ähnlichen Geräten ist (schließlich ist ‚ alles nur Silizium, Elektronik und Mathematik). Es geht also ‚ nicht nur um Abstraktionen, sondern ‚ um Komplexität. CPU ‚ sind komplexe Geräte, die aus vielen verschiedenen Arten elektrischer Geräte bestehen, während ein FPGA aus wenigen besteht. Eine CPU ist eine Schrotflinte, während ein FPGA ein Gewehr ist.

Antwort

Während die anderen Antworten alle korrekt sind Keiner von ihnen spricht noch das Bitcoin-Mining-Beispiel aus Ihrer Frage an, was in der Tat ein anständiges Beispiel ist. Beim Bitcoin-Mining wird wiederholt eine kryptografische Hash-Funktion, SHA-256, aus dem Ergebnis einer anderen SHA-256-Berechnung von Daten berechnet, bei denen sich nur eine einzige 32-Bit-Ganzzahl ändert, bis der resultierende Hash bestimmte Eigenschaften aufweist. Jeder SHA-256 besteht aus 64 Wiederholungen desselben Algorithmus mit 32-Bit-Additionen, Bitverschiebungen und einigen weiteren Bit-Mangling-Operationen.

Wenn Sie diese Schleife auf einer 32-Bit-CPU (oder mehr) programmieren Der Befehlssatz ist für die Aufgabe sehr gut geeignet. SHA-256 wurde für eine effiziente Ausführung auf CPUs entwickelt. Dennoch werden Sie möglicherweise nur 2% der Siliziumfläche einer modernen CPU verwenden, mit flächenintensiven Funktionen wie Caching, Multiplikation, Division, Gleitkommaoperation, Verzweigung und Brach-Vorhersage usw., die entweder überhaupt nicht oder nicht verwendet werden können Bieten Sie eine signifikante Leistungssteigerung für diese bestimmte Aufgabe.

In konfigurierbarer Hardware wie einem FPGA implementieren Sie einfach nur diese 2% und optimieren weiter, indem Sie alles über die Codeausführung vergessen und stattdessen Gates entwerfen, um jede einzelne direkt zu berechnen Diese oft wiederholten Unterfunktionen. Wenn Sie so Pipeline-Linien erstellen, dass jeder von ihnen bei jedem Taktzyklus ein Ergebnis an den nächsten weitergibt und 128-mal wiederholt wird (und mit einer speziellen zusätzlichen Logik, bei der jeder SHA-256 beginnt und endet), erhalten Sie am Ende jedes Ergebnis Taktzyklus (für vielleicht 100 Millionen Hashes pro Sekunde auf einem FPGA, das 300 MHz mit einer einfacheren Logik unterstützt), während Sie auf einer modernen CPU alle paar tausend Taktzyklen pro Kern ein Ergebnis erwarten, beispielsweise 10 Millionen Hashes pro Sekunde ond auf einer Multi-Core-Multi-GHz-CPU.

Wenn dieses spezielle Beispiel für Sie von Interesse ist, sollten Sie sich meine verwandte ansehen Antwort zu den Interna von ASIC-Minern auf bitcoin.stackexchange, da viele FPGA-Miner auf dieselbe Weise mit konfigurierbarer und nicht mit maßgeschneiderter Hardware arbeiten. Nur der Vollständigkeit halber: Es gibt andere Möglichkeiten, wie das Begrenzen oder Vermeiden des Pipelining, das ich zugunsten einer trivialeren Parallelisierung durch die Verwendung mehrerer unabhängiger SHA-256-Hashers beschrieben habe. Abhängig von den Einschränkungen, die durch die Interna Ihres FPGAs und dessen Gesamtgröße gegeben sind Dies kann sogar zu einer besseren Leistung führen, obwohl es in Bezug auf Gate-Anzahl und Routing-Overhead weniger effizient wäre, wenn Sie die Freiheit hätten, den gesamten Chip zu entwerfen, nicht nur die Konfiguration eines FPGA.

Kommentare

  • Das ‚ ist ein sehr guter Punkt zur Verwendung von Silizium.
  • Aber vielleicht (ungewollt!) irreführend, Wenn man bedenkt, dass ein FPGA aus etwas komplexen Zellen mit vielen physischen Gates besteht, von denen eine typische Anwendung wiederum nur einen Bruchteil verwendet, können ihre Hersteller äquivalente Gate-Zählungen ankündigen, um Ihnen zu sagen, wie viel all dies in einem “ typisch “ Anwendung …

Antwort

Die obigen Antworten sind zwar korrekt, verfehlen jedoch den Punkt ungefähr Warum FPGAs (und benutzerdefinierte ASICs) besonders gut für Bitcoin-Berechnungen geeignet sind.

Der eigentliche Vorteil besteht darin, dass ein großer Teil der SHA-256-Berechnungen logische Operationen (z. B. Bitverschiebungen) sind, die ausgeführt werden können Verdrahtung. Auf diese Weise benötigen sie 0 Taktzyklen.

Ein weiterer wichtiger Vorteil ist, dass FPGAs viel energieeffizienter sind (dh MIPS pro Watt) als CPUs, sodass die für die Berechnungen erforderliche Energiemenge sehr hoch ist Weniger. Dies ist wichtig, da die Kosten für den Abbau eines Bitcoin davon abhängen, wie viel Strom Sie für die Herstellung verwenden.

ASIC-Chips sind energieeffizienter als FPGAs, sodass sie denselben Code viel billiger ausführen können. Sie können auch mehr Ausführungseinheiten an Bord stopfen, um sie schneller zu machen. Der Nachteil ist, dass die Kosten für die Herstellung eines benutzerdefinierten ASIC sehr hoch sind, sodass Sie einige Chips verkaufen müssten, um die Herstellungskosten zu decken.

GPUs werden auch für die Herstellung von Bitcoins verwendet, aber da dies der Fall ist viel weniger energieeffizient haben sie gegenüber FPGAs und benutzerdefinierten ASICs an Boden verloren.

Kommentare

  • Wenn Sie sich den Monero-Hashing-Algorithmus aka cryptonight ansehen, werden Sie feststellen, dass eine FPGA-Implementierung aufgrund der hohen Anzahl von nahezu unmöglich ist Auf den Speicher musste zufällig zugegriffen werden (2 MB). In diesem Fall hat eine CPU den Vorteil.
  • @ lucas92 Können Sie RAM nicht in FPGA integrieren, um den benötigten Speicherplatz aufzunehmen?
  • Sie haben wahrscheinlich ‚ Es sind nicht genügend Logikelemente im FPGA vorhanden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.