¿Qué es la tecnología MMXTM

La multimedia y las comunicaciones estan generando aplicaciones con exigencias cada vez mayores. La tecnología MMXTM es una nueva extensión a la Arquitectura que:

La tecnología MMX deberá aparecer por primera vez en un nuevo procesador Pentium(r)(codificado como el P55C) en el primer trimestre de 1997.

El anuncio público acerca de la tecnología MMX el 5 de Marzo de 1996, permite a los desarrolladores de software, librerias y aplicaciones empezar a desarrollar los productos que incorporaran esta nueva tecnología. Mediante este esfuerzo, cuando los PCs con tecnología MMX empiecen a aparecer en el mercado a finales de 1996, y de forma masiva en 1997, in the market in late 1996 and more widely in 1997, aplicaciones multimedia e Internet y juegos estaran totalmente disponibles.

Para más información técnica sobre la tecnología MMX technology, seleccione una de las opciones de más arriba. Los desarrolladores de software podran ver información técnica adicional en los próximos meses.


La tecnología MMXTM acelera al x86

Para mejorar la multimedia y el procesado 3-D, la nueva tecnología MMX de Intel puede empaquetar múltiples pixeles en un registro y manipularlos con una sola instrucción. En efecto, MMX aporta un nuevo nivel de paralelismo a los procesadores x86.

En lugar de añadir registros físicos nuevos a la arquitectura x86 (lo que ralentizaría la adopción del MMX), Intel reutiliza la pila de coma flotante (FP) existente a modo de registros lógicos MMX. Las instrucciones MMX utilizan sólo la porción de mantisa de 64 bits de los registros FP de 80 bits, ignorando la porción de 16 bits del exponente. Esto da lugar a 8 registros lógicos de 64 bits sin que se altere de forma significativa la arquitectura x86.

Las instrucciones MMX pueden empaquetar varios tipos de datos dentro de estos registros de 64 bits: bytes empaquetados (ocho por registro); palabras empaquetadas (cuatro por registro); palabras dobles empaquetadas (dos por registro) y una palabra cuádruple (un valor de 64 bits por registro). Estos tipos de datos resultan útiles debido a que, normalmente, los programas multimedia trabajan con pequeñas unidades de datos. Por ejemplo, un pixel de color en modo color real , la resolución de color más utilizada, usa 24 bits: 1 byte por cada color RGB. Este modo permite trabajar con hasta 16,7 millones de colores, mucho más de lo que es capaz de distinguir el ojo humano. En modo HiColor, sólo se necesitan 16 bits por pixel. Para la mayoría de aplicaciones gráficas, 16 bits son más que suficientes.

Los nuevos procesadores x86 que soporten MMX seran capaces de direccionar los nuevos registros, desde el MM0 hasta el MM7. En lugar de tratar los registros como si fueran una pila, que es lo que hacen las instruccione FP, las instrucciones MMX acceden directamente a los registros. Al efectuarse el cambio de instrucciones MMX a FP (y viceversa), la instrucción FSAV guarda el estado de los registros y la instrucción FRSTR restaura los valores. Esto permite que la tecnología MMX sea compatible con los sistemas operativos existentes que, frecuentemente deben de efectuar operaciones de guardar y restaurar registros cuando se produce un cambio de contexto entre aplicaciones multitarea.

El inconveniente de esta técnica reside en la imposibilidad de que los programadores puedan entremezclar instrucciones PF y MMX, ya que necesitan los mismos registros. Pero esto no es tan importante como parece, ya que los programas multimedia efectúan habitualmente sus operaciones en coma flotante antes de visualizar los datos (el proceso de modelado se basa fundamentalmente en instrucciones para enteros).

MMX presenta un conjunto de instrucciones para enteros, de propósito general, que utiliza el paradigma SIMD (Single Instruction/Multiple Data). Una sola instrucción procesa todos los datos de los registros empaquetados. Este paralelismo incrementa el rendimiento. Casualmente este concepto no es nuevo para Intel. Hace años, la familia i860RISC, ahora obsoleta por completo, ofrecía una tecnología parecida, denominada PAX (Pixel Addressing Extension).

Otra característica del nuevo conjunto de instrucciones, las operaciones que efectuan comparaciones en paralelo, podría incrementar el rendimiento al eliminar las bifurcaciones (los procesadores modernos intentan prever las bifurcaciones, pero cualquier error de predicción significa una penalización de varios ciclos de procesador). En combinación con las características de empaquetado de datos, las operaciones de comparación en paralelo resultan útiles cuando, por ejemplo, se quieren combinar o solapar dos imágenes.


Punto 1 del gráfico: Las instrucciones MMX pueden empaquetar valores de 6, 16, 32 o 64 bits dentro de registros MMX de 64 bits. Aquí 8 pixeles de 8 bits son empaquetados en un solo registro.

Punto 2 del gráfico : Cuando se ejectuta una instruccion MMX, los ocho valores de píxel de cada registro MMX se procesan simultáneamente. Aquí, la instrucción compara los píxels de los registros 1 y 2 en busca de igualdad.

Punto 3 del gráfico : Resultados de las comparaciones. El paralelismo que se logra cuando una única instrucción MMX procesa múltiples valores de píxel resulta más rápido que si tuvieran que ejecutar instrucciones separadas para cada comparación.

Las instrucciones MMX son parecidas al conjunto de instrucciones visuales (VIS) del UltraSparc de Sun. VIS tambien empaqueta registros y utiliza los registros FP. Pero ofrece muchas más cosas que MMX: 32 registros nuevos (en comparación con los ocho de Intel), descompresión acelerada de vídeo con transformaciones discretas de coseno, modos de direccionamiento más potentes, enmascarado de pixels y un conjunto de operaciones superespecializadas que incrementan mucho la sensación de movimiento al trabajar con flujos de video con compresión MPEG.

MMX no es el único enfoque nuevo de Intel para acelerar la tecnología 3-D. Otra nueva versión para aceleradores 3-D es la que constituye el AGP (Advanced Graphics Port). Para distribuir equitativamente las tareas del procesador principal y las del procesador gráfico, AGP crea una nueva via de acceso para efectuar la transferencia de datos entre la memoria principal y la memoria de almacenamiento intermedio para marcos de la tarjeta gráfica. En teoría, según Intel, al evitar el bus PCI, AGP puede permitir transferencias para lectura y escritura a velocidades de hasta 400 MBps.



menu principal