Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3146614
  • 博文数量: 117
  • 博客积分: 10003
  • 博客等级: 上将
  • 技术积分: 5405
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-23 09:34
文章分类

全部博文(117)

文章存档

2011年(1)

2010年(10)

2009年(69)

2008年(37)

分类: 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的倍速与传输性能的关系。

模式

近似时钟频率

传送速率
(MBps)

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 +一些增强性能的技术,删除了一部分功能

速度

1x2x

1x2x4x

4x8x

接口

3.3V

1.5V通用

1.5V通用

总结

在进10年中,人们为了追求逼真的显示画质,而不断的研发更高速的图形子系统。强大的AGP 3.0并不是最后的终结者。它很快将会被性能更快的PCI Express总线所取代。图形总线永远会向着更大的数据吞吐量、更高效的工作模式、更智能的数据处理机制的方向发展。

阅读(1570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~