Intel Pentium 4 2,2 GHz und AthlonXP 2000+ im Test: Der Kampf der Titanen

 4/24
Frank Hüber
22 Kommentare

Advanced Dynamic Execution

Um falsche Vorhersagen bei der Bearbeitung der nächsten Instruktionen möglichst nicht auftreten zu lassen, hat Intel der 20 stufigen Pipeline einige erweiterte Features zur Seite gestellt. All diese Verbesserungen wurden in der "Advanced Dynamic Execution"-Engine zusammengefasst. Sie soll verhindern, dass die Pipeline durch fehlende Instruktionen oder vom Prozessor falsch vorhergesagte Verzweigungen der Programme ins Stocken gerät, was den Pentium 4 enorm ausbremsen würde. Dabei hat Intel im Vergleich zu früher vor allem den Algorithmus der Sprungvorhersage verbessert und den "Branch Target Buffer" vergrößert. In dem "Branch Target Buffer" werden die abgearbeiteten Sprungbefehle gespeichert und können so später erneut vom Prozessor angesteuert werden. Der Buffer wurde beim Pentium 4 auf 4 KB aufgestockt. Der Pentium III besaß zum Vergleich nur 512 Byte "Branch Target Buffer". Aufgrund der längeren Pipeline ist eine Erhöhung des Buffers aber unumgänglich gewesen. Die Vorhersage soll so um ein Drittel gegenüber dem Pentium III verbessert worden sein. Messen lassen sich diese Werte für uns natürlich nicht, so dass wir hier auf die Angaben von Intel angewiesen sind und man sie vielleicht mit etwas Vorsicht genießen sollte. Alles in allem müsste der Pentium 4 insgesamt aber mit einer 95%igen Wahrscheinlichkeit eine richtige Vorhersage treffen.

Trace Cache

Einige von euch werden sich bei unserem Überblick über die Prozessoren sicher schon über die Angaben beim L1-Cache gewundert haben. Nun wollen wir auch hier Licht ins Dunkel bringen.

Der Pentium 4 setzt nicht wie seine Vorgänger und die CPUs der Konkurrenz auf einen geteilten L1-Cache, der sowohl die Daten als auch die Instruktionen speichert, sondern im L1-Cache werden nur noch die Daten gespeichert, aber nicht mehr die Instruktionen. Für die Befehle steht nun ausschließlich der Trace-Cache zur Verfügung.

Um den Trace-Cache zu verstehen, muss man zuerst Kenntnisse über die Arbeitsweise eines Prozessors haben. Bisher war es üblich, dass die Befehle im dafür vorgesehenen Bereich des L1-Caches gespeichert werden. Doch heutige Prozessoren rechnen nicht mehr direkt mit den alten x86-Befehlen, nehmen sie aber trotzdem an, um die Softwarekompatibilität zu gewährleisten. Im weiteren Verlauf müssen diese Befehle erst dekodiert werden, gespeichert bleiben aber nur die x86-Befehle. Und genau hier setzt der Trace-Cache an. Er speichert eben nicht mehr die x86-Befehle, sondern gleich die dekodierten (so genannten) Mikro-Operations (Mikro OPs). Dies hat natürlich dann einen enormen Vorteil, wenn immer wieder dieselben Befehle verwendet werden. Da die dekodierten MikroOps bisher nicht gespeichert wurden, sondern lediglich die x86-Befehle, mussten diese immer wieder in MikroOPs dekodiert werden, sollten sie noch einmal benutzt werden. Der Pentium 4 kann hier direkt auf die schon dekodierten x86-Befehle, also die MikroOPs, zurückgreifen und erspart sich somit den zeitraubenden Weg der erneuten Dekodierung.

Leider gibt Intel die Größe des Trace-Cache nicht mehr in Kbyte an, sondern nur noch in maximal speicherbaren MikroOPs, was eigentlich auch die sinnvollere aber schwerer zu vergleichende Methode ist. Beim Pentium 4 können 12.000 MikroOPs im Trace-Cache gespeichert werden, die vorher dekodiert wurden.

Rapid Execution Engine

Auch bei den ALUs (Arithmetic Logic Units) zur Berechnung einfacher Integer geht Intel einen neuen Weg. Insgesamt besitzt der Pentium drei ALU-Einheiten, jedoch handelt es sich nur bei einer davon um eine herkömmliche. Die zwei anderen arbeiten mit dem doppelten CPU-Takt. Bei einem Pentium 4 mit 2.2 GHz arbeiten demnach zwei der drei ALU-Einheiten mit 4.4 GHz. Dieser doppelte Rechentakt hat natürlich zwei signifikante Verbesserungen: Zum einen wird die Zeit einer Berechnung an sich und zum anderen wird die ALU-Latenz-Zeit deutlich gesenkt. Hierdurch befindet sich die Annahmezeit der neuen Befehle schon bei einem Pentium 4 mit 1,4 GHz unter der 0,4ns Grenze. Ein Pentium III mit 1 GHz braucht hierfür noch 1ns.

Der Pentium 4 sollte sich somit in der Integer-Berechnung deutlich von seinen Konkurrenten absetzen, wenn die auf dem Papier so schön zu lesenden Neuerungen denn auch alle so funktionieren, wie sie es sollten. Eine Auswirkung auf die FPU-Leistung (MMX, SSE) des Pentium 4 haben die zwei mit doppeltem CPU-Takt laufenden ALUs natürlich nicht, womit wir gleich beim nächsten Thema angelangt wären: SSE2.