Mobilní grafické čipy - kam směřují?

21. 2. 2007 07:00    Rubrika: Technologie    Autor: Jiří Zima

Grafické čipy stojí po letech před velikou změnou architektury. Změnou, která by měla u mobilních grafik příznivě ovlivnit nejen výkon, ale i spotřebu. V dnešním článku se proto podíváme na technické pozadí dnešních modelů, zjistíme, jak se orientovat v jejich parametrech a jakým směrem se v budoucnosti bude tato nezbytná část každého notebooku vyvíjet.

Mobilní grafické čipy - kam směřují?

Co je grafická karta

Předem bych chtěl předeslat, že používat výraz „karta“ je konkrétně u notebooků velmi zavádějící, protože většinou je čip i s případnou pamětí umístěn přímo na základní desce, ovšem tento výraz je velmi zažitý a pro mnoho lidí nejsrozumitelnější. Nějakým způsobem realizovaná grafická karta je nezbytnou částí každého počítače (notebooku). V notebooku se stará o grafický výstup do vlastního LCD panelu a dále obsluhuje i všechny grafické výstupy, které notebook obsahuje. Ty jsou dnes realizovány na běžných modelech pomocí analogového D-SUB15 zvaného také VGA výstup. Dále se může objevit digitální (i analogový) DVI, který primárně slouží k připojení LCD v digitální (bezztrátové) kvalitě, a S-Video výstup určený pro připojení klasické televize („S“ na začátku značí, že barevná a jasová složka jsou oddělené pro lepší kvalitu zobrazení).
Grafická karta ovšem nefunguje jen jako jakýsi jednoduchý převodník výstupu počítaného procesorem na obraz. Výpočet grafických operací je velmi složitý, a tak se jedná o velmi sofistikovanou jednotku nabitou nespočtem funkcí, která svou složitostí silně konkuruje samotným procesorům. Základní úkoly grafické karty jsou akcelerace neboli urychlení 2D (například plocha Windows) a 3D (hry a různé modelovací programy a nebo také nové grafické rozhranní Windows Vista - Aero) obrazu a také akcelerace přehrávání videa.

Realizace grafické karty

Zjednodušeně lze říct, že grafická karta se skládá ze tří částí. Hlavní je samotné grafické jádro, které obstarává všechny výpočty a komunikuje po sběrnici se zbytkem počítače (notebooku). K němu je připojena paměť, ve které se uchovává obraz a další prostředky nutné pro zpracování obrazu, a obvody pro možnost připojení jednotlivých externích výstupních zařízení. Těchto obvodů je několik typů podle signálu, který musí generovat. Pro klasické monitory a LCD panely připojené přes VGA se tato část nazývá anglickou zkratkou DAC (digitálně analogový převodník). Ten předělává digitální výstup čipu do analogové (spojité) podoby. Barva je přenášena pomocí tří základních barevných složek realizovaných určitou hodnotou napětí. Pozice jednotlivých bodů na obrazovce je dána synchronizačními impulsy. VGA výstup je velmi stará záležitost z konce 80. let a nevýhodou může být degradace kvality obrazu závislá na kvalitě jednotlivých součástek (převodník, kabely). Pro digitální přenos slouží LVDS (vlastní panel notebooku) a TMDS (DVI výstup) konvertory. Důvod konverze z digitálního opět na digitální signál je velmi jednoduchý. Signál se musí upravit do podoby, ve které může být veden kabelem na delší vzdálenost. Výstup na televizi je řešen opět určitou verzí digitálně analogového převodníku, akorát výstupní signály mají jinou podobu.
Běžné dnešní grafické karty v notebooku mají LVDS konvertor a digitálně analogové převodníky pro VGA a televizi integrované přímo v čipu s grafickým jádrem. Obvody pro další výstupy jsou k čipu připojeny pomocí digitální DVO sběrnice. Ačkoli může notebook obsahovat více konektorů pro připojení různých zobrazovacích zařízení, obvykle umí všechny čipy obsluhovat najednou pouze libovolné dva, které si uživatel vybere.
Fyzicky jsou dvě základní možnosti, kam se samotná grafická jednotka umísťuje. Každá možnost má své výhody i nevýhody. Může být umístěna samostatně v podobě grafické karty, zapojené uvnitř notebooku, a v takovém případě používá připojenou vlastní video-paměť a nebo může být také integrována do čipové sady, kdy pak používá sdílenou paměť z RAM. Pokud tedy není grafická jednotka umístěna v čipové sadě, označuje se jako dedikovaná. Dedikovaná grafika má zpravidla vyšší výkon, více funkcí, ale zároveň další čip na desce znamená větší energetické nároky, což se u notebooku projeví větší spotřebou (a tedy nižší výdrží na baterie) a vyšší hmotností notebooku.

Velikost grafické paměti není všechno

Pro mnoho lidí je parametrem výkonu grafických karet právě velikost videopaměti. Posuzování podle paměti je velmi zavádějící a je to asi nejhorší způsob, jak porovnávat výkon dvou konkrétních řešení. Pokud se budeme bavit o nejnižším výkonovém segmentu, tak zde nemá cenu tento parametr vůbec řešit. Důležité je spíš se zaměřit na to, jestli je paměť sdílená, nesdílená a nebo částečně sdílená (TurboCache, Hyper Memory) – to předurčuje, jak rychle bude moci grafický čip do paměti přistupovat a jestli při tom nebude zatěžovat i další zařízení (pokud sdílená grafika přistupuje intenzivně do hlavní operační paměti, tak o to samozřejmě menší rychlost přístupu budou mít ostatní zařízení).
Obecně lze říct, že pokud sdílená grafika Intel GMA950 tvrdí, že může mít až 224MB sdílené paměti, bude i tak s největší pravděpodobností mnohonásobně pomalejší než dedikovaná grafika s vlastními 128 MB videopaměti.

Pipelines

Grafické karty jsou vektorové koprocesory, tím pádem na rozdíl o hlavních procesorů lze jejich činnost velmi snadno paralelizovat (zpracovávat víc dat najednou, a tak zkrátit dobu potřebnou na vykonání celé operace). Paralelizaci u grafických karet si lze definovat pomocí tzv. pipelines. U procesorů je při více jádrech situace taková, že přináší při běžné práci výhodu zatím především u více spuštěných aplikací. Pokud chce program využít obě jádra najednou pro sebe, musí být s tímto ohledem také naprogramován. U grafických karet je situace výrazně jednodušší díky tomu, že provádí opakovaně stejné specializované operace. Úplně první 3D akcelerátory v noteboocích před 10ti lety (např. jeden z těch nejvýkonnějších byl tehdy S3 Virge MX s 2 - 4 MB paměti) měly pouze jednu pipeline, ta obsahovala napevno všechny základní funkce (výpočet osvětlení/barvy pixelů,…). Jak se grafické čipy vylepšovaly, zvýšila se frekvence čipu, efektivita zpracování jednotlivých operací a začaly se přidávat další funkce a pipelines. Každá samostatná pipeline obsahuje znovu všechny funkce, tím se samozřejmě s každou takovou zvyšuje počet tranzistorů celého čipu a jeho spotřeba. Na druhou stranu - pokud jedna pipeline zpracuje jeden pixel, tak dvě zpracují dva. Nárůst výkonu je tedy obrovský. Dalším (samostatným) prvkem, který přibyl, je tzv. TnL jednotka, která na sebe od procesoru přebírá základní výpočty související se zpracováním vertexů (vrcholy v 3D prostoru).

Programovatelné jednotky - Shadery

To, co jsem popsal, je úplně původní schéma, kterého se výrobci delší dobu drželi. Jak však přibývaly nároky na nové funkce a efekty, které musely grafické karty zvládat, nešlo všechno přidávat „natvrdo“ do čipu. Začaly se tak objevovat programovatelné jednotky - ty se pak rozvinuly v první shadery. Shader Model (to je specifikace určující, jaké všechny funkce karta musí umět; zkráceně SM) 1.x fungoval na jednoduchém principu, kdy se programovatelná jednotka (Pixel Shader) zařadila někam do stávající (pixel) pipeline a umožňovala několik základních výpočtů (sčítání, násobení,…) v omezeném počtu kroků. Vertex shader se stal tedy součástí (nadstavbou) pro TnL jednotku. Mnoho her si vystačilo se SM1.x pro efekty vody a detailního osvětlení.
Nová specifikace SM2.0 přinesla mnoho nových matematických instrukcí a možnost spouštění složitějších (delších) programů. Jedná se o minimální specifikaci, kterou vyžaduje Windows Vista pro běh svého grafického prostředí Aero. I když se víc čipů může chlubit, že mají specifikaci SM2.0, ještě to neznamená, že oba umí stejně. ATI a NVIDIA mají ve zvyku přesahovat nutné podmínky této specifikace a naopak Intel a další se drží daného minima. Díky tomu se může stát, že hry, které jsou optimalizované pro ATI a NVIDII (těch je naprostá většina), nepoběží na Intel grafice, i když ta se taky pyšní stejnou specifikací.
Aby se mohl čip chlubit specifikací SM3.0, musí umět pracovat v programu s cykly a podmínkami a krom několika dalších funkcí musí také dokázat zpracovávat jednotlivé barevné kanály v číslech s desetinnou čárkou. Díky podpoře cyklů a podmínek už lze v podstatě na grafických kartách pracovat s libovolnými výpočty, které se vůbec nemusí týkat grafiky. Z aktuálních řešení na trhu odpovídají specifikacím Mobility Radeony řady X1000 a GeForce Go 6 a 7. Je tedy zatím dostupná pouze jedna sdílená grafika se SM3.0 v notebooku – GeForce 6100.

Direct3D pipeline
Práce grafické jednotky z pohledu Direct3D rozhraní

Vertex shader, TnL a kámen úrazu sdílených grafik

Většina lidí si myslí, že problém všech grafik integrovaných v čipové sadě je sdílená paměť ukrojená z hlavní paměti. Není to tak úplně pravda. Sdílená paměť nám limituje pixel fillrate, tedy rychlost vykreslování jednotlivých pixelů na obrazovce. V mnoha dnešních hrách (kde nejsou příliš komplikované efekty) sdílené grafiky naráží na rychlost vertex processingu (tedy zpracování jednotlivých „vrcholů“ objektů v 3D prostoru) – to ovšem se sdílenou pamětí zas tak úplně nesouvisí. Aby grafické jádro mohlo být umístěno do čipové sady, musí být vhodně upraveno, aby nemělo příliš vysokou spotřebu a moc nehřálo. Z tohoto důvodu se jádro zpravidla osekává, kde to jen jde.
Nejrozšířenější integrovaná grafická jádra dělá Intel. Ani jeho nejnovější prodávaná GMA950 v noteboocích nemá žádnou jednotku pro zpracování vertexu – nemá ani Vertex Shader a dokonce ani TnL jednotku (kterou masově zavedla před mnoha lety NVIDIA už se svou první GeForce). Aktuálně nejčastěji používané čipy ATI (Xpress200M, Xpress11x0) obsahují jednotku na zpracování vertexů, ale jen velmi osekanou a plní v podstatě spíš jenom úlohu TnL jednotky a většina Vertex Shaderu stejně jako u Intel zůstává v moci procesoru. Nejméně osekanou (a zároveň nejrychlejší) grafikou tak zůstává NVIDIA GeForce 6100. Počet pixel a vertex pipelines (resp. pixel a vertex procesorů) se udává součtem. Pokud tedy vidíme označení „2+1“ u GeForce 6100, znamená to, že obsahuje dvě pipeline na pixely a jednu na vertexy. Proti tomu nejslabší dedikovaná grafika GeForce 7300 má „4+3“ – zde lze poznat, že rozdíl výkonu není dán jenom sdílenou pamětí.

Kam směřuje budoucnost

Pokročilejší vertexové a pixelové jednotky spotřebují v čipu více tranzistorů a v nových (mimo nejnižší cenové kategorie) grafikách je nárok na stále větší počet těchto jednotek. Ve hrách je ovšem problém, že pokud má hra velmi detailní 3D modely a rozsáhlé prostředí, tak jsou limitem vertexové jednotky a pixelové se naopak flákají. Naopak když vykreslujeme ve scéně mnoho složitých efektů, tak se zas začnou „nudit“ ty vertexové. Díky své komplexnosti se oba typy jednotek už příliš neliší, a tak přichází SM4.0 a unifikované shadery. S touto specifikací navíc přichází také nová jednotka – tou je Geometry shader, který umožňuje pokročilou práci s vertexy (nově jejich vytváření – vstupem a výstupem již tedy není pouze jeden vertex).

Unifikované shadery

Co vlastně unifikované shadery jsou? Jedná se o sjednocení shaderů do univerzálních jednotek a přidání další jednotky, která bude obsluhovat rozdělování výpočtů mezi ně. Do sjednocených částí by se později snáze mohly implementovat i nové typy shaderů. Unifikovaný čip by měl být efektivnější, takže by se teoreticky dalo říct, že na stejný počet tranzistorů by měl být čip výkonnější a nebo při stejném výkonu levnější. To je pro notebooky velmi důležitý fakt, protože by se tím mohla snížit spotřeba čipů.
Z hlediska software jsou pro kompletní využití SM4.0 potřeba DirectX 10. Ty nám nyní přicházejí s novým operačním systémem Windows Vista. Zatím Microsoft tvrdí, že DirectX 10 pro Windows XP nechystá, ale uvidíme, jak se celá situace ještě vyvine. Ostatně z desktopových grafických karet, které se prodávají, má zatím SM4.0 pouze GeForce 8800. Pro notebooky zatím není na trhu vůbec nic. S čím nakonec jednotliví výrobci přijdou, se dozvíme až v následujících měsících.

Technologie

Diskuse