Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Vývoj grafických akcelerátorů: 1. díl

2.7.2010, Vojtěch Kubiš, článek
Vývoj grafických akcelerátorů: 1. díl
Dnes se podíváme na vývoj prvních grafických čipů a probereme jejich přínos pro svět počítačů. V tomto díle projdeme přes počátky akcelerované grafiky a zaměříme se na společnosti ATI a Nvidia v 90. letech.
Kapitoly článku:
  1. Vývoj grafických akcelerátorů: 1. díl
  2. ATI Technologies
  3. Nvidia Corporation
Už od vzniku prvních počítačů bylo zapotřebí nějakým způsobem zajistit výstup programu, ať už to bylo výpisem palebné tabulky pro dělostřelectvo nebo real-timeovým zobrazováním realisticky vypadající 3D scény na 6 monitorech. Zaměřme se ale spíše na dobu, kdy se počítače podobaly těm dnešním.

S dobou, kdy grafická scéna přestává být pouze vypsaným textem, se tyto výpočty stávají mnohem náročnější a tedy mnohem více zpomalují běh celého programu. Proto začaly vznikat procesory specializované na grafické výpočty.

Jeden z prvních byl obsažen v 8bitové rodině Atari, byla to dvojice čipů vyvinutých speciálně pro potřeby Atari - ANTIC a GTIA (Alpha-Numeric Television Interface Circuit, George's Television Interface Adapter). Jejich funkce se vzájemně doplňovala. První z nich měl za úkol generovat obraz ať už v textovém nebo grafickém režimu a starat se o jeho celkový posun. Druhý se staral o aplikaci barev a také o zobrazení pohyblivých obrázků a detekci kolize jejich hran. To bylo ve své době velmi podstatné, protože to velmi ulehčilo práci CPU.


Hra International Karate a kombinace více grafických režimů

Hardwarová podpora pro zobrazování spritů byla obsažena také v grafickém čipu VIC-II v počítači Commodore 64 a pozdějším Commodore 128. Byl velmi podobný obvodu GTIA z Atari. Současně dokázal zobrazit 8 spritů velikosti 24x21 pixelů v monochromatickém režimu nebo 12x21(pixely spritů měly dvojnásobnou šířku) v režimu multi-color. Pro zobrazení více než osmi spritů se používaly vhodně naprogramované přerušovací rutiny, jediným omezením zůstal počet spritů na obrazovém řádku.

Trochu rozdílná situace panovala na IBM PC. Dlouho zde nebyl žádný grafický akcelerátor (pouze se měnily grafické adaptéry a zobrazovací standardy, zvyšoval se počet barev a rozlišení), takže si softwarové firmy samy vytvářely grafické knihovny pro jejich programy. Až v roce 1984 se tato situace mírně mění, protože IBM uvádí PGC (Professional Graphics Controller). Jednalo se o ucelený grafický subsystém založený na Intel 8088, který nabízel uživatelům množství možností a navíc byl vybaven jednoduchým programovacím rozhraním.

Z hardwarového hlediska se PGC skládalo z tří plošných spojů, na kterých bylo dohromady 64 kB ROM paměti. V té byl uložen celý vykreslovací algoritmus. Dále obsahovalo RAM paměť o kapacitě 320 kB, jejíž podstatná část (asi 300 kB) se používala jako framebuffer. Zbytek paměti sloužil k pohybu s obrazem. Vše nebylo řízeno specializovaným čipem, ale obyčejným Intel 8088, který podle příkazů od PC prováděl všechny výpočty. Celé PGC bylo do PC zapojeno pomocí sběrnice ISA.



IMB PGC bylo na svou dobu velmi pokročilé, podporovalo rozlišení 640x480 s 256 barvami a poskytovalo 2D i 3D akceleraci pro CAD aplikace. Cena byla sice 4290 dolarů, ale v porovnání s tehdejšími pracovními stanicemi pro CAD za 50 000 dolarů to byla velmi výhodná koupě. Na domácí počítač to bylo ale příliš, proto v této oblasti úspěch nezaznamenalo.

Jako nástupce po Commodore 128 příchází Amiga se svým čipsetem OCS (Original Chip Set), který se skládá ze tří čipů – Agnus, Denise, Paula. Pro nás je podstatný první z nich, tedy Agnus. Skládá se ze dvou koprocesorů Copper a Blitter. Copper, pracující takřka nezávisle na hlavním procesoru, dokáže pohybovat se sprity na obrazovce, modifikovat barevnou paletu nebo měnit grafický režim, což se využívalo pro situace, kdy bylo zapotřebí vykreslit jednu část obrazovky ve vyšším rozlišení než druhou, např. grafický editor – menu vykresleno v hi-res módu a zbytek v low-res.

Blitter byl koprocesor specializovaný na bit blit operace, tedy kombinování více bitmap do jedné. Klasickým použitím bylo např. vykreslování částečně průhledných obrázků na pozadí, tedy kombinace bitmapy pozadí, bitmapy obrázku a bitmapy obsahující informaci o průhlednosti obrázku. Pomocí blitteru se také kreslily přímky a vyplňovaly oblasti.

Jako další vývoje OCS následovaly ECS (Enhanced Chip Set) a AGA (Advanced Graphic Architecture), oba rozvíjely možnosti zobrazení až na (v případě AGA) 256 barev z palety 16 777 216 (24bitová hloubka), což byl výrazný nárůst oproti OCS, který dovoloval pouze 32 barev z palety 4 096 (12bit). Přibyla i podpora super hires plynulého scrollingu a podpora 32bit stránkování pro Fast Page Memory. Výsledkem byla možnost zobrazení větších spritů.

Bohužel, kromě zmíněného chipsetu, žádná jiná komponenta nefungovala v 32bit režimu, což jeho využití omezovalo. Další vlastností byla nulová podpora pro akceleraci 3D, což se ukázalo s příchodem prvních 3D her jako značný problém. Tento nedostatek postupně vedl ke ztrátě vedoucího postavení na trhu.



Amiga. Název pocházející ze španělského slova přítelkyně. Náhodou však také není, že v abecedě leží před slovy Atari nebo Apple. Původně byla vyvíjena společností Amiga Corporation, ale ještě v době vývoje byla tato firma odkoupena Commodore International, která v roce 1985 Amigu na trh uvedla. Amiga byla založena na několika mikroprocesorech Motorola 68000 a obsahovala originální a velmi pokročilý chipset, který nabízel velké zvukové i grafické možnosti, což předurčovalo zaměření především na hry, ale své využití našla také v televizních stanicích pro počátky virtuálních studií předpovědi počasí.

Konkurence z malého města Armonk nedaleko New Yorku, tedy IBM, také nespala. Po prvním grafickém akcelerátoru PGC přichází IBM 8514/A. Ten využíval slotu MCA a sériově se zapojoval jako druhá karta (obvykle společně s VGA) do výstupu na monitor. Karta sama o sobě nepodporovala textový režim a ani nebyla ovládána přes BIOS, čili počítač pouze s ní nenabootoval. Hlavními úlohami byla akcelerace CAD aplikací, tedy rychlé zpracování a vykreslení vektorů, protože v minulosti bylo v CAD pomocí vektorů vykreslováno i písmo. Další součástí byl modul pro akceleraci bit blit operací, proto byla výrazně zrychlena práce s bitmapami.

A v neposlední řadě mezi významný krok kupředu patřila i podpora pro Windows 3. Zajímavostí je, že po uvedení tohoto akcelerátoru se firma Microsoft rozhodla, že rutiny pro obsluhu grafických karet se přestěhují z jádra ven do ovladačů, protože tato karta nebyla zpětně kompatibilní. I přes svou vyšší cenu se stala IBM 8514/A první masově úspěšnou grafickou kartou.



V textu několikrát zmiňuji pojem sprite. O co se tedy jedná? Sprite (čteno sprajt) je dvourozměrný obrázek, definující jednu animační fázi objektu. Jejich rychlým měněním dochází ke vzniku iluze pohybu. Obvykle byl na obrázku jeden konkrétní odstín definován jako průhledná - při vykreslování spritu do videopaměti nepřepisoval původní data
Doporučujeme náš velký přehled desktopových grafických čipů.