Автор: Grzegorz Mazur
Перевод:
Удовыдченко Алексей
Date: 14/03/1999
RAMDAC это часть графического контроллера ответственного за преобразование
пиксельных значений из цифровой в аналоговую форму. Аппаратная структура
RAMDAC содержит два компонента: RAM и DAC. RAM расшифровывается как
Random Access Memory (Память Произвольного Доступа). DAC - Digital to Analog Converter -
Цифрово-Аналоговый Преобразователь. RAM-часть RAMDAC это небольшая, быстрая статическая
память, хранящая значения Красного, Зеленого и Синего в цифровой форме.
DAC это структура (на самом деле три независимых DACа), которая конвертирует
бинарные слова представляющие интенсивность Красного, Зеленого и Голубого в
уровни напряжения на соответствующих сигнальных линиях.
Оригинальный VGA адаптер представленный IBM в 1985 году
содержал RAMDAC чип сделанный INMOS с типовым кодом 171. В 1985 году этот
чип был произведением исскуства, с памятью и DACами работающими на 28 МГц.
RAM часть представляла из себя память с 256 18-битными словами. Эта организация
часто представляется как 256x(3x6). Эта часть RAMDAC также известна как LUT
(Look-Up Table), CLUT (Color LUT) или промежуточная таблица. 8 входных линий
служили в качестве адресных входов RAM для выбора одного из 256 18-битных слов.
Эти слова памяти в действительности группы из 3 6-битных слов и 6-битные значения
использовались в качестве входных значений для трех DACов.
8-битные входы были взяты с части Контроллера Атрибутов VGA чипа.
В 8-битном графическом режиме (единственно доступным на стандартном
VGA был 320х200 точек) каждый байт видео памяти представлял одну точку (пиксель)
и байт поставлялся на входы RAMDAC. Основываясь на этом значении RAM часть поставляла
три 6-битных значения DACам, это позволяло одновременно использовать любой
из 256 цветов выбранных из палитры в 262144 цветов (2^18). Из-за того, что
DACи были только 6 битной "частоты", было доступно только 64 оттенка каждого цвета,
поэтому у нас могло быть не больше чем 64 оттенка зеленого, красного, синего,
белого (серого), оранжевого, фиолетового и желтого.
В конце 80'х и начале 90'х VGA контроллеры обычно оборудовались от 512 Кб до
1 Мб экранной памяти. В то время разработчики графических контроллеров для ПК
начали применять так называемые Direct Color режимы, и слово представляющее
пиксель содержало значения Красного, Зеленого и Синего непосредственно в трех битных
полях. Вскоре на рынке появились VGA карты которые могли также показывать точки
(пиксели) кодированные при помощи 24 бит - 8 бит на каждый составной.
RAMDACи используемые в этих картах были подобны оригинальному VGA RAMDAC.
Главное отличие было в том, что в зависимости от графического режима эти чипы
были способны миновать RAM часть и комбинировать два или три последовательных
8-битных входных слова в одиночные 16- или 24-битные слова которые затем
поставлялись непосредственно на входы DACов. Помните что для 24-битных
"True Color" режимов DACи были расширены с 6 до 8 бит каждый.
Это создало небольшую проблему совместимости: во время загрузки LUT
оригинальный VGA RAMDAC ожидает 6-битных значений выровненных
по наименее значимой позиции бита. Когда RAMDAC переключается в 8-битный режим
загружаемые значения - 8 битной ширины, и их формат не совместим с 6-битными.
По соображениям совместимости современные RAMDACи должны обрабатывать
6-битные данные "старым" образом. И эта двойственность должна быть
правильно учтена программистом.
Так как RAMDAC содержит RAM вне зависимости от текущего графического режима,
возможно использовать эту память для регулировки значений первичных цветов
показываемых в режимах "direct color". Для достижения этого должна быть
изменена организация RAM части. "Новая" организация - 3x(256x8) в противоположность
"старой" 256x(3x6). Во-первых, бинарное слово, представляющее каждый первоисточник
теперь длиной 8 бит. Во-вторых, к трем секциям памяти, хранящим значения Красного, Зеленого
и Синего компонентов, можно получить индивидуальный доступ в режимах direct color
(в 8-битных режимах одинаковые значения "адреса" подаются на все три секции).
Это позволяет при программировании создать независимые таблицы для каждого цвета,
и эффект, который достигается таким способом, известен как гамма-коррекция.
В общем он может быть описан как не-линейная связь между бинарным значением
хранящимся в видео RAM и значением соответствующего напряжения видео сигнала.
Это может компенсировать нелинейность характеристик ЭЛТ.
Эта функция часто упоминается как "программируемый RGB трап".
Современные RAMDACи физически встроены в чип VGA контроллера / акселератора.
Их входные шины той же ширины что и шины памяти чипа (64 или 128 бит).
Типичный современный RAMDAC может работать с 6- и 8- битными данными в 8-битном
пиксельном режиме и может либо использоваться (для гамма-коррекции), либо
миноваться в режимах direct color.
Скорость RAMDAC это частота с которой RAMDAC обрабатывает пиксели и посылает
видео сигналы на монитор. "Скорость" зависит от текущего видео режима.
Если скорость RAMDAC дана как параметр графической карты, это максимальная
скорость, которая может быть достигнута RAMDACом. Этот параметр не измеряет
производительность карты - он просто отражает максимальный коэффициент обновления
монитора, который может быть достигнут картой. Реально RAMDAC работает на своих скоростных
пределах только в очень высоких графических разрешениях. Таблица ниже
содержит частоты RAMDAC при различных разрешениях и коэффициентах обновления.
Разрешение |
Скорость RAMDAC speed [МГц] при |
60 Гц |
70 Гц |
75 Гц |
85 Гц |
640x480 |
25.175 |
31.5 |
31,5 |
36 |
800x600 |
40 |
50 |
48.5 |
56.25 |
1024x768 |
65 |
75 |
78.75 |
94.5 |
1152x864 |
|
94.2 |
108 |
121 |
1280x1024 |
108 |
|
135 |
157.5 |
1600x1200 |
162 |
189 |
202.5 |
229.5 |
1800x1440 |
214 |
|
250 |
|
(Некоторые неправильности в режимах низкого разрешения обусловлены спецификациями VESA для параметров синхронизации в этих режимах.)
Как видно из таблицы выше, RAMDAC достигает частот выше 230 МГц только в разрешениях
превышающих 1600x1200 точек. На практике это значит что большинство пользователей
никогда не используют RAMDAC на скорости выше 230 МГц и, если уж честно, большинство
из нас никогда не использовало скорость выше 160 МГц. Итак, что за шум по поводу
250 МГц RAMDACов? Хорошо, владение "быстрой" картой производит какое-то впечатление
не из-за скоростного предела RAMDAC, но в основном потому, что у этих карт обычно
немного быстрее часы. Также аналоговый выход высокочастотных RAMDACов
может производить немного более "четкие" точки, но - опять же - это заметно только
при очень высоких разрешениях.