[1] Supplemental Streaming SIMD Extensions 3 ( SSSE3 или SSE3S ) - этонабор инструкций SIMD, созданный Intel и являющийся четвертой версией технологии SSE .
История [ править ]
SSSE3 был впервые представлен с процессорами Intel на основе микроархитектуры Core 26 июня 2006 года с процессорами Woodcrest Xeon.
SSSE3 упоминается под кодовыми именами Tejas New Instructions (TNI) или Merom New Instructions (MNI) для первых проектов процессоров, предназначенных для его поддержки.
Функциональность [ править ]
SSSE3 содержит 16 новых дискретных инструкций. Каждая инструкция может работать с 64-битными регистрами MMX или 128-битными XMM. Таким образом, материалы Intel относятся к 32 новым инструкциям. В их число входят: [1]
- Двенадцать инструкций, выполняющих операции горизонтального сложения или вычитания.
- Шесть инструкций, оценивающих абсолютные значения.
- Две инструкции, которые выполняют операции умножения и сложения и ускоряют вычисление скалярных произведений.
- Две инструкции, которые ускоряют операции упакованного целочисленного умножения и производят целочисленные значения с масштабированием.
- Две инструкции, которые выполняют побайтовое перемешивание на месте в соответствии со вторым операндом управления перемешиванием.
- Шесть инструкций, которые инвертируют упакованные целые числа в операнде-адресате, если знаки соответствующего элемента в исходном операнде меньше нуля.
- Две инструкции, которые выравнивают данные из двух операндов.
Процессоры с SSSE3 [ править ]
- AMD :
- "Кошачьи" маломощные процессоры
- Процессоры на базе Bobcat
- Процессоры на базе Jaguar и новее
- Процессоры на базе Puma и новее
- Переработчики "тяжелого оборудования"
- Процессоры на базе бульдозеров
- Процессоры на базе Piledriver
- Процессоры на базе Steamroller
- Экскаваторные процессоры и новее
- Процессоры на базе Zen
- Процессоры на базе Zen +
- Zen2 на базе процессоров
- "Кошачьи" маломощные процессоры
- Intel :
- Xeon 5100 серии
- Xeon 5300 серии
- Xeon 5400 серии
- Xeon 3000 серии
- Core 2 Duo
- Core 2 Extreme
- Core 2 Quad
- Core i7
- Core i5
- Core i3
- Pentium Dual Core (если поддерживается 64-разрядная версия, начиная с Allendale )
- Последовательность Celeron 4xx Conroe-L
- Двухъядерный процессор Celeron E1200
- Celeron M 500 серии
- Атом
- ЧЕРЕЗ :
- Нано
Новые [1] инструкции [ править ]
В приведенной ниже таблице satsw (X) (читается как «насыщение до знакового слова») принимает целое число X со знаком и преобразует его в -32768, если оно меньше -32768, в +32767, если оно больше 32767, и в противном случае оставляет его без изменений. Как обычно для архитектуры Intel, байты составляют 8 бит, слова - 16 бит, а двойные слова - 32 бита; «регистр» относится к векторному регистру MMX или XMM.
PSIGNB, PSIGNW, PSIGND | Упакованный знак | Отменять элементы регистра байтов, слов или двойных слов, если знак соответствующих элементов другого регистра отрицательный. |
---|---|---|
ПАБСБ, ПАБСВ, ПАБСД | Упакованное абсолютное значение | Заполните элементы регистра байтов, слов или двойных слов абсолютными значениями элементов другого регистра |
PALIGNR | Упаковано по правому краю | взять два регистра, объединить их значения и извлечь секцию длины регистра из смещения, заданного непосредственным значением, закодированным в инструкции. |
ПШУФБ | Упакованные байты в случайном порядке | берет регистры байтов A = [a 0 a 1 a 2 ...] и B = [b 0 b 1 b 2 ...] и заменяет A на [a b0 a b1 a b2 ...]; за исключением того, что он заменяет i-ю запись на 0, если установлен верхний бит b i . |
PMULHRSW | Упаковано Multiply High с Round и 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)…] |
См. Также [ править ]
- SIMD
- SSE3
- Intel Core 2
- Теджас и Джейхок
- списки инструкций x86
Ссылки [ править ]
- ^ a b c "2.9.5". Справочное руководство по оптимизации архитектур Intel 64 и IA-32 (PDF) (технический отчет). Intel.com. 2016. С. 92–93 . Проверено 22 июня 2018 года .
Внешние ссылки [ править ]
- Технические характеристики Core 2 Mobile
- Официальный документ Intel, в котором признается существование SSSE3 и описывается SSE4
- Документация по набору инструкций, в которой перечислены функции инструкций SSSE3.