Zum 3DCenter Forum
Inhalt




Pentium 4 - Leistungsfragen

24. April 2002 / von aths & Leonidas / Seite 1 von 3



   Einleitung

Es ist klar ersichtlich, dass Intel den Pentium 4 nur entworfen hat, um einen höheren Takt zu ermöglichen. Salopp gesagt arbeitet der Pentium 4 pro Zyklus einfach weniger als die Konkurrenz, um genau diesen höheren Takt erreichen zu können. Seither wird Intel vorgeworfen, ein ineffizientes Design zu fördern und den Kunden mit puren Gigahertz-Zahlen zu beeindrucken. Wir blicken nun ein wenig in die Pentium 4 Architektur, wobei als Vergleich der sehr beliebte Athlon-Prozessor dient.

Vorab eine kleine Begriffs-Legende - nur um sicher zu gehen, dass jeder Begriff in voller Schönheit bekannt ist:

  • ALU = arithmetic logical unit = Integer-Einheit = Recheneinheit, welche für einfache Standard-Befehle eingesetzt wird, wie sie vorwiegend von Windows und Office-Programmen eingesetzt werden
     
  • FPU = floating point unit = Fliesskomma-Einheit = Recheneinheit, welche für komplizierte Befehle eingesetzt wird, wie sie in wissenschaftlichen und 3D-Programmen vorwiegend eingesetzt werden
     
  • AGU (Load AGU, Store AGU) = adress generation unit = Abart einer Integer-Recheneinheit, welche sich um die Generierung von Speicheradressen sowie um das Lesen und Speichern kümmert und damit kaum Performance-relevant ist = ergo keine "echte" Integer-Einheit, aber immer noch eine Recheneinheit
     
  • FStore (FPStore) & FMove (FPMove) = verschiedene Bezeichnungen für eine Abart einer FPU-Recheneinheit, welche sich um das Lesen und Speichern kümmert und damit kaum Performance-relevant ist = ergo keine "echte" FPU-Einheit, aber immer noch eine Recheneinheit
     
  • x86-Befehl = Maschinenbefehl = jene Befehle, in welchen auf x86-kompatiblen Prozessoren lauffähige Programme geschrieben (oder kompiliert) werden
     
  • Decoder = der Decoder setzt die ankommenden x86-Befehle in kleinere und einfachere Befehle um, bei Intel Micro-Ops und bei AMD Macro-Ops genannt - diese Micro- und Macro-Ops werden so angelegt, dass sie im gewöhnlichen in einem Taktzyklus von den Recheneinheiten verarbeitet werden können
     
  • Pipeline = versinnbildlicht den logischen Weg eines Befehls vom Lade-Vorgang über die Decodierung und Ausführung bis zum Endlade-Vorgang

Nicht zu vergessen die beiden Blockdiagramme zum Pentium 4 und zum Athlon, auch wenn diese - wie nachfolgend ausgeführt - nicht wirklich viel zur Performance aussagen können:

Blockdiagramm des Pentium 4   Blockdiagramm des Athlon
(Klicken zum Vergrössern)


   Schwäche: Rechenkraft

Diese Überschrift ist eigentlich ungenau. Gemeint sind nur Berechnungen mit "floating point"-Zahlen, also z.B. für wissenschaftliche und 3D-Berechnungen. Kurz, die sogenannte FPU-Leistung. Läuft ein Programm, welches (fast) nur FPU-Rechnungen ausführt, so ist die Pro-MHz-Leistung auf Athlon-Prozessoren theoretisch doppelt so hoch wie auf Pentium 4 Prozessoren. Denn die Athlon-CPUs verfügen über zwei echte FPU-Ausführungseinheiten, der Pentium 4 hat nur eine davon.

Beide Prozessoren besitzen zwar noch jeweils eine weitere FPU-Einheit - die FStore-Einheit. Diese kümmert sich jedoch ausschliesslich um weitestgehend Performance-unkritische Lade- und Speicher-Befehle. Deshalb braucht die FStore-Einheit auch aus Performance-Sicht nicht weiter beachtet werden. Das gleiche gilt im übrigen im Integer-Bereich für die AGU-Einheiten, diese sind auch nur zum Laden und Speichern vorhanden und damit ebenfalls aus Performance-Sicht nicht relevant.

Wie wirkt sich nun der Unterschied in der Hardware in der Praxis aus? Selbst relativ stark FPU-lastige Programme laufen auf CPUs, welche gleich zwei FPU-Units besitzen, in der Praxis vielleicht bis nur zu 30 bis 40 Prozent schneller. Also nicht 100 Prozent schneller, wie im theoretischen Idealfall. Woran liegt das?

Alle modernen Prozessoren können pro Takt mehr als eine Operation ausführen. Denn sie verfügen über Pipelines und mehrere Ausführungseinheiten. Das Pipeline-Konzept entstammt dabei sogar schon dem 486er Prozessor, mehrere Ausführungseinheiten gibt es seit dem Pentium-Prozessor. Ein Athlon kann pro Takt bis zu zwei elementare FPU-Operationen gleichzeitig bearbeiten - ein Pentium 4 lediglich eine. Allerdings kommt es aufgrund der Programmstruktur nicht immer vor, dass sich die beiden FPU-Einheiten des Athlon gleichzeitig nutzen lassen. Unter Umständen sind zunächst einmal Integer-Befehle abzuarbeiten. Daraus lässt sich eine interessante Schlussfolgerung ziehen:

Die Verdoppelung der Ausführungseinheiten ergibt also keine direkte Verdopplung der Leistung. Dieser Schluss gilt natürlich nur für typische Praxis-Anwendungen. Es liessen sich problemlos hochtheoretische Benchmarks schreiben, in denen alle Ausführungseinheiten komplett ausgelastet werden können - womit unsere Forderung nach ausschliesslichem Einsatz von Praxis-Benchmarks wieder einmal untermauert wird.

Zudem spielt hier auch die Gleichmässigkeit der ankommenden Befehle eine Rolle. Die beiden FPU-Einheiten des Athlon-Prozessors unterscheiden sich nämlich: Nur dann, wenn Multiplikation und Addition gleichermaßen und hintereinander vorkommen, verdoppelt sich die Leistung. Desweiteren benötigen gleiche Operationen auf unterschiedlichen CPUs oft unterschiedlich viele Zyklen.

Kurz, von Blockschaltbildern auf die theoretische Leistung zu schliessen, wie wir es oben getan haben, ist sehr ungenau. Trotzdem lassen die zwei echten FPU-Einheiten des Athlon den Schluss zu, dass dieser gegenüber der einen echten FPU-Einheit des Pentium 4 bei sehr FPU-lastigen Anwendungen im Vorteil sein muss - wenn auch nicht um den Faktor 2.






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Weiter / Next

Shortcuts
nach oben