Analisi tecnica dei nuovi
chips grafici NVIDIA
Vediamo cosa
ha introdotto di nuovo NVIDIA con i chip NV40 - NV45
Con questo, cominciamo
una serie di articoli "tecnici" per approfondire un
settore della componentistica PC estremamente importante dal
punto di vista delle performance attese dalla propria postazione
in ambito multimediale, ed in particolar modo nell'utilizzo
degli applicativi videoludici e di rendering 3D. Stiamo parlando
dei chip grafici, che ormai sono protagonisti di una continua
rincorsa alle prestazioni estreme da parte delle due aziende
che si contendono lo scettro di regine del frame per secondo:
ATI e NVIDIA.
In questo contesto
descriveremo il chip chiamato NV40 nel caso di connessione AGP
e NV45 nel caso di connessione PCI Express messo sul mercato
da NVIDIA nei mesi scorsi.
Per dare un’idea
del netto salto generazionale rispetto al precedente NV38 e
della complessità del nuovo processore grafico sviluppato
da Nvidia bastano i pochi e impressionanti dati di targa: 222
milioni di transistor prodotti con tecnologia IBM Soi ( Silicon
on Insulator) a 130 nanometri e organizzati in un’architettura
parallela e superscalare composta da 6 pipeline di elaborazione
dei vertici e da 16 effettive per i pixel. Oltre all’enorme
potenza di calcolo, l’NV40 offre nuovi set di funzioni
e stabilisce un nuovo primato per quanto riguarda la programmabilità
in campo grafico: tutta l’architettura è infatti
compatibile con le specifiche degli Shader 3.0 supportati dalle
nuove librerie Microsoft DirectX 9.0c;
sul fronte della librerie OpenGL è supportata l’ultima
versione 1.5.
Per comprendere
al meglio la complessa struttura del motore CineFX 3.0, delle
pipeline che lo compongono e le potenzialità offerte,
sia in termini di potenza di calcolo sia di funzionalità,
analizziamo nel dettaglio ciascuna della unità presenti.
Il primo stadio
di elaborazione è composto da 6 pipeline per il vertex
shading; ciascuna di esse contiene al suo interno un’unità
di calcolo scalare e una vettoriale che operano con precisione
di 32 bit su dati in virgola mobile (FP32). Con la versione
3.0 degli shader, oltre al nuovo limite di 65.535 istruzioni
che possono essere eseguite per ogni vertice, viene introdotto
il pieno supporto al controllo dinamico del flusso di istruzioni
con la gestione delle diramazioni del codice e con la possibilità
di effettuare chiamate a subroutine e il ritorno al punto di
salto. Per l’elaborazione delle istruzioni sono supportate
le modalità coissue (prevista dalle DirectX 9), ovvero
l’esecuzione di due istruzioni indipendenti all’interno
della stessa unità di shading, e dual-issue (solo NV40),
ovvero l’esecuzione di due istruzioni in due distinte
unità di shading nello stesso ciclo di clock. L’architettura
è di tipo Mimd (Multiple Instruction Multiple Data),
ovvero tale per cui ciascun elemento di calcolo è in
grado di operare in modo svincolato dagli altri con istruzioni
e dati propri; questo permette una maggiore efficienza durante
la gestione delle diramazioni del codice grazie all’indipendenza
nel controllo del flusso. Per ottenere questa libertà
di esecuzione ciascuna unità di calcolo è dotata
di una propria cache e di un proprio controller, con un conseguente
aumento di complessità del silicio. Le nuove unità
di vertex shading
possono inoltre attingere alla memoria delle texture per operare
in modalità displacement mapping. Tale tecnologia consiste
nell’elaborare i vertici attraverso le informazioni presenti
in una texture geometrica che, attraverso una scala di grigi,
indica il parametro di scostamento del vertice dalla sua posizione
originale lungo la normale locale alla superficie; è
così possibile, applicando diverse displacement map,
generare strutture geometriche diverse a partire da un singolo
modello.
Sempre a questo livello, il CineFX 3.0 introduce la tecnologia
Vertex Frequency Stream Divider, che permette di applicare uno
stesso effetto a diversi oggetti identici tra loro ottenendo
oggetti finali che si comportano in modo individuale. Pensando
a un esercito in movimento sarà possibile applicare uno
stesso effetto
di animazione al modello di ciascun soldato, ottenendo però
soggetti con caratteristiche di movimento individuali.
Successivo