简单来说,Flit Mode(Flow Control Unit)将传统模式下的不定长数据包,转变为固定长度(256字节)的数据包进行传输。

Flit Mode, PAM4(Pulse Amplitude Modulation with 4 levels), and FEC(Forward Error Correction)这三者构成了 PCIe 6.0 能倍增速率的核心“铁三角”。可以这样理解它们的关系:PAM4 是提速的“发动机”,FEC 是处理高误码的“安全网”,而 Flit Mode 则是为了让 FEC 能顺利工作的“标准化集装箱”

它们是一条环环相扣的因果链:

起点:PAM4 提速,但引入了严重的误码

为了将传输速率从前代的 32 GT/s 翻倍至 64 GT/s,PCIe 6.0 将信号调制方式从 NRZ(1比特/时钟周期)换成了 PAM4(2比特/时钟周期)。代价是信号幅度被分成4级,对噪声更敏感,导致位错误率(BER)急剧上升

对策:必须用 FEC 主动纠错

在如此高的错误率下,如果仍沿用传统的“错了就整包重传”机制,链路大部分时间都将浪费在无效的重传上,实际有效带宽可能不升反降。

因此,必须引入FEC。它在发送端加入校验数据,让接收端能直接在原地纠正大部分错误,只有遇到无法纠正的少量错误时才请求重传,从而将有效带宽保持在极高水平。

条件:FEC 需要定长数据块,催生了 Flit

FEC 算法(如低密度奇偶校验 LDPC)必须工作在固定长度的数据块上,通过计算整个数据块的校验位来纠错。而传统 PCIe 的 TLP长度是可变的,短至几个字节,长至几千字节,完全无法匹配 FEC 的要求。

于是,Flit应运而生。它把所有数据都打包进固定的 256 字节“集装箱”里,FEC 就能以此为基本单位进行编解码和纠错。Flit Mode 便是围绕这种固定包结构建立的全新数据交换规则。

协同工作的简化流程

一条数据在 PCIe 6.0 链路中的旅程如下:

  1. 打包:各种不定长的 TLP 被按照 256 字节标准封装进 Flit
  2. 编码纠错:每个 Flit 被加上 FEC 校验位,信号以 PAM4 形式高速发出
  3. 接收纠错:接收端对 PAM4 信号采样,并利用 FEC 对每个 Flit 进行纠错
    • 多数情况:FEC 成功纠正了 PAM4 传输引入的错误,数据直接通过
    • 极少数情况:错误超出了 FEC 能力,则触发选择性重传,只重传出问题的那个 Flit

总结

  • PAM4 是“因”:提速需求催生了 PAM4,也带来了高误码这个必须解决的技术挑战。
  • FEC 是“核心手段”:为对抗高误码而引入的根本性纠错方案。
  • Flit 是“必须的结构”:为满足 FEC 对定长数据块的要求而设计的新一代数据传输格式。

三者共同将 PCIe 6.0 打造成了一个速度极快、纠错极强且效率极高的互连通道。


参考资料:

  1. A Deeper Dive into FLIT Mode, PAM4, and Forward Error Correction (FEC)
  2. deepseek对话