配色: 字号:
内存参数终极优化之DDR篇
2014-01-17 | 阅:  转:  |  分享 
  
内存参数终极优化之DDR篇在一些超频的文章中经常介绍到内存的时序设置,如“2-3-3-5”、“2-3-3-6”这一类的数字序列,这些是什么意思呢?如何对内存参数进行优化设置呢?还有,有的会员问:“我买了杂牌内存,兼容性差,常常蓝屏或出现莫名其妙的问题,如何解决呢?”,一梦浮生撰写本文的目的,就是想通过本文来帮助大家解决这些问题的。优化内存的延迟参数对PC性能的提高有很大帮助。优化内存是通过调节BIOS中几个内存时序参数来实现的,如图:

?



在一些技术文章里介绍内存设置时序参数时,一般数字“A-B-C-D”分别对应的参数是“CL-tRCD-tRP-tRAS”,现在你该明白“2-3-3-6”是什么意思了吧?!^_^下面就这几个参数及BIOS设置中影响内存性能的其它参数逐一给大家作一介绍:

一、内存延迟时序“CL-tRCD-tRP-tRAS”的设置

首先,需要在BIOS中打开手动设置,在BIOS设置中找到“DRAMTimingSelectable”,BIOS设置中可能出现的其他描述有:AutomaticConfiguration、DRAMAuto、TimingSelectable、TimingConfiguringBySPD等,将其值设为“Menual”(视BIOS的不同可能的选项有:On/Off或Enable/Disable),如果要调整内存时序,应该先打开手动设置,之后会自动出现详细的时序参数列表:

1、CL(CASLatency):“内存读写操作前列地址控制器的潜伏时间”(可能的选项:1.5/2/2.5/3)

BIOS中可能的其他描述为:tCL、CASLatencyTime、CASTimingDelay。这个参数很重要,内存条上一般都有这个参数标记。在BIOS设置中DDR内存的CAS参数选项通常有“1.5”、“2”、“2.5”、“3”几种选择,SDRAM则只有“2”、“3”两个选项。较低的CAS周期能减少内存的潜伏周期以提高内存的工作效率。因此只要能够稳定运行操作系统,我们应当尽量把CAS参数调低。反过来,如果内存运行不稳定,可以将此参数设大,以提高内存稳定性。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

2、tRCD(RAS-to-CASDelay)“行寻址至列寻址延迟时间”(可能的选项:2/3/4/5)

BIOS中的可能其他描述:tRCD、RAStoCASDelay、ActivetoCMD等。数值越小,性能越好。3、tRP(RASPrechargeTime):“内存行地址控制器预充电时间”(可能的选项:2/3/4)

BIOS中的可能其他描述:tRP、RASPrecharge、Prechargetoactive。预充电参数越小则内存读写速度就越快。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

4.tRAS(RASActiveTime):“内存行有效至预充电的最短周期”(可能的选项:1……5/6/7……15)

BIOS中的可能其他描述:tRAS、ActivetoPrechargeDelay、RowActiveTime、PrechargeWaitState、RowActiveDelay、RowPrechargeDelay、RASActiveTime等。一般我们可选的参数选项有5,6或者7这3个,但是在一些nForce2主板上的选择范围却很大,最高可到15,最低达到1。调整这个参数需要结合具体情况而定,一般我们最好设在5-11之间。这个参数要根据实际情况而定,并不是说越大或越小就越好。具体的调整要遵循以下两个原则:

a、当内存页面数为4时,tRAS设置短一些可能会更好,但最好不要小于5。另外,短tRAS的内存性能相对于长tRAS可能会产生更大的波动性,对时钟频率的提高也相对敏感;当内存页面数大于或等于8时,tRAS设置长一些会更好。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

目前的芯片组都具备多页面管理的能力,所以如果可能,请尽量选择双P-Bank的内存模组以增加系统内存的页面数量。但怎么分辨是单P-Bank还是双P-Bank呢?就目前市场上的产品而言,256MB的模组基本都是单P-Bank的,双面但每面只有4颗芯片的也基本上是单P-Bank的,512MB的双面模组则基本都是双P-Bank的。页面数量的计算公式为:P-Bank数量X4,如果是Pentium4或AMD64的双通道平台,则还要除以2。比如两条单面256MB内存,就是2X4=8个页面,用在875上组成双通道就成了4个页面。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

b、对于875和865平台,双通道时页面数达到8或者以上时,tRAS设置长一些内存性能更好;对于非双通道Pentium4与AMD64平台,tRAS长短之间的性能差异要缩小

二、BankInterleaving“内存交错技术”(可能的选项:Off/Auto/2/4)

这里的Bank是指L-Bank,目前的DDRRAM的内存芯片都是由4个L-Bank所组成,为了最大限度减少寻址冲突,提高效率,建议设为4(Auto也可以,它是根据SPD中的L-Bank信息来自动设置的)。有人甚至认为启用内存交错对于系统性能的提高比将内存CAS延迟时间从3改成2还要大。Intel和VIA都支持内存交错技术,主要模式有2路交错(2-Bank)和4路交错(4-Bank)两种;不过出于对系统的稳定性考虑,很多支持该技术的主板在默认情况下都关闭了内存交错技术,或最多开启2路内存交错模式——虽然4路交错可以带来更大的性能提升。通过升级BIOS,VIA694X以上芯片组都有机会开启内存交错设置项;即便BIOS不支持,也可以通过WPCREdit等专用软件来修改北桥芯片的寄存器,从而打开内存交错模式。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

三、BurstLength“突发长度”(可能的选项:4/8)

一般而言,如果是AMDAthlonXP或Pentium4单通道平台,建议设为8,如果是Pentium4或AMD64的双通道平台,建议设为4。

四、CommandRate“首命令延迟”(可能的选项:1/2)

这个选项目前已经非常少见,一般还被描述为DRAMCommandRate、CMDRate等。由于目前的DDR内存的寻址,先要进行P-Bank的选择(通过DIMM上CS片选信号进行),然后才是L-Bank/行激活与列地址的选择。这个参数的含义就是指在P-Bank选择完之后多少时间可以发出具体的寻址的L-Bank/行激活命令,单位是时钟周期。显然,也是越短越好。但当随着主板上内存模组的增多,控制芯片组的负载也随之增加,过短的命令间隔可能会影响稳定性。因此当你的内存插得很多而出现不太稳定的时间,才需要将此参数调长。目前的大部分主板都会自动设置这个参数。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

五、DRAMClock“内存时钟频率”(可能的选项:HostClock/Hclk-33MHz/Hclk+33MHz,说明:HostClock即总线频率和内存工作频率同步、Hclk-33MHz即总线频率减33MHz、Hclk+33MHz即总线频率+33MHz”等三种模式可选。)

在内存同步工作模式下,内存的运行速度与CPU外频相同。内存异步则是指两者的工作频率可存在一定差异。该技术可令内存工作在高出或低于系统总线速度33MHz的情况下(也有采用3:4、4:5的倍频模式的)。通过调整该参数,我们不仅可以让“老”内存发挥余热,更重要的是可以充分挖掘内存的潜力及获得更宽泛的超频空间。Intel的810~875系列芯片组和威盛的693以后的产品,都支持内存异步。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

注意:在BIOS中对内存进行优化设置可能会对电脑运行的稳定性造成不良影响,所以建议内存优化后一定要使用测试软件进行电脑稳定性和速度的测试。如果您对自己内存的性能没有信心,那么最好采取保守设置,毕竟稳定性是最重要的。如果因内存优化而出现电脑经常死机、重启动或程序发生异常错误等情况,只要清除CMOS参数,再次设置成系统默认的数值就可以了。同时,如果内存运行不稳定或兼容性差,可以根据文章中的相关介绍,反优化之道行之,可起到提高内存稳定性的效果。电+脑维+修-知.识_网(w_wwdnw_xzsco_m)

说明:本文系参阅网上有关内存优化的不少文章整理而成,从实用和全面的角度出发,去掉了不少专业性太强的陈述及评测,旨在帮助菜鸟朋友们了解内存设置,化化内存,提高系统性能,解决内存不稳定和兼容性差而引发的故障。

一:关于内存超频与设置的基础知识

??在我们进行内存的选购之前,我们要对影响内存性能的一些基本知识进行一个了解,下面这十点,使笔者通过反复论证得到的结果,请大家务必了解。

1、对内存的优化要从系统整体出发,不要局限于内存模组或内存芯片本身的参数,而忽略了内存子系统的其他要素。

2、目前的芯片组都具备多页面管理的能力,所以如果可能,请尽量选择双P-Bank的内存模组以增加系统内存的页面数量。但怎么分辨是单P-Bank还是双P-Bank呢?就目前市场上的产品而言,256MB的模组基本都是单P-Bank的,双面但每面只有4颗芯片的也基本上是单P-Bank的,512MB的双面模组则基本都是双P-Bank的。

3、页面数量的计算公式为:P-Bank数量X4,如果是Pentium4或AMD64的双通道平台,则还要除以2。比如两条单面256MB内存,就是2X4=8个页面,用在875上组成双通道就成了4个页面。

4、CL、tRCD、tRP为绝对性能参数,在任何平台下任何时候,都应该是越小越好,调节的优化顺序是CL→tRCD→tRP。

5、当内存页面数为4时,tRAS设置短一些可能会更好,但最好不要小于5。另外,短tRAS的内存性能相对于长tRAS可能会产生更大的波动性,对时钟频率的提高也相对敏感。

6、当内存页面数大于或等于8时,tRAS设置长一些会更好。

7、对于875和865平台,双通道时页面数达到8或者以上时,内存性能更好。

8、对于非双通道Pentium4与AMD64平台,tRAS长短之间的性能差异要缩小。

9、Pentium4或AMD64的双通道平台下,BL=4大多数情况下是更好的选择,其他情况下BL=8可能是更好的选择,请根据自己的实际应用有针对的调整。

10、适当加大内存刷新率可以提高内存的工作效率,但也可能降低内存的稳定性。

二、BIOS中内存相关参数的设置要领

AutomaticConfiguration“自动设置”(可能的选项:On/Off或Enable/Disable)可能出现的其他描述为:DRAMAuto、TimingSelectable、TimingConfiguringBySPD等,如果你要手动调整你的内存时序,你应该关闭它,之后会自动出现详细的时序参数列表。BankInterleaving(可能的选项:Off/Auto/2/4)这里的Bank是指L-Bank,目前的DDRRAM的内存芯片都是由4个L-Bank所组成,为了最大限度减少寻址冲突,提高效率,建议设为4(Auto也可以,它是根据SPD中的L-Bank信息来自动设置的)。BurstLength“突发长度”(可能的选项:4/8)一般而言,如果是AMDAthlonXP或Pentium4单通道平台,建议设为8,如果是Pentium4或AMD64的双通道平台,建议设为4。但具体的情况要视具体的应用而定。CASLatency“列地址选通脉冲潜伏期”(可能的选项:1.5/2/2.5/3)BIOS中可能的其他描述为:tCL、CASLatencyTime、CASTimingDelay。CommandRate“首命令延迟”(可能的选项:1/2)这个选项目前已经非常少见,一般还被描述为DRAMCommandRate、CMDRate等。由于目前的DDR内存的寻址,先要进行P-Bank的选择(通过DIMM上CS片选信号进行),然后才是L-Bank/行激活与列地址的选择。这个参数的含义就是指在P-Bank选择完之后多少时间可以发出具体的寻址的L-Bank/行激活命令,单位是时钟周期。显然,也是越短越好。但当随着主板上内存模组的增多,控制芯片组的负载也随之增加,过短的命令间隔可能会影响稳定性。因此当你的内存插得很多而出现不太稳定的时间,才需要将此参数调长。目前的大部分主板都会自动设置这个参数,而从上文的ScienceMark2.0测试中,大家也能察觉到容量与延迟之间的关系。RASPrechargeTime“行预充电时间”(可能的选项:2/3/4)BIOS中的可能其他描述:tRP、RASPrecharge、Prechargetoactive。RAS-to-CASDelay“行寻址至列寻址延迟时间”(可能的选项:2/3/4/5)BIOS中的可能其他描述:tRCD、RAStoCASDelay、ActivetoCMD等。ActivetoPrechargeDelay“行有效至行预充电时间”(可能的选项:1……5/6/7……15)BIOS中的可能其他描述:tRAS、RowActiveTime、PrechargeWaitState、RowActiveDelay、RowPrechargeDelay等。根据上文的分析,这个参数要根据实际情况而定,具体设置思路见上文,并不是说越大或越小就越好。

三、认清影响内存性能的关键

???在讲完SDRAM的基本工作原理和主要操作之后,我们现在要重要分析一下SDRAM的时序与性能之间的关系,它不再局限于芯片本身,而是要从整体的内存系统去分析。这也是广大DIYer所关心的话题。比如CL值对性能的影响有多大几乎是每个内存论坛都会有讨论,今天我们就详细探讨一下。这里需要强调一点,对于内存系统整体而言,一次内存访问就是对一个页(Page)的访问。由于在P-Bank中,每个芯片的寻址都是一样的,所以可以将页访问“浓缩”等效为对每芯片中指定行的访问,这样可能比较好理解。但为了与官方标准统一,在下文中会经常用页来描述相关的内容,请读者注意理解。

???可能很多人还不清楚页的概念,在这里有必要先讲一讲。从狭义上讲,内存芯片芯片中每个L-Bank中的行就是页,即一行为一页。但从广义上说,页是从整体角度讲的,这个整体就是内存子系统。

???对于内存模组,与之进行数据交换的单位就是P-Bank的位宽。由于目前还没有一种内存芯片是64bit位宽的,所以就必须要用多个芯片的位宽来集成一个P-Bank。如我们现在常见的内存芯片是8bit位宽的,那么就需要8颗芯片组成一个P-Bank才能使系统正常工作。而CPU对内存的寻址,一次就是一个P-Bank,P-Bank内的所有芯片同时工作,这样对P-Bank内所有的芯片的寻址都是相同的。比如寻址指令是B1、C2、R6,那么该P-Bnak内的芯片的工作状态都是打开B1的L-Bank的第C2行。好了,所谓广义上的页就是指P-Bank所包括的芯片内相同L-Bank内的相同工作行的总集合。页容量对于内存子系统而言是一个很重要的指标。这个参数取决于芯片的容量与位宽的设计。由于与本文的关系不大,就不具体举例了。

???早期Intel845芯片组MCH的资料:它可以支持2、4、8、16KB的页容量

???总之,我们要知道,由于寻址对同一L-Bank内行地址的单一性,所以一个L-Bank在同一时间只能打开一个页面,一个具有4个L-Bank的内存芯片,可以打开4个页面。这样,以这种芯片组成的P-Bank,也就最后具备了4个页面,这是目前DDRSDRAM内存模中每个P-Bank的页面最大值。

1、影响性能的主要时序参数

???在讲完内存的基本操作流程与相关的tRP、tRCD、CL、BL之后,我们就开始深入分析这些参数对内存性能的影响。所谓的影响性能是并不是指SDRAM的带宽,频率与位宽固定后,带宽也就不可更改了。但这是理想的情况,在内存的工作周期内,不可能总处于数据传输的状态,因为要有命令、寻址等必要的过程。但这些操作占用的时间越短,内存工作的效率越高,性能也就越好。

???非数据传输时间的主要组成部分就是各种延迟与潜伏期。通过上文的讲述,大家应该很明显看出有三个参数对内存的性能影响至关重要,它们是tRCD、CL和tRP。按照规定,每条正规的内存模组都应该在标识上注明这三个参数值,可见它们对性能的敏感性。

???以内存最主要的操作——读取为例。tRCD决定了行寻址(有效)至列寻址(读/写命令)之间的间隔,CL决定了列寻址到数据进行真正被读取所花费的时间,tRP则决定了相同L-Bank中不同工作行转换的速度。现在可以想象一下对某一页面进行读取时可能遇到的几种情况(分析写入操作时不用考虑CL即可):

1、要寻址的行与L-Bank是空闲的。也就是说该L-Bank的所有行是关闭的,此时可直接发送行有效命令,数据读取前的总耗时为tRCD+CL,这种情况我们称之为页命中(PH,PageHit)。

2、要寻址的行正好是现有的工作行,也就是说要寻址的行已经处于选通有效状态,此时可直接发送列寻址命令,数据读取前的总耗时仅为CL,这就是所谓的背靠背(BacktoBack)寻址,我们称之为页快速命中(PFH,PageFastHit)或页直接命中(PDH,PageDirectHit)。

3、要寻址的行所在的L-Bank中已经有一个行处于活动状态(未关闭),这种现象就被称作寻址冲突,此时就必须要进行预充电来关闭工作行,再对新行发送行有效命令。结果,总耗时就是tRP+tRCD+CL,这种情况我们称之为页错失(PM,PageMiss)。

???显然,PFH是最理想的寻址情况,PM则是最糟糕的寻址情况。上述三种情况发生的机率各自简称为PHR——PHRate、PFHR——PFHRate、PMR——PMRate。因此,系统设计人员(包括内存与北桥芯片)都尽量想提高PHR与PFHR,同时减少PMR,以达到提高内存工作效率的目的。

2、增加PHR的方法

???显然,这与预充电管理策略有着直接的关系,目前有两种方法来尽量提高PHR。自动预充电技术就是其中之一,它自动的在每次行操作之后进行预充电,从而减少了日后对同一L-Bank不同行寻址时发生冲突的可能性。但是,如果要在当前行工作完成后马上打开同一L-Bank的另一行工作时,仍然存在tRP的延迟。怎么办?此时就需要L-Bank交错预充电了。

???早期非常令人关注的VIA4路交错式内存控制,就是在一个L-Bank工作时,对另一个L-Bank进行预充电或者寻址(如果要寻址的L-Bank是关闭的)。这样,预充电与数据的传输交错执行,当访问下一个L-Bank时,tRP已过,就可以直接进入行有效状态了,如果配合得理想,那么就可以实现无间隔的L-Bank交错读/写(一般的,交错操作都会用到自动预充电),这是比PFH更好的情况,但它只出现在后续的数据不在同一页面的时时候。当时VIA声称可以跨P-Bank进行16路内存交错,并以LRU(LeastRecentlyUsed,近期最少使用)算法进行交错预充电/寻址管理。



???L-Bank交错自动预充电/读取时序图:L-Bank0与L-Bank3实现了无间隔交错读取,避免了tRP与tRCD对性能的影响,是最理想的状态

3、增加PFHR的方法

无论是自动预充电还是交错工作的方法都无法消除同行(页面)寻址时tRCD所带来的延迟。要解决这个问题,就要尽量让一个工作行在进行预充电前尽可能多的接收工作命令,以达到背靠背的效果,此时就只剩下CL所造成的读取延迟了(写入时没有延迟)。

如何做到这一点呢?这就是北桥芯片的责任了。现在我们就又接触到tRAS这个参数,在BIOS中所设置的tRAS是指行有效至预充电的最短周期,在内存规范中定义为tRAS(min),过了这个周期后就可以发出预充电指令。对于SDRAM和DDRSDRAM而言,一般是预充电命令至少要在行有效命令5个时钟周期之后发出,最长间隔视芯片而异(目前的DDRSDRAM标准一般基本在70000ns左右),否则工作行的数据将有丢失的危险。那么这也就意味着一个工作行从有效(选通)开始,可以有70000ns的持续工作时间而不用进行预充电。显然,只要北桥芯片不发出预充电(包括允许自动预充电)的命令,行打开的状态就会一直保持。在此期间的对该行的任何读写操作也就不会有tRCD的延迟。可见,如果北桥芯片在能同时打开的行(页)越多,那么PFHR也就越大。需要强调的是,这里的同时打开不是指对多行同时寻址(那是不可能的),而是指多行同时处于选通状态。我们可以看到一些SDRAM芯片组的资料中会指出可以同时打开多少个页的指标,这可以说是决定其内存性能的一个重要因素。

???但是,可同时打开的页数也是有限制的。从SDRAM的寻址原理讲,同一L-Bank中不可能有两个打开的行(读出放大器只能为一行服务),这就限制了可同时打开的页面总数。以SDRAM有4个L-Bank,北桥最多支持8个P-Bank(4条DIMM)为例,理论上最多只能有32个页面能同时处于打开的状态。而如果只有一个P-Bank,那么就只剩下4个页面,因为有几个L-Bank才能有同时打开几个行而互不干扰。Intel845的MHC虽然可以支持24个打开的页面,那也是指6个P-Bank的情况下(845MCH只支持6个P-Bank)。可见845已经将同时打开页数发挥到了极致。

???不过,同时打开页数多了,也对存取策略提出了一定的要求。理论上,要尽量多地使用已打开的页来保证最短的延迟周期,只有在数据不存在(读取时)或页存满了(写入时)再考虑打开新的指定页,这也就是变向的连续读/写。而打开新页时就必须要关闭一个打开的页,如果此时打开的页面已是北桥所支持的最大值但还不到理论极限的话(如果已经达到极限,就关闭有冲突的L-Bank内的页面即可),就需要一个替换策略,一般都是用LRU算法来进行,这与VIA的交错控制大同小异。

???回到正题,虽然tRAS代表的是最小的行有效至预充电期限,但一般的,北桥芯片一般都会在这个期限后第一时间发出预充电指令(自动预充电时,会在tRAS之后自动执行预充电命令),只有在与其他操作相冲突时预充电操作才被延后(比如,DDRSDRAM标准中规定,在读取命令发出后不能立即发出预充电指令)。因此,tRAS的长短一直是内存优化发烧友所争论的话题,在最近一两年,由于这个参数在BIOS选项中越来越普及,所以也逐渐被用户所关注。其实,在SDRAM时代就没有对这个参数有刻意的设定,在DDRSDRAM的官方组织JEDEC的相关标准中,也没有把其列为必须标明的性能参数(CL、tRCD、tRP才是),tRAS应该是某些主板厂商炒作出来的,并且在主板说明书上也注明越短越好。

???其实,缩小tRAS的本意在于,尽量压缩行打开状态下的时间,以减少同L-Bank下对其他行进行寻址时的冲突,从内存的本身来讲,这是完全正确的做法,符合内存性能优化的原则,但如果放到整体的内存系统中,伴随着主板芯片组内存页面控制管理能力的提升,这种做法可能就不见得是完全正确的,在下文中我们会继续分析tRAS的不同长短设置对内存性能所带来的影响。

4、BL长度对性能的影响

???从读/写之间的中断操作我们又引出了BL(突发长度)对性能影响的话题。首先,BL的长短与其应用的领域有着很大关系,下表就是目前三个主要的内存应用领域所使用的BL,这是厂商们经过多年的实践总结出来的。



BL与相应的工作领域

???BL越长,对于连续的大数据量传输很有好处,但是对零散的数据,BL太长反而会造成总线周期的浪费,虽然能通过一些命令来进行终止,便也占用了控制资源。以P-Bank位宽64bit为例,BL=4时,一个突发操作能传输32字节的数据,为了满足CacheLine的容量需求,还得多发一次,如果是BL=8,一次就可以满足需要,不用再次发出读取指令。而对于2KB的数据,BL=4的设置意味着要每隔4个周期发送新的列地址,并重复63次。而对于BL=256,一次突发就可完成,并且不需要中途再进行控制,但如果仅传输64字节,就需要额外的命令来中止BL=256的传输。而额外的命令越多,越占用内存子系统的控制资源,从而降低总体的控制效率。从这可以看出BL对性能的影响因素,这也是为什么PC上的内存子系统的BL一般为4或8的原因。但是不是8比4好,或者4比8好呢?并不能统一而论,这在下文会分析到。

到此,大家应该有一些优化的眉目了吧。我们可以先做一下界定,任何情况下,只要数值越小或越大(单一方向),内存的性能会越好的参数为绝对参数,而数值越小或越大对性能的影响不固定的参数则为相对参数。那么,CL、tRCD、tRP显然就是绝对参数,任何情况下减少它们的周期绝对不会错。而且从上文的分析可以发现,从重要性来论,优先优化的顺序也是CL→tRCD→tRP,因为CL的遇到的机会最多,tRCD其次,tRP如果页面交错管理的好,大多不受影响。而BL、tRAS等则可以算是相对参数。也正是由于这些相对参数的存在,才使得内存优化不再那么简单。解读内存中的Bank与CL相信大家在购买内存时,除了考虑价格、品牌、速度(工作时钟频率)之外,很少考虑到内存的其它方面,也正是因为这种疏忽,往往会造成在使用上的不便或出现系统性能的差异。今天笔者将和大家谈一下大多数人在购买内存时常常疏忽的两个问题——Bank与CL。两种内存Bank的区别也许有的朋友在购买内存后发现:为什么明明在商家那里可以使用,而在自己的电脑里就不能使用了呢?其实这里面就涉及到内存Bank的问题,今天将为大家深入分析出现这种情况的原因。内存Bank分为物理Bank和逻辑Bank。1.物理Bank传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一个传输周期能接收的数据容量就是CPU数据总线的位宽,单位是bit(位)。内存与CPU之间的数据交换通过主板上的北桥芯片进行,内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称之为物理Bank(PhysicalBank,简称P-Bank)的位宽。以目前主流的DDR系统为例,CPU与内存之间的接口位宽是64bit,也就意味着CPU在一个周期内会向内存发送或从内存读取64bit的数据,那么这一个64bit的数据集合就是一个内存条Bank。目前绝大多数的芯片组都只能支持一条内存包含两个物理Bank。不过以前有不少朋友都认为,内存的物理Bank是由面数决定的:即单面内存条则包含一个物理Bank,双面内存则包含两个。其实这个看法是错误的!一条内存条的物理Bank是由所采用的内存颗粒的位宽决定的,各个芯片位宽之和为64bit就是单物理Bank;如果是128bit就是双物理Bank。读到这里,大家也应该知道,我们可以通过两种方式来增加这种类型内存的容量。第一种就是通过增加每一个独立模块的容量来增加Bank的容量,第二种方法就是增加Bank的数目。由于目前内存颗粒位宽的限制,一个系统只有一个物理Bank已经不能满足容量的需要。所以,目前新一代芯片组可以支持多个物理Bank,最少的也能支持4个物理Bank。对于像Inteli845D这种支持4个Bank的芯片组来说,我们在选购内存时就要考虑一下插槽数与内存Bank的分配问题了。因为如果选购双Bank的内存,这意味着在Inteli845D芯片组上我们最多只能使用两条这样的内存,多了的话芯片组将无法识别。这里我建议大家最好根据自己的主板所提供的内存插槽数目来选购内存,如果主板只提供了两个内存插槽,那就不必为内存是单Bank还是双Bank而担心了。而如果主板提供了4个内存插槽(同一种规格),那么应该尽量购买单Bank或大容量双Bank的内存,以免给日后升级留下不必要的麻烦。注:SDRAM与DDR内存的物理Bank是一样的,不过在RDRAM内存规格中,物理Bank被通道(Channel)取代。2.逻辑Bank逻辑Bank的英文全称为LogicalBank,简称L-Bank。如果将物理Bank说成是内存颗粒阵列的话,那么逻辑Bank可以看做是数据存储阵列。不过与物理Bank不同,SDRAM与DDR内存的逻辑Bank并不完全一样,所以我将分开来简单介绍一下。简单地说,SDRAM的内部是一个存储阵列(图1),因为如果是管道式存储,就很难做到随机访问了。阵列就如同表格一样,将数据“填”进去。因此逻辑Bank我们可以看成是一张逻辑二维表,在此表中内存的数据是以位(bit)为单位写入一个大的矩阵中,每个单元我们称为CELL,只要指定一个行(Row),再指定一个列(Column),就可以准确地定位到某个CELL,里面每个单元都可以存储数据,而且每个单元的存储空间相同——因为实际上与物理Bank每个单元具体存储数据量相同。这个具体的单元存储数据量即为逻辑Bank的位宽(实际上内存芯片的位宽就是逻辑Bank的位宽),一般有4bit、8bit和16bit等几种。如果你认为不好理解的话,那么你可以用硬盘操作中的簇与扇区的关系来理解内存中的存储形式——扇区是硬盘中的最小存储单元相当于内存中的存储体而一个簇则包含多个扇区相当于逻辑Bank中的存储单元数据的交换都是以一个簇为单位进行。由于工艺上的原因,这个阵列不可能做得太大,所以一般内存芯片中都是将内存容量分成几个阵列来制造,也就是说内存芯片中存在多个逻辑Bank,随着芯片容量的不断增加,逻辑Bank数量也在不断增加。主板芯片组本身设计时在一个时钟周期内只允许对一个逻辑Bank进行操作,而不是主板芯片组对内存芯片内所有逻辑Bank同时操作。逻辑Bank的地址线是通用的,只要再有一个逻辑Bank编号加以区别就可以了(Bank0到Bank3)。但是这个芯片的位宽决定了一次能从它那里读出多少数据,并不是内存芯片里所有单元的数据能够一次全部读出。



对于DDR内存,逻辑Bank的作用、原理与在SDRAM中是一样的,区别主要是在逻辑Bank容量、规格之上。从上面大家已经知道,SDRAM中逻辑Bank存储单元的容量与芯片位宽相同,但DDR中并不是这样。DDR的逻辑存储单元的容量是芯片位宽的一倍:即“芯片位宽×2=存储单元容量”,同时DDR中的真正行、列地址数量也与同规格SDRAM不一样了。这主要是由于DDR的工作原理所决定的。DDR这种内部存储单元容量的设计,就是常说的两位预取(2-bitPrefetch),也称为2-nPrefetch(n代表芯片位宽)。注:目前品牌内存大都在包装和说明书中标明逻辑Bank,对于兼容条,你可以根据内存颗粒上的编号标志进行计算。至于物理Bank,大家可以根据以上介绍的原理计算出来,在这里我就不多说了。另外我们常说的内存交错设置并不是指的物理Bank的交错,也就是说不是内存条双面的交错,而是指内存芯片内部逻辑Bank的交错。如果芯片有4个Bank,那么就可以进行4路交错,如果只有两个Bank就只能是2路交错。很多资料介绍的以内存条的单面或双面来决定交错是错误的,实际上就是混淆了物理Bank和逻辑Bank的区别。内存CL与性能的关系此外,大家在购买品牌内存时如果留意,就会发现包装或标贴上会标有“CL=2.5或CL=2.0”诸如此类的标志(图2)。虽说是同一种类型的内存如DDR400,但由于上面标志CL的数值不同,因而价格也会不同,这是为什么呢?



标志上面的CL英文全称为CASLatency,为CAS的延迟时间。带宽表示的是数据传输能力,在各种内存中,在数据被真正传输前,传送方必须花费一定时间去等待传输请求的响应,这种等待就是一种延迟,在这里的专门术语就叫做“Latency”。而CASLatency就是指的是CPU在接到读取某列内存地址上数据的指令后,到实际开始读出数据所需的等待时间。内存内部的存储单元按照行和列排成一个矩阵,内存访问地址被解码成行和列两个信号。为了要读出或写入某笔数据,内存控制芯片会先传送列的地址,接下来RAS信号就会被激活。然而,在存取行的数据前,还需要几个执行周期才行,这就是所谓的RAS-to-CAS延迟时间。同样地,在CAS信号被执行后,也同样需要几个周期。使用标准PC133的SDRAM大约是2到3个周期;而DDRRAM则是4到5个周期。在DDR中,真正的CAS延迟时间则是2到2.5个执行周期。RAS-to-CAS的时间则视技术而定,大约是5到7个周期,这也是延迟的基本因素。可以说与CL=2.5(DDR)或CL3(SDRAM)比起来,CL=2内存更具优势这个优势可以通过总延迟时间的对比看出来。总延迟时间=系统时钟周期×CL模式数+存取时间(tAC)。比如某DDR333内存的存取时间为6ns,当我们将设定CL模式数为2.5(即CASLatency=2.5),则总延迟时间=6ns×2.5+6ns=21ns,而当将CL设为2的时候,总延迟时间=6ns×2+6ns=18ns,足足减少了3个执行周期;如果你的DDR266内存是采用默认143MHz的7ns芯片,当CL=2时,则其总延迟时间=7ns系统时钟周期×2+7ns=21ns。因此对于一款性能超群的DDR266内存来说,其性能可以达到DDR333的水准,这也就是为什么超频玩家喜欢选择CL值较低内存的原因。在这里也建议你在买内存的时候,如果CL=2的内存价格只比其它的高一点,那你最好买CL=2的产品(不过你要记住不同速度的内存混在一起时,最慢的内存就会成为性能瓶颈。举例来说,如果你插上1条CL=2的内存以及一条CL=2.5的内存,那两条内存都会以CL=2.5的设置来执行)。此外,目前各内存颗粒厂商除了从提高内存时钟频率来提高DDR的性能之外,已经考虑通过更进一步的降低CAS延迟时间来提高内存性能,这在DDR上是可行的,预计CL=1.5会是下一个发展的目标。不过,并不是说CL值越低性能就越好,因为其它的因素会影响这个数据。例如,新一代处理器的高速缓存较有效率,这表示处理器比较少地直接从内存读取数据。再者,列的数据会比较常被存取,所以RAS-to-CAS的发生几率也大,读取的时间也会增多。最后,有时会发生同时读取大量数据的情形,在这种情形下,相邻的内存数据会一次被读取出来,CAS延迟时间只会发生一次。此外,也许有一些朋友会注意到,当把DDR内存的CL从标准的2.5设置到2工作模式下的时候,反而系统的性能还没有默认的CL=2.5好了,这是什么原因呢?这是因为内存的品质不太好,不能稳定地工作在CL=2这种模式下,在此模式下会出现在存取数据的时候数据常常被“丢失”的情况(即数据读取命中率降低)。不能取得数据,当然就只能重新读取,这样就浪费掉了很多时间,从而造成系统效率低。附注:在内存条上的SPD芯片中已经包含有CL相关信息。当启动电脑时,BIOS会检查此项内容,并且以内存标称的CL模式运行。1.内存的单面与双面,单Bank与双Bank的区别?单面内存与双面内存的区别在于单面内存的内存芯片都在同一面上,而双面内存的内存芯片分布在两面。而单Bank与双Bank的区别就不同了。Bank从物理上理解为北桥芯片到内存的通道,通常每个通道为64bit。一块主板的性能优劣主要取决于它的芯片组。不同的芯片组所支持的Bank是不同的。如Intel82845系列芯片组支持4个Bank,而SiS的645系列芯片组则能支持6个Bank。如果主板只支持4个Bank,而我们却用6个Bank的话,那多余的2个Bank就白白地浪费了。双面不一定是双Bank,也有可能是单Bank,这一点要注意。2.内存的2-2-3通常是什么意思?这些电脑硬件文章经常出现的参数就是在主板的BIOS里面关于内存参数的设置了。通常说的2-2-3按顺序说的是tRP(TimeofRowPrecharge),tRCD(TimeofRAStoCASDelay)和CL(CASLatency)。tRP为RAS预充电时间,数值越小越好;tRCD是RAS到CAS的延迟,数值越小越好;CL(CASLatency)为CAS的延迟时间,这是纵向地址脉冲的反应时间,也是在一定频率下衡量支持不同规范的内存的重要标志之一。3.内存的双通道技术和单通道有什么不同?什么是双通道DDR技术呢?需要说明的是,它并非我们以前所介绍的DDRII,而是一种可以让2条DDR内存共同使用,数据并行传输的技术。双通道DDR技术的优势在于,它可以让内存带宽在原来的基础上增加一倍,这对于P4处理器的好处可谓不言而喻。大家都知道400MHzFSB的P4处理器和主板传输数据的带宽为3.2GB/s,而533MHzFSB的P4处理器的吞吐能力更是达到了4.3GB/s,但是目前除了I850E支持的RambusPC1066规范外,根本没有内存可以满足处理器的需要,我们最常用的DDR333本身仅具有2.7GB/s的带宽。4.DDR-和现在的DDR内存有什么不同?DDR-II内存是相对于现在主流的DDR-I内存而言的,它们的工作时钟预计将为400MHz或更高。主流内存市场将从现在的DDR-333产品直接过渡到DDR-II。DDR-II内存将采用0.13微米制程,容量为18MB/36MB/72MB,最大288MB,字节架构为X8、X18、X36,读取反应时间为2.5个时钟周期。通过将DLL(delay-lockedloop,延时锁定回路)设计到内存中(这与Rambus设计理念相似),输出的数据效率提升65%左右,DDR数据传送方式为每周期32个字节,并且可以随工作频率的提到更高性能。已知道的规格有:系统内存方面包括400MHz(4.8GB/s带宽)、533MHz(5.6GB/s带宽)、667MHz(GB/s带宽)三种,显卡(默认规格)方面包括800MHz、1000MHz两种。所有的DDR-II内存均在1.8V下工作,单条容量至少有512MB。DDR-II管脚数量有200pin、220pin、240pinFBGA封装形式之分,与现在的DDR内存不相容。高手教你如何优化内存参数设置

电脑保养|硬件知识|操作系统|设计编程|软件技术|常用技巧|黑客技术|认证考试|电脑技术大全|电脑常见问题的解决|电脑纸壁|网络安全|电脑杀毒|QQ技术|51技术对电脑知识感兴趣的人事请登陆http://www.pc789.com/内存作为电脑的三大核心配件之一其重要性不言而喻,很多用户也将改善内存性能作为提高配置整体性能一个重要手段。提到改善内存性能,大家首先想到的可能是增加内存容量、对内存进行超频,部分硬件玩家还会想到通过优化内存参数改善内存性能。不过目前大部分用户对于内存参数的定义和实际影响并不太了解,针对这一问题,笔者在本文中讲重点为大家介绍内存参数的含义,同时通过实际测试让大家了解内存参数对内存性能的影响,以及优化参数设置时的一些注意事项和技巧。?目前主流主板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在参数名称上可能存在一定差异,但是对应的缩写基本都是统一的。所以大家不用可以去记下参数的详细名称,只要记住对应的缩写就可以了。究竟这些参数的改变对内存的帮助有多大,而在超频的时候,究竟采用哪个参数呢?相信就是高手也不能立刻回答这些问题。为了让喜欢玩内存的朋友更加深入了解这些参数设置,我们就用评测数据来解开内存设置之谜。如果你自认是高手,那么以下的文章内容,你能不看吗?经过52硬件的测试和分析,我们可以对影响DDR2内存的诸多因素进行一个简单的小结——在所有因素中,工作频率对于DDR2内存影响最为突出。用户比较关心的内存时序、CMD等参数对于内存性能也有一定影响,但与频率变化相比影响要小一些。所以,对于追求内存性能的用户而言,大家应该把提升内存频率放在首位。找到一个相对合适的超频频率后,再通过调整内存参数对内存性能进行进一步的优化。具体到内存参数调节,通过此前的测试中我们可以看到调节时序参数可以在一定程度上提升内存性能,但提升幅度只有1%-2%。在实际调节过程中,大家可以先将tCL、tRCD、tRP、tRAS几大参数设定为较低的数值,如果内存出现不稳定的情况,我们再逐渐增加以上几项参数的延迟设置。考虑到tCL参数对内存性能影响较大,建议先增加tRCD、tRP、tRAS,最后再增加tCL参数延时。对于大家比较关心的1T/2T设置,它对性能的影响要比时序参数明显一些,测试中内存在1T设置下性能有1%-3%左右的提升。不过在采用1T设置后,内存的稳定性大幅降低,超频幅度也受到明显制约。综合考虑,笔者认为追求性能的玩家可以尝试使用1T设置,但这必须是以不影响内存稳定性和超频空间为前提的。如果用户盲目追求使用1T设置而影响到系统的稳定性和内存的超频能力,这种做法显然得不偿失。至于普通用户,笔者认为最好不要去更改内存的1T/2T设置。总而言之,如果用户希望获得更好的内存性能,那么最有效的办法的就是适当提升内存频率,这样内存的性能提升也是最为显著的。在对内存进行超频后,如果大家还希望进一步优化内存性能,那么可以适当降低tCL、tRCD、tRP、tRAS以及CMD参数设置。不过在降低参数延迟的过程中如果内存出现不稳定的情况,那么大家就应该逐步增加参数延迟(特别是CMD参数),这样才能兼顾性能和稳定性。最后,笔者为大家总结了内存性能优化的操作流程(如下所示),希望这些流程能够帮助大家充分挖掘内存的性能:??在默认参数下对内存进行超频,确定内存能够稳定工作的超频频率,其间可适当增加内存电压,但为了安全起见最好不要超过2.1V。(如果用户不打算对内存进行超频,只是想通过优化参数获得更好的性能,可直接跳至第二步)。1:将内存延时设置在较低的水平,比如DDR2-800内存可以设定为4-4-4-10,更高频率内存可以设定为5-5-5-15。同时将CMD参数设置为1T,并利用测试软件检查内存是否能够稳定工作。2:假如降低参数延迟后内存出现不稳定的情况,建议首先将CMD参数调整为AUTO或2T,再使用软件检测内存的稳定性。3:如果内存在2T或AUTO模式下仍然无法工作,用户可将逐步提高tCL、tRCD、tRP、tRAS参数的延时设置。4:对于tCL参数对内存性能影响较大,大家可以先增加tRCD、tRP、tRAS参数的延迟,最后再增加tCL参数延迟,直至内存能够稳定工作为止

内存参数详解如今很多玩家都想方设法的发掘电脑的性能,内存带宽对整个系统起到至关重要的作用,它关系到系统总线速度。大家在设置过程中可能会遇到一些感到迷惑的现象,有时一个较低的总线速度配以高参数的内存,其性能也许比一味追求高总线速度还要好。选购内存时,玩家也都知道,同频率下时序参数越高的内存其系统带宽也会随之增长,也就是要尽量选用CAS/tRCD/tRPD/tRAS参数值低的内存。举个例子,如果系统总线速度为400MHz,你需要搭配使用PC3200规格的DDR内存,理想的CAS值是2。如果要把系统总线超频到500MHz,同步的情况下则需要PC4000的内存。当大家选购高频率的内存时,应该会发现其CAS延迟通常都比较高,2.5或者3是比较常见的。然而CAS是最敏感的内存参数,CAS值从3降低到2,虽然只有1/3,但另一方面,如果这种情况发生在一个总线速度为500MHz的系统上,你的系统性能会提升25%之多!内存控制器:内存控制器是电脑上最重要的组成部件之一。它的功能是监督控制数据从内存载入/载出。如果需要,还可以对数据的完整性进行检测。芯片组决定了支持的处理器类型,通常包含几组控制器,分别控制着处理器和其他组件的数据交换。内存控制器是芯片组很常见的一部分,它建立了从内存到微处理器的数据流。如果是支持双通道模式的芯片组,就会包含两组内存控制器。与众不同的是,近期问世的AMDAthlon64处理器内部集成了内存控制器。内存参数规格:内存的时序参数一般简写为2/2/2/6-11/1T的格式,分别代表CAS/tRCD/tRP/tRAS/CMD的值。2/2/2/6-11/1T中最后两个时序参数,也就是tRAS和CMD(Command缩写),是其中较复杂的时序参数。目前市场上对这两个参数的认识有一些错误,因为部分内存厂商直接用它们来代表内存性能。CMDRate祥解:CommandRate译为"首命令延迟",这个参数的含义是片选后多少时间可以发出具体的寻址的行激活命令,单位是时钟周期。片选是指对行物理Bank的选择(通过DIMM上CS片选信号进行)。如果系统指使用一条单面内存,那就不存在片选的问题了,因为此时只有一个物理Bank。用更通俗的说法,CMDRate是一种芯片组意义上的延迟,它并不全由内存决定,是由芯片组把虚拟地址解释为物理地址。不难估计,高密度大容量的系统内存的物理地址范围更大,其CMD延迟肯定比只有单条内存的系统大,即使是双面单条。Intel对CMD这个问题就非常敏感,因此部分芯片组的内存通道被限制到四个Bank。这样就可以比较放心地把CMDRate限定在1T,而不理用户最多能安装多少容量的内存。宣扬CMDRate可以设为1T实际上多少也算是一种误导性广告,因为所有的无缓冲(unbuffered)内存都应具有1T的CMDRate,最多支持四个Bank每条内存通道,当然也不排除芯片组的局限性。tRAS:tRAS在内存规范的解释是ActivetoPrechargeDelay,行有效至行预充电时间。是指从收到一个请求后到初始化RAS(行地址选通脉冲)真正开始接受数据的间隔时间。这个参数看上去似乎很重要,其实不然。内存访问是一个动态的过程,有时内存非常繁忙,但也有相对空闲的时候,虽然内存访问是连续不断的。tRAS命令是访问新数据的过程(例如打开一个新的程序),但发生的不多。接下来几个内存时序参数分别为CAS延迟,tRCD,以及tRP,这些参数又是如何影响系统性能的呢?CAS:CAS意为列地址选通脉冲(ColumnAddressStrobe或者ColumnAddressSelect),CAS控制着从收到命令到执行命令的间隔时间,通常为2,2.5,3这个几个时钟周期。在整个内存矩阵中,因为CAS按列地址管理物理地址,因此在稳定的基础上,这个非常重要的参数值越低越好。过程是这样的,在内存阵列中分为行和列,当命令请求到达内存后,首先被触发的是tRAS(ActivetoPrechargeDelay),数据被请求后需预先充电,一旦tRAS被激活后,RAS才开始在一半的物理地址中寻址,行被选定后,tRCD初始化,最后才通过CAS找到精确的地址。整个过程也就是先行寻址再列寻址。从CAS开始到CAS结束就是现在讲解的CAS延迟了。因为CAS是寻址的最后一个步骤,所以在内存参数中它是最重要的。tRCD:根据标准tRCD是指RAStoCASDelay(RAS至CAS延迟),对应于CAS,RAS是指RowAddressStrobe,行地址选通脉冲。CAS和RAS共同决定了内存寻址。RAS(数据请求后首先被激发)和CAS(RAS完成后被激发)并不是连续的,存在着延迟。然而,这个参数对系统性能的影响并不大,因为程序存储数据到内存中是一个持续的过程。在同个程序中一般都会在同一行中寻址,这种情况下就不存在行寻址到列寻址的延迟了。tRP:tRP指RASPrechargeTime,行预充电时间。也就是内存从结束一个行访问结束到重新开始的间隔时间。简单而言,在依次经历过tRAS,然后RAS,tRCD,和CAS之后,需要结束当前的状态然后重新开始新的循环,再从tRAS开始。这也是内存工作最基本的原理。如果你从事的任务需要大量的数据变化,例如视频渲染,此时一个程序就需要使用很多的行来存储,tRP的参数值越低表示在不同行切换的速度越快。总结:或许你看完以上论述后还是有一些不解,其实大家也没必要对整个内存寻址机制了解的非常透彻,这个并不影响你选择什么规格的内存,以及如何最大程度上在BIOS中优化你的内存参数。最基本的,你应该知道,系统至少需要搭配满足CPU带宽的内存,然后CAS延迟越低越好。因为不同频率的内存的价格相差并不是很大,除了那些发烧级产品。从长远的目光来考虑,我们建议大家尽量购买高频率的内存产品。这样或许你将来升级CPU时可以节省一笔内存费用,高频率的内存都是向下兼容的。例如如果购买了PC3200400MHz的内存,标明的CAS延迟是2.5。如果你实际使用时把频率降到333MHz,通常情况下CAS延迟可以达到2。一般而言,想要保持内存在一个高参数,如果不行可以采取降低频率的方法。但对处理器超频时,都会要求较高的总线速度,此时的瓶颈就在内存系统上,一般只有靠牺牲高参数来保持内存频率和CPU的外频同步。这样可以得到更大的内存带宽,在处理大量数据时就能明显的从中获益,例如数据库操作,Photoshop等。另外一点值得注意的是,PC3200或PC3500规格的内存,如果CAS延迟可以设为2,也能在一定程度上弥补内存带宽。因为此时CPU和内存交换数据时间隔的时间大大减少了。如果用户经常使用的程序并不需要大的带宽,低CAS延迟也会带来显著的性能提升,例如一些小型游戏和3D应用程序。总而言之,一条参数为2-2-2-5的内存绝对比3-4-4-8的内存优秀很多,总线速度越高,这种情况就越明显

献花(0)
+1
(本文系Kinetis首藏)