MMX (набор команд) - MMX (instruction set)

Pentium с MMX

MMX это одна инструкция, несколько данных (SIMD ) Набор инструкций разработано Intel, введен в январе 1997 г.[1][2] с этими P5 -основан Pentium линия микропроцессоры, обозначенный как «Pentium с технологией MMX».[3] Он разработан на основе аналогичного устройства, представленного на Intel i860,[4] и ранее Intel i750 видеопиксельный процессор. MMX - это дополнительные возможности процессора что поддерживается на последних IA-32 процессоры Intel и других производителей.

The New York Times описала начальный толчок, в том числе Суперкубок реклама, ориентированная на «новое поколение блестящих мультимедийных продуктов, включая видеофоны и трехмерные видеоигры».[5]

Впоследствии MMX был расширен несколькими программами Intel и другими компаниями: 3DNow!, Потоковые расширения SIMD (SSE) и текущие пересмотры Расширенные векторные расширения (AVX).

Обзор

Именование

MMX официально бессмысленный инициализм[6] товарный знак от Intel;[7] неофициально инициалы по-разному объясняются как обозначающие

  • MultiMedia eXtension,[1]
  • Множественное математическое расширение, или же
  • Расширение Матрицы Математики.

AMD, во время одного из своих многочисленных судебных разбирательств с Intel, представила маркетинговые материалы от Intel, в которых говорилось, что MMX расшифровывается как «Matrix Math Extensions». Поскольку инициализм не может быть зарегистрирован как товарный знак, это была попытка аннулировать товарный знак Intel. В 1995 году Intel подала иск против AMD и Cyrix Corp. за неправомерное использование своего товарного знака MMX. AMD и Intel заключили соглашение, при этом AMD признала MMX товарным знаком, принадлежащим Intel, а Intel предоставила AMD права на использование товарного знака MMX в качестве названия технологии, но не названия процессора.[8]

Технические детали

Процессор Pentium II с технологией MMX

MMX определяет восемь регистры, называемые от MM0 до MM7, и операции, которые с ними работают. Каждый регистр имеет ширину 64 бита и может использоваться для хранения либо 64-битных целых чисел, либо нескольких меньших целых чисел в «упакованном» формате: одна инструкция может затем применяться к двум 32-битным целым числам, четырем 16-битным целым числам или сразу восемь 8-битных целых чисел.[9]

MMX поддерживает только целочисленные операции. При первоначальной разработке для Intel i860 использование целочисленной математики имело смысл (это требовалось как для 2D-, так и для 3D-расчетов), но поскольку видеокарты, которые выполняли большую часть этого, стали обычным явлением, целое число SIMD в CPU стало несколько избыточным для графических приложений.[нужна цитата ] С другой стороны, арифметика насыщения операции в MMX могли[нечеткий ] значительно ускорить некоторые цифровая обработка сигналов Приложения.[нужна цитата ]

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

Любая операция, связанная со стеком с плавающей запятой, может также повлиять на регистры MMX и наоборот, поэтому такое сглаживание затрудняет работу с операциями с плавающей запятой и SIMD в одном приложении.[10] Чтобы максимизировать производительность, программисты часто использовали процессор исключительно в одном или другом режиме, откладывая относительно медленное переключение между ними как можно дольше.

Каждый 64-битный регистр MMX соответствует мантисса часть 80-битного регистра x87. Таким образом, старшие 16 бит регистров x87 не используются в MMX, и все эти биты установлены в единицы, что делает их NaNs или бесконечности в представлении с плавающей запятой. Это может использоваться приложениями, чтобы решить, предназначено ли содержимое конкретного регистра как данные с плавающей запятой или данные SIMD.

Поддержка программного обеспечения

Программная поддержка MMX появлялась медленно.[5] Компилятор Intel C и соответствующие инструменты разработки получены внутренняя сущность для вызова инструкций MMX и Intel выпустила библиотеки распространенных векторизованных алгоритмов с использованием MMX. И Intel, и Metrowerks попытался автоматическая векторизация в своих компиляторах, но операции в C язык программирования плохо отображался в наборе команд MMX, и пользовательские алгоритмы с 2000 года, как правило, все еще приходилось писать на сборка.[10]

Преемник

AMD, конкурирующий производитель микропроцессоров x86, улучшил MMX Intel своим собственным 3DNow! Набор инструкций. 3DNow наиболее известна тем, что добавила поддержку одинарной точности (32-битной) с плавающей запятой в набор инструкций SIMD, среди других целочисленных и более общих улучшений.

Следующим крупным расширением Intel x86 после MMX стало расширение SSE, представленный в семействе Pentium-III[11] в 1999 году,[12] примерно через год после AMD 3DNow! был представлен.

SSE устранил основные недостатки MMX (невозможность смешивать целочисленные операции SIMD с любыми операциями с плавающей запятой), создав новый 128-битный регистровый файл (XMM0 – XMM7) и новые инструкции SIMD для него. Как и 3DNow !, SSE ориентирован исключительно на операции с плавающей запятой одинарной точности (32-разрядные); Целочисленные операции SIMD по-прежнему выполнялись с использованием регистра MMX и набора команд. Однако новый регистровый файл XMM позволял SSE SIMD-операции свободно смешиваться с операциями MMX или x87 FPU.

SSE2, представленный с Pentium 4, дополнительно расширил набор инструкций SIMD для x86 за счет поддержки целых чисел (8/16/32 бит) и данных с плавающей запятой двойной точности для файла регистров XMM. SSE2 также позволял кодам операций MMX использовать операнды регистров XMM, расширенные до еще более широких регистров YMM и ZMM более поздними версиями SSE.

MMX во встроенных приложениях

Intel и Марвелл с XScale ядро микропроцессора, начиная с PXA270, включает SIMD Набор инструкций расширение ядра ARM, называемое iwMMXt чьи функции аналогичны функциям IA-32 MMX расширение. iwMMXt означает «Технология Intel Wireless MMX». Он обеспечивает арифметические и логические операции с 64-битными целыми числами (вместо этого программа может выбрать выполнение двух 32-битных, четырех 16-битных или восьми 8-битных операций в одной инструкции). Расширение содержит 16 регистров данных по 64 бита и восемь регистров управления по 32 бита. Доступ ко всем регистрам осуществляется через стандартные ARM архитектура механизм сопоставления сопроцессора. iwMMXt занимает пространство сопроцессоров 0 и 1, а некоторые из его коды операций конфликтуют с кодами операций более раннего расширения с плавающей запятой, FPA.

Более поздние версии Марвелл Процессоры ARM поддерживают коды операций WMMX (Wireless MMX) и WMMX2 (Wireless MMX2).

Смотрите также

Рекомендации

  1. ^ а б Представлен 8 января 1997 года. «Производители представляют ПК с чипом Intel MMX». NYTimes.com. 9 января 1997 г. Новая технология расширения мультимедиа Intel под названием MMX ...
  2. ^ «Intel представит более быстрый чип Pentium». Вашингтон Пост. 8 января 1997 г.
  3. ^ «Встроенные процессоры Pentium® с технологией MMX ™». Intel.
  4. ^ Миттал, Миллинд; Пелег, Алексей; Вайзер, Ури (1997). «Обзор архитектуры технологии MMX» (PDF). Intel Technology Journal. 1 (3).
  5. ^ а б Роберт Э. Калем (24 января 1997 г.). «Intel MMX: технология, которая стоит за Hoopla». NYTimes.com.
  6. ^ Дженнифер Танака (16 февраля 1997 г.). «Новая фишка из блока». Newsweek. имя, которое ничего не означает
  7. ^ http://www.intel.com/content/www/us/en/trademarks/mmx.html
  8. ^ «Intel и Advance Micro договорились о торговой марке чипа». Нью-Йорк Таймс. 22 апреля 1997 г.
  9. ^ «Микроархитектура MMX ™ процессоров Pentium® с технологией MMX и микропроцессоров Pentium® II» (PDF). Intel Technology Journal. 1997. Архивировано с оригинал (PDF) 12 января 2011 г.. Получено 1 сентября, 2017.
  10. ^ а б Conte, G .; Tommesani, S .; Заничелли, Ф. (2000). Долгий и извилистый путь к высокопроизводительной обработке изображений с MMX / SSE (PDF). Proc. Международный семинар IEEE по компьютерным архитектурам для машинного восприятия. Архивировано из оригинал (PDF) 28 января 2016 г.
  11. ^ Алан С. Кей (26 февраля 1999 г.). «Pentium III: покупать числа?». Вашингтон Пост.
  12. ^ «Зал славы микропроцессоров». Музей Intel. Архивировано из оригинал 6 апреля 2008 г.

внешняя ссылка