Наборы мультимедийных команд

Начиная с процессора Intel Pentium MMX, в процессорах фирмы Intel реализована технология мультимедийного расширения – MMX (MultiMedia eXtension). Эта технология включают в себя 57 команд для обработки звуковых и видеосигналов, разделенных на следующие группы команд:

· команды пересылки двойных слов (четырех байт) и учетверенных слов (восьми байт);

· команды преобразования (упаковки и распаковки байтов, слов и двойных слов);

· команды выполнения арифметических операций над упакованными целыми числами;

· команды выполнения логических операций над учетверенными словами;

· команды сдвига для упакованных данных;

· команды управления выполнением операций MMX.

Эти команды функционируют в режиме «одна команда, много данных» – SIMD (Single Instruction, Many Data), когда одной командой одновременно обрабатывается несколько элементов данных (это характерно для обработки мультимедийных данных). Использование MMX позволяет перенести основную нагрузку по обработке изображения и звука на центральный процессор и делает возможным реализацию встроенных в материнскую плату видеоадаптеров и звуковых карт.

Развитием режима SIMD явилось пакетное расширение SIMD – SSE (Streaming SIMD Extension), в котором данные группируются в пакеты, обрабатываемые одной командой. Для параллельной обработки данных были введены 128-разрядные регистры XMM (eXtended MultiMedia – расширенное мультимедиа). В каждом из этих регистров могут помещаться 4 двойных слова в формате с плавающей точкой, содержимое которых может одновременно обрабатываться при выполнении векторных операций.

Команды SSE делятся на следующие группы:

· команды для работы с данными с плавающей точкой одинарной точности (в эту группу входят следующие подгруппы команд: команды перемещения данных, команды арифметических операций над упакованными данными, команды сравнения, логические команды, команды перемешивания и распаковки, команды преобразования);

· команды управления состоянием регистра MXCSR;

· 64-битовые команды для выполнения дополнительных операций над упакованными данными в регистрах MMX;

· команды управления загрузкой и кэшированием данных, а также порядком выполнения команд.

Дальнейшее расширение SIMD – SSE2 дополнило набор команд MMX командами выполнения операций над упакованными данными с плавающей точкой двойной точности, а также над упакованными данными длиной в байт, слово, двойное и учетверенное слово в регистрах XMM.

Команды SSE2 делятся на следующие четыре группы:

· команды над упакованными данными и данными с плавающей точкой двойной точности;

· команды преобразования упакованных данных с плавающей точкой одинарной точности;

· командами SIMD над 128-битовыми данными;

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

В расширении SSE3 введено 13 новых команд для ускорения выполнения команд в SSE, SSE2 и x87.

Следующее расширение команд – SSSE3 (Supplemental SSE3 – дополнение к SSE3) содержит 32 команды для ускорения вычислений над упакованными целыми числами.

Последнее расширение – SSE4 содержит два набора команд – SSE4.1 и SSE4.2.

Набор команд SSE4.1 содержит 47 команд для повышения эффективности векторных преобразований и существенно увеличивает поддержку для вычислений с двойными словами.

Набор SSE4.2 из 7 команд включает команды обработки строк, команду сравнения для упакованных учетверенных слов и специализированные команды для подсчета контрольной суммы и количества единичных битов в операнде.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: