stringtranslate.com

3DСейчас!

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

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

История

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

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

Версии

3DСейчас!

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

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

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

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

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

Мало или совсем нет доказательств того, что вторая версия 3DNow! когда-либо официально получила собственное торговое название. Это привело к некоторой путанице в документации, которая ссылается на этот новый набор инструкций. Наиболее распространенными терминами являются Extended 3DNow! , Enhanced 3DNow! и 3DNow!+ . Фразу "Enhanced 3DNow!" можно найти в нескольких местах на веб-сайте AMD, но использование заглавных букв в слове "Enhanced" кажется либо чисто грамматическим, либо используется для акцента на процессорах, которые могут иметь или не иметь эти расширения (наиболее заметный из которых ссылается на страницу с результатами тестов для K6-III-P, которая не имеет этих расширений). [4] [5]

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

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

Инструкции DSP расширения 3DNow! следующие:

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

3DNow! Профессионал

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

3DNow! и Geode GX/LX

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

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

Преимущества и недостатки

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

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

Поскольку регистры MMX/3DNow! являются общими для стандартного x87 FPU, инструкции 3DNow! и инструкции x87 не могут выполняться одновременно. Однако, поскольку они являются псевдонимами для x87 FPU, состояния регистров 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!

Ссылки

  1. ^ "Эффективное использование 3DNow в Linux". Linux Journal. 1 декабря 1999 г. Архивировано из оригинала 2011-06-07 . Получено 2010-10-03 .
  2. ^ "Инструкции 3DNow устарели | AMD Developer Central". Blogs.amd.com. 2010-08-18. Архивировано из оригинала 2010-10-24 . Получено 2010-10-03 .
  3. ^ "IntelE38xx - MinnowBoard Wiki". Архивировано из оригинала 11 февраля 2017 г. Получено 13 февраля 2017 г.
  4. ^ ab "AMD Extensions to the 3DNow and MMX Instruction Sets Manual" (PDF) . Advanced Micro Devices, Inc. Март 2000 г. Архивировано (PDF) из оригинала 2008-05-17 . Получено 2008-06-07 .
  5. ^ "Mobile AMD-K6-III-P Processor-Based Notebook: Ziff-Davis CPUmark 99". Архивировано из оригинала 2008-07-24 . Получено 2008-06-07 . Неправильное название на странице: Mobile AMD-K6-III+ и Mobile AMD-K6-2+ Processors with Enchanced [ sic ] 3DNow! Technology
  6. ^ "AMD Athlon Processor Product Brief". Advanced Micro Devices, Inc. Архивировано из оригинала 2008-02-25 . Получено 2008-06-08 .
  7. ^ "ISSE". AviSynth . Архивировано из оригинала 2017-07-02 . Получено 2017-07-19 .
  8. ^ "Объяснение новой профессиональной технологии 3DNow!". Advanced Micro Devices, Inc. Архивировано из оригинала 2009-01-21 . Получено 2008-06-08 .
  9. ^ "Архитектурные особенности AMD Athlon XP". Advanced Micro Devices, Inc. Архивировано из оригинала 2008-02-25 . Получено 2008-06-08 .
  10. ^ Ларри Льюис (9 июля 2003 г.). «3DNow+ против SSE на Athlon XP». Группа новостей : comp.sys.ibm.pc.hardware.chips. Usenet:  [email protected]. Архивировано из оригинала 2012-10-03 . Получено 4 января 2023 г. – через Google Groups.

Дальнейшее чтение

Внешние ссылки