SSE3

редактировать

SSE3, Streaming SIMD Extensions 3, также известный под кодовым Название Intel Prescott New Instructions (PNI ), является третьей итерацией Набор инструкций SSE для архитектуры IA-3210>(x86). Intel представила SSE3 в начале 2004 года с версией Prescott своего процессора Pentium 4. В апреле 2005 года AMD представила подмножество SSE3 в версии E (Венеция и Сан-Диего) своих процессоров Athlon 64. Ранние наборы инструкций SIMD на платформе x86, от самых старых до новейших, - это MMX, 3DNow! (разработанные AMD, но не поддерживаемые процессорами Intel), SSE и SSE2.

SSE3 содержит 13 инструкций по сравнению с SSE2.

Содержание

  • 1 Изменения
  • 2 ЦП с SSE3
  • 3 Новые инструкции
    • 3.1 Общие инструкции
    • 3.2 Инструкции Intel
  • 4 Ссылки
  • 5 Внешние ссылки

Изменения

Наиболее заметное изменение - это возможность работать горизонтально в регистре, в отличие от более или менее строго вертикальной работы всех инструкций SSE. Более конкретно, были добавлены инструкции для сложения и вычитания нескольких значений, хранящихся в одном регистре. Эти инструкции можно использовать для ускорения выполнения ряда операций DSP и 3D. Также имеется новая инструкция для преобразования значений с плавающей запятой в целые числа без необходимости изменения глобального округления, что позволяет избежать дорогостоящих остановок конвейера конвейера. Наконец, расширение LDDQU, альтернативная загрузка с неверно выровненным целочисленным вектором, которая лучшая производительность на платформе NetBurst для нагрузок, пересекающих границы строки кэша.

процессоры с SSE3

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

Общие инструкции

Арифметика

  • ADDSUBPD - (сложение-вычитание-упакованное-двойное)
    • Ввод: {A0, A1}, {B0, B1}
    • Выв од: {A0 - B0, A1 + B1}
  • ADDSUBPS - (сложение-вычитание-упаковка-одиночный)
    • Ввод: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Выход: {A0 - B0, A1 + B1, A2 - B2, A3 + B3}

AOS (массив структур)

  • HADDPD - (Horizontal-Add-Packed-Double)
    • Ввод: {A0, A1}, {B0, B1}
    • Выход: {A0 + A1, B0 + B1}
  • HADDPS (горизонтально-добавить-упаковано-одиночное)
    • Вход: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Вывод: {A0 + A1, A2 + A3, B0 + B1, B2 + B3 }
  • HSUBPD - (Horizontal-Subtract-Packed-Double)
    • Ввод: {A0, A1}, {B0, B1}
    • Вывод: {A0 - A1, B0 - B1 }
  • HSUBPS - (горизонтальное-вычитание-упаковано-одиночное)
    • Ввод: {A0, A1, A2, A3}, {B0, B1, B2, B3}
    • Вывод: {A0 - A1, A2 - A3, B0 - B1, B2 - B3}
  • LDDQU - Как указано выше, это альтернативная загрузка смещенного целочисленного вектора. Это может быть полезно для задач сжатия видео.
  • MOVDDUP, MOVSHDUP, MOVSLDUP - они полезны для комплексных чисел и расчета волн, таких как звук.
  • FISTTP - Как и старая инструкция x87 FISTP, но игнорирует настройки режима округления управления с плавающей запятой и вместо этого использует режим «обрезки» (усечения). Позволяет опустить дорогостоящую загрузку и повторную загрузку контрольного регистра на таких языках, как C, где преобразование float-to-int требует стандартного поведения усечения.

Инструкции Intel

  • MONITOR, MWAIT - оптимизируют многопоточные приложения, повышающие производительность процессоров с Hyper-threading.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-06 04:41:12
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте