分类: LINUX
2009-03-11 13:57:48
编者按:这篇文章成文于2003年9月27日,发表在《大众硬件》杂志上。AGP时代已经悄然结束,新一代PCIe显卡早已全面普及。但是早在2003年,正是AGP显卡如日中天的年代。今天再把这篇有关AGP接口技术介绍的文章贴出来,让我们一起来缅怀这个那个伟大的时代。
How to work系列之 AGP是如何工作的
现代的计算机非常依赖图形显示技术。例如,计算机操作系统全是基于图形用户界面的。(GUI)它可以视为计算机与操作用户之间的一种纽带。你可能非常喜欢电视/电脑上的游戏,创建3D模型,制作动画。事实上除了一些商业用途(文字表格的处理)之外,你的电脑几乎在任何时候都会涉及到许多图形处理的工作。在这篇文章中,你将了解到AGP的相关知识,Intel为了提高图形处理子系统的性能和速度所走过的历程,以及AGP总线是如何工作的。
如图1,像这样的游戏,需要极端强大的显示卡。
在计算机中,可以使用多种不同的界面接口来连接一块显示卡。
主板集成,显示芯片和显示内存都集成在同一块主板上。
PCI接口,插在PCI总线上的显示卡。
AGP接口,这是一个专门用来连接显示卡的插槽。
在有AGP之前
最初的PC总线运行频率为4.77MHz,数据传输位宽为8bit。这意味着每个时钟周期可以处理8bit的数据。在1982年,出现了一种更高级的系统总线,这就是著名的ISA总线。(工业标准结构总线)它的运行频率为8MHz,数据传输位宽为16bit。这条总线的数据传输速度达到了16MBps。
大约在80年代早期,那个时候的显示卡都是工作在单色显示器上的。直到90年代,彩色显示器和具有ISA接口的主板才开始慢慢流行起来。对于要求显示多种颜色和高分辨率的显示器来说,ISA接口的显示卡实在太慢了。ISA总线大大阻碍了CPU处理图形数据的速度。
几年之后,基于VL-Bus(VESA Local Bus)总线的显示卡取代了ISA显示卡。由VESA(视频电子标准协会)制定了SVGA的统一标准。它支持16M的颜色显示,支持1280x1024的分辨率。显示卡会插在主板上的这个特殊的VL-Bus插槽上,这个插槽与其ISA总线是分开的。因为该标准使用了“局域总线”架构,因此显卡可以直接访问CPU的资源。VL-Bus是一条32bit位宽的总线,并且以更快速度的局域总线模式运行。通常局域总线的速度与CPU的速度对等。但是这也随之带来了两个弊端:
1、显卡厂商并不知道消费者的系统有多快。
2、直接访问CPU资源时,会降低CPU处理器工作的效率。
此后,出现了一种全新的总线标准——PCI(周边元件扩展接口)PCI总线采纳了很多ISA和VL-Bus总线的特点。它可以让连接的设备支持直接访问系统内存,但是这中间必须使用CPU作为桥连接。这意味着它会比VL-Bus总线具有更高的性能的同时,又消除了潜在的CPU占用冲突问题。如图2,这是当前仍然在使用中的PCI总线接口
加速器之路
为了达到处理流媒体视频和实时演算3D游戏的要求,计算机的研发人员需要建立一种比PCI性能更高的传输界面。在1996年,由Intel第一次提出了图形加速端口(Accelerated Graphics Port,AGP)以用来代替传统的PCI总线界面,提高图形子系统的数据吞吐量。
如图3,这是一张基于Pentium III系统的标准AGP总线结构图。
在一台电脑中所有的零部件都要连接在一起,AGP就是一条显示卡与处理器连接的总线。从本质上讲AGP就是电脑中的一条通道。虽然AGP中很多参数是基于PCI总线而制定的,并且我们也经常听到很多人叫它“AGP总线”,但事实上它并不是一条系统级别的总线。它其实是一条点对点的连接通路。换句话说,仅仅是通过AGP总线,到处理器和系统内存之间的设备级别的连接。在这条通道上没有设置“终止”机制,因此它并不是一条真正意义上的总线。AGP相比PCI具有两点显著的优势:更快的数据吞吐量;直接访问内存。下面让我们来看看AGP是怎样工作的,这会帮助我们更好的理解它的运作原理。
如图4,这是一张典型的基于AGP接口的显示卡。
AGP使用以下几项先进的技术,来加快数据的传输速度:
AGP是一条32bit位宽的总线,工作频率为66MHz。这意味着它每秒钟可以传送6600万次32bit(4个字节)的信息。随后信息的传输速率可以以2X、4X、8X模式扩展。
在AGP总线上,没有其他的共享设备。这意味着图形显示卡所工作的这条线路并不是一条共享总线。显示卡总是可以独享这条高速的连接通道,以最大的速率传输信息。
AGP可以使用流水线来加速数据的传输。在这条对数据处理的流水线中,系统可以对数据进行合理的组织和检索。当显卡提交了一个单独的请求后,就可以收到大量的数据结果。流水线就像是餐馆的服务生一样。你可以告诉它你第一个想要的菜肴,等它拿来。然后你再告诉它下一步你要的菜肴,再等它拿来。它会忠心的为你效劳,直到它满足了你的所有请求。
AGP还可以使用边带寻址。显示卡可以使用额外的8条地址线来发送或者接收地址信息。这8条地址线与AGP的32bit位宽的数据传输线路是完全分离的。这个边带寻址类似于广播电台的点歌台。电台中的节目内容就好比AGP中传输的数据。而点歌的电话线路就好比这个边带寻址。点歌的电话,不会直接占用节目播放的线路。而边带寻址的过程也不会占用AGP总线的带宽。
内存映射
除了AGP自身的带宽优势之外,它相对于PCI的另一项优势是:图形显示卡可以利用AGP总线的全速带宽直接访问系统内存。这一点是AGP技术中重要的组成部分之一。材质数据是3D图形处理中重要的组成部分,在实时演算3D游戏时会占用大量的显存。通常显示卡中的显存的制造成本都非常昂贵,而且显存的容量也有一定的限制。系统内存一般比显存廉价的多,而且容量也大上好几倍。当计算机要处理大量的或者较大尺寸的材质数据时,早期的PCI显卡内显存中的缓冲数据很快就会被用尽。基于AGP总线的显示卡在这方面就有很大优势,它可以直接利用系统内存来映射显存中存储的材质数据。
在非AGP系统中,例如使用基于PCI接口的显示卡,每一个材质数据都要倍存储两次。首先,当需要使用这些材质数据时,他们就会从硬盘中读出,装载到系统内存中。再从系统内存将这些数据发送到CPU中进行处理。此后将这些计算的结果通过PCI总线再次存储到显卡的帧缓冲区里。事实上,每一个材质数据都会被处理和存储两次。一次是在系统内存,一次是在显示卡中。
如图5,在基于PCI的图形子系统中,材质数据会被反复存储和处理两次。
在AGP系统中仅仅需要存储一次材质数据就可以完成所有的处理过程了。在这个处理过程中,主板芯片组是否支持“图形地址再映射表”(GART)是最为关键的。因为显卡要占用系统内存映射显存,系统中所有的存储空间就会显得非常复杂烦乱。这包括划分AGP映射的内存、系统内存、已经使用和未使用的AGP映射的内存、剩余的系统内存等等,如此繁多的区域都需要有一个总的控制机制来管理。当有了GART的统筹管理,显卡通过AGP来直接映射材质数据便不是一件难事了。
如图6,在AGP中,材质数据从硬盘读出到系统内存,不必通过CPU的处理,显示卡就可以直接调用。
你可以看到非AGP接口的显卡中,每一次材质数据的处理都是非常繁琐的。CPU需要处理很多额外的工作,这样就限制了CPU的性能发挥。综合所有的因素AGP显卡的性能要超越PCI显卡就不足为奇了。
发展道路
当前共有4种AGP规范标准:
AGP 1.0
AGP 2.0
AGP Pro
AGP 3.0
AGP2.0中包括早先的v1.0版本,它支持3种运行模式。这个版本的运行模式比较有趣,它可以支持所有66MHz AGP接口的显卡。它向下兼容AGP 1X,同时也支持AGP 2X和AGP 4X。需要注意的是,2倍速的AGP显示卡每个时钟周期会发送两次数据,4倍速AGP显卡可以在一个时钟周期内发送4次数据。下面的表格中列出了AGP的倍速与传输性能的关系。
模式 |
近似时钟频率 |
传送速率 |
1x |
66 MHz |
266 MBps |
2x |
133 MHz |
533 MBps |
4x |
266 MHz |
1066 MBps |
8x |
533 MHz |
2133 MBps |
AGP Pro是基于AGP 2.0规范制定的标准,但是它的插槽比AGP 2.0更长。延长出来的这部分是用来为专业级别的显示卡供电的。在计算机中任何一个AGP Pro 或者 AGP 2.0插槽都可以兼容 AGP 1.0 和 AGP 2.0的显示卡。但是AGP 1.0的插槽并不能兼容其他版本的显示卡。
如图7,这是一个AGP Pro的插槽
此后,Intel又制定出了最新的AGP 3.0标准。它是第三代显示卡接口规范,在2002年11月12日正式公布。从理论上来说,AGP 3.0是不兼容AGP 2.0的。不过这两种规范可以通过“通用 AGP 3.0 主板”标准来兼容。虽然新的规范主要是针对专业级应用制定的,但是仍然有一些功能对3D游戏有很大的帮助。其中之一就是AGP 8x模式,它可以有效地将带宽提升到2.1 GB/秒。不过这项功能是否能发挥它的作用还值得怀疑,因为最近的一些测试表明,AGP 4x应付现在的游戏已经绰绰有余。为了防止用户将非0.8V显卡使用在AGP 0.8V插槽上,Intel专门为AGP 3.0插槽和主板增加了电子ID,用以识别显卡的接口版本。不过AGP 3.3V信号电压的显卡依然不能使用在“通用 1.5V AGP 3.0主板”上,这种主板只能支持1.5V和0.8V信号电压。下面这张表列出了几种AGP模式的主要规格:
|
AGP 1.0 |
AGP 2.0 |
AGP 3.0 |
信号电压 |
3.3V |
1.5V |
0.8V |
协议 |
通道数据传输 |
AGP 1.0 + Fast Writes |
AGP 2.0 +一些增强性能的技术,删除了一部分功能 |
速度 |
1x,2x |
1x,2x,4x |
4x,8x |
接口 |
3.3V |
1.5V通用 |
1.5V通用 |
总结
在进10年中,人们为了追求逼真的显示画质,而不断的研发更高速的图形子系统。强大的AGP 3.0并不是最后的终结者。它很快将会被性能更快的PCI Express总线所取代。图形总线永远会向着更大的数据吞吐量、更高效的工作模式、更智能的数据处理机制的方向发展。