开创视觉计算帝国GTX280/260权威评测
第二章/第六节 GTX200核心不惜成本启用512Bit显存
无论CPU还是GPU,在核心处理能力大幅增强的同时,对于外部总线的带宽也提出了更高要求,512Bit显存控制器被启用。
● AMD的512Bit环形总线显存控制器
首颗使用512Bit显存的GPU是AMD的R600,可惜这颗GPU的效能太差,根本用不到512Bit显存的海量带宽,通过其后续产品RV670核心的性能来看,512Bit相对256Bit的优势微乎其微,以至于AMD在下一代GPU中都放弃使用512Bit设计。
AMD使用的是环形总线(Ring Bus),显存控制器并不会直接从显存颗粒中读写数据,而是只把数据放在环形总线之中,然后程序自行通过环站取回所需数据包,从而减轻控制器复杂度和压力。但这种结构会使单个的存取操作的延迟变大,但总体来说能够提高大规模数据读取的命中率。
环形总线有很多优势,位宽扩充相对容易、PCB布线相对容易、显存频率可以轻松达到很高,但却又不得不面对延迟增加和效率降低的问题,位宽越大效率就越低,至少我们没有在R600身上看出512Bit环形总线能比256Bit强多少。
● NVIDIA的512Bit交叉总线显存控制器
NVIDIA方面,大家都知道G92核心未能超越G80,原因主要就出在显存位宽上面,G92虽然拥有更高的频率、更强的纹理单元,但是256Bit无论如何都无法超越384Bit,9800GTX只是勉强接近于8800GTX的性能,高带宽在DX10游戏和开高倍AA的情况下有着决定性作用!
而NVIDIA则是沿用了传统的交叉式总线(Crossbar),每组显存控制器都与光栅单元(ROP)和纹理缓存(L2)绑定,从G70到G80增加了两个64Bit控制器,这就构成了64×6=384Bit位宽。
现在从G80到GTX200,NVIDIA又增添了2个64Bit控制器,这就组成了64×8=512Bit位宽。Crossbar相比RingBus的优势就是数据存取延迟低,但是遇到大规模数据传输时,为了提高命中率就必须把控制器设计的相当复杂,由此导致晶体管开销很大:
显存控制器在GTX200核心中所占据的芯片面积仅次于流处理器
NVIDIA从G70的256Bit、到G80的384Bit、再到GTX200的512Bit,是一个循序渐进的过程,位宽越高设计难度和晶体管开销就越大,因此必须权衡付出的成本代价及性能收益、根据现有的制作工艺来决定是否使用512Bit控制器。
现在随着DX10游戏对带宽的要求日益苛刻,高位宽所获得的性能提升也很显著,因此在新一代GPU设计时,NVIDIA不惜成本启用了512Bit显存控制器,用以消除性能瓶颈。