Расширение AMD 3D
Процессоры AMD, начиная с AMD К6 3D, поддерживают дополнительное расширение набора команд ММХ. В AMD 3D вводится новый тип данных — упакованные 32-битные вещественные числа, определяются новые команды (начинающиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:
PI2FD приемник, источник — преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;
PF2ID приемник, источник — преобразовывает упакованные вещественные в упакованные целые числа со знаком (преобразование с насыщением);
PAVGUSB приемник, источник — вычисляет средние арифметические для упакованных 8-битных целых чисел без знака;
PMULHRW приемник, источник — перемножает упакованные 16-битные целые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);
PFACC приемник, источник — сумма вещественных чисел в приемнике помещается в младшую половину приемника, сумма вещественных чисел из источника помещается в старшую половину приемника;
PFADD приемник, источник — сложение упакованных вещественных чисел;
PFSUB приемник, источник — вычитание упакованных вещественных чисел;
PFSUBR приемник, источник — обратное вычитание (приемник из источника) упакованных вещественных чисел;
PFMUL приемник,источник — умножение упакованных вещественных чисел.
Набор команд для быстрого вычисления по итерационным формулам:
Быстрое деление:
xi+1 = хi(2 - bхi)
х0 = PFRCP(b)
х1 = PFRCPIT1(b, x0)
х2 = PFRCPIT2(x1, x0)
х4 = PFMUL(b, x3)
Быстрое вычисление квадратного корня:
хi+1 = хi(3 - bxi2)/2
х0 = PFRSQRT(b)
х1 = PFMUL(x0, x0)
х2 = PFRSQIT(b, x1)
х3 = PFRCPIT2(x2, x0)
х4 = PFMUL(b, x3)
PFCMPEQ приемник, источник — проверка равенства для упакованных вещественных чисел (полностью аналогично PCMPEQW);
PFCMPGE приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше или равно числу в источнике, все его биты устанавливаются в 1;
PFCMPGT приемник, источник — сравнение упакованных вещественных чисел: если число в приемнике больше числа в источнике, все его биты устанавливаются в 1;
PFMAX приемник, источник — сохраняет в приемнике максимальное из каждой пары сравниваемых вещественных чисел;
PFMIN приемник, источник — сохраняет в приемнике минимальное из каждой пары сравниваемых вещественных чисел;
FEMMS — более быстрая версия команды EMMS;
PREFETCH источник — заполняет строку кэша L1 из памяти по адресу, указанному источником;
PREFETCHW источник — заполняет строку кэша L1 из памяти по адресу, указанному источником, и помечает как модифицированную.
Содержание раздела