SSE3

SSE3.
Información sobre la plantilla
SSE.jpg
SSE3 adiciona 13 nuevas instrucciones SIMD adicionales por encima de SSE2.

SSE3. Acrónimo de Streaming SIMD (Single Instruction Multiple Data) Extensions 3, es la tercera generación de las instrucciones SSE para la arquitectura IA-32. Fue introducida por Intel a inicios del 2004 con la revisión Prescott de su procesador Pentium 4. SSE3 adiciona solo 13 nuevas instrucciones; pero introdujo nuevas características como la "operación horizontal"(opera a través de un registro único en lugar de múltiples registros) y algunas instrucciones de acceso desalineadas.

Hay también un par de instrucciones de control de proceso para mejorar el rendimiento con la característica de HyperThreading de Intel.

AMD inició soportando SSE3 en Abril de 2005, omitiendo las instrucciones monitor y mwait, las cuales solo son útiles para los procesadores con HyperThreading.

Nuevas caracteríticas

Concretamente se añadieron ciertas instrucciones para sumar y restar múltiples valores almacenados en un mismo registro. Estas instrucciones simplifican enormemente las implementaciones de operaciones con Procesamiento digital de señales y Gráficos 3D por computadora.
También hay nuevas instrucciones para convertir números en punto flotante a enteros sin tener que cambiar el modo global de redondeo.

Ventajas

Las 13 instrucciones nuevas de SSE3 están diseñadas principalmente para mejorar la sincronización de subprocesos y las áreas de aplicación específicas, como los medios y los videojuegos.

Algunas de las instrucciones

  • ADDSUBPS - Tiene dos operandos de 128 bits. Esta instrucción realiza una suma de precisión simple en el segundo y cuarto par de elementos de datos de 32 bits en los operandos, y una única resta en el primer y tercer par. Esta instrucción es eficaz en la evaluación de productos complejos de envasado de datos de precisión simple.

ADDSUBPS OperandoA OperandoB

  1. OperandoA (128 bits, cuatro elemento de datos): 3a, 2a, 1a, 0a 
  2. OperandoB (128 bits, cuatro elemento de datos): 3b, 2b, 1b, 0b 
  3. Resultado (Almacenado en OperandoA): 3a+3b, 2a-2b, 1a+1b, 0a-0b
  • ADDSUBPD - Tiene dos operandos de 128 bits. Esta instrucción realiza la adición de doble precisión en el segundo par de palabras cuádruples, y la resta de doble precisión en el primer par. Esta instrucción es útil en la evaluación de productos complejos de envasado de datos de doble precisión.

ADDSUBPD OperandA OperandB

  1. OperandoA (128 bits, dos elementos de datos): 1a, 0a
  2. OperandoB (128 bits, dos elementos de datos): 1b, 0b
  3. Resultado (almacenado en el OperandoA): 1a+1b, 0a-0b
  • MOVSHDUP- Carga/Mueve 128 bits, duplicando el segundo y el cuarto elemento de 32 bits.

MOVSHDUP OperandoA OperandoB

  1. OperandoA (128 bits, cuatro elementos de datos): 3a, 2a, 1a, 0a
  2. OperandoB (128 bits, cuatro elementos de datos): 3b, 2b, 1b, 0b
  3. Resultado (Almacenado en el OperandoA): 3b, 3b, 1b, 1b
  • MOVSLDUP - Carga/Mueve 128 bits, duplicando el primero y tercer elemento de datos de 32 bits.

MOVSLDUP OperandoA OperandoB

  1. OperandoA (128 bits, cuatro elementos de datos): 3a, 2a, 1a, 0a
  2. OperandoB (128 bits, cuatro elementos de datos): 3b, 2b, 1b, 0b
  3. Resultado (Almacenado en el OperandoA): 2b, 2b, 0b, 0b

Véase también

Fuentes