R600 non è un progetto nato dal nulla ma ricalca molte delle innovazioni tecniche provenienti dal vecchio progetto R500 Xenon che, anche se non compatibile, usa già architettura unificata e un diverso approccio a tutte le operazioni di texture come lo stream computing, che usa appunto degli stream processor che gestiscono indistintamente sia pixel che vertex shader e concetti come il dynamic branching.
Altre innovazioni riguardano le fetch4 che servono a migliorare le prestazioni dei fetch2x2 attigui per il campionamento di texture.
Ultimo, ma non certo per importanza, il concetto di RingBus che unisce tutte le parti della scheda con un unico bus ad anello che può gestire fino a 60 client e segna anche un record visto che per primo usa un bus con ampiezza a 512Bit.
Vediamo adesso quali sono le principali parti che compongono R600 per poi analizzarle dettagliatamente.

AMD con questo chip usa un approccio superscalare per tutte le operazioni al posto del Scalar+Vector facendo si che le istruzioni scalari vengano raggruppate in gruppi da 5.
A detta di AMD questo differente tipo di approccio aumenta l’efficienza della GPU e l’uso che si fa della FPU utilizzando quindi questi gruppi scalari per eseguire operazioni complesse.
Altro punto molto importante è la presenza dell’ultra Thread dispatch che serve a mantenere sempre occupate tutte le unità del chip.
Questo potrebbe comunque causare dei rallentamenti perché elaborando più dati diversi tra loro in parallelo si potrebbe creare una situazione in cui alla fine di un operazione ci sia un lasso di tempo che intercorre per aspettare la fine delle altre operazioni.
Per questo AMD introduce un concetto di virtualizzazione dei thread: in ogni momento ci sono sia tread in elaborazione che un numero molto maggiore che aspetta di essere elaborato.
La virtualizzazione permette di archiviare in cache versatili un numero illimitato di thread in attesa in modo da riprendere l’elaborazione senza troppi accessi in memoria che ingrandirebbero di molto le latenze con un ulteriore decadimento della velocità di elaborazione.
Il cuore dell’architettura è composto dagli stream processor che sono in totale 320 sulla top gamma R600, suddivisi in gruppi di 5 per un totale di 64blocchi.
I blocchi vanno poi a costituire i SIMD (Single Instruction Multiple Data) che sono 4 in totale e integrano al loro interno 16 blocchi ciascuno (80 stream processor).
Come si è già visto con il G80 questo approccio a shader unificati con le DX10 paga, visto che a seconda del carico gli stream processor possono calcolare indistintamente sia pixel che vertex shader cosi da non porre limitazione come succedeva con le vecchie architettura DX9 alla fantasia degli sviluppatori di giochi che non hanno vincoli fisici sull’uso che fanno di effetti per la creazione delle scene.
Troviamo inoltre anche delle unità texture con cache dedicata per vertex e dati texture.
Andiamo ora ad analizzare più nel dettaglio le varie componenti della GPR R600.