高速互连的时钟与速率

高速数字链路表面上是在传输 0 和 1,真正决定接收端能否正确判决的,却是两个更基础的问题:在什么时刻采样,以及线路上的电压变化代表多少信息。前一个问题引出 PLL、CDR、前向时钟和嵌入式时钟,后一个问题引出 NRZ、PAM4、线路编码以及各种看起来没有规律的速率数字。

把这些概念连起来之后,112G、224G SerDes 就不再是一串孤立的术语。它们只是同一条演进路线上的不同节点:链路速率提高,单位间隔不断缩短,时钟越来越难恢复,信道损耗越来越严重,于是系统需要更合适的环路带宽、更复杂的均衡、更高效的编码,以及每个符号承载更多信息的调制方式。

PLL为什么需要环路滤波器

PLL 的任务是让本地振荡器的相位和频率跟随参考信号。相位频率检测器先比较参考时钟与反馈时钟,电荷泵把比较结果变成电流脉冲,环路滤波器再把这些脉冲转换为较平滑的控制电压,送给 VCO 调整输出频率。环路滤波器因此不只是一个用来“滤掉高频噪声”的低通网络,它还决定了整个闭环的带宽、阻尼、稳定性和锁定速度。

环路带宽以内的相位变化会被 PLL 当成需要跟踪的变化。参考时钟缓慢漂移时,PLL 可以调整 VCO,使输出继续跟随参考;带宽以外的快速变化则不容易通过控制环路驱动 VCO。这样做能够抑制参考端、鉴相器和电荷泵产生的高频相位扰动,但不能消灭所有噪声,因为 VCO 自身的噪声走的是另一条路径:在环路带宽内,它会被反馈压制;超出环路带宽后,反馈来不及修正,输出往往逐渐由 VCO 的本底相噪主导。

这就形成了 PLL 设计中最基本的折中。带宽做宽,环路跟踪快、锁定快,也更容易把参考端的抖动带到输出;带宽做窄,高频参考抖动传不过来,但锁定和漂移跟踪变慢,VCO 在较低偏移频率处的噪声也未必能得到充分压制。实际设计不是单纯追求“滤得越干净越好”,而是在参考噪声、VCO 噪声、锁定时间和稳定裕量之间选择交点。

CDR 可以看成一类从数据跳变中取得相位信息的 PLL。低频抖动落在 CDR 的跟踪范围内,恢复时钟会随之移动;高频抖动超出环路带宽后,CDR 不再跟随,但这些快速变化仍会直接压缩数据眼图的水平开口。因此,“CDR 不跟随高频抖动”和“接收机不怕高频抖动”并不是一回事。前者描述环路传递特性,后者还要看数据边沿相对于采样点剩下多少时序裕量。

前向时钟和嵌入式时钟

前向时钟也叫源同步时钟。发送端把数据和供接收端采样的时钟或选通信号一起送出,DDR 中的 DQ 与 DQS 就是典型例子。嵌入式时钟链路则没有独立的采样时钟通道,接收端必须利用数据跳变恢复时钟,PCIe、Ethernet 和多数高速串行接口都属于这一类。

前向时钟的优势来自相关性。数据和时钟由同一发送端产生,又沿着相近的封装和 PCB 路径传播,某些同时作用于两者的抖动和环境变化会作为共模时序误差一起移动。接收端真正关心的是数据与时钟之间的相对位置,只要二者一起移动,采样裕量不一定明显变差。它也不必依靠数据跳变来重建完整时钟,接收端时钟恢复电路可以更简单。

不过,发送端把时钟和数据对齐,只能保证它们离开发射器时的关系。到达接收端后,封装走线、PCB 长度、过孔、连接器、介电常数、驱动器延迟和接收门限都可能产生 clock-data skew。速率越高,单位间隔越短,同样的绝对延迟就会占据更大的 UI。10 Gb/s NRZ 的一个 UI 是 100 ps,而 106.25 GBd 的一个 UI 只有约 9.41 ps,几皮秒偏差已经不能忽略。高速源同步接口因此需要等长布线、训练、leveling、DLL 或相位插值器持续校准采样位置。

嵌入式时钟省去了独立时钟 lane,也避免了让一根远距离时钟线与所有数据 lane 长期保持固定相位关系,特别适合连接器、背板、铜缆和光纤等路径不完全可控的场景。代价是需要 CDR,同时必须保证数据具有足够的跳变密度。扰码和线路编码在这里很重要,但不能把前向时钟简单理解成“没有编码开销、总线效率一定更高”。是否编码取决于协议对直流平衡、频谱、差错检测和控制字符的要求;而独立时钟线本身也会占用引脚和布线资源。

SerDes速率的演进

高速接口里遇到一个速率,至少要先问清四件事:它位于协议的哪一层,是整个端口还是单条 lane,单位是 Gb/s 还是 GBd,使用 NRZ 还是 PAM4。第一代 Fibre Channel 是理解这些数字的好起点。按照 FCIA(Fibre Channel Industry Association)对这套速率体系的解释,1GFC 的设计目标是每个方向提供约 100 MB/s 的 payload 吞吐,而不是先随意选定 1.0625 GBd,再从这个数字反推业务能力。100 MB/s 换算成 bit 是 800 Mb/s,加入 FC 帧头、CRC、帧定界符等开销后,编码器前的数据流需要提高 6.25%:

100 MB/s×1716=106.25 MB/s=850 Mb/s100\ \mathrm{MB/s}\times\frac{17}{16} =106.25\ \mathrm{MB/s} =850\ \mathrm{Mb/s}

这就是 850 Mb/s 的来历。它包含 FC 帧等协议内容,但还没有加入 8b/10b 线路编码。编码器每收到 8 bit,就在线路上发送 10 bit,因此最终串行线路速率为

850 Mb/s×108=1062.5 Mb/s=1.0625 Gb/s850\ \mathrm{Mb/s}\times\frac{10}{8} =1062.5\ \mathrm{Mb/s} =1.0625\ \mathrm{Gb/s}

早期 Fibre Channel 的后续代际直接沿着物理速率翻倍:

代际 调制与编码 线路符号率 8b/10b编码前数据流 名义单向payload
1GFC NRZ、8b/10b 1.0625 GBd 0.85 Gb/s 100 MB/s
2GFC NRZ、8b/10b 2.125 GBd 1.70 Gb/s 200 MB/s
4GFC NRZ、8b/10b 4.25 GBd 3.40 Gb/s 400 MB/s
8GFC NRZ、8b/10b 8.50 GBd 6.80 Gb/s 800 MB/s

到了 16GFC,名义单向 payload 提高到 1600 MB/s。先将 Byte 换成 bit,再加入 6.25% 的 FC 帧开销:

1600 MB/s×8×1716=13.6 Gb/s1600\ \mathrm{MB/s}\times8\times\frac{17}{16} =13.6\ \mathrm{Gb/s}

16GFC 把线路编码改为更高效的 64b/66b,每 64 bit 在线路上发送 66 bit,所以:

13.6 Gb/s×6664=14.025 Gb/s=14.025 GBd13.6\ \mathrm{Gb/s}\times\frac{66}{64} =14.025\ \mathrm{Gb/s} =14.025\ \mathrm{GBd}

如果 16GFC 继续沿用 8b/10b,线路符号率就会达到

13.6×108=17 GBd13.6\times\frac{10}{8}=17\ \mathrm{GBd}

改用 64b/66b 后只需要 14.025 GBd。因此,16GFC 的 payload 是 8GFC 的两倍,物理符号率却不需要从 8.5 GBd 直接翻倍到 17 GBd。技术迭代改变的不只是时钟速度,也包括编码效率。

这里需要注意,Fibre Channel 是一套独立于 Ethernet 的完整网络协议体系,两者是并列关系。

从25G NRZ走到224G SerDes

Ethernet 更习惯用 MAC 侧的名义数据率命名。1 GbE 如果采用 8b/10b,为了承载 1 Gb/s,线路需要运行在

1×108=1.25 GBd1\times\frac{10}{8}=1.25\ \mathrm{GBd}

10GbE 进入 64b/66b 时代后,编码开销从 25% 降到 3.125%,所以 10 Gb/s 对应

10×6664=10.3125 Gb/s10\times\frac{66}{64}=10.3125\ \mathrm{Gb/s}

因为这里仍是 NRZ,线路符号率也是 10.3125 GBd。25GbE 沿用相同关系:

25×6664=25.78125 Gb/s=25.78125 GBd25\times\frac{66}{64}=25.78125\ \mathrm{Gb/s}=25.78125\ \mathrm{GBd}

行业把这一阶段的 SerDes 常统称为 25G 或 28G 级。这里的 28G 是能力等级和代际称呼,不是所有协议都必须跑在精确的 28.000 GBd。Ethernet 常见 25.78125,Fibre Channel 也有 28.05 等具体工作点。

继续提高 NRZ 波特率,会让单位间隔变短、奈奎斯特频率升高,PCB、封装和连接器的高频损耗迅速加重。PAM4 用四个电平让一个符号携带 2 bit,于是可以在接近原有波特率的情况下把每 lane 比特率提高一倍。这就是 50G 及以上高速 Ethernet 和现代 SerDes 大量采用 PAM4 的直接原因。

带 FEC 的高速 Ethernet 家族可以先抓住一个总倍率:PCS 与 RS-FEC 共同把名义数据率扩展到原来的 17/1617/16,也就是增加 6.25%。按照这一关系逐级计算:

  1. 50 Gb/s lane 经过编码后是

    50×1716=53.125 Gb/s50\times\frac{17}{16}=53.125\ \mathrm{Gb/s}

    使用 PAM4 后,符号率为 53.125/2=26.562553.125/2=26.5625 GBd。

  2. 100 Gb/s lane 经过编码后是

100×1716=106.25 Gb/s 100\times\frac{17}{16}=106.25\ \mathrm{Gb/s}

使用 PAM4 后,符号率为 106.25/2=53.125106.25/2=53.125 GBd。

  1. 200 Gb/s lane 经过编码后是

    200×1716=212.5 Gb/s200\times\frac{17}{16}=212.5\ \mathrm{Gb/s}

    使用 PAM4 后,符号率为 212.5/2=106.25212.5/2=106.25 GBd。

  2. 如果沿用同样的倍率讨论下一代 400 Gb/s lane,编码后是

    400×1716=425 Gb/s400\times\frac{17}{16}=425\ \mathrm{Gb/s}

    若仍使用 PAM4,符号率将达到 425/2=212.5425/2=212.5 GBd。425 Gb/s 目前更适合看作 400G/lane 研究中的编码数据率目标,不能和已经大规模标准化、部署的 100G/lane 混为同一成熟度。

这组数字的关系可以压缩成一张表:

名义每lane数据率 编码后比特率 PAM4符号率 常见行业代际
50 Gb/s 53.125 Gb/s 26.5625 GBd 56G SerDes
100 Gb/s 106.25 Gb/s 53.125 GBd 112G SerDes
200 Gb/s 212.5 Gb/s 106.25 GBd 224G SerDes
400 Gb/s 425 Gb/s 212.5 GBd 下一代400G/lane研究

OIF的公共SerDes代际

OIF建立的是跨协议的每-lane电气接口等级,这些公共代际分别覆盖多个协议工作点:

SerDes代际 Ethernet工作点 FC工作点
25/28G级 25.78125 Gb/s 32GFC:28.05 Gb/s
56G级 50G/lane:53.125 Gb/s 64GFC:57.8 Gb/s
112G级 100G/lane:106.25 Gb/s 128GFC:112.2 Gb/s
224G级 200G/lane:212.5 Gb/s 256GFC约224 Gb/s级

SerDes 代际通常表示 SerDes 每 lane 的数据速率等级,来自每代大致翻倍的工程路线,不是固定的波特率。OIF 在 56G 时代同时讨论过 56 GBd NRZ 和约 28 GBd PAM4;112G 接口主要使用约 56 GBd PAM4;224G 接口若继续采用 PAM4,则需要约 112 GBd。映射到 Ethernet 时,标准的精确工作点往往稍低:112G 级 SerDes 承载 106.25 Gb/s、53.125 GBd 的 100G/lane Ethernet,224G 级 SerDes 承载 212.5 Gb/s、106.25 GBd 的 200G/lane Ethernet。

所以看到一个速率数字时,最可靠的推导顺序始终相同:先确定上层要承载多少数据,再加入 PCS 和 FEC 开销得到编码后比特率,最后根据每个符号携带的 bit 数换算波特率。标准名称和 SerDes 代际只是便于交流的标签,真正落到示波器、PLL、CDR 和信道设计上,必须回到精确的 Gb/s、GBd、调制方式和 lane 数。

需要注意的是,协议一致性仿真使用协议规定的精确工作点;SerDes代际只表示模型必须具备的能力范围,不能直接作为仿真速率。支持 50G/lane Ethernet 协议就要用 26.5625 GBd 的 PAM4 信号,支持 64GFC 协议就用 28.9 GBd 的 PAM4 信号。

参考资料