Wie treffen kommerzielle Mikroprozessoren das Timing mit einer Gigahertz-Uhr?


8

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?


8
Ein FPGA und ein Prozessor sind Äpfel und Orangen. Die fpga besteht aus relativ großen Modulen / Zellen, die miteinander verbunden sind. Der Compiler für die 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 benötigt genau die benötigten Gates, kein zusätzliches Routing (also jtag scan und bist) usw. Das gleiche Problem mit dem Compiler, aber es gibt einige bessere (teure) Chip-Compiler.
old_timer

Antworten:


7

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.


6

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.


3
Denken Sie daran, dass Prozessoren von Anbietern wie Intel auf dem neuesten Stand der Technik sind, wo Kompromisse zwischen Geschwindigkeit und Leistung auf dem neuesten Stand der Technik sind. Es ist auch keine einfache Aufgabe, das Timing auf einem Multi-Gigahertz-Prozessorkern zu erfüllen, selbst wenn Brian Carlton die spezifischen Vorteile feststellt.
Michael Karas

3
Ungeachtet dessen, worauf @Michael Karas hinweist, sind die neuesten FPGAs auch für die Fabs oft auf dem neuesten Stand der Technik.
Brian Carlton
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.