stringtranslate.com

SSE4

SSE4 ( Streaming SIMD Extensions 4 ) es un conjunto de instrucciones de CPU SIMD utilizado en la microarquitectura Intel Core y AMD K10 (K8L) . Fue anunciado el 27 de septiembre de 2006, en el Foro de desarrolladores Intel de otoño de 2006 , con detalles vagos en un documento técnico ; [1] Detalles más precisos de 47 instrucciones estuvieron disponibles en el Foro de Desarrolladores Intel de primavera de 2007 en Beijing , en la presentación. [2] SSE4 amplió el conjunto de instrucciones SSE3 que se lanzó a principios de 2004. Todo el software que utiliza instrucciones Intel SIMD anteriores (por ejemplo, SSE3) es compatible con microprocesadores modernos que admiten instrucciones SSE4. Todo el software existente continúa ejecutándose correctamente sin modificaciones en los microprocesadores que incorporan SSE4, así como en presencia de aplicaciones existentes y nuevas que incorporan SSE4. [3]

Al igual que otros conjuntos de instrucciones SIMD de CPU de generación anterior, SSE4 admite hasta 16 registros, cada uno de 128 bits de ancho, que pueden cargar cuatro números enteros de 32 bits, cuatro números de punto flotante de precisión simple de 32 bits o dos números de punto flotante de precisión doble de 64 bits. . [1] Las operaciones SIMD, como la suma/multiplicación de elementos vectoriales y la suma/multiplicación escalar de vectores, procesan múltiples bytes de datos en una sola instrucción de CPU. La operación paralela ofrece aumentos notables en el rendimiento. SSE4.2 introdujo nuevas operaciones de cadenas SIMD, incluida una instrucción para comparar dos fragmentos de cadenas de hasta 16 bytes cada uno. [1] SSE4.2 es un subconjunto de SSE4 y se lanzó unos años después del lanzamiento inicial de SSE4.

subconjuntos SSE4

Intel SSE4 consta de 54 instrucciones. En Penryn está disponible un subconjunto que consta de 47 instrucciones, denominado SSE4.1 en alguna documentación de Intel . Además, SSE4.2 , un segundo subconjunto que consta de las siete instrucciones restantes, está disponible por primera vez en Core i7 basado en Nehalem . Intel atribuye a los comentarios de los desarrolladores un papel importante en el desarrollo del conjunto de instrucciones.

Comenzando con los procesadores con sede en Barcelona , ​​AMD presentó el conjunto de instrucciones SSE4a , que tiene cuatro instrucciones SSE4 y cuatro instrucciones SSE nuevas. Estas instrucciones no se encuentran en los procesadores Intel que admiten SSE4.1 y los procesadores AMD solo comenzaron a admitir SSE4.1 y SSE4.2 de Intel (el conjunto completo de instrucciones SSE4) en los procesadores FX basados ​​en Bulldozer . Con SSE4a también se introdujo la característica SSE desalineada, lo que significaba que las instrucciones de carga no alineadas eran tan rápidas como las versiones alineadas en direcciones alineadas. También permitió deshabilitar la verificación de alineación en operaciones SSE sin carga que acceden a la memoria. [4] Posteriormente, Intel introdujo mejoras de velocidad similares al SSE no alineado en sus procesadores Nehalem, pero no introdujo el acceso desalineado mediante instrucciones SSE sin carga hasta AVX . [5]

Confusión de nombres

Lo que ahora se conoce como SSSE3 (Supplemental Streaming SIMD Extensions 3), introducido en la línea de procesadores Intel Core 2 , algunos medios se referían a él como SSE4 hasta que a Intel se le ocurrió el apodo de SSSE3. Intel, denominada internamente Nuevas Instrucciones Merom, inicialmente no planeaba asignarles un nombre especial, lo que fue criticado por algunos periodistas. [6] Intel finalmente aclaró la confusión y reservó el nombre SSE4 para su próxima extensión del conjunto de instrucciones. [7]

Intel utiliza el término de marketing HD Boost para referirse a SSE4. [8]

Nuevas instrucciones

A diferencia de todas las iteraciones anteriores de SSE, SSE4 contiene instrucciones que ejecutan operaciones que no son específicas de aplicaciones multimedia. Cuenta con una serie de instrucciones cuya acción está determinada por un campo constante y un conjunto de instrucciones que toman XMM0 como tercer operando implícito.

Varias de estas instrucciones están habilitadas por el motor aleatorio de ciclo único en Penryn. (Las operaciones aleatorias reordenan bytes dentro de un registro).

ESS4.1

Estas instrucciones se introdujeron con la microarquitectura Penryn , la reducción de 45 nm de la microarquitectura Core de Intel . La compatibilidad se indica mediante el indicador CPUID.01H:ECX.SSE41[Bit 19].

ESS4.2

SSE4.2 agregó STTNI (Nuevas instrucciones de cadena y texto), [10] varias instrucciones nuevas que realizan búsquedas de caracteres y comparación en dos operandos de 16 bytes a la vez. Estos fueron diseñados (entre otras cosas) para acelerar el análisis de documentos XML . [11] También agregó una CRC32instrucción para calcular verificaciones de redundancia cíclica como se usa en ciertos protocolos de transferencia de datos. Estas instrucciones se implementaron por primera vez en la línea de productos Intel Core i7 basada en Nehalem y completan el conjunto de instrucciones SSE4. AMD, por otro lado, agregó soporte por primera vez a partir de la microarquitectura Bulldozer . La compatibilidad se indica mediante el indicador CPUID.01H:ECX.SSE42[Bit 20].

Windows 11 24H2 requiere que la CPU sea compatible con SSE4.2; de lo contrario, el kernel de Windows no se puede iniciar. [12]

POPCNTyLZCNT

Estas instrucciones operan en registros enteros en lugar de SSE, porque no son instrucciones SIMD, pero aparecen al mismo tiempo y, aunque AMD las introdujo con el conjunto de instrucciones SSE4a, se cuentan como extensiones separadas con sus propios bits CPUID dedicados para indicar compatibilidad. Intel implementa POPCNTcomenzando con la microarquitectura Nehalem y LZCNTcomenzando con la microarquitectura Haswell . AMD implementa ambas, empezando por la microarquitectura de Barcelona .

AMD llama a este par de instrucciones Manipulación Avanzada de Bits (ABM) .

La codificación de LZCNTtoma la misma ruta de codificación que la codificación de la BSRinstrucción (escaneo de bits inverso). Esto genera un problema en el que LZCNTalgunas CPU que no lo admiten, como las CPU Intel anteriores a Haswell, pueden ejecutar incorrectamente la BSRoperación en lugar de generar una excepción de instrucción no válida . Este es un problema ya que los valores resultantes de LZCNTy BSRson diferentes.

Los ceros finales se pueden contar usando las instrucciones BSF(escaneo de bits hacia adelante) o TZCNT.

Windows 11 24H2 requiere que la CPU sea compatible POPCNT; de ​​lo contrario, el kernel de Windows no se puede iniciar. [17]

SSE4a

Se introdujo el grupo de instrucción SSE4a en la microarquitectura de AMD en Barcelona . Estas instrucciones no están disponibles en los procesadores Intel. La compatibilidad se indica mediante el indicador CPUID.80000001H:ECX.SSE4A[Bit 6]. [dieciséis]

CPU compatibles

Referencias

  1. ^ abc Innovación en el conjunto de instrucciones Intel Streaming SIMD Extensions 4 (SSE4) Archivado el 30 de mayo de 2009 en Wayback Machine , Intel.
  2. ^ Ajuste de Intel SSE4 para la microarquitectura Intel Core de próxima generación de 45 nm Archivado el 8 de marzo de 2021 en Wayback Machine , Intel.
  3. ^ "Referencia de programación Intel SSE4" (PDF) . Archivado (PDF) desde el original el 15 de febrero de 2020 . Consultado el 26 de diciembre de 2014 .
  4. ^ "Función del procesador " Barcelona ": acceso desalineado SSE". AMD. Archivado desde el original el 9 de agosto de 2016 . Consultado el 3 de marzo de 2015 .
  5. ^ "Dentro de la microarquitectura Intel Nehalem". Archivado desde el original el 2 de abril de 2015 . Consultado el 3 de marzo de 2015 .
  6. ^ Mi experiencia con "Conroe" Archivado el 15 de octubre de 2013 en Wayback Machine , DailyTech
  7. ^ Ampliación de la arquitectura de procesador más popular del mundo Archivado el 24 de noviembre de 2011 en Wayback Machine , Intel
  8. ^ "Intel: soluciones de centros de datos, IoT e innovación en PC". Intel . Archivado desde el original el 7 de febrero de 2013 . Consultado el 17 de septiembre de 2009 .
  9. ^ Estimación de movimiento con Intel Streaming SIMD Extensions 4 (Intel SSE4) Archivado el 16 de junio de 2018 en Wayback Machine , Intel.
  10. ^ "Validación de esquemas con Intel® Streaming SIMD Extensions 4 (Intel® SSE4)". Archivado desde el original el 17 de junio de 2018 . Consultado el 6 de febrero de 2012 .
  11. ^ "Acelerador de análisis XML con Intel® Streaming SIMD Extensions 4 (Intel® SSE4)". Archivado desde el original el 17 de junio de 2018 . Consultado el 6 de febrero de 2012 .
  12. ^ Klotz, Aaron (24 de abril de 2024). "Microsoft bloquea algunas PC con Windows 11 24H2; la CPU debe admitir SSE4.2 o el sistema operativo no arrancará". Hardware de Tom . Consultado el 29 de abril de 2024 .
  13. ^ Referencia de programación Intel SSE4 Archivado el 15 de febrero de 2020 en Wayback Machine p. 61. Véase también RFC 3385 Archivado el 19 de junio de 2008 en Wayback Machine para una discusión sobre el polinomio CRC32C.
  14. ^ Cálculo CRC rápido y paralelo utilizando la instrucción Nehalem CRC32 - Dr. Dobbs, 12 de abril de 2011
  15. ^ Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32, volumen 2B: referencia del conjunto de instrucciones, N – Z Archivado el 8 de marzo de 2011 en Wayback Machine .
  16. ^ ab "Especificación de CPUID de AMD" (PDF) . Archivado (PDF) desde el original el 1 de noviembre de 2013 . Consultado el 30 de octubre de 2013 .
  17. ^ Sen, Sayan (17 de marzo de 2024). "Microsoft corrige un bloque PopCnt fallido, pero los requisitos de Windows 11 24H2 pueden llegar para quedarse". Neowin . Consultado el 17 de marzo de 2024 .
  18. ^ Rahul Chaturvedi (17 de septiembre de 2007). "Característica del procesador " Barcelona ": conjunto de instrucciones SSE4a". Archivado desde el original el 25 de octubre de 2013.
  19. ^ Rahul Chaturvedi (2 de octubre de 2007). "Característica del procesador " Barcelona ": SSE4a, parte 2". Archivado desde el original el 25 de octubre de 2013.
  20. ^ "AMD Serie FX FX-6300 - FD6300WMW6KHK / FD6300WMHKBOX". Archivado desde el original el 17 de agosto de 2017 . Consultado el 9 de octubre de 2015 .

enlaces externos