NV40: architettura di base
Prima di iniziare a descrivere le caratteristiche
architetturali del progetto NV40 è necessario fare una importante premessa. NVIDIA si
posiziona sul mercato come uno dei produttori più impegnati nello sviluppo di nuove
soluzioni, che si concretizza nella possibilità di fornire agli sviluppatori nuove
tecnologie che possano avantaggiarli nel loro lavoro. Per questo motivo, ritornando al
progetto NV30, si capisce perché NVIDIA abbia cercato di introdurre caratteristiche
tecniche e funzionalità superiori a quanto indicato dalle specifiche in vigore in quel
momento, come ad esempio quelle delle API DirectX 9.
Il ruolo da precursore è, per NVIDIA, ancor più chiaro con
il progetto NV40: con questa soluzione NVIDIA vuole infatti porre le basi per quella che
sarà la grafica 3D negli anni a venire, fornendo agli sviluppatori una ricca serie di
strumenti indispensabili per rendere sempre più fedeli alla realtà le scene da essi
realizzate.

|
GeForce 6800 Ultra |
GeForce Fx 5950 Ultra |
Radeon 9800 XT |
| Bus di memoria |
256 bit |
| Processo produttivo |
0.13
micron |
0.13 micron |
0.15 micron |
| Frequenza chip e
memoria |
400/1100 |
475/950 |
412/730 |
| Bus |
AGP 8X |
| Numero di pipeline |
16 |
4 |
8 |
| Texture per ciclo di
clock |
1 |
2 |
1 |
| Fill Rate |
6400
Mpixel e 6400 Mtexel |
1900 Mpixel e 3800 Mtexel |
3296 Mpixel e 3296 Mtexel |
| Banda Passante |
35,2
GB |
30,4
GB |
23,3 GB |
| Versione Vertex
Shader |
3.0 |
2.0 |
2.0 |
| Versione Pixel Shader |
3.0 |
2.0 |
2.0 |
| Full Scene
Anti-Aliasing |
Intellisample
3.0 |
Intellisample HCT |
Smoothvision 2.1 |
| Altre caratteristiche |
CineFX
3.0, UltraShadow II |
CineFX Engine 2.0, UltraShadow Technology |
Smartshader 2.1, Videoshader, Hyper-Z III+,
Truform II |

Una delle principali innovazioni di NV40, a livello
architetturale, è dato dal supporto agli Shader versione 3.0, sia per pixel che per
vertex shaders. Lo schema seguente mostra le caratteristiche delle API DirectX 9.0c
verificate dall'architettura NV40:
|
DirectX 9 |
DirectX 9.0c |
| Vertex Shader
Model |
2.0 |
3.0 |
| Vertex Shader
Instructions |
256 |
65.535 |
| Displacement
Mapping |
- |
si |
| Vertex Texture
Fetch |
- |
si |
| Geometry
Instancing |
- |
si |
| Dynamic Flow
Control |
- |
si |
| Pixel Shader Model |
2.0 |
3.0 |
| Required Shader
Precision |
fp24 |
fp32 |
| Pixel Shader
Instructions |
96 |
65.535 |
| Subroutines |
- |
si |
| Loops &
Branches |
- |
si |
| Dynamic Flow
Control |
- |
si |
La precisione degli shader richiesta è a 32bit, con un
aumento rispetto ai 24bit richiesti in precedenza dalle API DirectX 9. I chip NV3x
permettevano precisione sino a 32bit, mentre quelli ATI R300 e derivati erano fissi a
24bit, rispettando appieno le specifiche ma sfruttando un vantaggio prestazionale rispetto
alle architetture NVIDIA quando queste dovevano operare a piena precisione, con 32bit. |