内容导航
三、nVIDIA的设计:灵活是我的追求
2001年6月5日,一心想扩展盈利点的显卡芯片市场的巨无霸nVIDIA向世界推出了它的第一款主板控制芯片组——代号为Crush17的nForce,迈出了nVIDIA在芯片组市场上的第一步。它是AMD处理器平台上第一个采用双通道内存的芯片组,顿时引起了业界的轰动。2002年7月16日,nForce的接班人nForce 2正式亮相,研发代号Crush18,它们在双通道的基本架构上,完全相同。不过,我们还是拿现在热卖的nForce2进行分析,这样大家可能更感兴趣。
首先要提出的一点,也是人所共知的一个问题,就是nForce所针对的Athlon体系,有一个巨大的限制,那就是FSB带宽,与同频的DDR内存相同。也就是说单通道的DDR内存就可以满足相同时钟频率的FSB带宽,因为两者都是DDR传输模式,都是64bit的位宽,这的确给nForce出了个难题——英雄无用武之地。如果用Intel的设计思路去分析,的确是这样。不过,这在DIYer中也引出了当内存带宽高于FSB带宽时的深入讨论。
nForce2富余的内存带宽怎么被利用?
对于传统的芯片组而言,由于只有一个内存控制器,所以内存在一个工作周期内只能为一个设备服务,比如为CPU提供数据时就不能向AGP传输数据。以前曾有不少人提出,DDR-333内存对AMD处理器并不是没有用,因为内存是数据交换的中心,不光是CPU要用,AGP也会用到,其他设备也会用到(如IDE、PCI插卡),但这个说法似乎表明内存可以并行处理多项数据请求——AMD处理器2.1GB/s(133MHz DDR FSB频率,64bit位宽)就够了,剩下的600MB/s(对于DDR-333的带宽而言)就留给其他设备吧(比如USB设备、ATA硬盘)……但这显然是错误的说法。
对于单个内存控制器来说,如果内存带宽已经超出单个设备所需要的最高带宽,那么剩下的好处就是进一步减少传输延迟了(工作频率越高意味着相同延迟周期下总延迟时间减少)。但是,传向CPU的数据带宽仍然受限于FSB,这也是为什么在266MHz FSB下,KT333会相对KT266A只有轻微的性能提高的原因,这显然与带宽的提高严重比例不符(在P4系统上,分别使用DDR-333与DDR-266的性能则有明显差距)。对于DDR-400也是一样,毫无疑问,nForce 2在使用一个通道的DDR-400(带宽3.2GB/s)时也会遇到这种尴尬。不过,幸运的是nForce 2有TwinBank(下文简称TB),也就是双通道技术,在使用两个通道时,情况就发生了某种变化。

nForce 2的TwinBank架构(以IGP为例)
请注意上面的结构图,可以发现nForce有两个完全独立的内存控制器,这是nVIDIA与Intel在多通道内存设计上的一个重要不同之处,随之也产生了功能上的差异,从中你能体会到多通道设计的其他用意。
有关TB的介绍在nForce时代就已经很多了,目前已经基本达成共识,即nForce在Athlon平台上并非像QBM SDRAM那样,两个控制器按时钟交错的方式交替传输数据以达到两倍于单通道的性能,也不是像Intel那样相当于RDRAM的双通道设计,而只能做到传统的交错传输以进一步减少延迟(一个通道工作时,另一个通道进行提前准备)。nForce的双通道最主要的优点就在于更好的多任务能力。

TwinBank的多任务应用图解
其实,在当前的PC系统中,内存以及它的带宽是极为重要的,由于它是数据交换的中心,随着DMA数据传输方式的广泛应用,内存的角色也越为显著,但是因为内存的独占式工作模式而无法同时为多个设备提供服务。nForce拥有两个内存控制器,也就意味着同时为两个设备提供数据成为了可能,比如CPU在向一个通道写入数据时,另一个通道正在接受AGP的访问或者是硬盘控制器的请求,不过这种并行操作的频繁程度究竟有多高有待考证,况且在DMA的起始段也要有CPU的参与。CPU一般都会先在内存中生成指令包,然后让DMA设备到内存中读取这个指令包并执行,所以肯定会在某个通道形成寻址冲突,但是与以往的单个内存控制器的系统相比,nForce的设计还是在一定程度上提高了多任务能力,增强了系统的处理效率。而且从AMD处理器的双向寻址到连接南北桥的HyperTransport总线的双向传输能力,似乎都在暗暗的支持着这个优势的有效发挥。
另外,由于每个通道是独立的控制器,也使组成双通道的DIMM结构没有了限制,nVIDIA也是这么宣传的——可以以不同的容量或规格的DIMM组成双通道。但从这点也可以看出,如果真这么干了(用不同容量的DIMM组成双通道),RAID 0式的带宽提升也就很难实现了。因此,nVIDIA赢得了灵活性,但也降低了在带宽方面的追求,不过话又说回来,在Athlon平台上,追求更高的带宽并不现实。至于插在nForce主板上某两个DIMM槽中,性能就会有所不同,完全是具体设计上的原因,不必大惊小怪。
综上所述,可以看出,因为CPU平台的不同而产生了两种不同的双通道设计思路,由于目前的DDR-400内存已经能完全满足AMD处理器的需要,所以设计成Intel那样的双通道是费力不讨好的,而DDR-400也能满足老一辈400MHz FSB-P4的需要,因此我们要客观看待两种不同的设计。nForce在AMD平台上虽然不能发挥双通道的带宽优势,但在多任务性能的提升上是不可忽视的。不过,TB结构也直接导致了SPP/IGP的引脚增加,毕竟至少多出了一条64bit数据总线与两条内存地址线,使SPP/IGP的引脚数达到了840pin,这在AMD平台芯片组中算是最多的了(KT333/400的北桥才只有552pin),同样的问题也困绕着Intel 865/875。由此便又引出下面的话题。