视频显存缓冲的作用 邱晓光 俞瑞泉 2000年 第9期   我们经常听说视频显存缓冲这一名词,它的作用主要是加快显示速度。在BIOS的“Advanced Chipset Features”中就有Video RAM Cacheable这一选项,可控制L2 Cache的A0000h-AFFFFh区域(共64K),决定是否采用此段内存来作显存的缓冲。那么它能够让显卡性能提高多少呢?这将是下面要讨论的话题。 #1  一、AGP也存在系统瓶颈   现今3D游戏做得越来越复杂,使用了许多3D特效和大型纹理,对显卡带宽的要求也越来越高。假设显卡有128位显存总线,显存速度为150MHz,那么带宽=150MHz×128位/8=2.4GB/s,某些高端产品使用了200MHz显存,其带宽更达至惊人的3.2GB/s。但如果使用400MHz(400MHz×64位/8=3.2GB/秒)的CPU,就很容易出现带宽不足的情况。把赛扬300A的主频超到504MHz,CPU可以处理的峰值带宽为504MHz×64位/8=4.0GB/s,由于赛扬A的二级缓存与CPU同速,所以L2 Cache的带宽也是4.0GB。尽管如此,这也只不过比高端显卡多0.8GB/s而己。另一方面,主板内存的带宽通常是100MHz×64位/8=0.8GB/秒,换言之,二级缓存的速度是它的四倍。从理论上来说,用L2 Cache来加速主板内存的效果要好于加速显存。   请各位不要忘记,显卡要通过AGP或PCI总线与CPU交换3D数据,AGP 1×总线的带宽为66MHz×64位/8=528MB/秒,AGP 4×带宽=528MHz×4=2.1GB/秒,PCI带宽=33MHz×32位/8=133MB/s,它们都远远及不上显存的数据流,很容易造成系统瓶颈,因此,我们仍然有必要使用二级缓存来加速显卡的资料传递。 #1  二、改善的方法   由于二级缓存是一个非常稀有的资源(奔腾Ⅲ也不过512KB),并且用来处理图形总线的同时,是不能对主内存进行加速的。为此,我们需要有效地分配二级缓存的区域,以取得最佳效果。上面已经提过,视频显存缓冲只有64K,相对于今天的32M显存来说真是太小了,它显然不足以处理3D数据,弄得不好还会造成纹理传输停顿、游戏贴图错误等严重后果。其实,并不是所有数据都需要进行缓冲,只要合理地调整,小容量缓存亦可以发挥大作用。   一幅1024×768×16位色的2D图像(无Z缓冲)大约需要1024×768×16位/8=1.6MB的RAM来存储,在不考虑纹理的3D环境中则变为1.6M×3=4.8MB。那么,开启Video RAM Cacheable可以缓冲0.04%的2D工作或0.01%的3D处理。大部分显卡是用一个64KB的窗口(或称为页)来存取帧缓存的,也就是说,每次的数据传输都以64KB作为一个单位。视频显存的缓冲起了多大作用?还是先看看测试吧。 #1  三、测试   我们使用的测试系统配置如下:   CPU:赛扬300A超504MHz   主板:Abit BE6   内存:128MB Hitachi PC100 SDRAM (运行在112MHz,CAS2)   显卡:Creative 3D Blaster RIVA TNT2,内核频率为160MHz,显存时钟频率为185MHz,驱动程序使用3.53版。   显存:32MB SDRAM   硬盘:22GB IBM Deskstar 22GXP   声卡:Sound Blaster Live! Value   在TNT2的驱动程序中,我们采用了如^09030301a^1、^09030301b^2、^09030301c^3的设置。   在测试之前,对硬盘进行了扫描、修复错误和碎片整理。所有测试都是连续完成的,每个Benchmark运行3次再取其平均值得出最终结果。   1.WinBench 99   ⑴CPU WinBench 99 CPUMarks:开启缓存时得分为41.9,关闭缓存时得分为41.9。   ⑵FPU WinBench 99 FPUMarks:开启缓存时得分为2690,关闭缓存时得分为2690,这两项测试没有调用显示内存,因此开启/关闭缓存对得分无影响。   ⑶Business Graphics WinBench 99 WinMarks:开启缓存时得分为214,关闭缓存时得分为213,从得分可知,打开缓冲区可以改善系统的商业图形性能。   ⑷High-End Graphics WinBench 99 WinMarks:开启缓存时得分为617.3,关闭缓存时得分为619.7,结果与商业应用恰恰相反,缓存的打开会导致性能下降。   从^09030301d^4可以看出,开启缓存仅对FrontPage等商业应用有利,高端图形应用的得分再次证明了“浮点性能对系统内存总线相当敏感”,Photoshop等高端应用程序就是因为打开缓存而降低了性能。   2.Expendable(兵人)   ⑴800×600×16位色:开启缓存时得分为48.5,关闭缓存时得分为48.4。   ⑵1024×768×16位色,开启缓存时得分为45.6,关闭缓存时得分为45.6。   以上结果说明分辨率增加以后,缓存的优势被减弱了。 #1  四、结论   无论是理论测试,还是实际测试,开启视频缓存都会改善性能,不过这只适用于要求不高的中、低级应用,对于那些调用了系统全部性能的工作而言(特别是3D游戏和高端软件),缓冲视频显存反而会降低整体速度。最后,建议大家按照自己的需要来设置缓存,适当时候作出改变才能让电脑发挥出极限性能。