PCI 总线树BUS 号

在一个处理器系统中,每一个host 主桥都推出一棵PCI 总线树。 一棵PCI 总线树中有多少个PCIB bridge , 就含有多少条PCI 总线。 系统软件在遍历当前PCI 总线树时,需要首先对这些PCI 总线进行编号,即初始化PCI 桥的primary, secondary 和Subordinate bus number 寄存器。

在一个处理器系统中,一般将与host 主桥直接相连的pci 总线命名为pci 总线0, 然后系统软件使用dfs( depth first search) 算法,依次对其他pci 总线进行编号。值得注意的是,与host 主桥直接相连的pci 总线,其编号都为0, 因此当处理器系统中存在多个host主桥时,将有多个编号为0 的pci 总线。 但是这些编号为0的pci 总线分属不同的pci 总线域, 其含义并不相同。

在一个处理器系统中,假设pci 总线树的结构如图所示,

在pci 总线中, 系统软件使用深度优先算法对PCI 总线树进行遍历,DFS 算法和广度优先BFS( breath First Searth) 算法是遍历树型结构的常用算法。与bfs 算法相比,dfs 算法的空间复杂度较低, 因此绝大多数系统在遍历pci 总线树时,都使用DFS 算法而不是BFS 算法。

DFS 算法是搜索算法的一种,其实现机制是沿着一棵树的深度遍历各个节点,并尽可能深地搜索树的分支, DFS 的算法为线性时间复杂度。适合对拓扑结构未知的树进行遍历。 在一个处理器系统的初始化阶段。PCI 总线树的拓扑结构是未知的, 适合使用DFS 算法进行遍历,

1, host 主桥扫描pci 总线0 上的设备, 系统软件首先忽略这条总线上的所有pci agent 设备,因为在这些设备之下不会挂接新的pci 总线。

2,host 主桥首先发现pci 桥1, 并将pci 桥1的secondary bus 命名为pci 总线1. 系统软件将初始化pci 桥1 的配置空间, 将pci 1 的primary bus number 寄存器赋值为0. 而将secondary bus number 寄存器赋值为1, 即pci 桥1 的上游pci 总线号为0, 而下游pci 总线号为1.

3, 扫描pci 总线1, 发现pci 桥2, 并将pci 桥2 的secondary bus 命名为pci 总线2, 系统软件将初始化pci 桥2的配置空间, 将pci 桥2 的primary bus number 寄存器赋值为1, 而将secondary bus number 寄存器赋值为2.

4

pci 总线device 号的分配

一条pci 总线会挂接各种各样的Pci 设备,而每一个pci 设备在pci 总线下具有唯一的设备号。系统软件通过总线号和设备各定位一个pci 设备之后,才能访问这个pci 设备的配置寄存器。值得注意的是,系统软件使用"地址寻址方式" 访问pci 设备的存储器和i/o 地址空间,这与访问配置空间使用的"id寻址方式"不同。

pci 设备的idsel 信号与pci 总线的ad 31:0 信号的连接关系决定了该设备在这个pci 总线的设备号。 如上文所述,每一个pci 设备都使用独立的idsel 信号,该信号将与pci总线的ad31:0 信号连接。

pci 总线事务由一个地址周期加若干个数据周期组成。

相关推荐
缓慢更新24 分钟前
表单引擎的存储建模:宽表与文档库的取舍
运维·服务器·网络·数据库·低代码·oracle·适配器模式
续写烂尾1 小时前
贴片 SD NAND、eMMC、TF 卡规格怎么定?硬件工程师选型清单
运维·服务器·网络
不昀1 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
迪康妍妍1 小时前
终端管控实操:封堵网盘与IM外发通道的落地思路
运维·网络·安全·架构·安全性测试
sxgzzn1 小时前
如何选择合适的开关柜在线监测工具?
运维·重构·无人机·开关柜局放在线监测·光伏运维管理系统
科技小E1 小时前
监控设备品牌杂乱无法互通?EasyGBS打通孤岛,统一汇聚视频
服务器·网络·音视频
Lhan.zzZ2 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
zxcvb1532 小时前
运维经验分享:监控网页更新内容的几种思路
运维
Fcy6483 小时前
Linux下 多路转接select详解
linux·select·多路转接
weixin199701080163 小时前
《抖音商品API:/product/detail 与 /product/list 的字段边界与图片合规踩坑》(附 Python 源码)
服务器·网络·windows