Radeon HD 2900XT - DirectX 10 v podání AMD / ATi
autor: Petr Štefek a Jiří Souček , publikováno 18.5.2007
Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

Po letech a s několikaměsíčním zpožděním firma ATi (pardon, vlastně AMD) konečně vydává dlouho očekávaný čip R600 v podobě grafické karty Radeon HD 2900 XT. Pokud váš zajímá historický vývoj, architektura čipu, technologické novinky, souvislost se zmíněným projektem R400 a také samozřejmě testy výkonu, stačí pokračovat ve čtení dnešního článku...


Jednou z nejdůležitějších částí unifikovaného grafického čipu (vlastně nejen unifikovaného, ale každého, který už nestaví na fixních pixel pipelines) je řídící procesor. Ačkoli se obvykle mluví o jednom řídícím procesoru, bývá ve skutečnosti segmentovaný (určitá skupina výpočetních jednotek mívá vlastní).

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

Řídící procesor čipu R600
- kliknutím zvětšíte -

Oproti R520/R580 je řídící procesor R600 složitější hned z několika důvodů. Krom pixel shadingu a texturingu má na starost i zpracování a řazení požadavků pro vertex shading a geometry shading.

Velice praktická je schopnost řídícího procesoru zastavit zpracování již rozjetého threadu a místo něj se soustředit na thread, který je v dané chvíli důležitější. Původní thread může být uložen, je-li třeba, a po zpracování threadu s vyšší prioritou se k němu řídící procesor vrátí a ve zpracování je pokračováno přesně tam, kde se skončilo.

Tesselator

Zpracování 3D scény začíná už v CPU, které musí grafické kartě dodávat vertexy (vrcholy polygonů, vlastně body v prostoru). Tento proces je poměrně náročný na procesor a systém, neboť veškeré vertexy, které budou v zobrazené scéně musí CPU připravit a protlačit sběrnicemi až do jádra grafické karty. Jistě jste si všimli, že se v posledních lete objevily různé technologie, které z modelů vytvořených z nízkého počtu polygonů vytváří hezčí, plastičtější modely - například parallax mapping, relief mapping, displacement mapping, postupy jako render to vertex-buffer atp.... některé z těchto metod plastičnost pouze "simulují" úpravou textury a odrazu světla pixel shaderem, ale některé dodatečně zvyšují počet vertexů v modelu (např. podle speciální textury určující výšku nových vertexů oproti původnímu povrchu).

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

Samotný fakt, že se vyplácí dodatečně zatěžovat výpočetní jednotky grafického čipu namísto toho, aby rovnou procesor poslal scénu s několikanásobně vyšším množstvím polygonů, poukazuje na to, že výkony a propustnost sběrnice vedoucí ke grafickému čipu by pro něco takového nebyly dostačující. A zároveň se tím potvrzuje, že grafický čip je schopen vyšší množství polygonů (než s jakým běžně pracuje) zvládnout.

Popsané alternativní metody ale nejsou vhodné pro všechny případy - nejsou univerzální - a hlavně dále zatěžují další výpočetní jednotky (pixel shadery, texturovací jednotky...). DX10 čipy jsou sice pro tyto technologie lépe připraveny, ale samo o sobě to nic nemění na faktu, že nejde o úplně optimální řešení.

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

kliknutím zvětšíte

A tak ATi přišla s novou výpočetní jednotkou nazvanou tesselator. Ta má za úkol z modelu o nízkém počtu polygonů vytvořit model, který bude mít tolikrát větší množství polygonů, kolikrát bude třeba. Pokud vám to něco připomíná a vybavil se vám Radeon 8500 (R200) a technologie ATi TruForm, vzpomínáte správně. R200 nesl podobnou (avšak mnohem jednodušší) jednotku určenou pro teselaci, ale vzhledem k tomu, že tato technologie nebyla optimálně ukotvena v API (DirectX/D3D) se dočkala jen krátkodobého úspěchu a postupem času upadla v zapomnění. Vývojáři totiž ze zmíněného důvodu neměli příliš mnoho možností, jak do procesu teselace zasahovat a krom toho - podpora této technologie nebyla povinná, takže ji žádný jiný konkurenční čip nepodporoval a vývojáři obvykle nejsou nadšení z práce navíc, která ponese ovoce jen některým uživatelům...

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

Tesselator měl být původně povinností každého DX10 čipu, ale Microsoft nakonec z tohoto požadavku upustil a nechal ho jen jako volitelnou možnost. Je však velmi pravděpodobné, že v další verzi DX již bude povinnou specifikací. Pro ATi má význam mj. i z důvodu portů her z konzole Xbox360 (jejíž grafický čip Xenos tesselator obsahuje) na PC.

V souhrnu to znamená, že R600 nese jednotku s obrovským potenciálem (kvalitnější modely bez nároků na CPU, sběrnici PEG a paměťovou sběrnici grafického čipu), která je programovatelná a tudíž podporuje všechny režimy teselace (bezier, N-Patches = TruForm, B-Spline, NURBs, NUBs, su-divison surfaces...), ale která v blízkých měsících neukáže svůj potenciál jinde, než na úrovni technologických dem, neboť ji současné hry nevyužívají.

Ring-Bus

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

Sběrnici Ring-Bus, která propojuje jednotlivé části GPU vzájemně a s paměťovou sběrnicí, známe také už z minulé generace čipů (od R520). V současné době jsou používané dva základní koncepty - Ring-Bus a Crossbar. Crossbar je poměrně vhodný pro čipy s úzkou paměťovou sběrnicí, ale čím větší šíře, tím více narůstá jeho složitost. To byl jeden z důvodů, proč se ATi rozhodla od tohoto konceptu postupně upouštět. Čipy jako R520 a R580 používaly 512-bitový Ring-Bus pro čtení a pro zápis byl využíván klasický Crossbar. R600 už spoléhá výhradně na Ring-Bus, který je využíván v 512bit šíři pro čtení a stejně tak v 512bit šíři pro zápis. Celkem tedy jde o 1024-bitovou sběrnici.

Radeon HD 2900XT - DirectX 10 v podání AMD / ATi

různé sběrnice - shora:
Crossbar - R420, G70, G80, RV515...
asymetrická (Ring-Bus + Crossbar) - R520, RV530, RV570, R580...
symetrický Ring-Bus - R600

Další výhody se projevují například ve flexibilitě - kanály mohou být přidávány a odebírány bez nutnosti přepracování návrhu sběrnice, sběrnice nemusí být navrhována znovu při přípravě každého čipu. Z čistě praktického hlediska se široká interní sběrnice se mimo jiné může pozitivně projevovat při HDR renderingu.

R600 nese krom plně symetrické paměťové sběrnice i dvou-úrovňovou cache pro textury (L1, L2 o 256kb), oddělenou vertex cache, Z/Stencil cache připojenou k RBE jendotkám, read/write cache a instrukční cache + cache pro konstanty sloužící řídícímu procesoru. Tyto interní paměti jsou typu SRAM.



 
Komentáře naleznete na konci poslední kapitoly.
588 čtenářů navrhlo autorovi prémii: 278.8Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.