Видеокарта. 2
Содержание
1 Введение
2 История развития
3 Устройство
3 Характеристики
4 Поколения 3D-ускорителей
5 Интерфейс
6 Шейдер
7 Заключение
8
Литература
Введение
Видеока́рта (известна также как видеоада́птер графи́ческая пла́та, графи́ческая ка́рта, графи́ческий ускори́тель) (англ. videocard) — устройство, преобразующее изображение, находящееся в памяти компьютера, в видеосигнал для монитора.
Обычно видеокарта является платой расширения и вставляется в разъём расширения, универсальный (PCI-Express, PCI, ISA, VLB, EISA, MCA) или специализированный (AGP), но бывает и встроенной (интегрированной) в системную плату (как в виде отдельного чипа, так и в качестве составляющей части северного моста чипсета или ЦПУ).
Современные видеокарты не ограничиваются простым выводом изображения, они имеют встроенный графический микропроцессор, который может производить дополнительную обработку, разгружая от этих задач центральный процессор компьютера. Например, все современные видеокарты Nvidia и AMD (ATi) поддерживают приложения OpenGL на аппаратном уровне. В последнее время также имеет место тенденция использовать вычислительные способности графического процессора для решения неграфических задач
История развития
Первая видеокарта для компьютеров архитектуры IBM PC была представлена миру в 1981 году и получила название MDA (Monochrome Display Adapter). Это чудо инженерной мысли вообще не поддерживало графический режим и работало только с текстовыми данными. Видеоадаптер выводил на дисплей до 25 строк, каждая из которых вмещала 80 символов. При этом тексту можно было назначить один из пяти атрибутов: обычный, подчеркнутый, яркий, мигающий или инверсный. Задавать шрифт было нельзя, цвет букв также не поддавался изменению — эти параметры зависели исключительно от модели монитора.
Монохромная палитра, текстовый режим... примитив? Только не для 1981 года.
Следующим этапом в развитии графических плат стало появление IBM CGA (Color Graphics Adapter). Видеоадаптер поддерживал четыре палитры по четыре цвета. Кроме того, он умел работать в графическом режиме, то есть на монитор отныне выводился не только текст, но и пиксельные картинки. При работе с графикой максимальное поддерживаемое разрешение составляло 320х200 точек, а для монохромной палитры это значение возрастало до 640х200. В графическом режиме использовалось не более 4 цветов одновременно. Следом за CGA последовала его усовершенствованная версия — EGA (Enhanced Graphics Adapter). Этот адаптер поддерживал 64-цветную палитру и мог обеспечить одновременно 16 цветов при разрешении 640x350.
Примечательно, что видеокарты, совместимые с описанными выше стандартами, использовали для взаимодействия с монитором цифровой интерфейс. Последующие видеоадаптеры поддерживали более высокие разрешения и большее количество цветов. При этом из-за возросшего количества информации цифровая передача данных уступила место аналоговой.
На смену EGA пришел адаптер VGA (Video Graphics Array), обеспечивающий 16 цветов при разрешении 640х480 или 256 цветов в режиме 320х200. Ну, а в 1987 году настала эпоха SVGA. Примечательно, что термином SVGA обозначались все режимы, превышающие VGA. У производителей попросту не было четкого стандарта, которому бы соответствовала их продукция. Путаница была устранена только через три года, когда организация VESA (Video Enhanced Standards Association) ввела документ, описывающий режимы SVGA. Он несколько раз дополнялся, а в конечной его версии, датированной 1995 годом, описаны основные режимы работы, вплоть до разрешения 1600х1200 пикселей и цветопередачи True Color (16,7
млн цветов).
3dfx Voodoo 2 — 3D-ускоритель, ставший в свое время
настоящей иконой
для ценителей трехмерных игр.
Важно осознавать то, что все ранние графические карты служили одной лишь цели — они преобразовывали информацию, получаемую от процессора, в доступный для монитора вид. Никаких расчетов эти видеокарты не производили. Цвет пикселей каждого кадра определял центральный процессор — по тем временам это было серьезным испытанием для ЦП. С появлением первых 3D-движков ситуация только ухудшилась — пресловутые игры стали отнимать огромное количество ресурсов. Разумеется, существовали серьезные видеоадаптеры, которые использовались в профессиональном ПО, вроде САПР. Но к компьютерам простых пользователей они имели очень отдаленное отношение.
Все это привело к появлению графических ускорителей — видеокарт, способных обрабатывать некоторые графические функции на аппаратном уровне. К примеру, подобные устройства могли самостоятельно рассчитывать цвета отображаемых пикселей при рисовании линий или курсора, при перетаскивании окон и заливке отдельных участков изображения. Отныне видеокарта занималась не только преобразованием сигнала — она принимала непосредственное участие в процессе построения изображения.
На рубеже 1994-95 годов разработчики стали
активно задумываться о том, как ускорить
игровые 3D-движки. В результате на сцену
вышли так называемые 3D-ускорители. Эти
устройства могли работать только в тандеме
с видеоадаптером, уже установленным в
ПК. При запуске трехмерных приложений
3D-ускорители обрабатывали объемные моделей,
преобразуя их в двумерный вид. Результаты
отправлялись видеокарте, которая при
необходимости дополняла кадр различными
объектами (например, интерфейсом) и передавала
его на монитор. Со временем видеоадаптеры
и 3D-ускорители слились воедино, и вот
тогда-то видеокарты наконец обрели свой
нынешний вид.
Устройство
Современная видеокарта состоит из следующих частей:
- графический процессор (Graphics processing unit — графическое процессорное устройство) — занимается расчётами выводимого изображения, освобождая от этой обязанности центральный процессор, производит расчёты для обработки команд трёхмерной графики. Является основой графической платы, именно от него зависят быстродействие и возможности всего устройства. Современные графические процессоры по сложности мало чем уступают центральному процессору компьютера, и зачастую превосходят его как по числу транзисторов, так и по вычислительной мощности, благодаря большому числу универсальных вычислительных блоков. Однако, архитектура GPU прошлого поколения обычно предполагает наличие нескольких блоков обработки информации, а именно: блок обработки 2D-графики, блок обработки 3D-графики, в свою очередь, обычно разделяющийся на геометрическое ядро (плюс кэш вершин) и блок растеризации (плюс кэш текстур) и др.
- видеоконтроллер — отвечает за формирование изображения в видеопамяти, даёт команды RAMDAC на формирование сигналов развёртки для монитора и осуществляет обработку запросов центрального процессора. Кроме этого, обычно присутствуют контроллер внешней шины данных (например, PCI или AGP), контроллер внутренней шины данных и контроллер видеопамяти. Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается ещё и RAMDAC. Современные графические адаптеры (ATI, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.
- видеопамять — выполняет роль кадрового буфера, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные. Видеопамять бывает нескольких типов, различающихся по скорости доступа и рабочей частоте. Современные видеокарты комплектуются памятью типа DDR, DDR2, GDDR3, GDDR4 и GDDR5. Следует также иметь в виду, что помимо видеопамяти, находящейся на видеокарте, современные графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCIE. В случае использования архитектуры UMA в качестве видеопамяти используется часть системной памяти компьютера.
- цифро-аналоговый преобразователь (ЦАП, RAMDAC — Random Access Memory Digital-to-Analog Converter) — служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока — три цифроаналоговых преобразователя, по одному на каждый цветовой канал (красный, зелёный, синий, RGB), и SRAM для хранения данных о гамма-коррекции. Большинство ЦАП имеют разрядность 8 бит на канал — получается по 256 уровней яркости на каждый основной цвет, что в сумме дает 16,7 млн цветов (а за счёт гамма-коррекции есть возможность отображать исходные 16,7 млн цветов в гораздо большее цветовое пространство). Некоторые RAMDAC имеют разрядность по каждому каналу 10 бит (1024 уровня яркости), что позволяет сразу отображать более 1 млрд цветов, но эта возможность практически не используется. Для поддержки второго монитора часто устанавливают второй ЦАП. Стоит отметить, что мониторы и видеопроекторы, подключаемые к цифровому DVI выходу видеокарты, для преобразования потока цифровых данных используют собственные цифроаналоговые преобразователи и от характеристик ЦАП видеокарты не зависят.
- видео-ПЗУ (Video ROM) — постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т. п. ПЗУ не используется видеоконтроллером напрямую — к нему обращается только центральный процессор. Хранящийся в ПЗУ видео-BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, а также содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих современных картах устанавливаются электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.
- система охлаждения — предназначена для сохранения температурного режима видеопроцессора и видеопамяти в допустимых пределах.
Правильная и полнофункциональная работа
современного графического адаптера обеспечивается
с помощью видеодрайвера — специального
программного обеспечения, поставляемого
производителем видеокарты и загружаемого
в процессе запуска операционной системы.
Видеодрайвер выполняет функции интерфейса
между системой с запущенными в ней приложениями
и видеоадаптером. Так же как и видео-BIOS,
видеодрайвер организует и программно
контролирует работу всех частей видеоадаптера
через специальные регистры управления,
доступ к которым происходит через соответствующую
шину.
Характеристики
- ширина шины памяти, измеряется в битах — количество бит информации, передаваемой за такт. Важный параметр в производительности карты.
- объём видеопамяти, измеряется в мегабайтах — объём собственной оперативной памяти видеокарты.
Видеокарты, интегрированные в набор системной
логики материнской платы или являющиеся
частью ЦПУ, обычно не имеют собственной
видеопамяти и используют для своих нужд
часть оперативной памяти компьютера
(UMA — Unified Memory Access).
- частоты ядра и памяти — измеряются в мегагерцах, чем больше, тем быстрее видеокарта будет обрабатывать информацию.
- текстурная и пиксельная скорость заполнения, измеряется в млн. пикселов в секунду, показывает количество выводимой информации в единицу времени.
- выводы карты — видеоадаптеры MDA, Hercules, CGA и EGA оснащались 9-контактным разьемом типа D-Sub. Изредка также присутствовал коаксиальный разьем Composite Video, позволяющий вывести черно-белое изображение на телевизионный приемник или монитор, оснащенный НЧ-видеовходом. Видеоадаптеры VGA и более поздние обычно имели всего один разъём VGA (15-контактный D-Sub). Изредка ранние версии VGA-адаптеров имели также разьем предыдущего поколения (9-контактный) для совместимости со старыми мониторами. Выбор рабочего выхода задавался переключателями на плате видеоадаптера. В настоящее время платы оснащают разъёмами DVI или HDMI, либо Display Port в количестве от одного до трех. Некоторые видеокарты ATi последнего поколения оснащаются шестью видеовыходами. Порты DVI и HDMI являются эволюционными стадиями развития стандарта передачи видеосигнала, поэтому для соединения устройств с этими типами портов возможно использование переходников. Порт DVI бывает двух разновидностей. DVI-I также включает аналоговые сигналы, позволяющие подключить монитор через переходник на разьем D-SUB. DVI-D не позволяет этого сделать. Dispay Port позволяет подключать до четырёх устройств, в том числе акустические системы, USB-концентраторы и иные устройства ввода-вывода. На видеокарте также возможно размещение композитных и S-Video видеовыходов и видеовходов (обозначаются, как ViVo)
9-контактный
разъём TV-Out, DVI и D-Sub.
Поколения 3D-ускорителей
Самые первые ускорители использовали Glide — API для трёхмерной графики, разработанный 3dfx Interactive для видеокарт на основе собственных графических процессоров Voodoo Graphics.
Затем
поколения ускорителей в
DirectX 7 — карта не поддерживает шейдеры, все картинки рисуются наложением текстур;
DirectX 8 — поддержка пиксельных шейдеров версий 1.0, 1.1 и 1.2, в DX 8.1 ещё и версию 1.4, поддержка вершинных шейдеров версии 1.0;
DirectX 9 — поддержка пиксельных шейдеров версий 2.0, 2.0a и 2.0b, 3.0;
DirectX 10 — поддержка унифицированных шейдеров версии 4.0;
DirectX 10.1 — поддержка унифицированных шейдеров версии 4.1;
DirectX 11 — поддержка унифицированных шейдеров версии 5.0.
Итак, по какому принципу работает видеокарта при построении кадра трехмерного приложения? В большинстве случаев любой трехмерный объект в компьютерном моделировании представляет собой совокупность множества треугольников — граней, или «полигонов». Виртуальные деревья, автомобили, зомби и автоматы Калашникова — все это лишь грамотно связанные друг с другом грани с натянутыми на них текстурами. Таким образом, при построении изображения центральный процессор загружает в память видеокарты координаты вершин отображаемого объекта, а также текстуры, которыми нужно будет покрыть каркас получившейся трехмерной модели. Далее в дело вступает непосредственно видеоадаптер.
Трехмерная модель — всего лишь множество соединенных
друг с другом граней, закрашенных однородным цветом.
Весь процесс преобразования вершин и текстур в итоговый кадр именуется графическим конвейером. Обратите внимание, что элементы графического чипа работают в потоковом режиме, то есть если какие-то блоки видеокарты простаивают, то она может приступить к обработке следующего кадра, не дожидаясь, пока предыдущий будет выведен на экран.
Первым делом вершины попадают в вершинный процессор, который занимается их трансформацией и освещением (Transforming & Lighting). В данном случае трансформация — это преобразование координат вершин (вращение, перенос и масштабирование объектов), а освещение — это определение цвета каждой вершины с учетом всех источников света конкретной сцены. Затем следует проецирование — преобразование координат искомого 3D мира в двумерную систему координат экрана. С появлением аппаратной поддержки T&L увеличилась скорость отображения игровой графики, а также возросло ее качество.
Следом наступает стадия растеризации — серии операций, которые проводятся непосредственно с пикселями изображения. Этапы: удаление скрытых поверхностей, к примеру, обратных сторон объектов; Z-буферизация (запись значений глубины) — для каждой точки изображения определяется, насколько далеко она отстоит от плоскости экрана; и, разумеется, текстурирование (закраска).
Процесс закраски происходит следующим образом: видеокарта выбирает для каждого пикселя определенные тексели из текстуры. После усреднения цветов нескольких текселей на выходе получается итоговый цвет пикселя, который записывается в буфер кадра (видеопамять). Именно на этой ступени происходит фильтрация текстур, а также проводятся операции сглаживания. Напомним, что процессы текстурирования, фильтрации и сглаживания были подробно разобраны нами в статье «Ближе к идеалу» из мартовского номера «Лучших компьютерных игр» за 2008 год.
| Полигональная модель до и после нанесения текстур. | ||
После
того, как в буфер кадра будет записан
цвет каждого пикселя итогового изображения,
оно отправляется на монитор. Вот, собственно,
и все! Однако это лишь общие принципы
работы графического конвейера. В реальной
жизни алгоритм, как правило, содержит
дополнительные стадии. Нередко результат
работы, полученный на определенном этапе,
может быть возвращен на несколько стадий
назад — подобный прием используется,
к примеру, при прорисовке отражающих
поверхностей. Также на различных этапах
построения изображения в процесс могут
вмешиваться блоки арифметических операций,
ответственные за исполнение шейдеров.
Интерфейс
Первое препятствие к повышению быстродействия видеосистемы — это интерфейс передачи данных, к которому подключён видеоадаптер. Как бы ни был быстр процессор видеоадаптера, большая часть его возможностей останется незадействованной, если не будут обеспечены соответствующие каналы обмена информацией между ним, центральным процессором, оперативной памятью компьютера и дополнительными видеоустройствами. Основным каналом передачи данных является, конечно, интерфейсная шина материнской платы, через которую обеспечивается обмен данными с центральным процессором и оперативной памятью. Самой первой шиной использовавшейся в IBM PC была XT-Bus, она имела разрядность 8 бит данных и 20 бит адреса и работала на частоте 4,77 МГц. Далее появилась шина ISA (Industry Standart Architecture — архитектура промышленного стандарта), соответственно она имела разрядность 16/24 бит и работала на частоте 8 МГц. Пиковая пропускная способность составляла чуть больше 5,5 МиБ/с. Этого более чем хватало для отображения текстовой информации и игр с шестнадцатицветной графикой. Дальнейшим рывком явилось появление шины MCA (Micro Channel Architecture) в новой серии компьютеров PS/2 фирмы IBM. Она уже имела разрядность 32/32 бит и пиковую пропускную способность 40 МиБ/с. Но то обстоятельство, что архитектура MCI являлась закрытой (собственностью IBM), побудило остальных производителей искать иные пути увеличения пропускной способности основного канала доступа к видеоадаптеру. И вот, с появлением процессоров серии 486, было предложено использовать для подключения периферийных устройств локальную шину самого процессора, в результате родилась VLB (VESA Local Bus — локальная шина стандарта VESA). Работая на внешней тактовой частоте процессора, которая составляла от 25 МГц до 50 МГц, и имея разрядность 32 бит, шина VLB обеспечивала пиковую пропускную способность около 130 МиБ/с. Этого уже было более чем достаточно для всех существовавших приложений, помимо этого возможность использования её не только для видеоадаптеров, наличие трёх слотов подключения и обеспечение обратной совместимости с ISA (VLB представляет собой просто ещё один 116 контактный разъём за слотом ISA) гарантировали ей достаточно долгую жизнь и поддержку многими производителями чипсетов для материнских плат, и периферийных устройств, даже несмотря на то, что при частотах 40 МГц и 50 МГц обеспечить работу даже двух устройств подключенных к ней представлялось проблематичным из-за чрезмерно высокой нагрузки на каскады центрального процессора (ведь большинство управляющих цепей шло с VLB на процессор напрямую, безо всякой буферизации). И всё-таки, с учётом того, что не только видеоадаптер стал требовать высокую скорость обмена информацией, и явной невозможности подключения к VLB всех устройств (и необходимостью наличия межплатформенного решения, не ограничивающегося только PC), была разработана шина PCI (Periferal Component Interconnect — объединение внешних компонентов) появившаяся, в первую очередь, на материнских платах для процессоров Pentium. С точки зрения производительности на платформе PC всё осталось по-прежнему — при тактовой частоте шины 33 МГц и разрядности 32/32 бит она обеспечивала пиковую пропускную способность 133 МиБ/с — столько же, сколько и VLB. Однако она была удобнее и в конце-концов вытеснила шину VLB и на материнских платах для процессоров класса 486.
С появлением
процессоров Intel Pentium II, и серьёзной
заявкой PC на принадлежность к рынку
высокопроизводительных рабочих станций,
а также с появлением 3D-игр со сложной
графикой, стало ясно, что пропускной способности
PCI в том виде, в каком она существовала
на платформе PC (обычно частота 33 МГц и
разрядность 32 бит), скоро не хватит на
удовлетворение запросов системы. Поэтому
фирма Intel решила сделать отдельную шину
для графической подсистемы, несколько
модернизировала шину PCI, обеспечила новой
получившейся шине отдельный доступ к
памяти с поддержкой некоторых специфических
запросов видеоадаптеров, и назвала это AGP (Accelerated Graphics Port — ускоренный
графический порт). Разрядность шины AGP
составляет 32 бит, рабочая частота 66 МГц.
Первая версия разьема поддерживала режимы
передачи данных 1x и 2x, вторая — 4x, третья —
8x. В этих режимах за один такт передаются
соответственно одно, два, четыре или восемь
32-разрядных слов. Версии AGP не всегда были
совместимы между собой в связи с использованием
различных напряжений питания в разных
версиях. Для предотвращения повреждения
оборудования использовался ключ в разьеме.
Пиковая пропускная способность в режиме
1x — 266 МиБ/с. Выпуск видеоадаптеров на
базе шинах PCI и AGP на настоящий момент
ничтожно мал, так как шина AGP перестала
удовлетворять современным требованиям
для мощности новых ПК, и, кроме того, не
может обеспечить необходимую мощность
питания. Для решения этих проблем создано
расширение шины PCI — E — PCI
Express версий
1.0, 1.1 и 2.0, это последовательный, в отличие
от AGP, интерфейс, его пропускная способность
может достигать нескольких десятков
ГБ/с. На данный момент произошёл практически
полный отказ от шины AGP в пользу PCI Express.
Однако стоит отметить, что некоторые
производители до сих предлагают достаточно
современные по своей конструкции видеоплаты
с интерфейсами PCI и AGP — во многих случаях
это достаточно простой путь резко повысить
производительность морально устаревшего
ПК в некоторых графических задачах.
Шейдер
Итак, что же скрывается за термином «шейдер»? Говоря простым языком, это такая программа, которая загружается в графический чип и настраивает его, внося определенные изменения в работу конвейера. Видеокарты, лишенные поддержки шейдеров, могли выполнять лишь заранее запрограммированные действия, алгоритмы которых фиксировались на аппаратном уровне. Шейдеры же позволяют обойти эти ограничения: из стандартных инструкций теперь составляются достаточно сложные эффекты.

- Видеокарта
- Видеокарта
- Видеокарта
- Видеокарта, GPU, построение 3D - изображения
- Видеокарта, звуковая карта
- Видеокарта и звуковая карта
- Видеокарта, история развития, интерфейс
- Видеоадаптеры семейства NVIDIA
- Видео дәріс оқытудың әрекеттік формасы ретінде
- Видеозапись в судопроизводстве
- Видеозапись в судопроизводстве
- Видеоинтерфейсные платы и принципы работы ПК с телевизионными сигналами видеокамер и видеомагнитофонов
- Видеокамера
- Видеокамеры