2in1: Pentium 4 Hyper-Threading Benchmarks

Pipelines und Fließbandarbeiter

Folgendes Analogon soll die Funktionsweise von Hyper-Threading in Kürze veranschaulichen und als Grundlage der folgenden Analysen dienen. Eine detaillierte technische Beschreibung lesen Sie in unserem Beitrag Hyper-Threading im Detail

Die Abarbeitung eines Befehls geschieht innerhalb einer CPU in mehreren Teilschritten. So muss die CPU vor der eigentlichen "Berechnung" beispielsweise die betroffenen Daten aus dem Speicher anfordern oder bei indirekter Adressierung die Speicherorte der beteiligten Operanden ermitteln. Wie bei einem Fließband in der industriellen Fertigung durchlaufen die Befehle dafür verschiedene Stationen, so genannte Pipeline-Stufen. Intels Pentium 4 enthält eine Pipeline mit 20 Stufen, an denen im Idealfall parallel an den Befehlen gearbeitet wird.

Im Gegensatz zur gut organisierten industriellen Fertigung stockt jedoch die CPU-Pipeline ständig. Beispielsweise ist erst nach der kompletten Abarbeitung einer Fallunterscheidung sicher geklärt, an welcher Stelle im Code das Programm weiter geht. Spekulatives Vorarbeiten und Sprungvorhersagen sorgen zwar in vielen Fällen für eine Beschäftigung der Pipeline-Stufen. Doch trotz aller Optimierungen sind die einzelnen Pipeline-Stufen beim Pentium 4 laut Intel nur zu 35 Prozent ausgelastet.

Statt wie bislang zu versuchen, die Pipeline besser zu organisieren, geht Intels Hyper-Threading einen vollkommen neuen Weg: Die schlecht ausgelasteten Stufen sind zwei unabhängigen Pipelines zugeordnet, nach außen wirkt die eine CPU wie zwei.