McKinley oder McMonster?

L3-Cache in Subarrays

Wie dem folgenden Bild zu entnehmen ist, bildet der L3-Cache auf dem Die des McKinley keinen zusammenhängenden Block mehr, sondern ist rund um die Funktionseinheiten der CPU verteilt. Intel begründet das mit optimaler Ausnutzung des vorhandenen Platzes.

Zuerst hätte man die zusätzlichen Funktionseinheiten (siehe nächste Seite) platziert, und dann so viel L3-Cache untergebracht, wie noch möglich sei, ist aus Santa Clara zu hören. Die L-förmige Anordnung des Cache ist im Übrigen ein Trick, den schon IBM mit dem Power4 eingesetzt hat. Bei diesem Prozessor bestand das Problem, mehrere Dies über einen schnellen Bus zu verbinden. Für diesen dient der L2-Cache als Puffer.

Diese Cache-L hat Intel nun ebenfalls eingesetzt, wenn auch nicht für eine Chip-to-Chip-Verbindung: Einer der Schlüssel zu mehr Performance des McKinley ist ein neues Bus-Interface. Statt 64 Bit ist der Bus 128 Bit breit, und taktet mit effektiv 400 statt wie bei Itanium 266 MHz. Das ergibt eine maximale Bandbreite von 6,4 GByte/s gegenüber 2,1 GByte/s.

Damit diese Bandbreiten den Funktionseinheiten wirklich nutzen, hat Intel auch die anderen Caches aufgebohrt. 256 statt 96 KByte stehen jetzt für den L2-Cache bereit, der 64 GByte/s bewältigen soll. Der L1-Cache blieb zwar mit je 16 KByte für Daten und Befehle gegenüber dem Itanium gleich groß. Statt zwei Takte soll er aber nur noch über eine Latenz von einem Takt verfügen.

Intel verspricht sich davon weniger Arbeit für die Compiler: Da diese beispielsweise bei Load-Befehlen immer die Latenzen einkalkulieren müssen, fällt es schwer, optimal parallelen Code zu erzeugen. Wie diesem Artikel zu entnehmen ist, muss bei Intels EPIC getaufter CPU-Philosophie für die IA-64-Prozessoren der Compiler wesentlich aufwendiger optimierten Code liefern als bei den 32-Bit-CPUs.