Zum 3DCenter Forum
Inhalt




Pentium 4 - Leistungsfragen

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



   Schwäche: Unterauslastung

Vor der Verarbeitung müssen die im x86-Format vorliegenden Maschinenbefehle dekodiert werden. Die CPU zerlegt diese automatisch in mehrere "handliche", also sehr einfache Befehle. Diese werden von Intel "Micro-Ops" genannt, von AMD "Macro-Ops" - jeder Hersteller verwendet hier im übrigen seinen komplett eigenen Befehlssatz.

Diese Zerlegung hat den Grund, das die entstehenden Micro- oder Macro-Ops wesentlich kürzer und einfacher sind als die komplexen x86-Instruktionen und sich damit besser verwalten, verarbeiten und parallelisieren lassen. Diese Micro- und Macro-Ops werden zudem auch so angelegt, dass sie dann im gewöhnlichen innerhalb eines Taktzykluses von den eigentlichen Recheneinheiten abgearbeitet werden können. So werden die Vorgänge in der Pipeline für die Prozessoren-Designer wesentlich berechen- und steuerbarer, als wenn die Befehle unterschiedlich lange Ausführungszeiten hätten und demzufolge andauernd die Pipeline ins Stocken kommt, weil die Recheneinheiten noch nicht fertig gerechnet haben.

Ein Pentium 4 kann nach dieser Zerlegung im Idealfall pro Takt 4 einfache Integer-Befehle (z.B. Addieren), einen komplexen Integer-Befehl (z.B. Multiplizieren) sowie einen FPU-Befehl oder einen SSE2-Befehl ausführen. Hinzu kommen in diesem theoretischen Modell noch zwei Lade/Schreibe-Befehle auf Integer-Seite (AGU-Einheiten) und ein Lade/Schreibe-Befehl auf FPU-Seite (FStore-Einheit). Dies sind ergo im Idealfall 9 Befehle, welche pro Takt ausgeführt werden können.

Doch diese extreme Leistung steht nur auf dem Papier. Denn der TraceCache (Befehlscache) des Pentium 4 lässt maximal 3 Mikro-Ops pro Takt in die Pipelines (es ist egal wieviel der Decoder leistet, da dieser in der Pipeline vor dem TraceCache liegt). Und dies, obwohl wie gesagt im besten Falle bis zu 9 Befehle abarbeitbar wären! De facto sind damit die Recheneinheiten des Pentium 4 prinzipiell nie ausgelastet - obwohl eigentlich das Ziel jedes anderen Prozessordesigns die möglichst hohe Auslastung der Recheneinheiten war und ist.

Zwar kann der Athlon im Idealfall pro Takt auch nur 9 Macro-Ops verarbeiten, da er drei Integer-Einheiten, zwei FPU-Einheiten, drei AGU- und eine FStorce-Einheit besitzt. Aber im Gegensatz zum Pentium 4 existiert die Bremse TraceCache nicht beim Athlon, da seine Instruction Conrol Unit pro Takt 6 Instruktionen (3 "echte" und 3 zur Adress-Generierung bzw. zum Laden und Speichern) an die Recheneinheiten abgeben kann, womit diese wesentlich besser ausgelastet sind als jene des Pentium 4.

An dieser Stelle nahm Intel in jedem Fall eine bewusste Senkung der Leistung pro MHz vor. Schliesslich hätte man dem TraceCache des Pentium 4 auch ein Interface spendieren können, was bis zu 9 Micro-Ops pro Takt (oder auch mehr) in die Pipeline entlässt - technisch wäre dies wohl kein Problem. Warum also dieses künstliche Beschränkung auf nur 3 Micro-Ops pro Takt, welche einen Teil der Recheneinheiten immer ohne Arbeit lässt?

Im gewöhnlichen gehören die Recheneinheiten zu diesen Teilen des Siliziums, welches am wärmsten werden - zumindestens wenn sie ausgelastet sind :-). Wenn es nun gelingen würde, diese Recheneinheiten kühler zu halten, würde sich das ganze Silizium höher takten lassen, da der Rest des Siliziums aufgrund seiner geringeren Wärmeabgabe höhere Temperaturen respektive höhere Taktfrequenzen durchaus mitmachen würde (gilt für fast jedes Prozessoren-Design).

Soweit die theoretische Grundlage - aus dieser und dem Fall des TraceCaches mit einem Output von nur 3 Micro-Ops pro Takt schlussfolgern wir nun logischerweise, dass es das ausdrückliche Ziel von Intel war, die Recheneinheiten des Pentium 4 nicht auszulasten. Damit werden diese nicht mehr ganz so warm und somit kann das gesamte Silizium wiederum höher getaktet werden. Schlussendlich wurde hier direkt und wissentlich Pro-MHz-Leistung für höhere Taktfrequenzen geopfert.

Auch wenn dies erst einmal idiotisch klingen mag, muss man auch die andere Seite der Medaille betrachten: In der Praxis wäre eine CPU mit 2 FPUs und 1 GHz Taktfrequenz (= hohe Pro-MHz-Leistung, niedriger Takt) nicht so schnell wie eine CPU mit nur 1 FPU, dafür 2 GHz Taktfrequenz (= niedrige Pro-MHz-Leistung, hoher Takt). Intel nahm also bewusst den Weg über die höhere Geschwindigkeit anstatt über die höhere Intelligenz, weil dieser Weg angesichts heutigen Taktreserven letztlich derzeit effizienter und natürlich auch im Consumer-Markt um Dimensionen besser vermarktbar ist.

In diese Strategie spielt auch die lange 20-stufige Pipeline hinein. Öfters ist zu jener zu lesen, dass sie für die hohen Taktfrequenzen notwendig sei oder sich aus diese bedingen würde. Leider fehlt zu dieser Aussage regelmässig eine Erklärung. Prinzipiell sei erst einmal gesagt, dass die Länge der Pipeline eine fast irrelevante Grösse ist. Wenn man es denn bewerten wollte, dann lässt sich mit einer 20-stufigen Pipeline eher mehr als weniger gleichzeitig erledigen.

Doch die 20-stufige Pipeline des Pentium 4 arbeitet garantiert nicht mehr als die 10-stufige des Pentium III. Denn in der Realität hat Intel nichts anderes getan, als die einzelnen Stufen der Pipeline zu strecken. Für viele Stufen in der Pipeline des Pentium III hat der Pentium 4 gleich zwei Stufen - und benötigt damit für dieselbe Arbeit zwei Takte. Damit können einfachere Einheiten eingesetzt werden, wenn dieselbe Arbeit, die beim Pentium III in einem Takt in einer Einheit geleistet werden muss, nur von zwei Einheiten und damit in zwei Takten übernommen wird.

Diese einfacheren Einheiten werden damit natürlich auch nicht mehr so warm - womit sich der Pentium 4 wieder ein Stück höher takten lässt :-). So gesehen kann man sagen, dass die 20-stufige Pipeline auf jeden Fall höhere Taktfrequenzen ermöglicht. Eine Bedingung dafür ist sie allerdings nicht, sondern nur eine von mehreren Möglichkeiten zur Taktfrequenz-Steigerung.

Damit steht letztendlich fest: Der Pentium 4 hat ein nach thermischen Gesichtspunkten aufgebautes Design. Möglicherweise geht diese Ausrichtung des Prozessor-Designs nach thermischen Gesichtspunkten sogar noch wesentlich weiter und sind die Eingriffe der thermischen Designer in die Arbeit der mathematischen Designer noch tiefgreifender als an dieser Stelle vermutet. Leider lässt sich aufgrund der wenigen guten Informationen zu diesem Thema dato nichts weiteres spruchreifes hierzu sagen.



   Stärke: SSE2

Es bringt nichts, wenn Programmierer hin und wieder einmal ein paar SSE2-Befehle benutzen. Um den Pentium 4 in volle Fahrt zu bringen, müssen diese Befehle ständig verwendet werden. Wer als Computerspieler auf SSE2-Optimierungen wartet, wird denn auch relativ enttäuscht werden - ihm wird SSE2 nämlich ziemlich wenig bringen. Genau so, wie zwei FPU-Einheiten nicht immer Sinn machen, so ist auch SSE2 von den Gebrauchsmöglichkeiten her eingeschränkt. Einfach gesagt, ist die SSE2-Einheit eingeschränkter als zwei unabhängige FPU-Einheiten. Dafür ist SSE2 dann aber wieder deutlich schneller.

Mit den zwei FPU-Einheiten des Athlon lassen sich zwei unabhängige FPU-Operationen gleichzeitig ausführen. Mit der SSE2-Einheit des Pentium 4 lassen sich (in der Regel) vier FPU-Werte gleichzeitig bearbeiten - es muss sich aber um die gleiche Operation (gleicher Befehl) handeln. Beim Pentium 4 sind zudem FPU- und SSE2-Unit eine einzige Einheit. Dies schliesst wiederum eine gleichzeitige Verarbeitung von FPU- und SSE2-Befehlen aus.

Render-Software ist nun allerdings nur bedingt für SSE2 optimierbar. Denn hier stehen eine Reihe von Berechnungen an, deren Ergebnisse voneinander abhängig sind. Natürlich lässt sich trotzdem eine Optimierung auf die Pentium 4 Architektur vornehmen, das Ergebnis dessen wird aber relativ bescheiden ausfallen. Die grosse Stunde kommt für den Pentium 4 dann, wenn es um Medien-Daten geht.

Sind z.B. Audio-Daten zu konvertieren, Bilder zu bearbeiten oder gar Videos umzuwandeln, müssen für eine Masse an Daten die immer wieder gleichen Operationen durchgeführt werden. In diesem Fall ist die Pro-MHz-Leistung des Pentium 4 sehr gut, sofern die Software entsprechend optimiert wurde.

Der Nutzen beschränkt sich allerdings auf die genannten Spezialfälle. Abgesehen davon, dass nur bestimmte Anwendungen überhaupt profitieren könnten, hängt der Nutzen auch davon ab, ob sich die Entwickler die Mühe machen und eine gute Optimierung vornehmen. Wie schon gesagt bringt es gar nichts, die SSE2-Befehle hin und wieder einmal zu verwenden. Der Vorteil kann nur dann ausgespielt werden, wenn das Programm und der dahinter stehende Algorithmus sorgfältig für die SSE2 optimierte Pipeline angepasst wurden. Dann jedoch verweist der Pentium 4 in Verbindung mit seinen hohen Taktraten jede Konkurrenz auf die Plätze.






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

Shortcuts
nach oben