Supplemental Streaming SIMD Extension 3 (SSSE3) — позначення, яке було дане Intel четвертому розширенню системи команд. Попереднє мало позначення SSE3, і Intel додала ще один символ 'S' замість збільшення номера версії. Часто до початку використання офіційного позначення SSSE3 ці команди називались SSE4. Також їх називали кодовими іменами Tejas New Instructions (TNI) та Merom New Instructions (MNI) за назвами процесорів, у яких Intel збиралась підтримувати ці нові команди. З’явившись у Intel Core Microarchitecture, SSSE3 доступне у серіях процесорів Xeon 5100 (версії для серверів та робочих станцій), а також у процесорах Intel Core 2 (версії для ноутбуків та робочих станцій) та Intel Atom.
Новими в SSSE3, у порівнянні з SSE3 є 16 команд, які працюють з упакованими цілими. Кожна з них може працювати і з 64-бітними (MMX), і з 128-бітними (XMM) регістрами, тому Intel у своїх матеріалах посилається на 32 нові команди.
Нові інструкції
Робота зі знаком
- PABSB, PABSW, PABSD — (Packed Absolute Value {Bytes/Words/DWords})
- Вхід — { A0, A1… }
- Вихід — { A0 * sign(A0), A1 * sign (A1)… }
Кожне поле результату є абсолютна величина відповідного поля з src1. Фактично це ті ж операції PSIGNB, PSIGNH, PSIGNW, у яких обидва аргументи один і той же регістр.
- PSIGNB, PSIGNW, PSIGND — (Packed Sign {Bytes/Words/DWords})
- Вхід — { A0, A1… }, { B0, B1… }
- Вихід — { A0 * sign(B0), A1 * sign (B1)… }
Кожне поле результату є добуток поля з src1 на {-1,0,1} в залежності від знака відповідного поля в src2 (множення на 0, коли поле в src2 дорівнює нулю).
Зсуви
- PALIGNR — (Packed Align Right)
- Вхід — { A0, A1 }, { B0, B1 }, imm8
- Вихід — { B1_B0_A1_A0 >> (imm8 * 8) }
Два регістра операнда розглядаються як одне беззнакове значення подвоєної розмірності, з якого виймається 64-/128-бітне значення починаючи з байта, вказаного у безпосередньому аргументі-константі команди.
Перемішування байтів
- PSHUFB — (Packed Shuffle Bytes)
- Вхід — { A0, A1, A2,.. A7/A15 }, { B0, B1, B2,.. B7/B15 }
- Вихід — { [AB0 AB1 AB2 …] }
Перестановка байтів, кожен байт результату є деякий байт з першого аргументу, який визначається за відповідним байтом другого аргументу (якщо байт від’ємний, то в байт результату записується нуль, у іншому випадку використовуються молодші 3 або 4 біта як номер байта у першому аргументі).
Множення
- PMULHRSW — (Packed Multiply High with Round and Scale)
- Вхід — { A0, A1… }, { B0, B1… }
- Вихід — { A0 * B0, A1 * B1… }
Аргументи A і B розглядаються як вектори 16-битных знакових чисел з фіксованою комою, представлених у діапазоні [-1,+1) (тобто 0x4000 — це 0.5, а 0xa000 — це −0.75 і т. д.), які множать одне на друге з коректним округленням.
- PMADDUBSW — (Multiply and Add Packed Signed and Unsigned Bytes)
- Вхід — { A0, A1, A2, A3,.. }, { B0, B1, B2, B3,.. }
- Вихід — { (A0*B0+A1*B1), (A2*B2+A3*B3), … }
Виконується побайтове перемноження векторів A і B, проміжні 16-бітні результати попарно складається між собою з насиченням і видаються як результат.
Горизонтальні складання/віднімання цілих
- PHSUBW, PHSUBD — (Packed Horizontal Subtract (16-ти- або 32-хбітні поля))
- Вхід — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Вихід — { A0-A1 A2-A3 … B0-B1 B2-B3 …}
Горизонтальне віднімання цілих 16-/32-битных полів.
- PHSUBSW — (Packed Horizontal Subtract and Saturate Words (16-бітні поля))
- Вхід — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Вихід — { A0-A1 A2-A3 B0-B1 B2-B3 }
Горизонтальне віднімання цілих 16-битных полів з насиченням.
- PHADDW, PHADDD — (Packed Horizontal Add (16-ти- або 32-хбітні поля))
- Вхід — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Вихід — { A0+A1 A2+A3 … B0+B1 B2+B3 …}
Горизонтальне складання цілих 16-/32-битных полів.
- PHADDSW — (Packed Horizontal Add and Saturate Words (16-бітні поля))
- Вхід — { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Вихід — { A0+A1 A2+A3 … B0+B1 B2+B3 …}
Горизонтальне складання цілих 16-битных полів з насиченням.
Процесори, які підтримують SSSE3
- Intel:
- Xeon 5100 Series
- Xeon 5300 Series
- Xeon 3000 Series
- Xeon E3
- Xeon E5
- Xeon E7
- Core 2 Duo
- Core 2 Quad
- Core 2 Extreme
- Core i3
- Core i5
- Core i7
- Pentium Dual-Core
- 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
- Athlon 64 x2
- VIA:
- Nano
Література
- Опис системи команд, де описані інструкції SSSE3 [ 24 січня 2009 у Wayback Machine.]
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2B[недоступне посилання з лютого 2019]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Supplemental Streaming SIMD Extension 3 SSSE3 poznachennya yake bulo dane Intel chetvertomu rozshirennyu sistemi komand Poperednye malo poznachennya SSE3 i Intel dodala she odin simvol S zamist zbilshennya nomera versiyi Chasto do pochatku vikoristannya oficijnogo poznachennya SSSE3 ci komandi nazivalis SSE4 Takozh yih nazivali kodovimi imenami Tejas New Instructions TNI ta Merom New Instructions MNI za nazvami procesoriv u yakih Intel zbiralas pidtrimuvati ci novi komandi Z yavivshis u Intel Core Microarchitecture SSSE3 dostupne u seriyah procesoriv Xeon 5100 versiyi dlya serveriv ta robochih stancij a takozh u procesorah Intel Core 2 versiyi dlya noutbukiv ta robochih stancij ta Intel Atom Novimi v SSSE3 u porivnyanni z SSE3 ye 16 komand yaki pracyuyut z upakovanimi cilimi Kozhna z nih mozhe pracyuvati i z 64 bitnimi MMX i z 128 bitnimi XMM registrami tomu Intel u svoyih materialah posilayetsya na 32 novi komandi Novi instrukciyiRobota zi znakom PABSB PABSW PABSD Packed Absolute Value Bytes Words DWords Vhid A0 A1 Vihid A0 sign A0 A1 sign A1 Kozhne pole rezultatu ye absolyutna velichina vidpovidnogo polya z src1 Faktichno ce ti zh operaciyi PSIGNB PSIGNH PSIGNW u yakih obidva argumenti odin i toj zhe registr PSIGNB PSIGNW PSIGND Packed Sign Bytes Words DWords Vhid A0 A1 B0 B1 Vihid A0 sign B0 A1 sign B1 Kozhne pole rezultatu ye dobutok polya z src1 na 1 0 1 v zalezhnosti vid znaka vidpovidnogo polya v src2 mnozhennya na 0 koli pole v src2 dorivnyuye nulyu Zsuvi PALIGNR Packed Align Right Vhid A0 A1 B0 B1 imm8 Vihid B1 B0 A1 A0 gt gt imm8 8 Dva registra operanda rozglyadayutsya yak odne bezznakove znachennya podvoyenoyi rozmirnosti z yakogo vijmayetsya 64 128 bitne znachennya pochinayuchi z bajta vkazanogo u bezposerednomu argumenti konstanti komandi Peremishuvannya bajtiv PSHUFB Packed Shuffle Bytes Vhid A0 A1 A2 A7 A15 B0 B1 B2 B7 B15 Vihid AB0 AB1 AB2 Perestanovka bajtiv kozhen bajt rezultatu ye deyakij bajt z pershogo argumentu yakij viznachayetsya za vidpovidnim bajtom drugogo argumentu yaksho bajt vid yemnij to v bajt rezultatu zapisuyetsya nul u inshomu vipadku vikoristovuyutsya molodshi 3 abo 4 bita yak nomer bajta u pershomu argumenti Mnozhennya PMULHRSW Packed Multiply High with Round and Scale Vhid A0 A1 B0 B1 Vihid A0 B0 A1 B1 Argumenti A i B rozglyadayutsya yak vektori 16 bitnyh znakovih chisel z fiksovanoyu komoyu predstavlenih u diapazoni 1 1 tobto 0x4000 ce 0 5 a 0xa000 ce 0 75 i t d yaki mnozhat odne na druge z korektnim okruglennyam PMADDUBSW Multiply and Add Packed Signed and Unsigned Bytes Vhid A0 A1 A2 A3 B0 B1 B2 B3 Vihid A0 B0 A1 B1 A2 B2 A3 B3 Vikonuyetsya pobajtove peremnozhennya vektoriv A i B promizhni 16 bitni rezultati poparno skladayetsya mizh soboyu z nasichennyam i vidayutsya yak rezultat Gorizontalni skladannya vidnimannya cilih PHSUBW PHSUBD Packed Horizontal Subtract 16 ti abo 32 hbitni polya Vhid A0 A1 A2 A3 B0 B1 B2 B3 Vihid A0 A1 A2 A3 B0 B1 B2 B3 Gorizontalne vidnimannya cilih 16 32 bitnyh poliv PHSUBSW Packed Horizontal Subtract and Saturate Words 16 bitni polya Vhid A0 A1 A2 A3 B0 B1 B2 B3 Vihid A0 A1 A2 A3 B0 B1 B2 B3 Gorizontalne vidnimannya cilih 16 bitnyh poliv z nasichennyam PHADDW PHADDD Packed Horizontal Add 16 ti abo 32 hbitni polya Vhid A0 A1 A2 A3 B0 B1 B2 B3 Vihid A0 A1 A2 A3 B0 B1 B2 B3 Gorizontalne skladannya cilih 16 32 bitnyh poliv PHADDSW Packed Horizontal Add and Saturate Words 16 bitni polya Vhid A0 A1 A2 A3 B0 B1 B2 B3 Vihid A0 A1 A2 A3 B0 B1 B2 B3 Gorizontalne skladannya cilih 16 bitnyh poliv z nasichennyam Procesori yaki pidtrimuyut SSSE3Intel Xeon 5100 Series Xeon 5300 Series Xeon 3000 Series Xeon E3 Xeon E5 Xeon E7 Core 2 Duo Core 2 Quad Core 2 Extreme Core i3 Core i5 Core i7 Pentium Dual Core Celeron Celeron 4xx yadro Conroe L Celeron Dual Core Celeron M 500 Series Intel Atom AMD Bobcat E 240 E 350 C 30 C 50 Bulldozer Athlon 64 x2 VIA NanoLiteraturaOpis sistemi komand de opisani instrukciyi SSSE3 24 sichnya 2009 u Wayback Machine Intel 64 and IA 32 Architectures Software Developer s Manual Volume 2B nedostupne posilannya z lyutogo 2019