3DNow! - 3DNow!

редактировать

3DNow! является расширением x86 i Набор команд разработан Advanced Micro Devices (AMD). Он добавляет инструкции с одной командой и несколькими данными (SIMD) к базовому набору команд x86, позволяя выполнять векторную обработку, что улучшает производительность многих приложений с интенсивной графикой. Первым микропроцессором, реализовавшим 3DNow, был AMD K6-2, представленный в 1998 году. Когда приложение было подходящим, это увеличивало скорость примерно в 2–4 раза.

Однако, набор инструкций так и не получил особой популярности, и AMD объявила в августе 2010 года, что поддержка 3DNow будет прекращена в будущих процессорах AMD, за исключением двух инструкций (PREFETCHи PREFETCHW). Две инструкции также доступны в процессорах Intel Bay-Trail.

Содержание
  • 1 История
  • 2 Версии
    • 2.1 3DNow
    • 2.2 Расширения 3DNow
    • 2.3 3DNow Professional
    • 2.4 3DNow и Geode GX / LX
  • 3 Преимущества и недостатки
  • 4 Процессоры с поддержкой 3DNow
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки
История

3DNow был разработан в время, когда 3D-графика становилась основным направлением мультимедийных приложений и игр на ПК. Отображение трехмерной графики в реальном времени в значительной степени зависело от блока с плавающей запятой (FPU) центрального процессора для выполнения вычислений с плавающей запятой, задача, в которой процессор AMD K6 легко уступал своему конкуренту., процессор Intel Pentium II.

В качестве расширения набора инструкций MMX набор инструкций 3DNow расширил регистры MMX SIMD для поддержки общих арифметических операций (сложение / вычитание / умножение) с одинарной точностью (32- bit) данные с плавающей запятой. Программное обеспечение, написанное для использования AMDNow 3D вместо более медленного x87 FPU, могло работать до 4 раз быстрее, в зависимости от сочетания инструкций.

Версии

3DNow

Первая реализация технологии 3DNow содержит 21 новую инструкцию, поддерживающую операции SIMD с плавающей запятой. Формат данных 3DNow - упакованный, одинарной точности, с плавающей запятой. Набор команд 3DNow также включает операции для целочисленных операций SIMD, предварительную выборку данных и более быстрое переключение MMX с плавающей запятой. Позже Intel добавит аналогичные (но несовместимые) инструкции к Pentium III, известные как SSE (Streaming SIMD Extensions).

Инструкции 3DNow с плавающей запятой следующие:

  • PI2FD- преобразование упакованного 32-битного целого числа в число с плавающей запятой
  • PF2ID- упакованное число с плавающей запятой в 32-битное целое число преобразование
  • PFCMPGE- Сравнение упакованных чисел с плавающей запятой, больше или равно
  • PFCMPGT- Сравнение упакованных чисел с плавающей запятой, больше
  • PFCMPEQ- Сравнение упакованных чисел с плавающей запятой, равно
  • PFACC- Упакованное накопление с плавающей запятой
  • PFADD- Упакованное сложение с плавающей запятой
  • PFSUB- Упакованное вычитание с плавающей запятой
  • PFSUBR- Упакованное обратное выражение с плавающей запятой вычитание
  • PFMIN- Минимум упакованных чисел с плавающей запятой
  • PFMAX- Максимум упакованных чисел с плавающей запятой
  • PFMUL- Умножение упакованных чисел с плавающей запятой
  • PFRCP- Упакованные числа с плавающей запятой -точное обратное приближение
  • PFRSQRT- Упакованное обратное приближение квадратного корня с плавающей запятой
  • PFRCPIT1- Упакованное обратное значение с плавающей запятой, первый шаг итерации
  • PFRSQIT1- Упакованное обратное значение с плавающей запятой квадратный корень, ель t шаг итерации
  • PFRCPIT2- Упакованный обратный / обратный квадратный корень с плавающей запятой, второй шаг итерации

Целочисленные инструкции 3DNow следующие:

  • PAVGUSB- Упакованное 8-битное целое число без знака, усредняющее
  • PMULHRW- Упакованное 16-битное целочисленное умножение с округлением

Инструкции по повышению производительности 3DNow следующие:

  • FEMMS- Более быстрый вход / выход из состояния MMX или с плавающей запятой
  • PREFETCH / PREFETCHW- Предварительная выборка по крайней мере 32-байтовой строки в кэш данных L1 (это нерекомендуемая инструкция)

Расширения 3DNow

Есть мало или совсем нет свидетельств того, что вторая версия 3DNow официально получила собственное торговое название. Это привело к некоторой путанице в документации, относящейся к этому новому набору команд. Наиболее распространенные термины - Extended 3DNow, Enhanced 3DNow и 3DNow +. Фразу «Enhanced 3DNow» можно найти в нескольких местах на веб-сайте AMD, но использование заглавных букв «Enhanced» является либо чисто грамматическим, либо используется для выделения процессоров, которые могут иметь или не иметь эти расширения (наиболее заметные из которых ссылается на страницу тестов для K6-III-P, у которой нет этих расширений).

Это расширение набора команд 3DNow было введено с процессорами Athlon первого поколения. Athlon добавил 5 новых инструкций 3DNow и 19 новых инструкций MMX. Позже K6-2 + и K6-III + (оба нацелены на рынок мобильной связи) включали 5 новых инструкций 3DNow, исключая 19 новых инструкций MMX. Новые инструкции 3DNow были добавлены для усиления DSP. Новые инструкции MMX были добавлены для ускорения потокового мультимедиа.

. 19 новых инструкций MMX являются подмножеством набора инструкций Intel SSE1. В технических руководствах AMD эти инструкции отделяются от расширений 3DNow. Однако в документации по продуктам AMD для заказчиков это разделение менее очевидно, поскольку преимущества всех 24 новых инструкций приписываются усовершенствованной технологии 3DNow. Это привело к тому, что программисты придумали собственное название для 19 новых инструкций MMX. Наиболее распространенным является Integer SSE (ISSE). SSEMMX и MMX2 также можно найти в документации по видеофильтрам из сектора общественного достояния. ISSE может также относиться к Internet SSE, раннему названию SSE.

DSP расширения 3DNow:

  • PF2IW- преобразование упакованного слова с плавающей запятой в целое число с расширением знака
  • PI2FW- преобразование упакованного слова целого числа в число с плавающей запятой
  • PFNACC- Упакованное отрицательное накопление с плавающей запятой
  • PFPNACC- Упакованное смешанное положительно-отрицательное накопление с плавающей запятой
  • PSWAPD- Упакованное двойное слово подкачки

Инструкции расширения MMX (Integer SSE) следующие:

  • MASKMOVQ- Хранение потокового (обхода кеша) с использованием байтовой маски
  • MOVNTQ- Хранение потокового (обхода кеша)
  • PAVGB- Упакованное среднее значение байта без знака
  • PAVGW- упакованное среднее значение беззнакового слова
  • PMAXSW- упакованное максимальное слово со знаком
  • PMAXUB- упакованное максимальное значение беззнакового слова
  • PMINSW- упакованное минимальное слово со знаком
  • PMINUB- Минимальный упакованный байт без знака
  • PMULHUW- Упакованное умножение старшего слова без знака
  • PSADBW- Упакованная сумма абсолютных разностей байтов
  • PSHUFW- Упакованное слово в случайном порядке
  • PEXTRW- Извлечь слово int o целочисленный регистр
  • PINSRW- вставить слово из целочисленного регистра
  • PMOVMSKB- переместить байтовую маску в целочисленный регистр
  • PREFETCHNTA- выполнить предварительную выборку с использованием ссылки NTA
  • PREFETCHT0- Предварительная выборка с использованием ссылки T0
  • PREFETCHT1- Предварительная выборка с использованием ссылки T1
  • PREFETCHT2- Предварительная выборка с использованием ссылки T2
  • SFENCE- Сохранение ограждения

3DNow Professional

3DNow Professional - это торговое название, используемое для обозначения процессоров, которые сочетают технологию 3DNow с полным набором инструкций SSE (например, SSE1, SSE2 или SSE3). Athlon XP был первым процессором с торговой маркой 3DNow Professional и первым продуктом в семействе Athlon, поддерживающим полный набор инструкций SSE1 (всего: 21 оригинальная инструкция 3DNow; пять 3DNow дополнительных инструкций DSP; 19 инструкций расширения MMX; и 52 дополнительных инструкции SSE для полной совместимости с SSE1).

3DNow и Geode GX / LX

Geode GX и Geode LX добавлены две новые инструкции 3DNow, которых пока нет во всех остальных процессорах.

«Профессиональные» инструкции 3DNow, уникальные для Geode GX / LX, следующие:

  • PFRSQRTV- Аппроксимация обратного квадратного корня для пары 32-битных чисел с плавающей запятой
  • PFRCPV- Взаимное приближение для пары 32-битных чисел с плавающей запятой
Преимущества и недостатки

Одно из преимуществ 3DNow состоит в том, что можно складывать или умножать два числа, которые хранятся в одном и том же регистре. При использовании SSE каждое число можно комбинировать только с числом в той же позиции в другом регистре. Эта возможность, известная в терминологии Intel как горизонтальная, была основным дополнением к набору инструкций SSE3.

Недостатком 3DNow является то, что инструкции 3DNow и MMX используют один и тот же регистровый файл, тогда как SSE добавляет 8 новых независимых регистров (XMM0- XMM7).

Поскольку регистры MMX / 3DNow совместно используются стандартным x87 FPU, инструкции 3DNow и x87 не могут выполняться одновременно. Однако, поскольку он связан с x87 FPU, состояния регистров 3DNow и MMX могут быть сохранены и восстановлены с помощью традиционных инструкций x87 F (N) SAVEи F (N) RSTOR.. Такое расположение позволило операционным системам поддерживать 3DNow без явных изменений, тогда как регистры SSE требовали явной поддержки операционной системы для правильного сохранения и восстановления новых регистров XMM (с помощью добавленных FXSAVEи Инструкции FXRSTOR.)

Инструкции FX * являются обновлением более старых инструкций сохранения и восстановления x87, поскольку они могут сохранять не только состояния регистров SSE, но также и состояния регистров x87 (следовательно, это означает, что также может сохранять регистры MMX и 3DNow).

На ядрах AMD Athlon XP и K8 (например, Athlon 64 ) программисты сборки отметили, что можно комбинировать инструкции 3DNow и SSE, чтобы уменьшить регистрируют давление, но на практике сложно улучшить производительность из-за выполнения инструкций на общих функциональных блоках.

Процессоры, поддерживающие 3DNow
Оптимизировано для 3DNow
  • Все процессоры AMD после K6-2 на базе архитектур семейств K6, Athlon, Athlon 64 и Phenom. Не поддерживается процессорами архитектуры Bulldozer, Bobcat и Zen и их производными.
  • Последним процессором AMD APU, поддерживающим 3DNow, является A8-3870K
  • National Semiconductor Geode, позднее AMD Geode.
  • VIA C3 (также известный как Cyrix III) "Samuel", "Samuel 2", "Ezra" и "Eden ESP".
  • IDT Winchip 2
Ссылки
Дополнительная литература
Внешние ссылки
Последняя правка сделана 2021-07-19 01:03:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте