La Light Speed Memory Architecture
rappresenta la tecnologia più pervasiva del GF3 perchè
interessa in qualche modo tutte le sezioni che richiedono
un accesso alla memoria e quindi praticamente tutte fasi del
rendering. Lo scopo è quello di accelerare l'accesso
e renderlo più efficiente, fattore questo che a tutt'oggi
rappresenta il parametro più critico dei moderni acceleratori
3D e in special modo di quelli nVidia che dispongono di una
potenza in esubero che non trova riscontro nella massima velocità
fornita dalla memorie attuali.
Il problema, che è sempre
esistito, si è poi accentuato con l'introduzione del
T&L. Questo infatti ha generato una forte tendenza all'aumento
della complessità geometrica. Ma un maggior numero
di triangoli implica anche triangoli più piccoli e
quindi sempre maggiori difficoltà a mantenere il rendering
efficace. Ad esempio se un triangolo occupa pochi pixel dello
schermo è evidente che risulta uno spreco prelevare
256bit (128bit DDR) di texture, pergiunta sequenziali.
L'idea
vincente di nVidia consiste nella gestione della memoria in
4 banchi interlacciati (interleaved). Ciascun banco a 64bit
(32 DDR) è gestito da un controllore della memoria
dedicato. In questo modo si riduce la granulosità dell'accesso
ed è possibile eseguire fino a quattro accessi in zone
differenti della memoria contemporaneamente. La tecnologia
è nota e prende il nome di Cross Bar, tuttavia
non era mai stata applicata così radicalmente in un
chip 3D.
A questa ottimizzazione dell'accesso
in senso generale sono state affiancate diverse tecniche di
ottimizzazione della banda richiesta per la gestione della
profondità (Z-buffer):
Z-Buffer
compression e Z Occlusion Culling
Ultimamente
lo Z-buffer è diventato una delle cause maggiori
di saturazione della banda della memoria. Infatti per ogni
pixel renderizzato sullo schermo è necessario prelevare
il valore dello Z-buffer pre-esistente, confrontarlo con quello
appena calcolato e salvare il risultato nel caso in cui il
pixel attuale si trovi sopra quello pre-esistente oppure scartare
tutto il lavoro se si trova dietro (quindi non visibile).
Per ovviare a questo spreco di risorse, che risulta sempre
più frequente a causa dell'aumento della complessità
delle scene, nVidia ha scelto di utilizzare due tecniche che
operano contemporaneamente: Z-buffer lossless compression
e Z Occlusion Culling (versione semplificata dell'HSR).
La compressione dello Z-buffer
consiste nell'applicazione di algoritmi di riduzione dello
spazio occupato in memoria dai blocchi di dati. Il risultato
è un rapporto di compressione fino 1:4 (analogo a quello
del Radeon) senza perdita di informazione. Non molto viene
spiegato da nVidia ma c'e' da aspettarsi che questo valore
diminusca e anche di molto in prossimità dei bordi
dei triangoli. L'effetto complessivo è comunque una
riduzione dell'occupazione media di banda per l'accesso e
la gestione dello Z-Buffer.
La seconda tecnica appare molto
interessante. Purtroppo non si tratta di HSR (Hidden
Surface Removal) vero e proprio (come nella tecnologia
PowerVR) ma di una versione semplificata ma comunque interessante
ed efficace. In pratica con lo Z Occlusion Culling viene
eseguito un controllo anticipato su un blocco di dati provenienti
dallo Z-buffer per determinare il valore di Z minimo e massimo.
In base al valore Z degli estremi delle scanline che si vanno
a rasterizzare è possibile capire se i pixel sono visibili
o vanno scartati in gruppo. In pratica si risparmia parte
dei calcoli inutili di cui si parlava prima.
Le tecniche più radicali
di HSR richiedono in genere una consapevoleza nel programmatore
e quindi la scelta di nVidia di realizzare una versione trasparente
(o quasi) per l'applicazione appare molto azzeccata. C'e'
ovviamente da sottolineare che parte delle tecniche impiegate
traggono 'ispirazione' dall' Hyper-Z tecnology di Ati.

Il
test sintetico VillageMark conferma la bontà di questa
tecnologia. Nel test si ha un elevato grado di sovrapposizione
dei poligoni ed è in questo caso che si sprecano preziose
capacità di calcolo renderizzando pixel non visibili.
In figura potete vedere il confronto tra GF3, GF2 e Ati Radeon.