【经验总结】PCIe 6.0不是插上就能用:一次真实Gen6链路调崩再调稳的全过程
我们知道,对于开发PCIe 6.0 EP外设芯片(例如网卡、GPU卡、AI加速卡、SSD控制器等)的公司来讲,在真正可用的PCIe 6.0 server面世之前,有的时候需要使用类似于SerialTek PCIe 6.0 tester/exerciser训练器模拟一个PCIe 6.0 RC(CPU端)来和自己的芯片验证卡进行建链以及通讯测试。我们经常会碰到一个问题,链路即便在模拟的CPU和待测卡之间建链到PCIe 6.0之后,但是链路不干净,就是有很多错误,link recovery, 或者大量的uncorrectable error,尤其是最后这个错误,一旦这个错误量较大,模拟的CPU和待测卡之间即便链路在PCIe 6.0 L0状态,但是双方通讯也经常会出现问题。我们最近拍了一个实际调试的视频,来看使用SerialTek的PCIe 6.0训练器是如何将该该uncorrectable error通过自动化工具Kodiak Calibration软件自动调优到一个较好的状态的。由于是内部视频,我们这里只能简单讲述一下视频中用到的方法,感兴趣的朋友可以联系我们。下面的文字是根据视频梳理的一份现场复盘风格的总结供大家参考。对于下面提到的SerialCables PCIe 6.0 80-lane switch 插卡感兴趣的,可以在saniffer公众号查询关键搜寻我们从2025年中拍摄的大量手把手演示视频,例如下面这篇文章内部的高清视频,以及文章中第一段链接的之前的部分使用该PCIe 6.0 switch做各种测试的高清视频:PCIe 6.0主机卡+Gen6 E3.S转接卡初次使用演示我们之前做过很多期PCIe 6.0主机卡(也叫switch卡)的高清演示视频,感兴趣的可以查询一下Saniffer公众号往期文章,或者直接点击下面的链接,包括Gen6 Switch + Switch;Switch + CX-8(一)和(二);Switch + Quarch故障注入卡 + Switch;Switch + 0.3米延长线 + Switch卡等等;另外,我们也拍摄了如何使用Gen6 switch卡连接Gen6 SSD的几期视频,包括Gen6 switch + MCIO x8 转接2*EDSFF female connector;Gen6 switch + MCIO x8 to 2* MCIO x4 + Gen6 8盘位盘柜,等等。我们今天演示的是PCIe 6.0主机卡顶部的插槽加入一个Gen6 E3.S转接成金手指的转接卡来测试一个E3.S SSD。一、这次演示在解决什么问题?这段视频的出发点其实很直接:在 SerialTek Gen6 Tester 训练器 + SerialCables PCIe 6.0 80-lane switch 插卡的环境下,把PCIe 6.0链路从“能跑”调到“跑得干净、稳定”。如果用一句更接地气的话来说:👉 如何链路已经能上Gen6,但质量没有那么不理想,如何调优二、一个现实前提:Gen6现在不好调视频里反复提到一个背景,其实挺关键:Gen6设备本身就不多信号裕量比较紧设备之间兼容性也比较敏感所以当前测试的一个基本策略是:👉 每个设备都需要单独调参数👉 这点很真实:Gen5以前很多时候“插上就能用”, Gen6基本是“每条链路都要调一遍”。三、判断链路好坏的核心指标这一段其实是整个视频最有价值的地方之一。关键指标:Flit Error在Gen6下,不再只看传统错误,而是重点关注:Correctable FlitUncorrectable Flit含义也讲得很直白:Correctable:可以通过FEC纠回来Uncorrectable:纠不回来 → 真正影响链路质量一个典型场景视频里举了一个例子:Uncorrectable Flit = 10K级这时候就意味着:👉 链路虽然“跑起来了”,但质量明显不够好👉 工程上可以这么理解:能跑 ≠ 可用 能用 ≠ 稳定Gen6的关键在“错误率是否可控”四、调优的核心动作:EQ Preset进入实操阶段后,第一步就是:👉 调 EQ Preset流程非常典型:修改 EQ preset 值ApplyReset Tester & Link重新训练链路观察结果反复多次,直到:👉 成功稳定进入 Gen6 L0 状态👉 这里的本质:EQ参数决定链路“能不能被接收端正确解读”五、更深一层:Interposer调节除了EQ之外,还有一个更关键的调节入口:👉 Interposer Settings可以理解为:调整信号路径特性优化链路传输质量使用方式有两种:1)直接加载已有配置如果之前调过可以直接复用2)通过软件自动或半自动优化搜索更优参数组合👉 这一层其实已经接近“信号层调优”六、一个很现实的问题:手动调太慢视频中也直接点出来了:手动逐个参数去调,是一件非常麻烦的事情原因很简单:参数组合很多每次都要重新训练链路反馈周期长👉 所以实际工程里:很少有人纯手调,一般都会借助工具,例如SerialTek的Kodiak Calibration软件或已有经验配置七、调优的目标:让链路“干净”整个调参过程,其实围绕一个非常朴素的目标:👉 让链路变得更 clean具体体现就是:Uncorrectable Flit下降错误更少稳定性更高👉 可以简单理解为:从“能跑” → “误码可控” → “长期稳定”八、一个非常实用的结果:配置可以沉淀视频后半段给了一个很有工程价值的结论:👉 调好的参数可以导出为JSON配置文件然后:可以下载保存可以在其他实验室复用相同环境下效果一致👉 这一点很关键:Gen6调试,不再是“个人经验”,而是“可复制资产”九、最终形成的一个完整流程把整段视频抽象一下,其实流程非常清晰:Step 1:建立Gen6链路(哪怕质量一般也没关系)Step 2:观察Flit错误情况(重点看Uncorrectable)Step 3:调整EQ参数(基础调优)Step 4:优化Interposer参数(深入调优)Step 5:反复训练链路(直到稳定进入L0)Step 6:导出配置文件(沉淀成果)十、一个更偏工程的结论如果把这段内容放在当前PCIe 6.0阶段来看,可以得出一个比较现实的判断:1️⃣ Gen6链路不是“即插即用”必须调而且要反复优化调2️⃣ 调试核心已经从协议转向信号质量EQInterposerFlit Error3️⃣ 最关键的能力不在“调”,而在“复用”一次调好多处使用快速复制环境最后一段,用一句更接近现场的话收一下如果你正在做PCIe 6.0相关测试,这段演示其实在传递一个很实际的经验:真正花时间的不是“把链路拉起来”,而是把它调到一个你敢长期跑业务、敢交付给客户的状态,而这件事,本质上就是在跟错误率和参数组合打交道。更多关于PCIe 6.0/CXL的测试工具和技术,请下载Saniffer公司2026.1.6最新更新的白皮书15.1版本 - PCIe5&6.0, CXL, NVMeNVMoF, SSD, NAND, DDR5, 800GE测试技术和工具白皮书_ver15.1-low resolution.pdf(低分辨率版本,file size: 63MB);需要高清图片pdf版本的请参见本文底部的联系方式联系我们获取(file size: 204MB)链接: https://pan.baidu.com/s/1R-tJEqwBlzBaDR0WLuMU0Q?pwd=9av3 提取码: 9av3如果你有其任何关于PCIe5&6.0, CXL, NVMe/NVMoF, NAND, DDR5/LPDDR5以及UFS测试方面的我问题想咨询,请访问:访问www.saniffer.cn / www.saniffer.com 访问我们的相关测试工具和产品;或者添加点击左下角“阅读原文”留言,或者saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。
2026-04-22 10:38:17









