MMX segons la taxonomia de Flynn és un repertori d'instruccions SIMD dissenyat perIntel, introduït el 1997 en la línia de microprocessadorsPentium, designat com "Pentium amb Tecnologia MMX".[1][2] Es va desenvolupar a partir d'una unitat similar, que es va introduir per primera vegada a l'Intel i860. S'ha suportat en la majoria de microprocessadors posteriorsIA-32 per Intel i altres fabricants.
AMD, el competidor d'Intel, implementa el repertori d'instruccions encoma flotant3DNow!, per combatre MMX. Intel dos anys més tard, implementa l'extensió matemàticaSSE per treballar encoma flotant.
MMX té oficialment un sentit d'acrònim d'unamarca registrada per Intel; extraoficialment, les inicials s'han explicat de diverses maneres comMultiMedia eXtension,Multiple Math eXtension, oMatrix Math eXtension.
AMD, durant una de les seves nombroses batalles als tribunals amb Intel, produïdes a partir del material de màrqueting per Intel indicant que MMX era un extensió matemàtica per a matrius ("Matrix Math Extensions"). La idea que està en el seu propi material de màrqueting per a res és una posició de l'empresa Intel, pretén suggerir que és de marca registrada i no pot ser utilitzada per AMD x86 o d'altres fabricants clònics[3]
MMX afegeix vuit nousregistres a l'arquitectura, coneguts com a MM0 fins MM7 (en endavant MMn). Realment, aquests nous "registres" són només un àlies per l'actual pila de registres x87FPU. Per tant, qualsevol cosa que es faci a la pila decoma flotant (Floating Point, FP) pot també afectar els registres MMX. A diferència de la pila FP, aquests registres MMn es van arreglar, no relativament, per tant aquests són accessibles d'un mode aleatori.
Cada un dels registres MMn pot suportar un enter de 64 bits. Això no obstant, un dels principals conceptes del repertori d'instruccions MMX és el concepte dels tipus de dades empaquetats, la qual cosa significa que en lloc d'utilitzar tot el registre per un enter simple de 64 bits (quadword), es poden utilitzar: dos enters de 32 bits (doubleword), quatre enters de 16 bits (word) o vuit enters de 8 bits(byte).
Per simplificar el disseny i per evitar canviar el sistema operatiu per a preservar l'estat addicional a través dels interruptors de context, MMX reutilitza els vuit registres existents FPU deIA-32. Això fa difícil treballar ambcoma flotant i amb dadesSIMD al mateix temps. Per augmentar el rendiment, els programadors han d'utilitzar exclusivament el processador en un mode o en un altre, ajornant el canvi, relativament lent entre ells, tant com sigui possible.
També perquè els registres MMX de 64 bits MMn són àlies de pila de la FPU, i cada un dels registres de la pila té una amplada de 80 bits, els 16 bits registres superiors de la pila no utilitzats en MMX, i aquests bits són establerts tots a uns, que el fan semblar com unNaN o infinits des del punt de vista decoma flotant. Això fa que sigui més fàcil de dir si està treballant està amb dades de coma flotant o MMX.
Un altre problema de MMX és que només proporciona operacions per a enters. Cada un dels vuit registres de vectors de 64 bits de MMX, àlies dels vuit registres decoma flotant existents, poden representar dosenters de 32 bits, quatre enters curts de 16 bits, o vuit octets de 8 bits. Quan es va desenvolupar originàriament eli860, va donar sentit la utilització d'un enter vectoritzat (tant 3D com 2D necessitaven aquesta configuració), però com els sistemes es van traslladar a la utilització de targetes gràfiques per fer aquesta tasca MMX va caure a favor, i la unitat decoma flotant vectoritzada va convertir-se en més important. Per un altre cantó, aquestes noves operacions aritmètiques no inclouen operacions desaturació aritmètica, que podien simplificar i accelerar enormement la velocitat d'algunes aplicacions dedigital signal processing.
Intel avorta les diferències de la tecnologia MMX a través deSSE, una bona expansió del repertori d'instruccions de SIMD amb suport decoma flotant de 32 bits i un conjunt addicional de vectors de registres de 128-bit que faciliten la realització d'operacionsSIMD i FPU al mateix temps. SSE es va ampliar al seu torn ambSSE2, que també expandeixen les instruccions MMX per tal que puguin operar en registres XMM de 128 bits (després les extensions SSE poden suportar operacions de dades enteres als registres MMX perquè els nous registres SSE necessiten el del sistema operatiu, fins SSE4, que finalitza aquest suport) i recentment ambSSE4.2, introduïda enIntel Core microarquitectura. Suportar alguns d'aquests repertoris d'instruccions posteriors implica suport per a MMX.
El processadorXScale d'Intel començant amb PXA270 inclou una extensió al nucli ARM anomenadaiwMMXt les seves funcions són similars a les de l'extensió MMX enIA-32. IwMMXt està a favor de la "Tecnologia sense fils MMX d'Intel". Proporciona l'aritmètica i la lògica de les operacions amb nombres enters de 64 bits (el programari pot decidir fer operacions amb dos de 32 bit, quatre de 16 bits o vuit de 8 bits en una única instrucció). L'extensió conté 16 registres de dades de 64 bits i 8 registres de control de 32 bits. Tots els registres són accessibles per mitjà del mecanisme de mapatge del coprocessador de l'arquitectura ARM. IwMMXt ocupa l'espai dels coprocessadors 0 i 1, i els seus codis d'operació coincideixen amb els codis d'operació de l'anterior extensió decoma flotant,FPA.