1 BDF (Bus, Device, Function)
BDF是在PCI中就有了的概念。在PCIe 拓扑结构中,我们通过总线号(bus number), 设备号(device numer)和功能号(function number)来唯一地标识各个function。Bus number用于表征当前设备挂载于哪条bus下面,Device number用于表征设备具体是总线下的哪个设备,function number用于表征是device里面的哪个function。

如上例图,从bus 0开始,每经过一个virtual P2P bridge就会形成一个新的Bus。PCIe最多支持256个bus number。软件通过“枚举”的流程来明确整个PCIe拓扑结构,在枚举时遵循深度优先原则,一旦发现一条新的bus后就继续扫描新bus下面的设备。
在单个bus下面最多可以支持32个设备。由于PCIe是点对点的协议,即单个PCIe link两端都只有1个设备(device)链接在一起,因此在PCIe拓扑结构中引入了Vritual P2P Bridge。Vritual P2P Bridge与Vritual P2P Bridge之间是通过virtual bus连接的,不受点对点的限制,这样就使得单个bus下面挂载多个设备成为可能。只有RC和Switch内部的bus下面才能挂载多个设备。
每个设备必须实现function-0, 最多可以实现8个function, 实现的多个function可以是不连续的,比如,function-0,2,7。软件扫描设备发现是multi-function设备时,就必须对该设备的所有function进行check。每个function都有自己独立的config adress space。

最低0.47元/天 解锁文章
1218

被折叠的 条评论
为什么被折叠?



