Obsah
1. Vývoj grafických karet na osobních počítačích IBM PC
2. Základní a rozšiřující funkce grafických karet
3. Parametry grafických karet
4. Připojení grafických karet k počítači
5. Universální sběrnice a lokální sběrnice
6. Sběrnice ISA
7. Lokální sběrnice VESA Local Bus
8. Obsah dalšího pokračování
1. Vývoj grafických karet na osobních počítačích IBM PC
Historický vývoj grafických karet na osobních počítačích typu IBM PC byl velmi zajímavý a v poslední době i poměrně bouřlivý. V době uvedení prvních počítačů PC na trh asi nikdo nečekal, že se právě tyto počítače stanou v nedaleké budoucnosti stroji, které postupně nahradí profesionální grafické stanice od firem Sun a SGI. Grafické možnosti počítačů PC byly opravdu po dlouhou dobu velmi skrovné, jedinou předností PCček oproti konkurenci byla jejich hrubá výpočetní síla, která nahradila kvalitní návrh jednotlivých součástí počítače. Oproti mnohdy velmi propracovaným grafickým čipům dostupných již na osmibitových a šestnáctibitových počítačích neobsahovaly první PCčkovské grafické karty téměř žádnou funkcionalitu, uměly pouze zobrazit bitovou mapu uloženou ve své video paměti.
Ostatně právě oddělení operační paměti od video paměti je pro počítače PC typické a do značné míry ovlivňuje funkcionalitu i nejmodernějších grafických karet. IBM PC je navrženo tak, aby bylo důsledně modulární, což ve svém důsledku znamená, že každou součást počítače může vyrábět jiná firma. Modulárnost řešení celého počítače se samozřejmě nevyhnula ani grafickému subsystému počítače, proto se místo grafického čipu spolupracujícího přímo s CPU a operační pamětí objevuje grafická karta, která s CPU komunikuje přes univerzální sběrnici.
Toto řešení grafického subsystému má některé výhody, ale samozřejmě i nevýhody, proto se v minulosti (a s největší pravděpodobností i v budoucnosti) objevily snahy o zajištění užší spolupráce mezi CPU, operační pamětí a grafickou kartou. Mezi úspěšná řešení patřilo použití lokálních sběrnic (například sběrnice VESA Local Bus) či portů vymezených pouze pro grafickou kartu (Advanced Graphics Port). Opačné snahy vedou k unifikaci přístupu ke všem zařízením včetně grafické karty (sběrnice ISA, PCI či PCI Express). Bližší informace o připojení grafické karty k počítači budou uvedeny v dalších kapitolách.
2. Základní a rozšiřující funkce grafických karet
Jaká je vlastně úloha grafické karty v osobním počítači? Grafická karta slouží primárně k převodu informací, které jsou uloženy v operační paměti počítače či video paměti grafické karty, na rastrový obrázek zobrazený na monitoru. K tomuto účelu je zapotřebí generovat barvové a synchronizační signály, které ve své podstatě představují jednorozměrný tvar výsledného rastrového obrazu – viz první ilustrační obrázek.
Obrázek 1: diagram rastrového zobrazovacího subsystému počítače
Nejjednodušší grafické karty pouze mapují část operační paměti vyhrazené pro zobrazování (takzvané video paměti) a tuto informaci přenášejí na zobrazovací jednotku. Složitější grafické karty už obsahují vlastní paměť a některé dokonce umožňují zobrazovat jednoduché objekty samostatně (úsečky, kruhy, písmena atd.). Takovéto složitější a samozřejmě i dražší systémy se nazývají grafické akcelerátory. Vyšším stupněm grafické akcelerace je podpora zobrazování třidimenzionálních těles. Nejvyšším stupněm je pak samostatné zobrazení celé třídimenzionální scény jen pomocí grafické karty.
3. Parametry grafických karet
U grafických karet nás většinou zajímají následující parametry:
- rozlišení – tj. velikost rastru, ze kterého je obrázek složen. Rozlišení se udává jako počet elementárních bodů (pixelů) umístěných v horizontálním a ve vertikálním směru. Nejnižší rozlišení v grafických režimech je na počítačích IBM PC rovno 320×200 bodům, nejvyšší rozlišení se pohybuje u hodnot 4096×4096 bodů. Běžné moderní grafické karty a monitory podporují rozlišení 1024×768 bodů resp. 1280×1024 bodů.
- barevná hloubka – tj. počet barev, které lze současně zobrazit na obrazovce. Nejnižší barevnou hloubku má samozřejmě černobílý obrázek, kde každý obrazový bod je buď černý, nebo bílý (podobně u monochromatického obrázku může obrazový bod nést pouze jednu ze dvou předem stanovených barev). Běžně používané barevné hloubky jsou 256 barev, 32 tisíc barev, 65 tisíc barev (takzvané režimy hi-color) a cca 16 milionů barev (takzvaný režim true-color). Lidské oko přitom v ideálních světelných podmínkách rozliší asi 20 milionů barevných odstínů, musíme si však uvědomit, že monitor zobrazuje pouze menší část celého viditelného spektra.
- velikost obrazové paměti (video paměti) – ta ve velké míře závisí na rozlišení, barevné hloubce a na tom, zda grafická karta umožňuje vykreslování prostorových objektů. Velikost obrazové paměti se obecně pohybuje od 16 kB (CGA) do 256 MB. Pro PC používané v kanceláři dostačuje grafická karta s velikostí obrazové paměti 2 MB (rozlišení 1024×768 při 32 tisících barvách). Pro nejnovější hry je naopak zapotřebí minimálně 16 MB obrazové paměti, protože v obrazové paměti jsou kromě celého framebufferu uloženy i textury. Zcela samostatným druhem grafických karet jsou pak akcelerátory pro zobrazování objemových dat, jejichž obrazové paměti mají mnohem větší kapacitu.
- obrazová frekvence – tj. údaj o tom, jak rychle se obraz na stínítku monitoru vykresluje (resp. obnovuje). Čím vyšší je obrazová frekvence, tím méně se obraz chvěje a oko je méně unavené. Obrazová frekvence se u běžných CRT monitorů pohybuje od 50 Hz do 150 Hz. Za dostatečnou přitom dnes považujeme frekvenci nad 75 Hz, u LCD se mnohdy používá i frekvence nižší, například 60 Hz.
- sběrnice, na kterou je grafická karta napojena. Čím rychlejší je použitá sběrnice, tím rychleji se mohou přenášet data z operační paměti do video paměti. To je důležité například u počítačových her (pokud se celá scéna neuloží do video paměti) nebo při přehrávání videa. Mezi běžné sběrnice řadíme (od nejpomalejších po nejrychlejší): PC-BUS, ISA, EISA, VESA Local Bus, PCI, AGP (v posledním případě se však nejedná o plnohodnotnou sběrnici).
- možnosti akcelerace, kterou grafická karta nabízí. Buď karta žádnou akceleraci nepodporuje, nebo může podporovat vykreslování 2D nebo 3D objektů. Některé grafické karty také podporují přehrávání videa nebo výpočty nad maticemi.
4. Připojení grafických karet k počítači
V této kapitole budou popsány různé alternativy, které je možné použít pro připojení přídavných zařízení k výpočetnímu systému. Zaměřím se především na rozhraní (sběrnice i porty) používaná u osobních počítačů typu IBM PC a kompatibilních. U každého rozhraní kromě základních parametrů popíšu i jeho výhody a nevýhody, pokud by bylo použito pro přenos grafických dat.
Otázka volby vhodného rozhraní je pro grafické karty a zejména pro grafické akcelerátory velmi důležitá, protože množství grafických dat, které se přes zvolené rozhraní musí přenášet, neustále roste. Tento růst je způsoben zvětšujícím se rozlišením počítačových monitorů, větší komplexností zobrazovaných prostorových scén a v neposlední řadě i novými zobrazovacími metodami založenými například na objemové reprezentaci těles.
U počítačů typu PC se tato problematika řeší zvyšováním kapacity lokální paměti na grafické kartě. Při nedostatku této paměti (například z důvodu použití textur s vysokým rozlišením) však může dojít k velké degradaci rychlosti vykreslování. Úroveň zpomalení je nepřímo úměrná rychlosti zvoleného rozhraní, tj. sběrnice či portu.
5. Universální sběrnice a lokální sběrnice
Universální a lokální sběrnice slouží k vzájemnému propojení přídavných zařízení uvnitř výpočetního systému. Na tyto sběrnice je buď přímo nebo přes takzvaný most (bridge) připojen i mikroprocesor spolu s lokální pamětí cache a operační pamětí. Rozdíl mezi universálními a lokálními sběrnicemi spočívá především ve stupni oddělení mikroprocesoru od sběrnice.
U lokálních sběrnic je procesor ke sběrnici připojen přímo, nebo pouze přes případný budič sběrnice. To s sebou přináší značné nevýhody, protože vlastnosti lokální sběrnice jsou determinovány vlastnostmi procesoru, například jeho externím taktovacím kmitočtem a napěťovými úrovněmi signálů. Na lokální sběrnice je také obecně možné připojit méně zařízení, což souvisí zejména se signálovými poměry datových a řídicích vodičích. Příklad použití lokální sběrnice je zobrazen na druhém obrázku.
Obrázek 2: připojení grafické karty na lokální sběrnici počítače
U sběrnic universálních je mezi interní sběrnicí procesoru (procesorovou sběrnicí) a universální sběrnicí přesně definováno rozhraní, takže zařízení připojená na tuto sběrnici mezi sebou komunikují relativně nezávisle na mikroprocesoru. Vzhledem k oddělení interní sběrnice od universální sběrnice sice dochází k určitému zpomalení (latenci) při přenosu dat, je to však vyváženo možností připojení většího množství zařízení na sběrnici. Také je možné převzetí řízení sběrnice jedním ze zařízení a vzájemná komunikace zařízení mezi sebou bez zásahu mikroprocesoru. Použití universální sběrnice je popsáno na třetím obrázku.
Obrázek 3: připojení grafické karty na universální sběrnici
Z universálních sběrnic si popíšeme dnes již poněkud zastaralou sběrnici typu ISA a progresivní sběrnici PCI. Z lokálních sběrnic je popsána sběrnice VESA Local Bus, kterou je dnes také možné považovat za zastaralou. Na této sběrnici jsou však prezentovány vlastnosti společné všem lokálním sběrnicím, zejména jejich poměrně velká závislost na procesorové architektuře.
6. Sběrnice ISA
Mezi nejstarší a současně nejjednodušší sběrnice používané v osobních počítačích typu IBM PC a kompatibilních patří sběrnice typu ISA. Zkratka ISA vychází z anglického názvu Industry Standard Architecture. Tato sběrnice byla navržena firmou IBM v roce 1980 v laboratořích IBM Development Lab Bocaraton na Floridě.
V roce 1981 bylo použita osmibitová verze této sběrnice pro první počítače typu IBM PC. Tato verze podporovala připojení přídavných karet s osmibitovým rozhraním a konektorem, který obsahoval celkem 62 pinů. Od roku 1984 se začíná v počítačích IBM PC AT a kompatibilních používat šestnáctibitová verze této sběrnice, která podporuje karty s 98pinovým konektorem. Tato sběrnice se ve firemních materiálech IBM také nazývá AT Bus, ostatní výrobci však používají označení ISA. Šestnáctibitová sběrnice ISA se ve výpočetní technice používala velmi dlouho, zejména díky své konstrukční jednoduchosti (konektor šlo vytvořit přímo na plošném spoji bez dalších konstrukčních součástí) a detailnímu popisu komunikačního protokolu a průběhů signálů.
Sběrnice ISA obsahovala adresovou část, která měla šířku 24 bitů, což odpovídá možnostem adresování až 16 MB paměti (pomocí čtyř nejvyšších adresových bitů bylo možné ovládat takzvaný latch, tj. záchytný registr). Kromě paměti bylo možné obsluhovat maximálně 64 kB vstupně/výstupních portů pomocí šestnáctibitové IO sběrnice (adresová část IO sběrnice měla šířku šestnácti bitů, maximální počet portů je tedy 216=65536). Datová část sběrnice měla šířku šestnáct bitů. Blokový přenos dat byl řešen buď pomocí převzetí řízení sběrnice zařízením (jednodušší obdoba bus master přenosu používaného ve vyspělejších sběrnicích), nebo pomocí čtyř (později osmi) DMA kanálů.
Pro přenos dat se používal synchronní protokol, oscilátor měl časovou základnu 70 ns, což odpovídá frekvenci 14,285 MHz. Tato frekvence byla dále dělena třemi, takže skutečná taktovací frekvence sběrnice byla u prvních verzí rovna necelým 4,77 MHz. Existovaly také rychlejší varianty s taktovací frekvencí 8 MHz, 10 MHz, 12 MHz a 16 MHz.
7. Lokální sběrnice VESA Local Bus
Sběrnice VESA Local Bus (zkráceně VLB) byla navržena sdružením VESA jako rychlejší doplněk výkonnostně nedostatečné sběrnice ISA. Zatímco sběrnice ISA je určena pro prakticky libovolné zařízení, u sběrnice VESA Local Bus se předpokládalo její použití zejména pro grafické karty, řadiče rychlých pevných disků a síťové karty. Tato sběrnice byla používána pouze na osobních počítačích typu PC, podpora pro jiné výpočetní systémy prakticky neexistuje.
Největšího rozšíření tato sběrnice dosáhla v dobách osobních počítačů s procesory řady 486, u kterých rostla poptávka po rychlých grafických kartách a pevných discích. S dalším vývojem počítačů (zejména těch s procesory Intel Pentium) je zřetelný značný ústup v používání sběrnice VLB, naopak se začíná prosazovat perspektivní sběrnice PCI a její nástupce PCI Express.
Jak již název sběrnice VESA Local Bus napovídá, jedná se o sběrnici lokální, tj. sběrnici, která přímo sdílí datovou a adresovou část s mikroprocesorem počítače. To má mimo jiné za následek omezení maximálního počtu připojených zařízení na dvě až tři, protože větší počet zařízení by příliš proudově a impedančně zatěžoval procesorovou sběrnici. Také frekvence sběrnice je odvozena z vnější taktovací frekvence procesoru a může se pohybovat v hodnotách od 33 MHz do 50 MHz.
Sběrnice VLB podporovala takzvaný burst režim přenosu blokových dat. Jednalo se o zvláštní mód, ve kterém se přenesla vždy jedna adresa a po ní čtyři datová slova. Bylo tak možné jednoduše a rychle přenést 2×32 bitů pouze v pěti sběrnicových cyklech oproti osmi cyklům nutným pro přenos čtyř dvojic adresa-data. Jak uvidíme v dalším pokračování tohoto seriálu, je možné u pokročilejších sběrnic použít vylepšenou variantu burst režimu, ve kterém se po zadání jedné adresy a počtu opakování může přenést mnohem více dat, což ve svém důsledku vede k vyšší přenosové rychlosti, neboť se ušetří cykly nutné pro přenos a dekódování adresy.
Prakticky jedinou výhodou sběrnice VESA Local Bus oproti dále popsané sběrnici PCI a PCI Express je v některých případech vyšší přenosová rychlost, zejména v počítačích, kde je použita taktovací frekvence sběrnice 40 MHz a 50 MHz (při použití frekvence 40 MHz je možné na sběrnici připojit maximálně tři zařízení, na sběrnici VLB o frekvenci 50 MHz je však počet zařízení omezen na dvě). Převažují však nevýhody, mezi něž patří zejména: stále klesající podpora jak u výrobců zařízení pro tuto sběrnici, tak u producentů čipových sad základních desek (dnes se sběrnice VLB vyskytuje prakticky pouze v průmyslových počítačích), možnost připojení omezeného množství zařízení a různorodá taktovací frekvence (která způsobuje komplikace návrhu přídavné karty).
8. Obsah dalšího pokračování
V dalším pokračování tohoto seriálu si popíšeme sběrnici PCI a její modifikaci ve formě portu AGP. Také si uvedeme bližší popis historicky prvních grafických karet na osobních počítačích.