- •Лекция 26
- •Классификация вычислительный систем по
- •SIMD расширения в IA-32
- •Программное окружение технологии MMX
- •MMX-регистры
- •Форматы данных MMX
- •SIMD модель исполнения
- •Виды целочисленной SIMD
- •Виды целочисленной SIMD
- •Формат мнемоники команд
- •Виды MMX-команд
- •Команды передачи данных
- •Команды сложения и
- •Команды умножения
- •Команды умножения
- •Команды сравнения
- •Логические команды
- •Команды сдвига
- •Команды упаковки
- •Команды распаковки
- •Команды распаковки
- •Дополнительные MMX-
- •Дополнительные MMX- команды
- •Технология SSE
- •Программное окружение SSE
- •Регистр
- •Система команд SSE
- •Система команд SSE
- •Система команд SSE
- •Команды передачи данных SSE
- •Команды передачи данных SSE
- •Арифметические команды SSE
- •Арифметические команды SSE
- •Команды сравнения
- •Логические команды
- •Команды преобразования
Лекция 26
Расширения системы команд IA-32 – MMX и SSE.
Классификация вычислительный систем по
способамSISD – Single Instruction,обработкиSingle Dataданных(классическая архитектура Дж. фон Неймана.)
SIMD – Single Instruction, Multiply Data (векторные операции и процессоры)
MISD – Multiply Instruction, Single Data (конвейерная обработка данных)
MIMD – Multiply Instruction, Multiply Data (параллельные вычислительные системы)
SIMD расширения в IA-32
Технология MMX – Multi-Media eXtension (впервые появилась в процессоре Intel Pentium MMX – 1997 год) – векторная обработка упакованных целочисленных данных общей разрядностью 64 bit.
Технология SSE – Streaming SIMD Extension (впервые появилась в процессоре Intel Pentium II) – веторная обработка упакованных вещественных данных общей разрядностью 128 bit.
Программное окружение технологии MMX
При работе с MMX-инструкциями можно использовать:
Регистры общего назначения – для формирования адреса операндов в памяти или регистрах.
Специальные 64-разрядные MMX-регистры (физически располагаются в регистрах стека сопроцессора)
Последняя особенность делает неудобным написание программ одновременно использующих и сопроцессор и MMX-расширение.
MMX-регистры
Набор MMX-регистров состоит из 8 64-разрядных регистров MM0- MM7, доступ к которым может осуществляться в двух режимах:
64-разрядный режим:
64bit операции обмена с памятью,
64bit операции обмена с MMX-регистрами,Арифметические, логические и «упаковочные» операции,Некоторые операции «распаковки».
32-разрядный режим:
32bit операции обмена с памятью,
32bit операции обмена с регистрами общего назначения,Некоторые операции «распаковки».
Форматы данных MMX
Упакованные байты
63 |
0 |
Упакованные слова
63 |
0 |
|
Упакованные двойные слова |
|
|
|
|
|
64-разрядные данные 63 |
0 |
|
|
|
|
63 |
0 |
SIMD модель исполнения
Источник 1 |
|
|
X3 |
|
|
X2 |
|
|
X1 |
|
|
X0 |
Источник 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y3 |
|
Y2 |
|
|
Y1 |
|
|
Y0 |
|
|
|
|
|
|||||||
|
|
|
|
|||||||
|
||||||||||
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
ОП |
ОП |
ОП |
ОП |
Результат X3 ОП Y3 X2 ОП Y2 X1 ОП Y1 X0 ОП Y0
Виды целочисленной SIMD
арифметикиАрифметические MMX инструкции делятся на две группы:циклическая арифметика (wraparound arithmetic),арифметика с насыщением (saturation arithmetic).
Циклическая арифметика: если результат операции выходит за двоичную разрядную сетку используемого типа данных, то «лишние» старшие биты результата отбрасываются.
Арифметика с насыщением: если результат операции превышает максимально представимое значение, то в выходной операнд записывается это максимальное значение.
Операции арифметики с насыщением подразделяются на две категории: знаковые и без знаковые операции.
Виды целочисленной SIMD
Примерарифметикициклической арифметики:
43 |
125 |
212 |
121 |
120 |
25 |
211 |
65 |
|
|
|
|
|
|
|
|
+
117 |
75 |
58 |
211 |
100 |
85 |
219 |
185 |
|
|
|
|
|
|
|
|
=
160 |
200 |
14 |
76 |
220 |
110 |
174 |
250 |
|
|
|
|
|
|
|
|
Пример арифметики с насыщением:
43 |
125 |
212 |
121 |
120 |
25 |
211 |
65 |
+
117 |
75 |
58 |
211 |
100 |
85 |
219 |
185 |
=
|
160 |
200 |
255 |
255 |
220 |
110 |
255 |
250 |
|
|
|
|
|
|
|
|
|
|
|
Формат мнемоники команд
Общий формат мнемоники: pМОП[ВИД][ТИП] или МОП[ТИП]
МОП – мнемоника операции,
ВИД – вид операции:
us – незнаковая арифметика с насыщением,s | ss – знаковая арифметика с насыщением,нет – циклическая арифметика.
ТИП – тип данных:
b – упакованные байты,w – упакованные слова,
d – упакованные двойные слова,q – 64-разрядные числа