众所周知,总线是微型计算机系统中广泛采用的一种技术,具体地说,总线就是一组连接2个以上模块或子系统的通讯通路,比如ISA、VESA、PCI、AGP等都是比较常见的总线类型。在众多总线中,AGP无疑是最引人注意的,今天,就让我们走进AGP的世界,来了解AGP的方方面面。
1.什么是AGP
在PC发展的过程中,处理器是发展速度最快的设备,为了消除外围设备的连接瓶颈,人们也不停的改进总线技术,其中为了适应个别硬件设备对于传输带宽的急剧增长的需求,局部总线的改进更是频繁,AGP总线就是局部总线的一种--所谓AGP(Accelerated Graphics Port图形加速接口)是英特尔公司配合PentiumⅡ处理器开发的总线规范,它是一种可自由扩展的图形总线结构,能增大图形控制器的可用带宽,并为图形控制器提供必要的性能,以便在系统内存里直接进行纹理处理。这是一种新的接口规范,它虽然是基于PCI总线设计,但是在电器特性、逻辑上都独立于PCI总线。它们有相似的地方也有不同的地方,比如PCI总线可以连接多个PCI设备,而AGP总线仅仅是为了AGP接口的显卡而准备的。
2.为什么要发布AGP
AGP规范是英特尔公司为解决电脑处理(主要是显示)3D图形能力差的问题而出台的。在AGP总线出现之前,PCI总线是PC系统中最快的外部总线但是工作频率为33MHz(带宽为132MB/s)。在处理3D图形的过程中,所有的数据都要通过PCI总线在系统和显卡之间直接进行交换,其中的纹理数据需要占用相当的带宽,于是PCI总线成为了制约图形子系统乃至整个系统的瓶颈所在(图01)。
而AGP总线则是通过直接连接控制芯片和AGP显卡,使得3D图形数据越过PCI总线从而解决瓶颈所在(图02)。
3.AGP的发展历程
(1)AGP 1.0规范
AGP 1.0规范由英特尔于1996年7月发布,它以66MHz PCI2.1版规范为基础进行了扩充和改进,它的工作频率为66MHz,工作电压为3.3v,分为1x和2x模式,数据传输带宽分别为266MB/s和533MB/s。虽然现在看来其传输带宽并不是很大,但在一段时间内基本满足了显示设备与系统交换数据的需要。
(2)AGP 2.0规范
虽然AGP 1.0规范在一段时间内满足了显示设备与系统交换数据的需要,但显示芯片的发展实在是太快了,图形卡单位时间内所能处理的数据呈几何级数成倍增长,AGP 1.0图形规范越来越难以满足技术的进步了,由此AGP 2.0便应运而生了。
1998年5月份,AGP 2.0规范正式发布,工作频率依然是66MHz,但工作电压降低到了1.5v,并且增加了4x模式,这样它的数据传输带宽达到了1066MB/s,数据传输能力大大地增强了。
AGP Pro总线与AGP 2.0同时推出,这是一种为了满足显示设备功耗日益加大的现实而研发的图形接口规范,应用该技术的图形接口主要的特点是比AGP 4×略长一些,其加长部分可容纳更多的电源引脚,使得这种接口可以驱动功耗更大(25-110w)或者处理能力更强大的AGP显卡。这种规范其实是专为高端图形工作站而设计的,完全兼容AGP 4×规范,使得AGP 4×的显卡也可以插在这种插槽中正常使用。
(3)AGP 3.0规范
AGP 3.0是英特尔兼容计算机的第三代显卡接口规范,在该规范中,AGP 8×无疑是最引人注意的。AGP 8×作为新一代AGP并行接口总线,在数据传输频宽上和它的先辈AGP 4×一样都是32bit,但总线速度将达到史无前例的66MHz×8=533MHz,在数据传输带宽上也会达到2.1GB/s的高度,这些都是原来的AGP并行接口无法企及的。它的推出正好适应了现今CPU和GPU(图形工作站)的飞速发展,也可以说是CPU和GPU的发展导致了这一新技术的应有和推广。随着CPU主频的逐步提升以及GPU的性能的日新月异,系统单位时间内所要处理的3D图形和纹理越来越多,大量的数据要在极短的时间内频繁地在CPU和GPU之间反复交换,这使原来运行频率为66MHz的AGP接口已越来越跟不上它们交换的速度,系统的性能因此而大受影响,正像当年AGP取代PCI总线一样,AGP 8×终于走上了时代的舞台。
(4)AGP工作模式
要想深入认识AGP 8×,先得深入了解AGP的工作模式。我们知道最初的显示设备是采用PCI总线接口的,工作频率为33MHz,数据宽度为32bit,传输带宽为133MB/s。随着AGP 1.0规范的推出,AGP 1×和AGP 2×显示设备逐渐成为主流。1×模式的AGP,工作频率达到了PCI总线的两倍--66MHz,传输带宽理论上可达到266MB/s。AGP 2×工作频率同样为66MHz,但是它使用了正负缘(一个时钟周期的上升沿和下降沿)触发的工作方式,在这种触发方式中在一个时钟周期的上升沿和下降沿各传送一次数据,从而使得一个工作周期先后被触发两次,达到了传输带宽加倍的目的,而这种触发信号的工作频率为133MHz,这样AGP 2×的传输带宽就达到了266MB/s×2(触发次数)=532MB/s的高度。
AGP 4×仍使用了这种信号触发方式,只是利用两个触发信号在每个时钟周期的下降沿分别引起两次触发,从而达到了在一个时钟周期中触发4次的目的,这样在理论上它就可以达到266MB/s×2(单信号触发次数)×2(信号个数)=1064MB/s的带宽了。
在AGP 8×规范中,这种触发模式仍将使用,只是触发信号的工作频率变成了266MHz,两个信号触发点也变成了每个时钟周期的上升沿,单信号触发次数为4次,这样它在一个时钟周期所能传输的数据就从AGP 4×的4倍变成了8倍,理论传输带宽将可达到266MB/s×4(单信号触发次数)×2(信号个数)=2128MB/s的高度了。
除了传输带宽这一改变外,AGP 3.0的工作电压也降低了--在AGP 1.0规范中,其工作电压是3.3v,而AGP 2.0是1.5v,到了AGP 3.0,工作电压降到了0.8v。由于工作电压的变化,AGP 3.0的发布导致了两个与用户息息相关的问题--问题一,"支持AGP 8×的主板与我们现在所用显卡的兼容性问题";问题二,"支持AGP 8×的显卡能用在老主板上吗"。对于这些问题,我们将在后面详细讨论。
除了上述两点外,AGP 3.0还有以下特点:提高数据传输带宽,简化设计方案,降低设计成本,为工作站平台新增了不少功能。
事实上,AGP 3.0并不是针对游戏制定的,而是针对专业级应用和工作站。英特尔也声称新规范是为工作站和专业用户制定的,这一点可以从以下两点看出来:
1.减少等时操作设计。在PCI显示总线时代,大的数据在通过PCI接口时由于带宽不够而经常会出现处理延时现象。在进入AGP时代以后,由于处理数据量的急剧增长,这种现象也时有发生。比如我们在看电影时,由于系统在单位时间内读取的数据很多,往往会因为系统资源不足而出现播放不流畅的现象。AGP 8×针对这个问题专门做了研究,加入了数据同步传输设计。说到同步,也许有的人会不理解什么意思,这种功能在我们所用的IE浏览器中经常会用到。当你在浏览一个网页时,系统会把这个网页的数据保存在硬盘上,当你再度上网浏览这个以前看过的网页时,浏览速度会比以前快很多,这就是同步在起作用。AGP 8×加入这一功能后,在处理大的数据时就可以边处理边预先读取,从而有效减少了数据塞车现象,使系统的性能得以全面地发挥,而不会在数据读取上浪费太多的资源。
2.我们知道AGP是点对点接口,这也就是为什么我们的主板上只有一个AGP插槽的原因。AGP 8×推出以后,这种局面可能会改变,因为AGP 8×中加入了一种新的设计--输出端数桥接(Fan-out Bridge)技术,它可以使系统中安装多个AGP 8×设备成为可能。每个AGP 8×端口配置一个桥接模块,这些模块通过逻辑主PCI总线并且通过统一出口同芯片组中的控制模块通讯,每个模块可以通过次级PCI总线(AGP 8×总线)链接至少两个AGP 8×设备,不过两个AGP 8×设备之间无法进行点对点传输。
讲了这么多,大家可以通过不同AGP规范的技术参数表来了解它们之间的差异(表1)。