Skip to content

Расширения процессора. MMX. Классификация команд

Ivan Bogatyrev edited this page Jun 12, 2023 · 1 revision

Расширения процессора. MMX. Классификация команд

MMX (с 1997)

MX - Multimedia eXtensions - расширение для увеличения эффективности обработки больших потоков данных (изображения, звук, видео, ...), то есть для выполнения простых операций над массивами однотипных данных.

Классификация команд

Команды пересылки данных

  • пересылка двойных/учетверенных слов;
  • упаковка со знаковым насыщением слов (приемник -> младшая половина приемника, источник -> старшая половина приемника, в случае наличия значащих разрядов в отбрасываемых частях происходит насыщение);
  • упаковка слов с беззнаковым насыщением, распаковка и объединение старших элементов источника и приемника через 1

Арифметические операции

  • поэлементное сложение (перенос игнорируется, побайтовое сложение)
  • сложение/вычитание с насыщением
  • беззнаковое сложение с насыщением
  • вычитание (заем игнорируется)
  • вычитание с насыщением
  • старшое/младшее умножение (сохраняет старшую или младшую части результата в приемник)
  • умножение и сложение (перемножает 4 слова, затем попарно складывает произведения двух старших и двух младших)

Команды сравнения:

  • проверка на равенство (Если пара равна - соответствующий элемент приёмника заполняется единицами, иначе - нулями)
  • проверка на больше (Если элемент приёмника больше, то заполняется единицами, иначе - нулями)

Логические операции:

  • логическое И
  • логическое ИЛИ
  • логическое НЕ-И (штрих шеффера)
  • XOR

Сдвиговые операции:

  • логический влево
  • логический вправо
  • арифметический вправо

Логический сдвиг

Сдвиг, при котором уходящий бит исчезает, не влияя на оставшиеся биты, а на месте появившегося бита записывается 0.

Арифметический сдвиг

При этом сдвиге слово рассматривается не просто как группа битов, а как целое число в дополнительном коде. При сдвиге влево ведет себя как логический сдвиг, а при сдвиге вправо уходящий бит исчезает, а на месте нового бита устанавливается бит, соответсвующий знаку числа.

Clone this wiki locally