
10. Расширение amd 3d
Процессоры AMD, начиная с AMD Кб 3D, поддерживают дополнительное расширение набора команд ММХ. В AMD 3D вводится новый тип данных – упакованные 32-битные вещественные числа, определяются новые команды (начинающиеся с PF) и несколько дополнительных команд для работы с обычными ММХ-типами данных:
PI2FD приемник,источник - преобразовывает упакованные 32-битные целые со знаком (двойные слова) в упакованные вещественные числа;
PF2ID приемник,источник - преобразовывает упакованные вещественные в упакованные целые числа со знаком (преобразование с насыщением);
PAVGUSB приемник,источник - вычисляет средние арифметические для упакованных 8-битных целых чисел без знака;
PMULHRW приемник,источник — перемножает упакованные 16-битные целые со знаком и сохраняет результаты как 16-битные целые в приемнике (при переполнениях выполняется насыщение);
PFACC приемник,источник - сумма вещественных чисел в приемнике помещается в младшую половину приемника, сумма вещественных чисел из источника помещается в старшую половину приемника;
PFADD приемник,источник - сложение упакованных вещественных чисел;
PFSUB приемник,источник - вычитание упакованных вещественных чисел;
PFSUBR приемник,источник - обратное вычитание (приемник из источника) упакованных вещественных чисел;
PFMUL приемник,источник - умножение упакованных вещественных чисел.
Набор команд для быстрого вычисления по итерационным формулам:
Быстрое деление:
Быстрое вычисление квадратного корня:
PFCMPEQ приемник, источник - проверка равенства для упакованных вещественных чисел (полностью аналогично PCMPEQW);
PFCMPGE приемник, источник - сравнение упакованных вещественных чисел: если число в приемнике больше или равно числу в источнике, все его биты устанавливаются в 1;
PFCMPGT приемник, источник - сравнение упакованных вещественных чисел: если число в приемнике больше числа в источнике, все его биты устанавливаются в 1;
PFMAX приемник, источник - сохраняет в приемнике максимальное из каждой пары сравниваемых вещественных чисел;
PFMIN приемник, источник - сохраняет в приемнике минимальное из каждой пары сравниваемых вещественных чисел;
FEMMS - более быстрая версия команды EMMS;
PREFETCH источник - заполняет строку кэша L1 из памяти по адресу, указанному источником;
PREFETCHW источник - заполняет строку кэша L1 из памяти по адресу, указанному источником, и помечает как модифицированную.
Практическая часть.
Пример. Найти сумму двух векторов состоящих из восьми однобайтовых элементов.
Результат работы программы:
Задания для самостоятельной работы
Ознакомьтесь с теоретическим материалом.
Разберите все примеры из практической части лабораторной работы, т.е. наберите и просмотрите их работу.
Выполните индивидуальные задания.
Индивидуальные варианты
№1. Составить программу, которая находит разность 2-х векторов (начальные значения вводим самостоятельно).