SSE3
SSE3, Streaming SIMD Extensions 3, también conocido por su nombre en clave Intel Prescott New Instrucciones (PNI), 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. En abril de 2005, AMD introdujo un subconjunto de SSE3 en la revisión E (Venecia y San Diego) de sus CPU Athlon 64. 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.
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 agregado instrucciones para sumar y restar los múltiples valores almacenados dentro de un solo registro. 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é.
CPU with SSE3
- AMD:
- Opteron (since Stepping E4)
- Sempron (desde Palermo. Paso E3)
- Athlon 64 (desde Venecia Paso E3 y San Diego Paso E4)
- Athlon 64 FX (desde San Diego Paso E4)
- Athlon 64 X2
- Phenom 64 X2
- Turion family
- K10 family
- Familia APU (incluyendo sin GPU)
- Serie FX
- Familia Zen
- Intel:
- Celeron D
- Celeron (comenzando con la microarquitectura Core)
- Pentium 4 (since Prescott)
- Pentium D
- Pentium Extreme Edition (pero NO Pentium 4 Extreme Edition)
- Pentium Dual-Core
- Pentium (comenzando con la microarquitectura Core)
- Core
- Xeon (desde Nocona)
- Atom
- VIA/Centaur:
- C7
- Nano
- Transmeta Efficeon TM88xx (Números de Modelo NOT TM86xx)
Nuevas instrucciones
Instrucciones comunes
Aritmética
ADDSUBPD
- Add-Subtract-Packed-Double
- Entrada:
- Producto: { A0 - B0, A1 + B1 }
ADDSUBPS
- Add-Subtract-Packed-Single
- Entrada: { A0, A1, A2, A3}, { B0, B1, B2, B3 }
- Producto: { A0 - B0, A1 + B1, A2 − B2, A3 + B3 }
AOS (matriz de estructuras)
HADDPD
- Horizontal-Add-Packed-Double
- Entrada:
- Producto: { A0 + A1, B0 + B1 }
HADDPS
- Horizontal-Add-Packed-Single
- Entrada: { A0, A1, A2, A3}, { B0, B1, B2, B3 }
- Producto: { A0 + A1, A2 + A3, B0 + B1, B2 + B3 }
HSUBPD
- Horizontal-Subtract-Packed-Double
- Entrada:
- Producto:
HSUBPS
- Horizontal-Subtract-Packed-Single
- Entrada: { A0, A1, A2, A3}, { B0, B1, B2, B3 }
- Producto: A0 - A1, A2 - A3, B0 - B1, B2 - B3
LDDQU
- Como se ha indicado anteriormente, se trata de una carga vectorial inteligible alternativa. Puede ser útil para tareas de compresión de vídeo.
MOVDDUP
,MOVSHDUP
,MOVSLDUP
- Estos son útiles para números complejos y cálculo de ondas como sonido.
FISTTP
- Como el x87 más viejo
FISTP
instrucción, pero ignora la configuración del modo de redondeo del registro de control de puntos flotante y utiliza el modo "cop" (truncate). Permite omisión de la carga costosa y la recarga del registro de control en idiomas tales como C donde la conversión flotante-en-int requiere un comportamiento truncado por norma.
Otras instrucciones
MONITOR
,MWAIT
- El
MONITOR
instrucciones se utiliza para especificar una dirección de memoria para el monitoreo, mientras que laMWAIT
la instrucción coloca al procesador en un estado de baja potencia y espera un evento de escritura a la dirección monitorizada.
Contenido relacionado
Cifrado basado en certificados
Túnel de Rotherhithe
Sistema de instalación programable de Nullsoft