学习: PCIe 6.0 的 L0p

先把一个容易混的点说清:

**PCIe 5.0(Non-Flit / 128b130b)本身并没有"L0 下关掉部分 Lane、不重新训练就恢复全宽"的官方机制。**​

这个能力主要是 PCIe 6.0 的 L0p;PCIe 5.0 里类似"关 Lane/降宽"通常要进 Recovery / Re-train。

但"流量低关部分 Lane、恢复全宽不重新训练",在 L0p 语义下是可以解释的。


一、为什么"升宽"其实还是要训练,只是不打断业务

降宽(x16 → x8):

  • 在 SKP Ordered Set 边界发 Control SKP / EIOS
  • 多余 Lane 进 Electrical Idle
  • 剩余 Lane 继续传数据
  • 不需要重新均衡,因为这些 Lane 本来就在跑,信道没变

升宽(x8 → x16):

  • 原来关掉的 Lane 退出 Electrical Idle
  • 发 EIEOS
  • 交换 TS1/TS2
  • 做 bit/symbol lock、lane-to-lane de-skew
  • Gen3+ 还要发 SDS(Start of Data Stream)
  • 然后才把新 Lane 并入数据流

所以严格说:

"恢复全宽"不是完全不训练,而是"只对新增 Lane 做局部训练",原本在跑的 Lane 不进 Recovery、不重做均衡、不中断 TLP/Flit 流。


二、为什么可以"不重新做全链路 Equalization"

关键前提:

  1. 速率没变
    还是 32 GT/s(Gen5)或 64 GT/s(Gen6),信道损耗特征没变。
  2. 关掉的 Lane 之前已经训过
    Link 初始化时 x16 全宽已经做过完整 EQ(Preset / Phase0~Phase3 / TS1 TS2)。
    关 Lane 时:
    • 不改 TX presets
    • 不改 RX CTLE/DFE 系数
    • 不重协商 speed/width 上限
  3. Lane 是"睡过去"的,不是"拔掉重连"
    电气空闲(Electrical Idle)只是:
    • TX driver tristate
    • RX 关前端功耗
    • PLL 可关可留
      但 Lane 编号、极性、反向、de-skew 上下文都还在。
  4. 用 Ordered Set 做"检查点"
    SKP / Control SKP / EIEOS / SDS 都是协议级锚点:
    • 降宽:在 SKP 边界切
    • 升宽:新 Lane 训完后用 SDS 标记"从现在开始这块 Lane 算进数据流"
      上层看到的是带宽变化,不是丢包。

三、和"真·重新训练(Recovery)"的区别

动作 进 Recovery? 重做 EQ 业务中断 场景
L0p 降宽 否 否 否 流量低,x16→x8
L0p 升宽 否(仅新 Lane 局部训练) 新 Lane 做轻量 lock/de-skew 否 流量上来,x8→x16
进 Recovery 是 是(可能全 EQ) 是/协议层可见 LCRC 狂错、块锁丢、速率变更
重新训练全链 是 是 是 热插拔、Reset、Gen 切换

一句话:

**Recovery = 链路健康出问题,要重训。**​

L0p 升宽 = Lane 本来就好好的,只是把"睡着的 Lane 叫醒并对齐",不用把整条链子拆了重练。


四、为什么 PCIe 5.0 你很少看到这功能

PCIe 5.0:

  • 没有 L0p
  • L0s:所有 Lane 浅休眠,退出用 FTS(假设式训练)
  • L1/L1.1/L1.2:整链休眠,退出要 Recovery 类流程
  • 动态降宽通常不是"L0 里悄悄做",而是:
    • Link Degradation(错误率过高 → 降宽/降速)
    • 或软件/BIOS 配 Max Link Width
    • 或进 Recovery 重新 Config
相关推荐
燕落南枝3 小时前
CSS 学习:类型选择器与 AI 注释实战
css·人工智能·学习
Swilderrr7 小时前
论文精读:《Directory-Aware Query and Maintenance in Vector Databases》
笔记·学习
kkkkkkkkkk_Z7 小时前
新手自学嵌入式 | 学习日记:LCD显示原理、PWM控制、电容触摸屏(GT9147)驱动开发与项目实战
驱动开发·学习
LXT7128 小时前
每日英语一读|为什么夏天的雷雨,总爱在傍晚出现?
深度学习·学习
知识分享小能手8 小时前
C学习教程,从入门到精通,C语言文件 — 完整知识点详解(14)
c语言·网络·学习
羊羊一洋8 小时前
ROM&RAM
c语言·stm32·学习
优化Henry10 小时前
LTE小区光路降质告警排查与处理实录
运维·网络·学习·5g·tdd
暖馒10 小时前
运动控制框架相关知识
学习
stereohomology10 小时前
我对DeepSeek4.1flash能力变化的感觉和第三方评估相当
人工智能·学习·llm