Articulo de referencia

Conjunto de instrucciones CLMUL

La multiplicación sin acarreo ( CLMUL ) es una extensión del conjunto de instrucciones x86 utilizado por los microprocesadores de Intel y AMD , propuesta por Intel en marzo de 2...

La multiplicación sin acarreo ( CLMUL ) es una extensión del conjunto de instrucciones x86 utilizado por los microprocesadores de Intel y AMD , propuesta por Intel en marzo de 2008 [ 1 ] e implementada en los procesadores Intel Westmere anunciados a principios de 2010. Matemáticamente, la instrucción implementa la multiplicación de polinomios sobre el campo finito GF(2), donde la cadena de bitsa0a1a63{\displaystyle a_{0}a_{1}\ldots a_{63}}representa el polinomioa0+a1incógnita+a2incógnita2++a63incógnita63{\displaystyle a_{0}+a_{1}X+a_{2}X^{2}+\cdots +a_{63}X^{63}}La instrucción CLMUL también permite una implementación más eficiente de la multiplicación estrechamente relacionada de campos finitos más grandes GF(2 k ) que el conjunto de instrucciones tradicional. [ 2 ]

Una aplicación de estas instrucciones es mejorar la velocidad de las aplicaciones que realizan cifrado por bloques en modo Galois/Contador , que depende de la multiplicación de campos finitos GF(2k ) . Otra aplicación es el cálculo rápido de valores CRC , [ 3 ] incluyendo aquellos utilizados para implementar el algoritmo DEFLATE de ventana deslizante LZ77 en zlib y pngcrush . [ 4 ]

ARMv8 también tiene una versión de CLMUL. SPARC llama a su versión XMULX, por " multiplicación XOR ".

New instructions

La instrucción calcula el producto sin acarreo de 128 bits de dos valores de 64 bits. El destino es un registro XMM de 128 bits . La fuente puede ser otro registro XMM o memoria. Un operando inmediato especifica qué mitades de los operandos de 128 bits se multiplican. También se definen mnemónicos que especifican valores concretos del operando inmediato.

Una versión vectorizada de EVEX (VPCLMULQDQ) se observa en AVX-512 .

CPUs con conjunto de instrucciones CLMUL

La presencia del conjunto de instrucciones CLMUL se puede comprobar probando uno de los bits de características de la CPU .

Véase también

Referencias

  1. "Red de software de Intel" . Intel. Archivado del original el 7 de abril de 2008. Consultado el 5 de abril de 2008 .
  2. Shay Gueron; Michael E. Kounavis (2014-04-20). "Instrucción de multiplicación sin acarreo de Intel y su uso para calcular el modo GCM – Rev 2.02" (PDF) . Intel . Archivado del original el 6 de agosto de 2019.
  3. "Cálculo rápido de CRC para polinomios genéricos usando PCLMULQDQ" (PDF) .
  4. Vlad Krasnov (2015-07-08). "Luchando contra el cáncer: el beneficio inesperado de publicar nuestro código como código abierto" . CloudFlare . Recuperado el 2016-09-04 .
  5. Johan De Gelas (31 de marzo de 2017). "Análisis del Intel Xeon E5 v4: Pruebas de Broadwell-EP con cargas de trabajo de servidor exigentes" . Anandtech . pág. 3. {{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  6. "Diapositiva que detalla las mejoras de Jaguar con respecto a Bobcat" . AMD. 29 de agosto de 2012. Consultado el 3 de agosto de 2013 .
  7. Dave Christie (6 de mayo de 2009). "Encontrar el equilibrio" . Blogs de desarrolladores de AMD . Consultado el 11 de marzo de 2011 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )