Schlauer Speicherzugriff und effektiver Cache. Mit der neuen Mikroarchitektur "Core" legt Intel die Basis für alle kommenden PC-Prozessoren der nächsten vier bis sechs Jahre. Lange Pipelines wie noch beim Pentium 4 sind out, dafür bekommen die immer noch an einen FSB gebundenen Intel-Kerne zahlreiche Optimierungen rund um den Speicherzugriff und schnellere Multimedia-Rechenwerke. Golem.de stellt die neue Architektur im Detail vor.
Auf dem "Intel Developer Forum Spring 2006" (IDF) hat Intel Anfang März 2006 seine neue Architektur weitgehend enthüllt und sogar erste Benchmarks zugelassen. Was bisher als "Next Generation Micoarchitecture" oder "NGMA" in vielen Intel-Dokumenten zu finden war, hat jetzt einen neuen Marketing-Namen: Die Architektur heißt "Core", die Verwechslungsgefahr zu den bereits erhältlichen Mobil-Prozessoren "Core Duo" und "Core Solo" ist beabsichtigt. Die Core-Architektur stammt schließlich auch von Intels letztem großen CPU-Design "Banias" ab, die als "Pentium M" oder im Paket mit Chipsatz und WLAN-Modul als "Centrino" bekannt ist. Die ersten Core-Prozessoren sind jedoch gegenüber dem aktuellen Pentium M mit Codenamen "Yonah" deutlich erweitert worden.
Entwickelt wurde Core wie schon Banias und Yonah in Intels israelischem Design-Zentrum nahe Haifa. Core soll noch 2006 die mit dem Pentium 4 Ende 2000 eingeführte NetBurst-Mikroarchitektur endgültig ablösen. Die endgültigen Produktnamen nannte Intel noch nicht, so dass weiterhin die drei ersten Core-Prozessoren nur anhand ihrer Codenamen "Conroe" (Desktops), "Merom" (Notebooks) und "Woodcrest" (Server) bekannt sind. Sie lösen dort die Pentiums, Cores und Xeons ab. Vermutlich wird Intel den jüngst eingeführten Markennamen "Core" zumindest für die Mobilprozessoren behalten. Nach bisher unbestätigten Angaben lässt Intel die Marke "Pentium" für seine Desktop-CPUs sterben, was mit dem Namen "Xeon" passiert, ist noch unklar.
Da Intel es selbst nicht betont, weil nicht selbst erfunden: Alle Core-CPUs erhalten die Erweiterung EM64T, sind also zu AMD64 kompatibel. Ebenfalls unter den Tisch fällt bei Intel mit Core das HyperThreading - es ist vorerst für Core-CPUs nicht vorgesehen, lässt sich aber nach Aussagen von Intel auf dem IDF noch nachrüsten. Nötig dürfte das angesichts mehrerer realer Kerne aber nicht sein. Von Intel stammen aber die marketinggerechten Namen für Teile der Architektur, die wir auf den folgenden Seiten erklären.
Die Core-Architektur zählt zur Klasse der "Spaghetti-Code-Optimierer". Schon seit dem Pentium werden bei der betagten x86-Architektur nicht mehr die Assembler-Befehle direkt und der Reihe nach ausgeführt. Stattdessen übersetzen die CPUs diese bei Intel "Macro-Ops" genannten Befehle in kleinere Einheiten namens "Micro-Ops". Diese Micro-Ops arbeitet der Prozessor dann in einer anderen Reihenfolge ab ("out-of-order execution") und handelt dabei auch in vorauseilendem Gehorsam, der "speculative execution". Ist das Ergebnis einer spekulativen Berechnung richtig, wird das Resultat direkt übertragen, falls nicht, wird neu gerechnet.
Vier der eigentlichen Maschinencode-Befehle kann Core in einem Takt verarbeiten, er arbeitet also vierfach skalar gegenüber dreifacher Skalarität beim Pentium 4 und Pentium M. Die Pipeline wurde gegenüber dem letzten Pentium-4-Design "Prescott" von 31 auf 14 Stufen drastisch verkürzt. Gerade die lange Pipe des Prescott wird dafür verantwortlich gemacht, dass der Pentium 4 mit immer höherem Takt kaum noch an Leistung gewinnt. Bei einer langen Pipe ist der Zeitverlust umso größer, wenn eine spekulative Ausführung fehlgeschlagen ist oder eine Sprungvorhersage ("branch prediction") ein fehlerhaftes Ergebnis hatte - die Pipe muss im schlimmsten Fall komplett neu gefüllt werden.
Core kann quer durch einen Prozessorkern gleichzeitig 96 Micro-Ops "in flight" halten, also spekulativ ausführen. Beim Prescott waren es noch 126 Befehle "in flight", in Verbindung mit der kürzeren Pipe ist Core aber deutlich effizienter.
Ein Ziel der Core-Architektur war auch diese Takt-Effizienz: Mit jedem Zyklus sollen so viele Befehle wie möglich ausgeführt werden. Ein erster Schritt dazu war die bereits mit dem ersten Pentium M "Banias" eingeführte "Micro-Ops-Fusion": Häufig auftretende Abfolgen von Micro-Ops wurden durch eine neue Micro-Op ersetzt. Intel-Mitarbeiter erklären das Konzept oft anhand von Alltagsaufgaben - da wollen wir nicht nachstehen: Man stelle sich zum Beispiel vor, was man morgens vor dem Weg zur Arbeit alles tun muss, etwa Zähneputzen und duschen. Diese Vorgänge kann man nun in einzelne Schritte aufteilen, wenn man sie jemand genau beschreiben will, etwa Zähne putzen: Bürste befeuchten, Tube aufschrauben, Zahnpasta auftragen, Tube verschließen, putzen, spülen. Diese Schritte seien das Beispiel für die Micro-Ops. Da man diese Aktionen immer ausführen muss, wenn man sich die Zähne putzt, kann man die Anweisung auch akbürzen: Putze Dir die Zähne. Das wäre dann die neue Micro-Op für den gesamten Vorgang.
In Core kommt dazu noch das Konzept der "Macro-Ops-Fusion", bei der bestimmte Abfolgen von echten Assembler-Befehlen in eine Micro-Op zusammengefasst werden. In unserem Beispiel wären die beiden getrennten Vorgänge "Zähneputzen" und "Duschen", die idealerweise jeden Morgen ausgeführt werden sollten und immer die gleichen Schritte erfordern (gleiche Micro-Ops), dann mit der Anweisung: "Gehe Zähneputzen und Duschen" in eine Micro-Op zusammenzufassen.
Aus dem nassen Bad wieder zur trockenen Prozessormaterie: Bei x86-Code folgt auf den Befehl "Compare" (CMP) meistens ein Sprung mittels "Jump" (JMP). Diese beiden Macro-Ops hat Intel bei Core nun in eine Micro-Op zusammengefasst, so dass sie in einem Takt gemeinsam ausgeführt werden können. Andere Beispiele nannte Intel nicht, die müssen die Programmierer wohl anhand der endgültigen Produkte herausfinden - oder beim endgültigen Erscheinen der CPUs im Datenblatt nachlesen.
Das Konzept der "Wide Dynamic Execution" erfordert in den Core-Prozessoren eine Vielzahl an schnellen Zwischenspeichern ("Buffers"), über die sich Intel ebenfalls noch ausschweigt.
Advanced Digital Media Boost
Hinter dem vollmundigen Namen "Advanced Digital Media Boost" stecken die neuen SSE-Einheiten von Core. Sie lassen sich weit schneller erklären als die anderen Erweiterungen, ist doch als wesentliche Neuerung der Bus der Rechenwerke nun 128 Bit breit - gegenüber 64 Bit bei Pentium 4 und Pentium M. Die 128 Bit breiten SSE-Befehle lassen sich damit nun in einem Takt abarbeiten, vorher waren dafür zwei Zyklen nötig. Das sorgt nicht nur bei der eigentlichen Berechnung für mehr Tempo, sondern entlastet auch die Load-Pipelines, da die Befehle immer in einem Takt geladen werden können und die Pipeline zumindest dabei nie durcheinander kommt.
Bei einfacher Genauigkeit erreichen die SSE-Einheiten von Core in der Theorie 8 Gigaflops, bei der heute häufig gebrauchten doppelten Genauigkeit sind es noch vier Gigaflops.
Dazu kommen noch 16 neue SSE-Befehle, die vor allem beim Addieren und Multiplizieren mit doppelter Genauigkeit hilfreich sind - das klappt ja jetzt ohne Taktverlust und ist besonders bei Grafik-Manipulationen mit hoher Farbtiefe hilfreich. Diese neuen Befehle heißen bei Intel "SSE4".
Während des IDF zeigten sich vor allem die Hersteller von Grafik-Prozessoren von den neuen SSE-Einheiten und den neuen Instruktionen begeistert und meinten, damit wären bisher in die GPU verlagerte Funktionen wie das "High Dynamic Rendering" (HDR) nun auch zum Teil wieder in der CPU möglich. Denkbar wäre damit der umgekehrte Weg der bisherigen Entwicklung: Der Prozessor könnte den Grafikchip wieder entlasten, der damit wieder Ressourcen für etwa noch aufwendigere Shader-Programme frei hat. Dies bedinge jedoch eine grundlegende Optimierung der Treiber, war etwa von ATI zu hören.
Smart Memory Access
Ein Kritikpunkt an bisherigen Intel-Designs war stets das Festhalten am Konzept des Front Side Bus (FSB) - der Speichercontroller ist über einen, jetzt bei Core bis zu effektiv 1.333 MHz schnellen Bus angebunden, durch den alle Speicherzugriffe erfolgen müssen. Der FSB geht bei Intel nun in die dritte CPU-Generation, AMD hat mit dem K8-Design den Speichercontroller in den Prozessor verlagert, was der Kern seiner guten Performance pro Takt ist. Der Nachteil eines integrierten Speichercontrollers ist jedoch, dass man nur schlecht auf Trends im volatilen Memory-Markt reagieren kann: Während Intel bereits seit über einem Jahr DDR-2-Chipsätze anbietet, kommen die Athlons und Opterons mit DDR-2 voraussichtlich erst Mitte 2006 auf den Markt.
Intel will am FSB festhalten und musste dazu die Speicheroperationen deutlich beschleunigen. Dazu arbeitet die Core-Architektur ähnlich wie das EPIC-Konzept des Itanium, was Intel bei Core "Memory Disambiguation" nennt. Der Prozessor kann mit vermutlich als Nächstes benötigten Daten im Voraus rechnen und lädt sie nicht nur in den L2-Cache, was als "Prefetching" bereits ältere CPU-Designs beherrschen. Hier verwendet Intel denselben Begriff für alte und neue Techniken: In Core stecken sowohl zwei Prefetch-Einheiten für den L2-Cache je Kern als auch zwei Daten- und ein Befehls-Prefetcher, welche direkt in die Ausführungseinheiten führen. Die L2-Prefetcher teilen sich die beiden Prozessorkerne jedoch, so dass in einer Dual-Core-CPU insgesamt acht Prefetcher zur Verfügung stehen. Damit füttern die Prefetcher die Rechenwerke ständig mit Daten, die höchstwahrscheinlich als Nächstes benötigt werden. Die Prefetcher arbeiten dabei mit bestimmten Zugriffsmustern, die sie anhand interner Tabellen ("Look-Up-Tables") erkennen können.
Das Konzept lässt sich wieder an einem Alltagsbeispiel veranschaulichen, diesmal vom Ende eines Arbeitsalltags. Man sitzt auf dem Sofa, sieht fern und möchte dabei Bier trinken. Der Lebenspartner erkennt das und weiß, dass es höchst selten bei einem Bier bleibt - er holt also gleich zwei aus dem Kühlschrank, der hier dem Arbeitsspeicher entspricht. Der L2-Cache sei hier der Couchtisch, auf dem das Bier zum direkten Zugriff steht - der Weg zum Kühlschrank dauert schließlich viel zu lange. Hat man nach dem ersten Bier noch Lust auf ein weiteres, ist dieses unmittelbar vorhanden. Wenn nicht, bleibt das zweite eben ungeöffnet und hat nur zeitweise unwesentlichen Platz auf dem Tisch belegt.
Der fatale Unterschied zwischen dem Fernsehabend und dem Prefetching in einem Prozessor ist dabei nur, dass die Daten im Hauptspeicher nach einem solchen irrtümlichen Prefetch noch vorhanden sind - das Bier im Kühlschrank aber leider nicht. In einer Core-CPU führt die "Memory Disambiguation" in der Praxis dazu, dass das Laden von Daten und das Speichern der Rechenergebnisse (Load/Store) völlig unabhängig voneinander erfolgen kann. Bier holen und Bier trinken erfolgt also gleichzeitig, was im wahren Leben bei hoher Geschwindigkeit zum Verschlucken führt.
Der "Smart Memory Access" macht bei Core das per Hardware, was bei Itanium der Compiler übernehmen muss: Die Speicherzugriffe laufen voneinander unabhängig und in bestimmten Mustern optimal angeordnet. Core kann diese Muster aber erkennen (Wenn "mensch" auf dem Sofa sitzt und fernsieht, hole Bier) und entsprechend reagieren.
Advanced Smart Cache
Die neuen Tricks beim Speicherzugriff wären wenig sinnvoll, hätte Core nicht auch einen leistungsfähigen L2-Cache an seiner Seite. Hier hat Intel das vom Yonah-Kern bekannte Konzept des Shared Cache übernommen, dabei aber noch die Bandbreite zum L1-Cache verdoppelt.
Der Shared-Cache kann bis zu vier MByte groß sein, dem Vernehmen nach plant Intel aber auch günstigere Prozessoren mit nur zwei MByte Cache. Jeder der Prozessorkerne kann auf den gesamten Cache und auch auf Daten zugreifen, die ein anderer Kern dort abgelegt hat. Doppelt gespeicherte Daten kommen so nicht vor, der Platz wird also effizient genutzt.
Die Aufteilung des Caches wird dabei automatisch geregelt: Ist nur ein Kern beschäftigt, etwa bei einer alten Single-Threaded-Anwendung, wie sie viele noch beliebte Spiele darstellen, so steht ihm nahezu der gesamte Cache zur Verfügung. Im Idealfall - und wenn andere Threads nicht dazwischenfunken - hat also ein Programm, das nicht von Dual- oder Multi-Cores profitieren kann, fast vier Megabyte L2-Cache zur Verfügung. Das beschleunigt auf Core auch ältere Anwendungen.
Zusätzlich gibt die Core-Architektur auch die Bereiche mit fälschlicherweise vorab geladenen Daten ("mismatched loads") selbstständig wieder frei, so dass der Platz nicht unnötig blockiert wird. Das Ziel ist, jedem Kern immer so viel Speicher wie möglich einzuräumen.
Intelligent Power Capability
Stromsparen ist schon seit dem IDF Fall 2005, wo Intel die Core-Architektur erstmals andeutete, eine der obersten Maximen der Entwicklung. Statt den heute bis zu 130 Watt eines Pentium D soll der neue Desktop-Prozessor "Conroe" bei deutlich mehr Performance nur noch 65 Watt aufnehmen. Daher hat Intel die schon aus den Mobil-Prozessoren bekannten Stromsparmechanismen auf alle Plattformen ausgeweitet.
Wie schon bei Banias und Yonah kann auch Core ganze Teile der CPU in verschiedene Schlafmodi versetzen, aus denen diese Einheiten ohne Zeitverlust wieder aufwachen. In der Fertigung setzt Intel dafür sowohl Transistoren mit hohen Leckströmen (die schneller aufwachen, aber mehr Strom brauchen) als auch solche mit geringen Leckströmen ein. Letztere brauchen im Schlafmodus deutlich weniger Leistung, aber mehr Zeit zum Aufwachen. Welche Einheiten wie gefertigt werden, verriet Intel aber noch nicht.
Aber drei neue Konzepte stellte man bereits vor, die zum Teil auch in anderen Teilen des Rechners für weniger Energiebedarf sorgen sollen. Bei mobilen Rechnern soll der "Power Status Indicator" (PSI) aus der CPU heraus die wenig effizienten Spannungswandler regeln - der Prozessor fordert für manche Teile unterschiedliche Spannungen, die auch nach unten geregelt werden können, wenn gerade nichts zu tun ist oder weniger Takt anliegt.
Dazu kommt ein neuer "Digital Thermal Sensor" (DTS), der die bisherige Diode zur Temperaturmessung ersetzt. Es handelt sich beim DTS um mehrere digitale Sensoren, die an besonders heißen Stellen (hot spots) des Dies sitzen. Damit kann die CPU jederzeit mehrere Temperaturen an den Rest des Systems melden, das dann über ein weiteres Konzept die Lüfter regeln kann - diese verbrauchen schließlich auch Strom.
Diese Temperaturen wertet im Chipsatz das "Platform Environment Control Interface" (PECI) über einen eigenen Bus von der CPU zur Northbridge aus. Ähnlich Zusatzchips mit Micro-Controllern, wie sie viele moderne Mainboards bieten, kann nun der Chipsatz direkt die Gebläse steuern. Der Unterschied zu bisherigen Lösungen ist, dass CPU und Chipsatz direkt die Kontrolle darüber haben und nicht etwa externe Sensoren mit Verzögerung einen Temperaturanstieg bemerken und dann darauf reagieren. Der Prozessor selbst weiß, wie heiß er ist und kann das unmittelbar weitergeben.
Fazit:
Wie bei Intel üblich, dürften die hier erklärten Neuerungen in Core nicht alle Ingredienzien sein, die dem neuen Design zu mehr Leistung bei weniger Stromverbrauch verhelfen - ein paar Aha-Effekte will man sich ja noch bis zur Markteinführung aufheben.
Schon jetzt wird aber deutlich, dass Intel vor allem an der Befehlsausführung und dem Speicherzugriff kräftig gedreht hat. Gerade der Smart Memory Access, der in Hardware das erledigt, was ein Itanium-Compiler per Software leisten muss, erscheint äußerst clever. Um die Wirkung der neuen Technologien zu demonstrieren, hat Intel auch schon erste Benchmarks vorgelegt, die jedoch umstritten sind .
Dennoch zeigen sie eine deutliche Tendenz: Die Core-Architektur ist nach diesen Tests bei fünf Prozent geringerem Takt 20 bis 30 Prozent schneller als ein Athlon64 X2, der aber noch mit DDR-Speicher arbeiten muss. Wie viel AMD der neue DDR-2-Controller bringt, bleibt abzuwarten.
Starten wird Core zumindest auf dem Desktop mit bis zu 2,66 GHz in 65 Nanometern Strukturbreite, so dass Intel mit dem Wechsel zu 45 Nanometern im Jahr 2007 noch reichlich Luft für größere Caches und höhere Takte bleibt. Und wie schon die Redesigns der mit Core abgelösten Netburst-Architektur des Pentium 4 zeigten - die mit Willamette, Northwood und Prescott drei verschiedene Kerne hervorbrachte -, hat Intel bei seinen Architekturen immer noch Spielraum eingeplant.
Zunächst steht aber nach dem bereits vollzogenen Wechsel zu Dual-Cores erst einmal Multi-Core an - wenn auch noch mit zwei Dual-Core-Dice in einem CPU-Gehäuse. Bei allen Design-Tricks wird damit in Threads aufgeteilte Software immer wichtiger. Spannend bleibt damit vor allem die Frage, ob Windows Vista wirklich besser von vielen Kernen profitiert, als dies bei Windows XP der Fall ist - es steht der PC-Branche ein radikaler Wechsel bei Hard- wie Software bevor. [von Nico Ernst]