SSE3 (Streaming SIMD Extensions 3)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 18:45, 14 апреля 2017.

SSE3 (англ. Streaming SIMD Extensions 3) или раннее неофициальное название PNI (англ. Prescott New Instruction) - третья версия SIMD-расширения Intel, потомок SSE, SSE2 и MMX. Представляет собой набор из 13 дополнительных команд, позволяющих процессору более эффективно использовать 128-битные регистры SSE. Впервые представлено 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). В частности, SSE3 содержит:

  • инструкцию по преобразованию чисел с плавающей точкой в целые числа;
  • три инструкции дублирования данных;
  • инструкцию загрузки невыровненных переменных;
  • две инструкции одновременного сложения/вычитания;
  • четыре инструкции горизонтального сложения/вычитания;
  • две инструкции синхронизации потоков.

Наиболее заметное изменение — возможность горизонтальной работы с регистрами. Если говорить более конкретно, добавлены команды сложения и вычитания нескольких значений, хранящихся в одном регистре. Эти команды упростили ряд 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, с предотвращением пересечения границы строки кеша.

История изменений в технологии Streaming SIMD Extensions

Потоковая передача расширений SIMD (SSE)

SSE был разработан для замены Технологии MMX™. Это расширилось в поколениях Процессоров Intel® для включения в SSE2, SSE3/SSE3S и SSE4. Каждая итерация принесла новые команды и увеличила производительность.

Потоковая передача расширений SIMD 2 (SSE2)

SSE2 расширяет набор инструкций SSE с целью полностью вытеснить MMX. Набор SSE2 добавил 144 новые команды к SSE, в котором было только 70 команд.

Потоковая передача расширений SIMD 3 (SSE3)

SSE3 является развитием технологий MMX, SSE, SSE2, представляет собой набор из 13 дополнительных команд, позволяющих процессору более эффективно использовать 128-битные регистры SSE.

Потоковая передача расширений SIMD 4 (SSE4)

Добавлены инструкции, ускоряющие компенсацию движения в видеокодеках, быстрое чтение из USWC памяти, множество инструкций для упрощения векторизации программ компиляторами. Кроме того, в SSE4.2 добавлены инструкции обработки строк 8/16 битных символов, вычисления CRC32, POPCNT. Впервые в SSE4 регистр xmm0 стал использоваться как неявный аргумент для некоторых инструкций.

Процессоры с поддержкой SSE3

  • AMD:
    • AMD A
    • Athlon 64 (начиная с Venice Stepping E3 и San Diego Stepping E4)
    • Athlon 64 X2
    • Athlon 64 FX (начиная с San Diego Stepping E4)
    • Opteron (начиная с Stepping E4)
    • Sempron (начиная с Palermo. Stepping E3)
    • Phenom
    • Phenom II
    • Athlon II
    • Turion 64
    • Turion 64 X2
    • AMD FX
    • AMD Ryzen
  • Intel:
    • 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
  • VIA/Centaur:
    • C7
    • Nano
  • Transmeta:
    • Efficeon TM88xx (NOT Model Numbers TM86xx)

Источники

  1. Википедия [Электронный ресурс]: SSE3 / Дата обращения: 05.03.2017. — Режим доступа: https://ru.wikipedia.org/wiki/SSE3
  2. Intel [Электронный ресурс]: Intel® Streaming SIMD Extensions Technology Defined / Дата обращения: 05.03.2017. - Режим доступа: http://www.intel.ru/content/www/ru/ru/support/processors/000005779.html
  3. Chaynikam [Электронный ресурс]: SSE3 / Дата обращения: 05.03.2017. - Режим доступа: http://www.chaynikam.info/cpu_sse3.html