MMX (Befehlssatz)

MMX ist eine einzelne Instruktion, vielfache Daten (SIMD) Befehlssatz, der von Intel entworfen ist, eingeführt 1996 mit ihrer P5-basierten Linie von Pentium von Mikroprozessoren, benannt als "Pentium mit der MMX Technologie". Es hat sich aus einer ähnlichen Einheit entwickelt, die auf Intel i860, und früher dem Videopixel-Verarbeiter von Intel i750 eingeführt ist. MMX ist ein Verarbeiter ergänzende Fähigkeit, die auf neuen IA-32 Verarbeitern von Intel und anderen Verkäufern unterstützt wird.

Das Namengeben

MMX ist offiziell ein sinnloser von Intel gesetzlich schützen lassener initialism; inoffiziell sind die Initialen als das Eintreten für Erweiterung von MultiMedia, Vielfache Matheerweiterung oder Matrixmatheerweiterung verschiedenartig erklärt worden.

AMD, während einen seiner zahlreichen Gerichtskämpfe mit Intel, hat Marktmaterial von Intel erzeugt, der anzeigt, dass MMX "für Matrixmatheerweiterungen" eingetreten ist. Da ein initialism nicht gesetzlich schützen lassen werden kann, war das ein Versuch, die Handelsmarke von Intel ungültig zu machen. 1997 hat Intel gegen AMD and Cyrix Corp. für den Missbrauch seiner Handelsmarke MMX Klage erhoben. AMD und Intel haben sich mit AMD niedergelassen, der MMX als eine Handelsmarke anerkennt, die von Intel, und mit Intel besessen ist, der AMD Rechte gewährt, die MMX Handelsmarke als ein Technologiename, aber nicht ein Verarbeiter-Name zu verwenden.

Technische Details

MMX hat acht Register, bekannt als MM0 durch MM7 (künftig verwiesen auf als MMn) definiert. Um Vereinbarkeitsprobleme mit den Zusammenhang-Schalter-Mechanismen in vorhandenen Betriebssystemen zu vermeiden, waren diese Register Decknamen für den vorhandenen x87 FPU Stapel-Register (so mussten keine neuen Register gespart oder wieder hergestellt werden). Folglich würde irgendetwas, was zum Schwimmpunkt-Stapel getan wurde, auch die MMX-Register und umgekehrt betreffen. Jedoch, verschieden vom FP-Stapel, sind die MMn-Register direkt addressable (zufälliger Zugang).

Jedes der MMn-Register hält 64 Bit (das mantissa-teilige von einem FPU vollen 80-Bit-Register). Der Hauptgebrauch des MMX Befehlssatzes basiert auf dem Konzept gepackter Datentypen, was bedeutet, dass, anstatt das ganze Register für eine einzelne ganze 64-Bit-Zahl zu verwenden, zwei ganze 32-Bit-Zahlen, vier ganze 16-Bit-Zahlen oder acht ganze 8-Bit-Zahlen gleichzeitig bearbeitet werden können.

Der MMX-Register auf die vorhandenen FPU-Register kartografisch darzustellen, hat es etwas schwierig gemacht, mit dem Schwimmpunkt und den SIMD Daten in derselben Anwendung zu arbeiten. Um Leistung zu maximieren, haben Programmierer häufig den Verarbeiter exklusiv in einer Weise oder dem anderen verwendet, den relativ langsamen Schalter zwischen ihnen so lange wie möglich aufschiebend.

Weil die FPU-Stapel-Register 80 Bit breit sind, gehen die oberen 16 Bit der Stapel-Register unbenutzt in MMX, und diese Bit werden alle auf gesetzt, sie NaNs oder Unendlichkeit in der Schwimmpunkt-Darstellung machend. Das kann verwendet werden, um zu entscheiden, ob ein Inhalt eines besonderen Registers als Schwimmpunkt oder SIMD Daten beabsichtigt ist.

MMX stellt nur Operationen der ganzen Zahl zur Verfügung. Wenn ursprünglich entwickelt, für Intel i860, den Gebrauch des gehabten Sinns der Mathematik der ganzen Zahl (haben sowohl 2. als auch 3D Berechnungen es verlangt), aber weil Grafikkarten, die viel davon getan haben, ganze Zahl üblich geworden sind, ist SIMD in der Zentraleinheit etwas überflüssig für grafische Anwendungen geworden. Andererseits konnten die Sättigungsarithmetik-Operationen in MMX einige Digitalsignalverarbeitungsanwendungen bedeutsam beschleunigen.

Nachfolger

AMD, ein Konkurrieren x86 Mikroprozessor-Verkäufer, hat den MMX von Intel mit ihrem eigenen 3DNow erhöht! Befehlssatz. 3DNow ist am besten bekannt, um einfache Präzision (32 Bit) Schwimmpunkt-Unterstützung zum SIMD Befehlssatz, unter anderer ganzer Zahl und allgemeineren Erhöhungen hinzuzufügen.

Im Anschluss an MMX war die folgende x86 Haupterweiterung von Intel der SSE, der mit der Familie des Pentiums-III eingeführt ist (grob ein Jahr nach dem AMD'S 3DNow! wurde eingeführt.)

SSE hat die Kernmängel von MMX (Unfähigkeit gerichtet, ganze-Zahl-SIMD ops mit jedem Schwimmpunkt ops zu mischen), durch das Schaffen einer neuen 128 Bit breiten Register-Datei (XMM0 - XMM7) und neue SIMD Instruktionen dafür. Wie 3DNow hat sich SSE exklusiv auf Schwimmpunkt-Operationen der einfachen Präzision (32 Bit) konzentriert; ganze Zahl SIMD Operationen wurde noch mit dem MMX-Register und Befehlssatz durchgeführt. Jedoch hat die neue XMM Register-Datei SSE SIMD-Operationen erlaubt, entweder mit MMX oder mit x87 FPU ops frei gemischt zu werden.

SSE2, der mit dem Pentium 4 eingeführt ist, hat weiter den x86 SIMD Befehlssatz mit der ganzen Zahl (am 8/16/32 Bit) und Schwimmpunkt-Datenunterstützung der doppelten Genauigkeit für die XMM-Register-Datei erweitert. SSE2 hat auch dem MMX opcodes erlaubt, XMM-Register operands zu verwenden, aber hat diese Unterstützung mit SSE4 beendet (und kürzlich mit SSE4.2, der in der Kernmikroarchitektur eingeführt ist.) Jedoch, da die Verarbeiter-Unterstützung für jede SSE Revision auch Unterstützung für MMX einbezieht, beschränkt die Eliminierung die Typen von Datentypen nicht, die durch x86 SIMD verwendbar sind.

MMX in eingebetteten Anwendungen

Der XScale Mikroprozessor-Kern von Intel und Marvells, der mit PXA270 anfängt, schließt eine SIMD Befehlssatz-Erweiterung auf genannten iwMMXt des Kerns des ARMS ein, dessen Funktionen denjenigen des IA-32 MMX Erweiterung ähnlich sind. IwMMXt tritt für "Intel Wireless MMX Technology" ein. Es stellt arithmetische und Logikoperationen auf 64-Bit-Zahlen der ganzen Zahl zur Verfügung (die Software kann beschließen, stattdessen zwei 32 Bit, vier 16 Bit oder acht 8-Bit-Operationen in einer einzelnen Instruktion durchzuführen). Die Erweiterung enthält 16 Datenregister von 64 Bit und acht Kontrollregister von 32 Bit. Auf alle Register wird durch den Standard-ARM-Architektur-Coprozessor-Mechanismus des kartografisch darstellenden zugegriffen. iwMMXt besetzt Coprozessoren 0 und 1 Raum, und etwas von seinem Opcodes-Konflikt mit dem opcodes der früheren Schwimmpunkt-Erweiterung, FPA.

Spätere Versionen der ARM-Verarbeiter von Marvell unterstützen beide WMMX (Drahtloser MMX) und WMMX2 (Drahtloser MMX2) Unterstützung.

  • Manepally, R. und Sprague, D.; Intel Princeton Oper. Plainsboro, New Jersey; der i750 von Intel (R) Videoverarbeiter - die programmierbare Lösung, Compcon Spring '91, Auswahl von Papieren, Seiten 324-329; am 25. Febr am 1. Mrz 1991; San Francisco, Kalifornien, die USA; internationale Standardbuchnummer 0-8186-2134-6.

Außenverbindungen


79 V. CHR. / Einteilung SIMD Erweiterungen
Impressum & Datenschutz