欢迎光临
我们一直在努力

【SI_PCIe 05】详细介绍PCIe链路训练

目录

1. PCIe链路训练简介

2. PCIe链路训练内容

3. PCIe训练基本概念

4. PCIe训练过程

4.1. 链路初始化与训练 (Link Initialization & Training)

4.2. 正常工作与异常恢复 (Normal Operation & Error Recovery)

4.3. 电源管理 (Power Management)

4.4. 测试与维护 (Test & Maintenance)


1. PCIe链路训练简介

PCIe物理层实现了链路训练(Link Training)和链路初始化(Link Initialization)的功能,这一般是通过链路训练状态机(Link Training and Status State Machine,LTSSM)来完成的。 主要流程为上电后两侧根据PCIe总线协议进入LTSSM流程;该过程是一套硬件自动化的流程,链路双方自动协商速率和宽度,调节发送和接收参数,从而达到最佳信号质量。

  • 核心背景:解决RC与EP经过PCB传输后,信号衰减、串扰、抖动、码间干扰导致的采样错误问题,全程物理层硬件自动完成,无软件参与,训练完成后上层TL/DL层才可传输业务数据。
  • 核心原理:通过LTSSM状态机流转,双方交互TS训练序列,协商链路参数、调优收发信号参数,补偿PCB传输损耗,实现对端模数信号精准恢复。

阶段大类

LTSSM状态

核心子步骤

RC/EP关键动作(物理层)

解决的PCB信号问题

1.链路初始化(上电自检)

Detect 检测状态

Quiet静默、Active探测

1. 设备上电/复位后进入首个状态;2. 两端通过链路阻抗充电探测,检测对端设备是否在位、通道是否有效;3. 无信号交互,仅硬件链路物理连通性检测

排查PCB虚焊、断线、通道开路等硬件连通故障,确认链路基础物理通路正常

Polling 轮询状态

Polling.Active、Polling.Configuration

1. 两端互相发送TS1/TS2训练序列;2. 接收端锁定CDR时钟,完成初步比特同步;3. 确认对端设备PCIe协议版本兼容

解决PCB传输导致的时钟偏移、比特失步问题,让对端可以初步识别串行比特流

2.链路参数协商(基础配置)

Configuration 配置状态

通道协商、链路宽度绑定、速率预协商

1. RC(下行端口)为主导端,EP(上行端口)为跟随端;2. 协商有效链路宽度(x1/x4/x8/x16),屏蔽异常PCB通道;3. 协商初始最大传输速率(Gen1/2/3/4/5)

规避PCB部分通道信号损耗过大、通道不一致问题,匹配硬件最优传输规格

3.精准链路训练(信号质量优化核心)

Recovery 训练恢复状态

速率重训练、均衡参数调优、采样窗口校准

1. 发送端:调节预加重、去加重、输出幅值,补偿PCB高频信号衰减;2. 接收端:开启CTLE线性均衡、DFE判决反馈均衡,消除串扰和ISI码间干扰;3. 微调采样相位,锁定最佳采样点

核心解决PCB传输带来的高频衰减、信号抖动、串扰、码间干扰,修复模数转换信号失真问题

4.正常工作状态

L0 活跃状态

稳定传输、实时链路监测

1. 链路训练完成,物理层锁定最优收发参数;2. 向上层DL/TL层上报链路就绪;3. 正常转发业务数据,同时实时监测信号质量

维持PCB链路信号稳定,保障高速数据持续可靠传输

5.低功耗状态(拓展)

L0s/L1/L2 低功耗状态

空闲休眠、唤醒预备

1. 链路无数据时自动进入低功耗,关闭部分收发电路;2. 唤醒时自动触发简易链路重训练,快速恢复L0状态

低功耗场景下保障链路唤醒后信号可快速恢复正常

2. PCIe链路训练内容

训练项核心作用必选 / 可选关键说明
位锁定 Bit Lock CDR 恢复嵌入式时钟,稳定识别 0/1 比特 必选 串行接收基础,先完成 Bit Lock
符号锁定 Symbol Lock 识别 K 字符,界定编码符号边界 必选 Gen1/2:8b/10b;Gen3+:128b/130b
极性翻转 Polarity Inversion 修正差分 D+/D – 正反接反 必选 所有设备强制支持
链路宽度 Link Width 协商有效通道数量 x1/x4/x8/x16 必选 屏蔽失效 Lane
通道翻转 Lane Reversal 修正通道编号顺序不匹配 可选 规范布线一般不用
链路速率 Data Rate 协商 Gen1~Gen5 传输速率 必选 初始 2.5GT/s,高速需重训练
通道对齐 Lane De-skew 消除多通道走线时延差 必选 多 Lane 绑定传输必备
均衡 Equalization Tx FFE + Rx CTLE+DFE,补偿信号损耗 Gen3 + 必选 高速链路保证眼图质量核心

1. 位锁定 Bit Lock

PCIe 采用嵌入式时钟,仅传输差分数据,不单独发送时钟。接收端通过 CDR 电路从串行数据流恢复采样时钟;恢复时钟与数据相位稳定对齐,可正确识别比特 0/1,即完成位锁定。

  • 发送方发送连续的 101010… 序列(称为 Jitter Tolerance Pattern 或 JTP)。

  • 接收方通过时钟恢复电路(Clock and Data Recovery, CDR)锁定发送方的位时钟,确保能够正确采样每一位。

2. 符号锁定 Symbol Lock

完成位锁定仅能识别比特流,无法区分字符边界。Gen1/Gen2 使用 8b/10b 编码,以 10bit 为一个符号。LTSSM 通过识别 COM(K28.5)等 K 控制字符,定位每个符号起始边界,实现符号锁定。

Gen3 及以上为 128b/130b 编码,字符对齐机制有所变化。

  • 发送方发送 8b/10b 编码的字符序列。

  • 接收方通过 8b/10b 解码器识别和解码这些字符,确保能够正确解码每一个字符。

3. 极性翻转 Polarity Inversion

PCIe 传输差分信号(D+/D-),PCB 布线可能造成差分对正负接反。规范要求所有 PCIe 设备必须支持极性自动翻转,在链路训练阶段完成修正,和通道翻转不同,属于必选能力。

  • 发送方和接收方通过交换 Polarity Inversion 训练序列来检测信号极性。

  • 如果检测到信号极性不一致,接收方会进行极性翻转,以确保信号的正确性。

4. 链路宽度 Link Width

支持 x1/x4/x8/x16 多种通道组合,允许短卡插入长插槽。链路初始化阶段双方交互能力,协商最终可用有效链路宽度,屏蔽失效通道。

5. 通道翻转 Lane Reversal

PCB 布线可能导致两端 Lane 编号顺序不一致,协议支持通道顺序重映射对齐。该功能为可选,标准硬件布线下一般不会启用。

  • 发送方和接收方通过交换 Lane Reversal 训练序列来确定通道的正确顺序。

  • 如果物理连接顺序不正确,双方会进行通道位置翻转,以确保数据在正确的通道上传输。

6. 链路速率 Data Rate

上电初始训练统一从 Gen1(2.5GT/s)起步;若两端均支持更高速率(Gen2 5GT/s、Gen3 8GT/s、Gen4 16GT/s、Gen5 32GT/s),会进入 Recovery 状态执行重训练,协商切换更高速率。

  • 发送方和接收方通过交换 Training Sequence(TS)包来协商链路速度。

  • 双方根据各自的硬件能力和配置选择最佳的链路速度。

7. 通道对齐 Lane-to-Lane De-skew

多条并行 Lane 经过 PCB,走线长度差异会带来通道间时延差(Skew)。完成符号锁定后,接收端缓存各通道数据,消除通道间时延偏差,保证多通道数据同步拼接。

  • 发送方发送 De-skew 训练序列,这些序列包含已知的时延信息。

  • 接收方通过测量各通道的时延差异,调整接收时钟以对齐所有通道。

  • 双方通过交换 De-skew 训练序列来确保所有通道的时延一致。

8. 均衡 Equalization(高速链路核心)

为补偿 PCB 高频损耗、ISI 码间干扰,高速 PCIe(Gen3+)必须执行均衡训练:

  • Tx:FFE 前馈均衡器(预加重 / 去加重)
  • Rx:CTLE 连续时间线性均衡 + DFE 判决反馈均衡

双方交互均衡预设值,迭代找到最优收发参数,保证接收端信号采样窗口充足。

3. PCIe训练基本概念

PCIe进行链路训练时要发送一些特殊的字符序列,这些序列也被称为PLP(PLP:Physical Layer Packet 物理层报文,链路训练专用特殊字符序列),物理层报文。这些字符序列主要有如下:

PLP 序列组成结构核心功能
TS1 / TS2 Gen1/Gen2:16 Symbol,COM 起始 TS1 协商链路参数;TS2 确认协商结果(速率、Link/Lane 编号等)
EIOS(Idle 相关) 有序集合 进入电气空闲前发送,链路进入低功耗 Electrical Idle
FTS COM + 3×FTS 辅助完成位锁定、符号锁定
SKIP COM + 3×SKP 时钟补偿,消除通道间 Skew

4. PCIe训练过程

LTSSM具体有11个状态,分别是Detect、Polling、Configuration、Recovery,L0、L0s、L1、L2(L3是可选的)、Hot Reset、Loopback和Disable状态。系统进行复位操作(Cold, Hot or Warm Reset)后,会自动进入Detect状态。 这11个状态又可以被分为下面五个类别:

  • 链路训练状态(Link Training State);
  • 重训练状态(Re-Training(Recovery) State);
  • 软件驱动功耗管理状态(Software Driven Power Management State);
  • 活动状态功耗管理状态(Active-State Power Management State,ASPM State);
  • 其他状态(Other State);
状态分组状态名称核心作用
初始化训练 Detect 探测对端接收器是否在位
Polling Bit Lock、Symbol Lock、极性校正
Configuration 协商链路宽度、通道映射
工作 & 低功耗 L0 正常收发业务 TLP 数据
L0s 轻量低功耗,快速唤醒
L1 深度低功耗,中等唤醒时延
L2 休眠,电路下电,唤醒慢
重训练 Recovery 速率切换、均衡调优、链路修复
测试 / 异常 Loopback 硬件环回自测
Hot Reset 热复位,重置整条链路
Disabled 端口禁用,链路关闭

4.1. 链路初始化与训练 (Link Initialization & Training)

系统上电 / 复位后必须顺序执行,完成链路基础通信建立,属于 LTSSM 前序核心流程

状态核心功能关键动作完成成果
Detect 探测接收端是否在位 Tx 调节共模电压,检测 RC 充放电特征 判断链路物理通路是否存在
Polling 时钟与符号对齐 收发 TS1/TS2,CDR 完成 Bit Lock、Symbol Lock,修正极性 比特与符号可正确解析
Configuration 链路拓扑参数协商 TS 交互通道信息,链路降级、通道翻转配置 确定最终链路宽度与 Lane 映射

1. Detect(检测状态)

  • 功能定义:检测物理链路是否存在带有效终端匹配电阻的接收端

  • 底层行为:发送端周期性调整共模电压,通过 RC 充放电时间变化识别对端寄生电容;未探测到设备时,在 Detect.Quiet 与 Detect.Active 之间循环等待

2. Polling(轮询状态)

  • 功能定义:完成物理层时钟同步、符号对齐

  • 底层行为:两端互发 TS1/TS2 训练有序集;接收端依靠 CDR 电路实现位锁定 Bit Lock、符号锁定 Symbol Lock;同时自动识别并修正差分信号极性翻转(Polarity Inversion)

3. Configuration(配置状态)

  • 功能定义:协商确定链路拓扑参数(链路宽度、通道编号分配)

  • 底层行为:通过 TS1/TS2 交互通道能力;通道故障时执行链路降级(x8→x4→x1);完成通道翻转(Lane Reversal)映射配置

4.2. 正常工作与异常恢复 (Normal Operation & Error Recovery)

链路初始化完成后进入 L0 正常工作态,双向收发 TLP 与 DLLP 业务报文,初次建链默认 Gen1 速率。链路误码过高或者需要提升传输速率时,进入 Recovery 恢复状态;Gen3 及以上速率在此完成四阶段均衡训练,调优收发均衡参数,满足高速信号完整性,训练完成后切回 L0。

状态核心功能关键动作完成成果
L0 全速双向业务传输 TLP/DLLP 正常编解码收发;初次进入默认 Gen1 2.5GT/s RC 与 EP 可正常交互上层业务数据
Recovery 链路修复、速率切换、高速均衡训练 重同步;Gen3 + 执行 EQ 四阶段,调优 Tx 预加重、Rx 均衡参数 修复链路误码,完成高速速率协商,返回 L0

1. L0 (正常工作状态)

  • 功能定义:链路完全激活,全速双向数据传输

  • 底层行为:正常收发、编解码 TLP 事务层数据包与 DLLP 数据链路层数据包;链路初次建链进入 L0 默认使用 Gen1 基础速率 2.5GT/s

2. Recovery (恢复状态)

  • 功能定义:修复链路失锁、高误码故障,完成动态速率切换

  • 底层行为:L0 误码超标,或是切换更高 Gen 速率时进入;Gen3 及以上必须在此执行 4 阶段均衡训练(EQ Phase0~3),协商 Tx 预加重、Rx CTLE/DFE 等均衡参数,补偿 PCB 高频损耗,保障高速信号完整性

4.3. 电源管理 (Power Management)

PCIe 电源管理包含三级低功耗状态:L0s 为 ASPM 极速待机,单向电气空闲,FTS 快速唤醒回 L0;L1 深度休眠,双向电气空闲,可关闭 PLL,唤醒需要经过 Recovery 重训练;L2/L3 Ready 是主电源关断预备,仅保留辅助电源,监听唤醒信号。

状态核心功能关键动作唤醒特性
L0s ASPM 轻量低功耗待机 Tx 单向电气空闲,停止发数,保存链路基础同步信息 FTS 快速唤醒,纳秒级返回 L0
L1 深度休眠低功耗 链路双向电气空闲,可关闭 PLL 唤醒需进入 Recovery 重训练,微秒级时延
L2/L3 Ready 主电源下电预备 Vmain 准备关闭,仅保留 Vaux 供电 监听 WAKE#/Beacon 唤醒信号,唤醒流程更长

1. L0s (待机状态)

  • 功能定义:ASPM 管理,纳秒级极速唤醒的轻量低功耗状态

  • 底层行为:发送端单向进入电气空闲 Electrical Idle,停止数据发送;依靠 FTS 快速训练序列,短时间即可返回 L0 工作态

2. L1 (休眠状态)

  • 功能定义:微秒级深度低功耗状态

  • 底层行为:链路双向进入电气空闲,收发器可关闭 PLL 锁相环;需上层协商进入,唤醒时经过 Recovery 重训练,重新完成符号锁定

3. L2/L3 Ready (极低功耗准备状态)

  • 功能定义:主电源下电前的预备状态

  • 底层行为:准备关闭主电源 Vmain,仅保留辅助电源 Vaux,用于监听 WAKE# 边带唤醒信号或 Beacon 带内唤醒信号

4.4. 测试与维护 (Test & Maintenance)

Disable 为软件强制禁用链路,发送端保持电气空闲,适配热插拔场景;Loopback 是测试专用状态,接收数据直接环回发送,用于误码率与信号一致性测试;Hot Reset 属于带内热复位,通过 TS1 序列通知对端清空配置,回到 Detect 重新建链。

状态核心功能关键动作使用场景
Disable 软件强制关闭物理链路 Tx 保持电气空闲 热插拔断开前准备,软件关闭端口
Loopback 物理层测试验证 Rx 数据直接环回至 Tx,不经过上层协议 BER 误码测试、信号一致性调试
Hot Reset 带内软复位链路 发送 Hot Reset 标记 TS1,对端清空状态返回 Detect 链路异常恢复,无需硬件断电复位

1. Disable(禁用状态)

  • 功能定义:软件强制禁用物理链路

  • 底层行为:发送端持续保持电气空闲,多用于热插拔断开前的链路准备工作

2. Loopback(环回状态)

  • 功能定义:物理层 BER 误码率、信号一致性专用测试状态

  • 底层行为:从设备将 Rx 解串后的数据流,不经过上层协议栈,直接转发至 Tx 原样回传给主设备

3. Hot Reset(热复位)

  • 功能定义:带内软复位机制

  • 底层行为:主端持续发送带有 Hot Reset 标志位的 TS1 有序集;对端识别后清空状态、缓存参数,跳转回 Detect 状态,重新完成整套链路初始化

赞(0)
未经允许不得转载:171主机测评 » 【SI_PCIe 05】详细介绍PCIe链路训练
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址