Технология 3DNow! в AMD-K6-2

Технология 3DNow! в AMD-K6-2

Благодаря успехам в микро-электронике проявилась устойчивая тенденция по увеличению параллелизма в микропроцессорных устройствах. В настоящее время активно эксплуатируются две основные формы аппаратного параллелизма - векторный (MMX, 3DNow!, Katmai и т.д.) и мелкозернистый параллелизм (VelociTI VLIW, Intel EPIC). Данная статья посвящена расширению системы команд 3DNow!, реализованного корпорацией AMD в микропроцессоре AMD-K6-2.

Согласно исследованиям Jon Peddie Associates (JPA) в последние годы 3D графика является наиболее интенсивно развивающимся сегментом PC рынка. Домашние пользователи и работники небольших фирм активно используют игровой 3D софт, включающий передовые визуальные эффекты, а также презентационную графику, VRML, обработку фотоизображений, плавное проигрывание DVD, распознавание речи. Существующие 3D приложения требуют мощной аппаратной поддержки. Однако современные процессоры являются причиной возникновения узкого места в конвейере обработки графических данных. Процессор, который вязнет в начале графического конвейера, не может своевременно посылать данные на его последующие ступени, и по мере увеличения мощности графических 3D акселераторов узкое место вычислений CPU делается еще ощутимей. Например, чип Nvidia RIVA 128, по заявлению директора по техническому маркетингу (technical marketing director) фирмы Nvidia Дейва Рида (Dave Reed), может отображать 1.5 миллиона типичных многоугольников в секунду, в то время как процессор Pentium II 300 MHz может вычислить в секунду координаты не более миллиона многоугольников.

Где же в вычислениях возникает пробка? Можно выделить четыре ступени графического конвейера: физика, геометрия, установка сетки (setup), визуализация (rendering).

Физика - моделирование физических сред, процессов и объектов. Процессор на этой стадии выполняет значительный объем вычислений с плавающей запятой.

Геометрия - переход от математических моделей объектов к их координатному представлению в трехмерном пространстве. Здесь также велика доля вычислений с плавающей запятой, осуществляемых центральным процессором.

Установка сетки - процессор начинает построение перспективы трехмерной сцены с использованием сетки, например, треугольников, а графическая карта его заканчивает.

Визуализация - в конце концов, графический акселератор накладывает реалистичные текстуры на компьютерные объекты, осуществляет проецирование 3D сцены на экран монитора и растеризацию, используя попиксельный расчет цвета, тени и координат.

Следует отметить, что данная схема распределения графических вычислений между МП и 3D-акселератором не справедлива для готовящегося к выпуску чипсета Riva TnT от nVidia, который берет на себя всю обработку изменений сцены, освещения, генерацию треугольников и отображение точек. В данном случае, процессор должен лишь следить за логикой игры.

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

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

Использование 3DNow!

Ниже представлены примеры приложений, которым использование расширения системы команд 3DNow! может быть полезным:

- 3D игры

- системы разработки Web VRML сайтов

- пакеты CAD/CAE

- обработка 3D звука, Dolby AC-3

- программы распознавания речи

- "плавные" проигрыватели DVD

- драйверы для 3D-акселераторов

- проигрыватели видео MPEG2

Использование технологии 3DNow! (равно как и любое другое расширение набора команд, например, MMX) в системах разработки программных продуктов может быть осуществлено следующими способами:

- Непосредственное ассемблерное программирование с использованием 3DNow! команд и/или средств оптимизации (новые ассемблеры, компиляторы, C++ макросы и прочие утилиты; библиотеки функций). Именно этот подход используется, например, в системе программирования Code Warrior от Metrowerks Inc., которая поддерживает расширение команд 3DNow!.

- При помощи использования функций API (application programming interface), которые поддерживают технологию 3DNow!. Динамические библиотеки и драйверы устройств, входящие в API позволяют приложениям работать, например, с 3D графикой, не беспокоясь об особенностях конкретной аппаратуры. В настоящее время уже можно опробовать API DirectX 6.0 с мощными мультимедийными возможностями, включая Direct 3D, поддерживающий 3DNow! технологию. OpenGL - открытая мультиплатформенная API для 3D графики от Silicon Graphics, в которую включены практически все функции графического конвейера. Использование ее оптимизации под 3DNow! приводит к значительному росту скорости 3D-визуализации (Quake II - дополнительные 30 fps!). 3Dfx собирается включить оптимизацию под 3DNow! в свою родную API Glide, которая содержит небольшое количество геометрических функций и по оценкам AMD может привести к приросту производительности в районе лишь 15%.

- При помощи использования драйверов графических акселераторов, поддерживающих технологию 3DNow!.

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

Эффективность 3DNow!

Согласно результатам экспериментов Hardware Guide бенчмарк Winstone 98, который оценивает вычислительную мощность аппаратуры в контексте популярных Windows-приложений, для AMD-K6-2 на частоте 333MHz (3.5x95MHz) показал результат 24.7, в то время как для Pentium-II 400MHz - 25.0. При этом была отмечена необходимость установки высокой частоты системной шины, так как AMD-K6-2 на 357MHz при более низкой частоте шины (95Mhz О 75Mhz) показал результат хуже. Следовательно, максимум выжать из процессора удастся лишь на материнских платах с архитектурой Super 7, которая позволяет использовать 100 MHz шину.

Наиболее значительный эффект от использования технологии 3DNow! ощущается в игре Quake II, который выражается приблизительно в 30 дополнительных кадрах в секунду (fps) по сравнению с тем же процессором без использования новых команд 3DNow!. При этом AMD-K6-2 с 3Dnow! работает примерно на том же уровне производительности, что и Pentium-II той же частоты и даже выше. Hardware Guide рекомендует геймерам, играющим в новые игры со сложными геометрическими и/или физическими вычислениями, вместо Celeron, подумать об AMD-K6-2.

Использование нового расширения системы параллельных векторных команд 3DNow! позволяет при значительно более низкой стоимости аппаратуры на ряде приложений c 3D графикой получить производительность аналогичную микропроцессорам Pentium-II.

Материал основан на информации от корпорации Advanced Micro Devices (http://www.amd. com), исследованиях Hardware Guide (http://www.hardware. pairnet.com), The 3DNow! Now page (http://ren.tierranet.com/3dnow/), Hardware TechSupport (http://ixbt.stack.net).

Андрей Терешко
E-mail: atere@usa.net
- титульная страница


Компьютерная газета. Статья была опубликована в номере 30 за 1998 год в рубрике hard :: технологии

©1997-2024 Компьютерная газета