Kolorowy kalejdoskop

Popularnonaukowe wytłumaczenie działania kart graficznych, a szczególnie układu RAMDAC

RAMDAC jest ważnym elementem każdej karty graficznej odpowiedzialnym za ergonomię i wierność barw obrazu wyświetlanego na monitorze.

Zanim na ekranie monitora ukaże się obraz, komputer musi przeprowadzić bardzo wiele operacji. Najpierw procesor znajdujący się na płycie głównej przesyła za pośrednictwem magistrali (ISA, VL lub PCI) dane do karty graficznej. W trybie graficznym są one wpisywane bezpośrednio do pamięci odświeżania obrazu, z danych tekstowych korzysta wpierw generator znaków na karcie. Elementy graficzne, takie jak linie i prostokąty, przesyłane są w postaci rozkazów do akceleratora, który dokonuje odpowiednich przeliczeń i zapisuje dane w pamięci obrazu. Pozwala to przyspieszyć pracę karty odciążając jednocześnie procesor i magistralę.
W jaki jednak sposób składowane w pamięci odświeżania obrazu dane doprowadzane są do monitora? Odpowiedzialny za to jest RAMDAC (Random Access Memory Digital Analog Converter – przetwornik cyfrowo-analogowy pamięci RAM), który wchodzi w skład każdej karty graficznej. Układ ten przetwarza obraz zapisany w postaci cyfrowej w pamięci Video-RAM, na sygnał analogowy, który wysyłany jest do monitora. W nowszych kartach RAMDAC często zintegrowany jest z akceleratorem graficznym.
Znajdujący się na karcie kontroler CRT (Cathode Ray Tube Controller – układ sterujący katodą kineskopu) bez przerwy, punkt po punkcie, odczytuje pamięć odświeżania obrazu. RAMDAC otrzymuje w ten sposób na bieżąco wartości opisujące barwę kolejnych pikseli (angielskie słowo pixel powstało od wyrażenia „picture elements” – elementy obrazu), których ilość zależna jest od wybranej rozdzielczości. Przy rozdzielczości 320×200 konieczne jest odczytanie 64 000 punktów, przy 1280×1024 około 1,3 miliona punktów. Częstotliwość odświeżania obrazu określa, ile razy w ciągu sekundy odczytywana jest cała pamięć wideo. Jeśli wartość ta jest mniejsza od 70 Hz, zauważalne są migotania obrazu (konfiguracja taka uznawana jest za nieergonomiczną).
Szybkość z jaką RAMDAC przetwarza dane zależna jest od rozdzielczości (czyli liczby punktów obrazu) i liczby dostępnych kolorów. Wyznaczmy dla przykładu wielkość strumienia danych wymaganą dla rozdzielczości 1024×768 przy 16,8 miliona kolorów (24 bity). Objętość pamięci wynosi wówczas 1024×768 punktów x3 bajty opisujące kolor = 2,36 megabajta. Mnożąc tę wartość przez częstotliwość odświeżania równą, dla przykładu, 80 Hz uzyskamy szybkość przetwarzania układu RAMDAC równą 180 MB na sekundę. Dla porównania, osiągany w praktyce transfer magistrali PCI nie przekracza 50 MB/s (teoretyczne maksimum w przypadku PCI 33MHz/32 bity wynosi 128 MB/s).
Z wielkością strumienia danych bezpośrednio związana jest częstotliwość wyświetlania punktów. Określa ona liczbę punktów, jaka pojawia się na wyjściu RAMDAC-a w czasie jednej sekundy. Maksymalna częstotliwość podawana jest zazwyczaj na obudowie przetwornika, im jest większa tym układ jest lepszy. Typowe wartości leżą w granicach 135…220 MHz.