SSE3 , Streaming SIMD Extensions 3 , también conocido por su nombre en código de Intel Prescott New Instructions ( PNI ), [1] es la tercera iteración del conjunto de instrucciones SSE para la arquitectura IA-32 (x86). Intel presentó SSE3 a principios de 2004 con la revisión Prescott de su CPU Pentium 4. [1] En abril de 2005, AMD presentó 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 nuevo, son MMX , 3DNow! (desarrollado por AMD, ya no compatible con CPU más nuevas), SSE y SSE2 .
SSE3 contiene 13 instrucciones nuevas respecto a SSE2 . [3]
El cambio más notable es la capacidad de trabajar horizontalmente en un registro, en oposición a la operación 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 usar 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í costosos bloqueos en el pipeline . Finalmente, la extensión agrega LDDQU
, una carga alternativa de vector entero desalineado 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
, pero ignora las configuraciones del modo de redondeo del registro de control de punto flotante y utiliza el modo "chop" (truncar) en su lugar. [4] Permite la omisión de 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 pone al procesador en un estado de bajo consumo de energía y espera un evento de escritura en la dirección monitoreada. [4]