高速串行链路的线路编码演进 和 Flit 级的纠错技术 -- pcie 6.4 的 1b/1b
1b/1b这个命名方式脱胎于线路编码line coding的开销比表述传统——nb/mb表示每 n 个信息比特映射为 m 个线路比特。但它不是线性分组码那种加校验位的编码而更接近于不做任何信道编码仅依赖扰码scrambling的极限情形。下面系统地介绍一下这个领域。一、为什么需要线路编码高速串行链路PCIe、以太网、SATA、USB的物理层要解决几个共性问题直流平衡DC balanceAC 耦合电容、变压器不允许长串的 0 或 1否则基线漂移时钟恢复接收端 CDR 需要足够的电平翻转transition density来锁定相位控制字符需要数据流之外的码元做帧定界comma、idle、start/end错误检测某些编码天然可以检出非法码型。线路编码的本质就是在带宽开销和上述物理需求之间做权衡。1b/1b 家族的演进史就是一部把编码开销从 25% 压到 0%的历史。二、1b/1b 的兄弟们主流线路编码横向对比编码开销典型应用核心机制Manchester100%1b/2b10M 以太网每个比特一次跳变时钟嵌在数据里4b/5b25%100M 以太网配 MLT-3查表映射保证连续 0 ≤ 38b/10b25%PCIe 1.0/2.0、SATA、光纤通道 1/2/4G、USB 3.0 之前查表 running disparityK 码控制字符64b/66b~3.1%10G 以太网10GBASE-R、Interlaken变体 64b/67b2-bit 同步头 58-bit 自同步扰码128b/130b~1.54%PCIe 3.0/4.0/5.0、USB 3.x/42-bit 同步头 128-bit 数据块SRIS 兼容256b/257b~0.4%以太网 50G/100G/200G/400G 的 FEC 转码层把 4 个 66b 块压成 1 个 257b 块腾出空间给 RS-FEC1b/1b0%PCIe 6.x64 GT/s PAM4无任何编码开销全靠扰码 FEC/CRC 兜底各代技术要点8b/10b经典查表派把 8 比特数据拆成 5b/6b 3b/4b 两级查表通过 running disparity运行不一致性跟踪 0/1 个数差动态选正反码型维持直流平衡。额外获得 12 个 K 控制字符K28.5 逗号符等用于字节对齐和链路管理。代价是 25% 带宽白白烧掉——PCIe 2.0 标称 5 GT/s实际有效带宽只有 4 Gbps/lane。64b/66b同步头 扰码派10G 时代 25% 开销无法接受于是转向统计性方案——只加 2 比特同步头01表示纯数据、10表示带控制块数据本身用 x⁵⁸x³⁹1 自同步扰码器打散。扰码不保证绝对的直流平衡和最短翻转间隔但统计上足够好概率论意义上的长连 0几乎不可能出现。这是整个领域的设计哲学转折点从确定性保证转向统计性保证。128b/130bPCIe 3.0–5.0PCIe 拥抱了同一哲学128 比特净荷前加 2 比特同步头还顺带编码了块序号信息用于 lane-to-lane deskew。98.46% 的效率PCIe 5.0 在 32 GT/s NRZ 下提供约 3.94 GB/s/lane。256b/257b为 FEC 腾地方的转码以太网走 100G 后采用 RS(544,514,t15) KP4-FEC方法是把 4 个 66b 块去掉同步头压成 256 比特、加 1 比特标识成为 257 比特再把省下的同步头空间塞 FEC 校验位——用压缩编码开销换来的预算去买纠错能力。这是理解 1b/1b 的一把钥匙高速链路的设计重心从编码整体迁移到了FEC。三、详述 PCIe 6.x 的 1b/1b1. 它到底是什么PCIe 6.064 GT/sPAM4采用的1b/1b 编码严格说是无线路编码上层比特经过**数据扰码scrambling**后直接映射到 PAM4 电平每比特进、每比特出零开销。64 GT/s 的GT/s第一次等于有效吞吐率——PCIe 6.0 x1 单向正好 8 GB/s64 GT/s × 2 bit/UI ÷ 8无折扣。它敢这么做的前提是三件事PAM4 调制本身强制每 2 比特映射为一个 4 电平符号配合Gray 编码映射 预编码precoding1/(1D) mod 4把判决出错的形态约束为相邻电平误判符号错误大概率只破坏 1 个比特扰码继续承担直流平衡和翻转密度的统计性保证沿用 PCIe 5.0 的扰码多项式思路FLIT 级 FEC CRC 重传构成闭环可靠性把 PAM4 约 1e-6 的原始误码率BER比 NRZ 差几个数量级压到系统可接受的 1e-15 量级以下。也就是说1b/1b 省下的 1.5%25% 编码开销加上 PAM4 翻倍频谱效率换来的带宽足以包养一套完整的 FEC重传机制还有富余。这是与 8b/10b 时代截然相反的工程哲学——8b/10b 假设信道几乎不犯错编码只为物理层服务1b/1b 承认信道一定会犯错把可靠性整体上移到链路层 FEC/CRC。2. FLIT 模式1b/1b 的载体PCIe 6.0 在 64 GT/s 下强制启用FLITFlow Control Unit模式链路层从可变长包 DLLP/TLP 流切换为固定 256 字节的 FLIT 帧| 236 B TLP 数据净荷 | 6 B 链路层信息/DLLP | 8 B CRC | 6 B FEC | 256 B FLIT常见表述为 242 B 净荷 6 B CRC 8 B FEC 或按字段划分略有差异规范中的精确布局是 236 B payload 6 B link-layer overhead 8 B CRC 6 B FEC合计 256 B。固定帧长是 FEC 的前提——纠错码必须有明确的码字边界。这与以太网 RS-FEC 作用在固定 5440-bit 码字上是同一个道理。四、FLIT 级纠错原理PCIe 6.0 的可靠性是一个三级纵深防御第 0 级Gray 编码 预编码物理层塑形错误PAM4 有 4 个电平眼图开口只有 NRZ 的 1/3信噪比天然恶化。Gray 映射使相邻电平只差 1 个比特接收机误判大概率落在相邻电平上 → 单符号错误 ≈ 单比特错误。预编码则消除判决反馈均衡器DFE的错误传播一个错判引发连锁错判。这一级不纠错只让错误分布变得温和、可建模——后续 FEC 就是按错误以孤立单符号错误为主来设计的。第 1 级轻量 FEC前向纠错不重传码字对象每个 256 B FLIT 附带 6 B FEC 校验码型基于有限域的多符号 Reed-Solomon 风格的单符号纠错single-symbol correct码并采用 3 路交织3-way interleaving——把连续比特错误分散到 3 个独立码字中使短突发错误也退化为各码字内的单符号错误延迟预算全程处理 2 ns。这是硬指标——FLIT 在 64 GT/s 下本身只有约 2 ns 的传输时间256 B × 8 ÷ 64 Gbps ≈ 32 ns不注意 PAM464 GT/s 32 Gbaud × 2 bit 64 Gbps256 B 2048 bit ≈ 32 ns 一帧——FEC 必须在流水线的几个符号周期内完成不能攒帧再算。因此选用了极短的汉明/RS 型单纠错码而非 KP4 那种重码效果把 1e-6 的原始 BER 改善约 69 个数量级使需要重传的 CRC 失败成为罕见事件重传对带宽的损耗可忽略。为什么不用强 FEC以太网 KP4 RS(544,514) 能纠 15 个符号但解码延迟 100 ns 量级。PCIe 的延迟敏感场景内存语义、CXL 缓存一致性完全不能接受所以 PCIe 6.0 只买够用的纠错能力把残余错误交给下一级。第 2 级CRC 检错 ACK/NAK 重传链路层兜底每个 FLIT 带8 B CRCCRC-64 级别强度在 FEC 纠错之后再校验FEC 漏纠/纠错的概率乘上 CRC 漏检概率使得未检出错误率FBER压到规范要求的 ~1e-18 以下【每63年可能会发生一次漏检】检出的坏 FLIT 走 PCIe 传统的Replay 机制Ack/Nak 重发 buffer重传。由于 FLIT 定长重传对账简单额外延迟只发生在小概率事件上。总结PAM4 Gray预编码让错误单比特化 → 轻量交织 FEC 吃掉 99.9999% 的单符号错误2 ns→ CRC-64 抓住漏网之鱼 → Replay 重传兜底。1b/1b 不是放弃编码而是把编码预算从每比特征税8b/10b 的 25%改为每帧征税256 B 里 14 B ≈ 5.5%且买到的是纠错而不仅是直流平衡。五、延伸以太网 vs PCIe 的分岔点同为 PAM4 时代以太网选强 FEC、容忍重传不存在丢给上层 TCP“PCIe 选轻 FEC 硬件重传”根因是延迟语义不同网络 vs 内存/IO 一致性。做 NVSwitch 风格互联协议时会面临同样的抉择——GPU 间集合通信更接近 PCIe 的延迟哲学。CHI 的 flit 概念同源Arm CHI 协议也叫 flit但那是协议层事务粒度不做 CRC/FEC依赖 PCIe/CXL PHY 兜底。如果你设计自有互联PCIe 6.0 的定长 flit 交织单纠错 FEC CRC 重传三段式是可直接借鉴的最小完备模板。FPGA 实现角度GTY 收发器原语已内置 64b/66b/128b/130b gearbox 和 CAUI RS-FECIEEE 802.3bj 的 RS(528,514)而 PCIe 6.0 级别的 1b/1b FLIT FEC 目前主要靠 GTYP/GTM 与新硬 IP软逻辑实现交织 RS 单纠错码在 100G 量级是可以做的每 lane 约 400 MHz × 256 bit 并行这也是研究原型可行的原因之一。下一步可以对比看从 PCIe 6.0 FLIT FEC 的具体码字构造有限域与生成多项式细节、UALink 宣称的低开销链路层方案以及 CXL 3.0 在 256B flit 上复用 PCIe 6.0 PHY 的取舍——这三者正好构成同一份 PAM4 物理层、三种链路层哲学的对照组。