Articulo de referencia

SSE3

SSE3 , Streaming SIMD Extensions 3 , también conocido por su nombre en clave de Intel Prescott New Instructions ( PNI ), [ 1 ] es la tercera iteración del conjunto de instruccio...

SSE3 , Streaming SIMD Extensions 3 , también conocido por su nombre en clave de Intel Prescott New Instructions ( PNI ), [ 1 ] es la tercera iteración del conjunto de instrucciones SSE para la arquitectura IA-32 (x86). Intel introdujo SSE3 en 2004 con la revisión Prescott de sus CPU Pentium 4 y Celeron D. [ 1 ] En abril de 2005, AMD introdujo 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 reciente, son MMX , 3DNow! (desarrollado por AMD, ya no compatible con las CPU más nuevas), SSE y SSE2 .

SSE3 contiene 13 instrucciones nuevas con respecto a 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 añadido instrucciones para sumar y restar los múltiples valores almacenados en un solo registro. [ 4 ] Estas instrucciones pueden utilizarse para acelerar la implementación de varias operaciones DSP y 3D . También hay una nueva instrucción para convertir valores de punto flotante a enteros sin tener que cambiar el modo de redondeo global, evitando así costosos bloqueos de la tubería . Finalmente, la extensión añade LDDQUuna carga de vector de enteros 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 ]

CPUs con SSE3

Nuevas instrucciones

Instrucciones comunes

Aritmética

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

AOS (Arreglo de Estructuras)

HADDPD
Horizontal-Add-Packed-Double [ 8 ]
  • Entrada: { A0, A1 }, { B0, B1 }
  • Salida: { A0 + A1, B0 + B1 }
HADDPS
Horizontal-Add-Packed-Single [ 8 ]
  • Entrada: {A0, A1, A2, A3}, {B0, B1, B2, B3}
  • Salida: {A0 + A1, A2 + A3, B0 + B1, B2 + B3}
HSUBPD
Doble empaquetado horizontalmente restado [ 8 ]
  • Entrada: { A0, A1 }, { B0, B1 }
  • Salida: { A0 − A1, B0 − B1 }
HSUBPS
Horizontal-Restación-Empaquetado-Single [ 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
Similar a la instrucción x87 anterior FISTP, pero ignora la configuración del modo de redondeo del registro de control de punto flotante y utiliza el modo "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 float a int requiere el comportamiento de truncamiento por defecto.

Otras instrucciones

MONITOR,MWAIT
La MONITORinstrucción se utiliza para especificar una dirección de memoria para su monitorización, mientras que la MWAITinstrucción pone al procesador en un estado de bajo consumo y espera un evento de escritura en la dirección monitorizada. [ 4 ]

Referencias

  1. 1 2 Shimpi, Anand Lal; Wilson, Derek. "Pentium 4 E de Intel: Prescott llega con equipaje" . www.anandtech.com . Archivado del original el 24 de abril de 2010. Recuperado el 10 de abril de 2023 .
  2. Shimpi, Anand Lal. "Actualización de la industria - Cuarto trimestre de 2004: AMD agrega soporte para SSE3, los procesadores Intel 925/915 no se venden y más" . www.anandtech.com . Archivado del original el 9 de agosto de 2010. Consultado el 10 de abril de 2023 .
  3. "Intel Instruction Set Extensions Technology". Intel. Retrieved 2023-04-10.
  4. 1234Wright, Christopher. "SSE3 Instruction Set". softpixel.com. Retrieved 2023-04-10.
  5. "LDDQU — Load Unaligned Integer 128 Bits". www.felixcloutier.com. Retrieved 2023-04-10.
  6. Wilson, Derek. "AMD K8 E4 Stepping: SSE3 Performance". www.anandtech.com. Archived from the original on July 6, 2010. Retrieved 2023-04-10.
  7. "Intel Xeon 3.4GHz ['Nocona' core]". HEXUS. 2004-08-18. Retrieved 2023-04-10.
  8. 1234567"SSE3 Instructions - x86 Assembly Language Reference Manual". docs.oracle.com. Retrieved 2023-04-10.
  • X-bit Labs
Obtenido de " https://en.wikipedia.org/w/index.php?title=SSE3&oldid=1309323038 "