Технологии

Что представляет собой технология 3DNow!

Технология 3DNow!TM представляет собой первое усовершенствование архитектуры микропроцессоров семейства х86, значительно повышающее производительность операций по обработке трехмерной графики и звука для подавляющего большинства персональных компьютеров, совместимых с платформой Microsoft Windows.

Графический конвейер начинается с трехмерного моделирования и геометрии (распределение освещения, преобразование и клиппинг), где используется много операций с плавающей точкой, и заканчивается на визуализации и растеризации, где работа идет с целыми числами, которые обрабатываются преимущественно трехмерными графическими ускорителями. Современные карты высокопроизводительных графических ускорителей настолько быстро обрабатывают операции визуализации (рендеринга), что часто CPU не в состоянии обеспечивать передачу данных по конвейеру. Таким образом, в начале графического конвейера создается узкое место, которое снижает скорость обработки трехмерной графики.

Первой промышленной реализацией этой технологии стал процессор АМD-К6-2, который вышел во втором квартале 1998 года.

Набор инструкций 3DNow! содержит 21 команду, которые поддерживают SIMD-операции (Slngle Instruction Multiple Data) с плавающей точкой. Он поддерживает целочисленные SIMD-операции, инструкции упреждающей выборки и более быстрое переключение с операций ММХ на операции с плавающей точкой. Для ускорения MPEG-декодирования набор инструкций 3DNow! содержит специальные инструкции целочисленных SIMD-операций, облегчающие вывод на экран движущихся объектов. Дополнительного расхода времени при получении этих данных удается избежать благодаря новой инструкции PREFETCH (упреждающая выборка). Она позволяет контролировать, все ли необходимые данные помещены в кэш-память первого уровня. Инструкция FEMMS (Fast Entry/Exit Multimedia State) предназначена для ускорения переключения между инструкциями ММХ и традиционным кодом х86. Она позволяет избежать задержек при переключении между этими двумя функциональными модулями. 3DNow! является открытым стандартом и поддерживает тип данных одинарной точности IEEE 754.

Рост производительности при использовании технологии 3DNow! в значительной степени происходит за счет использования SIMD. Эта техника также используется в технологии ММХ. Каждая инструкция может работать с двумя операндами с плавающей точкой одинарной точности.
3DNow! использует те же регистры, что и ММХ, имеет сходное кодирование и может исполняться параллельно инструкциям ММХ.
Поскольку инструкции 3DNow! используют единый с инструкциями ММХ стек, удалось исключить переключение с одной задачи на другую.
Такое объединение позволяет обрабатывать в программах графические инструкции ММХ (целочисленные) и 3DNow! (операнды с плавающей точкой), не расходуя времени на переключение между блоками ММХ и 3DNow!.

Тем не менее это другая технология.
Технология ММХ была разработана для ускорения целочисленных вычислений при растеризации. В момент своего появления на рынке технология, используемая в графических ускорителях, опережала все остальные. В то время как технология ММХ позволяла усовершенствовать обработку целочисленных операций в таких приложениях, как редактирование и демонстрация видео, считалось, что современные трехмерные графические акселераторы обеспечивают оптимальный рост производительности для трехмерных приложений. Технология 3DNow! дополняет и повышает возможности графических акселераторов, ускоряя вычисления с плавающей точкой на ранних стадиях графического конвейера.

Подробнее почитать о технологии 3DNow!™ можно на сайте AMD