Wie treffen kommerzielle Mikroprozessoren das Timing mit einem Gigahertz-Takt?

Ich habe Probleme damit, ein relativ einfaches FPGA-Design (für einen Altera Cyclone IV) mit dem Timing für eine von einem 250-MHz-Takt angesteuerte Logik zu erfüllen. Deshalb frage ich mich, wie kommerzielle Mikroprozessoren (wie der Intel Core i7) es schaffen, das Timing bei Taktfrequenzen zu erfüllen, die mehr als eine Größenordnung höher sind.

Wie können kommerzielle Mikroprozessoren das Timing bei 3,8 GHz erreichen, wenn ich mit 250 MHz für ein FPGA zu kämpfen habe?

ein FPGA und ein Prozessor sind Äpfel und Orangen. Das FPGA besteht aus relativ großen Modulen/Zellen, die miteinander verbunden sind. Der Compiler für das FPGA ist nicht besser oder schlechter als ein Software-Compiler, was bedeutet, dass es viel Raum für Leistungsverbesserungen gibt, Ihre Signale werden überall durch große/langsame Zellen geleitet, die Zeit in Anspruch nehmen. Ein Prozessor zum Beispiel ist genau die Gates, die benötigt werden, kein zusätzliches Routing (also jtag scan und bist) usw. Dasselbe Problem mit dem Compiler, aber es gibt einige bessere (teure) Chip-Compiler da draußen.

Antworten (2)

FPGAs haben per se eigentlich keine "Gatter". Sie haben typischerweise Nachschlagetabellen (LUTs). LUTs werden typischerweise unter Verwendung von SRAMs implementiert. Beispielsweise verwenden Spartan-3-FPGAs 16-Bit-SRAMs; das heißt, vier Adresseingänge erzeugen ein Ausgangssignal. Das "Programmieren" erfolgt durch Laden des SRAM mit einem Bitmuster, das die Wahrheitstabelle darstellt, so dass Sie beispielsweise für XOR mit 2 Eingängen 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 schnelles Prototyping benötigen, dann ist das großartig! Tatsächlich implementieren einige Leute das Design zuerst im FPGA, debuggen es und wechseln dann zu einem ASIC, das kleiner und schneller ist und weniger Strom verbraucht, während sie dasselbe tun wie das FPGA.

Moderne Mikroprozessoren sind auch Pipelines. Beispielsweise kann in einem einfachen FPGA-Programm eine sehr umfangreiche Berechnung mit mehreren Additionen und vielleicht einigen Multiplikationen und einem Vergleich im selben Taktzyklus ausgeführt werden. All diese Arbeit in einem Taktzyklus zu erledigen bedeutet, dass der Taktzyklus lang sein muss. In einer Pipeline-Implementierung (die in FPGAs implementiert werden kann und häufig verwendet wird, um Timing Closure zu erreichen) wird die große Berechnung in Teile zerlegt, und jeder Teil wird in einem viel kürzeren Taktzyklus ausgeführt. Es dauert immer noch ungefähr die gleiche Zeit, um die Berechnung durchzuführen, aber der Vorteil ist, dass, nachdem das erste Teil berechnet ist und das erste Teildatum auf das zweite Teil verschoben wurde, das erste Teil sofort mit der Verarbeitung des zweiten Datums beginnen kann. Die erste Berechnung wird noch viele Zyklen dauern, aber sobald sie fertig ist,

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-fähig sein, aber die CPU ist definitiv Pipeline-fähig.

Erweiterung von dwlechs Kommentar. Die Prozessoren haben direkte Kupferverbindungen. Die FPGAs sind über programmierbare Verbindungen miteinander verbunden. Auch die Prozessoren legen kritische Sachen nebeneinander. Die FPGAs brauchen auch Platz für den SRAM, der die Programmierung enthält.

Denken Sie daran, dass Prozessoren von Anbietern wie Intel auf dem neusten Stand der Technik sind, wo Kompromisse bei Geschwindigkeit und Leistung Stand der Technik sind. Es ist auch keine einfache Leistung, auf einem Multi-Gigahertz-Prozessorkern das „Timing zu treffen“, selbst mit den spezifischen Vorteilen, die von Brian Carlton erwähnt wurden.
Ungeachtet dessen, was @Michael Karas betont, sind die neuesten FPGAs oft auch für Fabs auf dem neuesten Stand der Technik.