第1章 Gen4链路训练概述
各位同学,大家好。我是老张,在PCIe链路调试这个坑里摸爬了七八年。今天开始咱们聊Gen4链路训练,先从最基础的东西说起——Gen4到底是个什么水平?LTSSM这台“状态机”又长什么样?
1.1 从Gen3到Gen4,我们到底升级了什么?
说白了,Gen4最直观的变化就是速度翻倍。Gen3跑8 GT/s,Gen4直接干到16 GT/s。但你别以为只是把频率提高一倍那么简单——编码方式没变,还是128b/130b,但电气层和协议层做了不少调整。
核心参数对比
| 项目 | PCIe Gen3 | PCIe Gen4 |
|---|---|---|
| 单通道速率 | 8 GT/s | 16 GT/s |
| 编码 | 128b/130b | 128b/130b |
| 通道带宽(x16) | ~16 GB/s | ~32 GB/s |
| 参考时钟抖动要求 | 较宽松 | 更严格 |
| 均衡(Equalization) | 预热均衡 | 分阶段均衡(Phase 1~3) |
我刚开始做Gen4项目时,总觉得“不就速度快一倍嘛,把Gen3的PHY调一下不就行了?”结果第一版样片回来,链路训练死活过不去。后来才意识到,Gen4对信号完整性要求高了一个量级。你想想看,16 GT/s的信号在PCB上走几英寸,眼图就快闭了。
另一个重要变化:均衡机制从Gen3的“一次性握手”变成了Gen4的“三阶段协商”。这个我们后面会详细讲,但你先记住一句话:Gen4的均衡是链路训练中最容易出妖蛾子的环节。
1.2 链路训练状态机(LTSSM)—— 理解链路训练的地图
搞PCIe的人都知道,LTSSM(Link Training and Status State Machine)是整套训练流程的灵魂。它控制着链路从无到有、从低速到高速的每一步。说白了,它就是一张“地图”,告诉你当前链路在哪个阶段,下一步该往哪走。
状态机一共定义了十多个状态,但咱们做训练调试,重点关注这几个:
- Detect —— 检测对端是否在线
- Polling —— 发送训练序列(TS1/TS2),协商基本参数
- Configuration —— 确定通道宽度、链路编号,交换训练数据
- Recovery —— 当链路出错或需要调整数据速率时重新训练
- L0 —— 正常数据传输状态
- Hot Reset / Loopback —— 特殊用途状态
我给你画了个简化的状态机迁移图,重点看训练阶段:
举个例子:当两个设备刚上电,LTSSM先从 Detect 开始,检测接收器是否存在。如果检测通过,进入 Polling 阶段,双方开始发送TS1/TS2序列表,交换速度能力和通道宽度等信息。顺利的话,进入 Configuration,确认最终配置,然后进入 L0 正常跑数据。
为什么LTSSM这么重要? 因为几乎所有的链路异常都会在某个状态“卡住”。我遇到过最典型的一个案例:某主板用Gen4 SSD,训练一直卡在Polling阶段。示波器一看,TS1序列根本发不出来——原来是参考时钟的相位抖动超标了。嗯,换成低抖动晶振后立刻解决。
避坑指南
我曾经在调试中犯过一个低级错误:认为“Polling阶段没过就是时钟问题”。后来发现,有时候是两端编码不匹配。比如Gen3设备还在用128b/130b,但Gen4要求必须支持某些前向纠错(FEC)协商,如果一方不支持就会卡住。建议你们初查时抓逻辑分析仪,先看TS1/TS2发送是否正常。
1.3 一个小例子:链路训练失败的可能原因
咱们用一张表概括一下常见卡状态的现象和根因,方便你后面对照排查:
| 卡住状态 | 典型现象 | 常见原因 |
|---|---|---|
| Detect | 没有读到接收器检测信号 | 物理连接断开、差分阻抗不匹配、接收器未使能 |
| Polling | TS序列持续发送但无应答 | 时钟抖动过大、眼图闭合、速率协商失败 |
| Configuration | 反复交换训练数据但无法进入L0 | 宽度协商不一致(如对方只支持x4,本端强制x8) |
| Recovery | 链路跳回Recovery并反复重训练 | 信号完整性恶化、均衡系数未收敛、比特错误过多 |
说白了,链路训练就是一场握手谈判。从握上手到谈拢,每一步都可能出问题。Gen4因为速率更高,对信号质量和时序的要求也更苛刻。后面几章咱们会拆开每一条细节,但今天先把整体框架搭好。
警告:千万不要在链路训练阶段跳过“均衡”步骤直接进入L0,这样做大概率会掉速或产生不可纠正的链路错误。业界有血的教训——某公司产品就是因为早期Gen4均衡实现有bug,出货后频繁重置,最终不得不召回。
好,这一章就到这。核心就是三点:Gen4比Gen3快一倍但坑更多;LTSSM是链路训练的导航地图;卡状态是有规律的,学会看状态就等于找到了排查的钥匙。