Синхронизатор

RAMDAC

Контроллер атрибутов

Секвенсер

Секвенсер, или указатель последовательности, предназначен для генерации сигналов, необходимых при сканировании видеопамяти. Другими словами, секвенсер обеспечивает последовательную адресацию и считывание содер­жимого ячеек видеопамяти (отсюда и происходит его название) и передачу их содержимого в контроллер атрибутов и далее — в RAMDAC. Работа секвенсера синхронизируется стробирующими сигналами, формируемыми кон­троллером ЭЛТ.

Контроллер атрибутов видеоадаптера VGA предназначен для управления цветом изображения, выводимого на экран монитора. В текстовом режиме работы видеоадаптера он задает цвет пикселов в пределах символьной мат­рицы на основании содержимого байта атрибутов выводимого символа (отсюда и его название). Кроме того, в этом режиме контроллер атрибутов позволяет создавать такие эффекты, как мигание, инверсия цвета или по­вышенная яркость символа. В графическом 16-цветном режиме контроллер атрибутов преобразует условный 4-разрядный номер цвета пиксела, храня­щийся в видеопамяти, в 8-разрядный номер регистра RAMDAC, содержа­щего 18-разрядный код отображаемого цвета. С выхода контроллера атрибу­тов данные поступают на RAMDAC видеоадаптера.

Основная задача RAMDAC (цифро-аналогового преобразователя данных, хранящихся в его регистрах) — преобразование кода цвета пиксела в ана­логовый сигнал. RAMDAC (рис. 15.8) включает:

П трехканальный 6-разрядный ЦАП;

- 256 18-разрядных регистров цвета (именно эти регистры и образуют опе­ративную память, аббревиатура которой (RAM) входит в название дан­ного устройства);

- выходной 18-разрядный регистр цвета, выходы которого соединены с со­ответствующими входами ЦАП;

- схему адресации.

Работа ЦАП синхронизируется сигналом Dot Clock тактового генератора видеоадаптера. Именно этой частотой определяется верхняя граничная час­тота спектра видеосигнала. Разрядность ЦАП определяет количество оттен­ков цвета, которые потенциально может сформировать видеоадаптер VGA, т. е. размер его палитры. Несложно подсчитать, что палитра составляет (2^ = =2^ == 262 144 оттенков. Оттенок цвета текущего пиксела определяется - кодом, записанным в выходной регистр цвета. Однако на практике количество оттенков цвета, которые видеосистема VGA в состоянии отобразить одно­временно, значительно меньше размера его палитры и равно количеству ре­гистров цвета, т. е. 256. Видеоадаптер VGA не позволяет загрузить в выход­ной регистр цвета произвольное значение — туда заносятся данные только из регистров цвета, которых в видеоадаптере VGA насчитывается только 256.

Содержимое регистров цвета ЦАП можно изменять программно, т. е. CPU как считывает данные регистров, так и записывает в них. Благодаря этому прикладная программа изменяет текущую палитру, частично компенсируя ее ограниченность.

 

Рис. 15.8. RAMDAC

Заметим, что в видеоадаптерах SVGA, в отличие от VGA, может использо­ваться прямое кодирование оттенка цвета пиксела, при котором его код в формате RGB хранится в видеопамяти и загружается непосредственно в вы­ходной регистр цвета RAMDAC. Это позволяет кодировать цветовой оттенок пиксела с использованием 15, 16 или 24 бит, т. е. реализовать режимы High Color (216 = 65 536 цветовых оттенков одновременно) и True Color (224 == 16,7 млн цветовых оттенков). Для обеспечения второго режима разряд­ность ЦАП в каждом из трех каналов должна быть равна 8.

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

Для синхронизации обращения CPU к кадровому буферу используется так­же регистр состояния. Бит 3 этого регистра устанавливается в состояние логической 1, если сигнал V-Sync активен, а бит 0, — если активен сигнал разрешения отображения (Display Enable). Прикладная программа, считывая биты регистра состояния, обращается к кадровому буферу только тогда, ко­гда вывод информации на экран не производится.