http://npc-news.ru/

MMX (Multimedia Extensions) краткая информация

MMX (Multimedia Extensions — мультимедийные расширения) — коммерческое название дополнительного набора инструкций, выполняющих характерные для процессов кодирования/декодирования потоковых аудио/видео данных действия за одну машинную инструкцию.

Впервые появился в процессорах Pentium MMX.

В Pentium MMX добавлено 57 новых команд обработки данных и, соответственно — четыре новых типа данных.
За одну операцию команда MMX обрабатывает 64-разрядное двоичное слово (так называемое квадраслово, или QWord).
Новые типы данных образуются от упаковки в квадраслово обычных типов — байтов (по 8), слов (по 4) или двойных слов (по 2).
Четвертый тип представляет собой само квадраслово.

Таким образом, одна элементарная MMX-операция имеет дело либо с одним квадрасловом, что похоже на обычную операцию большой разрядности, либо с двумя двойными словами, четырьмя словами или восемью байтами, причем выполнение происходит одновременно и каждый элемент данных обрабатывается независимо от других.
Подобные групповые операции преобладают во время обработки изображения (группы точек) и звука (группы значений амплитуды).

Основное увеличение производительности — до 60 % — возможно только при использовании программ, правильно применяющих технологию MMX в обработке данных.

Для обработки данных и хранения промежуточных результатов в Pentium MMX используются восемь 64-разрядных регистров MM0..MM7, которые физически совмещены со стеком регистров математического сопроцессора.
При выполнении любой из MMX-команд происходит установка «режима MMX» с отметкой этого в слове состояния сопроцессора (FPU Tag Word).

С этого момента стек регистров сопроцессора рассматривается как набор MMX-регистров; завершает работу в режиме MMX команда EMMS (End MultiMedia State).

С одной стороны, такая реализация позволила обеспечить нормальную работу приложений, использующих MMX, в многозадачных системах, не поддерживающих эту технологию, поскольку все подобные системы создают собственную копию содержимого стека сопроцессора и слова его состояния для каждого процесса.

С другой стороны, переход между режимами занимает значительное время, и совмещение, например, в одном цикле команд сопроцессора с командами MMX может не только не ускорить, а даже существенно замедлить выполнение программы.
Поэтому для достижения наилучших результатов рекомендуется группировать эти команды отдельно друг от друга, что на самом деле не представляет никакой сложности.


Добавить комментарий

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>