news 2026/10/6 15:35:20

PCIe Retimer深度解析:原理、选型与调试实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PCIe Retimer深度解析:原理、选型与调试实战

上周处理一块PCIe Gen5显卡扩展坞,板子插上去之后怎么都协商不到Gen5,反复掉到Gen1。折腾了两天,换了好几版驱动和BIOS设置,最后一查才发现问题出在一颗Retimer芯片上——固件根本没有烧录进去,芯片默认跑在最低配状态,把整条链路拖回了PCIe 1.0时代。

这个经历让我特别想聊一聊PCIe Retimer。在很多人眼里,它就是个“高级信号放大器”,但实际设计、调试过的人都知道,它在链路里的角色比想象中复杂得多。它既有信号再生能力,又具备一定的物理层训练感知能力,但它又不像PCIe Switch那样参与总线枚举。这篇文章我就把Retimer的原理、选型、应用场景和调试经验一次说透,希望能帮到正在做PCIe设计的硬件工程师、SI工程师,以及写底层枚举代码的朋友。

1. PCIe速率一路狂飙,Retimer为什么成了刚需

1.1 高速信号衰减的物理根源

PCIe通道速率从Gen1的2.5GT/s一路走到Gen6的64GT/s,每翻一代,信号的Nyquist频率就翻一倍。Gen3时代是8GT/s,对应4GHz的Nyquist频率;Gen4是16GT/s,对应8GHz;Gen5到了32GT/s,Nyquist频率直接飙到16GHz;Gen6的64GT/s更是采用了PAM4调制,把频率压力推向另一个量级。

频率越高,PCB上走线对信号的伤害就越明显。高速串行信号的衰减主要来自三方面:一是导体损耗,高频电流趋向导体表面,有效截面积减小,导致电阻增大;二是介质损耗,FR4板材在16GHz附近损耗因子迅速恶化,信号能量被板材本身吸收;第三是反射和串扰,过孔、连接器、走线换层处的阻抗不连续,以及相邻信号线之间的耦合,都会让眼图进一步劣化。

用生活里的场景类比:一个人用正常语速说话,隔两条街都能听清;但如果用两倍语速、再加上周围环境噪声,同样距离下就很容易听岔。PCIe高速信号就是那个“越说越快”的人,而PCB、连接器、线缆就是那条越来越嘈杂的街道。再加上码间干扰(ISI),符号与符号之间互相“串台”,接收端想从一团乱麻里恢复出原始比特流,难度呈指数级上升。

1.2 板卡形态与连接器带来的链路预算困境

实际板卡里,信号从Root Complex芯片引脚出发,要经过封装、BGA过孔、主板走线、连接器、子卡走线,最后到达Endpoint芯片引脚。如果做的是服务器,还可能经过背板或线缆。每一段都在消耗信号质量,业内把这些损耗统称为“链路插损预算”。

以PCIe Gen5为例,很多Root Complex对链路插损的规范要求大概在20dB以内,而一个普通PCIe x16插槽加上连接器本身就可能消耗3到6dB,再从CPU到第一个插槽走线十几英寸,损耗很容易就逼近或者超过预算红线。到了Gen6的PAM4信号,对信噪比的敏感度远比NRZ更高,哪怕插损只多出2dB,误码率就可能从可接受范围直接跳到不可用。

除了插损,还有抖动(Jitter)。PCIe信号是串行数据,接收端要靠恢复出的时钟来决定何时采样数据,抖动会导致采样点偏移、误码率上升。抖动又分红人抖(随机抖动RJ)和决定性抖动(DJ),后者包括数据相关抖动(DDJ)、周期抖动(PJ)等。走线越长、连接器越多、串扰源越多,抖动就越严重。

1.3 “续命”方案的进化:Redriver、Retimer、Switch

为了对抗链路损耗,业界出现了三类常见器件:Redriver(重驱动器)、Retimer(重定时器)和Switch(交换机)。Redriver最便宜,本质是把衰减后的信号做模拟均衡和放大,但它没有时钟恢复能力,只能“把话再说大声一点”,听不清的问题依然存在。Switch能彻底解决问题,但它是一个完整的协议级设备,成本高、延迟大、参与总线枚举,不是所有场景都需要它。

Retimer正好卡在两者之间:它不做协议路由,不改变系统拓扑,对操作系统和BIOS完全透明;但它有完整的时钟数据恢复(CDR)和发射端均衡能力,能从物理层面把信号“重讲一遍”。这也是为什么到了Gen5和Gen6时代,Retimer几乎成为高速板卡的标配。

2. Retimer的工作原理:重定时到底做了什么

2.1 Retimer内部的信号处理链路

一个标准的PCIe Retimer芯片,内部按通道划分,每条通道都包含完整的模拟前端和数字处理逻辑。信号进来后,首先经过接收端的连续时间线性均衡器(CTLE)和决策反馈均衡器(DFE),把高频分量补回来、把低频分量往下压,让眼图尽量打开。

然后是**时钟数据恢复(CDR)**这一步,也是Retimer和Redriver分道扬镳的地方。CDR电路从输入数据流里提取时钟信号,用提取出的时钟重新对准数据边界,把累积的抖动“清零”一遍。之后数据被重新采样,进入发射端,发射端再按目标速率发射出去,采用预加重(De-emphasis / Pre-shoot)等手段优化信号上升沿和下降沿,让下一段链路尽可能轻松地接收。

打个比方:Redriver像是复读机里的麦克风放大,只会让你说话声音更大;Retimer则像一个同声传译,它先把你说的话完整听清,然后重新组织语言、以清晰标准的方式再讲一遍给对面。对方听到的,是几乎没有你个人口音和背景噪声影响的“干净版本”。

注意:Retimer不是简单地把模拟信号放大,而是把模拟信号转成数字域重新整形。这个“模拟转数字再转模拟”的过程,正是它能够同时消除随机抖动和确定性抖动的原因。

2.2 半透明设备:不懂TLP,但懂LTSSM

有人会问:Retimer既然把信号恢复成“干净数据”,那它是不是完全理解了PCIe协议?答案是:不完全是。

PCIe协议栈从逻辑上分物理层、数据链路层、事务层。Retimer主要在物理层工作,它不解析TLP(事务层报文)、不处理流控、不转发ACK/NAK,更不参与地址路由。如果你用协议分析仪在Retimer前后同时抓包,看到的事务层内容完全一致。

但Retimer确实又“懂”一部分物理层协议,特别是LTSSM(链路训练状态机)。它会在Polling阶段监听 TS1/TS2 Ordered Sets,确认链路速率和位宽;进入Configuration阶段时转发链路训练序列;在均衡(Equalization)阶段,它会参与收发端的均衡系数协商,甚至可以在两个方向上主动调整自身的滤波器配置。这就是为什么业界通常称Retimer为“半透明设备”:对软件透明,对信号和物理层训练不透明。

2.3 均衡优化:按方向独立调节

PCIe链路是双向的,上游方向(Endpoint到Root Complex)和下游方向(Root Complex到Endpoint)的通道特性往往不一样。比如显卡插在子卡上,上游方向走线短、损耗小,下游方向因为要跨过插槽和长主板走线,损耗大。

Redriver只能按固定增益放大,很难针对每个方向独立补偿。Retimer的优势在于接收端和发射端的均衡参数可以独立设置——下游方向的接收均衡和发射预加重,可以按根端处理器那侧的链路预算精细调节;上游方向则按Endpoint那侧的实际损耗单独配置。这在链路链路损耗不对称的场景里非常实用,可以最大化两端各自的眼图裕量。

2.4 延迟的代价与可接受范围

任何信号再生方案都要付出延迟代价。Redriver的延迟通常在几十皮秒到几百皮秒,基本可以忽略。Retimer由于要做CDR和重新采样,延迟通常在几纳秒到十几纳秒,具体取决于芯片设计、链路速率和流水线深度。PCIe Switch则动辄几百纳秒以上。

那几纳秒延迟对PCIe协议有影响吗?大多数情况下没有。PCIe的报文传输延迟预算比较宽裕,数据链路层的ACK超时定时器通常以微秒为单位计算,几纳秒的固定时延不会触发重传机制。在高性能计算场景中,如果做的是大量短报文的低延迟通信,Retimer的延迟影响也远小于Switch,但会比纯Redriver略微多出一点。设计时如果对延迟极度敏感,比如做高频金融交易的低延迟网卡,需要特别评估这一点。

3. 三种器件的分工:Redriver、Retimer、Switch怎么选

3.1 Redriver:只放大,不修复

Redriver从信号链路上看就是一个可编程增益放大器加均衡器,业界比较常见的实现是线性均衡器配合可调增益级,把本来就衰落的信号拉回合理幅度。

它的优点是显而易见的:功耗低(几百毫瓦甚至更低)、封装小、成本便宜、延迟极低,而且不需要额外配置固件,很多型号上电即用。但在Gen4/Gen5高速率场景下,它有一个致命短板:没有CDR,就不能消除抖动。信号经过长距离传输后,不仅幅度衰减,边沿位置也偏移了,Redriver把这些“偏移了边沿的大声说话”继续往后传,链路中后端的接收器依然很难采样。

3.2 Retimer:修复时钟,重新发射

Retimer的核心价值是“让信号重新变干净”。它通过CDR机制彻底消除前一跳积累的抖动,再以新时钟重新发射,因此信号质量恢复的程度远超Redriver。

代价是成本更高、功耗更大(单通道功耗通常在几百毫瓦到一两瓦,取决于速率),延迟增加到纳秒级。此外Retimer通常需要外挂配置ROM或在启动时由软件写寄存器,复位时序、参考时钟要求也更高。但在信号已经相当恶劣的场景里,它是唯一能在不改动协议栈的前提下明显改善链路的方案。

3.3 Switch:协议级路由,和Retimer完全不是一回事

PCIe Switch是另一种完全不同的器件,它位于协议层,能够理解TLP、解析配置空间、做地址路由和转发。系统上电后,BIOS会发现Switch,为它的上游端口和多个下游端口分配总线号,挂在其下的Endpoint才能被正确枚举。

Switch可以同时实现“扩展更多设备”和“延长物理距离”两个目标。但这也意味着,它对软件可见,拓扑会改变,配置复杂,延迟高,成本也高。一个常见的误解是“既然链路质量差,就加个Switch吧”,这其实是拿大炮打蚊子,大多数时候只需要Retimer就够了。

3.4 一张表总结与选型建议

维度RedriverRetimerSwitch
信号放大支持支持支持(附带)
时钟恢复(CDR)不支持支持支持
抖动消除基本不能能能
协议感知无物理层LTSSM感知完整协议栈
对软件透明度完全透明完全透明不透明,参与枚举
拓扑影响无无会增加总线设备树
典型延迟皮秒级纳秒级百纳秒以上
成本低中高很高
功耗低中高高
适用场景短距离、低成本补偿中长距离、高损耗链路多端口扩展、带宽拆分

选型逻辑其实很清晰:如果链路插损只在节奏边缘,用Redriver便宜解决;如果链路长度已经明显超标、连接器多、或者跑到了Gen5/Gen6,直接上Retimer;如果目的是扩展设备数量、拆分带宽,那才考虑Switch。现实系统里经常是Switch和Retimer配合使用,比如Switch本身就自带一定的信号增强能力,但下游出线距离太远时,仍然会在每条出线链路上再接Retimer补一跳。

4. 典型应用场景:哪些板卡真正需要Retimer

4.1 GPU服务器与AI加速卡:高速x16链路的守护者

GPU服务器是Retimer使用最密集的场景之一。现代AI加速卡都是PCIe Gen5 x16通道,单条链路数据速率高达64GT/s(双向合计更高)。GPU功耗大、散热器体积大,物理上不可能离CPU很近,主板上从CPU到GPU插槽的走线往往要绕开CPU散热器和电源模块,长度轻松超过15英寸,插损非常可观。

如果再加一块双槽甚至三槽位的PCIe Switch板卡,链路就要经过主板走线、Switch封装、下游出线、第二个连接器,甚至MCIO线缆连接到GPU模块,整个链路预算经常超标。在这种架构下,业界通用的做法是在Switch下游出线处放置Retimer芯片,把每一条x16链路都补一跳,保证信号到达GPU时眼图仍然足够干净。实际调试中,我们测过有些GPU卡在Gen5稳定性和Retimer的位置强相关,位置放错了,跑高负载时就会出“链路降速”甚至“设备掉卡”的间歇性故障。

4.2 PCIe Switch下游出线:多端口扩展的标配

很多存储控制器、AI加速平台、网络功能虚拟化设备内部会用到PCIe Switch做端口扩展。Switch的物理封装往往只能提供一个或两个上游端口、若干下游端口。下游端口要接到不同的NVMe盘位、网卡插槽、FPGA模块,出线方向五花八门,走线长度不可能都限制在很短距离内。

在这种多端口场景里,常见拓扑是CPU的Root Complex接到Switch上游,Switch下游的每一个端口先短距出线到Retimer,再从Retimer长距走线到背板、连接器或子卡。为什么Retimer放在Switch之后而不是之前?因为Retimer不参与地址路由,它放在下游侧可以独立为每个端口的链路“续命”,而不会改变Switch和Endpoint之间的枚举关系。如果在Switch上游放一颗Retimer,最多只能改善CPU到Switch这段链路的质量,下游该衰减还是衰减,价值大打折扣。

4.3 NVMe存储背板:盘位越多,越离不开Retimer

NVMe SSD背板是Retimer另一个高频应用场景。U.2、E3.S、EDSFF这些盘位标准在物理上允许主板和背板分离,中间靠高速连接器和线缆连接。背板上一排插满8个甚至24个NVMe SSD时,每个盘位对应的PCIe x4链路都要从主板控制器的Root Complex或Switch端口,穿过连接器,再走一段背板布线才能到达盘位。

盘位数量一多,连接器的插拔次数也多,接触电阻和插损一致性变差,链路的裕量就非常紧张。有些三模背板(SAS/SATA/NVMe)还涉及复杂的信号路由切换,本身就会引入额外的插入损耗。Retimer在这种情况下通常放在主板侧:背板只做被动走线,Retimer把主板侧到背板连接器的长距离损耗补回来,背板上剩下的短线链路就不再需要额外器件。这也是出于成本和可维护性考虑——背板被拔插的次数多,器件越少越可靠。

4.4 网卡与PCIe转接口:大部分时候不需要,高密度板卡会用到

有人问“PCIe转网口电路设计里要不要加Retimer”。说实话,绝大多数普通网卡不需要。主流网卡是PCIe Gen4或Gen5 x1/x4通道,网卡边缘连接器到主板PCIe插槽的走线很短,信号裕量往往充足,加Retimer纯粹是浪费。

但高密度场景不一样。OCP NIC 3.0规范这类卡在服务器上插得非常密集,主板和网卡之间有大量连接器叠层,局部背板走线再加上可插拔线缆,链路预算就可能逼近甚至超过阈值。此时在OCP网卡插槽附近加Retimer,或者直接集成在网卡形态里,就是常见做法。特别是TSN时间敏感网络板卡这类对延迟和稳定性要求苛刻的工业网卡,宁可多花一点成本做信号保证,也不愿在高负载时出现链路调优失败导致丢包。

4.5 外置线缆与CEM规范:从板内走到板外

PCIe不仅能走PCB板内,还能通过线缆连接外部设备。CEM(Card Electromechanical)规范不仅定义了板卡与插槽的机械尺寸,也定义了在一定结构条件下的信号完整性要求。PCIe Gen5/Gen6时代,CEM规范对线缆和卡槽的信号质量要求更严格,链路长度稍长,就必须借助Retimer。

比如外置GPU扩展坞、NVMe外接存储、PCIe机箱互联等场景,线缆长度动辄半米到一米,板卡上的连接器还可能有多次拔插损耗。Retimer往往直接做在线缆两端或扩展坞的主板上,通过均衡配置把线缆损耗补足。设计时要在规范规定的插损预算里留足够的余量,同时考虑不同厂商线缆的阻抗差异,Retimer的发射端均衡参数通常需要留一组可调配置,供产线校准或现场调试使用。

5. 实战经验:选型、布局、固件里的那些坑

5.1 选型时真正该看的几个参数

Retimer选型时,首先关注通道数和支持的速率。常见规格从x1到x16不等,速率必须向下兼容,比如一颗支持PCIe Gen5的Retimer通常要能跑Gen1到Gen5所有速率。

然后是参考时钟架构。PCIe系统一般使用Common Clock架构,即Root Complex提供100MHz参考时钟给所有设备;部分系统可能使用Independent Refclk架构。Retimer必须支持系统采用的时钟架构类型,否则CDR锁定会失败。有些Retimer还支持SRIS(Separate Reference Clock with Independent Spread)特性,选型时最好确认芯片是否支持你平台所用的时钟模型。

第三看封装和功耗。Retimer通常发热明显,高通道数、高功耗的型号需要为散热留空间,否则高温下均衡参数飘移会导致链路不稳定。最后看外部配置接口:绝大多数Retimer需要EEPROM加载配置,或者支持SPI/I2C寄存器写入,选型时确认芯片的默认配置是否符合你预期的最低运行模式,这会直接影响调试阶段能否快速点亮。

注意:Retimer不像普通的PHY那样上电就能自动工作,它通常需要比较完整的初始化流程,包括等待参考时钟稳定、复位释放、加载配置、再等待LTSSM训练。很多人第一次调板子,上电后在操作系统的设备管理器里看不到下游设备,慌了,其实只是Retimer还没初始化完成。

5.2 布局布线的关键:放哪里、怎么供电、怎么走时钟

Retimer摆放在链路上的位置很有讲究。一般原则是放在链路中“损耗相对均衡的分界点”,让Retimer前一段与后一段的信号质量都有余地。如果放得太靠近接收端,Retimer之前那段已经极度衰减,接收端靠自身均衡也很难锁定时钟;放得太靠近发送端,Retimer把信号补得很完美了,但后面一大段又让它损耗殆尽。所以设计时通常要做分段插损仿真,用S参数分别评估各段,再决定Retimer的具体位置。

供电是另一个容易踩坑的地方。高速SerDes对电源噪声极其敏感,Retimer的模拟电源域如果有较大纹波,会直接恶化CDR输出时钟的抖动。规划电源时,建议将Retimer的模拟电源和数字电源分开,用磁珠隔离,配合多颗高质量去耦电容,并保证电源平面完整,不要在Retimer正下方铺碎地。

参考时钟走线也不能马虎。100MHz参考时钟通常从Root Complex或时钟缓冲器分路而来,每一路到Retimer的长度差要尽量控制,因为Retimer内部会把Refclk分频后作为重定时时钟的基础。如果Refclk抖动过大,CDR即使恢复了数据时钟,也可能因为参考频率漂移而无法稳定锁定。布局上,可以考虑预留0欧电阻或RC滤波器的空位,方便在调试时优化时钟波形。

5.3 EEPROM、寄存器与初始化时序

Retimer的初始化流程业界常见两种方式:一种是从外部EEPROM加载默认配置,另一种是上电后由控制器的固件通过I2C/SPI写寄存器。前者适合“不需要软件感知”的纯硬件方案,后者适合可以动态调整的场景。很多Retimer芯片支持既读EEPROM初始配置,也允许后面的固件再覆盖配置,调试时注意区分“上电加载”和“运行期改写”两个阶段。

初始化时序上,最关键的信号是复位和参考时钟。PCIe系统里一般有PERST#复位信号,它应该在电源稳定后拉低一段时间再释放。Retimer的复位时序必须和链路两端的Root Complex、Endpoint保持一致,不能在对方已经开始LTSSM训练时还处于复位状态,否则训练会反复超时,最后链路锁定在低速模式。

EEPROM里通常要配置的内容包括:链路位宽、支持的速率掩码、均衡参数预设、通道极性反转、去加重级别等。常见错误是拿到一个二手模块或未烧录模组,EEPROM是空的,Retimer用默认配置启动,可能只能工作在Gen1/Gen2速率,或者不支持某些通道极性组合。前面提到的Gen5显卡扩展坞问题就是典型代表。

5.4 调试链路:从LTSSM状态码到眼图

调试Retimer相关的问题,要有系统性的排查思路。最粗暴、也最容易定位问题范围的方法是看LTSSM当前停在哪个状态。Linux下可以用lspci -vvv查看Link Status;Windows里可以用PCIe分析工具读下游端口的Link Status寄存器。常见的失败现象是:

  • 卡在Polling.Active或Polling.Configuration,说明TS1/TS2没有正常交换,Retimer可能没初始化好,或者收发方向极性配置错了。
  • 卡在Configuration.IDLE,说明链路位宽协商失败,常见原因是双向位宽的自动检测被某侧的引脚锁定限制住了。
  • 卡在Recovery.RcvrLock阶段反复重启,说明进入Recovery后信号质量依然不行,要重点看均衡参数和CDR锁定裕量。

如果手头有PCIe协议分析仪,可以把分析仪串在Retimer和Endpoint之间抓取训练序列,观察TS1/TS2是否被正常转发、均衡系数协商是否完成。没有分析仪时,也可以用FPGA的XDMA或CPU的芯片组做回环测试,通过长时间高负载读写来验证链路稳定性。如果高负载下偶发降速,多半是眼图裕量不足,此时优先调整Retimer的发射端均衡参数,而不是盲目加大驱动电流。

6. Retimer在链路训练与系统枚举中的真实表现

6.1 LTSSM各阶段Retimer都在干什么

系统上电后,Root Complex和Endpoint会经过完整的LTSSM训练流程:Detect(检测)、Polling(轮询)、Configuration(配置)、L0(正常工作),以及中途可能出现的Recovery(恢复)。

在Detect阶段,链路两端的接收器检测是否有可能的信号活动,Retimer此时基本是个“透明管线”,把探测信号原样转发。Polling阶段,双方开始发送TS1/TS2 Ordered Sets,并协商速度和位宽,Retimer需要锁定链路速率,把它看到的速率信息记录下来,同时保持对TS序列的转发。Configuration阶段主要分配物理通道号和链路号,Retimer不修改这些信息,只是转发。

Recovery阶段对Retimer来说是一个关键节点。当链路上出现误码率过高、或系统想要改变速率/位宽时,会进入Recovery进行重新训练。Retimer必须快速识别Recovery状态并同步刷新自身的均衡参数,否则可能出现“对端已经用新参数发射,而Retimer还在用旧参数接收”的错位状态,导致重新训练失败。这也是很多Retimer在固件里带有“快速恢复”功能的原因。

6.2 枚举时为什么对软件“隐形”

PCIe枚举过程是BIOS或操作系统固件在上电后对PCIe总线树进行深度优先遍历,为每个设备分配总线号、设备号、功能号和地址空间。Retimer在枚举过程中不会被单独编号,因为它在配置空间层面不存在——它没有任何配置空间寄存器,不占用BDF。

所以系统里插一颗Retimer和直接用导线连接,在BIOS眼里完全一样。Striping给你往下游设备分配总线号时,不需要给Retimer留节点,下游Endpoint的总线号分配结果也不受Retimer存在与否的影响。这种“完全透明”特性极大地简化了软件兼容性。但要注意一点:Retimer虽然对地址透明,却会在物理层训练时间上影响系统启动速度。链路速度从Gen1逐步训练到Gen5需要多次均衡握手,每多一级Retimer,总体训练时长就可能多出几十毫秒甚至上百毫秒。某些对启动时间有严格要求的系统里,这个额外延时需要考虑进固件超时预算。

6.3 一次Gen5建链失败排查实录

背景:一块Gen5 GPU扩展坞,使用一颗PCIe Gen5 Retimer实现CPU到扩展卡插槽之间的信号中继。上电后Endpoint稳定在Gen1,偶尔跳Gen2,始终无法训练到Gen5。

排查链路和过程如下:

第一轮先排除Root Complex侧问题。把扩展坞换成一块直插式Gen5显卡,确认主板能正常训练到Gen5。这说明问题出在扩展坞链路这一侧。

第二轮检查Retimer供电和复位。用示波器量PERST#波形,确认复位释放时间在电源稳定之后,没有发现异常。再量参考时钟,100MHz波形幅度正常,抖动用频谱仪看也没有明显杂散。

第三轮上PCIe分析仪,串在Retimer与扩展卡插槽之间,抓取LTSSM训练序列。发现Polling阶段两端确实在交换TS1,但Retimer转发到下游的TS1里包含的均衡系数和上游Root Complex请求的参数不一致。进一步检查发现,Retimer启动时加载的EEPROM配置里,Gen5均衡预设值是关闭状态,也就是说它始终在用默认的Gen1/Gen2预加重参数转发。

第四轮定位到根因:这块Retimer模组的EEPROM没有烧录。重新按板卡实际损耗写入Gen5均衡参数,上电后再抓训练序列,链路顺利训练到Gen5,高负载打流一整晚没有出现降速。

这次排查花了两天的核心教训是:Retimer这类“半透明”器件,出问题时不会报错、不会留下设备节点,往往被忽略。一旦链路速率异常,第一时间就要确认Retimer的EEPROM配置和初始化状态,而不是在驱动和系统设置里浪费时间。

我个人的习惯是在任何带Retimer的板卡设计里,都保留一个调试串口或I2C接头,以便快速查看Retimer内部寄存器的实时状态。这个接口平时不起眼,但遇到链路训练问题时能省掉大把的排查时间,强烈建议做硬件设计时预留。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 15:27:53

1117发热原因与散热设计:从功耗计算到DCDC替代方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 15:27:50

云计算技术方案与实施文档实战:从SLO到资源清单的落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 15:26:55

F280049C的FPU与TMU深度优化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 15:25:26

动态张量优化实战:字节码虚拟机与JIT实时编译如何突破性能瓶颈

1. 动态张量为什么天生和"编译优化"不对付1.1 一个真实的性能现场:变长序列把GPU拖垮了大概半年前,我在优化一个变长序列的推理服务。那批数据每条样本长度差异非常大,短的只有十几个token,长的能到几百。为了跑batch&a…

作者头像 李华
网站建设 2026/10/6 15:24:40

三种蜜罐搭建指南:Pentbox、Defnet与Cowrie实战

简介:这是一份面向网络安全初学者与渗透测试爱好者的蜜罐实战资料,围绕 Defnet、Pentbox、Cowrie 三种主流蜜罐工具,讲解从环境搭建到实际使用的完整流程,其中 Pentbox 与 Cowrie 部分均在 Kali Linux 环境下完成,适合…

作者头像 李华