Warum arbeiten FPGAs mit so kleinen Frequenzen?

Gast #4433503
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
Gast #4433549
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.
Gast #4433559
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
(Firma: Elektronikentwickler Aachen) #4433563
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.
#4433564
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.
Gast #4433948
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.
#4433961
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren