MPF: AMDs 64-Bit-Hammer im Detail

16.10.2001 von Christian Vilsbeck
AMD hat auf dem MPF 2001 erstmals Details zum 64-Bit-Prozessor Hammer bekannt gegeben. Die x86-64-Architektur ist voll 32-Bit-kompatibel, beherrscht SSE2 und verfügt über eine integrierte Northbridge.

Bei AMDs Hammer mit x86-64-Technologie handelt es sich nicht um eine komplett neue Architektur wie bei Intels Itanium mit IA-64-Technologie. Vereinfacht ausgedrückt erweitert AMD beim Hammer die vorhandenen Register auf eine Breite von 64 Bit. Damit geht das Unternehmen den Weg, den Intel beim Übergang vom 286er zum 386er vollzogen hat. Hier wird für Berechnungen beispielsweise statt des 16-Bit-AX-Registers das 32-Bit-EAX-Register genutzt.

Durch die Erweiterung der vorhandenen IA-32-Technologie will AMD sicherstellen, dass die x86-64-CPUs sowohl beim Betrieb mit einem 32-Bit-Betriebssystem als auch im 64-Bit-Mode weiterhin den aktuellen 16- und 32-Bit-Code ohne Performance-Verlust ausführen können. Die IA-64-Architektur von Intels Itanium kann "alte" Anwendungen dagegen nur mit einer aufwendigen Hardware-Emulation abarbeiten: Dabei werden x86-Register auf die IA-64-Register abgebildet und über eine Kontroll-Logik in einen IA-64-Datenstrom umgewandelt. Dieser Vorgang kostet Zeit und geht zu Lasten der Performance.

Bei AMDs x86-64-Architektur ist eine Emulation dagegen nicht notwendig - die 64-Bit-Erweiterung wird einfach nicht genutzt. Laut AMD soll der Hammer dadurch auch beim Betrieb mit 32-Bit-Software der bis dato schnellste x86-Prozessor werden.

Details zum Core

Die Hammer-Prozessoren basieren auf einem Core der achten Generation. AMD führt damit seit dem K7-Core (aktuell als Palomino-Core) des Athlon erstmals wieder eine neue Architektur ein. Die Hammer-Architektur setzt dabei auf hohe Integration und verfügt über eine Northbridge.

Die komplette Architektur des Hammer lässt sich in fünf Funktionsblöcke aufteilen: Prozessor-Core, L1-Daten- und Befehls-Cache, L2-Cache, DDR-Memory-Controller sowie das HyperTransport-Interface. AMDs Hammer ist zudem multiprozessorfähig und verfügt über eine entsprechende Controller-Logik.

Der Hammer-Core bietet neun Ausführungseinheiten für Integer- und Floating-Point-Operationen. Darin ist eine SSE2-kompatible Einheit enthalten. Gefüttert werden die Ausführungseinheiten über drei unabhängige Befehlsdecoder-Pipes, die in den Schedulern enden.

Drei davon können je acht Einträge puffern und bedienen die sechs Integer-Units. Die drei Fließkomma-Einheiten versorgt ein 36 Einträge fassender vierter Scheduler.

Pipeline mit 32 Stufen

Beim Hammer setzt AMD auf eine mit 32 Stufen sehr tief ausgeführte Pipeline, in der Cache- und Speicherzugriffe enthalten sind. Die Basis-Pipeline für die Befehlsdurchführung ist dabei zwölf Stufen tief. Insgesamt lässt sich die Hammer-Pipeline in vier Abschnitte mit den angegebenen Funktionen unterteilen:

Die ersten zwölf Pipeline-Stufen führt der Hammer innerhalb einer Nanosekunde aus. Diese Zeitangabe basiert auf einer CPU-Taktfrequenz von 2 GHz. Genaue Angaben zu den Taktfrequenzen der ersten Hammer-Prozessoren machte AMD jedoch nicht. Nach den Timing-Angaben zu schließen kann man aber von einem Takt von 2 GHz ausgehen.

Für den L1-Cache gibt AMD eine Größe von je 64 KByte für Befehle und Daten an. Der 16fach assoziative L2-Cache kann bis zu 1 MByte groß sein.

Großzügig sind die TLBs ausgefallen: Der L1-Daten- und Befehls-TLB fasst je 40 Einträge und ist voll assoziativ ausgelegt. Die 4fach-assoziativen L2-TLBs können je 512 Einträge aufnehmen.

Integriertes Speicher-Interface

AMD hat dem Hammer mit seiner Northbridge-Funktionalität einen integrierten Memory-Controller spendiert. Der Vorteil der Integration sind die geringeren Latenzzeiten bei Zugriffen auf Speicher, da der Umweg über eine "klassische" externe Northbridge umgangen wird. Durch den integrierten Memory-Controller steigt in Multiprozessor-Systemen auch der maximale Speicherausbau, weil jede CPU einen eigenen lokalen Speicher ansteuert. Untereinander tauschen die CPUs Daten via HyperTransport aus.

Der Memory-Controller des Hammer unterstützt ausschließlich DDR-SDRAM auf PC200-, PC266- sowie den bereits verfügbaren PC333-Modulen. Dabei können die DIMMs ungepuffert oder registered sein.

Das Interface des Memory-Controller bietet eine Datenbreite von 64 oder 128 Bit. Beim 128-Bit-Interface lassen sich bis zu acht registered DIMMs ohne zusätzliche Hardware direkt ansteuern. Support von Chipkill ECC ist vorhanden.

Betriebsmodi des Hammer

Die x86-64-Architektur von AMDs Hammer erweitert den x86-Standard um einen Long Mode getauften Modus. Über das globale Kontroll-Bit LMA (Long Mode Active) wird festgelegt, ob der Prozessor im 64-Bit-Modus arbeiten soll. Steht das LMA-Bit auf 0, verhält sich die Hammer-CPU wie ein normaler x86-Prozessor. Die CPU befindet sich dann im so genannten Legacy Mode und ist voll kompatibel zu vorhandenen 16- und 32-Bit-Betriebssystemen und -Anwendungen. Die 64-Bit-Features des Hammer sind komplett deaktiviert.

Der Long Mode der x86-64-Technologie (LMA = 1) beinhaltet zwei Untermodi: den 64-Bit-Mode und einen Compatibility Mode. Diese beiden Prozessorzustände werden über zwei weitere Flags gewählt: Der CS-Descriptor legt fest, ob Anwendungen in der 64-Bit-Umgebung im Compatibility Mode mit 16 oder 32 Bit laufen oder den 64-Bit-Mode nutzen.

Im 64-Bit-Mode bietet der Hammer folgende neue Features:

Beim Hammer hat AMD die Zahl der allgemeinen Register (GPRs) verdoppelt. Für 64-Bit-Berechnungen stehen die über das R-Präfix erweiterten ersten acht Register (RAX bis RSP) sowie die acht neuen Register R8 bis R15 zur Verfügung. Für Fließkomma-Berechnungen wurden außerdem die 128 Bit breiten SSE-Register mit XMM8 bis XMM15 verdoppelt. Diese sind nun SSE2-kompatibel.

Der Compatibility Mode des Hammer-Prozessors erlaubt unter 64-Bit-Betriebssystemen eine binäre Kompatibilität mit vorhandenen 16- und 32-Bit-Anwendungen. Die Programme müssen somit nicht neu kompiliert werden. Den 64-Bit großen Adressraum des Betriebssystems können diese Anwendungen aber nicht nutzen, sie bleiben auf 4 GByte beschränkt. Der Compatibility Mode wird dabei wie der 64-Bit-Mode vom Betriebssystem aktiviert.

HyperTransport-Interface

Bei HyperTransport handelt es sich um eine High-Speed-Verbindung für integrierte Schaltungen. Die HyperTransport-Technologie ist skalierbar und universell ausgelegt, um die Zahl unterschiedlicher Bussysteme innerhalb eines Systems zu verringern. Dabei kann AMDs neuer Bus I/O-Bausteine verbinden oder als Bussystem zwischen den CPUs eines Multiprozessorsystems dienen. Der Hammer-Prozessor verfügt über ein HyperTransport-Interface.

HyperTransport ist eine undirektionale Punkt-zu-Punkt-Verbindung. Für jede Datenrichtung gibt es somit eigene Signalleitungen. Die Datenbreite von HyperTransport ist dabei variabel: Sie kann in beiden Richtungen jeweils 2, 4, 8, 16 oder 32 Bit betragen. Verschickt werden die Daten paketweise mit einer Größe von 4 bis 64 Bytes.

Die HyperTransport-Technologie basiert auf einem differenziellen Bussystem, wie es auch LVD-SCSI (Ultra80, Ultra160 und Ultra320) verwendet. Somit werden für jedes Bit zwei Leitungen benötigt, die jeweils das Signal und das inverse Signal transportieren. Der Vorteil dieser Technik: Für die Datenübertragung genügen geringe Signalpegel. Beim HyperTransport-Bus sind pro Bit vier Daten-Pins notwendig, um das Signal in beiden Richtungen zu übertragen. HyperTransport kommt in zwei Ausführungen als I/O-Verbindung HTIO und mit der Bezeichnung HT als Bussystem zwischen Prozessoren.

Bei einem Takt von 400 MHz kann HyperTransport I/O 800 MBit/s pro Pin jeweils in beiden Richtungen übertragen. Die Variante für den CPU-Connect erlaubt Datenübertragungsraten von 1,6 GBit/s pro Pin. Ein 32 Bit breiter HyperTransport-CPU-Bus erreicht damit 6,4 GByte/s in jede Richtung. Bei dieser Busbreite sind dann allerdings schon 128 Daten-Pins erforderlich.

Software & Ausblick

Um die 64-Bit-Architektur des Hammer zu nutzen, bedarf es angepasster Software. AMD gibt für x86-64-kompatible Software eine Erhöhung des Code-Umfangs von unter zehn Prozent an. Der erhöhte Speicherbedarf der Software ist dabei hauptsächlich auf die Register-Präfixe und die mit 64 Bit doppelt so großen Pointer zurückzuführen. Die Anpassung von Compilern gestaltet sich nach Aussage von AMD aber sehr einfach.

Durch die Unterstützung vorhandener 16- und 32-Bit-Betriebssysteme ist der Umstieg auf AMDs 64-Bit-Prozessor unkritisch. Interessanter sind allerdings auf x86-64-Technologie angepasste 64-Bit-Betriebssysteme. Bislang gibt es dafür nur aus der Linux-Gemeinde offizielle Zusagen für die volle Unterstützung des Hammer. Bei den Compilern für x86-64-Software ist zurzeit nur GNU-C offiziell angekündigt.

Zu weiteren Betriebssystemen, Compilern oder gar Anwendungen mit x86-64-Unterstützung gibt sich AMD bedeckt. Auch ein Zeitplan für den Launch des ersten Hammer-Prozessors wurde noch nicht bekannt gegeben. Ende 2001 sollen aber bereits erste Samples verfügbar sein. Die Serienproduktion wird wohl bis Mitte 2002 auf sich warten lassen. (cvi)