Что такое адаптер и графический акселератор. Графические акселераторы

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

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

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

Что такое клавиатура?

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

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

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

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

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

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



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

  • последовательно опрашивает клавиши, считывая введенный сигнал и вырабатывая двоичный скан-код клавиши;
  • управляет световыми индикаторами клавиатуры;
  • проводит внутреннюю диагностику неисправностей;
  • осуществляет взаимодействие с центральным процессором через порт ввода-вывода клавиатуры.

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

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

AMD vs nVidia
На рынке сейчас существует только два производителя видеочипов: компании AMD и nVidia. Перед приобретением графического акселератора стоит задуматься, карточку какого производителя вы бы хотели видеть в системном блоке своего компьютера. У обеих компаний есть свои достоинства и недостатки, на которых стоит остановиться подробнее.
Компания nVidia на данный момент занимает лидирующие позиции на рынке, и у большинства пользователей графику обрабатывает графический чип калифорнийской корпорации. Достоинствами nVidia можно назвать качественные драйверы и поддержку технологии PhysX, которая интегрирована во многие видеоигры. Поддержка PhysX обеспечивает реалистичную обработку физических эффектов: физики жидкостей, тканей, частиц. В том случае, если видеокарта не имеет аппаратной поддержки данной технологии, это приводит к серьезному падению производительности в игровых приложениях
У видеочипов компании AMD (ранее выпускавшихся под брендом Radeon) также есть свои козыри в рукаве. Как правило, видеокарты, созданные на основе чипов AMD, могут похвастаться большей производительностью при меньшей цене. Также считается, что чипы от канадской корпорации более пригодны для разгона с помощью специальных утилит. В то же время, как показывает практика, видеокарты на чипах от AMD менее надежны и чаще сбоят в ресурсоемких приложениях.
В итоге вечную дилемму «что же купить, AMD или nVidia, каждый должен решить для себя самостоятельно. Что для вас важнее: более высокая надежность или же производительность? Нужна ли вам поддержка PhysX и стоит ли за нее переплачивать? В любом случае, модельный ряд видеокарт у обеих корпораций включает в себя огромное количество предложений, на которые стоит обратить внимание.
Выбирая ту или иную графическую карту, вне зависимости от производителя, стоит в первую очередь ориентироваться на мощностные показатели и объективные результаты тестов в специальных программах-бренчмарках. Особенно хорошо видеоплату протестирует программа 3D Mark.

Бегом в магазин.
Если ориентироваться на видеокарту среднего уровня (это где-то от 3000 руб. до 4000 руб.), то стоит обратить внимание на последние решения от nVidia GeForce GTX 550 или же AMD HD 7770. Это относительно недорогие и в то же время производительные чипы, которые позволят играть во все современные видеоигры в высоком разрешении и без падений FPS.
Стоит остановиться на конкретных моделях. Среди карт на основе видеочипа nVidia GeForce GTX 550 особенно хороша Palit GeForce GTX 550 Ti 1024MB GDDR5. Видеоплата работает с интерфейсом PCI-Express x16 2.0, поддерживаемом большинством современных материнских плат. 1024 Мб видеопамяти будет более чем достаточно для комфортной игры в full-HD разрешении, видеочип достаточно производителен и способен работать на частоте 900 МГц. Благодаря качественной системе охлаждения данный показатель может быть повышен примерно на 15%. Кулер имеет весьма широкие лопасти, что избавит пользователей от излишнего шума. Что касается памяти, то она работает на частоте 1025 МГц, что весьма неплохо и соответствует самым строгим требованиям сегодняшних видеоигр. Естественно, устройство поддерживает такие технологии, как Nvidia SLI (позволяет подключать одновременно две видеоплаты), а также 3D Vision, 3D Vision Surround, CUDA, PureVideo HD и PhysX.
Видеокарта Sapphire HD 7770 может похвастаться более высокой производительностью при меньшей цене. Заплатить придется, как уже говорилось выше, отсутствием технологий 3D Vision и PhysX. GDDR5 память объемом 1024MB работает на частоте 1125 МГц. Графический чип работает на крейсерской частоте 1 000 МГц, но опять-таки может быть разогнан.

Аttention!
Ориентируясь на данные рекомендации, вы легко сможете приобрести недорогую, но производительную видеокарту. При этом стоит помнить, что нет ничего более изменчивого, чем рынок графических ускорителей. Сегодня видеокарта стоит 5000, а завтра за нее никто не даст и 1000, поэтому нужно быть предельно внимательным, чтобы не быть обманутым недобросовестным продавцом.

Для решения многих задач с использованием компьютера необходима высокока­чественная графика. Изображение такого качества требует вывода на экран боль­шого количества пикселов. Но сначала цвет каждого пиксела нужно вычислить и записать его в видеобуфер. Оттуда информация пересылается в дисплей с такой скоростью, чтобы экран обновлялся по меньшей мере 30 раз в секунду.

Вычисление интенсивности и цвета пикселов может выполняться программ­ным обеспечением. Результирующее изображение следует записать в видеобу­фер, а оттуда переслать на дисплей через шину компьютера. Однако объемы обра­батываемых таким образом данных будут настолько велики, что, если возложить всю их обработку на процессор, у него не останется времени для выполнения дру­гих задач. Кроме того, использование шины компьютера для пересылки содержи­мого видеобуфера на дисплей приведет к тому, что шина также почти полностью будет занята этими данными. Если один пиксел занимает 32 бита, для изображе­ния размером 1024 х 1024 пикселов понадобится 4 Мбайт, и для его пересылки потребуется шина со скоростью передачи не менее 120 Мбайт/с.

В большинстве графических приложений на экран выводятся трехмерные (3D) объекты. В частности, в компьютерных играх создается искусственный трехмер­ный мир с видеоизображениями, формируемыми программным путем. Для их по­лучения требуются очень сложные вычисления, которые лучше всего выполнять на отдельном специализированном процессоре. Такой процессор, называемый GPU (Graphics-Processing Unit - устройство обработки графики), является осно­вой популярных графических плат, установленных в большинстве персональных компьютеров. Кроме процессора графическая плата содержит высокоскоростную память объемом от 8 до 64 Мбайт. Эта память используется графическим процес­сором для выполнения вычислений и хранения результирующего изображения, предназначенного для вывода на экран. Дисплей подключается прямо к графиче­ской плате, так что она может обмениваться с ним информацией без помощи ши­ны компьютера. Высококачественные графические платы могут обновлять экран со скоростью от 75 до 200 раз в секунду.

Графический порт

Графическая плата может соединяться с компьютером посредством шины (напри­мер, PCI). Однако чаще на материнской плате компьютера имеется соединитель­ный слот, называемый AGP (Accelerated Graphics Port - ускоренный графический порт), специально предназначенный для графической платы. Это 32-разрядный порт, поддерживающий более высокую скорость пересылки данных, чем шина PCI. Он известен как AGP 1х, 2х, 4х или 8х, где AGP 1х - это исходный стандарт, определяющий передачу данных со скоростью 264 Мбайт/с. Последние версии стандарта AGP поддерживают в несколько раз большие скорости передачи дан­ных, в частности стандартом AGP 8х устанавливается скорость передача данных, равная 2 Гбайт/с.

Графическая обработка

В компьютерной графике трехмерный объект представляется в виде поверхно­сти, состоящей из большого количества маленьких многоугольников (как прави­ло, треугольников). Основной задачей графической обработки является преобра­зование трехмерного изображения в двухмерное, максимально близкое к тому, каким оно видится человеческим глазом. Для определения проекции и перспекти­ вы объектов требуется вычислять местоположения вершин треугольников, пред­ставляющих разные фрагменты изображения. Далее с помощью сложных алго­ритмов создания реалистичного изображения вычисляются цвета и тени каждого треугольника. При этих вычислениях учитывается расположение источника све­та, его отражение от различных поверхностей, тени и т. п. Важной частью данного процесса является формирование определенной текстуры поверхности, напри­мер древесных волокон или кирпичной кладки. Текстура обычно задается с помо­щью элементов, именуемых текселами (texel). Отдельные треугольники заполня­ются текселами, в результате чего создается впечатление текстурной поверхности объекта. Скрытые части изображения удаляются путем отсечения (clipping). По­следний этап обработки изображения, когда определяется цвет и яркость каждого пиксела, называется самплингом (sampling), а весь вычислительный процесс, в ре­зультате которого трехмерное изображение превращается в набор отправляемых на дисплей пикселов, - визуализацией (rendering).

В случае движущихся изображений все эти вычисления повторяются по многу раз в секунду. Чтобы движение на экране было плавным, пикселы изображения должны пересчитываться как минимум 20 раз в секунду, а лучше 30 или 40. Это значение называется частотой кадров. Скорость выполнения графической платой описанных вычислений характеризуется ее коэффициентом T&L (Transformations and Lighting - преобразование и освещение), равным количеству треугольников, для которых видеокарта может выполнить проецирование, отсечение, освещение и самплинг за одну секунду. Как правило, это значение изменяется в пределах от 10 до 30 млн. треугольников в секунду.

В табл. 10.1 приведены характеристики графической платы RADEON VE про­изводства ATI Corp. Похожими возможностями обладает графический процессор GeForce 2 MX производства «Vidia Corp. Это примеры популярных плат для пер­сональных компьютеров. В профессиональных системах используются более мощные платы с расширенными возможностями. А в ближайшем будущем в этой быстро развивающейся области компьютерной индустрии ожидается появление еще более мощных процессоров.

Таблица 10,1. Графическая плата RADEON VE
Компонент Описание

Микросхема GPU RADEON VE

Шина AGP 4х

Память До 64 Мбайт, DDR SDRAM

Цвет 32 бита, включая 8 бит, зарезервированных для будущего

использования

Число пикселов 2048 х 1536

Коэффициент T&L 30 млн треугольников в секунду

Частота обновления От 75 до 200 раз в секунду в зависимости от установленного

экрана разрешения

Дополнительные Поддержка TV, VCR, DVD, HDTV и MPEG 2

возможности

Программное обеспечение графических плат

Графические платы предназначены для реализации множества сложных функций. Чтобы их использовать, нужно иметь специальное программное обеспечение, раз­работанное для конкретной платы. В этой области очень мало стандартов, и рынок открыт для конкуренции. Таким образом, для улучшения качества изображения недостаточно просто установить в компьютер лучшую графическую плату. Требу­ется специальное программное обеспечение. Очевидно, что назрела необходимость в разработке стандартов программных интерфейсов приложений (Application Programming Interface, API), позволяющих создавать аппаратно-независимое про­граммное обеспечение. И такие стандарты уже начинают появляться. Когда они получат достаточное распространение, программное обеспечение, интенсивно ис­пользующее возможности графики (например, компьютерные игры), сможет кор­ректно работать с графическими платами разных производителей. Примером такого стандарта является OpenGL (Open Graphics Language - открытая графи­ческая библиотека). Ему и подобным стандартам, связанным с различными ас­пектами обработки графики, соответствует все больше графических плат.

Видеоадаптер - это электронная плата, которая обрабатывает видеоданные (текст и графику) и управляет работой дисплея. Содержит видеопамять, регистры ввода вывода и модуль 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 , а также драйвер клавиатуры, который обеспечивает возможность ввода русских букв, управление скоростью работы клавиатуры и др.

Видеоадаптеры VGA (и первые SVGA ) имели ограниченную палитру и низкое разрешение экрана и очень сильно загружали центральный процессор. Причин тому было несколько:

· пассивность графического контроллера при формировании кадрового буфера

· низкое быстродействие видеопамяти

· низкая пропускная способность внутренних шин и интерфейса ввода/вывода

· недостаточное быстродействие и возможности RAMDAC

· выполнение большинства операций в CPU , отсутствие аппаратной поддержки дополнительных функций

Эти недостатки и определили основные направления развития видеоадаптеров, приведших к появлению видеоакселераторов, которых мы сейчас называем видеокартами.

Как мы уже отмечали, RAMDAC аппаратно ограничивает количество цветов до 256, т.к. содержит только 256 регистров цвета. Каждый из них кодируется 8-разрядным числом, что определяет максимальное и минимально необходимый объем видеопамяти в 256 Кбайт (2 8 =256). Большее количество видеопамяти может быть полезно только при большем разрешении. Тут то у производителей и появилась мысль использовать большее разрешение. Одновременно с увеличением объема видеопамяти пришлось использовать новые методы ее адресации, поскольку количество пикселей на экране превысило размер адресного пространства (128 Кбайт). Увеличение объема видеопамяти позволило повысить разрешение, но не привело к улучшению цветности изображения – размер палитры по-прежнему оставался равным 256 цветам.

Больших успехов в улучшении цветности производители добились, после выпуска RAMDAC нового типа:

· новый RAMDAC позволял загружать данные из видеопамяти в выходной регистр ЦАП, минуя 8-разрядные регистры ЦАП – это позволило увеличить количество оттенков до 65536 (режим High Color ), кодируя при этом каждый пиксель 16 битами

· вместо 18-разрядного ЦАП стал использоваться 24-разрядный, что позволило отображать 2 24 =16777216 (True Color )

На базе такого RAMDAC стали выпускаться видеокарты с объемом видеопамяти 1 Мбайт и более. Вместе с объемом видеопамяти возросла и разрядность ее ячеек (16 бит и более), а также разрядность и пропускная способность внутренней шины. Вместо разбиения видеопамяти на банки стала применяться линейная адресация всей видеопамяти. В этой схеме осуществляется переадресация видеопамяти в непрерывную область адресов, расположенную в расширенной (extended ) области памяти. Для интерфейса ISA этот диапазон располагался ниже 16 Мбайт, а для PCI – в любой области расширенной памяти. Поэтому то в CMOS Setup и присутствует опция Memory hole at 15-16 M , для того чтобы никакие программы не могли записывать данные в область видеопамяти.

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

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

Аппаратное ускорение

Графический акселератор, пришедший на смену стандартному видеоадаптеру, является активным устройством и значительно повышает быстродействие всей системы в целом. Это достигается путем использования серьезных преимуществ гр афического процессора (сопроцессора). В такой системе большое количество функций выполняется на аппаратном уровне всего за несколько тактов работы акселератора. Акселератор использует команды высокого уровня для «общения» с остальными подсистемами, что разгружает шину ввода/вывода, т.к. значительно уменьшается поток команд. Кроме того, CPU освобождается от необходимости выполнения и передачи множества элементарных операций с содержимым кадрового буфера.

Акселерация возможна только в графическом режиме. Суть работы акселератора состоит в изменении цифрового образа изображения в видеопамяти по командам из CPU и ряду самостоятельных операций по преобразованию данных. Графический акселератор, в отличие от адаптера VGA , оперирует не пикселями, а так называемыми графическими примитивами, которые состоят из множества пикселов. Используя такие примитивы как треугольник, отрезок, окружность, можно конструировать достаточно сложные изображения значительно проще и быстрее, чем при модификации отдельных пикселов.

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

1. Прорисовка графических примитивов (drawing ). На операциях прорисовки основаны все современные GUI интерфейсы программ и ОС. Параметры примитивов задаются в виде координат в векторном виде. В отличие от растрового представления цифрового изображения они гораздо компактнее и не зависят от используемого разрешения. По координатам легко построить все изображение. К командам прорисовки также относится и простейшая заливка контура (fill ) и заполнение его узором.

2. Перенос блоков изображения на экрану(BitBlt ) . Выполняется при перетаскивании GUI -объектов мышкой, скроллингеи т.п. операций. Данная функция сводится к перемещению блока бит из одной области видеопамяти в другую.

3. Аппаратная поддержка окон (hardware windowing ). Дело в том, что каждое активное приложение в операционной системе отслеживает «свое» открытое окно и его координаты в одном кадровом буфере оперативной памяти. При использовании hardware windowing каждое приложение использует свой «кадровый буфер», равный размеру открытого окна, так что «перенакрывания » окон к памяти не происходит. Выигрыш в скорости обработки координат окон тем больше, чем больше видеопамяти у видеоадаптера.

4. Масштабирование растровых изображений (scaling ). Различают два вида масштабирования: дублирование и интерполяция (сглаживание). Первое сводится просто к увеличению размера пикселя (точнее количества одинаковых пикселей в данной точке), что приводит к появлению таких дефектов изображения как пикселизация и алиасинг . Для устранения этих искажений используется интерполяция. Эти две операции весьма трудоемки и требуют достаточно высокого качества акселератора.

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

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

7. Построение 3 D -изображений. Эта категория операций наиболее обширна и сложна, и их описание займет целую книгу. Основы формирования 3D -изображений мы рассмотрим ниже.

Первые шесть функций реализуются при ускорении 2D . Существуют также видеоадаптеры с аппаратной поддержкой DVD , TV -out , адаптивного деинтерлейсинга , HyperZ , блоки аппаратного обратного преобразования Фурье (IDCT ). Все ускорители можно разделить на графические акселераторы и графические сопроцессоры. Последние , безусловно, являются более универсальными устройствами. Поскольку графический сопроцессор фактически превратился в самостоятельный компьютер, то чипсет, на базе которого сделан графический ускоритель, стали называть графическим процессором.

Видеоадаптер с графическим сопроцессором (GPU ) – это интеллектуальное устройство, основу которого составляет арифметико-логическое устройство (АЛУ).АЛУ фактически представляет собой микропроцессор, работающий по микроинструкциям из собственного ОЗУ. Главное отличие графического сопроцессора от графического акселератора состоит в том, что сопроцессор можно запрограммировать на выполнение различных задач, тогда как ускоритель работает по жесткому неизменному алгоритму. Акселератор состоит из нескольких узкоспециализированных блоков, обеспечивающих аппаратную поддержку только определенных функций. Кроме того, сопроцессор, в отличие от акселератора, является активным устройством, самостоятельно организующим обращения к памяти, управление шиной ввода/вывода. Наиболее ярко это проявляется при использовании шины AGP в режиме DiME , в котором преобразования выполняются не в кадровом буфере, а в системной памяти.

Память для видеоадаптеров

В видеоадаптерах используется динамическая память с произвольным доступом (DRAM ). Этот тип памяти является самым простым и дешевым по исполнению, так как он реализуется на конденсаторах и транзисторах, но требует регенерации (перезарядки).В связи с этим и скорость доступа к ней не очень высока (до 100 нс.). Современные видеоадаптеры оснащаются памятью SDRAM со скоростью доступа не более 10 нс. или более совершенной памятью DDR , время доступа к которой – от 3,5 нс.

Различают однопортовую и двухпортовую память. Последняя позволяет осуществить одновременное выполнение операций чтения и записи данных, так как к ней по двум различным адресам могут одновременно обращаться графический процессор и RAMDAC . К однопортовой относятся FPM , EDO , SDRAM , DDR . В настоящее время в профессиональных видеокартах могут использоваться две разновидности двухпортовой памяти – VRAM и WRAM .

VRAM (Video RAM ) специально разработана для видеосистемы и позволяет одновременно выполнять операции чтения и записи. Естественно, она имеет и соответствующую «профессиональную» цену. Преимущества такой памяти особенно заметны при использовании высокого разрешения и режима True Color . WRAM (Window RAM ) очень похожа на VRAM , но работает на частоте 50 МГц, что увеличивает быстродействие на 50% по сравнению с VRAM . Также здесь реализована технология двойной буферизации, в этой памяти имеется режим быстрой буферизации. Для работы предусмотрены 2 кадровых буфера.

Существует также ряд перспективных типов памяти. Срединих RDRAM, DDR SDRAM, 3D RAM, CDRAM, ESDRAM. 3D RAM предназначена для обработки трехмерной графики. Память является двухпортовой и позволяет осуществлять конвейерную обработку данных. CDRAM представляет собой комбинацию из динамической памяти и скоростного буфера кэширования, выполненного на элементах статической памяти.

3D -акселераторы

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

Синтез 3D- изображений

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

· Конструирование (расчет) объекта на основе его математического описания

· Расчет движения и трансформации его формы

· Моделирование поверхности объекта с учетом различных внешних факторов (освещение, отражение, рельеф)

· Проецирование объекта на плоскость экрана с учетом всевозможных визуальных эффектов

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

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

1. построение геометрической модели поверхности объекта, путем задания опорных точек и уравнений линий (каркаса, wireframe )

2. разбиение поверхности полученного объекта на элементарные плоские элементы, чаще всего треугольники (тесселяция , tessellation ). На этом этапе объект представляет собой совокупность трехмерных координат вершин треугольников (вертексов, vertex )

3. трансформация (transformation ) сводится к преобразованию координат вертексов для моделирования перемещения объекта и изменения его формы

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

5. проецирование на плоскость экрана использует две существующие координаты точек и запоминает расстояние от вершин до плоскости проецирования в z -буфере

6. обработка координат вершин (triangle setup ) элементарных треугольников представляет собой сортировку вершин и отбрасывание задних невидимых граней (culling )

7. удаление скрытых поверхностей (HSR) – удаление из проецирования невидимых поверхностейобъекта

8. текстурирование , или закраска элементарных треугольников выполняется путем наложения текстур (texture mapping ) – квадратных растровых картинок, состоящихиз текселов на каркас. Это первый этап, выполняемый с растровой графикой, при котором каждый треугольник заменяется частью текстуры, а пиксели – текселами . На этом же этапе применяется MIP -mapping – коррекция перспективы, фильтрация

9. моделирование эффектов прозрачности – коррекция цвета пикселей.

10. антиалиасинг (anti -aliasing ) – устранение дефектов картинки из-за угловатых границ

11. дизеринг (dithering ) – интерполяция недостающих цветов

12. формирование кадра и пост-обработка в кадровом буфере в локальной памяти видеоадаптера

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

Этапы 1-6 представляют геометрическую стадию 3D -конвейера. Во время этой стадии выполняются интенсивные тригонометрические вычисления, используются числа с плавающей точкой. Эти вычисления в старых видеоадаптерах выполняются в CPU , а в современных мощных – в GPU . Как известно, эра настоящих графических процессоров началась с nVidia GeForce 256 и ATI Radeon 256.

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

API

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

Существует несколько универсальных API , таких как DirectX и OpenGL . Но также иногда используются так называемые “native API ”, создаваемые производителями непосредственно для своих графических чипсетов. Среди таких можно привести Glide компании 3Dfx (для семейства Voodoo ), MeTAL компании S 3 (для Savage ), RenderGL и другие.

Геометрический процессор стал поддерживаться только в Direct 3D (часть DirectX ) версии 7.0, поэтому более ранние версии использовать не рекомендуется. Впрочем, версия 7.1 поставляется с Windows ME , так что вам следует лишь обновить её до 8.1. Недавно появился DirectX 9.0, но имейте в виду, что он может обеспечивать прирост производительности видеоакселераторов, поддерживающих её на аппаратном уровне (Radeon 9500, 9700, GeForce FX ), кроме того, она пока не очень стабильна, так что без особой нужды DirectX 9.0 ставить не следует.

Архитектура 3D -акселератора

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

· геометрический процессор (GPU , Geometry Processor )

· механизмпрорисовки (Rendering Engine)

· быструю память

· цифро-аналоговый преобразователь (RAMDAC )

· дополнительные опциональные блоки

Геометрический процессор предназначен для ускорения геометрической стадии 3D -конвейера, которая требует сложных математических расчетов при обсчете вертексов. До чипсетов GeForce и Radeon в дешевых видеокартах использовались геометрические сопроцессоры, которые помогали CPU в расчетах, а иногда и они отсутствовали.

Механизм рендеринга (прорисовки), или как его еще часто называют, конвейер рендеринга является основной частью современного 3D -акселератора и включает в себя, как минимум, два элемента: механизм обработки участков текстур (Texel Engine ) и механизм обработки итогового кадра (Pixel Engine ). Каждый из этих блоков использует свой участок видеопамяти, называемый буфером текстур и кадровым буфером соответственно. Кадровый буфер нам уже знаком, так как он перешел сюда из стандартной архитектуры VGA /SVGA . Появился лишь отдельный буфер для хранения обрабатываемых текстур. Кроме этого, в локальной памяти акселератора обычно выделяется область еще для нескольких буферов. Z -буфер необходим для корректного удаления скрытых поверхностей, a -буфер необходим для выполнения альфа-смещения , а второй кадровый буфер используется при двойной буферизации. Блок рендеринга у некоторых производителей называется TMU (Texture Mapping Unit ) – блок наложения текстур.

Размер кадрового буфера, по аналогии с видеоадаптером VGA , определяет максимально возможное разрешение изображения и размер палитры. В большинстве акселераторов используется метод двойной буферизации, в соответствии с которым кадровый буфер разбивается на две части передний (front buffer ) и задний (back buffer ) буферы. В то время как происходит считывание и построение RAMDAC ’ом изображения из переднего буфера, GPU строит следующий кадр в заднем . Такая «подкачка» обеспечивает плавность смены кадров, ведь после отображения на экране буфер очищается.

Интерфейс 3D- акселераторов

Для лучшей прорисовки кадров необходимо использовать текстуры больших размеров, а для этого требуется не менее 8 Мбайт видеопамяти. Чтобы иметь возможность передавать такой поток данных через свой интерфейс, она должна иметь высокоскоростную шину графического порта. Такойшинойстала AGP (Accelerated Graphics Port). Эта 32-разрядная шина имеет базовую частоту 66 МГц, но может работать в режиме 4x (266 МГц) и передавать 1Гб/с. При этом используется пониженное в 2 раза питание видеокарт 1,5 В , соответственно и видеокарта должна удовлетворять этому критерию. Новый, недавно введенный и пока еще мало используемый, режим 8x (Revision 3.0) реализован в новейших видеоадаптерах. Реально пока ни одна графическая программа не способна использовать его в полной мере.

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

Кроме того, в AGP , в отличие от PCI , используется режим SBA (Side Band Addressing ), в котором для передачи адреса используются 8 дополнительных линий, т.е. адрес и данные передаются по разным линиям.

И, наконец, помимо режима DMA в стандарте AGP используется DME (Direct Memory Execution ) – режим, в котором локальная память видеокарты и системная память равноценны и являются одним адресным пространством, так что операции с текстурами могут выполняться как локальной, так и в системной памяти. В этом режиме обмен идет короткими пакетами, так что достигается значительное ускорение операций с текстурами.

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