Warum haben Prozessoren so wenige Kerne?

Nächste Woche gibt es bei ALDI einen Tablett-PC mit Achtkernprozessor und auch Intel hat bei den Desktop Exemplaren dieses Jahr mit 6 bzw. 8 Kernen eine Schippe draufgelegt, doch noch immer sind das deutlich weniger als man nach Intels eigenen Angaben erwarten dürfte. Als 2005 die ersten Dualcoreprozessoren eingeführt wurden, verkündete Intel, nun würde sich die Kernzahl alle zwei Jahre verdoppeln. Damit dürften wir 2015 die ersten 64-Kernprozessoren erwarten. Die kommen aber nicht. Nicht das Intel das nicht hinbekommt. Schon 2009 gab es bei der Westmere Generation 10 Kerne, im Einklang mit dem „Gesetz“ (das für 2009 acht Kerne vorhersagte) und heute liegt der Rekord bei den Xeon Prozessoren bei 18 Kernen mit Hyperthreading (36 logische Kerne). Daneben gibt es den Xeon Phi mit 50 Kernen, doch dazu später mehr. Warum aber belässt man es im Desktop-Segment bei zwei oder vier Kernen, wenn doch technisch mehr möglich sind?

Nun es gibt eine Reihe von Gründen dafür. Der erste ist, dass im Desktop-Bereich meist ein Programm mit einem Thread aktiv ist. Andere Threads sind zwar auch vorhanden, arbeiten aber meist im Hintergrund und brauchen oft nur eine geringe Rechenleistung. Daher hat man mehr Arbeit in den Turbo-Boost gesteckt, darunter versteht man dass einer oder mehrere Kerne kurzzeitig eine höhere Taktfrequenz fahren können, wenn die anderen nicht ausgelastet sind. Das erhöht die Singlethreadperformance die im PC-Bereich so wichtig ist.  Es verwundert nicht das Xeon Prozessoren die für Server gedacht sind und damit für Multithreadanwendungen mehr Kerne haben.

Es gibt aber auch noch einen sehr einfachen Grund, warum es nicht so viele Kerne gibt, denn die müssen auch mit Daten versorgt werden. Bei der derzeitigen Intel Architektur teilen sich alle Kerne einen gemeinsamen Level 3 Cache und einen gemeinsamen Frontbus zum Speicher. Der unterstützt im Desktopbereich maximal 4 Speicherriegel. Die Xeon Prozessoren haben nicht nur größere Caches, sondern unterstützen auch 8 oder 16 Speicherkanäle. Schon seit ewigen Zeiten ist Speicher der Flaschenhals des Systems. DDR-RAM konnte zwar das Problem des langsamen Zugriffs nicht lösen, das physikalisch bedingt ist, aber man hat als Kompensation die Datenrate erhöht, indem bei einem Zugriff viele Bänke in dem Chip angesprochen werden und diese dann nach dem ersten Zugriff relativ schnell die folgenden Daten an den Prozessor liefern. Sie landen in einem Cache, der wieder deutlich schneller als der Hauptspeicher ist. So merkt im Idealfall der Prozessor nichts von der Langsamkeit des Speichers, der wenn der Zugriff noch so erfolgen würde, wie vor Einführung von SD-RAM, für maximal 100 bis 133 MHz Takt gut wäre. Doch je mehr Kerne ein Prozessor hat um so kleiner der Anteil am Cache und um so öfters muss er auf den langsamen Hauptspeicher warten. So verwundert es nicht dass die Xeon Linie viel größere Caches als die Desktoplinie hat. Bei der E7-Serie sind es bis zu 37,5 MByte, Auf meinem Core I5-4690 immerhin eines der Spitzenprodukte der Desktoplinie sind es gerade mal 6 MByte.

Doch es gibt auch Anwendungen, wo man viele Kerne auslasten kann und nicht so viel Cache braucht – im Supercomputing. Dort werden viele Daten mit immer der derselben Rechenvorschrift abgearbeitet, die Daten sind meist Felder und liegen so linear im Speicher. Dann dient der Cache nur als Durchgangsstation und wenn der Prozessor vorrausschauend die Daten anfordert wirkt sich auch die Langsamkeit des Speichers nicht so aus. Der Xeon Phi von Intel basiert z.B. auf den relativ einfachen Kernen des Pentiums, erweitert aber um eine AVX Einheit ,die bis zu 512 Bit auf einmal bearbeitet (in den normalen Prozessoren maximal 256 Bit). Den L3-Cache hat man dort weggelassen, aber das Speicher Interface enorm ausgebaut: bis zu 352 GByte/s gehen dort über den Bus – im Desktopbereich sind es pro Modul derzeit maximal 12,8 GByte, bei vier Modulen also maximal 51,2 GByte. Damit dies geht, sitzt der Speicher mit den Prozessoren auf einer Karte mit entsprechend vielen Datenleitungen. Dieselbe Technik setzen auch Grafikkarten ein die sehr viele Shader mit Daten zu versorgen haben.

Für solche Zwecke wurde auch der Pezy-SC Coprozessor entworfen: Hier werkeln 1024 Kerne die bei 733 MHZ bis zu 3 TFlop erreichen (4 einfach oder zwei doppelt genaue Rechnungen pro Takt). Um diese Kerne zu versorgen hat er ein Speicherinterface von 2048 Bit Breite (Core und Xeon Serie: 64 Bit pro Modul) das bis zu 1533 GByte pro Sekunde transferiert. Entsprechend muss einen auch nicht verwundern, dass der Chip nicht weniger als 2112 Anschlüsse hat (allerdings erreichen auch Core Prozessoren heute schon 1150 Pins).

Solange aber die Anwendungen für solche Hardware beim Durchschnittsbenutzer fehlen, wird’s wohl bei wenigen Kernen bleiben. Intel hat stattdessen in den letzten Jahren immer mehr integriert. Speicherkontroller, PCI-E Controller und zuletzt auch die Grafik. Die letztere hat von Generation zu Generation an Geschwindigkeit zugelegt, während die Prozessoren kaum noch schneller werden. Ich vermute dieser Trend geht so weiter. Derzeit ruht sich die Firma auf dem erreichten aus und plant nicht die 14 nm Fertigungstechnologie für Desktopprodukte einzusetzen, sondern nur für energiesparende Mobilprozessoren. Man will im Desktopbereich eine Generation überspringen und auf Haswell folgt gleich Skylake als neue Architektur.

One thought on “Warum haben Prozessoren so wenige Kerne?

  1. Moin,

    > Derzeit ruht sich die Firma auf dem erreichten aus

    wie schon vor kurzen geschrieben ist die erste Ableitung von Moores Law, d.h. eine Leistungsverdopplung zum selben Preis alle zwei Jahre durch Austauschen der Hardware bei gleicher Software am Ende.

    Auf der anderen Seite ist die Preisspanne von Intel CPUs zwischen $5 und $1000, d.h. Faktor 200 zwischen der billigsten und der teuersten CPU. Die billigste CPU muss dabei immer noch schnell genug sein, um einen Desktop darzustellen, und diese Art von Anwendungen werden durch die teuerste kaum schneller.

    Stattdessen fragmentiert Intel die CPUs mittels Featuritis: ECC, E64MT, AVX, AVX2, AES-NI, TXT, TSX-NI, VT-x, VT-d, e/EPT, … und erzwingt damit teurere Prozessoren für bestimmte Anwendungen, mit denen sich viel Geld in kleiner Stückzahl verdienen lässt. Wenn ich mir die Sandy, Ivy und Haswell Prozessoren anschaue, so finde ich keinen der alle möglichen Features gleichzeitig unterstützt, aber eigentlich ist auch keiner davon eine richtige Server CPU, weil allen ECC fehlt.

    AMD macht es da besser. ECC und NUMA sind die einzigen Features die teure Opteron von den günstigen unterscheiden.

    So lange aber ein Feature, wie z.b. AVX nur in ganz wenigen CPUs vorhanden ist, so lange wird es auch keine Software geben, die dieses Feature nutzt. SSE2 ist meist Ende der Fahnenstangen.

    ciao,Michael

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.