Conjunt d'instruccions CLMUL

extensió del conjunt d'instruccions x86

Carry-less Multiplication (CLMUL) és una extensió del conjunt d'instruccions x86 utilitzat pels microprocessadors d'Intel i AMD que va ser proposat per Intel el març de 2008 [1] i disponible als processadors Intel Westmere anunciats a principis de 2010. Matemàticament, la instrucció implementa la multiplicació de polinomis sobre el camp finit GF(2) on la cadena de bits representa el polinomi . La instrucció CLMUL també permet una implementació més eficient de la multiplicació estretament relacionada de camps finits més grans GF(2k) que el conjunt d'instruccions tradicional.[2]

Un ús d'aquestes instruccions és millorar la velocitat de les aplicacions que fan xifratge de blocs en mode Galois/Comptador, que depèn de la multiplicació de camp finit GF(2k). Una altra aplicació és el càlcul ràpid dels valors CRC,[3] inclosos els utilitzats per implementar l'algorisme LZ77 DEFLATE de la finestra lliscant en zlib i pngcrush.[4]

ARMv8 també té una versió de CLMUL. SPARC anomena la seva versió XMULX, per "multiplicació XOR".

Noves instruccions

La instrucció calcula el producte sense transport de 128 bits de dos valors de 64 bits. La destinació és un registre XMM de 128 bits. La font pot ser un altre registre o memòria XMM. Un operand immediat especifica quines meitats dels operands de 128 bits es multipliquen. També es defineixen mnemotècniques que especifiquen valors específics de l'operand immediat:

InstruccióOpcodeDescripció
PCLMULQDQ xmmreg,xmmrm,imm[rmi: 66 0f 3a 44 /r ib]Realitzeu una multiplicació sense transport de dos polinomis de 64 bits sobre el camp finit GF (2)[ X ].
PCLMULLQLQDQ xmmreg,xmmrm[rm: 66 0f 3a 44 /r 00]Multiplica les meitats baixes dels dos registres.
PCLMULHQLQDQ xmmreg,xmmrm[rm: 66 0f 3a 44 /r 01]Multipliqueu la meitat alta del registre de destinació per la meitat baixa del registre d'origen.
PCLMULLQHQDQ xmmreg,xmmrm[rm: 66 0f 3a 44 /r 10]Multipliqueu la meitat baixa del registre de destinació per la meitat alta del registre d'origen.
PCLMULHQHQDQ xmmreg,xmmrm[rm: 66 0f 3a 44 /r 11]Multiplica les meitats altes dels dos registres.

Una versió vectoritzada EVEX (VPCLMULQDQ) es veu a AVX-512.

Referències

🔥 Top keywords: PortadaEspecial:CercaCarles Porta i GasetTor (Alins)À Punt FMTor (sèrie de televisió)Llista de municipis de CatalunyaEmilio Delgado OrgazEspecial:Canvis recentsGuinguetaXavlegbmaofffassssitimiwoamndutroabcwapwaeiippohfffXFacultat universitàriaManuel de Pedrolo i MolinaViquipèdia:ContacteBea Segura i FolchAlbert Jané i RieraNit de Sant JoanMort, qui t'ha mort?David Madí i CendrósCarles Puigdemont i CasamajóVila-sanaEwa PajorNicolás SartoriusAlinsAntoni Comín i OliveresGoogle ChromeClara Ponsatí i ObiolsPara-xocsDotze homes sense pietatValtònycLluís Puig i GordiAamer AnwarÈdafonLaura Borràs i CastanyerKylian MbappéPablo HasélFesta del sacrificiJosep Costa i RossellóDionís Guiteras i Rubio