Warum gibt es Desktop-Prozessoren mit nur wenigen Kernen?

Als 2004 von Intel der erste Zweikernprozessor auf den Markt kam, kündigte Intel an, dass sich die Kernzahl jede Generation verdoppeln würde. Der Pentium D entstand im 90 nm Prozess. Seitdem gab es die Schritte 65 nm (Merom), 45 nm (Penryn, Nehalem), 32 nm (Westmere, Sandy Bridge), 22 nm (Ivy Bidge, Haswell), 14 nm (Broadwell, Skylake, Kably Lake, Coffee Lake). Wäre Intel dem Versprechen von 2005 gefolgt, so hätten wir heute 64 Kerne pro Prozessor.

Dem ist nicht so. Lange Zeit gab es maximal 4 echte physikalische Kerne im Desktopbereich. Durch Hyperthreading können diese dem Betriebssystem 8 logische Kerne vortäuschen, jedoch ist dies nicht gleichbedeutend mit 8 echten physisch vorhanden Kernen. Mit der Einführung von Ryzen gibt es auch für den Normalverbraucher mehr Kerne, sowohl von Intel wie AMD. Allerdings zu hohen Preisen. Warum hat Intel die Prozessoren mit vielen Kernen nicht umgesetzt?

Nun Intel hat es umgesetzt. Die Serverlinie, die Xeon-Prozessoren gibt es mit bis zu 36 Kernen zu kaufen. Der Beschleuniger Xeon Phi sogar mit 50 Kernen. Im Desktop Segment hat man aber lange Zeit nur maximal 4 Kerne pro Chip untergebracht. Mehr noch, erst vor wenigen Jahren flogen die Einkernprozessoren aus dem Einstiegssegment bei den Atoms aus dem Programm.

Tatsächlich hat man die Transistorenzahl pro CPU in den letzten 13 Jahren deutlich erhöht. Die erste Generation mit Mehrfachkernen, der Pentium D hatte noch 230 Millionen Transistoren bei zwei Kernen. Ein Skylake Prozessor hat 1750 Millionen Transistoren, das würde also bei gleicher Architektur für 15 Kerne reichen. Da ein Großteil der Transistorzahl auf die Caches entfällt und die nicht proportional mitwachsen, wären es noch deutlich mehr Kerne. Es wäre also möglich die Kernanzahl unterzubringen, zumal sich die Mikroarchitektur nach Aufgabe der Netburst-Architektur des Pentium 4 kaum noch geändert hat. Doch es gibt einen gravierenden Grund und den sieht man anhand dieser Tabelle:

Zugriff Latenz
L1-Cache 4 Takte
L2-Cache 11 – 12 Takte
L3-Cahce 38 – 44 Takte
DDR4-RAM 41 Takte + 51 ns


Die Taktzahl variiert leicht je nach Modell, je höher die Taktfrequenz desto höher die Latenz in der Tendenz. Bei der höchsten Frequenz von 4 GHz die bei Skylake derzeit verfügbar ist, benötigt ein Zugriff auf das DDR-RAM so 246 Takte.

Der Grund ist relativ einfach: Die Zugriffszeit von RAM-Bausteinen hat sich seit Jahrzehnten kaum gebessert. Die 51 ns des DDR-RAM würden bei einem Zugriff pro Takt einen Maximaltakt von 20 MHz zulassen, nicht 4 GHz. Zum Glück greifen die meisten Befehle nicht auf das RAM zu, sondern interne Register oder sie haben gar nichts mit dem Speicher zu tun z.b. bei arithmetischen Operationen. Seit dem 80386 gibt es die Unterstützung von Caches, also sehr schnellen aber kleinen und teuren Zwischenspeichern. Diese sind inzwischen abgestuft. Der L1-Cache ist sehr klein, bei Skylake 32 KByte groß und getrennt nach Daten und Code. Gemeinsam ist der L2-Cache von 256 KByte Größe. Die ersten beiden Caches gibt es für jeden Kern. Gemeinsam für alle Kerne gibt es den L3-Cache. Er erlaubt es so auch schnell Threads und Daten von einem Kern auf den anderen Kern zu verschieben und erlaubt das alle Kerne mit denselben Daten arbeiten. Zudem kann man so den L3-Cache verkleinern, da er anders als die ersten beiden Caches nicht eine Kopie der Daten und des Codes pro Kern vorhalten muss.

Die Caches maskieren das langsame RAM. Der Prozessor schaut zuerst im L1-Cache nach, ob er Daten dort findet. Ist dies der Fall, so bekommt er sie nach 4 Takten. Das gleiche gilt für Befehle. Ansonsten geht er zum L2-Cache, der zwar langsamer ist, aber dafür achtmal größer. Die Chance etwas zu finden steigt also an. Der L3-Cache hat unterschiedliche Größe je nach Modell ist er bei Skylake zwischen 3 und 8 MB groß und damit nochmals mindestens 12-mal größer als der L2-Cache.

Die Caches lesen vorausschauend, transferieren also die nächsten Daten und Befehle in den Cache, bevor der Prozessor sie anfordert. Das geht, weil Code und Daten in hohem Maße lokal sind, also nicht verstreut im Speicher stehen. Nur deswegen geht das ganze Spiel auf. Denn DDR-RAM ist langsam. DDR4-RAM arbeitet mit einer Taktfrequenz von 2000 bis 2700 MHz. Pro Takt transferiert er 64 Bit, also 8 Byte. Das ergibt eine Transferrate von 19,2 GByte pro Sekunde bei 2,4 GHz. Abgerufen wird immer eine Cacheline, das sind 64 Byte, die in 8 Zugriffen des DDR-RAM übertragen werden. Das dauert bei einem Skylake Prozessor je nach Taktfrequenz 6-7 ns. Davon entfallen aber 4-5 ns, also der größte Teil auf die Wartezeit für den ersten Zugriff, denn der Basistakt, wichtig für den Zugriff hat sich seit der Einführung von DDR-RAM nicht geändert. Es sind 200 MHz nicht 1600 oder 2400.

Das System funktioniert, sofern man nicht die Daten kreuz und quer aus dem Speicher abruft, wie man es in Benchmarks provozieren kann. Es gibt aber eine Einschränkung: Die Bandbreite des DDR4-RAM verteilt sich auf alle Prozessorkerne. Bei 4 Kernen und einem Modul sind es 4,8 GByte pro Kern. Hätte der Prozessor nun 32 Kerne, so würde das auf 0,6 GB<te/s pro Kern sinken und damit auf ein zu geringes Niveau. Das sind bei 64 Bit Werten nur 75 Millionen Worte pro Sekunde, mithin dürfte bei einem 4 Ghz-Prozessor nur jeder 50-ste Befehl Daten holen oder Schreiben und das ist nicht der Fall.

Es gibt zwei Möglichkeiten dies zu umgehen: größere Caches, damit Zugriffe auf den Hauptspeicher seltener werden und mehr Speichermodule. Beides findet man bei Xeon Serverprozessoren. Größere Caches verringern die Wahrscheinlichkeit, dass man Daten überhaupt aus dem Hauptspeicher holen muss. Serverprozessoren haben daher größere Caches. Je nach Typ bis zu 33 MB, während es bei den aktuellen Desktopprozessoren 3 bis 8 MB sind.

Wichtiger ist aber: Der Chipsatz der Mainboards für Serverprozessoren unterstützt mehr Steckplätze. Mainboards für Desktoprechner haben zwei bis vier Modulsteckplätze, Serverboards acht bis 16. Damit kann man nicht nur mehr RAM ansprechen, sondern es steigt auch die Geschwindigkeit. Daten können z.B. nacheinander in mehreren Modulen abgelegt werden. Der Cache kann dann nicht nur eine Cachline abfragen, sondern eine pro Modul. Er erhält die Daten dann zwar nicht schneller, aber er ruft gleichzeitig mehr Module ab, ihre Datenübertragungsrate addiert sich.

In Desktoprechnern ist es meist üblich das man nur einen oder zwei Steckplätze nutzt, z. b. Ein 4 GB Modul im ersten Steckplatz bei preiswerten Rechnern und zwei 4 GB Module mit beiden belegten Steckplätzen bei besser ausgestatteten Rechnern. Mehr Steckplätze werden selten benötigt und nur wenige User rüsten später auf. Daher findet man meist nur zwei Steckplätze, da dies Kosten spart bei der Herstellung aber auch beim Chipsatz, der entsprechend viele Steckplätze unterstützen muss.

Ein zweites Speichermodul beschleunigt den Rechner typisch um 6 bis 10 %. Das ist wenig, aber immerhin billiger als einen 6-10 % schnelleren Prozessor zu kaufen, der vor allem bei hoher Taktfrequenz sehr teuer ist. Die Datenübertragungsrate ist dagegen weniger wichtig. Eine um 20 % höhere Taktfrequenz beim DDR-RAM (z.B. 2400 anstatt 2000 MHz) bringt typisch nur 2-3 Prozent mehr Geschwindigkeit, weil die Zugriffgeschwindigkeit wie oben erläutert der am längsten dauernde Teil eines Transfers ist.

One thought on “Warum gibt es Desktop-Prozessoren mit nur wenigen Kernen?

  1. Es gibt noch einen Grund, warum Desktop-Prozessoren nicht mehr Kerne haben: Viele Spiele nutzen nur wenige Kerne. Da bringen wenig Kerne mit einer höheren Taktfrequenz mehr als die teureren Vielkerner. Und typische Büro-Anwendungen brauchen nicht viel Leistung, dafür würde ein 10 Jahre altes Gerät noch locker ausreichen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.