¡3D ahora!
¡3D ahora! es una extensión obsoleta del conjunto de instrucciones x86 desarrollada por Advanced Micro Devices . Agrega instrucciones SIMD adicionales al conjunto de instrucciones base x86, lo que permite realizar el procesamiento de punto flotante vectorial mediante registros vectoriales , lo que mejora el rendimiento de muchas aplicaciones con uso intensivo de gráficos. El primer microprocesador en implementar 3DNow fue el AMD K6-2 , que se introdujo en 1998. Al usar instrucciones en tareas adecuadas, la velocidad de procesamiento aumentó de 2 a 4 veces [1] .
¡ 3D ahora ! introdujo 21 nuevas instrucciones de procesador y la capacidad de operar en tipos reales de 32 bits en registros MMX estándar. ¡También se han agregado instrucciones especiales para optimizar el cambio a MMX/3DNow! (femms, que reemplazó la instrucción emms estándar) y funciona con el caché del procesador . Por lo tanto, 3DNow! expandió las capacidades de la tecnología MMX sin requerir la introducción de nuevos modos de procesador y nuevos registros.
A partir de la microarquitectura Bulldozer , no se admite la extensión (excepto el comando de captación previa). [2]
Comprobando 3DNow! procesador
Antes de empezar a trabajar con 3DNow! asegúrese de que la CPU los admita. Esto se hace usando la instrucción CPUID . El procedimiento general para la verificación es el siguiente:
- Asegúrese de que el procesador admita la instrucción CPUID . De lo contrario, la CPU no es compatible con 3DNow! .
- Ejecute la instrucción cpuid con EAX = 0; esto es necesario para el siguiente paso.
- Ejecute CPUID con valor EAX = 80000000h. Si después de ejecutar la instrucción, EAX tiene un valor menor a 1, entonces 3DNow! No soportado.
- Ejecute CPUID con EAX = 80000001h. Si el bit 31 del registro EDX se establece en 1 después de la ejecución, entonces 3DNow! soportado. De otra manera no.
¡3D ahora!
- PAVGUSB - promedio de valores enteros de 8 bits
- PI2FD : conversión de enteros de 32 bits a números reales
- PF2ID - convertir números reales a enteros de 32 bits
- PFCMPGE - comparación de números reales, mayores o iguales
- PFCMPGT - comparación de números reales, mayores que
- PFCMPEQ - comparación de números reales, igual a
- PFACC - acumulación de la suma de números reales
- PFADD - suma de números reales
- PFSUB - resta de números reales
- PFSUBR - Resta inversa de números reales
- PFMIN - encontrar el mínimo de números reales
- PFMAX - encontrar el máximo de números reales
- PFMUL - multiplicación de números reales
- PFRCP - encontrar el valor aproximado del recíproco de números reales (1/x)
- PFRSQRT - encontrar el valor aproximado inverso de la raíz cuadrada (1/sqrt(x)) de números reales
- PFRCPIT1 : el primer paso para calcular el valor, el inverso (1 / x) de los números reales
- PFRSQIT1 : el primer paso para calcular el inverso de la raíz cuadrada (1/sqrt(x)) de números reales
- PFRCPIT2 es la segunda bola para calcular el valor inverso o inverso de la raíz cuadrada de los números reales
- PMULHRW - Multiplicar enteros de 16 bits con redondeo
- FEMMS - Conmutación rápida de estado FPU/MMX
- PREFETCH / PREFETCHW : obtención previa de una línea de caché del procesador de la memoria
- FEMCA - encontrar el vector integral
Procesadores compatibles con 3DNow!
Véase también
Notas
- ↑ Utilización efectiva de 3DNow en Linux . Linux Journal (1 de diciembre de 1999). Consultado el 3 de octubre de 2010. Archivado desde el original el 7 de junio de 2011.
- ↑ [1] Archivado el 28 de marzo de 2017 en la página 207 de Wayback Machine : "19 Tubería AMD Bulldozer, Piledriver, Steamroller y Excavator: las instrucciones 3DNow ya no son compatibles, excepto las instrucciones de precarga".
Enlaces