Der Core, Intels großer Wurf?

Ich will mal den den Blick über den Tellerrand wagen und mal eingehender betrachten was einer der beiden Hauptkonkurrenten zum IBMs und Freescales PPCs zu in Zukunft presentieren möchte. Inbesondere möchte ich untersuchen, wie Intels neue Architektur im Vergleich zu ihren Vorgänger (Pentium 4 und Pentium III/Pentium M) und Konkurrenten (PPC 74xx und PPC 970) da steht.

Ich will mal den den Blick über den Tellerrand wagen und mal eingehender betrachten was einer der beiden Hauptkonkurrenten zum IBMs und Freescales PPCs zu in Zukunft presentieren möchte. Ich habe mich dabei vor allem auf die beiden von arno schon vorher verlinkten Artikel bei Golem.de und Real World Technologies aber auch auf einige älterer Artikel bei arstechnica gestützt. Inbesondere möchte ich untersuchen, wie Intels neue Architektur im Vergleich zu ihren Vorgänger (Pentium 4 und Pentium III/Pentium M) und Konkurrenten (PPC 74xx und PPC 970) da steht.

Eine Anmerkung zu Beginn: Die CPUs, die Intel momentan unter den Markennamen CoreDuo und CoreColo verkauft, haben keine Core-Micro-Architektur sondern noch die alte Pentium III/Pentium M-Architektur in ihrer letzten Evolutionstufe. Die ersten CPUs mit Core-Micro-Architektur werden


  • Woodcrest für Server
    Xeon-Nachfolger(?)
    Konkurrent zu Opteron- und Power5-CPUs und Nachfolgern)

  • Conroe für Desktops
    Pentium 4-Nachfolger(?)
    Konkurrent zu Athlon64- und PPC970-CPUs (und Nachfolgern)

  • Merom für Notebooks
    Yonah-Nachfolger
    Konkurrent zu Turion64- und PPC970GX bzw. PPC7448-CPUs (und Nachfolgern)


sein.

Betrachtet man die Core-Architektur, so scheint Intel ziemlich genau hingeguckt zu haben, was bei ihnen und der Konkurrenz gut funktioniert und was nicht.


  1. Die Pipeline ist deutlich kürzer (14 Stages statt 31), aber auch nicht zu kurz. Dafür gibt es mehr parallele Ausführungseinheiten (11 statt 9 beim Yonah und 7 beim Prescott). Das erinnert stark an den Power5 bzw. PPC 970. Dieser hat 12 Ausführungseinheiten und eine 16 Stage Pipeline. Jon "Hannibal" Stokes von arstechnica nannte diesen Ansatz "wide and deep" im Gegensatz zu "narrow and deep" beim Pentium 4 und "wide and shallow".
    Positive ist dabei, dass der Core keine so striktes Gruppierung macht wie der PPC970. Statt dessen hängen die 12 Ausführungseinheiten an 6 Dispatch-Ports (ähnlich wie beim Yonah mit 5 und Pentium 4 mit 4 ports). Es können also auch bei Core nicht beliebige Ausführungseinheiten parallel genutzt werden. Die Flexiblität scheint mir aber zumindest nicht geringer, der Verwaltungsaufwand aber deutlich geringer zu sein.
    Guckt man sich die gesamte Pipeline an, so können (zukünftige) Core-Prozessor bis zu vier μOps gleichzeitig ausführen. Im Vergleich dazu können Pentium 4 und Yonah in der Regel drei μOps ausführen.
    Das ist auf den ersten Blick schlechter als die 4+1 IOP (IOPs sind das PPC Äquivalent zu Intels μOps) des PPC970. Allerdings gelten für diese 4+1 die besagten strengeren Gruppierungsregeln.

  2. Die Core-Mikro-Architektur hat aber ein paar Tricks auf Lager, durch die er effektiv mehr als 4 μOps durch seine Ausführungseinheiten schleusen kann. Diese Tricks laufen unter dem Namen Macro-Op-Fusion und μOp-Fusion.
    Bei der Macro-OP-Fusion werden zwei IA32 bzw. AMD64-Opcodes (hier Macro-Op genannt) durch eine einzige μOp ersetzt. Dies ist insofern interessant als normalerweise eine Macro-Op in eine oder mehrere μOps umgesetzt werden. Beispielsweise ist es wohl möglich eine Vergleichs-Macro-OP (CMP) und einen anschließenden Sprung (JMP), der vom Ergebnis des Vergleiches abhängt, zu einer μOp zusammengefassen. Möglicherweise werden hier auch nur Defizite im x86-Instruction-Set ausgeglichen. Aber was soll's, es gibt dem Core einen Geschwindigkeitsgewinn gegenüber anderen x86-CPUs
    Bei der Micro-Op-Fusion werden nun μOps nach der Dekodierung aus den Macro-OPs zu einer μOp zusammengefasst. Auch hier passiert vermutlich ähnliches. (Teil-)μOps von verschiedenen Macro-OPs lassen sich bequem in einem Rutsch ausführen. Also macht man es und kann so die vier μOps pro Takt effektiver nutzen.
    Schlussendlich kann eine CPU mit Core-Architektur also mit ihren vier μOps mehr Macro-OPs abarbeiten als eine CPU ohne Macro- und Micro-OP-Fusion wie der Pentium 4, selbst wenn dieser auch vier μOps auf vergleichebare
    Ausführungseinheiten verteilen könnte. Der Pentium M kennt immerhin schon die Micro-OP-Fusion. Vergleichbares aus der PPC-Welt
    ist mir nicht bekannt. Andererseite werden dort die meisten Macro-OPs direkt in IOP umgesetzt.
  3. Auch die SSE Einheit erfährt Verbesserungen. Zum einen sind die Datenpfade zur SSE-Einheit nun 128bit breit. Bei Yonah sind alle Datenpfade nur 64 bit breit. Dadurch braucht der Yonah doppelt so lang sein 128bit-SSE-Register zu füllen. Zum anderen waren die SSE-Einheiten beim Pentium M (inkl. Yonah) und Pentium 4 nur 64 bit breit. Befehle auf den 128 bit breiten SSE-Registern wurden nacheinander in zwei Takten ausgeführt.
    Mithin kann also nur jeden zweiten Takt ein μOp in einen SSE-Einheit gesteckt werden.
    Die SSE-Einheiten der Core-Architektur sind nun volle 128 bit breit, wie sie es bei AltiVec schon immer waren. Außerdem können nun bis zu drei 128-bit-SIMD-Befehle pro Takt verarbeitet werden, bei den PPCs sind es zwei und Pentium 4 und Pentium M sind es gar nur eine (bzw. zwei alle zwei Takte).
  4. Auch die FPU-Fähigkeiten sollen wohl verbessert worden sein. Dazu konnte ich aber nicht viel finden. Der Core wird zwei reine FPU-Einheiten haben, von denen eine Addieren und eine Multiplizieren kann. Einen MultiplyAdd-Opcode wie beim PPC970 scheint es nicht zu geben. Auf dem Papier sieht es aber eher nach einer Fortschreibung der Yonah-FPU aus, die zwar schon eine Verbesserung
    im Vergleich zum Pentium III darstellt (wenn man Intel Specfp Werten glaubt) aber hinter dem Pentium 4 zurückbleibt. Hier leisten Athlon und PPC 970 mehr, zumindest gemäss meiner eigene Erfahrungen.
  5. Das Speicherinterface vom Core schliesst sich an das des Pentium 4 an. Intern wegen des geringeren Taktes ist es zwar etwas langsamer, aber die Anbindung an L2-Cachen und RAM ist schneller als beim Pentium 4 und deutlich schneller als beim Pentium M/Yonah.
    Die Geschwindigkeit der RAM-Anbindung liegt damit auf dem Niveau eine 2.65 GHz G5 (wenn man in beiden Fällen das theoretische Optimum annimmt), wobei beim G5 je die halbe Bandbreite fürs Lesen und Schrieben reserviert ist, beim Core die gesamte Bandbreite entweder fürs Lesen oder für Schreiben verwendet wird.
    Der PPC970 kann also gleichzeitig Lesen und Schreiben. Was im Anwendungsfall besser ist, wage ich nicht zu entscheiden.
  6. Der L2-Cache wird von beiden Kernen gemeinsam genutzt und kann im Falle eine Falles auch von einem Core alleine genutzt werden. Dies ist schon heute beim Yonah so, nicht aber beim Pentium D der DualCore-Variante des Pentium 4, die eine geteilten L2-Cache haben, der über den Front-Side-BusSB kommuniziert. Beim PPC 970 ist es wohl ähnlich wie beim Pentium 4, während beim Power 4 und 5 die L2-Caches von den gemeinsam sind.
    Welches L2-Cache-Design vorzuziehen ist, kommt wohl auf den Anwendungsfall an. Die Caches sind einer der Hauptstromverbraucher moderner CPUs. Bei Mobil-CPUs wäre daher ein getrennter Cache mit schneller Kommunikation zwischen den Caches vorteilhaft. AMD geht diesen Weg vom Turion bis zum Opteron.
    Kommt es aber mehr auf die Rechenleistung an (auch um Single-Thread-Leistung) ist ein gemeinsamer L2-Cache besser, da er flexibler ist. Die Anwendung, die mehr Cache braucht, bekommt sie auch. Ironischerweise wird es momentan genau andersherum eingesetzt (Mit Ausnahme der Power4/5 und des AMD Turion).
  7. Auch bei den Speicherzugriffen hat Intel sich was einfallen lassen. Auch Speicherzugriffe können Abhängigkeiten haben. Zum Beispiel eine Store auf einen noch zu berechnende Adresse und ein anschließender Load von einer bekannten Adresse. Pentium 4 und Pentium M warten bisher mit dem Load, bis der Store erledigt ist.
    Es hat sich aber bei Untersuchung am DEC-Alpha--Prozessor gezeigt (der noch mehr Intructions gleichzeitig in der Bearbeitung hat als alle hier diskutierten CPUs), dass dies nur in 3 % der Fälle nötig ist. Und beim Core dürfte der Prozentsatz noch kleiner ausfallen, da weniger Instruction gleichzeitig in der Bearbeitung sind. Daher wird der neue Core ähnlich wie bei der spekulativen Ausführung spekulatives Laden unterstützen und nur im Falle einer "Kollision" von vorne anfangen.
    Ich weiß nicht wie dies beim PPC970 oder Athlon64 gehandhabt wird. Beim G4 dürften solche Probleme wegen der kurzen Pipeline weniger in Gewicht fallen.
  8. Die Core-Architektur wird natürlich auch EMT64 unterstützen. Ob dies einen vergleichbaren Performancegewinn bringt wie bei AMD muss sich noch zeigen.
  9. Hyperthreading ist in der Core-Architktur bisher nicht vorgesehen, obwohl es sich wohl leicht in zukünftigen Version nachrüsten ließe.
    Auch bieten sich die vielen parallelen Ausführungseinheiten geradezu zum Symetric Multithreading an. IBM macht es ja auch so beim Power5.
  10. Wo Licht ist, ist auch Schatten. Eine der interessantesten Ideen des Pentium 4 gibt Intel leider auf: Den Trace-Cache. Die Idee, statt originaler Macro-Ops die dekodierten (und fusionierten) μOps zu cachen, schien mir eigentlich sehr überzeugende. Dadurch verkürzt sich die Pipeline, solange Code aus dem Tracecache bearbeitet wird. Aber offenbar war der Aufwand zu groß und/oder der Nutzen zu gering oder es gab Seiteneffekte die, die Performance verschlechterten, die auf den ersten Blick nicht zu erkennen sind.

Alles in allem sieht Intels neue Architektur sehr interessant aus. Zwar muss Intel noch zeigen, ob sie ihren Rückstand gerade im FPU-Bereich aufholen können, aber sonst wird es wohl für IBM, Freescale und auch AMD enger und sie müssen sich wohl etwas einfallen lassen, um dagegen halten zu können.
Allerdings sollte man Benchmarks von Prototypen von CPUs, die es in einem halben Jahr geben wird, gegen aktuelle CPUs sind allerdings mit Vorsicht zu geniesen. AMD wird bis zum zweiten Halbjahr 2006 sicher auch noch etwas nachlegen können, z.B. durch das verbesserte
Speicherinterface oder höhere Takte. 20 % Performanceplus sind so gesehen nicht gerade viel. Aber Intel konnte zumindest aufschließen und neue CPU-Architekturen brauchen in der Regel auch neue Compiler, die ihr Potenzial erst ausschöpfen.

Dieser Prozessor könnte also die Versprechen einlösen, die Steven Jobs bereits jetzt gibt und das ohne alle Benchmarktricks. Nachdem die CPU-Entwicklung in den letzten Jahren eher etwas langweilig geworden war (kaum echt neue Designs abgesehen vom Athlon64) wird es also wieder spannend.
Interessant wird auch IBMs Reaktion sein, insbesondere beim Power 6. Wird der Power6 nur eine weitere Evolutionstufe des Power4 (viel mehr ist der Power5 ja auch nicht) oder wagt IBM auch einen neuen großen Wurf?

Kommentare

Darstellungsoptionen

Wählen Sie hier Ihre bevorzugte Anzeigeart für Kommentare und klicken Sie auf „Einstellungen speichern“ um die Änderungen zu übernehmen.

Ausblick

Während Intel es sich leisten kann mehrere Prozessor-Linien zu finanzieren, tut sich IBM schwer. Der PowerPC sieht ziemlich tot aus, keine Pläne nach dem 970MP. Es gibt nur Cell oder Power.

Der Power 6 spielt in einer anderen Preis-Liga. Der Cell muss sein Konzept erst einmal unter Beweis stellen. Freescale krankt am Speicher-Interface für Desktops und am fehlenden 64-bit.

Wenn nicht P.A. Semi die Lücke füllt, seh ich mittelfristig keinen Desktop PowerPC Prozessor mehr, der gegen Intels Core antretten kann.

Bleibt wirklich die Hoffnung, das die Genialen Köpfe von P.A. Semi aus dem Erz PowerPC ein veritables Schwert schmieden, wie einst den Alpha, den PowerPC oder den Opteron. Nur, wer verbaut den PWRficient dann ich Desktops und Laptops? IBM?

Re: Ausblick

IBM ?

Nö. Die haben das Zeug gerade nach China an Lenovo verramscht.

Das wird knapp.
Gruss Frank

Re: Der Core, Intel großer Wurf?

Wer braucht da noch Itanium? :-)

Darstellungsoptionen

Wählen Sie hier Ihre bevorzugte Anzeigeart für Kommentare und klicken Sie auf „Einstellungen speichern“ um die Änderungen zu übernehmen.