En 1997 Intel presentó las extensiones MMX (MultiMedia eXtensions) junto al procesador Pentium MMX, un conjunto de 57 instrucciones adicionales pensadas para acelerar gráficos, procesamiento de audio, vídeo y software de módem. MMX no inventó el modelo SIMD (Single Instruction, Multiple Data), pero lo acercó por primera vez a los PCs de consumo, donde la mayoría de programadores podían experimentar con paralelismo a nivel de instrucción.
La técnica SIMD consiste en aplicar una misma operación a varios datos empaquetados en un único registro. En MMX, Intel reutilizó los registros de la pila x87: los ocho registros de coma flotante de 80 bits pasaron a poder emplearse como registros MMX de 64 bits, aprovechando el silicio existente a costa de ciertas limitaciones operativas.
Cada registro MMX de 64 bits podía empaquetar datos en distintos formatos: ocho bytes, cuatro palabras de 16 bits, dos palabras dobles de 32 bits o una palabra cuádruple de 64 bits. Así, una sola instrucción paddb sumaba ocho bytes a la vez, y paddusb realizaba la misma suma con saturación, es decir, fijando el valor máximo en 255 para evitar el desbordamiento natural de los enteros sin signo.
El artículo también sitúa MMX en perspectiva histórica: máquinas vectoriales como el Cray-1 (1976), con sus registros vectoriales y registro VL, y supercomputadores como el ILLIAC IV de los años sesenta ya implementaban paralelismo de datos décadas antes. La diferencia clave es que SIMD trabaja con registros de anchura fija, mientras que los procesadores vectoriales clásicos procesaban secuencias de longitud variable ciclo a ciclo.
En conjunto, MMX marcó el momento en que SIMD dejó de ser patrimonio exclusivo de la supercomputación y se convirtió en una herramienta cotidiana para el desarrollo de software multimedia en PCs.
