Main page Internal External

 

CPU

Memory

Video

HDD

FDD

CD

Power

Tuners

Sound

Видеоадаптеры.

Немного истории.

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

рис.1. MDA-адаптер Hercules Graphics Controller длиной 33,5 см

В IBM совместимых компьютерах, первые видеокарты появились, в том виде, в котором мы привыкли их видеть, с выходом первого IBM XT. Самый первый адаптер - это MDA. Он был разработан фирмой IBM и являлся монохромным алфавитно-цифровым адаптером. На рисунке 1 можно увидеть MDA-видеоадаптер от фирмы Hercules 1982 года выпуска.

рис.2. Видеоадаптер CGA и EGA. 1988 год. Переключение между выходами осуществляется перемычками.

И только с выходом видеоадаптера CGA (Color Graphics Adapter), который стал основой для последующих стандартов, появилась возможность работать с цветной графической информацией в разрешении 320х200 (16 цветов) и 640х200 (монохромный режим - то есть чёрно-белый), при этом объём памяти видеокарты уже равнялся 16 Кбайт. Следующий стандарт для видеокарт (Enhanced Graphics Adapter (EGA), разработанный в 1984 году, позволял при разрешении 640x350 работать с 16 цветами из 64-цветной палитры одновременно. Ёмкость видеопамяти составляла всё те же 16 Кбайт, а также была заявлена совместимость с CGA и MDA.

Все описанные выше видеокарты подключались к монитору через 9-контактный разъём(такой можно увидеть в COM-порту) и передавали информацию в цифровом виде. Только с выходом адаптера стандарта MCGA (Multicolor Graphics Adapter - многоцветный графический адаптер) произошёл переход на аналоговый сигнал, так как палитра была увеличена до 262144 цветов (по 64 оттенка на каждый из базовых цветов Red/Green/Blue). Разрешение экрана, выдаваемое MCGA при работе с текстом, было 640х400 с 256 одновременно отображаемыми цветами, для графических приложений - 320х200 точек. Разъём для подключения к монитору приобретает привычный для нас вид - 15-контактный D-Sub.

Следующим витком эволюции компьютерной видеоподсистемы является VGA (Video Graphics Array - графический видеомассив), который появился в 1987 году. Адаптеры VGA уже поддерживали разрешение 640х480 и 256 цветов (из палитры в 262144 цвета), объём памяти составлял 256 Кбайт, а соотношение сторон экрана равнялось привычным сейчас 4:3. Именно с этого стандарта пошло множество знакомых сейчас простонародных названий: VGA'шный монитор, VGA'шный разъём и так далее. Более того, именно из этой аббревиатуры развились сокращённые названия разрешений (например, теперь считается, что VGA - это 640х480 точек, SVGA - 800х600, XGA - 1024х768 и так далее).

И наконец, в 1991 году появляются первые адаптеры SVGA (Super VGA), позволяющие работать при разрешении 800х600 и 1024х768 точек, количество отображаемых цветов увеличилось до 65536 (High Color) и 16,7 млн (True Color). Также появляется возможность пользователю задать частоту обновления экрана монитора - до этого момента она была жёстко привязана к определённому значению. Память видеоадаптеров SVGA была уже более 1 Мбайт.

Для связи с видеокартой и передачи необходимых данных в самом начале эры IBM PC использовался интерфейс XT-Bus, потом на смену ему пришла шина ISA (Industry Standard Architecture - архитектура промышленного стандарта). Но и ISA уже не хватало для относительно большого потока данных. Тогда она была дополнена интерфейсом VLB (или VESA), который в итоге был заменён шиной PCI (Periferal Component Interconnect - объединение внешних компонентов). PCI является более универсальной шиной, через которую можно было подключать множество других контроллеров, не только видеоадаптеры, к тому же она способна работать и на других платформах.

рис. 2. Видеокарта Quantum3D Obsidian X-24 на базе двух Voodoo2 в режиме SLI

С развитием графических оболочек операционных систем (например, Windows) видеокарты взяли на себя часть вычислений по окончательному выводу изображения на экран, которые обычно производил центральный процессор: перемещение окон, рисование линий, шрифтов и другие. С появлением трёхмерных игр видеокарты обзавелись 3D-акселератором, который сперва имел вид отдельной платы, вставляемой в свободный разъём на материнской плате, а позже уже был интегрирован дополнительным чипом на видеокарту - до этого момента видеоадаптер позволял работать только с двухмерной графикой (2D). Далее, с развитием технологий производства полупроводников, графический чип стал содержать в себе все необходимые блоки, отвечающие как за 2D-, так и 3D-графику. Для максимальной универсальности и совместимости видеокарт с программным обеспечением компания Microsoft создаёт API DirectX (API - интерфейс программирования приложений), работающий в среде Windows. Так как мир не однополярный и кроме Windows существуют и другие операционные системы, был разработан альтернативный API - мультиплатформенный OpenGL, а также его дополнение для звука - OpenAL.

Именно в те времена доминирующая на тот момент компания 3dfx (все активы 3dfx после банкротства перешли к NVIDIA) представляет технологию SLI (Scan Line Interleave - чередование строчек), благодаря которой появилась возможность объединить две подобные видеокарты с шиной PCI для формирования изображения методом чередования строк, что увеличивало быстродействие графической подсистемы и разрешение экрана. Действительно, всё новое - это хорошо (в данном случае - очень хорошо) забытое старое: спустя почти 15 лет NVIDIA возродила SLI, а компания ATI разработала технологию CrossFire, так же позволяющую объединять несколько видеокарт.

рис. 3. Видеокарта на базе SiS315 с шиной AGP.

Ближе к концу 90-х прошлого века видеоадаптеры получают собственную шину - AGP (Accelerated Graphics Port - ускоренный графический порт) и приобретают черты современных видеокарт: объём локальной видеопамяти достиг десятков мегабайт, появилась возможность выводить видеоизображение на ещё один приёмник, например, телевизор. Из-за ограничений шины PCI, а именно её разновидностью является AGP, производителям графических процессоров пришлось в итоге отказаться от технологий, подобных SLI

рис. 4. Видеокарта Chaintech GeForce 7600GT.

И только в начале 2000 годов происходит революционный скачок, благодаря которому мы теперь можем наслаждаться реалистичной графикой в играх последних лет. Появился более скоростной интерфейс - PCI Express (PCI-E), появилась возможность подключать два монитора, причём информация опять выводится в цифровом виде (в более расширенном виде, чем в первых поколениях видеокарт), объём памяти в некоторых случаях достигает 1 Гбайт (1024 Мбайт). Рассказывать об эволюции видеокарт, экзотических решениях и выдумках инженеров можно бесконечно.

Устройство и принцип работы.

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

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


рис. 5. Основные компоненты видеокарты ядро (1), память (2), подсистема питания (3), интерфейс PCI-E (4), разъёмы DVI (5) и ТВ-выход (6)

Ключевым компонентом любой современной видеокарты является графический процессор, который занимается расчётами выводимой на экран информации и трёхмерных сцен. На данный момент разработкой графических процессоров занимаются в основном компании NVIDIA, продвигающая серию GeForce, и AMD, купившая канадскую компанию ATI с её линейкой Radeon. Остальные игроки графического рынка, увы, не выдержали конкуренции и той скорости, с которой разрабатываются очередные поколения видеокарт, и если и выпускают свою продукцию, то отличной производительностью и массовостью похвастаться не могут. В зависимости от того, какой GPU положен в основу видеокарты, определяются её характеристики: поддержка тех или иных технологий визуализации и рендеринга, тип памяти и ширина её шины.


рис. 6. Печатная плата Chaintech 7600GT: тыльная сторона

Графическое ядро представляет собой припаянный к плате чип, в большинстве случаев без защитной крышки, кристалл которого содержит сотни миллионов транзисторов (даже в несколько раз больше, чем у центральных процессоров). Каждый такой чип состоит из вычислительных блоков, контроллеров шины и памяти, блоков для вывода видеоинформации (RAMDAC). Вся эта структура определяется архитектурой ядра, которая сперва разрабатывается для самого мощного видеоадаптера в семействе-поколении, например: G70, G80 - NVIDIA, R580, R600 -AMD. Затем "топовое" ядро упрощается для менее производительных решений методом исключения определённых блоков. Случаи разработки принципиально новых ядер для среднего и нижнего уровня рынка довольно редки.

Для того чтобы удалось разместить всё больше и больше транзисторов в кристалле ядра, используются новые, более тонкие техпроцессы, благодаря которым уменьшаются размеры элементов и повышается рабочая частота чипа. На данный момент графические процессоры производятся по 90, 80 и 65 нм технологическим нормам. В сравнении с концом 90-х годов и началом 2000-х, когда доминировал техпроцесс 250-220 нм, современное производство без каких-либо оговорок можно считать настоящим прорывом, тем более что на носу уже техпроцесс 45 нм. Общее правило "тоньше техпроцесс -выше частота - меньше тепла" объясняется следующим образом: транзистор, мельчайшая единица, из которого состоят все блоки GPU, представляет собой своеобразные ворота для электронов. Стенки и "створка ворот" - затвор транзистора - изготавливаются из диэлектрика, не пропускающего ток, а передаются электроны по стоку. Но так как идеального диэлектрика нет, существуют токи утечки - некоторое количество электронов всё же пробивается через закрытый затвор, вызывая тот самый нагрев. Для того чтобы заставить транзисторы переключаться быстрее (повысить частоту), нужно подать на них больший ток, а это приведёт к большему нагреву. Более мелкие транзисторы, произведённые по более тонкому техпроцессу, требуют для своей работы меньшие токи, а следовательно, и токи утечки у них меньше. Вот потому-то более "тонкие" чипы, как правило, работают на более высокой частоте и греются меньше. Кроме того, производители полупроводников и занимающиеся собственно производством чипов неустанно изыскивают новые способы уменьшить токи утечек: новые диэлектрические сплавы и вещества с низкой проницаемостью. Вот уже мы дожили до того, что, например, ядро G86 (GeForce 8600) при хорошем охлаждении достигает и перешагивает через порог 1 ГГц.

рис. 3. Классический конвейер.

В данный момент времени происходит переход от архитектуры традиционной конвейерной обработки данных графическим процессором к унифицированной и более гибкой благодаря новому API DirectX 10. В предыдущем поколении видеокарт данные, полученные от центрального процессора, сперва обрабатываются вершинным блоком (также называется процессором, конвейером): создаются вершины, над которыми производятся преобразования, дополненные вершинными шейдерами (программы, добавляющие некоторые эффекты объектам, например ? мех, волосы, водная гладь, блеск и так далее). Далее вершины собираются в примитивы - треугольники, линии, точки, после чего переходят в пиксельный блок. Здесь определяются конечные пиксели, которые будут выведены на экран, и над ними проводятся операции освещения или затенения, текстурирования (этим занимается блок TMU - Texture Mapping Unit, который связан с пиксельным конвейером), присвоения цвета, добавляются эффекты от пиксельных шейдеров.

Далее вычисляются координаты конкретного пикселя, чтобы отбросить те, которые будут скрыты другими объектами и не видны пользователю. В следующем блоке фрагменты собираются в полигоны, состоящие из отдельных пикселей, и уже готовая картинка передаётся в память для последующей выборки и вывода на экран. В характеристиках видеокарт, поддерживающих DirectX 9, всегда упоминается количество пиксельных, вершинных процессоров и текстурных блоков. Например, в видеоадаптере GeForce 7600 GT есть 12 пиксельных и 5 вершинных процессора (ввиду меньшей нагрузки на вершинные конвейеры их количество ? в пределах 2-8 шт. в зависимости от уровня графического процессора) и 12 TMU - по одному на пиксельный конвейер. Естественно, чем больше текстурных блоков, тем больше будет производительность видеокарты. Но компания ATI, начиная с серии Radeon X1000, отошла от привычной формулы "один TMU на один пиксельный конвейер", уменьшив общее количество "текстурников", которые теперь не связаны напрямую с пиксельными процессорами благодаря оптимизации архитектуры видеоядра. При этом количество пиксельных конвейеров в самой старшей модели видеокарты было увеличено до 48, а количество TMU осталось на уровне 16 шт. Такое решение - своего рода задел на будущее, так как в последние годы всё более заметно, что разработчики игр ориентируются не на грубую силу в виде огромного числа полигонов, а на тонкий расчёт, то есть использование сложных шейдеров, требующих математической вычислительной мощи.

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

Hosted by uCoz