MMX
- 1 year ago
- 0
- 0
MMX ( M ulti m edia E x tensions — мультимедийные расширения) — коммерческое название дополнительного SIMD - набора инструкций , разработанного компанией Intel и впервые представленного в 1997 году одновременно с линией процессоров Pentium MMX . Набор инструкций был предназначен для ускорения процессов кодирования/декодирования потоковых аудио- и видеоданных. Является развитием технологий, предложенных в микропроцессоре i860 . Разработан в лаборатории Intel в Хайфе , Израиль , в первой половине 1990-х .
Сейчас набор инструкций MMX, представленный в 1997 году, является откровенно устаревшим и уже давно вытеснен различными версиями SSE и AVX . Тем не менее, в средствах разработки он всё ещё формально поддерживается; правда, в силу редкости использования реализация страдает от многочисленных дефектов. Поэтому есть предложения удалить его из популярного набора компиляторов LLVM .
Расширение MMX включает в себя восемь 64- битных регистров общего пользования MM0—MM7. Для совместимости со способами переключения контекста процессора в существующих ОС Intel была вынуждена объединить в программной модели процессора восемь регистров MMX с мантиссами восьми регистров FPU . Аппаратно это могут быть разные устройства, но с точки зрения программиста — это одни и те же регистры. Таким образом, нельзя одновременно пользоваться командами математического сопроцессора и MMX.
Команды технологии MMX обрабатывают целочисленные данные , упакованные в группы ( векторы ) общей длиной 64 бита, либо одиночные 64-битные слова. Такие данные могут находиться в памяти или в восьми MMX-регистрах.
Команды технологии MMX работают со следующими типами данных:
MMX
-команды имеют следующий синтаксис:
instruction [dest, src]
Здесь
instruction
— имя команды,
dest
обозначает выходной операнд,
src
— входной операнд.
Систему команд образуют 57 инструкций, позволяющих параллельно обрабатывать несколько элементов данных . Большинство команд имеет суффикс , который определяет тип данных и используемую арифметику:
Можно выделить следующие группы инструкций :
Выполнение инструкций MMX не приводит к изменению флагов условий слова состояния FPU, за исключением поля TOP. К регистрам MMX можно обращаться непосредственно по именам, в отличие от регистров FPU, которые организованы в стек с вершиной, определяемой полем TOP слова состояния FPU. При этом поле TOP сбрасывается после выполнения любой инструкции MMX. Выполнение инструкций MMX возможно в любом режиме процессора .
Семейство процессоров Intel XScale , начиная с модели PXA270, содержит дополнение к системе команд ARM , называемое iwMMXt, похожее на расширение IA-32 MMX.