接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第1章 PCI总线的基本知识(4)
1.1 PCI总线的组成
PCI总线作为处理器系统的本地总线,是处理器系统的一个组成部件。因此,讲述PCI总线的组成结构,不能离开处理器系统这个大环境。在一个处理器系统中,与PCI总线相关的模块如下图所示:
1.1.4 HOST处理器
PCI总线规定,在同一时刻、在一棵PCI总线树上有且只有一个HOST处理器。这个HOST处理器可以通过HOST主桥发起PCI总线的配置请求总线事务,并对PCI总线上的设备和桥片进行配置。
在PCI总线中,HOST处理器是一个较为模糊的概念。在SMP(Symmetric Multiprocessing,对称多处理)处理器系统中,所有CPU都可以通过HOST主桥访问其下的PCI总线树,这些CPU可以作为HOST处理器。但值得注意的是,PCI总线树的实际管理者是HOST主桥,而不是HOST处理器。
在HOST主桥中,设置了许多寄存器,HOST处理器通过操作这些寄存器来管理PCI设备。如在x86处理器的HOST主桥中设置了0xCF8和0xCFC这两个I/O端口来访问PCI设备的配置空间;而PowerPC处理器的HOST主桥设置了CFG_ADDR和CFG_DATA寄存器来访问PCI设备的配置空间。值得注意的是,在PowerPC处理器中并没有I/O端口,因此使用存储器映像寻址方式访问外部设备的寄存器空间。
1.1.5 PCI总线的负载
PCI总线能挂接的负载与总线频率相关,总线频率越高,能挂载的负载越少。下面以PCI总线和PCI-X总线为例,说明总线频率、峰值带宽和负载能力之间的关系,如下表所示:
总线类型 | 总线频率 | 峰值带宽 | 负载能力 |
PCI | 33MHz | 133MB/s | 4-5个插槽 |
66MHz | 266MB/s | 1-2个插槽 | |
PCI-X | 66MHz | 266MB/s | 4个插槽 |
133MHz | 533MB/s | 2个插槽 | |
266MHz | 1066MB/s | 1个插槽 | |
533MHz | 2131MB/s | 1个插槽 |
由上表可知,PCI总线频率越高,能挂载的负载越少,但是整条总线能提供的带宽越大。值得注意的是,PCI-X总线与PCI总线的传送协议略有不同,因此66MHz的PCI-X总线的负载数较大。当PCI-X总线频率为266MHz和533MHz时,该总线只能挂接一个PCI-X插槽。在PCI总线中,一个插槽相当于两个负载,接插件和插卡各算为一个负载。在上表中,33MHz的PCI总线可以挂接4~5个插槽,相当于直接挂接8~10个负载。
至此,第1章第1节“PCI总线的组成”全部结束。