七、带宽篇
XGPU相当北桥芯片,其性能因素有四点:内存带宽;整体和内存延迟时间;图形处理系统带宽;与MCPX芯片之间的带宽。由于加入第二个顶点描影器的同时,把XGPU内核频率提高了33MHz,你可以想像XGPU比现有的PC显卡都快。可惜的是,XGPU却没有GeForce 3显存般的高带宽,主机的DDR内存仅有200MHz(PC3200),远低于GeForce 3的230MHz。XGPU的内存控制器有128位内存宽度,利用交错控制,提高了内存的带宽利用率。高宽度内存在提升内存带宽的同时,也把系统延迟减为一半。尽管有如此出色的内存控制器,使XBox的总带宽达到PC6400,但Xbox还使用共享内存架构 ,CPU和显示芯片要互相抢占带宽。
在大多数3D游戏中,都有2-4倍的像素透支现象,Quake 3为3倍,Unreal甚至达到6倍。X-Box未必能达到100%像素隐藏,6倍透支时,4渲染管道的效率大约是60%。一个好的隐藏像素算法仅需要4个像素管道,再加上T&L和HSR,达到1800M像素/秒是完全有可能的,不过,这仅是理论而己,XGPU所能达到的有效像素填充率才值得我们关心。
Xbox的总带宽为6.4GB,GeForce 3 + 奔腾3 + PC133 SDRAM的组合约为8.5GB/秒,GeForce 3 + Athlon + nForce 420D + PC2100 DDR的组合为11.6GB/秒,PS2的RDRAM和2560位嵌入式DRAM更高达51.2GB/秒。从数据上分析,XBox已经明显输了别人一大截,按照上述情况,奔腾3 + PC133 SDRAM不是强大得膳侣穑课颐欠峙?.1GB/秒给主系统,5.3GB/秒给其余设备,明显是不够用的,微软怎样解决这个难题呢?
计算一个场景的实际带宽需要很不容易,因为我们难以了解缓存的工作效率,或顶点描影器究竟需要多少带宽。幸好,我们还可以按照常规的3D构图,来大致推断出带宽的使用情况。
Xbox主要的输出对象是NTSC电视机,并非显示器或HDTV(high definition television,高清晰度电视),大多数游戏仍然停留在648 * 480。同时,Xbox的刷新率限制在60Hz,这两个因素都大大减轻了带宽的负担。那么,在游戏加上32位色、32位Z缓冲、每像素4纹理、三线性过滤后,假设游戏复杂场景导致4倍透支,并且Z缓冲操作使用1.2倍率器。