只比普通条贵20元!海盗船行货全面测
一、内存基础知识简介
1、CPU从何处得到数据?
无论是主流的DDR 400、还是非常先进的DDR 566,现有我们所指的内存都是指RAM(Random Access Memory,随机存储器),作为高速电子设备(CPU)与低速机械存储器(硬盘)之间的数据缓冲,所有数据都要在内存中进行读取/写入操作,才可能与CPU的缓存交换资料,得到正确的计算结果。CPU的缓存/寄存器和内存都无法永远保存数据,在断电时资料会丢失,而最终结果必须存储到硬盘上,才能保存下来。
CPU工作的过程中,它会先从内存传输过来的程序中找出程序计数器,读取相应的指令,进行指令解码后执行相应操作,然后读取下一个指令,此过程常常分离为几步:
- 读指令
- 找到数据A
- 找到数据B
- 把B与A相加
- 存储A到C上
期间需要大量的读/写操作,为了保持最高效率,数据A、B、C最好能位于缓存中。CPU在缓存中无法找到所需数据时,就会到内存中找,再找不到就会到硬盘找,直到找到为止。
由于硬盘的速度很慢,因此,大容量和高速内存可加快寻找过程,提高整体性能。在CPU与内存之间的通道是FSB(Front Side Bus,前端总线),内存数据通过FSB先传到北桥内存控制器,然后再通过传输到CPU。
2、双通道的增强
DDR SDRAM(Double Date Rate,上下行双数据率SDRAM)是相对于SDR SDRAM(Single Date Rate,单数据率SDRAM)而言的,它们的区别在于时钟驱动数据的差异。一个时钟是电压从0到有信号(SDR是3.3V,DDR是2.5V)的周期,在SDR内存里,它利用电压上升的过程(即上升沿),来控制数据的进或出,然后内存会等待下一个上升沿进行重复的操作。DDR则能同时利用上升沿和下降沿(电压下降的过程)来传输数据,那么传输量就会变为两倍。
3、内存如何寻址?
请设想内存是一个Matrix(不是黑客帝国,而是矩阵),它分为行和列,利用行和列的号码,就可以找到某一个单元的数据。许许多多的内存存储单元组成一个bank(储蓄库),旧的i845 Brookdale芯片组仅有4个bank,只能对寻址2GB内存。新的i865 Springdale和i875 Canterwood拥有8个bank,最大可以寻址4GB内存。所以说,bank的数量与容量决定了内存的寻址,即是内存最大容量。
现在的内存条分为单面和双面,单面占用一个bank,双面占用两个bank。所以在i845主板上,我们可以使用的最大内存条数量为2条双面内存或四条单面内存,i865/i875可以支持4条双面内存或8条单面内存。不过,以上只是理论值,实际的容量按照主板的设计而定。
以上种种与反应时间和带宽有什么关系?别急,请接着看。
二、双通道/四通道-增加带宽的捷径
除了英特尔和nVidia(nforce 2/3)的产品外,主流的芯片组如:VIA KT/PX 系列和SiS 746/648都没有双通道能力,因此它们理论上是比双通道芯片组慢的。毕竟在相同的总线速度下,总线的传输能力越大,可以传输的数量越多。DDR SDRAM工作于64位总线,增加了一个内存控制器后,就等于128位总线。如果只使用单独的内存控制器,性能就会大受限制,此话怎讲?
让我们来看看P4架构,它使用四倍泵总线,设计类似DDR,除了上升、下降沿同时传输信号外,还作了进一步改进,把1.5电压信号分为两级,第一级是0-0.7V,第二级是0.7-1.5V,那么,可以传输的数据量就变为了四倍。在使用i845或仅插入单通道内存的i865/875系统上,FSB会传输过多的数据给内存控制器,内存控制器无法处理,必须花时间来等待,降低了工作效率。
大家稍微明白了一点吧,可是此理论并不适用于所有的系统,在Athlon XP系统上,情况却恰恰相反。因为Athlon只使用了双通道总线,总线传输的数据量没有这么大,第二个内存通道的用处相对于小一些,这时,内存的反应时间就变得很重要了。
三、反应时间
从上文我们可以看出,增加带宽并不是一件难事,只要增加内存通道和总线宽度即可,让每个时钟传输更多的数据,或者,提高数据传输的速度,同样能够增加带宽。反应时间就没那么简单了,它指的是内存给出命令和命令实际执行之间的时间,谁都知道反应时间越小越好,然而,在内存的读/写过程中,许多因素都会让反应时间增加。
首先,FSB与内存控制器不是运行在同一速度(1:1)上,任何信号的传输,都会出现等待同步的情况。比如设置为5:4这个常用的比率,FSB经过5个周期,内存才经过4个周期,这意味着,总线必须经过5个时钟周期才能够互相交换信息。如果一个命令从CPU发到内存请求数据,那么,要等到信号匹配,至少要等待4个时钟周期,见下图:
-----*****-----*****-----*****(总线频率)
----****----****----****(内存频率)
一般情况下,内存与总线同步,可以获得更佳性能,这也是高性能内存,都需要超FSB频率使用,至少达到内存频率同级,才能发挥更佳性能的原因。
第二,内存操作本身也需要花费许多反应时间。当内存控制器发出某个地址的请求时,先发送一个激活(ACTIVE)命令,把对应的数据单元从“预充电”状态变为“激活”状态,在BIOS中,可以调节tRP参数来控制这个时间,通常花费2、3或4个周期。
接着,是tRCD(Row to Cas Delay,行地址到列地址控制器延迟时间)操作,这是发送行地址里面的内容到内存缓冲区必须占用的时间,通常有2、3或4个周期可选。
然后,就是我们很熟悉的tCL,俗称CAS(Column Address Strobe,列地址控制器)反应时间,即把指定列地址单元的内容发出所需要的时间,通常有2、2.5或3个周期可选。tCL对于总线突然的大量数据传输(突发操作)很重要,如果下一次的内存读/写在同一行中,tCL就决定了一个单元移到另一个单元所需的时间。在多重连续寻址时,常常都会出现超长数据串传输,短CAS的优势尽显。
假如请求的是行地址,那么,就要求到tRL,俗称tRAS(Row Address Strobe,行地址控制器)反应时间,通常有5、6、7或8个周期可选。
总的来说,每次读/写存取,大约要花费12个NOPs(No OPeration,无操作)时钟周期来等待数据的发送,越复杂的操作,所需的时间越长。
tRP、tRCD、tCL各用了2个时钟,tRAS用了5个,突发传输用了8个
也许上面的理论让你头晕脑涨,不过,看看它的发展你就会知道缩短反应时间有多难。在过去10年中,反应时间仅从120ns(纳秒)提升到50ns,而带宽只用了5年时间就从PC133(1GB/秒带宽)提升到PC4000(8GB/秒)带宽。为何这么难?因为缩短反应时间有可能会影响稳定性,不能随时所欲地想短就短,所以当英特尔在i875加入PAT(Performance Acceleration Technology,性能加速技术)时,对缩短反应时间作出了杰出贡献,从而赢得了满堂喝彩。尽管i865也可以用升级BIOS的方法来实现PAT,但它没有足够快的硅圆片基础支持,到头来只会导致稳定性不足。
四、分频器
分频器主要作用是让内存工作在与FSB不同的频率上,超频时,我们会发现CPU和FSB的频率总是高于内存,利用分频器可以用速度较慢的内存来搭配高速CPU。如把P4超到250MHz FSB,很少内存可达到此速度,利用5:4分频器,就能让PC3200/DDR400内存顺利工作,即使内存与FSB不同步对性能有影响,仍能提升整体的传输速度。
理想总是美好的,事实总是残酷的,在实际使用中,我们往往发现插入双通道内存时,分频没有那么顺利。许多i875主板都有挑内存的毛病,就算是高性能的内存,也不保证肯定能用5:4或3:2分频器。特别是插满内存槽的时候,不兼容现象显得日益严重。若是你遇到不能启动的情况,也许换个品牌或型号的内存即可解决。同时,当出现这类故障时,不妨升级一下主板的BIOS,也许会有意外惊喜。
在缺省情况下,BIOS会先读取内存条上SPD(Serial Presence Detect,连续存在检测装置)模块的信息,以最长反应时间为准。假如系统稳定的话,可以适当缩短反应时间,以获得更佳性能。