AMD enthüllt x86-64-Architektur Sledgehammer

AMDs 64-Bit-Prozessor Sledgehammer überrascht mit Intels Streaming SIMD Extension (SSE).

In Pocket speichern vorlesen Druckansicht 176 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Andreas Stiller

Mit der "AMD x86-64 Architecture Programmers Overview" gibt AMD erstmals einen tieferen Einblick in den logischen Aufbau und die Instruktionen des für nächstes Jahr geplanten 64-Prozessors mit Codenamen Sledgehammer. Überrascht hat dabei vor allem, dass die hauseigene Multimedia-Entwicklung 3Dnow! in der Dokumentation mit keiner Silbe erwähnt wird. Auch von der auf dem Microprocessor Forum 99 von Fred Weber angekündigten neuen Technical Floating Point Unit (TFP) als einer so genannten 3-Operanden-Maschine (wie etwa beim Itanium oder Power PC) ist kein Sterbenswörtchen zu finden.

Dafür entdeckt man aber Intels 128-bittige Streaming SIMD Extension (SSE), die AMD sogar von 8 auf 16 Register erweitert hat (allerdings nur im 64-Bit-Betriebsmodus). Ob es sich dabei nur um das alte SSE des Pentium III oder um die erheblich verbesserte Fassung des Pentium 4 handelt, geht aus der Dokumentation nicht hervor. Letztere unterstützt die gleichzeitige Verarbeitung von zwei Gleitkommazahlen in doppelter Genauigkeit. Es sieht aber ganz danach aus, als habe AMD das vorgesehene TFP-Konzept und möglicherweise auch 3Dnow! zugunsten von SSE gekippt.

Ansonsten hat AMD eine recht geschickte Erweiterung der Architektur auf 64 Bit vorgenommen, ähnlich der Erweiterung von 16 auf 32 Bit, die Intel seinerzeit beim 386 durchführte. Sledgehammer kennt drei Betriebsmodi:

  • 64-Bit-Modus in 64-Bit-Betriebssystem
  • 32-Bit-Modus (Compatibility Mode) in 64-Bit-Betriebssystem
  • 32-Bit-Modus (Legacy Mode) in 32-Bit-Betriebssystem

Im 64-Bit-Modus kennt der Prozessor neue Präfixe (REX), die die Registerbreite zwischen 8/16/32 Bit (z.B. AL, AX, EAX) oder 64 Bit (RAX) festlegen. Um hierfür kurze Ein-Byte-Präfixe nutzen zu können, hat AMD die Opcodes für Inkrement und Dekrement "mißbraucht", die im x86-Instruction-Set zusätzlich auch als Zwei-Byte-Opcodes vorkommen. Weiterhin vergrößerte AMD die arg bescheidene Anzahl der x86-Register von 8 auf 16 (Itanium hat derer 128).

Die Adressierung ist normalerweise unsegmentiert (flat). Da es zuweilen aber ganz zweckmäßig ist, mit Segmenten zu arbeiten, steht diese Option dem Programmierer über die beiden Segmentregister FS und GS zur Verfügung. Außerdem kann man Daten anders als bei iA32 relativ zum Instruction Pointer (RIP) adressieren, was die Orientierung in diesem riesigen Adressraum erleichert und auf einfache Art positionsunabhängige Routinen ermöglicht. Die erste "Hammer"-Ausführung unterstützt per PAE (Physical Address Extension) virtuell 48 Bit und physisch 40 Bit (= 1 TeraByte). Im 64-Bit-Modus stehen ferner 16 XMM-Register für SSE im Zugriff. Die beiden 32-Bit-Modi sind hingegen voll kompatibel mit bestehender Software. Zugriffe auf die oberen Hälften der 64-Bit-Register oder auf die zusätzlichen Register R8 bis R15 oder XMM8 bis XMM15 sind nicht möglich. Es fehlen hierfür einfach die REX-Präfixe, deren Opcodes aus Kompatibilitätsgründen wieder Inc/Dec zugeordnet sein müssen. Das unterscheidet sich übrigens von dem 16/32-Bit-Verhältnis, wo sich die 32-Bit-Register auch im 16-Bit-Segment oder im Real-Mode nutzen lassen.

Ohne 64-Bit-Betriebssystem (wahrscheinlich Windows 2000, Linux), etwa unter Windows 98, hat man von den erweiterten Möglichkeiten des Sledgehammer also nichts – sieht man mal von SSE ab. Dennoch, auch als 32-Bit-Maschine soll der "Hammer" Spitzenperformance bringen, wohingegend Itanium, Intels eigenem Bekunden nach, bei 32-Bit-Software nur mittelmäßige Performance erzielt. Für Itanium haben sich aber so gut wie alle relevanten Softwarehäuser im Server-und Workstation-Bereich geoutet – fragt sich also, ob diese auch für AMDs 64-Bit-Modus x86-64 programmieren (und optimieren und debuggen) wollen.

Siehe auch Sledgehammer mit Intel SSE2 und 3Dnow!. (as)