stringtranslate.com

¡3DAhora!

3DNow! es una extensión obsoleta del conjunto de instrucciones x86 desarrollado por Advanced Micro Devices (AMD). Agrega instrucciones SIMD ( instrucción única, múltiples datos ) al conjunto de instrucciones x86 base, lo que le permite realizar el procesamiento vectorial de operaciones vectoriales de punto flotante utilizando registros vectoriales . Esta mejora mejora el rendimiento de muchas aplicaciones con uso intensivo de gráficos. El primer microprocesador que implementó 3DNow! fue el AMD K6-2 , presentado en 1998. En aplicaciones apropiadas, esta mejora aumentó la velocidad aproximadamente entre 2 y 4 veces. [1]

Sin embargo, el conjunto de instrucciones nunca ganó mucha popularidad, y AMD anunció en agosto de 2010 que el soporte para 3DNow! se eliminaría en futuros procesadores AMD, excepto para dos instrucciones, PREFETCHy PREFETCHW. [2] Estas dos instrucciones también están disponibles en los procesadores Intel Bay-Trail. [3]

Historia

3DNow! se desarrolló en un momento en el que los gráficos 3D se estaban convirtiendo en algo habitual en los juegos y los sistemas multimedia para PC. La visualización en tiempo real de gráficos 3D dependía en gran medida de la unidad de coma flotante (FPU) de la CPU anfitriona para realizar cálculos de coma flotante , una tarea en la que el procesador K6 de AMD era fácilmente superado por su competidor, el Intel Pentium II.

Como mejora del conjunto de instrucciones MMX , el conjunto de instrucciones 3DNow! aumentó los registros SIMD de MMX para admitir operaciones aritméticas comunes (sumar/restar/multiplicar) en datos de punto flotante de precisión simple (32 bits). El software escrito para usar 3DNow! de AMD en lugar de la FPU x87 más lenta podía ejecutarse hasta cuatro veces más rápido, según la combinación de instrucciones.

Versiones

¡3DAhora!

La primera implementación de la tecnología 3DNow! contiene 21 nuevas instrucciones que admiten operaciones de punto flotante SIMD . El formato de datos de 3DNow! es de punto flotante, de precisión simple y empaquetado. El conjunto de instrucciones de 3DNow! también incluye operaciones para operaciones con números enteros SIMD, precarga de datos y conmutación más rápida de MMX a punto flotante. Más tarde, Intel agregaría instrucciones similares (pero incompatibles) al Pentium III , conocidas como SSE (Streaming SIMD Extensions).

Las instrucciones de punto flotante de 3DNow! son las siguientes:

Las instrucciones enteras de 3DNow! son las siguientes:

Las instrucciones para mejorar el rendimiento de 3DNow! son las siguientes:

Extensiones de 3DNow!

Hay poca o ninguna evidencia de que la segunda versión de 3DNow! haya recibido oficialmente su propio nombre comercial. Esto ha provocado cierta confusión en la documentación que hace referencia a este nuevo conjunto de instrucciones. Los términos más comunes son Extended 3DNow!, Enhanced 3DNow! y 3DNow!+ . La frase "Enhanced 3DNow!" se puede encontrar en algunas ubicaciones en el sitio web de AMD, pero la capitalización de "Enhanced" parece ser puramente gramatical o utilizada para enfatizar los procesadores que pueden o no tener estas extensiones (la más notable de las cuales hace referencia a una página de evaluación comparativa para el K6-III-P que no tiene estas extensiones). [4] [5]

Esta extensión del conjunto de instrucciones 3DNow! se introdujo con los procesadores Athlon de primera generación . El Athlon agregó cinco nuevas instrucciones 3DNow! y 19 nuevas instrucciones MMX. Más tarde, el K6-2+ y el K6-III+ (ambos orientados al mercado móvil) incluyeron las cinco nuevas instrucciones 3DNow!, dejando fuera las 19 nuevas instrucciones MMX. Las nuevas instrucciones 3DNow! se agregaron para impulsar el procesamiento digital de señales (DSP) . Las nuevas instrucciones MMX se agregaron para impulsar la transmisión de medios .

Las 19 nuevas instrucciones MMX son un subconjunto del conjunto de instrucciones SSE de Intel. En los manuales técnicos de AMD, AMD separa estas instrucciones de las extensiones 3DNow! [4] Sin embargo, en la literatura de productos para clientes de AMD, esta segregación es menos clara, ya que los beneficios de las 24 nuevas instrucciones se atribuyen a la tecnología 3DNow! mejorada. [6] Esto ha llevado a los programadores a idear su propio nombre para las 19 nuevas instrucciones MMX. La más común parece ser Integer SSE ( ISSE ). [7] SSEMMX y MMX2 también se encuentran en la documentación de filtros de video del sector de dominio público. ISSE también podría referirse a Internet SSE, un nombre temprano para SSE.

Las instrucciones DSP de la extensión 3DNow! son las siguientes:

Las instrucciones de extensión MMX (Integer SSE) son las siguientes:

3DNow! Profesional

3DNow! Professional es un nombre comercial utilizado para indicar procesadores que combinan la tecnología 3DNow! con un conjunto completo de instrucciones SSE (como SSE, SSE2 o SSE3). [8] El Athlon XP fue el primer procesador que llevó el nombre comercial 3DNow! Professional y fue el primer producto de la familia Athlon en soportar el conjunto completo de instrucciones SSE (para un total de: 21 instrucciones 3DNow! originales; cinco instrucciones DSP de extensión 3DNow!; 19 instrucciones de extensión MMX; y 52 instrucciones SSE adicionales para una compatibilidad SSE completa). [9]

3DNow! y el Geode GX/LX

Geode GX y Geode LX agregaron dos nuevas instrucciones 3DNow! que están ausentes en todos los demás procesadores.

Las instrucciones "profesionales" de 3DNow! exclusivas para Geode GX/LX son las siguientes:

Ventajas y desventajas

Una ventaja de 3DNow! es que es posible sumar o multiplicar dos números que están almacenados en el mismo registro . Con SSE, cada número sólo se puede combinar con un número que esté en la misma posición en otro registro. Esta capacidad, conocida como horizontal en la terminología de Intel, fue la principal incorporación al conjunto de instrucciones SSE3 .

Una desventaja de 3DNow! es que las instrucciones 3DNow! y las instrucciones MMX comparten el mismo archivo de registros, mientras que SSE agrega 8 nuevos registros independientes ( XMM0XMM7).

Debido a que los registros MMX/3DNow! son compartidos por la FPU x87 estándar , las instrucciones 3DNow! y las instrucciones x87 no se pueden ejecutar simultáneamente. Sin embargo, debido a que están asociadas a la FPU x87, los estados de los registros 3DNow! y MMX se pueden guardar y restaurar mediante las instrucciones F(N)SAVEy x87 tradicionales F(N)RSTOR. Esta disposición permitió que los sistemas operativos admitieran 3DNow! sin modificaciones explícitas, mientras que los registros SSE requerían compatibilidad explícita con el sistema operativo para guardar y restaurar correctamente los nuevos registros XMM (a través de las instrucciones FXSAVEy agregadas FXRSTOR).

Las instrucciones FX* de SSE proporcionan un superconjunto funcional de las antiguas instrucciones de guardado y restauración x87. Pueden guardar no solo los estados de registro de SSE, sino también los estados de registro x87 (por lo tanto, también son aplicables para operaciones MMX y 3DNow! donde sean compatibles).

En los núcleos basados ​​en AMD Athlon XP y K8 (es decir, Athlon 64 ), los programadores de ensamblaje han notado que es posible combinar instrucciones 3DNow! y SSE para reducir la presión del registro , pero en la práctica es difícil mejorar el rendimiento debido a que las instrucciones se ejecutan en unidades funcionales compartidas. [10]

Procesadores compatibles con 3DNow!

Referencias

  1. ^ "Utilización eficaz de 3DNow en Linux". Linux Journal. 1 de diciembre de 1999. Archivado desde el original el 7 de junio de 2011. Consultado el 3 de octubre de 2010 .
  2. ^ "Las instrucciones 3DNow están en desuso | AMD Developer Central". Blogs.amd.com. 18 de agosto de 2010. Archivado desde el original el 24 de octubre de 2010. Consultado el 3 de octubre de 2010 .
  3. ^ "IntelE38xx - MinnowBoard Wiki". Archivado desde el original el 11 de febrero de 2017 . Consultado el 13 de febrero de 2017 .
  4. ^ ab "Manual de extensiones de AMD para los conjuntos de instrucciones 3DNow y MMX" (PDF) . Advanced Micro Devices, Inc. Marzo de 2000. Archivado (PDF) desde el original el 17 de mayo de 2008 . Consultado el 7 de junio de 2008 .
  5. ^ "Portátil basado en procesador móvil AMD-K6-III-P: Ziff-Davis CPUmark 99". Archivado desde el original el 24 de julio de 2008. Consultado el 7 de junio de 2008. Título incorrecto en la página: Procesadores móviles AMD-K6-III+ y AMD-K6-2+ con tecnología 3DNow! mejorada
  6. ^ "Resumen del procesador AMD Athlon". Advanced Micro Devices, Inc. Archivado desde el original el 25 de febrero de 2008. Consultado el 8 de junio de 2008 .
  7. ^ "ISSE". AviSynth . Archivado desde el original el 2017-07-02 . Consultado el 2017-07-19 .
  8. ^ "Explicación de la nueva tecnología profesional 3DNow!". Advanced Micro Devices, Inc. Archivado desde el original el 21 de enero de 2009. Consultado el 8 de junio de 2008 .
  9. ^ "Características arquitectónicas del AMD Athlon XP". Advanced Micro Devices, Inc. Archivado desde el original el 25 de febrero de 2008. Consultado el 8 de junio de 2008 .
  10. ^ Larry Lewis (9 de julio de 2003). «3DNow+ vs SSE en Athlon XP». Grupo de noticias : comp.sys.ibm.pc.hardware.chips. Usenet:  [email protected]. Archivado desde el original el 3 de octubre de 2012. Consultado el 4 de enero de 2023 a través de Google Groups.

Lectura adicional

Enlaces externos