|
L'architettura presentata da ATI in occasione delle GPU R520 presentava
alcune interessanti novità fra cui una struttura Ultra-Threaded con unità di
elaborazione distribuite e non unificate come accade per i chip grafici GeForce
di ultima generazione. Questo permette ad ATI di intervenire anche su singole
parti specifiche del chip per modificarle sia in caso di aggiunta di nuove
features, sia nel caso in cui ci si renda conto che una specifica unità
rappresenti un collo di bottiglia per le prestazioni dell'intero chip.
Ovviamente un simile approccio ha anche i suoi svantaggi legati
principalmente alle maggiori latenze, compensate, però, dallo schema
multi-threaded adottato che permette di sfruttare la GPU anche quando questa
potrebbe restare in IDLE.

A differenza dell'architettura vista per le GPU R520, questa volta troviamo
12 blocchi dotati ognuno di 4 unità pixel shading. Nel caso precedente erano
stati integrati solo 4 blocchi per un totale di 16 pixel shader unit. L'idea di utilizzare un elevato numero di pixel shader processor, permette
alle GPU ATI Radeon X1900 di eseguire moltissimi calcoli per ogni pixel. Nei
giochi che prevedono l'applicazione di molte elaborazioni per ogni pixel
beneficeranno notevolmente di una simile architettura, mentre sarà differente il
caso di giochi con poche richieste per pixel. Dunque i circa 80 milioni di
transistor in più rispetto alle GPU R520 sono tutti finiti nella realizzazione
delle ulteriori 32 unità di pixel shading.
Questo mette in pratica quella che è la visione attuale e futura di ATI
secondo la quale il trend del numero delle operazioni sui pixel è in crescita e
sarà proprio questo il collo di bottiglia nelle prestazioni delle schede
grafiche al quale si dovrà mettere riparo, o meglio al quale oggi ATI ha dato
una risposta. Le istruzioni di shader possono essere suddivise in due classi,
ovvero le operazioni sulle texture e le operazioni aritmetiche, con le prime che
richiedono un grosso lavoro al controller delle memorie e le seconde molto
pesanti dal punto di vista dei calcoli ALU: se in passato il rapporto fra queste
due classi è stato circa 1:1, oggi siamo in alcuni casi a 5:1 ed in futuro si
prevede di arrivare anche a 7:1.
Oltre a ciò esiste anche un'altra ragione per cui ATI ha scelto di
incrementare il numero di pixel shader e non il numero di pixel pipeline. Come
detto in precedenza le operazioni sulle texture fanno molti accessi in memoria,
dunque dipendono pesantemente da fattori esterni alla GPU come la dimensione del
bus delle memorie e la frequenza (in sostanza la banda di memoria). Perciò se
intendiamo aggiungere ulteriori unità di texture è altrettanto necessario
incrementare la disponibilità delle risorse di memoria e, come ben noto, scalare
la memoria e la relativa banda ha un costo maggiore rispetto allo scalare le
risorse legate alle operazioni aritmetiche che dipendono, in ultima analisi,
dalle sole unità di calcolo integrate nella GPU.

Come per le GPU R520, anche l'architettura delle GPU R580 (Radeon X1900)
prevede una cella composta da quattro pixel shader unit: queste sono le unità
responsabili dei calcoli aritmetici della scena 3D. Ogni pixel shader processor
consiste di quattro ALU (Arithmetic Logic Units) di cui due in grado di eseguire
operazioni scalari e due vettoriali.
Al fine di garantire le massime prestazioni prestazioni possibili, il numero
di ogni tipo di componente presente nella GPU dovrebbe essere pari o comunque il
più vicino possibile al rapporto fra i diversi tipi di istruzioni che ci si
aspetta vengano elaborate (in questo modo tutte le unità lavorano con lo stesso
carico senza costituire nessuna il collo di bottiglia per l'altra). Ogni pixel
shader processor della GPU Radeon X1900, può gestire da 1 a 5 istruzioni di
shader per ogni ciclo di clock. Inoltre ogni pixel shader unit è stata dotata di
una unità di branch execution grazie alla quale viene ridotto il fenomeno di
"performance overhead" dovuto al controllo di flusso delle istruzioni.
I compiti vengono assegnati ad ogni unità dall'Ultra-Threaded Dispatch
Processor che costantemente monitora ogni zona della GPU, riordina le istruzioni
e mette in moto le ALU. Inoltre lo stesso processore fa uso di avanzate tecniche
di parallelismo grazie alla gestione di un elevato numero di piccoli thread
simultanei per nascondere la latenza dovuta alle operazioni di texture fetch
(solitamente lente in quanto necessitano di accessi alla memoria).
In tutto questo le architetture R520 ed R580 sono molto simili. Dove pone la
maggiore enfasi l'architettura R580 è sulla potenza di elaborazione delle
operazioni aritmetiche sui pixel. E questo appare più che chiaro vista la
disponibilità di ben tre volte il numero dei pixel shader processor rispetto
all'architettura R520.
|