Описание видеосистемы как системы

11.12.2002


Введение

Не правда ли, видеокарта очень напоминает маленькую модель всего компьютера? У неё так же есть процессор, память, шины передачи данных и даже BIOS. Необходимость в описании того, из чего она (видеокарта), собственно, состоит, возникла от того, что люди, даже "продвинутые" по части компьютерного оборудования (железа), часто знают об устройстве видеокарты недостаточно. Новички же сразу тонут в потоке малопонятных и малоприятных терминов, задавая порой такие вопросы, что ответы на них занимают много времени, отчего знакомые гуру предпочитают отделываться общими фразами. Мне тоже часто задают вопросы, типа: «а кто лучше, NVIDIA или ATi?», «а кто такой конвейер?», «а кто такой RAMDAC?», «а кто такой АГэПэ?», и наконец «а ты кто такой?». И если ответ на последний вопрос достаточно прост, для ответа на предыдущие приходилось закатывать длинные лекции.

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

Обзор деталей

Возьмём в руки видеокарту и посмотрим, что же на ней есть.

Описание видеосистемы как системы

Первое, что бросается в глаза при осмотре любой современной видеокарты – это, безусловно, чип, находящийся посередь карты – он скрыт радиатором от посторонних глаз. На более старых образцах радиаторов не было. Здесь прослеживается прямая аналогия с центральным процессором компьютера, причём даже по названию (CPU, Central Processor Unit (центральный процессор) – для компьютера и GPUGraphical Processor Unit (графический процессор) или даже VPU – Visual Processor Unit (визуальный процессор) – для видеокарт). Вокруг расположены микросхемы памяти - они бывают большие и плоские, а бывают маленькие и толстые. Большие – это микросхемы старого образца, они обозначаются как корпуса PGA, а маленькие – нового, обозначенного как BGA. Новые, понятное дело, лучше.

Ещё на плате есть куча конденсаторов и дополнительных микросхем. Назначение каждого конденсатора по отдельности мы рассматривать не будем, зато дополнительные микросхемы, пусть и не все, будут удостоены нашего внимания в последующих главах.

Естественно, на карте есть разъёмы. Два из них присутствуют на карте обязательно – это AGP или PCI – без него карта жить просто не может, и, собственно, вывод на монитор. Ещё могут быть (а могут и не быть) дополнительные разъёмы типа видеовыхода или разъема для второго (и даже третьего!) монитора. Могут также присутствовать всяческие "мелочи" вроде ТВ-тюнера со своими антеннами или, пардон, контроллера шины IEEE 1394.

Даже схемотехнически (я не слишком наукообразно выражаюсь?) видеоплата копирует устройство под названием гордым «материнская плата». Про GPU (VPU), который CPU, и про память мы уже сказали, причём стоит заметить, что память на видеокарте используется также специальная, отличная по конструкции от своего нормального аналога (от RAM или ОЗУ). Разъёмов на карте, конечно, поменьше, чем на «маме», зато также есть BIOS, тактовый генератор и даже свой маленький разъём для подключения внешних устройств!

Кстати, BIOS на современных картах также может перепрошиваться. Это также полезное свойство для повышения скорости или качества реализации каких-либо функций.

Теперь же перейдём к рассмотрению отдельных узлов и деталей агрегата.

Видеопроцессор

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

Здравствуйте, очень приятно, NVIDIA. Эта фирма занимает значительный сегмент рынка как сверхмощных, так и бюджетных решений. Основа удач этой фирмы на рынке – в крайне сильной маркетинговой политике и очень высокой скорости разработки видеокарт. Результат – фирма представлена во всех сегментах рынка и продаёт карты огромными тиражами. Деталь – фирма не собирает карты сама, а предпочитает отдавать чипы сторонним сборщикам, которые и лепят из них готовые карты. Это позволяет фирме целиком сконцентрироваться на производстве могучих чипов под общим именем GeForce (в недалеком прошлом у этой фирмы были также чипы под именами Riva128, TNT и TNT2).

Добрый день, рад знакомству, ATi. Это вторая фирма, которая занимает оставшуюся долю на рынке. В отличие от NVIDIA, ATi имеет значительные договоры с поставщиками (сборщиками) компьютеров, и поэтому может не торопиться с выходом новых карт, выводя свои решения, когда рынок уже «созрел». Первоначально ATi собирала карты самостоятельно и отвечала за качество перед OEM-партнёрами. Однако, в последнее время, оставшись один на один с NVIDIA, начала исповедывать ту же маркетинговую модель – также выпускает только чипы. Текущий модельный ряд состоит из карт семейства Radeon.

Как поживаете, Intel? Со времен седого 98-го года прошлого века, когда фирма пыталась выйти на рынок видеокарт, она туда не суётся. Зато встраивает видеокарты в чипсеты для своих процессоров, и, поскольку процессоров она выпускает немало, то и доля встроенных решений достаточно велика, особенно в офисных машинах.

Мир вам, Matrox! Основной рынок для фирмы – рынок профессиональной графики и видеомонтажа. Наверное, единственная фирма, способная два года не производить ничего, а потом выдать продукт, сопоставимый с самыми современными решениями конкурентов. Всегда славилась качественным видеовыходом. Крайняя бытовая (бытовая ли?) модель – Matrox Parhelia.

Привет, SiS. Это короткое название расшифровывается не иначе как Silicon Integrated Systems, и когда-то это имя наводило благоговение на компьютерщиков. Однако это было очень давно и относилось к чипсетам – не к видеокартам. Сегодня же фирма пытается вернуть себе былую славу. Последняя модель – SiS Xabre.

Как дела, VIA? Это название никак не расшифровывается (пусть меня поправят, если что). Фирма изначально не занималась видеокартами, предпочитая строить чипсеты, однако, когда дела на фронте чипсетостроения шли хорошо, и у фирмы появились некоторые свободные деньги, она скупила несколько других фирм. Оптом. В их числе, кроме Cyrix и Centaur tech., занимающихся процессорами, оказалась фирма S3, уже известная своими разработками в области 3D-графики, правда, не очень удачными – 2D-графика получалась у неё гораздо лучше. Выпускается семейство под названием Savage.

Приветствуем, Imagination tech. Это имя, мягко говоря, не известно широкой публике. Фирма вообще не выпускает ничего! Она лишь разрабатывает чипы, которые за неё изготавливает фирма STMicroelectronics, а собирает из них карты под гордым именем Kyro в основном фирма Hercules.

Вроде никого не забыл. Итак, чтобы выяснить, какая карта нам нужна, рассмотрим

Возможности видеопроцессора

Что умеет GPU (будем пока применять старую терминологию)? Должен он уметь многое. GPU состоит из двух частей – одна занимается непосредственно построением картинки (конвейер растеризации), вторая же занимается подготовкой изображения перед закраской (конвейер трансформации и освещения, T&L).

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

Немного о терминологии: точка на экране называется пиксель (pixel) а на текстуре – тексель (texel, от texture pixel). В сущности, видеокарта сопоставляет пикселю тексель. Выполняет эту нехитрую операцию конвейер растеризации – он определяет цвет пикселя, исходя из цвета текселя, а так же из условий видимости. Последнее означает, что тексель не будет отображаться, если он находится позади текселя уже нарисованного, иначе мы увидим прозрачные стены или внутренности монстров (а что, хорошо бы). Для определения, кто из них (текселей) "круче", т.е. ближе к камере, используется Z-буфер – массив, равный по размерам разрешению экрана, содержащий одно значение в каждой точке – глубину текущего текселя в каждом пикселе. Операция сравнения нового текселя со значением в Z-буфере называется Z-буферинг и занимает очень много времени.

Вернемся к нашим треугольникам. Что, если на один тексель нужно наложить не одну, а несколько текстур, например, обычную текстуру и текстуру освещённости? Придется скармливать видеопроцессору один треугольник два раза. Но на помощь приходит впервые применённая NVIDIA технология под названием TwinTexel (видеокарты серии TNT). Она позволяет при обработке одного текселя обработать также второй, в тот же момент времени, ведь глубина и первого и второго текселя одинакова, и пиксель они займут один и тот же! Поэтому видеокарты TNT брали два текселя за раз, смешивали, но не взбалтывали, и рисовали один пиксель. Видеокарты ATi Radeon берут уже по три, а Matrox Parhelia – четыре текселя! Правда, это было уже никому не надо, поскольку игры и по сей день редко используют более двух текстур.

Если вывести треугольник с наложенной текстурой прямо так, как он есть, мы получим ужастик. Поскольку наклоненная текстура будет сжиматься, лишь отдельные счастливые тексели попадут на экран, в следующий же кадр попадут уже другие. Картинка начнёт переливаться при малейшем шевелении мышью. Для борьбы с этим применяют метод, называемый мип-мэппинг (mip-mapping). Он заключается в том, что текстура заранее просчитывается в разрешении, меньшем чем исходное, и используется на далёких треугольниках.

Наоборот, если тексель оказывается больше пикселя, мы получим на экране квадраты. Большие и уродливые – вспомните Doom. Нет, не третий. Чтобы этого не происходило, квадраты фильтруют, т.е. рассчитывают цвет пикселя в зависимости от положения между текселями. Фильтрация классифицируется по типу аппроксимирующей функции – билинейная, трилинейная и анизотропная. Кто-нибудь напишет формулу анизотропной функции? Под анизотропной понимается фильтрация, учитывающая направление наклона текстуры по отношению к камере.

Современные видеокарты способны за один такт наложить несколько текстур на несколько пикселей – это достигается за счёт нескольких конвейеров растеризации, работающих параллельно. Таким образом, скорость заполнения (количество текселей, обрабатываемых в секунду) видеокарт рассчитывается следующим образом: частота видеочипа, помноженная на число конвейеров. Соответственно для мультитекстурирования учитывается число пиксельных блоков. Так для GeForce4 с тактовой частотой 300 МГц имеем: 300МГц*4=1200 млн. текселей для одной текстуры, 300*4*2/2=1200 млн. текселей для двух текстур, 300*4*2/3=710 млн. текселей для трёх. И так далее.

Но скорость заполнения ещё не всё. Производительность и возможности чипа определяются также конвейером трансформации и освещения.

Трансформация и освещение

Изначально, с седых времён 3dfx Voodoo (ныне компания обанкротилась), то есть с появлением видеоакселераторов на рынке, они умели только накладывать текстуры на треугольники. И всё. Не было ни фильтрации, ни мультитекстурирования, даже освещение текстур приходилось рассчитывать с помощью центрального процессора. А мощности центрального процессора всегда не хватает, поэтому сначала фильтрацию, а затем и освещение переложили на многострадальные видеопроцессоры. Однако такое освещение, какое умели делать первые карты, оснащённые такой возможностью, было предельно простым. Поскольку треугольник – фигура плоская, то и освещён он одинаково. А то, что источники света чаще всего точечные, тихо замалчивалось. Первой пролила свет на тайну освещения фирма 3dfx, тогдашний лидер индустрии. Её метод, названный Dot Product, реализован и в современных картах, однако считается устаревшим. Гораздо более продвинутую модель освещения представила фирма Matrox.

Описание видеосистемы как системы

Слева - чистая текстура, справа - текстура + EMBM.
Кадр из демо Radeon`s ARK

Метод, получивший длинное название Environment Mapping Bump Mapping, или сокращённо EMBM, состоит из двух частей – Environment Mapping (EM, карты окружения) и Bump Mapping (BM, карты выпуклостей) соответственно. EM заключается в том, что на тексель, кроме стандартной текстуры, накладывается ещё одна, взятая откуда-то с другого треугольника. Таким методом формируются отражения. BM же представляет собой хитрый метод повышения детализации картинки. К стандартной текстуре прибавляется т.н. текстура глубины. В соответствии с тем, как освещён треугольник, выпуклости преобразуются в более светлые, а впадины в более тёмные участки. При этом (внимание!) треугольник остаётся плоским, а нам кажется, что он весь испещрен впадинками и холмиками. С помощью EMBM очень хорошо рисовать волнующуюся воду. Недостаток у метода, к сожалению есть, а именно – видеокарты NVIDIA не поддерживают BM, а EM выполняется с помощью T&L, о котором позже.

Описание видеосистемы как системы

EM - в шаре отражается окружение.
Кадр из демо Radeon`s ARK

Проблема заключается в том, что для полноценной реализации метода необходимо накладывать три текстуры на такт (основа, отражения и освещения). У Radeon`ов есть три полноценных текстурных блока, и у Radeon 8500, а также у Matrox G400 третий , хотя и немного неполноценный, тоже есть, в то же время у карт NVIDIA традиционно два блока текстурирования – три текстуры вызовут значительное падение производительности. Неполноценность третьего текстурного блока у Radeon и Matrox заключается в том, что он может работать только с данными об освещении, идущими из блока EMBM, а не из памяти. На Radeon 8500 этот блок может также накапливать значения текстур, выдавая одну текстуру за 3 такта, хитрым образом экономя время при тройном текстурировании. На видеокартах GeForce3 появилась возможность эмуляции BM с помощью шейдеров, о которых также ниже.

T&L, Transforming & Lighting, трансформация и освещение – впервые появился в GeForce256. Это отдельный блок, занимающийся, как ни странно, трансформацией и освещением.

Описание видеосистемы как системы

Работа T&L - искажение, имитирующее воду.
Кадр из демо Radeon`s ARK

Начнём с освещения – блок T&L получает от программы вместе с данными о треугольниках, данные об источниках света. И далее сам, без ансамбля, рассчитывает освещение каждого треугольника, учитывая игру света и тени. Т.е. тени он тоже сам рассчитывает! После такого процессор может вздохнуть спокойно. Однако, основным недостатком T&L до сих пор было то, что он был менее производителен, чем конвейер растеризации. Более того, при расчете каждого источника света, сцену приходилось перестраивать заново, в результате чего программы даже немного притормаживали. В GeForce2 T&L был усилен. На сегодняшний день блок T&L, в силу его неоспоримых достоинств, является стандартом и присутствует в любой современной видеокарте.

Под трансформацией понимается изменение (морфинг) вершин треугольников. Т.е. многострадальный блок T&L, получив координаты треугольников и координаты, куда эти треугольники засунуть, выполнял означенную операцию сам. Программисты после этого вконец обленились. Естественно, ведь большую часть работы выполняет видеокарта! Кстати, именно после введения в обиход блока T&L, чипы на картах стали гордо именоваться GPU.

Но неугомонная фирма NVIDIA не дремала. После выхода в свет спецификации на T&L, она придумала пойти ещё дальше, в дебри профессиональных ускорителей – там она отыскала замечательную штуку, которую тут же реализовала в подвернувшемся чипе нового поколения (GeForce2). Штука называется шейдером. Надо сказать, что реализация оказалась неудачной по вине производителя одной очень популярной операционной системы. Эта самая ОС наотрез отказалась работать с шейдерами в GeForce2. С появившимися в Radeon, правда, тоже. После уточнения спецификаций и жарких споров, поддержка оных (шейдеров, а не споров) была всё-таки включена в систему. Зато теперь шейдеры от ATi и от NVIDIA совпадают. Так что можете забыть о том, что они есть в GeForce2 и первых Radeon – шейдеры впервые появились только в GeForce3 и Radeon 8500.

Так что это за штука такая, шейдеры, что стала яблоком раздора и проблемой совместимости? Это мощнейшее средство для повышения реалистичности изображения – оно состоит в том, что программист может самостоятельно определить (на языке, похожем на ассемблер), как освещать треугольник. Дело в том, что нарисовать, например, волосы, проблемы не составляет, поскольку такое число треугольников ни у кого уже не вызывает шока, однако осветить правильно каждый волосок (треугольник) – вот это уже большая задача. Именно появление шейдеров позволило программистам NVIDIA нарисовать в своей демке огромное волосатое чудище, а программистам ATi – не менее волосатого медведя.

Шейдеры бывают двух видов – вершинные и пиксельные. Отличаются они тем, что вершинные определяют освещенность точки на треугольнике, в зависимости от положения её относительно вершин. Пиксельные же позволяют управлять освещением каждого пикселя по отдельности. Вершинные шейдеры могут эмулироваться программно. Пиксельные же нет, зато они сами могут эмулировать бэмп-мэппинг или что-то ещё. С появлением шейдеров GPU чаще стали называть VPU.

Видеопроцессор обладает огромными мощностями. Возможностей GeForce2 уже хватало для игры в Quake III с разрешением экрана 1600*1200 (разрешений мы ещё коснёмся в главе, посвящённой видеовыходу). Однако видеокарту сдерживает другой компонент – видеопамять.

Видеопамять

Для начала рассмотрим, как память работает. Что такое память, надеюсь, все уже знают - это то место, где временно хранятся данные. Видеокарте нужна следующая информация:

  • текстуры;
  • координаты треугольников;
  • координаты, интенсивность и цвета источников освещения;
  • буфер кадра.

Последний пункт сейчас и рассмотрим. Буфер кадра подразумевает место, куда GPU будет складывать результат своей деятельности, и откуда потом изображение пойдёт на монитор. Объём этой области пропорционален размеру кадра - разрешению экрана. Если система работает в разрешении 800*600 с 32-битным цветом (о формате представления цвета мы поговорим в главе "Общие вопросы"), то нам потребуется 800*600*32=15360000 бит или примерно 1,8 Мбайт ОЗУ. Чем больше разрешение, тем больше буфер. Кроме того, буфер нам нужен два раза - один будем показывать, а второй рисовать.

Описание видеосистемы как системы

Микросхема памяти

Основной характеристикой видеопамяти является её производительность - пропускная способность. Для более пристального её рассмотрения, разберём принцип работы памяти.

Память для видеоадаптеров на сегодняшний день применяется только одного типа - DRAM (Dynamic Random Access Memory, динамическая оперативная память). Она бывает двух видов - SDR DRAM и DDR DRAM (Single и double data rate, одиночная и двойная скорость, соответственно). Первая также называется SDRAM (synchronous DRAM), вторая соответственно DDR SDRAM. Эта память основана на принципе хранения информации на конденсаторе - если конденсатор заряжен, значит, хранится единица, иначе - ноль. Однако конденсатор имеет привычку разряжаться, а значит, его необходимо регулярно подзаряжать, отсюда название - динамическая, т.е. память, в которой информация хранится в постоянно изменяющемся состоянии. Для подзарядки конденсаторов (регенерации) используется специальная схема. Существует также статическая память (Static RAM, SRAM), в которой информация хранится на двух транзисторах - один из них постоянно открыт, другой постоянно закрыт - это будет единица. Когда они поменяются местами - будет ноль.

Очевиден недостаток динамической памяти - в момент регенерации до ячейки нельзя достучаться. Время регенерации определяет т.н. латентность памяти - чем оно меньше, тем лучше. Достоинство - низкая цена. В статической памяти на один бит требуется два транзистора, в динамической же 0,125. Или один транзистор на байт.

Иногда вместо SDRAM пишут SGRAM (Synchronous Graphic Random Access Memory, синхронное графическое ОЗУ). Разницы между ними, насколько я понимаю, нет. То, что SGRAM быстрее по частотам - это не повод. Частота памяти определяется по т.н. циклам памяти, они измеряются в нс (наносекунды, 1нс=1*10-9 с). Соответственно максимальная (не рабочая!) частота, на которой сможет "вкалывать" память, равна 1/время цикла. Для памяти с циклом 7,5 нс максимальная частота составляет 133МГц, для 3 нс - 333 Мгц и т.д. Однако для DDR памяти указывается не эта частота, а т.н. эффективная частота, которая в два раза больше. Почему это происходит мы и рассмотрим.

DDR-эффект заключается в том, что данные передаются два раза за один такт. Откуда появляется такая возможность? Дело в том, что скорость передачи данных ограничена, поскольку проводник на высоких частотах начинает вести себя как СВЧ антенна, наводя сигнал на соседях. Естественно, что данные при этом искажаются, поэтому для любого проводника определена максимальная частота, а также принимаются специальные меры по снижению радиоэффекта. В обычной памяти за один такт данные передаются путём изменения напряжения - низкий уровень соответствует нулю, высокий - единице, отчего скорость передачи равна один бит за один такт. Максимальная частота сигнала достигается при передаче единиц (единица, затем отдых, затем опять единица…). При использовании метода DDR единице соответствует изменение уровня, нулю - если уровень не изменился. Максимальная частота также соответствует передаче всех единиц (однако здесь просто постоянно изменяется уровень. Если максимальная частота для проводника составляет 100 МГц, то синхронная передача успеет затолкнуть 100 млн. бит, а DDR - 200! Кажется, что можно было бы задействовать "зоны отдыха" синхронного метода, однако возникает ещё и другая проблема - она заключается в том, что любой реальный проводник является ещё и индуктивностью, которая будет сильно "растаскивать" фронт. В результате нолик после единицы система может и не заметить. Для DDR же неважно, как круто изменился уровень, важно то, что он изменился. Планируется также использование в новых картах памяти DDR-II или QDR DRAM (Quad Data Rate). В ней, кроме уровня сигнала играет роль также его полярность, позволяя передавать четыре бита за такт.

Но современные типы памяти, даже обладая гигантскими пропускными способностями, не способны удовлетворить растущие потребности GPU. Первой это заметила компания ATi, которая предложила ряд мер по уменьшению нагрузки на память. На чипе Radeon256 было применено сразу несколько технологий, носящих собирательное название HyperZ. Одна из них - Hierarchical Z (иерархический Z) - заключается в том, что сцена, а точнее Z-буфер, разбиваются на небольшие участки, которые целиком умещаются в быстрой памяти самого GPU, и далее все операции проводятся в этом буфере с огромной скоростью. Причём (название-то откуда?) видеочип сначала смотрит грубо, а рассматривать ли ему эту область или там один треугольник напрочь забивает всё остальное. Если надо рассмотреть, то сцена просчитывается точнее, потом ещё точнее. Всё это позволяет существенно уменьшить время выполнения Z-буферинга. Ещё одна технология под названием Fast Z Clear (быстрая очистка Z) - предназначена для быстрой очистки Z-буфера в памяти. Дело в том, что для очистки памяти от прежних значений, видеочипу раньше приходилось после отрисовки кадра забивать область Z-буфера единицами. Новая технология позволяет делать это быстрее. И последний компонент - Z-compression (Z-сжатие). Позволяет сжимать данные в Z-буфере а-ля архиватор. Это также уменьшает объём, который надо прокачать по шине данных.

Следующую технологию представила фирма NVIDIA. Она называется Crossbar Memory Controller (поперечный контроллер памяти), и заключается в том, что к памяти обращается не один контроллер шириной 128 бит (по ширине памяти), а сразу четыре шириной 32 бита. Поскольку видеопроцессору часто требуются данные из разных мест, такая организация памяти гораздо лучше традиционной. Также эта карта оснащена всем арсеналом средств по работе с Z-буфером а-ля HyperZ. Присутствует сжатие и предварительный отброс невидимых пикселей (что-то типа Hierarchical Z).

Говоря об уменьшении нагрузки на память, нельзя не отметить одну очень сильную технологию - тайловую. Это не просто ценный мех, это целая философия построения видеопроцессоров. Вся сцена разбивается на маленькие участки, которые обрабатываются видеопроцессором в локальной памяти. В результате значительно сокращается нагрузка на видеопамять. Производительность такого метода настолько велика, что чип Kyro II от Imagination Tech., построенный по этому принципу, с памятью на 166 МГц обгоняет NVIDIA GeForce II с памятью 333МГц! Однако только в одной игре. Проблема всех тайловых ускорителей в том, что игры не слишком приветствуют нестандартные методы рендеринга. Kyro не начнёт работу, пока не получит последний треугольник из сцены, а нормальный акселератор начинает перемалывать полигоны сразу же после их получения. В результате на большинстве игр тайловый чип будет стоять.

В мире профессиональных видеокарт нет компромиссов. Там важна скорость. Поэтому там применяется замечательный метод - метод с разделением памяти. Поясним. Берётся 32Мб дешёвенькой SDRAM и используется только под буфер кадра. Берётся 16Мб сверхбыстрой SRAM и используется под Z-буфер. Берется обычная по скорости DDR DRAM и задействуется под текстуры. Отдельная память - для T&L, для буфера теней (есть и такой), для всего остального. В бытовых же акселераторах применяется одна память на всё.

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

Разъемы

Без внешних соединений карта, как дочернее устройство, существовать не может. Сейчас уже вообще ни одно устройство без них не может. Самый главный разъём для видеокарты - тот, которым она подключается к компьютеру. На современных системах это AGP (Accelerated Graphic Port, ускоренный графический порт). Преимущества этого разъёма перед классическим PCI огромно. Они проявляются в:

  • высокой скорости передачи данных;
  • низкой латентности;
  • отсутствию арбитров шины;
  • возможностью резервирования части оперативной памяти и прямого доступа к ней.

В отличие от PCI, которая является шиной и предполагает подключение нескольких устройств, AGP - порт. Т.е. AGP рассчитан на подключение одного устройства - видеоадаптера, и только его. SCSI контроллера или звуковой карты для AGP не существует. Отсюда и все достоинства. Высокая частота достигается за счёт небольшой длины проводников от чипсета до видеокарты. Низкая латентность (т.е. небольшая задержка между запросом данных и их поступлением) обусловлена особым положением шины AGP в чипсете. Отсутствие арбитров, которые в PCI нужны для распределения ресурсов, осуществляется за счёт отсутствия других устройств на шине AGP. Проблем с распределением ресурсов вообще быть не должно. Резервирование памяти - крайне полезная функция. Она заключается в том, что часть (какая, определяется в BIOS) может быть выделена под нужды видеокарты. И если все текстуры не влезают в память, которая находится на борту, они отправляются в оперативную память компьютера. Причём видеокарта имеет к этой памяти прямой доступ, не отвлекая процессор для своего обслуживания. Очень полезно.

Ещё один разъём, который обязательно есть на карте - разъем для подключения монитора. Иначе зачем нужна видеокарта?

Но прежде, чем перейти к рассмотрению многообразия разъёмов, рассмотрим, как формируется собственно изображение. В буфере кадра оно хранится в виде матрицы размером n*m, где n и m - размеры кадра (разрешение). Существует ряд стандартных значений для разрешений - 640*480, 800*600, 1024*768, 1152*864, 1280*1024, 1600*1200, 2048*1536 и некоторые другие. На каждую точку на экране отводится некоторое число бит для хранения информации о цвете. Стандартно 8, 16, 24, 32 бита. Число бит определяет число цветов - 2n , где n - число бит. Однако обычный монитор на электронно-лучевой трубке - устройство аналоговое. И взять картинку напрямую из памяти он не может. Эту операцию выполняет RAMDAC (Random Access Memory Digital Analog Converter, цифро-аналоговый преобразователь оперативного запоминающего устройства или ОЗУЦАП по-русски). Язык сломаешь. Это самое устройство вытаскивает из памяти (при этом память намертво блокируется для видеопроцессора и AGP) буфер кадра и преобразует набор цифр в аналоговый сигнал, понятный для монитора. Основной параметр - частота. Она определяется следующим образом: число точек по горизонтали умножаем на число точек по вертикали и умножаем на величину кадровой развёртки в герцах. Для самых крутых мониторов это: 2048*1536*85 = 267386880. Или 267 МГц. Современные видеокарты позволяют работать и на 2048*1536*120 = 377487360 или 380 МГц. Нормальному же монитору эти прелести не нужны, но чем больше максимальная частота RAMDAC, тем качественней картинка на меньших частотах.

Итак, сигнал сформирован. На монитор он может попасть двумя способами. Первый - обычный, которым пользуется большинство пользователей.

Описание видеосистемы как системы

Разъём D-Sub

Разъём зовётся D-Sub и представляет собой 15-контактную маленькую колодку. По кабелю по отдельным проводам передаются сигналы трёх цветов и синхронизации. На мониторе эти сигналы управляют соответственно электронными пушками трёх цветов и блоком развёртки. Недостаток такого подключения в том, что сигналы идут в одном кабеле и наводятся друг не друга. Вообще наводки - большая проблема данного типа подключения. Второй вариант аналогового метода - т.н. BNC разъём. Он, в отличие от предыдущего, предполагает передачу трёх цветовых сигналов и одного сигнала синхронизации по четырём отдельным проводам. Такое подключение значительно сложнее, однако позволяет передать более чёткое изображение, поэтому применяется в основном в профессиональных моделях мониторов.

После появления жидкокристаллических мониторов, устройств по сути цифровых, отношение к стандартному способу подключения изменилось. Аналоговый интерфейс между памятью видеокарты и матрицей монитора выглядит плохо. Поэтому фирмы тут же стали предлагать свои решения по части цифровых интерфейсов. После долгих трений между интерфейсами PnD, DFP, PanelLink и некоторых ещё, производители объединились и назначили спецификацию нового интерфейса - DVI (Digital Visual Interface, цифровой, простите, визуальный интерфейс).

Описание видеосистемы как системы

Разъём DVI

Новый стандарт хорош также тем, что представляет из себя как бы "два в одном", т.е. позволяет передать как цифровой, так и классический аналоговый сигнал. Аналоговая часть, называемая DVI-A, выдаёт обычный сигнал, как D-Sub, что позволяет через переходник подключить нормальный монитор. Цифровая часть (DVI-D) передаёт по 24 контактам информацию о цвете в цифровом виде (по четыре провода на цвет + заземление и питание). Разъём, в котором присутствуют и DVI-A и DVI-D, называется DVI-I. Современные видеокарты выпускаются с установленными разъёмами DVI-I, поскольку их легко превратить в D-Sub.

На видеокарте может стоять не один, а два RAMDAC. Соответственно, изображение будет выводиться на два монитора. Впервые такую технологию представила Matrox в карте G200. На сегодняшний день все карты имеют возможность подключения двух (а некоторые трёх) мониторов. Однако двухмониторные конфигурации не настолько популярны. Второй RAMDAC гораздо чаще используется в качестве видеовыхода.

Давным-давно, в далёкой-далёкой галактике, бытовые компьютеры подключались к телевизорам. Так было дешевле. Однако качества изображения явно не хватало, и компьютеры стали пользоваться собственными, специализированными телевизорами - видеомониторами. Однако в последнее время, в связи с тем, что на компьютере стало возможно проигрывание фильмов в очень высоком качестве, многие пользователи захотели смотреть их на экране телевизора. Желание было удовлетворено, и видеовыходы появились. Однако первые эксперименты в этом направлении предполагали использование единственного RAMDAC. Соответственно, при просмотре фильма монитор отключался. Целиться мышью в органы управления на телевизионном экране гораздо хуже - изображение размыто. А вот с появлением второго RAMDAC стало возможным выводить фильм на телевизор, а всё остальное - на монитор. Кроме того, специально для видеовыходов могут ставиться дополнительные микросхемы.

Видеокарта сама является дочерним устройством, однако к ней можно подключить ещё одно устройство! Например, так, к первым видеокартам подключались видеоакселераторы. Сегодня так иногда подключают ТВ-тюнеры. Разъём для подключения представляет собой ряд штырьков - дёшево и сердито.

Описание видеосистемы как системы

Разъём для дочерних устройств

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

Советы & рекомендации. Заключение

При выборе видеокарты прежде всего обращается внимание на список поддерживаемых функций. Однако наряду с этим, своё слово, безусловно, скажет производительность карты в различных программах (кому Quake, а кому и 3DMax) и, естественно, цена.

Многие журналы публикуют результаты тестов в виде таблицы, в которых указывается волшебное слово FPS. FPS в переводе означает Frames Per Second или кадры в секунду. Они означают то число сцен, которое видеоакселератор успел просчитать за одну секунду. Если Ваш монитор выдаёт 85 кадров в секунду, то число FPS более 85 означает предельно плавное движение. На практике рекомендуют, чтобы FPS было не менее 60. Однако это - среднее значение. Играет роль также и минимальное. Дело в том, что наши глаза воспринимают изображение движущимся при частоте более 24 FPS. И если минимум FPS будет менее 24 - будет дерганье картинки. Более того, резкий переход между 60 и 25 FPS будет также сильно заметен на глаз.

Поэтому перед нелёгким выбором видеокарты, первым делом, вооружившись знаниями, открываем спецификации на ту карту, на которую у нас есть деньги, а точнее на несколько карт (нам ведь нужна лучшая). Затем достаём журналы или идём на сайт, и смотрим на скорость в реальных приложениях. После чего делаем правильный выбор.



Сергей Бессонов (sbesson@rambler.ru)



Обсудить/дополнить в конференции

Линки по теме: