首页 > 其他分享 >PCIe扫盲——BDF与配置空间

PCIe扫盲——BDF与配置空间

时间:2024-12-25 18:30:51浏览次数:4  
标签:Function 功能 BDF 扫盲 配置 总线 PCIe PCI

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

和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)都是可选的。

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

image

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

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

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

image

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

image

标签:Function,功能,BDF,扫盲,配置,总线,PCIe,PCI
From: https://www.cnblogs.com/linhaostudy/p/18631214

相关文章

  • PCIe扫盲——一个Memory Read操作的例子
    前面的一系列文章简要地介绍了PCIe总线的结构、事务层、数据链路层和物理层。下面我们用一个简单地的例子来回顾并总结一下。Requester端如下图所示,Requester的应用层(软件层)首先向其事务层发送如下信息:32位(或者64位)的Memory地址,事务类型(TransactionType),数据量(以DW为单位),TC(Traf......
  • PCIe扫盲——PCIe总线物理层入门
    前面的文章简单的介绍了一些关于PCIe总线事务层(TransactionLayer)和数据链路层(DataLinkLayer)的一些基本概念。这篇文章来继续聊一聊PCIe总线的最底层——物理层(PhysicalLayer)。在PCIeSpec中,物理层是被分为两个部分单独介绍的,分别是物理层逻辑子层和物理层电气子层,其中后者一般......
  • PCIe扫盲——PCIe总线数据链路层入门
    前面的文章介绍过,数据链路层(DataLinkLayer)主要进行链路管理(LinkManagement)、TLP错误检测,FlowControl和Link功耗管理。数据链路层不仅可以转发来自事务层的包(TLP),还可以直接向另一个相邻设备的数据链路层直接发送DLLP,比如应用于FlowControl和Ack/Nak的DLLP。如下图所示:数据......
  • Solidity知识扫盲
    1.private和public区别?private:只能在合约内部访问,有助于保护合约的内部逻辑和数据public:内外部都可以访问调用2.枚举:表示具有固定取值范围的变量定义:enumColor{Red,Green,Blue}使用:ColormyColor=Color.Red3.常用修饰符public:公有private:私有view/constant:函......
  • PCIe基础篇——PCIe传输速率计算
    本节概述传输速率与带宽对应表如下,注:此表为全双工通信速率且没考虑编码方式详细说明我们在接触PCIe设备时会接触到一个词,传输速率,比如8GT/s。或者有人问你设备的带宽多少?通信速率多少?Width(带宽):通常用x1、x2、x4、x8等表示,表示该链路由几条lane组成。Speed(速率):通常用2.5GT/s......
  • PCIe扫盲——PCIe总线事务层入门(二)
    前面的文章介绍了TLP的几种类型以及TLP的包结构。这篇文章来详细地聊一聊Non-PostedTransaction(包括OrdinaryRead、LockedRead和IO/ConfigurationWrites)与PostedWrites(包括MemoryWrites和MessageWrites)。TLP是由硬件产生的,不与上层软件有关系Non-PostedTransactionO......
  • PCIe基础篇——Switch Bridge Root Complex EndPoint
    先上一张图PCIe拓扑特征:图的顶部是一个CPU。这里要说明的一点是,CPU被认为是PCle层次结构的顶层。PCle只允许简单的树结构,这意味着不允许循环或其他复杂的拓扑结构。这样做是为了保持与PCI软件的向后兼容性,PCI软件使用一个简单的配置方案来跟踪拓扑,不支持复杂的环境。为了保持这......
  • PCIe扫盲——PCIe总线事务层入门(一)
    在介绍事务层之前,首先简单地了解一下PCIe总线的通信机制。假设某个设备要对另一个设备进行读取数据的操作,首先这个设备(称之为Requester)需要向另一个设备发送一个Request,然后另一个设备(称之为Completer)通过CompletionPacket返回数据或者错误信息。在PCIeSpec中,规定了四种类型的......
  • AD DA收发卡 设计资料:611-基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡
    一、板卡概述基于XCVU9P的5GspsADDA收发PCIe板卡。该板卡要求符合PCIe3.0标准,包含一片XCVU9P-2FLGA2014I、2组64-bit/8GBDDR4、2路高速AD,2路高速DA,支持外触发,外时钟。板卡工作温度范围0到60℃,板卡设计加工包含散热装置,支持服务器风冷散热。软件包括接口测试软件,支持甲......
  • PCIe扫盲——PCIe总线体系结构入门
    和很多的串行传输协议一样,一个完整的PCIe体系结构包括应用层、事务层(TransactionLayer)、数据链路层(DataLinkLayer)和物理层(PhysicalLayer)。其中,应用层并不是PCIeSpec所规定的内容,完全由用户根据自己的需求进行设计,另外三层都是PCIeSpec明确规范的,并要求设计者严格遵循的。......