CLMUL

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Instrukční sada CLMUL)
Skočit na navigaci Skočit na vyhledávání

Instrukční sada CLMUL (zkratka z anglického Carry-less Multiplication, 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 Westmare 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í[editovat | editovat zdroj]

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ů.

Reference[editovat | editovat zdroj]

V tomto článku byly použity překlady textů z článků CLMUL na německé Wikipedii a CLMUL Instruction set na anglické Wikipedii.