Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 курс / Лекции / Лекция 26 - Расширения системы команд IA-32 – MMX и SSE..ppt
Скачиваний:
42
Добавлен:
18.02.2023
Размер:
458.24 Кб
Скачать

Лекция 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-разрядные числа