目录
1,PCI概览
PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,是第二代外围设备总线。PCI和PCI-X总线是多点并行互联总线,多台设别共享一条总线,通过仲裁机制来决定哪个设备占用总线。
外围设别总线:
第一代:ISA,EISA,VESA,Micro Channel等
第二代:PCI,PCI-X,AGP
第三代:PCI Express
2,PCI的带宽
PCI总线常见的频率有33MHz和66MHz。PCI规范理论上声明每条PCI bus支持32个device,但由于链路电气负载的原因,实际上一条33MHz的PCI总线最多能够支持10~12个负载。
对于第一行:峰值带宽=32bit * 33MHz * B/8b = 132MB/s
3,PCI总线系统
基于33MHz的PCI总线的平台如下图,CPU为Processor,通过FSB总线(Front Side Bus,前端总线)连接单板上的北桥芯片,北桥芯片上挂接速率很快的SDRAM,PCI总线用于连接南北桥以及挂接外围设备,南桥芯片用于挂接速率相对较慢的其他设备。
在后续的发展中,已经将北桥芯片集成到CPU中了。FSB相当于变成了片内总线。
PCI通过北桥中的仲裁器来决定哪个设别占用PCI总线,PCI设备通过南桥中的中断控制来上报中断给CPU。
PCI系统中可以挂接PCI Bridge进行系统的扩展,当增加一层PCI Bridge后,驱动软件进行枚举的时候,PCI总线号就加1了,所以总共可以挂接256层PCI Bridge,每一层PCI总线上,理论上最多可以挂接32个设备(但电气负载原因挂接不了这么多)。
4,PCI配置空间
一个系统中,理论上支持256条PCI BUS,每条PCI总线支持32个Device,每个设备最多支持8个Function。对于每个功能(Function)来说最多有256B的配置空间,其中前64B为 PCI Header,可以分为Type0 和 Type1 两种类型,后192B为设备特别的配置寄存器空间。
对于一个系统来说,挂接理论最大数量的PCI设备需要 256B * 256 * 32 * 8 = 2^24 = 16MB 的配置空间。
下图右边为Type0类型的PCI Header寄存器。