我想大家都在绞尽脑汁发掘计算机的效能,那这个所谓的效能是什么呢?也就是内存带宽对整个系统从启动到关机的一些重要作用,它关系到系统整体速度。大家在设定这些memory timings时,先以低总频率(高倍频低外频)来熟练一切,其效能也许比一味追求高内存频率还要好很多。
内存参数规格简介
选购内存时,大家也都知道,相同频率下所谓的延迟参数(time of delay value)越低的内存其整体带宽也会随之增加,也就是要尽量选CAS/tRCD/tRPD/tRAS参数值低的内存。举个例子,如果系统FSB为400MHz,你需要搭配使用PC3200规格的DDR内存,理想的CAS值是2; 这些是在DDRI时代时玩家都知道的。
DDR2时代如果要把系统FSB超频到500MHz,同步的情况下则需要DDRII 1000的内存。当大家选购高频率的内存时,应该会发现其CAS延迟通常都比较高,DDRI是CAS 2.5或者3; DDR2是 CAS 4 or 5是比较一般的。然而CAS是最敏感的内存参数,CAS值从5降低到4,虽然只有1/5的数值比例(数率),但另一方面,如果这种情况发生在一个FSB为500MHz; CPU : RAM为1:1的系统上,你的系统效能会提升约20%之多!所以我们在行有余力之后,如果你能知道如何去把内存的效能榨出来,是真的能提升系统效能的,这样做并不只是为求缩短Super PI的运算时间,Super PI的运算只是一种验证,验证系统最基本的效能提升。
以下将挑一些重要参数来先做解说,这些都是很重要的参数,一直都会出现的参数,但是应该没什么人敢写成中文的解释,因为是真的很难翻译的贴切。首先要了解那些烦人的参数,你一定要知道控制内存的总源头--->内存控制器
内存控制器:
内存控制器是主板或也可说是整部计算机上最重要的组成设备之一。它的功能是监督控制数据从内存加载/输出(input & output); 如果情况需要,还可以对资料的完整性进行检测(Data integration verification).
芯片组决定了支持的处理器类型,通常包含几组控制器,分别控制着处理器和其他组件的数据交换,而内存控制器是芯片组很一般的一部分,它建立了从内存到CPU的数据,如果是支持双信道模式的芯片组,就会包含两组内存控制器,最另人觉得不同的是,AMD的CPU内部整合了内存控制器; 这是非常创新而且是大胆的设计,不过也大好大坏,好的是如果用户今天买到好内存控制器的AMD CPU,那真的是要风得风要雨得雨,就算买到不怎样的内存也会变得好超,反之,如果是AMD内建内存控制器是劳赛的,就算有好体质的内存,也只能望之兴叹。
内存参数规格:
例如内存的时序参数一般简写为3/3/3/8/1T的格式,分别代表CAS/tRCD/tRP/tRAS/CMD的值,3/3/3/8/1T中最后两个参数,也就是tRAS和CMD(Command缩写), 是其中较复杂的参数。目前市场上对这两个参数的认识有一些错误,因为部分内存厂商直接用它们来代表内存效能,这是有点不正确。
CMD Rate正解:
Command Rate是翻译为"首要指令之延迟",这个参数的含义是选定Bank后多少时间可以发出具体的找寻地址之行(ROW)启动指令,服务机构是时钟脉周期。片选是指对行(此处是指Row,后续会有"列")具体Bank的选项(通过DIMM上CS片选的信号来进行);听起来很复杂对吧?但是大家可以用反面来思考!!如果系统指使用一条单面内存,那就不存在片选的问题了,因为此时只有一个具体的Bank数。
那用更通俗的说法,CMD Rate是一种芯片组意义上的延迟,它并不全由内存决定,而是由芯片组把虚拟地址解释为物理地址;所以系统的虚拟内存设定是很重要的,现在这种内存早已非10年前内存大小的状况下,我们通常都是设1GB(1024MB),1024MB为衡定VM(virtual memory,虚拟内存),一般来说高密度大容量的系统内存的物理地址范围更大,其CMD延迟肯定比只有单条内存的系统大,即使是双面单条。Intel对CMD这个问题就非常敏感,因此部分芯片组的内存信道被限制到四个Bank。这样就可以比较放心地把CMD Rate限定在1T,而不理用户最多能安装多少容量的内存,但是在芯片组与内存频率与容量相对在提高的今日,内存同时也迈入密度越来越高的时代,1t CMD几乎已经成为历史名词了。
不少内存厂商一直强调自家的CMD Rate可以设为1T实际上多少也算是一种误导性广告,因为所有的无缓冲(unbuffered)内存都应具有1T的CMD Rate最多支持四个Bank,每条内存信道,当然也不排除芯片组的局限性。
tRAS, TCL, tRCD ,tRP
要调好系统的内存效能就得先透彻了解这4的参数在搞啥,这4个参数是到目前为止大家一定会在任何芯片组,或说是任何不同平台的主板bios内看到。(只要你是玩超频应该都会注意到)其它细部附属参数则是大多衍生自此,所以一定要详加了解。
先从tRAS讲起,在这边要注意,内存地址都会有"行"跟"列";所以这一篇文章都会先以"行"来做说明,所以先解释两个缩写: RAS 跟CAS
RAS=Row Address Strobe(或是Select)(行的地址选通脉冲)
CAS=Column Address Strobe(或是Select)(列地址选通脉冲)
tRAS:
tRAS在内存规范的解释是Active to Precharge Delay,"行"的有效至行的预先充电时间。整体上是指memory从收到一个请求后到启始化RAS真正开始接受数据的间隔时间。
这个参数看上去似乎很重要,其实设定数据上差不了多少但是也有一定高效能的范围来作设定。
tRAS指令是再去执行新数据与指令的程序(例如开启一个新的程序)以英文来说就很容易了解:
Active to Precharge Delay (tRAS): After an “Active” command is issued,
another “Precharge” command cannot be issued until tRAS has been elapsed.
So this parameter limits when the memory can start reading (or writing) a different row.
接下来几个内存参数分别为CAS延迟,tRCD,以及tRP,这些参数又是如何来影响系统效能的呢?
CAS:
CAS之意为列的地址选通脉冲(Column Address Strobe 或者Column Address Select),CAS控制着从收到指令到执行指令的间隔时间,通常在DDRI为2、2.5、3这几个周期; DDR2则为 3, 4, 5,在整个内存矩阵中(就是行加上列的地址),因为CAS是按列的地址来管理实体地址,因此在稳定的基础上,这个非常重要的参数值就不是让大家说设多少多没差的,当然是越低效能会越高,但相对的稳定性就会减低,原因就要看看CAS的程序。
程序是这样的,在内存数组中分为行和列,当指令请求到达内存后,首先被触发的是tRAS (Active to Precharge Delay),数据被请求执行后需预先充电,一旦tRAS被启动后,RAS才开始在一半的物理地址中找寻地址,要被执行的行位被选定后tRCD启始化,最后才通过CAS找到精确的地址。整个程序也就是先跑"行寻址"再跑"列寻址"也就是从RAS开始到CAS结束。
那比较简单的说法是: CAS的时间..就是等于...举例:
从A点到B点,如果是100公尺,两个人一起跑,甲所需的时间是10.0秒;乙所需的时间是10.5秒,再假设,甲和乙都是机器人,那如果我们所设定的不是两个都跑单趟,那是不是甲的第10.1秒及乙的第10.6秒才是第2段跑的开始(请不必理会方向性),所以这就是Cas latency的基本概念。
谈到CAS Latency,各位知道ram的delay时间长度如何计算吗?很简单,我们举个例子,假设我手上有一对号称DDR800 CL3的DDR2 (其实不管是DDRI or II算法都一样), DDR 800其实是跑400对吧?因为是Double Data Rate; 所以我们在算的时候是以真实的频率去计算,既然是频率那时间就是频率分之1的数值,所以公式为:
T= 1/F.....F当然就是Frequency..
所以DDR800是跑400MHz,不过并不是1/400喔!M=mega=10的6次方,也就是要在400后面再加6个0,所以 1/400000000 等于--->0.0000000025,为求方便起见,我们都习惯说是2.5x10的负9次方,在数学上就是所谓的nano,所以一般通称2.5奈米IC就是DDR800的IC速度。
CL3比CL4好?CL既然是内存最主要的延迟数据,那到底在该内存的规格上是全部延迟多少?如果我们把速度都定好都是DDR800(400MHz real),一个是CL3,一个是CL4,再加一个CL5
公式: 总延迟时间= CL delay time (Value) x period of each clock cycle
DDR800 CL3= 3 x 2.5ns = 7.5ns
DDR800 CL4= 4 x 2.5ns = 10 ns
DDR800 CL5= 5 x 2.5ns = 12.5ns
也就是说,这3种内存是隔2.5ns的效能差距,800 CL3和800 CL5以不超频跑同速来说,效能上已经差到50%左右了。
tRCD:
根据标准tRCD是指 timing of RAS to CAS Delay(RAS至CAS延迟);那我们都知道Ras是代表行的地址,CAS是列,那在这两个参数去寻找特定的地址点时所要花费的时间延迟,就是tRCD。 tRCD重要性通常是仅次于Cas Latency,所以大家会常看到xxx牌内存标榜800 3-4-3-x或是1000 4-5-4-15,第2位数就是TRCD,再以一般通俗讲法就是:
tRCD是RAS启动去寻找特定地址所需时间和CAS启动去寻找特定地址所需时间的时间差
所以时间越短就是效能越高
内存脱离不了读与写,从上图来看trcd也是等于整个内存从启动到读的这动作所需的延迟时间。
所以tRCD也可以称为"TRCRD",那大家有可能会产生疑问,内存有读和写,那有没有TRCWD?还是有的,而且还是在最受欢迎的Intel P965芯片组上,参数的设置可是比TRCD紧很多。
tRP:
tRP指RAS Precharge Time,就是行的预先充电时间。也就是内存从结束一个行的定位结束到重新开始同样动作的间隔时间,所以参数设置上比较没那么吃紧,举例来说如果你从事的工作需要大量的数据变化; 例如3D绘图,此时一个程序就需要使用很多的行来储存!! tRP的参数值越低表示在不同行切换的速度会越快,当然也会促始读写动作加快,那此时是不是又产生两个副参数?那就是 TWTP和TRTP一样的道理,write一定比Read花久一点时间,所以在设置上;twtp一定要比trtp来得松,大家也可以参考memset在965芯片上的设定!!都在subtimings中可以找到
或许你看完以上的解说后还是有一些不懂,其实大家也没必要对整个内存的虚拟动作与过程了解的非常透彻,这个并不影响你选什么规格的内存,以及如何在BIOS中优化你的内存参数。最基本的,你应该知道的是系统至少需要搭配能满足CPU及带宽的内存,然后CAS Latency越低越好,建议大家升级时,多考虑高频一点的内存,这样或许你将来升级CPU时可以节省一笔内存费用,高频率的内存都是向下兼容的。
一般而言,想要把超频做好,内存是很重要的一环,不是都靠运气就会有好超的,东西上门超频有85%的难题全部是卡在内存的瓶颈,所以当开始超新板子时一定是先把CPU及RAM其中一环定好,才不会导至首尾不能兼顾!! |