Инструкции 3dNow!
Инструкции технологии 3DNow! предназначены для ускорения обработки 3D в приложениях. Процессор может выполнять по две инструкции технологии 3DNow! за такт. Так как каждая инструкция технологии 3DNow! работает с упакованными данными (два 32-битных элемента 64-битных данных), то за такт вычисляются четыре операции с плавающей запятой. Все инструкции технологии 3DNow! работают с теми же регистрами, что и инструкции технологии MMX. Команды 3DNow! имеют следующий синтаксис:
instruction [dest, src]
Здесь instruction - имя команды, dest обозначает выходной операнд, src - входной операнд. Система команд технологии 3DNow! содержит 21 инструкцию (обозначения: mm - MMX-регистр; m8, m64 - память объема 8 и 64 бит соответственно).
PAVGUSB — вычисление среднего 8-битовых целых значений
PI2FD — перевод 32-битных целых в вещественные числа
PF2ID — перевод вещественных в 32-битные целые числа
PFCMPGE — сравнение вещественных чисел, больше или равно
PFCMPGT — сравнение вещественных чисел, больше
PFCMPEQ — сравнение вещественных чисел, равно
PFACC — накопление суммы вещественных чисел
PFADD — сложение вещественных чисел
PFSUB — вычитание вещественных чисел
PFSUBR — обратное вычитание вещественных чисел
PFMIN — нахождение минимума вещественных чисел
PFMAX — нахождение максимума вещественных чисел
PFMUL — умножение вещественных чисел
PFRCP — нахождение приближённого значения обратного (1/x) вещественных чисел
PFRSQRT — нахождение приближённого значения обратного от квадратного корня (1/sqrt(x)) вещественных чисел
PFRCPIT1 — первый шаг вычисления значения обратного (1/x) вещественных чисел
PFRSQIT1 — первый шаг вычисления значения обратного от квадратного корня (1/sqrt(x)) вещественных чисел
PFRCPIT2 — второй шаr вычисления значения обратного или обратного от квадратного корня вещественных чисел
PMULHRW — умножение 16-битных целых чисел с округлением
FEMMS — быстрое переключение состояния FPU/MMX
PREFETCH/PREFETCHW — предвыборка строки кэша процессора из памяти
Процессоры, поддерживающие 3dNow!
AMD K6-2 и выше
National Semiconductor Geode GX2, AMD Geode GX/LX/NX
VIA C3/CoreFusion/Eden
IDT WinChip 2
Технологии обработки данных 3DNow!, Enhanced 3DNow! и 3DNow! Professional хотя и подобны SSE, но несовместимы на уровне инструкций, поэтому производителям программного обеспечения необходимо отдельно реализовать их поддержку.
Технология 3Dnow!, как и SSE, поддерживает операции SIMD (SIMD (англ. single instruction, multiple data — одиночный поток команд, множественный поток данных) — принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных.) с плавающей запятой, а также позволяет выполнять до четырех операций с плавающей запятой за один цикл. Инструкции 3DNow! для операций с плавающей запятой могут использоваться вместе с командами MMX без заметного снижения быстродействия. Поддерживается и упреждающая выборка данных — механизм предварительного считывания данных из кэш-памяти.
