PCIe 规范核心知识线介绍

0,总体Topology

x86 处理器系统中 PCIe的拓扑结构:

PCIe Switch的总体结构

1,PCIe 枚举

BIOS 负责枚举与分派配置设备的 BusID[7:0] : DeviceID[4:0] : FunctionID[2:0];

cpu先识别 Host-PCI-Bridge,其下是Bus0;

在Host-PCI-Bridge 的Bus0下会链接几个固定的 Virtual P2P 节点,CPU出厂前就定义完了,融合在 CPU 的 RootComplex中,类似集成了几个以前的pci桥。

第一个 Virtual下边是Bus1,Bus1下可以链接一个EP或者也给PCIe-SWITCH,内含多个 Virtual P2P,每个P2P都可以延伸出一条 Bus,每个Bus下面要么挂一个EP,要么挂一个PCIe-SWITH,l来衍生出更多Bus。

cpu通过挨家挨户虚拟敲门的方式来探测BUS和其下之设备或总线的存在的可能性。

探测存在后,cpu在根据策略来分配 BUS-id,Device-id,Function-id等,通过配置事务传递对应的PCIe实体,它们会记住自己的id。

这是一个深度优先的过程。

下边是一个分配好配置信息的Xilin的FPGA板卡的信息,使用TeleScanPE软件在Linux上采集了内核的相关的PCIe信息。

2,PCIe 设备 Type0 配置空间

作用:用于EP的描述,每个PCIe的设备的每个Function包含一个Type0的配置空间。

读了Type0的值之后,便可以知道这个设备的功能的类属:网卡,显卡,声卡,。。。这由PCI-SIG来分类定义,参考规范:

《PCI Local Bus Specification Revision 3.0》

《PCI Code and ID Assignment Specification》

必须由RC来读写 Function的 Type0的寄存器。

其配置寄存器信息如下,每个Function 对应一张这样的寄存器        空间表:

还有256 Bytes 之后的扩展配置空间,可以加入一些产品个性化的配置信息:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/42217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派学习笔记18:IIC驱动_PCA9685(16路舵机驱动模块)误发

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi) 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3: ​ IIC驱动_PCA9685(16路舵机驱动模块) 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 开启树莓…

什么是 HTTP POST 请求?初学者指南与示范

在现代网络开发领域,理解并应用 HTTP 请求 方法是基本的要求,其中 "POST" 方法扮演着关键角色。 理解 POST 方法 POST 方法属于 HTTP 协议的一部分,主旨在于向服务器发送数据以执行资源的创建或更新。它与 GET 方法区分开来&…

尚硅谷 一 JS简介

一 JS简介 1.1 JS起源 Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要…

vue3+vue-router+vite 实现动态路由

文章中出现的代码是演示版本,仅供参考,实际的业务需求会更加复杂 什么是动态路由 什么场景会用到动态路由 举一个最常见的例子,比如说我们要开发一个后台管理系统,一般来说后台管理系统都会分角色登录,这个时候也就涉…

第4章 课程发布:模块需求分析,课程预览(模板引擎 静态页面),课程审核,课程发布(分布式事务,页面静态化:熔断降级),课程搜索(es索引)

1 模块需求分析 1.1 模块介绍 课程信息编辑完毕即可发布课程,发布课程相当于一个确认操作,课程发布后学习者在网站可以搜索到课程,然后查看课程的详细信息,进一步选课、支付、在线学习。 下边是课程编辑与发布的整体流程&#…

一.2.(1)双极型晶体三极管的结构、工作原理、特性曲线及主要参数

1.双极型晶体三极管的结构 学会区分P管和N管,会绘制符号 2.工作原理 无论是PNP 还是NPN,本质上放大时,都是发射结正偏,集电极反偏。(可以简单理解为pn为二极管,每个三极管都有两个二极管) 其中电…

前端面试题22(js中sort常见的用法)

JavaScript 的 sort() 方法是数组的一个非常强大的功能,用于对数组的元素进行排序。这个方法直接修改原数组,并返回排序后的数组。sort() 的默认行为是将数组元素转换为字符串,然后按照字符串的 Unicode 字典顺序进行排序。这意味着如果你试图…

Linux内存管理--系列文章柒——硬件架构

一、引子 之前文章讲解的是系统的虚拟内存,本章讲述这些硬件的架构和系统怎样统一管理这些硬件的。 二、物理内存模型 物理内存模型描述了计算机系统中的物理内存如何由操作系统组织和管理。它定义了物理内存如何划分为单元,如何寻址这些单元以及如何…

powershell美化工具Oh My Posh安装教程

1. 安装Oh My Posh 进入Oh My Posh官网,可根据不同平台进行下载 windows下可以直接在微软商店下载 2. 安装Nerd Fonts字体 进入Nerd Fonts官网,选择自己喜欢的字体下载解压后,全选所有文件,右键选择安装即可(忽略LICEN…

ARM_Linux驱动开发——字符设备驱动开发(上)

目录 一、Linux驱动开发思维 二、Linux驱动开发分类 三、“ ARM_Linux驱动开发——字符设备驱动开发 ” 字符设备驱动简介 前言 在分享Linux驱动开发之前,我想带大家首先回顾一下裸机驱动开发和Linux驱动开发的区别。 1、运行环境和操作系统: 裸机驱…

Apache Seata 高可用部署实践

本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 Apache Seata 高可用部署实践 Seata 高可用部署实践 使用配置中心和数据库来实现 Seata 的高…

使用Spring Boot和自定义缓存注解优化应用性能

在现代应用开发中,缓存是提高系统性能和响应速度的关键技术之一。Spring Boot提供了强大的缓存支持,但有时我们需要更灵活的缓存控制。本文将介绍如何使用Spring Boot和自定义缓存注解来优化应用性能。 1. 为什么需要自定义缓存注解? Sprin…

AI算力革命:GPU租赁与算力市场的未来趋势

在数字化和智能化的时代背景下,人工智能(AI)的快速发展已成为全球科技领域的焦点。AI算力作为支撑其发展的关键因素,正以前所未有的速度改变着我们的生活和工作方式。其中,GPU租赁模式的兴起,不仅解决了AI算…

ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor

如果希望使用ASP.NET Core创建新的 Web 应用程序,应该选择哪种方法?Razor Pages还是 MVC(模型-视图-控制器),又或者使用Web API Vue/React/......。 每种方法都有各自的优点和缺点。 什么是 MVC? 大多数服…

轻松设置:服务器域名配置全攻略

目录 前置条件 在阅读本篇内容之前,请先确保以下物料已准备好: 一台公网服务器,服务正常运行申请完成的域名,在对应域名服务商后台正常DNS解析域名备案完成可选条件:有https访问请求时,需要申请SSL证书 …

微信小程序的“小鱼在乎”日程计划系统-计算机毕业设计源码51307

摘要 本文介绍了一种基于微信小程序和Spring Boot后端服务的“小鱼在乎”日程计划系统。该系统结合了前端微信小程序的便捷交互与后端Spring Boot框架的稳健性能,为用户提供了一款功能全面、体验出色的日程管理工具。 “小鱼在乎”日程计划系统涵盖了多种功能&#…

DNS正向解析与反向解析实验

正向解析 安装bind软件 [rootlocalhost ~]# dnf install bind bind-utils -y修改主配置文件/etc/named.conf [rootlocalhost ~]# vim /etc/named.conf重启DNS服务(named) [rootlocalhost ~]# systemctl restart named编辑数据配置文件。在/var/named…

Opencv的基本操作(一)图像的读取显示存储及几何图形的绘制

文件的读取、显示、存取 cv2.imread(imagepath,IMREAD.xxx) 读取图像cv2.imshow(窗口名称,mat图片) 显示图像cv2.imwrite(保存的位置,img) 保存图像 # 1. 读取图像 原始图片路径,图片读取模式 cv2.imread(imagepath,IMREAD.xxx)cv2.IMREAD_COLOR 彩色模式读取 cv2…

Gemini for China 大更新,现已上架 Android APP!

官网:https://gemini.fostmar.online/ Android APP:https://gemini.fostmar.online/gemini_1.0.apk 一、Android APP 如果是 Android 设备,则会直接识别到并给下载链接。PC 直接对话即可。 二、聊天记录 现在 Gemini for China&#xff…

【论文笔记】UniST:通用预训练城市时空预测模型

目录 写在前面1. 通用时空模型的挑战与能力特性2. 构建通用时空模型UniST2.1 大规模时空预训练2.2 时空知识规则引导提示学习 3. UniST的实验与分析3.1 模型预测效果3.2其他实验分析 写在前面 文章标题:UniST: A Prompt-Empowered Universal Model for Urban Spati…