WikiDer > MMX (Intel)

MMX (Intel)
Die MMX-Register wie in den FPU-Registern definiert, mit horizontal den Grenzen der verschiedenen Register, d. h. der Größe und vertikal den Registernamen.

Das MMXAnleitung, herausgegeben 1997 von Intel eingeführt wurden, sind eine Erweiterung von 57 Anweisungen auf die IA-32Befehlssatz.[1] Dieser Zusatz wurde erstmals in der Pentium MMX Prozessor, um die Verarbeitungsgeschwindigkeit von Prozessoren zu erhöhen. AMD fügte diese Anweisungen später seinen eigenen Prozessoren hinzu, zum ersten Mal mit dem K6 Prozessor.

Bei der Entwicklung von MMX hat Intel erkannt, dass viele Operationen nur 8 oder 16 Bit verwenden ganze ZahlDaten bearbeitet werden und daher oft ein Großteil der Register leer war und viele Operationen sehr oft wiederholt wurden. Würden Daten nebeneinander eingefügt, würden diese kleinen Datenblöcke in einem Rutsch und damit wesentlich schneller verarbeitet, wie in a Vektorprozessor. Zum Neuen SIMDAnleitung hat Intel 4 neue Datentypen eingeführt, die gepackten Versionen der Byte, werden, Doppelwort und Quadwort. Mit verpackt Das bedeutet, dass die Daten nacheinander in eine Einheit von 64 Bit eingefügt werden, also maximal 8 Byte hintereinander, oder 1 Quadword. Diese Daten könnten, nachdem ein MMX-Befehl gegeben wurde, in einen speziell für MMX-Daten bestimmten Abschnitt der FPU-Register platziert und mit den neuen Befehlen verarbeitet werden.

Der große Vorteil dieses Ansatzes bestand darin, dass beispielsweise beim Editieren von 8 Bytes mit dem gleichen Befehl ein Befehl nicht achtmal ausgeführt werden muss, sondern der Befehl auf allen acht Bytes gleichzeitig ausgeführt werden kann. Theoretisch bedeutet dies, dass eine Anweisung achtmal schneller ausgeführt wird. Der tatsächliche Geschwindigkeitsgewinn war jedoch stark von einer Reihe von Faktoren abhängig. Zunächst die Größe der zu bearbeitenden Variablen: Eine größere Variable bedeutet schließlich, dass weniger auf einmal bearbeitet werden können. Zweitens, die Anzahl der Umschaltvorgänge zwischen der Bearbeitung von MMX-Integer-Daten und Gleitkomma- interessante Termine. Bei jedem Wechsel zwischen den beiden Operationen musste das gesamte Register geleert werden, auf Daten aus dem Speicher gewartet und erst dann konnte das Register wieder gefüllt werden, wodurch eine beträchtliche Anzahl von CPU-Zyklen verloren ging.