Vývoj grafických karet



Podobné dokumenty
G R A F I C K É K A R T Y

Grafická karta nebo také videoadaptér je součást počítače, která se stará o grafický výstup na monitor, TV obrazovku či jinou zobrazovací jednotku.

AGP - Accelerated Graphics Port

Co je grafický akcelerátor

Zobrazovací jednotky a monitory

GRAFICKÉ ADAPTÉRY. Pracovní režimy grafické karty

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Grafické adaptéry a monitory

DUM č. 14 v sadě. 31. Inf-7 Technické vybavení počítačů

Hardware. Z čeho se skládá počítač

Identifikátor materiálu: ICT-1-08

PŘEDSTAVENÍ GRAFICKÉHO PROCESORU NVIDIA G200

Grafické adaptéry a monitory

Monitory a grafické adaptéry

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

Střední průmyslová škola Zlín

GRAFICKÉ KARTY. Pracovní režimy grafické karty. Základní blokové schéma grafické karty

Přídavné karty. Zvuková karta. Síťová karta

Grafické adaptéry a monitory

Z čeho se sběrnice skládá?

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Grafické karty. Autor: Kulhánek Zdeněk

DUM č. 6 v sadě. 31. Inf-7 Technické vybavení počítačů

Sbě b r ě n r i n ce

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

monitor a grafická karta

Zobrazovací a zvuková soustava počítače

Procesory nvidia Tegra

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Grafické adaptéry a monitory

HW počítače co se nalézá uvnitř počítačové skříně

Karel Johanovský Michal Bílek SPŠ-JIA GRAFICKÉ KARTY

SEZNAM A VYSVĚTLENÍ VYBRANÝCH POJMŮ TÝKAJÍCÍCH SE PARAMETRŮ ZOBRAZOVACÍCH JEDNOTEK ELEKTRONICKÝCH SYSTÉMŮ

Informační a komunikační technologie

Předmět: informační a komunikační technologie

Osobní počítač. Zpracoval: ict Aktualizace:

Úvod do problematiky. Význam počítačové grafiky. Trochu z historie. Využití počítačové grafiky

Číslo projektu: CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Zdeněk Dostál Ročník: 1. Hardware.

Počítačová grafika Grafické karty a monitory (metodické materiály) dr. Josef Šedivý Centrum talentů UHK, 2010

Grafické adaptéry a monitory

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Základní pojmy informačních technologií

Základní deska (mainboard)

Grafické adaptéry a monitory

Procesor. Hardware - komponenty počítačů Procesory

Pokročilé architektury počítačů

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

DRUHY SESTAV. Rozlišujeme 4 základní druhy sestav. PC v provedení desktop. PC v provedení tower. Server. Notebook neboli laptop

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Sběrnice. Parametry sběrnic: a. Přenosová rychlost - určuje max. počet bitů přenesených za 1 sekundu [b/s]

Architektura grafických ip pro Xbox 360 a PS3

Výstavba PC. Vývoj trhu osobních počítačů

Úvod do problematiky. Význam počítačové grafiky. Trochu z historie. Využití počítačové grafiky

Architektura Intel Atom

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Komunikace procesoru s okolím

Procesor EU peníze středním školám Didaktický učební materiál

ARCHITEKTURA AMD PUMA

ZÁKLADNÍ DESKA ASUS PRIME X370-PRO ZÁKLADNÍ DESKA, AMD X370, AM4, 4X DIMM DDR4, 1X M.2, ATX

OPS Paralelní systémy, seznam pojmů, klasifikace

SKŘÍŇ PC. Základní součástí počítačové sestavy je skříň.

Architektura počítačů

Výkonnost mikroprocesoru ovlivňují nejvíce dvě hlediska - architektura mikroprocesoru a tzv. taktovací frekvence procesoru.

Mikrokontroléry. Doplňující text pro POS K. D. 2001

David Buchtela. Monitory Monitory. David Buchtela. enýrství lská univerzita v Praze

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Vektorové grafické formáty

Základní deska (mainboard, motherboard)

PROCESOR. Typy procesorů

Grafické adaptéry a monitory

Úvod do architektur personálních počítačů

2.7 Základní deska. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Grafické adaptéry a monitory

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

Systémy pro sběr a přenos dat

Grafické adaptéry a monitory

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Bakalářská práce. Téma: Rešerše moderních grafických karet Literature retrieval of modern graphic cards. Zadání

Přehled paralelních architektur. Dělení paralelních architektur Flynnova taxonomie Komunikační modely paralelních architektur

Pohled do nitra mikroprocesoru Josef Horálek

Profilová část maturitní zkoušky 2014/2015

Základní jednotka procvičování

Chipsety AMD a jejich vlastnosti

Představení a vývoj architektur vektorových procesorů

Profilová část maturitní zkoušky 2015/2016

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Geneze grafických karet jako základní součásti PC Drahoslav Stejskal

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Informatika Počítačová grafika Mgr. Jan Jílek (v.11/12) Počítačová grafika

Vstupně - výstupní moduly

Představení procesorů od firmy Tilera a jejich architektura

Cache paměti (1) Cache paměť: V dnešních počítačích se běžně používají dva, popř. tři druhy cache pamětí:

Pokročilá architektura počítačů

Pokročilé architektury počítačů

Zobrazování terénu. Abstrakt. 1. Úvod. 2. Vykreslování terénu

3. Maturitní otázka PC komponenty 1. Počítačová skříň 2. Základní deska

Obecný popis základní jednotky

Transkript:

Bankovní institut vysoká škola Praha Katedra informačních technologií Vývoj grafických karet Bakalářská práce Autor: Martin Havelec Auditor informačních systémů Vedoucí práce: Ing. Petr Bouchner Ph.D. Praha Duben, 2009

Prohlášení: Prohlašuji, že jsem tuto bakalářskou práci zpracoval samostatně a s použitím uvedené literatury. V Praze dne 19. dubna 2009 Martin Havelec

Anotace Předložená práce se zabývá problematikou grafických akcelerátorů. Snaží se nastínit jejich vývoj, funkce a technologie pro vytváření výsledného obrazu. Součástí práce je historický souhrn a zamyšlení nad budoucím směřováním a vývojem grafických akcelerátorů. Práce je rozdělena do čtyř hlavních částí. První část představuje historii počítačové grafiky a přibližuje cíle bakalářské práce. Druhá část se věnuje přiblížení historie grafického akcelerátoru, jejímu vývoji v počítačích typu IBM PC. Dále prezentuje trh s grafickými kartami a je zakončena chronologickým přehledem grafických akcelerátorů. Třetí část popisuje úlohu grafického akcelerátoru v osobním počítači, jeho základní součásti a druhy. Ve čtvrté části se seznamujeme s fungováním grafického akcelerátoru a se základními funkcemi potřebnými pro vytvoření obrazu. Pátá a závěrečná část se věnuje popisu základních funkcí současného grafického akcelerátoru a nastiňuje budoucí vývoj a směrování grafických akcelerátorů jakožto klíčové součásti počítače. Annotation This thesis deals with graphics accelerators. The aim is to show the evolution of the graphics accelerators, their functions and the technics how the final picture is created. The thesis includes a historic overview of the accelerators as well as it outlines their possible evolution in the future. It is divided into four parts. The first part deals with the history of computer graphics and approaches the aim of the whole bachelors thesis. The second part is focused on the historical evolution of the graphics accelerators, especially in the IBM computers. It also maps the graphics accelerator market and is ended by a chronological survey of the graphics accelerators. The third part presents the function of the graphics accelerators in the personal computer, their basic parts and their different kinds as well. The fourth part introduces the functioning of the graphics accelerators and their basic functions necessary to create the picture. The fifth and final part describes the basic functions of the current graphics accelerators; it outlines their possible evolution in the future as the key part of the computer.

Obsah 1. ÚVOD 6 1.1 Grafické zobrazení a počítač 6 1.2 Cíl práce 6 2. HISTORIE GRAFICKÉ KARTY V OSOBNÍM POČÍTAČI 7 2.1 Pohled do historie 7 2.1.1 Výstupní grafická periferie - displej 7 2.2 Grafická karta v IBM PC 8 2.3 Trh grafických karet 12 2.4 Chronologický vývoj 13 3. ÚLOHA GRAFICKÉ KARTY A JEJÍ VÝZNAM V OSOBNÍM POČÍTAČI 20 3.1 Definice grafické karty? 20 3.1.1 Integrované grafické karty 20 3.1.2 Samostatné grafické karty 21 3.2 Součásti grafické karty 24 4. POPIS FUNGOVÁNÍ GRAFICKÉ KARTY 26 4.1 Podpora vykreslování základních 3D objektů 28 4.2 Pokročilé metody zobrazování textur 29 4.2.1 Transform & Lighting 31 4.2.2 Pixel a Vertex shader 32 5. ZMAPOVÁNÍ SOUČASNÉ GRAFICKÉ KARTY A JEJÍ SMĚŘOVÁNÍ DO BUDOUCNA 36

5.1 ATi Radeon HD řady 4800 36 5.2 Zpracování shaderu 37 5.3 Zpracování textur 39 5.4 Hierarchie paměti 39 5.5 Výkonové srovnání 40 5.6 Spotřeba 43 6. ZÁVĚR 46

1. Úvod 1.1 Grafické zobrazení a počítač Vývoj samostatných grafických nástrojů v počítačích se dá sledovat od poloviny šedesátých let minulého století, kdy se počítače začaly ve větší míře využívat pro zpracování vědeckých dat. Některé výstupy byly pro člověka v číselné podobě málo srozumitelné a přehledné. Zjistilo se, že je mnohem jednodušší a srozumitelnější převést číselné (binární) informace na informace grafické, které je lidský mozek schopen mnohem lépe chápat, a ty zobrazit - buď na obrazovku, nebo pomocí tisku na papír, nebo jiné médium. Toto nám umožňuje rozumět velkému množství grafických symbolů, neboť tyto informace jsou poměrně nezávislé na zemi původu a jazyku, např. šipka symbol, který vznikl zjednodušením obrazu letícího šípu a tím určující směr. Pro zprostředkování komunikace mezi počítačem a uživatelem slouží grafická zařízení. V dnešní době již není zapotřebí zdůrazňovat význam grafického výstupu z počítače. Již ze samotného principu jak se dnes počítače ovládají je význam grafického zobrazení jasný. Každý počítač či stanice je již standardně vybaven grafickou kartou a zobrazovacím zařízením. Díky těmto zařízením lze poměrně snadno realizovat znakový i grafický výstup, a tedy efektivně ovládat počítač a přenášet informace od uživatele do počítače a zpět. 1.2 Cíl práce Vzhledem k tomu, že oblast grafických karet a počítačové grafiky je velmi široká, vidím jako přínosné rozšířit znalosti o vývoji počítačové grafiky a to nahlédnutím do historie. Vytvořím si tak ucelený pohled na problematiku jak z technologického, tak z produktového hlediska. Víceméně pojímám tuto práci jako shrnutí významu grafické karty v osobním počítači, jejího historického vývoje a budoucího směru. Současně bych chtěl práci využít při rozhodování o vhodném grafickém adaptéru v rámci výběrového řízení na několik multimediálních stanic pro grafické studio, jakož i při výběru pro pevné stanice s ohledem na cenu, výkon, spotřebu. Po zpracování této práce by mělo z jejího obsahu být jasné, co je to grafická karta, jak se vyvíjela a jak dochází k vytváření grafického výstupu z osobního počítače v dnešní době. 6

2. Historie grafické karty v osobním počítači 2.1 Pohled do historie Pojem počítačová grafika začal být popularizován příchodem osmibitových domácích počítačů a herních automatů začátkem 80. let. Grafické možnosti těchto strojů byly, z dnešního pohledu, velmi jednoduché. Již tehdy byly vymyšleny první grafické efekty, které z těchto počítačů vytvořily první dostupná multimediální zařízení. Na počítačích neustále probíhají změny typu rozhraní, kterým počítač komunikuje s uživatelem. Od prvotního rozhraní s příkazovým řádkem se přešlo k celoobrazovkovému rozhraní a následně až k rozhraní plně grafickému. Neustále ale existují oblasti, kde samotný příkazový řádek představuje, při správném užití, velmi silný nástroj pro ovládání počítače. Samozřejmě existují oblasti, kde se grafický výstup prakticky nepoužívá. Typicky se jedná o servery a specifické technologické počítače. U těchto systémů se informační výstup poskytnutý serverem předá uživatelovu počítači (klientovi) a až tyto počítače zajišťují potřebné zobrazení na monitoru nebo jiném zařízení. 2.1.1 Výstupní grafická periferie - displej Nejčastější výstupní grafickou periferií je bezesporu grafický zobrazovač (displej). Toto zařízení je v dnešní době základním vybavením každého domácího či pracovního počítače. Technologie zobrazování obrazových dat na displejích jsou různé. Mimo klasických CRT monitorů se prosadily LCD monitory. Existují však i plazmové displeje či displeje typu OLED apod. Vektorový displej byl displej, kde byl obraz generován pomocí krátkých úseček nebo geometrických tvarů (oblouků apod.). Mezi jejich přednosti patřilo jednoduché zobrazení grafů a schémat. Mezi nevýhody patřilo zejména omezení délky zobrazených vektorů, která byla dána rychlostí zhášení bodů na obrazovce. Tyto displeje jsou dnes neefektivní, neboť neumožňují zobrazovat složitější obrazce, barevné či komplikované grafiky. Předchůdci vektorových displejů byly analogové osciloskopy. Rastrové displeje v současnosti jsou používané hlavně displeje rastrové. U těchto displejů se obraz skládá z velkého množství malých barevných bodů (pixelů) uspořádaných v pravidelné mřížce (rastru). Mezi jejich přednosti patří schopnost zobrazit libovolně složitou 7

grafiku. Též tvorba grafiky v rastru není náročná. Nevýhodou může být vyšší nárok na kapacitu paměti, kde je obrazový rastr uložen. Tato paměť musí být zároveň dostatečně rychlá, aby se celý obraz mohl periodicky obnovovat. 2.2 Grafická karta v IBM PC Vývoj grafických karet v počítačích typu IBM PC je zajímavý a poměrně prudký. Při uvedení prvních počítačů typu IBM PC zřejmě nikdo nečekal, že právě tyto v nedaleké budoucnosti zastanou práci profesionálních grafických stanic. Jejich možnosti byly na dlouhou dobu poměrně skromné. Hlavní zbraní byla výpočetní síla. První počítače IBM PC oddělily operační paměť od video paměti a do značné míry tím nastavily trend do budoucnosti. První samostatnou grafickou kartu představila firma IBM v roce 1981. Jednalo se o Monochrome Display Adapter (MDA). Tato karta neměla žádný grafický výstup, takže název grafická karta je lehce nepřesný. Poskytovala pouze monochromatický textový výstup na max. 85 znaků x 25 řádků s rozlišením 9x14 pixelů pro každý znak. Tato karta pro svůj chod používala 4 KB vlastní paměti. MDA zároveň umožnila použití několika funkcí - normální text, neviditelný text, tučný, podtržený nebo blikající text. Tyto vlastnosti se daly kombinovat dohromady. Teoretické maximální rozlišení bylo 720x 350 pixelů. Karta byla určena pro komerční sféru, kde byl textový výstup dostatečný. Znaková sada byla uložena v paměti ROM, což znamenalo, že při požadavku na zobrazování textů s národními znaky (tj. skoro všechny jazyky mimo angličtiny) musela být tato paměť vyměněna za jinou s vypálenou národní znakovou sadou. Zároveň s MDA představila firma IBM kartu Colour Graphic Adapter (CGA). Tato karta byla schopna nabídnout uživatelům grafický výstup v rastru 320x200 pixelů ve čtyřech barvách, nebo v rastru 640x200 pixelů a dvou barvách (černé a bílé). Zároveň poskytovala stejný textový výstup jako MDA karty v šestnácti barvách, pouze s nižším rozlišením jednotlivých znaků (max. 8x8 pixelů na znak). Pro svůj chod karta využila 16 KB vlastní paměti. Grafická paměť měla kapacitu 16 KB, což bylo její maximum. V době uvedení karet CGA a MDA nebyl na trhu barevný monitor RGBI. IBM uvedla RGBI monitor v roce 1983. Do tohoto okamžiku museli uživatelé používat převodník a připojit počítač k barevnému televizoru. 8

V roce 1984 IBM uvádí kartu Enchanced Graphics Adapter (EGA). Tato karta nabízela maximální rozlišení 640x350 pixelů a až šestnáct různých barev. Kapacita paměti byla až 256 KB. Karta byla plně kompatibilní s kartou CGA a částečně s kartou MDA. Šířka znaků se snížila z devíti na osm pixelů. Na EGA kartě byly integrovány obvody řadiče obrazovky (CRTC Cathode Ray Tube Controller), řadiče přístupu do paměti apod. Vzhledem k tomu, že karta byla kompatibilní s MDA a CGA, byla poměrně komplikovaná a její programování nebylo v žádném případě jednoduché. Taktéž v roce 1984 přichází IBM s první kartou poskytující 2D a 3D grafický výstup. Karta se jmenovala Professional Graphics Controller (PGC) a byla určena pro práci v Computeraided design (CAD) aplikacích. Karta byla určena přímo pro osobní počítače řady IBM PC. Grafický akcelerátor nabízel rozlišení 640x480 a zobrazil až 4096 různých barev. Kromě nativního grafického režimu byla podporována i částečná emulace grafické karty CGA. Pro zobrazení nativního grafického rozlišení 640x 480 pixelů a 256 barev bylo potřeba použít speciální monitor, který musel zvládnout jiné frekvence než monitory pro karty CGA, MDA či EGA. Monitor se připojoval skrze devítipinový konektor. Pomocí speciálního konvertoru bylo možno později připojit i monitor VGA, který byl také analogový a multifrekvenční. Pro svůj chod používala PGC 320 KB paměti. Nebyla pouze grafickým akcelerátorem, ale jednalo se o celý výpočetní subsystém. Již samotné zapojení do počítače bylo zajímavé. PGC byla tvořena třemi deskami. Dvě desky byly tvořeny dlouhými ISA kartami, prostřední byla kratší a do počítače nebyla zapojena. Všechny tři desky byly propojeny kabelem, který tvořil interní sběrnici. Grafický akcelerátor dokázal provést zhruba 80 příkazů, které se týkaly práce s rastrovým obrazem, vykreslením vektorových plošných scén a hlavně práce s vektorově vykreslenou trojrozměrnou scénou. Mezi ostatní patřily např. rotace trojrozměrného modelu, nastavení zorného úhlu při 3D projekci do promítací roviny aj. V roce 1987 přichází IBM s dalším technologickým rozvojem a uvádí kartu Video Graphics Array (VGA). Tuto kartu dokonce dokázalo IBM i integrovat přímo do základních desek počítačů. Tato karta byla částečně kompatibilní s CGA a EGA kartami s tím, že nebylo možno použít původní monitory (VGA karta používala jiné synchronizační frekvence). Karta zavedla i nové grafické rozlišení 320x200 pixelů v 256 barvách (velmi využíván 9

u počítačových her) a druhý režim s rozlišením 640x480 pixelů v 16 barvách. Druhý režim se stal oblíbený v CAD systémech. Jeho velkou výhodou bylo, že tvar pixelů byl čtvercový. Velikost paměti se rovnal 250 KB. Karta pro textový režim používala rozlišení 720x400 pixelů s velikostí znaku 9x16 pixelů. Výsledkem byla dobrá čitelnost znaků a obnovovací frekvence 70 Hz. Stejný textový režim se neustále používá při startování počítače Power-On Self-test (POST), v BIOSu i pro LINUX běžící v konzolovém režimu. Prakticky všechny dnes dostupné grafické karty jsou zpětně kompatibilní s VGA kartou. Ve stejném roce představila IBM doplňkovou kartu IBM 854/A ke kartě VGA. Tato karta se stala prvním široce dostupným akcelerátorem určeným pro IBM PC, protože předchozí akcelerátory (jako PGA a jiné) byly velmi drahé a jejich užívání bylo omezeno pouze na profesionální účely. Karta IBM 8514/A se řadí spíše do skupiny grafických prostředků pro CAD aplikace, tedy aplikace na zpracování a rychlé zobrazení vektorů. Karta se do konfigurace zapojovala jako přídavná (tzn. druhá karta). Toto řešení a způsob sériového napojení karet do jednoho monitoru se jmenovalo Auxiliary Video Extension (AVE). Primární kartou byl adaptér VGA poskytující podporu základních textových a grafických režimů. Karta IBM 854/A dokázala poskytnout rastrový obraz v rozlišení 1024x768 pixelů prokládaně (interlaced) nebo v rozlišení 640x480 pixelů neprokládaně (non-interlaced). Barevná hloubka mohla být (dle velikosti paměti) 16 nebo 256 současně zobrazených barev. Kromě těchto dvou rozlišení neumožňovala karta zobrazit další grafické nebo textové režimy (tyto musela zobrazit primární grafická karta). Pro synchronizaci jednotlivých pixelů při čtení z video paměti nebo během zobrazení snímků byly použity dva krystaly s frekvencí 44,9 MHz (pro rozlišení 1024x768) a s frekvencí 25,1 MHz (pro rozlišení 640x480), jež byly plně kompatibilní s kartou VGA. Video paměť měla kapacitu 1 MB nebo 1,5 MB od velikosti paměti se odvozoval maximální počet zobrazovaných barev. 10

Obrázek č. 1 Zjednodušené schéma karty IBM 8514/A S nástupem operačních systémů s grafickým uživatelským rozhraním (GUI) se v devadesátých letech minulého století začaly objevovat tzv. grafické akcelerátory, které již byly tvořeny jediným čipem a obsahovaly funkce pro urychlení často používaných grafických operací. Mezi nejznámější grafické akcelerátory první poloviny devadesátých let patří např. čipy firmy Cirrus Logic (CL-GD 542x a jiné) nebo později vyspělejší čipy firem S3, popř. Matrox. Grafická karta se během těchto let proměnila ve druhou nejdůležitější komponentu moderního počítače. Z pasivních grafických čipů se vyvinuly sofistikované grafické jednotky označované jako Graphics Processing Unit (GPU) nebo také Visual Processing Unit (VPU), které svým výkonem mnohdy předčí i moderní procesory. Hlavní hybnou silou vývoje výkonných grafických akcelerátorů ovšem nebyly profesionální CAD či vizualizační aplikace (pro ty existovaly specializované akcelerátory a platformy již v polovině osmdesátých let), byly to bezpochyby počítačové hry, které rozhýbaly vývoj 3D grafiky na PC. Pravdou ovšem zůstává, že technologie a know-how pro vývoj prvních herních 3D akcelerátorů představených v letech 1995-98 pocházelo od firem, které se specializovaly právě na profesionální akcelerátory a platformy; vůbec první 3D karta určená pro hráče, 3D Blaster VLB, pracovala s čipem 3D Labs GameGlint a firmu nvidia, která uvedla svůj první čip NV1 na trh v roce 1996, založili bývalí zaměstnanci SGI. Je tak trochu ironií osudu, že toto know-how se po několika letech vrátilo oklikou zpět do oblasti profesionální grafiky a 3D vizualizace. 11

2.3 Trh grafických karet Zatímco v historii existovalo značné množství výrobců grafických karet, kteří vyvíjeli čipy výhradně pro vlastní produkci, dnes si tuto filozofii udrželo pouze několik menších firem. Trhu s grafickými akcelerátory tak nevládnou jednotliví výrobci grafických karet jako takových, ale výrobci jednotlivých čipů. V současné době se jedná prakticky o duopol firem ATi a nvidia. Další výrobci se tak specializují buď na cenově výhodná řešení, nebo se věnují specifické části trhu, jako jsou profesionální uživatelé, kteří vyžadují špičkové 2D technologie či podporu více než dvou monitorů. Značná část trhu připadá pochopitelně na integrovaná řešení dodávaná z větší části firmou Intel, z menší části pak firmou VIA či SiS. Svá integrovaná řešení 3D grafiky využívající Unified Memory Architecture (UMA) nabízejí také ATi i nvidia. Specifickou oblastí jsou speciální grafické moduly pro přenosné počítače, i zde kontrolují trh ATi a nvidia. Grafické karty postavené na GPU stejného typu (například GeForce GTX 260 či Radeon HD4870) obvykle nabízejí prakticky stejný výkon, neboť jsou postaveny na shodném designu a obdobných komponentech. Grafické čipy pro přenosné počítače tvoří prakticky samostatný trh. Zatímco dříve byla drtivá většina displejů v noteboocích obsluhována grafickými obvody integrovanými v mobilním chipsetu, dnes jsou přenosné počítače poháněny speciálními verzemi GPU. Ty jsou obvykle odvozeny od stolních verzí, navíc ale disponují funkcemi pro šetření energií a často mají integrovánu vlastní paměť přímo v GPU. Běžné přitom je, že mobilní grafické akcelerátory jsou lehce pozadu za technologiemi dostupnými pro stolní PC. Jak vlastně vypadá současná grafická karta? Co umí, čím se vyznačuje a jaké parametry musí mít? Společným jmenovatelem grafických karet, bez ohledu na značku a typ jejich GPU, je rozhraní DirectX. Právě plná kompatibilita s jistou verzí DirectX definuje jednotlivé generace grafických karet. V současné době tak existují tři generace - karty plně kompatibilní s DirectX 8, DirectX 9 a DirectX 10. DirectX 8: Přichází s dvěma novými funkcemi: Pixel Shader a Vertex Shader. 3D grafické objekty jsou tvořeny pomocí stovek, nebo dokonce tisíců polygonů (což jsou trojúhelníky nebo čtverce). Přes tyto polygony jsou použity textury nebo barvy, které vytvoří 3D objekt. S Verte Shadery je možno měnit vlastnosti každého vrcholu u každého polygonu. S Pixel Shadery je zase možno měnit vlastnosti jednotlivých pixelů u každého polygonu. Před těmito funkcemi nebylo možno tyto vlastnosti měnit, resp. bylo možno měnit pouze vlastnosti 12

celých polygonů. Díky těmto funkcím se stal obraz realističtější a každý bod každého polygonu je plně programovatelný. Bylo možno použít až 12 instrukcí najednou. Grafické karty založené na tomto modelu jsou např.: GeForce 3, GeForce 4 Ti a Radeon 8500, Radeon 9000, Radeon 9100, Radeon 9200 a Radeon 9250. DirectX 9: Tato verze přináší Shader 2.0, resp. ve verzi DirectX 9.0c je podporován Shader 3.0. Je možno použít až 96 instrukcí najednou (v 2.0) a 65535 instrukcí (v 3.0). Tímto se dosáhlo mnohem větší kvality 3D objektu a zvýšil výkon. Grafické karty založené na těchto verzích jsou: GeForce FX, GeForce 6 a 7 a Radeony řad X300, X800 a X1000. DirectX 10: S touto verzí přichází Shader 4.0, který zásadním způsobem mění architekturu Graphic procesor unit (GPU). V předchozích verzích byly odděleny výpočetní jednotky Vertex a Pixel shaderu. Pokud výpočetní jednotky jednoho typu byly zahlceny, musela instrukce čekat na jejich uvolnění, tím docházelo k prodlevám při výpočtech. U GPU podporujících DirectX 10 jsou výpočetní jednotky všeobecné, schopné řešit jakýkoliv potřebný výpočet. U těchto karet je instrukce pozdržena pouze tehdy, je-li zaneprázdněn procesor GPU. Grafické karty založené na této verzi jsou např.: GeForce série 8, 9 a 200 a Radeony série HD2000. 2.4 Chronologický vývoj Rok 1984: První grafická karta s podporou 2D a 3D funkcí byla uvedená firmou IBM. Jedná se o kartu PGC (obr. 2). Karta vyžadovala dva dlouhé ISA sloty a měla 320 KB paměti. Obrázek č. 2 PGC od IBM 1 Rok 1987: Firma IBM uvádí přídavný grafický akcelerátor IBM 8514/A (obr. 3). Karta poskytovala max. rozlišení 1024x768 pixelů s pamětí velikosti až 1,5 MB. 1 Obrázek č. 1 až 17 zdroj www.tomshardware.co.uk 13

Obrázek č. 3 IBM 8541/A Rok 1995: První 3D akcelerátor určený pro hráče uvádí na trh firma Creative. 3D Blaster VLB (obr. 4) je postaven na čipu GameGlint firmy 3D Labs a vyžaduje VLB slot. Jedná se o přídavnou kartu a funguje s cca půltuctem her. Obrázek č. 4 3D Blaster VLB Rok 1996: V oblasti poloprofesionální grafiky vládne Matrox Millenium II obsahující některé 3D funkce. nvidia uvádí čip NV1 (obr. 5), který kombinoval funkce 2D, 3D a zvuku na jedné kartě. S3 uvádí čip Virge s podporou 3D typického zástupce tzv. "nulté" generace. Výkonem a funkcemi ale vítězí novinky Voodoo Graphics firmy 3dfx. Obrázek č. 5 nvidia NV1 Rok 1997: Trhu vládne Voodoo Graphics (obr. 6) spolu s PowerVR, objevují se ale karty první generace, které v sobě kombinují 2D a 3D například nvidia Riva 128. 14

Obrázek č. 6 Voodoo Graphics Rok 1998: 3dfx uvádí druhou generaci přídavné 3D karty, Voodoo2 (obr. 7), ATi představuje Rage Pro, jeden z prvních čipů navržených pro AGP rozhraní. nvidia představuje na sklonku roku TNT kartu, která kombinuje 2D a 3D s pamětí 16 MB. Obrázek č. 7 Voodoo2 1000 PCI Rok 1999: Konkurence sílí a nvidia přešla s uvedením TNT2 na šestiměsíční vývojový cyklus, 3Dfx uvádí svou poslední úspěšnou kartu Voodoo3, ATi odpovídá čipem Rage 128 (obr. 8), který na konkurenci ztrácí v kvalitě. Matrox uvádí na trh karty s čipem G400, tedy první adaptéry s podporou dvou monitorů. Na sklonku roku uvádí nvidia čip třetí generace - GeForce 256 a označuje jej termínem Graphics Processing Unit (GPU), analogicky k CPU. Obrázek č. 8 ATi Rage 128 Pro Rok 2000: nvidia k velkému překvapení uvádí GeForce2 GTS (obr. 6), která dokáže spočítat více než miliardu texelů za vteřinu. Novinky jako ATi Radeon, 3dfx Voodoo5 a S3 15

Savage 2000 tak nemají šance na výrazný úspěch. Transformation & Lighting (T&L) se prosazuje jako budoucí standard. Na konci roku přichází GeForce2 Ultra. Obrázek č. 9 GeForce2 GTS Rok 2001: Jako první představila novou kartu firma nvidia, tentokráte GeForce3 obsahující obvody pixel a vertex shader, a tudíž i plnou podporu rozhraní DirectX 8 (57 mil. tranzistorů). nvidia odkupuje aktiva 3dfx a S3 se stává součástí společnosti VIA. Jediným skutečným konkurentem firmy nvidia tak zůstává společnost ATi, která ve druhé polovině roku uvádí vlastní DX 8 kartu Radeon 8500 (60 mil. tranzistorů), (obr. 10). Obrázek č. 10 ATi Radeon 8500 Rok 2002: Jako první uvádí v únoru nové čipy nvidia. GeForce4 Ti. SiS uvádí řadu grafických čipů Xabre, které mají konkurovat nejlevnějším kartám ATi a nvidia. V létě pak ATi uvádí kartu Radeon 9700 Pro (obr. 11). Ta nabízela jak velké množství nových funkcí, 256bitové paměti, tak značný nárůst rychlosti. Tento čip se stal historicky prvním, který plně podporoval DirectX 9.0 včetně výpočtů s plovoucí řádovou čárkou, které umožňují až filmovou kvalitu výstupu. 16

Obrázek č. 11 Hercules 3D Prophet 9700 Pro Rok 2003: První čipy NV30 pojmenované GeForce FX 5800 (obr. 12) a GeForce 5800 Ultra od firmy nvidia. ATi uvádí grafické karty Radeony 9800 PRO a následují je karty Radeon 9600 s čipem RV350. Obrázek č. 12 nvidia GeForce FX Rok 2004: V tomto roce je uvedena nová sběrnice pro připojení grafické karty, rozhraní s názvem PCI Express (PCI-E). ATi uvádí kartu řady X800 (obr. 13), (160 mil. tranzistorů) respektive X700 a X300 nativně pro nové rozhraní PCI-E. nvidia odpovídá uvedením GeForce 6600 GT (222 mil. tranzistorů). Obě karty mají čipy vyrobeny 130 nm technologií. Obrázek č. 13 ATi Radeon X800 17

Rok 2005: Oba hlavní hráči se opět předháněli - kdo dál, lépe a rychleji. nvidia jako první uvedla kartu GeForce 7800 GTX (obr. 14) vyrobenou technologií 110nm a s 302 mil. tranzistorů v GPU. ATi odpověděla kartou Radeon X1800XL s technologií 90nm a s 320 mil. tranzistory. Během cca 12 měsíců tak došlo k navýšení množství tranzistorů v GPU o cca 100 milionů. Obrázek č. 14 GeForce 7800 GTX Rok 2006: ATi se ubírá cestou mírné evoluce modelem Radeon X1900 (při 384 mil. tranzistorech a výrobním procesem 90nm). Oproti tomu nvidia uvádí novou kartu GeForce 8800 GTX (obr. 15) se 681 mil. tranzistory při výrobním procesu 90nm. Obrázek č. 15 GeForce 8800 GTX Rok 2007: V tomto roce se situace obrací. nvidia zůstává u úspěšné karty 8800 GTX. Oproti tomu ATi vyrovnává uvedením karty Radeon HD 3870 (obr. 16) s 666 mil. tranzistory s výrobním procesem 55nm. 18

Obrázek č. 16 ATi Radeon HD 3870 Rok 2008: ATi vydává velmi úspěšnou kartu Radeon HD 4870 (obr. 17), (956 mil. tranzistorů při 55nm výrobním procesu). Oproti tomu nvidia přišla s kartou GeForce GTX 280 (výrobní proces 65nm a 1400 mil. tranzistorů). Pro představu nejvýkonnější čtyř-jádrové procesory AMD (AMD Phenom II X4 920 Quad-Core) a Intel (Core i7-940 Quad-Core) obsahují pouze 758 mil. tranzistorů, resp. 731 mil. tranzistorů2. Oproti roku 2001 se počet tranzistorů v GPU u ATi zvedl 16x (60 mil oproti 956 mil) a nvidia 24,5x (57 mil. oproti 400 mil.). Obrázek č. 17 ATi Radeon HD 4870 2 www.zive.cz 19

3. Úloha grafické karty a její význam v osobním počítači 3.1 Definice grafické karty? Grafická karta je specifický typ hardwaru, který se stará o převod signálu z počítače do takové formy, aby tento bylo možno vidět na zobrazovacím zařízení. Grafická karta úzce spolupracuje s procesorem a provádí 2D a 3D výpočty. Vzhledem k tomu, že má svůj vlastní procesor podporující grafické výpočty na hardwarové úrovni, dokáže zpracovat grafické výpočty mnohem rychleji než CPU. Grafické karty potřebují mít i vlastní prostor pro ukládání výpočtů, vlastní paměť. Karty můžeme rozdělit na samostatné grafické karty a na integrované se sdílenou pamětí. Integrované karty jsou součástí základní desky, jsou levnější a s nižším výkonem. Samostatné grafické karty se připojují k počítači prostřednictvím slotu. Tyto karty se mohou propojit dohromady, a tím poskytnut vysoký výpočetní výkon. Grafické karty se vždy liší typy GPU, velikostí vnitřní paměti, sběrnicí, pro kterou je karta určena, a v neposlední řadě i výrobcem 3. 3.1.1 Integrované grafické karty Integrované grafické karty jsou grafické karty umístěné přímo v základní desce. Tyto karty využívají pro svůj chod část paměti RAM. Počítače s integrovanou grafickou kartou představují převážnou většinou všech dodaných PC. Toto řešení je levnější na implementaci než samostatné grafické karty, zároveň je ale méně výkonné. V minulosti tato řešení nebyla vhodná pro 3D grafiku nebo pro náročné 2D aplikace. Nicméně v dnešní době jsou i tyto karty schopné zvládnout náročnější 2D aplikace a jednodušší 3D grafiku. Každopádně většina integrovaných karet stále neumožňuje high-end 3D grafiku. Největším omezením je nízká rychlost pamětí typu RAM použitých v základních deskách. Rychlost RAM se pohybuje kolem 12 GB/s, zatímco u samostatných karet se jedná o rychlost až 100 GB/s. 3 www.levnapc.cz 20

3.1.2 Samostatné grafické karty Samostatné grafické karty se k základní desce připojují pomocí rozšiřujícího slotu PCI Express (PCIe) nebo Accelerated Graphic Port (AGP). Mohou tak být jednoduše nahrazeny novou kartou za podmínky, že základní deska tuto kartu podporuje. Samostatná grafická karta nemusí být nezbytně odnímatelná nebo se standardním rozhraním. Výraz samostatná poukazuje na fakt, že karta má svou vlastní RAM. Samostatné karty pro notebooky jsou většinou připojeny nestandardním rozhraním a často skrze unikátní slot. Tyto sloty jsou stále považovány za PCIe nebo AGP pouze díky logice rozhraní, i když nejsou fyzicky zaměnitelné. V historii grafických karet se používalo několik typů rozhraní pro připojení karty do výpočetního systému (PC): Sběrnice ISA: (obr. 18) Jedná se o nejstarší a také nejjednodušší sběrnici používanou pro počítače typu IBM PC. Název vychází z anglického Industry Standard Architecture. Sběrnice byla navržena firmou IBM v roce 1980 a v roce 1981 byla poprvé použita u počítače typu IBM PC. Z počátku byla sběrnice s osmibitovým rozhraním a 62 pinovým konektorem, od roku 1984 se začala používat s rozhraním šestnáctibitovým a konektorem s 98 piny. Tato sběrnice se v IBM označovala jako AT Bus. Šestnáctibitová verze se ve výpočetní technice používala velmi dlouho hlavně díky své konstrukční jednoduchosti. Obrázek č. 18 Konektor sběrnice ISA 4 4 http://images.absoluteastronomy.com/images/encyclopediaimages/i/is/isa_bus_pins.png 21

Sběrnice VESA Local Bus (VLB): (obr. 19) Byla navržena sdružením Video Electronics Standards Association (VESA) jako doplněk k pomalejší sběrnici ISA, zatímco ISA byla určena pro libovolné zařízení. VESA Local Bus měla být využívána zejména pro grafické karty, řadiče disků a síťové karty. Používala se u počítačů řady 486. Sběrnice sdílela datovou a adresovou část s CPU počítače, což mělo mimo jiné za následek omezení počtu připojených zařízení na tři. Větší počet by příliš proudově zatížil procesorovou sběrnici. Obrázek č. 19 Konektor sběrnice VESA Local Bus 5 Sběrnice PCI: Zkratka vznikla ze slovního spojení Peripheral Component Interface. V současnosti se jedná o nejpoužívanější sběrnici a to nejenom u počítačů typu IBM PC, tak i v počítačích jiných výrobců. Sběrnice byla představena firmou Intel v roce 1992 a od této doby se stala průmyslovým standardem. Její úspěch je založen na nevyhovujících parametrech předchozích sběrnic. ISA byla velmi pomalá a VESA Local Bus byla pouze lokální sběrnicí a orientovala se na procesory řady 486. Hlavní předností sběrnice PCI je podpora Plug and Play dynamické detekce a konfigurace zařízení po zapnutí počítače. Sběrnice existuje v několika různých variantách, které se liší taktovací frekvencí, velikostí napájecího napětí a šířkou datové sběrnice. PCI sběrnice se velmi často používá pro připojení grafických karet (prakticky již od roku 1992). Nejznámějším rozšířením PCI sběrnice je sběrnice označená PCI Express (PCI-E). Při jejím návrhu bylo myšleno na nedostatky předchozích typů sběrnic. Do jednoho systému se povedlo sjednotit připojování různých typů rozšiřujících karet. PCI-E je navržena pro použití od notebooků až po serverové systémy a to nejen pro připojení grafických akcelerátorů, ale i pro nativní propojení komponent na základní desce. Dále může sloužit i jako rozhraní pro karty do notebooků 5 http://pics.computerbase.de/lexikon/118726/300px-vlb_pins.png 22

(PCI-E podporuje i karty Express Card). Na rozdíl od předchozích sběrnic PCI-E nekomunikuje paralelně, ale sériově, což má výhodu hlavně při zvyšování rychlosti - nedochází k přeslechům mezi kanály. Přenosová rychlost této sběrnice se pohybuje v řádech až desítek GB/s. Zvyšování rychlosti se u této sběrnice provádí buď zvýšením frekvence přenášení dat, anebo přidáváním dalších párů signálů. Takto se může základní rychlost sběrnice zvyšovat v násobcích 1x, 2x, 4x, 8x, 12x, 16x. Obrázek č. 20 Sběrnice PCI (vlevo) a sběrnice PCI - Express 6 Port AGP: Zaujímá v hierarchii sběrnic zvláštní místo. Představen firmou Intel v roce 1997. Nejedná se o sběrnici v pravém slova smyslu. K AGP lze připojit pouze jedno zařízení. AGP neobsahuje tzv. arbitrážní obvod, který je typický pro všechny ostatní sběrnice. AGP zkratka je odvozena od Advanced Graphics Port. Z názvu je patrné, že port je určen pro připojení grafických adaptérů, zejména grafických akcelerátorů. Hlavním důvodem zavedení AGP byl požadavek na rychlý přenos grafických dat pro 3D scény. Port AGP vznikl úpravou sběrnice PCI. Respektive odstraněním již zmíněného arbitrážního obvodu a oddělením datové a adresní cesty. Port AGP využívá tzv. sideband addressing kdy je oddělena 8bitová sběrnice pro přenos adresních signálů, čímž umožňuje plně využít hlavní sběrnici pro přenos dat. AGP podporuje dvě frekvence 33 MHz (PCI) a 66 MHz. Protokol pro port AGP má také specifické režimy přenosu dat, které nejsou u jiných portů či sběrnic známé. Jedná se např. o zvláštní režim přenosu textur, kdy rastrová data textury mají příznak pouze pro čtení. Tímto se zaručí, že textury nejsou ukládány do vyrovnávací paměti a díky tomu 6 http://upload.wikimedia.org/wikipedia/commons/6/6f/pci_keying.png 23

dochází ke zvýšení využití vyrovnávací paměti potřebnými daty až o desítky procent. Dalším režimem je režim Direct Memory Access (DMA) - kdy jsou veškerá rastrová data textur uložena v paměti akcelerátoru. Kopírování nových dat do paměti akcelerátoru probíhá ve velkých blocích a zatěžuje systém. Zátěž je však pouze občasná a krátkodobá. Režim DMA je výhodný pokud je na grafickém akcelerátoru paměť s dostatečnou kapacitou. Nelze opomenout ani režim Execute, kdy je paměť akcelerátoru rovnocenná s pamětí systému. Takže při texturování se nemusí na grafický akcelerátor přenést celá textura, ale je možno přenést jen její malou část, která je v daný okamžik potřeba. Obrázek č. 21 Konektory pro port AGP 7 3.2 Součásti grafické karty Každá grafická karta má několik základních součástí (obr. 22). GPU: Nejdůležitější součástí je Graphic processing unit čip, který obsahuje velké množství tranzistorů (v dnešní době v řádech miliard). Vypočítává data, která obdrží od procesoru. Čip se stará o vytváření grafiky a výstup je posílán na zobrazovací zařízení. Paměť: Zde se ukládají informace nutné pro grafické výpočty. Je-li karta integrovaná na základní desce, používá se k těmto účelům část operační paměti počítače. Samostatné karty používají paměti typu GDDR nebo DDR. 7 http://www.hardwaresecrets.com/imageview.php?image=856 24

Random Access Memory Digital-to-Analog Converter (RAMDAC): Jedná se o kombinaci tří DAC (Digital-to-Analog) převodníků (pro každou barvu RGB zvlášť). Slouží k převodu digitálního signálu na signál analogový. Který jsou schopny zobrazit CRT monitory. LCD monitory dokáží pracovat přímo s digitálním signálem a nehrozí tím ztráta kvality signálu při konverzi. Výstupy z karty: Jedná se o konektory, díky kterým lze z karty vyvést zpracovaný signál. Může se jednat o VGA výstup (analogový výstup pro analogová zobrazovací zařízení), DVI výstup (digitální výstup pro digitální zobrazovací zařízení) nebo o HDMI (digitální výstup pro přenos obrazového a zvukového signálu). Konektor: Slouží pro připojení grafické karty k systémové sběrnici počítače (pokud není GPU integrován v základní desce). Obrázek č. 22 Schéma grafické karty 8 8 www.markonet.cz/pages/vyuka/principy-pocitacu/47grafika/grafika.jpg 25

4. Popis fungování grafické karty V následující kapitole se zaměříme na princip práce grafické karty. Postupně projdeme některé funkce, které většina grafických karet zvládá a potřebuje pro vytvoření výsledného obrazu. Vzhledem k velkému rozsahu nebudou zdaleka popsány všechny realizované možnosti akcelerace počítačové grafiky. Pro začátek si řekněme, kde má smysl počítačovou grafiku akcelerovat: Nutnost zobrazení grafické informace v časově důležitých aplikacích. Mezi takové aplikace patří např. počítačové hry, virtuální reality (aplikace pro automobilový průmysl, různé simulátory apod.). Někdy se také označují jako interaktivní grafika. Kladou velký důraz na rychlé změny ve scéně při interaktivním vstupu uživatele. Základním ukazatelem zde bývá množství zobrazených snímků za sekundu - frames per second (fps). Pokud se počet snímků sníží pod určitou úroveň (cca 15 fps), ztrácí uživatel dojem plynulosti. Grafické akcelerátory pro interaktivní grafiku jsou v dnešní době nejvíce používané. Tvorba fotorealistické grafiky. Ta se v dnešní nejvíce využívá ve filmovém průmyslu (reklama, filmy apod.). Zde se mohou použít metody stejné jako v interaktivní grafice nebo metody pracující s globálním osvětlováním scény. Tyto metody jsou ovšem značně náročné na výkon procesoru. Akcelerace lze dosáhnout například paralelním zpracováním animace, nebo se používají specializované grafické akcelerátory. Tyto se však svým uspořádáním a vlastnostmi diametrálně odlišují od akcelerátorů pro interaktivní grafiku. Poslední oblastí je zrychlování méně častých postupů pro vykreslování prostorových scén. Může se jednat například o postupy zobrazování voxelů, využívání částicových systémů, anebo plošných elementů (surfelů). Tyto metody souvisejí s reprezentací těles v prostorových scénách. Jednou z prvních oblastí, kterou bylo potřeba zjednodušit a zrychlit, bylo vykreslování kurzoru myši. Na první pohled operace nevýznamná, vždyť kurzor má typicky 20x20 pixelů. Opak je pravdou. Při každém vykreslení kurzoru je potřeba testovat, zda vykreslený obrazec nebo dialog nezasahuje do oblasti kurzoru. Pokud kolize nastala, bylo potřeba obrazec nejprve neviditelně vykreslit do paměti počítače a poté provést jeho kombinaci s kurzorem 26

myši. Výsledný obraz okna nebo dialogu bylo následně možno vykreslit na obrazovku. Také pohyb kurzoru musel být řešen. Objem dat, který byl zbytečně přenášen, se při celodenní práci s Graphic User Interface (GUI) mohl pohybovat až do gigabitů. HW řešení se začalo objevovat již během první poloviny devadesátých let. Rastrový obraz kurzoru byl kombinován s rastrem pozadí až během vykreslování. Vlastní pozadí nebylo kurzorem nijak měněno. Při práci s animacemi je často potřeba zobrazovat sekvence snímků s vysokým počtem zobrazených snímků za sekundu. Vzhledem k vysokému počtu pixelů, ze kterých je složen video snímek a velkému počtu barev, je potřeba do grafického akcelerátoru přenášet velká množství dat. Nutná rychlost přenosu dat se pohybuje v řádech desítek až stovek megabitů za sekundu. Pokud by měl veškerý přenos řídit samotný procesor, došlo by k velkému zatížení celého počítače (hlavně z důvodu častého přepisu vyrovnávací paměti procesoru). Pokud však grafický akcelerátor převezme řízení přenosu dat, klesne zatížení procesoru až o cca 50 %. Grafický akcelerátor má také schopnost zvětšovat, zmenšovat nebo zrcadlit zobrazované video (někdy dokonce neproporcionálně). Zde se musí používat různé metody interpolace a filtrace, aby nevznikly nežádoucí vizuální artefakty. Tyto operace se provádí přímo uvnitř grafického akcelerátoru. Pokud by výpočet prováděl procesor, byly by velmi pomalé, protože by docházelo k dvojímu přenosu dat přes sběrnici a vyrovnávací paměť. Grafické akcelerátory se neustále zlepšují a zrychlují. Z toho důvodu je čím dál více grafických algoritmů uloženo přímo v jejich čipech (GPU). Toto je důležité hlavně v případě, že se kromě samotného zobrazování provádí i jiné výpočty, např. výpočty trajektorií, kolize pohybujících se těles anebo fyzikální simulace. Tehdy je vhodné ponechat co nejvíce výkonu procesoru pro výpočet simulace a ostatní grafické algoritmy či jejich části provádět v procesoru grafického akcelerátoru (GPU). Během doby se tak stále více výpočetních algoritmů, souvisejících s výpočtem obrazu, přesouvá z CPU do procesoru grafického akcelerátoru (obr. 24). 27

Obrázek č. 23 Vývoj zpracovávání algoritmů v GPU 4.1 Podpora vykreslování základních 3D objektů Mezi nejčastěji používané akcelerátory patří takové, které zvládají rychle vykreslit prostorová tělesa pomocí hraniční interpretace. To znamená, že dokáží velice rychle zobrazit vyplněné trojúhelníky s korektním řešením jejich vzájemného překryvu podle vzdálenosti od pozorovatele. Tato operace musela být pro reálné užití značně rozšířena. Každý trojúhelník totiž může být osvětlen jedním nebo více světelnými zdroji, anebo pokryt texturou, případně obojím. Povrch může být zadán polygony s větším počtem vrcholů, takže může být potřeba provádět převod (tesselaci) obecných polygonů na trojúhelníky. Dále je žádoucí provádět při vykreslování obrazu i operace s vytvářenými objekty, např. postupné skrývání v mlze (fog), bilineární nebo trilineární filtrace textur, vyhlazování hran (antialiasing) viz obr. 24. 28

Obrázek č. 24 Princip fungování antialiasingu 9 4.2 Pokročilé metody zobrazování textur Grafické akcelerátory vykreslují povrch těles složených z polygonů (obr. 25). Během vykreslování mohou použít různé vizuální efekty (textury). Obrázek č. 25 Příklady polygonů Nejzákladnější grafické systémy umožnily zobrazit plošné trojúhelníky. Tyto mohly být vyplněny konstantní barvou, nebo barevným přechodem. Výpočet barvy v plošce nebo jednotlivých vrcholů bylo nutné provádět v procesoru počítače. Tyto grafické karty potřebovaly malou video paměť. Tato paměť se využívala pro barevný buffer (colour buffer) a paměť hloubky barev (depth buffer), texturování nebylo podporováno. Tyto akcelerátory se 9 http://twuid.pbwiki.com/f/anti-aliasing.png a http://upload.wikimedia.org/wikipedia/commons/a/ae/antialiasing.jpg 29

proto používaly pro zobrazování trojrozměrných modelů v CAD systémech. Na počítačích typu IBM PC nebyly příliš rozšířeny. Pokročilejší akcelerátory přidaly možnost pokrýt zobrazené trojúhelníky texturami, tzn. barevnými rastrovými obrázky. Textury bylo možno kombinovat s původní barvou trojúhelníku. Tyto akcelerátory již měly vyšší požadavky na video paměť, která se používala i k uložení textur. Mezi typické představitele, které obsahovaly Texture Memory Unit (TMU), patřily karty 3Dfx Voodoo Graphics 1. Jako další krok bylo potřeba co nejvíce urychlit vykreslování. Toho mohlo být dosaženo zvýšením taktu v GPU, rozšířením datové sběrnice v akcelerátoru nebo vykreslováním více pixelů najednou či počítat a kombinovat barvy z více textur. Mezi představitele patřila např. karta ATi RAGE 128. Tato karta umožnila vykreslit dva pixely v jednom taktu nebo jeden pixel s kombinací dvou textur multitexturování. Následně již akcelerátory aplikovaly pokročilé grafické algoritmy, např. podporovaly Transform and Lighting (T&L), (tuto funkci si přiblížíme později), skrývání objektů v mlze, antialiasing a v neposlední řadě podporu display listů, které umožnily do paměti akcelerátoru seskupit velké množství dat a tato potom vykreslit pomocí jednoduchého příkazu. Mezi představitele patřila karta nvidia GeForce 256. Dalším krokem bylo zabudování podpory pro zobrazování těles v hraniční reprezentaci s využitím osvětlovacích modelů. Přidaly se metody komprimace a dekomprimace textur, trojrozměrné textury, pokročilý antialiasing, osvětlování na úrovni pixelů, výpočet stínů, podpora trojrozměrných textur a jejich osvětlování na úrovni pixelů tzv. bump mapping (obr. 25) a mapování prostředí. Začala být také podporována funkce částečné programové změny při zpracování jednotlivých vrcholů a fragmentů. Jedná se tedy o programovatelné jednotky, s jejíž pomocí lze přeprogramovat některé části vykreslovacího řetězce. Nazývají se Vertex shader a Pixel shader. 30

Obrázek č. 26 Příklad Bump mappingu 10 4.2.1 Transform & Lighting Transform: Provádí výpočet lineárních transformací bodů a vektorů. Dalším úkolem je odstraňování neviditelných nebo odvrácených polygonů před jejich vykreslením. V prvním kroku je zapotřebí transformovat polygony do souřadnic odpovídajících pozici a orientaci pozorovatele. Následně je možné rozhodnout, zda je polygon pro pozorovatele viditelný či nikoliv. Pokud je polygon pro pozorovatele neviditelný, je možno ho odstranit. Dále se uskuteční transformace ze souřadnic pozorovatele do souřadnic, které odpovídají viditelné ploše monitoru. Po provedení se mohou odstranit ty části, které nejsou viditelné. Úkolem Transform je vynásobení souřadnic každého vrcholu pohledovou transformační maticí, odebrání neviditelných částí, následně vynásobení maticí projekční, homogenizace souřadnic a ořez ploch, které se nacházejí mimo oblast záběru. Tyto operace nejsou složité na realizaci, hlavně díky možnosti proudového zpracování dat a grafickým pipeline - což je základem vysoké rychlosti grafických akcelerátorů. Tyto výpočty by se daly provádět pomocí procesoru počítače. Vzhledem k množství vrcholů u trojrozměrných scén by se procesor značně zatížil, a tím by se snížila rychlost vykreslení. Proto se tyto výpočty realizují přímo v grafickém akcelerátoru. 10 www.mayamax3d.net/pict/slovnik/bumpmapping.jpg 31

Lighting: je jednotka pro výpočet osvětlení jednotlivých polygonů. Výpočty se dle požadované kvality zobrazení provádějí buď pro každý vrchol polygonu, nebo pro každý vykreslovaný pixel. Druhá možnost je náročnější na výpočetní výkon, ale poskytuje lepší vizuální výsledek. Pro výpočet osvětlení se používá empirický Phongův osvětlovací model 11, který je relativně jednoduchý a rychlý pro výpočet. Zároveň poskytuje poměrně dobré výsledky. Teoreticky by bylo možné použít i jiné, přesnější modely, ty se ale nehodí pro svoji vysokou početní náročnost. Pro každý polygon, který má být osvětlen je také nutné zadat normálu. Ta může být konstantní pro celou plochu polygonu, nebo je jiná pro každý jeho vrchol. Pokud je normála konstantní, je osvětlení pro polygon vypočteno pouze jednou a polygon je pokryt konstantní barvou. V případě normály pro každý vrchol se i osvětlení počítá zvlášť a polygon je pokryt barevným přechodem. Samotná realizace výpočtu osvětlení zahrnuje hlavně výpočty skalárních součinů vektorů, normalizaci a výpočet exponentu. Realizace je tedy složitější než v případě Transform. Některé grafické akcelerátory měly tuto jednotku redukovanou a některé výpočty se prováděly na procesoru počítače. 4.2.2 Pixel a Vertex shader Pod jménem shadery se v počítačové grafice skrývají programy, které se vykonávají přímo v GPU grafického akcelerátoru a které mají dopad na základní vykreslovací algoritmy. Skrze shadery lze ovlivnit způsob vykreslování pixelů, geometrii vykreslovaných ploch, měnit textury, výpočty osvětlení těles ve výsledném obrazu. Modifikací textur lze vytvářet textury nezávislé na rozlišení výsledné scény apod. Shadery se zapisují do renderovacích programů pomocí programovacího jazyka, který může obsahovat například celá i desetinná čísla, vektory, matice, barvy atd. Shadery slouží k modifikaci výpočtů ve vykreslovacím řetězci. Úlohou vertex shaderu je modifikace orientace vrcholů a poloh bodových světel. Pixel shader má za úkol modifikovat texely čtené z textur a zapisovaných do bufferu. 11 www.root.cz/clanky/opengl-19-phonguv-osvetlovaci-model/ 32

Vertex shader: Je zpracováván v jednotce umístěné přímo v procesoru grafického akcelerátoru (GPU). Skrze tuto jednotku je možno přeprogramovat transformační řetězec (pipeline). Všechny geometrické údaje o vrcholech vykreslovaných polygonů procházejí před rasterizací touto pipeline. Kromě těchto údajů se v pipeline zpracovávají i jiné vektorové informace jako jsou pozice, směr a orientace světel ve scéně a také koordináty v textuře. Tyto mohou být specifikovány zvlášť pro každý vykreslovaný vrchol. Obrázek č. 27 Vertex jednotka v kartě nvidia GeForce 3 12 Z obrázku je možné zjistit, že Vertex shader disponuje nejen daty vstupními (Vertex input), ale i informacemi, které má k dispozici naprogramovaná transformační jednotka, proto je možné využívat zadané transformační matice, parametry pro osvětlení aj. Mezi výpočty a ostatní informace si jednotka může ukládat informace do registrů (Registers), které pracují na podobném principu, jako registry v CPU. Pixel shader: Nachází se v samostatné programovatelné jednotce, která je také umístěna v procesoru grafického akcelerátoru. Skrze Pixel shader lze programově měnit operace provedené nad vykreslovanými fragmenty. K těmto operacím patří bump mapping, modulace textur apod. Mezi pokročilé operace se dají zařadit efekty na pixelové úrovni (neobsažené v grafickém akcelerátoru), různé filtry (pro rozmazání vykreslovaných 12 http://img.tomshardware.com/us/2001/02/27/high/vertexshader0.gif 33

fragmentů apod.) aj. Pixel shader se také dá využít při vytváření složitějších efektů, jako jsou záblesky. Obrázek č. 28 Pixel shader jednotka v nvidia GeForce 3 13 Pixel shader se vstupními daty zachází podobně jako Vertex shader. K dispozici má všechny informace, které obsahuje neprogramovatelná rasterizační jednotka. Výstupem musí být vždy daný fragment, zejména jeho výsledná barva. Unified shader: Obě specializované shader jednotky mají nezanedbatelný vliv na vykreslovaný rastrový obraz, na jeho kvalitu a také na rychlost vykreslování. Pokud je vykreslovaný obraz náročný na geometrické výpočty (Vertex shader), pak je Pixel shader nevyužit a čeká na data nebo naopak. Toto omezení bylo odstraněno tzv. unifikovaným shaderem Unified shader unit. Jedná se o jednotky, které umí pracovat jak s Vertex, tak Pixel shader výpočty a nahradily dedikované Pixel a Vertex jednotky v GPU. Podle náročnosti rastrového obrazu mohou tyto jednotky počítat buď vertex, nebo pixel hodnoty. Odstranilo se tím zpomalení výpočtů a zvýšila se efektivita využití jednotek viz obr. 29. 13 http://img.tomshardware.com/us/2001/02/27/high/pixelshader1.gif 34

Obrázek č. 29 Princip funkce unifikovaných shaderů 14 14 www.overclock3d.net/reviews.php?type=3&id=135&page=1&desc=asus_en_8800_gtx_- _nvidia_s_g80_performance_revealed 35

5. Zmapování současné grafické karty a její směřování do budoucna V předchozích kapitolách jsme si přiblížili historii a základní funkce grafických akcelerátorů. Jak ale vypadá současný grafický akcelerátor? V současné době jsou největšími hráči na poli grafických akcelerátorů, pro počítače řady IBM PC, firmy nvidia a AMD / ATi. Přiblížíme si grafický akcelerátor Radeon HD 4800 od AMD / ATi. 5.1 ATi Radeon HD řady 4800 Na návrhu akcelerátoru řady 4800 s čipem R770 se začalo ve firmě ATi pracovat koncem roku 2005. Oficiálního uvedení se karta dočkala 25. ledna 2008. Srdcem akcelerátoru řady HD 4800 je grafický čip ATi R770 vyroben technologií 55nm s 956 mil. tranzistorů na ploše 260 mm 2. Oproti konkurenci od firmy nvidia je plocha čipu zhruba poloviční (obr. 30). Obrázek č. 30 Plocha procesorů ATi HD 4800 a nvidia GTX200 15 Procesor (obr. 31) má sběrnici o šířce 256 bitů s kruhovou typologií (ring-bus) upravenou pro čip R770. Dále zde najdeme 10 Simple Instruction, Multiple Data (SIMD 16 ) jednotek, z nichž se každá skládá z 16 streamovacích jednotek. Každá streamovací jednotka obsahuje 15 http://enthusiast.hardocp.com/image.html?image=mtixndm2mzm1munyrejonlhhwenfmv8yx2wuz2 lm 16 http://www.root.cz/clanky/techniky-zvyseni-vykonu-mikroprocesoru-2/#k07 36