SSE3

Conjunto de instrucciones de la CPU

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]

Cambios

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]

CPU con SSE3

Nuevas instrucciones

Instrucciones comunes

Aritmética

ADDSUBPD
Suma-Resta-Empaquetado-Doble [8]
  • Entrada: { A0, A1 }, { B0, B1 }
  • Salida: { A0 − B0, A1 + B1 }
ADDSUBPS
Suma-Resta-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
Doble empaquetamiento horizontal adicional [8]
  • Entrada: { A0, A1 }, { B0, B1 }
  • Salida: { A0 + A1, B0 + B1 }
HADDPS
Adición horizontal empaquetada simple [8]
  • Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
  • Salida: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}
HSUBPD
Resta horizontal empaquetada doble [8]
  • Entrada: { A0, A1 }, { B0, B1 }
  • Salida: { A0 − A1, B0 − B1 }
HSUBPS
Resta horizontal empaquetada simple [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
Al igual que la antigua instrucción x87 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.

Otras instrucciones

MONITOR,MWAIT
La MONITORinstrucción se utiliza para especificar una dirección de memoria para monitoreo, mientras que la MWAITinstrucció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]

Referencias

  1. ^ ab Shimpi, Anand Lal; Wilson, Derek. "El 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 - 4.º trimestre de 2004: AMD añade compatibilidad con SSE3, los modelos 925/915 de Intel no se venden y más". www.anandtech.com . Consultado el 10 de abril de 2023 .
  3. ^ "Tecnología de extensiones del conjunto de instrucciones de 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 entero no alineado de 128 bits". www.felixcloutier.com . Consultado el 10 de abril de 2023 .
  6. ^ Wilson, Derek. "Avances AMD K8 E4: rendimiento de SSE3". www.anandtech.com . Consultado el 10 de abril de 2023 .
  7. ^ "Intel Xeon 3.4GHz [núcleo 'Nocona']". HEXUS . 18 de agosto de 2004 . 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 .
  • Laboratorios X-bit
Obtenido de "https://es.wikipedia.org/w/index.php?title=SSE3&oldid=1246705997"