Warum Mehrkernprozessoren?

16

Warum enthalten Chips immer mehr Kerne? Warum nicht einen größeren Single-Core-Prozessor herstellen? Ist es einfacher herzustellen? Sollen Programme Multithreading mit separaten Kernen ermöglichen?

rkrauter
quelle
Der Grund ist meist Marketing. Die meisten Benutzer werden nicht von Multi-Core profitieren, aber es wird genauso viel besser gehypt. Dies ist vor allem für Server oder Power-User sinnvoll.
Harrymc
Natürlich gibt es einen Hype, aber es gibt auch Vorteile. Die meisten Benutzer können heutzutage von einem Multicore (dh normalerweise einem Dualcore) profitieren, da die meisten ein Betriebssystem mit mehreren Ausführungsthreads verwenden. Aber für diejenigen, die noch Windows 95 oder früher verwenden, würde ich zustimmen, dass Multi-Core wahrscheinlich eine völlige Zeitverschwendung ist.
irrational John
bei harrymc: "Der Grund liegt hauptsächlich im Marketing. Die meisten Benutzer profitieren nicht vom Multi-Core, aber es wird genauso viel besser gehypt. Es ist vor allem für Server oder Power-User sinnvoll." --- Diese gierigen Schlangenölverkäufer ...
Daniel

Antworten:

25

Der Trend zu mehreren Kernen ist ein technischer Ansatz, der den CPU-Designern hilft, das Problem des Stromverbrauchs zu vermeiden, das mit einer immer stärkeren Frequenzskalierung einherging. Als die CPU-Geschwindigkeit in den Bereich von 3-4 GHz stieg, begann die Menge an elektrischer Energie, die benötigt wurde, um schneller zu werden, unerschwinglich zu werden. Die technischen Gründe hierfür sind komplex, aber Faktoren wie Wärmeverluste und Ableitstrom (Leistung, die einfach durch die Schaltung fließt, ohne dass dies sinnvoll ist) nehmen mit steigenden Frequenzen schneller zu. Zwar ist es durchaus möglich, eine 6-GHz-Allzweck-x86-CPU zu bauen, dies ist jedoch nicht wirtschaftlich genug. Aus diesem Grund begann die Umstellung auf Multi-Core, und wir werden sehen, dass sich dieser Trend zumindest so lange fortsetzt, bis die Parallelisierungsprobleme unüberwindlich werden.

Als praktisches Beispiel hat der E5640 Xeon (4 Kerne bei 2,66 GHz) eine Leistung von 95 Watt, während der L5630 (4 Kerne bei 2,13 GHz) nur 40 Watt benötigt. Das sind 137% mehr Strom für 24% mehr CPU-Leistung für CPUs, die größtenteils mit Funktionen kompatibel sind. Das X5677 beschleunigt die Geschwindigkeit auf 3,46 GHz mit einigen weiteren Funktionen, aber das sind nur 60% mehr Rechenleistung für 225% mehr Strom.

Vergleichen Sie nun den X5560 (2,8 GHz, 4 Kerne, 95 Watt) mit dem neueren X5660 (2,8 GHz, 6 Kerne, 95 Watt) und es gibt 50% zusätzliche Rechenleistung im Sockel (möglicherweise unter der Annahme, dass das Amdahl-Gesetz für uns freundlich ist jetzt), ohne dass zusätzliche elektrische Energie benötigt wird. Die Prozessoren der Serie 6100 von AMD weisen im Vergleich zur Serie 2400/8400 einen ähnlichen Leistungszuwachs auf, während der Stromverbrauch konstant bleibt.

Für Single-Thread-Aufgaben ist dies ein Problem. Wenn Sie jedoch große Mengen an CPU-Gesamtenergie für einen Cluster mit verteilter Verarbeitung oder einen Virtualisierungscluster bereitstellen möchten, ist dies ein vernünftiger Ansatz. Dies bedeutet, dass für die meisten Serverumgebungen heutzutage das Skalieren der Anzahl der Kerne in jeder CPU ein viel besserer Ansatz ist als der Versuch, schnellere und bessere Einzelkern-CPUs zu erstellen.

Der Trend wird noch eine Weile anhalten, aber es gibt Herausforderungen und es ist nicht einfach, die Anzahl der Kerne kontinuierlich zu verringern (die Speicherbandbreite hoch genug zu halten und die Verwaltung der Caches wird mit zunehmender Anzahl der Kerne viel schwieriger). Das bedeutet, dass sich das derzeit recht explosive Wachstum der Anzahl der Kerne pro Sockel in ein paar Generationen verlangsamen muss und wir einen anderen Ansatz sehen werden.

Helvick
quelle
3
Ich kann Ihnen nicht sagen, wie oft ich versucht habe, dies Leuten zu erklären, die immer noch glauben, dass eine 3,6-GHz-CPU von vor 5 Jahren schneller ist als eine 2,8-GHz-CPU mit der neuesten Technologie. Es ist ärgerlich. Ich hasse den Megahertz-Mythos.
Churnd
Gibt es nicht auch eine physikalische Begrenzung aufgrund der Lichtgeschwindigkeit für elektrische Signale?
Mouche
1
@churnd - Aber bedenke, dass sie in gewisser Weise richtig sind. Denn wir dürfen Geschwindigkeit nicht mit Leistung mischen (3,6 GHz sind zweifellos schneller als 2,8 GHz; was es nicht ist, ist leistungsstärker). Dies kann einen signifikanten Unterschied für Programmierer bedeuten, die beispielsweise schnellere Geschwindigkeiten benötigen, aber noch nicht mit Threading- / Parallel-Programmiertechniken vertraut sind.
Turm
3
@ldigas Diese Programmierer kümmern sich um die Ausführungsraten von Einzelkernbefehlen, nicht um die Kerntaktraten. Moderne CPUs weisen viel höhere Single-Core-Befehlsausführungsraten auf, selbst wenn die Taktrate niedriger ist.
David Schwartz
5

Es wurde zu schwierig, sie nutzbringend schneller zu machen.

Das Problem ist, dass Sie auf einmal an einer Reihe von Anweisungen arbeiten müssen, bei der aktuellen x86-CPU werden 80 oder mehr Anweisungen gleichzeitig bearbeitet, und es scheint, dass dies die Grenze ist, da sie mit dem P4 getroffen wurde, verdammt , der Pentium Pro hat 1995 40 ausgeführt. Typische Anweisungsströme sind darüber hinaus nicht vorhersehbar (Sie müssen Verzweigungen, Speicherzugriff usw. erraten), damit mehr als ein paar Anweisungen gleichzeitig ausgeführt werden (486 haben 5 ausgeführt, Pentium hat 10 ausgeführt, kaum). .

Sie können sie zwar breiter (mehr Funktionseinheiten für jedes Teil der Anweisung), aber auch länger (tiefere Pipelines, um die Latenz auszublenden) machen, aber es scheint nicht viel zu nützen. Und wir scheinen auch mit Takt an eine Wand gestoßen zu sein. Und wir überholen immer noch die Erinnerung. Die Aufteilung in viele CPUs scheint also ein Gewinn zu sein. Außerdem können sie Caches gemeinsam nutzen.

Es steckt noch viel mehr dahinter, aber es läuft darauf hinaus, dass herkömmliche Programme auf keiner Hardware, die wir uns vorstellen können, wie sie zu entwerfen und zu bauen ist, wesentlich schneller ausgeführt werden können.

Wenn Vorhersagbarkeit kein Problem ist, zum Beispiel viele wissenschaftliche Probleme und Grafiken (sie laufen oft darauf hinaus, diesen Satz von Zahlen mit diesem Satz von Zahlen zu multiplizieren), ist dies nicht der Fall und daher die Beliebtheit von Intels IA64 ( Itanium) und GPUs, die immer schneller werden, aber nicht dazu beitragen, Word besser auszuführen.

Ronald Pottol
quelle
4

Die Rechenleistung und Taktfrequenz eines einzelnen Prozessors hat vor einigen Jahren ihren Höhepunkt erreicht. Es ist einfach nicht einfach, leistungsstärkere und / oder schnellere Prozessoren als die aktuellen zu entwickeln. Also wechselten die großen CPU-Hersteller (Intel, AMD) die Strategie und gingen auf Multi-Core um. Dies erfordert natürlich viel mehr Arbeit von den Anwendungsentwicklern, um die volle Leistung von Multitasking zu nutzen: Ein Programm, das für eine einzelne Task ausgeführt wird, profitiert einfach nicht von einer Multi-Core-CPU (obwohl das System eine Gesamtbonus, da er nicht sperrt, wenn ein einzelner Prozess eine einzelne CPU zu 100% auslastet.

Informationen zur physischen Architektur (Multi-Core-Prozessoren anstelle mehrerer Single-Core-Prozessoren) ... Fragen Sie Intel. Aber ich bin mir ziemlich sicher, dass dies etwas mit Motherboards zu tun hat, bei denen ein einzelner CPU-Sockel viel einfacher zu entwerfen und herzustellen ist als Boards mit mehreren.

Massimo
quelle
2
Ich gehe davon aus, dass wir mehr über Amdahls Gesetz als über Moores Gesetz hören werden.
Evan Anderson
1

Um die Taktraten zu erhöhen, müssen die Siliziumtransistoren auf dem Chip schneller schalten können. Diese höheren Geschwindigkeiten erfordern höhere Eingangsspannungen und Halbleiterfertigungsprozesse, die zu größeren Leckströmen führen , was sowohl den Stromverbrauch als auch die Wärmeabgabe erhöht. Sie erreichen schließlich einen Punkt, an dem Sie die Taktraten nicht weiter erhöhen können, ohne übermäßig viel Strom zu verbrauchen oder exotische Kühllösungen zu verwenden.

Um dieses Problem zu veranschaulichen, vergleiche ich zwei moderne AMD-Prozessoren. Der AMD FX-9590 kann im Auslieferungszustand Taktraten von bis zu 5 GHz erreichen, arbeitet jedoch mit Kernspannungen von bis zu 1.912 V, was für einen 32-nm-Chip extrem hoch ist, und leitet unglaubliche 220 Watt Wärme ab. Der FX-8350, der auf demselben Chip basiert, arbeitet mit maximal 4,2 GHz, aber maximal 1,4 V und verbraucht 125 Watt.

Anstatt zu versuchen, die Taktrate weiter zu erhöhen, haben die Ingenieure daher versucht, Chips auf andere Weise schneller arbeiten zu lassen. Dazu gehört auch, sie so zu gestalten, dass sie mehrere Prozesse gleichzeitig ausführen - also Multi-Core-Prozessoren.

bwDraco
quelle
0

Moores Gesetz . Grundsätzlich können Prozessoren nicht schneller gemacht werden (Frequenzüberschreitung vor 5 Jahren bei 3 GHz, und es wurde nie viel mehr getan). Sie werden also leistungsfähiger, indem mehr Kerne erhalten werden.

Wazoox
quelle
IMHO Moores Gesetz ist eher eine Beschreibung als eine Vorhersage ... sicher, dass es zutrifft, und es tut es immer noch, aber nichts garantiert, dass es morgen nicht brechen wird. Sie können einfach nicht zu einem Ingenieur gehen und ihm sagen, "Sie sollten dies tun können, weil Moores Gesetz besagt, dass es getan werden kann", wenn die Physik es nicht mehr zulässt.
Vlad-Ardelean