Auf Tuchfühlung mit dem Pentium 4 - eine Reminiszenz zum 20. Jahrestag

Super/Hyper-Pipeline

Inhaltsverzeichnis

Mit solch mickrigen Taktraten sollte sich Hintons Design nicht begnügen, sondern einen großen Sprung nach vorne machen. So musste er nahezu zwangsläufig eine sogenannte Superpipeline wählen. Denn es gab damals eine simple Faustformel, die den Zusammenhang zwischen Fertigungstechnologie, Takt und Verzögerungszeit pro Pipelinestufe physikalisch vorgab. Die Verzögerungszeit wird dabei in Gatterlaufzeiten berechnet, mit Gattern die am Ausgang vier weitere Gatter betreiben können (Fanout 4, kurz FO4).

#F04=1/(0,4*Takt [GHz]*Technologie [µm]).

(Diese einfache Formel galt später so unterhalb von 65 nm übrigens nicht mehr, als sich die Technologiebezeichnungen weg von den physikalischen Parametern wie Gate-Länge entfernten.)

Die Formel ergab für den Willamette, wenn er als Zielvorgabe mit einem 180-nm-Prozess 2 GHz fahren soll, dass er nur Stufen mit 8 oder gar 7FO4 haben durfte. Und mit nur 7 Gatterlaufzeiten pro Stufe braucht man dann derer viele, um all die Prozessoraufgaben zu erfüllen. So kam der Pentium 4 mit seiner Superpipeline auf 20 Stufen, doppelt so viele wie bei den Vorgängern mit P6-Design. Bei späteren Prescott verlängerte Intel die Pipeline gar auf 31 Stufen.

Ein Jahr nach Einführung des Pentium 4 stellte Chefarchitekt Glenn Hinton das Hyper-Threading auf dem Microprocessor Forum 2001 vor

(Bild: Andreas Stiller)

Doch Hinton beschränkte sich nicht auf eine normale Superpipeline, sondern baute für die ALU eine Art Hyperpipeline mit doppelten Takt (Double pumped ALU). Wie man das mit den Stufen dann hinkriegt, ist schon ein kleines Wunder. Es ist ohnehin schon ein Kunstwerk, solch kurze Stufenlängen wie 7FO4 hinzubekommen, zumal ja meist noch Zwischenspeicher zwischen den Stufen nötig sind. Dummerweise steigt unter anderem deshalb der Energiebedarf bei kürzeren Stufen kräftig an.

IBM hatte später beim Cell-Prozessor viel mehr Auskunft über das Design gegeben als jemals Intel oder AMD. IBM hat genau vorgerechnet, wie sich etwa verschiedene Stufenlängen auf Performance und Energieeffizienz auswirken und kam für den Cell auf den besten Kompromiss bei 11FO4 .(auch der AMD Athlon hatte übrigens 11 FO4....).

eine typische Pipeline-Stufe mit Zwischenspeichern an Ein- und Ausgängen, dann hat man bei 11F04 noch 5 bis 8 Gatterlaufzeiten. Doch je kürzer die Stufe, desto höher wird der Energieverbrauch

(Bild: IBM)

Das Hinton-Team brachte aber unter dem Namen Netburst noch viele weitere Architekturverbesserungen ein, die nicht wie später bei Intel öfter, nur aufgebauschte Buzzwords waren, sondern tatsächlich echte Neuerungen. Dazu gehört der mit Zweifach-, später dann mit Vierfach-Datenrate (quad-pumped) fahrenden Bus und insbesondere der Execution Trace Cache, der bereist übersetzte Mikrobefehle (µOps) abspeichert und zwar in "Traces ", also in der Reihenfolge ihrer Ausführung, die ja zwischen den Verzweigungen konstant sind. Transmeta hatte im Translation Cache ihres Crusoe-Prozessors etwas Ähnliches gemacht, konnte die Traces zur Laufzeit sogar noch optimieren.

Heutzutage haben die x86-Prozessoren ebenfalls µOp-Caches, die allerdings keine Traces verfolgen sondern eher traditionellen Caches ähneln.

Der Pentium 4 brach völlig mit der P6-Architektur, brachte jede Menge neue Raffinessen

(Bild: Intel)

Was man damals noch nicht wusste: Im Willamette waren in seinen 42 Millionen Transistoren bereits insgeheim weitere bahnbrechende Architekturverbesserungen testweise eingebaut - zumindest Teile davon. Das waren Hyper-Threading und die 64-Bit-Erweiterung Yamhill.

Später wurde aus letzterem Clackamas und dann, als Intel AMDs 64-Bit-Architektur offiziell übernahm, hieß es EM64t. Geheime Yamhill-Unterlagen konnte ich später mal einsehen, ja, das sah noch ein bisschen anders als AMDs Longmode-Architektur, wurde vor allem auch ganz anders im Opcode-Raum eingebunden. Clackamas war dann aber schon der Codename für die AMD-kompatible Fassung.

Das Hyper-Threading stellte Glenn Hinton dann auf dem Microprocessor Forum 2001 offiziell vor, es kam mit dem Pentium 4-Xeon Prestonia zum Jahresanfang 2002 und im Herbst 2002 folgte für Desktops-PCs die Freischaltung für neue Northwood-Versionen, beides Prozessoren in 130-nm-Technik. EMT64 wurde mit der 90-nm-Xeon-Version Nocona im Sommer 2004 eingeführt und später dann auch im Prescott.