Karty grafiki



Pobieranie 67.91 Kb.
Data07.05.2016
Rozmiar67.91 Kb.
Karty grafiki

W 1975 roku firma IBM rozpoczęła sprzedaż swojego pierwszego komputera osobistego, IBM 5100. Urządzenie miało 16 kB pamięci operacyjnej, dane pobierało z taśmy, zaś z użytkownikiem komunikowało się wyświetlając na monitorze literki: 16 wierszy po 64 znaków każdy. IBM 5100 kosztował wtedy jedyne 9000 USD.

12 sierpnia 1981 pojawił się następca 5100, komputer IBM 5150 Personal Computer (w skrócie: IBM PC), uznany za pradziadka dzisiejszych pecetów. Był to pierwszy komputer firmy IBM z procesorem Intela - szesnastobitowym 8088. Jak na nowoczesny komputer przystało, 5150 został wyposażony w zaawansowany adapter graficzny: MDA (Monochrome Display Adapter). MDA wyświetlał aż 25 wierszy tekstu, w każdym po 80 znaków. Litery charakteryzowały także cztery "kolory": biały (a właściwie szary), czarny, jaskrawy biały oraz... podkreślenie (underline), uznane za czwarty "kolor". Nadal nie było mowy o jakiejkolwiek grafice.

Adapter MDA wysyłał cyfrowy sygnał i wymagał specjalnych monochromatycznych monitorów TTL. Te nie musiały koniecznie być czarno-białe: bardzo często spotkać można było monitory czarno-zielone (wyświetlające zielone literki na czarnym tle) lub "bursztynowe" (wyświetlające literki o kolorze bursztynowym).

IBM PC miał otwartą architekturę. Jego poszczególne komponenty miały postać kart rozszerzeń ISA. Także MDA był kartą ISA.

Pierwsze kolory

Wkrótce po premierze pierwszego peceta, IBM zaproponował swoją "kolorową" kartę graficzną: CGA (Color Graphics Adapter), która oprócz trybu tekstowego oferowała także graficzny.

Najpopularniejszy tryb graficzny to 320×200 przy liczbie czterech kolorów. Kolory te można było wybrać z dwóch zestawów.

Pierwszy, zdecydowanie popularniejszy, to kolor biały, czarny, różowy i jasnoniebieski. Z tego zestawu bardzo namiętnie korzystali producenci pierwszych "graficznych" gier dla peceta, a efekty tego były naprawdę mierne.

Drugi zestaw to kolory żółty, czarny, zielony i czerwony. Z racji zupełnie dziwacznego zestawienia tych kolorów rzadko spotykało się gry w tej kolorystyce. CGA oferował także tryb wysokiej rozdzielczości: 640×200, jednak już tylko przy dwóch kolorach (czarnym i białym). Tryb ten był rzadko spotykany w grach, ale czasami wymagały go programy "graficzne".

W 1982 roku powstał słynny adapter graficzno-tekstowy: Hercules Graphics Controller (HGC), znany jako po prostu "Hercules". Oferował on tryb tekstowy znany z MDA (80×25 znaków) oraz wysokorozdzielczy tryb monochromatyczny (czarno-biały): 720×348 punktów. Nie potrafił generować innych kolorów, jak CGA. HGC bardzo szybko stał się standardem, notabene pierwszym stworzonym przez niezależną firmę. Jego dużą przewagą nad CGA była zgodność z MDA (czym CGA nie mógł się "pochwalić").

Na rynku było już jednak wiele gier dla CGA, zaś Hercules nie był z tym adapterem zgodny na poziomie sprzętowym. Dlatego ktoś sprytny napisał programowy emulator CGA dla HGC. Oczywiście nie było mowy o wyświetleniu kolorów.

W 1984 roku IBM wprowadził pierwszą „przyzwoitą” kartę graficzną: EGA (Enhanced Graphics Adapter). EGA była zgodna zarówno z CGA, jak i MDA oraz wprowadziła dwa nowe tryby graficzne: 320×200 i 640×350, przy których potrafiła wyświetlić jednocześnie aż 16 kolorów (z 64-kolorowej palety). EGA także była kartą cyfrową i współpracowała z kolorowymi i monochromatycznymi monitorami TTL.

Trzy lata później, w 1987 roku, pojawiła się karta PGA, oferująca tylko jeden tryb graficzny: 640×480 przy... 256 kolorach. Mimo świetnych możliwości, jak na te czasy, PGA nie przyjęła się na rynku i szybko odeszła w zapomnienie.



Narodziny VGA

W 1984 r. 2 kwietnia, "narodziła się" karta graficzna z prawdziwego zdarzenia: VGA (Video Graphics Array). Była zgodna wstecz ze wszystkimi poprzednimi standardami: MDA, CGA i EGA oprócz Herculesa.

Oferowała tryb tekstowy 80×25 znaków (literki mogły być wyświetlane w 16 kolorach) oraz dwa nowe tryby graficzne: 320×200 przy 256 kolorach (dostępnych z palety 262 144 barw!) oraz 640×480 przy 16 kolorach (dostępnych z tej samej palety). VGA była pierszą kartą graficzną, która wysyłała do monitora analogowy sygnał, umożliwiający teoretycznie wyświetlenie dowolnego koloru.

Jako że VGA została uznana za adapter bardzo zaawansowany, więc IBM przygotował nieco prostszą jej implementację, a właściwie rozwinięcie starego standardu CGA - MCGA (MultiColor Graphics Adapter). MCGA wyświetlała znany z VGA tryb graficzny 320×200 przy 256 kolorach, jednak wysokorozdzielczy tryb 640×480 wyświetlała jedynie w dwóch kolorach: czarnym i białym. IBM dość mocno spopularyzował MCGA, gdyż montował ją w swoich komputerach serii PS/1 i PS/2.

Wkrótce potem IBM wprowadził kartę graficzną dla użytkowników zaawansowanych: 8514/A. Oferowała ona, robiący wówczas na wszystkich ogromne wrażenie, tryb 1024×768 przy 256 kolorach. Aby zachować niską cenę zestawu karta-monitor, IBM zastosował w tym trybie tzw. przeplot (interlace), w którym na ekranie wyświetlane były naprzemiennie linie parzyste i nieparzyste obrazu. Przeplot miał niestety bardzo duży efekt uboczny: obraz nieprzyjemnie migotał i dłuższa praca przy komputerze była niezmiernie męcząca.

8514/A można uznać za pierwszy akcelerator grafiki: karta nie tylko "bezmyślnie" zapalała punkty obrazu określone przez współrzędne X i Y (jak jej poprzedniczki), ale także sprzętowo przyspieszała niektóre operacje graficzne: rysowanie prostokątów, linii o zadanym punkcie początkowym i końcowym, wypełnianie obszarów zamkniętych itd.

SVGA - brak standardu

VGA uznano za standard. Powstały setki programów i gier dla tej karty graficznej. Jednak szybko jej możliwości okazały się niewystarczające. Dlatego niezależni producenci zaczęli produkować własne karty graficzne, zgodne na poziomie sprzętowym z VGA, jednak wprowadzające nowe tryby graficzne: 800×600, 1024×768, a nawet 1280×1024. Prostsze modele wyświetlały jedynie tryb 640×480 w 256 kolorach, zaś pozostałe tryby o wyższej rozdzielczości wyświetlały jedynie w 16 lub nawet tylko dwóch kolorach.

Jednak mocniejsze karty potrafiły wyświetlić nawet rozdzielczość 1024×768 w 256 kolorach, a 1280×1024 przy 16 kolorach.

Wszystkie karty określone zostały przez swych producentów ogólnym mianem SVGA (Super VGA). Niestety, poza trybami VGA, SVGA nie był standardem: aplikacja napisana dla karty SVGA firmy Oak nie działała poprawnie na karcie SVGA firmy Trident czy Western Digital. By rozwiązać ten problem, najwięksi producenci kart graficznych i monitorów utworzyli organizację VESA (Video Electronics Standards Association). VESA rozpoczęła proces standardyzacji wszystkich kart graficznych, by umożliwić im zgodność ze sobą.

Początkowo producenci kart graficznych zaczęli dostarczać do swoich akceleratorów mały programik rezydentny (tzw. TSR - Terminate and Stay Resident), który emulował tryby VESA. Każdorazowo, przed uruchomieniem aplikacji dla VESA (np. słynnego niegdyś flippera - Tristan), należało uruchomić emulator VESA. Późniejsze implementacje kart SVGA były już zgodne ze standardem VESA na poziomie sprzętowym.

W 1990 roku firma IBM wprowadziła nową kartę graficzną - XGA (eXtended Graphics Array), mającą zastąpić 8514/A. Urządzenie potrafiło wyświetlić w rozdzielczości 640×480 aż 32 768 kolorów (15 bitów) jednocześnie dobranych z palety 16 777 216 barw (24 bity). W rozdzielczości 1024×768 XGA wyświetlała 256 kolorów jednocześnie. Niestety karta stworzona była jedynie dla architektury Microchannel komputerów linii PS/2, więc posiadacze "klonów" nie mogli jej zainstalować w swoich maszynach.

XGA został szybko zastąpiony układem XGA-2. W środowiskach graficznych XGA-2 był, według IBM, nawet 20 razy szybszy od VGA.

 ISA umiera

Nawet 16-bitowa magistrala ISA, z której korzystały wszystkie karty graficzne po SVGA włącznie, szybko okazała się bardzo wąskim gardłem. Jej szczytowa przepustowość, ok. 8 MB/s, to zbyt mało dla zastosowań graficznych. Dlatego organizacja VESA rozpoczęła pracę nad rozszerzeniem magistrali ISA do 32 bitów, dzięki czemu zwiększona miała być jej przepustowość. Nowo powstała magistrala, VESA Local Bus (VLB), otworzyła przed kartami graficznymi nowe pole do popisu. Stanowiła de facto "przedłużenie" wyprowadzeń procesora 486 i oferowała o wiele większą przepustowość niż ISA. Szybko powstały dziesiątki akceleratorów graficznych dla VLB.

W tym czasie Intel rozpoczął pracę nad własną magistralą, PCI (Peripheral Component Interconnect), zupełnie niezgodną z ISA (w przeciwieństwie do VLB). Z tego powodu wielu ekspertów wróżyło PCI rychłą śmierć, jak się później okazało - zupełnie niesłusznie.

PCI to 32-bitowa magistrala zgodna ze standardem Plug&Play, taktowana zegarem 33 MHz. Oferuje przepustowość rzędu 132 milionów bajtów/s, czyli ok. 126 MB/s. Choć początkowo PCI przegrywała z VLB, to w końcu wyszła na prowadzenie. Wraz z Pentium, VLB ostatecznie zakończyła swój żywot. Nowa magistrala otworzyła nowe pole do popisu producentom kart graficznych. Ci zaczęli prześcigać się osiągami swoich akceleratorów. Kolejne karty miały coraz więcej pamięci, 32-bitowe układy graficzne zostały zastąpione 64-bitowymi, poszerzano paletę funkcji umożliwiających kartom wspomaganie w rysowaniu grafiki.

Skok w trzeci wymiar

Początkowo funkcje wspomagania grafiki trójwymiarowej implementowano głównie w kartach graficznych przeznaczonych właśnie do graficznych prac projektowych. Jedną z pierwszych kart graficznych z funkcjami wspomagającymi, oprócz grafiki płaskiej, także grafikę trójwymiarową (3D - three-dimensional), była Millennium firmy Matrox. Oparta o 64-bitowy procesor MGA-2064W, zdolna była tworzyć w obrębie własnej pamięci dodatkowy bufor trzeciej współrzędnej ("w głąb" ekranu) - Z. Ponadto Millennium potrafiła cieniować obiekty trójwymiarowe metodą Gourauda. Millennium była kartą bardzo cenioną m.in. przez grafików, architektów - wówczas jeszcze PC "nie dojrzał" do wymogów wydajnościowych, stawianych przez trójwymiarowe gry.

Dogonić PlayStation

W 1993 roku na rynku pojawiła się firma NVIDIA. W 1995 roku zaprezentowała swój pierwszy procesor, NV1, który do palety funkcji 3D dołączył także możliwość sprzętowego nakładania tekstur. Pierwsza karta oparta o NV1, Diamond Edge 3D, była naprawdę ciekawym produktem (brała udział w naszym teście kart graficznych w numerze 3/97 ENTERA). Znacząco przyspieszała tworzenie grafiki 3D, jednak ze względu na wysoką cenę (dziesięciokrotnie wyższą od ceny "zwykłej" karty graficznej PCI) oraz niestandardowy sposób nakładania tekstur nie przyjęła się na rynku.

W 1995 roku także ATI zapowiedziała swój nowy układ graficzny: 3D Rage. Miał oferować wydajność rzędu 570 tys. trójkątów/s (dwukrotnie więcej niż Sony Playstation, który w tamtym czasie wydawał się niepokonany), a do tego dochodziły funkcje dwu- i trójliniowego filtrowania tekstur.

W połowie roku również firma Lockheed Martin Corporation zapowiedziała chip Real3D. Układ nigdy nie zdobył większej popularności; dopiero dwa lata później Intel wykorzystał technologie stosowane w Real3D w swoim chipie - Intel740.

 ViRGE dla mas

Pierwszy tani układ graficzny wprowadziła pod koniec 1995 roku firma S3. Słynny ViRGE (Video and Rendering Graphics Engine), bo o nim mowa, oferował możliwości akceleracji grafiki 2D (dwuwymiarowej) na poziomie Matrox Millennium, a dodatkowo do funkcji 3D dodał niezwykle istotną funkcję: filtrowanie dwuliniowe. Oprócz tego ViRGE tworzył grafikę trójwymiarową z 16-bitową paletą kolorów (65 536 barw) i potrafił dodawać efekty atmosferyczne.

ViRGE cierpiał na jedną małą dolegliwość: w zasadzie nie przyspieszał grafiki 3D, a w niektórych grach wręcz ją spowalniał! Niemniej jednak ViRGE znalazł swoje zaszczytne miejsce w historii kart graficznych, gdyż jako pierwszy wprowadził trzeci wymiar pod strzechy. Rynek w 1996 roku zalały dziesiątki kart z tym układem. S3 zdążył go także kilkakrotnie modyfikować. Oryginalny ViRGE współpracował z pamięcią EDO DRAM (której obsługiwał od 2 do 4 MB). Dla bardziej zaawansowanych użytkowników S3 przygotował chip ViRGE/VX, który obsługiwał dwuportową (umożliwiającą jednoczesny zapis i odczyt) pamięć VRAM (od 2 do 8 MB).

W 1996 roku pojawił się także w sprzedaży ATI 3D Rage. Jak się okazało, wcale nie był tak szybki, jak to obiecywała firma ATI. Był nawet wolniejszy od... ViRGE.

Również 3DLabs wprowadził swój nowy układ - Permedia. Jego teoretyczne możliwości były bardzo duże: chip wypełniał 25 milionów pikseli/s i "obrabiał" 500 tys. trójkątów/s.

W tym samym roku także firma Rendition wprowadziła swój chip: Verite V1000. Wróżono mu duży sukces, gdyż był w pełni programowalnym chipem typu RISC, oferował bardzo dobrą jakość obrazu i przyzwoitą wydajność.

Jako ciekawostkę należy podać, że V1000 był pierwszym układem 3D, który oferował możliwość renderowania grafiki trójwymiarowej na 32-bitowej palecie kolorów. Niestety, wydajność w tym trybie była na V1000 naprawdę niska.

 Voodoo


Wśród masy układów 3D, jakie się pojawiły w 1996 roku, tak naprawdę dwa walczyły o prym: PowerVR korporacji NEC/VideoLogic oraz Voodoo mało znanej firmy 3Dfx.

Z początku wszyscy wróżyli firmie 3Dfx porażkę. PowerVR był zdecydowanie bardziej zaawansowany technologicznie. Oferował zupełnie innowacyjną technologię renderowania nieskończonych płaszczyzn (Infinite Planes) i sprzętowo generował cienie. Zawierał zintegrowany procesor ISP (Image Synthesizer Processor), który dokonywał sprzętowego wycinania (clippingu) trójkątów niewidocznych. Dlatego też PowerVR nie potrzebował bufora Z w celu wykrywania obiektów zasłoniętych. Oznaczało to zmniejszenie zapotrzebowania na pamięć na karcie oraz zwiększenie przepustowości układu.

PowerVR wykorzystywał procesor główny komputera (CPU) jako procesor geometrii. Zatem przy wymianie procesora zwiększała się także wydajność grafiki. Dziś fakt ten jest dla każdego oczywisty, ale w 1996 roku była to innowacja.

Tym czasem 3Dfx "siedział sobie cichutko" i pracował nad Voodoo. Pierwsze działające egzemplarze pojawiły się pod koniec 1996 r. Tylko nieliczni mieli okazję zobaczyć wtedy Voodoo w akcji, a wrażenie, jakie układ na nich robił, było oszałamiające. I rzeczywiście, gdy już masowo Voodoo pojawił się rok później na rynku, okazało się, że jest produktem rewolucyjnym. Nie dość, że przyspieszał grafikę trójwymiarową dosłownie trzykrotnie, to jakość obrazu była rewelacyjna.

3Dfx Voodoo miał postać karty rozszerzeń PCI. Znajdowały się na niej dwa układy graficzne: 3Dfx TexelFX i 3Dfx PixelFX oraz 4 MB pamięci EDO DRAM, która podzielona była na dwa bufory: 2 MB na tzw. bufor ramki (frame buffer) i 2 MB na pamięć tekstur (texture buffer). Voodoo wspomagał jedynie grafikę trójwymiarową, zatem do pracy wymagał obecności w komputerze także zwykłej karty graficznej zgodnej z VGA. Voodoo łączyło się z kartą 2D specjalnym kablem.

Voodoo wypełniał 45 milionów pikseli/s, a więc prawie dwukrotnie więcej niż jego konkurent - układ PowerVR. Przez rok producenci układów graficznych bezskutecznie próbowali zagrozić Voodoo. Udało się to dopiero NVIDII.

 AGP - nowe możliwości

Pod koniec 1996 roku Intel ogłosił powstanie nowej magistrali - AGP (Accelerated Graphics Port). Jak sama jej nazwa wskazuje, przeznaczona jest ona wyłącznie dla kart graficznych. AGP to magistrala 64-bitowa, taktowana zegarem 66 MHz, więc jej przepustowość to 528 mln bajtów/s (66 mln×8 bajtów), czyli ok. 503 MB/s. Tak szybki transfer danych umożliwił kartom graficznym przechowywanie nadmiarowych tekstur w pamięci operacyjnej komputera.

Tryb pracy AGP, w którym magistrala ma przepustowość 503 MB/s nazywa się AGP 2×, gdyż dane przesyłane są na obu zboczach zegara taktującego. AGP oferuje także dwukrotnie wolniejszy tryb AGP - 1×, w którym dane przesyłane są z przepustowością 252 MB/s (33 MHz, 64 bity). Ten tryb stosowany był wyłącznie przez pierwsze karty graficzne.

500 MB/s nadal jest wielkością nikłą w porównaniu do przepustowości pamięci lokalnej na kartach graficznych, która wynosi od 2 do nawet 7 GB/s (w popularnych akceleratorach). Dlatego też złącze AGP jest ciągle modyfikowane. W nowszej wersji, AGP 4×, przepustowość złącza jest dwukrotnie większa od AGP 2×, a więc wynosi około 1007 MB/s (0,98 GB/s). AGP 8× osiągnie zatem przepustowość blisko 2 GB/s.

 

NVIDIA kontra 3Dfx



W 1997 roku NVIDIA wprowadziła do sprzedaży 128-bitowy układ RIVA 128 (Realtime Interactive Video and Animation). Podobnie jak ViRGE, chip stanowił zintegrowany akcelerator grafiki płaskiej (zgodny z VGA) oraz trójwymiarowej. W testach Direct3D okazał się nawet szybszy od Voodoo, jednak nie oferował aż tak dobrej jakości obrazu. Spowodowane było to tym, iż mimo że oba układy wyświetlały 16-bitowy obraz 3D (65 536 kolorów), to wewnętrznie Voodoo obrabiał grafikę 3D na 24-bitowej palecie (16 777 216 barw), a RIVA 128 - 16-bitowej palecie. Jednak jej duża wydajność oraz możliwość wspomagania 2D była dla wielu osób powodem rezygnacji z Voodoo.

RIVA 128 była układem, który rozpoczął trwającą do niedawna wojnę między NVIDIĄ a 3Dfx. Na początku ta ostatnia firma prowadziła, a NVIDIA wyłącznie deptała jej po piętach. Dziś sytuacja się odwróciła: zdecydowanie lepsze i popularniejsze są układy NVIDII, zaś 3dfx ostatecznie zrezygnowało z powrotu do łask graczy.

Wiosną 1998 roku NVIDIA wprowadziła do sprzedaży układ RIVA 128ZX, będący poprawioną wersją RIVY 128. Obsługiwał on do 8 MB pamięci i oferował wsparcie dla szybkiego trybu AGP 2×.

3Dfx nie uległ RIVIE 128 i RIVIE 128ZX. W 1998 roku firma wprowadziła do sprzedaży układ Voodoo2 (jego prototypowe egzemplarze pojawiły się już pod koniec 1997 roku), dwukrotnie szybszy od RIVY 128. Karty Voodoo2 dostępne były w wersjach PCI i miały 8 MB lub 12 MB pamięci (z czego 4 MB to bufor ramki, a reszta - pamięć tekstur). Dodatkowo Voodoo2 oferował tryb pracy SLI (Scan Line Interleave). Oznaczało to możliwość instalacji w komputerze dwóch kart Voodoo2, które pracując w tandemie osiągały dwukrotnie większą szybkość animacji.

Niedługo po premierze Voodoo2, w marcu 1998, NVIDIA zapowiedziała supernowoczesny układ RIVA TNT (TwiN Texel), którego specyfikacja zrobiła na wszystkich ogromne wrażenie. Układ miał być szybszy od... Voodoo2 SLI! TNT miał tworzyć grafikę trójwymiarową z pełną, 32-bitową paletą barw, więc jakość obrazu miała być znacznie lepsza niż w przypadku Voodoo. TNT miał się pojawić do sprzedaży w sklepach jesienią tego samego roku.

W wakacje firma Matrox rozpoczęła sprzedaż układu MGA-G200 i dwóch kart na nim opartych: Millennium G200 oraz Mystique G200. G200 był pierwszym naprawdę popularnym układem, który tworzył grafikę 3D z 32-bitową paletą kolorów (24 bity to opis koloru, a 8 bitów to kanał przezroczystości alfa).

Na jesieni NVIDIA rozpoczęła sprzedaż RIVY TNT. Jej osiągi nie były tak rewelacyjne, jak zapowiadano w marcu. Mimo że NVIDIA planowała wyprodukowanie kości w technologii 0,25 mikrometra, to jej plany zostały nieco pokrzyżowane i firma była zmuszona wyprodukować układ w technologii 0,35 mikrometra. Z tego też powodu taktowany był on niższym zegarem niż planowano (90 MHz zamiast 125 MHz). Jego wydajność, w 16-bitowym kolorze, porównywalna była z pojedynczym Voodoo2. Podobno (tak mówiły plotki w Internecie) NVIDIA planowała wydanie poprawionej wersji RIVY TNT (mającej nosić miano TNT/A) w technologii 0,25 mikrona, jednak układ nigdy nie ujrzał światła dziennego.

Wiosną 1999 roku w sprzedaży pojawiły się układy RIVA TNT2 NVIDII i Voodoo3 firmy 3dfx (która w tzw. międzyczasie zmieniła w nazwie literkę "d" z dużej na małą). Voodoo3 jest nieco szybszy, jednak nadal tworzy obraz wyłącznie z 16-bitową paletą kolorów. Dotychczasowi zwolennicy firmy 3dfx powoli zaczynają patrzeć na jej produkty mniej przychylnym okiem i zwracają się ku NVIDII.

W maju NVIDIA wprowadza układ RIVA TNT2 Ultra, taktowany szybszym zegarem niż TNT2. Jego wydajność jest już porównywalna z Voodoo3, a możliwości są dużo większe. Układem tym NVIDIA zyskuje sobie bardzo duże grono zwolenników, którzy powoli odchodzą od Voodoo i nabywają TNT2 Ultra.

NVIDIA i 3dfx zapowiadają kolejne starcie na jesień 1999 roku. W Internecie krążą pogłoski o trzech, ponoć potężnych, układach tych firm: Rampage (3dfx), Napalm (3dfx) i NV10 (NVIDIA).

 Tajemnicze TXL

Ostatniego dnia sierpnia 1999 roku NVIDIA ogłasza nazwę układu, kryjącego się pod kryptonimem NV10. Jest to GeForce 256. "Ge" to skrót od "Geometry", "Force" oznacza siłę, a "256" podkreśla, że architektura GF 256 jest 256-bitowa.

GeForce 256 jest pierwszym konsumenckim układem graficznym, który został wzbogacony o tzw. procesor geometrii, znany też pod nazwą jednostki transformacji i oświetlenia (T&L Engine - od "Transform & Lighting Engine"). Procesor geometrii odpowiedzialny jest za fazę obliczeń geometrycznych, a więc za obroty, przesuwanie i skalowanie trójwymiarowych brył, jeszcze przed ich pokryciem teksturami. Jednostka przetwarza także operacje świetlne, wykorzystując do ośmiu niezależnych źródeł światła.

Zintegrowanie w GeForce 256 jednostki T&L jest o tyle rewolucyjne, że dotychczas fazy transformacji i oświetlenia dokonywane były przez procesor komputera. Przejęcie tych faz przez układ graficzny czyni karty z GF 256 zupełnie niezależnymi od CPU w przetwarzaniu grafiki! Dlatego też NVIDIA, wraz z GeForce 256, wprowadziła nowe pojęcie określające ten układ: GPU (Graphics Processing Unit), czyli Jednostka Przetwarzania Grafiki, analogicznie do CPU (Central Processing Unit), którym to mianem określa się procesor komputera.

Miesiąc później 3dfx ogłosił, że tajemniczy Napalm nazywa się w rzeczywistości VSA-100 (Voodoo Scalable Architecture). Przy okazji firma zapowiedziała dwie linie kart z tym układem: Voodoo4 i Voodoo5.

VSA-100 to pierwszy układ firmy 3dfx, który potrafi tworzyć grafikę trójwymiarową z 32-bitową paletą barw. Nie został on wyposażony w jednostkę T&L, więc transformacje i oświetlenie musi nadal robić komputer. Jednak VSA-100 wprowadza funkcję niespotykaną w GeForce 256: tzw. bufor T. Polega on na tworzeniu w obrębie bufora ramki wielu ramek obrazu, które - przesuwane względem siebie - pozwalają uzyskać wiele ciekawych efektów. Te efekty to miękkie cienie, miękkie odbicia, rozmycie obiektów w ruchu oraz anty-aliasing pełnoekranowy (usuwanie "schodków" z linii ukośnych).

Linia Voodoo4 to tylko jedna karta: Voodoo4 4500. Zbudowana w oparciu o układ VSA-100 i 32 MB pamięci, dostępna jest w wersjach PCI i AGP. Voodoo5 tworzą dwie karty: Voodoo5 5500 i Voodoo5 6000. Ta pierwsza ma dwa układy VSA-100 i 64 MB pamięci, a druga - cztery układy VSA-100 i 128 MB pamięci. Mimo tego, że 3dfx zapowiedział swoje karty tak wcześnie, nie było jeszcze działających egzemplarzy ani Voooo4, ani Voodoo5.

W listopadzie 1999 roku na rynku zaczęły się pojawiać karty GeForce 256 z szybką pamięcią DDR SGRAM (Double Data Rate), oferującą dwukrotnie większą przepustowość niż dotychczas stosowana pamięć SDR SDRAM (Single Data Rate). W tym samym czasie po Sieci zaczęły już krążyć informacje na temat dwóch następnych układów NVIDII - NV15 i NV11. W marcu 2000 roku NVIDIA ujawniła nazwy swych nowych kości: GeForce2 GTS (NV15) oraz GeForce2 MX (NV11). GeForce2 GTS (Giga Texel Shader) to nowy, flagowy produkt NVIDII. Karty z tym układem dostępne są wyłącznie z pamięcią DDR, której mają albo 32, albo 64 MB. GF2 GTS jest półtora raza szybszy od GeForce 256. GeForce2 MX to nieco wolniejszy brat GTS, oferujący te same, nowe funkcje, wprowadzone w GF2 GTS, jednak wydajnością porównywalny jest z GeForce 256 z pamięcią SDR.

Przed wakacjami 3dfx wreszcie rozpoczął sprzedaż swojej pierwszej karty opartej o VSA-100 - Voodoo5 5500 AGP. Nie okazała się ona rewelacją, jej osiągi plasują się między GeForce 256 SDR a GeForce 256 DDR.

We wrześniu 2000 roku NVIDIA rozpoczęła produkcję GeForce2 Ultra, o 25% szybszej wersji GeForce2 GTS. Pierwsze karty z tym układem mają 64 MB pamięci DDR SDRAM.



Schemat układu graficznego  

Karta graficzna od czasu swoich urodzin przeszła bardzo długą drogę ewaluacji. Początkowe układy jeszcze te przedpremierowe, które nie zostały wprowadzone do seryjnej produkcji, nie były bardzo skomplikowane. Posiadały one płytkę która połączona była z chipsetem na niej osadzonym, pamięcią przeważnie jedno kościową i wyjściem wideo na monitor z małym układem RAMDAC.

Taka specyfikacja układu wizualnego przetrwała w zasadzie do dzisiaj, co nie znaczy że teraźniejsze karty nie są skomplikowane. Oczywiście części składające się na akcelerator jako tako zostały niezmienione, natomiast rozbudowaniu została poddana ich struktura. Takim podstawowym przykładem może być chipset graficzny, który jak wiadomo jest sercem karty. Towarzyszył on układowi wizualnemu od ich powstania aż do dzisiaj. Zmieniło się tylko jego wnętrze, podochodziły nowe funkcje, zaimplementowano w nim nowe możliwości dla rozwoju akceleracji 2D i 3D.

Również takim typowym przykładem może być pamięć RAM, bez której żadna karta graficzna nie miała by bytu. Ich wygląd nie zmienił się znacznie, to przeważnie czarne prostokątne i płaskie urządzenie, jednak ich wewnętrzna konstrukcja była dość często poddawana modyfikacji, aby jak najlepiej wykorzystać swoje możliwości.

Podobny zabiegom był poddawany układ RAMDAC, który musiał dostosowywać się do coraz to nowszych monitorów czarno białych, później kolorowych i kolorowych ciekłokrystalicznych, musiał także zadbać o przyzwoite odświeżanie ekranu.

  TRYB PRACY



Tryb wyświetlania

Tryby tekstowe

W trybach tekstowych pamięć obrazu sterowników EGA, VGA, SVGA zorganizowana jest tak samo jak w sterowniku MDA i CGA. Z tego powodu została zachowana całkowita zgodność pomiędzy poszczególnymi rodzajami kart graficznych.

Każdy znak reprezentowany jest przez dwa bajty pamięci obrazu. Pierwszy z nich zawiera kody ASCII wyświetlanego znaku, drugi zaś określa jego atrybut. Wyświetlanie znaków odbywa się bardzo szybko, gdyż do zapisania jednego znaku wymagane jest przesłanianie tylko dwóch bajtów. W pamięci obrazu kody znaków zapisane są na przemian z atrybutami, dlatego do wyświetlenia znaków można wykorzystać instrukcję asemblera.

W pamięci obrazu można przechowywać do ośmiu stron tekstu, w zależności od ilości zainstalowanej pamięci i trybu pracy.

W trybie tekstowym znak w lewym górnym rogu ekranu znajduje się w zerowym wierszu i zerowej kolumnie.

Sterowniki graficzne posiadają zdefiniowane standardowe zestawy znaków zapisane w pamięci stałej. W przypadku sterowników EGA, VGA, i SVGA możliwa jest zmiana miejsca w pamięci, z którego pobierane będą wyświetlane znaki. Po przygotowaniu matrycy znaków można wskazać ją sterownikowi graficznemu korzystając z funkcji 11h (podfunkcje 00h i 10h) BIOS-u sterownika. W ten sposób, aby otrzymać na przykład polskie znaki diakrytyczne, nie trzeba dokonywać żadnych przeróbek sprzętowych jak miało to miejsce w przypadku historycznej już karty Hercules.

Sterowniki SVGA posiadają ponadto dodatkowe tryby tekstowe. Tymi trybami pracy sterowników SVGA to: 80x30, 80x43, 80x60, 132x25, 132x30, 132x43, 132x60, wszystkie w 16 kolorach.

Tryby graficzne

W zależności od trybu graficznego zmienia się organizacja pamięci obrazu. Jednak we wszystkich trybach graficznych kolejne komórki pamięci obrazu reprezentują kolejne punkty położone w kolejnych liniach poziomych, odczytywane z lewa na prawo i od góry do dołu. W trybach dwukolorowych pojedynczy punkt opisywany jest przez jeden bit. Osiem kolejnych punktów opisywanych jest przez jeden bajt pamięci obrazu, przy czym najbardziej znaczący bit znajduje się z lewej strony, zaś najmniej znaczący z prawej. W trybach czterokolorowych pojedynczy punkt opisywany jest dwoma bitami, a w trybach szesnastokolorowych - czterema. W specyficznym 256-kolorowym trybie 13h pojedynczy punkt opisywany jest jednym bajtem. Większość programów korzysta z tego trybu mimo stosunkowo niskiej rozdzielczości (320x200), gdyż do umieszczenia punktu na ekranie nie trzeba wykonywać żadnych złożonych operacji - wystarczy policzyć przesunięcie względem początku pamięci obrazu.

Sterowniki SVGA oferują ponadto dodatkowe tryby graficzne, na przykład tryb 640x480 w 256 kolorach, 800x600 w 16 i 256 kolorach lub tryb 1024x768 w 16 i 256 kolorach.

Tryby pamięci

Tryb zapisu i odczytu

W trybach graficznych o spakowanej organizacji pamięci karty widziana jest jako ciągły obszar pamięci RAM. Z tego powodu zapis lub odczyt danych nie powinien sprawiać kłopotów. W trybach graficznych o płatowej organizacji pamięci obrazu, odczyt lub zapis komórek pamięci może być różnie zinterpretowany przez poszczególne układy karty. Z tego powodu wprowadzone zostały cztery tryby zapisu i dwa tryby odczytu.

1. tryb zapisu

W zerowym trybie zapisu dane przesyłane przez procesor zapisywane są bezpośrednio w pamięci obrazu. Zapisywany bajt może być poddany operacji przesunięcia cyklicznego, możliwe jest także zamaskowanie jego poszczególnych bitów. Dane mogą być zapisywane osobno do poszczególnych płatów; jedną instrukcją można zapisać cztery bajty pamięci obrazu, po jednym bajcie na płat.

2. tryb zapisu

Korzystając z zawartości rejestrów zatrzaskowych pojedynczą instrukcją można modyfikować wszystkie cztery płaty pamięci obrazu. Rejestry zatrzaskowe ładowane są podczas odczytu pamięci obrazu przez procesor. Pierwszy tryb zapisu umożliwia bardzo szybkie kopiowanie obszarów pamięci obrazu.

3. tryb zapisu

W tym trybie wszystkie cztery płaty mogą być modyfikowane przez cztery najbardziej znaczące bity przesyłanego bajtu. Zerowy bit jest ośmiokrotnie kopiowany i zapisywany do komórki płatu zerowego. Pierwszy bit jest natomiast ośmiokrotnie kopiowany i zapisywany komórki płatu pierwszego. Podobnie dzieje się z bitami drugim i trzecim, które powielone zapisywane są odpowiednio do drugiego i trzeciego płatu pamięci obrazu. Do określenia, które z ośmiu bitów faktycznie mają zostać zapisane do pamięci obrazu służy rejestr modyfikacji bitów.

4. tryb zapisu

Trzeci tryb zapisu dostępny jest wyłącznie w sterowniku VGA i jest bardziej skomplikowany. Dane zapisywane do pamięci obrazu pobierane są z rejestru ustawień. Każdy z czterech najmniej znaczących bitów rejestru jest powielany osiem razy i zapisywany do odpowiednich płatów pamięci obrazu. Zapisywane bity mogą być maskowane. Bity o wartości zerowej są kopiowane do pamięci z rejestrów zatrzaskowych, zaś bity o wartości 1 są albo kopiowane z rejestru ustawień lub podlegają operacji logicznej na bitach tego rejestru i odpowiednich bitach rejestrów zatrzaskowych. Możliwe jest także zablokowanie dostępu do poszczególnych płatów pamięci przez wpisanie odpowiedniej wartości do rejestru blokowania pamięci. Tryb ten jest szczególnie przydatny przy wyświetlaniu na ekranie jednokolorowych wzorów.

0. tryb odczytu

W tym trybie odczytu przesyłane bajty pobierane są z pamięci obrazu. Podczas pojedynczego odczytu dostępny jest tylko jeden, aktywny płat pamięci. Jeśli poszczególne punkty są reprezentowane przez poszczególne bity na wszystkich płatach pamięci, to operacja jednego odczytu może zwrócić bity ośmiu sąsiadujących punktów.

1. tryb odczytu

W pierwszym trybie odczytu jako rezultat operacji zwracana jest wartość wynikająca z porównania zawartości pamięci z rejestrem porównania kolorów (color compare register). Poszczególne bity rejestru są uwzględniane na podstawie zawartości rejestru opuszczania kolorów (color don't care register). W porównaniu uczestniczą wszystkie niezablokowane płaty pamięci. Odczytany bajt zawiera rezultat ośmiu równoległych porównań, po jednym dla każdego z ośmiu sąsiadujących poziomo punktów reprezentowanych przez pojedynczy bajt.

Układ RAM-DAC

Układ RAM-DAC (Random Access Memory - Digital / Analog Converter) stanowi stopień wyjściowy karty graficznej i przetwarza zakodowany cyfrowo obraz pobierany na analogowy sygnał RGB sterujący tor wizyjny monitora. W zasadzie układ ten to trzy niezależne przetworniki, po jednym dla każdego z kolorów R - red (czerwony) G - gray (szary) B - blue (niebieski). Czasami można spotkać bardziej rozbudowane rozwiązania, jak na przykład te z wyjściami na dwa monitory. Karta posiada wtedy 2 niezależne zestawy po trzy przetworniki tego układu.

Konwersja polega na odczytaniu zawartości pamięci wideo i użyciu LUT (Look Up Table) do przekonwertowania jej na odpowiednie poziomy napięć. Tablica barw (LUT) pozwala zachować nam możliwie dużą ilość dostępnych barw przy jak najmniejszym zużyciu pamięci. Wartość piksela jest traktowana jako indeks barwy zapisanej w tablicy barw, a do układów wyświetlających jest przesyłana zawartość wskazanej komórki, określająca rzeczywiste składowe R, G, B. Liczba kolorów jest zależna od szerokości tablicy, a maksymalna ilość barw jednocześnie wyświetlanych zależy wykładniczo od długości indeksu i jest równa liczbie elementów tabeli. Zaletą stosowania LUT (poza oszczędnością pamięci) jest ułatwienie realizacji operacji wymagających szybkich zmian wyglądu ekranu bez istotnych zmian geometrii obrazowanej sceny.



Prędkość maksymalna z jaką może przebiegać ta konwersja (Pixel clock) leży w zakresie od około 130 MHz (tanie produkty powszechnego użytku) do prawie 300 MHz (akceleratory najnowszej generacji). Rozwój technologii ostatnich lat pozwolił również na stopniowe integrowanie przetworników w obrębie struktury scalonej samego akceleratora, co wcześniej było niemożliwe. Szybkie przetworniki (powyżej 200MHz) wytwarzane były wyłącznie jako niezależne układy scalone. Wymagana częstotliwość taktowania wynika z aktualnie ustawionej rozdzielczości i częstotliwości odświeżania obrazu, a nie zależy od ilości dostępnych w danym trybie barw. Sam fakt obecności na karcie przetwornika klasy 220 MHz nie oznacza bynajmniej, że pracuje on stale z tą częstotliwością. Szerokość pasma magistrali pamięciowej prowadzącej do przetwornika jest wynikiem częstotliwości odświeżania. Zależy ona oczywiście od parametrów pamięci a konkretnie szybkości z jaką można ją odczytywać. Na nic nie zda się tryb pracy w wysokiej rozdzielczości z ogromną ilością dostępnych barw, jeżeli obraz na ekranie drga i oczy odmawiają posłuszeństwa. Może się też zdarzyć, że ze względu na posiadany monitor nigdy nie wykorzystamy pełnych możliwościami oferowanych przez RAMDAC. Aktualna częstotliwość pracy wynika z następującego obliczenia:

f(RAMDAC) = k * p * 1 * fH

gdzie:
k - współczynnik bezpieczeństwa, zapewnia rezerwę na okresy powrotów linii i ramki


p - ilość punktów w linii
1 - ilość linii na ekranie (p x 1 opisuje rozdzielczość obrazu w pikselach, np. 800x600)
fH - częstotliwość odświeżania obrazu

Wiadomo że im lepsza i wyższa częstotliwości układu RAM-DAC tym lepsza ostrość i stabilność obrazu. Jednak to pociąga za sobą także negatywne skutki, mianowicie chodzi tu o promieniowanie, które wydobywa się nie z komputera, ani karty graficznej, lecz monitora, a konkretnie z każdego piksela mieszczącego się na ekranie. Dlatego wprowadzono różne filtry wyjściowe w celu ograniczenia skutków promieniowania.




filtr pomiędzy układem RAM-DAC a monitorem.

Promieniowanie tego typu trzeba wyeliminować aby uzyskać certyfikaty, a najbardziej znanymi są Low radiation i TCO 99'. W tyle nie pozostają także producenci monitorów, którzy w trosce o redukcje zakłóceń emitowanych przez swoje wyroby zaopatrują wszelkie przewody sygnałowe w opaski z pierścieni terrytowych.

BIOS i jego funkcje

Bios (Basic Input Output System) to niewielki program, zapisany w pamięci nieulotnej każdej karty graficznej. Jego załadowanie do pamięci RAM i uruchomienie to pierwsze czynności wykonywane przez komputer po włączeniu. Zadaniem Biosu jest sprawdzenie poprawności działania wszystkich elementów tworzący ich układ graficzny i urządzeń peryferyjnych do niej podłączonych, oraz zarządzanie ich pracą. Podobne programy zawarte są także na płytach głównych jak i kartach rozszerzeń (kontrolery SCSI), a ich przeznaczenie to nadzorowanie pracy danego urządzenia.

Funkcje BIOS-u sterownika karty graficznej można podzielić tematycznie na:


  • Funkcje określające tryb pracy i ogólne parametry sterownika (00h-07h oraz 0Fh)

  • Funkcje dostępu do ekranu (08h-0Eh)

  • Funkcje służące do definiowania kolorów (10h)

  • Funkcje generatora znaków (11h)

  • Funkcje konfigurujące sterownik (12h)

  • Funkcje uzupełniające (13h , 1Ah-1Ch)

Do wszystkich funkcji BIOS-u sterownika można odwołać się poprzez przerwanie INT 10h. Parametry wejściowe i wyjściowe przekazywane są w rejestrach procesora oraz poprzez wydzielone obszary pamięci. Numer funkcji i podfunkcji przekazywany jest zawsze w rejestrach AH i AL. Lub BL.

Funkcja 01h - określenie postaci kursora (EGA/VGA)


Funkcja służy do określenia wysokości i położenia wewnątrz znaku migającego prostokąta wyróżniającego znak na ekranie.

Funkcja 02h - ustawienie pozycji kursora (EGA/VGA)


Funkcja służy do ustawienia kursora na ekranie.

Funkcja 03h - pobranie pozycji i postaci kursora (EGA/VGA)


Funkcja służy do odczytania bieżącego kształtu i położenia kursora.

Funkcja 05h - ustawienie numeru wyświetlanej strony (EGA/VGA)


Funkcja służy do wyboru wyświetlanej strony.

Funkcja 06h - przewinięcie tekstu w górę (EGAS/VGA)


Funkcja służy do przewinięcia w górę podanego obszaru ekranu.

 

FUNKCJE DOSTĘPU DO EKRANU



Funkcja 09h - ustawienie atrybutu i wpisanie znaku w pozycji wskazanej przez kursor (EGA/VGA)
Oprócz wpisania znaku ustawiane są także atrybuty wpisywanych znaków

Funkcja 0Ah - wpisanie znaku w pozycji wskazanej przez kursor (EGA/VGA)


Funkcja służy do wpisania znaku w miejscu wskazanym przez kursor. Atrybuty wpisywanych znaków zależą od atrybutów ekranu

Funkcja 0Bh - wybranie koloru tła


Podfunkcja 00h - wybór koloru tła i krawędzi ekranu (EGA/VGA)
Podfunkcja 01h - wybór palety kolorów

Funkcja OCh - wyświetlanie punktu w graficznych trybach pracy


Funkcja służy do wyświetlania punktu w określonym miejscu i podanym kolorze

FUNKCJE SŁUŻĄCE DO DEFINIOWANIA KOLORÓW

Funkcja 10h - operacje na palecie kolorów
Podfunkcja 00h - ustawienie jednego koloru palety (VGA)
Podfunkcja 01h - zmiana koloru krawędzi (EGA/VGA)
Podfunkcja 02h - zmiana kolorów palety i krawędzi obrazu (VGA)

FUNKCJE GENERATORA ZNAKÓW

Funkcja 11h - działania na generatorze znaków
Podfunkcja 00h - definiowanie znaków tekstowego trybu pracy (EGA/VGA)
Podfunkcja ta służy do zastąpienia zbioru znaków lub jego części znakami zdefiniowanymi przez użytkownika
Podfunkcja 01h - załadowanie znaków standardowych 8x14 (EGA/VGA)
Podfunkcja ta służy do zastąpienia wskazanego zbioru znaków standardowym zbiorem znaków 8x16 zapisanym w pamięci sterownika VGA.

FUNKCJE KONFIGURUJĄCE STEROWNIK

Funkcja 12h - konfiguracja sterownika
Podfunkcja 10h - informacja o konfiguracji aktywnego sterownika (EGA/VGA)
Podfunkcja 20h - rozszerzenie operacji drukowania zawartości ekranu (EGA/VGA)
Podfunkcja 31h - powrót do standardowych kolorów (VGA)
Podfunkcja 33h - przełączenie do poziomów szarości (VGA)
Podfunkcja 36h - wygaszanie ekranu (VGA)

DODATKOWE FUNKCJE OBSŁUGIWANE PRZEZ VESA-BIOS

Producenci większości kart graficznych SVGA wyposażają swoje sterowniki w VESA BIOS. Dodaje on kilka funkcji przerwania do BIOS-u sterownika VGA. Dodatkowe funkcje BIOS-U można podzielić zgodnie ze specyfikacjami VESA, które je wprowadziły:


  • Funkcje wprowadzone przez specyfikację VESA 1.0 (4F00h-4F06h)

  • Funkcje wprowadzone przez specyfikację VESA 1.1 (4F07h-4F08h)

  • Funkcje wprowadzone przez specyfikację VESA 1.2 (4F08h)

Funkcja 4F00h - informacja o karcie SVGA

Funkcja 4F01h - informacje o trybach karty SVGA

Funkcja 4F30h - odczyt bieżącego trybu pracy

Funkcja 4F08h - ustawienie / odczyt liczby bitów odpowiadających barwom podstawowym



(w układzie R,G,B) w tablicy LUT





Pobieranie 67.91 Kb.





©absta.pl 2020
wyślij wiadomość

    Strona główna