Articulo de referencia

¡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 ...

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 una época en la que los gráficos 3D se estaban convirtiendo en algo habitual en los juegos y los sistemas multimedia de 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:

  • PI2FD – Conversión de enteros de 32 bits empaquetados a números de punto flotante
  • PF2ID – Conversión de punto flotante empaquetado a entero de 32 bits
  • PFCMPGE – Comparación de punto flotante empaquetado, mayor o igual
  • PFCMPGT – Comparación de punto flotante empaquetado, mayor
  • PFCMPEQ – Comparación de punto flotante empaquetado, igual
  • PFACC – Acumulación de punto flotante empaquetada
  • PFADD – Adición de punto flotante empaquetada
  • PFSUB – Resta de punto flotante empaquetada
  • PFSUBR – Resta inversa de punto flotante empaquetada
  • PFMIN – Mínimo de punto flotante empaquetado
  • PFMAX – Máximo de punto flotante empaquetado
  • PFMUL – Multiplicación de punto flotante empaquetada
  • PFRCP – Aproximación recíproca de punto flotante empaquetado
  • PFRSQRT – Aproximación de raíz cuadrada recíproca de punto flotante empaquetada
  • PFRCPIT1 – Recíproco de punto flotante empaquetado, primer paso de iteración
  • PFRSQIT1 – Raíz cuadrada recíproca de punto flotante empaquetada, primer paso de iteración
  • PFRCPIT2 – Raíz cuadrada recíproca/recíproca de punto flotante empaquetada, segundo paso de iteración

Las instrucciones enteras de 3DNow! son las siguientes:

  • PAVGUSB – Promedio de enteros sin signo de 8 bits empaquetados
  • PMULHRW – Multiplicación de enteros de 16 bits empaquetados con redondeo

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

  • FEMMS – Entrada/salida más rápida del estado MMX o de punto flotante
  • PREFETCH/PREFETCHW – Precargar al menos una línea de 32 bytes en la caché de datos L1 (esta es la única instrucción que no está obsoleta)

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:

  • PF2IW – Conversión de palabras de punto flotante empaquetadas a palabras enteras con extensión de signo
  • PI2FW – Conversión de palabras enteras empaquetadas a punto flotante
  • PFNACC – Acumulación negativa de punto flotante empaquetada
  • PFPNACC – Acumulación positiva-negativa mixta de punto flotante empaquetada
  • PSWAPD – Palabra doble de intercambio empaquetada

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

  • MASKMOVQ – Almacenamiento en streaming (omisión de caché) mediante máscara de bytes
  • MOVNTQ – Tienda de streaming (omisión de caché)
  • PAVGB – Promedio empaquetado de bytes sin signo
  • PAVGW – Promedio empaquetado de palabras sin signo
  • PMAXSW – Palabra firmada máxima empaquetada
  • PMAXUB – Byte máximo sin signo empaquetado
  • PMINSW – Palabra firmada mínima empaquetada
  • PMINUB – Byte mínimo sin signo empaquetado
  • PMULHUW – Palabra sin signo de múltiples caracteres empaquetada y alta
  • PSADBW – Suma empaquetada de diferencias absolutas de bytes
  • PSHUFW – Palabra aleatoria empaquetada
  • PEXTRW – Extraer palabra en registro entero
  • PINSRW – Insertar palabra del registro entero
  • PMOVMSKB – Mueve la máscara de bytes al registro entero
  • PREFETCHNTA – Precargar utilizando la referencia NTA
  • PREFETCHT0 – Precargar utilizando la referencia T0
  • PREFETCHT1 – Precargar utilizando la referencia T1
  • PREFETCHT2 – Precargar utilizando la referencia T2
  • SFENCE – Valla de tienda

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 completa con SSE). [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:

  • PFRSQRTV – Aproximación de raíz cuadrada recíproca para un par de puntos flotantes de 32 bits
  • PFRCPV – Aproximación recíproca para un par de flotantes de 32 bits

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 de x87. Pueden guardar no solo los estados de registro de SSE, sino también los estados de registro de 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!

  • Todos los procesadores AMD posteriores a K6-2 (basados ​​en K6), familias de arquitectura Athlon, Athlon 64 y Phenom.
    • No compatible con procesadores de arquitectura Bulldozer, Bobcat y Zen y sus derivados.
    • El último procesador APU de AMD compatible con 3DNow! es el A8-3870K, que se basa en la arquitectura Llano . También es el único APU con instrucciones 3DNow!, ya que Bobcat y modelos superiores no lo admiten.
  • National Semiconductor Geode GX2 , más tarde AMD Geode .
  • Núcleos VIA C3 (también conocido como Cyrix III ) "Samuel", "Samuel 2", "Ezra" y "Eden ESP".
  • Chip WinChip 2 y 3 de IDT

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:  ad82cd69.0307090931.25391323@posting.google.com. 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

  • Case, Brian (1 de junio de 1998). "3DNow mejora el rendimiento 3D de los procesadores no Intel". Microprocessor Report .
  • Oberman, S.; Favor, G.; Weber, F. (marzo de 1999). "Tecnología AMD 3DNow: arquitectura e implementaciones". IEEE Micro .
  • 3DNow Technology Partners, archivado del original (eliminado del sitio web de AMD a principios de 2001)
  • Guía de instalación de instrucciones para AMD 3DNow (PDF), archivada desde el original (eliminada del sitio web de AMD en 2014)
  • Manual de tecnología 3DNow
  • Manual de extensiones de AMD para los conjuntos de instrucciones 3DNow y MMX
  • Ficha técnica de los procesadores AMD Geode LX
Obtenido de "https://es.wikipedia.org/w/index.php?title=¡3DAhora!&oldid=1244087076"