Unterschied zwischen Prozessoren und FPGA s?

4 Antworten

Ein FPGA ist ein frei programmierbarer Logikbaustein. Ähnlich wie CPLD, PLA, PAL, GAL, ... Die Kürzel bezeichnen die Technik wie die Logikfunktionen programierbar sind.

ASIC bedeutet einfach nur, dass der Chip nicht von der Stange ist: Application Specific IC.

CPU bezeichnet einen Verwendungszweck für einen Baustein. Ähnlich wie GPU, CODEC, MODEM, RAM, ...

Eine CPU lässt sich in einem ASIC, FPGA, CPLD, ... realisieren, oder eben auch von der Stange kaufen. Aber in einem programmierbaren Logikbaustein, kann man auch ganz andere Funktionen unterbringen.

Die Begriffe in Deiner Frage stammen also aus unterschiedlichen Schemata, um Chips zu kategorisieren. Einen Unterschied zwischen den Begriffen kann man also nicht sinnvoll definieren.

Grüße,

lars (www.tan-tra.de)

Ein FPGA ist eine Art Rohling aus dem du alles machen kannst was du willst, auch einen Prozessor. Du kannst quasi eine Recheneinheit für ein ganz bestimmtes Problem optimieren. So holst du dann aus einer relativ niedrigen Taktrate von wenigen MHz ziemlich viel Leistung raus. Aber auch nur auf das eine Problem bezogen!

Ein normaler Prozessor muss mit allen möglichen Problemen klar kommen. Im Grunde kümmert sich der Kernel des Betriebssystems darum ihn effektiv mit Informationen zu füttern und alles andere spielt sich auf höherer Ebene ab.

Der Hauptunterschied ist würde ich sagen dass du bei einem FPGA den FPGA selbst an das Problem anpasst während du bei einer CPU das Problem an die CPU anpasst.

Ich bin zwar Elektrotechnik Student aber allerdings auch kein Elektronik-ProfI! Meine Infos sind also auch nur mit Vorsicht zu genießen :-)

schön das noch wer kommt :)

0

Beispiel:

Du baust einen Abstandshalter. Du hast einen Sensor der den Abstand misst und einen Elektromotor den du beliebig steuern kannst.

Bei einem FPGA gibst du den Input direkt auf den Chip und durch eine clevere Logik kommt am Ende der Output raus, der deinen Motor steuert. Um das zu optimieren versuchst du den Output mit so wenig Takten wie möglich zu erzeugen. Nehmen wir an du schaffst das in 20 Takten. Bei 20 MHz wären das 1 Million "Abtastungen" pro Sekunde. Das wär eine verdammt hohe Reaktionszeit! Mehr kannst du dann aber mit dem FPGA dann aber auch nicht machen.

Das gleiche geht auch mit nem Prozessor. Du programmierst dein Programm zB. mit C und schreibst es in den Speicher. Wird das Programm ausgeführt befindet es sich im RAM. Der Sensor verändert einen Wert im RAM, die CPU berechnet den neuen Wert für deinen Motor der wiederum den Wert aus dem RAM liest. Wenn du dir den Assembler Code anschaust siehst du wie viel die CPU da wirklich machen muss. Auch wenn deine CPU mit zB. 1 GHz hundert mal schneller ist muss die Information ständig zwischen Speicher und CPU hin- und hergeschoben werden und das kostet Zeit. Das kostet soviel Zeit dass der "lahme" 20 MHz FPGA viel schneller ist.

Dafür kann eine CPU lauter Programme gleichzeitig ausführen und du brauchst dich um nichts was die Taktoptimierung angeht zu kümmern. Da haben wenn dann nur Leute mit zu tun die den Kernel optimieren.

1
@Bujin

ach du bringst sogar richtige beispiele an? machst dir ja richtig mühe hier ._o cool^^

0
@apfeldeluxe

Obs richtig ist ist eine andere Frage :-) Mein VHDL Praktikum ist schon eine ganze Weile her.

0
@Bujin

xD zumindest gibst du dir hier mehr mühe als ich es tat xD aber gut das du da bist. wir hatten uns schon öfter mal in den haaren das weiß ich noch. aber du bist echt mit abstand einer der besten die hier rumlaufen. ;) der kann sich freuen das du hier was geschreiben hast denn es ist soweit alles richtig. du hast echt ahnung meine hochachtung :)

0
@Bujin

also ist ein Unterschied das die CPU einen fest integrierten Speicher hat und ein ASIC/FPGA nicht? haben die denn auch sowas wie ein Stuer- bzw Rechenwerk oder sind sie "nur" eine Verknüpfung von Logikbausteinen??

0

asic ist maskenparametriert und programmiert. fpgas sind in-device oder in circute programmierte bausteine. im grunde unterscheiden sie sich ja durch ihre komplexität und leicht im aufbau. fpgas sind ja in diesem sinne softcore controller/units. eine cpu ist eine mischung aus cpld und asic. es ist eine feststrukturisierte software oder maskenprogrammierbare rechenoperatoreinheit mit vielen unterschiedlich gefertigten und aufgabenspezifisch unterschiedlichen co-prozessoren. sie hat in ihrem sinne bedeutend mehr leistung als einige asic, die ja nun echt bedeutend steifer auf ihre aufgebenschwerpunkte ausgelegt sind als fpgas oder cplds. ist auch frei programmierbar, aber nicht veränderbar. die strukturen sind vorgegeben und können nicht um oder restrukturiert werden. softcore cpus marke cpld der cpld fpga verbundarchitektur sind halt seeeehr teuer und lohnen erst ab einer gewissen intensität der nutzung und einer mindeststückzahl, das is ja klar. aber auch das macht sie in einigen fällen und modellen nicht erschwinglicher für otto normalverbraucher xD. trifft natürlich lange nicht auf jede situation und jedes bausteinchen zu. kommt halt auf die architektur an. bei der cpu ist man da bedeutend freier. man kann halt sozusagen kommen und gehen wie man will. ist aber an vorhandene wenn auch frei programmierbare ressourcen gebunden und kann aus einem x kein o machen. dafür ist ihre herstellung bedeutend kostengüstiger. allerdings sind sie stellenweise doch eher nachteilig und haben nur dann einen hohen wert bzw nutzen, wenn man sie in bereits ausgiebig getesteten architekturverbundsystemen und gut durchdachten geräten verbaut. so im groben. aber wieso zur hölle frgst du sowas hier? hier sind viele so doof das die nicht mal den unterschied zwischen einem stabilen und gesteuerten schatnetzgerät kennen! xD da kannst du nicht erwarten das die wissen was field programmeble gate arrays/application specific integrated circute und complex programmeble logic devices sind. die wissen zu großen teilen nicht mal das ihre ganzen tollen cpus auf risc librarays zugreifen, oder was risc ist. die kennen keine instruction unit und denken das wenn sie den externen zyklustakt ihrer sequentiellen risc cpu rauf trümmern bis zum mond, die viel schneller wird. ohne zu wissen das reflektionen und leckströme die instruktionen tilgen und ihre iu und biu komplett stören. hier kann man eig nur nach "wie is mein pc so wie er ist" fragen und selbst da bekommt man so viel kagge zu hören das es weh tut :D

ach ja was ich ja eig sagen wollte ist das die cpu als solches eine deutlich höhere integrationsdichte aufweist und mehr schaltbare transisitorstufen und gatter hat. das kommt halt durch ihre relativ ihre recht geringe fertigungsgröße und ihre hohe struktur und schaltdichte. aber trozdem muss man einfach sagen das du damit vllt in einem techniker oder elektronikforum für leistungs und digitalelektronik besser beraten gewesen wärst oder es immer noch wärst. du kannst doch von denen hier nicht verlangen das die sowas wissen, so fair muss man sein. klar, können dir hier auch mal richtige fachleute über den weg laufen mit denen du dann schreibst. aber das ist eher die seltene ausnahme. denn in 99% der fälle tummeln sich hier hobbie-bastler und pc noobs die ne grafikkarte von ner banane auseinander halten können und denken sie haben es drauf. ist vllt ein wenig starker tobak wie ich das ausdrücke, aber ich weiß was ich da sage.... ich war gaaanz früher auch so. ich dachte ich habe es sowas von raus, weil ich sozusagen n r von nem t unterscheiden konnte und wusste wie man nen pc zusammen baut und grob konfiguriert. von der sich dahinter verbergenden materie und technik wusste ich eigentlich nichts, dachte aber ich bin ein hecht. und ich habe auch manchmal richtig auf die kagge gehauen. man kann es ihnen nicht verübeln, in ihren kreisen sind viele von denen sicher mit einige der leute die sich am besten auskennen. aber sowas wie das kannst du hier echt nicht erwarten ^^ so fair die leute hier dabei in schutz zu nehmen, aber auch so offen und ehrlich das zu sagen, muss man sein! :)

0
@apfeldeluxe

fand einige antworten sehr gut und verständlich bin mir nicht so sicher ob ein fachidiot aus nem elektroforum das jetzt besser erklären würde aber danke dennoch für die antwort und den kommentar

0

Was möchtest Du wissen?