科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网存储频道速度与优化并进 DDR之巅峰对决(上)——如何有效的优化内存性能

速度与优化并进 DDR之巅峰对决(上)——如何有效的优化内存性能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

有关内存优化的文章其实已经有很多了,可能大家都没觉得没什么了不起的,不就是那几个参数吗?这还用讲?但是,我相信 90% 以上的人并没有完全真正理解那些时序参数的含义。我敢说,目前很多的优化原则都是有问题的,甚至有误导的倾向!

作者:赵效民 2004年3月22日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共6页)

单/双通道内存优化总结

在上文中,我们引入了很多鲜为人知的一些概念。由此我们会发现以往的优化原则基本上存在着很多盲目的成分。目前几乎所有的内存优化与测试文章(包括国外的一些知名网站)都告诉读者,只要是和内存沾边的时序参数,越小越好!但当你看过本文后,又会有何感想呢?显然,之前的优化原则并不严谨也缺乏科学的论证。在经历了优化实验后,我们可以试着总结其中的原因,以进一步探讨 tRAS 对内存性能所带来的影响。

前文已经讲过,tRAS 的本意是想尽量减少行寻址的冲突,降低 PMR,但这是从内存芯片本身角度出发的,如果从内存子系统的全局考虑,它可能会减少背靠背操作的机率。下面是笔者根据 JEDEC 发布的 DDR SDRAM 官方标准制作的时序示意图。从中我们可以发现短 tRAS 在某些情况下性能表现不佳的原因。

当 BL=8、tRAS=5 时,第二个可能出现的读取命令会因预充电而延后,使得连续突发传输无法进行,不能进行背靠背操作

当 BL=4、tRAS=5 时,第三个可能出现的读取命令会因预充电而延后,使得连续突发传输无法进行,只完成了一次背靠背操作

当 BL=8、tRAS=8 时,第二个读取指令会在预充电之前发出,并使预充电延后,从而完成了一次背靠背操作

当 BL=4、tRAS=8 时,第三个读取指令会在预充电之前发出,从而完成了两次背靠背操作

当 BL=8、tRAS=5 时,由于 DDR SDRAM 在写入时的时序限制,预充电最早可以出现的时间大大延长

当 BL=4、tRAS=5 时,由于 DDR SDRAM 在写入时的时序限制,预充电最早可以出现的时间被延后至第 8 个时钟周期

当 BL=8、tRAS=8 时,由于 DDR SDRAM 在写入时的时序限制,预充电最早可以出现的时间与 Tras=5 时一样

当 BL=4、tRAS=8 时,预充电不会被拖后,而且之前有 4 个时钟周期可以接受写入指令,比 tRAS=5 多一个,增加了背靠背操作的机会。

从以上的分析中,我们能发现一些 tRAS 对背靠背操作的一些影响(似乎对读取的影响比对写入的影响大一点,对于上文的 PCMark04 的详细测试数据,也可以发现这一点),但当 tRCD 越长,留给读 / 写命令至预充电命令之间的时间越短时,短 tRAS 相对于长 tRAS 的这方面差距才会慢慢变小。但是,我们不能抹杀短 tRAS 在降低 PMR 方面的贡献,尤其是当可供管理的页面较少时,短 tRAS 的优势就会比较明显。如果 tRAS 较长,页面关得慢,且总页面数量又少,很可能会出现芯片组周转不开从而增加 PMR 的情况。但当芯片组可控制的页面增多后,长 tRAS 在背靠背操作方面的优势就会逐渐显现,因为通过芯片组的调度,寻址冲突已经不再那么严重了。

不过,有人可能会发现 BIOS 中往往不会提供相关的设置选项,或者提供的选项不够用怎么办(比如 875 支持 Tras=10,但 P4C800 和 P4P800 都只能到 8),这可怎么办呢?其实,除了 BIOS 可以调节内存的时序参数,有些软件也可以,如著名的 WPCREDIT,就可以更改某些芯片组的内存控制器的寄存器,但是,目前大众能了解的寄存设置情况只有 Intel 的芯片。所以,在此我也不打算详细介绍软件修改的方法,更何况 875/865 要想调出相关的设备寄存器还需要先改动其他的寄存器,比较麻烦,而且许多 875/865 主板是不可改的。至于其他的芯片组,大家可以通过在 BIOS 改变一些选项,然后用 CPU-Z 之类的软件导出寄存器,通过对比能发现一些不同,然后试着用 WPCREDIT 进行修改,但这么做会非常繁琐,并且在不知道寄存器的位数类型 (8、16 还 32bit)时,抱着“瞎猫碰死耗子”的心态去尝试会比较危险。所以,在此我只讲讲大概的方法,并不会提倡这种人工修改寄存器的方式。

至此,我们可以总结出以下几点内存优化的原则和相关的技巧,供大家参考:

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

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

3、页面数量的计算公式为: P-Bank 数量 X4,如果是 Pentium4 或 AMD 64 的双通道平台,则还要除以 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 与 AMD 64 平台,tRAS 长短之间的性能差异要缩小

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

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

小提示:BIOS中内存相关参数的设置要领

Automatic Configuration“自动设置”(可能的选项:On/ Off或Enable/Disable)

可能出现的其他描述为:DRAM Auto、Timing Selectable、Timing Configuring By SPD等,如果你要手动调整你的内存时序,你应该关闭它,之后会自动出现详细的时序参数列表。

Bank Interleaving(可能的选项:Off/Auto/2/4)

这里的Bank是指L-Bank,目前的DDR RAM的内存芯片都是由4个L-Bank所组成,为了最大限度减少寻址冲突,提高效率,建议设为4(Auto也可以,它是根据SPD中的L-Bank信息来自动设置的)。

Burst Length“突发长度”(可能的选项:4/8)

一般而言,如果是AMD Athlon XP或Pentium4单通道平台,建议设为8,如果是Pentium4或AMD 64的双通道平台,建议设为4。但具体的情况要视具体的应用而定。

CAS Latency “列地址选通脉冲潜伏期”(可能的选项:1.5/2/2.5/3)

BIOS中可能的其他描述为:tCL、CAS Latency Time、CAS Timing Delay。不用多说,能调多短就调多短。

Command Rate“首命令延迟”(可能的选项:1/2)

这个选项目前已经非常少见,一般还被描述为DRAM Command Rate、CMD Rate等。由于目前的DDR内存的寻址,先要进行P-Bank的选择(通过DIMM上CS片选信号进行),然后才是L-Bank/行激活与列地址的选择。这个参数的含义就是指在P-Bank选择完之后多少时间可以发出具体的寻址的L-Bank/行激活命令,单位是时钟周期。显然,也是越短越好。但当随着主板上内存模组的增多,控制芯片组的负载也随之增加,过短的命令间隔可能会影响稳定性。因此当你的内存插得很多而出现不太稳定的时间,才需要将此参数调长 。目前的大部分主板都会自动设置这个参数,而从上文的ScienceMark 2.0测试中,大家也能察觉到容量与延迟之间的关系。

RAS Precharge Time “行预充电时间”(可能的选项:2/3/4)

BIOS中的可能其他描述:tRP、RAS Precharge、Precharge to active。通过上文的讲述,大家现在应该明白它也是越小越

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

BIOS中的可能其他描述: tRCD、RAS to CAS Delay、Active to CMD等。数值越小越好。

Active to Precharge Delay“行有效至行预充电时间”(可能的选项:1……5/6/7……15)

BIOS中的可能其他描述:tRAS、Row Active Time、Precharge Wait State、Row Active Delay、Row Precharge Delay等。根据上文的分析,这个参数要根据实际情况而定,具体设置思路见上文,并不是说越大或越小就越好。

好了,到这里,有关内存优化的探讨就告一段落,既然知道了相关的原则与方法,下面就要选选合适的“武器”了,接下来就是本专题的第二部分: DDR 巅峰对决之 19 款内存横向测试。 (若想就相关话题进行深入讨论,欢迎访问《存储时代》论坛

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章