SSE2

Revisión del 10:48 25 jun 2012 de Wendy idict (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
SSE2.
Información sobre la plantilla
SSE.jpg
SSE2 conjunto de instrucciones que mejora las capacidades de las anteriores instrucciones MMX y SSE.

SSE2. Acrónimo de Streaming SIMD (Single Instruction Multiple Data) Extensions 2, es uno de los conjuntos de instrucciones de la arquitectura IA-32 SIMD. Tecnología que se introdujo por primera vez en el Pentium 4 de Intel en el año 2001, y también se conocen a veces como instrucciones "Willamette". Las extensiones Streaming SIMD 2 (SSE2) amplían la tecnología MMX y la tecnología SSE con la adición de 144 instrucciones que brindan un aumento en el desempeño a través de una amplia gama de aplicaciones. Las instrucciones de enteros de SIMD introducidas con la tecnología MMX se han ampliado de 64 a 128 bits, lo cual duplica la velocidad de ejecución efectiva de las operaciones de enteros de SIMD.
AMD no le dio soporte a SSE2 hasta el año 2003 con sus procesadores Opteron y Athlon64.

Ventajas de SSE2

Las instrucciones SIMD de coma flotante de doble precisión permiten la ejecución simultánea de dos operaciones de coma flotante en el formato SIMD, para admitir operaciones de doble precisión que ayudan a acelerar las aplicaciones científicas, de creación de contenido, de finanzas y de ingeniería.
Además de las instrucciones SSE2, las instrucciones SSE originales se han mejorado para admitir una gama flexible y más dinámica de potencia de computación mediante operaciones aritméticas en tipos de datos múltiples (por ejemplo, palabras dobles y palabras cuádruples). Las instrucciones SSE2 permiten que los desarrolladores de software tengan flexibilidad máxima al implementar algoritmos y ofrecer mejoras en el desempeño cuando se ejecuta software, como MPEG-2, MP3, gráficos 3D.

Conjunto de instrucciones

Algunas de las instrucciones de las que posee la extensión SSE2.

Aritméticas

  • addpd - Adiciona 2 dobles de 64 bits.
  • subpd - Substrae 2 dobles de 64 bits.
  • mulpd – Multiplica 2 dobles de 64 bits.
  • divpd – Divide 2 dobles de 64 bits.
  • maxpd – Obtiene el doble más largo de 2 de 64 bits.
  • sqrtpd – Devuelve la raíz cuadrada de 2 dobles de 64 bits.

Lógicas

  • andpd – Operador &(AND) lógico entre 2 dobles de 64 bits.
  • por – Operador O(OR) lógico entre 2 registros de 128 bits.

Comparación

  • cmppd - Compara 2 pares de dobles de 64 bits.
  • pcmpxxd – Compara 4 enteros de 32 bits.

Conversión

  • cvtdq2pd - Convierte 2 enteros de 32 bits en 2 dobles de 64 bits.
  • cvtdq2ps - Convierte 4 enteros de 32 bits en 4 simples de 32 bits.

Carga y almacenamiento

  • movq - Mueve un valor de 64 bits, limpiando la parte alta de un registro XMM.
  • movapd - Mueve 2 dobles alineados de 64 bits.

Shuffle

  • packssdw - Empaqueta enteros de 32 Bits a enteros de 16 Bits.

Control de Caché

  • clflush - Vacía una Línea de Caché de todos los niveles de Caché.
  • pause - Detiene la ejecución por una cantidad de tiempo.

Véase también

Fuentes