Spis treÅ›ci 1.1. Zasada dziaÅ‚ania monitora ................................................................................. 2 1.2. Inne rodzaje ekranów........................................................................................... 6 1.3. Budowa i dziaÅ‚anie adapterów graficznych .................................................. 7 1.3.1. Schemat blokowy prostej karty graficznej........................................... 8 1.3.2. Praca karty graficznej w trybie tekstowym.......................................... 8 1.3.3. Praca karty graficznej w trybie graficznym........................................ 10 1.3.4. Karty SVGA..................................................................................................... 14 1.3.5. Zestawienie wÅ‚asnoÅ›ci podstawowych kart graficznych................ 16 1.3.6. Karty akceleratorowe i koprocesorowe................................................ 17 1.4. Magistrala AGP ...................................................................................................... 18 1.4.1. WÅ‚aÅ›ciwoÅ›ci magistrali AGP...................................................................... 19 1.4.2. Wybrane zagadnienia zwiÄ…zane z dziaÅ‚aniem magistrali AGP .... 20 UTK. Monitory i karty graficzne 1 1.1. Zasada dziaÅ‚ania monitora Monitor jest urzÄ…dzeniem sÅ‚u\Ä…cym do wyprowadzania informacji z komputera w postaci obrazów (tekstu bÄ…dz grafiki). Zasada tworzenia obrazu na ekranie lampy kineskopowej (ang. Cathode Ray Tube - CRT), która jest jednym z zasadniczych elementów monitora, przedstawiona jest na rysunku 1.1. Rysunek 1.1. Zasada rysowania obrazu na ekranie kineskopu Ekran kineskopu pokryty jest specjalnÄ… substancjÄ… zwanÄ… luminoforem. Pod wpÅ‚ywem zogniskowanego strumienia rozpÄ™dzonych elektronów luminofor Å›wieci, przy czym jasność tego Å›wiecenia zale\y od energii (szybkoÅ›ci) elektronów. W przypadku nieruchomego strumienia pozwalaÅ‚oby to uzyskać na ekranie Å›wiecÄ…cÄ… plamkÄ™. W celu narysowania obrazu na caÅ‚ej powierzchni obrazu strumieÅ„ elektronów jest odchylany zarówno w poziomie, co powoduje kreÅ›lenie na ekranie pojedynczej linii (przy zaÅ‚o\eniu staÅ‚ej jasnoÅ›ci Å›wiecenia plamki), jak i w pionie, co zapewnia kreÅ›lenie kolejnych linii jedna pod drugÄ…. Treść obrazu tworzona jest w ten sposób, \e w miarÄ™ przesuwania siÄ™ strumienia elektronów po powierzchni ekranu jego energia jest zmieniana, co powoduje zmiany jasnoÅ›ci Å›wiecenia poszczególnych punktów luminoforu tworzÄ…cych punkty wyÅ›wietlanego obraz zwane pikselami (w naszym przypadku obrazu monochromatycznego). KreÅ›lÄ…c liniÄ™ strumieÅ„ elektronów przesuwa siÄ™ poziomo z jednej strony ekranu na drugÄ…, na przykÅ‚ad z lewej na prawÄ…, a nastÄ™pnie powinien powrócić ponownie do lewej strony ekranu. Do tworzenia obrazu na ekranie wykorzystywany jest ruch plamki tylko w jednÄ… stronÄ™, przykÅ‚adowo z lewej na prawÄ…. Wówczas przy powrocie plamki z prawej strony na lewÄ… jest ona wygaszana, czyli strumieÅ„ elektronów jest hamowany na tyle silnie, aby nie powodowaÅ‚ Å›wiecenia luminoforu. JednoczeÅ›nie ruch ten jest znacznie szybszy ni\ ruch roboczy plamki. Z czasem potrzebnym na narysowanie jednej linii i powrotu plamki zwiÄ…zany jest parametr zwany czÄ™stotliwoÅ›ciÄ… odchylenia poziomego, bÄ™dÄ…cy odwrotnoÅ›ciÄ… tego czasu. Inaczej mówiÄ…c, parametr ten okreÅ›la, ile linii jest kreÅ›lonych na ekranie monitora w czasie jednej sekundy. Na poziomy ruch strumienia elektronów naÅ‚o\ony jest ruch pionowy z góry na dół, wolniejszy od ruchu poziomego, co jak powiedzieliÅ›my, powoduje kreÅ›lenie kolejnych linii jedna pod drugÄ…. W tym przypadku tak\e po dotarciu do dolnego brzegu ekranu strumieÅ„ UTK. Monitory i karty graficzne 2 powinien powrócić do górnego brzegu, ruch ten powinien być znacznie szybszy od ruchu w dół i w czasie jego trwania strumieÅ„ powinien być wygaszony. Po zapeÅ‚nieniu caÅ‚ego ekranu treÅ›ciÄ… obrazu opisany proces jest powtarzany tak czÄ™sto, abyÅ›my (dziÄ™ki bezwÅ‚adnoÅ›ci naszego oka) odnosili wra\enie, \e patrzymy na stabilny obraz. Ilość obrazów kreÅ›lonych w jednej sekundzie, czyli czÄ™stotliwość powtarzania obrazów, zwana jest czÄ™stotliwoÅ›ciÄ… odÅ›wie\ania obrazu. Jest to jedna z wa\niejszych parametrów monitora, decydujÄ…cy o komforcie pracy, czyli o braku migotania obrazu. W celu otrzymania na ekranie stabilnego obrazu, ka\de rozpoczÄ™cie kreÅ›lenia zarówno caÅ‚ego nowego obrazu, jaki ka\dej linii wchodzÄ…cej w jego skÅ‚ad, musi rozpoczynać siÄ™ w takim samym, Å›ciÅ›le okreÅ›lonym momencie. Dlatego tez do monitora dostarczane sÄ… specjalne sygnaÅ‚y mówiÄ…ce o tym, kiedy ma siÄ™ rozpocząć kolejny ruch plamki w poziomie lub pionie. SygnaÅ‚y te nazywane sÄ… odpowiednio sygnaÅ‚em synchronizacji odchylenia poziomego SYNCHRO H (H od ang. Horizontal) i sygnaÅ‚em synchronizacji odchylenia pionowego - SYNCHRO V (V ang. Vertical). Trzecim sygnaÅ‚em potrzebnym do uzyskania obrazu jest oczywiÅ›cie sygnaÅ‚ jasnoÅ›ci Å›wiecenia plamki, oznaczany czÄ™sto jako sygnaÅ‚ VIDEO. Wzmacniacz wideo (wizji) wzmacnia sygnaÅ‚ zmieniajÄ…cy energiÄ™ strumienia elektronów, a wiÄ™c jasność Å›wiecenia plamki. Od szerokoÅ›ci tak zwanego pasma przenoszenia tego wzmacniacza zale\y, jak szybko mo\emy zmieniać jasność Å›wiecenia plamki, a co za tym idzie, ile szczegółów mo\emy narysować w danej linii, czyli w poziomie. Parametr ten ma wiÄ™c wpÅ‚yw na jeden z bardzo wa\nych parametrów monitora, zwany rozdzielczoÅ›ciÄ…. Rozdzielczość decyduje o iloÅ›ci szczegółów obrazu, które mo\emy wyÅ›wietlić na ekranie. Rozdzielczość podawana jest jako ilość pikseli mo\liwych do wyÅ›wietlania w poziomie i w pionie. PrzykÅ‚adowo rozdzielczość 640×480 oznacza mo\liwość wyÅ›wietlania 640 pikseli w ka\dej z 480 linii. Jak powiedzieliÅ›my, rozdzielczość w poziomie zwiÄ…zana jest z pasmem przenoszenia wzmacniacza wideo, natomiast rozdzielczość w pionie wiÄ…\e siÄ™ z iloÅ›ciÄ… linii, które rysujemy na ekranie, a wiÄ™c z czÄ™stotliwoÅ›ciÄ… odchylenia poziomego. Na ostrość obrazu, a wiÄ™c tak\e i na rozdzielczość ma tak\e wpÅ‚yw Å›rednica plamki (jest ona podawana w milimetrach). Jest to oczywiste, gdy zauwa\ymy, \e zbyt du\a plamka bÄ™dzie na przykÅ‚ad powodowaÅ‚a nakÅ‚adanie siÄ™ na siebie sÄ…siadujÄ…cych linii. Dla komfortu pracy z monitorem wa\ny jest brak migotania obrazu, co uzyskujemy powtarzajÄ…c odpowiednio czÄ™sto wyÅ›wietlanie tego samego obrazu na ekranie. Dla uzyskania stabilnego obrazu powinien on być wyÅ›wietlany co najmniej 50 razy na sekundÄ™, a dla wy\szych rozdzielczoÅ›ci czÄ™stotliwość powinna być jeszcze wiÄ™ksza. ZwiÄ™kszanie czÄ™stotliwoÅ›ci powtarzania obrazu (czyli czÄ™stotliwoÅ›ci odÅ›wie\ania) wiÄ…\e siÄ™ jednak ze wzrostem iloÅ›ci informacji przesyÅ‚anej do monitora. Dlatego te\ w pewnych przypadkach stosuje siÄ™ wybieg pozwalajÄ…cy zmniejszyć tÄ™ ilość. Sposób polega na kreÅ›leniu obrazu na ekranie w dwóch etapach, najpierw wszystkie linie parzyste. Inaczej mówiÄ…c, kreÅ›limy na ekranie dwa półobrazy. Powoduje to zwiÄ™kszenie dwukrotnie czÄ™stotliwoÅ›ci powtarzania (pół)obrazu, przy tej samej iloÅ›ci przesyÅ‚anej informacji. Okazuje siÄ™ jednak, \e sposób ten przestaje poprawnie funkcjonować przy wysokich rozdzielczoÅ›ciach obrazu (u\ytkownicy odczuwajÄ… to jednak jako migotanie). KreÅ›lenie obrazu jako jednej caÅ‚oÅ›ci, linia po linii nazywamy pracÄ… monitora bez przelotu (lub wybieraniem kolejnoliniowym, ang. non- interlaced), zaÅ› konstruowanie obrazu z dwóch półobrazów zwane jest pracÄ… z przelotem (lub wybieraniem miÄ™dzyliniowym, ang. interlaced). Obydwa sposoby wyÅ›wietlania obrazu przedstawione sÄ… schematycznie na rysunku 1.2. UTK. Monitory i karty graficzne 3 Praca bez przeplotu Praca z przeplotem Rysunek 1.2. Praca monitora bez przelotu i z przelotem WyÅ›wietlanie obrazu kolorowego polega na tworzeniu obrazu z punktów o trzech kolorach: czerwonym (ang. red), zielonym (ang. green) i niebieskim (ang. blue). Kolory czerwony i niebieski sÄ… kolorami podstawowymi, kolor zielony zaÅ› jest mieszaninÄ… koloru niebieskiego i \ółtego. MieszajÄ…c ze sobÄ… w odpowiednich proporcjach wymienione trzy kolory mo\emy na ekranie uzyskać dowolnÄ… barwÄ™. Ekran kineskopu kolorowego pokryty jest trzema rodzajami luminoforu (tworzÄ…cymi punkty bÄ…dz paski). Ka\dy rodzaj luminoforu pobudzany jest do Å›wiecenia przez oddzielny strumieÅ„ elektronów. Schematycznie konstrukcja kineskopu kolorowego pokazana jest na rysunku 1.3. Rysunek 1.3. Zasada dziaÅ‚ania kineskopu kolorowego Jednym z problemów wystÄ™pujÄ…cych przy budowie tego rodzaju kineskopu jest precyzja wykonania dziaÅ‚ elektronowych, ukÅ‚adów ogniskujÄ…cych i odchylajÄ…cych. Nie mo\na bowiem dopuÅ›cić, by przykÅ‚adowo strumieÅ„ elektronów odpowiedzialny za Å›wiecenie koloru niebieskiego trafiaÅ‚ na punkty luminoforu czerwonego. RozwiÄ…zaniem uÅ‚atwiajÄ…cym osiÄ…gniÄ™cie prawidÅ‚owego stanu jest stosowanie odpowiednio skonstruowanej maski. OczywiÅ›cie tego typu kineskop wymaga w miejsce pojedynczego sygnaÅ‚u VIDEO trzech UTK. Monitory i karty graficzne 4 sygnałów sterujÄ…cych, zwanych R, G, B, odpowiedzialnych za zmiany jasnoÅ›ci Å›wiecenia odpowiednio luminoforu czerwonego, zielonego i niebieskiego. PodsumowujÄ…c, podstawowymi parametrami monitora sÄ…: rozdzielczość, czÄ™stotliwość odÅ›wie\ania, Å›rednica plamki oraz wielkość ekranu. Wielkość ekranu podawana jest w postaci dÅ‚ugoÅ›ci jego przekÄ…tnej wyra\onej w calach. Jest to jednoznaczne, gdy\ stosunek wysokoÅ›ci do szerokoÅ›ci ekranu jest staÅ‚y i wynosi 4:3. PomiÄ™dzy niektórymi z tych parametrów, taki jak czÄ™stotliwość odchylana poziomego, i pasmem przenoszenia wzmacniacza wideo istniejÄ… dość oczywiste zwiÄ…zki. Przy ustalonej rozdzielczoÅ›ci i czÄ™stotliwoÅ›ci odÅ›wie\ania, czÄ™stotliwość odchylania poziomego mo\emy wyliczyć ze wzoru: fH = nH · fV gdzie: fH - czÄ™stotliwość odchylania poziomego fV - czÄ™stotliwość odÅ›wie\ania nH - rozdzielczość (ilość linii) w poziomie Wzór jest oczywisty, gdy zauwa\ymy, \e w czasie kreÅ›lenia jednego obrazu musimy narysować nH linii, co oznacza, ze jednÄ… liniÄ™ trzeba narysować nH razy szybciej ni\ caÅ‚y obraz. ZakÅ‚adajÄ…c przykÅ‚adowo pracÄ™ monitora z rozdzielczoÅ›ciÄ… 640×480 i czÄ™stotliwoÅ›ciÄ… odÅ›wie\ania 60 Hz, otrzymujemy czÄ™stotliwość odchylania poziomego równÄ… 28,8 kHz. ZwiÄ…zek szerokoÅ›ci pasma przenoszenia wzmacniacza wideo z rozdzielczoÅ›ciÄ… i czÄ™stotliwoÅ›ciÄ… odÅ›wie\ania wynika z iloÅ›ci informacji, którÄ… musimy przesÅ‚ać przez niego, a dokÅ‚adnej z maksymalnÄ… szybkoÅ›ciÄ… zmian sygnaÅ‚u wideo. Przy zaÅ‚o\eniu, ze wyÅ›wietlamy na przemian piksele jasne i ciemne, ilość zmian sygnaÅ‚u w ciÄ…gu sekundy (a wiÄ™c i jego czÄ™stotliwość) jest równa iloÅ›ci pikseli, które wyÅ›wietlamy w ciÄ…gu sekundy. Ilość tÄ™ mo\emy wyliczyć ze wzoru: N = nH · nV · fV gdzie: N - ilość wyÅ›wietlanych piksel, a wiÄ™c i czÄ™stotliwość sygnaÅ‚u wideo nH - rozdzielczość w poziomie nV - rozdzielczość pionowa fV - czÄ™stotliwość odÅ›wie\ania obrazu. OczywiÅ›cie pasmo przenoszenia wzmacniacza wideo powinno być wiÄ™ksze od wyliczonej wartoÅ›ci. Dla wymienionych wy\ej parametrów otrzymujemy: fVideo = 640 · 480 · 60 = 18432000 i rzeczywiÅ›cie IBM dla tego trybu podaje wymagane pasmo równe 25,175 MHz. Ze zmianÄ… rozdzielczoÅ›ci wiÄ…\e siÄ™ (szczególnie w przypadku starszych monitorów) pewne ostrze\enie. Jak powiedzieliÅ›my, zwiÄ™kszenie rozdzielczoÅ›ci zmusza generatory odchylenia monitora do pracy z wy\szÄ… czÄ™stotliwoÅ›ciÄ…. Mo\e to spowodować zerwanie synchronizacji drgaÅ„ oraz przegrzewanie siÄ™ tych ukÅ‚adów, co w konsekwencji mo\e prowadzić do ich uszkodzenia. W przypadku zerwania drgaÅ„ (brak obrazu na monitorze) nale\y wyÅ‚Ä…czyć monitor i powrócić do ni\szej rozdzielczoÅ›ci (na przykÅ‚ad tryb awaryjny w Windows). UTK. Monitory i karty graficzne 5 W nowszych monitorach problem ten zwykle nie wystÄ™puje, monitory te majÄ… bowiem generatory odchylania, które mogÄ… pracować z ró\nymi czÄ™stotliwoÅ›ciami. Monitory takie okreÅ›lane sÄ… wówczas jako monitory multisync lub multiscan. Jednak\e i tutaj nie wolno przekraczać ich parametrów granicznych (je\eli monitor na to pozwala). PrzykÅ‚adowe czÄ™stotliwoÅ›ci odÅ›wie\ania i odchylania poziomego w okreÅ›lonych trybach i przy okreÅ›lonych rozdzielczoÅ›ciach podane sÄ… w tabeli 1.1. Tabela 1.1. PrzykÅ‚adowe czÄ™stotliwoÅ›ci pracy monitorów dla wybranych standardów Standard Rozdzielczość fV fH EGA 60 Hz 21,5 kHz 640×350 VGA 60 lub 70 Hz 31,5 k Hz 640×480 VESA SVGA 72 Hz 48,1 kHz 800×600 VESA SVGA 75 Hz 60 kHz 1024×768 WESA SVGA 75 Hz 80 kHz 1280×1024 WejÅ›cie sygnałów wideo mo\e być zarówno analogowe jak i cyfrowe. Problem ten zostanie dokÅ‚adnie wyjaÅ›niony przy omawianiu adapterów (kart) graficznych. 1.2. Inne rodzaje ekranów Prócz klasycznych monitorów z kineskopem, stosuje siÄ™, szczególnie w komputerach przenoÅ›nych, inne rodzaje ekranów, a konkretnie ekrany (wyÅ›wietlacze) LCD (ang. liquid cristal display) oraz ekrany plazmowe, przy czym te ostatnie sÄ… maÅ‚o popularne. Obydwa typy ekranów sÄ… ekranami pÅ‚askimi. W jednym i drugim przypadku obraz na ekranie, podobnie jak w przypadku kineskopu, budowany jest z poszczególnych punktów, czyli pikseli. Inna jest tylko zasada ich wyÅ›wietlania. Rysunek 1.4. Zasada dziaÅ‚ania wyÅ›wietlacza LCD Filtry polaryzacyjne górny i dolny majÄ… pÅ‚aszczyzny polaryzacji przesuniÄ™te wzglÄ™dem siebie o 90°. Umieszczony pomiÄ™dzy nimi ciekÅ‚ymi krysztaÅ‚ powoduje zmianÄ™ pÅ‚aszczyzny polaryzacji Å›wiatÅ‚a, przy czym kÄ…t skrÄ™cenia tej pÅ‚aszczyzny zale\y od przyÅ‚o\onego do niego napiÄ™cia. W wyÅ›wietlaczu ciekÅ‚okrystalicznym w taki sposób wybrano ciekÅ‚y krysztaÅ‚, aby bez napiÄ™cia polaryzujÄ…cego powodowaÅ‚ skrÄ™cenie pÅ‚aszczyzny polaryzacji Å›wiatÅ‚a o 90°. DziÄ™ki temu Å›wiatÅ‚o mo\e przedostawać siÄ™ przez wyÅ›wietlacz. PrzyÅ‚o\enie napiÄ™cia pomiÄ™dzy dwa punkty siatki przewodników, podÅ‚u\nej i poprzecznej, powoduje zmianÄ™ kÄ…ta skrÄ™cania pÅ‚aszczyzny polaryzacji Å›wiatÅ‚a i przepuszczanie mniejszej iloÅ›ci Å›wiatÅ‚a,. W konsekwencji powstaje na wyÅ›wietlaczu punkt tym ciemniejszy, im wiÄ™ksza UTK. Monitory i karty graficzne 6 jest wartość przyÅ‚o\onego napiÄ™cia. W przypadku wyÅ›wietlaczy kolorowych w odpowiednich punktach umieszczone sÄ… filtry o kolorach: czerwonym, zielonym i niebieskim (RGB). OdmianÄ… ekranu LCD jest wyÅ›wietlacz LCD z aktywnÄ… matrycÄ…. W tego typu wyÅ›wietlaczu ka\demu pikselowi odpowiada osobny tranzystor wykonany w tak zwanej technice TFT (tranzystor cienkowarstwowy, ang. Thin Film Transistor). Mo\e on przeÅ‚Ä…czać wiÄ™ksze prÄ…dy ni\ matryca pasywna i w efekcie uzyskuje siÄ™ jaÅ›niejszy, bardziej wyrazny obraz. InnÄ… odmianÄ… pÅ‚askich ekranów sÄ… ekrany plazmowe. ÅšwiecÄ…ce punkty sÄ… tam uzyskiwane w wyniku miejscowej jonizacji gazu. Wymaga to stosunkowo du\ego napiÄ™cia okoÅ‚o 200 V, stÄ…d jak powiedzieliÅ›my, sÄ… one rzadko stosowane. 1.3. Budowa i dziaÅ‚anie adapterów graficznych Terminów adapter i karta mo\na przy pewnym zaÅ‚o\eniu u\ywać zamiennie. Ró\nica pomiÄ™dzy kartÄ… a adapterem polega na tym, \e karta jest urzÄ…dzeniem wymiennym, które montujemy w gniezdzie magistrali rozszerzajÄ…cej (ang. slot), natomiast adapter mo\e być umieszczony tak\e na staÅ‚e na pÅ‚ycie głównej. Rozró\nienie to dotyczy wszelkich adapterów i kart. W rozdziale tym u\ywamy terminu karta, gdy\ jest on powszechnie stosowane, nie przesÄ…dza to jednak o umiejscowieniu urzÄ…dzenia. Karta graficzna jest urzÄ…dzeniem poÅ›redniczÄ…cym w komunikacji systemu komputerowego z monitorem. Jak wspomnieliÅ›my w rozdziale pierwszym, otrzymuje ona informacje o treÅ›ci obrazu od systemu i po odpowiednich dziaÅ‚aniach wytwarza sygnaÅ‚y sterujÄ…ce pracÄ… monitora. Z biegiem czasu ilość zadaÅ„ wykonywanych przez kartÄ™ graficznÄ… rosÅ‚a. Sta mo\emy karty graficzne podzielić na tak zwane bufory ramki, które nie uczestniczÄ… w tworzeniu treÅ›ci obrazu oraz na karty akceleratorowe. WÅ›ród tych ostatnich wyró\niamy akceleratory 2D, czyli grafiki dwuwymiarowej i akceleratory grafiki trójwymiarowej 3D. Zadaniem prostych kart graficznych, czyli buforów ramki, jest wytworzenie sygnałów sterujÄ…cych monitorem, potrzebnych do uzyskania okreÅ›lonego obrazu. O elementach tego obrazu decyduje zawartość tak zwanej pamiÄ™ci wideo (o której powiemy w dalszych częściach niniejszego rozdziaÅ‚u). Zawartość ta jest tworzona wyÅ‚Ä…cznie prze system, a konkretnie przez mikroprocesor, natomiast karta w tym procesie w ogólne nie uczestniczy. W przypadku kart akceleratorowych sytuacja jest nieco odmienna. Mniejsza lub wiÄ™ksza część operacji zwiÄ…zanych z tworzeniem treÅ›ci obrazu (inaczej mówiÄ…c, z obliczaniem, jak intensywnie powinny Å›wiecić poszczególne piksele skÅ‚adajÄ…ce siÄ™ na caÅ‚ość obrazu) wykonywana jest przez kartÄ™ graficznÄ… (na \Ä…danie systemu). ZwiÄ…zane jest to zwykle z potrzebÄ… szybszego wykonania tych operacji i odciÄ…\enia procesora. Od strony systemu karta graficzna widziana jest jako ukÅ‚ad wejÅ›cia / wyjÅ›cia współadresowalny z pamiÄ™ciÄ… operacyjnÄ… (zazerowany zakres adresów A000:0000 (B000:FFFFh-128 KB). Rejestry konfiguracyjne i sterujÄ…ce majÄ… zarezerwowane adresy w przestrzeni adresowej izolowanych ukÅ‚adów wejÅ›cia/wyjÅ›cia. UTK. Monitory i karty graficzne 7 1.3.1. Schemat blokowy prostej karty graficznej PracÄ™ kart graficznych mo\emy podzielić na dwa ró\niÄ…ce siÄ™ znacznie tryby: tekstowy i graficzny. Ró\nica polega przede wszystkim na sposobie interpretacji zawartoÅ›ci pamiÄ™ci wideo. W trybie tekstowym zawartość pamiÄ™ci interpretowana jest jako kody znaków, które nale\y wyÅ›wietlić na ekranie. Zawartość pamiÄ™ci wideo okreÅ›la wiÄ™c w tym przypadku poÅ›rednio, co ma być wyÅ›wietlone na ekranie. Informacja o tym, który piksel ma być zapalony, a który zgaszony, pochodzi z generatora znaków. W trybie graficznym zawartość pamiÄ™ci wideo jest interpretowana jako bezpoÅ›rednie okreÅ›lenie jasnoÅ›ci Å›wiecenia ka\dego piksela (przy zaÅ‚o\eniu, \e piksel mo\e być jedynie zgaszony lub zapalony, na ka\dy piksel przypadaÅ‚by 1 bit). Oprócz dostarczania wymienionych sygnałów sterownik monitora adresuje pamięć wideo, matrycÄ™ znaków (RAM/ROM znaków) oraz taktuje pracÄ™ generatora znaków i rejestru przesuwajÄ…cego. OczywiÅ›cie peÅ‚ny zestaw funkcji CRTC zale\y od jego typu, a zatem i od karty, w której pracuje. Interfejs magistrali poÅ›redniczy w wymianie informacji karty z CPU (część tych ukÅ‚adów jest w istocie zawarta w CRTC). Pamięć wideo zawiera treść obrazu (w formie poÅ›redniej lub bezpoÅ›redniej) przeznaczonego do wyÅ›wietlania. RAM/ROM znaków zawiera matrycÄ™ znaków, czyli informacjÄ™ o sposobie konstruowania znaków z pikseli. Pamięć ta razem z dekoderem atrybutów oraz generatorem znaków współpracuje przy wyÅ›wietlaniu znaków w trybie tekstowym. Generatory wyjÅ›ciowe wytwarzajÄ… sygnaÅ‚y o poziomach wymaganych przez monitor, z którym współpracuje karta. 1.3.2. Praca karty graficznej w trybie tekstowym DziaÅ‚anie ukÅ‚adu jest nastÄ™pujÄ…ce: impulsy taktujÄ…ce przesÅ‚anie kolejnych bitów z rejestru przesuwanego podawane sÄ… jednoczeÅ›nie zespoÅ‚owi liczników, których zadaniem jest Å›ledzenie, który piksel obrazu aktualnie wyÅ›wietlany. Licznik L1 liczÄ…cy modulo m sygnalizuje zakoÅ„czenie rysowania fragmentu linii nale\Ä…cej do danego znaku (m pikseli na jeden znak) i przejÅ›cie do rysowania nastÄ™pnego znaku. Impulsy wyjÅ›ciowe tego licznika zliczane sÄ… przez licznik L2. Jego zawartość mówi o tym, który znak w bie\Ä…cym wierszu rysujemy. Licznik ten generuje wiÄ™c część adresu dla pamiÄ™ci wideo, okreÅ›lajÄ…c, kod którego znaku nale\y pobrać. PrzepeÅ‚nienie tego licznika po zliczeniu N2 impulsów sygnalizuje konieczność zmiany linii, co jest zwiÄ…zane z wygenerowaniem impulsu synchronizacji poziomej. Licznik L3 zwiÄ™ksza swojÄ… zawartość po narysowaniu ka\dej kolejnej linii. Zliczenie wiÄ™c n linii przez licznik oznacza zakoÅ„czenie rysowania bie\Ä…cego wiersza i przejÅ›cia do kreÅ›lenia linii nale\Ä…cych do wiersza nastÄ™pnego. PrzepeÅ‚nienie licznika powoduje zwiÄ™kszenie zawartoÅ›ci licznika L4 zliczajÄ…cego (numerujÄ…cego wiersze. Zawartość tego licznika stanowi drugÄ… część adresu wybierajÄ…cego kod okreÅ›lonego znaku w pamiÄ™ci wideo. Zawartość pamiÄ™ci wideo, bÄ™dÄ…ca kodem ASCII aktualnie wyÅ›wietlanego znaku, podawana jest do pamiÄ™ci matrycy znaków, stanowiÄ…c część adresu mówiÄ…cÄ… o tym, jakiego znaku konstrukcja bÄ™dzie aktualnie wyÅ›wietlana. PozostaÅ‚Ä… część adresu stanowi numer linii aktualnie wyÅ›wietlanego znaku pobrany z licznika L3. Powoduje to wybranie okreÅ›lonego bajtu z pamiÄ™ci matrycy znaków i zaÅ‚adowanie go do rejestru przesuwanego, którego zawartość bit po bicie, zgodnie z taktem zegara przesyÅ‚ana jest na zewnÄ…trz. WyjÅ›cie tego UTK. Monitory i karty graficzne 8 rejestru steruje jasnoÅ›ciÄ… Å›wiecenia plamki, co stanowi sygnaÅ‚ wideo (0- pikseli zgaszony, 1 zapalony lub w przypadku wyÅ›wietlania koloru 0 - kolor tÅ‚a, 1 kolor znaku). Kolory uzyskuje siÄ™ przy u\yciu czterech sygnałów oznaczonych jako I - intensywność, R - czerwony, G -zielony i B - niebieski. Przy wyÅ›wietlaniu znaków w trybie tekstowym w kolorze ka\dy znak jest reprezentowany w pamiÄ™ci wideo przez dwa bajty. Pierwszy bajt zawiera kod ASCII wyÅ›wietlanego znaku, zaÅ› w drugim bajcie umieszczone sÄ… tak zwane atrybuty wyÅ›wietlanego znaku. Szczegółowe rozmieszczenie informacji w obydwu bajtach przedstawia rysunek 1.5. Rysunek 1.5. WyÅ›wietlanie tekstu w trybie znakowym w kolorze Rysunek 1.5 wyjaÅ›nia u\ycie bajtu atrybutów w celu uzyskania kolorów znaku i tÅ‚a. Informacja o konstrukcji znaku zaÅ‚adowana do rejestru przesuwajÄ…cego nie steruje bezpoÅ›rednio jasnoÅ›ciÄ… Å›wiecenia plamki, lecz jest podawana na wejÅ›cie sterujÄ…ce multipleksera. Multiplekser posiada dwa czterobitowe wejÅ›cia oraz czterobitowe wyjÅ›cie. Je\eli z rejestru przesuwajÄ…cego podawana jest wartość 1 (co oznacza, ze wyÅ›wietlamy element znaku) na wyjÅ›cie multipleksera podawane sÄ… bity atrybutów znaku. Cztery bity umo\liwiajÄ… uzyskanie 24 = 16 ró\nych kolorów. Zestawienie kolorów w zale\noÅ›ci od wartoÅ›ci bitów IRGB przedstawia tabela 1.2. Tabela 1.2. Kombinacje wartoÅ›ci bitów i odpowiadajÄ…ce im kolory IRGB Kolor IRGB Kolor 000 Czarny 1000 Ciemnoszary 0001 Niebieski 1001 Jasnoniebieski 0010 Zielony 1010 Jasnozielony 0011 Cyjan 1011 Jasny cyjan 0100 Czerwony 1100 Jasnoczerwony 0101 Purpurowy 1101 Jasnopurpurowy 0110 BrÄ…zowy 1110 śółty 0111 Jasnoszary 1111 BiaÅ‚y UTK. Monitory i karty graficzne 9 Je\eli z rejestru przesuwajÄ…cego podawane jest zero, oznacza to, \e wyÅ›wietlany jest piksel tÅ‚a. Wówczas na wyjÅ›cie multipleksera podawane sÄ… bity atrybutów tÅ‚a. Bity R, G i B podawane sÄ… bezpoÅ›rednio, natomiast bit B1 (ang. Blinking - migotanie) jest podawany za poÅ›rednictwem bramki AND i jego u\ycie zale\y od stanu drugiego wejÅ›cia tej bramki. Je\eli na to wejÅ›cie podawana jest wartość 0 z tak zwanego rejestru trybu wyÅ›wietlania (wchodzÄ…cego w skÅ‚ad CRTC), to bit B1 okreÅ›la rozjaÅ›nienie tÅ‚a. JeÅ›li natomiast na wejÅ›cie to podawany jest przebieg prostokÄ…tny (na przemian 1 i 0), to wówczas uzyskujemy migotanie tÅ‚a (co zresztÄ… nasze oko odbiera jako migotanie znaku). W starszych kartach graficznych matryca znaków umieszczona byÅ‚a w pamiÄ™ci ROM, co uniemo\liwiaÅ‚o jej zmianÄ™. PoczÄ…wszy od karty EGA matryca to znajduje siÄ™ w pamiÄ™ci RAM. Na koniec opisu trybu tekstowego wyliczymy pojemność pamiÄ™ci potrzebnÄ… do przechowania zawartoÅ›ci peÅ‚nego ekranu w tym trybie, przykÅ‚adowo dla karty VGA. W jednym z trybów tej karty wyÅ›wietlane jest na ekranie 25 wierszy po 80 znaków. Poniewa\ w pamiÄ™ci wideo ka\demu znakowi przypisane sÄ… dwa bajty, pamięć potrzebna do przechowania treÅ›ci caÅ‚ego ekranu wynosi: 25 · 80 · 2B = 4000B H" 4 KB 1.3.3. Praca karty graficznej w trybie graficznym Informacja z pamiÄ™ci wideo jest interpretowana jako bezpoÅ›rednie okreÅ›lenie jasnoÅ›ci Å›wiecenia (bÄ…dz koloru) pikseli. W sytuacji obrazu czarno-biaÅ‚ego (piksel zgaszony lub zapalony) schemat ukÅ‚adu wyÅ›wietlania jest bardzo prosty. Jest on przedstawiony na rysunku 1.6. Rysunek 1.6. Tworzenie obrazu czarno-biaÅ‚ego w trybie graficznym Kolejne bajty pobierane z pamiÄ™ci wideo Å‚adowane sÄ… do rejestru przesuwajÄ…cego. StamtÄ…d w miarÄ™ przesuwania siÄ™ wiÄ…zki elektronów po kineskopie podawane sÄ… bit po bicie do ukÅ‚adów sterujÄ…cych jasnoÅ›ciÄ… plamki, tworzÄ…c kolejne piksele. Bardziej skomplikowanÄ… sytuacjÄ™ mamy w przypadku wyÅ›wietlania obrazu kolorowego. Ka\dy piksel musi być reprezentowany przez zespół bitów, których ilość zale\y od liczby kolorów, których chcemy u\ywać. Ilość bitów których u\ywamy do reprezentowania ka\dego piksela musi zapewnić mo\liwość zakodowania wszystkich u\ywanych kolorów. UTK. Monitory i karty graficzne 10 StÄ…d ilość bitów i ilość kolorów muszÄ… speÅ‚niać prostÄ… zale\ność: 2n e" N lub inaczej n e" lg2N gdzie: N - ilość u\ywanych kolorów n- ilość bitów reprezentujÄ…cych 1 piksel W starszych kartach graficznych typu EGA czy VGA, ze wzglÄ™du na prostszÄ… budowÄ™ ukÅ‚adów wyjÅ›ciowych i stosunkowo maÅ‚Ä… ilość kolorów, zawartość pamiÄ™ci nie reprezentowaÅ‚a koloru bezpoÅ›rednio. Odpowiednie kombinacje bitów byÅ‚y podawane konwersji za pomocÄ… okreÅ›lonych tablic przekodowujÄ…cych (ang. look-up table), wchodzÄ…cych w skÅ‚ad ukÅ‚adów karty graficznej. ZasadÄ™ generowania sygnałów kolorów poka\emy najpierw na prostszym przykÅ‚adzie karty EGA, a dopiero potem opiszemy analogicznÄ… sytuacjÄ™ w karcie VGA. Ma to dodatkowe uzasadnienie, jako, \e część ukÅ‚adów zawartych w karcie VGA wynika z mo\liwoÅ›ci emulowania przez niÄ… karty EGA. Karta EGA Pamięć wideo karty EGA dzielona jest na cztery części wa\ne pÅ‚atami lub bankami (ang. plane). Z ka\dego pÅ‚atu Å‚adowany jest do współpracujÄ…cego z nim rejestru przesuwajÄ…cego 1 bajt, co daje w sumie 4 bajty okreÅ›lajÄ…ce wyglÄ…d oÅ›miu pikseli. Kolejne odpowiadajÄ…ce sobie 4 bity pojawiajÄ…ce siÄ™ na wyjÅ›ciach rejestrów przesuwajÄ…cych okreÅ›lajÄ… kolor wyÅ›wietlanego piksela poprzez wybór jednego z szesnastu rejestrów zwanych rejestrami palety kolorów. Pojemność tych rejestrów wynosi 6 bitów, co daje mo\liwość zakodowania 26 = 64 ró\nych kolorów. Jednak\e bez przeÅ‚adowywania rejestrów (a wiÄ™c przeprogramowywania karty) mamy do dyspozycji tylko 16 kolorów, gdy\ tyle jest rejestrów palety kolorów (a tak\e tyle ró\nych mo\liwoÅ›ci mo\emy wybrać za pomocÄ… 4 bitów). StÄ…d mówimy, ze karta EGA mogÅ‚a pracować z maksymalnie szesnastoma kolorami, przy czym byÅ‚y one wybierane z palety 64 kolorów. WyjÅ›cie rejestrów palety kolorów byÅ‚o podawane do monitora w postaci sygnałów R, G, B, IR, IB, IG, przy czym mogÅ‚y one przyjmować wartoÅ›ci odpowiadajÄ…ce dwóm stanom 0 i 1. Dlatego te\ wyjÅ›cie karty EGA okreÅ›lane jest jako wyjÅ›cie cyfrowe. Gniazdem wyjÅ›ciowym tej karty byÅ‚o gniazdo typu DB 9. Schematyczny rysunek tego gniazda wraz z okreÅ›leniami sygnałów wystÄ™pujÄ…cych na poszczególnych pinach pokazuje rysunek 1.7. Rysunek 1.7. Schemat gniazda wyjÅ›ciowego karty EGA PrzyczynÄ… podziaÅ‚u pamiÄ™ci wideo karty EGA na pÅ‚aty jest miÄ™dzy innymi ilość adresów zarezerwowanych dla kart graficznych w przestrzeni adresowej pamiÄ™ci. Zakres przydzielonych adresów umo\liwia zaadresowanie 128 KB. Dla bogatszych kart EGA oraz dla kart WGA i SVGA jest to ilość zbyt maÅ‚a, stÄ…d potrzeba podziaÅ‚u pamiÄ™ci na pÅ‚aty. UTK. Monitory i karty graficzne 11 Karta VGA Karta VGA mo\e pracować w wielu ró\nych trybach, emulujÄ…c dziaÅ‚anie wczeÅ›niejszych kart lub pracujÄ…c z ró\nymi rozdzielczoÅ›ciami i liczbami kolorów. Zestawienie trybów pracy karty VGA zawiera tabela 1.3. Tabela 1.3. Tryby pracy karty VGA Numer trybu Rodzaj trybu Rozdzielczość / Ilość kolorów / Matryca (hex) ilość znaków paleta kolorów znaków 0,1 Tekstowy 16/256K 40×25 9×16 2,3 Tekstowy 16/256K 80×25 8×14 4,5 Graficzny 4/256K 320×200 6 Graficzny 2/256K 640×200 7 Tekstowy mono 80×25 9×16 8 Graficzny 16/256K 160×200 9 Graficzny 16/256K 320×200 A Graficzny 4/256K 640×200 D Graficzny 320/200 16/256K E Graficzny 16/256K 640×200 F Graficzny 2/256K 640×350 10 Graficzny 16/256K 640×35016 11 Graficzny 2/256K 640×480 12 Graficzny 16/256K 640×480 13 Graficzny 256/256K 320×200 PrzykÅ‚adowo, dla trybu EGA (tryb 10h) informacja z pamiÄ™ci Å‚adowania jest do rejestrów przesuwajÄ…cych, skÄ…d za pomocÄ… czterech bitów (tryb 10h jest 16-kolorowy) wybiera 1 z 16 rejestrów palety kolorów. W trybie tym rejestry zawierajÄ… swój numer, co powoduje wybranie jednego z pierwszych szesnastu rejestrów w tablicy przekodowujÄ…cej. Informacja z rejestru palety kolorów podawana jest na tablicÄ™ przekodowujÄ…cÄ… za poÅ›rednictwem multipleksera, przy wartoÅ›ci sygnaÅ‚u S=0 (tryb EGA). Zawartość rejestrów tablicy przekodowujÄ…cej (18 bitów) decyduje o wyÅ›wietlanym kolorze piksela. Ilość kolorów, które mo\emy wybrać bez przeÅ‚adowywania rejestrów tablicy przekodowujÄ…cej, wynosi 16. Nale\y jednak zauwa\yć, ze w stosunku do oryginalnej karty EGA zmieniÅ‚a siÄ™ kolorów, która wynosi 256 K kolorów, co wynika z u\ycia do kodowania kolorów 18 bitów (takie mamy rejestry w tablicy przekodowujÄ…cej. W trybie 13h VGA ka\dy piksel jest reprezentowany przez 8 bitów, co umo\liwia zakodowanie 256 kolorów. Cztery mÅ‚odsze bity wybierajÄ… jeden z szesnastu rejestrów palety kolorów, jednak\e w tym trybie ka\dy z rejestrów zawiera swój zakodowany dwójkowo numer. Oznacza to, \e bity docierajÄ… niezmienione do tablicy przekodowujÄ…cej. NastÄ™pne cztery bity Å‚adowane sÄ… do rejestru wyboru kolorów, skÄ…d częściowo bezpoÅ›rednio, częściowo zaÅ› za poÅ›rednictwem multipleksera podawane sÄ… na tablicÄ… przekodowujÄ…cÄ…. Ostatecznie 8 bitów wybiera 1 z 256 18-bitowych rejestrów. Na ka\dÄ… skÅ‚adowÄ… koloru poÅ›wiÄ™conych jest 6 bitów, co daje 64 kombinacje dla jednego koloru. Bite te sterujÄ… pracÄ… trzech przetworników a/c, po jednym dla ka\dej skÅ‚adowej koloru. AÄ…cznie daje to na wyjÅ›ciu ka\dego przetwornika 64 ró\ne poziomy napiÄ™cia odpowiadajÄ…ce danej skÅ‚adowej koloru, co daje sumarycznie 64 × 64 × 64 = 262 144 odcienie kolorów. Jak widać, wyjÅ›cie karty VGA jest wyjÅ›ciem analogowym (wiele poziomów napięć). UTK. Monitory i karty graficzne 12 Tabela 1.4. Opis wyprowadzeÅ„ gniazda VGA Nr pinu Oznaczenie Opis 1 Red SygnaÅ‚ z DAC - kolor czerwony 2 Green SygnaÅ‚ z DAC - kolor zielony 3 Blue SygnaÅ‚ z DAC - kolor niebieski 4 Zarezerwowane 5 GND Masa 6 GND Masa (czerwony) 7 GND Masa (zielony) 8 GND Masa (niebieski) 9 Nie podÅ‚Ä…czone 10 GND Masa 11 Zarezerwowane 12 Zarezerwowane 13 HSYNC Synchronizacja odchylania poziomego 14 VSYNC Synchronizacja odchylania pionowego 15 Zarezerwowane Policzymy teraz ilość pamiÄ™ci potrzebnÄ… dla zapamiÄ™tania treÅ›ci obrazu zajmujÄ…cego peÅ‚ny ekran w jednym z wybranych trybów graficznych. PrzykÅ‚adowo dla trybu 12h VGA (16 kolorów przy rozdzielczoÅ›ci 640 × 480) wymagana pojemność pamiÄ™ci wynosi: (rozdzielczość pozioma) × (rozdzielczość pionowa) × (ilość bitów na piksel) = 640 × 480 × 4b = 1 228 800 bitów czyli (po podzieleniu przez 8) 154 KB. Wielkość tÄ™ nale\y porównać z wymaganiami trybu tekstowego. Karty VGA, jak wyliczyliÅ›my, wymagajÄ… pamiÄ™ci wideo o pojemnoÅ›ci powy\ej 128 KB. Pojemność pamiÄ™ci karty VGA wynosi standardowo 256 KB. Pamięć ta, podobnie jak dla karty EGA, dzielona jest na cztery banki (pÅ‚aty) po 64 KB ka\dy (chocia\ teoretycznie mo\liwy byÅ‚by tak\e podziaÅ‚ na 2 banki 128-kilobajtowe). Dla trybów szesnastokolorowych wykorzystanie tych banków jest dość naturalne. Ka\dy z nich przechowuje bity okreÅ›lajÄ…ce skÅ‚adowÄ… jednego koloru. W trybie 256 kolorowym ka\dy piksel opisywany jest jednym bajtem. Przy rozdzielczoÅ›ci 320×200 wymagana pojemność wynosi 320 × 200 × 1B = 64 KB. Informacja o kolejnych pikselach umieszczana jest pod kolejnymi rosnÄ…cymi adresami od A0000h do AF9FFh. UTK. Monitory i karty graficzne 13 U\ycie banków pamiÄ™ci dla trybu tekstowego przedstawia rysunek 1.8. Rysunek. 1.8. Wykorzystanie banków pamiÄ™ci wideo dla trybu tekstowego Jak widzimy, matryce znaków sÄ… przechowywane w pamiÄ™ci RAM, co umo\liwia ich zmianÄ™. ZmianÄ™ takÄ… najproÅ›ciej przeprowadzić przy u\yciu przerwania 11h VGA BIOS (Interface to the Character Generator). 1.3.4. Karty SVGA Kartami SVGA nazywa siÄ™ karty pracujÄ…ce z rozdzielczoÅ›ciami i/lub iloÅ›ciÄ… kolorów przekraczajÄ…cymi wielkoÅ›ci podane dla karty VGA. PoczÄ…tkowo karty te projektowane byÅ‚y bez \adnych uzgodnionych standardów, co powodowaÅ‚o wiele kÅ‚opotów z kompatybilnoÅ›ciÄ… oprogramowania i systemu graficznego. Sytuacja w znacznej mierze zostaÅ‚a uporzÄ…dkowana przez komitet o nazwie VESA (ang. The Video Electronics Standards Association). Wprowadzono nowe tryby oznaczane liczbami 1xxh dla odró\nienia ich od trybów wprowadzanych przez producentów. Zestawienie nowych trybów SVGA zawiera tabela 1.5. Tabela 1.5. Tryby pracy karty SVGA Numer trybu Rodzaj trybu Rozdzielczość Ilość kolorów Ilość znaków (hex) wrs/kol 100 Graficzny 256 640×400 101 Graficzny 256 640×480 102 Graficzny 16 800×600 103 Graficzny 256 800×600 104 Graficzny 16 1024×768 105 Graficzny 256 1024×768 106 Graficzny 16 1280×1024 107 Graficzny 256 1280×1024 108 Tekstowy 80 × 60 109 Tekstowy 132 × 25 10A Tekstowy 132 × 43 10B Tekstowy 132 × 50 10C Tekstowy 132 × 60 10D Graficzny 32 K 320×200 10E Graficzny 64 K 320×200 UTK. Monitory i karty graficzne 14 10F Graficzny 16 M 320×200 110 Graficzny 32 K 640×480 111 Graficzny 32K 640×480 112 Graficzny 16 M 640×480 113 Graficzny 32 K 800×600 114 Graficzny 64 K 800×600 115 Graficzny 16 M 800×600 116 Graficzny 32 K 1024×768 117 Graficzny 64 K 1024×768 118 Graficzny 16 M 1024×768 119 Graficzny 32 K 1280×1024 11A Graficzny 16 M 1280×1024 11B Graficzny 32 K 1280×1024 11C Graficzny 32 K 1600×1200 11 D Graficzny 64 K 1600×1200 11E Graficzny 16 M 1600×1200 Jak widać z tabeli, do kodowania kolorów u\ywane sÄ… 8, 15, 16 lub 24 bity, co daje odpowiednio 256, 32 K, 64 K i 16 M kolorów. Ostatnia z wymienionych mo\liwoÅ›ci nazywa siÄ™ trybem True Color. W nowszych kartach stosuje siÄ™ tak\e kodowanie koloru 32 bitami. RozwiÄ…zanie to jest nieco dyskusyjne, poniewa\ oko ludzkie rozró\nia jedynie kilka milionów kolorów. Pewnym uzasadnieniem jest mo\liwość u\ycia dodatkowego bajtu do kodowania efektów specjalnych. Poniewa\ dla monitorów kolory sÄ… kodowane zawsze w systemie RGB (dla drukarek bÄ™dzie to na przykÅ‚ad CMYK - Cyjan, Magenta, Yellow, blacK), caÅ‚kowita ilość bitów przeznaczona na kodowanie kolorów dzielona jest na trzy równe części (ka\da dla jednej skÅ‚adowej koloru). Nie zawsze jest to jednak mo\liwe, stÄ…d w przypadku 16 bitów na skÅ‚adowe czerwonÄ… i niebieskÄ… przypada po 5 bitów, a zielonÄ… 6. Z kolei w przypadku kodowania kolorów 15 bitami z pamiÄ™ci odczytywane sÄ… dwa bajty, a 16 bit jest po prostu nieu\ywany. Karty SVGA posiadajÄ… pamiÄ™ci wideo o pojemnoÅ›ci 512 KB i wiÄ™ksze. Tu tak\e wystÄ™puje problem adresowania pamiÄ™ci wideo. Pamięć ta jest najczęściej adresowana przez 64-kilobajtowe okno, przy czym banki pamiÄ™ci zmieniane sÄ… przy u\yciu tak zwanego rejestru wyboru banku (ang. bank select register). Dane opisujÄ…ce poszczególne piksele tworzÄ…ce obraz rozmieszczone sÄ… w pamiÄ™ci wideo liniowo, poczÄ…wszy od lewego górnego rogu ekranu - najni\szy adres, a skoÅ„czywszy na prawym dolnym - najwy\szy adres. Adresowanie i sposób rozmieszczania informacji (adresy pikseli) w pamiÄ™ci wideo pokazane sÄ… na rysunku 1.9 na przykÅ‚adzie trybu 800×600 z 256 kolorami. UTK. Monitory i karty graficzne 15 Rysunek 1.9. ObsÅ‚uga pamiÄ™ci wideo dla kart SVGA 1.3.5. Zestawienie wÅ‚asnoÅ›ci podstawowych kart graficznych Poni\ej zamieszczam tabele, w której zostaÅ‚y zebrane najwa\niejsze wÅ‚asnoÅ›ci podstawowych typów graficznych. Z powodów wyjaÅ›nionych poni\ej, do zestawienia tego wÅ‚Ä…czono kartÄ™ typu Hercules (ang. Hercules Graphics Card - HGC). Część z podanych parametrów zale\y od konkretnego wykonania, nale\y je wiÄ™c traktować jako wielkoÅ›ci orientacyjne. Tabela 1.6. Najwa\niejsze cechy podstawowych typów graficznych Nazwa Karta HGC Karta EGA Karta VGA Karta SVGA parametru Adres pamiÄ™ci B000h B800h B000h B000h wideo - tekst Adres pamiÄ™ci B00h A000h A000h A000h wideo - grafika Rozmiar pamiÄ™ci 4 KB 64-256 KB 256 KB e"512 KB wideo Zakres adresów 3B0-3BFh 3C0-3DFh 3B0-3DFh 3B0-3DFh portów Matryca znaku 9×14 8×14 9×16 9×16 (typowo) Maksymalna 720×348 640×350 640×480 1600×1200 rozdzielczość (zale\na od karty) Maksymalna Mono 16 z 64 256 z 256 K 16 mln lub 4 mld ilość kolorów Typ sygnałów Cyfrowy Cyfrowy Analogowy Analogowy monitora CzÄ™stotliwość 50 Hz 60 Hz 50-70 Hz ok. 50-200 Hz odchylania pionowego CzÄ™stotliwość 18432 kHz 15,7-21,8 kHz 31,5 kHz do ok. 90 kHz UTK. Monitory i karty graficzne 16 odchylania poziomego Pasmo 16,257 MHz 14,3-16,3 MHz 28 MHz do ok. 100 MHz wzmacniacza wideo WÅ‚asny BIOS Nie Tak Tak Tak 1.3.6. Karty akceleratorowe i koprocesorowe Opisywane do tej pory karty nie uczestniczyÅ‚y w \aden sposób w tworzeniu treÅ›ci obrazu. Jednak\e wraz z pojawieniem siÄ™ graficznego interfejsu u\ytkownika (ang. Graphical User Interface - GUI) jak przykÅ‚adowo w systemach operacyjnych Windows czy OS/2, wymagania w stosunku do kart graficznych wzrosÅ‚y. Dwoma podstawowymi problemami zwiÄ…zanymi z przetwarzaniem du\ej iloÅ›ci informacji graficznych jest: " przesyÅ‚anie du\ej iloÅ›ci informacji poprzez magistralÄ™ Å‚Ä…czÄ…cÄ… procesor główny z pamiÄ™ciÄ… wideo karty graficznej, " du\e obciÄ…\enie procesora głównego obliczeniami zwiÄ…zanymi z tworzeniem i zmianami treÅ›ci obrazu. Obydwa problemy mogÄ… być w znacznej mierze rozwiÄ…zane poprzez przekazanie części uprawnieÅ„ do tworzenia obrazu bezpoÅ›rednio karcie graficznej. Zmniejszy to zarówno obciÄ…\enie procesora głównego (część wyliczeÅ„ wykona karta graficzna), jak i obciÄ…\enie magistrali (pamięć wideo znajduje siÄ™ bezpoÅ›rednio na karcie). Efektem tych spostrze\eÅ„ jest powstanie kart akceleratorowych i koprocesorowych. Ró\nica pomiÄ™dzy nimi wynika z ich mo\liwoÅ›ci i zródÅ‚a, z którymi te mo\liwoÅ›ci sÄ… zwiÄ…zane. Dla kart akceleratorowych wynikajÄ… one wyÅ‚Ä…cznie z rozwiÄ…zaÅ„ sprzÄ™towych zastosowanych w kartach, a konkretnie w ukÅ‚adzie scalonym akceleratora, stÄ…d ich mo\liwoÅ›ci sÄ… Å›ciÅ›le okreÅ›lone przez ich projektanta. Karty koprocesorowe sÄ… wyposa\one, jak sama nazwa wskazuje, w procesor oraz w pamięć programu. Mo\liwoÅ›ci takich kart sÄ… wiÄ™c znacznie wiÄ™ksze i zale\Ä… tak\e od oprogramowania samej karty. Ró\nice w budowie kart akceleratorowych i koprocesorowych przedstawione sÄ… symbolicznie na rysunku 1.10. Rysunek 1.10. Uproszczony schemat blokowy: a) karty akceleratorowej, b) karty koprocesorowej Operacje wykonywane przez tego typu karty, zobrazowane symbolicznie na rysunku 1.10, dotyczÄ… grafiki dwuwymiarowej, zwiÄ…zanej, miÄ™dzy innymi z graficznym interfejsem u\ytkownika. Wymaga on czÄ™stego wykonywania takich operacji jak tworzenie okien UTK. Monitory i karty graficzne 17 (rysowanie prostokÄ…tów) czy ich przesuwanie. Te ostatnie realizowane sÄ… jako transfery bloków w pamiÄ™ci wideo (opisujÄ…ce piksele danego okna). Sta jednÄ… z umiejÄ™tnoÅ›ci zarówno akceleratorów, jak i koprocesorów graficznych jak wykonywanie tego typu operacji zwanych operacjami BitBlt (ang. Bit Block transfer). PrzykÅ‚adowy ukÅ‚ad akceleratora 2D, Weitek Power 9100, wraz ze współpracujÄ…cymi ukÅ‚adami pokazany jest na rysunku 1.11. Jak widać, w ukÅ‚adzie zawarte sÄ… wszelkie elementy tworzÄ…ce kartÄ™ VGA/SVGA typu bufor ramki (CRTC, sterownik pamiÄ™ci wideo, generatory przebiegów synchronizujÄ…cych itp.) Oprócz wymienionych, ukÅ‚ad ten zawiera jednak tak\e bloki odpowiedzialne za realizacjÄ™ operacji graficznych 2D. Do ukÅ‚adu obliczania parametrów przekazywane sÄ… z CPU polecenia wykonania operacji graficznych (np. rysowania prostokÄ…tów, przesuwania obszarów itp.) Na podstawie otrzymanych informacji (charakterystyczne punkty figury np. współrzÄ™dne dwóch przeciwlegÅ‚ych rogów prostokÄ…ta), koloru wypeÅ‚nienia i tym podobnych, ukÅ‚ad ten wylicza odpowiednie parametry, takie jak adresy pamiÄ™ci wideo i przekazuje je do ukÅ‚adu rysowania. UkÅ‚ad ten wypeÅ‚nia okreÅ›lone obszary pamiÄ™ci wideo (podanymi przez ukÅ‚ad obliczania parametrów) wartoÅ›ciami, tworzÄ…cymi za pomocÄ… pikseli \Ä…dany obraz. Rysunek 1.11. Schemat blokowy karty graficznej z ukÅ‚adem Weitek Power 9100 Kolejnym etapem w rozwoju kart graficznych byÅ‚o opracowanie tak zwanych akceleratorów grafiki trójwymiarowej. Tworzenie tej grafiki wymaga pewnych specyficznych operacji (przykÅ‚adowo takich jak nakÅ‚adanie tekstur) oraz bardzo du\ej iloÅ›ci \mudnych obliczeÅ„. Problemy pojawiajÄ…ce siÄ™ przy u\ywaniu grafiki trójwymiarowej doprowadziÅ‚y do pojawienia siÄ™ kart z akceleratorami 3D oraz do opracowania specjalnej magistrali zwanej AGP (ang. Accelerated Graphics Port) dedykowanej kartom graficznym, a szczególnie akceleratorom 3D. 1.4. Magistrala AGP RozwiÄ…zaniem obydwóch problemów jest zastosowanie zaproponowanej przez firmÄ™ Intel specjalnej magistrali dedykowanej adapterom graficznym, zwanej AGP (ang. Accelerated Graphics Port). Schemat blokowy systemu z magistralÄ… AGP przedstawiony jest na rysunku 1.12. UTK. Monitory i karty graficzne 18 Rysunek 1.12. Schemat blokowy systemu z magistralÄ… AGP Główne zalety AGP to: " du\a szybkość " przydzielenie peÅ‚nej przepustowoÅ›ci AGP wyÅ‚Ä…cznie karcie graficznej " odciÄ…\enie magistrali PCI " umo\liwienie wykorzystania (przydzielenia)części pamiÄ™ci głównej na potrzeby systemu graficznego i przechowywania w niej tekstur. Z ostatniego punktu wynikajÄ… nastÄ™pujÄ…ce korzyÅ›ci: 1. Tekstury nie muszÄ… być przed u\yciem Å‚adowane do lokalnej pamiÄ™ci wideo (zysk czasowy). 2. Tekstury mogÄ… być przechowywane w pamiÄ™ci głównej, co po pierwsze umo\liwia u\ycie tekstur o wiÄ™kszych rozmiarach (i rozdzielczoÅ›ciach), a po drugie zmniejsza wymagania co do wielkoÅ›ci pamiÄ™ci wideo. 3. Zmniejszenie wymagaÅ„ co do wielkoÅ›ci pamiÄ™ci wideo znaczÄ…co obni\a cenÄ™ kart graficznych. 1.4.1. WÅ‚aÅ›ciwoÅ›ci magistrali AGP Poni\ej przedstawiam podstawowe wÅ‚aÅ›ciwoÅ›ci magistrali AGP wraz z krótkim opisem ich znaczenia dla systemu. 1. Du\a przepustowość. W zale\noÅ›ci od wersji (o czym ni\ej) magistrala AGP oferuje szybkość transmisji danych od 264 MB/s do 1 GB/s. Jak widać, szybkość ta jest porównywalna, a nawet w pewnych wypadkach zdecydowanie przekracza transfer PCI. Interfejs dedykowany grafice. Magistrala AGP obsÅ‚uguje jedynie kartÄ™ graficznÄ… (lub oddzielny akcelerator). CaÅ‚a przepustowość magistrali jest wiÄ™c przeznaczona dla rej karty. 2. Karta graficzna jest urzÄ…dzeniem typu master na AGP (inicjatorem w terminologii magistrali PCI). Oznacza to, \e inicjacja transmisji zale\y wyÅ‚Ä…cznie od karty graficznej. UrzÄ…dzeniem docelowym jest chipset zawierajÄ…cy miÄ™dzy innymi sterownik pamiÄ™ci DRAM. 3. Potokowa realizacja transakcji na AGP. Dla AGP, inaczej ni\ dla PCI, rozdzielono fazÄ™ adresowania od fazy transmisji danych. Umo\liwia to tworzenie kolejki \Ä…daÅ„ transakcji (czyli potokowÄ… ich realizacjÄ™). 4. Potokowa realizacja arbitra\u. Zarówno transmisja informacji, jak i zgÅ‚oszenie \Ä…dania wykonania okreÅ›lonej transakcji wymaga przyznania urzÄ…dzeniu master dostÄ™pu do UTK. Monitory i karty graficzne 19 magistrali. W celu unikniÄ™cia przestojów (stanów uÅ›pienia magistrali) tak\e arbitra\ jest realizowany potokowo). 5. Adreoswanie równolegÅ‚e (ang. sideband addressing). Na magistrali AGP mo\liwa jest inicjacja transakcji nie tylko przy u\yciu linii AD I C/BE#, ale tak\e przy u\yciu specjalnego 8-bitowego portu oznaczanego jako SBA (ang. Side-Band Address). Pozwala on na wykorzystanie linii AD I C/BE# wyÅ‚Ä…cznie dla transmisji danych. 6. Dynamiczny przydziaÅ‚ pamiÄ™ci. AGP pozwala na przydziaÅ‚ części pamiÄ™ci głównej dla potrzeb systemu graficznego. Jest ona traktowana wówczas jako część pamiÄ™ci wideo, do której mogÄ… być przykÅ‚adowo Å‚adowane tekstury. Pozwala to na u\ycie wiÄ™kszych tekstur przy niezwiÄ™kszonych wymaganiach co do pojemnoÅ›ci pamiÄ™ci na karcie. PrzydziaÅ‚u tego dokonuje system operacyjny. W przypadku uruchamiania aplikacji niewymagajÄ…cych tak du\ej pamiÄ™ci wideo mo\liwa jest dynamiczna dealokacja tej części pamiÄ™ci i u\ycie jej dla innych potrzeb (takiej mo\liwoÅ›ci nie ma dla nieu\ywanej części pamiÄ™ci wideo). 7. PrzydziaÅ‚ pamiÄ™ci przez AGP. Pamięć główna przydzielona za poÅ›rednictwem AGP na potrzeby adaptera graficznego, jest widziana przez niego jako liniowa przestrzeÅ„ adresowa, choć nie musi być ona kontynuacjÄ… przestrzeni adresowej pamiÄ™ci wideo na karcie. Fizycznie, przydzielona pamięć mo\e być nieciÄ…gÅ‚a. Translacja adresu fizycznego na liniowy zapewniana jest przez ukÅ‚ady pÅ‚yty głównej, przy u\yciu tablicy umieszczanej w pamiÄ™ci zwanej tablicÄ… GART (ang. Graphics Address Remapping Table). Miejsce umieszczenia tablicy zale\y od rozwiÄ…zania zastosowanego przez producenta pÅ‚yty głównej. PrzykÅ‚adowo, sterownik programowy obsÅ‚ugujÄ…cy takÄ… translacjÄ™ w przypadku systemów Windows 98 czy Windows NT nosi nazwÄ™ VGARTD.VXD. 8. Teksturowanie na magistrali AGP. Tekstury w przypadku u\ycia AGP mogÄ… być przechowywane w pamiÄ™ci głównej. Akcelerator graficzny wykorzystujÄ…cy je, odczytuje oraz zapisuje wyniki swej pracy do pamiÄ™ci głównej za poÅ›rednictwem magistrali AGP. Rezultatem tego jest: skrócenie czasu, odciÄ…\enie magistrali PCI i zmniejszenie wymagaÅ„ co do iloÅ›ci pamiÄ™ci wideo. 1.4.2. Wybrane zagadnienia zwiÄ…zane z dziaÅ‚aniem magistrali AGP W podpunkcie tym omówiÄ™ niektóre aspekty dziaÅ‚ania magistrali AGP wyjaÅ›niajÄ…ce nieco dokÅ‚adniej pewne jej wÅ‚aÅ›ciwoÅ›ci. " Istniej kilka wersji magistrali AGP o ró\nej szybkoÅ›ci dziaÅ‚ania, oznaczanych jako wersje ×1, ×2 i×4. Istotny jest fakt, \e mno\niki te dotyczÄ… wyÅ‚Ä…cznie szybkoÅ›ci transmisji danych na AGP. PozostaÅ‚e operacje sÄ… synchronizowane podstawowÄ… szybkoÅ›ciÄ… zegara AGP (wynoszÄ…cÄ… do wersji 2.0 wyÅ‚Ä…cznie 66 MHz). SygnaÅ‚y te zwane sÄ… czÄ™sto sygnaÅ‚ami pÄ™tli zewnÄ™trznej AGP, w odró\nieniu od sygnałów pÄ™tli wewnÄ™trznej, zwiÄ…zanych bezpoÅ›rednio z transmisjÄ… informacji. WÅ‚aÅ›nie sygnaÅ‚y pÄ™tli wewnÄ™trznej sÄ… synchronizowane zegarem o zwielokrotnionej czÄ™stotliwoÅ›ci, zale\nej od wersji AGP. Sposób traktowania transmisji danych uzyskuje siÄ™ poprzez transmisjÄ™ na obydwu zboczach sygnałów AD_STB× (majÄ… one tÄ™ samÄ… czÄ™stotliwość co AGP Clock). Dla wersji ×4 sygnaÅ‚y AD_STB0 i AD_STB1 sÄ… sygnaÅ‚ami o podwojonej w stosunku do AGP Clock czÄ™stotliwoÅ›ci. Transmisja jest taktowana zboczem odpowiadajÄ…cym sygnałów AD_STB× i AD_STB×#. " Istnieje dwie wersje napiÄ™ciowe magistrali AGP: 3,3 V i 1,5 V. WartoÅ›ci te dotyczÄ… napiÄ™cia na wyprowadzeniu oznaczonym Vddq, decydujÄ…cym o poziomach logicznych magistrali (nie jest to napiÄ™cie zasilania ukÅ‚adów na karcie). Magistrala w wersji×1 i ×2 mo\e pracować w dowolnym z tych napięć, magistrala w wersji ×4 u\ywa tylko tych wartoÅ›ci 1,5V. PrzykÅ‚adowo, dla Å›rodowiska 3,3 V poziomy logiczne na wejÅ›ciach ukÅ‚adów wynoszÄ…: niski od - 0,5 V do 0,99 V, wysoki od 1,65 V do 2,8 V. Gniazda mogÄ… UTK. Monitory i karty graficzne 20 być gniazdami przeznaczonymi dla konkretnego napiÄ™cia lub uniwersalnymi. W przypadku okreÅ›lonych napięć gniazda wyposa\one sÄ… w klucze zabezpieczajÄ…ce przed wÅ‚o\eniem niewÅ‚aÅ›ciwej karty (dla gniazda 3,3 V klucz przy kontaktach nr 22-25, dla gniazd 1,5 V kontakty 42-45). W przypadku gniazda uniwersalnego ukÅ‚ady logiczne pÅ‚yty głównej muszÄ… rozpoznać typ karty przy u\yciu kontaktu TYPDET# i zapewnić stosowne napiÄ™cie Vddq. Wersja x2 Wersja x4 Rysunek 1.13. SygnaÅ‚y taktujÄ…ce transmisjÄ™ danych na magistrali AGP " Na magistrali AGP mo\liwe sÄ… dwa sposoby uzyskania dostÄ™pu do pamiÄ™ci. Pierwszy z nich to u\ycie adresowania równolegÅ‚ego, wymienionego we wÅ‚aÅ›ciwoÅ›ciach AGP. Drugim sposobem jest zgÅ‚oszenie dostÄ™pu i podanie adresu przy u\yciu linii AD i C/BE#. W tym wypadku dziaÅ‚anie AGP jest nieco odmienne ni\ PCI. Magistrala AGP pozwala na podanie kolejnych adresów przed zakoÅ„czeniem realizacji wczeÅ›niejszych \Ä…daÅ„ transmisji. Ró\nica ta jest zilustrowana na rysunku 1.14. PCI A1 - - - D1 A2 - - - D2 AGP A1 A2 A3 - - - D1 D2 D3 A4 D4 Rysunek 1.14. Adresowanie równolegÅ‚e na magistrali AGP " W tablicy 1.7 zestawione sÄ… rodzaje cykli wykonywanych przez AGP. Jak widzimy transmisje dla odczytu mogÄ… być zwykÅ‚e lub dÅ‚ugie (ang. long). ilość transmitowanych bajtów jest okreÅ›lona w trakcie \Ä…dania transmisji w polu dÅ‚ugoÅ›ci transmisji, zgodnie z tabelÄ… 1.7 a (transmisje zwykÅ‚e) lub 1.7 b (transmisje dÅ‚ugie). DostÄ™p do pamiÄ™ci głównej przez a GP dotyczy zawsze argumentów bÄ™dÄ…cych czterosÅ‚owem (64 bitami, inaczej mówiÄ…c stosowane adresy sÄ… zawsze podzielone przez 8. Tak\e ilość transmitowanych bajtów jest podzielona przez 8. Transmisja mo\e mieć niski priorytet (ang. low priority) lub wysoki (ang. high priority). Transmisje o wysokim priorytecie majÄ… gwarantowany czas realizacji. Kolejność realizacji transmisji ulega zmianie tylko w wypadku niemo\noÅ›ci dotrzymania tego czasu dla transmisji priorytecie. Cykl o nazwie Dual Address Cycel realizowany jest w wypadku koniecznoÅ›ci zastosowania adresu 64-bitowego. Tabela 1.7. Kody operacji magistrali AGP Kod operacji Rodzaj operacji UTK. Monitory i karty graficzne 21 0000 Low-Priority Read 0001 High-Priority Read 0100 Low-Priority Write 0101 High-Priority Write 1000 Long Low-Priority Read 1001 Long High-Priority Read 1101 Dual Address Cycle Tabela 1.7 a Kody dÅ‚ugoÅ›ci transmisji zwykÅ‚ych Kod dÅ‚ugoÅ›ci Liczba bajtów 000 8 001 16 010 24 011 32 100 40 101 48 110 56 111 64 Tabela 1.7 b Kody dÅ‚ugoÅ›ci transmisji dÅ‚ugich Kod dÅ‚ugoÅ›ci Liczba bajtów 000 32 001 64 010 96 011 128 100 160 101 192 110 224 111 256 UTK. Monitory i karty graficzne 22