PCI总线PCI总线结构

PCI总线PCI总线结构PCI总线是一种树型结构,并且独立于CPU总线,可以和CPU总线并行操作

PCI总线上可以挂接PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他的均为PCI 从设备,而且读写操作只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转

 PCI总线结构如下图所示

在处理器系统中,含有PCI总线和PCI总线树这两个概念

这两个概念并不相同,在一颗PCI总线树中可能具有多条PCI总线,而具有血缘关系的PCI总线组成一颗PCI总线树

PCI总线由HOST主桥或者PCI桥管理,用来连接各类设备,如声卡、网卡和IDE接口卡等

在一个处理器系统中,可以通过PCI桥扩展PCI总线,并形成具有血缘关系的多级PCI总线,从而形成PCI总线树型结构

在处理器系统中有几个HOST主桥,就有几颗这样的PCI总线树,而每一颗PCI总线树都与一个PCI总线域对应

与HOST主桥直接连接的PCI总线通常被命名为PCI总线0

考虑到在一个处理器系统中可能有多个主桥

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的连续传输

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关