Материал предоставлен http://it.rfet.ru

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

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

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

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

  • MDA - монохромный дисплейный адаптер;
  • CGA - цветной графический адаптер;
  • MGA - монохромный графический адаптер;
  • EGA - улучшенный графический адаптер;
  • VGA - видеографическая матрица.

Адаптер MDA, разработанный фирмой IBM, является одним из самых ранних адаптеров, может воспроизводить лишь алфавитно-цифровую информацию и небольшое количество служебных символов. В нем отсутствуют графические возможности. Он обеспечивает разрешающую способность экрана 80 х 25 символов, размер точечной матрицы символа 9х14 пикселов.

Адаптер CGA, производимый той же фирмой, обеспечивает воспроизведение информации только со средним разрешением и ограниченным количеством цветов (этот адаптер был предназначен для работы с цифровыми RGB-мониторами). Обеспечивает разрешающую способность 80 х 25 символов на экране, имеет точечную символьную матрицу 8х8 пиксел. Из-за небольшого объема видеопамяти (всего 16 Кбайт) в графическом режиме адаптер обеспечивал при низкой разрешающей способности (320 х 200 пиксел) воспроизведение 4 цветов (способность монитора - 8 цветов), а при нормальной разрешающей способности мог работать только в монохромном режиме. Поскольку монитор позволял воспроизвести большее количество цветов, все цвета были разделены на две палитры: палитра 0 - зеленый, красный и коричневый (+ черный), палитра 1 - голубой, фиолетовый и белый. Переключение палитр производится с помощью прерывания BIOS.

Адаптер EGA начал выпускаться с 1984 г. и был оснащен видеопамятью емкостью 64, 128 или 256 Кбайт. Адаптер разрабатывался для монитора RGBrgb, способного воспроизводить 64 цвета. Но малый объем видеопамяти позволял работать с 4 палитрами по 16 цветов.

Видеографический матричный адаптер VGA, разработанный в 1988 г., позволял реализовать 640*480 точек в графическом режиме при 64-256 (зависит от объема видеопамяти) одновременно отображаемых цветах из 262 144 возможных. В текстовом режиме адаптер VGA позволяет отображать на экране 80 х 25 или 80 х 50 символов. Количество цветов, отображаемых в этом режиме, ограничено 16 цветами из 256 возможных. Ограничение на количество воспроизводимых цветов накладывает архитектура адаптера, стремление сделать его совместимым с адаптером EGA.

Исторически сложилось, что дисплеи могут работать в одном из двух режимов: символьном или графическом. В символьном режиме на экран может выводиться ограниченный состав символов, имеющих четко определенный графический образ: буквы, цифры, знаки пунктуации, математические знаки и знаки псевдографики. Состав этих символов определен системой кодирования, применяемой в данной ЭВМ. В Robotron 1715 состав символов определяется кодом КОИ-7; в ЕС ЭВМ - кодом DKOI, в IBM PC - кодом ASCH.

Для вывода символа на экран дисплея сначала определяется позиция, в которой должен появиться символ (номер символа в строке и порядковый номер строки), а затем по коду символа определяется его форма, которая и высвечивается на экране. Предельное количество символов, одновременно размещаемых на экране, называется информационной емкостью экрана. В символьном режиме на экране монитора IBM PC может быть высвечено 40, 80 или 132 (VESA BIOS EXTENTION) символа в строке. Всего на экране помещаются 25, 50 или 60 строк.

Форма выводимого символа определяется знакогенератором дисплея, в котором хранятся коды формы всех символов ASCII.

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

Основу адаптера любого типа составляет видеопамять: обычная динамическая (DRAM) или специальная двухпортовая (VRAM), допускающая одновременное обращение как со стороны системной магистрали, так и со стороны монитора.

Начиная с адаптера EGA видеопамять имеет плоскостную структуру: вся память делится на битовые плоскости. В каждой битовой плоскости одному пикселу выделяется один бит. Длина битовой плоскости определяет разрешающую способность экрана. Количество битовых плоскостей (в каждой из которых выделено по одному биту для соответствующего пиксела) определяет, сколько бит отводится для хранения атрибутивного признака пиксела. Если видеопамять имеет одну битовую плоскость, то такой дисплей может работать только в монохромном режиме (пиксел может быть либо ярким, либо темным). При наличии двух битовых плоскостей в видеопамяти может храниться 4 значения, определяющих, как должен выглядеть пиксел на экране (при цветном мониторе - четыре цвета, один из которых с кодом 00 - черный (т.е. фактически с помощью двух битовых плоскостей можно управлять RGB-монитором). При 8 битовых плоскостях атрибут пиксела обеспечивает кодирование %%2^8=256%% цветов - такой адаптер эффективно применять только для аналоговых RGB-мониторов, в которых между видеопамятью и управляющими цветом электродами ЭЛТ ставится цифро-аналоговый преобразователь (Digital to Analog Converter - DAC). B DAC из видеопамяти подается код цвета. Из DAC в ЭЛТ выдается аналоговый сигнал (код цвета преобразуется в величину напряжения на управляющем электроде).

Иногда между видеопамятью и DAC ставятся регистры палитры (RAM DAC). Атрибутивный признак каждого пиксела в этом случае обозначает номер регистра палитры, в котором хранится код цвета данного пиксела. При выборке соответствующего регистра палитры находящийся в нем код цвета передается в DAC и управляет свечением пиксела. Объем RAM DAC равен количеству имеющихся в наличии регистров палитры (в адаптере EGA - 16, в адаптере VGA для цифрового монитора - 64). RAM DAC загружается кодами цветов выбранной палитры с помощью специальной видеофункции BIOS перед началом работы, поэтому объем RAM DAC определяет, сколько цветов может одновременно находиться на экране (монитор может обеспечить и большее количество цветов, но количество регистров палитры ограничивает количество цветов выбранной палитрой).

Начиная с адаптеров SVGA (Super VGA), на которые нет единого стандарта, предпринимаются попытки снять ограничения, накладываемые выбором палитры - для этого код цвета из видеопамяти передается на DAC в момент “разжигания” пиксела. В режиме High Color на DAC передается 15-битовый код цвета (по 5 бит на каждый луч). В режиме True Color - 24-битовый код цвета (по 8 бит на каждый луч). Видеопамять для этого должна иметь соответственно 15 или 24 битовые плоскости.

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

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

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

Во всех адаптерах часть видеопамяти отводится под знакогенератор, в котором записаны коды формы выводимых на экран символов. В некоторых случаях в видеопамяти приходится хранить несколько знакогенераторов, например с национальными шрифтами.

Кроме видеопамяти в состав адаптера входят блок сопряжения с монитором, различные ускорители (графический, Windows-ускоритель, ЗD-ускоритель и др.), которые предназначены для выполнения вычислительных операций без обращения к МП ЭВМ, блок управления. Прямым толчком к развитию столь специализированного устройства явилось то, что графический пользовательский интерфейс, несомненно, удобен, но его использование требует от центрального процессора немалых вычислительных ресурсов, и современный графический ускоритель как раз и призван снять с него львиную долю вычислений по окончательному выводу изображения на экран.

Современная видеокарта состоит из следующих частей:

Графический процессор (Graphics processing unit (GPU) — графическое процессорное устройство) занимается расчётами выводимого изображения, освобождая от этой обязанности центральный процессор, производит расчёты для обработки команд трёхмерной графики. Является основой графической платы, именно от него зависят быстродействие и возможности всего устройства. Современные графические процессоры по сложности мало чем уступают центральному процессору компьютера, и зачастую превосходят его как по числу транзисторов, так и по вычислительной мощности, благодаря большому числу универсальных вычислительных блоков. Однако архитектура GPU прошлого поколения обычно предполагает наличие нескольких блоков обработки информации, а именно: блок обработки 2D-графики, блок обработки 3D-графики, в свою очередь, обычно разделяющийся на геометрическое ядро (плюс кэш вершин) и блок растеризации (плюс кэш текстур) и др.

Видеоконтроллер отвечает за формирование изображения в видеопамяти, даёт команды RAMDAC на формирование сигналов развёртки для монитора и осуществляет обработку запросов центрального процессора. Кроме этого, обычно присутствуют контроллер внешней шины данных (например, PCI или AGP), контроллер внутренней шины данных и контроллер видеопамяти. Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается ещё и RAMDAC. Современные графические адаптеры (AMD, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.

Видео-ПЗУ (Video ROM) — постоянное запоминающее устройство (ПЗУ), в которое записаны BIOS видеокарты, экранные шрифты, служебные таблицы и т. п. ПЗУ не используется видеоконтроллером напрямую — к нему обращается только центральный процессор. BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, задаёт все низкоуровневые параметры видеокарты, в том числе рабочие частоты и питающие напряжения графического процессора и видеопамяти, тайминги памяти. Также VBIOS содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих современных картах устанавливаются электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.

Видеопамять выполняет функцию кадрового буфера, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные. Видеопамять бывает нескольких типов, различающихся по скорости доступа и рабочей частоте. Современные видеокарты комплектуются памятью типа DDR, GDDR2, GDDR3, GDDR4, GDDR5 и HBM. Следует также иметь в виду, что, помимо видеопамяти, находящейся на видеокарте, современные графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCIE. В случае использования архитектуры Uniform Memory Access в качестве видеопамяти используется часть системной памяти компьютера.

Цифро-аналоговый преобразователь (ЦАП; RAMDAC — Random Access Memory Digital-to-Analog Converter) служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор.

TMDS (Transition-minimized differential signaling — дифференциальная передача сигналов с минимизацией перепадов уровней) передатчик цифрового сигнала без ЦАП-преобразований. Используется при DVI-D, HDMI, DisplayPort подключениях. С распространением ЖК-мониторов и плазменных панелей нужда в передаче аналогового сигнала отпала — в отличие от ЭЛТ они уже не имеют аналоговую составляющую и работают внутри с цифровыми данными. Чтобы избежать лишних преобразований, Silicon Image разрабатывает TDMS.

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

С появлением процессоров 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 — PCI Express версий 1.0, 1.1 и 2.0. Это последовательный, в отличие от AGP, интерфейс, его пропускная способность может достигать нескольких десятков ГБ/с. На данный момент произошёл практически полный отказ от шины AGP в пользу PCI Express. Однако стоит отметить, что некоторые производители до сих пор предлагают достаточно современные по своей конструкции видеоплаты с интерфейсами PCI и AGP — во многих случаях это достаточно простой путь резко повысить производительность морально устаревшего ПК в некоторых графических задачах.

Кроме шины данных, второе узкое место любого видеоадаптера — это пропускная способность (англ. bandwidth) памяти самого видеоадаптера. Причём изначально проблема возникла даже не столько из-за скорости обработки видеоданных (это сейчас часто стоит проблема информационного «голода» видеоконтроллера, когда он данные обрабатывает быстрее, чем успевает их читать/писать из/в видеопамять), сколько из-за необходимости доступа к ним со стороны видеопроцессора, центрального процессора и RAMDAC’а. Дело в том, что при высоких разрешениях и большой глубине цвета для отображения страницы экрана на мониторе необходимо прочитать все эти данные из видеопамяти и преобразовать в аналоговый сигнал, который и пойдёт на монитор, столько раз в секунду, сколько кадров в секунду показывает монитор. Возьмём объём одной страницы экрана при разрешении 1024x768 точек и глубине цвета 24 бит (True Color), это составляет 2,25 МБ. При частоте кадров 75 Гц необходимо считывать эту страницу из памяти видеоадаптера 75 раз в секунду (считываемые пикселы передаются в RAMDAC, и он преобразовывает цифровые данные о цвете пиксела в аналоговый сигнал, поступающий на монитор), причём ни задержаться, ни пропустить пиксел нельзя, следовательно, номинально потребная пропускная способность видеопамяти для данного разрешения составляет приблизительно 170 МБ/с, и это без учёта того, что необходимо и самому видеоконтроллеру писать и читать данные из этой памяти. Для разрешения 1600x1200x32 бит при той же частоте кадров 75 Гц номинально потребная пропускная составляет уже 550 МБ/с. Для сравнения, процессор Pentium-2 имел пиковую скорость работы с памятью 528 МБ/с. Проблему можно было решать двояко — либо использовать специальные типы памяти, которые позволяют одновременно двум устройствам читать из неё, либо ставить очень быструю память.

Системы визуального отображения информации (видеосистемы)Клавиатура