Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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

В качестве усовершенствования набора команд MMX набор команд 3DNow расширил регистры SIMD MMX для поддержки общих арифметических операций (сложение / вычитание / умножение) над данными с плавающей запятой одинарной точности (32-битные). Программное обеспечение, написанное для использования AMDNow 3D вместо более медленного FPU x87, могло работать до 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 - Упакованный обратный квадратный корень с плавающей запятой, первый шаг итерации
  • 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, у которой нет этих расширений). [4] [5]

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

19 новых инструкций MMX являются подмножеством набора инструкций Intel SSE1. В технических руководствах AMD эти инструкции отделяются от расширений 3DNow. [4] В литературе по продуктам AMD, однако, это разделение менее очевидно, когда преимущества всех 24 новых инструкций приписываются усовершенствованной технологии 3DNow. [6] Это привело к тому, что программисты придумали собственное название для 19 новых инструкций MMX. Наиболее распространенным является Integer SSE ( ISSE ). [7] 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 - Извлечь слово в целочисленный регистр
  • PINSRW - Вставить слово из целочисленного регистра
  • PMOVMSKB - Переместить байтовую маску в целочисленный регистр
  • PREFETCHNTA - Предварительная выборка с использованием ссылки NTA
  • PREFETCHT0 - Предварительная выборка с использованием ссылки T0
  • PREFETCHT1 - Предварительная выборка с использованием ссылки T1
  • PREFETCHT2 - Предварительная выборка с использованием ссылки T2
  • SFENCE - Забор магазина

3DNow Professional [ править ]

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

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 совместно используются стандартным FPU x87 , инструкции 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 для уменьшения давления регистров , но на практике сложно повысить производительность из-за того, что инструкции выполняются на общих функциональные блоки. [10]

Процессоры, поддерживающие 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

Ссылки [ править ]

  1. ^ «Эффективное использование 3DNow в Linux» . Linux Journal. 1 декабря 1999 . Проверено 3 октября 2010 .
  2. ^ «Инструкции 3DNow устарели | AMD Developer Central» . Blogs.amd.com. 2010-08-18. Архивировано из оригинала на 2010-10-24 . Проверено 3 октября 2010 .
  3. ^ "IntelE38xx - MinnowBoard Wiki" . Архивировано из оригинального 11 февраля 2017 года . Проверено 13 февраля 2017 года .
  4. ^ a b «Расширения AMD для руководства по набору инструкций 3DNow и MMX» (PDF) . Advanced Micro Devices, Inc. марта 2000 . Проверено 7 июня 2008 .
  5. ^ "Мобильный ноутбук на базе процессора AMD-K6-III-P: Ziff-Davis CPUmark 99" . Проверено 7 июня 2008 . Неправильное название на странице: Мобильные процессоры AMD-K6-III + и AMD-K6-2 + с Enchanced [ sic ] 3DNow! Технологии
  6. ^ «Краткое описание процессора AMD Athlon» . Advanced Micro Devices, Inc. Retrieved 2008-06-08 .
  7. ^ "ISSE" . AviSynth . Проверено 19 июля 2017 .
  8. ^ «Объясняя новую профессиональную технологию 3DNow» . Advanced Micro Devices, Inc. архивации с оригинала на 2009-01-21 . Проверено 8 июня 2008 .
  9. ^ «Архитектурные особенности AMD Athlon XP» . Advanced Micro Devices, Inc. Retrieved 2008-06-08 .
  10. ^ "3DNow + против SSE на Athlon XP - comp.sys.ibm.pc.hardware.chips | Группы Google" . Проверено 3 октября 2010 .

Дальнейшее чтение [ править ]

  • Кейс, Брайан (1 июня 1998 г.). «3DNow повышает производительность 3D-графики других производителей». Отчет микропроцессора .
  • Оберман, С .; Favor, G .; Вебер, Ф. (март 1999 г.). «Технология AMD 3DNow: архитектура и реализации» . IEEE Micro .

Внешние ссылки [ править ]

  • 3DNow Technology Partners , заархивировано из оригинала (удалено с веб-сайта AMD в начале 2001 г.)
  • Руководство по переносу инструкции AMD 3DNow (PDF) , заархивировано из оригинала (удалено с веб-сайта AMD в 2014 г.)
  • Руководство по технологии 3DNow
  • Расширения AMD для руководства по набору инструкций 3DNow и MMX
  • Справочник процессоров AMD Geode LX
  • Объяснение новой технологии 3DNow Professional (в архиве)