2.5.10. Расширение AMD 3D

Процессоры AMD, начиная с AMD Кб 3D, поддерживают дополнительное рас­ширение набора команд ММХ. В AMD 3D вводится новый тип данных - упако­ванные 32-битные вещественные числа, определяются новые команды (начинаю­щиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:

□ PI2FD приемшк.источшк - преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;

- преобразовывает упакованные вещественные

в упакованные целые числа со знаком (преобразование с насыщением);

□ PAVGUSBnpueMHUK,ucmo4HUK - вычисляет средние арифметические для упа­кованных 8-битных целых чисел без знака;

□ PMULHRWnpueMHuK,ucmo4HUK — перемножает упакованные 16-битные це­лые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);

a PFACC приемникдсточник - сумма вещественных чисел в приемнике поме­щается в младшую половину приемника, сумма вещественных из ис­точника помещается в старшую половину приемника;

иРЕАВОприемник,источник - сложение упакованных вещественных чисел;

- вычитание упакованных вещественных чисел; ОРР5~иВВ.приемник,источник - обратное вычитание (приемник из источни­ка) упакованных вещественных чисел;

- умножение упакованных вещественных чисел.

Набор команд для быстрого вычисления по итерационным формулам:'

Быстрое деление:

^i+i -       - bx.)

х0 - PFRCP(b')

Xl = PFRCPITl(b,x0)

Расширение SSE |

х2 = PFRCPIT2(x,,x0) х.+1- PFMUL(b,x3)

Быстрое вычисление квадратного корня:

- -

= PFRSQRT(b) х, - PFMUL(x0,x0) х2 = PFRSQITCb.Xj) х3 = PFRCPIT2(x2,x0) х.+1 - PFMUL(b,x3)

- проверка равенства для упакованных веще­. ственных чисел (полностью аналогично PCMPEQW); Q PFCMPGE - сравнение упакованных вещественных чи-

сел: если число в приемнике больше или равно числу в источнике, все его биты устанавливаются в

PFCMPGT - сравнение упакованных вещественных чисел:

если число в приемнике больше числа в источнике, все его биты устанавли­ваются в І;

Q - сохраняет в приемнике максимальное из каж-

дой пары сравниваемых вещественных чисел;

PFMIN - сохраняет в приемнике минимальное из каж-

дой пары сравниваемых вещественных чисел;

□ FEMMS- более быстрая версия команды EMMS;

□ PREFETCH источник - заполняет строку кэша L! из памяти по адресу, ука­занному источником;

□ PREFETCHW источник - заполняет строку кэша L1 из памяти по адресу, ука­занному источником, и помечает как модифицированную.