- 3DNow!
-
3DNow! — дополнительное расширение MMX для процессоров AMD, начиная с AMD K6 3D. Причиной создания 3DNow! послужило стремление завоевать превосходство над процессорами производства компании Intel в области обработки мультимедийных данных.
Технология 3DNow! ввела 21 новую команду процессора и возможность оперировать 32-битными вещественными типами в стандартных MMX-регистрах. Также были добавлены специальные инструкции, оптимизирующие переключение в режим MMX/3DNow! (femms, которая заменяла стандартную инструкцию emms) и работу с кэшем процессора. Таким образом технология 3DNow! расширяла возможности технологии MMX, не требуя введения новых режимов работы процессора и новых регистров. В процессорах AMD выпущенных после августа 2010 года поддержка технологии сведётся к двум инструкциям.
Содержание
Проверка поддержки 3DNow! процессором
Перед началом работы с расширением 3DNow! следует убедиться, что ЦП их поддерживает. Для этого используется инструкция CPUID. Общий порядок действий при проверке выглядит следующим образом:
- Убедиться, что процессор поддерживает инструкцию CPUID. Если нет, то ЦП не поддерживает и 3DNow!.
- Выполнить инструкцию cpuid со значением EAX = 0 — это необходимо для следующего шага.
- Выполнить CPUID со значением EAX = 80000000h. Если после выполнения инструкции в EAX будет значение меньше 1, то 3DNow! не поддерживается.
- Выполнить CPUID с EAX = 80000001h. Если после выполнения бит 31 регистра EDX будет установлен в 1, то 3DNow! поддерживается. Иначе — нет.
Инструкции 3DNow!
- 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 и до Phenom X6 включительно; из современных процессоров AMD инструкции 3DNow! не поддерживают процессоры с архитектурой Bulldozer и Fusion.
- National Semiconductor Geode GX2, AMD Geode GX/LX/NX
- VIA C3/CoreFusion/Eden
- IDT WinChip 2
См. также
- Инструкция CPUID.
- Будущие процессоры AMD лишатся поддержки инструкций 3DNow
- 3DNow! Instructions are Being Deprecated | AMD Developer
Наборы расширения базовых инструкций процессоров семейства x86 MMX | MMXEXT | SSE | SSE2 | SSE3 | SSSE3 | SSE4 | ATA | 3DNow! | 3DNowExt | SSE5 | AVX | AES Категории:- Инструкции x86
- Расширения архитектуры x86
Wikimedia Foundation. 2010.