
Clicca
per vedere l'immagine in dettaglio
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 multisampling.
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’FBuffer 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.