Il nuovo progetto - panoramica di R600

Dopo aver fatto una panoramica sulla nuova scheda ATI/AMD HD 2900 XT è giunto il momento di entrare più nel dettaglio con un approfondimento tecnico sull'architettura del chip R600.

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Il nuovo progetto - panoramica di R600

R600 architecture for Radeon HD 2900 (Click for a larger image)

Clicca per ingrandire - Architettura dell'R600 - HD 2900

Osservando la nuova architettura possiamo vedere come AMD/ATI ha affinato quanto adottato in passato nei prodotti precedenti. I nuovi dispatch controller derivano dall'esperienza passata, con il pixel scheduling della serie R500, e i vertex e pixel scheduling da Xenos. Una completa compatibilità DX10 richiede persino uno scheduling maggiore, per cui al mix sono stati aggiunti anche i geometry shader. Per amministrare tutte queste operazioni, è stata aggiunta anche la virtualizzazione.

Una vecchia indiscrezione affermava che Ati avrebbe continuato a seguire il progetto delle istruzioni vector+scalar. Non è stato così. Ati ha cambiato e ha scelto un design superscalare, il che significa che le istruzioni scalari sono raggruppate insieme a blocchi di cinque. L'Architect Senior di AMD, Eric Demers, afferma "Abbiamo optato per un design superscalare anziché per un progetto vector+scalar perché è più efficiente, e ci permette di utilizzare al meglio tutte le FPU”. AMD utilizza quindi i gruppi scalari per gestire istruzioni complesse.

AMD continua ad utilizzare un processore dispatch ultra-threaded per mantenere tutte le unità del chip occupate per tutto il tempo. La logica è avere tutti i thread che lavorano in parallelo ed avere più tipi shader differenti in esecuzione nello stesso momento. I contrattempi nel processo apporteranno problemi prestazionali, quindi ATI ha scommesso sulla virtualizzazione dei thread. In ogni momento ce ne sono alcuni in elaborazione e un numero molto maggiore sospesi in attesa di essere lavorati. La virtualizzazione permette di archiviare un numero illimitato di thread in cache versatili, in modo da riprendere l'elaborazione dovendo accedere il minor numero possibile di volte alla memoria esterna. I thread sono elaborati da matrici Single Instruction Multiple Sata (SIMD) composte da 64 blocchi di 5 stream processor per un totale di 320 shader unificati.

Nel nostro articolo DirectX 10, cosa ci riserva il futuro? e Geforce 8800: la rivoluzione DirectX 10 inizia con G80, abbiamo dimostrato come un codice a shader unificati in DX10 unitamente a un'architettura unificata possa incrementare prestazioni e flessibilità. Nei giochi attuali come Oblivion e in molti altri che usciranno, ci sono carichi differenti di scena in scena. All'inizio del frame vediamo luci, ombre passeggere, animazioni dei personaggi, e molto altro vertex processing puro, con minore influenza del calcolo pixel. Nella parte successiva del frame abbiamo l'HDR, il tone mapping, blur filter, tuning, effetto bloom, post processing e molte altre cose che sono chiaramente parte del pixel processing. Degli shader versatili, in grado di travestirsi di volta in volta da pixel, vertex o geometry sono un toccasana per gli sviluppatori, che non devono più porre limiti tecnici alla propria fantasia.

Localizzato alla destra degli shaders/SP sul diagramma ci sono quattro gruppi di unità texture. Ognuna è capace di andare a prendere dati con una grande cache per vertex e dati texture così come una nuova cache L2. 

La banda passante è stata migliorata drasticamente, con 512 bit in due direzioni. Demers afferma che “ci sono molti collegamenti e molti transistor. È stata una grande sfida”. In questo modo AMD ha raddoppiato effettivamente la banda.

Leggi altri articoli