Перейти до вмісту

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 описує інструкції, а не додаткові ядра. Форма інструкції визначає розрядність елементів, знаковість, округлення, вирівнювання та те, які саме смуги взаємодіють. Програмне забезпечення має зберігати стан регістрів ABI та використовувати підтримуване середовище виконання.

Чого ця функція не гарантує

MMX - це цілочисельний SIMD, а не 64-бітне виконання загального призначення чи підтримка x86-64. Вона не передбачає наявності SSE або пізніших розширень. Відсутність очищення під час змішування MMX та x87 може спричинити проблеми з коректністю, не пов'язані з тим, чи підтримує процесор ці інструкції.

Сумісність і продуктивність на практиці

Пізніші назви в сімействі SSE мають окремі біти функцій. Для розгорнутого бінарного файлу перевірте повний мінімальний набір функцій, включно з бібліотеками та кодом запуску. Резервний варіант корисний лише тоді, коли жодна непідтримувана інструкція не виконується до кроку вибору.

Практичний контрольний список для верифікації

  1. Зафіксуйте точну модель процесора або платформи, а також версії використовуваної програми, ОС і середовища виконання. Збережіть точне формулювання фактичної помилки або вимоги.
  2. Звіртеся з документацією виробника для цієї точної моделі, потім перевірте фактичні можливості та стан активації в середовищі, де виконується програма.
  3. Порівняйте кожну вимогу вибраного двійкового файлу або бекенда. Схожої назви функції, псевдоніма чи загального позначення технології недостатньо.
  4. Переконайтеся, що програма вибрала призначену реалізацію. Використовуйте її задокументовані засоби діагностики та підтримуваний резервний варіант, якщо вимоги не виконуються.
  5. Вносьте по одній підтримуваній зміні за раз і повторюйте те саме робоче навантаження. Зберігайте оригінальну конфігурацію та можливість відновлення.

Якщо функція вказана, але програмне забезпечення не може її використати

Почніть із компонента, у якому саме стався збій. База даних обладнання описує зафіксовані можливості; операційна система або гіпервізор можуть надавати інше фактичне середовище. Помилка неприпустимої інструкції також потребує дослідження фактичної інструкції, що викликала збій, і двійкової збірки, оскільки пошкодження даних або непов'язана непідтримувана інструкція можуть викликати схожий симптом.

Встановіть версію програми, драйвера або середовища виконання, яка підтримується для цієї конкретної платформи, і за потреби використовуйте задокументовану постачальником базову або резервну збірку. Оновлення програмного забезпечення не може створити інструкцію, якої немає в процесорі. Зміни у прошивці та політиках безпеки повинні відповідати процедурі виробника системи та плану відновлення, а не загальним рецептам оптимізації.

Джерела та межі застосування цього пояснення

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

Ці довідкові матеріали визначають архітектурну поведінку та вимоги до програмного забезпечення. Вони не перевіряють незалежно кожне значення функції на сторінці пов'язаної моделі обладнання. Щодо підтримки моделі використовуйте дані виробника на цій сторінці та перевіряйте фактичну конфігурацію системи. Ця стаття не містить бенчмарків, сертифікації чи дат незалежного огляду.

Джерела та верифікація

Власник авторських прав: Feex. Дата незалежної перевірки не зафіксована. Як ми проводимо дослідження.

Чи була ця стаття корисною?

Достатньо відповісти "так" або "ні". За бажанням виберіть причину або додайте коротку примітку.

Чи була ця стаття корисною?