SSSE3
Дополнительное расширение SIMD Streaming 3 ( SSSE3 ) — также известное под кодовым названием Tejas New Instructions (TNI) — это четвертый набор инструкций SSE , часто неправильно называемый SSE4 . Представленный Intel в архитектуре Core , набор инструкций SSSE3 доступен для процессоров серии Xeon 5100 ( сервер и рабочая станция ), а также для процессоров Core 2 ( ноутбук и настольный компьютер). Предыдущие наборы инструкций SIMD для процессоров x86 — от самых старых до новейших: MMX , 3DNow! (только на процессоре AMD ), SSE , SSE2 и SSE3 .
Набор инструкций SSSE3 содержит 16 новых инструкций по сравнению с SSE3 .
Резюме
- 1 Процессоры, поддерживающие игру SSSE3
- 2 Новые инструкции SSSE3
- 3 См. Также
- 4 Внешние ссылки
Процессоры, поддерживающие игру SSSE3
- Процессоры Intel :
- Xeon5100 серии
- Core i7
- Intel Core 2
- Intel Атом
- Pentium E5400
- Celeron M серии 5 **
- AMD Fusion A6-A10
- AMD Fusion серии E 3xx
- AMD Bulldozer и его производные
- AMD bobcat и производные семейства «low power»
- AMD Ryzen
Новые инструкции SSSE3
- PSIGNW, PSIGND, PSIGNB
- ПШУФБ
- PMULHRSW, PMADDUBSW
- PHSUBW, PHSUBSW, PHSUBD
- PHADDW, PHADDSW, PHADDD
- PALIGNR
- ПАБСВ, ПАБСД, ПАБСБ
Смотрите также
Внешние ссылки
- [PDF] Техническое описание Intel Core 2 Duo E8000 и E7000 Series
- [PDF] Техническое описание Atom N270
SSSE3
Supplemental Streaming SIMD Extension 3 (SSSE3) — это обозначение данное Intel’ом четвёртому расширению системы команд. Предыдущее имело обозначение SSE3 и Intel добавил ещё один символ ‘S’ вместо того, чтобы увеличить номер расширения, возможно потому, что они посчитали SSSE3 простым дополнением к SSE3. Часто, до того как стало использоваться официальное обозначение SSSE3, эти новые команды назывались SSE4. Также их называли кодовыми именами Tejas New Instructions (TNI) и Merom New Instructions (MNI) по названию процессоров, где впервые Intel намеревалась поддержать эти новые команды. Появившись в Intel Core Microarchitecture, SSSE3 доступно в сериях процессоров Xeon 5100 (Server и Workstation версии), а также в процессорах Intel Core 2 (Notebook и Desktop версии) и Intel Atom.
Новыми в SSSE3, по сравнению с SSE3, являются 16 уникальных команд, работающих с упакованными целыми. Каждая из них может работать как с 64-х битными (MMX), так и с 128-ми битными (XMM) регистрами, поэтому Intel в своих материалах ссылается на 32 новые команды.
Новые инструкции
Работа со знаком
Каждое поле результата есть абсолютная величина соответствующего поля из src1. Фактически это те же операции PSIGNB, PSIGNH, PSIGNW у которых оба аргумента один и тот же регистр.
Каждое поле результата есть произведение поля из src1 на в зависимости от знака соответствующего поля в src2 (умножение на 0 когда поле в src2 равно нулю).
Сдвиги
Два регистра операнда рассматривается как одно беззнаковое промежуточное значение удвоенной размерности из которого извлекается 64-х/128-х битное значение начиная с байта указанного в непосредственном аргументе-константе команды.
Перемешивание байт
Перестановка байт, каждый байт результата есть некоторый байт из первого аргумента определяемый по соответствующему байту из второго аргумента (если байт отрицательный, то в байт результат прописывается ноль, иначе используются младшие 3 или 4 бита как номер байта в первом аргументе).
Умножения
- PMULHRSW — (Packed Multiply High with Round and Scale)
- Input — < A0, A1… >,
- Output —
Аргументы A и B рассматриваются как вектора 16-ти битных знаковых чисел с фиксированной запятой представленных в диапазоне [-1,+1) (то есть 0x4000 это 0.5, а 0xa000 это −0.75 и т. д.), которые перемножаются друг с другом с корректным округлением.
- PMADDUBSW — (Multiply and Add Packed Signed and Unsigned Bytes)
- Input — < A0, A1, A2, A3. >,
- Output —
Производится побайтное перемножение векторов A и B, промежуточные 16-ти битные результаты попарно складываются между собой с насыщением и выдаются как результат.
Горизонтальные сложения/вычитания целых
- PHSUBW, PHSUBD — (Packed Horizontal Subtract (16-ти или 32-х битные поля))
- Input — < A0, A1, A2, A3 >,
- Output —
Горизонтальное вычитание целых 16/32 битных полей.
- PHSUBSW — (Packed Horizontal Subtract and Saturate Words (16-ти битные поля))
- Input — < A0, A1, A2, A3 >,
- Output —
Горизонтальное вычитание целых 16 битных полей с насыщением.
- PHADDW, PHADDD — (Packed Horizontal Add (16-ти или 32-х битные поля))
- Input — < A0, A1, A2, A3 >,
- Output —
Горизонтальное сложение целых 16/32 битных полей.
- PHADDSW — (Packed Horizontal Add and Saturate Words (16-ти битные поля))
- Input — < A0, A1, A2, A3 >,
- Output —
Горизонтальное сложение целых 16 битных полей с насыщением.
Процессоры, поддерживающие SSSE3
- Intel:
- Xeon 5100 Series
- Xeon 5300 Series
- Xeon 3000 Series
- Core 2 Duo
- Core 2 Quad
- Core 2 Extreme
- Core i3
- Core i5
- Core i7
- Celeron (Celeron 4xx, ядро Conroe-L)
- Celeron Dual-Core
- Celeron M 500 Series
- Intel Atom
- Bobcat (E-240, E-350, C-30, C-50)
- Bulldozer
- Nano
Литература
- Спецификация на Core 2 Mobile
- Доклад Intel, признающий существование SSSE3 и описывающий SSE4
- Описание системы команд, где расписаны SSSE3 инструкции
- Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 2B
Наборы расширения базовых инструкций процессоров семейства x86 MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES - Инструкции x86
- Расширения архитектуры x86
SSE3
SSE3 (PNI — Prescott New Instruction) — третья версия SIMD-расширения Intel, потомок SSE, SSE2 и MMX. Впервые представлено 2 февраля 2004 года в ядре Prescott процессора Pentium 4. В 2005 AMD предложила свою реализацию SSE3 для процессоров Athlon 64 (ядра Venice, San Diego и Newark).
Набор SSE3 содержит 13 инструкций: FISTTP (x87), MOVSLDUP (SSE), MOVSHDUP (SSE), MOVDDUP (SSE2), LDDQU (SSE/SSE2), ADDSUBPD (SSE), ADDSUBPD (SSE2), HADDPS (SSE), HSUBPS (SSE), HADDPD (SSE2), HSUBPD (SSE2), MONITOR (нет аналога в SSE3 для AMD), MWAIT (нет аналога в SSE3 для AMD).
Наиболее заметное изменение — возможность горизонтальной работы с регистрами. Если говорить более конкретно, добавлены команды сложения и вычитания нескольких значений, хранящихся в одном регистре. Эти команды упростили ряд DSP и 3D-операций. Существует также новая команда для преобразования значений с плавающей точкой в целые без необходимости вносить изменения в глобальном режиме округления.
Инструкции SSE3
- ADDSUBPD (Add Subtract Packed Double).
- ADDSUBPS (Add Subtract Packed Single).
- HADDPD (Horizontal Add Packed Double).
- HADDPS (Horizontal Add Packed Single).
- HSUBPD (Horizontal Subtract Packed Double).
- HSUBPS (Horizontal Subtract Packed Single).
- FISTTP — преобразование вещественного числа в целое с сохранением целочисленного значения и округлением в сторону нуля.
- LDDQU — загрузка 128bit невыровненных данных из памяти в регистр xmm, с предотвращением пересечения границы строки кеша.
Процессоры с поддержкой SSE3
- AMD:
- Athlon 64 (начиная с Venice Stepping E3 и San Diego Stepping E4)
- Athlon 64 X2
- Athlon 64 FX (since San Diego Stepping E4)
- Opteron (начиная с Stepping E4)
- Sempron (начиная с Palermo. Остановлено в E3)
- Phenom
- Phenom II
- Athlon II
- Turion 64
- Turion 64 X2
- Celeron D
- Celeron 420, 430 and 440
- Pentium 4 (начиная с Prescott)
- Pentium D
- Pentium Dual-Core
- Pentium Extreme Edition (но НЕ Pentium 4 Extreme Edition)
- Intel Core Duo
- Intel Core Solo
- Intel Core 2 Duo
- Intel Core 2 Extreme
- Intel Core 2 Quad
- Xeon (начиная с Nocona)
- Atom
- Intel Core i3
- Intel Core i5
- Intel Core i7
- C7
- Nano
- Efficeon TM88xx (NOT Model Numbers TM86xx)
См. также
Ссылки
Наборы расширения базовых инструкций процессоров семейства x86 MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES SSSE3 — 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
- AMD :
- «Cat» процессоры с низким энергопотреблением
- на базе Bobcat процессоры
- на базе Jaguar процессоры и более новые
- на базе Puma процессоры и более новые
- процессоры на базе Bulldozer
- процессоры на базе Piledriver rs
- на базе Steamroller процессоры
- на базе Excavator процессоры и более новые
- Xeon 5100 Series
- Xeon 5300 Series
- Xeon 5400 Series
- Xeon 3000 Series
- Core 2 Duo
- Core 2 Extreme
- Core 2 Quad
- Core i7
- Core i5
- Core i3
- Pentium Dual Core (если поддерживается 64-разрядная версия; Allendale и далее)
- Celeron 4xx Sequence Conroe-L
- Celeron Dual Core E1200
- Серия Celeron M 500
- Atom
- Nano
Новинка инструкции
В таблице ниже satsw (X) (читается как «насыщение до знакового слова») принимает целое число X со знаком и преобразует его в -32768, если оно меньше -32768, в +32767 если он больше 32767, и в противном случае оставляет его без изменений. Как правило, для архитектуры Intel байты составляют 8 бит, слова — 16 бит, а двойные слова — 32 бита; «регистр» относится к векторному регистру MMX или XMM.
PSIGNB, PSIGNW, PSIGND Packed Sign Отменяет элементы регистра байтов, слов или двойных слов, если знак соответствующих элементов другого регистра отрицательный. PABSB, PABSW, PABSD Упакованное абсолютное значение Заполните элементы регистра байтов, слов или двойных слов абсолютными значениями элементов другого регистра PALIGNR Packed Align Right берет два регистра, объединяет их значения и извлекает секцию длины регистра из смещения, заданного непосредственным значением, закодированным в инструкции. PSHUFB Packed Shuffle Bytes принимает регистры байтов A = [a 0a1a2. ] и B = [b 0b1b2. ] и заменяет A на [a b0ab1ab2. ]; за исключением того, что он заменяет i-ю запись на 0, если установлен верхний бит b i. PMULHRSW Packed 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)…] См. Также
Ссылки
Внешние ссылки
- Технические характеристики Core 2 Mobile
- Официальный документ Intel, в котором признается существование SSSE3 и описывается SSE4
- В документация по набору структур, в которой перечислены функции инструкций SSSE3
- «Cat» процессоры с низким энергопотреблением