Come funziona l'architettura unificata

A sei mesi dall'uscita delle schede video DirectX 10 8800 GTX e GTS di Nvidia, ora tocca ad AMD con la sua Radeon HD 2900 XT. Riuscirà AMD/ATI a guadagnarsi il trono delle prestazioni?

Avatar di Andrea Ferrario

a cura di Andrea Ferrario

Editor in Chief

Come funziona l'architettura unificata

La scheda HD2900XT integra 320 stream processor, con precisione in virgola mobile di 32 bit, mentre le concorrenti di Nvidia, le GeForce 8800 Ultra/GTX e la GeForce 8800 GTS, integrano "solo" 128 e 96 unità.

Cerchiamo di capire il funzionamento dell'architettura unificata di AMD. Ai vertici si pone un Command Processor, cioè l'unità che riceve i comandi direttamente dal driver grafico. Questa unità dopo aver validato i comandi passa la palla al cosiddetto "Setup Engine", che svolge l'importante compito di preparare i dati da dare in pasto agli strema processor. In questa fase vengono effettuate operazioni che adattano i dati in base al tipo di operazione, vertex, pixel o geometry.

Prima di entrare nelle unità stream processor, le funzioni precedenti dialogano con l'Ultra-Threaded Dispatch Processor, che svolge l'importante funzione di gestire le code dei comandi per ogni tipo di shader. All'interno di questo processore ci sono degli "arbitri", precisamente due arbitri per ogni SIMD (un gruppo di unità di stream processing), che inviano le operazioni da effettuare alle unità. L'UTDP è assistito da cache shader dedicate, in cui possono essere memorizzati dei dati che verranno prelevati alla bisogna. Chiaramente esiste una logica per cui determinati task possono essere sospesi, ripresi in un secondo tempo o abbandonati, in base alla richieste del programma.

Clicca per l'ingrandimento. Lo schema della HD 2900 XT.

Una volta che i dati sono stati impilati in una determinata coda, intervengono gli stream processor che si occupano di effettuare le necessarie operazioni matematiche. In questo caso abbiamo a che fare con processori shader superscalari a cinque vie. Ciò significa che queste unità possono gestire fino a cinque istruzioni per clock, con un'unità dedicata a istruzioni trascendentali (calcoli complessi, come logaritmi, seno, coseno, etc), con una precisione 32 bit floating point. I dati, così processati, vengono spediti un General Purpose Register, cioè un registro che immagazzina il risultato o i dati temporanei.

Accanto alle unità di stream processing è allocata una texture unit, unità assistita da due ampie cache, di primo e secondo livello, dove vengono immagazzinati i dati texture. Questa unità è preposta alla gestione e trattamento delle texture, che possono essere manipolate con l'applicazione di filtri qualitativi.