前段日子,我们和一家正在规划 PCIe 6.0 AI 加速卡的芯片团队聊了1-2个小时。对方的产品形态既有标准插卡,也会考虑 OAM 2.0接口;单卡功耗达到几百瓦。芯片流片回来、贴到 EVB 上之后,从第一次上电到稳定运行,他们需要提前准备哪些工具,团队内部其实还没有完全定下来。
“现在还说不上来会碰到什么问题。我们知道后面要做验证,但真到流片回来,哪些工具一定用得上,还得先把整个过程想清楚。”
这句话很真实。Post Silicon 验证最麻烦的地方,往往不是已经写进测试计划的项目,而是板子第一次插进服务器后冒出来的那些现象:链路只能到 Gen5,宽度从 x16 掉到 x8,能进 Gen6 但性能上不去,压力跑一会儿掉卡,或者同一张卡换一台服务器就出现不同结果。
所以这次交流没有从型号和参数表讲起。我们先顺着一张 AI 加速卡真实的 Bring up 路径,把协议分析、主动测试、兼容性测试、故障注入、功耗监测和 Gen6 环境搭建串在了一起。
PCIe 6.0 的原始速率达到 64 GT/s,并引入 PAM4、FLIT、FEC 和 CRC。链路能够进入 Gen6,并不等于整条链路已经处于健康状态。可纠正错误持续发生时,系统可能仍然保持连接,但吞吐和时延已经受到影响;问题进一步恶化后,还可能出现 Recovery、降速、降宽甚至掉卡。
我们先和对方确认了一个边界。眼图、抖动、发送端和接收端电气指标属于物理层验证,通常由示波器、误码测试和相应的一致性方案完成。我们这一套方案主要工作在协议层及以上。前提是基础信号质量已经达到可用水平,然后再观察 LTSSM、Ordered Set、FLIT、TLP、DLLP、配置空间和 Sideband 在真实系统里到底发生了什么。
这个顺序很重要。物理链路本身已经严重失真时,协议分析仪无法替代物理层仪器把板子“调好”。反过来,电气指标看起来正常,也不能证明枚举、链路训练、流控、事务响应和错误恢复一定正确。两类工具看到的是同一条链路的不同侧面。
客户很快问了一个关键问题:“本来有问题,接上分析仪以后问题反而没有了,怎么办?”
任何插入链路的测量方式都不能轻率地宣称绝对零影响。到了 64 GT/s,Interposer 的连接器、走线、Cable 和使用状态都会进入链路预算。真正要做的是尽量降低影响,并在测试前后检查 Link Speed、Link Width、Recovery 和错误计数,确认接入仪器没有把现场改成另一种状态。
SerialTek Kodiak系列PCIe 6.0协议分析仪采用 SI-Fi 探测架构和自动均衡,目的就是在获取双向协议数据的同时,尽量保持原链路的行为。对于标准 PCIe AIC,我们可以配置相应 Lane Width 的 Gen6 Interposer;对于 MCIO、EDSFF、M.2、U.2、U.3 和 OCP NIC 等形态,则根据实际拓扑选择对应接入方式。
OAM 要单独看。虽然 OAM 有公共规范,但不同底板和设备仍可能包含各自的连接定义或 Sideband 处理方式,通常不能直接套用标准 CEM 插卡的 Interposer。比较稳妥的做法,是在验证板设计阶段就把转接路径想好,把 OAM 端转换到可测的标准接口,或者提前规划定制 Fixture。等板子回来后再临时找测量点,往往会同时碰到结构、供电和信号完整性问题。
聊到抓包时,对方看着 SerialTek的前面板问:“解码是在这个屏幕上看吗?”我们解释,前面板主要用于设备状态和基本控制。工程师在自己的电脑上打开浏览器,连接仪器 IP,就可以完成配置、抓取、搜索和解码。真正的数据处理和存储在PCIe协议分析仪内部完成。
这套架构对 Gen6 很实际。Kodiak 提供最高 256 GB Trace Buffer 和最高 8 TB 内部 SSD,Trace 可以直接留在仪器里处理和打开,不必先把大文件全部搬到笔记本。多个工程师也可以通过 Web 界面同时查看同一份数据。硬件、BSP、驱动和系统团队讨论问题时,大家围绕同一个时间戳和同一段 Trace 说话,效率会高很多。
现场调试最怕的不是没有报错,而是只留下了一张红色错误截图。真正有价值的不是一张红色报错截图,而是完整的 Trace、触发条件、系统拓扑和复现步骤。这样即使问题需要交给另一地的工程师继续分析,对方也能从异常发生前的正常交互一路看下去。
对方接着问:“分析仪和训练器,是两台完全不同的设备吗?”
在 Kodiak 平台上,Analyzer 和 Tester 可以落在同一套硬件中,通过相应许可和 Fixture 切换工作角色。作为 Analyzer,它被动观察真实 Host 与 Device 的通信;切到 Tester 后,它可以模拟 Root Complex 或 Endpoint,主动控制建链过程,发送指定 TLP,改变配置和链路状态,并检查 DUT 的响应。
真实服务器一上电就会按自己的策略完成枚举和建链,研发人员很难让它停在某一步等待检查。Tester 的价值在这里体现出来:可以从较低速率开始,逐级验证到 Gen6;可以控制 Link Width、复位和 Retrain;可以构造正常或异常事务;还可以把已经抓到的问题 Trace 转成可重复的测试。
对于一颗 Endpoint 芯片,Tester 可以模拟 Host,逐项检查设备面对 Memory Read、Memory Write、配置访问和异常 TLP 时如何响应。若研发对象是 Root Complex,则换用相应 Fixture,让 Tester 模拟 Endpoint。这样,测试不必完全依赖某一台服务器的 BIOS 和启动节奏。
自定义测试解决的是“我们特别担心什么”,CTS 解决的是“所有实现都应满足的共同要求”。2026 年 5 月,SerialTek Kodiak 获得 PCI-SIG 对 PCIe 6.0 Link Layer 和 Transaction Layer 一致性CTS测试的批准。对于计划参加 PCI-SIG Workshop 或进入正式生态验证的产品,这给研发阶段提供了同源的检查手段。
我们不建议把 CTS 留到项目末尾才第一次运行。较早阶段先跑一遍,研发团队会拿到明确的 Pass、Fail 和 Skip 结果。失败项目还能关联到对应 Trace,直接看到 Tester 发了什么、DUT 回了什么。固件修改后再重跑,团队能很清楚地判断问题是否真的关闭。
还要注意,协议层 CTS 与物理层电气一致性测试各有边界。一个项目最终要形成完整的 Gen6 验证结论,两部分都需要安排,不能拿其中一项替代另一项。
很多 Bug 在正常流量里等不到。工程师真正担心的,常常是某根 Lane 瞬间异常、复位信号时序变化、设备在业务过程中突然掉电,或者反复热插拔后偶发无法恢复。手工拔卡既慢,也很难保证每次时序一致。
如果需要主动制造掉电、PCIe Lane 异常、复位或 Hot Swap 条件,可以在 Host 与 DUT 之间加入 Quarch PCIe Gen6 AIC Breaker。工程师可以按测试计划控制电源、Lane 和相关信号,执行重复的 Power Cycle、Hot Swap 和物理层故障注入,并通过图形界面或自动化 API 运行。对于 x4、x8、x16 的降宽验证,也可以通过受控方式改变 Lane 条件,再观察 DUT 的重新协商和错误处理。
这里的重点不是把链路弄坏,而是让异常可重复。只有每次都能以接近相同的时序制造故障,芯片内部的错误处理、固件恢复和驱动行为才有办法比较。
这次交流的 DUT 是一张高功耗 AI 加速卡,除了插槽供电,还有独立辅助电源。对这类设备,只看一个平均功耗数字远远不够。掉卡发生的那一刻,槽侧电压有没有下探,辅助电源电流是否突变,PERST#、CLKREQ#、WAKE# 等信号有没有同时变化,这些信息需要放在同一条时间线上。
Quarch PAM 适合做被动监测,记录实际服务器提供的电压、电流、功率和 Sideband 状态,并支持长时间保存。若需要主动验证电压容差、瞬时跌落或电源变化曲线,则使用 PPM 和相应的 Power Injection Fixture,由可编程电源按测试脚本向 DUT 供电。
对于带辅助供电的加速卡,槽侧和外部辅助供电最好同时纳入监测。否则只量到 CEM 插槽的一部分功耗,很容易漏掉真正导致复位或掉卡的那一路。协议 Trace 与功耗记录对齐后,团队才能判断错误先出现在链路、Sideband,还是电源。
原生 Gen6 服务器、主板和配套环境不一定能在项目最早阶段同时到位。研发不能因为缺一台整机,就把所有接口工作都往后推。如果项目早期暂时没有原生 Gen6 服务器,也不一定要把所有接口验证工作停下来。利用 Serial Cables 的 Gen6 Switch、Host Card、MCIO Cable 和 Adapter,可以先搭建一条用于 Bring-up 和协议验证的 Gen6 Downstream Link。
例如,现有 Gen5 Host 可以通过 Gen6 Switch 连接 Gen6 Endpoint。下行端能够用于 Gen6 建链、协议行为和 Switch 路径兼容性验证;整条系统的吞吐仍受上行 Host 带宽限制,因此不能把它当成原生 Gen6 x16 的端到端性能结论。这个边界在方案阶段必须写清楚。
AI 加速卡未来既可能直连 CPU,也可能部署在 Switch 下游,两种拓扑都值得测试。直连路径正常,不代表经过 Switch、Retimer、较长 Cable 或多设备拓扑后仍然正常。环境搭建本身就是验证的一部分。
交流快结束时,对方准备把资料转给板卡、BSP 和服务器相关同事一起看。这个动作很有必要。PCIe 6.0 的问题很少只属于一个团队:板卡决定信号与供电,固件决定建链和错误处理,驱动与系统软件决定业务恢复,测试工具则负责把这些行为留在同一份证据里。
我们在实际项目里通常会先按下面这个顺序梳理环境。
1 先确认 DUT 角色和形态 明确是 Root Complex 还是 Endpoint,是标准 AIC、OAM、MCIO 或其他形态,同时确认 Lane Width、时钟、复位、辅助供电和目标服务器拓扑。
2 给真实链路留出测量入口 在 EVB 和转接板阶段规划 Interposer 或 Fixture,避免板子回来后才发现没有合适的接入方式。
3 先建立不接仪器的基线 记录 Link Speed、Link Width、错误计数和复现条件,再接入 SerialTek Kodiak 比较现场是否发生变化。
4 用 Analyzer 把问题抓完整 围绕 LTSSM、FLIT、TLP、配置和 Sideband 建立触发条件,保留异常前后的完整 Trace。
5 用 Tester 和 CTS 主动验证 模拟 RC 或 EP,控制建链与事务,运行自定义测试和 PCIe 6.0 Link 与 Transaction Layer CTS。
6 把异常和电源一起自动化 使用 Quarch Breaker、PAM、PPM 重复执行故障注入、掉电、复位、Power Margining,并把结果与协议事件对齐。
7 补齐真实部署拓扑 通过 Serial Cables Gen6 Switch、Cable、Adapter、Retimer 或 Redriver 环境验证直连和 Switch 下游场景。
工具的价值不在于柜子里多了一台设备。它应该让问题更容易出现,让异常前后的数据留得住,也让不同团队能围绕同一份证据继续分析。对一张 PCIe 6.0 AI 加速卡来说,从第一次上电到稳定跑满,这条路径越早规划,后面的 Bring up 就越少依赖运气。
协议分析与主动测试 SerialTek Kodiak PCIe 6.0 / CXL 3.x Analyzer、Tester/Exerciser 和 CTS,可用于真实链路抓取、RC/EP 模拟、协议故障复现和 Link/Transaction Layer 一致性测试。
异常与电源测试 Quarch Gen6 AIC Breaker、PAM、PPM,可用于 Power Cycle、Hot Swap、Lane/Sideband Fault Injection、功耗监测及 Power Margining。
Gen6 测试拓扑搭建 Serial Cables Gen6 Switch、Host Card、MCIO Cable、EDSFF Adapter、Retimer/Redriver 等,用于搭建不同 Host、Switch 和 DUT 组合。
上述产品及测试方案由 Saniffer 提供技术支持。
相关阅读