PCIe 热插拔原理

科技   2024-09-30 14:27   江苏  

1. 插槽结构图

根据CEM标准,PCIe add-in card有两个用于热插拔机制的边带信号,分别是PRSNT1#PRSNT2#,这两个信号是直接连接在一起的,且这两根信号的金手指长度要比其他的信号的金手指长度要短一点。而在system board connector(俗称插槽)上,PRSNT1#被固定接地,PRSNT2#则被弱上拉(PULL-UP)。如下图所示,当PCIe卡设备未被完全插入插槽时,插槽的PRSNT2#信号由于上拉的作用,将一直处于高电平状态。当PCIe卡设备被完全插入插槽后,插槽上的PRSNT2#信号则会被PCIe卡设备的短路线连接到地,从而使得其变为低电平。hot plug control logic检测到PRSNT2#从高电平跳变到低电平,则会通知downstream port发现presence detect 事件,downstream port会发送中断消息给RC,通知系统软件有设设备插入。

2. 热插拔基本原理
支持热插拔的Switch downstream port(简称dsp)的PCI Express Capability Structure必须实现slot control Register Slot Status Register。当存在endpoint插入或者拔出时,dsp 的硬件逻辑会更新相关的状态寄存器。例如,endpoint插入和拔出时,Slot Status Register中的Data Link Layer State Changed会置1(因为 the Data Link Layer Link Active bit of the Link Status Register发生了变化)

Switch内部存在专门管理热插拔的模块(Hot Plug Control Module),可以通过监控Slot Status Register 检测到如下hot plug事件的发生:

Power Fault Detected

MRL Sensor Changed

Presence Detect Changed

Command Completed

Attention Button Pressed

Data Link Layer State Changed

当检测到hot plug事件发生时,且slot control使能信号为1时,当前dsp发出中断消息通知host发生了hot plug事件。中断消息通常是通过MSIX 或者MSI中断发送的。因为并且其他事件(例如功耗事件)也能触发中断消息,

因此系统软件收到中断时,会通过配置请求(cfgrd)读取DSP的状态寄存器,从而判断得出中断的具体原因。

例如通过读dspLink Status RegisterSlot Status Register就能知道是否存在endpoint的插入和拔出。


• Link Status Register的Data Link Layer Link Active bit 为1 且 Slot Status Register的Data Link Layer State Changed 为1 ,则表示有endpoint插入slot

•Link Status Register的Data Link Layer Link Active bit 为0 且 Slot Status Register的Data Link Layer State Changed 为1 ,则表示有endpoint拔出slot

3. 参考文档

[1]PCI Express® Base Specification Revision 6.2

[2]PCI Express Card Electromechanical Specification Revision 4.0, Version 1.0 


本文内容仅代表作者观点,不代表平台观点。

如有任何异议,欢迎联系我们。

如有侵权,请联系删除。


往期精彩回顾





2021年的第一场雪!英特尔2020年Q4财报解读



利用硬件辅助验证工具加速功能仿真


博文:裸片尺寸和光罩难题——光刻扫描仪吞吐量的成本模型


博文速递:Race condition in digital circuits



IP与SoC设计
《IP 与SoC》依托无锡国家“芯火”平台,全面报道全球IP与SoC设计技术的发展和国内外应用经验,为中国IC设计行业搭建一个IP与SoC资讯交流、产业促进的平台,为中国IC设计行业提供IP与SoC专业知识及相关信息支持和服务。
 最新文章