Hard: Video, part 1
Карточный "ликбез": как работают современные видеоускорители.
Часть I: Из каких компонентов состоит видеокарта
Практически во всех популярных компьютерных изданиях большая часть статей об
аппаратном обеспечении, или попросту о "железе", пестрит специальными терминами.
Авторы с ловкостью жонглируют этими "умными" словами, видимо, подразумевая, что
любой читатель чуть ли не с раннего детства знаком со всей обширной
специфической компьютерной терминологией. Разумеется, это далеко не так, поэтому
тем, кто действительно не проштудировал многочисленные тома документации,
зачастую просто непонятно, о чем идет речь, а все усилия авторов идут насмарку.
В значительной степени это касается видеокарт - чуть ли не самых интересных
массовому потребителю и одновременно стремительно совершенствующихся изделий.
Естественно, все подробно объяснить в короткой статье невозможно, поэтому
давайте условимся об определенной степени упрощения, которая, впрочем, не пойдет
в ущерб пониманию общих принципов работы современных графических ускорителей.
Что же представляет собой типичная современная видеокарта? Это многослойная
печатная плата, на которой смонтированы микросхемы, конденсаторы и некоторые
другие радиодетали, а также разъемы для подключения монитора (одного или двух),
и, во многих случаях, телевизора. Отдельные модели имеют видеовход, выполненный
в виде разъема RCA, а иногда он совмещается с видеовыходом.
Функционально видеоускоритель состоит из нескольких обязательных блоков: прежде
всего, это графический процессор, который также иногда называют графическим
чипсетом (от английского chip set - "набор микросхем"), микросхема BIOS (от
английского Basic Input/Output System - "базовая система ввода-вывода",
несколько микросхем видеопамяти, один или, как в большинстве современных карт,
два цифро-аналоговых преобразователя (RAMDAC) и различные разъемы.
За что отвечает каждый из перечисленных структурных блоков? Первые компьютерные
видеокарты были построены по принципу кадрового буфера, согласно которому
собственно изображение формировалось центральным процессором компьютера и
программным обеспечением, а карта отвечала лишь за хранение (в буфере памяти) и
вывод с определенной частотой отдельных кадров на монитор. Однако радикальное
повышение требований к качеству изображения, связанное, во многом, с появлением
сложных трехмерных компьютерных игр и профессиональных конструкторских систем,
привело к необходимости создания специализированного процессора, который бы
занимался исключительно формированием (точнее, расчетом) "картинки". При этом
центральный процессор компьютера освободился практически от всех функций,
связанных с построением изображения. Современные графические процессоры по
сложности не уступают центральным процессорам, и более того, во многих
популярных моделях используются технологии, еще не нашедшие применения в
центральных процессорах.
Помимо внутренней архитектуры, которая у разных видеопроцессоров может
существенно отличаться, они характеризуются такими параметрами, как тактовая
частота работы графического ядра (у современных чипов она составляет от 300 до
500 МГц, в зависимости от класса) и технологический процесс, по которому
изготовлен чип. Основная масса графических процессоров в настоящее время
выпускается или по 0,13-, или по 0,11-микронной технологии. Чем совершеннее (миниатюрней)
технология, тем больше микроскопических транзисторов можно уместить на кристалле
одних и тех же размеров, что означает более высокую производительность и
одновременно меньшую себестоимость производства.
Второй по важности компонент графического ускорителя - это видеопамять, которая
как раз и выполняет роль кадрового буфера, о котором мы говорили выше.
Центральный процессор компьютера направляет видеоданные в эту специализированную
память, а затем графический процессор видеокарты считывает оттуда полученную
информацию. Естественно, для обеспечения эффективной передачи данных важна
пропускная способность видеопамяти. Здесь нас должны интересовать две
характеристики: разрядность и эффективная частота работы шины, по которой
передаются данные из видеопамяти к графическому процессору, а также так
называемая латентность (от английского latency - время задержки при передаче
данных) самих микросхем памяти.
Такие ультрасовременные карты высшего класса, как Radeon X800 XT, имеют шину
разрядностью в 256 бит, работающую на частоте 1 ГГц и выше, а массовые модели
обходятся 128-битной или даже 64-разрядной шиной, работающей на частотах от 400
до порядка 700 МГц. С латентностью памяти все куда сложнее: как правило, многие
производители видеокарт самостоятельно определяют, какую память установить на ту
или иную карту, поэтому на дорогих вариантах карт может использоваться более "быстрая"
память, чем на дешевых модификациях карточек на основе того же самого
графического процессора. К тому же многие высокопроизводительные чипы используют
видеопамять нового поколения GDDR3. Средние значения латентности видеопамяти DDR
на массовых видеокарта составляют менее 4 нс, а у лучших образцов они достигают
почти 2 нс. Практически невозможно обнаружить память GDDR3 c латентностью менее
2 нс, а на лучшие карты устанавливаются чипы с латентностью 1,6 нс, что
полностью перекрывает возможности шины и современных видеопроцессоров.
Объем видеопамяти, установленной на карте, важен не столько для ускорения
скорости работы самой карты (она определяется, в значительной степени,
пропускной способностью всей видеосистемы), сколько для работы с трехмерными
изображениями с высокими разрешениями и большой глубиной цвета. Теоретически
даже видеокарта с 32 Мбайтами памяти, что сегодня уже большая редкость,
позволяет работать на 21-дюймовом мониторе с разрешением 1600 х 1200 пикселей
при 32-битном цвете. Однако тех же 32 Мбайт будет явно недостаточно для вывода
трехмерных изображений с тем же самым качеством и разрешением, поскольку в
видеопамять при этом загружается множество различной дополнительной информации,
о которой мы поговорим чуть ниже.
Итак, графический процессор получает информацию об изображении из памяти
видеокарты, после чего данные передаются в цифро-аналоговый преобразователь (RAMDAC),
который непосредственно отвечает за конвертацию цифровых данных об изображении в
аналоговый сигнал, "понятный " любому монитору. Уже достаточно давно существуют
жидкокристаллические мониторы, способные работать и с цифровым сигналом, однако
пока большого распространения цифровой интерфейс не получил, хотя каждая
уважающая себя видеокарта имеет цифровой видеовыход DVI. Преимущество цифрового
интерфейса в одном: при выводе изображения не осуществляются преобразования
изначально цифрового сигнала в аналоговый, а затем, в ЖК-мониторе, - обратно в
цифровой, что теоретически ухудшает качество изображения. На практике разница в
изображении очень редко бывает заметной, именно поэтому переход на цифровой
интерфейс так затянулся.
Главные характеристики RAMDAC - это тактовая частота и разрядность. Многие
современные видеокарты поддерживают одновременную работу с двумя мониторами,
поэтому в такие карты устанавливаются по два RAMDAC и, соответственно по два
разъема для подключения монитора. В подавляющем большинстве видеокарт имеется
также выход на телевизор, позволяющий просматривать, скажем, мультимедийные
программы или фильмы, на большом экране. Работать с компьютерными программами на
экране телевизора невозможно не только из за скромного разрешения телеприемника,
но и из-за низкой частоты развертки, поэтому высокого качества изображения на ТВ-выходе
ожидать не стоит. Впрочем, для просмотра фильмов в "народном" формате MPEG-4
качества видеовыхода вполне достаточно даже для 29-дюймового телевизора.
Необходимо упомянуть и об интерфейсе видеокарты, через который она связывается с
другими компонентами компьютера. На смену универсальной шине PCI пришел
специализированный интерфейс AGP (от английского Accelerated Graphic Port - "ускоренный
(по сравнению с PCI) графический порт"), который полностью освободил шину PCI от
передачи больших объемов видеоданных и обеспечил приоритетный, а значит,
максимально быстрый доступ к системной памяти, необходимый для работы
современных видеокарт. Массовые карты подключаются сегодня по интерфейсу AGP 4х
с пропускной способностью 1,06 Гбайт/с, а самые мощные модели - по интерфейсу
AGP 8x с пропускной способностью 2,1 Гбайт/с.
Отдельно следует сказать о перспективном интерфейсе PCI Express, который уже в
самом ближайшем будущем может заменить не только "старичка" PCI, но и AGP.
Налицо уже не раз отмечавшая тенденция перехода от параллельных шин к
последовательным. Напомним, что на смену параллельному ATA (E-IDE) идет
последовательная шина Serial ATA (SATA), рассчитанная на подключение жестких
дисков и прочих накопителей. Вкратце достоинства последовательных шин - лучшая,
по сравнению с параллельными, масштабируемость, способность работать на куда
более высоких эффективных частотах, а также большая компактность.
Для подключения графических карт используется версия PCI Express x16.
Теоретическая пропускная способность такой шины составляет до 4000 Мбайт/с
независимо в обеих направлениях. Сравните с максимальной пропускной способностью
AGP 8x, достигающей 2133 Мбайт/с, причем, лишь в одном направлении. Вполне
очевидно, что новая шина с большим запасом перекрывает возможности современных
графических процессоров и в перспективе может послужить дополнительным стимулом
к их совершенствованию.
В настоящее время шину PCI Express x16 поддерживают такие новейшие наборы
системной логики как i925X и i915G корпорации Intel, но, похоже, в ближайшее
время к ним присоединятся и модели других производителей. Крупнейшие фирмы-разработчики
графических процессоров, ATI Technologies и nVidia, разумеется, выпускают чипы с
поддержкой новой шины. Однако, если в распоряжении nVidia имеется
запатентованная микросхема-"мост" AGP-PCI Express, обеспечивающая возможность
работы всех производимых ею графических процессоров как с шиной AGP, так и с
шиной PCI Express, то компания ATI выпускает отдельные модификации чипов с "родной"
(native) или встроенной поддержкой той или иной шины. Так, в настоящее время
производятся модификации процессоров Radeon X600 и X800 как для шины AGP 8x, так
и для шины PCI Express x16. Интересно, что новейшие чипы среднего класса Radeon
X700 пока выпускаются только в варианте для шины PCI Express, что
свидетельствует о том, что в ATI делают ставку именно на этот перспективный
интерфейс.
Давайте пока на этом остановимся, а во второй части статьи мы подробнее
поговорим о принципах ускорения трехмерной графики.