400-035-6699
当前位置: 首页 » 技术支持 » 博文资讯 »

BDF解析与配置空间详细指南

在探讨计算机系统内部的数据传输时,PCI Express(PCIe)总线作为关键的组件之一,扮演着重要的角色。与早期的PCI总线相比,PCIe引入了更多灵活性和高效性。下面我们来详细了解PCIe设备的功能、配置空间以及拓扑结构
首先,一个PCIe设备可以拥有一个或多个功能。每个设备至少有一个基本功能,称为Fun0,但它也可以具备多达8个功能,这种设备被称为多功能设备。无论设备拥有多少功能,每个功能都有一个独立的配置空间与之对应,确保了独立配置和操作的可能性。
与PCI总线相似,PCIe总线上的每个功能都有一个唯一的标识符,称为BDF(Bus,Device,Function)。这个标识符帮助系统识别总线中的每个设备和功能。配置软件,通常是PC端的Root应用层,需要能够识别PCIe总线的整个拓扑结构,包括各个总线和设备。
在BDF标识符中,Bus Number占用8位,可以支持最多256个子总线;Device Number占用5位,每个子总线上可以支持最多32个设备;Function Number占用3位,每个设备可以支持最多8个功能。这种结构使得PCIe总线具有极高的扩展性和灵活性。
PCIe总线的拓扑结构采用了深度优先搜索算法,Bus0总是分配给Root ComPlex,这是总线的核心。Root Complex内部集成了Endpoint和多个端口,每个端口都相当于一个虚拟的PCI-to-PCI桥,它们也有自己的设备号和功能号。
值得注意的是,每个设备都必须有一个功能0,即Fun0,而其他的功能(Fun1至Fun7)则是可选的。这种设计使得基本的设备功能得到保障,同时允许设备根据需要进行扩展。
以一个简单的例子来说明,下图展示了一个PCIe总线的基本拓扑结构:
![PCIe Topology Example](HTTP://file.eLECfans.com/web1/M00/4F/FD/pIYBAFrqYSWAZ6XCAADUBiuesgI989.png)
关于PCIe总线的拓扑逻辑,我们将在后续的文章中详细探讨。
在兼容性方面,PCIe总线几乎完整地保留了PCI总线的配置空间,并将其扩展到了4KB,以支持一些新的功能,如PCI Express Capability、Power Management和MSI/MSI-X等。以下是从PCI总线继承过来的配置空间示意图:
![Inherited Configuration Space](http://file.elecfans.com/web1/M00/4F/FD/pIYBAFrqYSWAUE4UAACvA1womnA683.png)
而下面则是PCIe新增的配置空间示意:
![New PCIe Configuration Space](http://file.elecfans.com/web1/M00/4F/FD/pIYBAFrqYSaAc-X3AACmwyUx-pg480.png)
通过这样的设计,PCIe总线不仅提升了数据传输的效率,还增加了系统的可扩展性,为现代计算机系统的高效运行提供了坚实基础。

前面的文章中介绍过,每一个PCIe设备可以只有一个功能(Function),即Fun0。也可以拥有最多8个功能,即多功能设备(Multi-Fun)。不管这个PCIe设备拥有多少个功能,其每一个功能都有一个唯一独立的配置空间(Configuration Space)与之对应。

BDF解析与配置空间详细指南

和PCI总线一样,PCIe总线中的每一个功能(Function)都有一个唯一的标识符与之对应。这个标识符就是BDF(Bus,Device,Function),PCIe的配置软件(即Root的应用层,一般是PC)应当有能力识别整个PCIe总线系统的拓扑逻辑,以及其中的每一条总线(Bus),每一个设备(Device)和每一项功能(Function)。

在BDF中,Bus Number占用8位,Device Number占用5位,Function Number占用3位。显然,PCIe总线最多支持256个子总线,每个子总线最多支持32个设备,每个设备最多支持8个功能。

PCIe总线采用的是一种深度优先(Depth First Search)的拓扑算法,且Bus0总是分配给Root Complex。Root中包含有集成的Endpoint和多个端口(Port),每个端口内部都有一个虚拟的PCI-to-PCI桥(P2P),并且这个桥也应有设备号和功能号。

需要注意的是,每个设备必须要有功能0(Fun0),其他的7个功能(Fun1~Fun7)都是可选的。

一个简单的例子如下图所示:

注:关于PCIe总线的拓扑逻辑会在后面的文章中进行详细地介绍。

前面的关于PCI总线的文章介绍过PCI总线的配置空间,PCIe总线为了兼容这些PCI设备,几乎完整的保留了PCI总线的配置空间。并将配置空间扩展到4KB,用于支持一些PCIe总线中新的功能,如PCI Express Capability、Power Management和MSI/MSI-X等。

下图是从PCI总线中继承过来的配置空间:

下图是PCIe新增的配置空间的示意图:

【限时免费】一键获取网络规划系统模板+传输架构设计+连通性评估方案

PCIe相关文章

服务电话:
400-035-6699
企服商城