PCIe热插拔机制(详细)总结-PCIe专题知识(五)

news2024/12/23 8:09:24

目录

  • 前言
  • 一、概述
  • 二、原理详解
    • 2.1 热插拔原理总结
    • 2.2 热插拔软硬件要求
  • 三、其他相关知识链接
    • 1、PCIe物理层总结-PCIE专题知识(一)
    • 2、PCIe数据链路层图文总结-PCIe专题知识(二)
    • 3、PCIe物理层链路训练和初始化总结-PCIe专题知识(三)
    • 4、PCIe物理层弹性缓存机制解析-PCIe专题知识(四)
    • 5、PCI总线及发展历程总结

前言

本文主要讲述PCIe热插拔机制,通过图形方式方便读者快速掌握。

一、概述

如果在PCIe设备不支持热插拔的条件下,在不断电的情况下插拔一块PCIe SSD时,很可能会对主板或PCIe插槽造成损毁。
为了防止意外的发生,PCIe Spec设计了一种"No Surprise"热插拔机制,即,当用户要插拔PCIe设备时,必须先通知系统软件做好准备,然后通过指示灯告知用户热插拔的状态。

二、原理详解

2.1 热插拔原理总结

PCIe总线的热插拔主要指的是PCIe卡设备的热插拔以及相关的实现机制等。
如图所示,上方部分PCIe卡有两个用于热插拔机制的引脚——PRSNT1#和PRSNT2#。PCIe卡设备上的这两个信号之间是短路的,下方部分PCIe插槽的PRSNT1#被固定地连接到地,PRSNT2#则被上拉。且PCIe卡上的这两个信号的金手指长度要比其他的信号的金手指长度要短一点。当PCIe卡设备未被完全插入插槽时,插槽的PRSNT2#信号由于上拉的作用,将一直处于高电平状态。当PCIe卡设备被完全插入插槽后,PRSNT1#与插槽上接地的PRSNT1#连接,同时插槽上的PRSNT2#信号则会被PCIe卡设备的短路线连接到地,从而使得其变为低电平。换句话说,从插槽的角度看,当PRSNT2#位高电平时,则认为PCIe卡设备未能正确插入或者无PCIe卡设备;当PRSNT2#位低电平时,表明PCIe卡设备被正确地插入插槽中。

在这里插入图片描述

2.2 热插拔软硬件要求

热插拔不仅仅是硬件的事,其需要软硬件协同实现。要想实现热插拔功能,操作系统、主板热插拔驱动器、PCIe卡设备驱动以及PCIe卡硬件功能都必须支持热插拔,缺一不可。从PCIe卡设备硬件功能的角度来看,其需要支持Quiesce命令、Pause命令(可选)、Start命令和Resume命令。
PCIe环境下的热插拔需要软件与硬件的通力合作。红色框内属于软件方面的需求,绿色框内是硬件方面的需求。

软件方面主要包括:
1、User Interface: 这部分由系统OS提供。主要允许用户可以请求插拔PCIe设备。
2、Hot-Plug Service: 这部分也是由系统OS提供。主要负责处理用户插拔PCIe设备的请求。
3、Standardized Hot Plug System Driver: 这部分驱动可以由系统OS或者主板提供。
4、Device Driver: 这部分主要有适配卡提供。

硬件方面主要包括:
1、Hot-Plug Controller: 主要负责接收和处理来自Hot Plug System Driver的指令。
2、Card Slot Power Switching Logic: 主要被Hot Plug Controller控制,用于turn-on/off电源。
3、Card Reset Logic: 按照Hot-plug System Driver的指示,Hot Plug Controller向需要插拔PCIe设备的插槽(Slot)传送PERST#信号。
4、Power Indicator: 主要负责指示设备连接器上面的电源状态。
5、Attention Indicator: 这个是警示灯,提醒用户热插拔失败状态,所以一般情况下处于关闭状态。
6、Card Present Detect Pins: PCIe设计了两个用于检测PCIe设备是否存在的信号PRSNT1#和PRSNT2#。 PRSNT#1接地,当PCIe设备存在时,PRSNT#2拉高。

在这里插入图片描述

桥设备(Switch等)中还需要支持热插拔控制器(Hot Plug Controller)。

在这里插入图片描述

注:PCIe总线除了有一个Base Spec之外,还有一个关于PCIe卡设备的Spec——PCIe Card ElectroMechanical Spec(CEM)。
与PCI总线不同,PCIe总线采用的是点到点的连接(Point-to-Point Connections),因此其并不像PCI总线那样需要用于卡设备的隔离逻辑(Isolation Logic),但是每个端口(桥设备中的,如Root和Switch)都必须包含一个独立的热插拔控制器(Hot Plug Controller),如下图所示:

在这里插入图片描述

配置空间中,与热插拔相关的寄存器如下图所示:
在这里插入图片描述

三、其他相关知识链接

1、PCIe物理层总结-PCIE专题知识(一)

2、PCIe数据链路层图文总结-PCIe专题知识(二)

3、PCIe物理层链路训练和初始化总结-PCIe专题知识(三)

4、PCIe物理层弹性缓存机制解析-PCIe专题知识(四)

5、PCI总线及发展历程总结

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

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

相关文章

macOS Ventura 13.4 RC(22F62)发布

系统介绍 5 月 10 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.4 RC 更新(内部版本号:22F62),本次更新距离上次发布隔了 49 天。 macOS Ventura 带来了台前调度、连续互通相机、FaceTime 通话接力等功能。其中&a…

工程化:vite4和vue3里面的命令式loading的封装及使用

用习惯了vue的组件使用方式,转到vue3里面发现没有了vue的原型,不能全局挂载方法了,我们要使用命令式调用组件该怎么做, 效果展示 代码演练 1.组件结构 2.基础的组件模板loading.vue <template><sectionclass="full-loading":class

Java 诊断神器:Arthas

Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类加载信…

SpringBoot【开发实用篇】---- 测试

SpringBoot【开发实用篇】---- 测试 1. 加载测试专用属性2. 加载测试专用配置3. Web环境模拟测试4. 数据层测试回滚5. 测试数据用例设定 说完bean配置相关的内容&#xff0c;下面要对前面讲过的一个知识做加强了&#xff0c;测试。测试是保障程序正确性的唯一屏障&#xff0c;在…

ubuntu重启ssh服务

一、开启ssh服务首先需要安装打开ssh服务的库&#xff1a; sudo apt-get install openssh-server 二、检查当前的ssh开启情况&#xff1a; ps -e |grep ssh 三、如果有sshd&#xff0c;则ssh-server已经启动&#xff1b;若仅有agent&#xff0c;则尚未启动&#xff1b; 开启ssh…

宝塔面板Nginx防火墙安装

宝塔防火墙作用 要让你的网站保持持久的安全和稳定&#xff0c;开启网站防火墙是必不可少的一步。别等到被攻击的时候再去补救&#xff0c;那个时候某种程度来讲&#xff0c;已经晚了。安装和开启防火墙&#xff0c;就是防患于未然。未雨绸缪。最大程度保护好你的云服务器和网站…

JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

1. JSTL 标签库介绍 JSTL 标签库 是指 JSP Standard Tag Library &#xff1a;JSP 标准标签库EL 表达式是为了替换 jsp 中的表达式脚本&#xff0c;JSTL 是为了替换代码脚本。这样 jsp 页面变得更佳简洁JSTL 由五个标签库组成 使用 JSTL&#xff0c;需要导入相关的 jar 包 2…

一文读懂:客户管理系统平台是什么?有什么作用?

“客户管理系统平台是什么&#xff1f;” “客户管理系统平台有什么作用&#xff1f;在哪里可以应用&#xff1f;怎么用&#xff1f;” 经常可以听到企业内部关于客户管理系统平台的这些问题&#xff0c;本文将会为您一一解答&#xff1a; 一、客户管理系统平台是什么 顾名…

远程桌面连接Windows Server,提示“你的远程桌面服务会话已结束,可能是下列原因之一”错误

1、错误描述如下&#xff1a; 2、问题原因 出现该问题可能有以下原因&#xff1a; Windows实例的系统盘无Users用户&#xff0c;您可以参考方案一&#xff1a;添加Users用户修复该问题。 Windows实例的系统盘Users用户无读取和执行、列出文件夹内容、读取权限&#xff0c;您…

python建立字典的方法

在学习 Python的过程中&#xff0c;我们需要用到一些字典类的模块&#xff0c;例如 gdb、 gdtool等&#xff0c;但是这些字典类的模块都是以文件的形式存在。虽然通过 pip等命令也可以进行安装&#xff0c;但是在安装过程中我们需要非常仔细的检查安装包是否正确&#xff0c;以…

03FPGA—led灯的显示(入门)

学习fpga也有段时间了&#xff0c;但后台有几个朋友问我能不能分享一点简单入门例子&#xff0c;于是我打算发经典的如何控制led的例子,本文主要分享设计流程以及简单的verilog语法。 设计流程主要包括五个步骤模块设计、波形设计、编写rtl代码、仿真验证、上板验证&#xff0c…

Windows编程资源,菜单资源,图标资源,光标资源,上下文菜单,字符串资源,加速键资源

Windows资源是一种二进制数据&#xff0c;由链接器链接进程序成为程序的一部分&#xff0c;通过资源的方式可以很方便的对应用程序进行扩展。在Windows中资源可以是系统自定义的&#xff0c;也可以是用户自定义的。在本篇文章中为大家讲解菜单资源&#xff0c;上下文菜单&#…

【LeetCode】617. 合并二叉树

1.问题 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xff1a;如果两个节点重…

Win11系统更新后网络速度变的很慢怎么办?

Win11系统更新后网络速度变的很慢怎么办&#xff1f;有用户将自己的电脑系统升级到了Win11之后&#xff0c;出现了一些问题。电脑在使用中出现了网络速度变慢的情况。而且其它的设备在连接网络后速度是正常的&#xff0c;那么这个问题要怎么解决&#xff1f;来看看以下的方法分…

SpringBoot+RXTXcomm实现Java串口通信 读取串口数据以及发送数据

记录一下使用SpringBootRXTXcomm实现Java串口通信&#xff0c;使用Java语言开发串口&#xff0c;对串口进行读写操作。 RXTXcomm.jar这个包支持的系统较多&#xff0c;但是更新太慢&#xff0c;在win系统下使用没有问题&#xff0c;但是在centos的工控机系统里使用读取和发送有…

vmstat 粗查系统判断瓶颈

vmstat 1 5 每 1 秒显示一次 &#xff0c; 一共显示 5 次后结束 memory 内存 swap 虚拟磁盘&#xff0c;交换分区 io 磁盘 system 系统进程 rrun 多少个进程在跑&#xff0c;包括在排队等待cpu处理的进程b block 多少个进程处于卡死状态。 除CPU外的资源如网络、…

视频播放方案

video插件播放m3u8格式视频(存原生) 这里使用原生的javascript实现m3u8格式视频播放。 使用了包括video.min.js库和HLS插件。 1-基础使用 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Video.js HLS Example</title…

MYSQL高级语句

实验用表 create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert into location values(West,Los Angeles); insert into location values(West,Houston); location…

如何解决请求参数为JSON时,采用IO流读取,只能请求一次的问题?

如何解决请求参数为JSON时&#xff0c;采用IO流读取&#xff0c;只能请求一次的问题&#xff1f; 一、错误演示1. 创建项目&#xff0c;添加所需依赖2. 配置redis环境3. 写一个简单的测试请求4. 写一个拦截器&#xff0c;拦截请求5. WebConfig 注册拦截器6. 测试请求 二、问题解…

vue问题

一、路由 hash模式&#xff08;location.hash hashchange 事件&#xff09; hash 模式的实现方式就是通过监听 URL 中的 hash 部分的变化&#xff0c;触发haschange事件&#xff0c;页面做出不同的响应。但是 hash 模式下&#xff0c;URL 中会带有 #&#xff0c;不太美观。 h…