前面的文章中介绍过,每一个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)都是可选的。

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

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

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

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

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

pcie 的function_PCIe扫盲——BDF与配置空间相关推荐

  1. pci配置基地址_PCI/PCIe基础——配置空间

    简介 PCI/PCIe设备有自己的独立地址空间,这部分空间会映射到整个系统的地址空间. 映射地址在BIOS/UEFI下指定(如果有的话,对于使用非BIOS启动的OS,不清楚),它有两种类型,一种是MM ...

  2. PCI Express解析——系列文章【5】:PCIe原理分析之——PCI Express 配置解析(BDF、BAR)、 MEM Read举例

    PCI Express解析--系列文章[5]:PCIe原理分析之--PCI Express 配置解析BDF.BAR. MEM Read举例 2.5 Memory Read举例 (1)事务层TLP包准备 ...

  3. PCIe | 基础知识点扫盲

    本文总结 lspci 相关的知识点 1' 2' 3' 4' 5' 6. 本文的内容主要源自互联网技术博客及 SSDfans 网站 7. 持续更新中 - Update: 2023 / 1 / 23 PC ...

  4. PCIe ECAM机制访问PCIE的配置空间

    1.PCIe ECAM机制 PCI Express Enhanced Configuration Access Mechanism (ECAM)是访问PCIe配置空间的一种机制.是将PCIe的配置空间 ...

  5. 7.PCIE配置空间读写软件

    软件-7.PCIE配置空间读写 软件-7.PCIE配置空间读写 软件-7.PCIE配置空间读写 软件读写配置空间 驱动层接口 原理分析 驱动层代码接口 驱动层接口与原理 相关参考 基础知识 raw_p ...

  6. PCIe学习笔记之pcie结构和配置空间

    PCIe概述 PCI Express,是计算机总线PCI的一种,它沿用现有的PCI编程概念及通信标准,但建基于更快的串行通信系统. PCIE总线使用的是高速差分总线,并采用端到端的连接方式, 现在的高 ...

  7. PCIE设备访问及其配置空间

    早期的PCI时期,系统为每个PCI设备分配的内存大小仅有256个Bytes.到后来的PCIE时期,随着设备性能增强,PCIE设备的配置空间扩展至4K个Bytes.在这里需要注意: PCIE一共支持25 ...

  8. PCIe配置空间和PCI设备中的寄存器

    1.访问PCI配置空间,PCI基本配置空间的读写使用下列函数: 原型定义在<linux/pci.h> int pci_read_config_byte(struct pci_dev *pd ...

  9. PowerPC下PCI、PCI-E设备的配置空间

    PCI总线规定访问配置空间的总线事务,称为配置读写事务.不同于存储访问事务使用存储地址访问,而是使用ID号来寻址访问PCI配置空间. PCI设备的ID号由总线号(BUS NUMBER).设备号(DEV ...

最新文章

  1. 用计算机计算电力系统故障,用计算机计算电力系统故障的方法.ppt
  2. Hibernate5-一对多双向关联-迫切左外连接-HQL
  3. 2019年9月全国程序员工资统计,看看你拖后腿了吗?
  4. visual studio配置opencv
  5. 支持多浏览器高拍仪开发控件
  6. C++中指针优点与线程中指针变量访问
  7. 东芝打印机共享怎么设置_理光打印机共享怎么设置?
  8. 机器学习项目-金融反欺诈模型
  9. 计算机桌面文件删除不掉是怎么了,如何解决电脑桌面文件无法删除问题
  10. netware 6.5的故障解决
  11. 真假蜘蛛识别php,真假百度蜘蛛IP识别终极技巧:一学就会!
  12. fortigate防火墙虚拟机版本的使用
  13. JavaScript实现猜数字游戏(猜一位和四位数字)
  14. 概率复习 第一章 基本概念
  15. 论文格式之编辑页眉页码
  16. CSS基础(6)- 属性值的计算过程
  17. php 读取excel中的内容到mysql 数据库
  18. 中国计算机学会推荐国际学术期刊
  19. 5-7万资金,可以创业吗?
  20. ubuntu安装pinfi及其实操记录

热门文章

  1. review what i studied `date` - 2017-3-31
  2. 32位PLSQL Developer无法登录Oracle 11g 64位
  3. 网络配置 rpm yum
  4. Android listview addHeaderView 和 addFooterView 详解
  5. War-Driving(战争驾驶***)
  6. CentOS安装Nagios网络监视工具
  7. [转]T4模版引擎之基础入门
  8. 在Eclipse中查看JDK类库的源代码
  9. 毕业多年,我们转变了多少?
  10. 数据科学家 数据工程师_数据科学家应该对数据进行版本控制的4个理由