PERST#、Hot Reset、Link Disable
1. PERST# (PCIe Reset)
定义:PERST#(PCIe Reset)是PCIe设备的基础复位信号,由主板或根复合体(Root Complex)发起,属于冷复位(Cold Reset)
触发方式:PERST# 作为 Fundamental Reset,是直接通过边带信号PERST#(PCI Express Reset)产生的。
Fundamental Reset会复位整个PCIe设备,初始化所有与状态机相关的硬件逻辑,端口状态以及配置空间中的配置寄存器等。
作用:
- 初始化PCIe设备硬件状态。
- 通常在系统上电、断电或硬重启时触发。
- 复位后,设备需重新训练链路(Link Training),重新协商链路速度和宽度(如x1、x4、x16)。
2. Hot Reset (热复位)
定义:通过PCIe协议触发的复位,无需断电,属于功能级复位。
触发方式:
- 软件触发:通过设置设备的配置空间(Configuration Space)中的Bridge Control寄存器的Secondary Bus Reset bit。
- 链路层触发:通过发送TS1序列(Training Sequence 1,包含Hot Reset信息)。
作用:
- 复位设备的特定功能或下游设备(如PCIe交换机下游端口)。
- 保持链路物理层活动(PHY层不休眠)。
3. Link Disable (链路禁用)
- 定义:通过禁用PCIe链路使其进入非活动状态(如低功耗模式或调试状态)。
- 触发方式:
-
- 设置链路控制寄存器(Link Control Register)中的Link Disable bit。
- 由系统软件(如驱动程序)或固件控制。
- 作用:
-
- 强制链路进入禁用状态(LTSSM状态机跳转到Disabled状态)。
- 用于节能(如设备空闲时)、隔离故障设备或调试链路问题。
对比总结
特性 | PERST# | Hot Reset | Link Disable |
复位类型 | 冷复位(全局) | 热复位(局部) | 链路禁用 |
触发源 | 主板/电源 | 软件/链路层协议 | 软件/固件 |
影响范围 | 整个设备 | 设备或子层级 | 单条链路 |
链路训练 | 需要重新训练 | 需要重新训练 | 需重新使能并训练 |
典型场景 | 上电、硬重启 | 动态复位、错误恢复 | 节能、调试 |
应用场景
- PERST#:系统启动、硬件更换后初始化。
- Hot Reset:设备无响应时恢复,或FPGA/网卡等需要动态重配。
- Link Disable:服务器节能(如禁用未用NVMe SSD)、链路层调试。