stringtranslate.com

MMX (conjunto de instrucciones)

Pentium con MMX

MMX es una arquitectura de conjunto de instrucciones de instrucción única y datos múltiples ( SIMD ) diseñada por Intel , introducida el 8 de enero de 1997 [1] [2] con su línea de microprocesadores basada en Pentium P5 (microarquitectura) , denominada "Pentium con tecnología MMX". [3] Se desarrolló a partir de una unidad similar introducida en el Intel i860 , [4] y anteriormente en el procesador de píxeles de vídeo Intel i750 . MMX es una capacidad complementaria del procesador compatible con los procesadores IA-32 de Intel y otros proveedores desde 1997 .

El New York Times describió el impulso inicial, incluidos los anuncios del Super Bowl , como centrado en "una nueva generación de ostentosos productos multimedia, incluidos videoteléfonos y videojuegos 3-D". [5]

Posteriormente, MMX se ha ampliado con varios programas de Intel y otros: 3DNow! , Streaming SIMD Extensions (SSE) y revisiones continuas de Advanced Vector Extensions (AVX).

Descripción general

Nombrar

MMX es oficialmente una inicial sin sentido [6] registrada por Intel; [7] Extraoficialmente, se ha explicado de diversas formas que las iniciales representan

Advanced Micro Devices (AMD), durante una de sus muchas batallas judiciales con Intel, produjo material de marketing de Intel indicando que MMX significaba "Matrix Math Extensions". [ cita necesaria ] Dado que una inicial no puede ser registrada como marca registrada, [ cita necesaria ] este fue un intento de invalidar la marca registrada de Intel. En 1995, Intel presentó una demanda contra AMD y Cyrix Corp. por uso indebido de su marca registrada MMX. AMD e Intel llegaron a un acuerdo: AMD reconoció MMX como una marca comercial propiedad de Intel y Intel otorgó a AMD los derechos para usar la marca MMX como nombre de tecnología, pero no como nombre de procesador. [8]

Detalles técnicos

Procesador Pentium II con tecnología MMX

MMX define ocho registros de procesador , denominados MM0 a MM7, y las operaciones que operan en ellos. Cada registro tiene 64 bits de ancho y se puede utilizar para contener números enteros de 64 bits o varios números enteros más pequeños en un formato "empaquetado": luego se puede aplicar una instrucción a dos números enteros de 32 bits, cuatro números enteros de 16 bits u ocho. Enteros de 8 bits a la vez. [9]

MMX proporciona sólo operaciones con números enteros. Cuando se desarrolló originalmente, para el Intel i860 , el uso de matemáticas enteras tenía sentido (tanto los cálculos 2D como 3D lo requerían), pero a medida que las tarjetas gráficas que hacían gran parte de esto se volvieron comunes, el SIMD entero en la CPU se volvió algo redundante para las aplicaciones gráficas. [ cita necesaria ] Alternativamente, las operaciones aritméticas de saturación en MMX podrían [ vago ] acelerar significativamente algunas aplicaciones de procesamiento de señales digitales . [ cita necesaria ]

Para evitar problemas de compatibilidad con los mecanismos de cambio de contexto en los sistemas operativos existentes, los registros MMX son alias para los registros de unidad de punto flotante (FPU) x87 existentes , cuyos cambios de contexto ya se guardarían y restaurarían. A diferencia de los registros x87, que se comportan como una pila , los registros MMX son direccionables directamente (acceso aleatorio).

Cualquier operación que involucre la pila de punto flotante también podría afectar los registros MMX y viceversa, por lo que este alias dificulta el trabajo con operaciones de punto flotante y SIMD en el mismo programa. [10] Para maximizar el rendimiento, el software a menudo utilizaba el procesador exclusivamente en un modo u otro, posponiendo el cambio relativamente lento entre ellos el mayor tiempo posible.

Cada registro MMX de 64 bits corresponde a la parte mantisa de un registro x87 de 80 bits. Por lo tanto, los 16 bits superiores de los registros x87 no se utilizan en MMX, y todos estos bits están configurados en unos, lo que los convierte en tipos de datos No es un número ( NaN ), o infinitos en la representación de punto flotante. Esto puede ser utilizado por el software para decidir si el contenido de un registro determinado está pensado como datos de punto flotante o SIMD.

Soporte de software

El soporte de software para MMX se desarrolló lentamente. [5] El compilador C de Intel y las herramientas de desarrollo relacionadas obtuvieron elementos intrínsecos para invocar instrucciones MMX e Intel lanzó bibliotecas de algoritmos vectorizados comunes que utilizan MMX. Tanto Intel como Metrowerks intentaron la vectorización automática en sus compiladores, pero las operaciones en el lenguaje de programación C se correlacionaban mal con el conjunto de instrucciones MMX y los algoritmos personalizados a partir del año 2000 normalmente todavía tenían que escribirse en lenguaje ensamblador . [10]

Sucesores

AMD, un proveedor competidor de microprocesadores x86 , mejoró el MMX de Intel con su propio 3DNow! conjunto de instrucciones. 3DNow es mejor conocido por agregar soporte de punto flotante de precisión simple (32 bits) al conjunto de instrucciones SIMD, entre otras mejoras de números enteros y más generales.

Después de MMX, la siguiente gran extensión x86 de Intel fueron las Streaming SIMD Extensions (SSE), introducidas con la familia Pentium III [11] en 1999, [12] aproximadamente un año después de 3DNow! Fue presentado.

SSE abordó las deficiencias principales de MMX (incapacidad de combinar operaciones SIMD enteras con operaciones de punto flotante) mediante la creación de un nuevo archivo de registro de 128 bits de ancho (XMM0-XMM7) y nuevas instrucciones SIMD para él. Al igual que 3DNow!, SSE se centró exclusivamente en operaciones de punto flotante de precisión simple (32 bits); Las operaciones SIMD enteras todavía se realizaban utilizando el registro MMX y el conjunto de instrucciones. Sin embargo, el nuevo archivo de registro XMM permitió que las operaciones SSE SIMD se mezclaran libremente con operaciones MMX o x87 FPU.

Streaming SIMD Extensions 2 ( SSE2 ), introducida con el Pentium 4 , amplió aún más el conjunto de instrucciones SIMD x86 con soporte de datos enteros (8/16/32 bits) y de punto flotante de doble precisión para el archivo de registro XMM. SSE2 también permitió que los códigos de operación MMX ( códigos de operación ) usaran operandos de registro XMM, extendidos a registros YMM y ZMM aún más amplios mediante revisiones posteriores de SSE.

MMX en aplicaciones integradas

El núcleo del microprocesador XScale de Intel y Marvell Technology Group que comienza con PXA270 incluye una extensión de arquitectura de conjunto de instrucciones SIMD para el núcleo de arquitectura ARM denominada Tecnología Intel Wireless MMX (iwMMXt), cuyas funciones son similares a las de la extensión IA-32 MMX. [13] [14] [15] Proporciona operaciones aritméticas y lógicas en números enteros de 64 bits, en los que el software puede optar por realizar dos operaciones de 32 bits, cuatro de 16 bits u ocho de 8 bits en una sola instrucción. La extensión contiene 16 registros de datos de 64 bits y ocho registros de control de 32 bits. Se accede a todos los registros a través del mecanismo de mapeo de coprocesador de arquitectura ARM estándar. iwMMXt ocupa los espacios de los coprocesadores 0 y 1, y algunos de sus códigos de operación chocan con los códigos de operación de la extensión de punto flotante anterior, FPA. [ cita necesaria ]

Las versiones posteriores de los procesadores ARM de Marvell admiten códigos de operación Wireless MMX (WMMX) y Wireless MMX2 (WMMX2).

Ver también

Referencias

  1. ^ ab "Los fabricantes presentan PC con el chip MMX de Intel". Los New York Times . 9 de enero de 1997. Archivado desde el original el 13 de enero de 2019 . Consultado el 13 de enero de 2019 . La nueva tecnología de extensión multimedia de Intel, llamada MMX, ...
  2. ^ Ch, Rajiv; rasekaran (8 de enero de 1997). "Intel presentará un chip Pentium más rápido". El Washington Post . Archivado desde el original el 14 de enero de 2019 . Consultado el 13 de enero de 2019 .
  3. ^ "Procesadores Pentium integrados con tecnología MMX". Intel . Archivado desde el original el 11 de agosto de 2010 . Consultado el 28 de julio de 2007 .
  4. ^ Mittal, Millind; Peleg, Alex; Weiser, Uri (1997). "Descripción general de la arquitectura de la tecnología MMX" (PDF) . Revista de tecnología Intel . 1 (3). Archivado (PDF) desde el original el 4 de marzo de 2016 . Consultado el 29 de octubre de 2015 .
  5. ^ ab Calem, Robert E. (24 de enero de 1997). "MMX de Intel: la tecnología detrás del alboroto". Los New York Times . Archivado desde el original el 13 de enero de 2019 . Consultado el 13 de enero de 2019 .
  6. ^ Tanaka, Jennifer (16 de febrero de 1997). "Un nuevo chip del bloque". Semana de noticias . Archivado desde el original el 31 de agosto de 2019 . Consultado el 31 de agosto de 2019 . el nombre, que no significa nada
  7. ^ "Intel | Soluciones de centros de datos, IoT e innovación en PC". Archivado desde el original el 17 de diciembre de 2013 . Consultado el 17 de diciembre de 2013 .
  8. ^ "Intel y Advance Micro acuerdan la marca del chip". Los New York Times . 22 de abril de 1997. Archivado desde el original el 13 de enero de 2019 . Consultado el 13 de enero de 2019 .
  9. ^ Pfeiffer, Joseph J. Jr. (1997). «Microarquitectura MMX de Procesadores Pentium con Tecnología MMX y Microprocesadores Pentium II» (PDF) . Revista de tecnología Intel . Archivado desde el original (PDF) el 12 de enero de 2011 . Consultado el 1 de septiembre de 2017 .
  10. ^ ab Conte, G.; Tommesani, S.; Zanichelli, F. (2000). El largo y sinuoso camino hacia el procesamiento de imágenes de alto rendimiento con MMX/SSE (PDF) . Actas del taller internacional IEEE sobre arquitecturas informáticas para la percepción de máquinas. Archivado desde el original (PDF) el 28 de enero de 2016.
  11. ^ Kay, Alan S. (26 de febrero de 1999). "Pentium III: ¿Comprar los números?". El Washington Post . Archivado desde el original el 15 de abril de 2019 . Consultado el 13 de enero de 2019 .
  12. ^ "Salón de la fama de los microprocesadores". Museo Intel . Archivado desde el original el 6 de abril de 2008.
  13. ^ "Intel lleva la tecnología MMX ™ a dispositivos inalámbricos basados ​​en la arquitectura de cliente de Internet personal Intel®" . Consultado el 28 de julio de 2022 .
  14. ^ "Intel ofrece procesadores de próxima generación diseñados específicamente para teléfonos móviles y PDA inalámbricos". Archivado desde el original el 2 de enero de 2012 . Consultado el 28 de julio de 2022 .
  15. ^ "¿La tarjeta de CPU integrada PXA270 más pequeña del mundo?". Tiempos EE.UU. 15 de septiembre de 2004 . Consultado el 28 de julio de 2022 .

enlaces externos