万卷书   首页 > 电脑书籍 > 硬件文章 > 显存速度对3D图形加速卡的影响
 
 2000年上半年,各显示芯片制造商都在积极扩军备战,3Dfx完成Voodoo 4/5系列的发布,nVidia推出GeForce 2 GTS(Giga Textel Sharder,十亿像素填充率),ATI公布Radeon 256的特性。从技术参数上看,所有芯片都各有特色:Voodoo仍然保留了续代创新的优点,每一代产品都能令人感到惊喜;nVidia则是隔代升级,在Geforce上许下的承诺,要到GeForce 2才能实现,与当年的tnt/tnt2系列有异曲同工之“妙”;ATI的芯片有许多新技术,但总是不能吸引人们的注意力,沦为叫好不叫座的境地。纵观几个显卡的特性,你会发现在不同之余也有许多相似,其中显示内存技术几乎可以说是一模一样的。

1、以前的内存带宽

  在2D图形世界中,内存带宽根本算不上是什么问题。强大的2D处理芯片可以很自由地处理各种平面数据,只要有25MHz以上的芯片就能轻易解决2D加速中的瓶颈,人们通常把焦点集中到CPU上,很少留意显卡的能力是否足够,S3和Matrox也借此机会成为了2D图形的霸主。

  当发展到3D图形的时候,这一切都发生了戏剧性的变化。随着Rendition V1000和3dfx Voodoo Graphics的出现,带宽需要开始呈指数级上升。图形不再限于X、Y轴,为了在物体表面贴上正确的纹理,必须把Z轴也考虑进来。幸运的是,内存的发展刚好处在一个飞跃时期,带宽适好能满足第一代3D图形加速卡的需要。历史的车轮继续行进之后,3D显示芯片不断得到革命性的改变,内存技术却停滞不前,因此带宽成为了3D图形处理中的最大瓶颈。

2、瓶颈的诞生

  先不要谈论Voodoo 5、GeForce 2和ATI Radeon这些顶级产品,回头看看3dfx Banshee和nVidia Riva TNT两款第二代显卡,它们都采用了异步内存设计,显存频率均高于芯片内核时钟,banshee的核心是100MHz,显存是110MHz,TNT的核心为90MHz,内存是110MHz。基准测试指出,125MHz能让banshee和tnt发挥更好的性能,PC业界终于认识到“提升内核频率之前必须增加内存带宽”这个真理。不过,当时内存带来的增益还很少,人们常常在争论究竟显示内存还是系统主内存对游戏整体性能的影响较大,没有把提高内存频率作为一项重要工作来抓。

  到了TNT与Voodoo 3的时代,内存也得到了长足发展,SDRAM频率达到了183MHz之多,又一次超越了显卡的内核频率,3dfx甚至放弃了异步内存技术,166MHz的Voodoo 3与166MHz的SDRAM配合得相当好。然而,这个规则并不适合所有产品,nVidia发现自己的内核设计仍然是采用异步内存为好,150MHz的tnt2与183MHz SDRAM能发挥最佳效果。表面看起来,好像内存发展紧跟显示芯片,不会发生带宽缺乏的情况,可惜的是,3D加速内核的前进比CPU还要快,短短半年时间,我们已经走到了GeForce的世界。GeForce不仅仅是四像素引擎这么简单,还加上T&L(Transform and Lighting,多边形转换与光源处理),需要处理的数据比以前多了几倍。

  你可能已经听说过GeForce受内存影响的传闻,那又是怎样一回事呢?GeForce内核为120MHz,4像素引擎带来的像素填充率是480M像素/秒,与其搭配的内存是166MHz SDRAM,比tnt 2 Ultra显卡的175MHz显存还要慢,在Geforce像素填充率提升三倍的情况下,仅使用tnt 2 ultra级的内存带宽显然是不足够的。也许在低分辨率和色深环境还不能看到什么变化,一旦使用1024*768*32位色,就会强烈感受到带宽太窄对整体性能严重阻碍。唯有升级到双倍带宽的DDR SDRAM(Double Date Rate,上下行双数据率SDRAM)才能彻底解决这个问题,让GeForce释放出潜能,表现出新一代图形处理芯片的全部威力,但内存架构发展缓慢仍是不争的事实。

  毫无疑问,今天的3D处理芯片对内存带宽的要求是非常热切的,DDR SGRAM/SDRAM应该马上摆到议事日程。相同的时种速度里,DDR内存能在上升和下降沿同时传输数据,效率增加了两倍。虽然GeForce是目前唯一受到内存带宽限制的产品,但在未来很短一段日子中,越来越多显示芯片会被显存速度拖住后腿,特别是GeForce 2 GTS和ATI Radeon,它们要提供Giga级的像素填充率,很可能DDR也不能满足它们的需求。此话怎讲?请接着看内存带宽的效率一节。

3、内存带宽的效率

  在说明内存带宽效率的时候,用texel(T像素,纹理上的像素点)比pixel(Picture element,图像元素,又称P像素,屏幕上的像素点)更为适合,texel包括了纹理和色彩数据,按照单位时间内每Mega Texel(百万T像素)可用的带宽,即内存带宽/像素填充率=内存带宽的效率,单位MB/MTexel/秒。不过,此方法计算出来的结果没有普遍性意义,在实际运算过程中,还会受到分辨率、色深和Z缓冲值的影响,如:16位色和16位Z缓冲所需的带宽比32位色24位Z缓冲+8位模板缓冲要少一半。

  在第一和第二代3D解决方案中,所有产品都能充分利用内存带宽,而获得很好的工作效率。其中Voodoo 1、Voodoo2和Banshee采用16位色渲染,带宽当然不成问题,Banshee更是非常“特别”,内存速度增加到125MHz以后,再提升也不会对性能有多大帮助。TNT是第一款使用32位渲染的产品,理所当然地成为带宽瓶颈的首位受害者。

  从第三代3D显卡开始,内存带宽已经成为制约加速引擎运行的一大因素。Voodoo 3和Tnt2 ultra还不觉得怎样,但GeForce所受的“毒害”真是太深了。1024*768*16位色*16位Z缓冲时,显卡最佳需求的效率约为7MB/MT/秒,那么理论上来说,要切换到32位色+24位Z缓冲+8位模板缓冲,必须拥有13MB/MT/秒的效率才足够,GeForce DDR接近此理想值,但仍有一段差距呢。

  如果说内存带宽对第三代显卡还不是什么问题,等到进化成第四代之时,才是真正遇上麻烦啦!像素填充率越强劲,工作效率越低下,怪不得在基准测试中,GeForce 2 GTS和GeForce DDR的分数相差不远。ATI与nVidia的产品不能满足1024*768*16位色*16位Z缓冲的7MB/MT/秒,只有四块VSA-100相连的Voodoo 5 5500勉强能做到。不幸的是,当需要升至32位色的时候,所有显卡都会变得不及格。尤其是拥有1600MT/秒像素填充率的GeForce 2 GTS,它的芯片确实很快,但没有得到足够的图形数据供处理,即使是使用DDRV内存,芯片仍然要等待几个周期来获得所需数据。

  Radeon和Voodoo 5的情况要比Geforce 2好一些,Radeon采用了三倍纹理技术,每个管道仅使用1或2个渲染单元,Voodoo 5把数据处理量分给四个芯片,减少了等待的时间,不过,它们始终并非32位着色的最佳解决方案,我们再也无法对如此巨大的瓶颈坐视不理。

4、缓和瓶颈的方法

  面对内存带宽不足的严峻形势,芯片制造商终于也行动起来,想出了以下几种方法。

  更快的内存

  既然带宽缺少,最直接的方法自然是采用更快的内存,DDR内存在今年内就能达到200MHz,对于单芯片型显卡来说,真是个天大的好消息。除了DDR之外,还有不少生力军在整装待发,其中QDR(Quad Data Rate,四倍速率)内存是最能振奋人心的东西,如果GeForce 2 GTS能支持QDR,可获得额外的带宽来进行多重纹理操作,整体性能将比现在大为提升。

  RAMBUS是传统SDRAM的强劲对手,当然也要在显示领域分一杯羹,如果它所消耗的电能能进一步下降的话,针脚比普通SDRAM更少的DRDRAM(Direct RAMbus DRAM,直接RAMbus内存)肯定能得到显示卡制造商的青睐。它的缺点是每针脚所提供的带宽不比SDR/DDR SDRAM多很多,而制造成本却高出几个数量级,让消费者难以接受。

  增加数据通道

  由于内存的发展永远追不上3D加速器,芯片制造商不得不考虑其它的方法来提升当前内存的效率。当前大多数显卡在芯片和显存之间采用128位总线,如果提升到256位,可用带宽亦得增加两倍。不过,此方法遇到的最大问题是针脚数量,看看显卡背面,你会发现电能供应和地线针脚比数据针脚多几倍,使用128位总线能有效地控制针脚,并不能保证在256位上也能准备地操作,针脚数增加两倍可不是闹着玩的,只能期望BGA(Ball Grid Array,球状矩阵排列)封装技术尽快成熟起来。

  可升级架构

  如果双CPU能在多线程时使某些应用程序的性能提高两倍,那么图形芯片同样能做到这一点,3dfx用实践和行动证明了此观点的正确性。Quantum3D公司早在Voodoo 1时代已经实现了SLI(Scanline Interleave,扫描线间插),让每一个芯片只渲染奇数或偶数行,提高了整体的像素填充率。3dfx进一步发展此技术,做到了两张不同PCB(printed circuit board,印刷电路板)产品的SLI,以双Voodoo 2来得到Voodoo 3的性能。

  在现阶段的3D显卡之中,ATI也动用了这类“非常”手段,把两颗Rage Fury Pro合并在同一块电路板上,以驱动程序来控制它们的运作,它增加了应用程序计算的速度,也提高了显示芯片的处理效率,配合一颗足够快的CPU,完全有可能超越GeForce。

  3dfx和Quantum3D合作开发的VSA(Voodoo Scalable Architecture,可升级Voodoo架构)可说是新一代多重芯片的典范,VSA-100的本意就是用于可升级架构,为了避免旧式SLI在数据线互连时出现的画质降低问题,3dfx采用了统一PCB设计,每个芯片都有自己的内存bank阵列,使它们可以充分利用内存带宽。仅仅配合SDR SDRAM,双芯片己拥有5.3GB/秒带宽,四芯片能达到10.6GB/秒!若是未来能升级到DDR甚至QDR内存,带宽的增加简直令人不敢想像。

  可升级架构的另一个优点是芯片复杂性下降,VSA-100只有1千4百万个晶体管,而GeForce 2 GTS有2千5百万个,ATI Radeon更是高至3千万个。晶体管数目减少了,发热量就会降低,提高运行速度也变得更为容易。

  可采级架构增加了显示芯片的发展空间,但也不是完全无缺点的,纹理的重复使用是其致命伤。当一个双芯片系统使用64MB显存时,纹理数据需要被各个芯片所调用,实际可用显存只剩下32MB。帧缓存的需求却没有那么夸张,每个芯片仅需要一半的空间来作为帧缓存,假设单芯片要4MB帧缓存,双芯片VSA-100仅要2MB帧缓存/芯片,四芯片VSA-100更减至1MB帧缓存/芯片。在多芯片架构之中,纹理内存的大小是影响芯片渲染速度的最重要因素。幸好SDR SDRAM的价格低廉,64MB 166MHz SDR SDRAM的成本与32MB 150MHz DDR SDRAM差不多,要增加显存容量亦不是什么困难的事情。

  纹理压缩

  为了减少纹理所占用的存储空间,提高渲染的效率,几乎所有厂商都在下一代芯片中加入了纹理压缩技术。YAB NCTC(Narrow Channel Texture compression,狭窄通道纹理压缩)和8位PTC(Palletized Texture Compression,并行纹理压缩)早己应用在Voodoo 1之上,Voodoo 2/3也继承了此特性,但其应用范围只涉及3dfx自己的产品,没有得到其它厂商所承认。直到S3发布S3TC(S3 Texture Compress,S3纹理压缩,仅支持S3显卡),并被微软加入了Direct X中成为标准的纹理压缩技术----DXTC(Direct X Texture Compress,DirectX纹理压缩,以S3TC为基础),纹理压缩才为世人所注意。

  由于S3TC不是开放资源,如果没有给付版权税,就不能用于其它OpenGL、Glide、Rave等其它3D AP(Application Programming Interfaces,应用程序接口),推广受到很大限制。按照不同的虚拟场景,S3TC能提供4:1到6:1的压缩比,3dfx提出的FXT1技术更是拥有8:1的压缩比,尽管会损失一些图像质量,但重要的是开放资源,免费提供给其它厂商使用,抢占市场一向是3dfx的拿手好戏,在纹理压缩领域,它又再次动用这招超必杀绝技啦!VSA-100能够实时压缩和解压,而Savage 2000仅支持实时解压,必须要获得硬盘中的预先压缩数据才能进行处理工作,S3又比3dfx输了一着。

  无论怎样,纹理压缩都是解决带宽不足的好办法,但是压缩不仅仅限于纹理数据,许多厂商甚至为压缩提出全新的见解。ATI Radeon中的Hyper-Z技术,能够压缩Z缓冲区的信息,让24位Z缓冲只占用与16位Z缓冲相同的带宽,尽管我暂时还不知道它具体是怎样操作的,不过能够肯定此技术一旦成功,将被迅速推广到各个厂商,折埋、压缩、打包是未来纹理传输处理的主旋律。

  相比于其它厂商,nVidia的脚步要走得更慢一些,它正在研究VTC(Volume Texture Compression,体积纹理压缩)技术,准备用于3D纹理压缩,希望它能比2D纹理压缩带来更多的惊喜。

  最后,有必要提及一下几何压缩技术,虽然它现在还未被任何厂商所采用,但相信很快就会进入实用性阶段。硬件T&L引擎是目前流行的趋势之一,CPU把T&L交给显示芯片,以释放大量的系统主内存和CPU时间。不过传统型CPU T&L的带宽需求比完全型显卡硬件T&L要少得多,假若能在CPU和显卡之间的几何数据上做到一定的压缩,可以大大提高T&L引擎的工作效率。

5、总结

  为了让3D加速器得到充足的数据,使芯片速度能够进一步发展,内存和芯片制造商们都在不懈地努力着,人们已经知道,光有芯片速度是不足够的,必须配合适合的内存架构,才能让它完全发挥出本身的能力。在此方面,Sony走先了一步,它的PS2游戏机很好地证明了芯片与显存匹配的重要性,Emotion Engine引擎与DRDRAM合作得天衣无缝,其3D效果远远超过现时任何一款电脑游戏。PC业界之中,对内存带宽处理得比较好的有ATI和3dfx,nVidia和S3却再一次落在了后面。

WanJuanShu