stringtranslate.com

SSE3

SSE3 , потоковые расширения SIMD 3 , также известные под кодовым названием Intel Prescott New Instructions ( PNI ), [1] являются третьей итерацией набора инструкций SSE для архитектуры IA-32 (x86). Intel представила SSE3 в начале 2004 года с ревизией Prescott своего процессора Pentium 4. [1] В апреле 2005 года AMD представила подмножество SSE3 в ревизии E (Venice и San Diego) своих процессоров Athlon 64. [2] Более ранние наборы инструкций SIMD на платформе x86 , от самых старых к самым новым, — это MMX , 3DNow! (разработаны AMD, больше не поддерживаются на новых процессорах), SSE и SSE2 .

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

Изменения

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

Процессоры с SSE3

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

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

Арифметика

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
Как и старая FISTPинструкция x87, но игнорирует настройки режима округления регистра управления с плавающей точкой и вместо этого использует режим «chop» (усечения). [4] Позволяет исключить дорогостоящую загрузку и повторную загрузку регистра управления в таких языках, как C, где преобразование float в int требует поведения усечения по стандарту.

Другие инструкции

MONITOR,MWAIT
Инструкция MONITORиспользуется для указания адреса памяти для мониторинга, в то время как MWAITинструкция переводит процессор в состояние пониженного энергопотребления и ждет события записи по контролируемому адресу. [4]

Ссылки

  1. ^ ab Шимпи, Ананд Лал; Уилсон, Дерек. «Intel Pentium 4 E: Prescott прибыл с багажом». www.anandtech.com . Получено 10 апреля 2023 г. .
  2. ^ Шимпи, Ананд Лал. «Обзор отрасли — четвертый квартал 2004 г.: AMD добавляет поддержку SSE3, Intel 925/915 не продается и многое другое». www.anandtech.com . Получено 10 апреля 2023 г.
  3. ^ "Технология расширений набора инструкций Intel". Intel . Получено 2023-04-10 .
  4. ^ abcd Райт, Кристофер. "Набор инструкций SSE3". softpixel.com . Получено 10 апреля 2023 г. .
  5. ^ "LDDQU — Загрузка невыровненного целого числа 128 бит". www.felixcloutier.com . Получено 2023-04-10 .
  6. ^ Уилсон, Дерек. "AMD K8 E4 Stepping: SSE3 Performance". www.anandtech.com . Получено 10 апреля 2023 г.
  7. ^ "Intel Xeon 3.4GHz [ядро 'Nocona']". HEXUS . 2004-08-18 . Получено 2023-04-10 .
  8. ^ abcdefg "Инструкции SSE3 - Справочное руководство по языку ассемблера x86". docs.oracle.com . Получено 10 апреля 2023 г. .

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