Форматы данных и команды их обработки процессоров Pentium III, Pentium IV

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование




указанных в операнде- источнике, с заполнением старших бит нулями

Инструкции SSE появились в процессорах Pentium 3. Они делятся на три основные группы: инструкции над числами в блоке ХММ, дополнительные целочисленные SIMD-инструкции (в блоке ММХ) и новые инструкции кэширования. Основное число новых инструкций предназначено для работы с блоком ХММ. Векторные инструкции выполняются сразу над четырьмя парами чисел. Скалярные инструкции выполняются только над числами, расположенными в младших 32 битах операндов. Операнд-источник для инструкций ХММ может быть как регистром ХММ, так и 128-битной ячейкой памяти. Для многих инструкций требуется, чтобы операнд в памяти был выровнен по границе параграфа. При обработке скалярными инструкциями операнда в памяти пересылка между памятью и регистрами ХММ производится для всего 128-битного слова, хотя используется только 32 бита.

Таблица. Инструкции расширения SSE

Инструкция Описание

Пересылка данных с участием регистров ХММMOVAPS Пересылка 128-битных данных между памятью и регистрами ХММ или

между регистрами ХММ. Данные в памяти должны быть выровнены по границе 16-байтного параграфа

MOVUPS Пересылка 128-битных данных между памятью и регистрами ХММ или между регистрами ХММ (без требования выравнивания)

MOVHPS Пересылка 64-битных данных между памятью и старшей половиной регистров ХММ или между регистрами ХММ (младшая половина ХММ не изменяется)

MOVHLPS Пересылка старшей половины источника в младшую половину назначения (старшая половина регистра назначения не меняется)

MOVLHPS Пересылка младшей половины источника в старшую половину назначения (младшая половина регистра назначения не меняется)

MOVLPS Пересылка 64-битных данных между памятью и младшей половиной регистров ХММ или между регистрами ХММ (старшая половина ХММ не изменяется)

MOVMSKPS Сборка старших бит упакованных операндов из регистра ХММ в регистр общего назначения (биты 31, 63, 95 и 127 регистра ХММ попадают в биты О, 1, 2 и 3 регистра-приемника, остальные биты приемника будут нулевыми)

MOVSS Пересылка скалярного операнда (младшие 32 бита) между памятью и регистрами ХММ или между регистрами ХММ

Арифметические инструкции над числами в FP-формате в регистрах ХММADDPS Векторное сложениеSUBPS Векторное вычитаниеADDSS Скалярное сложение

SUBSS Скалярное вычитание

MULPS Векторное умножение

MULSS Скалярное умножение

DIVPS Векторное деление

DIVSS Скалярное деление

SQRTPS Векторное извлечение квадратного корня

SQRTSS Скалярное извлечение квадратного корня

MAXPS Векторное нахождение максимума

MAXSS Скалярное нахождение максимума

MINPS Векторное нахождение минимума

MINSS Скалярное нахождение минимума

Сравнение

CMPPSВекторное сравнение (задается полный набор 12 условий, как в инструкциях условных переходов). В том элементе операнда назначения, для которого условие сравнения выполняется, устанавливаются все единицы (32 бита), где не выполняется все нули

CMPSS Скалярное сравнение (12 условий), аналогично предыдущему, но только для младших 32 бит

COMISS Скалярное сравнение с установкой бит ZF, PF и CF регистра EFLAGS (биты 0F, SF и AF обнуляются)

UCOMISS Скалярное сравнение, но без генерации исключения в случае NaN (при этом ZF=PF=CF=1)

Инструкции преобразований

CVTPI2PS Преобразование двух знаковых целых из регистра ММХ или 64-битной ячейки памяти в два младших РР-числа в регистре ХММ (старшая пара не изменяется). При необходимости выполняется округление

CVTSI2SS Преобразование знакового целого из 32-битного регистра или 64-битной ячейки памяти в младшее упакованное FP-число в регистре ХММ (старшие три числа не изменяются). При необходимости выполняется округление

CVTPS2PI Преобразование двух младших FP-чисел из регистра ХММ или памяти в пару целых знаковых в регистре ММХ или 64-битной ячейки памяти. При необходимости выполняется округление; если результат не умещается, возвращается значение бесконечности (80000000h)

CVTTPS2PIПреобразование, аналогичное CVTPS2PI, но при невозможности точного преобразования выполняется усечение

CVTSS2SI Преобразование младшего FP-числа из регистра ХММ в целое знаковое в 32-битном регистре. При необходимости выполняется округление; если результат не умещается, возвращается значение бесконечности (80000000h)

CVTTSS2SIПреобразование, аналогичное CVTSS2SI, но при невозможности точного преобразования выполняется усечение

Логические инструкции в блоке ХММ

ANDPS Логическое И двух пакетов операндов

ANDNPS Логическое И-НЕ двух пакетов операндов

ORPS Логическое ИЛИ двух пакетов операндов

XORPS Исключающее ИЛИ двух пакетов операндов Перестановки операндов в ХММ

SHUFPS Перестановка слов в регистре ХММ под управлением 8-битного непосредственного операнда

UNPCKHPS Переупаковка старших половин iередованием слов в результате

UNPCKLPS Переупаковка старших половин iередованием слов в результате

Управление состояниемLDMXCSR Загрузка регистра MXCSR

STMXCSR Сохранение регистра MXCSR

FXSAVE Сохранение состояния блоков FP/MMX и ХММ

FXRSTOR Восстановление состояния блоков FP/MMX и ХММ

Дополнительные целочисленные SIMD-инструкции (выполняются с операндами в регистрах ММХ, входят и в расширенный набор 3DNow!)

PAVGB/PAVGW Нахождение среднего упакованных беззнаковых байт или слов

PEXTRW Извлечение 16-битного слова из регистра ММХ в младшую половину 32-б