PCI总线
PCI总线
百科名片
PCI是Peripheral Component Interconnect(外设部件互连标准) 的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。
编辑本段PCI含义
PCI是由Intel公司1991年推出的一种局部总线。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能,它为显卡,声卡,网卡,MODEM等设备提供了连接接口,它的工作频率为33MHz/66MHz。
PCI是Peripheral Component Interconnect(外设部件互连标准) 的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。PCI插槽也是主板带有最多数量的插槽类型,在目前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽,可见其应用的广泛性。
PCI总线是一种不依附于某个具体处理器的局部总线。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能。PCI总线也支持总线主控技术,允许智能设备在需要时取得总线控制权,以加速数据传送。
编辑本段PCI技术规格简介
从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。由PCI总线构成的标准系统结构如图一所示。
PCI总线取代了早先的ISA总线。当然与在PCI总线后面出现专门用于显卡的AGP总线,与现在的PCI Express总线相比,功能没有那么强大,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug and Play)、中断共享等。在这里我们对PCI总线做一个深入的介绍。
从数据宽度上看,PCI总线有32bit、64bit之分;从总线速度上分,有33MHz、66MHz两种。目前流行的是32bit @ 33MHz,而64bit系统正在普及中。改良的PCI系统,PCI-X,最高可以达到64bit @ 133MHz,这样就可以得到超过1GB/s的数据传输速率。如果没有特殊说明,以下的讨论以32bit @ 33MHz为例。
一、基本概念
不同于ISA总线,PCI总线的地址总线与数据总线是分时复用的。这样做的好处是,一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在做数据传输时,由一个PCI设备做发起者(主控,Initiator或Master),而另一个PCI设备做目标(从设备,Target或Slave)。总线上的所有时序的产生与控制,都由Master来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构(Arbiter),来决定在谁有权力拿到总线的主控权。
当PCI总线进行操作时,发起者(Master)先置REQ#,当得到仲裁器 (Arbiter)的许可时(GNT#),会将FRAME#置低,并在AD总线上放置Slave地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#都置低时,可以传输数据。当 Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。
这里我们可以看出,PCI总线的传输是很高效的,发出一组地址后,理想状态下可以连续发数据,峰值速率为132MB/s。实际上,目前流行的33M@32bit北桥芯片一般可以做到100MB/s的连续传输。
二、即插即用的实现
所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序。而不象旧的ISA板卡,需要进行复杂的手动配置。
实际的实现远比说起来要复杂。在PCI板卡中,有一组寄存器,叫”配置空间”(Configuration Space),用来存放基地址与内存地址,以及中断等信息。
以内存地址为例。当上电时,板卡从ROM里读取固定的值放到寄存器中,对应内存的地方放置的是需要分配的内存字节数等信息。操作系统要跟据这个信息分配内存,并在分配成功后把相应的寄存器中填入内存的起始地址。这样就不必手工设置开关来分配内存或基地址了。对于中断的分配也与此类似。
三、中断共享的实现
ISA卡的一个重要局限在于中断是独占的,而我们知道计算机的中断号只有16个,系统又用掉了一些,这样当有多块ISA卡要用中断时就会有问题了。
PCI总线的中断共享由硬件与软件两部分组成。
硬件上,采用电平触发的办法:中断信号在系统一侧用电阻接高,而要产生中断的板卡上利用三极管的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低;而只有当所有板卡的中断都得到处理后,中断信号才会回复高电平。
软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。以此类推,就会形成一个中断链。而当有中断发生时,系统跳转到中断7对应的内存,也就是ISR_B。ISR_B就要检查是不是B卡的中断,如果是,要处理,并将板卡上的拉低电路放开;如果不是,则呼叫ISR_A。这样就完成了中断的共享。
通过以上讨论,我们不难看出,PCI总线有着极大的的优势。而近年来的市场情况也证实了这一点。
编辑本段PCI产生:
1991 年下半年,Intel 公司首先提出了PCI 的概念,并联合IBM、Compaq、AST、HP、DEC 等100 多家公司成立了PCI 集团,其英文全称为:Peripheral Component Interconnect Special Interest Group(外围部件互连专业组),简称PCISIG。PCI 有32 位和64 位两种,32位PCI 有120引脚,64 位有184 引脚,目前常用的是32 位PCI。32 位PCI 的数据传输率为133MB/s,大大高于ISA。
编辑本段PCI 总线的主要性能
(1) 支持10 台外设
(2) 总线时钟频率33.3MHz/66MHz
(3) 最大数据传输速率133MB/s
(4) 时钟同步方式
(5) 与CPU 及时钟频率无关
(6) 总线宽度 32 位(5V)/64 位(3.3V)
(7) 能自动识别外设
PCI (Peripheral Component Interconnect)总线是一种高性能局部总线,是为了满足外设间以及外设与主机间高速数据传输而提出来的。在数字图形、图像和语音处理,以及高速实时数据采集与处理等对数据传输率要求较高的应用中,采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。
编辑本段四、PCI总线的特点:
PCI总线是一种同步的独立予处理器的32位或64位局部总线,最高工作频率为33MHz,峰值速度在32位时为132MB/s,64馒时必264MB/s,总线规范由PCISIG发布。ISA总线相比,PCI总线和有如下显著的特点:
①高速性
PCI局部总线以33MHz的时钟频率操作,采用32位数据总线,数据传输速率可高达 132MB/s,远超过以往各种总线。而早在1995年6月推出的PCI总线规范2。l已定义了64位、66MHz的PCI总线标准。因此PCI总线完全可为未来的计算机提供更高的数据传送率。另外,PCI总线的主设备(Master)可与微机内存直接交换数据,而不必经过微机CPU中转,也提高了数据传送的效率。
②即插即用性
目前随着计算枫技术的发展,微机中留给用户使用的硬件资源越来越少,也越来越含糊不清。在使用 ISA板卡时,有两个问题需要解决:一是在同一台微机上使用多个不同厂家、不同型号的板卡时,板卡之间可能会有硬件资源上的冲突;二是板卡所占用的硬件资源可能会与系统硬件资源(如声卡、网卡等)相冲突。而PCI板卡的硬件资源则是由微机根据其各自的要求统一分配,决不会有任何的冲突闻题。因此,作为 PCI板卡的设计者,不必关心微枫的哪些资源可用,那些资源不可用,也不必关心板卡之间是否会有冲突。因此,即使不
考虑PCI总线的高速性,单凭其即插即用性,就比ISA总线优越了许多。
③可靠性
PCI独立于处理器的结构,形成一种独特的中间缓冲器设计方式,将中央处理器子系统与外围设备分开。这样用户可以随意增添外围设备,以扩充电脑系统而不必担心在不同时钟频率下会导致性能的下降。与原先微机常用的ISA总线相比,PCI总线增加了奇偶校验错(PERR)、系统错(SERR)、从设备结束(STOP)等控制信号及超时处理等可靠性措施,使数据传输的可靠性大为增加。
④复杂性
PCI总线强大的功能大大增加了硬件设计和软件开发的实现难度。硬件上要采用大容量、高速度的CPLD或FPGA芯片来实现PCI总线复杂的功能。软件上则要根据所用的操作系统,用软件工具编制支持即插即用功能酶设备驱动程
序。
⑤自动配置
PCI总线规范规定PCI插卡可以自动配置。PCI定义了3种地址空间:存储器空间,输入输出空间和配置空间,每个PCI设备中都有256字节的配置空间用来存放自动配置信息,当PCI插卡插入系统,BIOS将根据读到的有关该卡的信息,结合系统的实际情况为插卡分配存储地址、中断和某些定时信息。
⑥共享中断
PCI总线是采用低电平有效方式,多个中断可以共享一条中断线,而ISA总线是边沿触发方式。
⑦扩展性好
如果需要把许多设备连接到PCI总线上,而总线驱动能力不足时,可以采用多级PCI总线,这些总线上均可以并发工作,每个总线上均可挂接若干设备。因此PCI总线结构的扩展性是非常好的。由于PCI的设计是要辅助现有的扩展总线标准,因此与 ISA,EISA及MCA总线完全兼容。
⑧多路复用
在PCI总线中为了优化设计采用了地址线和数据线共用一组物理线路,即多路复用。PCI接插件尺寸小,又采用了多路复用技术,减少了元件和管脚个数,提高了效率。
⑨严格规范
PCI总线对协议、时序、电气性能、机械性能等指标都有严格的规定,保证了PCI的可靠性和兼容性。由于PCI总线规范十分复杂,其接口的实现就有较高的技术难度。
#bk-album-collection-box-2815 { width: 687px; height: 228px; border-top: 2px solid rgba(38, 139, 215, 1); border-right: 1px solid rgba(198, 225, 245, 1); border-bottom: 1px solid rgba(198, 225, 245, 1); border-left: 1px solid rgba(198, 225, 245, 1); margin-bottom: 30px; overflow: hidden }
.bacb-head { height: 28px; background-color: rgba(245, 251, 255, 1); padding-left: 10px; position: relative }
.bacb-title { font-size: 14px; font-weight: bold; line-height: 28px }
.bacb-more { text-decoration: none; position: absolute; font-size: 12px; line-height: ; top: 8px; right: 8px; padding-right: 11px; background: url(“http://img.baidu.com/img/baike/s/arr.gif”) 54px -22px no-repeat }
.bacb-more:hover { text-decoration: none }
#bacb-left-btn-2815, .bacb-window-outer, #bacb-right-btn-2815 { float: left }
#bacb-left-btn-2815, #bacb-right-btn-2815 { display: block; text-decoration: none; border: 1px solid rgba(255, 255, 255, 1); width: 17px; height: 53px; background: url(“http://img.baidu.com/img/baike/bkalbumbtn.gif”) no-repeat; cursor: default }
#bacb-left-btn-2815 { margin: 59px 3px 0 6px; _margin-left: 3px; background-position: 3px 16px }
#bacb-right-btn-2815 { margin: 59px 5px 0 6px; background-position: -27px 16px }
#bacb-left-btn-2815.enable:hover { background-position: -61px 16px; border: 1px solid rgba(221, 221, 221, 1); cursor: pointer }
#bacb-right-btn-2815.enable:hover { background-position: -91px 16px; border: 1px solid rgba(221, 221, 221, 1); cursor: pointer }
.bacb-window-outer { width: 628px; height: 185px; position: relative; overflow: hidden; margin-top: 15px }
#bacb-window-inner-2815 { position: absolute; top: 0; left: 0; padding-left: 6px; _padding-top: 1px }
#bacb-window-inner-2815 .item { float: left; width: 156px; height: 195px }
#bacb-window-inner-2815 .img { height: 145px; position: relative }
#bacb-window-inner-2815 .img .b1, #bacb-window-inner-2815 .img .b2, #bacb-window-inner-2815 .img .b3, #bacb-window-inner-2815 .img .img-wrapper { position: absolute; background-color: rgba(255, 255, 255, 1) }
#bacb-window-inner-2815 .img .b1 { left: 0; bottom: 0; border: 1px solid rgba(205, 205, 205, 1) }
#bacb-window-inner-2815 .img .b2 { left: 3px; bottom: 3px; border: 1px solid rgba(205, 205, 205, 1) }
#bacb-window-inner-2815 .img .b3 { left: 6px; bottom: 6px; border: 1px solid rgba(170, 170, 170, 1) }
#bacb-window-inner-2815 .img .img-wrapper { left: 9px; bottom: 9px; display: block; text-decoration: none; line-height: 1px }
#bacb-window-inner-2815 .item .desc { text-align: center; font-family: 宋体; width: 145px; margin-top: 7px; font-size: 12px; line-height: }
#bacb-window-inner-2815 .item .count { color: rgba(153, 153, 153, 1); white-space: nowrap }
- 扩展阅读:
-
- 1
-
2
网络收集
-
3
http://www.elecfans.com/article/87/82/2008/2008120919501.html
-
4
修改来自《嵌入式系统的构建》一书,对该概念做了总体上的介绍,可以加深理解
- 5