Alle Details zur AMD64-Architektur

02.06.2004 von Christian Vilsbeck
AMDs achte Prozessorgeneration 'Hammer' arbeitet mit 32- und 64-Bit-Betriebssystemen zusammen. Wir stellen Ihnen die Fakten zu den Interna der AMD64-Architektur des Athlon 64/FX und Opteron im Detail vor.

AMD beschreitet mit der AMD64-Technologie neue Wege, ohne alte Pfade zu verlassen. Die Hammer-Prozessoren basieren nicht auf einer komplett neuen Architektur wie Intels 64-Bit-CPUs der Itanium-Serie. 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. Seit den 80386-Prozessoren steht für Berechnungen beispielsweise statt des 16-Bit-AX-Registers auch das 32-Bit-EAX-Register zur Verfügung.

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

Bei der vormals x86-64 bezeichneten AMD64-Architektur ist eine Emulation dagegen nicht erforderlich - die 64-Bit-Erweiterung wird bei 32-Bit-Software einfach nicht genutzt.

Betriebsmodi des Hammer

Um problemlos mit 32- und 64-Bit-Software agieren zu können, beherrschen die AMD64-Prozessoren verschiedene Betriebsmodi:

Findet der Hammer aktuelle Betriebssysteme wie Windows XP mit 32-Bit-Kernel vor, so arbeitet die CPU im so genannten Legacy-Mode. Der Hammer verhält sich dabei wie ein normaler x86-Prozessor und ist voll kompatibel zu vorhandenen 16- und 32-Bit-Betriebssystemen und -Anwendungen. Die 64-Bit-Features der AMD64-Architektur liegen dann brach.

Steht dem Hammer dagegen ein 64-Bit-Betriebssystem zur Seite, schaltet die CPU in den Long Mode getauften Betriebsmodus. Der Long Mode der AMD64-Technologie beinhaltet zwei Untermodi: den 64-Bit-Mode und einen Compatibility Mode. 64-Bit-Anwendungen arbeiten im entsprechenden 64-Bit-Mode. Den Programmen steht somit auch der volle Adressraum mit einer Breite von 64 Bit zur Verfügung. Der Compatibility Mode der AMD64-Architektur erlaubt unter 64-Bit-Betriebssystemen eine binäre Kompatibilität mit vorhandenen 16- und 32-Bit-Anwendungen. Die Programme müssen nicht neu kompiliert werden. Den 64 Bit großen Adressraum des Betriebssystems können diese aber nicht nutzen, sie bleiben auf 4 GByte beschränkt.

Globales Kontrollbit

In welchem Betriebsmodus sich die Hammer-CPU befindet, wird über das globale Kontrollbit LMA (Long Mode Active) sowie über zwei weitere Flags angezeigt. Steht das LMA-Bit auf 0, verhält sich die Hammer-CPU wie ein normaler x86-Prozessor. Arbeitet der Prozessor im 64-Bit-Long-Mode, ist das Read-only-Bit LMA auf 1 gesetzt.

Um den Long Mode des Hammer zu aktivieren, muss das Betriebssystem das LME-Bit (Long Mode Enable) aus dem Extended Feature Enable Register EFER aktivieren. Hierzu sind von der Software folgende Schritte durchzuführen:

Die CPU befindet sich nun im 64 Bit breiten Long Mode und kann je nach Applikation in seinen zwei Untermodi operieren. Die beiden CPU-Zustände 64-Bit- und Compatibility Mode 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.

Neue Register

Wenn der Hammer im 64-Bit-Mode arbeitet, stehen dem Prozessor im Vergleich zum Legacy Mode folgende zusätzliche Features zur Verfügung:

Den 64 Bit breiten Adressraum sieht die AMD64-Architektur nur über eine segmentierte Adressierung vor. Die physikalische Adressbreite ist auf 52 Bit beschränkt. In der ersten Generation Opteron und Athlon 64 implementiert AMD aber nur einen 48 Bit breiten virtuellen Adressraum - die physikalische Adressbreite ist auf 40 Bit beschränkt. Die ersten AMD64-CPUs haben auf ein TByte Arbeitsspeicher Zugriff.

Anwendungen, die im Legacy oder Compatibility Mode laufen, stehen beim Hammer weiterhin nur die acht allgemeinen 32 Bit breiten Register EAX, EBX, ECX, EDX, EBP, ESI, EDI und ESP zur Verfügung. Arbeitet der Prozessor dagegen im 64-Bit-Mode, erweitert die AMD64-Architektur diese acht Register über den R-Präfix auf 64 Bit. Die verbreiterten Register erhalten die Bezeichnungen RAX bis RSP. Zusätzlich kann der Hammer im 64-Bit-Mode auf acht neue ebenfalls 64 Bit breite GPRs (General Purpose Register) R8 bis R15 zugreifen.

Für Fließkomma-Berechnungen wurden außerdem die acht 128 Bit breiten SSE-Register mit XMM8 bis XMM15 verdoppelt. Davon profitiert allerdings nur der 64-Bit-Mode. Die Kompatibilität zu Intels SSE2-Befehlssatz erlauben aber alle Betriebsmodi. AMD setzt beim Hammer erstmals die Multimedia-Erweiterung des Pentium 4 ein, der nur über acht XMM-Register verfügt.

Details zum Core

Die Hammer-Prozessoren basieren auf einem Core der achten Generation. AMD besitzt damit seit dem K7-Core des Athlon (aktuell als Barton) erstmals wieder eine neue Architektur. Allerdings stecken die Neuerungen im Detail, das Grundgerüst sieht dem Athlon-Flurplan immer noch ähnlich. Die offensichtlichste Innovation ist der im Prozessor implementierte Speicher-Controller.

Die komplette AMD64-Architektur lässt sich in fünf Funktionsblöcke aufteilen: Prozessor-Core, L1-Daten- und Befehls-Cache, L2-Cache, DDR-SDRAM-Controller sowie das HyperTransport-Interface. AMDs Hammer ist je nach Ausführung multiprozessorfähig und verfügt über eine entsprechende Controller-Logik. So erlaubt der Opteron in der 800er-Serie 8-Wege-Systeme. Die Desktop-Variante Athlon 64/FX arbeitet dagegen nur im Single-Betrieb.

Neun Ausführungseinheiten

Der AMD64-Core bietet neun Ausführungseinheiten für Integer- und Floating-Point-Operationen. Darin ist erstmals bei AMD-Prozessoren eine SSE2-kompatible Einheit enthalten. Gefüttert werden die Ausführungseinheiten nach dem Out-of-Order-Prinzip über drei unabhängige Befehls-Decoder-Pipes, die in den Schedulern enden. Drei davon können je acht Einträge puffern und bedienen die sechs Integer-Units. Diese bestehen aus drei ALUs und den drei Address Generation Units (AGU), die für die Load-/Store-Vorgänge vom und zum Cache verantwortlich zeichnen. Die drei FPU-Einheiten versorgt schließlich ein 36 Einträge fassender vierter Scheduler.

Das Hauptproblem bei modernen CPU-Architekturen mit vielen Ausführungseinheiten ist, diese mit einer hohen Auslastung zu betreiben und mit genügend Daten zu füttern. Demnach ist selbst beim Athlon die Auslastung der Units längst nicht ausgereizt. Intels Idee, die Ausführungseinheiten zu beschäftigen, heißt HyperThreading. Hier wird eine CPU wie zwei Prozessoren behandelt, und entsprechend werden zwei Threads parallel abgearbeitet. Dadurch sind die Ausführungseinheiten besser ausgelastet - eine angepasste Programmierung der Anwendungen vorausgesetzt.

Cache- und TLB-Tuning

Da AMD beim Hammer aber auch von der schnellsten x86-kompatiblen Architektur spricht, muss die höhere Performance anderen Quellen als einer erhöhten Unit-Zahl entspringen. Eine Möglichkeit wäre die Vergrößerung der Caches. Diese nutzt AMD aber nicht. Für den L1-Cache gibt der Hersteller eine Größe von je 64 KByte für Befehle und Daten an - unverändert zum Athlon. Der 16fach assoziative L2-Cache fasst je nach Modell 512 oder 1024 KByte. Die Athlon XPs mit Barton-Core setzen derzeit auf 512 KByte. Eine ECC-Überwachung der ersten und zweiten Cache-Stufe bieten alle AMD64-Varianten.

Weitaus tief schürfender sind beim Hammer die Änderungen, die schon im Vorfeld der Befehlsabarbeitung erfolgen. So hat AMD die TLBs einer Überarbeitung unterzogen. Je mehr Einträge der TLB fassen kann, desto seltener muss bei der Berechnung der physikalischen Adresse die Translation-Tabelle aus dem Arbeitsspeicher geladen werden. Dies spart Zeit, und bestimmte Befehle erfordern somit weniger Taktzyklen. Der L1-Daten- und Befehls-TLB des Hammer fasst je 40 Einträge und ist voll assoziativ ausgelegt. Beim Athlon XP kann nur der L1-Daten-TLB gleich viele Einträge speichern, für Befehle stehen lediglich 25 Einträge bereit. Die 4fach-assoziativen L2-TLBs können mit je 512 Einträgen beim Hammer doppelt so viel aufnehmen wie noch beim Athlon XP. Außerdem weisen die TLBs beim Hammer geringere Latenzzeiten auf als im K7-Core.

Flush- und Sprung-Tuning

Zusätzlich zu den größeren TLBs verfügt die AMD64-Architektur über einen 32 Einträge fassenden Flush-Filter. Dies erlaubt ein besseres Management der TLBs bei Task-Wechseln. Mehrere Threads können sich durch den Flush-Filter nun einen TLB teilen, ohne dass die Software dabei Einfluss nehmen muss. Normalerweise setzt der Prozessor bei Task-Wechseln jedes Mal die TLBs neu und stellt sie später wieder her - das kostet Rechenzeit.

Die Sprungvorhersage hat AMD beim Hammer ebenfalls verbessert. Besonders bei Anwendungen mit großem Speicherbedarf - den so genannten Large Workloads - soll der Prozessor eine höhere Performance bieten. Hierzu wurde der Global History Counter auf 16 K Einträge aufgestockt - gegenüber dem K7-Core des Athlon eine Vervierfachung. Eine bessere Sprungvorhersage braucht der Hammer-Core auch, denn er hat an Pipeline-Stufen zugelegt. Die Gefahr langer Pipelines sind falsche Sprungvorhersagen. Im ungünstigsten Fall muss die komplette Pipeline, also alle Funktionseinheiten, neu geladen werden. Dies kostet viele Takte und reduziert die Performance. Effektive "Branch Predictions" zählen bei modernen CPUs zu zentralen Performance-Bringern.

Gestreckte Pipeline

Die Pipeline einer CPU zu verlängern, ist ein beliebtes Mittel zur Realisierung höherer Taktfrequenzen. Intel verdoppelte beim Schritt vom Pentium III zum Pentium 4 die Tiefe der Pipeline auf 20 Stufen. Beim Prescott-Core setzt Intel sogar auf 31 Stufen. So extrem ging AMD nicht vor: Von vormals 10 Stufen beim Athlon kann der Hammer nun auf eine 12-stufige Pipeline bei Integer-Operationen zurückgreifen. Sind Fließkommaberechnungen in Arbeit, benötigt die AMD64-Architektur 17 Stufen.

Die 20 Prozent tiefere Pipeline des Hammer findet sich im Frontend wieder. AMD hat im Vergleich zum Athlon die Befehlshol- und Dekodierphase überarbeitet. Ziel der optimierten "Vorbereitungsphase" ist es, die Scheduler und somit die Ausführungseinheiten mit schneller aufeinander folgenden dekodierten Befehlen zu versorgen. Das soll unnötige Waitstates sowie unausgelastete Ausführungseinheiten reduzieren.

Die Optimierung beginnt beim Hammer bereits mit zwei statt nur einer Fetch-Stufe, die die x86-Befehle aus dem L1-Cache holen. Die folgende Pick-Stufe bereitet die Befehle dann für die ersten beiden von insgesamt drei Dekodierstufen auf. Ähnlich der Align-Stufe beim Athlon versucht der Hammer beim Pick-Vorgang so viele unabhängige Befehle wie möglich zu finden und vorsortiert an die Ausführungseinheiten zu senden. In den Dekodierstufen 1 und 2 sammelt die CPU Informationen, die für den weiteren Dekodiervorgang benötigt werden - beispielsweise direkter oder vektorbasierender Dekodierpfad. Für Letzteren ist zusätzlich Microcode aus dem Microcode-ROM (MROM) erforderlich. Die beiden Stufen sind mit der Early-Decode-Phase des Athlon vergleichbar.

Vor dem dritten Dekodierschritt bereitet eine Pack-Stufe die vorberechneten Informationen nochmals auf. Dann erfolgt die Umwandlung in MacroOPs. Die Scheduler verteilen schließlich die MacroOPs auf die Ausführungseinheiten. Die Daten landen in den letzten beiden Stufen 11 und 12 der Basis-Pipeline im L1-Daten-Cache.

Update: Speicher-Interface integriert

Zu den echten Neuerungen der AMD64-Architektur zählt neben der Registererweiterung auf 64 Bit der integrierte Memory-Controller. Der Vorteil der Integration liegt in den deutlich reduzierten Latenzzeiten bei Zugriffen auf den Speicher. Den Umweg über eine "klassische" externe Northbridge umgeht der Prozessor. Eine geringe Latenzzeit ist vor allem dann wichtig, wenn der Speicherzugriff meist auf verteilt liegenden Stellen erfolgt. Hier ist die reine Speicherbandbreite oft gar nicht der entscheidende Faktor. Anders hingegen, wenn die Daten zusammenhängend im Speicher liegen und die CPU im Burst-Modus große Mengen ausliest - hier zählt die Bandbreite.

AMD berücksichtigt mit dem Hammer beide Fälle. Neben der geringen Latenzzeit unterstützt der integrierte Memory-Controller beim Athlon 64/FX und Opteron DDR-SDRAM in den Varianten DDR200, DDR266, DDR333 und DDR400. Die Opterons bis zu den Modellen 146, 246 und 846 müssen sich mit maximal DDR333-SDRAM begnügen. Der Desktop-Variante Athlon 64 spendiert AMD in den "Low-End-Varianten" ein 72 Bit breites Speicher-Interface. Damit lassen sich bis zu vier GByte DDR-SDRAM inklusive Chipkill-ECC-Prüfung verwalten. In den Topmodellen des Athlon 64, der Highend-Desktop-CPU Athlon 64 FX sowie dem Serverprozessor Opteron sind zwei 72 Bit breite DDR-SDRAM-Kanäle realisiert. Mit insgesamt acht DIMMs (vier pro Kanal) lassen sich dann pro CPU acht GByte Speicher ansprechen.

Update: Skalierung der Speicherbandbreite

Der Opteron mit seinem Dual-Channel-Interface ermöglicht mit DDR400-SDRAM eine Speicher-Bandbreite von 5,96 GByte/s. 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. Dabei skaliert die Speicherbandbreite mit der Anzahl der Prozessoren. In einem 4-Wege-System stünde dann unter Verwendung von DDR400-DIMMs eine Bandbreite von 23,8 GByte/s zur Verfügung, so AMD. Es gibt jedoch zusätzliche Latenzzeiten, wenn beispielsweise die CPU 1 via HyperTransport-Verbindung auf den Speicher der CPU 2 zugreift.

Der in den Hammer-CPUs integrierte Memory-Controller kostet aber auch Flexibilität. Denn mit neuen Speichertechnologien wie DDR-II kann der Prozessor nichts anfangen. Allerdings soll die nächste Generation von AMD64-CPUs im Jahr 2005 mit dem Nachfolger von DDR-SDRAM zurechtkommen.

Update: Neues I/O-Konzept

Neuland betritt AMD mit den Hammer-CPUs beim Prozessorbus. Statt des üblichen parallelen FSB kommuniziert der Prozessor über eine HyperTransport-Schnittstelle. Das serielle Interface kann dabei mit einer variablen Bitbreite arbeiten. Beim Athlon 64/FX und Opteron legt AMD die Bitbreite auf 16 Bit pro Richtung aus. Damit ergibt sich bei einer Taktfrequenz von 800 MHz (1600 MHz per DDR) eine Datentransferrate von 2,98 GByte/s - in jede Richtung gleichzeitig. Dies ermöglicht eine Gesamtbandbreite von 5,96 GByte/s.

Bei AMD64-Prozessoren für den Socket 939 erhöhte AMD die Taktfrequenz des HyperTransport-Busses von 800 auf 1000 MHz. Entsprechend bieten diese CPUs eine Gesamtbandbreite von 7,45 GByte/s. Zum Vergleich: Der Pentium 4 mit 800 MHz FSB erlaubt ebenfalls einen maximalen Datendurchsatz von 5,96 GByte/s - aber nicht in beiden Richtungen gleichzeitig.

Dem Serverprozessoren der Opteron-800-Serie spendiert AMD gleich drei HyperTransport-Schnittstellen. In Multiprozessorsystemen koppelt HyperTransport die CPUs direkt miteinander. Ohne zusätzlichen Chipsatz lassen sich damit bis zu acht Opterons zusammenschalten. AMD nennt dieses Verfahren "Glueless Multiprocessing".

Über das HyperTransport-Interface läuft der gesamte Datenverkehr der Hammer-Prozessoren und des integrierten Memory Controller. Um beispielsweise AGP-Grafikkarten oder einer benachbarten CPU einen direkten Zugriff auf den Arbeitsspeicher zu gewähren, besitzt der Hammer eine Schaltzentrale XBAR. Diese Cross-Bar-Architektur leitet Datenströme vom HyperTransport-Interface über 64 Bit breite interne Busse direkt an die System Request Queue des Hammer-Core oder an den Memory Controller weiter. Für Befehle und Adressen stehen der XBAR zusätzlich 64 Bit breite Busse zur Verfügung.

Update: Sockelwechsel

Lange hat er gehalten, der 462 Pins zählende Socket A. Seit Anfang 2000 nehmen alle AMD-Prozessoren darin Platz. Doch mit Einführung der AMD64- Prozessoren sind die Tage des Socket A gezählt. Zwar laufen die Athlons (mit Barton-Core) parallel weiter, wie lange jedoch, steht noch nicht fest. Dem Athlon 64 mit Single-Channel-Speicher-Controller spendiert AMD den Socket 754. Die Server-/Workstation-Version Opteron und der Highend-Desktop-CPU Athlon 64 FX nehmen

in einem Socket 940 Platz. Die Namen der Sockel basieren jeweils auf der Anzahl der Pins der AMD64-Prozessoren.

Seit Juni 2004 bietet AMD mit dem Socket 939 einen gemeinsamen Steckplatz für den Athlon 64 FX und Athlon-64-Modelle mit Dual-Channel-Speicher-Interface an. Der neue Steckplatz ist für günstiger zu produzierende 4-Layer-Mainboards optimiert. Aktuelle Athlon-FX- und Opteron-Mainboards mit dem Socket 940 benötigen aufwendigere und somit teurere 6-Layer-Mainboards. Außerdem erfordern diese Plattformen Registered DIMMs als Arbeitsspeicher. Die gepufferten Module bieten eine höhere Betriebssicherheit, sind aber auch langsamer und teurer.

Die unterschiedliche Pinanzahl von 754 und 939/940 ist schnell erklärt: Der Opteron, Athlon 64 FX und Athlon 64 mit DualDDR weisen einen zweiten Speicherkanal sowie beim Opteron 200 und 800 zusätzliche HyperTransport-Schnittstellen auf, für die bis zu 186 Pins mehr benötigt werden. Die Fertigung in einem mPGA-Gehäuse ist allen Hammer-Prozessoren gemein.

Die Sockel für die Hammer-Familie sind auch technisch durch die höheren Frequenzen erforderlich. AMDs Socket A verkraftet FSB-Taktfrequenzen bis 400 MHz. Beim HyperTransport-Interface des Hammers treten aber Frequenzen von 1600 beziehungsweise 2000 MHz (jeweils per DDR) auf, die ein neues Sockel-Design erforderten.

Update: Fazit

Der größte Vorteil der Hammer-Prozessoren - gerade auch im Business-Umfeld - ist die Kompatibilität zu vorhandener Software. So gehen Investitionen nicht verloren. Die Migration zu 64-Bit-Applikationen kann langsam und nach Bedarf erfolgen. Während es von Linux bereits seit dem Debüt des Opteron im April 2003 64-Bit-Betriebssysteme gibt, lässt Microsoft noch auf sich warten. Nach derzeitigen Informationen soll Windows XP in der 64-Bit-Edition im vierten Quartal 2004 debütieren.

AMD folgt mit der AMD64-Architektur erstmals nicht der Intel-Linie. Gleichzeitig zeigte AMD, dass Neues nicht komplett neu sein muss. Der Core des Hammer unterscheidet sich von den Athlon-Prozessoren nur in Feinheiten - abgesehen vom integrierten Memory Controller und dem HyperTransport-Interface. AMD hat bei der AMD64-Architektur an entscheidenden Stellen gefeilt, um die Performance zu steigern und den Weg für höhere Taktfrequenzen zu ebnen. Von einer radikal neuen Architektur wie Intels NetBurst beim Pentium 4 hat AMD abgesehen. Intel hatte sodann auch mit Erklärungsnöten für die anfangs schwache Performance zu kämpfen.

Durch den Markterfolg sowie der Flexibilität der Opteron-Prozessoren gab Intel im Februar 2004 die Einführung einer "ähnlichen" 64-Bit-Befehlserweiterung bekannt. Intel verwendet hierfür den Begriff 64-Bit Extension Technology. Die zu AMDs 64-Bit-Erweiterung weitgehend kompatible Technologie soll in Intels nächster Xeon-Prozessor-Generation die gleiche Flexibilität bieten. Und diese geht noch im zweiten Quartal 2004 mit dem Nocona an den Start. (cvi)