Forum: FPGA, VHDL & Co. Warum arbeiten FPGAs mit so kleinen Frequenzen?


von Alex (Gast)


Lesenswert?

Hallo zusammen,

die Frage ist eigentlich schon im Betreff zu lesen. Ich würde gerne 
wissen warum FPGA's im Gegensatz zu Prozessoren nur mit so "kleinen" 
Frequenzen arbeiten? Ich denke gängige Frequenzen sind so bis 300Mhz. 
Dagegen arbeiten Prozessoren ja mit viel höheren Frequenzen (mehreren 
GHz). Mir ist schon klar das man mit einem FPGA trotz kleinerer 
Frequenzen genauso schnelle oder höhere Übertragungsraten erzielen kann 
aufgrund der parallelen Arbeitsweise, aber ich verstehe nicht warum sie 
nicht mit höheren Frequenzen arbeiten können. Ich denke hierbei können 
mir einige Auskunft geben. Danke :)

mfg

Alex

von Vancouver (Gast)


Lesenswert?

Das liegt im Wesentlichen an der Konfigurierbarkeit. Die Verbindungen 
zwischen den Logikblöcken führen z.B. über eine Reihe von Switches, die 
den Weg des Signals über den Chip festlegen, und in diesen Swiches wird 
das Signal verzögert. Bei einem Prozessor hingegen sind die Verbindungen 
fest und es gibt keine Switches. Gleiches gilt innerhalb der 
Logikblöcke. Ein AND-Gatter mit 4 Eingängen ist einfacher und daher 
deutlich schneller als eine LUT die auf die gleiche Funktion 
programmiert ist
Das Problem wird übrigens umso heftiger, je größer der FPGA ist, da die 
Anzahl der Switches auf einem Signal durchschnittlich größer wird. Hier 
muss man manchmal einen erheblichen Aufwand treiben (z.B. Bus 
Pipelining), um halbwegs schnelle Designs hinzubekommen. Hinzu kommt, 
das FPGAs  im Allgemeinen 1-2 Technologiestufen hinter den Prozessoren 
herhinken, weil der Markt deutlich kleiner ist.

von Frank (Gast)


Lesenswert?

Alex schrieb:
> die Frage ist eigentlich schon im Betreff zu lesen. Ich würde gerne
> wissen warum FPGA's im Gegensatz zu Prozessoren nur mit so "kleinen"
> Frequenzen arbeiten? Ich denke gängige Frequenzen sind so bis 300Mhz.

Gegenbeispiel:
https://www.altera.com/products/fpga/stratix-series/stratix-10/overview.smartphone.highResolutionDisplay.html

von Jürgen G. (Firma: Elektronikentwickler Aachen) (fjgensicke)


Lesenswert?

Bei einem Prozessor ist dem Hersteller die logische Verschaltung der 
internen Komponenten sehr bekannt. Die Laufzeiten innerhalb von 
Komponeten und deren Verbindungen auch und deshalb kann er sie bis in 
den GHz-Bereich optimieren.

Den FPGA-Herstellern sind aber nur die konfigurierbaren Blöcke bekannt 
und nicht die Funktion, die ja der Benutzer festlegt. Je nach 
Einstellung des Synthese-Werkzeugs legt die SW die Komponenten mal eher 
weit, mal eher nah aneinander. Dadurch variieren die Laufzeiten und 
damit die maxi. Frequenzen.
Dazu kommt noch, das die Blöcke ja konfiguriert werden können/müssen und 
meines wissen nach die "Fuses" der Blöcke über eine unterliegende 
SRAM-Zellenbereich gesetzt werden, welche zu einem, im Vergleich zu 
einem fest verdrahteten Prozessor, langsameren Zellenfunktion führt.

von Dennis R. (dennis_r93)


Lesenswert?

In den Prozessoren sind es nur begrenzte Abschnitte die mit der vollen 
Frequenz arbeiten. Z.B. ist es so, dass der L1 Cache meistens mit 
Kernfrequenz läuft, manchmal aber auch nur mit halber Frequenz.
Die L2 und L3 Caches laufen schon mit niedrigeren Frequenz.

Diese hohen Frequenzen können nur dadurch erreicht werden, weil die 
Logik fest verdrahtet ist. Eine Multiplikation braucht mehrere 
Taktzyklen. Das wird mit Pipelining erreicht. D.h. Wenn eine CPU mit 3 
GHZ 3 Zyklen für eine Multiplikation braucht läuft eine Multiplikation 
effektiv im Bereich von ~ 1Ghz.
Eine schöne Übersicht der Befehle, ihre Latency und dauer findest du 
hier:
http://www.agner.org/optimize/instruction_tables.pdf

Bei einem FPGA ist die Logik nicht fest verdrahtet sondern es gibt ein 
großes Netz zum Verteilen der Daten.
Durch das große Netz haben die Leitungen eine größere Kapazität, ein 
Transistor braucht länger um die Spannung (und damit das Signal) zu 
ändern.

Diese Netze sind zwar mit Pass-Transistor Logik begrenzt 
(https://en.wikipedia.org/wiki/Pass_transistor_logic)
Aber trotzdem hat jeder dieser Transistoren eine zusätzliche Kapazität.

Um die Langen Wege zu verringer gibt es noch dedizierte Carrychains oder 
andere Abkürzungen. Da kocht jeder Hersteller seine eigene Suppe. Infos 
findest du in den Dokumentationen.

Außerdem sind fast alle Funktionen durch SRAM Lookuptabellen realisiert.
Was bei Intel eine fest verdrahtete logik ist muss bei den FPGAs erstmal 
durch das SRAM durch, auch wenn es nur ein NOT ist.

Und wenn mehrere dieser Lookuptabellen im FPGA hintereinander geschaltet 
sind, begrenzt die Laufzeit der längsten Kette die FPGA Taktfrequenz.

von Alex (Gast)


Lesenswert?

Jetzt ist mir einiges klarer. Danke an alle ;)

von schlupp (Gast)


Lesenswert?

Man könnte es auch in einem Merksatz zusammenfassen:

Konfigurierbarkeit und Flexibilität wird durch Langsamkeit erkauft.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Frank schrieb:
> Gegenbeispiel: ...
In diesem "Gegenbeispiel" ist das FPGA (oder eher das Design im FPGA) 
die langsamste Komponente. Und natürlich konnte auch ein altes Spartan3 
schon mit 500MHz arbeiten. Aber eben nur sehr lokal begrenzt und nicht 
quer durchs FPGA.

von Weltbester FPGA Pongo (Gast)


Lesenswert?

Nun ja, ein S3 kann eigentlich so ziemlich an gar keiner Stelle mit 500 
MHz arbeiten. Selbst eine rückgekoppelte LUT tont nur mit 300 MHz.

von Nö-Sager (Gast)


Lesenswert?

Weltbester FPGA Pongo schrieb im Beitrag #4433936:
> Nun ja, ein S3 kann eigentlich so ziemlich an gar keiner Stelle mit 500
> MHz arbeiten. Selbst eine rückgekoppelte LUT tont nur mit 300 MHz.

Nö, lt. Datenblatt S. 89 : 
http://www.xilinx.com/support/documentation/data_sheets/ds099.pdf

ist deutlich mehr drin. Und der S3 ist auch schon über 10 jahre alt.

von Mac G. (macgyver0815)


Lesenswert?

Nö-Sager schrieb:
> Weltbester FPGA Pongo schrieb im Beitrag #4433936:
>> Nun ja, ein S3 kann eigentlich so ziemlich an gar keiner Stelle mit 500
>> MHz arbeiten. Selbst eine rückgekoppelte LUT tont nur mit 300 MHz.
>
> Nö, lt. Datenblatt S. 89 :
> http://www.xilinx.com/support/documentation/data_s...
>
> ist deutlich mehr drin. Und der S3 ist auch schon über 10 jahre alt.


Da steht "for export control" - das ist so eine Ami Geschichte weil 
potentiell "waffenfähiges FPGA" ;-)
Denke nicht, dass das Aussagekräftig für die real erzielbare Taktrate 
sein soll.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.