• 正文
  • 相关推荐
申请入驻 产业图谱

PCIe 信号链Retimer / Redriver / Buffer / Switch / Driver这些有什么差别,你知道吗?

09/14 10:05
438
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,这里是大话硬件。PCIe 信号链Retimer / Redriver / Buffer / Switch / Driver这些有什么差别,你知道吗?这篇文章详细说清楚。

1、为什么需要这些器件:PCIe 信道的基础约束

PCIe 高速差分信号(Gen3 = 8 GT/s,Gen4 = 16 GT/s,Gen5 = 32 GT/s)在 PCB 走线、连接器、线缆中传播时会持续衰减。协议为每条链路规定了插入损耗(Insertion Loss)预算:接收端收到的信号必须仍然满足眼图模板要求。大致量级:

代际 速率 Nyquist 频率 信道插损预算(约)
Gen3 8 GT/s 4 GHz ~32 dB
Gen4 16 GT/s 8 GHz ~32 dB
Gen5 32 GT/s 16 GHz ~36 dB(对均衡要求更高)

PCB 走线在 Gen5 频段下每英寸损耗可达 1 dB 以上,加上过孔、AC 耦合电容、连接器、线缆的损耗,CPU 到远端设备很容易超出预算。这就催生了三类辅助器件:

中继器(Redriver / Retimer)——解决"传不远"的问题(信号质量);

Switch——解决"不够分"的问题(端口拓扑);

Clock Buffer / Driver——解决"不同步"的问题(参考时钟分发)。

记忆口诀:Retimer 管信号能不能到,Switch 管信号给谁,Clock Buffer 管大家步调一致。

二、Redriver(线性中继器 / 模拟中继)

工作原理

Redriver 是纯粹的模拟器件。它完全不理解 PCIe 协议,也不恢复数据,只对输入信号做两件事:

CTLE(连续时间线性均衡):用高频增益补偿信道的低通特性,把被压扁的高频分量抬回来;

线性放大:把信号摆幅放大到接近标准摆幅,提升接收端裕量。

由于是线性的,信号中包含的抖动、噪声、码间干扰也会被一同"放大或整形"——它能把劣化的眼图拉开一些,但无法彻底清除残留抖动。

特点

    延迟极低(几十 ps 级,只是传播延迟),不占用链路的 LTSSM 时间预算;功耗低、成本低、封装小;对协议透明:PCIe 链路训练(Equalization)时它在链路中"不存在",两端设备感知不到它;增益/均衡参数通常通过 I²C 或引脚配置,部分支持线性和接收端检测(RxDet)。

典型应用

    PCIe 插卡上从金手指到主芯片的短距离延长;M.2 / U.2 / OCuLink 线缆的轻量补偿;Gen3/Gen4 短链路中对成本敏感的场景(Gen5 因眼图极紧,Redriver 能力有限,业界逐渐转向 Retimer)。

局限:Redriver 只能"续一程"。如果前一段信道损耗已经接近上限、残留抖动过大,Redriver 输出的眼图依然不达标——这时必须换用 Retimer。

三、Retimer(重定时器 / 数字中继)

工作原理

Retimer 内部有一个完整的Serializer/Deserializer(SerDes)收发器,对信号做完整再生:

RX 均衡:CTLE + DFE(判决反馈均衡),把眼图完全打开;

CDR(时钟数据恢复):从数据流中提取嵌入的时钟,逐 bit 重采样判决——至此原始数据被"完整还原",抖动不再累积;

TX 重新发送:用本地干净时钟把数据重新串化发出,输出是一个全新的、接近理想摆幅的信号

相当于把一条长链路拆成了两条独立的短链路,每条都重新满足插损预算。

特点

    输出眼图彻底干净,可再延长 20~30 dB 以上的信道损耗;有真实的协议交互能力:支持 PCIe 链路训练(EQ)、Loopback、RxDet,部分支持 SRIS(独立时钟扩频)跨时钟域转发;固件/配置可调:均衡参数、pre-emphasis、电源管理(L1 子状态透传)等,通常外挂 EEPROM 或由主机加载固件;延迟比 Redriver 高(典型数百 ns 量级,取决于实现),对延迟极敏感的场景需评估;功耗与成本明显高于 Redriver。

典型应用

    AI 服务器中 GPU(OAM/UBB)到 Switch 之间的长距高速链路(Gen5/Gen6 几乎必用);背板 + 线卡架构:跨背板连接处放置 Retimer;线缆扩展(PCIe 外置线缆盒、MCIO/SlimSAS 连接);协议转换/跨代场景的信号整理。

四、Redriver vs Retimer 对比

维度 Redriver Retimer
本质 模拟线性放大器 数字 SerDes 中继
是否恢复数据 否,原样续传 是,CDR 判决后重发
抖动处理 残留抖动被保留/放大 抖动不累积,输出干净
延迟 几十 ps(传播级) 数百 ns 量级
协议感知 无(对链路完全透明) 有(参与 EQ/链路训练)
可延长距离 有限(约一个 Gen3 短链路) 长(可级联、跨背板/线缆)
功耗/成本
调试难度 低(配一下增益即可) 较高(固件、EQ、兼容性)
适用代际趋势 Gen3/Gen4 短链路 Gen4/5/6 主力方案

选择原则:眼图差得不多、追求低成本低延迟 → Redriver;损耗大、链路复杂、眼图接近闭合、Gen5 以上 → Retimer。不确定时优先 Retimer,它是更"安全"的方案。

五、Buffer(时钟缓冲器)与 Driver(时钟驱动器)

在 PCIe 语境里,"Buffer"和"Driver"通常指时钟域的器件——Clock Buffer / Clock Driver / Jitter Cleaner,而不是数据信号缓冲。(个别场合也存在数据信号 buffer,但 PCIe 数据链路上基本只讨论 Redriver/Retimer。)

为什么需要它

PCIe 有两条"线":差分数据对(TX/RX)100 MHz 参考时钟(REFCLK)。数据发送和采样都基于 REFCLK。板上有 CPU、Switch、多块设备时,REFCLK 怎么给?

SRNS(Separate Refclk, No Spread):各设备用独立晶振,不扩频。简单但每颗晶振都是抖动源;

SRIS(Separate Refclk, Independent Spread):两端各用自己的时钟(允许各自扩频),靠弹性缓冲(Elastic Buffer)吸收频差,是现代平台主流;

共用时钟(Common Clock):所有设备共享同一颗 REFCLK——这正是 Clock Buffer 的用武之地。

Clock Buffer / Driver 做什么

扇出(Fanout):1 路输入 → 多路输出(如 1:4、1:8),每路驱动一对差分时钟(HCSL/LVDS/LP-HCSL 电平),保证到达 CPU、Switch、各插槽的时钟同源同相;

驱动能力:晶振输出驱动能力很弱,无法直接推长走线+多个负载,Driver 负责整形和增强;

零延迟 Buffer(ZDB):内置 PLL 锁相,使各输出与输入之间的相位偏移为零,适合同步扩展;

Jitter Cleaner(抖动滤除器)窄带 PLL 只锁定输入时钟的长期频率、滤除带内抖动——给 Retimer/Switch/PHY 提供低抖动 REFCLK 时常用;

扩频时钟(SSC)支持:向下扩频降低 EMI,Buffer 需无损地传递扩频调制。

时钟是 PCIe 抖动预算的源头:REFCLK 的抖动会直接叠加到所有数据的发送与采样上。Gen5 对参考时钟抖动要求在百 fs 级,时钟方案选错,后面的信号优化都白做

六、Switch(PCIe 交换芯片)

工作原理

Switch 是协议层器件,本质上是一个"PCIe 总线路由器"。它在上游(Upstream Port,连 CPU/Root Complex)和多个下游(Downstream Port,连终端设备)之间按 TLP 包头里的地址/ID 做路由转发。它维护一个以 Root Complex 为根的虚拟 PCI 树:Switch 自身对系统呈现为一个"桥"(类型 1 头部配置空间),下游每个端口再枚举出各自的设备。

关键能力

端口拆分:如 x16 上行 → 4 个 x4 下行;部分支持 Bifurcation/端口宽度灵活配置;

TLP 路由与仲裁:多设备并发时做流量调度、虚拟通道(VC)仲裁;

P2P(Peer-to-Peer):下游设备之间可直接通信,不必绕行 CPU(如 GPU 之间、GPU 直读 NVMe);

ACS 特性:Access Control Services,配合虚拟化(SR-IOV、IOMMU)做隔离;

错序与重传处理:内部缓冲、Credit 流控管理。

重要认知

Switch 不能替代中继器:它只转发数据包,不解决"到 Switch 这一段"的信道损耗——所以服务器里常见"Retimer 放在 Switch 前后"的组合;

现代高端 Switch(如 Broadcom PEX 系列、Microchip Switchtec)内部每个端口往往集成 Retimer 级的信号调理能力

增加 Switch 意味着增加一跳延迟(几百 ns)、增加枚举层级,并占用一个桥资源。

典型应用

    GPU 服务器:一颗 CPU PCIe 通道不够分,用 Switch 挂 8 张 GPU;NVMe Switch / 存储背板:x4 上行 → 多个 U.2/M.2 盘位;工业/嵌入式:紧凑机箱内的多设备聚合。

七、关于"Driver"的澄清

题目中的 "driver" 在 PCIe 硬件语境下通常对应以下含义,注意区分:

Clock Driver / Clock Buffer:即第五节的时钟驱动/缓冲,最常见含义;

Jitter Cleaner / Jitter Attenuator:带锁相环的"驱动+清抖"器件,高端时钟树的标配;

Line Driver(线驱动器:增强信号驱动能力的通用模拟器件概念,Redriver 本质上就是一种应用于串行链路的线性驱动器;

软件 Driver(驱动程序:Switch/Retimer 厂商提供的内核驱动与固件升级工具——与硬件器件同名词不同物,学习硬件链路时勿混淆。

八、一张总表:四类器件定位速查

器件 层次 解决什么 是否感知协议 延迟量级 典型位置
Redriver 物理层(模拟) 短距信号衰减 几十 ps 插槽后、短走线处
Retimer 物理层(数字) 长距信号再生 是(EQ/LTSSM) 数百 ns 背板/线缆交界、GPU 链路
Switch 协议层(TLP 路由) 端口扩展/路由/P2P 是(完整桥设备) 数百 ns/跳 CPU 与多设备之间
Clock Buffer/Driver 时钟域 REFCLK 扇出/清抖 否(时钟专用) ps 级(相位对齐关键) 晶振与各芯片之间

九、实战设计要点(学习/画板时的检查清单)

先算插损预算:列出每段信道(走线+过孔+连接器+线缆)的损耗,判断是否需要中继、放哪一级;

中继位置尽量在链路中点附近:让前后两段损耗都处于接收端可接受范围,不要一段很烂一段很闲;

REFCLK 拓扑与 Retimer 要配套:如果用 SRIS,必须选支持 SRIS 的 Retimer;共用时钟方案注意 Buffer 的 SSC 传递与各路间偏斜(skew)要求;

Retimer 的固件与均衡配置:确认 EEPROM/烧录方式、与主机 BIOS 的兼容性、链路训练互操作(Interoperability)测试;

Switch 需要考虑:上行带宽是否够所有下游聚合流量、P2P 需求、ACS/虚拟化、热插拔支持(DRS/热复位时序);

功耗与散热:Gen5 Retimer/Switch 单芯片功耗可达数 W,注意供电与风道;

调试手段:链路训练状态(LTSSM)、误码率测试(BERT)、眼图扫描(Eye Scan)、PCIe 协议分析仪抓 TLP。

一句话总结:PCIe 链路上,Retimer/Redriver 是"信号加油站"(模拟续传 vs 数字再生),Switch 是"数据路由器"(协议层一拖多),Clock Buffer/Driver 是"节拍器分发站"(让所有芯片共用同一个时间基准)。三者经常同时出现在一张 AI 服务器主板上,各司其职、缺一不可。

关注我,让我成为你的专属小太阳吧

相关推荐

技术交流,经验分享。用时间打磨自己的手艺;用认知升级个人操作系统。

微信公众号