SSE3

SSE3 (PNI — Prescott New Instruction) — третье поколение SIMD-расширения от компании Intel. Является логическим продолжением 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).

Ключевым нововведением стала функция горизонтальной работы с регистрами. Так, специалистами компании Intel были добавлены команды сложения/вычитания нескольких значений из одного регистра. Данные команды привели к значительному упрощению ряда DSP и 3D-операций.

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

Инструкции

  • 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 (транформация вещественного числа в целое, при этом, с сохранением целочисленного значения, а также округления в сторону 0).
  • LDDQU (загрузка 128bit невыровненных данных из памяти в регистр xmm, при этом производится предотвращение пересечения границы строки кеша).

Поддерживающие SSE3 процессоры

  • AMD:
    • Athlon 64 (от Venice Stepping E3 и San Diego Stepping E4 и выше)
    • Athlon 64 X2
    • Athlon 64 FX (от San Diego Stepping E4 и выше)
    • Opteron (от Stepping E4 и выше)
    • Sempron (от Palermo до E3)
    • Phenom
    • Phenom II
    • Athlon II
    • Turion 64
    • Turion 64 X2
  • 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 (кроме серии TM86xx)
#