SSE3
SSE3 , Streaming SIMD Extensions 3 , также известный под Intel кодовым названием Prescott New Instructions ( PNI ), [ 1 ] это третья итерация набора инструкций SSE для архитектуры IA-32 (x86). Intel представила SSE3 в начале 2004 года вместе с версией Prescott своего процессора Pentium 4 . [ 1 ] В апреле 2005 года AMD представила подмножество SSE3 в версии E (Венеция и Сан-Диего) своих процессоров Athlon 64 . [ 2 ] Более ранние наборы инструкций SIMD на платформе x86 , от самых старых до новейших, — это MMX , 3DNow! (разработан AMD, больше не поддерживается на новых процессорах), SSE и SSE2 .
SSE3 содержит 13 новых инструкций по сравнению с SSE2 . [ 3 ]
Изменения
[ редактировать ]Наиболее заметным изменением является возможность работать в регистре горизонтально, в отличие от более или менее строго вертикальной работы всех предыдущих инструкций SSE. Более конкретно, были добавлены инструкции по сложению и вычитанию нескольких значений, хранящихся в одном регистре. [ 4 ] Эти инструкции можно использовать для ускорения выполнения ряда DSP и 3D- операций. Также имеется новая инструкция для преобразования значений с плавающей запятой в целые числа без необходимости изменения глобального режима округления, что позволяет избежать дорогостоящих простоев конвейера . Наконец, расширение добавляет LDDQU
, альтернативная загрузка целочисленного вектора со смещением, которая имеет лучшую производительность на платформах на основе NetBurst для загрузок, выходящих за границы кэша. [ 5 ]
Процессоры с SSE3
[ редактировать ]- АМД :
- Оптерон (начиная со Степпинга E4 [ 6 ] )
- Семпрон (начиная с Палермо. Степпинг E3)
- Athlon 64 (начиная с Venice Stepping E3 и San Diego Stepping E4)
- Athlon 64 FX (начиная с Stepping E4 в Сан-Диего)
- Атлон 64 X2
- Феномен 64
- Турион Семья
- К10 Семья
- Семейство APU (в том числе без графического процессора)
- Серия FX
- Дзен Семья
- Интел :
- ВИА / Кентавр :
- Transmeta Efficeon TM88xx (НЕ номера моделей TM86xx)
Новые инструкции
[ редактировать ]Общие инструкции
[ редактировать ]Арифметика
[ редактировать ]ADDSUBPD
- Сложить-вычесть-упаковать-двойной [ 8 ]
- Ввод: { A0, A1 }, { B0, B1 }
- Вывод: { A0 − B0, A1 + B1 }
ADDSUBPS
- Сложить-вычесть-упаковать-одиночный [ 8 ]
- Ввод: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Выход: { A0 − B0, A1 + B1, A2 − B2, A3 + B3 }
AOS (массив структур)
[ редактировать ]HADDPD
- Горизонтальный-Добавить-Упакованный-Двойной [ 8 ]
- Ввод: { A0, A1 }, { B0, B1 }
- Вывод: { A0 + A1, B0 + B1 }
HADDPS
- Горизонтальный-Добавить-Упакованный-Одиночный [ 8 ]
- Ввод: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Вывод: { A0 + A1, A2 + A3, B0 + B1, B2 + B3 }
HSUBPD
- Горизонтальное вычитание упакованное двойное [ 8 ]
- Ввод: { A0, A1 }, { B0, B1 }
- Выход: { A0 − A1, B0 − B1 }
HSUBPS
- Горизонтальное вычитание упакованное одинарное [ 8 ]
- Ввод: { A0, A1, A2, A3 }, { B0, B1, B2, B3 }
- Выход: { A0 − A1, A2 − A3, B0 − B1, B2 − B3 }
LDDQU
- Как указано выше, это альтернативная невыровненная целочисленная векторная нагрузка. [ 8 ] Это может быть полезно для задач сжатия видео.
MOVDDUP
,MOVSHDUP
,MOVSLDUP
[ 4 ]- Они полезны для комплексных чисел и вычислений волн, таких как звук.
FISTTP
- Как и старый x87
FISTP
инструкцию, но игнорирует настройки режима округления регистра управления плавающей запятой и вместо этого использует режим «chop» (усечения). [ 4 ] Позволяет отказаться от дорогостоящей загрузки и повторной загрузки регистра управления в таких языках, как C, где преобразование чисел с плавающей запятой в целое число требует стандартного поведения усечения.
Прочие инструкции
[ редактировать ]MONITOR
,MWAIT
- The
MONITOR
Инструкция используется для указания адреса памяти для мониторинга, а командаMWAIT
Команда переводит процессор в режим пониженного энергопотребления и ожидает события записи по отслеживаемому адресу. [ 4 ]
Ссылки
[ редактировать ]- ^ Jump up to: а б Уилсон, Ананд Лал Шимпи и Дерек. «Pentium 4 E от Intel: Прескотт прибыл с багажом» . www.anandtech.com . Проверено 10 апреля 2023 г.
- ^ Шимпи, Ананд Лал. «Обзор отрасли – четвертый квартал 2004 г.: AMD добавляет поддержку SSE3, процессоры Intel 925/915 не продаются и многое другое» . www.anandtech.com . Проверено 10 апреля 2023 г.
- ^ «Технология расширений набора команд Intel» . Интел . Проверено 10 апреля 2023 г.
- ^ Jump up to: а б с д Райт, Кристофер. «Набор инструкций SSE3» . softpixel.com . Проверено 10 апреля 2023 г.
- ^ «LDDQU — загрузить 128 бит невыровненного целого числа» . www.felixcloutier.com . Проверено 10 апреля 2023 г.
- ^ Уилсон, Дерек. «Степпинг AMD K8 E4: производительность SSE3» . www.anandtech.com . Проверено 10 апреля 2023 г.
- ^ «Intel Xeon 3,4 ГГц [ядро Nocona]» . ГЕКСУС . 18 августа 2004 г. Проверено 10 апреля 2023 г.
- ^ Jump up to: а б с д и ж г «Инструкции SSE3 — Справочное руководство по языку ассемблера x86» . docs.oracle.com . Проверено 10 апреля 2023 г.