实验室其实已经买过不少设备了。
比如手上已经有Quarch 的 QTL1999 HD Programmable Power Module,简称 PPM,原来可能是拿来测试 PCIe 5.0 U.2 SSD 的。
现在产品升级了:
从 U.2 走到 EDSFF;
从 PCIe Gen4/Gen5 走到 Gen6;
甚至被测对象已经不是 SSD,而是一个 PCIe Gen6 x8 的 CXL Device。
这时候到底怎么办?
是原来的 PPM 全部不能用了,要重新买一套?
还是只需要补一块新的 Gen6 治具就行了?
如果除了电压、电流、功耗,还想把 PERST#、CLKREQ#、SMBus 等 Sideband 信号一起记录下来,是不是又需要另一套设备?
最近我们围绕这个问题,和北京一个开发/验证PCIe 6.0 E3.S SSD企业级盘专供大型云厂商(CSP)的客户做了一次比较深入的技术交流。
整个讨论没有从“我们有什么产品”开始,而是从客户手里已经有什么设备开始。
最后逐渐梳理出了三种不同层次的方案:
只做电压拉偏和功耗测试;
测服务器真实供电下的功耗;
以及进一步:
把功耗和 Sideband 信号放在同一条时间轴上分析。
这三个需求看起来很接近,实际上对应的是完全不同的测试架构。
客户当前已经有一台 Quarch PPM,希望把它用于新的 Gen6 测试环境。
这里首先必须讲清楚:
PPM既是一台可编程电源,也是一台功耗测量仪。
Quarch 当前官方的 QTL1999 HD PPM 可以对输出电压进行编程,同时测量电压、电流和功耗;官方给出的能力包括 Power Margining、Power Loss、Brownout、Glitch 以及自定义电压波形等。其电压、电流可以同步记录,基础测量采样率最高可到 250 kS/s。
所以如果我们把 PPM 接到被测设备上:
例如给一块 E3.S SSD 提供12V电源;
然后在 SSD 上运行 FIO;
随着 I/O 压力增大,SSD 的电流和功耗随之变化,
那么 PPM 完全可以把这些变化记录下来。
沟通一开始讨论的正是这个场景:
一边改变供电,一边跑I/O,同时观察Voltage、Current、Power。
但这里有一个非常重要的前提:
此时给DUT供电的是PPM。
也就是说,这种架构测到的是:
PPM提供给DUT的电。
客户随后提出了另一个需求。
如果我并不想让外部 PPM 给 SSD 供电呢?
比如现在有一台:
Supermicro Server;
或者某个国产服务器平台;
服务器背板本身给 E3.S SSD 供电。
我想知道:
这台服务器真正给SSD提供的12V/3.3V电源,在启动、Idle、FIO压力、低功耗状态切换时到底是什么样?
这和前面的测试实际上不一样。
因为这时最希望保留的是:
真实Host环境。
电来自服务器;
设备仍然按照正常方式插在 Host 上;
我们只是在中间“观察”。
这正是 PAM——Power Analysis Module 更擅长解决的问题。
Quarch 对 PAM 的官方定义很清楚:
PAM 工作在真实 Host 环境中,电源仍然由 Host 正常提供,然后通过对应的 Fixture/Interposer 对电压、电流、功耗以及选定的 Sideband 信号进行测量。
所以可以用一句很容易记的话来区分:
PPM:我给你电,然后看你怎么用电。
PAM:Host给你电,我站在旁边看Host和Device之间到底发生了什么。
这两者非常像,但本质不同。
交流进行到6分钟左右,客户最关心的问题出现了:
“我们原来已经有一台PPM,是不是需要升级?”
经过沟通确认,客户手里的设备是 QTL1999。
这个型号目前仍然是 Quarch HD Programmable Power Module 的标准型号之一。
官方资料显示,QTL1999支持两路可编程输出、功耗测量、任意电压波形、USB/LAN控制等,同时可以配合不同的 Power Injection Fixture 给不同接口的 DUT 提供电源。
因此:
从电源本体角度,并不是因为设备从U.2变成EDSFF、从Gen5变成Gen6,就必须把QTL1999换掉。
真正需要变化的是:
PPM和DUT之间的Fixture / Adapter / Power Injection路径。
这也是整个交流非常有价值的一点。
很多实验室升级接口时,第一反应是:
“原来的仪器是不是淘汰了?”
实际上,对于这种模块化架构来说,往往需要更新的是:
Fixture/治具,而不是主机。
客户确认现有 QTL1999 可以继续使用之后,讨论很自然地转到了 Calibration。
PPM毕竟不是一根简单的电源线。
它既要输出设定电压,又要测量:
Voltage;
Current;
Power。
所以长期使用以后,对测量精度有要求的实验室通常需要建立校准制度。
我们提到了两种做法:
一种是送回 Quarch 做 Calibration;
另一种是在设备数量比较多的情况下,在实验室自己完成校准。
还有个是购买“Keithley ”和quarch一个校准模块,quarch提供校准脚本,用户自己校准。
查 Quarch 当前官方资料可以确认:
如果用户希望自己校准 HD PPM,需要使用 Keithley 2460 SMU,再配合 Quarch QTL2294 Calibration Switchbox Kit。Quarch 同时提供专门的 Calibration Python Package 和 Application Note AN-019,用于指导整个校准流程。
所以对于只有一两台 PPM 的实验室:
送回厂家或者通过代理商做 Calibration,一般更简单。
而对于手里有十几台、几十台 PPM 的大型 SSD Validation Lab:
自己建立 Calibration 能力就开始有意义了。
接下来讨论进入物理连接。
客户原来的 QTL1999 可能是通过 U.2 Fixture 使用。
现在新的被测对象已经变成:
Gen6;
EDSFF E3;
而且有可能还是 x8。
于是问题变成:
QTL1999前面的电源输出,怎么送到新的Gen6 EDSFF设备?
我们花了相当多时间解释 PPM 到 Fixture 之间的线缆以及 Power Injection 的连接方式。
这里不建议大家死记连接器针数。
真正要理解的是架构:
PPM → PPM Cable → Power Injection Fixture / Adapter → DUT
不同接口:
U.2;
U.3;
E1.S;
E3.S;
PCIe AIC
只是最后 Fixture 不同。
Quarch 当前也已经有专门面向 Gen6 EDSFF x8 的 Power Injection Fixture,例如 QTL3194,设计目的就是在 DUT 仍然处于正常 EDSFF 系统环境中的情况下,用 PPM 替代 Host 电源,为设备提供可编程电源,同时完成 Power Margining 和功耗测量。
交流中专门提醒了一个很容易犯错的小细节。
如果使用带有外部 PPM Power Injection 功能的SerialCables公司的PCIe 6.0 EDSFF转接卡,通常需要明确选择:
DUT到底从Host取电,还是从外部PPM取电。
我们交流过程中反复强调:
默认状态可能仍然是 Slot Power;
要使用 PPM 时,需要把对应的开关/Jumper 切换到 External Power 一侧。
这件事看起来非常小,实际很关键。
因为你做 Power Margining 的目的就是:
例如把12V变成:
11.4V;
10.8V;
或者模拟某种 Ramp、Brownout、Glitch。
如果 DUT 实际上还偷偷从 Host 的12V取电,
那你在 PPM 上改半天电压:
DUT根本没看到。
因此搭建这类环境时一定要先确认电源拓扑:
Host Power有没有被隔离?
PPM Power是不是已经真正接管DUT?
3.3V AUX又从哪里来?
这比打开软件调电压更重要。
大约12分钟时,讨论开始进入最容易混淆的部分。
客户的疑问非常合理:
“我们已经有PPM了,PPM本身不是也可以记录电压、电流、功耗吗?那是不是就没有必要买PAM?”
答案是:
取决于你到底想看什么。
PPM当然能够记录 Voltage、Current、Power。
Quarch Power Studio,也就是 QPS,可以同时支持 PPM 和 PAM,并且能够做很长时间的 Power Trace Recording。官方资料显示,QPS可以处理长时间甚至多GB级的功耗Trace,并支持Python自动化。
因此:
如果你的需求只是:
电压拉偏;
掉电;
Brownout;
Glitch;
FIO过程中功耗;
Idle Power;
长时间功耗趋势,
现有 PPM 很可能已经够用了。
所以可以这样解释:
PPM可以连续记录几分钟、几小时甚至更长时间的 Voltage/Current/Power。
紧接着,交流中指出了 PPM 方案的一个重要边界:
PPM本身主要关注Power。
如果你进一步希望看到:
PERST#;
CLKREQ#;
WAKE#;
SMBus;
PWRDIS;
Presence;
以及其他 Sideband Signal
随时间怎么变化,那么单独依赖 PPM 就不够了。
这时 PAM 的价值就出来了。
例如 Quarch 当前的 Gen6 EDSFF x8 PAM Fixture QTL3069,不仅可以测 Voltage、Current、Power,还可以记录大量数字 Sideband 信号,包括 PERST、CLKREQ、SMBus以及REFCLK状态等。
PAM的核心价值因此并不仅仅是:
“比PPM多一个功耗仪。”
真正有价值的是:
把Power和Sideband放到同一时间轴上。
沟通中举了一个刚刚遇到的实际案例。
在某个服务器环境中,一个 Gen6 设备启动过程中表现不稳定。
后来观察发现:
服务器对 PCIe Reset,也就是 PERST#,进行了多次拉高/拉低动作;
而实验室另外一个环境里的行为明显不同。
这类问题很典型。
工程师经常会看到:
设备偶尔掉盘;
某次Boot起不来;
Reset以后又恢复;
换一个Server平台问题消失;
甚至重启十次只有一次失败。
这时候第一反应往往是:
“PCIe协议有Bug。”
但实际问题可能根本还没走到 TLP 层。
它可能发生在:
Power Rail;
PERST#;
CLKREQ#;
REFCLK;
SMBus;
PWRDIS
这些启动条件上。
所以:
PCIe协议分析仪看到的是“链路里面说了什么”。
而:
PAM帮助你看到的是“链路准备说话之前,Host和Device之间发生了什么”。
两者解决的是不同层面的问题。
假设一块 E3.S SSD 在 Server 里连续跑三天 FIO。
第三天凌晨突然掉盘。
如果我们只有平均功耗记录,也许只能看到:
掉盘前功耗下降了。
但是如果同时记录:
12V;
3.3V AUX;
Current;
PERST#;
CLKREQ#;
SMBus;
甚至其他 Sideband,
情况就完全不同。
你有可能看到:
先是Host拉了一次PERST#;
100ms后设备功耗掉下去;
随后又重新上电;
然后才出现系统中的重新枚举。
这时故障原因的调查方向就清楚多了。
Quarch 当前 PAM 产品的设计目的正是同时观察 Power 和选定的 Sideband Assertion;其 Gen6 x16 PAM Fixture甚至明确支持 PCIe、NVMe、CXL 和 OCP Device。
交流继续到这里,客户真正需要做的是一个投资选择。
客户已经有:
QTL1999 PPM。
那么增加一块支持 Gen6/EDSFF/CXL 的:
SerialCables公司的Gen6 EDSFF Adapter 或者 Qujarch Gen6 Power Injection Fixture
即可继续完成:
电压拉偏;
Power Cycle;
Brownout;
Glitch;
Voltage/Current/Power Measurement;
长时间功耗记录。
这种方案最大的优点就是:
充分复用已经买过的PPM。
我们最终也明确倾向于:
如果目前希望尽量降低投入,先买转接和 Power Injection 所需要的部分,不急着把 PAM 全套补齐。
如果客户后续明确提出:
不仅要看功耗;
还要分析 Host 与 CXL/SSD Device 之间的 Sideband Timing,
那就增加:
PAM Fixture / PAM Measuring Card + PAM主控制模块。
按照 Quarch 现在的正式产品命名,更准确的说法应该是:
Power Analysis Module,PAM主机/控制单元
加上:
对应接口的 PAM Fixture / Measuring Fixture。
Quarch官方明确说明,PAM本身是主控制单元,不同接口需要配对应的 Fixture。
Serial Cables 目前部分 Gen6 Adapter 转接卡也支持直接增加 Quarch PAM Mezzanine。
例如其当前的 Gen6 PCIe/NVMe/CXL x8 AIC-to-EDSFF Active Adapter,就提供可选的 Quarch PAM Mezzanine,用于分析 Power Rails 和 Sideband Signals。
这正好对应我们沟通中提到的:
Measuring Card / Mezzanine Card。
如果测试要求再高一些,并不是非要:
PPM和PAM二选一。
完全可以把两者结合起来。
PPM负责:
主动制造条件。
例如:
Voltage Margin;
Power Loss;
Brownout;
Glitch。
PAM负责:
观察系统的响应。
比如:
功耗怎么变化;
PERST#什么时候变化;
CLKREQ#是否出现异常;
SMBus什么时候有活动。
这时测试从:
“量功耗”
变成了:
主动制造故障 + 同步观察Device和Host怎样回应。
这个能力对于定位非常偶发的问题尤其有用。
Quarch自己也把 PPM 和 PAM 定位成能力部分重叠、但侧重点不同的两类产品,并强调出现问题以后可以通过 PPM 或其他 Fault Injection 工具重新复现问题。
把 PPM/PAM 的问题基本搞清楚以后,客户又提出了一个新的实际需求:
需要一根高速延长线。
开始大家下意识按照 SSD 去理解:
x4。
结果客户马上纠正:
“这个不是SSD,是CXL设备,是x8。”
这个小插曲其实很有代表性。
现在很多实验室都在进入 CXL 测试。
而过去大家熟悉的:
M.2 NVMe SSD;
U.2 SSD;
很多 E3.S SSD
通常重点关注 x4。
一旦进入:
CXL Memory Expander;
CXL Accelerator;
其他CXL Device,
就很容易碰到:
x8;
甚至x16。
于是:
原来SSD实验室里大量现成的x4线缆和Adapter suddenly就不够用了。
交流中又出现一个很有工程味的问题。
现场找到了一款以前使用的 Gen5 Cable。
大家过去实际使用过程中发现:
我们之前实际测试过,SerialCables最近两年新出的标称 Gen5 的线缆,在部分实验环境里确实也能够把 Gen6 Link 跑起来。
但这里一定不能把现场经验写成:
“Gen5 Cable都支持Gen6。”
这显然是不严谨的。
能不能Link Up,和:
Cable Length;
Insertion Loss;
Return Loss;
Connector;
PCB Loss;
Retimer/Redriver;
Tx EQ;
Rx EQ;
整个Channel Budget
都有关系。
甚至同一根线:
在平台A上Gen6稳定;
换到平台B就可能只能降到Gen5。
所以录音中最后采取的办法其实很合理:
实验室如果手边有样品,可以先实测。
但是正式项目采购:
还是应该优先选择明确针对 Gen6 Channel 设计和验证的产品。
客户需要的是 x8 CXL Device。
于是大家开始逐项寻找:
x8 Extension;
EDSFF;
AIC;
Gen5;
Gen6
几种不同的连接方案。
这里又暴露出 Gen6 实验室目前一个非常典型的现象:
x4的东西很多,x8的选择明显少。
尤其一些非常专用的:
EDSFF-to-EDSFF x8 Extension;
E3-to-AIC;
特定长度Gen6 Cable
不一定像普通 x4 SSD Cable 那么容易直接找到标准品。
所以会议中并没有强行说:
“这个型号肯定有。”
而是决定:
回头直接向国外原厂确认。
这种处理反而是正确的。
23分钟左右,大家查看现有 Gen6 连接产品时发现:
很多 Gen6 Solution 已经更多地围绕:
MCIO
展开。
沟通中最后总结的现场观察是:
Gen6下,MCIO相关产品很多;
直接EDSFF延长线反而相对少一些。
这也解释了为什么现在搭建 Gen6 SSD/CXL 实验环境时,越来越经常看到这样的拓扑:
CPU / Switch
↓
PCIe Gen6 Host Card
↓
MCIO Cable
↓
EDSFF Adapter
↓
E3.S / CXL Device
相对于在所有场景下都坚持使用一种“从 EDSFF 公头直接延长到 EDSFF 母头”的长线,
模块化的:
Host Card + MCIO Cable + Device Adapter
通常更容易组成不同的实验拓扑。
目前 Serial Cables 已经有专门的 Gen6 x8 PCIe Slot to x8 E3 EDSFF Adapter,明确支持 PCIe、NVMe 和 CXL Device。
这类方案的价值在于:
如果 Host 上本来就有标准 PCIe x8/x16 Slot,
完全可以:
PCIe Slot
↓
Gen6 x8 Adapter
↓
E3 / CXL DUT
而不一定非要先经过一长串多余转接。
到了 Gen6,少一个 Connector;
少一块 Adapter;
少一段 PCB Trace,
往往就多一点 Signal Margin。
所以连接环境设计时,应该优先考虑:
怎样以最少的无源路径完成我要的测试功能。
而不是:
“手里有哪些转接头,全串起来总能接上。”
会议最后几分钟,双方把下一步行动也确定了。
第一:
把前面提到的 Gen5/Gen6 实际演示视频发给客户,让客户先看清 PPM、PAM、Adapter 的实际连接方式。
第二:
继续向国外原厂确认:
是否有客户需要的x8 E3/EDSFF Extension Cable,Gen5和Gen6分别有哪些选择。
客户大约只需要三到四根,因此一些并未公开放到网页上的小批量型号,也值得直接向原厂询问。
第三:
把目前能够确定的:
Adapter;
Cable;
Fixture
先整理成一个小型报价表。
剩下还没有确认的特殊线缆,再等原厂回复。
这个结束方式其实特别像真实的工程选型。
没有为了“今天必须成交”硬凑一套设备。
而是先把需求拆开:
现有设备能不能复用?
缺的是Fixture还是主机?
要不要Sideband?
是SSD x4还是CXL x8?
Gen5够不够,还是必须Gen6?
等这些问题搞清楚,BOM自然就出来了。
如果以后再碰到类似客户,我觉得完全可以先问三个问题。
优先考虑:
PPM + 对应Power Injection Fixture。
如果已有 QTL1999,尽量继续复用。
核心能力是:
主动控制Power。
优先考虑:
PAM + 对应PAM Fixture。
此时 Host 正常给 DUT 供电。
核心能力是:
观察真实Host→Device Power。
选择:
PAM + 带Sideband Capture的Fixture。
如果还希望主动制造:
Voltage Sag;
Brownout;
Power Loss;
Glitch,
再结合:
PPM。
也就是说:
PPM负责“制造条件”,PAM负责“观察发生了什么”。
这句话基本就能把两种设备讲清楚。
这次交流表面看是在讨论:
“该买哪一张转接卡?”
但真正的问题其实是:
究竟想测什么?
如果只是想知道:
SSD跑FIO时功耗多少,
现有PPM已经能解决很多问题。
如果想知道:
Server给设备的真实电源到底怎么样,
PAM更合适。
如果问题变成:
“为什么这个CXL设备在这台Server里偶尔起不来?”
那么单纯看平均功耗可能已经不够。
这时候真正需要把:
Power;
PERST#;
CLKREQ#;
SMBus;
甚至PCIe Protocol Trace
沿同一个事件时间轴逐层往下查。
所以好的测试环境,并不是把所有昂贵设备一次性全部买齐。
更合理的做法是:
先利用手里已经有的设备,把最明确的问题解决掉;
然后根据下一层Debug需要:
增加 Fixture;
增加 PAM;
增加 Sideband Capture;
增加 Protocol Analyzer。
这也是这次交流最后形成的方案:
客户已经有 QTL1999 PPM,
那么就先围绕现有 PPM,把 Gen6/CXL 的转接和 Power Injection 环境搭起来。
如果后续确认确实需要:
Host真实功耗 + Sideband同步分析,
再增加 PAM。
这样既不会重复投资,
又保留了未来进一步Debug的能力。
对于现在越来越复杂的 PCIe Gen6、EDSFF 和 CXL 测试环境来说,这种“按问题逐层增加观测能力”的思路,往往比一开始就堆满仪器更加实际。
希望获得更多关于PCIe5&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND,新型存储技术NVM(RRAM/ReRAM, FRAM/FeRAM, MRAM, PCM, 3D-NOR, SRAM/DRAM等) DDR5/LPDDR5以及UFS测试技术和产品,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer公众号的【白皮书】菜单中。
欢迎关注Saniffer公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。