Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik_do_lab_robit_ZMM_2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3 Mб
Скачать

Графический процессор

Архитектура современных графических процессоров опирается на три фундаментальных свойства программ создания полигональной трехмер­ной графики:

  • высокая «арифметичность» графических алгоритмов с минималь­ной долей логических операций;

  • возможность эффективного распараллеливания графических ал­горитмов;

  • потоковый характер операций графического конвейера.

Первичные данные, с которыми оперирует современная компьютерная графика (вершины, матрицы преобразования, значения цвета) относятся к векторному типу. Большинство операций, выполняемых графическим процессором, являются векторными. Графические вектора, как правило, четырехмерные: трицветные компоненты (R, G, В) и степень прозрачности (альфа-канал). Поэтому графические процессоры содержат четырех­мерные векторные АЛУ (арифметико-логические устройства), исполня­ющие операции с компонентами того или иного формата.

Операции с цветом и прозрачностью — чисто арифметические, логиче­ски данные друг от друга не зависят, поэтому их можно выполнять парал­лельно, то есть за один шаг. Для этого достаточно иметь один векторный АЛУ и общий блок контрольной логики, обеспечивающий произвольную к перестановку компонентов перед вычислениями. В реальных задачах обычны ситуации, когда надо обработать только двумерные векторы или скалярные величины (особенно это касается пиксельных конвейеров и пиксельных алгоритмов). В этом случае вычисления оптимизируются по схеме 2+2 (две операции над двумерными компонентами).

Особенность графических алгоритмов в том, что объекты, обрабаты­ваемые в графическом конвейере, как правило, не зависят друг от дру га. Например, при обработке вершин треугольника совершенно не важен порядок вычислений. Поэтому в современных графических процессорах может быть несколько вершинных блоков. Обработка пикселов еще луч­ше поддается распараллеливанию. Как следствие, происходит рост числа пиксельных конвейеров в архитектуре GPU. То есть наращивать мощ­ность графического ускорителя можно простым клонированием вершин­ных и пиксельных блоков.

Развитие графических процессоров

Первое поколение (1995-1997)

Первое поколение графических ускорителей представлено чипами, кото­рые одинаково хорошо могут жить и на шине PCI, и на шине AGP. То есть их производительность не превосходит пропускной способности шины PCI, и потому вариант AGP ничем не лучше. Среди изделий первого поко­ления можно выделить модели Voodoo Graphics и Voodoo Rush компании 3Dfx, Riva 128 и Riva 128ZX компании nVidia.

3Dfx Voodoo Graphics имеет блоки обработки буфера кадра и буфера текстур, каждый со своим блоком памяти. Обработка двумерной графики не поддерживается, поэтому ускоритель ставится параллельно с обычной видеокартой. Максимальное разрешение 800x600 точек, 16-битный цвет, обработка 0,5 млн. треугольников в секунду, скорость заполнения 50 млн. пикселов в секунду.

nVidia Riva 128 имеет 128-разрядную шину памяти, комбинирован­ный 2D/3D ускоритель, поддерживает до 4 Мбайт видеопамяти, имеет варианты исполнения с интерфейсами PCI или AGP. Модель 128ZX от­личается поддержкой до 8 Мбайт видеопамяти. Глубина цветового охвата 16 бит, обработка 5 млн. треугольников в секунду, скорость заполнения до 100 млн. пикселов в секунду.

Второе поколение (1997-1999)

Второе поколение охватывает широкий круг видеокарт, которые нор­мально работают только на шине AGP.

У карт второго поколения появились аппаратные конвейеры для одно­временной обработки двух текстур, обеспечена поддержка до 64 Мбайт видеопамяти, часто поддерживается 32-битный цвет. Повышенная часто­та RAMDAC обеспечивает комфортную работу в высоких разрешениях 1 экрана монитора. Глубина Z-буфера возросла до 24-32 бит. Стандартом считается аппаратная поддержка мультитекстурирования, анизотропной фильтрации и прочих современных технологий.

3Dfx Voodoo2

3Dfx Voodoo2 для своего времени оказался очень приличным чипсетом, хотя по прежнему не имел 2В-ядра. Два блока обработки текстур рабо­тают параллельно в режиме мультитекстурирования. В обычном режиме второй блок простаивает. Производительность достигает 3,3 млн. треугольников в секунду, скорость заполнения — до 180 млн. пикселов в секунду. К сожалению, разрядность Z-буфера и глубина цветового охвата всего по 16 бит. Объем памяти на карте 8 или 12 Мбайт.

nVidia Riva TNT

nVidia Riva TNT по праву считается одним из лучших чипсетов своего по­коления. Отличается высоким качеством картинки как в 2D-, так и в 3D-графике. Два конвейера обработки текстур позволяют выполнять мультитекстурирование за один проход. Глубина Z-буфера составляет 24 бит. Впервые аппаратно поддерживаются рельефное текстурирование, три­линейная фильтрация, анизотропная фильтрация, глобальное сглаживание.

Поколение DirectX 7 (1999-2002)

Третье поколение включает видеоускорители, оснащенные принципиально новым элементом — геометрическим процессором. Тем самым зна­чительная часть расчетов геометрических преобразований и параметров освещения снимается «с плеч» центрального процессора компьютерной системы. Такое решение позволяет значительно ускорить обработку трехмерных сцен. Однако следует подчеркнуть, что разработчики про­грамм должны специально предусмотреть поддержку новых возможно­стей в своих приложениях. Согласование параметров железа и программ­ного кода стало возможным благодаря принятию типового API DirectX 7, разработанного компанией Microsoft. С тех пор поколения графических процессоров принято различать по способности аппаратно реализовать функции какой-либо версии DirectX.

GeForce 256

GeForce 256 фирмы nVidia стал одним из первых массовых графических чипсетов, в котором применен геометрический процессор NV10, оснащенный модулем T&L (Transform, and Lighting — трансформаций и освеще­ния).

Блок трансформаций обсчитывает вершины полигонов и нормали в j трехмерной сцене в локальных координатах и в поле зрения камеры. Блок освещения определяет параметры освещенности вершин полигонов. Блок установок (Triangle Setup) обсчитывает величины смещений координат, значения буфера глубины, цветового охвата, приращения координат и коррекции перспективы. Все данные преобразуются в числовой формат с фиксированной точкой для последующей передачи в конвейер рендеринга.

GeForce2 GTS

GeForce2 GTS (GigaTexel Shader) явился дальнейшим развитием удачных решений фирмы nVidia, найденных в архитектуре GeForce 256. В архи­тектуре ядра NV15 удалось избавиться от недостатков предшественни­ка и добавить новые возможности.

Улучшены возможности геометрического процессора, который спосо­бен обработать до 25 млн. треугольников в секунду. Во многом это объ­ясняется не только усовершенствованием архитектуры геометрическо­го процессора, но и увеличением рабочей частоты графического ядра до 200 МГц. Теперь расчет освещенности от нескольких источников не вы­зывает столь значительного падения производительности, как у предше­ственника.

И все-таки «изюминкой» чипсета является не геометрический процес­сор, а улучшенный блок Shading Rasterizer — по сути дела, ограниченно программируемый процессор наложения текстур. Он позволяет накла­дывать текстуры не по заранее заданному, а по динамически изменяемо­му алгоритму, который определяется разработчиком игры. Это открыло новые возможности для программистов. Ведь не секрет, что технологии трехмерной графики, призванные приблизить качество изображения к фотореалистичному (ЕМВМ, SD-текстуры и пр.), применялись к ограни­ченному числу ключевых объектов в сцене, а все остальное закрашива­лось по методу Гуро, то есть с весьма посредственным качеством. В играх, опирающихся на возможности NV15, вся сцена может рассчитываться с полной имитацией физического освещения благодаря динамическому из­менению карт освещенности в блоке Shading Rasterizer.

Поколение DirectX 8

Отличительной чертой видеокарт поколения DirectX 8 стало появление программируемого блока обработки атрибутов вершин (процепссора вер­шин). Программы обработки (вершинные шейдеры) поначалу выполняли геометрические операции, затем могли работать с цветом вершин и про­зрачностью. Подобный блок для расчета цвета пикселов на основе пик­сельных шейдеров стал частью пиксельного конвейера.

GeForce3

Графический ускоритель GeForce3 на ядре NV20 компании nVidia впер­вые аппаратно стал поддерживать пиксельные и вершинные шейдеры, предусмотренные спецификацией DirectX 8. По сравнению с GeForce2 архитектура NV20 имеет многочисленные усовершенствования как в схемотехнике, так и методах реализации функций, что существенно подняло производительностьвидеокарт.

Radeon 8500

Поколение DirectX 8 в линейке продуктов канадской фирмы ATI пред­ставлено видеоускорителями Radeon 8500 (ядро R200), Radeon 9000 (ядро RV250), Radeon 9200 (ядро RV280). Графический процессор производит­ся по 0,15 мкм технологии и состоит из 60 миллионов транзисторов. Ядро кристалла имеет рабочую частоту 250 МГц, включает четыре конвейера рендеринга и блок вершинных шейдеров. Количество текстурных моду­лей уменьшено до двух на каждый пиксельный конвейер.

Теоретически скорость заполнения достигает 2 млрд. пикселов в се­кунду. Для соответствия высоким скоростям заполнения ATI увели­чила частоту памяти до 550-600 МГц (используется технология DDR). Графический процессор задействует шину памяти шириной 128 бит (пе­редача 256 бит информации за такт). Причем используется два канала шириной по 64 бит. Здесь заметно существенное отличие от архитектуры GeForce3, в котором организован 32-битный доступ в каждом из четырех независимых контроллеров памяти. Усовершенствованная технология экономии пропускной способности памяти HyperZ II (предварительного «отбрасывания» скрытых пикселов) позволяет графическому ядру полу­чать доступ к памяти практически без ограничений.

GeForce4

В 2002 г. Фирма nVidia представила новую гамму продуктов поколения DirectX 8 под названием GeForce4. Номенклатура видеокарт разделена на две линейки: бюджет на базе GPU NV25 (GeForce4 Ti4200, Ti4400, Ti4600) и высокой производительности на базе ядра NV28 (GeForce4 Ti 4800). Младшие модели характеризуются урезанными частотами ядра и памяти.

Лидером новей серии является чипсет GeForce4 Titanium 4800 на ядре NV28, работающем на частоте 300 МГц, оснащенным четырехканальной 128 битной память DDR SDRAM с эквивалентной частотой 650 МГц

Поколение DirectX 9

Графические ускорители с полностью программируемым графическим процессором относятся к поколению DirectX 9. Благодаря их появлению разработчики программ получили возможность описывать способы обработки графики с помощью команд, похожих на операторы языков программирования высокого уровня например С++. В частности, компания nVidia даже разработала язык Сg (С Graphics) для программирования своих графически процессоров. Поддержка программируемых графических процессоров предусмотрена в API DirectX версии 9 различных версий. На момент написания книги последней была версия 9.0с, поддерживающая вершинные и пиксельные шейдеры версии 3.0

GeForce FX

18 ноября 2002 г. состоялось представление «общественности» графического процессора компании nVidia GeForce FX линейки 5ххх на ядре NV3QE аппаратно поддерживающем спецификации DirectX 9 (пиксельные шейдеры версии 2.0 и вершинные шейдеры версии 2.0). При проектирован;: NV30 впервые в полной мере были использованы наработки коллектив инженеров фирмы 3Dfx, ранее скупленной на корню nVidia. GeForce FX снабжен одним (ядро NV31 и IW34), двумя (ядро NV30) или тремя (ядро NV35, NV35, NV38) независимыми вершинными процессорами, полностью соответствующими (и даже превосходящими) спецификации DX9 на вершинные шейдеры версии 2.0. Современные трехмерные приложения достаточно часто вызывают функции API, чтобы изменить различные параметры графики. Буфер с геометрической информацией отсылается по шине AGP на ускоритель, который должен провести обработку с участием ранее заданных шейдеров и текстур. Различные настройки накапливаются драйвером в специальном буфере в системной памяти. При необходимости нарисовать что-либо с их использованием ускорителю передается указатель на этот буфер. Начиная с этого момента, ускоритель самостоятельно интерпретирует буфер, настраивая свои внутренние блоки, и выводит на экран фигуры по переданным ему геометрическим данным, так же постепенно выбирая геометрические данные из локальной и/или системной памяти. После забора данных драйверы API сразу возвращают управление программе и продолжают собирать настройки и команды в новом буфере. Интерпретация параметров опре­деляется только кодом вершинного шейдера, т. е. написавшим его про­граммистом

GeForce семейства 6ххх

В 2004 г. компания nVidia разработала новое семейство графических про­цессоров GeForce 6ххх, аппаратно поддерживающее пиксельные и вер­шинные шейдеры версии 3.0, что отвечает спецификации DirectX 9.0с. Флагманом семейства стал видеоускоритель GeForce 6800 Ultra на ядре NV40, насчитывающем 222 миллиона транзисторов. Для сравнения, про­цессор Pentium 4 ЕЕ имеет 178 миллионов транзисторов, из них 149 мил­лионов составляют кэш второго уровня. Само же ядро процессора состоит всего из 29 миллионов транзисторов. Чип NV40 производится для nVidia компанией IBM по технормам 0,13 мкм. Исходя из затрат на производство такого монстра, в момент появления на рынке GeForce 6800 Ultra цена в районе полкилобакса за видеокарту не выглядела чрезмерной.

Архитектура пиксельного конвейера графического процессора под­верглась практически полному пересмотру. С предшествующей архи­тектурой NV35/38 осталось мало общего. Дизайн пиксельного конвейера NV40 можно определить как 16x1 (обработка 16 пикселов за такт по цвету и значению глубины) или 32x0 (обработка 32 пикселов за такт только по значению глубины).

Radeon 9500

Компания ATI одной из первых приступила к выпуску графического про­цессора поколения DirectX 9, представив модель Radeon 9500 на основе ядра R300. Основные характеристики графического процессора R300:

  • технологические нормы 0,15 микрон, 107 миллионов транзисторов;

  • память DDR с шириной шины 256 бит, тактовая частота 300 (600 DDR) МГц;

  • четырехканальный контроллер памяти по перекрестной схеме;

  • аппаратная поддержка функций DirectX 9;

  • четыре вершинных процессора;

  • восемь пиксельных процессоров, восемь текстурных блоков;

  • два контроллера мониторов, два 400 МГц RAMDAC, TV-Out, DVI (TDMS-трансмиттер) интерфейс.

Таким образом, сразу после выхода на рынок R300 стал одним из лидером в сфере игровых ускорителей. Причем как в плане совершенства архитектуры графического процессора, так и с точки зрения производи­тельности

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]