'

Команды ММХ, SSE (ММХ-2) Расширение 3Dnow! SSE-2, SSE-3

Понравилась презентация – покажи это...





Слайд 0

Команды ММХ, SSE (ММХ-2) Расширение 3Dnow! SSE-2, SSE-3


Слайд 1

ОСНОВНЫЕ ТЕМЫ ЛЕКЦИИ Команды ММХ Команды SSE (ММХ-2, KNI , SIMD- FP) Расширение 3Dnow! Расширение SSE-2 Расширение SSE-3


Слайд 2

Идея ММХ (Matrix-Math eXtension) родилась как средство, решающее часть проблем с нехваткой быстродействия центрального процессора для задач мульти-медиа приложений, характеризующихся следующими факторами: O небольшие целочисленные данные (например, 8-ми битовые графические пиксели или 16-ти битовые элементы звукового потока), которые обрабатываются в значительных объемах; O небольшие, многократно повторяющиеся циклы; O частые умножения и накапливания результата (выражения типа: «а = а + b»); O постоянные циклические обращения к памяти. Расширение ММХ (1997 г.)


Слайд 3

Например, процесс изменения яркости изображения (содержащего более миллиона 8-ми битовых пиксе-лей) состоит из прибавления к каждому элементу мас-сива определенной константы. Для этого необходимо: O    загрузить 8-ми битовое значение цвета из мас-сива в регистр процессора; O      добавить к нему константу; O      записать сумму в память и      повторить этот цикл для каждого пикселя. Однако процессор PENTIUM – 32-х разрядный и мог бы одновременно выполнить сложение данных сразу для четырех точек и затем одновременно записать результат в четыре смежные ячейки памяти.


Слайд 4

Параллельность вычислений – ключевой момент в технологии ММХ. Поэтому большинство новых ММХ-команд построены по принципу «ОДНА КОМАНДА - МНОЖЕСТВО ДАННЫХ» (SINGLE INSTRUCTION MULTIBLE DATA – SIMD). Так как процессоры PENTIUM имеют 64-х разрядную шину данных, базовая длина слова данных новых ММХ-инструкций выбрана тоже 64 разрядной. Основной тип данных ММХ – упакованное 64-х битовое целочисленное слово, которое состоит из нескольких меньших по разрядности данных и хранится в одном из ММХ-регистров или в памяти компьютера.


Слайд 5

Форматы ММХ-данных 64-х битовое слово может представлять четыре подтипа данных: O  упакованные байты (8 * 8 бит, Packed Byte), O  упакованные слова (4 * 16 бит, Packed Word), O упакованные двойные слова (2 * 32 бита, Packed Doubleword) и O счетверенное слово (1 * 64 бита, Quad-word).


Слайд 6

8-ми битовые упакованные данные могут использоваться при обработке изображений, где каждый байт представляет отдельный пиксель изображения или один из 8-ми битовых компонентов цвета в 24/32-х битовой цветовой модели (красный, зеленный, синий и альфа-канал (прозрачность)). 16-ти битовые данные чаще используются в средствах связи (модемы) и при обработке аудио-сигналов. 32-х и 64-х битовые значения полезны при промежуточных вычислениях над 8-ми или 16-ти битовыми данными.


Слайд 7

ММХ-регистры «отражены» на имеющиеся у PENTIUMа восемь регистров для чисел с плавающей запятой (FP-регистры).


Слайд 8

Данные, используемые в мульти-медиа-приложе-ниях, обычно имеют небольшую разрядность. 8-ми битовое значение цвета может передать только 256 оттенков цветовой составляющей (или более 16 миллионов цветовых оттенков для трех цветов: R,G,B). При использовании 8-ми битовых данных накопление цвета многих точек может выйти за предел представимых чисел. Обычно, если сложение двух чисел приводит к переполнению регистра, то старшие биты результата сохраняются во флагах CF или VF, а УСЕЧЕННАЯ СУММА сохраняется в регистре-приемнике. УСЕЧЕНИЕ И НАКОПЛЕНИЕ РЕЗУЛЬТАТОВ


Слайд 9

Для предотвращения последствий таких ситуаций необходимо производить проверку флагов на переполнение. В мульти-медиа-приложениях обычно требуется не УСЕЧЕНИЕ РЕЗУЛЬТАТА, а так называемое «НАСЫЩЕНИЕ», т.е. при достижении максимального (или минимального) значения – данные больше не изменяются. Технология ММХ предусматривает 57 новых команд. Многие из них выполняют одни и те же операции (например, сложение или вычитание) над операндами различного размера (8, 16, 32 или 64 бита), а также, в зависимости от того, рассматривают ли они данные как «ЦЕЛЫЕ СО ЗНАКОМ» или «ЦЕЛЫЕ БЕЗ ЗНАКА».


Слайд 10

Различаются инструкции и по выполнению ими опе-раций «С УСЕЧЕНИЕМ» или «НАСЫЩЕНИЕМ». Синтаксис инструкций ММХ включает следующие элементы: O  префикс – P (Packed), указывающий на обработку упакованных ММХ-форматов; O      мнемонику операции (например, ADD, CMP, XOR...); O      суффикс: - US (Unsigned Saturation) – насыщение беззнаковое; - S (Signed Saturation) – насыщение знаковое; - B,W,D,Q – тип данных : упакованные байты, слова, двойные слова или учетверенное слово.


Слайд 11

57 команд ММХ можно разбить на несколько групп : O Команды пересылки (PMOV), упаковки (PACKSS), чередования (PUNPCKH); O Арифметические команды (PADD, PSUB, PMUL , PMADD ); O Логические команды (PAND, PANDN, POR, PXOR); O Команды сравнения (PCMP) ; O Команды сдвига (PSHIM, PSLL, PSRL, PSRA). ММХ-команды


Слайд 12

Все ММХ-команды, за исключением умножения, выполняются за ОДИН такт процессора. При умножении происходит задержка на три такта, однако, за счет внутреннего конвейера АЛУ, все последующие операции умножения выполняются без задержек. Использование ММХ-команд в программах обработки изображений, компрессии аудио-, видеоданных и других вычислениях позволяет увеличить производительность в 1,5-2 раза, а в некоторых случаях – и до четырех раз.


Слайд 13

Команды SSE (ММХ-2, KNI , SIMD-FP) 1999 г. Основное отличие новой технологии (ММХ-2), так называемое, потоковое расширение – SSE (Streaming SIMD Extensions), получившей официальное название «Новый набор инструкций KATMAI» – KNI (Katmai New Instruction), – использование параллельных вычислений над числами с плавающей запятой одинарной точности (SIMD-FP, Single Instruction Multiple Data –– Floating Point). В добавление к 57 ММХ-командам процессор PЕNTIUM-3 (более раннее название – KATMAI) имеет еще 70 команд, ориентированных на SIMD-FP, направленных на обработку 3D-приложений,


Слайд 14

В состав новых 70-ти команд дополнительно введены целочисленные инструкции с регистрами ММХ и команды управления кэшированием. Добавлены специализированные команды для ускорения потоковой трансформации трехмерных объектов, эффектов освещения, атмосферных эффектов и др. Поток в данном контексте подразумевает, что с его данными должны выполняться однотипные операции. Кроме того, данные, уже прошедшие обработку, в дальнейшем этим вычислительным процессом использоваться не будут и ими не следует засорять КЭШ. Появились инструкции загрузки данных в КЭШ, а также записи в память, минуя КЭШ.


Слайд 15

В архитектуру процессора PENTIUM-3 (KATMAI) добавлены восемь новых 128-ми битовых регистра ХММ0…ХММ7 (eXtended MultiMedia) для одновременной обработки четырех чисел с плавающей запятой одинарной точности (4 * 32 бита). Это позволяет использовать одновременно либо обработку вещественных чисел в блоке SIMD-FP и целых – в ММХ, либо SIMD-FP и основной блок с плавающей запятой двойной точности.


Слайд 16

Расширение 3Dnow! (1998 г.) Расширение 3Dnow!, введенное фирмой AMD в процессорах К6-2, расширяет возможности ММХ. Оно позволяет оперировать с новым типом данных – парой упакованных чисел в формате с плавающей точкой. Эти числа занимают по 2 * 32 бита в 64-х битовых регистрах ММХ. В систему команд добавлена 21 новая инструкция, большая часть которых предназначена для обработки упакованных чисел с плавающей точкой. Имеется и новая целочисленная ММХ-инструкция усреднения восьми пар 8-ми битовых чисел, предназначенная для декодеров MPEG-2.


Слайд 17

Расширение 3Dnow! работает с упакованными целочисленными форматами ММХ, а также с упакованными данными в FP-формате одинарной точности. FP-арифметика выполняется с насыщением. Технология 3Dnow! дает заметный результат при обработке графики, хотя не претендует на вытеснение графических ускорителей, а призвана служить их мощным дополнением. При этом сохраняется программная совместимость с прежними процессорами и операционными системами (поскольку регистры ММХ отобра-жаются на регистры FPU, для них работают традиционные механизмы сохранения контекста в многозадачных ОС).


Слайд 18

В процессорах Athlon набор инструкций 3Dnow! был дополнен. Появилось 5 новых инструкций для сигнальных процессоров (DSP), работающими с упакованными FP-числами. Еще 19 инструкций расширяют набор инструкций ММХ, а также служат для управления кэшированием. В процессорах Athlon-МР и Athlon-XР добавлен полный набор инструкций SSE фирмы INTEL.


Слайд 19

Расширение SSE-2 (2000 г.) В новом процессоре PENTIUM-4 основные ново-введения направлены на ускорение обработки потоковых данных, что обеспечивает максимальную производительность при обработке видео, графических изображений, работе с мультимедиа и в других сложных задачах. Добавлены дополнительные 144 команды (SSE-2), ускоряющие работу широкого спектра потоковых ресурсоемких приложений. Среди них также 128-ми разрядные команды целочисленных вычислений с механизмом SIMD.


Слайд 20

Расширение SSE-3 (2003 г.) В процессор PENTIUM-4 на ядре PRESCOTТ, который появился в конце 2003 г., добавлены еще 13 новых команд SIMD-FP, получившие название SSE-3.


Слайд 21

Вопросы для экспресс-контроля Объясните необходимость появления ММХ-команд Зачем ММХ-регистры отображены на FP-реги-стры? Чем отличаются мнемоники ММХ-команд от остальных команд процессора? Зачем нужны команды «с насыщением» и команды «с усечением»? Основное отличие команд SSE от ММХ-команд Особенности команд 3Dnow! Какие новые команды появились в процессорах PENTIUM-4?


Слайд 22

Лекция окончена СПАСИБО ЗА ВНИМАНИЕ


×

HTML:





Ссылка: