Видеоадаптер состоит из четырех основных устройств (рис. 5.1): памяти, контроллера, ЦАП и ПЗУ. Видеопамять служит для хранения изображения. От ее объема зависит максимально возможное полное разрешение видеокарты – А х В х С, где А – количество точек по горизонтали, В – по вертикали и С – количество возможных цветов каждой точки. Например, для разрешения 640x480x16 достаточно 256 кБ, для 800x600x256 – 512 кБ, для 1024x768x65536 (другое обозначение – 1024x768x64 к) – 2 Мб, и т.д. Поскольку для хранения цветов отводится целое число разрядов, количество цветов всегда является степенью двойки (16 цветов – 4 разряда, 256 – 8 разрядов, 64 к –16 разрядов, и т.д.).
Объем видеопамяти напрямую связан с разрешением, с которым планируется работать. Соотношения приведены в табл. 5.1.
Таблица 5.1 Объем видеопамяти
Разрешение |
16 цветов (4–х битный) |
256 цветов (8 бит) |
65 к цветов (16 бит) |
16,7 млн. цветов (24 бит) |
640×480 |
512 кБ |
512 кБ |
1 Mб |
1 Mб |
800×600 |
51 кБ |
1 Mб |
2 Mб |
2 Mб |
1024×768 |
1 Mб |
1 Mб |
2 Mб |
4 Mб |
1280×1024 |
1 Mб |
2 Mб |
4 Mб |
4 Mб |
1600×1200 |
2 Mб |
2 Mб |
4 Mб |
8 Mб |
1800×1440 |
2 Mб |
4 Mб |
8 Mб |
8 Mб |
Типы видеопамяти, применяемые в видеоадаптерах:
FPM DRAM (Fast Page Mode Dynamic RAM – динамическое ОЗУ с быстрым страничным доступом) – основной тип видеопамяти, идентичный используемой в системных платах. Использует асинхронный доступ, при котором управляющие сигналы жестко не привязаны к тактовой частоте системы. Активно применялся примерно до 1996 г. Наиболее распространенные микросхемы FPM DRAM – 4–разрядные DIP и SOJ, а также – 16–разрядные SOJ.
VRAM (Video RAM видео–ОЗУ) так называемая двухпортовая DRAM с поддержкой одновременного доступа со стороны видеопроцессора и центрального процессора компьютера. Позволяет совмещать во времени вывод изображения на экран и его обработку в видеопамяти, что сокращает задержки и увеличивает скорость работы.
EDO DRAM (Extended Data Out DRAM – динамическое ОЗУ с расширенным временем удержания данных на выходе) – тип памяти с элементами конвейеризации, позволяющий несколько ускорить обмен блоками данных с видеопамятью.
SGRAM (Synchronous Graphics RAM – синхронное графическое ОЗУ) – вариант DRAM с синхронным доступом, когда все управляющие сигналы изменяются только одновременно с системным тактовым синхросигналом, что позволяет уменьшить временные задержки за счет "выравнивания" сигналов.
WRAM (Window RAM – оконное ОЗУ) – EDO VRAM, в котором порт (окно), через который обращается видеоконтроллер, сделан меньшим, чем порт для центрального процессора.
MDRAM (Multibank DRAM – многобанковое ОЗУ) – вариант DRAM, организованный в виде множества независимых банков объемом по 32 кБ каждый, работающих в конвейерном режиме.
Рекомендуется использовать видеоадаптеры с SGRAM, VRAM, WRAM или MDRAM.
Видеоконтроллер отвечает за вывод изображения из видеопамяти, регенерацию ее содержимого, формирование сигналов развертки для монитора и обработку запросов центрального процессора. Для исключения конфликтов при обращении к памяти со стороны видеоконтроллера и центрального процессора видеоконтроллер имеет отдельный буфер, который в свободное от обращений ЦП время заполняется данными из видеопамяти. Если конфликта избежать не удается – видеоконтроллеру приходится задерживать обращение ЦП к видеопамяти, что снижает производительность системы; для исключения подобных конфликтов в ряде карт применяется так называемая двухпортовая память, допускающая одновременные обращения со стороны двух устройств.
Многие современные видеоконтроллеры является потоковыми – их работа основана на создании и смешивании воедино нескольких потоков графической информации. Обычно это основное изображение, на которое накладывается изображение аппаратного курсора мыши и отдельное изображение в прямоугольном окне. Видеоконтроллер с потоковой обработкой, а также с аппаратной поддержкой некоторых типовых функций называется акселератором или ускорителем, и служит для разгрузки ЦП от рутинных операций по формированию изображения.
ЦАП (цифроаналоговый преобразователь, DAC) служит для преобразования результирующего потока данных, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на монитор. Все современные мониторы используют аналоговый видеосигнал, поэтому возможный диапазон цветности изображения определяется только параметрами ЦАП. Большинство ЦАП имеют разрядность 8×3 – три канала основных цветов (красный, синий, зеленый, RGB) по 256 уровней яркости на каждый цвет, что в сумме дает 16,7 млн. цветов. Обычно ЦАП совмещен на одном кристалле с видеоконтроллером.
Видео–ПЗУ – постоянное запоминающее устройство, в которое записаны видео–BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтроллером напрямую – к нему обращается только центральный процессор, и в результате выполнения им программ из ПЗУ происходят обращения к видеоконтроллеру и видеопамяти. ПЗУ необходимо только для первоначального запуска адаптера и работы в режиме MS DOS; операционные системы с графическим интерфейсом – Windows или OS/2 – не используют ПЗУ для управления адаптером.
Принцип действия видеоадаптера.
Прежде чем стать изображением на мониторе, двоичные цифровые данные обрабатываются центральным процессором, затем через шину данных направляются в видеоадаптер, где они обрабатываются и преобразуются в аналоговые данные и уже после этого направляются в монитор и формируют изображение. Сначала данные в цифровом виде из шины попадают в видеопроцессор, где они начинают обрабатываться. После этого обработанные цифровые данные направляются в видеопамять, где создается образ изображения, которое должно быть выведено на дисплее.
Затем, все еще в цифровом формате, данные, образующие образ, передаются в RAMDAC, где они конвертируются в аналоговый вид, после чего передаются в монитор, на котором выводится требуемое изображение.
Таким образом, почти на всем пути следования цифровых данных над ними производятся различные операции преобразования, сжатия и хранения. Оптимизируя эти операции, можно добиться повышения производительности всей видеоподсистемы. Лишь последний отрезок пути, от RAMDAC до монитора, когда данные имеют аналоговый вид, нельзя оптимизировать.
Рассмотрим подробнее этапы следования данных от центрального процессора системы до монитора.
1. Скорость обмена данными между CPU и графическим процессором напрямую зависит от частоты, на которой работает шина, через которую передаются данные. Рабочая частота шины зависит от чипсета материнской платы. Для видеоадаптеров оптимальными по скорости являются шина PCI и AGP. При существующих версиях чипсетов шина PCI может иметь рабочие частоты от 25 MГц до 66 MГц, иногда до 83 MГц (обычно 33 MГц), а шина AGP работает на частотах 66 MГц и 133 MГц. Чем выше рабочая частота шины, тем быстрее данные от центрального процессора системы дойдут до графического процессора видеоадаптера.
2. Ключевой момент, влияющий на производительность видеоподсистемы, вне зависимости от специфических функций различных графических процессоров, это передача цифровых данных, обработанных графическим процессором, в видеопамять, а оттуда в RAMDAC. Самое узкое место любой видеокарты – это видеопамять, которая непрерывно обслуживает два главных устройства видеоадаптера, графический процессор и RAMDAC, которые вечно перегружены работой. В любой момент, когда на экране монитора происходят изменения (иногда они происходят в непрерывном режиме, например, движение указателя мыши, мигание курсора в редакторе и т.д.), графический процессор обращается к видеопамяти. В то же время RAMDAC должен непрерывно считывать данные из видеопамяти, чтобы изображение не пропадало с экрана монитора. Поэтому, чтобы увеличить производительность видеопамяти, производители применяют различные технические решения. Например, используют различные типы памяти, с улучшенными свойствами и продвинутыми возможностями, например, VRAM, WRAM, MDRAM, SGRAM, или увеличивают ширину шины данных, по которой графический процессор или RAMDAC обмениваются информацией с видеопамятью, используя 32-разрядную, 64-разрядную или 128-разрядную видеошину.
Чем более высокое разрешение экрана используется и чем больше глубина представления цвета, тем больше данных требуется передать из графического процессора в видеопамять и тем быстрее данные должны считываться RAMDAC для передачи аналогового сигнала в монитор.
Нетрудно заметить, что для нормальной работы видеопамять должна быть постоянно доступна для графического процессора и RAMDAC, которые должны постоянно осуществлять чтение и запись. В нормальных условиях доступ RAMDAC к видеопамяти на максимальной частоте возможен лишь после того, как графический процессор завершит обращение к памяти (операцию чтения или записи), т.е. RAMDAC вынужден дожидаться, когда наступит его очередь обратиться с запросом к видеопамяти для чтения и наоборот.
Производители видеоадаптеров по–разному решают эту проблему.
Один из вариантов – использовать двухпортовую видеопамять. Графический процессор осуществляет чтение из видеопамяти или запись в нее через один порт, a RAMDAC осуществляет чтение данных из видеопамяти, используя второй независимый порт. В результате графическому процессору больше не надо ожидать, пока RAMDAC завершит свои операции с видеопамятью, и наоборот, RAMDAC больше не требуется ожидать, пока графический процессор не завершит свою работу с видеопамятью.
Такой тип памяти с двухпортовой организацией называется VRAM (Video RAM). На самом деле реализация этой технологии несколько сложнее, чем просто сделать два независимых порта для чтения и записи, поэтому производство такой памяти обходится не дешево. Зато это объясняет, почему видеоадаптеры, использующие VRAM, стоят так дорого и работают так быстро. Аналогичным образом устроена память WRAM (Window RAM), которая тоже является двухпортовой и применяется на видеоплатах компании Matrox.
Эта память имеет лучшую организацию, благодаря чему она работает быстрее, чем VRAM. Видеоадаптеры, оснащенные двухпортовой памятью, обычно обеспечивают высокую частоту обновления экрана при высокой глубине представления цвета, что объясняется просто. Высокая частота регенерации экрана означает, что RAMDAC посылает в монитор полный образ изображения гораздо чаще, чем при более низких показателях частоты вертикальной развертки. Соответственно при этом RAMDAC необходимо чаще обращаться в режиме чтения к видеопамяти. Такая возможность имеется при использовании видеопамяти типа VRAM/WRAM, за счет возможности обращения к памяти через второй порт. В случае же с обычной видеопамятью (типа FP DRAM/EDO DRAM) такой возможности нет, поэтому производительность видеоадаптера существенно ниже.
Все сказанное элементарно подтверждается тестами при их проведении с различными уровнями частоты регенерации (обновления) экрана. Аналогичная ситуация наблюдается и в случае использования режимов с высокой глубиной представления цвета.
При 8–битной глубине представления цвета (256 цветов) при разрешении 1024×768 RAMDAC должен считать из видеопамяти 786 432 байт данных, чтобы послать на монитор полный образ изображения.
Если цвет имеет глубину представления 24 бит (16 млн. цветов), то для отправки на монитор образа в таком же разрешении RAMDAC требуется считать из видеопамяти уже 2 359 296 байт, что, разумеется, занимает больше времени.
Это, кстати, объясняет, почему, используя недорогие видеоадаптеры, нельзя использовать такую же высокую частоту обновления экрана в режиме True color, как и при меньшем количестве цветов.
Другим методом для увеличения производительности является увеличение ширины (разрядности) шины, через которую графический процессор и RAMDAC обмениваются данными с видеопамятью.
В конце ХХ в. появились 64-разрядные видеоадаптеры, которые могли передавать единовременно 8 байт. И только совсем недавно мы стали свидетелями массового появления графических адаптеров, в архитектуре которых применяется 128-разрядная шина, по которой за одну транзакцию передается 16 байт информации. Нетрудно заметить, что видеоадаптеры, оснащенные 128–битной шиной и использующие видеопамять типа VRAM/WRAM, имеют наилучшие шансы для достижения максимальной производительности.
Но есть и ложка дегтя. Дело в том, что, как правило, микросхемы видеопамяти имеют организацию 8×1 Mбит, т.е. такую же, как и видеопамять на устаревших 32–разрядных видеоадаптерах. В итоге, даже в случае 128–разрядных плат, доступ к видеопамяти может осуществляться только с ограничением ширины потока данных в 32–бита.
Этим фактом объясняется то, что 64–битные видеоадаптеры, имеющие на борту лишь 1 Мб видеопамяти, работают медленнее, чем те же самые видеоплаты, но с 2 Мб видеопамяти.
Соответственно 128–разрядные графические платы, использующие видеопамять со стандартной организацией для нормальной работы требуют 4 Мб минимально установленного объема памяти для реализации возможностей 128–битной шины видеоданных. Не случайно, компания Tseng при разработке своего 128–разрядного графического
процессора ЕТ6000 выбрала для работы новый тип видеопамяти MDRAM (Multi bank DRAM) компании MoSys. Этот новый тип памяти имеет совершенно другую организацию, чем стандартная память DRAM.
Но самым распространенным на сегодняшний день методом оптимизации работы видеоадаптеров является применение повышенной тактовой частоты, на которой работает графический процессор, видеопамять и RAMDAC, что позволяет увеличить скорость обмена информацией между компонентами платы.
Несколько лет назад графические процессоры работали с тактовой частотой, значения которой не превышали скорость работы шины системной памяти на материнской плате. Теперь ситуация изменилась, например, процессор Tseng ET6000 работает на тактовой частоте до 100 MГц, но и процессоры от других производителей не отстают. Для работы на таких частотах требуется специальная видеопамять. Кроме MDRAM работать с высокой тактовой частотой может видеопамять типа SGRAM. На самом деле SGRAM – это просто версия SDRAM, рассчитанная для работы в качестве видеопамяти. Кстати, существующие микросхемы SGRAM могут работать на частотах до 125 MГц, чего вполне достаточно.