2、Retimer工作原理:CDR机制,信号重构与抖动消除,协议感知与转发模式

好,咱们接着聊Retimer。上一章我大概说了说Retimer在高速链路里扮演什么角色。这一章,咱们深入看看它到底是怎么工作的。

说白了,Retimer的核心就三件事:把歪歪扭扭的时钟和数据重新对齐,把被噪声污染的信号洗干净,再根据协议规则把数据原封不动地传出去。听起来简单?嗯,里面的门道可不少。

2.1 CDR(时钟数据恢复)机制

CDR,全称Clock Data Recovery。这是Retimer最基础、也是最关键的功能。你想想看,高速信号在PCB上跑了几十厘米,经过过孔、连接器,再到线缆,早就不是当初那个干净的样子了。时钟和数据的相位关系,早就乱成一锅粥。

CDR要做的,就是从这堆乱糟糟的信号里,把时钟信息“抠”出来,然后用这个恢复出来的时钟,重新去采样数据。

核心要点:CDR不是简单地放大信号,而是重新生成一个与数据流同步的本地时钟。

我在项目中遇到过一种情况:信号眼图看上去还行,但误码率就是下不去。后来排查发现,是CDR的锁定带宽设置得太宽,把噪声也锁进去了。嗯,这里要注意,CDR的环路带宽是个双刃剑。

2.1.1 CDR的基本架构

常见的CDR架构有两种:

  • 基于PLL的CDR:用鉴相器比较数据边沿和本地时钟,通过环路滤波器控制VCO。这是最经典的做法。
  • 基于相位插值器的CDR:用数字方式调整采样时钟的相位。现在很多高速Retimer都用这个,因为它更灵活,工艺迁移也方便。

我个人习惯,在10Gbps以上的链路里,优先考虑相位插值器架构。为什么?因为它的抖动容忍度更好调。你想想看,PLL的模拟环路一旦流片出来,想改带宽?没门。但数字的相位插值器,可以通过寄存器配置,现场调优。

2.1.2 CDR的锁定过程

CDR锁定,一般分两步:

  1. 频率捕获:先让本地时钟频率和数据的波特率大致对上。这一步通常靠参考时钟帮忙。
  2. 相位跟踪:然后精细调整相位,让采样点落在眼图的正中央。

我曾经调试过一个28Gbps的链路,CDR死活锁不住。折腾了两天,最后发现是参考时钟的精度不够。参考时钟的ppm(百万分比误差)直接决定了CDR能捕获的频率范围。这个坑,我替你们踩过了。

避坑指南:我曾经因为参考时钟的抖动过大,导致CDR锁定后误码率依然很高。记住,参考时钟的相位噪声,会直接传递到恢复出来的数据上。

2.2 信号重构与抖动消除

CDR把时钟恢复出来之后,下一步就是信号重构。这一步,说白了就是“重新发一遍”。

Retimer内部有一个完整的发送链路。它用恢复出来的时钟,把重新采样后的数据,通过自己的TX驱动器再发出去。这样一来,信号就获得了“新生”。

2.2.1 抖动是怎么被消除的?

抖动分两种:随机抖动(RJ)和确定性抖动(DJ)。

抖动类型 来源 Retimer的处理方式
随机抖动(RJ) 热噪声、散粒噪声 通过CDR的环路滤波,高频RJ被滤除
确定性抖动(DJ) ISI、串扰、反射 通过重新定时,彻底消除

注意看表格。对于确定性抖动,Retimer几乎是“一刀切”。因为它是重新发送,所以之前信道带来的码间干扰(ISI)、串扰,统统跟它没关系了。但随机抖动,CDR只能滤除高频部分,低频的随机抖动还是会传递过去。

嗯,这里要强调一下:Retimer不能消除所有抖动。它主要消除的是信道带来的确定性抖动。对于源端本身的随机抖动,它只能做到“不增加”,很难完全消除。

2.2.2 信号重构的CTLE和DFE

在信号重构之前,Retimer通常还会做均衡。常见的均衡手段有:

  • CTLE(连续时间线性均衡器):放大高频分量,补偿信道的高频损耗。
  • DFE(判决反馈均衡器):消除后标干扰(post-cursor ISI)。

我建议,在做链路预算时,一定要把Retimer内部的CTLE增益和DFE抽头数考虑进去。有些芯片的CTLE可以做到12dB甚至更高,这能大大放宽对PCB走线损耗的要求。

小技巧:如果你发现链路余量不够,可以试试调整Retimer的CTLE增益档位。但别调太高,否则会把高频噪声也放大。我一般从中间档位开始试,然后看误码率变化。

2.3 协议感知与转发模式

这是Retimer和Redriver最大的区别。Retimer不是傻傻地放大信号,它能“看懂”协议。

2.3.1 协议感知是什么意思?

以PCIe为例。PCIe链路上有各种有序集(Ordered Sets),比如TS1、TS2、SKP等等。Retimer能识别这些序列,并且知道什么时候该转发,什么时候该插入或者删除字符。

举个例子:PCIe的SKP有序集是用来做时钟补偿的。如果上下游的时钟频率有微小差异,Retimer会在SKP序列里插入或删除一个SKP字符,来吸收这个频率差。Redriver做不到这一点。

我记得有一次,客户说链路偶尔会断。抓包发现,是两端的参考时钟频率偏差超过了300ppm,Retimer的SKP补偿机制没处理好,导致数据溢出。后来换了一款SKP处理更灵活的Retimer,问题就解决了。

2.3.2 转发模式

Retimer的转发模式,通常有三种:

  1. 透明模式(Transparent Mode):Retimer不修改数据内容,只做CDR和信号重构。这是最常见的模式。
  2. 转发模式(Forwarding Mode):Retimer会解析部分协议字段,比如PCIe的TLP头,然后根据规则转发。这种模式延迟会大一些。
  3. 重定时模式(Retiming Mode):这是最严格的模式。Retimer会完全按照协议规范,重新生成所有数据和控制信号。

你想想看,不同的模式,延迟和功耗都不一样。在做系统设计时,要根据实际需求来选。如果对延迟敏感,就用透明模式。如果需要做一些协议级的处理,比如错误检测,那就得用转发模式。

重要提醒:协议感知能力,是Retimer选型时最容易忽略的点。有些Retimer号称支持PCIe 5.0,但它的SKP补偿逻辑只支持32GT/s,不支持16GT/s的向下兼容。这种细节,数据手册里往往不会明说,得靠经验去问FAE。

2.4 本章核心逻辑图

下面这张图,是我用SVG画的,展示了Retimer内部的核心处理流程。从脏信号进来,到干净信号出去,每一步都离不开CDR、均衡和协议处理。

Retimer 核心处理流程 脏信号输入 CTLE 均衡 CDR 时钟恢复 数据重采样 DFE + 协议感知 SKP补偿 数据转发 干净信号输出 CDR锁定反馈 抖动消除:RJ被滤除,DJ被消除 协议感知:识别有序集,做SKP补偿

从这张图可以看得很清楚:信号进来,先经过CTLE做初步的幅度和频率补偿,然后进入CDR模块恢复时钟并重采样,再经过DFE消除后标干扰,最后通过协议感知模块做SKP补偿和转发。整个过程,就是一个“再生”的过程。

好了,这一章的内容就到这里。Retimer的工作原理,说白了就是“重新发一遍”,但这一遍发得好不好,直接决定了整个链路的成败。下一章,咱们聊聊怎么根据这些原理,去选一颗合适的Retimer芯片。


公众号:蓝海资料掘金营,微信deep3321