Технология sse
SSE или Streaming SIMD Extensions — это набор инструкций процессора для обработки большого количества данных. Технология постоянно развивается, поэтому есть несколько её версий. Без поддержки SSE2 на компьютере не будут работать большинство современных программ, например, браузеры Google Chrome. Инструкции SSE3 используются больше в приложениях для обработки графики. Эта технология была придумана в Intel, однако сейчас поддерживается также в процессорах AMD, так как стала стандартом.
Для реализации этой технологии в микропроцессор были добавлены восемь новых 128-разрядных регистров, получивших название XMM. Т.е. команды обращаются к этим регистрам по именам XMM0, XMM1,…XMM7.
В каждом из регистров XMM помещаются четыре вещественных 32-разрядных числа. Каждое 32-разрядное число с плавающей запятой имеет 1 знаковый бит, 8 битов порядка и 23 бита мантиссы, что соответствует стандарту IEEE-754 на формат представления чисел одинарной точности с плавающей запятой.
Информация представлена на рисунке 1.
Технология SSE включает 70 новых команд и позволяет выполнять векторные (пакетные) и скалярные инструкции, при этом векторные инструкции выполняют операции одновременно над четырьмя наборами операндов. В именах команд, выполняющих векторные операции, присутствует суффикс PS. Скалярные инструкции работают только с одним комплектом операндов - младшим 32-разрядным набором. В имени команд, выполняющих скалярные операции, присутствует суффикс SS.
Технология sse2
В микропроцессорах Pentium 4 была использована технология SSE2, которая улучшает возможности архитектуры MMX и технологии SSE. В технологии SSE2 используются те же самые регистры, которые были введены в технологии SSE, т.е. 128-разрядные регистры XMM. Однако, в отличие от SSE, где эти регистры использовались только для хранения и обработки вещественных чисел (32-разрядные операнды с плавающей запятой и одинарной точности) в технологии SSE2 эти регистры могут хранить и обрабатывать целочисленные операнды:
|
- 16 байт;
- 8 слов;
- 4 двойных слова;
- 2 четверных слова;
- 1 128-разрядное слово.
Кроме того, в этих регистрах может храниться и обрабатываться новый формат вещественных чисел – два 64-разрядных числа с плавающей запятой двойной точности.
Технология SSE2 включает в себя набор инструкций, который производит операции со скалярными и упакованными типами данных. Также SSE2 содержит инструкции для потоковой обработки целочисленных данных в тех же 128-битных XMM регистрах, что делает это расширение более предпочтительным для целочисленных вычислений, нежели использование набора инструкций MMX, появившегося гораздо раньше.
Эта технология предназначена для разработки приложений трехмерной графики, обработки сигналов, кодирования и декодирования, распознавания речи и т. п. Кроме того, SSE2-команды позволяют:
разрабатывать алгоритмы, в которых одновременно можно обрабатывать смешанные типы данных: упакованные числа с плавающей точкой с одинарной точностью, а также упакованные числа с плавающей запятой с двойной точностью, а также целые 64- и 128-разрядные числа;
работать с данными различной размерности: байтом, словом, двойным словом, учетверенным словом и двойным учетверенным словом.
В микропроцессор были введены новые команды для реализации функции целочисленной арифметики, 128-разрядные для регистров XMM и такие же 64-разрядные для регистров MMX; ряд старых инструкций MMX распространили на XMM (в 128-битном варианте); добавлены инструкции преобразования для новых форматов данных, а также расширены возможности "перемешивания" данных в блоке XMM. Кроме того, расширена поддержка управления кэшированием и порядком исполнения операций с памятью.
|
Набор SSE2 добавил 144 новые команды к SSE, в котором было только 70 команд.
Поскольку SSE2 предназначено и для замены архитектуры MMX, с использованием 128-разрядных регистров вместо 64-разрядных, то можно рекомпилировать код, используя следующую последовательность действий:
заменить имена MMX регистров на имена SSE2 регистров, например вместо регистра MM0 указать регистр XMM0;
заменить команду MOVD на команду MOVAPD или MOVUPD;
заменить команду PSHUFW на комбинацию следующих команд PSHUFHW, PSHUFLW, PSHUFD;
заменить команды PSLLQ и PSRLQ на команды PSLLDQ и PSRLDQ соответственно;
изменить счетчики циклов и величину смещения в памяти, поскольку теперь работа производится над 128 разрядами, а не 64.
Следующим шагом совершенствования SSE-технологи стало SSE3-расширение, которое появилось в микропроцессоре Pentium 4. SSE3 расширение добавило еще 13 новых команд. Все они, за исключением трех, используют ХММ-регистры и предназначены для повышения производительности при выполнении следующих операций:
• быстрое преобразование вещественного числа в целое (соответствующая команда fisttp заменяет семь «обычных» команд);
• сложные арифметические вычисления (команды addsubps, addsubpd, movsldup, movshdup, movddup);
|
• кодирование видео (команда 1ddqu);
• обработка графики (команды haddps, hsubps, haddpd, hsubpd);
• синхронизация потоков (команды monitor, mwait).
В микропроцессорах Intel Core была реализована технология SSE4. Эта технология использует 54 новых инструкций. Ни одна из этих инструкций не работает с 64-разрядными MMX регистрами, а только с 128-разрядными регистрами XMM0-15.
Технология SSE3
SSE3 или Superimplemental SSE3 — это следующая версия расширения SSE3, вместо того, чтобы увеличивать цифру версии, разработчики просто добавили ещё одну букву S. В этой версии было добавлено 32 новых инструкции в основном, это математика и другие операции с данными. Этот набор инструкций ещё не так важен для работы операционной системы в целом, но необходим для работы программ распознавания речи и некоторых современных игр. Давайте разберемся какие процессоры поддерживают SSSE3, а также как определить поддерживает ли ваш процессор эту технологию.
Какие процессоры поддерживают SSE3 и SSE4
Расширение SSSE3 появилось в 2006 году, следовательно все современные процессоры эту технологию поддерживают. Все процессоры с архитектурой x64 поддерживают версию расширения SSE2.
Что касается SSE3, то поддержка начинается её поддерживают такие процессоры, и все выпущенные после них | Более новое расширение SSSE3 поддерживается в этих линейках процессоров и более новых | Расширение SSE4.1 вышло немного позже и поддерживается начиная с этих моделей |
Intel Pentium 4 архитектуры Prescott; AMD Athlon 64 ревизии E; AMD Phenom. | Intel Core 2 Duo; Intel Core i7; Intel Core i5; Intel Core i3; Intel Atom; AMD Bulldozer; AMD Bobcat; AMD Ryzen. | Intel Core 2 начиная с архитектуры Penryn; Intel Core i7 начиная с Nehalem; Intel Atom начиная с Silvermont; AMD Bulldozer, Jaguar. |
Набор инструкций SSE4.2 появился весной 2007 года и поддерживается всеми процессорами, что и SSE4.1 кроме Intel Core 2. Естественно, что процессоры, которые поддерживают более свежую версию SSE, поддерживают и предыдущие.
Надеюсь, мне удалось ответить на вопрос какие процессоры поддерживают технологию sse3 ssse3 и sse4, а также для каких программ они подходят.