Instrukční sada CLMUL (zkratka z anglického , doslova „bezpřenosové násobení“) je rozšířením instrukční sady x86 o několik strojových instrukcí pro hardwarovou podporu některých algoritmů založených na násobení polynomů nad konečným tělesem .

Společnost Intel oznámila zavedení tohoto rozšíření instrukční sady v roce 2008. Poprvé byla implementována v procesorech Westmere vyráběných od roku 2010. Je ve všech procesorech společnosti Intel počínaje generací Haswell a ve všech procesorech společnosti AMD počínaje modelem AMD Bulldozer.

Kromě šifrovacího režimu GCM, kvůli kterému byly instrukce zavedeny především, jsou používany také pro počítání cyklických redundantních součtů.

Přehled jednotlivých instrukcí Cílem operace je vždy registr XMM (využívá tedy rozšíření SSE). Operandem může být rovněž registr XMM nebo paměť. Instrukce Opkód Popis PCLMULQDQ xmmreg,xmmrm,imm [rmi: 66 0f 3a 44 /r ib] Bezpřenosové násobení dvou 64bitových polynomů nad konečným tělesem GF(2k). PCLMULLQLQDQ xmmreg,xmmrm [rm:  66 0f 3a 44 /r 00] Bezpřenosové násobení nižších polovin dvou různých registrů. PCLMULHQLQDQ xmmreg,xmmrm [rm:  66 0f 3a 44 /r 01] Bezpřenosové násobení vyšší poloviny cílového registru s nižší polovinou zdrojového registru. PCLMULLQHQDQ xmmreg,xmmrm [rm:  66 0f 3a 44 /r 10] Bezpřenosové násobení nižší poloviny cílového registru s vyšší polovinou zdrojového registru. PCLMULHQHQDQ xmmreg,xmmrm [rm:  66 0f 3a 44 /r 11] Bezpřenosové násobení vyšších polovin registrů.

CPU s instrukční sadou CLMUL

Intel

Procesor Westmere (březen 2010). Procesor Sandy Bridge Procesor Ivy Bridge procesor Haswell Procesor Broadwell (se zvýšenou propustností a nižší latencí) Skylake (a novější) procesor procesor Goldmont

AMD

Procesory založené na Jaguar a novější

Procesory na bázi Puma a novější Procesory "těžkého vybavení" Procesory založené na buldozerech Procesory založené na Piledriveru Procesory založené na Steamroller Procesory založené na bagru a novější

Zen procesory

procesory Zen+ Procesory Zen2 (a novější). Přítomnost sady instrukcí CLMUL lze zkontrolovat testováním jednoho z bitů funkce CPU

Reference

Kategorie:Instrukce architektury x86