news 2026/6/14 22:56:48

PCIe | 辅助信号与复位机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PCIe | 辅助信号与复位机制

注:本文为 “PCIe 复位机制” 相关合辑。
图片清晰度受引文原图所限。
略作重排,未整理去重。
如有内容异常,请看原文。


PCIe 板卡辅助信号解析

业余程序员 plus 原创于 2024-08-15 20:57:31 发布

1. 简介

PCIe 扩展卡可依托 PCIe 插槽配置的辅助信号,实现系统唤醒、复位、调试、热插拔等各类系统功能。常用辅助信号包含REFCLK-/REFCLK+PERST#WAKE#SMBCLKSMBDATJTAGCLKREQ#PRSNT1#PRSNT2#,各信号功能说明如下:

  1. REFCLK-/REFCLK+:属于低压差分信号,主板输出的REFCLK信号需符合 PCIe 相关规范要求。
  2. PERST#:用于完成 PCIe 设备复位,同时标识系统主电源达到稳定状态的时长。
  3. WAKE#:由 PCIe 设备驱动,向主机发送唤醒相关信号。主机检测到该信号后,向设备供给主电源与参考时钟,完成 PCIe 链路激活。该信号可结合 OBFF 机制使用,主机可通过WAKE#调整设备缓冲区工作模式,例如缓冲区刷新、数据填充。设备可在无数据收发需求时进入低功耗模式,收到指令后快速唤醒并处理数据。
  4. CLKREQ#:由 PCIe 设备驱动,用于向主机申请参考时钟,保障 PCIe 接口完成数据收发。当设备进入 L1 PM Substates 状态时,CLKREQ#置高,参考时钟停止输出,PCIe 链路进入静默状态;主机或设备将CLKREQ#置低后,设备退出 L1 PM Substates 状态。
  5. SMBCLK:为 SMBus 总线提供时钟信号。
  6. SMBDAT:为 SMBus 总线提供数据信号。
  7. JTAGTRST#TCLKTDITDOTMS):引脚遵循 IEEE Standard 1149.1 定义的测试端口与边界扫描架构,PCIe 设备可选择性配置该接口。
  8. PRSNT1#PRSNT2#:用于实现 PCIe 板卡的热插拔检测。

下文针对REFCLK-/REFCLK+PERST#WAKE#三类信号展开分析。

2. REFCLK-/REFCLK+

参考时钟采用低压摆幅差分架构,可降低信号抖动,同时适配新一代硬件制造工艺。该信号单端标称摆幅为0 V ∼ 0.7 V 0\ \text{V} \sim 0.7\ \text{V}0V0.7V,工作频率为100 MHz ± 300 PPM 100\ \text{MHz} \pm 300\ \text{PPM}100MHz±300PPM

主板上各连接器对应的参考时钟采用点对点布线设计,单段布线长度不超过15 1515英寸(38.1 38.138.1厘米)。信号接收端处,数据与时钟的传输时延偏差需小于12 ns 12\ \text{ns}12ns。受时钟信号最大失配、传输通道最大长度共同影响,系统整体时延偏差区间约为9 ns ∼ 10 ns 9\ \text{ns} \sim 10\ \text{ns}9ns10ns。时钟源至连接器的路径中,REFCLK-REFCLK+两条差分信号线的长度偏差需小于0.005 0.0050.005英寸(0.0127 0.01270.0127厘米)。布线阶段需将该组信号线与其他非时钟线路保持合理间距,抑制信号串扰。

3. PERST#

PERST#用于判定电源电压是否处于规范允许范围且状态稳定,在电源稳定后,该信号同步完成 PCIe 设备状态机及其他逻辑电路的初始化操作。

3.1 ACPI 电源状态

PERST#的电平变化通常与系统电源状态联动,本节先介绍 ACPI 电源状态体系。ACPI 规范定义多类电源状态,用于实现操作系统与硬件之间的电源管理协同。状态划分为全局状态、系统状态、设备状态、处理器状态四大类,各类常见状态说明如下表所示:

类别状态描述
全局状态G0 (S0)设备正常运行,满功率工作
全局状态G1睡眠状态,包含 S1、S2、S3、S4 子状态
全局状态G2 / S5系统停机,硬件保留部分供电
全局状态G3物理断电,整机无供电
系统状态S0系统完全启动并运行
系统状态S1处理器暂停运算,唤醒速度较快
系统状态S2处理器关闭,硬件功耗进一步降低,唤醒较快
系统状态S3标准睡眠模式,运行数据暂存至内存
系统状态S4休眠模式,运行数据暂存至存储介质
系统状态S5系统关闭,部分硬件模块维持供电
设备状态D0设备完全上电工作
设备状态D1, D2分级休眠状态,可保留部分运行上下文
设备状态D3设备主回路断电,保留待机供电
处理器状态C0处理器满负荷运行
处理器状态C1轻度休眠,停止指令执行,恢复速度快
处理器状态C2中度休眠,关闭部分硬件模块,恢复速度放缓
处理器状态C3深度休眠,可关闭处理器缓存,恢复耗时更长

3.2 Initial Power Up (G3 to S0)

下图为 PCIe 板卡从上电至稳定运行阶段,辅助信号、电源、PCIe 链路的时序关系。部分时序参数在 CEM 规范中有明确定义,对应数值将逐一标注。

工作流程如下:

  1. 若系统与 PCIe 板卡支持3.3 Vaux 3.3\ \text{Vaux}3.3Vaux辅助电源,优先完成该路电源上电,此阶段PERST#可保持低电平或高电平。
  2. 3.3 Vaux 3.3\ \text{Vaux}3.3Vaux辅助电源稳定后,主机将PERST#置低,令 PCIe 设备进入复位状态。
  3. 3.3 Vaux 3.3\ \text{Vaux}3.3Vaux辅助电源稳定后,经过延时 1,SMBus 总线开始工作。设备无3.3 Vaux 3.3\ \text{Vaux}3.3Vaux供电时,计时起点改为3.3 V 3.3\ \text{V}3.3V/12 V 12\ \text{V}12V主电源稳定时刻。
  4. 3.3 V 3.3\ \text{V}3.3V/12 V 12\ \text{V}12V主电源稳定后,经过延时参数TPVPERL \text{TPVPERL}TPVPERL(取值100 ms 100\ \text{ms}100ms),将PERST#置高。主电源稳定的同时,参考时钟开始输出,参考时钟稳定所需时长为TPERST-CLK \text{TPERST-CLK}TPERST-CLK(取值100 μ s 100\ \mu\text{s}100μs)。据此计算,PERST#低电平持续时长最小值为TPVPERL + TPERST-CLK = 0.1001 s \text{TPVPERL} + \text{TPERST-CLK} = 0.1001\ \text{s}TPVPERL+TPERST-CLK=0.1001s
  5. 参考时钟稳定后,需经过时长 4,PCIe 链路方可正常工作。
  6. 参考时钟稳定后,需经过时长 5,JTAG接口方可正常工作。

设备上电初始阶段,配置空间寄存器内的 Link Control register 中 ASPM Control 位域硬件默认值需设为0 00。该位域仅允许系统 BIOS 或操作系统修改,其余软件无修改权限。

3.3 Power Management States (S0 to S3/S4 to S0)

系统切换至 S3 或 S4 状态前,需先将 PCIe 设备切换至 D3hot 状态,同时将 PCIe 链路设置为 L2 状态。完成上述配置后,插槽主电源与参考时钟停止输出,设备因主电源断开由 D3hot 切换为 D3cold 状态。设备处于 D3cold 状态时,3.3 Vaux 3.3\ \text{Vaux}3.3Vaux辅助电源持续供电。触发唤醒事件后,系统恢复主电源与参考时钟输出,待电源与时钟状态稳定,再将PERST#置高。

完整流程如下:

  1. 系统准备进入 S3/S4 状态前,将 PCIe 链路设置为 L2 静默状态。
  2. 链路进入静默状态并经过时长 1 后,将PERST#置低,设备进入复位状态。
  3. PERST#置低并经过时长 2 后,系统切断插槽主电源与参考时钟,二者进入不稳定状态。
  4. PERST#置低并经过时长 3 后,JTAG接口停止工作,进入静默状态。
  5. 触发唤醒事件后,系统依次恢复主电源、参考时钟输出,经过时长 4,PCIe 设备恢复正常工作。
  6. 系统完成 S0 → S3/S4 → S0 状态切换的全过程中,PERST#低电平持续时长最小值为TPERST \text{TPERST}TPERST,该参数取值为100 μ s 100\ \mu\text{s}100μs

PCIe 设备从 D3cold 状态恢复运行时,配置空间寄存器内的 Link Control register 中 ASPM Control 位域硬件默认值需设为0 00。该位域仅允许系统 BIOS 或操作系统修改,其余软件无修改权限。

3.4 Power Down

结合电压容差要求,CEM 规范划定电源有效判定阈值区间:3.3 V 3.3\ \text{V}3.3V电源、3.3 Vaux 3.3\ \text{Vaux}3.3Vaux辅助电源阈值区间为2.5 V ∼ 3.00 V 2.5\ \text{V} \sim 3.00\ \text{V}2.5V3.00V12 V 12\ \text{V}12V电源阈值区间为9.7 V ∼ 11.04 V 9.7\ \text{V} \sim 11.04\ \text{V}9.7V11.04V。若电源输出电压低于对应阈值,判定电源工作异常,系统执行下电流程。

PCIe 设备下电阶段各信号时序如下:

具体流程:

  1. 插槽主电源断开前,先将 PCIe 链路设置为静默状态,设备切换至 D3hot 状态。
  2. 链路进入静默状态并经过时长 1 后,将PERST#置低,设备进入复位状态。
  3. PERST#置低并经过时长 2 后,插槽主电源开始断电。
  4. PERST#置低并经过时长 3 后,参考时钟停止输出,JTAG接口同步停止工作,时长 3 数值大于时长 2。
  5. 参数TFAIL \text{TFAIL}TFAIL定义异常断电场景下PERST#的低电平保持时长,该参数最大值为500 ns 500\ \text{ns}500ns

4. WAKE#

TODO…

5. 电压参数

6. 时间参数

参考资料

  1. PCI Express® Card Electromechanical Specification Revision 4.0

PCIe 复位机制

概述

PCIe(Peripheral Component Interconnect Express)是高性能点对点串行通信协议,协议定义多类复位机制,用于处理设备异常、链路故障、功能恢复等问题。整体分为传统复位与**函数级复位(FLR)**两大体系;传统复位包含冷复位、暖复位、热复位,其中冷、暖复位合称基础复位,热复位为带内复位。

一、复位体系分类

  1. 传统复位
    早期规范定义,包含冷复位、暖复位、热复位。冷复位、暖复位属于基础复位;热复位属于非基础复位带内复位。基础复位会将设备状态机、硬件逻辑、端口及配置寄存器恢复为默认值,依靠辅电源V a u x V_{aux}Vaux供电的粘性寄存器不受影响。
  2. 函数级复位(FLR)
    PCIe 2.0 新增,为可选功能。可读取 Device Capabilities Register 的 FLR Capability 位(bit 28)判断设备是否支持。

各类复位耗时排序:冷复位> >>暖复位> >>热复位> >>FLR。

二、传统复位

2.1 冷复位(Cold Reset)

2.1.1 触发方式

整机断电重上电、设备主电源上电,也可通过边带信号PERST ‾ \overline{\text{PERST}}PERST配合上电流程触发。

2.1.2 特性与范围

复位等级最高,清空所有由主电源V C C V_{CC}VCC供电的寄存器、硬件逻辑与状态机;粘性寄存器仅在V a u x V_{aux}Vaux完全切断后才会重置,设备完成完整硬件初始化。

2.1.3 应用场景

整机上电、硬重启、硬件重新插拔、顽固故障恢复、固件烧录后初始化。

2.2 暖复位(Warm Reset)

2.2.1 触发方式

设备主电源保持供电,由硬件电路、POWERGOOD \text{POWERGOOD}POWERGOOD信号联动 ICH 生成PERST ‾ \overline{\text{PERST}}PERST信号触发。

2.2.2 特性与范围

属于基础复位,复位效果与冷复位基本一致,设备不断电,粘性寄存器数据保留。

2.2.3 应用场景

系统软重启、平台受控整机复位、固件升级后快速重置。

2.3 基础复位信号:PERST ‾ \overline{\text{PERST}}PERST

PERST ‾ \overline{\text{PERST}}PERST是实现基础复位的硬件边带信号,由 ICH 依据电源状态生成,可管控 PCIe 交换开关、桥设备、终端卡等器件。

上电时序:上电后PERST ‾ \overline{\text{PERST}}PERST拉低执行复位,维持一段时间后拉高释放,不同平台时序略有差异。

硬件通路说明:
终端设备通过金手指接收PERST ‾ \overline{\text{PERST}}PERST信号,板内分出两路独立复位信号:phy_por_rstn负责复位 PHY 模块,ctrl_rstn负责复位控制器模块。PHY 固件加载期间会临时屏蔽PERST ‾ \overline{\text{PERST}}PERST;设备未断电时,后续触发该复位不会重新加载固件。

终端设备可按需选择三种联动策略:仅复位 PCIe 模块、复位 PCIe 及关联模块、整卡全模块复位。



2.4 热复位(Hot Reset)

热复位为带内复位,不依赖边带信号,仅根复合体、交换开关可主动发起,终端设备无法触发。

2.4.1 触发条件
  1. 软件配置触发:向桥控制寄存器(Bridge Control Register)bit6(Secondary Bus Reset 位)写入1 11,端口生成带热复位标识的 TS1 有序集,在所有通道向下游传输。设备连续收到 2 组对应 TS1 有序集后执行复位。
  2. 链路状态触发:交换开关上行端口上报KaTeX parse error: Expected 'EOF', got '_' at position 9: \text{DL_̲Down}状态时,下行端口自动触发热复位。



2.4.2 LTSSM 状态流转

收到热复位指令后,链路训练状态机依次进入 Recovery、Hot Reset 状态,最终跳转至 Detect 状态并重新训练链路。持续接收合法 TS1 信号则保持 Hot Reset 状态,2 m s 2\ \mathrm{ms}2ms超时后自动切换至 Detect 状态。

2.4.3 指令传递规则
  1. 根端口、交换开关下行端口置位 Secondary Bus Reset,复位指令持续向下游传输,寄存器清零后停止。
  2. 交换开关上行端口收到热复位,会向所有下行端口广播指令并完成自身复位;终端设备仅复位自身。
  3. PCIe-to-PCI 桥会将热复位转换为PRST ‾ \overline{\text{PRST}}PRST信号,复位后端 PCI 总线。


2.4.4 链路参数调整流程
  1. 确认 LTSSM 处于 L0 状态;
  2. 配置链路控制寄存器、链路控制寄存器 2;
  3. 置位 Secondary Bus Reset 触发热复位;
  4. 等待2 m s 2\ \mathrm{ms}2ms后清除对应位,链路重新初始化。
2.4.5 特性与应用场景

复位范围覆盖整条下游链路及所有设备,设备不断电,粘性寄存器保持不变。适用于链路初始化失败、链路层错误恢复、链路速率/位宽调整、软件调试复位。

三、函数级复位(FLR, Function Level Reset)

3.1 触发方式

软件向设备控制寄存器 bit15(Initiate Function Level Reset 位)写入1 11启动复位。规范要求模块需在100 m s 100\ \mathrm{ms}100ms内完成动作。执行前需校验设备 FLR 能力,并等待所有待处理事务结束。

3.2 特性与范围

仅复位设备内单个功能模块的专属状态机与配置寄存器。以下内容不受影响:粘性位、硬件初始化位、链路/电源管理/流量控制类公共寄存器。FLR 不改变 LTSSM 状态,物理链路无需重训练。

3.3 应用场景

多功能设备、SR-IOV 虚拟化设备、高可用系统;用于单模块故障隔离、虚拟化设备复位、热插拔功能初始化。

四、复位优先级与拓展类型

4.1 复位优先级(力度由强到弱)

高等级复位可覆盖低等级复位,排序如下:

  1. 冷复位
  2. PERST ‾ \overline{\text{PERST}}PERST触发全局热复位
  3. 链路复位(仅重训练链路,不修改设备配置)
  4. FLR

4.2 拓展复位类型

  1. 带内热复位:链路传输 TS1 触发,作用于下游设备,触发链路重训练。
  2. 下游总线复位:PCIe-to-PCI 桥专用,仅复位后端 PCI 总线。
  3. 错误恢复复位:硬件根据错误等级自动触发,可纠正错误触发链路复位,致命错误触发热复位。

五、各类复位对比

5.1 热复位与 FLR 对比

对比项热复位FLR
作用粒度链路级、设备级单功能模块级
链路影响触发 LTSSM 切换,链路重训练链路状态保持不变
寄存器影响大部分寄存器重置,粘性寄存器除外仅重置模块专属寄存器
发起主体根复合体、交换开关软件直接操作功能寄存器
运行开销耗时较长耗时短,业务影响小

5.2 全类型复位

复位类型所属分类触发方式作用范围典型耗时
冷复位传统复位/基础复位断电重上电、PERST ‾ \overline{\text{PERST}}PERST整台设备(V C C V_{CC}VCC全部逻辑)最长
暖复位传统复位/基础复位硬件电路、PERST ‾ \overline{\text{PERST}}PERST整台设备(绝大部分逻辑)较长
热复位传统复位/带内复位软件写寄存器、TS1 有序集整条下游链路及所有设备较短
FLR函数级复位软件写功能寄存器设备内单个功能模块≤ 100 m s \leq 100\ \mathrm{ms}100ms(最短)

5.3 简易特性

复位类型作用范围触发方式特点
冷复位整设备断电重上电彻底初始化硬件
暖复位整设备PERST ‾ \overline{\text{PERST}}PERST不断电整机复位
热复位下游整条链路软件指令、TS1链路全局重置,支持参数调整
FLR单个功能模块软件命令隔离复位,不影响链路
链路复位PCIe 链路链路请求仅重训练链路,不改动配置

六、工程使用规范

6.1 选择原则

遵循从弱到强顺序:优先使用 FLR、链路复位;故障无法恢复再依次使用热复位、暖复位;最后使用冷复位,减少系统停机。

6.2 场景汇总

复位类型典型应用场景
冷复位整机上电/硬重启、固件卡死、寄存器锁死、固件烧录后初始化
暖复位系统软重启、固件升级后快速复位
热复位链路故障恢复、链路速率/位宽调整、驱动调试
FLR虚拟化设备复位、单模块故障隔离、热插拔初始化
链路复位链路协商失败、CRC 错误等链路层故障处理

参考资料

  1. PCI Express Base Specification Revision 5.0
  2. MindShare PCI Express Technology 3.0
  3. 《PCI、PCI-X 和 PCI Express 的原理及体系结构》
  4. 《PCI Express 体系结构导读》

reference

  • PCIe板卡辅助信号解析_pcie clkreq-CSDN博客
    https://blog.csdn.net/u011037593/article/details/141231501
  • PCIe 的 4 种复位机制 | FPGA 开发圈
    https://fpga.eetrend.com/blog/2024/100586493.html
  • PCIe 复位:必须了解的PERST#_pcie perst-CSDN博客
    https://blog.csdn.net/icxiaoge/article/details/141781231
  • 深入理解 PCIe 复位:Cold Reset, Warm Reset, Hot Reset 与 FLR 的对比与实践 - 知乎
    https://zhuanlan.zhihu.com/p/1950491402824814975
  • Understanding the 4 Types of PCIe Bus Resets · KAD
    https://www.kad8.com/hardware/understanding-the-4-types-of-pcie-bus-resets/
  • PCIe 总线 4 种复位介绍-电子工程专辑
    https://www.eet-china.com/mp/a335800.html
  • (o゚v゚)ノ Hi - PCIe 复位:Clod reset、warm reset、Hot reset、Function level reset
    https://www.cnblogs.com/cute/p/10309763.html
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 22:50:08

影刀RPA新手教程_非技术人员30天RPA入门学习路线图

影刀RPA新手教程:非技术人员30天RPA入门学习路线图 想学影刀RPA但不知道从哪里开始?打开软件看到一堆指令面板就头疼? 我完全理解。我自己就是运营背景,两年前第一次打开影刀的体验和你们一样——懵。但走过来了才发现&#xff…

作者头像 李华
网站建设 2026/6/14 22:33:28

手机高效使用技巧实战指南

刚入手新手机时,大家往往只满足于出厂默认设置,觉得“能用就行”。但用了一段时间后,你可能会发现电池掉电快如流水、存储空间莫名告急,或者在某些复杂场景下操作不够顺手。其实,现代智能手机操作系统中隐藏着大量未被…

作者头像 李华
网站建设 2026/6/14 22:14:03

如何构建互动桌面宠物:打造响应式Live2D动画系统

如何构建互动桌面宠物:打造响应式Live2D动画系统 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 想要为您的桌面增添一只可爱的互动宠物…

作者头像 李华