SSSE3

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 новые команды.

Содержание

Новые инструкции

Работа со знаком

  • PABSB, PABSW, PABSD(Packed Absolute Value {Bytes/Words/DWords})
    • Input — { A0, A1… }
    • Output — { A0 * sign(A0), A1 * sign (A1)… }

Каждое поле результата есть абсолютная величина соответствующего поля из src1. Фактически это те же операции PSIGNB, PSIGNH, PSIGNW у которых оба аргумента один и тот же регистр.

  • PSIGNB, PSIGNW, PSIGND(Packed Sign {Bytes/Words/DWords})
    • Input — { A0, A1… }, { B0, B1… }
    • Output — { A0 * sign(B0), A1 * sign (B1)… }

Каждое поле результата есть произведение поля из src1 на {-1,0,1} в зависимости от знака соответствующего поля в src2 (умножение на 0 когда поле в src2 равно нулю).

Сдвиги

  • PALIGNR(Packed Align Right)
    • Input — { A0, A1 }, { B0, B1 }, imm8
    • Output — { B1_B0_A1_A0 >> (imm8 * 8) }

Два регистра операнда рассматривается как одно беззнаковое промежуточное значение удвоенной размерности из которого извлекается 64-х/128-х битное значение начиная с байта указанного в непосредственном аргументе-константе команды.

Перемешивание байт

  • PSHUFB(Packed Shuffle Bytes)
    • Input — { A0, A1, A2,.. A7/A15 }, { B0, B1, B2,.. B7/B15 }
    • Output — { [AB0 AB1 AB2 …] }

Перестановка байт, каждый байт результата есть некоторый байт из первого аргумента определяемый по соответствующему байту из второго аргумента (если байт отрицательный, то в байт результат прописывается ноль, иначе используются младшие 3 или 4 бита как номер байта в первом аргументе).

Умножения

  • PMULHRSW(Packed Multiply High with Round and Scale)
    • Input — { A0, A1… }, { B0, B1… }
    • Output — { A0 * B0, A1 * B1… }

Аргументы 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,.. }, { B0, B1, B2, B3,.. }
    • Output — { (A0*B0+A1*B1), (A2*B2+A3*B3), … }

Производится побайтное перемножение векторов A и B, промежуточные 16-ти битные результаты попарно складываются между собой с насыщением и выдаются как результат.

Горизонтальные сложения/вычитания целых

  • PHSUBW, PHSUBD(Packed Horizontal Subtract (16-ти или 32-х битные поля))
    • Input — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
    • Output — { A0-A1 A2-A3 … B0-B1 B2-B3 …}

Горизонтальное вычитание целых 16/32 битных полей.

  • PHSUBSW(Packed Horizontal Subtract and Saturate Words (16-ти битные поля))
    • Input — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
    • Output — { A0-A1 A2-A3 B0-B1 B2-B3 }

Горизонтальное вычитание целых 16 битных полей с насыщением.

  • PHADDW, PHADDD(Packed Horizontal Add (16-ти или 32-х битные поля))
    • Input — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
    • Output — { A0+A1 A2+A3 … B0+B1 B2+B3 …}

Горизонтальное сложение целых 16/32 битных полей.

  • PHADDSW(Packed Horizontal Add and Saturate Words (16-ти битные поля))
    • Input — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
    • Output — { A0+A1 A2+A3 … B0+B1 B2+B3 …}

Горизонтальное сложение целых 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
  • AMD:
    • Bobcat (E-240, E-350, C-30, C-50)
    • Bulldozer
  • VIA:
    • Nano

Литература


Наборы расширения базовых инструкций процессоров семейства x86
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "SSSE3" в других словарях:

  • SSSE3 — (Supplemental Streaming SIMD Extensions 3) bezeichnet die mit Intels Core Architektur eingeführten Erweiterungen des SSE3 Befehlssatzes. Firmenintern werden auch die Bezeichnungen „Tejas New Instructions“ (TNI) oder „Merom New Instructions“ (MNI) …   Deutsch Wikipedia

  • SSSE3 — Saltar a navegación, búsqueda Supplemental Streaming SIMD Extension 3 son una mejora menor de las extensiones SSE3 ya introducidas anteriormente en la linea Prescott, fue presentada en los procesadores Intel Core 2 Duo y Xeon. Fueron agregadas 32 …   Wikipedia Español

  • SSSE3 — Supplemental Streaming SIMD Extension 3 (SSSE3) aussi connu sous le nom de code Tejas New Instructions (TNI) est le quatrième jeu d instruction SSE, souvent nommé à tort SSE4. Introduit par Intel dans son architecture Core, le jeu d instruction… …   Wikipédia en Français

  • SSSE3 — Supplemental Streaming SIMD Extension 3 (SSSE3) is Intel s name for the SSE instruction set s fourth iteration. The previous version was SSE3, and Intel have added an S rather than increment the version number, as they appear to consider it… …   Wikipedia

  • Supplemental Streaming SIMD Extension 3 — SSSE3 Supplemental Streaming SIMD Extension 3 (SSSE3) aussi connu sous le nom de code Tejas New Instructions (TNI) est le quatrième jeu d instruction SSE, souvent nommé à tort SSE4. Introduit par Intel dans son architecture Core, le jeu d… …   Wikipédia en Français

  • Supplemental Streaming SIMD Extensions 3 — SSSE3 (Supplemental Streaming SIMD Extensions 3) bezeichnet die mit Intels Core Architektur eingeführten Erweiterungen des SSE3 Befehlssatzes. Firmenintern werden auch die Bezeichnungen „Tejas New Instructions“ (TNI) oder „Merom New Instructions“ …   Deutsch Wikipedia

  • List of Intel Core 2 microprocessors — The Core 2 brand refers to Intel s x86/x86 64 microprocessors with the Core microarchitecture targeted at the consumer and business markets (except servers) above Pentium. The Core 2 solo branch covered single core CPUs for notebook computers,… …   Wikipedia

  • Intel Core 2 Duo (Mobil) — Intel Core 2 Duo Intel Core 2 Duo Emblem Produktion: seit 2006 Produzent: Intel Prozessortakt: 1,06 GHz …   Deutsch Wikipedia

  • Список микропроцессоров Intel — Информация в этой статье или некоторых её разделах устарела. Вы можете помочь проекту …   Википедия

  • Intel Xeon (Core) —      Intel Xeon   >> Logo der Xeon Core Reihe Produktion: seit 2006 Produzent …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»