3DСейчас!
![]() | |
Дизайнерская фирма | Передовые микроустройства |
---|---|
Представлено | 1998 |
Тип | архитектура набора команд |
3DСейчас! — устаревшее расширение x86, набора инструкций разработанное Advanced Micro Devices (AMD). Он добавляет инструкции «одна инструкция для нескольких данных » (SIMD) к базовому набору команд x86, что позволяет выполнять векторную обработку с плавающей запятой векторных операций с использованием векторных регистров . Это улучшение повышает производительность многих приложений с интенсивным использованием графики. Первый микропроцессор, реализующий 3DNow! был AMD K6-2 , представленный в 1998 году. В соответствующих приложениях это усовершенствование повышало скорость примерно в 2–4 раза. [1]
Однако набор инструкций так и не приобрел особой популярности, и в августе 2010 года AMD объявила о поддержке 3DNow! будет исключено из будущих процессоров AMD, за исключением двух инструкций, PREFETCH
и PREFETCHW
. [2] Эти две инструкции также доступны в процессорах Intel Bay-Trail. [3]
История
[ редактировать ]3DСейчас! была разработана в то время, когда 3D-графика стала основной в компьютерных мультимедиа и играх. Отображение 3D-графики в реальном времени во многом зависело от блока вычислений с плавающей запятой (FPU) центрального процессора для выполнения вычислений с плавающей запятой - задачи, в которой процессор AMD K6 легко превзошел своего конкурента, Intel Pentium II.
В качестве расширения набора инструкций MMX , 3DNow! Набор инструкций дополнил регистры MMX SIMD для поддержки общих арифметических операций (сложение/вычитание/умножение) над данными одинарной точности (32-бит) с плавающей запятой. Программное обеспечение, написанное для использования AMD 3DNow! вместо более медленного FPU x87 может выполняться до четырех раз быстрее, в зависимости от набора инструкций.
Версии
[ редактировать ]3DСейчас!
[ редактировать ]Первая реализация 3DNow! Технология содержит 21 новую инструкцию, поддерживающую операции SIMD с плавающей запятой. 3DNow! формат данных упакован, одинарной точности , с плавающей запятой. 3DNow! Набор команд также включает в себя операции для целочисленных операций SIMD, предварительную выборку данных и более быстрое переключение с MMX на числа с плавающей запятой. Позже Intel добавит в Pentium III аналогичные (но несовместимые) инструкции , известные как SSE (Streaming SIMD Extensions).
3DСейчас! инструкции с плавающей запятой следующие:
PI2FD
– Преобразование упакованного 32-битного целого числа в число с плавающей запятой.PF2ID
– Преобразование упакованных чисел с плавающей запятой в 32-битные целые числа.PFCMPGE
– Упакованное сравнение с плавающей запятой, больше или равноPFCMPGT
– Упакованное сравнение с плавающей запятой, большеPFCMPEQ
– Упакованное сравнение с плавающей запятой, равноеPFACC
– Упакованное накопление с плавающей запятойPFADD
– Упакованное сложение с плавающей запятойPFSUB
– Упакованное вычитание с плавающей запятойPFSUBR
– Обратное вычитание упакованных чисел с плавающей запятойPFMIN
– Упакованный минимум с плавающей запятойPFMAX
– Упакованный максимум с плавающей запятойPFMUL
– Упакованное умножение с плавающей запятойPFRCP
– Упакованная обратная аппроксимация с плавающей запятойPFRSQRT
– Аппроксимация обратного квадратного корня упакованных чисел с плавающей запятойPFRCPIT1
– Упакованное обратное число с плавающей запятой, первый шаг итерацииPFRSQIT1
– Упакованный обратный квадратный корень с плавающей запятой, первый шаг итерацииPFRCPIT2
– Упакованный обратный квадратный корень с плавающей запятой, второй шаг итерации
3DСейчас! Целочисленные инструкции следующие:
PAVGUSB
– Усреднение упакованных 8-битных беззнаковых целых чиселPMULHRW
– Упакованное 16-битное целое число с округлением
3DСейчас! Инструкции по повышению производительности следующие:
FEMMS
– Более быстрый вход/выход из состояния MMX или состояния с плавающей запятой.PREFETCH/PREFETCHW
– Предварительная выборка как минимум 32-байтовой строки в кэш данных L1 (это единственная неустаревшая инструкция)
3DСейчас! расширения
[ редактировать ]Существует мало или вообще нет доказательств того, что вторая версия 3DNow! когда-либо официально получало собственное торговое название. Это привело к некоторой путанице в документации, относящейся к этому новому набору инструкций. Наиболее распространенными терминами являются Extended 3DNow! , Улучшенное 3DNow! и 3DNow!+ . Фраза «Улучшенное 3DNow!» можно найти в нескольких местах на веб-сайте AMD, но слово «Enhanced» пишется с заглавной буквы, по-видимому, либо чисто грамматически, либо используется для выделения процессоров, которые могут иметь или не иметь эти расширения (самое заметное из которых ссылается на страницу тестов для К6-III-П, не имеющий этих расширений). [4] [5]
Это расширение для 3DNow! первого поколения Набор команд был представлен в процессорах Athlon . В Athlon добавлено пять новых 3DNow! инструкции и 19 новых инструкций MMX. Позже K6-2+ и K6-III+ (оба ориентированы на рынок мобильной связи) включали пять новых 3DNow! инструкции, исключая 19 новых инструкций MMX. Новый 3DNow! были добавлены инструкции по усилению DSP . Новые инструкции MMX были добавлены для ускорения потокового мультимедиа .
19 новых инструкций MMX являются подмножеством набора инструкций Intel SSE. В технических руководствах AMD эти инструкции отделены от инструкций 3DNow! расширения. [4] Однако в литературе по продуктам AMD для клиентов это разделение менее четкое, поскольку преимущества всех 24 новых инструкций приписываются улучшенному 3DNow! технология. [6] Это побудило программистов придумать собственное название для 19 новых инструкций MMX. Наиболее распространенным является Integer SSE ( ISSE ). [7] SSEMMX и MMX2 также можно найти в документации по видеофильтрам из общедоступного сектора. ISSE также может относиться к Internet SSE, раннему названию SSE.
3DСейчас! Инструкции расширения DSP следующие:
PF2IW
– Преобразование упакованных чисел с плавающей запятой в целочисленные слова с расширением знака.PI2FW
– Преобразование упакованного целочисленного слова в число с плавающей запятой.PFNACC
– Упакованное отрицательное накопление с плавающей запятойPFPNACC
– Упакованное смешанное положительное и отрицательное накопление с плавающей запятойPSWAPD
– Упакованное двойное слово замены
Инструкции расширения MMX (Integer SSE) следующие:
MASKMOVQ
– Потоковое (обход кеша) сохранение с использованием байтовой маскиMOVNTQ
– Потоковое хранилище (обход кеша)PAVGB
– Упакованное среднее беззнакового байтаPAVGW
– Упакованное среднее значение беззнакового словаPMAXSW
– Упаковано максимальное знаковое словоPMAXUB
– Упакованный максимальный беззнаковый байтPMINSW
– Упаковано минимальное знаковое словоPMINUB
– Упакованный минимальный беззнаковый байтPMULHUW
– Упакованное слово умножения старшего беззнакаPSADBW
– Упакованная сумма абсолютных разностей байтовPSHUFW
– Упакованное слово в случайном порядкеPEXTRW
– Извлечь слово в целочисленный регистрPINSRW
– Вставить слово из целочисленного регистраPMOVMSKB
– Переместить байтовую маску в целочисленный регистрPREFETCHNTA
– Предварительная выборка с использованием ссылки NTAPREFETCHT0
– Предварительная выборка с использованием ссылки T0PREFETCHT1
– Предварительная выборка с использованием ссылки T1PREFETCHT2
– Предварительная выборка с использованием ссылки T2SFENCE
— Магазинный забор
3DСейчас! Профессиональный
[ редактировать ]3DСейчас! Professional — это торговая марка, используемая для обозначения процессоров, сочетающих в себе 3DNow! Технология с полным набором инструкций SSE (например, SSE, SSE2 или SSE3). [8] Athlon XP был первым процессором с поддержкой 3DNow! Профессиональная торговая марка и был первым продуктом в семействе Athlon, поддерживающим полный набор инструкций SSE (всего: 21 исходная инструкция 3DNow!; пять инструкций расширения 3DNow! DSP; 19 инструкций расширения MMX; и 52 дополнительные инструкции SSE для полная совместимость с SSE). [9]
3DСейчас! и Geode GX/LX
[ редактировать ]В Geode GX и Geode LX добавлены два новых 3DNow! инструкции, которого нет во всех других процессорах.
3DСейчас! «Профессиональные» инструкции, уникальные для Geode GX/LX, следующие:
PFRSQRTV
– Аппроксимация обратного квадратного корня для пары 32-битных чисел с плавающей запятой.PFRCPV
– Обратная аппроксимация для пары 32-битных чисел с плавающей запятой.
Преимущества и недостатки
[ редактировать ]Одно из преимуществ 3DNow! заключается в том, что можно складывать или умножать два числа, хранящиеся в одном регистре . В SSE каждое число можно комбинировать только с числом в той же позиции в другом регистре. Эта возможность, известная в терминологии Intel как горизонтальная , стала основным дополнением к набору инструкций SSE3 .
Недостаток 3DNow! это 3DNow! инструкции и инструкции MMX используют один и тот же файл регистров, тогда как SSE добавляет 8 новых независимых регистров ( XMM0
– XMM7
).
Потому что MMX/3DNow! Регистры используются стандартным FPU x87 , 3DNow! инструкции и инструкции x87 не могут выполняться одновременно. Однако, поскольку он связан с FPU x87, 3DNow! и состояния регистров MMX могут быть сохранены и восстановлены с помощью традиционного x87 F(N)SAVE
и F(N)RSTOR
инструкции. Такое расположение позволило операционным системам поддерживать 3DNow! без явных изменений, тогда как регистры SSE требовали явной поддержки операционной системы для правильного сохранения и восстановления новых регистров XMM (через добавленный FXSAVE
и FXRSTOR
инструкции.)
Инструкции FX* от SSE представляют собой функциональный расширенный набор старых инструкций сохранения и восстановления x87. Они могут сохранять не только состояния регистров SSE, но и состояния регистров x87 (следовательно, они также применимы для операций MMX и 3DNow!, если они поддерживаются).
Программисты-сборщики отметили, что на ядрах AMD Athlon XP и K8 (т. е. Athlon 64 ) можно комбинировать 3DNow! и инструкции SSE для уменьшения нагрузки на регистры , но на практике повысить производительность сложно из-за инструкций, выполняемых на общих функциональных блоках. [10]
Процессоры с поддержкой 3DNow!
[ редактировать ]- Все AMD процессоры после семейств архитектур K6-2 (на базе K6), Athlon, Athlon 64 и Phenom. Не поддерживается в процессорах с архитектурой Bulldozer, Bobcat и Zen и их производных.
- Последний процессор AMD APU, поддерживающий 3DNow! Это A8-3870K, основанный на архитектуре Llano . Это также единственный APU с 3DNow! инструкции, поскольку Bobcat и выше исключают его поддержку.
- National Semiconductor Geode , позже AMD Geode.
- Ядра VIA C3 (также известный как Cyrix III ) «Самуэль», «Самуэль 2», «Эзра» и «Эдем ESP».
- IDT WinChip 2
Ссылки
[ редактировать ]- ^ «Эффективное использование 3DNow в Linux» . Linux-журнал. 1 декабря 1999 г. Архивировано из оригинала 7 июня 2011 г. Проверено 3 октября 2010 г.
- ^ «Инструкции 3DNow устарели | AMD Developer Central» . Блоги.amd.com. 18 августа 2010 г. Архивировано из оригинала 24 октября 2010 г. Проверено 3 октября 2010 г.
- ^ «IntelE38xx — MinnowBoard Wiki» . Архивировано из оригинала 11 февраля 2017 года . Проверено 13 февраля 2017 г. .
- ^ Перейти обратно: а б «Расширения AMD к руководству по наборам инструкций 3DNow и MMX» (PDF) . Advanced Micro Devices, Inc. , март 2000 г. Архивировано (PDF) из оригинала 17 мая 2008 г. Проверено 7 июня 2008 г.
- ^ «Мобильный ноутбук на базе процессора AMD-K6-III-P: Ziff-Davis CPUmark 99» . Архивировано из оригинала 24 июля 2008 г. Проверено 7 июня 2008 г.
Неверное название на странице: Мобильные процессоры AMD-K6-III+ и Mobile AMD-K6-2+ с улучшенным [ sic ] 3DNow! Технология
- ^ «Краткое описание процессора AMD Athlon» . Advanced Micro Devices, Inc. Архивировано из оригинала 25 февраля 2008 г. Проверено 8 июня 2008 г.
- ^ «ИССЕ» . АвиСинт . Архивировано из оригинала 2 июля 2017 г. Проверено 19 июля 2017 г.
- ^ «Объяснение новой профессиональной технологии 3DNow!» . Advanced Micro Devices, Inc. Архивировано из оригинала 21 января 2009 г. Проверено 8 июня 2008 г.
- ^ «Особенности архитектуры AMD Athlon XP» . Advanced Micro Devices, Inc. Архивировано из оригинала 25 февраля 2008 г. Проверено 8 июня 2008 г.
- ^ Ларри Льюис (9 июля 2003 г.). «3DNow+ против SSE на Athlon XP» . Группа новостей : comp.sys.ibm.pc.hardware.chips . Usenet: [электронная почта защищена] . Архивировано из оригинала 3 октября 2012 г. Проверено 4 января 2023 г. - через группы Google.
Дальнейшее чтение
[ редактировать ]- Кейс, Брайан (1 июня 1998 г.). «3DNow повышает производительность 3D-технологий сторонних производителей». Отчет микропроцессора .
- Оберман, С.; Фавор, Г.; Вебер, Ф. (март 1999 г.). «Технология AMD 3DNow: архитектура и реализации» . IEEE микро .
Внешние ссылки
[ редактировать ]- 3DNow Technology Partners , заархивировано из оригинала (удалено с сайта AMD в начале 2001 г.)
- Руководство по портированию инструкций AMD 3DNow (PDF) , заархивировано из оригинала (удалено с веб-сайта AMD в 2014 г.)
- Руководство по технологии 3DNow
- Расширения AMD к руководству по наборам инструкций 3DNow и MMX
- Справочник процессоров AMD Geode LX