自从P4推出之后,内存带宽这个词儿就越来越流行了,很多所谓的高手都经常用带宽来说明一些问题,这不仅令到不少初学者一头雾水,就算是很多老鸟们也只是一知半解,并没有真正研究过带宽对性能的影响究竟有多大!很多时候都是人云亦云,或者只是想当然的按照理论去计算,在这篇文章里,将会对内存(显存)带宽对系统性能的具体影响作深入的探讨,让大家对内存(显卡)带宽有更深一步的认识。
早在SDRAM时代,我们对于内存带宽就形成了初步概念。时至今日,内存带宽已经成为除CPU以外对整体性能影响最大的因素。无独有偶,显卡上显存的带宽也会对3D性能产生至关重要的影响,其本质与内存带宽是类似的。那么,内存带宽究竟能够造成多大的影响呢?还是让测试数据来说明一切!
内存带宽基础知识
何谓内存带宽
从功能上理解,我们可以将内存看作是内存控制器(一般位于北桥芯片中)与CPU之间的桥梁或与仓库。显然,内存的容量决定“仓库”的大小,而内存的带宽决定“桥梁”的宽窄,两者缺一不可,这也就是我们常常说道的“内存容量”与“内存速度”。
除了内存容量与内存速度,延时周期也是决定其性能的关键。当CPU需要内存中的数据时,它会发出一个由内存控制器所执行的要求,内存控制器接著将要求发送至内存,并在接收数据时向CPU报告整个周期(从CPU到内存控制器,内存再回到CPU)所需的时间。毫无疑问,缩短整个周期也是提高内存速度的关键,这就好比在桥梁上工作的警察,其指挥疏通能力也是决定通畅度的因素之一。
更快速的内存技术对整体性能表现有重大的贡献,但是提高内存带宽只是解决方案的一部分,数据在CPU以及内存间传送所花的时间通常比处理器执行功能所花的时间更长,为此缓冲区被广泛应用。其实,所谓的缓冲器就是CPU中的一级缓存与二级缓存,它们是内存这座“大桥梁”与CPU之间的“小桥梁”。事实上,一级缓存与二级缓存采用的是SRAM,我们也可以将其宽泛地理解为“内存带宽”,不过现在似乎更多地被解释为“前端总线”,所以我们也只是简单的提一下。事先预告一下,“前端总线”与“内存带宽”之间有着密切的联系,我们将会在后面的测试中有更加深刻的认识。
内存带宽的重要性
内存带宽为何会如此重要呢?在回答这一问题之前,我们先来简单看一看系统工作的过程。基本上当CPU接收到指令后,它会最先向CPU中的一级缓存(L1 Cache)去寻找相关的数据,虽然一级缓存是与CPU同频运行的,但是由于容量较小,所以不可能每次都命中。这时CPU会继续向下一级的二级缓存(L2 Cache)寻找,同样的道理,当所需要的数据在二级缓存中也没有的话,会继续转向L3 Cache(如果有的话,如K6-2+和K6-3)、内存和硬盘。由于目前系统处理的数据量都是相当巨大的,因此几乎每一步操作都得经过内存,这也是整个系统中工作最为频繁的部件。如此一来,内存的性能就在一定程度上决定了这个系统的表现,这点在多媒体设计软件和3D游戏中表现得更为明显。
系统内存工作原理示意图
3D显卡的内存带宽(或许称为显存带宽更为合适)的重要性也是不言而喻的,甚至其作用比系统的内存带宽更为明显。大家知道,显示卡在进行像素渲染时,都需要从显存的不同缓冲区中读写数据。这些缓冲区中有的放置描述像素ARGB(阿尔法通道,红,绿,蓝)元素的颜色数据,有的放置像素Z值(用来描述像素的深度或者说可见性的数据)。
显然,一旦产生Z轴数据,显存的负担会立即陡然提升,在加上各种材质贴图、深度复杂性渲染、3D特效,其工作量可想而知。在更多情况下,显存带宽的重要性超越了显存容量,这点我们将在后文的测试中有详细说明。
如何提高内存带宽
内存带宽的计算方法并不复杂,大家可以遵循如下的计算公式:带宽=总线宽度×总线频率×一个时钟周期内交换的数据包个数。
很明显,在这些乘数因子中,每个都会对最终的内存带宽产生极大的影响。然而,如今在频率上已经没有太大文章可作,毕竟这受到制作工艺的限制,不可能在短时间内成倍提高。而总线宽度和数据包个数就大不相同了,简单的改变会令内存带宽突飞猛进。DDR技术就使我们感受到提高数据包个数的好处,它令内存带宽疯狂地提升一倍。
当然,提高数据包个数的方法不仅仅局限于在内存上做文章,通过多个内存控制器并行工作同样可以起到效果,这也就是如今热门的双通道DDR芯片组(如nForce2、I875/865等)。事实上,双通道DDR内存控制器并不能算是新发明,因为早在RAMBUS时代,RDRAM就已经使用了类似技术,只不过当时RDRAM的总线宽度只有16Bit,无法与DDR的64Bit相提并论。内存技术发展到如今这一阶段,四通道内存控制器的出现也只是时间问题,VIA的QBM技术以及SiS支持四通道RDRAM的芯片组,这些都是未来的发展方向。
内存未来的发展方向
至于显卡方面,我们对其显存带宽更加敏感,这甚至也是很多厂商用来区分高低端产品的重要方面。同样是使用DDR显存的产品,128Bit宽度的产品会表现出远远胜过64Bit宽度的产品。当然提高显存频率也是一种解决方案,不过其效果并不明显,而且会大幅度提高成本。值得注意的是,目前部分高端显卡甚至动用了DDRII技术,不过至少在目前看来,这项技术还为时过早。
如何识别产品的内存带宽
对于内存而言,辨别内存带宽是一件相当简单的事情,因为SDRAM、DDR、RDRAM这三种内存在外观上有着很大的差别,大家通过下面这副图就能清楚地认识到。唯一需要我们去辨认的便是不同频率的DDR内存。目前主流DDR内存分为DDR266、DDR333以及DDR400,其中后三位数字代表工作频率。通过内存条上的标识,自然可以很方便地识别出其规格。
通过内存条上的标识,自然可以很方便地识别出其规格
相对而言,显卡上显存带宽的识别就要困难一些。在这里,我们应该抓住“显存位宽”和“显存频率”两个重要的技术指标。显存位宽的计算方法是:单块显存颗粒位宽×显存颗粒总数,而显存频率则是由"1000/显存颗粒纳秒数"来决定。一般来说,我们可以从显存颗粒上一串编号的最后2两位看出其纳秒数,从中也就得知其显存频率。至于单块显存颗粒位宽,我们只能在网上查询。
HY、三星、EtronTech(钰创)等都提供专用的显存编号查询网站,相当方便。此外,使用RivaTuner也可以检测显卡上显存的总位宽,大家打开RivaTuner在MAIN菜单即可看到。
二、 内存带宽测试分析
在了解一些相关的重要知识之后,我们将通过详细的测试向大家展示内存带宽的奥秘。对于不同的CPU平台,内存带宽的重要性不尽相同,而在与内存延时的搭配上,内存带宽也有很多学问。好了,还是请大家看具体的测评。
AMD-nForce2平台的内存带宽分析
正是nForce2芯片组的出现才让AthlonXP平台向更高的前端总线发展,而经过一段时间的超频体验,不少用户都会前端总线与内存带宽之间的关联有了一定的认识。一般而言,我们的常理告诉我们内存频率越高越好,因为它直接决定了内存带宽。然而在nForce2芯片组中则并不是这样一回事。由于内存控制器的特殊性,它要求DDR内存与CPU同步运行时才能达到最佳性能。下面是nForce2芯片组在内存同步/异步条件下的测试成绩:
简单说来,即CPU设定为166MHz外频(333MHz前端总线)、DDR运行于DDR333模式时,其性能要比CPU设定为166MHz外频、DDR运行于DDR400模式的方案更好。所以,无论在何种情况下,我们都建议nForce2用户将"Memory Frequency"设定为"Sync(同步)"。事实上,同样的情况也出现在ALi MAGiK1和SiS745这两款芯片组上,DDR333在不同步时性能反而不如DDR266同步,好在它们的市场份额并不大。
此外,当我们使用不集成显卡的SPP北桥时,单通道与双通道之间的性能差距微乎其微,甚至都可以将微小的差距理解为测试误差。而在使用集成显卡的IGP北桥中,双通道确实展现出很大的优势。毫无疑问,对于nForce2而言,双通道尽管能够提升内存带宽,但是AthlonXP的前端总线利用不上,单通道DDR已经完全能够满足其需求。之所以nForce2能再KT400面前横行霸道,其关键还在于内存控制器的效率,而非双通道技术。
AMD-KT400A平台
VIA的KT400A也是一款主流SocketA芯片组,那么它究竟是否会出现高内存频率异步时性能不佳的情况呢?请大家先不要忙着下结论,更应该抛弃以往对KT333/400的陈见,因为KT400A的内存控制器经过了VIA的重新设计。
显然,KT400A已经能够利用里DDR400的高带宽,即便是在内存异步的情况下。现在,大家应该很明白在SocketA平台下的内存优化了吧,确实很简单:nForce2要保持同步,而KT400A/600应该尽可能提高内存频率。
Intel-I845PE平台
尽管单通道的I845PE芯片组已经略显落伍,但是我们能够从中分析出单通道情况下,内存带宽的重要性。事实上,P4处理器很早就达到533MHz前端总线(133MHz外频),此时只有使用DDR333才算是同步运行。
很明显,DDR333的高内存带宽在此表现出明显的性能优势,无论对3D游戏还是商业应用软件都大有裨益。事实上,单通道DDR对于Pentium4的Netburst架构而言仅仅是杯水车薪,即便是DDR333也无法满足Pentium4的需求,因为533MHz前端总线的Pentium4必须拥有4.2GB/s的内存带宽才能充分别发挥性能,而单通道的DDR333只具备2.7GB/s,更不用说DDR266了。
Intel-I865PE
I865PE芯片组是如今毫无疑问的当红小生,凭借双通道DDR技术。它完全解决了内存带宽的瓶颈,引爆P4处理器的最大动力。在这里,我们将对比单通道DDR400、双通道DDR400以及双通道DDR333之间的性能。当然,此时的P4处理器运行于800MHz前端总线。
双通道DDR确实是P4处理器的最佳拍档,在这种环境下,系统的整体性能得到最佳发挥。如果对比一下各种前端总线的P4处理器所需要的带宽以及各种内存模式能够提供的带宽,我们也就不难理解出现这一现象的原因了。
前端总线频率/工作频率 最高带宽 Pentium4 400MHz 3.2GB/s Pentium4 533MHz 4.2GB/s Pentium4 800MHz 6.4GB/s DDR266 266MHz 2.1GB/s 双通道DDR266 266MHz 4.2GB/s DDR333 333MHz 2.7GB/s 双通道DDR333 333MHz 5.4GB/s DDR400 400MHz 3.2GB/s 双通道DDR400 400MHz 6.4GB/s由于双通道DDR400的带宽是6.4GB/s,正好满足800MHz前端总线的P4处理器,因此表现出最佳的组合。
Intel-SiS655
Intel芯片组一直对于内存异步相当保守,甚至一直不允许内存频率高于CPU的外频。不过SiS可并不这样认为,其高端的SiS655芯片组同样支持双通道DDR400,而且能够以更加灵活的方式进行异步,这意味着即便我们的P4处理器运行于533MHz前端总线,也可以在SiS655芯片组上使用DDR400。那么这种异步模式是否有价值呢?测试中,我们选择了533MHz前端总线的P4处理器,分别配合单通道DDR400、单通道DDR333以及双通道DDR333。
测试结果相当耐人寻味,因为在内存频率高于CPU的外频的异步模式下,性能依旧取得了提升,我们不得不对SiS刮目相看。不过,单通道的DDR400毕竟还是不敌双通道DDR333,毕竟单通道的DDR400只能提供3.2GB/s的内存带宽,仍然小于期望中的4.2GB/s。相反,双通道DDR333却发挥了很大的优势。
在测试中,我们还发现SiS655在配合800MHz前端总线的P4处理器时居然无法在使用双通道DDR400下发挥出最佳性能,此时测试成绩还不如搭配双通道DDR333,看来SiS655还有待完善,我们更加期待SiS655FX。
内存带宽与延时的矛盾
熟悉内存优化的朋友一定知道内存延时(CL值)的重要性,然而如今大多数DDR内存都难以运行在CL=2的模式下,特别在提高其工作频率的情况下。很多DDR266内存能够在266MHz下稳定运行于CL=2,也可以在333MHz下稳定运行于CL=2.5,同样的情况也出现在DDR333内存中。这就带给我们这样一个矛盾,究竟应该提高内存频率还是缩短内存延时?
为此,我们分别选择了AMD和Intel的平台进行测试。为了凸现出内存带宽的重要性,我们特意将CL=2时的内存频率低于CPU外频,这样的数据更有评判价值。测试平台如下:
从测试结果来看,AthlonXP平台显然对于内存延时更加敏感。对于前端总线并不高的AthlonXP平台而言,我们认为DDR333+CL2的性能肯定在DDR400+CL2.5之上,因此建议大家在可能的情况下优化CL延时。至于I865PE平台,毕竟Pentium4还是对内存带宽相当饥渴,此时自然应该尽可能地保证内存频率,而牺牲内存延时。
三、 显存带宽测试分析
很多用户都有这样的感受,显存带宽对于显卡的3D性能而言实在太重要,而且各种显卡所搭配的显存在位宽、频率以及显存种类方面有着很大的区别。通过下面这些测试,我恩将对显存带宽有更为深刻的认识。
不同显存频率之间的性能区别
在购买显卡时,我们对显存频率往往格外关注,因为较高的显存带宽往往能够各种3D游戏中展现出更加出色的性能,特别是在如今大型3D游戏日益流行的时代。为此,我们采用同一款显卡在GPU核心频率不变的情况下进行显存超频测试,看看显存频率究竟带来多大的影响。测试中分别采用Radeon 9000Pro和Geforce4 Ti4200,测试软件为普及的QuakeIII,运行于1600×12000×32bit。
从测试结果来看,Ti4200对于显存频率似乎更加敏感,这也并不出乎我们的意料。一般而言,同系列中降频产品往往会在超频后大幅度提升性能,因为厂商在设计GPU时就针对最高版本所需要的内存带宽,一旦我们将内存带宽提升,那么此时所引发的性能提升将是最大的。而Radeon9000Pro本身已经算是9000系列中的高频率产品,因此GPU对于显存的利用率基本上区域饱和,再次提升显存带宽自然也没能表现出足够的提升幅度。
当然,我们也不能忘记GPU对显存带宽的需求性。从目前显卡技术的发展趋势来看,象素填充率与显存带宽是毫无疑问的两大热点,越是高端的显卡越需要更高的显存带宽。因此,我们建议准备选购Geforce Ti4200以及Radeon 9500以上档次显卡的用户更加关注显存频率。
64Bit与128Bit的性能差别
从显存带宽的计算公式我们也可以得知,显存位宽对于显存带宽的影响力是何等重大。在中低端产品中,不少厂商为了降低价格,提高市场竞争力而推出64Bit位宽显存的产品,其性价比究竟如何?与128Bit显存有多大差距呢?
从GeforceFX5200的情况来看,64Bit与128Bit显存之间的差距的确很大。就个人角度而言,我认为没有必要为了节约区区100多元而选择廉价版的64Bit显存产品,毕竟此时所损失的性能太大,性价比实在不高。此外要提醒大家的,在实际运行频率相同的情况下,一般128Bit的SDRAM显存要好于64Bit的DDR显存,尽管两者的理论显存带宽完全一样。对于准备选购Geforce4MX 440SE以及Geforce2MX的用户而言,这点应该注意,不要被DDR的光环所迷惑。
显存频率与显存容量孰轻孰重
就目前应用和游戏而言,显存带宽比显存容量重要得多,显存带宽高的显卡往往性能高于容量虽大,但显存带宽不足的显卡。为此,我们采用两款Geforce4 MX440显卡进行验证,一款显存容量为64MB,运行于450MHz DDR,另一款显存容量为128MB,运行于400MHz DDR,两者的GPU核心频率一样。
测试结果也证明了我们的推论,对于如今的主流显卡,64MB显存确实已经绰绰有余,更为重要的是显存带宽。当然,一旦NV40以及R400之类的恐怖级产品普及,这一推论可不一定适用。
超前讨论:DDR Vs DDR2
DDR2显存的呼声日渐高涨,渴望时刻保持领先的nVIDIA在GeforceFX5800 Ultra中选择了这种尚未普及的内存规格。然而遗憾的是,这也成为NV30的一大败笔。DDR2不仅因为成本问题难以普及,其自身的技术也并不成熟。
在GeforceFX5800 Ultra中,8枚DDR2显存芯片需要消耗28W功耗,而且造成了巨大的发热量。撇开为了散热而带来的成本问题不谈,即便是恼人的噪音问题都已经让nVIDIA尴尬不已,这也注定NV35不会取得类似于其前辈们的成功。当我们见到带有水冷散热(或者夸张的散热器)以及外置电源的GeforceFX5800 Ultra显卡时,或许更多的感觉不是赞叹,而是一种莫名的悲哀。
如果说DDR2显存为NV30带来出色的性能也就罢了,然而位宽仅仅128Bit的DDR2显存很大程度上成为性能发挥的瓶颈。在使用频率为1GHz的DDR2显存时,16GB/s的带宽却是令人难以完全满意,与ATI Radoen 9800Pro的21.25GB/s相比落下很多。为此,并不顽固的nVIDIA还是接受了现实,在GeforceFX 5900Ultra中改用256Bit的DDR1。事实上,在频率相同的情况下,256Bit DDR1应该比128Bit DDR2更为出色,这与128Bit SDRAM好于64Bit DDR是相同的道理。采用850MHz的256Bit DDR1之后,NV35的显存带宽达到了27.2GB/s,基本能够保证各种3D特效的消耗。
客观而言,目前的DDR2显存技术还没有完成成熟,至少其高昂的成本使之在现实产品中难以应用。只有当DDR2显存能够运行与高频率的,而且达到256Bit位宽,这时才是DDR2占领显存市场的时机。
写在最后
内存带宽的话题就讨论到这里,相信大家也对如何选购、优化产品有了足够的认识。应当指出的是,内存带宽技术也在不停地发展,或许未来的DDR2以及DDR3才是最终的发展方向。
太平洋电脑网 文/谢成明 方成亮(出处:http://www.sheup.com)