stringtranslate.com

SSE3

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]

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. [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]

CPU con SSE3

Nuevas instrucciones

Instrucciones comunes

Aritmética

ADDSUBPD
Sumar-Restar-Empaquetado-Doble [8]
  • Entrada: {A0, A1}, {B0, B1}
  • Salida: {A0 - B0, A1 + B1}
ADDSUBPS
Sumar-Restar-Empaquetado-Único [8]
  • Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
  • Salida: {A0 - B0, A1 + B1, A2 - B2, A3 + B3}

AOS (matriz de estructuras)

HADDPD
Horizontal-Agregar-Empaquetado-Doble [8]
  • Entrada: {A0, A1}, {B0, B1}
  • Salida: {A0 + A1, B0 + B1}
HADDPS
Horizontal-Agregar-Empaquetado-Único [8]
  • Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
  • Salida: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}
HSUBPD
Horizontal-Restar-Empaquetado-Doble [8]
  • Entrada: {A0, A1}, {B0, B1}
  • Salida: {A0 - A1, B0 - B1}
HSUBPS
Horizontal-Restar-Empaquetado-Único [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 vectorial entera desalineada alternativa. [8] Puede resultar útil para tareas de compresión de vídeo.
MOVDDUP, MOVSHDUP, MOVSLDUP[4]
Son útiles para números complejos y cálculos de ondas como el sonido.
FISTTP
Como la FISTPinstrucció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.

Otras instrucciones

MONITOR,MWAIT
La MONITORinstrucción se utiliza para especificar una dirección de memoria para monitoreo, mientras que la MWAITinstrucción coloca el procesador en un estado de bajo consumo y espera un evento de escritura en la dirección monitoreada. [4]

Referencias

  1. ^ ab Wilson, Anand Lal Shimpi y Derek. "Pentium 4 E de Intel: Prescott llega con equipaje". www.anandtech.com . Consultado el 10 de abril de 2023 .
  2. ^ Shimpi, Anand Lal. "Actualización de la industria - Cuarto trimestre de 2004: AMD agrega soporte SSE3, Intel 925/915 no se vende y más". www.anandtech.com . Consultado el 10 de abril de 2023 .
  3. ^ "Tecnología de extensiones de conjuntos de instrucciones Intel". Intel . Consultado el 10 de abril de 2023 .
  4. ^ abcd Wright, Christopher. "Conjunto de instrucciones SSE3". softpixel.com . Consultado el 10 de abril de 2023 .
  5. ^ "LDDQU: cargar un entero no alineado de 128 bits". www.felixcloutier.com . Consultado el 10 de abril de 2023 .
  6. ^ Wilson, Derek. "Paso a paso AMD K8 E4: rendimiento SSE3". www.anandtech.com . Consultado el 10 de abril de 2023 .
  7. ^ "Intel Xeon 3,4 GHz [núcleo 'Nocona']". HEXO . 2004-08-18 . Consultado el 10 de abril de 2023 .
  8. ^ abcdefg "Instrucciones SSE3 - Manual de referencia del lenguaje ensamblador x86". docs.oracle.com . Consultado el 10 de abril de 2023 .

enlaces externos