MatroX
files home
RAMDAC guide
Last update: 1999-01-29
Similarly to the other two "guides", this
article is not intended for professionals, but rather for ordinary people
who want to get acquainted with the basics of computer graphics technology.
Comments and corrections are welcome.
What is RAMDAC
RAMDAC is a part of graphics controller responsible
for converting the pixel values from digital to analog form. The hardware
structure of RAMDAC contains two components: RAM and DAC. RAM stands for
Random Access Memory. DAC stands for Digital to Analog Converter. RAM compnent
of a RAMDAC is a small, fast static memory, storing the values of Red,
Green and Blue components in digital form. DAC is a structure (with three
independent DACs in fact) which converts binary words representing
the Red, Green and Blue intensities into voltage levels on the respective
signal lines.
The original VGA
RAMDAC
The original VGA introduced by IBM in 1985
contained RAMDAC chip made by INMOS, with type code 171. In 1985 this chip
was state-of-the-art design, with memory and DACs running at 28 MHz. The
RAM part was a memory with 256 18-bit words. Its organization is frequently
expressed as 256x(3x6). This part of RAMDAC is also known as LUT (Look-Up
Table), CLUT (Color LUT) or intermediate table. The 8 input lines serving
as address inputs to the RAM select one of 256 18-bit words. These memory
words are in fact groups of 3 6-bit words, and the 6-bit values are used
as input values to three DACs.
8-bit input was taken from the Attribute
Controller part of VGA chip. In 8-bit graphics mode (the only one available
on standard VGA was 320x200 pixels) each byte of video memory represents
one pixel, and the byte is supplied to the inputs of RAMDAC. Based on this
value, the RAM part supplies three 6-bit values to the DACs, thus allowing
for the simultaneous use of any 256 colors freely selected from the palette
of 262144 colors (2^18). Due to the fact that DACs were only 6 bits "wide",
only up to 64 shades of each color were available, so we could have no
more than 64 shades of green, red, blue, white(grey), cyan, magenta and
yellow.
Evolution of VGA RAMDACs
In late 80's and early 90's VGA controllers
were usually equipped with 512 KB to 1 MB of screen memory. At that time
the designers of PC graphics controllers started to implement so called
Direct Color modes, in which the single pixel was stored in screen memory
using 16 bits, and the word representing a pixel stored the values of Red,
Green and Blue directly in three bit-fields. Soon, the VGA cards appeared
on the market which could also display pixels coded using 24 bits - 8 bits
per each primary.
The RAMDACs used in these cards were similar
to the original VGA RAMDAC. The main difference was that depending on graphics
mode, these chips were capable of bypassing the RAM component and combining
two or three consecutive 8-bit input words into single 16- or 24-bit word
which was then supplied directly to the inputs of DACs. Note that for 24-bit
"True Color" modes, the DACs were widened from 6 to 8 bits per primary.
This created a small compatibility problem:
during loading the LUT, the original VGA RAMDAC expects 6-bit values aligned
at least significant position in a byte. When the RAMDAC is switched to
8-bit mode, the values loaded are 8 bits wide, and their format is not
compatible with the 6-bit one. Due to compatibility reasons, the contemporary
RAMDACs must handle 6-bit primaries in "old" manner. And this duality must
be correctly handled by the programmer.
RGB ramp
Since the RAMDAC contains the RAM regardless
of the current graphics mode, it is possible to use this memory for adjusting
the values of primary colors displayed in direct color modes. To achieve
this, the organization of RAM part must be changed. The "new" organization
is 3x(256x8) as opposed to "old" 256x(3x6). First, the binary word representing
each primary is now 8 bits long. Second, the three sections of memory storing
the values of Red, Green and Blue components may be accessed individually
in direct color modes (in 8-bit modes the same "address" value is supplied
to all three sections). This allows for programming the lookup tables for
each color independently, and the effect which is achieved this way is
known as gamma-correction. Basically it may be described as non-linear
relation between the binary value stored in video RAM and the value of
the respective video signal voltage. This may compensate nonlinearity of
CRT characteristics.
This feature is often referred to as "programmable
RGB ramp".
Contemporary RAMDACs
Contemporary RAMDACs are physically incorporated
into the VGA controller/accelerator chip. Their input buses are as wide
as the chip's memory buses (64 or 128 bits). A typical contemporary RAMDAC
may work with 6- and 8-bit primaries in 8-bit pixel mode, and may be either
used (for gamma correction) or bypassed in direct color modes.
RAMDAC speed
RAMDAC speed is a frequency at which the RAMDAC
processes the pixels and sends the video signals to to the monitor. The
"speed" depends on current video mode. When the RAMDAC speed is given as
a parameter of a graphics card, this is the maximum speed which the RAMDAC
may achieve. This parameter is not a measure of the card's performance
- it simlpy reflects the maximum monitor refresh rate which may be achieved
by the card. Actually the RAMDAC works near to its speed limit only in
very high resolution modes. The table below contains the RAMDAC frequencies
at different resolutions and refresh rates.
| Resolution |
RAMDAC speed [MHz] at |
| 60 Hz |
70 Hz |
75 Hz |
85 Hz |
| 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 |
|
(Some irregularities in low res modes result from the specification of
VESA timings in these modes.)
230 vs. 250 MHz RAMDAC affair
As can be seen in the above table, the RAMDAC
reaches the frequencies above 230 MHz only in resolutions exceeding 1600x1200
pixels. In practice it means that most of users never utilize RAMDAC speeds
above 230 MHz, and, to be honest, most of us never use speeds above 160
MHz. So, what's the buzz about 250 MHz RAMDACs? Well, it makes some sense
to get a "faster" card, not because of the RAMDAC speed limit, but mainly
because these cards have usually slightly faster memory clock. Also, the
analog output of higher-frequency RAMDAC may produce slightly "sharper"
pixels, but again this is noticeable only in highest resolutions.
Copyright 1999 by G. Mazur