Из Википедии, бесплатной энциклопедии
  (Перенаправлено из CLMUL )
Перейти к навигации Перейти к поиску

Карри-менее Умножение ( CLMUL ) является расширением x86 набор команд , используемых микропроцессорами от Intel и AMD , который был предложен Intel в марте 2008 года [1] и доступны в процессорах Intel Westmere объявили в начале 2010 года Математически, инструкция реализует умножение многочленов над конечным полем GF (2), где битовая цепочка представляет многочлен . Команда CLMUL также позволяет более эффективно реализовать тесно связанное умножение больших конечных полей GF (2 k ), чем традиционный набор команд.[2]

Одно из применений этих инструкций - повысить скорость приложений, выполняющих шифрование блочным шифром в режиме Галуа / счетчика , который зависит от умножения конечного поля GF (2 k ). Другое применение быстрое вычисление значений CRC , [3] , в том числе те , которые используются для реализации LZ77 скользящего окна DEFLATE алгоритм в Zlib и Pngcrush . [4]

ARMv8 также имеет версию CLMUL. SPARC называет свою версию XMULX для «умножения XOR».

Новые инструкции [ править ]

Инструкция вычисляет 128-битное произведение двух 64-битных значений без переноса . Назначение - 128-битный регистр XMM . Источником может быть другой регистр XMM или память. Непосредственный операнд указывает, какие половины 128-битных операндов умножаются. Также определены мнемоники, определяющие конкретные значения непосредственного операнда:

Векторизованная версия EVEX (VPCLMULQDQ) присутствует в AVX-512 .

Процессоры с набором инструкций CLMUL [ править ]

  • Intel
    • Процессор Westmere (март 2010 г.).
    • Процессор Sandy Bridge
    • Процессор Ivy Bridge
    • Процессор Haswell
    • Процессор Broadwell (с увеличенной пропускной способностью и меньшей задержкой [5] )
    • Процессор Skylake (и новее)
    • Процессор Goldmont
  • AMD :
    • Процессоры на базе Jaguar и новее [6]
    • Процессоры на базе Puma и новее
    • Переработчики "тяжелого оборудования"
      • Процессоры на базе бульдозеров [7]
      • Процессоры на базе Piledriver
      • Процессоры на базе Steamroller
      • Экскаваторные процессоры и новее
    • Процессоры Zen
    • Процессоры Zen +
    • Процессоры Zen2 (и новее)

Наличие набора команд CLMUL можно проверить, протестировав один из битов функции ЦП .

См. Также [ править ]

  • Конечная арифметика поля
  • Набор инструкций AES
  • Набор инструкций FMA3
  • Набор инструкций FMA4
  • Набор инструкций AVX

Ссылки [ править ]

  1. ^ "Intel Software Network" . Intel. Архивировано из оригинала на 2008-04-07 . Проверено 5 апреля 2008 .
  2. ^ Шей Gueron (2011-04-13). «Инструкция Intel Carry -less Multiplication и ее использование для вычислений в режиме GCM - Rev 2» . Intel .
  3. ^ «Быстрое вычисление CRC для общих многочленов с использованием PCLMULQDQ» (PDF) .
  4. ^ Влад Краснов (2015-07-08). «Борьба с раком: неожиданное преимущество открытого исходного кода для нашего кодекса» . CloudFlare . Проверено 4 сентября 2016 .
  5. ^ Йохан Де Гелас (2017-03-31). «Обзор Intel Xeon E5 v4: тестирование Broadwell-EP с требовательными серверными рабочими нагрузками» . Anandtech . п. 3.
  6. ^ "Слайд, детализирующий улучшения Jaguar по сравнению с Bobcat" . AMD . Проверено 3 августа 2013 года .
  7. Дэйв Кристи (6 мая 2009 г.). «Достижение баланса» . Блоги разработчиков AMD. Архивировано из оригинала 9 ноября 2013 года . Проверено 11 марта 2011 .