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

news/2025/1/3 5:59:42/

目录

  • 前言
  • 一、概述
  • 二、原理详解
    • 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.ppmy.cn/news/63735.html

相关文章

OpenAI ChatGPT Unity接入

OpenAI ChatGPT Unity接入 OpenAI ChatGPT Unity接入OpenAi-API-Unity 方法OpenAi-API-Unity 下载本地配置Unity 模块URL接入gz 接入json 接入Open AIOpenAi-Api-Unity 插件文档 OpenAi 本地化接入 Unity 方法Unity 关键字识别语音合成 & 文字转语音音频记录 & 实时音频…

JavaScript 进阶知识点概述

目录 第一部分: 垃圾回收 1. 什么是垃圾回收? 2. JavaScript 的垃圾回收机制 3. 新生代和老生代的概念 4. 垃圾回收算法和策略 第二部分: 事件循环 5. 什么是事件循环? 6. 宏任务和微任务 7. Event Loop 的执行顺序 8. 避免阻塞 GUI 线程的 Jav…

系统移植——linux内核移植——分析内核编译过程

uImage镜像文件 1.进入linux内核源码目录 ubuntuubuntu:~$ cd FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61/ 打开Makefile文件 vi Makefile 搜索include 因为 $(SRCARCH)->arm 所以上述指令为 arch/arm/Makefile 2.进入linux内核源码目录下,arch/arm目录下…

Kafka的概念|架构|搭建|查看命令

Kafka的概念|架构|搭建|查看命令 一 Kafka 概述二 使用消息队列的好处三Kafka 定义3.1Kafka 简介3.2Kafka 的特性3.3 Kafka 系统架构3.4 Partation 数据路由规则 四 kafka的架构五 搭建kafka5.1环境准备5.2安装kafka5.3 修改配置文件5.4 编辑其他二台虚拟机的配置文件5.5 编辑三…

CA OpenSSL自签名证书(服务器/客户端)

参考文章 https://juejin.cn/post/7092789498823573518 https://blog.csdn.net/mengting2040/article/details/120001810 目录 使用 OpenSSL 生成证书创建根证书创建 Root Pair创建 Root Key创建 Root Crt 创建服务器端证书创建服务器端keyip需要换成自己服务器的外网ip地址&am…

Oracle限制单个用户的并发连接数

Oracle限制单个用户的并发连接数 开启RESOURCE_LIMIT参数查看对用户的资源限制限制用户的并发连接数 开启RESOURCE_LIMIT参数 检查资源限制是否开启: SQL> show parameter resource_limitNAME TYPE VALUE ---- ---- ----- resource_limit boolean TRUE这个参数…

前端三剑客 HTML+CSS+JS

文章目录 一、HTML1.1 基础标签1.2 列表1.3 表格1.4 表单 二、CSS2.1 引入方式2.2 CSS 选择器2.2.1 基本选择器2.2.2 组合选择器 2.3 常用属性2.3.1 背景2.3.2 文本2.3.3 字体2.3.4 display元素类型2.3.5 浮动2.3.6 盒子模型 三、JavaScript3.1 引入方式3.2 数据类型3.2.1 数组…

【Android取证篇】Android设备USB调试打开方式(开发者模式)

【Android取证篇】Android设备USB调试打开方式(开发者模式) Android各个版本系统手机开启”USB调试”的入口不全相同,仅供参考—【蘇小沐】 1、【Android1.0-3.2】 路径:在应用列表选择「设置」->「应用程序」->「开发」->勾选「USB调试」选…