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

MMX — это с одной командой и несколькими данными ( SIMD ), архитектура набора инструкций разработанная Intel и представленная 8 января 1997 года. [1] [2] с на базе Pentium P5 (микроархитектура) линейкой микропроцессоров , получившей название «Pentium с технологией MMX». [3] Он был разработан на основе аналогичного устройства, представленного на Intel i860 . [4] и более ранний Intel i750 видеопиксельный процессор . MMX — это дополнительная возможность процессора , которая поддерживается на процессорах IA-32 корпорацией Intel и другими поставщиками с 1997 г. [update]. AMD также добавила набор инструкций MMX в свой процессор K6 .
The New York Times описала первоначальный толчок, включая рекламу Суперкубка , как сосредоточенный на «новом поколении ярких мультимедийных продуктов, включая видеофоны и трехмерные видеоигры». [5]
Впоследствии MMX был расширен несколькими программами Intel и других компаний: 3DNow! , потоковые расширения SIMD (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]
Технические подробности [ править ]

MMX определяет восемь регистров процессора с именами от MM0 до MM7 и операции, которые с ними работают. Каждый регистр имеет ширину 64 бита и может использоваться для хранения либо 64-битных целых чисел, либо нескольких целых чисел меньшего размера в «упакованном» формате: затем одна инструкция может быть применена к двум 32-битным целым числам, четырем 16-битным целым числам или восьми 8-битные целые числа одновременно. [10]
MMX обеспечивает только целочисленные операции. При первоначальной разработке Intel i860 использование целочисленной математики имело смысл (его требовали как 2D-, так и 3D-расчеты), но по мере того, как видеокарты, выполнявшие большую часть этой работы, стали обычным явлением, целочисленная SIMD в ЦП стала несколько избыточной для графических приложений. [ нужна ссылка ] Альтернативно, арифметические операции насыщения в MMX могут [ нечеткий ] значительно ускорить некоторые приложения цифровой обработки сигналов . [ нужна ссылка ]
Чтобы избежать проблем совместимости с механизмами переключения контекста в существующих операционных системах, регистры MMX являются псевдонимами существующих x87 регистров модулей с плавающей запятой (FPU), которые переключения контекста уже сохраняют и восстанавливают. В отличие от регистров x87, которые ведут себя как стек , каждый регистр MMX имеет прямую адресацию (произвольный доступ).
Любая операция, связанная со стеком с плавающей запятой, может также повлиять на регистры MMX и наоборот, поэтому такое псевдонимы затрудняет работу с операциями с плавающей запятой и SIMD в одной программе. [11] Чтобы максимизировать производительность, программное обеспечение часто использовало процессор исключительно в том или ином режиме, откладывая относительно медленное переключение между ними как можно дольше.
Каждый 64-битный регистр MMX соответствует мантиссе 80 -битного регистра x87. Таким образом, старшие 16 бит регистров x87 не используются в MMX, и все эти биты установлены в единицы, что делает их типами данных Not a Number ( NaN ) или бесконечностью в представлении с плавающей запятой. Это может использоваться программным обеспечением, чтобы решить, предназначено ли содержимое данного регистра как данные с плавающей запятой или данные SIMD.
Поддержка программного обеспечения [ править ]
Программная поддержка MMX развивалась медленно. [5] Компилятор Intel C и связанные с ним инструменты разработки получили встроенные функции для вызова инструкций MMX, а Intel выпустила библиотеки общих векторизованных алгоритмов с использованием MMX. И Intel, и Metrowerks попытались выполнить автоматическую векторизацию в своих компиляторах, но операции на языке программирования C плохо отображались в наборе инструкций MMX, а пользовательские алгоритмы по состоянию на 2000 год обычно все еще приходилось писать на языке ассемблера . [11]
Преемники [ править ]
AMD, конкурирующий поставщик микропроцессоров x86 , усовершенствовала Intel MMX с помощью собственной технологии 3DNow! набор инструкций. 3DNow наиболее известен добавлением поддержки чисел с плавающей запятой одинарной точности (32 бита) в набор инструкций SIMD, а также другими целочисленными и более общими улучшениями.
Следующим крупным расширением Intel для x86 после MMX стало расширение Streaming SIMD Extensions (SSE), представленное в Pentium III . семействе [12] в 1999 году, [13] примерно через год после выхода AMD 3DNow! был представлен.
SSE устранил основные недостатки MMX (невозможность смешивать операции целочисленного SIMD с любыми операциями с плавающей запятой), создав новый 128-битный регистровый файл (XMM0–XMM7) и новые инструкции SIMD для него. Как и 3DNow!, SSE сосредоточился исключительно на операциях с плавающей запятой одинарной точности (32-битные); Целочисленные операции SIMD по-прежнему выполнялись с использованием регистра MMX и набора команд. Однако новый файл регистров XMM позволял свободно смешивать SIMD-операции SSE с операциями MMX или x87 FPU.
Расширения Streaming SIMD Extensions 2 ( SSE2 ), представленные в Pentium 4 , еще больше расширили набор инструкций SIMD x86 за счет поддержки целых чисел (8/16/32 бита) и данных двойной точности с плавающей запятой для файла регистров XMM. MMX SSE2 также позволял кодам операций ( кодам операций ) использовать операнды регистров XMM, что было расширено до еще более широких регистров YMM и ZMM в более поздних версиях SSE.
MMX во встроенных приложениях [ править ]
от Intel и Marvell Technology Group, начиная Ядро микропроцессора XScale с 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).
См. также [ править ]
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б «Производители представляют ПК с чипом Intel MMX» . Нью-Йорк Таймс . 9 января 1997 года. Архивировано из оригинала 13 января 2019 года . Проверено 13 января 2019 г.
Новая технология расширения мультимедийных данных Intel, называемая MMX,...
- ^ Ч, Раджив; Расекаран (8 января 1997 г.). «Intel представит более быстрый процессор Pentium» . Вашингтон Пост . Архивировано из оригинала 14 января 2019 года . Проверено 13 января 2019 г.
- ^ «Встроенные процессоры Pentium с технологией MMX» . Интел . Архивировано из оригинала 11 августа 2010 года . Проверено 28 июля 2007 г.
- ^ Миттал, Миллинд; Пелег, Алекс; Вайзер, Ури (1997). «Обзор архитектуры технологии MMX» (PDF) . Журнал технологий Intel . 1 (3). Архивировано (PDF) из оригинала 4 марта 2016 г. Проверено 29 октября 2015 г.
- ^ Jump up to: Перейти обратно: а б Калем, Роберт Э. (24 января 1997 г.). «Intel MMX: технология, лежащая в основе шумихи» . Нью-Йорк Таймс . Архивировано из оригинала 13 января 2019 года . Проверено 13 января 2019 г.
- ^ Танака, Дженнифер (16 февраля 1997 г.). «Новый чип с блока» . Newsweek . Архивировано из оригинала 31 августа 2019 года . Проверено 31 августа 2019 г.
имя, которое ничего не означает
- ^ «Intel | Решения для центров обработки данных, Интернет вещей и инновации в ПК» . Архивировано из оригинала 17 декабря 2013 года . Проверено 17 декабря 2013 г.
- ^ Чжан, Пэн (1 января 2010 г.). «ГЛАВА 5 – Микропроцессоры». Передовые технологии промышленного управления . (12) Технология MMX: издательство William Andrew. стр. 155–214. ISBN 978-1-4377-7807-6 . Проверено 2 июня 2024 г.
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ «Intel и Advance Micro договорились о торговой марке чипа» . Нью-Йорк Таймс . 22 апреля 1997 года. Архивировано из оригинала 13 января 2019 года . Проверено 13 января 2019 г.
- ^ Пфайффер, Джозеф младший (1997). «Микроархитектура MMX процессоров Pentium с технологией MMX и микропроцессоров Pentium II» (PDF) . Журнал технологий Intel . Архивировано из оригинала (PDF) 12 января 2011 года . Проверено 1 сентября 2017 г.
- ^ Jump up to: Перейти обратно: а б Конте, Г.; Томмесани, С.; Заничелли, Ф. (2000). Долгий и извилистый путь к высокопроизводительной обработке изображений с помощью MMX/SSE (PDF) . Труды международного семинара IEEE по компьютерным архитектурам для машинного восприятия. Архивировано из оригинала (PDF) 28 января 2016 г.
- ^ Кей, Алан С. (26 февраля 1999 г.). «Pentium III: покупайте цифры?» . Вашингтон Пост . Архивировано из оригинала 15 апреля 2019 года . Проверено 13 января 2019 г.
- ^ «Зал славы микропроцессоров» . Музей Интел . Архивировано из оригинала 6 апреля 2008 года.
- ^ «Intel внедряет технологию MMX™ в беспроводные устройства на базе архитектуры Intel® Personal Internet Client» . Проверено 28 июля 2022 г.
- ^ «Intel предлагает процессоры нового поколения, специально разработанные для сотовых телефонов и беспроводных карманных компьютеров» . Архивировано из оригинала 2 января 2012 года . Проверено 28 июля 2022 г.
- ^ «Самая маленькая в мире карта встроенного процессора PXA270?» . ЭЭ Таймс . 15 сентября 2004 года . Проверено 28 июля 2022 г.
Внешние ссылки [ править ]
- Руководство по внутренним компонентам Intel
- Документация по процессору Intel Pentium с технологией MMX
- Руководство разработчика программного обеспечения IA, том 1 (PDF) , информацию о программировании MMX см. в главе 8.