学习:PCIe6.0 RS FEC

RS = Reed-Solomon(里德-所罗门码)

是一种分组纠错码,在 PCIe 6.0 里用来对抗 PAM4 比 NRZ 更脆弱的信噪比。


一、RS 是什么

Reed-Solomon 码 :把数据切成符号(symbol),在 Galois 域 GF(2ᵐ) 上做多项式运算,能纠正符号级错误。

PCIe 6.0 Flit Mode 用的是 **RS(18,16)**​ 轻量一阶码:

复制代码
每 FLIT 的 TLP Region(236B = 1888 bit)
被切成 16 个符号(symbol),每个符号 118 bit? 不对

实际上 PCIe 6.0 的 FEC 结构是这样的:

参数 值
码型 RS(18,16) 轻量一阶
每个 FLIT 18 个 FEC 符号
其中数据 16 个符号
校验 2 个符号(parity)
每个符号 8 bit(GF(2⁸))
总校验开销 2/18 ≈ 11.1%

RS(18,16) 能纠正:最多 1 个符号错误(8 bit 内任意模式)


二、RS 能纠几位错误

核心公式

复制代码
RS(n,k) 能纠正的符号数:t = (n-k)/2

PCIe 6.0: RS(18,16) → t = (18-16)/2 = 1
错误类型 能不能纠
1 个符号内任意 bit 错(最多 8 bit) ✅ 能纠
2 个符号同时出错 ❌ 不能纠(只能检)
跨符号的零散 bit 错(每个符号 1 bit) ❌ 不能纠(算 2 个符号错)

**关键:RS 纠的是"符号"不是"bit"。**​ 1 个符号内错 1 bit 和错 8 bit,纠错能力一样。


三、轻量一阶是什么意思

概念 含义
一阶 只用 2 个校验符号(parity),t=1
轻量 相比 RS(34,30) 等更重的码,延迟更低、面积更小
代价 只能纠 1 个符号,2 个符号错只能检测(标记 FLIT 为 error)

PCIe 6.0 选 RS(18,16) 的权衡:

  • PAM4 主要错误模式是突发噪声(一次影响连续几个 bit → 集中在 1 个符号内)
  • 1 符号纠错 + CRC-2 检错 + Selective Replay 重传 = 足够覆盖 PAM4 的 BER 需求
  • 再重的 FEC 会增加延迟和面积,不划算

四、纠错延迟

4.1 为什么关心延迟

FEC 不是免费的:

复制代码
发送端:算 parity → 多等 2 个符号时间
接收端:收齐 18 个符号 → 算 syndrome → 判决纠错

4.2 延迟估算

复制代码
符号率 = 32 GBaud
每个符号 = 8 bit(实际是 118 bit 映射,简化按符号周期算)

1 个符号周期 ≈ 1 UI = 31.25 ps

RS(18,16) 延迟:
  编码延迟:~1-2 个符号 ≈ 31-62 ps
  解码延迟:~16-18 个符号(要收齐才能算 syndrome)≈ 500-560 ps
  总 FEC 延迟:~0.5-1 ns(典型值)

对比 PCIe 6.0 FLIT 时间:

复制代码
1 FLIT = 252B = 2016 bit
@ 64 Gbps/lane → 1 FLIT ≈ 31.5 ns
FEC 延迟 ~0.5-1 ns → 占 ~2-3%

所以叫"轻量"------FEC 延迟远小于一个 FLIT 的传输时间,对整体链路延迟影响很小。


五、和 CRC-2 的配合

复制代码
PCIe 6.0 FLIT 尾部:
  ECC (8B) = RS(18,16) FEC → 纠 1 符号错
  CRC (2B) = CRC-16 截断 → 检所有剩余错

流程:
  1. RS 尝试纠错(最多 1 符号)
  2. CRC 校验 → 如果还错 → NAK → Selective Replay
场景 RS CRC 结果
0 错误 - PASS ✅ 直接收
1 符号错 ✅ 纠正 PASS ✅ 静默纠正
2 符号错 ❌ 纠不了 FAIL → NAK → Replay
突发 8+ bit 在同一符号 ✅ 纠正 PASS ✅ 静默纠正

六、一句话总结

RS = Reed-Solomon 分组纠错码。PCIe 6.0 用 RS(18,16) 轻量一阶码,能纠正 1 个 8-bit 符号内的任意错误,纠错延迟 ~0.5-1 ns(约 2-3% FLIT 时间),配合 CRC-2 检错 + Selective Replay 覆盖 PAM4 的误码需求。


相关推荐
幽灵诶5 小时前
学习Linux
linux·学习
叼烟扛炮5 小时前
Linux 学习笔记(三):文件管理与文本查看
linux·笔记·学习
海绵宝宝转agent5 小时前
2026-10-21学习笔记
笔记·学习·算法
动词ing5 小时前
【学习笔记】51单片机 点亮一个LED灯
笔记·学习·51单片机
zhangrelay5 小时前
手机十周年以上长期稳定测试意义不大正常非暴力使用电池健康都在七成以上
笔记·学习·智能手机
Z21-X6 小时前
云原生运维学习笔记:存储、网络与操作系统——云计算的底层基石
运维·笔记·学习·云原生
dadaobusi15 小时前
学习: PCIe 6.0 的 L0p
学习
燕落南枝17 小时前
CSS 学习:类型选择器与 AI 注释实战
css·人工智能·学习
Swilderrr21 小时前
论文精读:《Directory-Aware Query and Maintenance in Vector Databases》
笔记·学习
kkkkkkkkkk_Z21 小时前
新手自学嵌入式 | 学习日记:LCD显示原理、PWM控制、电容触摸屏(GT9147)驱动开发与项目实战
驱动开发·学习