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.