radeon-x1800-architektura-cipu-r520
Hardware Článek Radeon X1800 - architektura čipu R520

Radeon X1800 - architektura čipu R520 | Kapitola 3

Petr Štefek a Jiří Souček

Petr Štefek a Jiří Souček

7. 10. 2005 01:00 51

Seznam kapitol

1. Radeon X1800 alias R520 2. Vertex shaders 3. Pixel Shadery 4. Řadič pamětí - ring-bus
5. Anizotropní filtrace 6. Full-Scene AntiAliasing 7. HDR - High Dynamic Range, AVIVO, CrossFire a závěr

Společnost ATi konenčně uvedla dlouho očekávanou sérii Radeonů X1000 a my se na ni dnes podíváme trošku blíže a vysvětlíme si některé její výhody a nevýhody oproti konkurenční architektuře nVidie a jejímu čipu G70. Na recenzi výkonu nového Radeonu si ještě budete muset nějaký ten den počkat, protože naměření tak velkého kvanta dat trvá delší dobu než u běžné recenze. Ale již dnes mohu prozradit, že se je opravdu na co těšit.

Reklama

Asi nejzajímavější částí celého jádra R520 je část pixel shaderů, která už nejde označit za část s pixel pipelines, protože zde došlo k významným změnám. Architektura všech nových řad Radeonů Rx5xx je totiž multi-threadová. Tento krok vede k efektivnějšímu využívání výpočetního času, který mají pixel shadery k dispozici a žádná část tak nezahálí. Tady je veliká výhoda R520 oproti konkurenční G70, která sází spíše na hrubou výpočetní sílu.

Radeon X1800 - architektura čipu R520
i Zdroj: PCTuning.cz


Detail pixel shader části

O přerozdělování threadů se v tomto případě stará takzvaný Ultra-Threading Dispatch Processor, což znamená přidělování čekajících threadů mezi všechny 4 "quad cores" velmi efektivním způsobem, protože ač se to nezdá, tak velká část výpočetního času je v případě tradičních architektur ztracená právě zahálením jednotek. Dispatch procesor rozděluje data na thready o velikosti 4x4 pixely, aby je bylo dále možné zpracovat v 4 tzv. "quad cores" 16 pixelových jednotkách.

Každý ze 4 "quadů" je schopen v jednom cyklu zpracovat shader pro blok o velikosti 2x2 pixely, jelikož každé z těchto 4 víceméně samostatných jader má v sobě 4 jednotky pro práci s pixely. Dispatch procesor je schopen zaznamenat nečinnost jednotlivých jednotek pro zpracovaní pixelů a hned jim přiřadit novou úlohu. Díky tomu je možné, aby každé ze čtyř pixel shaderových jader zpracovávalo data nezávisle na dalších. Procesor je rovněž schopen pozastavit zpracování threadu pokud nemá všechny potřebné data a poslat ho ke zpracovaní teprve po kompletizaci dat. R520 tak může v jednom cyklu zpracovat až 512 threadů.

Podle ATi je efektivita při zpracování shaderů kolem 90 procent, což daleko více než mají tradiční architektury. Těžko říci jak se to projeví v praxi, ale již předem je možno odhadnout, že vše bude záležet na komplexnosti shaderů. Stejně jako v předchozím případě i pixel shaderová část kompatibilní s Shader Modelem 3.0 a  je schopna vykonávat smyčky, větvení a subrutiny v shaderech.Opět jsou pixel shadery díky podpoře dynamic flow control schopny vykonat teoreticky neomezený počet instrukcí. Všechny výpočty jsou prováděny se 128-bitovou přesností, což velmi omezuje případnou degradaci vizuální kvality tvořené scény.

Radeon X1800 - architektura čipu R520
i Zdroj: PCTuning.cz


Detail pixel shaderu

Na ilustračním obrázku je vidět jak pracuje dispatch procesor, který velikost každého threadu omezuje na 4x4 pixely (podle 16 pixelových jednotek). Velikost threadu má totiž zásadní vliv na rychlost zpracování dynamického větvení (dynamic branching). Platí, že čím je velikost threadu větší tím pomalejší a méně efektivní je tato metoda, která zcela závisí na velikosti plochy (počet pixelů threadu). Podle obrázku je dynamické větvení zcela neefektivní pokud velikost threadu přesáhne 64x64 pixelů.

Poznámka: Dynamic branching dovoluje přeskakovat (nevykonávat) části kódu v shaderu, které nejsou nezbytně nutné ke korektnímu zobrazení scény a tím značně šetří výkon a čas. Dispatch procesor dokáže vyhodnotit pomocí jednoduché podmínky je-li vykonaní nutné a případně jej zastavit.

Radeon X1800 - architektura čipu R520
i Zdroj: PCTuning.cz


Princip "dynamic branching"

Pokud si všimnete malé výpočetní jednotky (branch execution unit) stojící nenápadně vedle hlavních skalárních a vektorových výpočetních jednotek, tak vězte, že její vliv na rychlost zpracování při použití Shader Modelu 3.0 je značná. Branch execution unit umí během jednoho taktu zpracovat smyčku nebo subrutinu při použití flow control čili Shader Modelu 3.0. Tato jednotka tak výrazně ulehčí hlavní pixelové jednotce, která stihne zpracovat shader za menší počet taktů.

Každá z 16 aritmeticko logických jednotek dostala do vínku 2 skalární a 2 vektorové výpočetní jednotky, které jsou schopny zpracovat 4 instrukce v jednom taktu (2ADD+2ADD/MAD/MUL).

Radeon X1800 - architektura čipu R520
i Zdroj: PCTuning.cz
Radeon X1800 - architektura čipu R520
i Zdroj: PCTuning.cz


Tabulka převzata z xBitLabs

Pokud jenom trošku sledujete architektury čipů, tak vás musí hned napadnout, kde se poděly texturovací jednotky. Ty jsou revolučně odděleny od pixelové části a jsou také ovládány dispatch procesorem, který zajistí menší čekací doby u samplování textur. Tolik k velmi revoluční části pixel shaderů. Uvidíme jak se přes svou technologickou nadřazenost utká se surovou silou pixel shaderů v čipu G70.

Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama