SSSE3

редактировать

Дополнительные расширения SIMD для потоковой передачи 3 (SSSE3 или SSE3S ) - это SIMD набор инструкций, созданный Intel и являющийся четвертой версией технологии SSE.

Содержание
  • 1 История
  • 2 Функциональность
  • 3 ЦП с SSSE3
  • 4 Новые инструкции
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

SSSE3 был впервые представлен с процессорами Intel на основе микроархитектуры Core 26 июня 2006 года с процессорами Woodcrest Xeon.

SSSE3 упоминается под кодовыми именами Tejas New Instructions (TNI) или Merom New Instructions (MNI) для первых разработок процессоров, предназначенных для его поддержки.

Функциональные возможности

SSSE3 содержит 16 новых дискретных инструкций. Каждая инструкция может воздействовать на 64-битные регистры MMX или 128-битные XMM. Поэтому в материалах Intel упоминаются 32 новые инструкции. В их число входят:

  • Двенадцать инструкций, которые выполняют операции горизонтального сложения или вычитания.
  • Шесть инструкций, оценивающих абсолютные значения.
  • Две инструкции, которые выполняют операции умножения и сложения и ускоряют вычисление точки
  • Две инструкции, которые ускоряют операции упакованного целочисленного умножения и создают целочисленные значения с масштабированием.
  • Две инструкции, которые выполняют побайтовое перемешивание на месте в соответствии со вторым операндом управления перемешиванием.
  • Шесть инструкций, которые инвертируют упакованные целые числа в целевом операнде, если знаки соответствующего элемента в исходном операнде меньше нуля.
  • Две инструкции, выравнивающие данные из композиции двух операндов.
ЦП с SSSE3
Новинка инструкции

В таблице ниже satsw (X) (читается как «насыщение до знакового слова») принимает целое число X со знаком и преобразует его в -32768, если оно меньше -32768, в +32767 если он больше 32767, и в противном случае оставляет его без изменений. Как правило, для архитектуры Intel байты составляют 8 бит, слова - 16 бит, а двойные слова - 32 бита; «регистр» относится к векторному регистру MMX или XMM.

PSIGNB, PSIGNW, PSIGNDPacked SignОтменяет элементы регистра байтов, слов или двойных слов, если знак соответствующих элементов другого регистра отрицательный.
PABSB, PABSW, PABSDУпакованное абсолютное значениеЗаполните элементы регистра байтов, слов или двойных слов абсолютными значениями элементов другого регистра
PALIGNRPacked Align Rightберет два регистра, объединяет их значения и извлекает секцию длины регистра из смещения, заданного непосредственным значением, закодированным в инструкции.
PSHUFBPacked Shuffle Bytesпринимает регистры байтов A = [a 0a1a2...] и B = [b 0b1b2...] и заменяет A на [a b0ab1ab2...]; за исключением того, что он заменяет i-ю запись на 0, если установлен верхний бит b i.
PMULHRSWPacked Multiply High with Round and Scaleобрабатывает 16-битные слова в регистрах A и B как 16-битные числа со знаком с фиксированной точкой в ​​диапазоне от -1,00000000 до +0,99996948... (например, 0x4000 обрабатывается как +0,5, а 0xA000 как -0,75), и умножьте их вместе с правильным округлением.
PMADDUBSWУмножение и сложение упакованных байтов со знаком и без знакаВозьмите байты в регистрах A и B, умножьте их вместе, сложите пары, выполните насыщение со знаком и сохраните. Т.е. [a0 a1 a2…] pmaddubsw [b0 b1 b2…] = [satsw (a0b0 + a1b1) satsw (a2b2 + a3b3)…]
PHSUBW, PHSUBDУпакованное горизонтальное вычитание (слова или двойные слова)принимает регистры A = [a0 a1 a2…] и B = [b0 b1 b2…] и выводит [a0 − a1 a2 − a3… b0 − b1 b2 − b3…]
PHSUBSWУпакованные слова горизонтального вычитания и насыщениякак PHSUBW, но выводят [satsw (a0-a1) satsw (a2-a3)… satsw (b0-b1) satsw (b2-b3)…]
PHADDW, PHADDDУпакованное горизонтальное сложение (слова или двойные слова)принимает регистры A = [a0 a1 a2…] и B = [b0 b1 b2…] и выводит [a0 + a1 a2 + a3… b0 + b1 b2 + b3…]
PHADDSWУпакованные слова горизонтального добавления и насыщениякак PHADDW, но выводит [satsw (a0 + a1) satsw (a2 + a3) … Satsw (b0 + b1) satsw (b2 + b3)…]
См. Также
Ссылки
Внешние ссылки

Последняя правка сделана 2021-06-06 04:43:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте