[分享]『DIY装机配件参数技术专帖』
常用内存参数设置
--------------------------------------------------------------------------------
行地址控制器 (CAS)
行地址控制器(CAS)可能是最能决定内存模块对数据请求进行响应的因素之一了。通常我们把这个叫做CAS延迟,一般来说,在SDR SDRAM中,我们可以设定为2或者3(当然是根据自己内存的具体情况而定)。对于DDR内存来说,我们一般常用的设定为2或者2.5。
内存中最基本的存储单元就是柱面,而这些柱面通过行和列的排列组成了一个矩阵。而每个行和列的坐标集就代表了一个唯一的地址。所以内存在存取数据的时候是根据行和列的地址集来进行数据搜索的。
寻址到可用(Trp)/CAS到RAS (CMD)
相对而言,Trp以及CMD时间并没有CAS时间那么重要,但是也是足以影响内存的性能的了。一般这个地方设置的值为3(时钟循环),如果把这个这个值改小为2,就可以提升一点内存性能。
列地址控制器(RAS) /其他延迟
内存本身就是一个非常复杂的零部件,可以这么说,计算机内部工作过程最复杂的就是存储器了。但是幸好这些烦琐的工作对于我们这些最终用户来说是透明的,而我们平时用来判断内存性能、质量好坏的这些参数也只是其中的一些部分而已。有两个是不得不提到的,那就是RAS延迟和另外两个延迟。RAS 通常为6个始终循环,但是实际上在超频中可以将它修改为5。
Command rate(指令比率)是另外一个比较普遍的延迟。允许进行的设置为1T或者是2T,而通常2T是默认的设置,1T就要比2T稍微快一点点。另外一个需要注意的地方就是Row Cycle Time (Trc,列循环时间),这个参数一般为3或者2。
其他一些和内存紧密相关的参数
Bank 激活时间
Bank 循环时间
已装载数据到充电前时间
已装载数据到激活时间
Bank到Bank延迟
大多数的这些参数都是在内存出厂的时候由厂商根据内存的型号种类设定好了的,比如说PC2100 DDR, PC800 RAMBUS, PC133 SDR等等,他们不同的内存会给他们设置不同的参数。而我们不能够自己随意的改动它。
校验内存和缓冲内存和以上我们介绍的内存又有不一样的地方。为了同步内存的时钟频率(这在一些特殊的情况下要求特别严格),数据在输出前是要首先被放到一个叫做“校验区”的存储模块中,这样很多人都把这种内存叫做“校验内存”。这样就可以保证所有从内存中读出的数据都是“同步”的,这样就可以避免很多的数据读写错误了。这样的一个校验过程将会消耗掉一个时钟循环,所以理论上CAS 2的校验内存将会和CAS 3的非缓冲内存性能相当——不要嫌弃,这一切都是为了数据的稳定。
也许有一些朋友会注意到,当他们把内存设置到CAS 2工作模式下的时候,反而系统的性能还没有默认的CAS 2.5/3好了,这是什么原因呢?我的理解是这样的:内存根本就不能稳定的工作在那种模式下,而用户强行的将内存设置为那种工作模式,这样的话就会在存取数据的时候不时的造成数据“丢失”,这样数据不能取得,当然就只能重新读取,这样就浪费掉了很多的时间,当然系统效率就变低了哦。
举个例子方便理解吧。内存试着去搜索所有的行和列,但是如果它在这个时钟循环中并没有能够完成这次数据读取,那么就只有等待下一个循环,本来用一个时钟循环就能够解决的问题而现在需要用两个时钟循环甚至三个去完成,这就明显的降低了系统效率。这个时候,越是高的频率越容易导致错误。
高速缓冲存储器Cache是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了。Cache对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与Cache间的带宽引起的。
高速缓存的工作原理
1.读取顺序
CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入Cache中,可以使得以后对整块数据的读取都从Cache中进行,不必再调用内存。
正是这样的读取机制使CPU读取Cache的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在Cache中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先Cache后内存。
2.缓存分类
前面是把Cache作为一个整体来考虑的,现在要分类分析了。Intel从Pentium开始将Cache分开,通常分为一级高速缓存L1和二级高速缓存L2。
在以往的观念中,L1 Cache是集成在CPU中的,被称为片内Cache。在L1中还分数据Cache(I-Cache)和指令Cache(D-Cache)。它们分别用来存放数据和执行这些数据的指令,而且两个Cache可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。
在P4处理器中使用了一种先进的一级指令Cache——动态跟踪缓存。它直接和执行单元及动态跟踪引擎相连,通过动态跟踪引擎可以很快地找到所执行的指令,并且将指令的顺序存储在追踪缓存里,这样就减少了主执行循环的解码周期,提高了处理器的运算效率。
以前的L2 Cache没集成在CPU中,而在主板上或与CPU集成在同一块电路板上,因此也被称为片外Cache。但从PⅢ开始,由于工艺的提高L2 Cache被集成在CPU内核中,以相同于主频的速度工作,结束了L2 Cache与CPU大差距分频的历史,使L2 Cache与L1 Cache在性能上平等,得到更高的传输速度。L2Cache只存储数据,因此不分数据Cache和指令Cache。在CPU核心不变化的情况下,增加L2 Cache的容量能使性能提升,同一核心的CPU高低端之分往往也是在L2 Cache上做手脚,可见L2 Cache的重要性。现在CPU的L1 Cache与L2 Cache惟一区别在于读取顺序。
3.读取命中率
CPU在Cache中找到有用的数据被称为命中,当Cache中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有2级Cache的CPU中,读取L1 Cache的命中率为80%。也就是说CPU从L1 Cache中找到的有用数据占数据总量的80%,剩下的20%从L2 Cache读取。由于不能准确预测将要执行的数据,读取L2的命中率也在80%左右(从L2读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。在一些高端领域的CPU(像Intel的Itanium)中,我们常听到L3 Cache,它是为读取L2 Cache后未命中的数据设计的—种Cache,在拥有L3 Cache的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
为了保证CPU访问时有较高的命中率,Cache中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出Cache,提高Cache的利用率。
缓存技术的发展
总之,在传输速度有较大差异的设备间都可以利用Cache作为匹配来调节差距,或者说是这些设备的传输通道。在显示系统、硬盘和光驱,以及网络通讯中,都需要使用Cache技术。但Cache均由静态RAM组成,结构复杂,成本不菲,使用现有工艺在有限的面积内不可能做得很大,不过,这也正是技术前进的源动力,有需要才有进步!
内存在电脑中的重要性和地位仅次于CPU,其品质的优劣对电脑性能有至关重要的影响。为充分发挥内存的潜能,必须在BIOS设置中对与内存有关的参数进行调整。下面针对稍老一点的支持Intel PentiumⅢ、CeleronⅡ处理器的Intel 815E/815EP芯片组主板、VIA(威盛)694X芯片组主板和支持AMD Thunder bird(雷鸟)、Duron(钻龙)处理器的VIA KT133/133A芯片组主板,介绍如何在最常见的Award BIOS 6.0中优化内存设置。对于使用较早芯片组的主板和低版本的Award BIOS,其内存设置项相对要少一些,但本文所介绍的设置方法同样是适用的。
?牐營ntel 815E/815EP芯片组主板
?牐犜谡饫嘀靼錌IOS的Advanced Chipset Features(高级芯片组特性)设置页面中一般包含以下内存设置项:
?牐燬et SDRAM Timing By SPD(根据SPD确定内存时序)
可选项:Disabled,Enabled。
SPD(Serial Presence Detect )是内存条上一个很小的芯片,它存储了内存条的工作参数信息。如果使用优质的品牌内存,则可以将DRAM Timing By SPD设置成Enabled,此时,就无需对下面介绍的BIOS内存参数进行设置了,系统会自动根据SPD中的数据确定内存的运行参数。有些兼容内存的SPD是空的?熁蛘吒芯跄承┢放颇诖娴腟PD参数比较保守,想充分挖掘其潜能,则可以将该参数设置成Disabled,这时,就可以对以下的内存参数进行调整了。
?牐燬DRAM CAS Latency Time(内存CAS延迟时间)
可选项:2,3。
内存CAS(Column Address Strobe,列地址选通脉冲)延迟时间控制SDRAM内存接收到一条数据读取指令后要等待多少个时钟周期才实际执行该指令。同时该参数也决定了在一次内存突发传送过程中完成第一部分传送所需要的时钟周期数。这个参数越小,则内存的速度越快。在133MHz频率下,品质一般的兼容内存大多只能在CAS=3下运行,在CAS=2下运行会使系统不稳定、丢失数据甚至无法启动。CAS延迟时间是一个非常重要的内存参数,对电脑性能的影响比较大,Intel与VIA就PC133内存规范的分歧也与此参数有关,Intel认为PC133内存应能稳定运行于133MHz频率、CAS=2下,而VIA认为PC133内存能稳定运行于133MHz频率即可,并未特别指定CAS值,因此Intel的规范更加严格,一般只有品牌内存才能够满足此规范,所以大家感觉Intel的主板比较挑内存。
SDRAM Cycle Time Tras/Trc(内存Tras/Trc时钟周期)
可选项:5/7,7/9。
该参数用于确定SDRAM内存行激活时间和行周期时间的时钟周期数。Tras代表SDRAM行激活时间(Row Active Time),它是为进行数据传输而开启行单元所需要的时钟周期数。Trc代表SDRAM行周期时间(Row Cycle Time),它是包括行单元开启和行单元刷新在内的整个过程所需要的时钟周期数。出于最佳性能考虑可将该参数设为5/7,这时内存的速度较快,但有可能出现因行单元开启时间不足而影响数据传输的情况,在SDRAM内存的工作频率高于100MHz时尤其是这样,即使是品牌内存大多也承受不了如此苛刻的设置。
?牐燬DRAM RAS-TO-CAS Delay(内存行地址传输到列地址的延迟时间)
可选项:2,3。
该参数可以控制SDRAM行地址选通脉冲(RAS,Row Address Strobe)信号与列地址选通脉冲信号之间的延迟。对SDRAM进行读、写或刷新操作时,需要在这两种脉冲信号之间插入延迟时钟周期。出于最佳性能考虑可将该参数设为2,如果系统无法稳定运行则可将该参数设为3。
?牐燬DRAM RAS Precharge Time(内存行地址选通脉冲预充电时间)
可选项:2,3。
该参数可以控制在进行SDRAM刷新操作之前行地址选通脉冲预充电所需要的时钟周期数。将预充电时间设为2可以提高SDRAM的性能,但是如果2个时钟周期的预充电时间不足,则SDRAM会因无法正常完成刷新操作而不能保持数据。
?牐燤emory Hole At 15M-16M(位于15M~16M的内存保留区)
可选项: Disabled,Enabled。
一些特殊的ISA扩展卡的正常工作需要使用位于15M~16M的内存区域,该参数设为Enabled就将该内存区域保留给此类ISA扩展卡使用。由于PC’99规范已不再支持ISA扩展槽,所以新型的主板一般都没有ISA插槽,因而应将该参数设为Disabled。
?牐燬ystem Memory Frequency(系统内存频率)
可选项:AUTO、100MHz、133MHz。
此项设置实现内存异步运行管理功能。AUTO:根据内存的特性自动设定内存的工作频率;100MHz:将内存强制设定在100MHz频率下工作;133MHz:将内存强制设定在133MHz频率下工作。
?牐燤emory Parity/ECC Check(内存奇偶/ECC校验)
可选项:Disabled,Enabled。
如果系统使用了ECC内存,可以将该参数设为Enabled,否则一定要将该参数设成Disabled。ECC表示差错校验和纠正(Error Checking and Correction)?熞话闶歉叩捣?务器内存条所具备的功能,这种内存条有实现ECC功能的内存颗粒,使系统能够检测并纠正内存中的一位数据差错或者是检测出两位数据差错。ECC功能可以提高数据的完整性和系统的稳定性,这对服务器尤其重要,但ECC会造成一定的性能损失。
VIA芯片组主板
VIA芯片组主板一般比Intel芯片组主板内存设置选项要丰富一些,在这类主板BIOS的Advanced Chipset Features(高级芯片组特性)设置页面中一般包含以下内存设置项:
?牐燘ank 0/1、2/3、4/5 DRAM Timing(内存速度设定)
可选项:Turbo(高速),Fast(快速),Medium(中等),Normal(正常),SDRAM 8/10 ns。
该选项用于设定内存的速度,对于SDRAM内存条,设定为SDRAM 8/10 ns即可。
?牐燬DRAM Clock(内存时钟频率)
可选项:HOST CLK,HCLK+33M(或HCLK-33M)。
该参数设置内存的异步运行模式。HOST CLK表示内存运行频率等于系统的外频,HCLK+33M表示内存运行频率等于系统外频再加上33MHz,HCLK-33M表示内存运行频率等于系统外频减去33MHz。如PentiumⅢ 800EB时,BIOS自动使该参数的可选项出现HOST CLK和HCLK-33M,如果使用PC133内存,可以将该参数设为HOST CLK,如果使用PC100内存,则可以将该参数设为HCLK-33M,这样就可使系统配合性能较低的PC100内存使用。内存异步功能使系统对内存的兼容性的提升是比较明显的,也是VIA芯片组一项比较重要的功能。
?牐燘ank Interleave(内存Bank交错)
可选项:Disabled,2-Bank,4-Bank。
内存交错使SDRAM内存各个面的刷新时钟信与读写时钟信号能够交错出现,这可以实现CPU在刷新一个内存面的同时对另一个内存面进行读写,这样就不必花费专门的时间来对各个内存面进行刷新。而且在CPU即将访问的一串内存地址分别位于不同内存面的情况下,内存面交错使CPU能够实现在向后一个内存面发送地址的同时从前一个内存面接收数据,从而产生一种流水线操作的效果,提高了SDRAM内存的带宽。因此,有人甚至认为启用内存交错对于系统性能的提高比将内存CAS延迟时间从3改成2还要大。
?牐牪还?,内存交错是一个比较高级的内存设置选项,有一些采用VIA 694X芯片组的主板由于BIOS版本较旧,可能没有该设置项,这时可以升级主板的BIOS。如果在最新版的BIOS中仍未出现该设置项,那就只有通过某些VIA芯片组内存BANK交错开启软件,如WPCREdit和相应的插件(可以从“驱动之家”网站下载)来修改北桥芯片的寄存器,从而打开内存交错模式。
SDRAM Driver Strength(内存访问信号的强度)
可选项:Auto,Manual。
此选项用于控制内存访问信号的强度。一般情况下可以将该选项设置成Auto,此时芯片组承担内存访问信号强度的控制工作并自动调整内存访问信号的强度以与电脑中安装的内存相适应。如果需要超频或排除电脑故障,则可以将该参数设为Manual,这时就可以手工调整SDRAM Driver value(内存访问信号强度值)的数值。
?牐燬DRAM Driver value(内存访问信号强度值)
可选项:00至FF(十六进制)。
该选项决定了内存访问信号强度的数值。要注意的是只有将SDRAM Driver Strength选项设为 Manual时,SDRAM Driver value的数值才是有效的。SDRAM Driver value的范围是十六进制的00至FF,其数值越大,则内存访问信号的强度也越大。内存对工作频率是比较敏感的,当工作频率高于内存的标称频率时,将该选项的数值调高,可以提高电脑在超频状态下的稳定性。这种作法尽管没有提高内存的工作电压(有一些超频功能较强的主板可以调整内存的工作电压),但在提高SDRAM Driver value的数值时仍然要十分慎重,以免造成内存条的损坏。
?牐燜ast R-W Turn Around(快速读写转换)
可选项: Enabled,Disabled。
当CPU先从内存读取数据然后向内存写入数据时,通常存在额外的延迟,该参数可以降低这种读写转换之间的延迟。将该参数设置成Enabled,可以降低内存读写转换延迟,从而使内存从读状态转入写状态的速度更快。然而,如果内存不能实现快速读写转换,则会造成数据丢失和系统不稳定,这时就需要将该参数设置成Disabled。
?牐犠⒁猓涸贐IOS中对内存进行优化设置可能会对电脑运行的稳定性造成不良影响,所以建议内存优化后一定要使用测试软件进行电脑稳定性和速度的测试。如果您对自己内存的性能没有信心,那么最好采取保守设置,毕竟稳定性是最重要的。如果因内存优化而出现电脑经常死机、重启动或程序发生异常错误等情况,只要清除CMOS参数,再次设置成系统默认的数值就可以了。