MMX
Материал из Wiki.
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-разрядном регистре);
- упакованные слова (четыре 16-разрядных слова в 64-разрядном регистре) ;
- упакованные двойные слова (два 32-разрядных слова в 64-разрядном регистре) ;
- 64-разрядные слова .
Синтаксис
MMX-команды имеют следующий синтаксис:
instruction [dest, src]
Здесь instruction — имя команды, dest обозначает выходной операнд, src — входной операнд.
Большинство команд имеют суффикс, который определяет тип данных и используемую арифметику:
- US (unsigned saturation) — арифметика с насыщением, данные без знака.
- S или SS (signed saturation) — арифметика с насыщением, данные со знаком. Если в суффиксе нет ни S, ни SS, используется циклическая арифметика (wraparound).
- B, W, D, Q указывают тип данных. Если в суффиксе есть две из этих букв, первая соответствует входному операнду, а вторая — выходному.
Выделяют следующие группы команд:
- Команды пересылки данных
- Команды преобразования типов
- Арифметические операции
- Команды сравнения
- Логические операции
- Сдвиговые операции
- Команды управления состоянием
