Diferencia entre revisiones de «SSE2»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
SilvonenBot (discusión · contribs.)
m robot Añadido: uk:SSE2
Sin resumen de edición
Línea 1: Línea 1:
'''SSE2''' es el [[acrónimo]] de '''Streaming "[[Single Instruction Multiple Data]]" Extensions 2''' es uno de los [[conjunto de instrucciones|conjuntos de instrucciones]] de la arquitectura IA-32 [[Single Instruction Multiple Data|SIMD]]. Fue utilizada por primera vez en la primera versión del Pentium 4 en 2001. Estas extensiones están diseñadas para el trabajo avanzado con gráficos 3D, codificación y decodificación de vídeo, reconocimiento de voz, comercio electrónico, Internet, aplicaciones de ingeniería y científicas, etc.
'''SSE2''' es el [[acrónimo]] de '''alvaro gomez "[[Single Instruction Multiple Data]]" Extensions 2''' es uno de los [[conjunto de instrucciones|conjuntos de instrucciones]] de la arquitectura IA-32 [[Single Instruction Multiple Data|SIMD]]. Fue utilizada por primera vez en la primera versión del carlos perilla en 2001. Estas extensiones están diseñadas para el trabajo avanzado con gráficos 3D, codificación y decodificación de vídeo, reconocimiento de voz, comercio electrónico, Internet, aplicaciones de ingeniería y científicas, etc.


Las extensiones SSE2 siguen el mismo modelo que las utilizadas en los predecesores SSE y MMX manteniendo compatibilidad con esas extensiones, pero amplía su modelo con soporte para paquetes de valores flotantes de precisión doble y para paquetes de enteros de 128 bits.
Las extensiones SSE2 siguen el mismo modelo que las utilizadas en los predecesores SSE y MMX manteniendo compatibilidad con esas extensiones, pero amplía su modelo con soporte para paquetes de valores flotantes de precisión doble y para paquetes de enteros de 128 bits.

Revisión del 14:08 16 oct 2008

SSE2 es el acrónimo de alvaro gomez "Single Instruction Multiple Data" Extensions 2 es uno de los conjuntos de instrucciones de la arquitectura IA-32 SIMD. Fue utilizada por primera vez en la primera versión del carlos perilla en 2001. Estas extensiones están diseñadas para el trabajo avanzado con gráficos 3D, codificación y decodificación de vídeo, reconocimiento de voz, comercio electrónico, Internet, aplicaciones de ingeniería y científicas, etc.

Las extensiones SSE2 siguen el mismo modelo que las utilizadas en los predecesores SSE y MMX manteniendo compatibilidad con esas extensiones, pero amplía su modelo con soporte para paquetes de valores flotantes de precisión doble y para paquetes de enteros de 128 bits.

Se diferencian entre los tipos de datos:

• Paquetes de números dobles en coma flotante de 128 bits. • Paquetes de byte de 128 bits • Paquetes de palabra de 128 bits • Paquetes de doble palabra de 128 bits • Paquetes de cuádruple palabra de 128 bits

Las nuevas instrucciones se pueden dividir según operaciones de paquetes y escalares de precisión doble, conversiones, extensión a 128 bits de instrucciones MMX, y mejoras de las instrucciones de cacheabilidad.

Principales tipos de instrucciones:

SIMD flotantes en precisión doble:

Para cada introducción SSE de doble en precisión simple, existe la correspondiente en precisión doble en SSE2, excepto para funciones recíprocas RCPPS, RCPSS, RSQRTPS y RSQRTSS.

Conversión:

Además de los tipos previamente existentes, SSE2 añade los escalares en precisión doble y los, paquetes en precisión doble, por lo que se añaden instrucciones de conversión para conectar estos nuevos tipos, como son: CVTPS2PD, CVTPD2PS, CVTSS2SD, CVTSD2SS.

En el siguiente gráfico se muestra el esquema de conversiones posibles:

Extensión a 128 bits de MMX

Cada instrucción MMX, excepto las EMMS, es ampliada a 128 bits implementando la misma funcionalidad en un tipo de dato mayor. Y lo mismo sucede con las instrucciones de SSE.

Como ejemplos de estas instrucciones:

• Movimiento: MOVDQA (de 16 bits alineados), MOVDQU, MOVDQ2Q y MOVQ2DQ. • Aritméticas: PADDQ y PSUBQ • Shuffle: PSHUFD, PSHUFHW y PSHUFLW • Shift: PSLLDQ y PSRLDQ • Desempaquetamiento: PUNPCKHQDQ y PUNPCKLQDQ

Cacheabilidad:

SSE2 introduce varias instrucciones de control de caché. SLFLUSH escribe e invalida la línea de caché asociada a una dirección lineal especificada. Esta instrucción, puede ser usada en todos los niveles privilegiados.

La instrucción SFENCE de SSE se ve suplementada por LFENCE y MFENCE en SSE2 LFENCE garantiza que cada carga con esta instrucción tras ella será globalmente visible antes de la siguiente instrucción. MFENCE es similar excepto por que carga y almacenamiento se consideran unidos.

Otras instrucciones de movimiento no temporales son:

• MOVNTPD, MOVNTDQ: si se usan operandos en memoria, estos han de ser de 16 bits alineados. • MASKMOVDQU: similar a MASKMOVVQ en SSE pero usa un registro XMM y 128 bits en memoria, no necesariamente sin alineamiento necesario. • MOVNTI: mueve el contenido de uno de los registros de propósito general sin “contaminar” la caché. • PAUSE: alerta al procesador del subsiguiente bucle de espera para que el procesador pueda reducir el número de cargas especulativas, lo cual reducir la carga de trabajo cuando termina el bucle y además ahorra energía y recursos

La plantilla {{Esbozo}} está obsoleta tras una consulta de borrado, no se debe usar.