De R600-architectuur
De R600-architectuur kenmerkt zich door het gebruik van unified shaders, een brede 512bit-geheugenbus en een enorm parallellisme. De Radeon HD 2900 XT is in het bezit van maar liefst 320 ‘stream processing units’ die zowel vertex-, pixel- als geometry-shaders kunnen verwerken. Hiermee kiest ATi voor een andere weg dan nVidia. Ook de nVidia GeForce 8x00-serie maakt gebruik van unified shaders, maar het topmodel heeft er ‘slechts’ 128. Het verschil is dat de shaders van ATi op dezelfde kloksnelheid lopen als de rest van de chip (742MHz) terwijl nVidia de shaders veel hoger klokt. Een ander belangrijk verschil in architectuur is het gebruik van een 512bit-geheugenbus terwijl nVidia niet verder komt dan 384bit bij de GeForce 8800 GTX.

De R600 is de tweede chip van ATi die gebruik maakt van unified shaders. De Xenos die gebruikt wordt in de Xbox 360 maakt ook al van deze techniek gebruik, maar ten opzichte van deze chip is er in de R600 veel verbeterd. De gpu ondersteunt DirectX 10 volledig, de command processor is verbeterd om efficiënter kleine opdrachten te kunnen verwerken, de dispatch processor kan latency beter verbergen en de stream processing units zijn gerangschikt als 5-way superscalar shaderprocessors. Wat dit precies inhoudt en wat dit betekent voor de prestaties van de gpu zullen we in de volgende secties behandelen.
ATi heeft een enorm aantal shaderprocessors geïntegreerd in de R600. Er zijn 320 shaderprocessors aanwezig die allemaal vertex-, pixel- en geometry-shaders kunnen verwerken. Om dit enorme aantal te bereiken heeft ATi een belangrijke concessie gedaan: de shader-processors zijn gerangschikt in groepen van vijf waarbij slechts één shaderprocessor alle functionaliteit bezit. Alle shaderprocessors kunnen 32-bit floatingpoint getallen vermenigvuldigen en optellen, maar de ingewikkelde operaties zoals SIN, COS, LOG en EXP zijn voorbehouden aan de dikke processor. Deze operaties worden relatief weinig gebruikt waardoor het geen probleem is dat 80 procent van de processors deze niet kunnen uitvoeren.

Een uitdaging bij een dergelijke grote hoeveelheid processors die tegelijkertijd kunnen werken is om alle processors aan het werk te houden. De ‘Ultra-Threaded Dispatch Processor’ heeft de taak om iedereen aan het werk te houden. De dispatchprocessor heeft verschillende queues met werk die naar een shaderprocessor gestuurd worden zodra deze niks te doen heeft. Wanneer een programma dat draait op een shaderprocessor moet wachten, bijvoorbeeld voor het ophalen van een texture uit een geheugen, wordt deze direct in de command queue gezet en wordt een ander programma gestart. Het eerste programma gaat weer verder met de uitvoering zodra de texture geladen is in het lokale geheugen en de dispatchprocessor het groene licht geeft. De dispatchprocessor kan honderden threads tegelijkertijd in de queues hebben waardoor de shaderprocessors altijd aan het werk gezet kunnen worden en latencies voor bijvoorbeeld het benaderen van extern geheugen nauwelijks merkbaar zijn.
Een ander verschil tussen de R600 en de vorige generatie videokaarten van ATi is het gebruik van cachegeheugens. DirectX 10-programma’s kunnen bijna een ongelimiteerde lengte hebben en gebruik maken van veel variabelen waardoor het onmogelijk is om alles altijd lokaal op te slaan. De R600 maakt daarom gebruik van een cache om tijdelijke variabelen te bewaren en zonodig te verplaatsen naar het externe geheugen. Ook bij de texture units zien we een toevoeging: de R600 is de eerste videochip die een L2-cache heeft tussen de texture units en het externe geheugen. De Radeon HD 2900 XT is in het bezit van 256KB L2-cachegeheugen, de Radeon HD 2600-serie is uitgerust met 128KB L2-cachegeheugen en de Radeon HD 2400-serie moet het doen met alleen een L1-cache.
De R600 herbergt vele nieuwe mogelijkheden dankzij de ondersteuning van DirectX 10, maar er zijn meer nieuwe features aanwezig. De belangrijkste features: tessellation, CFAA en UVD zullen we op de volgende pagina’s uitgebreid bespreken. Wat verder het vermelden waard is, is de ondersteuning om op volle snelheid 64bit hdr-textures te kunnen filteren hetgeen circa 7x sneller is dan de Radeon X1000-serie. 128Bit floating point textures kunnen op halve snelheid gefilterd worden. Verder is er een nieuw textureformaat toegevoegd (RGBE 9:9:9:5) voor 32bit hdr-textures, kan er gewerkt worden met textures met een resolutie van 67 megatexel en is de compressie van de Z- en stencil-buffers verbeterd.
Ook worden 'depth stencil textures' met 'percentage closer filtering' ondersteund waardoor de kaart zogenaamde zachte schaduwen snel kan tekenen. Als laatste is PowerPlay 7 het vermelden waard. Deze feature zorgt ervoor dat delen van de chip zover mogelijk worden uitgezet wanneer deze niet gebruikt worden om zo notebookgebruikers langer te kunnen laten werken op één accu. Volgens ATi kan PowerPlay 7 zorgen voor 15 tot 32 minuten extra werktijd met een accu ten opzichte van PowerPlay 6.

De R600 is de tweede chip van ATi die gebruik maakt van unified shaders. De Xenos die gebruikt wordt in de Xbox 360 maakt ook al van deze techniek gebruik, maar ten opzichte van deze chip is er in de R600 veel verbeterd. De gpu ondersteunt DirectX 10 volledig, de command processor is verbeterd om efficiënter kleine opdrachten te kunnen verwerken, de dispatch processor kan latency beter verbergen en de stream processing units zijn gerangschikt als 5-way superscalar shaderprocessors. Wat dit precies inhoudt en wat dit betekent voor de prestaties van de gpu zullen we in de volgende secties behandelen.
ATi heeft een enorm aantal shaderprocessors geïntegreerd in de R600. Er zijn 320 shaderprocessors aanwezig die allemaal vertex-, pixel- en geometry-shaders kunnen verwerken. Om dit enorme aantal te bereiken heeft ATi een belangrijke concessie gedaan: de shader-processors zijn gerangschikt in groepen van vijf waarbij slechts één shaderprocessor alle functionaliteit bezit. Alle shaderprocessors kunnen 32-bit floatingpoint getallen vermenigvuldigen en optellen, maar de ingewikkelde operaties zoals SIN, COS, LOG en EXP zijn voorbehouden aan de dikke processor. Deze operaties worden relatief weinig gebruikt waardoor het geen probleem is dat 80 procent van de processors deze niet kunnen uitvoeren. 
Een uitdaging bij een dergelijke grote hoeveelheid processors die tegelijkertijd kunnen werken is om alle processors aan het werk te houden. De ‘Ultra-Threaded Dispatch Processor’ heeft de taak om iedereen aan het werk te houden. De dispatchprocessor heeft verschillende queues met werk die naar een shaderprocessor gestuurd worden zodra deze niks te doen heeft. Wanneer een programma dat draait op een shaderprocessor moet wachten, bijvoorbeeld voor het ophalen van een texture uit een geheugen, wordt deze direct in de command queue gezet en wordt een ander programma gestart. Het eerste programma gaat weer verder met de uitvoering zodra de texture geladen is in het lokale geheugen en de dispatchprocessor het groene licht geeft. De dispatchprocessor kan honderden threads tegelijkertijd in de queues hebben waardoor de shaderprocessors altijd aan het werk gezet kunnen worden en latencies voor bijvoorbeeld het benaderen van extern geheugen nauwelijks merkbaar zijn.
Een ander verschil tussen de R600 en de vorige generatie videokaarten van ATi is het gebruik van cachegeheugens. DirectX 10-programma’s kunnen bijna een ongelimiteerde lengte hebben en gebruik maken van veel variabelen waardoor het onmogelijk is om alles altijd lokaal op te slaan. De R600 maakt daarom gebruik van een cache om tijdelijke variabelen te bewaren en zonodig te verplaatsen naar het externe geheugen. Ook bij de texture units zien we een toevoeging: de R600 is de eerste videochip die een L2-cache heeft tussen de texture units en het externe geheugen. De Radeon HD 2900 XT is in het bezit van 256KB L2-cachegeheugen, de Radeon HD 2600-serie is uitgerust met 128KB L2-cachegeheugen en de Radeon HD 2400-serie moet het doen met alleen een L1-cache.De R600 herbergt vele nieuwe mogelijkheden dankzij de ondersteuning van DirectX 10, maar er zijn meer nieuwe features aanwezig. De belangrijkste features: tessellation, CFAA en UVD zullen we op de volgende pagina’s uitgebreid bespreken. Wat verder het vermelden waard is, is de ondersteuning om op volle snelheid 64bit hdr-textures te kunnen filteren hetgeen circa 7x sneller is dan de Radeon X1000-serie. 128Bit floating point textures kunnen op halve snelheid gefilterd worden. Verder is er een nieuw textureformaat toegevoegd (RGBE 9:9:9:5) voor 32bit hdr-textures, kan er gewerkt worden met textures met een resolutie van 67 megatexel en is de compressie van de Z- en stencil-buffers verbeterd.
Ook worden 'depth stencil textures' met 'percentage closer filtering' ondersteund waardoor de kaart zogenaamde zachte schaduwen snel kan tekenen. Als laatste is PowerPlay 7 het vermelden waard. Deze feature zorgt ervoor dat delen van de chip zover mogelijk worden uitgezet wanneer deze niet gebruikt worden om zo notebookgebruikers langer te kunnen laten werken op één accu. Volgens ATi kan PowerPlay 7 zorgen voor 15 tot 32 minuten extra werktijd met een accu ten opzichte van PowerPlay 6.
Volgende pagina (Tessellation - 3/7)
Inhoudsopgave
- Inleiding
- De R600-architectuur
- Tessellation
- CFAA
