Zum Hauptinhalt Zur Navigation Zur Suche

Befehlssatzerweiterung: AMDs 3DNow wird zum Auslaufmodell

In einem Blogeintrag hat AMD angekündigt, dass seine künftigen Prozessoren die hauseigene Befehlssatzerweiterung 3DNow nicht mehr unterstützen werden. Programmierer sollen, falls nicht längst geschehen, zu SSE wechseln. Ob 3DNow vorhanden ist, sollen auch die neuen Prozessoren per CPUID anzeigen.
/ Nico Ernst
25 Kommentare News folgen (öffnet im neuen Fenster)

Eigentlich ist der Schritt überfällig: Seit der Einführung mit dem Prozessor K6-2 im Jahr 1998 wurde AMDs 3DNow kaum genutzt. Zwar setzten einige Medienbearbeitungsprogramme und auch das Spiel Quake II darauf, durchsetzen konnte sich AMDs Befehlssatz aber nicht.

Deshalb zieht der Chiphersteller nun die Konsequenzen und empfiehlt einen Umstieg auf Intels SSE(öffnet im neuen Fenster), das bis zur Version 4 die aktuellen K10-Prozessoren von AMD unterstützen. Dafür gibt es auch eine Anleitung im Anhang A von AMDs Programmierhandbuch (PDF(öffnet im neuen Fenster)), wo die 3DNow-Befehle und ihre Alternativen in SSE aufgeführt sind.

Ob 3DNow ganz abgeschafft wird, geht aus AMDs Blogeintrag nicht hervor. Dort ist nur die Rede davon, "bestimmte künftige Prozessoren" würden es nicht mehr unterstützen. Ob das für alle Exemplare der neuen Architekturen Bobcat und Bulldozer gilt, die zum Fusion-Programm gehören, ist damit nicht sicher, aber durch den frühen Hinweis wahrscheinlich.

Zwei Befehle bleiben erhalten

Zwei der zuletzt 26 Instruktionen von 3DNow sollen auch neuere AMD-CPUs verarbeiten können. Es handelt sich um PREFETCH und PREFETCHW, mit denen das Laden von Daten in den L1-Cache erzwungen werden kann. Diese beiden Instruktionen dienen nicht der SIMD-Verarbeitung(öffnet im neuen Fenster) von Daten, ihre Verwendung ist also von anderen SIMD-Befehlssätzen wie MMX oder SSE unabhängig.

Die Unterstützung der Prefetches geben künftige AMD-CPUs über eine Erweiterung des Befehls CPUID bekannt, die AMD in einem PDF dokumentiert(öffnet im neuen Fenster) hat. Diese Prozessoren zeigen dann an, dass sie 3DNow nicht mehr beherrschen, aber PREFETCH und PREFETCHW.

SSE kam schneller als gedacht

AMD hatte 3DNow 1998 propagiert, weil Intels Alternative dazu lange auf sich warten ließ. Was heute als SSE bekannt ist, wurde damals noch unter dem Namen "Katmai New Instructions" (KNI) geführt. Katmai war der Codename des Pentium III und dessen einzige Änderung der Architektur die Befehlssatzerweiterung, die viel leistungsfähiger und flexibler als das 1997 eingeführte MMX war.

Um den steigenden Anforderungen an die fortlaufende Verarbeitung von Daten durch Multimediaanwendungen und Spiele gerecht zu werden, wollte AMD mit 3DNow den Standard setzen. Der Name wurde folglich auch als Hinweis auf die Tatsache gewählt, dass diese Befehlssatzerweiterung schneller verfügbar war. Vor allem Spiele sollten davon profitieren, da sich diese Programme für die populär werdende 3D-Grafik damals nur auf wenig Mithilfe des Grafikprozessors verlassen konnten. Was MMX und SSE einst tun sollten, wird bei Spielen heute überwiegend von der GPU erledigt.

AMD verließ sich darauf, dass Intel 3DNow übernehmen würde – auch 1998 hatten die beiden Unternehmen wie schon seit 1976 ein Abkommen über den Austausch von Patenten. Stattdessen setzen aber viele Entwickler auf SSE, das Intel schon früh dokumentiert und mit Emulatoren zugänglich gemacht hatte. Folglich setzte sich SSE durch, und AMD unterstützte es ab Ende 2001, der erste Prozessor damit war der seinerzeit sehr erfolgreiche Athlon XP.

Kaum Auswirkungen für Anwender

Der Wegfall von 3DNow hat für Anwender nur in sehr unwahrscheinlichen Fällen Konsequenzen, wenn ein älteres Programm ausdrücklich diesen Befehlssatz erfordert. In der Regel enthalten Anwendungen aber mehrere Codepfade für die verschiedenen Erweiterungen. Das Programm fragt dann beim Start über CPUID und einige Register ab, was der Prozessor unterstützt und stellt sich darauf ein.

AMD weist jedoch auf – ebenfalls unwahrscheinliche – Probleme mit virtuellen Maschinen hin, wenn eine laufende Installation von einem Prozessor mit 3DNow auf eine CPU ohne diese Befehle portiert wird. Auch dafür gibt es eine Anleitung als PDF(öffnet im neuen Fenster).


Relevante Themen