前段时间,读者询问了这样一个问题:“双通道内存是不是具有更高的带宽?”对于这个疑问,笔者要指出这是一个错误的问题!内存规格中没有双通道内存的说法,误以为它是内存中的一种那就错了。对于这位读者所要了解的信息,正确的应该这样表达:“双通道模式下内存的带宽跟单通道模式相比,是不是具有更高、甚至两倍的带宽呢?”想要解释清楚这个问题,我们需要先了解带宽和双通道这两个概念。
一、为何需要双通道
1.传输数据的能力—带宽
在专业的角度上带宽是指波长、频率或能量带的范围,特指以每秒周数表示频带的上、下边界频率之差。也就是说带宽是用来描述频带宽度的,但是在数字传输方面,也常用带宽来衡量传输数据的能力,例如用它来表示单位时间内传输数据容量的大小、数据吞吐的能力。带宽这个词比较抽象,很多人理解起来可能比较困难,笔者作个比喻吧。
比如一座桥,当车的数量很少时,桥面宽一些和窄一些,对通过这座桥的车的速度没有任何影响,但随着车流的逐渐增大,桥面比较窄就不能在同一时间内通过更多的车辆,甚至造成塞车。当然,为了提高车流量,我们可以通过扩大桥面,也可以提高允许的最大车速。那么,我们所说的单位时间内通过的车流量就我们可以用公路的路面宽度和允许的最大车速的乘积来表示,那么这个值相当于桥的“传输数据流”的能力,指的就是桥的“带宽”,数据流当然就是指车流了。
如果我们把CPU到北桥(CPU总线)、北桥到内存(内存总线)之间的通道看作两座桥的话,那么就可以用带宽来表示它们之间传输数据的能力。根据数据传输率(带宽)的计算公式:数据传输率(带宽)(Gb/s为单位)=传输频率(MHz为单位)×传输位宽(Bit为单位)/8,我们就可以计算出内存或CPU的带宽了,比如一条DDR400内存的带宽就为400×64/8=3.2Gb/s。
小提示:工作频率或带宽是内存的两个最为重要的参数,只要我们知道其中一个,另外一个就可根据带宽的计算公式计算出来。在如图1的内存标识上我们可以出这是一根PC3200规格的内存,这表示它的带宽为3200Mb/s,那么它的工作频率=3200×64/8=400Mhz。
2.满足CPU的胃口—双通道模式
理解了上述概念以后,我们知道不管是CPU到北桥,还是北桥到内存各自存在一个带宽的概念,两者之间进行数据交换就会引出两个带宽之间如何匹配的问题。通常,在实际配机过程中是先选择一款合适的CPU,然后才根据CPU而选择合适的内存,也就是可以先确定CPU到北桥的带宽,然后根据这个带宽去确定所需要的北桥到内存的带宽,尽量选择带宽跟CPU总线带宽相等的或者差别不太大的内存。
笔者以Pentium 4处理器搭配一个比较合适的内存为例,其P4的外频为200MHz,而P4处理器与北桥芯片的数据传输采用QDR(Quad Data Rate,四次数据传输)技术,其FSB是外频的4倍(即800MHz),由于P4 FSB的传输位宽为64bit,根据上面所提供的带宽的计算公式,那么P4的总线带宽=800MHz×64Bit/8=6.4Gb/s。而目前DDR 400只有3.2Gb/s,仅能提供处理器所需带宽的一半,很明显内存的带宽已经不能满足处理器庞大的胃口了。很明显,这个时候提高内存带宽成为了必然。
我们按照带宽的计算公式知道要想提高带宽,可以从传输频率和传输位宽两方面入手,但是由于制造工艺上的限制,提高内存自身的传输频率已经非常困难了,品质优秀的内存最多也只能够工作在250MHz下,即便如此,传输率上的提高还是少得可怜。所以,提高传输位宽成为了唯一可行的方法。但是这个时候问题又来,由于DDR内存的位宽只有64bit,当然通过内部设计提高到128bit也是不太现实,那么只有通过其他变相的技术来达到这一目的了,于是双通道技术就浮出了水面。
小资料:为什么SDRAM和DDR是64位的?
内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数量。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。当控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,而这个位宽通常我们称之物理Bank(Physical Bank)的位宽,而Intel Pentium系列的数据总线的位宽是64bit的,那么内存厂家为了跟处理器的数据总线的位宽匹配就必定把要把内存的物理Bank的位宽设计为64bit的,所以SDRAM和DDR内存是64位的。
二、双通道是如何提高带宽的
也就是说双通道技术就是提高了CPU 和内存之间的传输位宽而设计的,首先它将原本为64bit位宽的内存控制器增加到两个,总体的内存位宽则扩充至128bit,从而达到提高了内存的整体传输率的目的,继而产生了两条内存同时工作的解决方案。那么双通道到底是怎样提高传输位宽的呢?
为了大家更好地理解,我们还是打个比喻吧。我们把CPU比喻为工厂,内存比喻为仓库,那么工厂要加工仓库中的材料就必须先把仓库中的原材料运到工厂进行加工(CPU对内存中的数据进行寻址、读取操作),然后再把加工好的材料运会到仓库的保存(CPU对内存进行数据写入操作),而仓库和工厂之间就好比有一条双向的桥,为了让桥上车辆能够有序地进行而要在桥上安装了在同一时间内只能发出一种交通指令的红绿灯(内存控制器)。那么单通道就理解为一层或两层(两层不能同时处于工作状态)的桥面,而双通道就是好比上下两层的桥面各安装了一盏红绿灯,上下两层桥面可以同时工作在不同交通指令下!
主板的双通道技术原理其实就跟这个双层双路灯的桥的原理是一样的。一个内存控制器控制两个通道,这就意味着发给两个通道的寻址、读取数据的指令是一模一样的,而一个内存控制器是无法发出两套指令的。而双通道则是两个独立的控制器分别控制两个不同的通道,这样每个通道的内存模组的架构就可以不同,因为两种指令的独立性,两个内存控制器都能够在彼此间零等待时间的情况下同时运作(图3)。当控制器准备进行下一次存取内存的时候,另一个控制器就在读/写内存,反之亦然。如此一来,两个内存控制器就具备了互补的“天性”,可以让有效等待时间缩减50%,从而使CPU到内存之间的传输数据的能力翻倍。但是在双通道带宽合成方面会有比较大的麻烦,毕竟内存地址的转换是相当复杂的,变数也就更多。所以,单通道与双通道代表了两种设计,而这样的设计体现来就是在内存配置时有了更多的变数。
说到这里,我们可以看出双通道技术其实只是设计在主板北桥芯片组的内控制CPU对内存中的数据进行寻址、读取的一种技术而已,目的就是为了提高两者间数据传输能力,跟CPU或内存本身并没有什么关系。
三、双通道技术在实际应用中的差别
现在CPU的FSB(前端总线频率)越来越高,而且由于CPU芯片的技术特别的差异,在实际选择匹配的内存产生了变数,比如两颗外频都是200MHz的英特尔 Pentium 4和AMD Athlon XP处理器芯片,由于前者采用了QDR技术使得处理器与北桥芯片的前端总线频率达到了800MHz,这样所需要的内存带宽就达到了6.4Gb/s;然而,对于在处理器与北桥芯片之间的数据传输技术采用DDR(Double Data Rate,双倍数据传输)技术的AMD Athlon XP,其对内存带宽的需求远远低于英特尔的 Pentium 4平台,只有后者的一半。
所以,双通道的内存控制技术的出现确实令使用P4的系统在性能上得到了提升,而且从理论上而言带宽可以提高到原来的两倍,但是在实际的应用过程中也并没能达到理论上的2倍峰值带宽,其中因素还有很多,譬如延迟时间、命中率等等。
而另一方面,在同样外频的AMD平台上使用双通道就不会有太多的实际收效了。譬如,在AMD Athlon XP平台上使用2根256MB DDR400并开启双通道模式,这样并不会比只用一根512MB DDR533在整体性能上有太大的提高,实际效果通常也只有20%左右的性能提升。那么,这时我们选择一根512MB DDR533就比选择两根256MB DDR400就更具性价比了!
[1] [2]
(出处:http://www.sheup.com)
[1] [2]