Акселераторы и видеопроцессоры
До сих пор мы в основном уделяли внимание разрешающей способности и количеству воспроизводимых цветов, ничего не говоря о скорости работы видеоадаптера. Понятно, что чем большее количество памяти занимает изображение, тем большее число байт необходимо обрабатывать и пересылать на монитор, причем за время, ограниченное прямым ходом кадровой развертки. Следует также помнить о том, что сама видеопамять – это ресурс, который разделяют между собой микропроцессор системы и видеоконтроллер.
Стоит обратить внимание, что обычная микросхема фрейм-контроллера является, вообще говоря, достаточно пассивным устройством. Все операции по записи и модификации данных в видеопамяти выполняет сам процессор системы. Следовательно, чем быстрее используемый микропроцессор, тем быстрее начинает работать и видеоподсистема компьютера. Однако и здесь существует определенный предел, который связан с конечным быстродействием системной шины, через которую и происходит обмен между процессором и видеоадаптером. Так, например, системная шина 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 МГц.