Начиная с процессора 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 команд включает команды обработки строк, команду сравнения для упакованных учетверенных слов и специализированные команды для подсчета контрольной суммы и количества единичных битов в операнде.