stringtranslate.com

MMX (набор инструкций)

Pentium с MMX

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

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

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

Обзор

Нейминг

MMX — это официально бессмысленная аббревиатура [6], зарегистрированная как торговая марка Intel; [7] неофициально аббревиатура по-разному толкуется как

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

Технические подробности

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

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

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

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

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

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

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

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

Преемники

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

После MMX следующим крупным расширением x86 от Intel стало Streaming SIMD Extensions (SSE), представленное в семействе Pentium III [12] в 1999 году [13] , примерно через год после появления 3DNow! от AMD.

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

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

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

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

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

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

Ссылки

  1. ^ ab "Производители представляют ПК с чипом Intel MMX". The New York Times . 9 января 1997 г. Архивировано из оригинала 13 января 2019 г. Получено 13 января 2019 г. Новая технология расширения мультимедиа от Intel, называемая MMX, ...
  2. ^ Ch, Rajiv; rasekaran (8 января 1997 г.). «Intel представит более быстрый чип Pentium». The Washington Post . Архивировано из оригинала 14 января 2019 г. Получено 13 января 2019 г.
  3. ^ "Встраиваемые процессоры Pentium с технологией MMX". Intel . Архивировано из оригинала 11 августа 2010 г. Получено 28 июля 2007 г.
  4. ^ Миттал, Миллинд; Пелег, Алекс; Вайзер, Ури (1997). "Обзор архитектуры технологии MMX" (PDF) . Журнал технологий Intel . 1 (3). Архивировано (PDF) из оригинала 4 марта 2016 г. . Получено 29 октября 2015 г. .
  5. ^ ab Calem, Robert E. (24 января 1997 г.). "Intel's MMX: The Technology Behind the Hoopla". The New York Times . Архивировано из оригинала 13 января 2019 г. Получено 13 января 2019 г.
  6. ^ Танака, Дженнифер (16 февраля 1997 г.). «Новый чип с блока». Newsweek . Архивировано из оригинала 31 августа 2019 г. . Получено 31 августа 2019 г. . имя, которое ничего не обозначает
  7. ^ "Intel | Data Center Solutions, IoT, and PC Innovation". Архивировано из оригинала 17 декабря 2013 г. Получено 17 декабря 2013 г.
  8. ^ Чжан, Пэн (1 января 2010 г.). "ГЛАВА 5 - Микропроцессоры". Передовые промышленные технологии управления . (12) Технология MMX: William Andrew Publishing. стр. 155–214. ISBN 978-1-4377-7807-6. Получено 2 июня 2024 г. .{{cite book}}: CS1 maint: местоположение ( ссылка )
  9. ^ "Intel и Advance Micro договорились о торговой марке чипа". The New York Times . 22 апреля 1997 г. Архивировано из оригинала 13 января 2019 г. Получено 13 января 2019 г.
  10. ^ Пфайффер, Джозеф Дж. младший (1997). "Микроархитектура MMX процессоров Pentium с технологией MMX и микропроцессорами Pentium II" (PDF) . Журнал технологий Intel . Архивировано из оригинала (PDF) 12 января 2011 г. . Получено 1 сентября 2017 г. .
  11. ^ ab Conte, G.; Tommesani, S.; Zanichelli, F. (2000). Долгая и извилистая дорога к высокопроизводительной обработке изображений с помощью MMX/SSE (PDF) . Труды Международного семинара IEEE по компьютерным архитектурам для машинного восприятия. Архивировано из оригинала (PDF) 28 января 2016 г.
  12. Кей, Алан С. (26 февраля 1999 г.). «Pentium III: Buy the Numbers?». The Washington Post . Архивировано из оригинала 15 апреля 2019 г. Получено 13 января 2019 г.
  13. ^ "Microprocessor Hall of Fame". Музей Intel . Архивировано из оригинала 6 апреля 2008 года.
  14. ^ "Intel внедряет технологию MMX™ в беспроводные устройства на базе архитектуры Intel® Personal Internet Client" . Получено 28 июля 2022 г. .
  15. ^ "Intel поставляет процессоры нового поколения, специально разработанные для сотовых телефонов и беспроводных КПК". Архивировано из оригинала 2 января 2012 г. Получено 28 июля 2022 г.
  16. ^ «Самая маленькая в мире встроенная процессорная карта PXA270?». EE Times . 15 сентября 2004 г. Получено 28 июля 2022 г.

Внешние ссылки