MMX
MMX és un conjunt d'instruccions SIMD dissenyat per Intel i introduït en 1997 en les seues microprocessadors Pentium MMX. Va ser desenrollat a partir d'un set introduït en l'Intel i860. Ha segut soportat per la majoria de fabricants de microprocessadors x86 des de llavors.
Va ser presentat com un acrònim de Multimèdia eXtension o Multiple Math o Matrix Math eXtension, pero oficialment solament és un joc de consonant sense significat, usat en l'única intenció de poder posar cortapisas llegals de marca registrada als desenrolls de tercers que tractaren d'usar-ho.
Història
Denominació
MMX és oficialment una sigla sense sentit[1] registrada per Intel;[2] extraoficialment, les inicials s'han explicat de diverses maneres com si representaren
Advanced Micro Devices (AMD), durant un dels seus numerosos litigis en Intel, va presentar material de màrqueting d'Intel que indicava que MMX significava "Matrix Math Extensions". Ya que una sigla no pot registrar-se com a marca, est va ser un intent d'invalidar la marca registrada d'Intel. En 1995, Intel va demandar a AMD i Cyrix Corp. per us indegut de la seua marca registrada MMX. AMD i Intel varen aplegar a un acort: AMD va reconéixer MMX com a marca registrada propietat d'Intel i Intel va otorgar a AMD els drets per a usar la marca registrada MMX com a nom de tecnologia, pero no com a nom de processador.[5]
Detalls tècnics

MMX definix huit registres de processador, denominats MM0 a MM7, i les operacions que els operen. Cada registre té 64 bits d'ample i pot almagasenar sancers de 64 bits o varis sancers menors en format comprimit: una instrucció pot aplicar-se a dos sancers de 32 bits, quatre sancers de 16 bits o huit sancers de 8 bits al mateix temps.[6]
MMX solament oferix operacions en sancers. Quan es va desenrollar originalment per al Intel i860, l'us de càlculs en sancers tenia sentit (tant els càlculs 2D com a 3D ho requerien), pero a mida que es varen popularisar les targetes gràfiques que realisaven gran part d'este procés, el SIMD sancer en la CPU es va tornar alguna cosa redundante per a les aplicacions gràfiques. Per un atre costat, les operacions aritmètiques de saturació en MMX podien accelerar significativament algunes aplicacions de processament de senyals digitals.
Per a evitar problemes de compatibilitat en els mecanismes de canvi de context dels sistemes operatius existents, els registres MMX són àlies dels registres d'unitat de menge flotant (FPU) x87 existents, que els canvis de context ya guardarien i restaurarien. A diferència dels registres x87, que es comporten com una pila, els registres MMX són directament direccionables (accés aleatori).
Qualsevol operació que involucre la pila de punt flotant també podria afectar els registres MMX i viceversa, per lo que este àlies dificulta treballar en operacions de punt flotant i SIMD en el mateix programa.[7] Per a maximizar el rendiment, el software a sovint utilisava el processador exclusivament en un modo o un atre, postergant el canvi relativament llent entre ells el major temps possible.
Cada registre MMX de 64 bits correspon a la part de mantissa d'un registre x87 de 80 bits. Per lo tant, els 16 bits superiors dels registres x87 no s'utilisen en MMX, i tots estos bits s'establixen en uns, lo que els convertix en tipos de senyes No és un Número (NaN), o infinits en la representació de punt flotant. Açò pot ser utilisat pel software per a determinar si el contingut d'un registre donat es considera com a senyes de punt flotant o SIMD.
Soport de software
El soport de software per a MMX es va desenrollar llentament.[8] El compilador C d'Intel i les ferramentes de desenroll relacionades varen obtindre funcions intrínseques per a invocar instruccions MMX, i Intel va llançar biblioteques d'algoritmes vectorizados comuns que utilisen MMX. Tant Intel com Metrowerks varen intentar la vectorisació automàtica en els seus compiladors, pero les operacions en el llenguage de programació C no s'adaptaven be al conjunt d'instruccions MMX, i a partir de l'any 2000, els algoritmes personalisats generalment encara devien escriure's en llenguage ensamblador.[7]
Descripció

MMX va agregar 8 nous registres a l'arquitectura, coneguts com a MM0 al MM7 (en avant cridats MMn). En realitat, estos nous registres són mers àlies dels registres de la pila de la FPU x87. Per això qualsevol cosa que es faça en la pila de la FPU afecta als registres MMX. A diferència de la pila de menge flotant, els registres MMn són fixos en lloc de relatius, per lo que poden accedir-se aleatoriamente.
Cada u dels registres MMn és un número entero de 64 bits. No obstant, un dels conceptes principals del joc d'instruccions MMX és el concepte del tipo de senyes compactar (packed data types), que significa en lloc d'usar el registre complet per a un sol número entero de 64 bits (paraula cuádruple o quadword), es pot usar per a almagasenar dos sancers de 32 bits (paraula doble o doubleword), quatre sancers de 16 bits (paraula o word) o huit sancers de 8 bits (byte o octet).
Per a simplificar el disseny i evitar modificar el sistema operatiu per a preservar l'estat adicional a través dels interruptors de context, MMX reutilisa els huit registres existents de la FPU. Per això és molt difícil treballar en la FPU i MMX al mateix temps. Per a maximizar el rendiment, els programadors deuen utilisar el processador exclusivament en un modo o l'atre, retardant tot lo possible el llent pas d'un modo a un atre.
Referències
- ↑ newsweek. com/new-chip-block-175014 «A new chip off the block».Newsweek.
- ↑ «intel. com/content/www/us/en/trademarks/mmx. html Intel | Data Center Solutions, IoT, and PC Innovation» (en en).
- ↑ nytimes. com/www. nytimes. com/library/cyber/week/010997intel. html Makers Unveil PCs With Intel's MMX Chip. "Intel's new multimèdia extension technology, called MMX, ..."
- ↑ «CHAPTER 5 - Microprocessors», Advanced Industrial Control Technology, (12) MMX technology: William Andrew Publishing, pp. 155–214. ISBN 978-1-4377-7807-6.
- ↑ nytimes. com/1997/04/22/business/intel-and-advance-micro-agree-on-chip-trademark. html Intel and Advance Micro agree on chip trademark.
- ↑ “cs. nmsu. edu/pfeiffer/classes/473/notes/micro. pdf MMX Microarchitecture of Pentium Processors With MMX Technology and Pentium II Microprocessors” (1997). Intel Technology Journal.
- ↑ 7,0 7,1 Conte G., Tommesani S., Zanichelli F.. «archive. org/web/20160128221609/https://air. unipr. it/retrieve/handle/11381/2297671/6288/camp2000. pdf The long and winding road to high-performance image processing with MMX/SSE» (en en). Università degli studi vaig donar Parma. Archivat des d'el unipr. it/retrieve/handle/11381/2297671/6288/camp2000. pdf original, el 2016-01-28. Consultat el 2025-08-12. «Proceedings of IEEE International Workshop on Computer Architectures for Machine Perception»
- ↑ nytimes. com/www. nytimes. com/library/cyber/week/012497intel. html Intel's MMX: The Technology Behind the Hoopla.
Vore també
- 3DNow!
- SSE
- SSE2
- SSE3
- SSE4
- AVX
- Arquitectura x86
- Anex:Llistats d'instruccions x86
- Aritmètica de saturació
- Este artícul conté una traducció derivada de «MMX» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.