CLMUL

Z Wikipedie, otevřené encyklopedie
(přesměrováno z Instrukční sada CLMUL)

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

CPU s instrukční sadou CLMUL[editovat | editovat zdroj]

Intel[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

  • 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[editovat | editovat zdroj]

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

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.