Unterschied zwischen Prozessoren und FPGA s?

...komplette Frage anzeigen

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

Da kann man sehr in die Tiefe gehen; es gibt viele technische Details, die sich aus dem Grundunterschied zwischen ihnen ergeben haben.

Beide sind Kinder des Überflusses. Bis in die 60er Jahre hinein war ein Gatter teuer, sehr teuer. Man entwickelte deshalb sehr sparsam. Auf einem Chip gab es in der Regel 4 oder 8 Gatter (die 74XX TTL Bausteine).

Die Schaltungsentwicklung befand sich hier in einem Dilemma. Die Herstellung von Chips ist aufwendig, und lohnt sich nur eine sehr große Stückzahl, man kann also in der Regel keinen Chip (Maske) für einen bestimmten Zweck herstellen, sondern muss die Schaltung aus "universellen" Bauteilen zusammensetzen. Das waren aber meist viel zu viele, man sprach da von "TTL-Gräbern"....

Ein nahe liegender Gedanke war, auf einem Chip mehr oder weniger systematisch einen Haufen Gatter anzuordnen, mit einem Haufen Verbindungen, von denen zur konkreten Anwendung die meisten dann elektrisch "durchtrennt" werden mussten, sowas hatte man bei Festwertspeichern - PROMs und EPROMs - schon gelernt. Es war aber eine Riesenverschwendung in mehrfacher Hinsicht.

Diese Bausteine (CPLDs) können natürlich nur in wenigen Größen hergestellt werden (sozusagen S,M,L und XL), man hat also immer eine erheblichen Verschnitt. Sodann sind natürlich nicht alle möglichen Verbindungen vorhanden, man muss deswegen häufig über Umwege gehen. Der Vorteil gegenüber den "Massengräbern" ist aber gewaltig, was Stabilität, Stromverbrauch, Produktionskosten bei geringen Stückzahlen angeht. Heute auch bei den Chip-Kosten überhaupt.

Durch eine Weiterentwicklung, nämlich die einfache Re-Programmierbarkeit der Verschaltung und der zusätzlichen Integration von Speicherzellen werden heute für komplexe Schaltungen nur noch FPGAs eingesetzt. In manchen Fällen (hohe Stückzahl, hohe Ausfallsicherheit) zieht man noch eine Maskenproduktion vor (die Bausteine heißen dann ASIC und sind nicht mehr re-programmierbar).

FPGAs verarbeiten Signale sehr, sehr schnell.

Natürlich kann ein Schaltungsentwickler nicht mehr jede Verbindung in einer FPGA definieren. Man benutzt stattdessen funktionale Programmiersprachen (VHDL). Diese Entwicklung hat sicherlich auch zum Siegeszug der FPGAs beigetragen.

Heute werden große FPGAs teilweise sogar mit fertigen Mikrocontrollerkernen ausgestattet, falls man zwischendurch mal was rechnen muss...

Der Gedanke von Mikrocontrollern ist nun ein diametral anderer. Bei Intel erkannte man um 1970, dass die Integrationsdichte ausreichte, eine komplette CPU auf einen Chip unterzubringen, für eine 4-bit CPU etwa 2000 Transistorfunktionen, für den späteren 8-Bit 8080 etwa 5000 Transistorfunktionen.

Hiermit war ein neuer, hochintegrierter Standardbaustein geschaffen worden, der leicht in Schaltungen eingesetzt werden konnte. Kurze Zeit drauf wurde dem die Krone aufgesetzt, durch die weitere Integration von Programmspeicher, Arbeitsspeicher und Ein- und Ausgabeeinheiten zu den heutigen Mikrocontrollern.

Hiermit kann man nun auch alles machen, was Signalmäßig anfällt. Dazu muss man ganz klassisch programmieren; dieses Programm wird dann von der CPU interpretiert. Das heißt auf Deutsch, das alles unendlich langsam geht. Mit einfachen 8-Controllern kann man Audiosignale im kHz Bereich verarbeiten, mit 32-bit Signalprozessoren im MHz -Bereich; mit FPGAs aber kann man Signale im GHz-Bereich verabeiten.

Die Abwägung, ob man einen Mikrocontroller einsetzt oder eine FPGA ist keineswegs trivial und erfolgt auch nicht immer rational. Bei hohen Signalgeschwindigkeiten reichen auch Signalprozessoren nicht mehr aus. Auf der anderen Seite sind schnelle Signalprozessoren immer noch reichlich teuer, sodass man auch für langsame und nur mittelkomplexe Probleme gerne ein preiswerteres FPGA nimmt.

Auf der anderen Seite ist die Intergrationsdichte heutiger massen-produzierter 32-Bit Mikrocontroller unglaublich hoch geworden, insbesondere wenn sie durch Spezial I/O wie Graphik-Prozesoren, HDMI-Ausgabe, USB, LAN,... ergänzt wird. Die Smartphones und Tablets zu China-Preisen haben da eine neue Dimension ins Spiel gebracht.

Was möchtest Du wissen?