PCI 设备解析(一)

PCI总线在目前计算机总线系统中占据举足轻重的地位,其良好的扩展性,地址统一分配和总线竞争的处理相对于其他总线而言都具有绝对优势。

Reference:
http://www.cnblogs.com/ck1020/p/5942703.html


扩展性
PCI总线上存在若干PCI设备插槽,当PCI插槽无法满足需求,就可以通过PCI桥扩展PCI设备,一个PCI桥把一个PCI总线连在一个PCI插槽上,作为PCI的一个设备。例如CPU通过“宿主-PCI桥与一条PCI总线相连,此总线成为“主PCI总线”,当通过PCI桥扩展PCI总线时,扩展的总线成为“从总线”,当然还可以通过其他的桥比如“PCI-ISA”桥扩展ISA总线,所以这样通过PCI-PCI桥可以构筑起一个层次的、树状的PCI系统结构,对于上层的总线而言,连接在这条总线上的PCI桥也是一个设备,但是这是一种特殊的设备。
其PCI树状结构如图所示:

PCI 设备解析(一)

一条PCI总线一般有32个接口,即可以连接32个PCI接口卡,而一个接口卡对应一个外部设备–dev,注意这里的外部设备可以有多个功能–function(最多八个),每一个功能称为逻辑设备, 也就是说每个PCI插槽最多支持32*8=256个设备。


通过lspci命令,可以查看系统中的所有pci设备(逻辑设备)。
下面是此命令的输出结果的一行,显示了一块网卡的信息:1号总线,1号设备,0号功能。
01:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

每一个逻辑设备对应一个PCI配置空间。对于逻辑设备后面还会详细解释,这里先说配置空间的问题。PCI配置空间可以说是记录了关于此设备的详细信息。PCI配置空间最大256个字节,其中起先的64个字节的格式是预定义好的。当然并非所有的项都必须填充,位置是固定了,没有用到可以填充0。而前16个字节的格式是一定的。包含头部的类型、设备的总类、设备的性质以及制造商等。

PCI 设备解析(一)