Gentili utenti vi informiamo che il team di MyTech si è spostato sul canale Hitech & Scienza di Panorama.it

      non hai uno username? regìstrati   /   recupera la password

apple / google / microsoft
unmapped

L’architettura dell’R420

Scritto da Michele Braga

L’R420 è un chip non particolarmente innovativo dal punto di vista tecnologico ed eredita il meglio dell’architettura del precedente R360; al tempo stesso ne estende però le potenzialità grazie a un accresciuto parallelismo delle unità per l’elaborazione dei vertici e dei pixel, all’introduzione delle memorie Gddr3 e ad alcuni ritocchi, più o meno evidenti, in grado di migliorare l’efficienza complessiva.

Con l’R420 ATI abbandona il processo produttivo a 150 nanometri per approdare, come aveva già fatto con l’RV360, alla tecnologia di TSMC a 130 nanometri con interconnessioni al rame e dielettrico low-K, ovvero a bassa capacitanza, anche con la linea di fascia più alta. Questo permette all’R420, che conta circa 160 milioni di transistor, di raggiungere una frequenza di clock maggiore rispetto a quella dell’R360, ma con consumi di poco superiori.

Passiamo in dettaglio i blocchi dell’architettura, evidenziandone le caratteristiche e le modifiche apportate rispetto al progetto precedente.

Partiamo dall’elemento più consistente in termini di transistor, di spazio occupato sul die e di funzionalità, ovvero dal motore grafico Smartshader HD (HD, High Definition) dotato di un’architettura modulare, superscalare e ad alto parallelismo. Il motore Vpe (Vertex Processing Engine) di elaborazione dei vertici, primo stadio della pipeline 3D, consiste di 6 unità programmabili per il vertex shading compatibili con le specifiche Shader Model 2.0; all’interno di ciascuna di esse sono presenti due Alu (Arithmetic Logic Unit, Unità Aritmetico Logica): una vettoriale a quattro componenti (coordinate x, y, z, più il valore w utilizzato per il calcolo prospettico) con precisione di 32 bit per componente, e una scalare, sempre con precisione a 32 bit. A fianco di queste è presente un controllore di flusso del codice per diramazioni (biforcazioni, salti e loop) di tipo statico; l’NV40 di Nvidia, aderente alle specifiche Shader Model 3.0, permette diramazioni dinamiche, ovvero originate dai valori assegnati alle variabili durante l’esecuzione del codice vertex shader, e l’acquisizione dei dati di una texture a livello di ogni singola unità del Vpe. Poiché ciascuna Alu è in grado di eseguire una operazione per ciclo di clock, il massimo teorico è pari a 12 operazioni per clock.

A valle della sezione programmabile del Vpe sono presenti alcuni stadi in grado di eseguire le funzioni di culling, clipping, perspective divide e di proiezione della scena sul piano 2D.

Le informazioni relative ai vertici vengono quindi passate all’assemblaggio delle primitive e al motore di setup dei triangoli. Quest’ultimo è stato ottimizzato per riuscire a distribuire in modo efficiente il carico di lavoro sulle pipeline che elaborano i pixel.

Le pipeline deputate all’elaborazione dei pixel sono organizzate in quattro quartine, ciascuna delle quali dispone di risorse dedicate ed è in grado di operare come blocco indipendente. Tale tipo di architettura permette di differenziare il chip in versioni a 4, 8, 12 (X800 Pro) e 16 pipeline (X800 XT) per i diversi segmenti di mercato. La disattivazione dei blocchi è effettuata in fase di produzione a livello del silicio, precludendo qualunque possibilità di riattivarli.

Ciascuna delle quartine dispone di un accesso all’Hyper Z HD che raggruppa al suo interno lo Hierarchical Early Z Test (test gerarchico preliminare sulla coordinata Z), la cache Z e Stencil, e gli algoritmi Z Compression e il Fast Z Clear.

I quattro blocchi di pipeline condividono anche una batteria di 32 registri temporanei, nell’R360 erano 12, e dei nuovi registri che permettono di identificare le due differenti facce del poligono per i modelli di illuminazione a doppia faccia. L’introduzione di un maggior numero di registri ha lo scopo di evitare che vi siano conflitti nell’accesso da parte delle diverse pipeline e di cercare di mascherare le latenze nei tempi di accesso ai dati. Ogni pipeline può essere scomposta in tre componenti che operano in serie: un’unità per lo shading dei pixel (Psu, Pixel Shader Unit), un segmento che si occupa delle fasi di fog, alpha test, stencil test, depth test e infine un segmento dedicato ai filtri antialiasing con tecnica multi-sampling. L’unità Psu è composta da una coppia di Alu vettoriali a tre componenti con precisione di 24 bit per componenti, da due Alu scalari anch’esse con precisione a 24 bit e da un’unità per le texture a 96 bit, ovvero con gestione di quattro componenti a 24 bit.

Nell’unità di texture ATI ha introdotto l’accelerazione di un nuovo algoritmo di compressione denominato 3Dc che descriveremo in modo dettagliato più avanti in questo stesso articolo. All’interno di ciascuna Psu è inoltre presente una versione evoluta dell’F-Buffer, ovvero una porzione di memoria riservata al parcheggio dei dati relativi ai pixel appena elaborati che devono poter essere ricaricati al volo per l’esecuzione di shader in più passi.

L’utilizzo dell’F-Buffer consente di sviluppare shader senza limiti di lunghezza; tale tecnica trova impiego in un ambito puramente professionale. Il limite base per la lunghezza massima del codice shader è stato infatti innalzato a 1.536 istruzioni, che sono ben oltre il numero di istruzioni tipicamente presenti negli shader impiegati dagli sviluppatori di giochi.

L’unità Smoothvision HD è in grado di applicare algoritmi di antiliasing di tipo multi-sample a 2, 4 e 6 campioni con griglie di campionamento che possono essere personalizzate a seconda delle necessità. ATI ha introdotto una nuova tecnica, denominata Temporal Antialiasing, che sfrutta la programmabilità dello Smoothvision HD e la caratteristica di persistenza delle immagini sulla retina dell’occhio umano. Sopra ai 25 fotogrammi al secondo l’occhio umano tende a non distinguere due fotogrammi consecutivi, mescolandone le informazioni; partendo da questo principio il Temporal Antialising provvede ad alternare due griglie di campionamento predefinite ad ogni fotogramma creando l’effetto ottico di una tecnica di antialiasing eseguita con un numero doppio di campioni rispetto a quelli effettivamente calcolati.

Prendendo ad esempio un antiliasing 2x, l’effetto ottenuto con il Temporal Antialising sarà pari a quello di un antialiasing classico di tipo 4x; il vantaggio è ovviamente in termini computazionali, in quanto il chip lavora effettivamente con due campioni per ogni pixel. Tale funzionalità è operativa solo con il V-Sync abilitato e dispone di una soglia, compresa tra i 24 e 30 fotogrammi al secondo, sotto la quale viene disabilitato per evitare che l’occhio riesca a distinguere difetti dell’immagine dovuti alla differente griglia di campionamento.

Commenti   (Inserisci un commento)

Ancora nessun commento.

Effettua il login