Форматы данных: Форматы данных MMX и 3DNow!

Печать
Программирование - Архитектура и система команд микропроцессоров x86

 

Технология MMX оперирует данными в 64-битных MMX-регистрах. Для представления этих данных вводится четыре новых формата (рис. 4.2.). Это форматы представления целочисленных значений в упакованном виде. Сами целочисленные значения (байтовые, слова, двойные и учетверенные слова) могут быть со знаком и без знака.

 

Форматы представления целочисленных упакованных данных, используемые технологией MMX

Рис. 4.2. Форматы представления целочисленных упакованных данных, используемые технологией MMX

 

Технология 3DNow! дополняет набор форматов MMX форматом упакованных вещественных чисел. Этот формат использует два коротких вещественных числа, расположенных последовательно (рис. 4.3.). В отличие от аналогичных коротких вещественных, используемых в командах FPU, применяемые в технологии 3DNow! форматы не предусматривают кодирования очень малых денормализованных значений и некоторых специальных величин (NaN, бесконечности и неопределенность). В технологии 3DNow! нет возможности управления режимами округления. Во всех случаях округление производится к ближайшему (четному), кроме команд PF2ID и PI2FD, где используется округление к нулю.

 

Формат представления упакованных вещественных, используемый технологией 3DNow!

Рис. 4.3. Формат представления упакованных вещественных, используемый технологией 3DNow!

 

Технологии MMX и 3DNow! используют новую арифметику, называемую арифметикой с насыщением (Saturation arithmetic). В оличие от традиционной арифметики с циклическим переносом (Wraparound arithmetic), в режиме насыщения, когда в результате операции возникает переполнение, не происходит обрезания истинного результата с возвратом только его младших битов — возвращается предельно возможное значение (насыщенный до предела результат) для используемого типа данных. Например, если результат превышает 7Fh для операций над байтами со знаком или FFh для операций над байтами без знака, то результатом такой операции будет соответственно 7Fh и FFh. Аналогично для малых результатов: если истинный результат меньше 80h для знаковых байтов или 00h для беззнаковых байтов, то будут возвращены соответственно 80h или 00h. MMX и 3DNow! команды не сообщают о переполнении установкой каких-либо флагов.