Ich habe Probleme damit, dass ein relativ einfaches FPGA-Design (für einen Altera Cyclone IV) das Timing für die von einem 250-MHz-Takt gesteuerte Logik erfüllt. Ich frage mich daher, wie es kommerziellen Mikroprozessoren (wie dem Intel Core i7) gelingt, das Timing bei Taktfrequenzen zu erreichen, die um eine Größenordnung höher sind.
Wie können kommerzielle Mikroprozessoren das Timing bei 3,8 GHz erreichen, wenn ich bei 250 MHz um ein FPGA kämpfe?
fpga
microprocessor
timing
Zufälliges Blau
quelle
quelle
Antworten:
FPGAs haben eigentlich keine "Gates" an sich. Sie haben normalerweise Nachschlagetabellen (LUTs). LUTs werden normalerweise mit SRAMs implementiert. Beispielsweise verwenden Spartan 3-FPGAs 16-Bit-SRAMs. Das heißt, vier Adresseneingänge erzeugen ein Ausgangssignal. "Programmieren" erfolgt durch Laden des SRAM mit einem Bitmuster, das die Wahrheitstabelle darstellt, so dass Sie beispielsweise für XOR mit 2 Eingängen die Adresse 00 = Ausgang 0, Adresse 01 = Ausgang 1, Adresse 10 = Ausgang 1, Adresse 11 = haben Ausgang 0.
Dies alles bedeutet, dass FPGAs tatsächlich viele, viele zusätzliche und unnötige Gatter haben, um dieselbe Logikfunktion auszuführen. Wenn Sie FPGAs für Reprogrammierbarkeit und Rapid Prototyping benötigen, ist dies großartig! Tatsächlich implementieren einige Leute das Design zuerst im FPGA, debuggen es und wechseln dann zu einem ASIC, der kleiner, schneller und weniger Strom verbraucht, während sie das Gleiche tun wie das FPGA.
Moderne Mikroprozessoren sind ebenfalls Pipeline. Beispielsweise kann in einem einfachen FPGA-Programm eine sehr umfangreiche Berechnung mit mehreren Additionen und möglicherweise einigen Multiplikationen und einem Vergleich im selben Taktzyklus durchgeführt werden. Wenn Sie all diese Arbeiten in einem Taktzyklus ausführen, muss der Taktzyklus lang sein. In einer Pipeline-Implementierung (die in FPGAs implementiert werden kann und häufig zum Erreichen des Timing-Abschlusses verwendet wird) wird die große Berechnung in Teile zerlegt und jedes Teil in einem viel kürzeren Taktzyklus ausgeführt. Die Berechnung dauert immer noch ungefähr genauso lange. Der Vorteil besteht jedoch darin, dass das erste Stück sofort mit der Verarbeitung des zweiten Datums beginnen kann, nachdem das erste Stück berechnet wurde und das erste Teildatum zum zweiten Stück verschoben wurde. Die erste Berechnung dauert noch viele Zyklen.
Kurz gesagt, FPGAs haben eine generische Logik, während die CPU eine spezifische Logik hat. FPGA hat generisches Routing, während CPU spezifisches Routing hat. FPGA kann Pipeline-Pipeline sein, aber CPU ist definitiv Pipeline-Pipeline.
quelle
Erweitern des Kommentars von dwlech. Die Prozessoren haben direkte Kupferverbindungen. Die FPGAs sind über programmierbare Verbindungen miteinander verbunden. Auch die Prozessoren stellen kritische Dinge nebeneinander. Die FPGAs benötigen auch Platz für den SRAM, der die Programmierung enthält.
quelle