Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Pentium с MMX

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

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

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

Обзор [ править ]

Именование [ править ]

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

  • MultiMedia eXtension , [1]
  • Multiple Math eXtension , или
  • Matrix Math eXtension .

Компания 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 в качестве названия технологии, но не названия процессора. [8]

Технические детали [ править ]

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

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

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

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

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

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

Поддержка программного обеспечения [ править ]

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

Преемники [ править ]

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

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

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

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

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

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

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

См. Также [ править ]

  • Расширенный MMX

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Руководство Intel Intrinsics
  • Процессор Intel Pentium с документацией по технологии MMX
  • Руководство разработчика программного обеспечения IA, том 1 (PDF) , см. Главу 8 для программирования MMX