透彻理解内存带宽(1)
早在SDRAM时代,我们对于内存带宽就形成了初步概念。时至今日,内存带宽已经成为除CPU以外对整体性能影响最大的因素。无独有偶,显卡上显存的带宽也会对3D性能产生至关重要的影响,其本质与内存带宽是类似的。那么,内存带宽究竟能够造成多大的影响呢?还是让测试数据来说明一切!
一 内存带宽的基础知识
1. 何谓内存带宽
从功能上理解,我们可以将内存看作是内存控制器(注:一般位于北桥芯片中,而AMD K8之后的处理器集成内存控制器)与CPU之间的桥梁或与仓库。显然,内存的容量决定“仓库”的大小,而内存的带宽决定“桥梁”的宽窄,两者缺一不可,这也就是我们常常说道的“内存容量”与“内存速度”。
除了内存容量与内存速度,延时周期也是决定其性能的关键。当CPU需要内存中的数据时,它会发出一个由内存控制器所执行的要求,内存控制器接著将要求发送至内存,并在接收数据时向CPU报告整个周期(从CPU到内存控制器,内存再回到CPU)所需的时间。毫无疑问,缩短整个周期也是提高内存速度的关键,这就好比在桥梁上工作的警察,其指挥疏通能力也是决定通畅度的因素之一。
更快速的内存技术对整体性能表现有重大的贡献,但是提高内存带宽只是解决方案的一部分,数据在CPU以及内存间传送所花的时间通常比处理器执行功能所花的时间更长,为此缓冲区被广泛应用。其实,所谓的缓冲器就是CPU中的一级缓存与二级缓存,它们是内存这座“大桥梁”与CPU之间的“小桥梁”。事实上,一级缓存与二级缓存采用的是SRAM,我们也可以将其宽泛地理解为“内存带宽”,不过现在似乎更多地被解释为“前端总线”,所以我们也只是简单的提一下。事先预告一下,“前端总线”与“内存带宽”之间有着密切的联系,我们将会在后面的测试中有更加深刻的认识。
2. 内存带宽的重要性
内存带宽为何会如此重要呢?在回答这一问题之前,我们先来简单看一看系统工作的过程。基本上当CPU接收到指令后,它会最先向CPU中的一级缓存(L1 Cache)去寻找相关的数据,虽然一级缓存是与CPU同频运行的,但是由于容量较小,所以不可能每次都命中。这时CPU会继续向下一级的二级缓存(L2 Cache)寻找,同样的道理,当所需要的数据在二级缓存中也没有的话,会继续转向L3 Cache(如果有的话,如K6-2+和K6-3)、内存和硬盘。由于目前系统处理的数据量都是相当巨大的,因此几乎每一步操作都得经过内存,这也是整个系统中工作最为频繁的部件。如此一来,内存的性能就在一定程度上决定了这个系统的表现,这点在多媒体设计软件和3D游戏中表现得更为明显。
3D显卡的内存带宽(或许称为显存带宽更为合适)的重要性也是不言而喻的,甚至其作用比系统的内存带宽更为明显。大家知道,显示卡在进行像素渲染时,都需要从显存的不同缓冲区中读写数据。这些缓冲区中有的放置描述像素ARGB(阿尔法通道,红,绿,蓝)元素的颜色数据,有的放置像素Z值(用来描述像素的深度或者说可见性的数据)。
显然,一旦产生Z轴数据,显存的负担会立即陡然提升,在加上各种材质贴图、深度复杂性渲染、3D特效,其工作量可想而知。在更多情况下,显存带宽的重要性超越了显存容量,这点我们将在后文的测试中有详细说明。
3.如何提高内存带宽
内存带宽的计算方法并不复杂,大家可以遵循如下的计算公式:带宽=总线宽度×总线频率×一个时钟周期内交换的数据包个数。
很明显,在这些乘数因子中,每个都会对最终的内存带宽产生极大的影响。然而,如今在频率上已经没有太大文章可作,毕竟这受到制作工艺的限制,不可能在短时间内成倍提高。而总线宽度和数据包个数就大不相同了,简单的改变会令内存带宽突飞猛进。DDR技术就使我们感受到提高数据包个数的好处,它令内存带宽疯狂地提升一倍。

| 共6页: 1 [2] [3] [4] [5] [6] 下一页 |

搜索