简单小谈降内存时序对性能的影响
本帖最后由 ricky-gz 于 2010-5-18 11:26 编辑内存负责向 CPU 提供软件和系统运算所需的原始数据,而目前 CPU 运行速度超过内存数据传输速度很多。因此,很多情况下,CPU 都需要等待内存提供数据,这就是常说的“CPU 等待时间”。
内存传输速度越慢,CPU 等待时间就会越长,系统整体性能受到的影响就越大。因此,快速的内存,是有效提升 CPU 效率和整机性能的关键之一。
在实际工作时,无论什么类型的内存,在数据被传输之前,传送方必须花费一定时间去等待传输请求的响应,通俗点说,就是传输前,传输双方必须要进行必要的通信,而这样就会造成传输的一定延迟时间。
时序设置一定程度上反映出了该内存在 CPU 接到读取内存数据的指令后,到正式开始读取数据所需的等待时间。不难看出,同频率的内存,时序设置低的,更具有速度优势。
上面只是给大家建立一个基本的延迟概念。而实际上,内存延迟的基本因素,绝对不止这些。内存延迟时间,有个专门的术语叫“Latency”。
要形象的了解延迟,我们不妨把内存当成一个存储着数据的数组,或者一个 EXCEL 表格,要确定每个数据的位置,每个数据都是以行和列编排序号来标示,在确定了行、列序号之后,该数据就唯一了。
内存工作时,在要读取或写入某数据,内存控制芯片会先把数据的列地址传送过去,这个 RAS 信号(Row Address Strobe,行地址信号)就被激活,
而在转化到行数据前,需要经过几个执行周期,然后接下来 CAS 信号(Column Address Strobe,列地址信号)被激活。在 RAS 信号和 CAS 信号之间的几个执行周期,就是 RAS-to-CAS 延迟时间。
在 CAS 信号被执行之后,同样也需要几个执行周期。
CL 设置较低的内存,具备更高的优势,这可以从总的延迟时间来表现。内存总的延迟时间有一个计算公式,总延迟时间=系统时钟周期×CL模式数+存取时间(tAC)。
首先,来了解一下存取时间(tAC)的概念。tAC 是 Access Time from CLK 的缩写,是指最大 CAS 延迟时的最大数输入时钟,是以纳秒为单位的,与内存时钟周期是完全不同的概念,虽然都是以纳秒为单位。
存取时间(tAC)代表着读取、写入的时间,而时钟频率则代表内存的速度。
举个例子,来计算一下总延迟时间。比如,一条 DDR333 内存,其存取时间为 6ns,其内存时钟周期为 6ns(DDR内存时钟周期=1X2/内存频率,DDR333 内存频率为 333,则可计算出其时钟周期为 6ns)。 我们在主板的 BIOS 中,将其 CL 设置为 2.5,则总的延迟时间=6ns X2.5+6ns=21ns。而如果 CL 设置为 2,那么总的延迟时间=6ns X2+6ns=18ns,就减少了 3ns 的时间。
从总的延迟时间来看,CL 值的大小起到了很关键的作用。
所以,对系统要求高和喜欢超频的用户,通常喜欢购买 CL 值较低的内存。目前,各内存颗粒厂商除了从提高内存时钟频率来提高 DDR 的性能之外,
已经考虑通过更进一步的降低 CAS 延迟时间,来提高内存性能。不同类型内存的典型 CL 值并不相同。
不过,并不是说 CL 值越低性能就越好,因为其它的因素会影响这个数据。例如,新一代处理器的高速缓存较有效率,这表示处理器比较少地直接从内存读取数据。
再者,列的数据会比较常被存取,所以 RAS-to-CAS 的发生几率也大,读取的时间也会增多。最后,有时会发生同时读取大量数据的情形,在这种情形下,相邻的内存数据会一次被读取出来,CAS 延迟时间只会发生一次。
以上是一些旧资料目前主流主板BIOS中常见的内存参数设置选项主要有以下几种:CAS Latency Control(tCL)、RAS to CAS Delay(tRCD)、Row Precharge Timing (tRP)、Min RAS Active Timing(tRAS),部分主板还提供了Command Per Clock(CMD)选项。除了上述常见参数设置外,大部分主板的BIOS中还提供了内存高级参数设置,这些参数包括:Row to Row Delay(或RAS to RAS delay,tRRD)、Row Cycle Time(tRC)、Write Recovery Time(tWR)、Write to Read Delay(tWTR)、Refresh Period(tREF)等(如下图所示)。需要提醒大家的是,不同主板厂商、不同品牌的BIOS在参数名称上可能存在一定差异,但是对应的缩写基本都是统一的。所以大家不用可以去记下参数的详细名称,只要记住对应的缩写就可以了。
同时降低tCL、tRCD、tRP、tRAS四项参数获得的性能提升最为明显,不过与内存在默认状态下的性能相比,整体提升幅度也只有1%-2%左右(个别测试项目可能达到4%以上,但不具备代表性),
并不象一些用户想像的那样有大幅提升,大家在实际使用过程中很难察觉性能上的变化。而大幅降低参数延迟可能会造成内存稳定性下降。
另外,在单独调节tCL、tRCD、tRP、tRAS参数的测试中,tCL参数的变化对于内存性能的影响要比其他三项参数更加明显一些。
所以,如果内存在低时序下无法稳定工作,大家可以先逐步提高tRCD、tRP、tRAS参数的延时,然后再增加tCL参数延迟,直至内存能够稳定工作为止。
小对比测试
上下2张图的配置都一样,唯一不同的是:上图的内存时序为 8-8-8-24下图的内存时序为 9-9-9-24这里选择了几个比较简单的软件做测试。PI, Everest 内存测试,winrar,还有下面的 pcmark vantage从上面的测试可以看出价低一格内存时序对性能的提高是非常小的 《4%
除了性能方面的微弱差别外,当CMD参数设置为1T时,内存的稳定性和超频能力较2T设置大幅下降。比如在DDR2-800频率、4-4-4-10时序下,将CMD参数设置为1T后绝大多数内存均无法开机。
主流DDR2内存在1T设置下的性能要好于2T,但总体1%-3%的性能提升在实际使用中可以忽略不计。
而在稳定性方面,1T设置下内存的稳定性较差,轻则影响内存超频能力,重则影响系统的稳定性;2T则能够充分保证内存稳定工作。
对于普通用户而言,将内存CMD参数设置为1T是不明智的做法,虽然可能获得轻微的性能提升,但代价是稳定性大幅下降,得不偿失。
当然,如果您是一位热衷于追求极致性能的硬件发烧友,那么通过更改内存的时序参数就获得1%-3%的性能提升还是值得尝试的。
貌似很专业·有些看不懂 最后我的理解就是能获得1%~3%的速度提升~这些量的提升有副作用么? 好文章其实这些参数对极限超频才有重要的意义 对普通用户来说 毫无意义 虽然知道.不过还是顶下,没有设置回复可见的好帖一定要顶. 其实一般来说,降低CL是提升最大的. 本帖最后由 印第安纳琼斯 于 2010-5-19 16:08 编辑
说穿了,修改时序就是修改内存的时钟周期。这样听起来就很简单不是?
内存的各个单元都是按部就班的在工作,不正确的时序会造成工作发生冲突,就像坐电梯,这次人满了,就不能上人了。于是必须等下一个合适的时间周期,或者是发生ERROR。
顺带再扯一点来帮助理解……:
比如该DDRII800内存,它运行时最小的单位时间就是1/400M=2.5ns,它不论做什么,都只能严格按照这个周期去做。
再比如内存在400MHZ(DDRII800标准频率)运行时,某个时序最小支持到5,就是说内存需要至少2.5ns * 5 = 12.5ns的时间来工作,若是调为4,那么内存就只有 2.5ns * 4= 10ns 的时间来做同样的事,结果内存本身物理性能跟不上,就出错了。 本帖最后由 印第安纳琼斯 于 2010-5-19 16:06 编辑
我这里还有点以前研究过的数据:
从上到下是内存读取、内存写入、内存复制、延时、还有频率和时序……有的测了两次,并排写在一起。
6229 6049
7014 7013
6071 5885
79.9 84.1
667 667
4-4-4-12 5-5-5-15
6680 6884 6878 6900
6976 7002 6999 7006
6461 6638 6699 6705
75.4 72.8 72.5 72.5 72.3
800 800 800
5-5-5-15 4-5-5-12 4-5-5-14 4-5-5-15
5-5-5-16 5-5-5-18
800 800
6671 6713 6725
6986 6987 6991
6395 6524 6493
75.9 75.5 75.4 一般很难感觉出时序的差异,
这些时序的参数,也挺专业的,给菜鸟看,最好是能总结成表格;
会比较直观 我记得,如果要手动改时序的话,而本身条子又没有给出一个官方的低时序SPD信息,那么要算一个整体时间,改出来的效果才最好..
要说时序提升小?一点也不小
如果会改
CL从5,到4就提升了20%
但是不稳定性也大大增加.
反正我是不会改╮(╯_╰)╭