Смотри в оба!: Видеокарта

Никита "Nikitos" Кислицин

Xakep, номер #050, стр. 020-025

nikitos@real.xakep.ru, http://nikitos.inc.ru

Мысли на тему

Любые данные в компьютере имеют известную организацию – хаотичную последовательность единиц и нулей. Не секрет также, почему, собственно, инженеры выбрали двоичную систему счисления для представления данных в ЭВМ - требуется всего лишь два возможных и различаемых состояния некоторого устройства для физического представления информации. Так, например, значительно удобнее различать два логических состояния конденсатора в ячейке памяти - заряжен/не заряжен, нежели отслеживать величину ЭДС.

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

Графический режим работы

Экран монитора физически делится на очень маленькие ячейки - так называемые пикселы. В графическом режиме работы содержимое каждого пиксела задается n-разрядным двоичным числом, т.е. каждому отображаемому цвету соответствует какой-то свой уникальный код. Чем больше числовых разрядов имеет код, задающий состояние пиксела, тем больше цветов может быть отображено на экране. Величину n называют глубиной цвета, именно его имеют в виду, когда говорят про "32-битный цвет". В этом случае получается, что один пиксел задается 32-мя битами, т.е. количество различных состояний, которые может принимать один пиксел, равняется 2^32. Графический режим, очевидно, довольно жадно ведет себя по отношению к ресурсам системы, поэтому плотно вошел в компьютерные технологии лишь с появлением производительных процессоров и шин передачи данных.

Текстовый режим работы

В текстовом режиме, как и в графическом, изображение на экране представляет собой множество пикселов, однако все они разбиты на так называемые знакоместа, в каждом из которых может быть отображен один из 256 символов таблицы кодировок. Изображение каждого отдельно взятого символа задается матрицей фиксированного размера (например, 9*16). Каждая ячейка такой таблицы описывается одноразрядным двоичным числом. Таким образом получается, что каждая из ячеек этой матрицы может иметь только два цвета - либо фона, либо символа, т.е. каждое знакоместо можно описать 144-мя битами. Все 256 кодов различных символов занесены в ПЗУ видеоадаптера, что позволяет видеокарте работать уже не с информацией о каждом отдельно взятом пикселе, а с более высокоуровневыми данными о коде отображаемого символа. Для кодирования изображения символа на экране используются два байта, первый применяется для указания номера символа, второй - для задания атрибутов текста (цвет букв, фона, и т.д.).

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

Видеопамять

Видеопамять представляет собой специализированные микросхемы, предназначенные для хранения цифрового образа формируемого изображения. Современные видеокарты могут использовать в своей работе также и оперативную память компьютера, что, впрочем, заметно замедляет работу устройства. Причиной тому служит недостаточная пропускная способность интерфейса взаимодействия с остальными частями компа - даже при использовании современных реализаций шины AGP, ее пропускная способность заметно ниже пропускной способности шины видеопамяти. К слову, на сегодняшнем рынке уже можно встретить видеоадаптеры, имеющие 256-разрядную шину памяти, работающую на частоте до 200 мегагерц. Можешь прикинуть на бумажке пропускную способность такой шины ;]. По этой причине производители видеокарт предпочитают снабжать видеоадаптеры существенным объемом памяти (128 МБ - уже стандартный объем для современных видюх).

Биос

Реализация любой операции (смена видеорежима, разрешения, управление картинкой, и т.д.) требует от CPU компьютера выполнения длиннющей последовательности низкоуровневых команд, что крайне неэффективно в плане быстродействия. Чтобы решить эту проблему, многие стандартные и часто вызываемые функции описываются в кодах команд центрального процесса, их совокупность представляет собой API управления видеокартой. Все эти функции - фактически, программы - размещаются в BIOS'е видеокарты. Также там находится некоторая управляющая устройством информация, таблица для аппаратного знакогенератора и прочие полезные штуковины. BIOS видеокарты хранится в микросхеме ПЗУ, размещенной на плате, и обычно имеет объем равный 32 килобайтам.

Ускорение 3D

Эпоха 3D-графики началась сравнительно недавно, однако представить себе современный компьютер без видеоадаптера с аппаратно реализованными функциями 3D-графики уже нельзя. Дело в том, что все 3D-приложения используют одинаковые технологии построения изображения (анизотропная фильтрация, рельефное текстурирование, антиалиасинг и т.д.) - высокоуровневые модели, позволяющие генерировать сложные 3D-объекты наиболее эффективным образом, затрачивая минимально возможное количество ресурсов при устраивающем юзверя качестве. Чипсет 3D-графики представляет собой, фактически, CISC-процессор с множеством аппаратно реализованных довольно специфичных функций, в которые, впрочем, входят и обыкновенные арифметические операции. Частоты, на которых работают эти чипы, постоянно растут, поэтому уже не редкость видеоадаптеры с частотой 400 и более мегагерц. Естественно, при таких частотах процессоры довольно сильно греются, в результате чего появилась необходимость в установке на видеокарты дополнительных систем охлаждения, которые иногда даже превосходят в размерах кулеры для CPU.

Интерфейсы взаимодействия с PC

Лет десять назад, когда все гонялись за небольшими коробками с модной тогда надписью «SVGA», видеоадаптеры подключались к компьютерам через шину ISA. Веселое было время, возможности графики сводились к 16-ти цветам, о 3D никакой речи, естественно, и не шло. Через некоторое время видеоадаптеры перешли на более быстродействующую шину - PCI, но и ее производительности вскоре перестало хватать. Чтобы наглядно показать необходимые скорости передачи данных, произведем несложный расчет. Предположим, юзер хочет видеть на экране картинку с разрешением 1024*768, глубиной цвета 32 бита и не хочет при этом ломать себе глаза 60 герцами. Получается, что для этого видеокарточке нужно передать по крайней мере 1024*768*32*85 бит в секунду, что равняется двумстам семидесяти мегабайтам в секунду. Шина PCI сдерживала производителей своей производительностью, в результате чего те нашли выход в новой шине - AGP (Axelerated Graphic Port). Это 64-разрядная шина, работающая на сравнительно высокой частоте и, стало быть, обеспечивающая более высокие скорости передачи данных. Кроме того, множество оригинальных инженерных решений позволило за один такт шины делать несколько (n) передач 64 битов информации. Именно это n имеют в виду, когда говорят, например, что "эта видюха поддерживает шину AGP 8x".

Содержание
ttfb: 4.2870044708252 ms