Графический адаптер базируется на процессоре. Что делать, если драйвер найти не получается

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

Наиболее распространенный видеоадаптер на сегодняшний день - адаптер SVGA (Super Video Graphics Array - супервидеографический массив), который может отображать на экране дисплея 1280х1024 пикселей при 256 цветах и 1024х768 пикселей при 16 миллионах цветов.

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

Рис. 2.12. Графический акселератор

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

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

TV-тюнеры - видеоплаты, превращающие компьютер в телевизор. TV-тюнер позволяет выбрать любую нужную телевизионную программу и отображать ее на экране в масштабируемом окне. Таким образом можно следить за ходом передачи, не прекращая работу.

2.13. Клавиатура

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

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

Наиболее распространена сегодня клавиатура c раскладкой клавиш QWERTY (читается "кверти"), названная так по клавишам, расположенным в верхнем левом ряду алфавитно-цифровой части клавиатуры:

Рис. 2.13. Клавиатура компьютера

Такая клавиатура имеет 12 функциональных клавиш , расположенных вдоль верхнего края. Нажатие функциональной клавиши приводит к посылке в компьютер не одного символа, а целой совокупности символов. Функциональные клавиши могут программироваться пользователем. Например, во многих программах для получения помощи (подсказки) задействована клавиша F1 , а для выхода из программы - клавиша F10 .

Управляющие клавиши имеют следующее назначение:

Малая цифровая клавиатура используется в двух режимах - ввода чисел и управления курсором . Переключение этих режимов осуществляется клавишей Num Lock .

Клавиатура содержит встроенный микроконтроллер (местное устройство управления), который выполняет следующие функции:

    последовательно опрашивает клавиши, считывая введенный сигнал и вырабатывая двоичный скан-код клавиши;

    управляет световыми индикаторами клавиатуры;

    проводит внутреннюю диагностику неисправностей;

    осуществляет взаимодействие с центральным процессором через порт ввода-вывода клавиатуры.

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

Иногда пользователю необходимо узнать модель своей видеокарты. И сделать это можно несколькими способами.

  1. Через Диспетчер устройств

Чтобы открыть Диспетчер устройств devmgmt.msc . Откроется Диспетчер устройств , в котором нажмите по плюсику рядом с категорией Видеодаптеры . Как видно на скриншоте, в ПК установлена видеокарта ATI Radeon HD 6800 Series.


В случае, если вместо модели написано «Стандартный VGA графический адаптер», то это значит, что драйвера для видеокарты не были установлены, поэтому Windows не может определить ее тип и модель.

Аналогично, если в Видеоадаптеры ничего нет, а в Другие устройства находится «Видеоконтроллер (VGA-совместимый)» или «Стандартный VGA графический адаптер», то это опять же значит, что официальный драйвер установлен не был, поэтому Windows установила свой драйвер. В этом случае узнать версию драйвера можно так: нажмите по Стандартный VGA графический адаптер (или Видеоконтроллер (VGA-совместимый) ») правой клавишей мыши и выберите пункт Свойства .

В нем переключитесь на вкладку Сведения , а в разделе Свойство смените пункт Описание устройства на ИД оборудования .

В разделе Значения нажмите по первой строчке правой клавишей мыши и выберите Копировать .

Скопированный текст вставьте в поисковик. Как видно на скриншоте, искомая видеокарта - ATI Radeon HD 6800 Series.

  1. Через Параметры экрана

Для этого на пустом месте рабочего стола нажмите правой клавишей мыши и в контекстном меню выберите пункт Разрешение экрана . В открывшемся окне найдите Дополнительные параметры и откройте их. Появится окно со свойствами графического редактора. В разделе Сведения об адаптере найдите пункт Строка адаптера . То, что написано рядом, и есть модель видеокарты.

  1. С помощью программы

Эта программа поможет узнать производителя видеокарты и ее модель и версию драйвера. А если драйвер отсутствует, Everest подскажет и официальный сайт производителя графического адаптера, откуда можно скачать его последнюю версию.

  1. Через средство диагностики DirectX

Чтобы открыть Средство диагностики DirectX , нажмите Win+R на клавиатуре и в появившемся окне напишите dxdiag . Переключитесь во вкладку Экран и в разделе Устройство вы увидите производителя и модель видеокарты.

  1. Сняв крышку системного блока

Обычно на видеокартах всегда указывается ее производитель и модель.

Сигналы, подаваемые на монитор, поступают из видеоадаптера, встроенного в систему или подключаемого к компьютеру.

Существует три способа подключения компьютерных систем к электронно-лучевому или жидкокристаллическому монитору:

Отдельные видеоплаты. Этот метод, для реализации которого требуются разъемы расширения AGP или PCI, обеспечивает наиболее высокий уровень эффективности и максимальную эксплуатационную гибкость при выборе объема памяти и необходимых возможностей (рисунок 17);

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

Рисунок 15 – Внешний вид видеоадаптера

Для работы видеоадаптера необходимы следующие компоненты:

BIOS (Basic Input/Output System - базовая система ввода-вывода);

BIOS видеоадаптера, подобно системной BIOS, хранится в микросхеме ROM; она содержит основные команды, которые предоставляют интерфейс между оборудованием видео-адаптера и программным обеспечением. Программа, которая обращается к функциям BIOS видеоадаптера, может быть автономным приложением, операционной системой или системной BIOS. Обращение к функциям BIOS позволяет вывести информацию о мониторе во время выполнения процедуры POST и начать загрузку системы до начала загрузки с диска любых других программных драйверов. BIOS самостоятельного видеоадаптера не зависит от BIOS системной платы. При использовании видеоадаптера, встроенного в набор системной логики BIOS материнской платы и видеоадаптера является общим.

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

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

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

Объем памяти, необходимый для создания режима с заданным разрешением и количеством цветов, вычисляется следующим образом. Для кодирования каждого пикселя изображения необходим определенный объем памяти, а общее количество пикселей определяется заданным разрешением. Например, при разрешении 1 024×768 на экране отображается 786 432 пикселя.

Если бы это разрешение поддерживало только два цвета, то для отображения каждого пикселя понадобился бы всего один бит памяти, при этом бит со значением 0 определял бы черную точку, а со значением 1 - белую. Отведя на каждый пиксель 24 бит памяти, можно отобразить более 16,7 млн цветов, так как количество возможных комбинаций для 4-разрядного двоичного числа - 16 777 216 (т.е. 2 24). Перемножив количество пикселей, используемых при заданном разрешении экрана, на число битов, требующихся для отображения каждого пикселя, получим объем памяти, необходимый для формирования и хранения изображений в этом формате. Ниже приведен пример подобных вычислений:

1 024 × 768 = 786 432 пикселя × 24 бит/пиксель = 18 874 368 бит = 2 359 296 байт = 2,25 Мбайт

Цифроаналоговый преобразователь видеоадаптера (обычно называемый RAMDAC) преобразует генерируемые компьютером цифровые изображения в аналоговые сигналы, которые может отображать монитор. Быстродействие цифроаналогового преобразователя измеряется в МГц; чем быстрее процесс преобразования, тем выше вертикальная частота регенерации. В современных высокоэффективных видеоадаптерах быстродействие может достигать 300 МГц и выше.

При увеличении быстродействия цифроаналогового преобразователя повышается частота вертикальной регенерации, что позволяет достичь более высокого разрешения экрана при оптимальных частотах обновления (72–85 Гц и более). Как правило, видеоадаптеры с быстродействием от 300 МГц и выше поддерживают разрешения до 1 920×1 200 при частотах обновления более 75 Гц. Разумеется, не забудьте убедиться в том, что необходимое разрешение поддерживается как монитором, так и используемым видеоадаптером.

Разъем. Видеоадаптеры обычно подключаются к разъему AGP на системной плате, реже встречаются графические адаптеры под PCI - это скорее удел старых моделей видеоадаптеров.

С монитором видеоадаптер связывается через специальный интерфейс VGA или DVI (рисунок 18).

Рисунок 16 – разъемы DVI и VGA

VGA – это интерфейс аналоговой передачи сигнала, т.е. передаются сигналы управления тремя основными цветами, но каждый сигнал имеет 64 уровня яркости. В результате число возможных комбинаций (цветов) возрастает до 262 144 (64). Для создания реалистичного изображения средствами компьютерной графики цвет часто оказывается важнее высокого разрешения, поскольку человеческий глаз воспринимает картинку с большим количеством цветовых оттенков как более правдоподобную.

DVI – это режим передачи цифрового сигнала, т.е. сигнал преобразуется в аналоговый не при выходе из видеоадаптера, а в самом мониторе. В этом и заключается преимущество DVI над VGA. Сигнал цифровой имеет только два дискретных значения: 1 и 0, т.е. каждый раз, когда вы передаете единицу цифровым способом, вы получаете именно единицу. В независимости от колебаний напряжения или от любых помех, происходящих при передаче. В аналоговой же системе, в результате передачи единицы, можно получить уже не единицу, а 0,935 или 1,062. Поэтому необязательно, что вы увидите на экране именно то, что формирует видеокарта.

Основными характеристиками видеоадаптера являются: частота памяти, частота процессора, вид слота и разъем для подключения к монитору.

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

Характеристики

Основные характеристики видеоадаптеров :

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

Количество видеопамяти, измеряется в Мегабайтах - встроенная оперативная память на самой плате, значение показывает, какой объем информации может хранить графическая плата.

Частоты ядра и памяти - измеряются в Мегагерцах, чем больше, тем быстрее видеокарта будет обрабатывать информацию.

Техпроцесс - технология печати, измеряется в нанометрах (нм.), современные карты выпускаются по 110 нм или 90 нм нормам техпроцесса. Чем меньше данный параметр, тем больше элементов можно уместить на кристалле.

Текстурная и пиксельная скорость заполнения, измеряется в млн. пикселей в секунду, показывает количество выводимой в информации в единицу времени.

Выводы карты - раньше видеоадаптер имел всего один разъём VGA, сейчас платы оснащают в дополнение выходом DVI-I или просто с двумя DVI-I для подключения двух ЖК-мониторов, а также композитными видеовыходом и видеовходом (обозначается, как ViVo)

Конструктивное исполненение

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

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

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

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

цифро-аналоговый преобразователь ЦАП (RAMDAC) - служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока - три цифроаналоговых преобразователя, по одному на каждый цветовой канал (красный, синий, зеленый, RGB), и SRAM для хранения данных о гамма коррекции. Большинство ЦАП имеют разрядность 8 бит на канал - получается по 256 уровней яркости на каждый основной цвет, что в сумме дает 16.7 млн. цветов (и за счет гамма коррекции есть возможность отображать исходные 16.7 млн. цветов в гораздо большее цветовое пространство). Некоторые RAMDAC имеют разрядность по каждому каналу 10bit (1024 уровня яркости), что позволяет сразу отображать более 1 млрд. цветов, но эта возможность практически не используется. Для поддержки второго монитора часто устанавливают второй ЦАП. Стоит отметить, что мониторы и видеопроекторы подключаемые к цифровому DVI выходу видеокарты для преобразования потока цифровых данных используют собственные цифроаналоговые преобразователи и от характеристик ЦАП видеокарты не зависят.

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

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

====== **Видеопамять** ======

Кроме шины данных, второе узкое место любого видеоадаптера - это пропускная способность (англ. bandwidth) памяти самого видеоадаптера. Причем изначально проблема возникла даже не столько из-за скорости обработки видеоданных (это сейчас часто стоит проблема информационного голода видеокантроллера, когда он данные обрабатывает быстрее чем успевает их читать/писать из/в видеопамять), сколько из-за необходимости доступа к ним со стороны чипа видеоадаптера, центрального процессора, и RAMDAC’а. Дело в том, что при высоких разрешениях и большой глубине цвета для отображения страницы экрана на мониторе необходимо прочитать все эти данные из видеопамяти и преобразовать в аналоговый сигнал который и пойдет на монитор. Если объяснить более понятно и просто, то начнем с того, что то изображение что вы видите на экране монитора хранится не в мониторе, а в памяти видеоадаптера. И его нужно прочитать из памяти и вывести на экран столько раз в секунду, сколько кадров в секунду показывает монитор. Возьмем объем одной страницы экрана при разрешении 1024×768 точек и глубине цвета 24bit (True Color), это составляет 2.25MB. При частоте кадров 75Гц необходимо считывать эту страницу из памяти видеоадаптера 75 раз в секунду (считываемые пиксели передаются в RAMDAC и он преобразовывает цифровые данные о цвете пикселя в аналоговый сигнал поступающий на монитор), причем ни задержаться, ни пропустить пиксель нельзя, следовательно номинально потребная пропускная способность видеопамяти для данного разрешения составляет приблизительно 170MB/сек, и это без учета того, что необходимо и самому видеоконтроллеру писать и читать данные из этой памяти. Для разрешения 1600x1200x32бит при той же частоте кадров 75Гц, номинально потребная пропускная составляет уже 550 МБайт в секунду, для сравнения, процессор Pentium2 имел пиковую скорость работы с памятью 528МБ в секунду. Проблему можно было решать двояко - либо использовать специальные типы памяти, которые позволяют одновременно двум устройствам читать из нее, либо ставить очень быструю память. О типах памяти и пойдет речь.

FPM DRAM - FPM DRAM (Fast Page Mode Dynamic RAM - динамическое ОЗУ с быстрым страничным доступом) - основной тип видеопамяти, идентичный используемой в системных платах. Использует асинхронный доступ, при котором управляющие сигналы жестко не привязаны к тактовой частоте системы. Активно применялся примерно до 1996 г.

VRAM (Video RAM - видеоОЗУ) - так называемая двух-портовая DRAM. Этот тип памяти обеспечивает доступ к данным со стороны сразу двух устройств, то есть есть возможность одновременно писать данные в какую-либо ячейку памяти, и одновременно с этим читать данные из какой-нибудь соседней ячейки. За счет этого позволяет совмещать во времени вывод изображения на экран и его обработку в видеопамяти, что сокращает задержки при доступе и увеличивает скорость работы. То есть RAMDAC может свободно выводить на экран монитора раз за разом экранный буфер ничуть не мешая видео чипу осуществлять какие-либо манипуляции с данными. Но однако это все та же DRAM и скорость у нее не слишком высокая.

WRAM (Window RAM) - вариант VRAM, с увеличенной на ~ 25 % пропускной способностью и поддержкой некоторых часто применяемых функций, таких как отрисовка шрифтов, перемещение блоков изображения и т. п. Применяется практически только на акселераторах фирмы Matrox и Number Nine, поскольку требует специальных методов доступа и обработки данных, наличием всего одного производителя данного типа памяти (Samsung) сильно сократило возможности ее использования. Видеоадаптеры построенные с использованием данного типа памяти не имеют тенденции к падению производительности при установке больших разрешений и частот обновления экрана, на одно-портовой же памяти в таких случаях RAMDAC все большее время занимает шину доступа к видеопамяти и производительность видеоадаптера может сильно упасть.

EDO DRAM (Extended Data Out DRAM - динамическое ОЗУ с расширенным временем удержания данных на выходе) - тип памяти с элементами конвейеризации, позволяющий несколько ускорить обмен блоками данных с видеопамятью приблизительно на 25 %.

SDRAM (Synchronous Dynamic RAM - синхронное динамическое ОЗУ) пришел на замену EDO DRAM и других асинхронных одно-портовых типов памяти. После того, как произведено первое чтение из памяти, или первая запись в память, последующие операции чтения или записи происходят с нулевыми задержками. Этим достигается максимально возможная скорость чтения и записи данных.

DDR DRAM (Double Data Rate) - вариант SDRAM с передачей данных по двум фронтам сигнала, получаем в результате удвоение скорости работы. Дальнейшее развитие пока происходит в виде очередного уплотнения числа пакетов в одном такте шины (DDR2, QDDR и т. п.) SGRAM (Synchronous Graphics RAM - синхронное графическое ОЗУ) вариант DRAM с синхронным доступом. В принципе, работа SGRAM полностью аналогична SDRAM, но дополнительно поддерживаются еще некоторые специфические функции, типа блоковой и масочной записи. В отличие от VRAM и WRAM, SGRAM является одно-портовой, однако может открывать две страницы памяти как одну, эмулируя двухпортовость других типов видеопамяти.

MDRAM (Multibank DRAM - много банковое ОЗУ) - вариант DRAM разработанный фирмой MoSys, организованный в виде множества независимых банков объемом по 32КБ каждый, работающих в конвейерном режиме.

RDRAM (RAMBus DRAM) память использующая специальный канал передачи данных (Rambus Channel), представляющий собой шину данных шириной в один байт. По этому каналу удается передавать информацию очень большими потоками, наивысшая скорость передачи данных для одного канала на сегодняшний момент составляет 1600MB/сек (частота 800MHz, данные передаются по обеим срезам импульса). На один такой канал можно подключить несколько чипов памяти. Контроллер этой памяти работает с одним каналом Rambus, на одном чипе логики можно разместить четыре таких контроллера, значит теоретически можно поддерживать до 4 таких каналов, обеспечивая максимальную пропускную способность в 6.4GB/сек. Минус этой памяти - нужно читать информацию большими блоками, иначе её производительность резко падает.

Акселераторы

Начнём традиционно с истории. Первые видеокарты не были даже не 3D-ускорителями, а не были ускорителями вообще. Они служили лишь как ЦАП (цифро-аналоговый преобразователь) – преобразовывали данные, рассчитанные центральным процессором (представляющий собой цифровой код) в аналоговый сигнал, доступный для отображения на мониторе. Но сложность изображений росла, и дальше так продолжаться не могло. Тенденция усложнения изображений привела к появлению 2D- ускорителя – видеокарты, имеющий свой собственный, пусть и простейший процессор, бравший на себя часть функций, разгружая центральный процессор. Но когда появилась необходимость строить 3D изображения – ситуация осложнилась.

Чтобы построить, скажем, простой фрагмент стены, процессору нужно было выполнить следующие операции: сначала необходимо выделить грани этого объекта, затем наложить текстуры, добавить освещение… а когда таких объектов сотни, их форма сложна, они движутся и перекрываются, отбрасывают тени и т.д. задача становится невероятно сложной. Для помощи процессору в решении этой задачи и были созданы ускорители трёхмерной графики, о работе которых и пойдёт речь в этой статье.

Итак, каждая стадия построения изображения очень ресурсоемка, требует множества расчётов. Вполне логичным выглядит шаг вынесения их из CPU и переправка на специализированный процессор видеокарты. Особенно если учитывать, что графические данные имеют потоковый характер, и вычислительную потребность значительно большую, чем логическую. Каждый новый виток развития ускорителей представляет собой некое поколение, поэтому для начала введём стандартизацию поколений (понимать поколения можно по-разному – я приведу лишь один вариант):

1. Первое поколение, которое было более-менее распространено – это акселераторы, использующие API Direct3D 5 и Glide. Представителем первых была NVIDIA Riva128, а вторых – 3Dfx Voodoo. Карты этого поколения брали на себя только последнюю часть построения сцены – текстурирование и закраску. Все предыдущие этапы выполнял CPU.

2. Второе поколение использовало API Direct3D 6, также в это время началось стремительное возрождение API , разработанного SGI – OpenGL. Представителями карт того времени были NVIDIA RivaTNT и ATI Rage. Это было практически эволюционное развитие карт предыдущего поколения.

3. Третье поколение – Direct3D 7. Именно тогда появились карты, снабженные TCL-блоком, снимавшим с CPU значительную часть нагрузки. Этот блок отвечал за трансформацию, освещение и отсечение. (TCL - Transformaton-Clipping-Lighting) Теперь видеокарта строила сцену самостоятельно – от начала до конца. Представителями этого поколения стали NVIDIA GeForce 256 и ATI Radeon.

4. Четвёртое поколении – очередная революция. Кроме прочих новых возможностей API Direct3D 8 (и 8.1) эти карты принесли с собой самую главную возможность – аппаратные шейдеры. Причину их появления мы опишем чуть позже. Представляют это поколение NVIDIA GeForce 3,4 и ATI Radeon 8500, 9000, 9100, 9200.

5. Пятое поколение – это, в основном, развитие шейдерных технологий (версия 2.0), и попытка ввести АА и АФ в ряд обязательных к использованию функций. Это поколение, поддерживает API Direct3D версии до 9.0b включительно, представляют ATI RADEON 9500, 9600, 9700, 9800, Х800, а также NVIDIA GeForce FX 5200, 5500, 5600, 5700, 5800, 5900, 5950.

6. Шестое поколение – это поколение DirectX9.0c. Оно пока включает в себя только одну серию NVIDIA GeForce 6 и платы GeForce 6800Ultra/6800GT/6800 на базе чипа NV40. Эти карты поддерживают шейдеры версии 3.0, и предлагают некоторые другие возможности. Теперь, определившись с общим устройством конвейера и поколениями видеокарт, мы более подробно рассмотрим вершинный и фрагментный процессоры, а также определимся в отличиях версий соответствующих шейдеров.

Причиной появления шейдеров стало отсутствие какой-либо гибкости у фиксированного TCL блока. Быстро стало понятно, что ждать момента, когда производители внесут очередную порцию функций в TCL блок видеокарт – не лучший выход. Такой подход не устраивал никого. Разработчикам не нравилась мысль, что для того, чтобы внести в, например, игру новый эффект им надо годик подождать выхода нового ускорителя. Производителям тоже не светило ничего хорошего – им бы пришлось постоянно увеличивать как сами чипы, так и драйверы к ним. Это и стало причиной появления шейдеров – программ, способных настраивать ускоритель так, как того требует следующая сцена. Шейдер – это программа, которая загружается в ускоритель, и конфигурирует его узлы для обработки соответствующих элементов. Теперь нет ограничения заранее заданным набором способов обработки эффектов. Теперь стало возможно составлять из стандартных инструкций любые программы (ограниченные спецификациями используемой версией шейдера), задающие необходимые эффекты. Шейдеры делятся по своим функциям на вершинные и фрагментные (пиксельные): первые работают с вершинами и треугольниками, заменяя собой функциональность TCL блока (сейчас он практически исчез – в случае необходимости он эмулируется специальным вершинным шейдером). Фрагментные же шейдеры служат для создания программ обработки фрагментов размеров 2х2 пикселя – квадов. Они необходимы для реализации некоторых текстурных эффектов. Шейдеры также характеризуются номером версии - каждая последующая добавляет к предыдущим всё новые и новые возможности. Наиболее свежей спецификацией фрагментных и вершинных шейдеров на сегодняшний день является версия 3.0, поддерживаемая через API DirectX 9с, - на нее и будут ориентироваться как производители акселераторов, так и разработчики новых игр. На их поддержку аппаратурой стоит обращать внимание и пользователям, желающим приобрести современную игровую видеокарту. Обратим внимание на главное отличие шейдеров 3.0 от предыдущих версий (кроме 2.0а) – это DFC – Dynamic Flow Control – динамическое управление потоком. С одной стороны – это великолепная возможность, позволяющая заметно повысить скорость построения сцены, с другой – лишние транзисторы, и как вытекающие побочные эффекты, лишнее тепло и ниже максимальные частоты. Давайте более подробно опишем эту возможность. Представим себе ситуацию, когда для какой-либо вершины (или фрагмента) шейдер нужно выполнить не весь, а только 12% от него. В случае применения DFC мы выполним лишь те необходимые 12%, основываясь на параметрах объекта. Без DFC мы вынуждены выполнить шейдер целиком. Легко заметить, что с DFC мы получим выигрыш без малого в 10 раз, при этом, заплатив пониженной производительностью на вершинах, для которых нужно выполнить все 100% шейдера. Именно по этому в сети до сих пор не утихают споры – хорошо это или нет. Я не буду проводить сравнения – тут каждый сам делает выбор, а лишь отмечу, что я лично сторонник третьей шейдерной модели. Первые шейдеры состояли всего из нескольких команд, и их нетрудно было написать на низкоуровневом языке ассемблера. Хотя сложность отладки ассемблерного кода поначалу отпугнула от шейдеров многих разработчиков… Но с ростом сложности шейдерных эффектов, насчитывающих иногда десятки и сотни команд, возникла необходимость в более удобном, высокоуровневом языке написания шейдеров. Их появилось сразу два: NVIDIA Cg (C for graphics) и Microsoft HLSL (High Level Shading Language) - последний является частью стандарта DirectX 9. Достоинства и недостатки этих языков, и прочие нюансы будут интересны только программистам, так что подробнее на них мы останавливаться не станем. Отметим только, что Cg не получил широкого распространения, ввиду появления нового, более продвинутого GLSL – аналога HLSL для API OpenGL.

История

Одним из первых графических адаптеров для IBM PC стал MDA (Monochrome Display Adapter) в году. Он работал только в текстовом режиме с разрешением 80×25 символов (физически 720×350 точек) и поддерживал пять атрибутов текста: обычный, яркий, инверсный, подчёркнутый и мигающий. Никакой цветовой или графической информации он передавать не мог, и то, какого цвета будут буквы, определялось моделью использовавшегося монитора. Обычно они были чёрно-белыми, янтарными или изумрудными. Фирма Hercules в году выпустила дальнейшее развитие адаптера MDA, видеоадаптер графическое разрешение 720×348 точек и поддерживал две графические страницы. Но он всё ещё не позволял работать с цветом.

Первой цветной видеокартой стала IBM и ставшая основой для последующих стандартов видеокарт. Она могла работать либо в текстовом режиме с разрешениями 40×25 и 80×25 (матрица символа - 8×8), либо в графическом с разрешениями 320×200 или 640×200. В текстовых режимах доступно 256 атрибутов символа - 16 цветов символа и 16 цветов фона (либо 8 цветов фона и атрибут мигания), в графическом режиме 320×200 было доступно четыре палитры по четыре цвета каждая, режим высокого разрешения 640×200 был монохромным. В развитие этой карты появился

Стоит заметить, что интерфейсы с монитором всех этих типов видеоадаптеров были цифровые, MDA и HGC передавали только светится или не светится точка и дополнительный сигнал яркости для атрибута текста «яркий», аналогично CGA по трём каналам (красный, зелёный, синий) передавал основной видеосигнал, и мог дополнительно передавать сигнал яркости (всего получалось 16 цветов), EGA имел по две линии передачи на каждый из основных цветов, то есть каждый основной цвет мог отображаться с полной яркостью, 2/3, или 1/3 от полной яркости, что и давало в сумме максимум 64 цвета.

В ранних моделях компьютеров от IBM PS/2 , появляется новый графический адаптер (приобретена AMD в 2006 г.)

Специализированные

Другие производители

  • PNY Technologies (партнер NVIDIA)
  • 3dfx (приобретена NVidia)
  • XGI Technology Inc. (приобретена ATI в 2006 г.)
  • Литература

    • Скотт Мюллер Модернизация и ремонт ПК = Upgrading and Repairing PCs. - 17 изд. - М.: «Вильямс» , 2007. - С. 889-970 . - ISBN 0-7897-3404-4
    Стандарты видеоадаптеров и мониторов
    Видеоадаптеры
    MDA | CGA | PGC | MCGA | |
    VGA | XGA | XGA+ | SXGA+ |
    Широкоэкранные варианты
    WXGA | WSXGA/WXGA+ | WSXGA+ |