显卡杂谈6: AGP, PCI Express和TurboCache
(yanlb2000, 2005.01.15)
前面文章提到,现在显卡对显存的要求是越来越高,不但显存容量要大,还要求显存读写要快,带宽足够高。这些,都导致显卡成本的提高。显存在一块显卡中的成本比例是相当高的。
一方面,3D应用需要更多更快的显存,从而带动显卡制造成本高涨;另一方面,上文也分析到,大多数时候显卡的这些图形处理器资源和显存资源却又是不用的,闲置的,是一个不小的浪费。
这真是一个矛盾呀。
自显卡步入3D时代,这个矛盾就出现了,且越来越严重。而各个显卡厂商为了解决这个矛盾,也提出了多种解决办法。
首先要提到的,就是AGP。显卡的与系统主板的接口,也跟随系统总线,有过多次升级变化。从最开始的ISA接口显卡,到后来的PCI接口(中间还有短命的VESA接口等),向着性能越来越好,带宽越来越高发展。但3D应用的出现,PCI接口也不能满足需要了。共享式的33MB/s带宽,无法满足显卡的需要。于是,Intel倡导的AGP接口在大概96还是97年出现了。AGP接口其实就是一个由显卡独享的PCI接口。AGP技术的提出,主要是解决2个实际问题。一个是提供系统总线与显卡核心的高速数据通道,使大量的图形数据的实时交换成为可能;另一个,就是通过AGP接口,将显卡的显存空间映射到主板物理内存,就是说,不需要在显卡上安装很多显存,让显卡与系统公用物理内存。显然,这个思路,就是为了解决显卡对大量显存的需求,降低显卡整体成本而设计的。
当然同时,这个功能,其实是与AGP的第一个职能也是密切相关的,只有提供了快速的数据带宽,才能使显卡和CPU共享内存成为可能。否则,如果主内存与显卡数据传输缓慢,那么共享内存模式下将严重制约显卡性能。
然而,AGP的实际发展却很"有趣"。一方面,AGP的规范在短短几年内更新了几次,出现了2x, 4x, 8x等规范,主要更新就是带宽翻番,其他如电压降低等。带宽的提速,一定程序上满足了显卡在3D应用下对大量数据交换的需求。
但另一方面,AGP下共享内存从而降低显卡成本的思路,却没有被发扬光大。可以看到,独立显卡上的显存,一直是翻番式地增加的,从AGP刚出现时候的4MB, 很快提升到8MB, 16MB, ..., 现在已经是128MB, 256MB了,512MB的显卡据说也有了。显卡还是使用了自己的显存,只不过将AGP作为一个快速的数据通道而已。
但是共享内存的思路也没有完全被抛弃,甚至还是被大量使用的,这就是主板芯片组中集成的显卡。无论是Intel,还是SIS, VIA, nVidia等芯片组厂商,在每个系列的主板芯片组中,都会推出集成有显示功能的芯片组。而这些集成显卡,是没有自己独立的显存的,通过共享主板内存的方式来完成原有显存的功能。但这种方式是不是实现了当初设计AGP时所希望的直接映射系统内存,在系统内存中渲染运算?我没有看到权威的资料,无法明确,但估计是没有。不管如何,集成显卡的明显问题就是,3D性能非常低下。可以说,集成显卡的性能几乎总是最低的。任意一块低端的显卡,其3D性能基本上都能超过同时代的主板集成的那类显卡。
我不明白为何集成显卡性能总是如此低下,因为理论上也可以集成高性能显卡呀。可能的解释是,主板集成就是为了降低成本考虑的,出于成本、设计费用、市场定位等原因,主板芯片组内部不可能为显卡集成太多的功能模块,性能低下也就不奇怪了。
当然,集成显卡的好处好也是明显的,就是便宜!省去了独立显卡的PCB板和接口,省去了独立的显示核心模块,省去了显存,所以,集成显卡的成本非常低,相对于没有集成显卡的芯片组同类版本,在造价和售价上几乎没有变化。所以,集成显卡在低端用户、服务器、笔记本等没有或几乎没有3D要求的场合,还是很受欢迎的。
总结一下,对AGP来说,其高速的带宽还是很有用,也很有发展的;但其共享内存的思想,却并未得到很好的应用和发展。
技术的发展真是快呀。现在,新一代PC机体系结构正在出现,BTX主板,新的奔腾4接口,新的Intel9系列芯片组,SATA接口硬盘等正在占据市场。而传统的PCI接口,甚至AGP接口也快走到头了,都将让位于新的PCI Express(PCIe)接口。
PCIe基于新一代的串口通信技术,可以灵活地以根据外设的需求而搭配接口宽度。比如,显卡一般是使用的PCIe x16接口,而在支持2个PCIe接口的主板上,同时使用2块nVidia显卡组成SLI系统,每块显卡就运行在x8的模式。
PCIe接口提供了更高的带宽,所以,nVidia趁势推出了使用全新显存技术的6200TC显卡芯片。所谓TC,就是TurboCache,就是指显卡上只安装较少的显存,比如16MB或32MB。当运行3D程序,需要大量显存的时候,就通过图形芯片上新增的内存管理单元,动态访问电脑主板上的主内存,来作为显存使用,即直接利用主内存作为渲染时的工作内存。凭借高速的PCIe接口,能够保证显卡和内存大量数据交换的需求,达到就如以前在显存上渲染一样的效率。而当不运行3D应用的时候,这些被映射使用过的系统内存将被显卡释放,重新归系统使用。这样也就不至于一直占用主内存,不造成浪费。内存的使用效率得到了提高。
就比如现在的6200TC的显卡,因为减少了显存,所以价格也大大降低。而其性能,则与标准版的6200相比差不太多,好像是有10-20%的性能下降吧。总得来说,性价比是提高不少的。而将来,TC技术发展下去,基于6600, 6800核心的6600TC, 6800TC说不定也会出现,性能将进一步提升。
回顾一下,我们就会发现,这TC功能,不就是以前AGP的时候就提出的显卡直接访问系统主内存的功能吗?这个功能为作为取代传统PCI总线的AGP总线所设计,却没有在AGP时代真正实现和发挥作用。反而在后PCI时代,就是PCIe总线所实现了,是不是很有趣呢?
本专题的其他文章列表,请看:
专题:显卡杂谈 http://www.blogcn.com/User13/yanlb2000/blog/55778484.html