MMX

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

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

Содержание

[править] Регистры MMX

Расширение MMX включает в себя восемь 64-битных регистров общего пользования MM0—MM7. Физически никаких новых регистров с введением MMX не появилось. MM0—MM7 — это в точности мантиссы восьми регистров FPU (Математический сопроцессор), от R0—R7. Таким образом, нельзя одновременно пользоваться командами Математического сопроцессора и MMX.

[править] Типы данных MMX

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

Команды технологии MMX работают со следующими типами данных:

  • упакованные байты (восемь байтов в одном 64-разрядном регистре) (англ. packed byte);
  • упакованные слова (четыре 16-разрядных слова в 64-разрядном регистре) (packed word);
  • упакованные двойные слова (два 32-разрядных слова в 64-разрядном регистре) (packed doubleword);
  • 64-разрядные слова (quadword).

[править] Синтаксис

MMX-команды имеют следующий синтаксис: instruction [dest, src] Здесь instruction — имя команды, dest обозначает выходной операнд, src — входной операнд.

В систему команд введено 57 дополнительных инструкций для одновременной обработки нескольких единиц данных. Большинство команд имеют суффикс, который определяет тип данных и используемую арифметику:

  • US (unsigned saturation) — арифметика с насыщением, данные без знака.
  • S или SS (signed saturation) — арифметика с насыщением, данные со знаком. Если в суффиксе нет ни S, ни SS, используется циклическая арифметика (wraparound).
  • B, W, D, Q указывают тип данных. Если в суффиксе есть две из этих букв, первая соответствует входному операнду, а вторая — выходному.

Новые инструкции включают следующие группы:

  • Команды пересылки данных (Data Transfer Instructions) между регистрами MMX и целочисленными регистрами и памятью;
  • Команды преобразования типов
  • Арифметические операции (Arithmetic Instructions), включающие сложение и вычитание в разных режимах, умножение и комбинацию умножения и сложения;
  • Команды сравнения (Comparison Instructions) элементов данных на равенство или по величине;
  • Логические операции (Logical Instructions)- И,И-НЕ,ИЛИ и Исключающие ИЛИ, выполняемые над 64 битными операндами;
  • Сдвиговые операции (Shift Instructions) логические и арифметические;
  • Команды управления состоянием (Empty MMX State) очистка MMX - установка признаков пустых регистров в слове тегов.

Инструкции MMX не влияют на флаги условий. Регистры MMX, в отличии от регистров FPU, адресуются физически, а не относительно TOS. Любая инструкция MMX обнуляет поле TOS регистра состояния FPU. Инструкции MMX доступны из любого режима процессора.

[править] Литература

  • Зубков С. В. Assembler для DOS, Windows, UNIX. 3-е изд., стер. — М. : ДМК Пресс; СПб. : Питер, 2004. — 608 с.
  • Роберт Шимонски Освой самостоятельно Unix. 10 минут на урок = Sams Teach Yourself Unix in 10 Minutes. — М.: «Вильямс», 2006. — С. 272. — ISBN 0-672-32764-3

[править] Ссылки

  • Codenet.ru(рус.), статья о программировании ММХ



Наборы расширения базовых инструкций процессоров семейства x86
MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | 3DNow! | 3DNowExt
Источник — «http://ru.wikipedia.org/wiki/MMX»