Акселераторы и видеопроцессоры

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

Стоит обратить внимание, что обычная микросхема фрейм-контроллера является, вообще говоря, достаточно пассивным уст­ройством. Все операции по записи и модификации данных в ви­деопамяти выполняет сам процессор системы. Следовательно, чем быстрее используемый микропроцессор, тем быстрее начинает работать и видеоподсистема компьютера. Однако и здесь сущест­вует определенный предел, который связан с конечным быстро­действием системной шины, через которую и происходит обмен между процессором и видеоадаптером. Так, например, сис­темная шина ISA работает на тактовой частоте 8 МГц, использо­вание локальной шины VL-bus с тактовой частотой 50 МГц по­зволило ускорить работу примерно в 6 раз.

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

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

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

 

Технология AGP

AGP (Accelerated Graphics Роrt – ускоренный графический порт) – скоростная шина для связи с графической картой. Разработана Intel (совместно с ведущими производителя­ми графических карт: ATI, Cirrus, S3) для высокоскорост­ной графики.

Портом является единственный на шине слот AGP, что и дает возможность отождествить шину с портом.

Основное преимущество AGP перед PCI заключается в скорости. AGP даже в самом медленном режи­ме в два раза быстрее, чем PCI. На самом деле эффективная скорость шины AGP еще выше в силу следующих основных ее возможностей: пакетно-конвейерного режима передачи; отсутствия накладных расходов на арбитраж; отсутствия мультиплексирования.

Пакетно-конвейерный режим передачи. Шина PCI ра­ботает в последовательном режиме, похожем на асинх­ронный: выставляется адрес, далее следует большая пауза (это время доступа к памяти) и выставляются дан­ные. И так циклически. В AGP таких потерь нет. Выстав­ляется целый пакет адресов. По мере считывания адре­сов конвейерно готовятся данные, и после считывания последнего адреса данные сразу же начинают передавать­ся. После передачи последней порции данных сразу же начинается новый цикл.

Отсутствие накладных расходов на арбитраж. Порт AGP единственный, и после каждой передачи не надо от­давать управление арбитру шины.

Отсутствие мультиплексирования. В PCI адрес и данные передаются по одним и тем же линиям. В AGP есть режим передачи адресов по отдельным кана­лам, что ускоряет передачу. Это называется адресацией по боковой стороне (Sideband Addressing).

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

Технология AGP позволяет использовать для этого часть основной памяти, которая на момент разработки AGP была значительно дешевле видеопамяти. Тем самым, во-первых, сама карта становится значительно дешевле, во-вторых, не нужно точно рассчитывать видеопамять. Эта часть основ­ной памяти называется АGP-помять. Важно, что к АGР-памяти организован прямой доступ со стороны 3D-чипа.

Есть два основных режима использования AGP-памяти.

1. DMA. Все используемые текстуры хранятся в AGP-памяти, как в хранилище, а текущие подкачиваются (больши­ми пакетами) в видеопамять. Это более простой режим.

2. DiME (Direct Memory Execute – прямое выполнение в памяти). Здесь и локальная, и AGP-память равноправны, подкачка не производится. Это замедляет доступ. Для ускорения применяется таблица GART (Graphic Address Re-mapping Table), которая отображает логически непре­рывные адреса, используемые картой, на произвольно выделенные блоки в AGP-памяти. Для этого сложного и более медленного режима рекомендуется применять AGP с частотой 100 МГц.