Слайд 1Команды ММХ,
SSE (ММХ-2)
Расширение 3Dnow!
SSE-2, SSE-3
Слайд 2ОСНОВНЫЕ ТЕМЫ ЛЕКЦИИ
Команды ММХ
Команды SSE (ММХ-2, KNI
, SIMD- FP)
Расширение 3Dnow!
Расширение SSE-2
Расширение SSE-3
Слайд 3 Идея ММХ (Matrix-Math eXtension) родилась как средство, решающее часть
проблем с нехваткой быстродействия центрального процессора для задач мульти-медиа приложений, характеризующихся следующими факторами:
➢ небольшие целочисленные данные (например, 8-ми битовые графические пиксели или 16-ти битовые элементы звукового потока), которые обрабатываются в значительных объемах;
➢ небольшие, многократно повторяющиеся циклы;
➢ частые умножения и накапливания результата (выражения типа: «а = а + b»);
➢ постоянные циклические обращения к памяти.
Расширение ММХ (1997 г.)
Слайд 4 Например, процесс изменения яркости изображения (содержащего более миллиона 8-ми
битовых пиксе-лей) состоит из прибавления к каждому элементу мас-сива определенной константы. Для этого необходимо:
➢ загрузить 8-ми битовое значение цвета из мас-сива в регистр процессора;
➢ добавить к нему константу;
➢ записать сумму в память и
повторить этот цикл для каждого пикселя.
Однако процессор PENTIUM – 32-х разрядный и мог бы одновременно выполнить сложение данных сразу для четырех точек и затем одновременно записать результат в четыре смежные ячейки памяти.
Слайд 5Параллельность вычислений – ключевой момент в технологии ММХ. Поэтому большинство новых
ММХ-команд построены по принципу «ОДНА КОМАНДА - МНОЖЕСТВО ДАННЫХ» (SINGLE INSTRUCTION MULTIBLE DATA – SIMD).
Так как процессоры PENTIUM имеют 64-х разрядную шину данных, базовая длина слова данных новых ММХ-инструкций выбрана тоже 64 разрядной.
Основной тип данных ММХ – упакованное 64-х битовое целочисленное слово, которое состоит из нескольких меньших по разрядности данных и хранится в одном из ММХ-регистров или в памяти компьютера.
Слайд 6Форматы ММХ-данных
64-х битовое слово может представлять четыре подтипа данных:
➢ упакованные байты
(8 * 8 бит, Packed Byte),
➢ упакованные слова (4 * 16 бит, Packed Word),
➢ упакованные двойные слова (2 * 32 бита, Packed Doubleword)
и
➢ счетверенное слово (1 * 64 бита, Quad-word).
Слайд 78-ми битовые упакованные данные могут использоваться при обработке изображений, где каждый
байт представляет отдельный пиксель изображения или один из 8-ми битовых компонентов цвета в 24/32-х битовой цветовой модели (красный, зеленный, синий и альфа-канал (прозрачность)).
16-ти битовые данные чаще используются в средствах связи (модемы) и при обработке аудио-сигналов.
32-х и 64-х битовые значения полезны при промежуточных вычислениях над 8-ми или 16-ти битовыми данными.
Слайд 8ММХ-регистры «отражены» на имеющиеся у PENTIUMа восемь регистров для чисел с
плавающей запятой (FP-регистры).
Слайд 9 Данные, используемые в мульти-медиа-приложе-ниях, обычно имеют небольшую разрядность. 8-ми битовое
значение цвета может передать только 256 оттенков цветовой составляющей (или более 16 миллионов цветовых оттенков для трех цветов: R,G,B).
При использовании 8-ми битовых данных накопление цвета многих точек может выйти за предел представимых чисел. Обычно, если сложение двух чисел приводит к переполнению регистра, то старшие биты результата сохраняются во флагах CF или VF, а УСЕЧЕННАЯ СУММА сохраняется в регистре-приемнике.
УСЕЧЕНИЕ И НАКОПЛЕНИЕ РЕЗУЛЬТАТОВ
Слайд 10Для предотвращения последствий таких ситуаций необходимо производить проверку флагов на переполнение.
В
мульти-медиа-приложениях обычно требуется не УСЕЧЕНИЕ РЕЗУЛЬТАТА, а так называемое «НАСЫЩЕНИЕ», т.е. при достижении максимального (или минимального) значения – данные больше не изменяются.
Технология ММХ предусматривает 57 новых команд. Многие из них выполняют одни и те же операции (например, сложение или вычитание) над операндами различного размера (8, 16, 32 или 64 бита), а также, в зависимости от того, рассматривают ли они данные как «ЦЕЛЫЕ СО ЗНАКОМ» или «ЦЕЛЫЕ БЕЗ ЗНАКА».
Слайд 11 Различаются инструкции и по выполнению ими опе-раций «С УСЕЧЕНИЕМ» или
«НАСЫЩЕНИЕМ».
Синтаксис инструкций ММХ включает следующие элементы:
➢ префикс – P (Packed), указывающий на обработку упакованных ММХ-форматов;
➢ мнемонику операции (например, ADD, CMP, XOR...);
➢ суффикс:
- US (Unsigned Saturation) – насыщение беззнаковое;
- S (Signed Saturation) – насыщение знаковое;
- B,W,D,Q – тип данных : упакованные байты, слова, двойные слова или учетверенное слово.
Слайд 12 57 команд ММХ можно разбить на несколько групп :
➢ Команды
пересылки (PMOV), упаковки (PACKSS), чередования (PUNPCKH);
➢ Арифметические команды (PADD, PSUB, PMUL , PMADD );
➢ Логические команды (PAND, PANDN, POR, PXOR);
➢ Команды сравнения (PCMP) ;
➢ Команды сдвига (PSHIM, PSLL, PSRL, PSRA).
ММХ-команды
Слайд 13Все ММХ-команды, за исключением умножения, выполняются за ОДИН такт процессора. При
умножении происходит задержка на три такта, однако, за счет внутреннего конвейера АЛУ, все последующие операции умножения выполняются без задержек.
Использование ММХ-команд в программах обработки изображений, компрессии аудио-, видеоданных и других вычислениях позволяет увеличить производительность в 1,5-2 раза, а в некоторых случаях – и до четырех раз.
Слайд 14Команды 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-приложений,
Слайд 15В состав новых 70-ти команд дополнительно введены целочисленные инструкции с регистрами
ММХ и команды управления кэшированием.
Добавлены специализированные команды для ускорения потоковой трансформации трехмерных объектов, эффектов освещения, атмосферных эффектов и др.
Поток в данном контексте подразумевает, что с его данными должны выполняться однотипные операции. Кроме того, данные, уже прошедшие обработку, в дальнейшем этим вычислительным процессом использоваться не будут и ими не следует засорять КЭШ.
Появились инструкции загрузки данных в КЭШ, а также записи в память, минуя КЭШ.
Слайд 16В архитектуру процессора PENTIUM-3 (KATMAI) добавлены восемь новых 128-ми битовых регистра
ХММ0…ХММ7 (eXtended MultiMedia) для одновременной обработки четырех чисел с плавающей запятой одинарной точности (4 * 32 бита).
Это позволяет использовать одновременно либо обработку вещественных чисел в блоке SIMD-FP и целых – в ММХ, либо SIMD-FP и основной блок с плавающей запятой двойной точности.
Слайд 17Расширение 3Dnow! (1998 г.)
Расширение 3Dnow!, введенное фирмой AMD в
процессорах К6-2, расширяет возможности ММХ. Оно позволяет оперировать с новым типом данных – парой упакованных чисел в формате с плавающей точкой. Эти числа занимают по 2 * 32 бита в 64-х битовых регистрах ММХ.
В систему команд добавлена 21 новая инструкция, большая часть которых предназначена для обработки упакованных чисел с плавающей точкой.
Имеется и новая целочисленная ММХ-инструкция усреднения восьми пар 8-ми битовых чисел, предназначенная для декодеров MPEG-2.
Слайд 18Расширение 3Dnow! работает с упакованными целочисленными форматами ММХ, а также с
упакованными данными в FP-формате одинарной точности. FP-арифметика выполняется с насыщением.
Технология 3Dnow! дает заметный результат при обработке графики, хотя не претендует на вытеснение графических ускорителей, а призвана служить их мощным дополнением.
При этом сохраняется программная совместимость с прежними процессорами и операционными системами (поскольку регистры ММХ отобра-жаются на регистры FPU, для них работают традиционные механизмы сохранения контекста в многозадачных ОС).
Слайд 19В процессорах Athlon набор инструкций 3Dnow! был дополнен. Появилось 5 новых
инструкций для сигнальных процессоров (DSP), работающими с упакованными FP-числами. Еще 19 инструкций расширяют набор инструкций ММХ, а также служат для управления кэшированием.
В процессорах Athlon-МР и Athlon-XР добавлен полный набор инструкций SSE фирмы INTEL.
Слайд 20Расширение SSE-2 (2000 г.)
В новом процессоре PENTIUM-4 основные ново-введения направлены на
ускорение обработки потоковых данных, что обеспечивает максимальную производительность при обработке видео, графических изображений, работе с мультимедиа и в других сложных задачах.
Добавлены дополнительные 144 команды (SSE-2), ускоряющие работу широкого спектра потоковых ресурсоемких приложений.
Среди них также 128-ми разрядные команды целочисленных вычислений с механизмом SIMD.
Слайд 21Расширение SSE-3 (2003 г.)
В процессор PENTIUM-4 на ядре PRESCOTТ, который появился
в конце 2003 г., добавлены еще 13 новых команд SIMD-FP, получившие название SSE-3.
Слайд 22Вопросы для экспресс-контроля
Объясните необходимость появления ММХ-команд
Зачем ММХ-регистры отображены на FP-реги-стры?
Чем отличаются
мнемоники ММХ-команд от остальных команд процессора?
Зачем нужны команды «с насыщением» и команды «с усечением»?
Основное отличие команд SSE от ММХ-команд
Особенности команд 3Dnow!
Какие новые команды появились в процессорах PENTIUM-4?
Слайд 23Лекция окончена
СПАСИБО ЗА
ВНИМАНИЕ