2、物理层基础:USB4与CXL的物理层架构对比
各位好,今天我们聊聊物理层。说实话,很多做验证的兄弟一听到「物理层」三个字就想跳过,觉得那是模拟工程师的事。我以前也这么想,直到有一次在项目中,SerDes 眼图死活闭不上,我才意识到——不懂物理层,你连问题出在哪都说不清楚。
USB4 和 CXL,虽然都是高速接口,但物理层的设计思路差别挺大。咱们今天就把它们掰开揉碎,看看 SerDes 怎么工作、PAM3 和 NRZ 到底谁更牛。
2.1 SerDes:高速传输的「心脏」
SerDes,全称 Serializer/Deserializer。说白了,就是把并行数据转成串行,扔到一根线上跑,到了接收端再转回并行。为什么要这么折腾?因为并行线多了,时钟偏斜、串扰这些问题会让你头疼到怀疑人生。
我习惯把 SerDes 分成三块来看:
- 发送端(TX):负责把并行数据串行化,加上均衡、预加重,然后推出去。
- 信道:就是 PCB 走线、连接器、电缆这些物理介质。嗯,这里往往是整个链路最薄弱的环节。
- 接收端(RX):负责均衡、时钟恢复、数据判决,最后把串行数据转回并行。
USB4 和 CXL 都用了 SerDes,但具体参数不一样。我整理了一张表,方便大家对比:
| 参数 | USB4 Gen3 | CXL 2.0/3.0 |
|---|---|---|
| 单 Lane 速率 | 20 Gbps | 32 GT/s (PCIe 5.0) |
| 调制方式 | PAM3 | NRZ (PAM2) |
| Lane 数 | 2 Lane (双向) | x4, x8, x16 |
| 编码方式 | 128b/132b | 128b/130b |
| 参考时钟 | 独立或嵌入 | 独立参考时钟 |
你看,USB4 单 Lane 跑 20 Gbps,CXL 直接干到 32 GT/s。但速率越高,信号完整性问题越严重。我在项目中遇到过,CXL 的 32 GT/s 链路,稍微走线长一点,眼图就塌了。后来加了 CTLE 和 DFE 才救回来。
2.2 PAM3 vs NRZ:两种调制方式的「爱恨情仇」
好,接下来是重头戏。USB4 用了 PAM3,CXL 用了 NRZ。为什么会有这种差异?咱们一个一个说。
2.2.1 NRZ:简单可靠,但带宽受限
NRZ,全称 Non-Return-to-Zero,也叫 PAM2。它只有两个电平:0 和 1。每个符号传输 1 比特信息。
优点很明显:
- 噪声容限大,抗干扰能力强
- 接收端判决简单,时钟恢复容易
- 业界积累了几十年的经验,工具链成熟
缺点呢?说白了,就是带宽利用率低。你想传 32 GT/s,信号带宽就得接近 16 GHz。PCB 和连接器在这个频率下损耗非常大,设计难度直线上升。
我曾经调试过一个 CXL 链路,32 GT/s 的信号经过 20 英寸的 PCB 走线后,眼图几乎完全闭合。最后不得不加了三阶 CTLE 和 5 抽头的 DFE 才勉强通过一致性测试。嗯,那段时间真是加班加到怀疑人生。
2.2.2 PAM3:用复杂度换带宽
PAM3,全称 Pulse Amplitude Modulation with 3 levels。它有三个电平:-1、0、+1。每个符号可以传输 log2(3) ≈ 1.58 比特信息。
USB4 为什么选 PAM3?原因很简单:在同样的物理带宽下,PAM3 能跑更高的数据速率。USB4 Gen3 单 Lane 20 Gbps,如果用 NRZ,信号带宽需要 10 GHz;用 PAM3,带宽只需要 20 / 1.58 ≈ 12.7 GHz。虽然还是高,但比 NRZ 的 10 GHz 要低一些?等等,这里我算错了——实际上 PAM3 的符号率是 20 / 1.58 ≈ 12.66 Gbaud,而 NRZ 要达到 20 Gbps 需要 20 Gbaud。所以 PAM3 的符号率更低,对信道的要求反而更宽松。
但天下没有免费的午餐。PAM3 的代价是什么?
- 三个电平,噪声容限只有 NRZ 的一半左右
- 接收端需要更复杂的均衡和判决电路
- 时钟恢复也更困难,因为跳变幅度变小了
核心对比:
- NRZ:简单、可靠、带宽利用率低
- PAM3:复杂、对信道友好、噪声容限小
2.3 物理层架构对比:USB4 vs CXL
咱们把两个架构放在一起,看看整体设计思路的差异。
2.3.1 USB4 物理层架构
USB4 的物理层分为三层:
- 电气层:负责 SerDes、PAM3 调制、均衡、预加重
- 逻辑层:负责 128b/132b 编码、扰码、对齐标记插入
- 协议适配层:负责将 USB4、DP、PCIe 等协议映射到物理层
我个人觉得 USB4 的设计思路是「通用性优先」。它要同时承载 USB、DisplayPort、PCIe 三种协议,所以物理层必须足够灵活。PAM3 的选用,也是为了在有限的信道带宽下,尽可能提高数据速率。
2.3.2 CXL 物理层架构
CXL 的物理层直接复用 PCIe 5.0 的物理层。所以它的架构和 PCIe 几乎一样:
- 物理层逻辑子层:负责 128b/130b 编码、扰码、链路训练
- 物理层电气子层:负责 SerDes、NRZ 调制、均衡
CXL 的思路是「性能优先」。它不需要兼容那么多协议,所以可以专注于把速率做到极致。NRZ 虽然带宽利用率低,但可靠性高,适合数据中心这种对稳定性要求极高的场景。
避坑指南:
我曾经在调试 USB4 链路时,发现 PAM3 的眼图总是有「三只眼」大小不一的问题。后来查了半天,发现是发送端的预加重系数没调对。PAM3 的三个电平,预加重要分别配置,不能像 NRZ 那样一刀切。这个坑,我替你们踩过了。
2.4 知识体系图
下面这张图,我把 USB4 和 CXL 的物理层架构画在了一起,方便大家对比理解:
2.5 调试中的实际差异
说完了理论,聊聊实际调试中的感受。
USB4 的调试难点:
- PAM3 的眼图有三个「眼睛」,每个都要单独测量。我记得第一次看 PAM3 眼图时,差点以为示波器坏了——怎么有三个眼?
- PAM3 的噪声容限小,对 PCB 走线、连接器的要求更高。稍微有点阻抗不连续,眼图就塌了。
- 时钟恢复也更敏感。PAM3 的跳变幅度只有 NRZ 的一半,CDR 容易失锁。
CXL 的调试难点:
- 32 GT/s 的速率,信号完整性是最大的挑战。我建议你们在 PCB 设计阶段就做好仿真,不然后期改板子成本太高。
- 链路训练状态机(LTSSM)的调试很繁琐。CXL 复用了 PCIe 的 LTSSM,但增加了 CXL 特有的状态。我曾经遇到过链路卡在 Polling 状态,查了两天才发现是参考时钟的抖动超标。
- 均衡参数的调优是个体力活。CTLE 的增益、DFE 的抽头系数,都要根据实际信道特性来调。没有捷径,只能一遍遍试。
重要提醒:
不管你是做 USB4 还是 CXL,物理层的调试都离不开好的测试设备。示波器至少要有 40 GHz 的带宽,误码仪也要支持对应的速率。别想着用便宜设备凑合——我在项目中吃过这个亏,测出来的眼图全是假的。
2.6 小结
好了,今天的内容就到这里。USB4 和 CXL 的物理层,一个选了 PAM3,一个坚持 NRZ,背后都是工程上的权衡。没有绝对的好坏,只有适合不适合。
我个人觉得,理解物理层的关键在于「信号完整性」这四个字。不管调制方式怎么变,SerDes 怎么升级,最终都要落到眼图、抖动、误码率这些指标上。把这些基础打牢了,不管以后出来什么新接口,你都能快速上手。
好,今天就聊这么多。下次咱们接着聊链路训练和初始化流程,那个更有意思。