2. L1 Substates (L1SS) 基础:什么是 L1 Substates,为什么需要它,以及它与传统 L1 状态的区别

在 PCIe 链路功耗优化体系中,L1 Substates (L1SS) 是自 PCIe 3.1 规范引入的关键增强特性。它并非一个独立的新电源状态,而是对传统 L1 状态的深度扩展,旨在进一步挖掘链路空闲时的节能潜力。

核心定义: L1 Substates 是一组在 L1 状态基础上定义的更深层次子状态,通过关闭更多内部电路(如 PLL、参考时钟、甚至主电源),实现比传统 L1 状态更低的功耗。

2.1 为什么需要 L1 Substates?

传统 L1 状态虽然能节省一定功耗,但其节能深度有限。随着移动设备、数据中心和嵌入式系统对能效要求的不断提高,L1 状态的局限性日益凸显:

  • 功耗墙: 传统 L1 状态下,PLL(锁相环)和参考时钟通常保持运行,导致静态功耗仍然较高。
  • 唤醒延迟与节能深度矛盾: 传统 L1 的退出延迟较短(微秒级),但无法实现更深的节能模式。
  • 链路利用率下降: 现代 PCIe 链路在大量时间处于空闲或低利用率状态,传统 L1 无法充分利用这些空闲窗口。

L1 Substates 通过引入多个可配置的节能层级,允许系统根据链路空闲时长动态选择最合适的节能深度,从而在功耗节省和唤醒延迟之间取得更优平衡。

应用场景: 笔记本电脑的 Thunderbolt 接口、NVMe SSD 的 ASPM 节能、数据中心网卡的低功耗待机等,都依赖 L1SS 实现显著的电池续航或散热优化。

2.2 L1 Substates 与传统 L1 状态的核心区别

下表从多个维度对比了传统 L1 状态与 L1 Substates 的差异:

对比维度 传统 L1 状态 L1 Substates (L1SS)
规范引入 PCIe 1.0a PCIe 3.1 / 4.0
PLL 状态 保持运行或快速恢复 可完全关闭
参考时钟 通常保持有效 可关闭(CLKREQ# 机制)
主电源 (Vmain) 保持供电 可完全断电(L1.2 子状态)
唤醒延迟 ~1-5 µs L1.1: ~5-10 µs
L1.2: ~50-100 µs
功耗节省 中等(~mW 级) 显著(~µW 级,L1.2 可达接近零功耗)
链路状态机 单一 L1 状态 L1 → L1.1 → L1.2 多级嵌套
软件配置 ASPM L1 Enable L1 Substates 相关寄存器 + 握手协议

2.3 L1 Substates 的层级结构

L1SS 定义了三个主要的子状态,从浅到深依次为:

  1. L1.0 (传统 L1): 基础 L1 状态,PLL 和参考时钟保持有效,链路电气空闲。
  2. L1.1 (浅睡眠): 关闭发送端 PLL,接收端 PLL 可关闭,参考时钟可停止(通过 CLKREQ# 协商)。
  3. L1.2 (深度睡眠): 关闭主电源 Vmain,仅保留辅助电源 Vaux 用于唤醒逻辑。功耗接近零,但唤醒延迟最长。

下图展示了 L1 Substates 的层级关系与进入/退出流程:

L1 Substates 层级结构与状态转换 L1 Substates 层级结构与状态转换 L0 (全速运行) L1.0 (传统 L1) L1.1 (浅睡眠) L1.2 (深度睡眠) 各子状态特征 • L1.0: PLL 运行, 时钟有效 • L1.1: PLL 关闭, 时钟可停 • L1.2: 主电源关闭 唤醒延迟: L1.0: ~1-5 µs L1.1: ~5-10 µs L1.2: ~50-100 µs 功耗: L1.2 < L1.1 < L1.0 进入更深子状态需要满足空闲时间阈值,且链路两端通过握手协议协商一致 退出时需逐级唤醒,延迟逐级累加

2.4 进入与退出机制

L1 Substates 的进入并非直接跳转,而是遵循严格的逐级下沉和逐级上浮原则:

  • 进入流程: L0 → L1.0 → (空闲时间 T1) → L1.1 → (空闲时间 T2) → L1.2
  • 退出流程: L1.2 → L1.1 → L1.0 → L0 (或直接 L1.2 → L0,取决于实现)

每个子状态的进入都需要满足特定的空闲时间阈值,这些阈值通过链路两端协商确定,并记录在相关配置寄存器中。

设计注意: 如果空闲时间阈值设置过短,可能导致链路频繁进入/退出深睡眠状态,产生“电源状态振荡”问题,反而增加功耗和延迟。阈值设置需要结合实际业务流量模型进行调优。

2.5 硬件支持要求

要使用 L1 Substates,链路两端设备必须满足以下条件:

要求项 说明
PCIe 规范版本 至少支持 PCIe 3.1 或更高版本
CLKREQ# 信号 必须支持参考时钟请求/撤销机制
L1 Substates 能力寄存器 设备必须实现相关能力寄存器并正确报告支持深度
电源管理握手 支持 L1SS 特定的 TLP 和 DLLP 握手协议
辅助电源 Vaux L1.2 子状态需要 Vaux 维持唤醒逻辑