2.6.3. Команды SSE

Все команды SSE доступны из любых режимов процессора - реального, защи­щенного и режима V86.

Команды пересылки данных

Команда

Назначение

Процессор

MOVAPS приемник,источник

Переслать выравненные упакованные числа

PHI

Копирует 128 бит из источника в приемник. Каждый из аргументов может быть либо регистром либо переменной в памяти, но пересылки типа память-память запрещены. Если адрес переменной некратен 16 байтам (128 битам), вызывается исключение #ОР.

Команда

Назначение

Процессор

MOVUPS

Переслать невыравненные упакованные числа

PIII

Копирует 128 бит из источника в приемник. Каждый из аргументов может быть либо регистром либо переменной в памяти, но пересылки типа память-память запрещены. В тех случаях, когда легко достичь выравнивания всех данных по адре­сам, кратным 16 байт, рекомендуется пользоваться командой МОУЛР8, так как она более эффективна.

Команда Назначение Процессор

MOVHPS приемник,источник      Переслать старшие упакованные числа PHI

Копирует старшие 64 бита из источника в приемник. Младшие 64 бита прием­ника не изменяются. Каждый из аргументов может быть либо регистром либо переменной в памяти, но пересылки типа память-память запрещены.

Команда

Назначение

Процессор

MOVLPS

Переслать младшие упакованные числа

PIII

Копирует младшие 64 бита из источника в приемник. Старшие 64 бита прием­ника не изменяются. Один из аргументов должен быть регистром       другой -

переменной в памяти.

Команда

Назначение

Процессор

MOVHLPS приемник.источник

Переслать старшие упакованные числа

PHI

 

в младшие

 

Копирует старшие 64 бита источника в младшие 64 бита приемника. Старшие 64 бита приемника не изменяются. И приемником, и источником могут быть толь­ко регистры

Команда

Назначение

Процессор

MOVLHPS приемник.источник

Переслать младшие упакованные числа

PIII

 

в старшие

 

Копирует младшие 64 бита источника в старшие 64 бита приемника. Младшие 64 бита приемника не изменяются. И приемником, и источником могут быть толь­ко регистры SSE.

Команда

Назначение

Процессор

MOVMSKPS приемник.источник

Переслать маску в переменную

PHI

В приемник (32-битный регистр центрального процессора) записывается 4-бит­ная маска, отвечающая знакам четырех вещественных чисел, находящихся в ис­точнике (128-битный регистр ББЕ). Фактически бит 0 приемника устанавливает­ся равным биту 31 источника, бит 1 - биту 63, бит 2 - биту 95, бит 3 - биту 127, а биты 4-31 приемника обнуляются.

Команда

Назначение

Процессор

MOVSS приемник.источник

Переслать одно вещественное число

PI11

Копирует младшие 64 бита из источника в приемник. Если приемник - ре­гистр, его старшие 96 бит обнуляются. Если приемник — переменная в памяти, старшие 96 бит не изменяются. Каждый из аргументов может быть либо регистром SSE, либо переменной в памяти, но пересылки типа память-память запрещены.

Арифметические команды Команда Назначение Процессор

ADDPS приемник.источник Сложение упакованных вещественных чисел PHI

Выполняет параллельное сложение четырех пар чисел с плавающей запятой, находящихся в источнике (переменная или регистр SSE) и приемнике (регистр SSE). Результат записывается в приемник.

Команда Назначение Процессор

ADDSS приемник.источник Сложение одного вещественного числа PIII

Выполняет сложение нулевых (занимающих биты 31-0) чисел с плавающей за­пятой в источнике (переменная или регистр SSE) и приемнике (регистр SSE). Ре­зультат записывается в биты 31-0 приемника, биты 127-32 остаются без изменений.

Команда Назначение Процессор

SUBPS приемник.источник Вычитание упакованных вещественных чисел PHI

Выполняет параллельное вычитание чисел с плавающей запятой, находящих­ся в источнике (переменная или регистр SSE), из чисел, находящихся в приемни­ке (регистр SSE).. Результат записывается в приемник.

Команда Назначение Процессор

SUBSS Вычитание одного вещественного числа PIIжтш

Выполняет вычитание нулевого (занимающего биты 31-0) числа с плавающей запятой в источнике (переменная или регистр ББЕ) из числа, находящегося в при­емнике (регистр ББЕ). Результат записывается в биты 31-0 приемника, биты 127­32 остаются без изменений.

Команда • Назначение Процессор

MULPS приемник,источник      Умножение упакованных вещественных чисел PHI

Выполняет параллельное умножение четырех пар чисел с плавающей запятой, находящихся в источнике (переменная или регистр ББЕ) и приемнике (регистр ББЕ). Результат записывается в приемник.

Команда Назначение Процессор

Умножение одного вещественного числа PIII

Выполняет умножение нулевых (занимающих биты 31-0) чисел с плавающей запятой в источнике (переменная или регистр ББЕ) и приемнике (регистр БББ). Ре­зультат записывается в биты 31-0 приемника, биты 127-32 остаются без изменений.

Команда Назначение Процессор

DIVPS приемник.источник        Деление упакованных вещественных чисел PHI

Выполняет параллельное деление четырех пар чисел с плавающей запятой, находящихся в приемнике (регистр ББЕ), на числа, находящиеся в источнике (пе­ременная или регистр ББЕ). Результат записывается в приемник.

Команда Назначение Процессор

DIVSS Деление одного вещественного числа PHI

Выполняет деление нулевого (занимающего биты 3І-0) числа с плавающей запятой в приемнике (регистр SSE) на нулевое число, находящееся в источнике

(переменная или регистр SSE). Результат записывается в биты 3І-0 приемника,

биты І27-32 остаются без изменений.

Команда Назначение Процессор

SQRTPS приемник.источник      Корень из упакованных вещественных чисел PHI

Определяет значение квадратных корней от каждого из четырех чисел с пла­вающей запятой, находящихся в источнике (регистр ББЕ или переменная), и за­писывает их в приемник (регистр ББЕ).

Команда Назначение Процессор

вОИТвв приемник.источник     Корень из одного вещественного числа Р!!!

Определяет значение квадратного корня из нулевого (занимающего биты 31-0) числа с плавающей запятой из источника (регистр ББЕ или переменная) и запи- -сывает результат в биты 31-0 приемника (регистр ББЕ).

Процессоры Intel  реальном режиме

Команда _ Назначение_Процессор

РСРРБ приемник,источник       Обратная величина для упакованных чисел РШ :

Выполняет деление единицы на каждое из четырех чисел с плавающей запя­той, находящихся в источнике (регистр или переменная), и записывает ре­зультаты в приемник (регистр ББЕ). Максимальное значение ошибки - 1,5х2-12.

Команда Назначение Процессор

ИСРвЙ приемник.источник       Обратная величина для одного числа РШ

Выполняет деление единицы на нулевое (занимающее биты 31-0) число с плава­ющей запятой из источника (регистр или переменная) и записывает результат в биты 31-0 приемника (регистр ББЕ). Максимальное значение ошибки - 1,5х2->2.

Команда Назначение Процессор

RSQRTPS приемник.источник   Обратный корень из упакованных чисел PHI:

Определяет обратные величины от квадратных корней (1/^110) каждого из четырех чисел с плавающей запятой, находящихся в источнике (регистр $SE или переменная), и записывает их в приемник (регистр ББЕ). Максимальное значе­ние ошибки - 1,5х2"12.

Команда

Назначение

Процессор

RSQRTSS приемник.источник

Обратный корень из одного числа

рш

Определяет обратную величину от квадратного корня (нулевого чис­ла (занимающего биты 31-0) числа с плавающей запятой из источника (регистр 88Е или переменная) и записывает результат в биты 31-0 приемника (регистр ББЕ). Максимальное значение ошибки - 1,5х2~'2.

Команда

Назначение

Процессор

maxps приемник.источник

Максимум для упакованных вещественных чисел

рш:

Определяет максимальные числа с плавающей запятой в каждой из четырех пар чисел, находящихся в источнике (переменная или регистр SSE) и приемнике (регистр SSE). Результат записывается в приемник. Если источник или) прием­ник содержит не-число (SNAN), оно возвращается в приемник без изменений. При сравнении двух нулей возвращается нуль из источника. Если не-число срав­нивается с другим не-числом, то возвращается не-число из приемника.

Команда

Назначение

Процессор

maxss приемник.источник

Максимум для одной пары вещественных чисел

рш;

Определяет максимальные числа с плавающей запятой в нулевой паре чисел (биты 31-0), находящихся в источнике (переменная или регистр SSE) и прием­нике (регистр 1^). Результат записывается в приемник. Биты 127-32 приемника

Расширение ББЕ Щ

не изменяются. Если источник или приемник содержит не-число (SNAN), оно возвращается в приемник без изменений. При сравнении двух нулей возвращает­ся нуль из источника. Если не-число сравнивается с другим не-числом, возвра­щается не-число из приемника.

Команда

Назначение

" Процессор

MINPS

Минимум для упакованных

PHI

 

вещественных чисел

 

Определяет минимальные числа с плавающей запятой в каждой из четырех пар чисел, находящихся в источнике (переменная или регистр SSE) и приемнике (регистр SSE). Результат записывается в приемник. Если источник или прием­ник включает не-число (SNAN), возвращается содержимое другого не-числа из аргументов. При сравнении двух нулей возвращается нуль из источника. Если не­число сравнивается с другим не-числом, возвращается не-число из источника.

Команда Назначение Процессор

MINSS приемник.источник Минимум для одной пары PHI

вещественных чисел

Определяет минимальные числа с плавающей запятой в нулевой паре чисел

(биты 31-0), находящихся в источнике (переменная или регистр SSE) и прием­нике (регистр SSE). Результат записывается в приемник. Биты 127-32 приемни­ка не изменяются. Если источник или приемник включает не-число (SNAN), то возвращается содержимое другого аргумента. При сравнении двух нулей возвра-нуль из источника. Если не-число сравнивается с другим не-числом, воз­вращается не-число из источника.

Команды сравнения

Команда

Назначение

Процессор

CMPPS

Сравнение упакованных

PIII

 

вещественных чисел

 

Для каждой из четырех пар вещественных чисел, находящихся в источнике (переменная или регистр SSE) и приемнике (регистр SSE), возвращает либо О (ложь), либо OFFFFFFFFh (истина), в зависимости от результата сравнения. Тип сравнения определяется предикатом (число):

Предикат

Проверяемое утверждение

0 (eq)

Приемник равен источнику

І (It)

Приемник строго меньше источника

2(1е)

Приемник                равен источнику

З (unord)

Приемник или источник являются не-числом

4 (neq)

Приемник не равен источнику

5 (nit)

Приемник больше или равен источнику

6 <п1е) Приемник строго больше источника

7 (ого!) Ни приемник, ни источник не являются не-числом

Если один из операндов - не-число, результатом сравнения является 0 для предикатов О, 1, 2, 7 и истина для предикатов 3, 4, 5, 6.

Команда    ,_Назначение_Процессор

СМРБЭ приемник.источник, предикат   Сравнение одной пары РЙР

упакованных чисел

Выполняет сравнение нулевых (занимающих биты 31-0) вещественных чисел из источника и приемника аналогично команде CMPPS. Биты 127-32 приемника не изменяются.

Команда Назначение Процессор

СОМ^Э приемик.источник Сравнение одной пары чисел РНр

с установкой флагов

Выполняет сравнение нулевых (занимающих бит 31-0) вещественных чисел из источника (переменная или регистр 88Е) и приемника (регистр 88Е) и уста­навливает флаги XV, РБ, СБ регистра ЕББА08 в соответствии с результатом. Флаги ОБ, 8Р, АБ обнуляются. Если одно из сравниваемых чисел - не-число, все три фла­га (XV, РР, СБ) устанавливаются в 1. Если сравниваемые числа равны, то XV = 1, РР = СБ = 0. Если приемник меньше источника, то СБ = 1, XV = РР = 0. Если приемник больше источника - СБ = XV = РР = 0.

Команда_Назначение_Процессор

UCOMISS приемик.источник Сравнение одной пары неупорядоченных PHI

чисел с установкой флагов

Эта команда полностью аналогична С01УШ8, но она приводит к исключению #1, если один из операндов SNAN или 0,ЫАЫ; UCOMISS только если один из операндов - SNAN.

Команды преобразования

типов

 

Команда

Назначение

Процессор

CVTPI2PS приемник.источник

Преобразовать упакованные целые

PIII

 

в вещественные

 

Преобразует два 32-битных целых числа со знаком из источника (регистр ММХ или 64-битная переменная) в два упакованных вещественных числа в при­емнике (регистр 88Е). Если преобразование нельзя выполнить точно, результат округляется в соответствии с MXCSR. Биты 127-64 приемника не изменяются.

Команда

Назначение

Процессор

CVTPS2PI приемник.источник

Преобразовать упакованные

вещественные в целые

PIII

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

Команда

Назначение

Процессор

С\/Т81288 приемник,источник

Преобразовать целое в вещественное

РІІІ

Преобразует 32-битное целое число со знаком из источника (переменная или

32-битный регистр) в вещественное число в приемнике (регистр SSE). Если преобразование нельзя выполнить точно, результат округляется в соответствии с MXCSR. Биты 127-32 приемника не изменяются.

Команда Назначение Процессор

СУТВвгБІ приемник.источник       Преобразовать вещественное в целое НИ

Преобразует нулевое (младшее) вещественное число из источника (регистр 88Е или 32-битная переменная) в 32-битное целое число со знаком в приемнике (32-битный регистр). Если преобразование нельзя выполнить точно, результат округляется в соответствии с MXCSR. Если результат больше максимального 32-битного числа со знаком, возвращается целая неопределенность (80000000и).

Команда

Назначение

Процессор

С\ЛТР52Р1 приемник.источник

Преобразование вещественных

НИ

 

в целые с обрезанием

 

Выполняется аналогично CVTPS2PI, но, если результат не может быть пред­ставлен точно, он всегда округляется в сторону нуля (обрезается).

Команда Назначение Процессор

С\ЛТ88281 приемник.источник       Преобразование вещественного PHI

в целое с обрезанием

Выполняется аналогично CVTSS2SI, но, если результат не может быть пред­ставлен точно, он всегда округляется в сторону нуля (обрезается).

Логические операции

Команда

Назначение

Процессор

ANDPS приемник.источник

Логическое И для SSЕ

НИ

Выполняет операцию побитового «логического И» для источника (регистр SSE или 128-битная переменная) и приемника (регистр SSE) и помещает ре­зультат в приемник.

Команда

Назначение

Процессор

ANDNPS приемник.источник

Логическое НЕ-И для SSЕ

РНІ

Выполняет операцию НЕ над содержимым приемника (регистр затем выполняет операцию И над результатом и содержимым источника (регистр SSE или 128-битная переменная) и записывает результат в приемник.

Команда Назначение Процессор

ORPS приемник.источник Логическое ИЛИ для SSE PHI

Выполняет операцию побитового «логического ИЛИ» для источника (регистр или 128-битная переменная) и приемника (регистр SSE) и помещает резуль­тат в приемник.

Команда

Назначение

Процессор

XORPS

Логическое исключающее ИЛИ для SSE

PIII

Выполняет операцию побитового «логического исключающего ИЛИ» для источника (регистр SSE или 128-битная переменная) и приемника (регистр SSE) и помещает результат в приемник.

Целочисленные Б/Мй-команды

Помимо расширения для работы с упакованными вещественными числами в SSE входит расширение набора команд для работы с упакованными целыми числами, которые размещаются в регистрах ММХ.

Команда

Назначение

Процессор

PAVGB

Усреднение байтов с округлением

PIII

PAVGW приемник.источник

Усреднение слов с округлением

PIII

Каждый элемент (байт или слово) источника (регистр ММХ или 64-битная переменная) добавляется к соответствующему элементу приемника (регистр ММХ) как беззнаковое целое. Каждый из результатов сдвигается вправо на один бит (делится на два). Затем в старший бит каждого элемента записывается бит переноса от соответствующего сложения. В результате этих действий получаются средние арифметические целых чисел со знаками.

Команда Назначение Процессор

РЕХТРЛЛ/приемник.источник.индекс     Распаковать одно слово PIN:

Выделяет 16-битное слово из источника (регистр ММХ) с номером, определя­емым как младшие два бита индекса (непосредственно заданное число), и поме­щает его в младшую половину 32-битного регистра-приемника.

Команда Назначение ПрОцессор

PINSRW приемник,источник,индекс       Запаковать одно слово PHI

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

Расширение SSE ШВННШШ

его в приемник (регистр ММХ) в положение, задаваемое младшими двумя бита­ми индекса (непосредственно заданное число). Другие три слова в приемнике не изменяются.

Команда

Назначение

Процессор

PMAXUB приемник.источник

Максимум для упакованных байтов

PHI

Для каждой из восьми пар упакованных байтов из источника (регистр ММХ или 64-битная переменная) или приемника (регистр ММХ) в приемник записы­вается максимальный байт в паре. Сравнение выполняется без учета знака.

Команда

Назначение

Процессор

PMAXSW приемник.источник

Максимум для упакованных слов

PHI

Для каждой из четырех пар упакованных слов из источника (регистр ММХ

или 64-битная переменная) или приемника (регистр ММХ) в приемник записы­вается максимальное слово в паре. Сравнение выполняется с учетом знака.

Команда

Назначение

Процессор

PMINUB приемник.источник

Минимум для упакованных байтов

PIII

Для каждой из восьми пар упакованных байтов из источника (регистр ММХ

или 64-битная переменная) или приемника (регистр ММХ) в приемник записы­вается минимальный байт в паре. Сравнение выполняется без учета знака.

Команда Назначение Процессор

PMINSW приемник.источник Минимум для упакованных слов PШ

Для каждой из четырех пар упакованных слов из источника (регистр ММХ или 64-битная переменная) или приемника (регистр ММХ) в приемник записы­вается минимальное слово в паре. Сравнение выполняется с учетом знака.

Команда Назначение Процессор

PMOVMSKB приемник.источник     Считать байтовую маску ЙП

В приемнике (32-битный регистр) каждый из младших 8 бит устанавливается равным старшему (знаковому) биту соответствующего байта источника (регистр ММХ). Биты 31-8 приемника обнуляются.

Команда _Назначение_Процессор

PMULHUW приемник.источник       Старшее умножение без знака PHI

Умножить упакованные беззнаковые слова из источника (регистр ММХ или

64-битная переменная) и из приемника (регистр ММХ) и поместить старшие

16 бит 32-битного результата в соответствующее слово в приемнике.

ІШІІ       Процессоры ігПеі в реальном режиме

Команда

Назначение

Процессор

PSADBW

Сумма абсолютных разностей

Pill

Вычисляет абсолютные разности восьми пар байтов из источника (регистр ММХ или 64-битная переменная) и приемника (регистр ММХ) как целых чисел без знака, затем суммирует результаты и помещает их в младшее (нулевое) слово в приемнике. Старшие три слова обнуляются.

Команда

Назначение

Процессор

SHUFW приемник.источник.индекс

Переставить упакованные слова

 

Вместо каждого из четырех слов приемника (регистр ММХ) размещается слово из источника (регистр ММХ или 64-битная переменная) с номером, указанным в со-ответствующейпаребитовиндекса(непосредственнозаданное8-битноечисло).Так, вместо слова 0 (биты 15-0) приемника будет записано слово из источника с номе­ром, равным значению битов 1 иОиндекса. Например, если индекс равен ІОІОІОІОЬ, второе слово источника будет скопировано во все четыре слова приемника.

Команды упаковки

Команда_Назначение_ Процессор

SHUFPS приемник.источник.индекс      Переставить упакованные вещественные ЙН;_

Помещает в старшие два вещественных числа приемника (регистр SSE) лю­бые из четырех чисел, находившихся в источнике (регистр SSE или 128-битная переменная). В младшие два числа приемника помещает любые из четырех чи­сел, находившихся в приемнике. По индексу (непосредственный операнд) опре­деляется, какие именно числа упаковываются подобным образом. Биты 1 и 0 ука­зывают номер числа из приемника, которое будет записано в нулевую позицию приемника; биты 3 и 2 - номер числа из приемника, которое будет записано в пер­вую позицию приемника. Биты 5 и 4 устанавливают номер числа из источника, которое будет записано в третью позицию, а биты 7 и 6 - номер числа из источни­ка, которое будет записано в четвертую позицию.

Команда

Назначение

Процессор

UNPCKHPS приемник.источник

Распаковать старшие вещественные числа

PIII

В нулевую позицию приемника (регистр SSE) записывается второе число из приемника, в первую позицию - второе число из источника (регистр или 128-битная переменная), во вторую позицию - третье (старшее) число приемни­ка, в третью (старшую) позицию - третье (старшее) число

Команда Назначение Процессор

UNPCKLPS приемник.источник

Распаковать младшие вещественные числа

Расширение SSE .", ЁШШШЕШ

В нулевую позицию приемника (регистр SSE) записывается нулевое (млад­шее) число из приемника, в первую позицию - нулевое (младшее) число из ис­точника (регистр SSE или 128-битная переменная), во вторую позицию — первое число приемника, в третью (старшую) позицию - первое число источника.

Команды управления состоянием Команда Назначение Процессор

LDMXCSR источник 1     Загрузить регистр MXCSR PIII

Помещает значение источника (32-битная переменная) в регистр управления и состояния SSE MXCSR.

Команда Назначение Процессор

STMXCSR приемник Сохранить регистр MXCSR Pill

Помещает значение регистра MXCSR в приемник (32-битная переменная).

Команда Назначение Процессор

FXSAVE приемник Сохранить состояние FPL), ММХ, SSE PIII

Сохраняет содержимое всех регистров FPU, ММХ и SSE в приемнике (512-байтовая область памяти).

Команда Назначение Процессор

. FXRSTOR источник Восстановить состояние FPU, MMX, SSE PIII

Восстанавливает содержимое всех регистров FPU, ММХ и SSE из источника (512-байтовой области памяти, заполненной командой FXSAVE).

Формат области памяти, используемой командами FXSAVE/FXRSTOR для Pentium III, имеет следующий вид:

байты 1-0: FCW

байты 3-2: FSW

байты 5-4: FTW

байты 7-6: FOP

байты 11-8: FIP

байты 13-12: FCS

байты 19-16: FDP

байты 21-20: FDS

байты 27-24: MXCSR

байты 41-32: STO или ММО

байты 57-48: ST1 или ММ1

байты 73-64: ST2 или ММ2

байты 89-80: ST3 или ММЗ

байты 105-96: ST4 или ММ4

байты 121-112: ST5 или ММ5

байты 137-128: БТ6 или ММ6 байты 153-144: БТ7 или ММ7 байты 175-160: ХММ0 байты 191-176:ХММ1 байты 207-192: ХММ2 байты 223-208: ХММЗ байты 239-224: ХММ4 байты 255-240: ХММ5 байты 271-256: ХММ6 байты 287-272: ХММ7

Остальные байты зарезервированы.

Команды управления кэшированием

Команда

Назначение

Процессор

МАЗКМОУО источник.маска

Запись байтов минуя кэш

н-н;

Данные из источника (регистр ММХ) записываются в память по адресу Б8:ЕБ1 (или 08:01). При этом старший бит каждого байта в маске (регистр ММХ) определяет, записывается ли соответствующий байт источника в память или нет. То есть бит 7 маски разрешает запись нулевого байта (битов 7-0) источ­ника и т. д. Если байт не записывается, соответствующий байт в памяти обнуля­ется. Эта команда введена для того, чтобы по возможности уменьшить загрязне­ние кэша при работе с потоками данных, типичными для ББЕ, если основным типом данных является байт.

Команда Назначение

Процессор

мол/мо приемник.источник          Запись 64 бит минуя кэш

РНІ :

Содержимое источника (регистр ММХ) записывается в приемник (64-битная переменная в памяти), сводя к минимуму загрязнение кэша.

Команда Назначение

Процессор

мсл/мтрб приемник, источник        Запись 128 бит минуя кэш

ріп :

Содержимое источника (регистр ' ББЕ) записывается в приемник (128-битная переменная в памяти), сводя к минимуму загрязнение кэша.

Команда Назначение

Процессор

рнеретснто адрес                       Перенести данные в кэш ТО рр.ЕРЕТСНТ1 адрес                       Перенести данные в кэш Т1 РРЕРЕТСНТ2 адрес                       Перенести данные в кэш Т2 рр,ЕРЕТСН1МТА адрес                     Перенести данные в кэш ЫТА

РІІІ

рііі

РІІІ

РНІ

Эти команды перемещают данные, располагающиеся по указанному адресу, в кэш. При этом возможны следующие варианты:

Расширение ББЕ |

□ ТО   - поместить данные в кэш всех уровней;

□ Т1   - пометить данные в кэш всех уровней, кроме нулевого;

□ Т2 — поместить данные в кэш всех уровней, кроме нулевого и первого;

□ гЧТА - поместить данные в кэш для постоянных данных.

Реализация этих команд может отличаться для разных процессоров, и процес­сор не обязан их выполнять - команды рассматриваются только как подсказки. Объем данных, переносимых в кэш, также может различаться, но не должен быть

меньше 32 байт.

Команда

Назначение

Процессор

SFENCE

Защита записи

PIII

При работе с памятью современные процессоры могут выполнить обращения к ней совсем не так и не в том порядке, в каком они указаны в программе. Коман­да БРЕгЧСЕ гарантирует, что все операции записи в память, расположенные в тек­сте программы до нее, будут выполнены раньше, чем процессор начнет выполнять операции, помещенные в тексте программы позднее.