SSE3 , Streaming SIMD Extensions 3 , también conocido por su nombre en clave Intel Prescott New Instrucciones ( PNI ), [1] es la tercera iteración del conjunto de instrucciones SSE para la arquitectura IA-32 (x86). Intel introdujo SSE3 a principios de 2004 con la revisión Prescott de su CPU Pentium 4 . [1] En abril de 2005, AMD introdujo un subconjunto de SSE3 en la revisión E (Venecia 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 nuevo, son MMX , 3DNow! (desarrollado por AMD, ya no es compatible con CPU más nuevas), SSE y SSE2 .
SSE3 contiene 13 nuevas instrucciones sobre SSE2 . [3]
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 agregado instrucciones para sumar y restar los múltiples valores almacenados dentro de un solo registro. [4] Estas instrucciones se pueden utilizar para acelerar la implementación de una serie de operaciones DSP y 3D . También hay una nueva instrucción para convertir valores de punto flotante a números enteros sin tener que cambiar el modo de redondeo global, evitando así costosas paradas en el proceso . Finalmente, la extensión agrega LDDQU
, una carga de vector entero 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]
ADDSUBPD
ADDSUBPS
HADDPD
HADDPS
HSUBPD
HSUBPS
LDDQU
MOVDDUP
, MOVSHDUP
, MOVSLDUP
[4]FISTTP
FISTP
instrucción x87 anterior, pero ignora la configuración del modo de redondeo del registro de control de punto flotante y utiliza el modo "cortar" (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 flotante a int requiere un comportamiento de truncamiento por estándar.MONITOR
,MWAIT
MONITOR
instrucción se utiliza para especificar una dirección de memoria para monitoreo, mientras que la MWAIT
instrucción coloca el procesador en un estado de bajo consumo y espera un evento de escritura en la dirección monitoreada. [4]