Управление кэшированием
Необходимость управления кэшированием вызвана тем, что большинство мультимедийных приложений оперируют большими объемами данных, при этом может случиться, что данные, загруженные в кэш, никогда не понадобятся. Чтобы оптимизировать работу кэша, в систему команд SSE-расширения и были включены команды управления кэшем.
| Мнемоника | Описание |
| MASKMOVQ mm1, mm2 | MASK MOVe Quadword Выборочная запись байтов в память из источника (ММХ-регистр mm1) по маске. Маска – это знаковые биты 8 байтов MMX-регистра mm2. Последовательно проверяются знаковые биты всех 8 байтов, и если какой-то из этих битов равен 1, то соответствующий байт источника копируется в область памяти, начальный адрес которой содержится в регистрах DS:DI/EDI. Если знаковый бит равен нулю, то соответствующий байт в приемнике будет нулевым. |
| MOVNTQ | MOVe using Non-Temporal of Quadword Сохранение учетверенного слова из ХММ-регистра в памяти без использования кэша. |
| MOVNTDQ | MOVe using Non-Temporal of Double Quadword Сохранение двойного учетверенного слова из ХММ-регистра в памяти без использования кэша. |
| MOVNTPD | MOVe Non Temporal aligned Packed Double precision float point data Запись в память, минуя кэш, упакованных чисел с плавающей точкой c удвоенной точностью. Операндом-источником здесь выступает ХММ-регистр, а операндом-приемником — 128-разрядная ячейка памяти, адрес которой должен быть выровнен по 16-байтовой границе. |
| MOVNTPS | MOVe Non-Temporal Packed Single precision float point Запись в память, минуя кэш, упакованных чисел с плавающей точкой в коротком формате. Операндом-источником здесь выступает ХММ-регистр, а операндом-приемником — 128-разрядная ячейка памяти, адрес которой должен быть выровнен по 16-байтовой границе. |
Сейчас мы рассмотрим еще одну группу команд, которые трудно отнести к какому-либо определенному типу, но которые являются весьма полезными при разработке программ.
Перераспределение
| Мнемоника | Описание |
| SHUFPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| UNPCKHPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| UNPCKLPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
Перераспределение
| Команда | Описание |
| SHUFPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| UNPCKHPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| UNPCKLPS приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
Управление состоянием
| Команда | Описание |
| IDMXCSR приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| STMXCSR приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| FXSTOR приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| FXSAFE приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
Управление кэшированием
| Команда | Описание |
| MASKMOVQ приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
| MOVNTG приемник, источник | Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |






