Прескачане към съдържанието

MMX

Архитектурна справкаFeex

MMX е ранно x86 разширение на инструкции за пакетирани цели числа, използващо 64-битови регистри, които споделят архитектурна памет с регистровия масив с плаваща запетая x87. Това споделено състояние има значение при смесване на код.

Какво трябва да знаете

MMX е ранно x86 разширение на инструкции за пакетирани цели числа, използващо 64-битови регистри, които споделят архитектурна памет с регистровия масив с плаваща запетая x87. Това споделено състояние има значение при смесване на код.

Как работи

Операциите MMX третират 64-битов регистър като пакетирани целочислени елементи. Имената на MMX регистрите са псевдоними на x87 регистровата памет, вместо да предоставят независимо модерно векторно състояние. EMMS маркира състоянието на x87 таговете като празно след използване на MMX, така че последващият x87 код да може да използва стека с плаваща запетая правилно.

Къде е полезно

Остарелият мултимедиен софтуер може да използва MMX за аритметика с насищане върху байтове. Новият код обикновено използва XMM или по-широки векторни средства, избягвайки взаимодействието между състоянията на MMX/x87. Съществуващи изпълними файлове все още могат да съдържат MMX дори на значително по-нов процесор.

Как се проверява поддръжката и активирането

CPUID.01H:EDX бит 23 изброява MMX. За отстраняване на грешки в наследен код изследвайте както действителната последователност от инструкции, така и нейното управление на EMMS/състоянието. Флаг за възможност не може да гарантира, че дадена процедура спазва конвенцията за извикване правилно.

SIMD функционалност описва инструкции, а не допълнителни ядра. Формата на инструкцията определя ширината на елемента, знака, закръгляването, подравняването и кои пътеки (lanes) взаимодействат. Софтуерът трябва да запазва регистровото състояние според ABI и да използва поддържана среда за изпълнение.

Какво не гарантира тази функция

MMX е целочислен SIMD, а не 64-битово изпълнение с общо предназначение или поддръжка за x86-64. Тя не предполага SSE или по-късни разширения. Пропуснатото изчистване при смесване на MMX и x87 може да причини проблеми с коректността, несвързани с това дали процесорът поддържа инструкциите.

Съвместимост и производителност на практика

По-късните наименования в семейството на SSE имат отделни битове за функционалност. За внедрен изпълним файл проверете пълния минимален набор от функционалности, включително библиотеките и стартиращия код. Резервният вариант е полезен само ако нито една неподдържана инструкция не се изпълнява преди стъпката за избор.

Практически контролен списък за проверка

  1. Запишете точния модел на процесора или платформата, както и използваните версии на приложението, операционната система и средата за изпълнение. Запазете точния текст на действителната грешка или изискване.
  2. Проверете документацията от производителя за този точен модел, след което инспектирайте действителните възможности и активираното състояние в средата, където работи програмата.
  3. Сравнете всяко изискване на избрания двоичен файл или бекенд. Подобно наименувана функция, псевдоним или общ технологичен етикет не са достатъчни.
  4. Потвърдете, че приложението е избрало планираната реализация. Използвайте неговата документирана диагностика и поддържан резервен вариант, когато изискванията не са изпълнени.
  5. Правете по една поддържана промяна наведнъж и повтаряйте същото работно натоварване. Запазете достъпни оригиналната конфигурация и плана за възстановяване.

Ако функцията е посочена, но софтуерът не може да я използва

Започнете с точния компонент, който дава грешка. Хардуерната база данни описва записаните възможности; операционната система или хипервайзорът могат да предоставят различна ефективна среда. Грешка за невалидна инструкция (illegal-instruction) също изисква разследване на действителната сриваща се инструкция и компилацията на двоичния файл, тъй като повреда или несвързана неподдържана инструкция може да предизвика подобен симптом.

Инсталирайте версията на приложението, драйвера или средата за изпълнение, която се поддържа за точната платформа, и използвайте документираната от производителя базова или резервна компилация, ако е необходимо. Софтуерна актуализация не може да създаде инструкция, която липсва в процесора. Промените във фърмуера и политиките за сигурност трябва да следват процедурата на производителя на системата и план за възстановяване, а не общи съвети за оптимизация.

Източници и обхват на това обяснение

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: нива на процесорна архитектура и микроархитектура

Тези източници установяват архитектурното поведение и софтуерните изисквания. Те не проверяват независимо всяка стойност на параметър на свързана страница за хардуерен модел. За поддръжка на даден модел използвайте данните от производителя на съответната страница и проверете ефективната системна конфигурация. Тази статия не предоставя бенчмарк, сертификация или дата на независим преглед.

Източници и проверка

Редакционна собственост: Feex. Не е записана дата на независим преглед. Как проучваме.

Беше ли полезна тази статия?

Достатъчно е "да" или "не". Изберете причина, ако желаете, или добавете кратка бележка.

Беше ли полезна тази статия?