AGP的意义
简介
关于AGP,当前最先进的图形系统接口,我想没必要再作过多的解释了。这项技术始于三年以前,那时3D图形加速技术开始流行并且迅速普及,新兴的3D加速卡需要从CPU和系统内存获得的数据比它们仅仅具有“2D加速”功能的前辈们所需要的多得多。为了使系统和图形加速卡之间的数据传输获得比PCI总线更高的带宽,AGP便应运而生。
AGP vs PCI——理论上的较量
AGP和PCI根本上的区别在于AGP是一个“端口”,这意味着它只能接驳一个终端而这个终端又必须是图形加速卡。PCI则是一条总线,它可以连接许多不同种类的终端,可以是显卡,也可以是网卡或者SCSI卡,还有声卡,等等等等。所有这些不同的终端都必须共享这条PCI总线和它的带宽,而AGP则为图形加速卡提供了直接通向芯片组的专线,从那里它又可以通向CPU、系统内存或者PCI总线。
普通的PCI总线数据宽度为32位(bit),以33MHz的速度运行,这样它能提供的最大带宽就是4byte/sX33MHz=133MB/s。尽管新的PCI64/66规范提供了64位的数据宽度和66MHz的工作频率,带宽相应达到了533MB/s,但它面向的是需要极高数据带宽的I/O控制器,比如IEEE1394或者千兆位的网卡,目前几乎没有得到任何支持。AGP同样是32位的数据宽度,但它的工作频率从66MHz开始,这样,按常规方法利用每个时钟周期的下降沿传输数据的AGP1X规范就能提供266MB/s的带宽,而AGP2X,通过同时利用时钟周期的上升和下降沿传输数据,可以达到533MB/s的带宽,最新的AGP4X更是把带宽提高到了1066MB/s。
为什么需要AGP?
刚开始的时候,AGP的高带宽被用来将3D物体的纹理数据传送给3D加速卡。一些3D加速卡仅仅是把AGP当作更快的PCI总线来使用,另外一些3D加速芯片则用到了“AGP纹理”,也就是说把大纹理储存在系统主存中,需要时直接从那里而不是本地显存里调用。当然,这在今天仍然是AGP的用途之一,但是对AGP4X的需求则是来自3D渲染过程的另一个环节——复杂3D物体的三角形数据。在一个3D场景进行转换和光照处理之前,场景中所包含的物体应当被确定,物体的细节越清晰,需要传输的三维像素就越多。比如NVidia的GeForce,作为第一个集成了转换与光照引擎的3D加速芯片,能够处理的三角形数量是惊人的,但是在这一切开始之前,所需要的数据必须被传送给它,毫无疑问,这就只有通过AGP来进行。
评测AGP
这个事实在对AGP进行测试时同样需要考虑到。几年以前的AGP测试仅仅是通过显示需要大量纹理的3D场景,试图用大量的纹理数据流来使AGP接口达到饱和,这样的测试几乎没有显示出AGP1X和2X之间到底有什么区别,它们当然同样也不能体现出AGP4X带来的性能提升。这就是为什么我们需要用另外的方法来使AGP接口饱和。目前测试AGP性能的最好方法无疑是通过显示包含大量极其复杂的3D物体的场景,来让AGP传送极其大量的三角形数据。在后面你们将看到测试结果。无论如何,现在的3D游戏所用到的多边形还远没有达到AGP4X的极限,所以我们不得不再次等待“将来的话题”。眼下真正用到极其复杂的3D物体的软件主要是专业的OpenGL软件,所以用它们来做测试应该是再合适不过的了。
有关AGP的其他方面
在以前的文章里面,我曾经提到100MHz的内存总线是AGP和其他一些内存相关的系统所必需的。在今天,这样的需求有增无减,只有当系统有了足够的内存带宽AGP的超高带宽才会得到充分利用。内存永远是要被许多系统设备同时共享的:CPU、PCI总线、DMA设备,还有AGP。在大多数情况下,内存是AGP设备的数据来源,所以如果AGP用到了它的全部带宽,内存就至少应当能够提供同样高的带宽。这样的话,相应于AGP4X的1066MB/s带宽,内存就至少要是PC133的才行:64位的数据宽度和133MHz的工作频率提供的带宽恰恰是1066MB/s。但是AGP不可能独占内存带宽,它必须和其他设备共享,于是只有当系统使用了RDRAM或DDR-SDRAM时AGP4X才能完全发挥。Intel的820芯片组支持的单条PC800 RDRAM通道提供了1.6GB/s的带宽,相当于PC200 DDR-SDRAM,PC266 DDR-SDRAM则提供了2.1GB/s的带宽,而Intel 840芯片组上的双PC800 RDRAM通道最终将提供3.2GB/s的带宽。当软件开始利用AGP4X时,上述平台的表现将会优于目前的PC100或PC133平台。
快写——GeForce独一无二的特性
NVidia的GeForce256 3D图形加速芯片的特性之一就是它对“快写”模式的独一无二的支持。这个概念意味着直接从CPU到图形芯片之间的数据传输,显然与“AGP纹理”之类的概念无关。运用极其复杂的3D物体的3D软件需要CPU把极其大量的三角形数据传送给图形芯片,这里“快写”模式的运用就避免了数据从CPU到内存再从内存到图形芯片这样一个缓慢曲折的过程。“快写”的概念就是把CPU和图形芯片直接联系起来。关于“快写”的更多细节请看NVidia的白皮书。目前这项技术只有在Intel的820和840芯片组上才能实现,其他的支持AGP4X的芯片组比如VIA的Apollo Pro 133和Apollo KX133没有得到GeForce驱动的支持。在下面的章节里,你们将会发现这其实是一件好事,因为支持“快写”的驱动似乎还存在一些问题,而这些问题导致了820和840系统性能的明显下降。
AGP和Windows NT
在描述了AGP硬件方面的一些特性之后,我们还应当明白AGP同样需要软件的支持。正如前面已经提到过的,AGP为图形芯片提供了快速访问主内存的通道以满足各种需要,AGP纹理即是其中之一。对此操作系统必须加以支持并且应当能够在适当的时候把内存资源分配给显示驱动调用。图形地址重映射表(GART—— graphics address remapping table)就是这些内存资源的清单而GART驱动就是负责这一切的软件。今天,所有的AGP显卡都已经在针对Windows9x的驱动中包含了Intel平台上的名为“vgart.vxd”GART驱动,而其他的芯片组厂商就不得不为相应的主板提供他们自己的GART驱动软件。比如Athlon系统,在没有安装驱动时就根本认不出AGP显卡,只有安装了相应的驱动,对于AMD750芯片组是“amdmp.sys”,VIA Apollo KX-133则是“viagart.vxd”,才能正常地工作。
至于微软的Windows NT操作系统则根本没有打算提供AGP支持。在迄今为止所有的NT补丁包里面都没有包含GART驱动,以至于图形芯片厂商不得不独立提供NT下的AGP支持,这种支持也许会包含在显卡的NT驱动里面,也许不会,你只有通过一些特殊的侦测软件或者在NT下进行测试才能判断出来。目前我只对NVidia的芯片进行了NT下的测试,发现TNT、TNT2和GeForce都具有AGP支持,但仅仅是在Intel平台上。基于其他芯片组的平台只能通过所谓的“PCI66”模式获得一些补偿,这种模式提供了略低于AGP1X的带宽。目前最新的但不是正式的例外只有VIA的Athlon芯片组KX-133,即使在NT下它也能使GeForce256芯片运行AGP4X。这一点希望能够在即将发布的Windows2000中得到纠正。
AGP标准分为AGP1.0(AGP 1X和AGP 2X),AGP2.0(AGP 4X),AGP3.0(AGP 8X)。
1996年7月AGP 1.0 图形标准问世,分为1X和2X两种模式,数据传输带宽分别达到了266MB/s和533MB/s。这种图形接口规范是在66MHz PCI2.1规范基础上经过扩充和加强而形成的,其工作频率为66MHz,工作电压为3.3v,在一段时间内基本满足了显示设备与系统交换数据的需要。这种规范中的AGP带宽很小,现在已经被淘汰了,只有在前几年的老主板上还见得到。
近几年显示芯片的发展实在是太快了,图形卡单位时间内所能处理的数据呈几何级数成倍增长,AGP 1.0 图形标准越来越难以满足技术的进步了,由此AGP 2.0便应运而生了。1998年5月份,AGP 2.0 规范正式发布,工作频率依然是66MHz,但工作电压降低到了1.5v,并且增加了4x模式,这样它的数据传输带宽达到了1066MB/sec,数据传输能力大大地增强了。
AGP Pro接口与AGP 2.0同时推出,这是一种为了满足显示设备功耗日益加大的现实而研发的图形接口标准,应用该技术的图形接口主要的特点是比AGP 4x略长一些,其加长部分可容纳更多的电源引脚,使得这种接口可以驱动功耗更大(25-110w)或者处理能力更强大的AGP显卡。这种标准其实是专为高端图形工作站而设计的,完全兼容AGP 4x规范,使得AGP 4x的显卡也可以插在这种插槽中正常使用。AGP Pro在原有AGP插槽的两侧进行延伸,提供额外的电能。它是用来增强,而不是取代现有AGP插槽的功能。根据所能提供能量的不同,可以把AGP Pro细分为AGP Pro110和AGP Pro50。在某些高档台式机主板上也能见到AGP Pro插槽。
2000年8月,Intel推出AGP3.0规范,工作电压降到0.8V,并增加了8X模式,这样它的数据传输带宽达到了2133MB/sec,数据传输能力相对于AGP 4X成倍增长,能较好的满足当前显示设备的带宽需求。
PCI
英特尔开发的外设组件互连(PCI)是一个本地总线标准。总线是用于传输往返(输入/输出)于计算机和外设间的数据的通道。大多数电脑通常都采用32位PCI总线,主频为33MHz,吞吐率可达到133MBps
PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。
PCI是由Intel公司1991年推出的一种局部总线。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能,它为显卡,声卡,网卡,MODEM等设备提供了连接接口,它的工作频率为33MHz/66MHz。
最早提出的PCI 总线工作在33MHz 频率之下,传输带宽达到了133MB/s(33MHz X 32bit/8),基本上满足了当时处理器的发展需要。随着对更高性能的要求,1993年又提出了64bit 的PCI 总线,后来又提出把PCI 总线的频率提升到66MHz 。目前广泛采用的是32-bit、33MHz 的PCI 总线,64bit的PCI插槽更多是应用于服务器产品。
由于PCI 总线只有133MB/s 的带宽,对声卡、网卡、视频卡等绝大多数输入/输出设备显得绰绰有余,但对性能日益强大的显卡则无法满足其需求。目前PCI接口的显卡已经不多见了,只有较老的PC上才有,厂商也很少推出此类接口的产品。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)