SSE3 , Streaming SIMD Extensions 3 , también conocido por su nombre en clave de Intel Prescott New Instructions ( PNI ), [ 1 ] es la tercera iteración del conjunto de instrucciones SSE para la arquitectura IA-32 (x86). Intel introdujo SSE3 en 2004 con la revisión Prescott de sus CPU Pentium 4 y Celeron D. [ 1 ] En abril de 2005, AMD introdujo un subconjunto de SSE3 en la revisión E (Venice y San Diego) de sus CPU Athlon 64. [ 2 ] Los conjuntos de instrucciones SIMD anteriores en la plataforma x86 , del más antiguo al más reciente, son MMX , 3DNow! (desarrollado por AMD, ya no compatible con las CPU más nuevas), SSE y SSE2 .
SSE3 contiene 13 instrucciones nuevas con respecto a SSE2 . [ 3 ]
Cambios
El cambio más notable es la capacidad de trabajar horizontalmente en un registro, a diferencia del funcionamiento más o menos estrictamente vertical de todas las instrucciones SSE anteriores. Más específicamente, se han añadido instrucciones para sumar y restar los múltiples valores almacenados en un solo registro. [ 4 ] Estas instrucciones pueden utilizarse para acelerar la implementación de varias operaciones DSP y 3D . También hay una nueva instrucción para convertir valores de punto flotante a enteros sin tener que cambiar el modo de redondeo global, evitando así costosos bloqueos de la tubería . Finalmente, la extensión añade LDDQUuna carga de vector de enteros desalineada alternativa que tiene un mejor rendimiento en plataformas basadas en NetBurst para cargas que cruzan los límites de la línea de caché. [ 5 ]
CPUs con SSE3
- AMD :
- Opteron (desde Stepping E4 [ 6 ] )
- Sempron (desde Palermo. Paso E3)
- Athlon 64 (desde Venice Stepping E3 y San Diego Stepping E4)
- Athlon 64 FX (desde San Diego Stepping E4)
- Athlon 64 X2
- Phenom 64 X2
- Athlon II y Phenom II
- Familia Turión
- Familia K10
- Familia de APU (incluyendo sin GPU)
- Serie FX
- Familia Zen
- Intel :
- VÍA / Centauro :
- Actualización de software Transmeta Efficeon TM88xx con Code Morphing (NO para los modelos TM86xx)
Nuevas instrucciones
Instrucciones comunes
Aritmética
ADDSUBPD- Agregar-Restar-Doble-Empaquetado [ 8 ]
- Entrada: { A0, A1 }, { B0, B1 }
- Salida: { A0 − B0, A1 + B1 }
ADDSUBPS- Agregar-Restar-Empaquetado-Single [ 8 ]
- Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
- Salida: {A0 - B0, A1 + B1, A2 - B2, A3 + B3}
AOS (Arreglo de Estructuras)
HADDPD- Horizontal-Add-Packed-Double [ 8 ]
- Entrada: { A0, A1 }, { B0, B1 }
- Salida: { A0 + A1, B0 + B1 }
HADDPS- Horizontal-Add-Packed-Single [ 8 ]
- Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
- Salida: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}
HSUBPD- Doble empaquetado horizontalmente restado [ 8 ]
- Entrada: { A0, A1 }, { B0, B1 }
- Salida: { A0 − A1, B0 − B1 }
HSUBPS- Horizontal-Restación-Empaquetado-Single [ 8 ]
- Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
- Salida: {A0 - A1, A2 - A3, B0 - B1, B2 - B3}
LDDQU- Como se indicó anteriormente, esta es una carga de vector entero desalineado alternativa. [ 8 ] Puede ser útil para tareas de compresión de video.
MOVDDUP,MOVSHDUP,MOVSLDUP[ 4 ]- Son útiles para números complejos y cálculos de ondas como el sonido.
FISTTP- Similar a la instrucción x87 anterior
FISTP, pero ignora la configuración del modo de redondeo del registro de control de punto flotante y utiliza el modo "truncar" en su lugar. [ 4 ] Permite omitir la costosa carga y recarga del registro de control en lenguajes como C, donde la conversión de float a int requiere el comportamiento de truncamiento por defecto.
Otras instrucciones
MONITOR,MWAIT- La
MONITORinstrucción se utiliza para especificar una dirección de memoria para su monitorización, mientras que laMWAITinstrucción pone al procesador en un estado de bajo consumo y espera un evento de escritura en la dirección monitorizada. [ 4 ]
Referencias
- 1 2 Shimpi, Anand Lal; Wilson, Derek. "Pentium 4 E de Intel: Prescott llega con equipaje" . www.anandtech.com . Archivado del original el 24 de abril de 2010. Recuperado el 10 de abril de 2023 .
- ↑ Shimpi, Anand Lal. "Actualización de la industria - Cuarto trimestre de 2004: AMD agrega soporte para SSE3, los procesadores Intel 925/915 no se venden y más" . www.anandtech.com . Archivado del original el 9 de agosto de 2010. Consultado el 10 de abril de 2023 .
- ↑"Intel Instruction Set Extensions Technology". Intel. Retrieved 2023-04-10.
- 1234Wright, Christopher. "SSE3 Instruction Set". softpixel.com. Retrieved 2023-04-10.
- ↑"LDDQU — Load Unaligned Integer 128 Bits". www.felixcloutier.com. Retrieved 2023-04-10.
- ↑Wilson, Derek. "AMD K8 E4 Stepping: SSE3 Performance". www.anandtech.com. Archived from the original on July 6, 2010. Retrieved 2023-04-10.
- ↑"Intel Xeon 3.4GHz ['Nocona' core]". HEXUS. 2004-08-18. Retrieved 2023-04-10.
- 1234567"SSE3 Instructions - x86 Assembly Language Reference Manual". docs.oracle.com. Retrieved 2023-04-10.
External links
- X-bit Labs
- Instrucciones X86
- computación SIMD