logo
  • 首页
  • 产品中心
  • 解决方案
  • 技术专栏
  • 关于我们
  • 首页
  • 产品中心
  • 解决方案
  • 技术专栏
  • 关于我们
  • 【产业咨询】迪拜客户准备造SSD:从SMT到产线测试,一次咨询讲透

    做存储行业久了,会发现一个很有意思的现象。很多SSD公司最开始并不是从“制造 SSD”起家的。最近,我们和一位来自迪拜并在中东拥有制造工厂的客户做了一次一个小时的视频交流。他们先做SSD代理、做渠道,卖 Samsung、ADATA、Lexar 等成熟品牌;有了客户、有了市场以后,慢慢就开始想一个问题:既然产品已经卖了这么多年,客户在哪里、价格怎么定、售后怎么做我们都很熟,为什么不能自己生产?但从“卖 SSD”跨到“造 SSD”,中间真正难的地方,并不是买几台 SMT 设备、把 Controller 和 NAND 焊到 PCB 上。真正难的是:焊完以后,怎样保证这块 SSD 可以放心地装进包装盒里,卖给客户?这家迪拜公司已经有二十多年 IT 行业经验,在中东从事电子制造也有八年以上,目前工厂主要生产 Switch、Router、MiFi、CCTV 等网络和电子产品;迪拜则有贸易公司负责市场和商业业务。现在,他们准备把下一步业务扩展到:SSD、UFD 和内存产品。 //* UFD 是 USB Flash Drive 的缩写,也就是我们日常所说的 U盘(或称闪存盘、优盘)。在电子制造和存储行业(Storage Manufacturing)的专业术语中,官方通常使用 UFD 来代指 U盘 产品,与 SSD(固态硬盘)和 DRAM(内存条/内存芯片)并列。这场交流于是从“我们想做 SSD”,一路谈到了 NAND Good Die、Ink Die、RDT、Burn-in、H2、测试设备投资和量产线规划。整个讨论非常适合那些第一次准备建立 SSD/UFD 生产能力的团队参考。一、客户开场就讲得很清楚:不是要建晶圆厂,而是从SMT开始会议一开始,对方首先介绍了自己的业务模式。公司实际上分成两个部分:一个是位于迪拜的贸易公司;另一个是位于中东的制造公司。他们并不准备进入 Wafer Fabrication、NAND Manufacturing 或 IC Packaging 这种重资产半导体制造环节。客户的想法很现实:NAND Flash、SSD Controller、DRAM 等核心器件从经过筛选的供应商采购,自己从 SMT Assembly 开始。也就是说,真正需要建立的是一条:采购器件 → SMT → 固件/开卡 → 测试筛选 → 成品 → 包装这样的存储产品制造流程。会议中提到的CKD/SKD 类本地组装模式:先从中国或其他成熟供应链获得器件、PCB、BOM 或半成套物料,然后在当地完成组装、测试和品牌化。对于这块感兴趣的朋友可以参考本文底部的更加详细的解释和说明。这和自己做 NAND 晶圆、封装完全不是一个投资量级。对于第一次进入存储制造行业的公司,这其实是一条非常现实的路线。二、第一阶段产品并不激进:SATA SSD、Gen3 NVMe、UFD和DDR4 UDIMM客户并没有一上来就说:“我要做 PCIe Gen6 企业级 SSD。”恰恰相反,他们第一阶段的产品非常务实。会议中确定的初步范围包括:SATA SSD;PCIe Gen3 NVMe SSD;UFD,也就是 USB Flash Drive;DDR4 UDIMM。未来才考虑 DDR5 等产品。SSD 容量也主要集中在:128 GB、256 GB、512 GB、1 TB;UFD 则是:32 GB~256 GB。也就是说,这不是一家准备切入数据中心企业级 SSD 的公司。它瞄准的是非常典型的:消费级、中低容量、价格敏感型市场。客户也明确表示,第一阶段不做 Enterprise,也不刻意进入 Gaming 高端市场,而是先把 Consumer 产品做好。这句话其实决定了后面几乎所有设备选择。因为:做什么产品,决定你需要什么测试;日产多少,又决定你需要买多少测试资源。三、客户给出的第一阶段产能,其实非常关键客户随后给出了一个非常具体的数字。第一阶段预计:SSD:约500片/天;UFD:约2000片/天;DRAM产品:约100片/天。后续等市场和生产流程跑顺以后,再扩大产能和产品范围。这个数字非常重要。因为一听到“我要建 SSD 工厂”,很多人第一反应可能是:几十台设备;几百万美元;自动化产线;大型 Burn-in Room……但如果第一阶段只有每天500片 SSD,就完全没有必要照搬大型 SSD 厂的配置。量产测试系统最忌讳的,就是不看产能直接照着大厂买。日产500片和日产10万片,设备架构不可能一样。所以我们后面的讨论很快就从:“什么设备最好?”变成了:“对于500片/天,到底什么设备是必须的?”这是完全不同的问题。四、客户其实已经有SMT,真正缺的是SMT以后那一段客户现在的工厂并不是从零开始。他们已经有:SMT Line;Pick-and-Place;Reflow Oven等基本生产设备。会议中对方还提到了:AOI——Automated Optical Inspection。也就是说,对方真正困惑的并不是:PCB怎么焊?而是:PCB焊完以后,到底还需要经过哪些步骤,才能变成一块可以销售的 SSD?他们甚至把自己知道的几个关键词都列了出来:Programming;Aging;Functional Test;Burn-in;RDT;Performance;Qualification;Serial Number 写入……但这些东西到底是什么顺序?哪些必须做?哪些根据 NAND 质量决定?需要几台设备?客户其实并没有完全建立概念。这也成为整场会议真正开始深入的地方。五、我们没有先谈设备,而是先问了一个问题:你的NAND从哪里来?这是整场讨论最关键的转折点。我没有马上推荐:RDT Tester;Burn-in Tester;H2 Tester;或者某一台具体设备。而是先问:你准备使用什么 NAND?因为一块消费级 SSD,哪怕其他东西都不谈,至少有两个东西绕不开:SSD Controller;NAND Flash。有些 Consumer SSD 可以做成 DRAM-less。但是:没有 NAND,就不存在 SSD。所以 NAND 本身的质量,实际上直接决定了后面需要多重的筛选流程。会议中因此进入了一个非常重要的话题:Good Die 和 Ink Die。六、Good Die和Ink Die:千万别简单理解成“一个好、一个坏”“Good Die”和“Ink Die”在模组、白牌 SSD/UFD 供应链里经常会听到,但尤其是 Ink Die,并不是像 ONFI、JEDEC、NVMe 那样定义严格统一的标准等级。不同 Wafer Supplier、封装厂、模组厂之间,对这些词的实际使用可能并不完全一样。比较稳妥的理解是:Good Die 指经过原厂 Wafer Sort、Bin、质量筛选之后,满足相应出货条件的合格 Die。而市场里所谓的 Ink Die,通常指的是没有进入原厂主流高等级产品供应链、需要模组厂进一步筛选和分档的一类 Die。更需要警惕的是,还有一些来源并不透明的料。例如:低 Bin;边缘料;拆机料;重新封装料;甚至来源无法完整追溯的 NAND。这几种东西不能简单统称成同一种质量等级。所以判断 NAND 不能只问:“Good Die 还是 Ink Die?”真正应该问的是:Wafer来源是谁?Bin标准是什么?Wafer Map有没有?坏块分布怎么样?RBER怎么样?P/E Cycle能力怎么样?Retention怎么样?供应商能不能保证批次一致性?这才真正决定 SSD 后面的质量。七、客户的选择很现实:Good Die太贵,所以想用“比较好的Ink Die”客户对此其实并不陌生。此前他们已经访问过一些中国存储厂商,也专门了解过 Good Die 和 Ink Die 的差别。他们给出的答案非常现实:第一阶段不准备使用最高等级、最昂贵的 NAND。原因很简单。他们要做的是消费市场,而且目标并不是直接和顶级品牌打高端产品。如果 NAND 成本过高,最终 SSD BOM 就没有价格竞争力。因此客户更倾向选择:来源可靠、等级相对较好的中档 Ink Die。但客户同时强调了一句话:供应商必须可信。因为同样叫 Ink Die,里面也可能存在 Premium、Mid-range 甚至更差的不同等级。这其实正是消费级 SSD 生意最难做的地方:价格不能太高,但也不能因为追求低成本,把售后风险全部留给自己。八、这时我们谈到了一个最现实的案例:便宜SSD最后可能贵在售后交流中我举了一个海外渠道商的例子。这家公司从深圳采购 SATA SSD、M.2 NVMe SSD、UFD,然后销往巴西。他们有自己的零售网络。问题是:一些 SSD 卖出去使用一段时间以后开始失效,客户不断退货。会议中我的判断是,这种现象不能简单归因于某一个因素,但如果采购阶段主要依靠价格比较、而生产端筛选不足,质量风险就会明显提高。所以我们最终把这个案例落到了一个很简单的结论:SSD便宜不难,难的是便宜以后还能把RMA压下来。转写中也正是在这里,话题从“买什么 NAND”正式转到“SMT 后一定要建立筛选流程”。九、如果使用需要二次筛选的NAND,SMT结束只是测试的开始会议中我把它简单概括成了几道筛选:RDT → Burn-in → H2或者根据具体 Controller Vendor 和工厂 SOP,再穿插开卡、重建坏块表、固件写入和最终 Functional Test。这里特别需要说明:这几个名称并不是所有 SSD 工厂完全统一的国际标准工序名称。不同 Controller 厂、模组厂使用的软件和叫法会不同。RDT在这类消费 SSD/UFD 量产环境里,可以把它理解成一类生产阶段的 Reliability/Diagnostic Screening。它通常和特定 Controller、Firmware、量产工具紧密结合。目的不是测试 PCIe 协议,而是:尽早找出 NAND 或整盘中存在明显稳定性问题的单元。具体测试算法、坏块阈值、温度、时间、是否重新开卡,都必须依据 Controller Vendor 和 NAND 方案确定。所以真正规划工厂时,不能只在采购清单上写:“买一台 RDT Tester。”应该先问清:我们准备使用哪颗 Controller?供应商提供什么 MP Tool?RDT 流程具体是什么?十、Burn-in:不是为了“把SSD用旧”,而是让潜在问题早点暴露第二类就是大家比较熟悉的:Burn-in。它的基本思想并不复杂:让产品在规定条件下持续工作,通过循环读写、压力、温度或者其他工作负载,把一部分本来可能在用户手里使用几周或几个月才暴露的问题,尽量提前暴露在工厂里。所以 Burn-in 的目的不是:“证明所有 SSD 永远不会坏。”而是:通过加速和压力筛选,提高早期失效器件被发现的概率。如果 NAND 来源一致、质量稳定,筛选策略可以相对精简;如果 NAND 的 Bin 分布更宽,供应批次变化更大,测试自然要更加谨慎。这也是为什么同样是一块 512GB SATA SSD,不同工厂的制造成本可以差很多。你看到的是相同容量。背后可能完全是两套质量策略。十一、H2到底是什么?这次顺便把它讲明白转写中反复说的“H2”,从此前这类生产流程的交流和上下文看,指的就是 H2testw 类全盘写入/读回验证。H2testw 原本是德国 c't/heise 提供的 Flash Storage 测试工具。它的基本思路就是向存储介质写入测试数据,然后重新读取并验证,因此能够发现容量虚标或部分介质无法正确保存数据等问题。这也正好解释了为什么在 UFD、消费 SSD 的工厂筛选讨论中会提到 H2。它实际上回答的是一个非常朴素的问题:这块盘标称有这么大容量,我真正把数据写进去,再读出来,数据到底对不对?但一定要注意:H2testw不是SSD专业可靠性验证的全部。它不能取代 NAND Bin 管理;不能取代 Controller-specific RDT;不能取代 Burn-in;更不能替代 NVMe/SATA 协议一致性或者企业级 Feature Validation。它只是整条质量链上的一种数据完整性检查手段。十二、这里有一个必须纠正的口语化说法:Good Die并不等于“只测一次就够了”会议中为了说明 Good Die 和 Ink Die 的差异,我们用了一个比较口语化的说法:Good Die 质量高,所以可以少做很多筛选;Ink Die 则要经过 RDT、Burn-in、H2 等更多工序。这个方向是对的。但是要注意:Good Die绝不等于整盘SSD焊完以后什么可靠性和功能测试都不用做。即便 NAND 本身已经是经过严格筛选的 Known-Good 级别物料,SSD 成品仍然有:SMT;PCB;Controller;Power;Firmware;NAND Interface;Connector;焊接;配置参数;容量映射等新的失效可能。所以整盘至少仍然需要:功能验证;Firmware/序列号等生产配置;容量识别;读写;基本性能;必要的抽样可靠性测试。真正减少的是:由于NAND本身质量不确定而不得不增加的大规模二次筛选。这两者不能混为一谈。十三、为什么小厂不可能照搬NAND原厂的测试设备?交流进行到二十多分钟以后,客户问了一个非常直接的问题:这些测试设备到底多少钱?这时必须先把两个完全不同的世界分开。一个世界是:NAND Semiconductor Test例如:Wafer Sort;Die Test;Final Test;高并行 NAND ATE。另一边是:SSD Module Manufacturing Test即:PCBA 已经完成;Controller + NAND 已经组成一块 SSD;现在做 RDT、Burn-in、H2、Functional、Performance、Programming。它们不是同一种设备。以 Teradyne 官方的 NAND 平台为例,Magnum 2 本身就支持 NAND Wafer Sort/Final Test 和高并行测试;更高端的 Magnum 7 最大配置可以达到成千上万 I/O,用于大规模最新 NAND Device 测试。这种设备面对的是:半导体制造级测试。而客户现在要解决的是:每天500块消费SSD出厂前如何筛选。两边的投资逻辑完全不同。十四、所以我给客户的建议反而很简单:第一阶段千万不要买“大”会议中围绕价格讨论了很长时间。其中有一些现场估价,因为当时没有正式 Quote,我在这里不把它们当作正式设备价格引用。真正值得保留的是选型思路:500片SSD/天,没有必要一开始买几百DUT并行的大型系统。完全可以从较小规模的设备开始。比如:64 DUT;或者两台较小系统;根据实际 Cycle Time 计算 Throughput。等第一阶段运行几个月以后,再根据:实际良率;测试时间;订单;产能;产品型号增加设备。会议后半段再次回到这个方案,明确提出可以先从较小规模的 RDT/Burn-in 系统开始,再逐步扩展。这个思路其实很值得很多准备建厂的团队参考:产线规划不是“越大越先进”。最合适的产线应该满足:现在够用,未来能扩。十五、客户为什么特别在意“投资不能太大”?大约半个多小时以后,对方再次明确了项目定位:这是他们第一次进入 Storage Manufacturing。因此第一阶段希望:Minimum Investment。而他们真正最在意的不是把工厂包装得多高端。而是两个东西:Quality和Product Cost。客户甚至说得很直接:他们不准备第一天就和 Samsung、Lexar 这类品牌打高端市场。希望进入的是相对主流的中端消费市场。这句话非常重要。因为如果你的目标市场是:极致低价和目标市场是:高可靠Enterprise生产设备配置一定不同。而他们的目标实际上是:价格有竞争力,但产品不能因为便宜出现大量退货。这就意味着测试投入不能省掉,却也没有必要一开始就配置昂贵的研发级和半导体级 ATE。十六、于是我们又区分了一次:Engineering Test和Manufacturing Test不是一回事会议中还专门举例谈到了:Protocol Analyzer;例如:SerialTek PCIe分析仪Engineering SSD Tester;例如:SanBlaze SSD研发测试设备以及更高端的 NAND Test System。例如:NplusT这些设备价格可能非常高。但它们主要解决的是:Engineering / Validation例如:NVMe Command;Namespace;Hot Plug;Power;Error Injection;协议 Debug;Firmware Bug;PCIe Protocol Trace。这些问题发生在:设计验证阶段。而客户第一阶段的主要任务是:Manufacturing Screening也就是:这500块今天刚从SMT下线的SSD,哪一些能出货?两者不能混。如果一个新入行的消费 SSD 工厂,一开始把预算大量投入 Gen6 Analyzer、企业级 NVMe Validation Platform,却没有建立基本的 RDT/Burn-in/全盘验证流程,那就是完全把钱花反了。十七、30分钟以后,方案越来越清楚:可以买Combo Tester随着产品范围越来越明确,我们开始讨论:SATA SSD;M.2 SATA;M.2 NVMe;UFD;DDR4 UDIMM是不是每一种都要买一套完全独立的设备。会议中提到了一个很现实的思路:Combo Test Platform。例如同一套量产测试平台,可以根据 Fixture、Port 或模块配置,覆盖:Standard SATA SSD;M.2 SATA;M.2 NVMe。设备规模则可以有:64;128;256;甚至更多 DUT。对于第一阶段只有500片SSD/天的客户,这显然比一上来买几套独立大系统更合理。但真正落到采购时,还必须再做一步:用真实产品算Cycle Time。例如:500GB SSD 做一次完整写读测试需要多久?64 DUT 并行一次需要多久?一天跑几轮?是否需要温箱?是否需要人工上下料?换型号需要多久?真正算完以后,才知道64口到底够不够。十八、容量越大,测试吞吐量的问题越明显后面的讨论里还顺带讲到了一个非常基础但容易被忽略的问题:Storage Test时间和容量高度相关。对于:256GB;512GB;1TB这种容量,全盘写入/读取的时间还相对可控。但如果产品以后逐渐扩到:4TB;8TB;16TB;甚至几十TB,Burn-in 或全盘写读的时间会明显拉长。这也是为什么设计生产线不能只说:“我要每天测500块盘。”还要继续问:500块什么容量?两者完全不同。日产500块128GB SSD和日产500块8TB SSD,对测试设备的需求不在一个量级。十九、到了45分钟,客户终于把真正的优先级说出来了会议接近尾声时,客户把当前工作的顺序重新讲了一遍。他们现在虽然已经有 ADATA 等品牌的商业合作渠道,但眼下并不急着先谈 NAND 或 Controller Supplier。他们认为第一步是:先搞清楚工厂到底需要什么设备。把生产环境和测试能力搭起来。然后再决定:NAND跟谁买;Controller跟谁合作;哪些供应商进入AVL;最终怎样建立完整产品方案。这个顺序其实挺合理。因为如果没有明确 Test Flow,根本无法回答:什么等级 NAND 能用;什么等级 NAND 不敢用;供应商来料怎样验;哪些缺陷可以通过生产筛掉;哪些风险筛不出来。二十、客户最后又问了一遍:SMT之后到底还有多少步?大约48分钟,客户又回到了最初那个问题:“从SMT结束,一直到最终Pack,到底还有多少步骤?”这其实说明整场会议已经把他的问题定位得很清楚了。他缺的不是 SMT 知识。真正缺的是一张:SSD Post-SMT Manufacturing Flow。会议中我们没有凭空给他报“固定7步”或者“固定12步”。因为不同:Controller;NAND;Firmware;Good Die/Ink Die;SATA/NVMe;质量目标流程都可能不同。当时我们的结论是:先把现有工厂条件和产品需求整理出来;再针对他的 BOM 和产能,设计一套真实流程。转写中再次确认,他们所关注的核心就是 RDT、Burn-in、H2 等 SMT 后筛选环节。二十一、会议最终没有落在“卖哪台设备”,而是落在一页Requirement大约49分钟,双方最终确定下一步。客户提供一份大约一页的 Requirement Document。里面把最关键的信息写清楚:目标产品;Interface;Capacity;每天产量;NAND来源;Controller;现有设备;希望的自动化程度;质量要求;预算范围。然后我们再根据这份输入,给出:需要什么设备;每种设备需要多少;怎样连接;怎样安排测试工序;初步价格参考;未来如何扩容。这其实比第一次会议就直接发一张设备报价单靠谱得多。二十二、项目时间也已经比较明确:2026年底装设备,2027年开始生产客户当前还在准备 Business Plan,并需要向公司管理层申请投资批准。按照会议中的计划:如果项目顺利,设备安装预计在2026年Q4~2027年Q1;正式生产预计在2027年Q1~Q2开始。所以现在并不是简单问个价格。实际上已经进入:Pre-Factory Planning。也就是正式采购设备之前最重要的阶段。二十三、9月份还准备再到中国,把供应链继续往下跑会议结束前,对方还提到,预计9月份再次到中国,并计划去上海以及东莞、深圳、广州等地继续拜访供应商。这和整个项目的逻辑正好接上:第一步,把产品定位和工厂 Test Flow 定下来;第二步,看设备;第三步,看 NAND、Controller 和 CKD/SKD 供应商;第四步做小规模试产;第五步根据良率和RMA数据再扩产。从商业角度看,这比一开始就采购大量设备安全得多。写在最后:造SSD最容易的那一步,可能恰恰是SMT整场交流结束以后,再回头看客户最开始的问题:“我们已经有SMT了,还需要买什么设备才能生产SSD?”答案其实已经完全变了。真正的问题不是:“SMT后面还有哪几台机器?”而是:“你准备用什么NAND、什么Controller、做什么产品、卖给什么客户,然后愿意为多少RMA风险买单?”这几个问题决定以后,设备清单自然会出来。如果使用来源稳定、Bin清晰的 NAND,生产筛选流程可以相对简洁。如果使用需要二次筛选的 NAND,则必须把 RDT、Burn-in、H2/全盘数据验证、坏块管理、开卡和最终质量检查真正建立起来。而如果未来从:SATA SSD走到:PCIe Gen3、Gen4、Gen5;再进一步进入:Enterprise SSD,那测试体系也会逐渐从:“能不能把坏盘筛出来”升级到:“协议、功能、功耗、掉电、可靠性、兼容性到底是否全部符合要求”。所以一家 SSD 公司真正的制造能力,并不是看 SMT 线上一天能贴多少块 PCB。真正拉开差距的,是 SMT 后面那一段:它到底有多少能力,把一个“焊好了的PCBA”,变成一块“敢给客户三年、五年质保的SSD”。这才是这次交流真正讲清楚的一件事情。【存储业界小知识】SSD工厂领域的CKD and SKD是什么意思?在 SSD(固态硬盘)制造和电子代工领域,CKD 和 SKD 是两种非常常见的跨国制造与组装贸易模式。它们不仅用于 SSD 行业,也广泛应用于手机、笔记本电脑、汽车等制造业。它们的具体含义如下:1. CKD:Completely Knocked Down(全散件组装 / 完全拆散件)中文含义:全散件组装 / 零组件进口组装。在 SSD 领域的具体意思: SSD 工厂输出的是最原始的单个电子元器件和裸板。接收方(买家或海外分厂)需要具备完整的 SMT(表面贴装技术)贴片生产线 和测试能力。SSD 的 CKD 包含哪些东西:裸 PCB 空板(电路板)主控芯片(Controller)闪存颗粒(NAND Flash,可能是未封装的晶圆裸片(Wafer)或已封装好的颗粒)缓存芯片(DRAM,如果有)阻容感等微小贴片元件(电阻、电容、电感、电源管理芯片等)外壳、贴纸、螺丝和包装盒工作流程:SSD 工厂把这些零散的微小元件打包发给客户,客户在当地的工厂里,通过 SMT 贴片机将元件焊接到 PCB 上,再经过固件(Firmware)烧录、开卡测试、老化测试、装壳,最终变成成品。2. SKD:Semi-Knocked Down(半散件组装 / 半拆散件)中文含义:半散件组装。在 SSD 领域的具体意思: SSD 工厂已经完成了最核心、技术难度最高的贴片焊接与基础测试工序,输出的是“已经焊好芯片的半成品(PCBA)”以及外壳等辅料。接收方只需要做简单的后段组装和包装。SSD 的 SKD 包含哪些东西:已完成 SMT 贴片并烧录好固件的 SSD 主板(PCBA)外壳(铝合金壳、塑料壳或散热片)导热贴/散热垫螺丝、标签贴纸、彩盒包装工作流程:接收方不需要购买昂贵的 SMT 贴片机,只需要在普通组装流水线上,工人把 PCBA 板放进外壳里、贴上导热垫、拧上螺丝、贴上标签贴纸、装入彩盒,进行最终的抽检出货。3. CKD 与 SKD 在 SSD 领域的对比对比维度CKD (全散件)SKD (半散件)出口物品形态裸PCB板 + 各种微小芯片及电阻电容已经焊好芯片的半成品板(PCBA)+ 外壳买方工厂设备要求需要昂贵的 SMT 贴片线、开卡测试设备、焊接设备只需要简单的流水组装线、拧螺丝工具、包装设备技术门槛极高(涉及芯片贴片焊接、不良率控制、开卡与研发调校)极低(纯手工作业或简单机械组装)关税/税率优惠最高(以零配件进口,关税通常最低)中等(介于成品和零配件之间)主要目的帮助客户在当地建厂,享受最高额度的国产化税收优惠/补贴快速通关,避开高额成品关税,降低当地生产门槛为什么 SSD 行业要搞 CKD / SKD?SSD 制造商(如在中国大陆、台湾或越南的工厂)之所以不直接出口封装好的成品 SSD,而是提供 CKD 或 SKD,主要有以下几个原因:避开进口关税/贸易壁垒:许多国家(如印度、巴西、俄罗斯、某些拉美或东南亚国家)为了保护本国制造业,对直接进口的“SSD 成品”征收极高的关税(例如 15%-30%),但对进口“CKD 零组件”或“SKD 半成品”的关税极低甚至免税。满足“本地化生产(Made in XXX)”政策:某些国家的政府采购或大型企业招投标,要求产品必须具备“本地制造”资质。通过 SKD/CKD 模式在当地组装,SSD 就可以合法贴上“Made in India”或“Made in Brazil”等标签。降低运输成本与损耗:PCBA 贴片板和外壳分开打包运输,体积小、重量轻,比带厚重包装盒的 SSD 成品运输成本低得多。希望获得更多关于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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-18 16:51:38
  • 【交流纪实】已有PPM,Gen6/CXL功耗测试怎么搭?一次选型交流把PPM、PAM和Sideband讲透

    做 PCIe Gen6、企业级 SSD 或 CXL 设备测试时,经常会碰到一个很现实的问题:实验室其实已经买过不少设备了。比如手上已经有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 信号放在同一条时间轴上分析。这三个需求看起来很接近,实际上对应的是完全不同的测试架构。一、讨论一开始,先把一个最容易混淆的问题讲清楚:PPM测到的到底是谁的电?客户当前已经有一台 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的电。二、如果我要测“服务器真正给SSD的电”,思路就变了客户随后提出了另一个需求。如果我并不想让外部 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之间到底发生了什么。这两者非常像,但本质不同。三、客户现有的QTL1999还能不能继续用?答案是:能交流进行到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/治具,而不是主机。四、顺着这个问题,又谈到了PPM为什么需要Calibration客户确认现有 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 能力就开始有意义了。五、真正进入Gen6环境后,需要解决的不是“PPM够不够快”,而是怎么把电送到新的DUT接下来讨论进入物理连接。客户原来的 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 和功耗测量。六、为什么转接卡上的“Host Power / External Power”选择一定不能忽略?交流中专门提醒了一个很容易犯错的小细节。如果使用带有外部 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又从哪里来?这比打开软件调电压更重要。七、然后客户问到了整个交流最关键的问题:既然PPM也能测功耗,那为什么还要PAM?大约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和PAM拉开差距的,是Sideband紧接着,交流中指出了 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放到同一时间轴上。九、为什么Sideband有时候比PCIe Data Packet还重要?沟通中举了一个刚刚遇到的实际案例。在某个服务器环境中,一个 Gen6 设备启动过程中表现不稳定。后来观察发现:服务器对 PCIe Reset,也就是 PERST#,进行了多次拉高/拉低动作;而实验室另外一个环境里的行为明显不同。这类问题很典型。工程师经常会看到:设备偶尔掉盘;某次Boot起不来;Reset以后又恢复;换一个Server平台问题消失;甚至重启十次只有一次失败。这时候第一反应往往是:“PCIe协议有Bug。”但实际问题可能根本还没走到 TLP 层。它可能发生在:Power Rail;PERST#;CLKREQ#;REFCLK;SMBus;PWRDIS这些启动条件上。所以:PCIe协议分析仪看到的是“链路里面说了什么”。而:PAM帮助你看到的是“链路准备说话之前,Host和Device之间发生了什么”。两者解决的是不同层面的问题。十、这也是为什么“功耗+Sideband同步记录”特别适合抓偶发故障假设一块 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。十一、所以到了15分钟以后,方案实际上已经分成了两个档次交流继续到这里,客户真正需要做的是一个投资选择。第一种:最小投入方案客户已经有: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 全套补齐。十二、第二种:完整Power + Sideband方案如果客户后续明确提出:不仅要看功耗;还要分析 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和PAM二选一。完全可以把两者结合起来。PPM负责:主动制造条件。例如:Voltage Margin;Power Loss;Brownout;Glitch。PAM负责:观察系统的响应。比如:功耗怎么变化;PERST#什么时候变化;CLKREQ#是否出现异常;SMBus什么时候有活动。这时测试从:“量功耗”变成了:主动制造故障 + 同步观察Device和Host怎样回应。这个能力对于定位非常偶发的问题尤其有用。Quarch自己也把 PPM 和 PAM 定位成能力部分重叠、但侧重点不同的两类产品,并强调出现问题以后可以通过 PPM 或其他 Fault Injection 工具重新复现问题。十四、17分钟以后,话题从“电”转到了“线”:客户真正测的是一个x8 CXL设备把 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的线能不能直接跑Gen6?答案不是简单的“能”或者“不能”交流中又出现一个很有工程味的问题。现场找到了一款以前使用的 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 设计和验证的产品。十六、到了20分钟左右,讨论已经从“找一根线”升级成“整个CXL连接拓扑怎么搭”客户需要的是 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 那么容易直接找到标准品。所以会议中并没有强行说:“这个型号肯定有。”而是决定:回头直接向国外原厂确认。这种处理反而是正确的。十七、为什么Gen6环境越来越多采用MCIO?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通常更容易组成不同的实验拓扑。十八、如果被测对象本身就是E3/CXL,其实直接用x8 EDSFF 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自然就出来了。二十、把整场交流浓缩下来,其实就是下面三种测试需求如果以后再碰到类似客户,我觉得完全可以先问三个问题。需求一:我要做Voltage Margining、掉电、Brownout,同时测功耗优先考虑:PPM + 对应Power Injection Fixture。如果已有 QTL1999,尽量继续复用。核心能力是:主动控制Power。需求二:我不想改变服务器供电,只想看真实环境中的功耗优先考虑:PAM + 对应PAM Fixture。此时 Host 正常给 DUT 供电。核心能力是:观察真实Host→Device Power。需求三:我不仅要功耗,还要知道PERST#、CLKREQ#等什么时候变化选择:PAM + 带Sideband Capture的Fixture。如果还希望主动制造:Voltage Sag;Brownout;Power Loss;Glitch,再结合:PPM。也就是说:PPM负责“制造条件”,PAM负责“观察发生了什么”。这句话基本就能把两种设备讲清楚。写在最后:Gen6测试环境最怕的不是设备少,而是把不同问题用同一种工具解决这次交流表面看是在讨论:“该买哪一张转接卡?”但真正的问题其实是:究竟想测什么?如果只是想知道: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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-17 16:46:38
  • 【业界进展】PCIe 6.0全球最新进展(截至2026.08.08)

    由于上周FMS 2026(8.4~8.6.2026)参与人数与前几年相比异常火爆,好多厂商发布了最新的PCIe 6.0的产品,包括PCIe 6.0 SSD企业级控制器等,所以刚过去的周日(2026/8/8)写了一篇关于PCIe 6.0全球最新进展的介绍文章,结果由于周一发了其它文章差点本周忘记发了。 PCIe 6.0 现在已经从“标准发布”走到真正系统验证和早期商用落地阶段了。简单讲:2022 年标准完成,2024–2025 年主要是 PHY、Retimer、Switch、Analyzer/Exerciser、Compliance Test 工具在成熟;到 2025–2026 年,PCIe 6.0 开始在 AI 服务器、企业级 SSD、CXL/内存扩展、网络与高性能交换架构里进入实物验证和产品化阶段。 对于PCIe 6.0测试技术、产品和测试环境搭建感兴趣的看这里: 【专题】全球最全面的 PCIe 6.0/CXL 3.0 测试工具方案探讨汇总 1. 标准层面:PCIe 6.x 已经进入合规测试阶段 PCIe 6.0 的核心速率是 64GT/s,相比 PCIe 5.0 的 32GT/s 又翻了一倍。x16 理论双向带宽可以达到约 256GB/s 级别;x4 SSD 链路也能把顺序读性能推到 25–30GB/s 区间。 最新重要信号是:PCI-SIG 2026 年 7 月的 Compliance Workshop #140 已经包含 PCIe 6.x Official Testing,测试速率覆盖 2.5、5.0、8.0、16.0、32.0、64GT/s;同时还包含 PCIe 5.0/6.x Retimer 官方测试。也就是说,PCIe 6.0 不再只是纸面标准,已经进入 Integrators List 和正式一致性测试生态。 PCI-SIG正式批准!SerialTek 成为 PCIe 6.0 协议层 CTS 官方认证测试平台 另外,PCI-SIG 首页已经显示 PCIe 6.4 Specification Available to Members,同时 PCIe 7.0 也已经 available to members,PCIe 8.0 目标是 256GT/s、2028 年方向。这个节奏说明:标准组织已经继续向前走,但产业当前真正要消化的重点,仍然是 PCIe 6.x 的实现、测试和规模化。 2. 技术层面:PCIe 6.0 最大变化不是“更快”,而是 PAM4 + FLIT + FEC PCIe 1.0 到 5.0 基本都是 NRZ 信号,每个 UI 表示 1 bit。到了 PCIe 6.0,为了在不把 Nyquist 频率继续翻倍到难以承受的程度,改成了 PAM4,一个符号表示 2 bit。 这带来一个很大的工程变化: 以前更像判断“高/低”两个电平;现在要判断“四个电平”。眼图从一个大眼睛变成多个小眼睛,噪声容限明显变小。 因此 PCIe 6.0 引入了: FLIT Mode:固定大小的数据传输单元,让链路层和事务层处理更规整。FEC:前向纠错,用来对抗 PAM4 更高的误码率。更复杂的 Link Training:包括 equalization、preset、margin、Retimer 行为等。更严格的系统级信号完整性要求:连接器、线缆、PCB、Retimer、Switch、插槽都会影响结果。 所以 PCIe 6.0 的难点不是“把速率从 32GT/s 调到 64GT/s”这么简单,而是整个系统从 NRZ 时代进入 PAM4/FLIT/FEC 时代。 3. 产品层面:最先落地的是 AI / 数据中心,不是普通 PC PCIe 6.0 目前最明确的落地方向是数据中心,尤其是 AI 服务器。 原因很直接:AI 服务器里 GPU、DPU、NIC、SSD、CXL 内存设备之间的数据搬运量太大。PCIe 5.0 在很多场景下已经开始接近瓶颈,特别是 GPU Direct Storage、高速 NVMe、CXL memory expansion、800G/1.6T 网络等方向。 企业级 SSD 是一个很好的例子。Micron 9650 被公开报道为 PCIe 6.0 SSD,面向 AI 服务器,顺序读最高可达 28GB/s、写入最高约 14GB/s,采用 E1.S / E3.S 等服务器形态,而不是普通 M.2 消费级 SSD。 SSD Controller 方面,Silicon Motion 已经在企业级路线中推进 PCIe 6.x。公开报道提到其 MonTitan SM8466 面向数据中心 PCIe 6.x x4 SSD;同时 SMI 也提到 client PCIe 6.0 控制器更可能在 2027 年后进入消费级市场。 对于PCIe Gen6 SSD测试环境可以看这里的高清视频演示: 【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境 【高清视频】5个高清视频告诉你:PCIe 6.0 SSD测试环境搭建转接卡/线与隐藏风险全解析 【高清视频】PCIe 6.0主机卡+Gen6 E3.S转接卡初次使用演示 //* 上面最后一篇文章的第一段包含了我们针对PCIe Gen6 switch卡之前拍摄的很多视频;我们之前做过很多期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 的第一波不是游戏 PC,也不是普通笔记本,而是 AI 数据中心和企业级存储。 4. 测试层面:PCIe 6.0 进入“系统测试时代” PCIe 6.0 的测试不再只是拿示波器看眼图,也不是简单跑一个 bandwidth benchmark。它需要完整系统测试链条: 协议分析仪:抓包,看 FLIT、TLP、DLLP、LTSSM、错误恢复。 --> SerialTek  训练器 / Exerciser:主动发包,模拟 Root Complex 或 Endpoint。 --> SerialTek Compliance Test:跑 PCI-SIG 一致性测试,进入 Integrators List。 --> SerialTek Retimer / Cable / Switch 测试:验证链路中间件对训练、均衡、错误恢复的影响。 --> Quarch  故障注入:模拟 Surprise Down、Malformed TLP、Poisoned TLP、链路 flap、超时等异常。 --> Quarch  电压拉偏与功耗测试:验证设备在 marginal power 下是否掉盘、降速、报 AER。 --> Quarch   Sideband信号监控:PERST#、CLKREQ#、WAKE#、PRSNT#、SMBus/I2C/I3C 等都可能影响链路稳定。 --> Quarch PCI-SIG 2026 年 workshop 已经把 PCIe 6.x official testing 和 PCIe 6.x retimer official testing 放进活动范围,这说明测试生态已经进入实操阶段。 这也是为什么 SerialTek等协议/一致性测试工具,以及 Quarch 这类功耗、热插拔、故障注入工具会越来越重要。PCIe 6.0 系统里的问题很可能不是单点设备坏,而是 “CPU Root Port + Retimer + Cable + Switch + Endpoint + Power + Firmware” 组合起来以后才暴露。 SerialTek 解决的是 PCIe Gen6 协议分析、抓包、训练器和合规测试问题。 SANBlaze 解决的是 NVMe / PCIe SSD 设备仿真、验证、测试平台问题。 Quarch 解决的是电源、功耗、掉电、热插拔、sideband、低功耗状态分析问题。 对于客户来说,这三类工具经常不是互相替代,而是组合使用。对于如何测试一块PCIe  Gen6 eSSD,感兴趣的可以看这里: SerialTek 看链路训练、FLIT、TLP、NVMe command、错误和 trace  SANBlaze 提供稳定可控的 test platform或 SSD validation 环境  Quarch 监测和控制电源轨、PERST#、CLKREQ#、L1.2、掉电和功耗行为 5. Switch / Retimer / Cable 会成为 PCIe 6.0 生态核心 PCIe 6.0 速率太高,单靠一块主板直连很难覆盖复杂系统。AI 服务器和存储系统里面会大量使用: Retimer Redriver PCIe Switch MCIO / CopprLink / CDFP 类线缆 EDSFF E1.S / E3.S 背板 OCP NIC / CXL 模块 外部扩展 chassis 这意味着 PCIe 6.0 的很多问题会发生在“中间路径”: Retimer 是否正确转发 training sequence? 链路能不能稳定进入 64GT/s? 降速到 32GT/s 时是否稳定? 链路恢复后 FLIT/FEC 错误计数是否异常? Cable 互换后是否出现 margin 差异? Switch 多端口压力下是否有拥塞、AER、DPC、Surprise Down? Sideband 信号时序是否导致设备偶发无法枚举? 所以 PCIe 6.0 时代,测试重点会从“单设备测试”变成“系统拓扑测试”。 对于PCIe 6.0互连产品,感兴趣看这里: 【行业内幕】PCIe Gen6/7生态正在换挡:SerialCables最新产品透露了哪些信号? 6. PCIe 7.0 已经发布,但不会马上取代 PCIe 6.0 PCI-SIG 首页显示 PCIe 7.0 Specification 已经 available to members;PCIe 7.0 目标是 128GT/s,继续使用 PAM4,主要面向 AI、云计算、800G/1.6T 网络等高端场景。 但产业规律通常是:标准先走,产品慢慢跟。PCIe 6.0 刚进入早期产品和合规测试阶段,真正规模化还需要时间。PCIe 7.0 对普通客户来说更像“下一代路线图”,而 PCIe 6.0 才是 2026–2027 年值得重点投入验证能力的现实目标。 一句话总结 PCIe 6.0 最新进展可以概括为:标准已经成熟,合规测试已经启动,企业级 SSD 和 AI 服务器率先落地,消费级还要等,真正难点已经从“能不能跑 64GT/s”转向“复杂系统里能不能稳定训练、抓包定位、故障恢复、功耗验证和长期可靠运行”。 更多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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。  
    2026-08-14 09:46:58
  • 【交流纪实】和业内顶尖服务器厂商交流PCIe Gen6到底怎么测,一次讲透分析、训练、故障注入与SSD验证

    如果只是看 PCIe 6.0 的规范,很容易产生一个错觉:64 GT/s、PAM4、FLIT、FEC……无非就是 PCIe 又快了一代。但真正开始做芯片、SSD、网卡、GPU、AI 加速卡或者服务器验证以后,会发现问题远没有这么简单。一块 PCIe Gen6 Device 放到系统里不能稳定 Link Up,到底应该先查物理层,还是先抓协议?插入协议分析仪以后,原来的问题突然消失了,这条 Trace 还能不能相信?如果还没有成熟的 Gen6 CPU,怎么提前验证自己的 Gen6 Endpoint?怎样故意制造 CRC Error、链路毛刺、电源波动、Sideband 异常,看看 DUT 到底扛不扛得住?而如果测试对象从一颗 PCIe Controller 进一步变成一块企业级 NVMe SSD,测试范围又会迅速扩大到 NVMe、OCP、NVMe-MI、I3C、掉电、热插拔、功耗乃至可靠性测试。我们最近这次和业内领先的服务器厂商研发/测试部门接近两个小时的技术交流,实际上就是沿着这些问题一路展开。尽管用户对于PCIe 6.0 SSD测试非常感兴趣,但是会议开始时,大家没有把讨论范围限制在 SSD,而是先明确了一个大的边界:PCIe Gen6 测试工具面对的不只是存储,而是计算、网络和存储整个 PCIe 生态。这也决定了后面的讨论并不是简单介绍“一台PCIe协议分析仪”,而是在逐渐搭建一套完整的 PCIe Gen6 验证工具链。对于PCIe 6.0测试技术、产品和测试环境搭建感兴趣的看这里:【专题】全球最全面的 PCIe 6.0/CXL 3.0 测试工具方案探讨汇总一、先把 PCIe Gen6 测试分层:示波器解决不了所有问题交流一开始,先把测试工具分成了几个层次。最底层当然是大家熟悉的:Oscilloscope + BERT。示波器主要看 Transmitter;BERT,也就是 Bit Error Rate Tester,则更多参与 Receiver、Jitter、BER 等物理层测试。这一层解决的是:“你的电气信号到底合不合格?”但是再往上一层,问题就不同了。例如:为什么设备一直在 Recovery?为什么 Link 从 Gen6 降到了 Gen5?为什么出现大量 Replay?为什么系统完成 Link Training 以后还是找不到 Device?为什么某一个 TLP 发出去以后对端没有正确响应?这时候需要的就是:Protocol Analyzer。而如果问题进一步变成:“我还没有成熟的 Host,能不能模拟 Root Complex?”或者:“我想主动给 Device 发一些异常 TLP,看看它怎么响应。”那么仅仅 Analyzer 又不够,需要:Protocol Tester(业内也叫exerciser或者训练器)。PCI-SIG 官方目前也把 PCIe Compliance Testing 划分为 Electrical、Configuration、Link Protocol 和 Transaction Protocol 等测试领域。因此从实验室角度看,可以很形象地理解为:示波器/BERT 负责看“波形对不对”;Analyzer 负责看“双方刚才说了什么”;Tester 负责主动走过去“和 DUT 对话,甚至故意刁难它”。二、第一件重点设备:PCIe Gen6 Analyzer 不再只是 Analyzer现场首先重点介绍的是 SerialTek Kodiak系列 PCIe Gen6 Protocol Test System。这里一个很重要的变化,是不要再把它理解成传统意义上只会“抓包”的 Analyzer。在 Analyzer Mode 下,它串在真实 Host 和 Device 中间,完整记录 PCIe Link 上的 Traffic,用于 Debug。但是设备可以进一步切换到 Tester Mode。也就是说,同一套硬件可以从:“旁观者”变成:“参与者”。现场在很早的阶段就专门解释了这一点:切到 Tester 后,可以模拟 Host/Device 一侧,对另外一侧 DUT 进行受控测试。SerialTek 目前官方对 Kodiak Tester 的说明也明确包括 Compliance Test、Manual Test、Loopback、Feature Test、Trace Replay、Performance Test 和 Pattern Generator 等模式;Manual Mode 可以模拟 Host 或 Device 环境、修改 Configuration Space、控制 LTSSM 状态并强制 Sideband 信号。这个差别非常关键。因为真实服务器的最大问题之一,就是:它太“自动”了。你把一块 PCIe 卡插进去,一开机:Detect;Polling;Configuration;Equalization;最后直接进入 L0。整个过程由 CPU、BIOS、Firmware 自动完成。如果你想研究:“我就让它先跑 Gen1 x1。”“然后升 Gen2。”“然后主动发一个特定 TLP。”“再故意发一个 malformed TLP。”真实服务器通常很难给工程师这么细的控制。Tester 的意义就在这里。SerialTek 看链路训练、FLIT、TLP、NVMe command、错误和 trace 三、客户很快追问:接口这么多,一套 Analyzer 怎么接?讨论随后从“Analyzer 是什么”迅速进入真正的工程问题:接口怎么接?到了 PCIe Gen6,测试对象早已经不只是标准 CEM Add-in Card。现在实验室里常见的还有:E1.S;E1.L;E3.S;E3.L;OCP NIC 3.0;MCIO;各种 PCIe x4/x8/x16 Add-in Card;以及SSD 相关接口 M.2, U.2 等。所以真正昂贵和复杂的并不仅仅是 Analyzer 本体。Analyzer 和 DUT 中间还有一个非常重要的东西:Interposer。它必须真正串到 Host 与 Device 之间。比如测试 EDSFF SSD 时,原来 SSD 直接插到 Server Backplane;现在要把 SSD 拔下来,再把 Interposer 插进这条 Link:CPU → Backplane → Interposer → SSD与此同时,Interposer 把:Downstream;Upstream;Sideband分别复制出来送给 Analyzer。四、讨论很快进入 Gen6 最棘手的话题:插了 Analyzer,会不会把信号搞坏?这其实是整场交流中非常有价值的一段。客户直接问:“Interposer 加进去以后,又多了一段 Cable,又多了一块板,对原来的信号到底影响有多大?”这不是理论问题。这是所有高速协议分析仪都会遇到的根本问题:Observer Effect——你为了观察问题而加入的工具,本身会不会改变问题?Gen3、Gen4 时代这个问题已经存在。到了 PCIe Gen6,64 GT/s PAM4,对 Signal Integrity 的要求更苛刻。所以会议花了相当多时间解释 SerialTek 的 SI-Fi——Signal Integrity Fidelity 架构。SerialTek 官方目前也把 SI-Fi 描述为 Kodiak 的核心 Inline Probing 技术,用来在 RC 与 Endpoint 之间观察 PCIe Traffic,同时尽量保持原链路的 Signal Integrity。五、Signal Splitter:为什么没有直接用 Retimer或者Redriver?这里进一步讲到了 Interposer 内部非常值得关注的设计。以 x4 PCIe Link 为例,有 Lane 0~Lane 3。每条 Lane 对应的高速信号在 Interposer 中经过相应的 Signal Splitter。现场对此进行了很形象的描述:一条继续走向真正的通信对端;另外一条则引向 Analyzer。这和简单地在链路中塞一个 Retimer 有本质区别。如果加入 Retimer,那么 Retimer 本身已经参与到 PCIe Link 行为中。原本:Host ↔ DUT变成:Host ↔ Retimer ↔ DUT链路拓扑被改变了。而协议 Debug 最怕的一件事情恰恰是:Analyzer 一接进去,原来的问题没了。那不是好消息。因为你根本不知道是 DUT 的 Bug 消失了,还是测试工具替它把链路“修好了”。所以这次交流反复强调的,不是“完全没有影响”——这是高速链路里很危险的一种表述——而是:Probe/Interposer 本身对原链路的扰动必须尽可能小。六、Gen6 和 Gen5 最大的实际差别之一:信号余量明显更紧接下来这段交流非常像真正实验室里的情况。现场没有说:“Gen6 接上去就一定直接跑 64 GT/s。”恰恰相反。交流中提到,面对新的 Gen6 Host、SSD、Switch、AI 芯片或者其他 Endpoint 组合时,经常需要观察:Link 是否真正稳定工作在 Gen6;Correctable / Uncorrectable Error 数量;EQ 是否合适;Interposer 当前参数是否适合这条实际链路。也就是说:规格上都叫 PCIe Gen6,不代表两个刚刚第一次见面的 Gen6 Device 一插就一定完美互通。这也和 PCI-SIG 这两年持续进行 PCIe 6.x Preliminary FYI / Pre-FYI以及2026/7月正式进行的CTS 测试的背景吻合。PCI-SIG 的公开记录显示,2024 年 6 月已经举办 PCIe 6.0 Preliminary FYI Workshop,2025 年 3 月和 10 月继续举办 PCIe 6.x Preliminary FYI Workshop,2026 年 3 月又举行了专门面向 Link、Transaction 和 Configuration Space 的 PCIe 6.x Protocol Pre-FYI Workshop。这至少说明一件事情:PCIe Gen6 的产品生态已经进入真实验证阶段,但互操作性成熟是一个持续推进的过程,而不是 Base Specification 发布以后自动完成。七、一个很现实的问题:一台 Analyzer 能不能同时抓很多块盘?交流进行到三十多分钟时,客户问了一个非常典型的问题:“如果我后面有很多块 Gen6 SSD,能不能一台分析仪同时抓?”答案比较明确:传统 Inline Protocol Analyzer 的基本逻辑还是:一套 Interposer 观察一条 PCIe Link。这条 Link 可以是:x1;x2;x4;x8;x16。但它仍然是一条 Link。如果你有 8 块 SSD,它们分别经过 Switch 的 8 个 Downstream Port,那么就已经是 8 条独立 PCIe Link。想把它们全部同时当成独立 Analyzer Channel 来看,思路就完全不同了。八、于是引出了另一类工具:带内部 Trace 能力的 PCIe Gen6 Switch现场随后展示了一类基于SerialCables公司研发的基于Broadcom Gen6 Switch 卡。它的思路和独立 Analyzer 完全不同。比如一张 Gen6 Switch Card:上行连接 CPU;下行提供多个 MCIO / PCIe Port;可以同时挂 SSD、网卡或者其他 Endpoint。Serial Cables 当前公开的 Atlas 3 Gen6 Switch Card 就支持 PCIe 6.0 下行连接,并提供多个 Gen6 x8 MCIO 以及 x16 接口。会议中特别强调:这类 Switch 内部 Trace 能力不能和独立 Protocol Analyzer 画等号。原因之一就是 Buffer。Switch 芯片内部 SRAM 空间有限,可以胜任多个 Link 上的小窗口 Trace、Trigger 或 Bring-up 观察。而独立 Analyzer 的目标则完全不同:深度抓包。所以两种工具并不是谁替代谁,而是:Switch Trace 适合“多点看看发生了什么”;独立 Analyzer 适合“把某一条可疑链路挖到底”。九、客户追问的第二个核心问题:Trace 到底能抓多深?这时交流进入 Analyzer 最硬核的部分之一。现场提到 Kodiak Gen6 平台的 Deep Trace Buffer 可以达到 256 GB。SerialTek 当前 Enterprise Edition 官方规格同样列出了:256 GB Buffer + 8 TB Internal SSD + 2×10GbE。为什么 Gen6 Analyzer 要做到这么大的 Buffer?因为 64 GT/s 太快了。尤其在大流量环境下,Buffer 再大也不是无限的。所以真正做 Debug 时经常不是傻乎乎地说:“从开机开始一直抓到问题出现。”而是要设计:Trigger。十、Trigger 才决定大 Buffer 有没有真正价值客户随后马上问到了重点:如果系统压力很大,Buffer 很快就满,那怎么办?这时就进入 Trigger 设计。现场举了一个很典型的例子:只有当某个方向出现某种 Memory Transaction,并且其中指定字段等于某个值时,才触发停止。而真正工程化的 Trigger 往往还会更复杂:Condition A OR Condition B;先看到 A,再等待 B;指定方向;指定 Packet Type;指定 TLP Field;指定字段 Bit Pattern;甚至触发以后,不马上 Stop,而是:再保留后面 5%、20%、50% Buffer。为什么?因为很多 Bug 真正有价值的信息不一定在 Trigger 前面。例如:发现一个 Error;随后发生 Recovery;然后降速;最后 Link Down。如果 Trigger 一出现 Error 就立即停止,后面的故事反而丢了。所以 Analyzer 的真正价值不只是:Buffer 有多大。而是:你能不能准确告诉它“什么事情发生以后,前后哪些数据我要留下来”。十一、为什么现在的 Analyzer 不再把几百 GB Trace 搬回笔记本慢慢解?交流随后花了不少时间讨论 Kodiak 的硬件架构。业内传统的 Analyzer 通常把大量工作扔给工程师自己的 PC:Analyzer 先抓数据;再通过网络或 USB 搬到 PC;PC 软件解码;PC 再保存。随着 Trace 从几百 MB 膨胀到几十 GB、上百 GB,这种架构越来越吃力。Kodiak 的设计则把:Capture;Post Processing;Decode;Trace Storage都尽量放到 Analyzer 内部。SerialTek 官方将其称为 Embedded Trace Processing Architecture,并提供内部 SSD 和 Browser-Based BusXpert。于是工程师电脑承担的角色更像:显示和控制终端。而不是:几百 GB Trace 的搬运工。这也是为什么会议中不断强调“浏览器直接连 Analyzer”。十二、这还带来了一个很实际的变化:Trace 可以直接共享传统 Debug 经常遇到这样的场景:上海抓到一个 80 GB Trace;要发给深圳;深圳再发给美国 FAE;最后大家都在等文件上传下载。如果 Trace 本身保存在 Analyzer/NAS 一侧,而工程师通过 Web UI 访问,那么协同逻辑就完全不同了。可以把访问链接直接发给同事:大家看到的是同一份 Trace;不需要每个人先下载几十 GB;也避免了“你分析的是昨天版本还是今天版本”的问题。对于跨地区 IC Design、Validation 和 FAE 团队,这种变化其实比增加几个解码菜单更有价值。十三、接近一小时:Analyzer 讲完,正式进入 Tester到了交流中段,话题从:“我怎么观察 DUT?”切换到:“我怎么主动测试 DUT?”这就是 Tester。现场再次打开 Operation Mode,把设备从 Analyzer 切换到 Tester。如果 DUT 是一个 Endpoint,比如:SSD Controller;NIC Controller;GPU;DPU;AI Accelerator;那么 Tester 可以站在 Root Complex 一侧。反过来,如果验证的是 CPU/Root Complex,则 Tester 可以站在 Endpoint 一侧。这样一个非常重要的能力就出现了:可控。真实 PC 一开机就自己跑完整个流程。Tester 则可以把整个过程拆开。十四、为什么芯片研发阶段特别需要这种“可控 RC”?比如你刚 Tape-out 一颗新的 PCIe Gen6 Endpoint Controller。手里只有一块 EVB。你当然可以插到服务器里。但是如果失败了:是 BIOS?是 CPU?是你的 Controller?是某个 LTSSM State?是速率切换?还是特定 Packet?很难马上说清。Tester 则可以控制:Gen1;Gen2;Gen3;Gen4;Gen5;Gen6;不同 Link Width;再一步步发送需要的 Packet。SerialTek 当前官方资料也明确写到,Tester Manual Mode 可以模拟 Host/Device 环境、调整 Configuration、LTSSM 和 Sideband,并发送特定甚至 malformed TLP。这样就非常适合 Silicon Bring-up。十五、客户又追问:能不能故意把错误“打”进去?答案是可以在 Tester 能力范围内主动构造异常协议行为。例如:异常 TLP;错误响应;LCRC 等错误场景;观察 DUT 对错误的处理。这跟 Analyzer 的逻辑刚好相反。Analyzer 问的是:“错误刚才是怎么发生的?”Tester 问的是:“如果我故意给你一个错误,你会怎么办?”这实际上是验证 Controller Error Handling 最有效的方法之一。尤其很多 Corner Case,在正常服务器环境里几年都未必自然出现一次。而验证阶段不能靠等。必须主动制造。十六、进一步走到 PCI-SIG CTS:从 Debug 工具变成 Compliance 工具再往后,讨论从“自己写测试”进入了标准化测试:PCI-SIG Compliance Test Suite。PCI-SIG 官方 Compliance Program 包括:Electrical;Configuration;Link Protocol;Transaction Protocol等不同测试范围。Kodiak Tester 当前官方也明确支持 PCIe CTS,并覆盖 Link Layer、Transaction Layer 和 Protocol 相关测试。它和人工 Debug 最大的区别是:人工 Debug 是:“我怀疑这里有问题,所以设计一个实验。”CTS 是:“不管你觉得有没有问题,标准要求覆盖的项目我全部按规定跑。”这对芯片量产前 Validation 特别重要。PCI-SIG正式批准!SerialTek 成为 PCIe 6.0 协议层 CTS 官方认证测试平台十七、交流进行到后半段,话题突然从“PCIe芯片”切到“企业级SSD”大约 75 分钟以后,话题发生了明显变化。客户提到有 SSD 相关业务。于是讨论开始从 PCIe Protocol Verification 上移一层:如果测试对象不是一颗 Controller,而是一块完整 NVMe SSD,到底还需要测什么?答案就复杂得多了。现场开始介绍 SANBlaze SBExpress-RM6。转写中明确提到 RM6 是面向 PCIe Gen6 NVMe SSD 的 Rackmount Test System。SANBlaze 当前官方 RM6 平台是一套 16-bay、Gen1~Gen6 的企业级 NVMe Test Appliance。这和 Analyzer 完全不是一种产品。对于PCIe Gen6 SSD测试环境可以看这里的高清视频演示:【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境【高清视频】5个高清视频告诉你:PCIe 6.0 SSD测试环境搭建转接卡/线与隐藏风险全解析【高清视频】PCIe 6.0主机卡+Gen6 E3.S转接卡初次使用演示//* 上面最后一篇文章的第一段包含了我们针对PCIe Gen6 switch卡之前拍摄的很多视频;我们之前做过很多期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盘位盘柜,等等。十八、Analyzer 是“看问题”,RM6 是“系统地把盘折腾一遍”Analyzer 更像显微镜。RM6 更像自动化试验场。比如一块企业级 SSD,你可能需要测试:NVMe Command;不同 I/O Pattern;Namespace Create/Delete/Attach/Detach;各种 Reset;Power Cycle;Surprise Power Loss;Link Retrain;Link Speed;Hot Plug;Dual Port;NVMe-MI;I2C/I3C;FDP;OCP;SPDM;TCG;大量企业级 Corner Case。SANBlaze 当前公开脚本库就包含 NVMe Namespace、NVMe Resets、NVMe-MI、Dual Port、ZNS、FDP、TCG、OCP 等大量测试模块。所以:Analyzer 适合回答“为什么这次失败?”而完整 SSD Validation System 更适合回答:“这块盘在几千个不同测试场景下,到底够不够可靠?”SANBlaze 提供稳定可控的 test platform进行PCIe 6.0 SSD测试 十九、这里还谈到了 UNH-IOL:为什么企业级 SSD 测试不能只靠自己写几个 FIO现场客户问到了一个非常现实的问题:市场上不是也有很多纯软件 NVMe Test Framework 吗?为什么还需要专门的 SSD Test System?核心区别之一就是:Enterprise SSD 的测试面远大于一般 Consumer M.2 SSD。尤其到了:OCP Datacenter SSD;Dual Port;Namespace Management;NVMe-MI;I3C;FDP;SPDM;复杂 Reset/Power;企业级可靠性这些场景以后,只跑几个 nvme-cli + FIO 脚本或者一些开源软件、简易的windows或者linux版软件远远不够。这也是为什么现场随后重点讨论了 SANBlaze 与 UNH-IOL 的合作。这一点目前可以从双方公开资料得到确认:SANBlaze 已将 UNH-IOL INTERACT 协议一致性测试集成到其平台,后续SMBUS/I2C/I3C全球全部通过SanBlaze测试机,同时 UNH-IOL OCP 测试方案就是采用SanBlaze设备和测试用例。二十、SSD 验证再往下走:正常测试还不够,还要主动“搞坏环境”到了这里,交流进入我认为整场最有意思的部分之一:Fault Injection。一块 SSD 在完美实验室条件下跑一天 FIO 不掉盘,并不能证明它可靠。真实服务器里可能发生:接触不良;Hot Plug;某条 PCIe Lane 瞬时异常;Sideband 抖动;REFCLK 异常;Power Rail 波动;短暂掉电;Pin Connection Sequence 偏差;某个连接器虚接。这些情况都不是正常软件测试能轻易复现的。所以需要主动制造 Fault。当然,如果使用SanBlaze RM6进行测试,其内置的iRiser6就是实现该测试目的的,但是如果在真实的服务器环境中,那么必须采用下面的独立第三方Quarch Breaker实现。二十一、Quarch Breaker:不是用手拔卡,而是“可编程地模拟拔卡”会议接下来介绍了 Quarch 的 Hot Swap / Fault Injection 模块。思路非常直接:把 Breaker 串在:Host ↔ DUT之间。它可以控制:Power;PCIe Data Lane;Sideband;Present 等相关信号。然后由软件按照设定的 Timing:Disconnect;Reconnect;Pin Bounce;Glitch。这就把原来非常粗糙的:“工程师伸手拔一下盘。”变成:“第 37 次循环,在 Lane 0 上制造一个指定宽度 Glitch,同时保持其他信号正常。”Quarch 当前 Gen6 Breaker 官方规格支持逐 Lane 控制,并提供 1 μs Switch Timing、100 ns Pin Bounce 以及最低 50 ns 的 PRBS/User-Sequence Glitch Pulse。会议中客户也专门追问了这个最小 Glitch 时间,并围绕 50 ns 展开了讨论。二十二、为什么制造 Glitch 很重要?假设 SSD 正在跑 FIO。这时对某个 PCIe Lane 周期性制造短 Glitch。那么 DUT 可能看到:CRC Error;链路错误;Retry;Recovery;甚至 Link Down。我们真正要测试的并不是:“能不能制造错误。”这很容易。真正要测的是:错误发生以后,DUT 能不能优雅地处理?比如:能不能 Recovery?会不会突然掉盘?会不会数据损坏?会不会整个 OS Hang?如果 Lane 数减少以后,能不能以更低 Width 保持工作?这才是 Reliability Validation。二十三、接下来是另一类非常容易被混在一起的工具:PPM故障注入之后,交流转到:Power Margining。这时候使用的是 PPM:Programmable Power Module。它不只是“给 DUT 供一个固定电压”。而是可以主动编程:正常上电 Ramp;突然掉电;Brownout;Voltage Margin;Glitch;复杂的 Voltage Waveform。Quarch 官方 PPM 也明确支持 Programmable Voltage、Power Loss、Brownout 和 Glitch,并可以在微秒级时间尺度构造电源波形。对于 SSD、NIC、GPU 这种 Device 来说,这意味着可以问一个以前很难自动回答的问题:如果 Host 给我的电压不是完美直线,我还能不能正常工作?二十四、PPM 和 PAM 不要搞混现场随后专门又谈到了 PAM:Power Analysis Module。两者名字很像,但侧重点不同。可以简单记:PPM偏主动:“我来改变你的电。”例如 Voltage Margining、Power Loss、Brownout。PAM偏观察:“我来测你的电 + Sideband边带信号。”例如:Voltage;Current;Power;Sideband State。现场也明确把 PAM 定义为用于监测电压、电流、功耗和 Sideband 的 Power Analysis Module。Quarch 官方说明也完全对应:PAM 在正常 Host 供电条件下测量各 Power Rail 的 Voltage/Current/Power,同时监控选定 Sideband。这在调低功耗问题时特别好用。因为你可以同时看:PCIe State 怎么变;Sideband 怎么变;Current 到底有没有真的下降。Quarch 监测和控制电源轨、PERST#、CLKREQ#、L1.2、掉电和功耗行为二十五、交流最后一个大主题:没有 Gen6 CPU,实验室怎么提前搭 Gen6 环境?接近会议尾声,讨论重新回到了环境搭建。这是现在很多团队都面临的问题:Endpoint 已经出来了;SSD Controller 出来了;Retimer 出来了;NIC/GPU/AI Accelerator EVB 出来了;但是实验室手头没有足够成熟的 Gen6 Host和足够多的device。怎么办?一个现实办法就是:PCIe Gen6 Switch。例如:Host 这一侧即便暂时只跑 Gen5;Switch Downstream 本身仍然可以给新的 Device 提供 Gen6 Link。Serial Cables 当前基于 Broadcom Atlas 3 的 Gen6 Switch Card 就公开提供 Gen6 Downstream Connectivity、多组 MCIO 和 PCIe 接口。这样就可以提前 Bring-up Gen6 Endpoint。二十六、Switch 特别适合做“Golden Environment”,但别把它误认为 Analyzer客户最后又回到刚才那个问题:既然 Switch 也可以看到一些内部数据,那是不是 Analyzer 就没用了?不是。尤其当测试对象本身的真实拓扑就包含 Switch 时,Switch 内部 Debug 信息当然非常有价值。但如果原来的问题拓扑是:CPU ↔ NIC为了 Debug 硬塞成:CPU ↔ Switch ↔ NIC问题本身可能已经被改变。所以会议中特别提醒:Switch 是搭环境、Fan-out、Multi-Link Bring-up 很好用的工具,但不能无条件代替透明 Inline Analyzer。两者目标不同。二十七、Retimer 和 Redriver 也在这时进入了测试工具链如果 Gen6 Channel 本身太差,则还可能需要:Retimer;Redriver。Serial Cables 当前已经提供 PCIe/CXL Gen6 Retimer 和 Redriver 卡,例如 Gen6 2×x8 MCIO Retimer 以及基于 Phison 的 Gen6 Redriver。这类卡在实验室非常适合做几种实验:故意增加 Cable Loss;把 Channel 拉到边缘状态;观察 Link 是否降速;加入 Retimer 后比较;加入 Redriver 后比较;重新调 EQ;测试不同拓扑。换句话说,工具不是只能用来“测 DUT”。有时候它本身就是:用来制造不同 Channel 条件的积木。对于PCIe 6.0互联产品,感兴趣看这里:【行业内幕】PCIe Gen6/7生态正在换挡:SerialCables最新产品透露了哪些信号?二十八、到会议结束时,其实已经形成了一套完整的 PCIe Gen6 测试金字塔把这次接近两个小时的交流重新整理以后,会发现所有工具其实并不杂乱。它们恰好对应不同问题。最底层:第一层:ElectricalOscilloscope + BERT解决:信号本身合不合格。再上一层:第二层:Protocol Analyzer解决:问题发生的时候,PCIe Link 上到底发生了什么。再上一层:第三层:Protocol Tester解决:我主动制造特定协议行为,DUT 会怎么响应。再往上:第四层:PCI-SIG CTS解决:不是针对某一个 Bug,而是系统地检查标准 Compliance。如果 DUT 已经变成完整 SSD:第五层:SANBlaze RM6解决:NVMe/OCP/NVMe-MI/I2C/I3C/FDP/SPDM/TCG/UNH IOL/VDM/ZNS/Reset/Power/Enterprise Feature 的系统验证。再把环境故意搞坏:第六层:Quarch Breaker / PPM解决:Hot Plug、Fault Injection、Glitch、Power Margining、Abnormal Power。与此同时:第七层:Quarch PAM解决:长时间测 Voltage、Current、Power 和 Sideband。最后:第八层:Gen6 Switch / Retimer / Redriver解决:没有成熟 Host、接口不够、Channel 太差或者需要构造复杂 Gen6 拓扑时的环境搭建。这时再回头看“PCIe Gen6 测试”这几个字,就会发现:它根本不是买一台 Analyzer 就结束了。写在最后:真正复杂的不是64 GT/s,而是“问题到底发生在哪一层”这次交流给我最大的感受,并不是某一台仪器有多少 GB Buffer,或者某一个模块能打多少纳秒的 Glitch。真正值得工程师建立起来的是:分层定位问题的思维。例如一块 Gen6 SSD 掉盘。不要上来就抓几十 GB Trace。先问:物理层有没有问题?Link Training 正常吗?是不是 EQ?有没有 Uncorrectable Error?PERST# 有没有异常?PCIe Protocol 有没有异常 TLP/DLLP?是 Host 没发 Command?还是 SSD 没回 Completion?还是 Power Rail 在某个瞬间掉了?是不是只有插某一台服务器才复现?能不能用 Tester 主动复现?能不能通过 Fault Injection 把问题概率从“一周一次”提高到“一分钟一次”?一旦问题被拆到这一层,工具的选择自然就清楚了。Analyzer 不是为了抓得越多越好;Tester 不是为了把 DUT 折腾得越惨越好;Fault Injection 也不是为了证明设备一定会挂。所有工具最终服务的,其实是同一个目的:把一个原来看起来随机、偶发、无法解释的问题,变成一个可观察、可控制、可复现、最终可以被修掉的问题。而这,才是 PCIe Gen6 真正进入芯片验证、服务器、网络、AI 和企业级存储以后,对测试工程师提出的最大挑战。希望获得更多关于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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-13 10:22:19
  • Gen6 SSD一过Switch性能就掉?从E1.S转接到Flow Control,一次技术交流讲透

    PCIe Gen6 SSD 到底难不难测?如果只是看规格表,好像并不复杂:64 GT/s、PAM4、x4、E1.S/E3.S,把盘插上去,跑个 FIO,看看能不能达到二十几个 GB/s,不就完了吗?但真正进入研发验证现场以后,会发现问题远没有这么简单。有时候最麻烦的甚至不是:“Gen6 Link起不来。”而是:Link明明已经稳定工作在Gen6 x4,系统也能正常识别SSD,可一旦中间增加PCIe Switch,性能就掉了10%、20%,甚至更多。这时候到底是谁的问题?是 Switch?是 Cable?是转接板?是 Gen6 Signal Integrity?还是 SSD Controller 本身与 Switch 之间的 Flow Control 出现了问题?最近,我们围绕一套 PCIe Gen6 SSD 测试环境和成都一个PCIe 6.0 E3.S SSD研发客户做了一次四十多分钟的技术交流。讨论从最开始的:PCIe Gen6 Switch;E1.S/E3.S Adapter;CXL x8/x16;Flow Control Credit;协议分析仪抓包;FIO 性能对比;Gen6 8-Bay JBOF;Power Cycle;PAM;Fault Injection;以及 Gen6 环境下为什么不建议反复人工插拔 SSD。看起来问题很多,但整场交流其实围绕着一条非常清晰的主线:一套真正可用于Gen6 SSD研发的测试环境,绝不能只验证“能不能Link Up”,还必须验证设备进入真实Switch拓扑以后,协议、流控、性能和可靠性是不是仍然正常。一、交流一开始碰到的第一个现实问题:Gen6 SSD样品本身就不好找我们目前也在看能否找到一块 PCIe Gen6 x4 E1.S SSD,主要是配合现有 Gen6 测试工具做实验、拍摄高清视频和搭建演示环境,包括:PCIe Gen6 Protocol Analyzer;Protocol Tester;SSD Validation System;Power / Fault Injection;Gen6 Switch及各种Adapter。目前市场上Gen6 SSD仍旧买不到,当然准确的理解应该是:特定型号、特定Form Factor、能够自由用于研发测试的样品获取仍然困难,并不是市场上完全没有量产Gen6 SSD。截至目前,Micron 官方的 9650 已经是一款 PCIe Gen6 x4 数据中心 SSD,提供 E1.S 和 E3.S,官方最高顺序读取达到 28 GB/s、随机读取达到 5.5 MIOPS;Micron 也已经明确表示 9650 正在量产出货。Samsung 也在 2026年7月8日正式宣布开始量产 PCIe 6.0 企业级 SSD PM1763。所以现在行业已经从:“有没有Gen6 SSD”逐步进入:“我能不能方便地拿到我要的Gen6 SSD,并放进自己的验证环境里反复折腾”这个阶段。这两件事完全不是一回事。二、接下来客户问了一个很实际的问题:Switch卡顶部到底该买哪种转接卡?大约三分钟后,话题开始进入环境搭建。客户已经在考虑使用 我们Saniffer公司销售的Gen6 PCIe Switch Card。当前 Serial Cables 基于 Broadcom Atlas 3 的 Gen6 Host Card,正式产品版本提供:4个Gen6 x8 MCIO下行接口;以及:1个Gen6 x16 Straddle Mount接口;整张卡可以向 Switch 下游提供 64 Lane 的 Gen6 Connectivity。更重要的是,这类架构甚至允许上游先使用现有 Gen5 Host,而在 Switch 下游先建立 Gen6 Endpoint 验证环境。于是问题来了:如果我现在只是测一块:PCIe Gen6 x4 E1.S SSD,到底买 x8 Adapter 就够了,还是干脆买 x16?三、如果今天只做SSD,x4够;但如果明天要做CXL,思路马上就变了现场的判断非常直接。普通 PCIe Gen6 NVMe SSD,无论是 E1.S 还是很多 E3.S 产品,常见数据接口还是:PCIe Gen6 x4。所以仅从 SSD 来看,使用能够承载 x4 Device 的转接方案已经足够。但客户的实验室未来还有一个可能性:CXL。一旦开始测试 CXL Memory Device,尤其是更高带宽的 Type 3 Memory Device,x8甚至x16就会变得很常见。因此现场建议是:如果x8和x16方案投资差异可以接受,而未来明确可能做CXL,那么尽量不要把实验环境一开始就锁死在x4。交流中因此专门讨论了:Gen6 x4 SSD;CXL x8;CXL x16三种设备如何尽量通过一套基础测试环境覆盖。客户最后也更倾向于给未来留出 x16 的扩展能力。这其实是搭实验室时非常值得注意的一件事:不要只按照今天桌子上的DUT买设备。尤其是 PCIe Gen6/CXL 环境,一块 Switch、一套 Cable、一批 Adapter 很可能会用很多年。今天测的是:Gen6 x4 SSD;明年可能就变成:CXL x8 Memory Device;后面甚至可能出现:CXL x16 AIC。如果底层拓扑提前留好余量,后面会轻松很多。四、E1.S和E3.S看起来都是EDSFF,但别忘了机械结构也要匹配接下来讨论进一步落到了 EDSFF 的机械结构,这主要涉及到 E1.S / E3.S 等不同EDSFF转接卡及对应的Holder/Bracket。同一张高速电气 Adapter,很多时候 PCB 主体设计可能非常接近。但:E1.S的长度、宽度、固定方式;E3.S的机械尺寸;不同厚度的Device并不相同。因此产品往往会通过不同的:SSD Drive Holder / Bracket把 DUT 正确固定。现场甚至讨论了一种实验室临时省成本的方法:如果偶尔才测试另一种尺寸,可以拆掉原本的固定支架,再用临时机械方式固定。不过如果是正式研发环境,我并不建议把这种临时办法当作长期方案。到了 PCIe Gen6,机械固定本身已经不仅仅是“盘别掉下来”。Connector mating;PCB受力;接触稳定性;线缆弯曲状态都可能进一步影响高速链路的重复性。所以如果某一种 Form Factor 会被高频使用,最好还是配置真正匹配的 Holder。五、这里现场有一句话需要稍微纠正:“CXL就是PCIe上层协议”会议进行到7分钟左右,大家讨论:同一套 Adapter 能不能既接 NVMe SSD,又接 CXL Memory Device?现场为了方便理解,用了一个比较口语化的说法:“CXL也是PCIe上层,就像NVMe一样。”当然,CXL并不能简单等同于“像NVMe那样的PCIe上层协议”。CXL本身定义了不同的协议路径,其中包括:CXL.io以及:CXL.cache / CXL.mem。CXL.io承载和PCIe相关的设备发现、配置等语义,而CXL.cache/CXL.mem则负责缓存一致性和内存语义。CXL 3.0把链路速率提升到 64 GT/s,可以基于PCIe 6.0级别的高速物理基础设施运行,并扩展到最多x16 Lane。所以为什么一块好的 EDSFF Adapter 可以同时宣称支持:PCIe;NVMe;CXL?原因并不是:“NVMe和CXL是一回事。”而是:对于纯物理转接设备来说,只要它满足对应的Connector、Lane数量、Sideband以及Gen6 Signal Integrity要求,本身并不需要理解上层跑的是NVMe还是CXL.mem。它做的主要工作仍然是把物理链路完整送过去。这个概念一定要分清。六、大约9分半,真正有意思的问题出现了:Link能起来,但性能就是上不去前面的讨论还属于“怎么买设备”。到了大约9分半,客户突然提出了一个真正值得分析的现场问题。他们之前已经做过一套类似环境:SSD连接PCIe Switch;系统能够正常枚举;链路训练也没有明显问题。换句话说:Link是起来的。但一跑性能:就是跑不上去。这其实是高速PCIe验证中一个非常典型、也非常容易误判的问题。很多工程师看到:Gen6 x4;Link Up;系统识别正常;lspci也正常,第一反应会觉得:“PCIe已经没问题了。”其实远远不够。Link Up只能说明双方建立了链路。它不能证明:协议效率正常;Flow Control正常;Buffer没有堵塞;大量数据传输时没有Replay;SSD Controller和Switch之间没有互操作问题;更不能证明最终FIO一定能跑满。所以:“能建链”和“能跑满性能”是两个完全不同的验证阶段。七、我们以前在Gen5时代,其实已经碰到过几乎一模一样的问题为了说明这一点,现场回顾了一个 Gen5 时代碰到过的案例。这里我把具体客户和主控型号隐去,只保留技术现象。当时某企业级 Gen5 SSD:直接通过 Adapter 接到 CPU Root Complex;跑 FIO 或性能软件时,读写性能都正常。但把拓扑改成:CPU → PCIe Switch → SSD以后,其中一个方向的性能明显下降,大约损失一个不容忽视的比例,~8%。更奇怪的是:另一个方向却没有同样幅度的下降,反而单纯从数字来看还高了一丁点(可以忽略)。于是第一反应当然是:Switch有问题?但后来拿其他已经比较成熟的 SSD 方案,在同一套 Switch 环境里做对比测试,却没有出现相同现象。最终排查方向落到了:特定SSD Controller与Switch之间的交互。这个案例特别值得记住。因为它告诉我们:“我的SSD直连CPU性能没问题”,并不能证明这块SSD进入真实服务器和存储系统以后也一定没问题。八、为什么企业级SSD尤其不能只做“CPU直连测试”?原因其实很简单。真正的数据中心系统不一定永远是:CPU → SSD。大量实际拓扑可能是:CPU↓PCIe Switch↓Backplane / JBOF↓SSD甚至可能继续加入:Retimer;Redriver;Cable;多级Switch。所以一块企业级 SSD 最终面对的“对端”,很可能并不是 CPU Root Port。而是:PCIe Switch Downstream Port。会议中也特别强调:如果某SSD Controller直连CPU完全正常,但进入一个主流PCIe Switch拓扑以后长期存在性能异常,那么对企业级产品来说,这依然是必须解决的互操作问题。因为最终客户不会接受:“我们和CPU直连的时候没问题。”客户只会问:“为什么别人家的盘插在我的服务器里正常,你家的不正常?”这就是工程问题。九、Switch本身会增加Latency,但“多一个Switch”不等于吞吐量必然掉20%现场随后讨论到:增加 PCIe Switch 当然不可能完全没有代价。数据包从 CPU 出来以后进入 Switch:需要接收;解析;查找转发目标;经过内部 Buffer/Fabric;再从对应 Downstream Port 发出去。所以:Latency必然会增加。交流里现场还提到了一个大致延迟数字,但讲话人自己也明确表示记忆并不确定,所以这里不引用具体数值。真正要区分的是:Latency增加和Sustained Throughput明显下降不是一回事。对连续大流量传输来说,如果:Switch带宽足够;上行没有成为瓶颈;链路没有大量错误;Flow Control正常;SSD能够及时处理数据,那么仅仅多经过一级 Switch,不应该简单推导出“带宽必然下降10%~20%”。如果真掉了这么多,就值得继续往下查。十、查什么?现场首先想到的不是重新跑Benchmark,而是抓Flow Control大约15分钟时,整个交流进入了最核心的一段。如果:Link Speed正常;Link Width正常;没有明显掉速、掉Lane;但经过Switch性能下降,应该怎么办?现场给出的方向是:抓PCIe协议。而且不能只随便看几个 TLP。重点看:Flow Control。SerialTek 当前 Kodiak PCIe 6.0/CXL Protocol Analyzer 的 Protocol Reports 里,官方直接把:Flow Control Update Delay;Exhausted Flow Control Credits;Unexpected Flow Control State Transition列为可以自动识别的异常/警告项目。为什么 Flow Control 会影响 SSD 性能?SerialTek PCIe 5.0和6.0 协议分析仪提供的针对Flow control分析的专家分析功能是业内独有的分析PCIe链路双方沟通性能不稳定创新功能。这件事其实可以用一个很形象的例子来解释。十一、把PCIe Flow Control想象成“仓库还有几个空货位”PCIe不是发送端想发多少Packet就随便发多少。接收端内部有 Buffer。所以它要通过 Credit 告诉发送端:“我现在还能接多少数据。”可以把接收端想象成一个仓库。Credit就像:空货位数量。如果仓库告诉货车:“我还有100个空位。”发送端就可以继续发。但如果 Credit 用完:发送端即使有一堆数据准备发送,也必须等。这里要把交流中的一个口语化说法稍微修正解释一下。现场为了方便理解,说:“SSD告诉Host,你慢点发。”从协议机制来说,更准确的表达应该是:Receiver通过Flow Control机制维护、更新可用接收Buffer Credit;Transmitter只有在拥有足够Credit时才能继续发送对应类型的数据。如果:Credit长时间耗尽;Credit Update不及时;或者某一方向的Buffer管理效率不好,那么发送端自然会出现等待。于是你从 FIO 上看到的结果就是:吞吐量掉下来了。十二、所以性能掉20%,有时候Link层看起来反而“一切正常”这也是这一类故障最容易让人困惑的地方。你去看:Gen6 x4——正常;LTSSM——正常;没有掉到Gen5;没有掉成x2;操作系统——正常;NVMe Drive——正常识别。甚至:没有明显 CRC Error。但:FIO就是比直连CPU低20%。为什么?因为问题可能根本不是:“Packet传错了。”而是:“Packet在等。”例如写方向:Host/Switch不停往SSD发数据;但SSD Controller内部:Buffer;NAND调度;Firmware;Data Path处理不够快。Receiver可用Credit越来越少。于是前端发送被迫等待。读方向也是一样。如果 NAND → Controller → PCIe Packet这一整条数据路径不能及时把数据准备出来,那么Host端看到的就是:我要数据,但你总让我等。交流里正是通过这样的方式解释:为什么 Controller Buffer Architecture 和 Flow Control 最终可以直接表现成 SSD Benchmark 的带宽下降。十三、但千万别一看到性能差就认定“肯定是Flow Control”这里必须再往下分一层。性能下降至少有两条完全不同的故障路径。第一条:Signal Integrity不好比如:Connector;Cable;Adapter;PCB;SSD本身的PHY;Switch Port某一段 Margin 太差。结果出现:CRC;FEC相关错误;Replay;Retrain;甚至Recovery。这些东西当然会吃掉有效带宽。交流中也明确提出:如果 SSD PCB 或信号路径不好,可以从 Analyzer 或 Switch Port 的 Error/Telemetry 中进一步寻找证据。第二条:信号很好,但协议效率出了问题也就是:Link很稳定;没有明显链路错误;但是:Credit长期不足;Flow Control Update异常;某个方向经常等待。这种情况才应该重点往:Controller;Firmware;Buffer Architecture;Switch互操作方向调查。所以正确顺序不是:“性能低→Flow Control有Bug。”而是:先把Signal问题排除,再研究协议效率和Flow Control。十四、PCIe Gen6时代,这一步尤其重要,因为PAM4本来就带来了全新的错误处理机制PCIe 6.0达到 64 GT/s,采用 PAM4,并引入了固定大小的 FLIT、低延迟 FEC 和更强的 CRC 保护。其中一个很重要的机制是:接收端先做 FEC Decode。如果是 FEC 可以纠正的错误,可以直接恢复。然后再做 CRC 检查。如果 CRC 仍然失败,则可以通过 NAK 触发 Replay,让对应 FLIT 重新传输。所以 Gen6 调试时必须建立一个新的意识:Link Up不代表Bit Error为零。而:系统还能正常工作,也不代表链路没有在花代价纠错。如果错误率已经高到频繁触发Replay,性能当然可能受到影响。因此在“Switch后性能下降”这类问题上,必须先回答:到底是因为链路正在不断修错、重传,还是链路非常干净,只是两端在频繁等待Credit?这两种问题的解决方向完全不同。十五、现场给出的抓包方法很具体:Analyzer要串在Switch和SSD之间如果问题出现在:CPU → Switch → SSD这个拓扑,Analyzer应该放在哪里?现场建议很明确:放在:Switch Downstream Port和SSD之间。例如:CPU↓Gen6 Switch↓PCIe Protocol Analyzer + E1.S Interposer↓E1.S SSD为什么放这里?因为我们真正想知道的是:Switch和SSD Controller两个人之间到底在说什么。谁在等谁?Credit什么时候耗尽?哪个方向被Hold?有没有Error?有没有Replay?这样问题才能直接定位。十六、而且抓包不能等FIO开始以后才按“Start”这一点特别重要。很多工程师测试性能问题时,会这样做:系统启动;Linux起来;SSD识别;准备FIO;打开Analyzer;开始抓包;跑FIO。对于单纯看数据阶段也许够。但如果你要研究 Flow Control,就不够。现场特别强调:Analyzer要在系统开机之前就开始Capture。因为 PCIe Link 初始化期间双方就会建立 Flow Control 相关状态和 Credit。这一段必须保留下来。一个更完整的抓包流程应该是:Analyzer开始Capture;↓Host Power On;↓PCIe Link Training;↓Device Enumeration;↓进入Linux;↓确认NVMe Device;↓运行与故障完全相同的FIO;↓性能下降复现;↓Capture停止;↓分析Error + Flow Control + Performance Timeline。这样得到的Trace才真正有价值。十七、Gen6数据量太大,怎么保证关键那几秒没有被冲掉?这又是一个很实际的问题。PCIe Gen6 x4数据量非常大。如果无脑:“从开机一直Full Capture”,Trace Buffer可能很快就被高速FIO数据灌满。现场因此给出了一个很实际的做法。当前 Kodiak Enterprise Edition 官方规格是 256 GB Trace Buffer。现场测试经验里,可以按双向分别分配足够的 Buffer;针对这类问题,并不一定非要把所有 Buffer 全部用完。交流中建议的例子是:每个方向约20 GB;合计约40 GB;并设置:任一方向Buffer抓满就自动Stop。为什么?因为系统从Boot到Linux、再到执行FIO之前,真正高速的数据量通常并没有压力测试阶段那么夸张。真正要保护的是:FIO开始以后那一小段最有价值的数据。如果还靠人眼看到性能掉了再去按停止:往往已经来不及了。十八、真正跑FIO时,也不能只说一句“我们都是跑FIO”这是整个故障复现里另外一个非常容易被忽略的地方。两个团队都说:“我们跑FIO。”完全不代表测试条件一样。至少应该固定:Read / Write / Randread / Randwrite;Block Size;Queue Depth;Numjobs;IO Engine;Direct IO;Runtime;File/Namespace范围;CPU Affinity;NUMA;测试前盘状态;是否预处理;甚至散热条件。交流最后双方也专门达成一个共识:如果后面要做 A/B 复现测试,尽量拿到完全相同的测试命令。否则一边说:“Switch后只有22GB/s。”另一边说:“我们这里27GB/s。”可能最后只是两边的:QD;Block Size;IO Pattern根本不一样。这种比较没有意义。十九、最有效的办法之一:拿一块Golden Drive做A/B Test除了Analyzer,现场还反复强调了一种非常朴素但有效的方法:换盘。拓扑完全不变:同一台Host;同一张Switch;同一根Cable;同一个Adapter;同样的FIO命令;同样的Slot;只换SSD。例如:DUT A:正在研发的SSDSwitch后:性能明显下降。DUT B:已验证成熟的参考SSDSwitch后:性能基本正常。那么调查范围立刻缩小。这不能100%证明:“DUT Controller一定有Bug。”但是至少可以非常有力地告诉你:Switch本身并不是在所有SSD上都造成同样的性能损失。这时候就应该重点去看:DUT Firmware;Controller;Flow Control;Buffer;PHY;PCIe Transaction行为之间的差异。交流中正是用以前的 Gen5 实际案例来说明这种方法。二十、所以“Switch兼容性”这个词其实也要谨慎使用现场有一句话说得很有意思:不能简单叫:“兼容性问题。”因为:链路是通的;Gen6 x4也起来了;系统也没有掉盘。那这种问题究竟叫什么?更准确地说,它属于:Interoperability / Performance Interaction。或者:Controller与Switch拓扑下的协议/性能互操作问题。这比一句:“Broadcom Switch不兼容”或者:“SSD不兼容Switch”更加准确。因为最终到底要改哪一边,需要抓完Trace才知道。可能:SSD Firmware可以解决;Controller Buffer策略可以调整;某些Credit相关参数或实现需要分析;也可能最后发现其实还是Signal问题。在没有证据之前,不能先给任何一方“定罪”。二十一、讨论到25分钟后,客户开始认真考虑下一步:是不是干脆买一个Gen6盘柜?解决单盘以后,自然会走向多盘。客户提到,下一轮可能考虑一套“盘柜”。这里所谓的盘柜,对应现在更准确的产品概念是:Gen6 JBOF——Just a Bunch Of Flash。Serial Cables 当前的 Hydra 就是一套 8-Bay Passive Gen6 x8 EDSFF JBOF,支持 PCIe/NVMe/CXL,当前官方列出的Device Form Factor包括 E3.S 2T、E3.L 和 E3.L 2T。这个设计有一个很有意思的特点:每个Bay的物理链路可以到x8。所以今天你可以插:Gen6 x4 NVMe SSD;未来也可以用于:更宽链路的CXL Device。这正好和前面“实验室别只为今天的x4 SSD设计”呼应起来。二十二、Switch到8个Bay,是怎么把线接出来的?现场随后花了不少时间讲这个拓扑。Gen6 Switch Card有多个 x8 MCIO接口。如果接普通单盘,可以:MCIO x8↓拆成两个Gen6 x4↓分别连接两个SSD。而如果接8-Bay JBOF,则通过相应的高速Cable把Switch的多组Lane送到JBOF Backplane/Paddle Card,再分别进入各个Bay。因此整个环境可以逐渐变成:Host↓Gen6 Switch↓多路MCIO↓Gen6 JBOF↓8× E3 Device这已经不再是一张桌子上插一块SSD的环境。而是越来越接近真正服务器和存储系统中的拓扑。这对于企业级 SSD 验证尤其重要。二十三、盘柜真正的价值并不是“整齐地放8块盘”,而是自动化如果只是为了:“把8块SSD放得整齐一点”,其实没必要花钱买专业JBOF。它真正的价值在于:软件可控。Hydra当前官方支持:Per-Slot Power Sequencing;Hot-Plug Simulation;Presence Detection;Temperature Monitoring;Fan Control;Power Telemetry;Python UI;CLI;API。也就是说,测试程序可以做这样的事情:Slot 1上电;等待Enumeration;跑FIO;记录结果;Slot 1掉电;等待5秒;重新上电;循环100次;然后自动切换Slot 2。这跟工程师站在机器前:拔盘;插盘;拔电源;插电源完全不是一回事。二十四、而且现在JBOF还可以继续加入PAM和Breaker会议当天讨论时,某些扩展模块的价格和交付状态还需要继续向原厂确认,所以现场没有把它们写死。不过截至目前,Serial Cables Hydra 官方产品页已经明确列出了与 Quarch 的集成能力:可选:Quarch PAM - 功耗和sideband边带信号记录、回溯和分析;以及:Quarch Breaker - hotplug热插拔 + fault injection底层故障注入。PAM侧重于:Voltage;Current;Power;以及相应信号的观测。Breaker则可以进一步做:更精细的Power / Signal Switching和Fault Injection。这样整套系统就可以逐渐从:“8块盘一起跑FIO”升级成:“8块盘自动化跑Power Cycle、Fault Injection、功耗和协议验证”。这才是研发型 JBOF 的真正意义。二十五、Power Cycle和“真正的异常热拔插”不要混为一谈这部分交流里还有一个很好的讨论。如果JBOF通过MCU控制某个Slot掉电,它可以很好地完成:Power Cycle;Power Sequencing;自动化上下电测试。但这和:真正把Connector上的Power、Sideband甚至Data Lane按指定时序物理断开仍然不是完全一回事。所以:普通JBOF Slot Control和Quarch Breaker这种Fault Injection工具应该理解成两个层次。前者解决:自动化。后者解决:可控地制造异常。实际做 PLP、Surprise Removal、Signal Glitch 或非常精细的Hot-Swap Fault测试时,这个区别非常重要。二十六、为什么到了Gen6以后,越来越不建议工程师靠手拔盘做几百次测试?会议30分钟以后,又聊到了一个非常“实验室”的问题:能不能直接:拔出来;插进去;拔出来;再插进去?偶尔当然可以。但如果要做:几十次;上百次;甚至大量Regression,就不应该主要依靠人工反复插拔。现场给出的理由有两个。第一:Connector本身存在机械磨损。第二:到了Gen6以后,一点点接触状态变化都有可能进一步影响Signal Integrity。这里交流中出现了一些具体插拔次数、镀金厚度数字,但没有足够资料证明它们适用于所有Connector,所以不把这些数字作为通用规范引用。真正需要记住的是:高速测试环境本身也会老化。有时候你测着测着发现:昨天Gen6稳定;今天突然Error变多。问题未必是DUT变坏。也可能是:Adapter;Connector;Cable;Interposer经过长期插拔以后,环境本身发生了变化。这就是为什么好的Validation Lab会尽量提高测试环境的Repeatability。二十七、Gen6调信号不能只盯着“有没有掉链”交流后面还谈到一个非常重要的调试思路。如果 Analyzer 能够把:Link Error;FEC相关状态;CRC;Replay;Training状态和协议Trace结合起来,你就可以在调节Channel、EQ或测试Fixture时看到:链路到底是在变好,还是仅仅“还没掉”。当前 SerialTek Kodiak 官方资料明确支持 PCIe 6.0 64 GT/s PAM4、FLIT解码,并可识别 FEC 和 Link Training 相关问题;其 Protocol Reports 也可以标记 DLLP CRC、Link CRC、Flow Control Credit等异常。这比只看:LnkSta:Speed64GT/s,Width x4有价值得多。因为:64GT/s x4只是状态。真正的工程问题是:它以多大的Margin工作在这个状态?二十八、交流里提到的“Correctable / Uncorrectable”也需要稍微严谨一点现场为了方便讲解,把 Gen6 Error 简化成:Correctable Error;Uncorrectable Error。这种说法适合理解趋势,但如果严格按照 PCIe 6.0 的机制,应该结合:FEC;CRC;Replay来看。PCI-SIG 官方说明:每个 FLIT 都有 CRC 和 FEC保护;FEC首先纠正能力范围内的错误;随后检查CRC;如果CRC仍然失败,可以发送NAK并触发Replay。所以真正调试时,并不存在一个放之四海而皆准的:“低于1000个就合格”或者:“低于10000个就可以”这样的阈值。正式验证时应该依据:PCI-SIG规范;PHY/Controller Vendor要求;产品自身Validation Criteria确定Pass/Fail。而不是凭一个经验数字判断。二十九、34分钟以后,客户又回到了一个现实问题:Analyzer太贵讨论到这里,客户也很实际地表示:Protocol Analyzer价格较高,短期可能无法购买该设备做问题定位。这是完全合理的。因为如果现在的问题只是:“Switch后为什么性能掉?”那么先用 Analyzer 把问题性质搞清楚,比马上采购更重要。一旦确认团队以后长期要做:Gen6 SSD Controller;Firmware;Switch互操作;CXL;Protocol Compliance;各种偶现问题Debug,再考虑建立自己的Analyzer环境,逻辑就完全不同。三十、最后又出现一个很典型的争论:Gen6到底用Cable好,还是Adapter Board好?会议最后几分钟,大家又绕回物理连接。现场转述了一个来自原厂FAE的观点:在相同延伸距离下,他更倾向使用高质量高速Cable,而不是让信号全部在较长PCB Trace上走,理由是某些场景下Cable的损耗可能更容易控制。但这句话绝对不能扩展成:“Gen6永远是Cable比PCB好。”真正比较时必须看完整Channel:PCB材料;Trace Length;Via;Connector;Cable;Adapter;Insertion Loss;Return Loss;Crosstalk;Tx/Rx Equalization全部加起来。一张只有几厘米的优质Adapter,当然可能比一根很长的Cable更容易。反过来,一段经过精心设计的低损耗Cable,也可能比很长的PCB走线更有优势。所以最靠谱的判断方式不是:“板还是线?”而是:整个Channel Budget到底是多少?三十一、最终双方决定:别继续争论,直接做同条件A/B Test会议最后形成了一个很工程化的结论。我们这边后续如果拿到那块 Gen6 x4 E1.S SSD,就搭建测试环境。客户那边尽量提供:他们原来的测试命令和条件。我们用尽量相同的:DUT类型;FIO参数;Host;Switch;Adapter/Cable做一轮对比。如果:Switch + Adapter性能正常;Switch + Cable也正常,说明整个生态基本没问题。如果:某一种连接明显下降,继续查SI。如果:Golden Drive正常;客户自己的DUT明显下降,重点抓:Controller / Flow Control。如果:所有盘全部经过Switch都下降,再回过头研究:Switch配置;Host带宽;上行链路;拓扑;测试方法。这比所有人在会议室里猜:“是不是Switch有问题?”有效得多。三十二、把整场交流整理下来,其实形成了一套很实用的Gen6 SSD性能故障排查方法以后再遇到:“SSD直连CPU很快,一过Switch就慢。”可以按照这个顺序来。第一步,看Link。确认:Gen6还是Gen5?x4还是x2?有没有Retrain?有没有频繁Recovery?第二步,看Error。重点判断:FEC;CRC;Replay;Link Error是不是在Switch拓扑下明显增加。如果是:先查Signal Integrity。第三步,做Golden Drive A/B。同一环境换一块成熟参考盘。如果参考盘正常:DUT调查优先级明显提高。第四步,抓完整Boot Trace。不要FIO开始以后才抓。要把:Link Training;Enumeration;Flow Control初始化;进入OS;FIO整段留下来。第五步,重点看Flow Control Credit。如果没有明显链路错误,却出现:Credit Exhaustion;Update Delay;长期等待,就继续分析:谁在等谁。第六步,固定FIO条件。没有完全一致的Workload,所有性能数字都没有比较价值。第七步,再判断到底改哪里。可能是:SSD Firmware;Controller Architecture;PHY;PCB;Switch Configuration;Cable;Adapter;System Topology。不要第一步就认定某一家有问题。写在最后:Gen6验证真正的分水岭,不是“能不能跑到64GT/s”PCIe Gen4、Gen5时代,我们已经越来越习惯问:“Link起来了吗?”到了Gen6,这个问题远远不够了。PCIe 6.0已经进入:64 GT/s;PAM4;FLIT;FEC;CRC + Replay的新体系。同时,真实服务器拓扑也越来越复杂:CPU;Switch;Retimer;Cable;Backplane;JBOF;SSD;CXL Memory Device。一块设备如果只在:CPU直连环境里通过测试,并不能代表它已经真正准备好进入数据中心。真正成熟的Gen6验证应该继续问:经过Switch以后,性能有没有变化?Credit有没有被耗尽?有没有异常Replay?换成不同Host和Switch还能不能稳定工作?进入8盘JBOF以后还能不能跑?连续Power Cycle以后会不会掉盘?CXL x8/x16以后,这套环境还能不能继续复用?这也是这次技术交流最值得留下来的一个结论:PCIe Gen6测试的目标,不是证明“链路通了”,而是证明设备进入真实系统拓扑以后,链路、协议、流控、性能和异常恢复依然全部正常。真正把这些问题一个个找出来,才叫:Validation。希望获得更多关于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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-12 10:42:33
  • 【高清视频】PCIe Gen6 M.2 SSD协议到底怎么抓?从两根线到一个Trace,现场拆给你看

    做 PCIe 协议分析,很多工程师第一次真正上手时都会碰到一个很现实的问题: 分析仪买回来了,但到底怎么把它“串”进 Host 和 SSD 中间? 尤其到了 PCIe Gen5、Gen6 以后,这件事情已经不像早期低速 PCIe 那么随意了。 Host、Interposer、SSD、Analyzer 之间不仅有高速差分信号,还有 Sideband;高速链路又分 Downstream 和 Upstream;Interposer 两端还有 Host Adapter、Device Adapter;再加上一堆 D0、U0、S0、X、O 之类的标识,如果第一次接触,很容易越接越乱。 所以这次我们没有急着讨论复杂的 Trigger,也没有一上来就钻进几百种 TLP 和 DLLP,而是从最基础的事情开始: 拿一块 M.2 SSD,真正把一套 PCIe Gen6 x4 协议分析环境搭起来,然后从开机开始抓一个完整 Trace,再看看分析仪究竟能看到什么。 本次使用的是 SerialTek PCIe 6.0 x4 协议分析系统。现场 Host 是一台 AMD X670E 平台 PC,实际 DUT 使用了一块 PCIe Gen5 x4 M.2 NVMe SSD。原视频也特别说明,当时手头并没有PCIe Gen6 x4 M.2 SSD,所以先用 Gen5 x4 SSD 完成整个环境搭建和软件演示。 这其实也比较符合目前 PCIe Gen6 SSD 的产业现状。截至 2026 年 8 月,已经正式出现的 PCIe Gen6 SSD 仍主要集中在数据中心市场,例如 Micron 9650,而消费级 M.2 Gen6 控制器和产品生态仍在继续向商用阶段推进。 换句话说: 今天虽然用的是 Gen5 x4 M.2 SSD,但整个 Interposer、分析仪以及连接方法,是按照 Gen6 x4 环境搭建的。 为了方便工程师观看,我们针对本期视频并处理添加了中文字幕供大家参考。如果想看高清视频建议要在电脑上打开上面的视频链接进行观看!创作不易,欢迎分享到朋友圈或者与朋友讨论!如果想搬运我们的视频请告知我们。 一、第一步不是打开软件,而是先把原来的 M.2 SSD 拔下来 正常情况下,一块 M.2 NVMe SSD 是直接插在主板的 M.2 插槽里的: CPU / Root Complex → 主板 PCB → M.2 Connector → SSD 这种连接方式当然可以正常工作。 但是协议分析仪的问题在于: 它必须看到 Host 和 SSD 之间正在发生的通信。 因此分析仪不能站在旁边“猜”,而必须想办法把链路中的高速信号复制一份出来。 所以第一步非常直接: 把原来插在 X670E 主板 PCIe Gen5 x4 M.2 插槽里的 SSD 拔下来。 然后,在这个插槽里插入 SerialTek 提供的 Host Side Adapter,简称 HSA。 这里可以把 HSA 理解成一个“替身”。 原来: M.2 SSD 插在主板 M.2 Slot 里面。 现在: HSA 插在原来 SSD 所在的位置。 于是主板原本准备送给 SSD 的 PCIe 信号,就先进入 HSA。 这一步是理解整个拓扑最关键的起点。 二、HSA 为什么还有 2240、2260、2280、22110? 现场演示中特别提到了 HSA 的四种长度: 2240、2260、2280 和 22110。 熟悉 M.2 的工程师一眼就明白这些数字是什么意思。 例如: 2280 = 22 mm 宽、80 mm 长。 同理: 2240 是 22 × 40 mm; 2260 是 22 × 60 mm; 22110 是 22 × 110 mm。 为什么 Host Side Adapter 也要准备这么多长度? 因为它必须真正插进客户原来的 M.2 机械结构中。 如果你的主板原来安装的是标准 2280 M.2 SSD,那么最自然的选择就是对应长度的 2280 HSA。 现场也特别提醒: HSA 插入主板以后,最好仍然使用原来的螺丝固定。 千万不要觉得“反正只是个转接板,插进去就行”。 高速测试环境里,机械应力本身就可能影响连接器接触和信号完整性。如果 HSA 翘起来,甚至高速 Cable 拉扯板卡,最后出现 Link Training 不稳定,到时候你很容易把一个纯粹的机械连接问题误判成 DUT 的 PCIe 问题。 三、为什么 HSA 上面会突然跑出来两根高速 Cable? 看到这里,不少第一次接触协议分析仪的人可能会问: 既然 HSA 已经插进 M.2 Slot 了,为什么它上面不是直接接 SSD,而是跑出来两根高速线? 原因就是 PCIe 本质上是一个全双工串行接口。 Host 往 Device 发是一组高速差分信号; Device 往 Host 回,又是另外一组高速差分信号。 对于 x4 Link,则有四条 Lane。 所以这套 HSA 会把原来 M.2 插槽里的高速链路引出来,通过高速 Cable 接到后面的 Interposer/POD。现场使用的 Cable 和整个信号路径面向 PCIe Gen6 x4。 到了这里,拓扑已经从原来的: Host → SSD 变成了: Host → HSA → 高速 Cable → Interposer/POD → SSD 协议分析仪真正开始“进入链路”。 四、整个系统里最值得看懂的东西:Gen6 Interposer/POD 接下来镜头转到这套测试环境里很核心的一块硬件: PCIe Gen6 Interposer/POD。 现场使用的 POD 上标有 CXL/PCIe Interposer 以及 SerialTek 的 SI-Fi 标识。 SI-Fi 的全称是 Signal Integrity Fidelity。 可以把它简单理解为: 在尽可能少破坏原始 PCIe 信号的前提下,把我们需要分析的信号取出来。 SerialTek 官方目前对 Kodiak Gen6 平台的描述中,也明确把 SI-Fi probing 和自动均衡列为其核心能力。 这件事情到了 Gen6 尤其重要。 PCIe 6.0 单 Lane 已经达到 64 GT/s,并且从此前几代 PCIe 使用的 NRZ 转向 PAM4,同时引入 FLIT、FEC 和 CRC 等机制。 到了这种速率,协议分析仪并不是简单焊两根线把信号“偷出来”就完事。 分析工具本身如果对链路造成太大的额外损耗、反射或者抖动,那么最麻烦的事情就会发生: 本来 DUT 没问题,结果因为插了分析仪,链路反而出问题。 所以一个真正好用的高速协议分析环境,其中非常重要的一件事情恰恰是: 分析仪必须尽量做到“看得见,但别添乱”。 五、为什么这个 POD 两边还有两个“小翅膀”? 这套 Interposer/POD 的设计有一个很实用的地方: 主体母板并不随着 DUT 接口不断变化。 真正变化的是两边的 Adapter。 一边叫: Host Adapter 另一边叫: Device Adapter。 Host Adapter 面向 Host; Device Adapter 面向 DUT。 本次测试 M.2 SSD,因此两边装的是 M.2 对应的 Adapter。 而如果下一次测试的不是 M.2,而是其他设备形态,则可以更换对应 Adapter。 现场列举了: E1.S、E1.L、E3.S、E3.L、U.2、PCIe Add-in Card、MCIO 等不同接口形式。 这其实是一个很值得理解的设计思路: 昂贵且复杂的高速 Gen6 信号采集主体不用不停更换,只需要针对不同 Host 和 DUT 更换接口适配部分。 于是同一套分析平台就可以覆盖: 服务器 SSD、EDSFF、PCIe AIC、网卡、加速卡以及各种 MCIO Cable 连接的 PCIe 设备。 六、真正把 Downstream 和 Upstream 捋一遍 到这里,我们开始进入整场演示最容易把人绕晕的部分。 什么叫 Downstream? 什么叫 Upstream? 其实只要永远记住 CPU / Root Complex 和 SSD 的位置,就很简单。 在这套环境里: Downstream CPU / Host → M.2 SSD 也就是 Host 往 Device 发。 Upstream M.2 SSD → CPU / Host 也就是 Device 往 Host 发。 现场就是沿着实际 Cable 一根根追踪的。 例如 Downstream 信号: CPU → 主板 M.2 Slot → HSA → Cable → POD → Device Adapter → SSD 这是一个完整的 CPU 到 SSD 的方向。 反过来: SSD → Device Adapter → POD → Cable/HSA → M.2 Slot → CPU 就是 Upstream。 如果第一次使用协议分析仪,我特别建议一定自己用手把这条链路“捋”一次。 因为以后软件里面你会不断看到: Downstream TLP、 Upstream TLP、 Downstream DLLP、 Upstream DLLP…… 如果物理方向一开始就在脑子里搞反,后面看 Trace 会非常痛苦。 七、D0、U0、S0 到底是什么? 接下来 POD 会把我们需要分析的信号分别引到分析仪。 现场看到三个很关键的接口: D0 U0 S0 简单记: D = Downstream U = Upstream S = Sideband 因此: D0 接 Downstream; U0 接 Upstream; S0 接 Sideband。 对于 x4 PCIe Link,Lane 0~Lane 3 的信号经过 Interposer 后,一路继续送往真正的通信对端,另外一路则用于分析仪观察。 现场把这一过程形象地称为 Signal Splitter,把信号“一分为二”。 注意这里的“一分为二”不要简单理解成低速数字电路里的 Y 型分叉。 高速 PCIe 环境真正重要的是: 既要获得足够好的分析信号,又不能让分析支路严重恶化原有 Host↔Device 链路。 这也是 Interposer 信号完整性设计的价值所在。 八、除了高速 Lane,为什么还必须抓 Sideband? 很多刚开始学习 PCIe 的工程师只关注: Lane 0、Lane 1、Lane 2、Lane 3。 但真正做 SSD 开机、掉盘、热插拔、低功耗或者初始化问题分析时,Sideband 往往非常关键。 例如: PERST# WAKE# 以及某些平台上的 SMBus 等信号。 所以本次连接并不是只把 Downstream 和 Upstream 两组高速信号送给 Analyzer。 POD 同时把 Sideband 也引了出来,通过 S0 送给分析仪。 这样一来,当 SSD 某一次没有正常起来时,我们就不仅能问: “PCIe Packet 到底发了什么?” 还可以继续问: “PERST# 到底什么时候释放?” “WAKE# 有没有变化?” “链路训练之前 Sideband 状态是不是已经不对?” 这两种信息一结合,定位问题会快很多。 九、这里有一个现场特别容易踩的坑:X 和 O 不要插反 在这段现场 Demo 中,有一个非常真实的小插曲。 HSA 的两根 Cable 接头上分别有: X 和 O 的标记。 在上一代 Gen5 的一些硬件上,对应接口的位置标识比较清楚。 但现场这块 Gen6 样品的 Host Adapter 上,并没有像预期那样把 X/O 标得非常明显(注意:正式发货的Host Adapter上面是有X和O标识),所以演示过程中甚至专门停下来确认到底应该插哪边。 最终现场确认: X 接左侧接口; O 接右侧接口。 这件事情看起来非常小,但是真正到实验室里,这种问题往往比协议本身更浪费时间。 如果线插错: 链路可能不起; Link Width 可能异常; 甚至后面所有软件分析都会变得毫无意义。 所以搭环境时千万不要靠感觉。 先把 Cable、Host、Device、D0、U0、S0 的方向全部确认,再开机。 十、物理连接完成以后,再来看分析仪本体 物理链路确认无误之后,现场才开始介绍 SerialTek Gen6 分析仪本身。 第一件被提醒的事情居然不是软件功能,而是: 不要堵住散热口。 这台设备内部有大量高速采集、存储和处理硬件,现场提到机内布置了 30 多个温度监测点,并通过风扇进行主动散热。 这个提醒非常实际。 实验室里大家经常习惯把笔记本直接放到测试仪器上面。 但如果刚好把进风或者出风区域堵住,长时间抓 Gen5/Gen6 数据时非常不合适。 十一、为什么一台协议分析仪还需要这么大的内部 SSD? 分析仪后面除了电源、管理接口之外,还有网络和 USB 接口。 现场演示中特别提到: 可以把 Analyzer 接入局域网,然后通过浏览器直接访问它。 也可以插 USB 存储设备,把 Trace 导出去。 但是实际工作中,大 Trace 通常没必要先下载到电脑再分析。 更高效的方法是: Trace 就存放在分析仪内部,在分析仪内部直接完成 Post Process 和协议解码。 SerialTek 当前官方资料显示,Kodiak Gen6 平台提供: 256 GB Deep Trace Buffer、 最高 8 TB 内部 SSD、 2 个 10GbE SFP+、 1 个 1GbE RJ45、 USB 接口以及前面板触摸屏。 这里正好可以解释现场提到的一个数字: 演示中说每一个方向最大可以配置到大约 128 GB Capture Buffer; Downstream 128 GB + Upstream 128 GB,加起来正好对应整机 256 GB Deep Trace Buffer。现场为了演示没有开这么大,而是每方向默认配置约 10 GB。 这已经不是“抓几个 Packet 看看”了。 它面对的是: 长时间、高带宽、复杂系统启动过程中的大规模协议记录。 十二、前面板触摸屏不是摆设 现场接下来演示了分析仪前面的 Touch Screen。 通过它可以快速看到: 当前使用的 Interposer 类型; 当前 Link Speed; Link Width; 设备网络地址; 系统状态等。 还可以直接配置管理网卡。 例如: DHCP 动态地址; 或者改成 Static IP。 正式测试时,Analyzer 通常接到实验室局域网。 工程师在自己的电脑上打开浏览器,就能访问分析仪。 SerialTek 官方把这套软件叫做 BusXpert,既可以通过 Web Browser 使用,也提供独立应用程序。 这和传统“必须给分析仪旁边配一台专用控制电脑”的使用习惯有些不同。 十三、正式抓包以前,还有一个很容易漏掉的设置 接下来准备真正从系统上电开始抓数据。 但在抓之前,现场特别强调了一个配置: 进入: Link Settings 新建一个配置,然后把: Device Power 设置为: Force High 保存,再 Apply。 这里需要特别说明: 不要把这一条理解成 PCIe Gen6 规范要求“所有测试都必须 Force High”。 这不是 PCIe 6.0 的通用规则。 它是本次这套 M.2 + Interposer + Analyzer 测试环境下需要注意的具体配置。 原视频也明确表示,如果保持默认的 Follow Hardware,在这套环境下有时未必达到预期,所以现场选择把 Device Power 强制拉高。 这种细节特别值得写下来。 因为实验室里最难查的问题,往往不是“完全不知道怎么测试”,而是: 别人搭的环境能跑,我照着连了一遍,为什么我的就是不工作? 最后发现只是某一个配置项不同。 十四、现在真正开始:系统关机,Analyzer 开始抓,再给 Host 上电 前面的事情全部做完,终于进入真正的 Capture。 现场先把 Host 完整关机。 然后打开 Analyzer Capture。 接着重新启动 Host。 于是你会看到非常直观的一幕: 系统刚刚上电,PCIe Link 开始建立; 很快链路训练到: PCIe Gen5 x4。 因为这次 DUT 本身就是 Gen5 x4 M.2 SSD。 与此同时,右侧实时统计窗口开始不断出现: DLLP TLP Training Error 等各种事件,而且使用不同颜色区分。 这时协议分析仪真正体现出它和普通 PCIe 软件工具之间最大的区别: 它不是等操作系统启动之后问 Windows 或 Linux: “这块盘是什么?” 而是从 Host 开机最早期开始,就在观察: 这条 PCIe Link 到底经历了什么。 十五、一张屏幕同时看到 Downstream、Upstream 和 Sideband Capture 页面里面最值得第一眼看的,就是三个方向: Downstream Host → SSD Upstream SSD → Host Sideband PERST#、WAKE# 等非高速串行信号。 于是一个 SSD 从上电到正常工作的过程,不再是一团黑盒。 例如你可能看到: PERST# 先处于某个状态; Host 开始释放 Reset; PCIe 开始 Polling; 链路进入 Configuration; 速度发生变化; Lane Width 建立; 最后进入正常工作状态; 随后开始出现大量 TLP/DLLP。 如果 SSD 某一次启动异常,就可以把正常和异常两次 Trace 对照。 问题到底发生在: Reset? LTSSM? Link Speed Change? Equalization? Data Link Layer? Enumeration? 还是最终 NVMe Command? 分析层次一下就被拆开了。 SerialTek 官方 BusXpert 本身也提供专门的 LTSSM Timeline,可以按照 Upstream 和 Downstream 查看 Link Training and Status State Machine 的变化。 十六、Sideband 不只是“抓下来”,还可以实时看 软件里可以把工程师关心的 Sideband 加到实时窗口。 现场随手增加了 WAKE# 等信号作为演示。 这个功能在调一些“偶现”问题时特别有用。 例如: SSD 偶尔无法 Resume; 偶尔不能从低功耗状态醒来; 偶尔冷启动掉盘; 有时 Warm Reset 正常、Cold Boot 异常。 这时候工程师完全可以把最关心的几个 Sideband 固定放在 Capture 页面实时观察。 更重要的一点是: 是否把某个 Sideband 加到实时显示窗口,并不决定它有没有被记录。 现场明确说明,即使你没有把某个 Sideband 放在当前实时页面,只要 Interposer 支持并完成采集,它仍然会进入 Trace,后面依然可以回头分析。 这一点非常重要。 因为出了问题以后,你经常才突然想起来: “刚才是不是应该看一下 WAKE#?” 如果数据本身已经记录下来,那就不必重新复现一次问题。 十七、比较有意思:协议 Trace 旁边还能看到 SSD 功耗 现场接下来又展示了一个很实用的功能: 功耗。 演示中称这一部分集成了 Quarch PAM 的 Power Analysis 能力,可以观察 Device 的: 电压、 电流、 功耗。 对于这块 M.2 SSD,主要观察的是 3.3 V Power Rail。 现场实时看到的电压大约为 3.281 V,而不是理想化的“刚好 3.300 V”。随着 SSD workload 增加,电流和功耗也会随之发生变化。 Quarch 对 PAM(Power Analysis Module)的官方定义,本身也是通过 Interposer 测量 Host 实际提供给 DUT 的电源,同时分析 Power 与控制信号之间的关系。 这件事情为什么有价值? 因为很多 SSD 问题根本不是纯协议问题。 比如: 进入某一个低功耗状态后,功耗为什么没有降下来? 某一瞬间功耗突然抬升,协议层当时发生了什么? SSD 从 Idle 突然开始大量 I/O 时,电流什么时候开始变化? 某一次掉盘前有没有异常功耗事件? 如果: Power Waveform 和 PCIe Trace 处在同一条时间线上, 工程师看问题的方式就完全不同了。 十八、抓了几 GB 数据以后,接下来不是“保存”,而是 Post Process 现场继续让 Capture Buffer 增长。 即使 Host 什么都不干,PCIe 链路底层仍然存在各种维护和 Data Link 层通信,所以 Buffer 并不会完全停止增长。 演示抓取了大约 5 GB 左右数据以后停止 Capture。 然后进入: Traces → Live Trace 双击。 这时分析仪开始进行: Post Process 以及: Building Trace Page 之类的后台处理。 页面右下角能看到处理百分比。 同时 Timeline、Events 等窗口也逐渐建立。 这里实际上揭示了现代协议分析仪非常关键的一个设计思路: Capture 和 Decode 不一定是同一件事。 先尽可能完整地把链路数据抓下来; 然后再利用本机处理能力,把海量原始数据组织成工程师真正看得懂的协议事件。 十九、Event View:先不要急着看 NVMe,从“一行一个事件”开始 Post Process 完成之后,最直观的是 Events View。 这里每一行代表 Bus 上发生的一个 Event。 可以看到: 时间戳; 方向; 当前 PCIe Generation; Link Width; TLP; DLLP; Ordered Set; Training; Error 等信息。 SerialTek 官方对 Events View 的定义也是把 OS、DLLP、TLP、LTSSM 等总线事件按照时间顺序排列,并给每一个事件提供时间戳和相关字段。 现场还专门解释了时间戳精度。 从秒、毫秒、微秒、纳秒一直到更细的皮秒时间粒度,工程师可以非常准确地确定: 两个事件之间到底间隔了多久。 这对于定位: Timeout、 Replay、 Reset timing、 Link Recovery、 Power State transition 特别有价值。 二十、Packet 太多怎么办?直接 Search 真正的 PCIe Trace 可能有几百万、几千万甚至更多事件。 没有人会从第一行开始往下翻。 所以现场接下来演示了最实际的操作: Search。 例如想找 DLLP: 在 Search 中输入 DLLP。 想找 TLP: 搜索 Any TLP。 找到以后直接跳到对应位置。 选中某一条 Packet 以后,右侧 Detail 窗口会把 Packet 展开解码。 这样工程师看到的不再只是一串 Hex。 而是: 这个 Packet 是什么; 里面有哪些 Field; 每个 Field 当前是什么值。 这才是真正意义上的协议分析。 二十一、别永远停留在 Packet 层:Transaction View 才开始接近“故事” 如果只看一条 TLP,你看到的是一个 Packet。 但工程师真正想知道的问题通常是: Host 发了什么请求? Device 有没有收到? Device 回了什么? Host 最后有没有确认? 所以现场继续切到: TLP Transaction。 这时软件会尝试把前后相关的 Packet 组织成一条完整事务。 演示里挑了一组非常典型的例子: 首先看到 Downstream: CPU 发出一个 Memory Read。 随后 Device 对收到的数据进行 Data Link 层确认; 然后 Device 返回: Completion with Data,CplD。 Host 收到以后,再完成相应的 Data Link 层确认。 于是原来散落在 Event View 里的几条 Packet,被组织成一条工程师非常容易理解的 Transaction。 这就是 Transaction View 的价值: Packet 告诉你“这一句话说了什么”; Transaction 告诉你“这一轮对话发生了什么”。 二十二、再往上一层,就到了 NVMe Transaction 既然测试对象是一块 NVMe SSD,那么只看到 PCIe Memory Read/Write 还不够。 上层真正关心的是: NVMe Controller 做了什么? Host 发了什么 Command? SSD 怎么完成? 所以现场继续进入: NVMe Transaction。 这里需要先进行相应的: Post Process / Configure NVMe 让软件按照 NVMe 的上下文进一步组织和解析数据。 这时候工程师的视角就发生了变化。 最底层看到的是: Electrical Link。 往上一层是: Ordered Set / LTSSM。 再往上: DLLP。 再往上: TLP。 最终: NVMe Command / Transaction。 这其实就是协议分析仪最有价值的地方之一: 同一个 Trace,可以从链路训练一直追到 SSD 上层协议。 二十三、Trace 太乱?Filter 才是真正提高效率的工具 默认 Trace 里面可能包含大量: 初始化; Configuration Space Access; Memory Read/Write; 各种 DLLP; 底层协议维护事件。 如果现在只想研究 NVMe Command,再把所有东西摆在屏幕上,反而容易把自己淹没。 于是现场演示了 Filter。 这里有一个很容易第一次用错的小细节: 界面里的某些 Filter 默认逻辑是: Filter Out。 也就是说: 打勾不是“我要看它”,而是“把它过滤掉”。 现场就是通过调整过滤条件,把不关心的 PCIe 底层事件过滤出去,让页面集中显示需要观察的 NVMe 操作。 这和很多工程师第一次使用协议分析软件时的直觉刚好相反,所以非常值得特别提醒。 二十四、Config Space 和 Memory Space 也可以直接看 现场最后又点开了两个非常实用的窗口: Configuration Space 以及: Memory Space。 对于 PCIe Debug 来说,这两块信息非常重要。 例如一个 Device 枚举以后: Vendor ID / Device ID 是什么? BAR 怎么分配? PCIe Capability 怎么配置? Max Payload Size 是多少? Max Read Request Size 是多少? Link Capability 和实际 Link Status 是否一致? 某个 Capability 到底什么时候发生改变? SerialTek 官方目前的 BusXpert 也专门提供 Config Space、Memory Space 和 Memory Regions View,并且可以查看这些信息在整条 Trace 中随时间发生的变化。 于是分析思路就不再是: “我现在看到的寄存器是什么?” 而可以变成: “这个寄存器到底是在什么时候被谁改成这样的?” 这两个问题看起来很像,但在 Debug 时价值完全不同。 二十五、为什么这次只讲“基本使用”,没有把软件每个菜单都讲一遍? 演示到这里并没有继续把所有 BusXpert 页面一个个展开。 原因也很简单: 真要把一套 PCIe Gen6 Analyzer 的软件功能完整讲一遍,几个小时都不一定够。//* 需要完整所有功能演示视频的朋友可以单独联系我们获得2h40min的高清视频讲解。 原视频也明确表示,这一次重点不是做完整软件培训,而是解决两个最基础、也最容易挡住第一次使用者的问题: 第一: PCIe Gen6 x4 M.2 Analyzer 的物理环境到底怎么搭? 第二: 抓到第一个 Trace 以后,到底应该从哪里开始看? 这两个问题解决之后,Trigger、Filter、Protocol Report、LTSSM、错误定位、NVMe Transaction、DOE、IDE 等更深入的内容才真正有意义。 二十六、把今天整套环境重新画成一条链,就非常清楚了 如果把整场 Demo 压缩成一个最简单的拓扑,可以写成: AMD X670E Host / CPU ↓ 主板 PCIe x4 M.2 Slot ↓ M.2 Host Side Adapter(HSA) ↓ Gen6 High-Speed Cable ↓ SerialTek Gen6 Interposer / POD ↓ M.2 Device Adapter ↓ PCIe Gen5 x4 M.2 NVMe SSD 同时 Interposer 再把信号送给 Analyzer: Downstream → D0 Upstream → U0 Sideband → S0 然后 Analyzer 记录: PCIe Link Training Ordered Sets DLLP TLP Sideband NVMe Transaction 并且在本次环境中还可以进一步结合功耗信息进行时间相关分析。 这样一画,前面那些看起来很复杂的 Cable、Adapter 和接口,突然就简单了。 二十七、真正做 PCIe Debug,最重要的不是“能不能抓包”,而是能不能把问题串起来 协议分析仪真正有价值的地方,从来不是: “我能看到很多 Packet。” 几百万条 Packet 本身没有意义。 真正有意义的是,当客户说: “这块 SSD 偶尔开机不认盘。” 你能够继续问: PERST# 是什么时候释放的? LTSSM 有没有进入 Recovery? 第一次 Link Up 是 Gen1、Gen3、Gen5 还是 Gen6? Link Width 最终是 x4 还是掉成 x2/x1? Equalization 有没有异常? 有没有大量 Replay? DLLP 有没有错误? Host 有没有完成 Enumeration? BAR 有没有正确分配? NVMe Controller 有没有 Enable? Admin Queue 有没有建立? Identify Command 有没有出去? SSD 有没有 Completion? 异常发生前功耗有没有变化? 到了这个时候,PCIe 协议分析仪才真正从一台“抓包设备”,变成了一台: 把一个复杂系统问题按照时间顺序重新还原出来的工具。 写在最后 这次现场演示其实没有使用什么特别复杂的 Trigger,也没有刻意展示几十种高级功能。 但恰恰因为这样,它反而很适合第一次接触 PCIe Gen6 Analyzer 的工程师。 我们从一块普通的 M.2 SSD 开始: 先把盘拔掉; 插入 HSA; 接两根高速 Cable; 找到 Host Adapter 和 Device Adapter; 确认 X/O; 分清 Downstream 和 Upstream; 接好 D0、U0、S0; 配置 Analyzer; 关机; 开始 Capture; 重新启动 Host; 看 Sideband; 看 PCIe Traffic; 停止 Capture; 做 Post Process; 进入 Event; 搜索 TLP/DLLP; 展开 Packet Detail; 再进入 TLP Transaction; 最后一直走到 NVMe Transaction、Configuration Space 和 Memory Space。 走完这一遍之后你会发现: PCIe 协议分析仪并没有想象中那么神秘。 它做的事情,本质上就是: 先把 Host 和 Device 之间发生的一切尽可能完整地记录下来,再按照时间、方向和协议层次,一层一层把这场“对话”重新还原出来。 而对于 PCIe Gen6 来说,真正的难点已经不仅仅是“能不能抓到”。 在 64 GT/s、PAM4、FLIT/FEC 的时代,更重要的是: 在尽可能不影响原始高速链路的情况下,把 Downstream、Upstream、Sideband、协议事件乃至功耗变化放到同一条时间轴上。 这样,当下一次有人再说: “这块 SSD 偶尔掉盘,但是我们不知道为什么。” 工程师面对的就不再是一句模糊的故障描述。 而是一条可以真正沿着时间轴,一步一步追下去的 Trace。 希望获得更多关于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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。  
    2026-08-11 15:11:30
  • SSD坏了,照片还能救回来吗?

    一个朋友的笔记本电脑突然坏了来找我。准确地说,是笔记本里的 M.2 NVMe SSD 突然坏了。里面有大约 6000 张家庭照片,没有备份。家人特别着急,说即便花几万人民币也愿意找回这些照片,拿到市场上找了几家第三方硬盘维修中心,折腾了一圈,最后得到的反馈基本都是:“修不了。”这种场景太常见了。很多人直到 SSD 坏掉那一刻,才第一次意识到: 原来 SSD 和机械硬盘不是一回事。 原来“硬盘维修”和“数据恢复”也不是一回事。 原来一块小小的 M.2 SSD,里面的照片可能比电脑本身贵得多。这篇文章就围绕一个很现实的问题讲清楚:一颗 SSD 坏了,到底能不能维修?哪些情况还能救?哪些情况基本没戏?为什么传统机械硬盘 HDD 有时候还能开盘修,而 SSD 到了维修店反而常常被判死刑?同时,我们也顺便从 SSD 厂商、SSD Controller、NAND Flash 质量、固件、供电、协议分析、自动化测试这些角度,讲讲为什么有些 SSD 坏得比较“体面”,而有些小牌子、杂牌、山寨盘,坏起来几乎不给用户任何机会。一、先说最重要的一句话:别再反复上电试如果 SSD 里有特别重要的数据,第一件事不是修,不是插到另一台电脑上反复试,也不是运行修复软件。第一件事是:立刻停止继续写入和反复上电。专业数据恢复机构通常都会提醒用户:如果设备已经出现故障,应尽快关机,不要重启,不要安装或重装软件,不要对疑似损坏的设备运行修复工具。Ontrack 的笔记本数据恢复建议里就明确写到,如果 laptop drive 正在失败,应立即关闭,不要重启,不要安装软件,不要使用文件恢复或其它工具去“修复”一个损坏或失败的 drive。DriveSavers 也强调,第一次恢复尝试通常是最重要的一次,反复错误尝试可能让数据永久丢失。这句话对 SSD 尤其重要。机械硬盘坏了,反复上电可能会让磁头继续刮盘。 SSD 坏了,反复上电可能会触发更多垃圾回收、TRIM、FTL 修复、坏块替换、掉电恢复、固件自检。你以为你只是“再试一次能不能认盘”。 但 SSD 内部可能正在做很多你看不见的动作。如果这些动作把原本还残留的数据进一步覆盖、清理、重映射,后面专业恢复的机会就更低了。所以,如果里面是 6000 张家庭照片,最稳妥的动作是:关机; 拔下 SSD; 不要格式化; 不要初始化磁盘; 不要运行 chkdsk; 不要用网上随便下载的数据恢复软件扫坏盘; 不要让普通维修店反复上电测试; 先判断这块 SSD 是“逻辑问题”,还是“硬件/固件/控制器问题”。二、SSD 能不能维修?要先分清“修盘”和“救数据”很多人问:“SSD 能不能维修?”这个问题其实要拆成两个问题:第一,能不能把这块 SSD 修好,让它以后继续当硬盘用? 第二,能不能把里面的数据救出来?这两个目标完全不同。如果只是为了继续使用这块盘,很多 SSD 故障的处理方式是 RMA 换新,或者直接丢弃。三星的 SSD 保修条款就明确说明,保修不覆盖 SSD 维修或更换相关的数据恢复费用,也不对数据丢失负责;铠侠的 SSD 保修说明也写明,恢复数据不属于制造商保修范围,也不属于更换 SSD 的服务范围。这很正常。对 SSD 原厂来说,保修关注的是硬件产品是否坏了。 对用户来说,真正要命的是里面的照片、视频、项目文件和数据库。所以,很多所谓“SSD 维修”其实只是:检测坏了; 给你换一块新的; 或者建议你重新格式化、Secure Erase、升级固件。但这些动作不等于数据恢复。甚至有些动作会直接把数据彻底清掉。所以这篇文章里我们必须先建立一个边界:如果目标是继续使用,很多 SSD 可以通过固件更新、重新初始化、Secure Erase、换新盘来恢复可用;但如果目标是救回照片,就必须保护原始数据,不能为了“修好盘”而破坏里面的数据。三、为什么 SSD 比 HDD 更难恢复?传统机械硬盘 HDD 和 SSD 的工作方式完全不同。HDD 里面有磁盘盘片、磁头、马达、磁臂。数据按磁道、扇区写在盘片上。坏了以后,常见问题包括磁头损坏、马达不转、PCB 板损坏、盘片划伤、固件区异常等。专业数据恢复机构可能会在洁净室里换磁头、换 PCB、修固件区,然后尽量按扇区把盘片上的数据镜像出来。SSD 没有盘片,也没有磁头。它由 SSD Controller、NAND Flash、DRAM 或 HMB、PMIC、电源电路、固件和 PCB 组成。Tom’s Hardware 的 HDD/SSD 对比里也提到,HDD 是有旋转盘片和磁头等机械结构的设备,而 SSD 没有移动部件,数据存放在 NAND Flash 里。听起来 SSD 没有机械结构,似乎应该更容易修。但数据恢复恰恰相反。因为 SSD 的数据不是按照“用户看到的顺序”线性躺在 NAND 里。SSD Controller 会做很多事情:FTL 地址映射; Wear Leveling 磨损均衡; Garbage Collection 垃圾回收; Bad Block 管理; LDPC ECC 纠错; Read Retry; NAND Die / Plane / Channel 并行; 数据扰码; 压缩或加密; 掉电恢复; SLC Cache 搬移; Metadata 更新。主机看到的是 LBA 0、LBA 1、LBA 2。 NAND 里面实际可能被打散到不同 channel、不同 die、不同 block、不同 page 里。这就像一本相册被拆成几万片碎纸,分散塞到很多仓库里。 而 SSD Controller 手里握着那本“碎纸对应目录”。 如果 controller 还能工作,恢复还有机会。 如果 controller、固件区、FTL mapping 或加密密钥出问题,光把 NAND 颗粒拆下来,并不等于你能拼回照片。这就是 SSD 数据恢复真正难的地方。学术研究也指出,SSD 的 wear leveling、garbage collection、TRIM、文件系统、厂商实现、容量、数据类型都会影响数据持久性和可恢复性,传统对磁盘数据恢复的假设已经不再适用于 SSD。四、SSD 常见故障可以分成几类SSD 坏了以后,不要一上来就说“盘坏了”。要先分类型。1. 还能识别,文件系统坏了这种情况相对最好。表现可能是:电脑能看到 SSD; 容量正常; SMART 能读; 分区打不开; 提示需要格式化; 文件夹乱码; 某些照片打不开; 系统无法启动,但挂到别的机器上能看到盘。这类问题可能来自文件系统损坏、误删除、误格式化、分区表损坏、系统崩溃等。如果 SSD 硬件健康,第一步应该是做整盘镜像,把数据复制到另一块健康盘上,然后在镜像上做文件恢复。千万不要直接在原 SSD 上“修复文件系统”。因为一旦修复过程写入新的 metadata,就可能覆盖原本还可以恢复的照片。2. 间歇性识别、经常掉盘这种情况比较危险。表现可能是:BIOS 有时能看到,有时看不到; Windows 里时不时掉盘; 复制大文件时断开; 跑一会儿就消失; 重启后又出现; 发热后更严重。这类问题可能来自供电、电源管理、固件 bug、过热、连接器接触、M.2 插槽问题、主板兼容性、SSD Controller 异常、NAND 错误增长等。公开案例里,SanDisk 曾针对部分 Extreme Portable SSD、Extreme Pro Portable SSD、WD My Passport SSD 外置 SSD 发布固件更新,官方说明中提到识别到一个 firmware issue,可能导致部分 drive 从电脑上 unexpectedly disconnect。这类盘如果里面有重要数据,应该优先在低压力、只读、稳定供电、散热充分的环境下尽快做镜像,而不是继续跑性能测试。3. 容量异常,例如 1TB 变成 0GB、8MB、2MB这种故障常常指向 firmware / controller / mapping 级问题。历史上最典型的例子之一,是 Intel SSD 320 系列的“8MB bug”。当年公开报道和 Intel 社区信息显示,某些 Intel SSD 320 在特定异常掉电条件下可能出现 “BAD_CTX 0000013x” 错误,容量变成 8MB,数据不可访问;后续固件可以避免问题继续发生,但已经发生故障后的固件更新不能恢复用户数据,Secure Erase 虽可能让盘恢复可用,却会清除数据。这个例子特别适合说明“修盘”和“救数据”的区别。Secure Erase 可能让盘重新变成正常容量。 但照片没了。所以,如果一块 SSD 突然容量异常,千万不要为了“让它重新正常”而执行初始化、Secure Erase 或低级格式化。4. 完全不识别表现是:BIOS 看不到; 外接盒看不到; 设备管理器没有任何反应; SSD 不发热或异常发热; 有烧毁痕迹; 短路; PMIC 异常; Controller 不启动。这种情况需要硬件级诊断。可能是:M.2 金手指或焊点损坏; 电源保护器件损坏; PMIC 损坏; 电容短路; controller 供电 rail 不正常; SPI ROM 或 firmware flash 异常; controller 本身损坏; NAND 损坏; PCB 断线或进液腐蚀。如果只是保护器件、稳压器、连接器、供电电路坏了,而 controller 和 NAND 还健康,专业维修人员有机会通过板级维修让 SSD 短时间重新上电,目的不是长期使用,而是尽快把数据镜像出来。但如果 controller 死了,难度就急剧上升。5. NAND 老化、读不出来、ECC 撑不住这种情况往往最麻烦。NAND Flash 经过长期写入、P/E cycle、retention、read disturb、温度老化后,bit error 会增加。现代 TLC/QLC NAND 靠强大的 LDPC、read retry 和 firmware 策略才能把数据读出来。相关研究也指出,随着工艺缩小和多 bit/cell 编码,NAND cell 可表示数据的电子数减少,cell-to-cell interference 和 disturbance 增加,SSD Controller 必须使用复杂技术来解释 noisy data。如果 SSD Controller 还能正常工作,controller 可能还能通过 read retry、LDPC soft decode 尽量救数据。 如果 controller 不工作,直接读 NAND dump,再在外部重建 ECC 和 FTL,难度非常高。这就是很多小维修店说“修不了”的真正原因。不是他们不会焊接,而是 NAND 里的数据已经不是普通文件了。五、哪些 SSD 故障有机会修好?下面举几个比较真实的场景。场景一:M.2 SSD 接触不良或笔记本 M.2 插槽问题一台笔记本突然不识别 SSD。用户以为 SSD 坏了。工程师把 SSD 拆下来,发现 M.2 金手指氧化、螺丝固定不牢,或者笔记本 M.2 插槽有轻微接触问题。换到稳定的测试转接卡上,SSD 又能识别。此时应该立即做镜像,而不是再插回原笔记本继续使用。这类问题严格说不是 SSD 内部坏了,而是连接路径问题。对我们平时做 PCIe/NVMe 测试的人来说,这类问题很熟悉:PCIe 链路不稳定,不一定是 SSD Controller 坏,可能是插槽、线缆、转接卡、Lane mapping、供电或热问题。这时候 SerialCables 的高质量 PCIe 转接板、EDSFF / M.2 / U.2 转接方案、retimer / adapter 工具,在研发实验室里很有价值。它们不是给家庭用户“救照片”的工具,而是帮助工程师把连接路径标准化,排除“是不是转接环境导致掉盘”的变量。Serial Cables 的 Gen6 adapter 和 retimer 产品也明确面向高速互连验证、信号质量和系统 bring-up 测试。场景二:供电电路坏了,NAND 和 Controller 还活着有些 SSD 被异常电源、劣质硬盘盒、静电、短路损坏后,可能只是入口保护器件、PMIC 或某一路电源 rail 损坏。专业人员可以先用显微镜看板子,再用万用表和热像仪查短路点,确认 3.3V 输入、controller core voltage、NAND voltage 是否正常。如果只是电源电路问题,修复后让 SSD 短时间进入 ready 状态,然后马上做镜像。这里的目标不是把 SSD 修好继续用三年。 而是让它能稳定读一遍数据。这类情况相对有希望。但普通维修店如果没有电路图、没有经验、没有合适工具,很容易误判。场景三:Firmware / Translator 异常,但 Controller 还能响应有些 SSD 不正常识别、容量错误、BSY、只返回奇怪 ID,但 controller 仍有响应。专业数据恢复工具可能通过厂商特定的技术命令或 loader,进入特殊模式,读取 service area、重建 translator,然后把逻辑镜像读出来。ACE Lab 的 PC-3000 SSD 支持列表说明里就提到,SSD 恢复通常要求 SSD 的 CPU、NAND 和 PCB 状态良好,通电后 ATA registers 至少要有状态响应;有些盘可能处于 BSY,或者返回错误容量/ID,但仍可通过特定 controller 和 firmware 组合进行处理。这说明一个重要现实:专业 SSD 数据恢复不是“万能读 NAND”。 它非常依赖 controller 型号、firmware、厂商技术命令和具体支持列表。为什么市场上很多店修不了 NVMe SSD?因为他们可能只会做传统 HDD 开盘、SATA 盘软件恢复、简单 PCB 检测。 但现代 NVMe SSD 需要 controller 级、firmware 级、NAND 级知识。场景四:Controller 坏了,但 NAND 可以 chip-off这类恢复理论上存在,但现代 SSD 上越来越难。对于 USB 闪存盘、SD 卡、早期 SATA SSD,如果 controller 损坏,专业人员可以把 NAND 拆下来,用 flash reader 读取 dump,再通过软件重建 ECC、XOR、interleave、block order、wear leveling、translator,最终拼成逻辑镜像。ACE Lab 对 PC-3000 Flash 的介绍中就说明,这类系统会把 flash 芯片拆下来,用 flash reader 直接读取,当 controller 损坏时增加恢复机会;同时也解释了 controller 会对数据进行转换、混合、准备后再写入 NAND。但现代 NVMe SSD 更复杂。很多 SSD 默认启用硬件加密或数据扰码。 很多 controller 的 FTL 算法不公开。 NAND die 数量多,channel 多,plane 多,interleave 复杂。 LDPC ECC 和 read retry 参数依赖原 controller。 NAND 可能是 TLC/QLC,原始 dump 错误率高。 一旦缺少加密密钥,chip-off 读到的可能只是无法还原的密文。Ontrack 的 SSD 数据恢复页面也特别提到,很多 SSD 使用硬件或软件加密;如果是加密 SSD,恢复需要用户提供密钥、密码、passphrase 或相关 key file。所以,现代 NVMe SSD 的 chip-off 恢复,绝不是拆 NAND 就能读照片。六、哪些情况基本不要抱太大希望?下面几类情况,成功率通常很低。第一,用户反复格式化、重装系统、写入新数据。 第二,系统已经执行 TRIM,旧文件对应物理数据被垃圾回收清掉。 第三,SSD 启用了硬件加密,但密钥丢失。 第四,controller 死亡,同时 NAND 数据被 controller 专有算法强加密或强扰码。 第五,NAND 本身大量坏块、严重老化,LDPC 已无法恢复。 第六,Secure Erase 已经执行。 第七,低价山寨盘是假容量,照片从来没有真正完整写进去。 第八,维修店多次上电、焊接、刷固件、初始化,把现场破坏掉。尤其是家庭照片这种数据,最怕“原本还有机会,结果被第一次错误维修搞没了”。七、HDD 和 SSD 维修难度有什么不同?可以把它们放在一起比较。HDD 的难点是机械。 SSD 的难点是映射和固件。HDD 坏了,常见是磁头、盘片、马达、PCB、固件区。 SSD 坏了,常见是 controller、NAND、FTL、firmware、PMIC、DRAM、加密、坏块、ECC。HDD 数据在盘片上相对更接近线性扇区。 SSD 数据被 controller 打散到大量 NAND page 里。HDD 开盘需要洁净室和机械经验。 SSD 数据恢复需要 controller / NAND / firmware / ECC / translator 经验。HDD 换 PCB 有时需要转移 ROM 或适配参数。 SSD 换 PCB 通常没有那么简单,因为 controller、NAND、固件、密钥、映射表之间绑定更紧。HDD 坏磁头时,如果盘片没严重划伤,换头后还能镜像。 SSD controller 死亡时,即使 NAND 颗粒都在,也可能因为映射和加密无法拼回数据。HDD 删除文件后,如果没有覆盖,传统文件恢复有机会。 SSD 删除文件后,如果 TRIM 和垃圾回收执行了,数据可能很快不可恢复。这就是为什么很多用户会有错觉:“以前机械硬盘坏了,还能开盘救回来。现在 SSD 没有机械结构,怎么反而更难?”原因就在这里:HDD 难在把盘片读出来;SSD 难在把读出来的 NAND 碎片重新翻译成人能理解的文件。八、大厂 SSD 坏了,为什么也不一定能救?很多人会以为:三星、Intel/Solidigm、Kioxia、SK hynix、Micron 这些大厂 SSD,用好的 controller、好的 NAND Flash、good die,应该更容易恢复。从可靠性角度看,大厂 SSD 通常确实更可靠。 它们的 controller、firmware、NAND 筛选、坏块管理、ECC、固件验证、温控、SMART、数据完整性策略会更成熟。企业级 SSD 还会强调 PLP、端到端数据保护、稳定延迟、可预测 QoS 和长期验证。公开行业资料也把企业级 SSD 与消费级 SSD 的差异归纳到 endurance、PLP、end-to-end data integrity、form factor、firmware telemetry 和长期部署等方面。但“大厂更可靠”不等于“坏了更容易恢复”。因为大厂 SSD 往往有更复杂的 controller、更强的硬件加密、更私有的 firmware、更复杂的 NAND 管理算法。 如果 SSD 正常工作,这是好事。 如果 controller 彻底挂掉,这些复杂机制反而会提高恢复门槛。公开案例也说明,大厂盘照样会遇到固件问题。比如 Samsung 990 Pro 曾因健康度异常下降引发关注,后来三星发布新固件,第三方系统集成商 Puget Systems 也提示新固件只能阻止问题继续发展,不能恢复已经发生的健康度下降。所以,大厂盘坏了以后,正确策略不是盲目乐观,而是:如果还能识别,尽快只读镜像。 如果不稳定,先稳供电、降温、减少上电次数。 如果容量异常或 firmware 状态异常,找真正懂 SSD controller 的恢复机构。 不要随便 secure erase。 不要为了保修直接寄回原厂,除非你已经接受数据丢失。因为原厂保修通常只负责硬件产品,不负责数据恢复。九、小牌子、杂牌、山寨 SSD 为什么更可怕?小品牌、不知名品牌、山寨 SSD 的问题,不只是质量差。更可怕的是不透明。可能存在几类风险:controller 型号不稳定; 同一型号不同批次换 controller; NAND 来源不明; 使用 low-bin、拆机 NAND、ink die; 固件调校粗糙; SMART 信息不准; 温控策略差; 掉电恢复弱; 没有可靠 PLP; 假容量; 固件伪装; 包装和型号仿冒大品牌。2026 年甚至出现过假 Samsung 990 Pro 的公开案例:假盘能被 Windows 和 CrystalDiskInfo 识别出类似正确型号和容量,但性能极差,Samsung Magician 后来识别为 counterfeit;另一个欧洲案例中,假 990 Pro 包装接近真品,但蓝色 PCB、错误容量、异常固件签名等暴露问题。这类盘一旦坏掉,数据恢复会更麻烦。原因是:你不知道它真实 controller 是什么; 你不知道 NAND 是哪一批; 你不知道容量是不是虚标; 你不知道 firmware 是否标准; 你不知道是否混用了不同 NAND; 你不知道它有没有把照片真的写入物理 NAND; 你不知道 SMART 信息是否可信。有些假容量盘最可怕: 前面写进去的照片看起来都在,继续写到超过真实容量后,后面的数据可能循环覆盖前面的数据。等用户发现时,很多照片可能从未真正安全保存过。这类情况不是“维修难”,而是“数据从一开始就没被可靠保存”。十、真实恢复案例可以怎么理解?下面用几个典型案例来讲清楚。案例一:Intel 320 8MB 病现象:SSD 突然只显示 8MB,用户数据不可访问。 原因:特定异常掉电条件触发 firmware / context 错误。 修盘方式:后续固件更新可预防;Secure Erase 可能让盘恢复可用。 数据恢复:已经发生故障后,固件更新不能恢复用户数据,Secure Erase 会清除数据。这个案例告诉我们:修好 SSD 不等于救回数据。案例二:SanDisk / WD 移动 SSD 异常断开现象:外置 SSD 可能从电脑上异常断开。 原因:官方说明中提到 firmware issue。 处理方式:官方发布 firmware updater,并提醒更新前先备份和验证关键数据。这个案例告诉我们:如果 SSD 还活着,但会掉盘,不要继续折腾。 先备份,再升级固件。 千万不要等到完全不识别才想起来救数据。案例三:Samsung 990 Pro 健康度下降现象:部分用户发现健康度异常快速下降。 处理方式:三星发布固件,第三方集成商提醒更新能防止继续恶化,但不能逆转已经下降的健康度。这个案例告诉我们:SSD firmware 不是小事。 固件问题有时会影响寿命、健康度、性能和可靠性。案例四:供电小器件损坏现象:SSD 完全不识别。 分析:检查 M.2 输入 3.3V,发现短路;定位到某个输入保护器件或电容。 处理:移除或更换损坏器件,SSD 可以短时间上电。 恢复:立刻做只读镜像,救回大部分数据。 注意:这种修复不建议把盘继续当正常盘使用。这个案例说明:有些 SSD 不是 NAND 坏,也不是 controller 坏,只是供电入口坏。 这种情况专业板级维修有机会。案例五:controller 死亡,NAND 还在现象:SSD 完全不识别,所有电源 rail 正常,但 controller 无响应。 处理:尝试专用恢复工具无响应,只能考虑 chip-off。 难点:NAND dump 需要重建 ECC、scramble、XOR、interleave、FTL;如果启用加密,可能无法恢复。 结果:现代 NVMe SSD 成功率不确定,很多情况下失败。这个案例说明:SSD 真正的“账本”在 controller 和 firmware 体系里。 账本没了,只拿仓库里的碎片不一定能拼回照片。十一、如果朋友的 6000 张照片在坏 SSD 里,现在该怎么办?如果这块 M.2 NVMe SSD 现在还没有被过度折腾,建议按下面顺序处理。第一,立即停止给坏 SSD 通电。 不要再插到笔记本里反复试。第二,记录症状。 是完全不识别?还是 BIOS 可见?容量是否正常?是否发热?是否掉盘?有没有烧焦味?之前是否进水、摔机、断电、蓝屏?第三,不要做任何会写盘的动作。 不要格式化。 不要初始化。 不要修复分区。 不要重装系统。 不要 Secure Erase。 不要升级固件,除非已经完整备份。第四,找真正做 SSD 数据恢复的机构,而不是普通电脑维修店。 要问对方几个问题:是否支持 NVMe SSD? 是否有 controller 级数据恢复工具? 是否能处理 M.2 PCIe NVMe,而不只是 SATA? 是否先做只读镜像? 是否会先判断供电、PMIC、controller 状态? 是否有显微焊接能力? 是否会随意刷固件或格式化? 是否能解释恢复流程? 是否有失败不破坏原盘的承诺? 是否先报价再操作?第五,如果 SSD 还能稳定识别,优先克隆镜像。 不是拷文件,而是尽量做整盘只读镜像。 克隆到另一块更大容量的健康硬盘上,再对镜像做文件恢复。第六,如果 SSD 不稳定,要控制上电时间。 专业人员会尽量降低压力、做好散热、稳定供电,只读读取,先抢最重要数据。第七,如果只有家庭照片最重要,要明确优先级。 可以先恢复 DCIM、Pictures、手机备份目录、微信图片目录、Lightroom/照片库目录,而不是追求全盘 100% 恢复。十二、我们这些测试工具,在 SSD 故障分析中能做什么?我们Saniffer公司销售的各类针对SSD的测试工具,例如SerialTek、SanBlaze、SerialCables、Quarch、NplusT 这些工具,主要不是给家庭用户“急救照片”的工具。它们更适合 SSD 厂商、controller 厂商、系统厂商、服务器厂商、实验室和数据恢复研发团队,用来定位 SSD 为什么坏、如何复现、如何预防。但它们确实能帮助工程师把 SSD 问题讲清楚。1. SerialTek:看 SSD 和主机到底说了什么如果一块 NVMe SSD 间歇性掉盘、训练失败、初始化异常、NVMe command timeout,SerialTek PCIe/NVMe Analyzer 可以放在 host 和 SSD 之间抓协议 trace。它可以帮助工程师看:PCIe link training 是否正常; 是否降速、降宽、retrain; NVMe Identify 是否正常; Admin Queue / IO Queue 是否建立; 是否有 Completion Error; 是否有 Reset; 是否有 AER; 主机最后发了什么命令; SSD 最后回了什么响应。SerialTek 的 Kodiak PCIe 6.0 / CXL 3.x Protocol Test System 官方介绍也强调,它面向 PCIe、CXL、NVMe 开发者,提供对复杂 PCI Express 设计的可见性,并支持 PCIe/CXL/NVMe 协议分析。对数据恢复现场来说,协议分析仪不一定直接救照片。 但对 SSD 厂商定位“为什么客户现场掉盘”,它非常有价值。2. SanBlaze:复现 SSD 在真实 workload 下怎么坏很多 SSD 不是插上就坏,而是在高压力、高队列深度、掉电、热插拔、长时间读写、NVMe-MI、ZNS、VDM 等场景下才暴露问题。SanBlaze 的 NVMe 测试系统可以模拟真实 disk 和 memory access 环境,做开发、认证、QA、自动化测试,并通过大量可配置属性驱动 NVMe SSD。官方资料也提到,SANBlaze SBExpress 平台适用于产品生命周期各阶段,支持高度自动化,帮助快速暴露错误和不符合项。如果某型号 SSD 经常在客户机器里掉盘,可以用 SanBlaze 做:长时间读写压力; 多队列测试; 异常 reset; 热插拔; 协议一致性; NVMe error injection; 不同 workload 下的稳定性验证。这类工具不能替个人用户找回照片,但能帮助 SSD 厂商减少类似灾难再次发生。3. Quarch:复现掉电、brownout、供电毛刺SSD 很多故障和供电有关。异常掉电可能导致 FTL metadata 损坏。 brownout 可能让 controller 进入半死状态。 电源毛刺可能让 NAND program 被打断。 电源轨上升下降顺序异常,可能导致 SSD 初始化失败。Quarch PPM 可以给 SSD 供电,并产生 power loss、brownout、glitch、ramp 等可编程波形,同时记录电压、电流和功耗。官方资料也说明,PPM 可用于 SSD/HDD/PCIe/SAS/SATA 设备测试,支持电压输出波形、power failure、brownout、glitch,并可长时间记录。这对验证 PLP、异常掉电、掉盘复现非常有用。有研究针对 SSD 掉电可靠性做过大量真实 fault injection,发现数据丢失甚至可能发生在请求完成后的一段时间内,且受请求大小、访问模式、I/O 类型等 workload 参数影响。这说明: 电源异常不是小问题。 很多 SSD 问题必须用可重复的电源异常测试来复现。4. SerialCables:把连接路径先变成可信环境很多所谓 SSD 问题,其实是测试环境问题。M.2 转接板质量不好; U.2 线缆损耗太大; EDSFF adapter 线序不对; Gen5/Gen6 riser 不稳定; retimer 配置不当; 主机插槽和 SSD form factor 不匹配。SerialCables 的各种 PCIe Gen5/Gen6 adapter、EDSFF 转接、MCIO 线缆、retimer board 可以帮助工程师搭建更稳定的高速测试链路。它们的 Gen6 retimer card 官方定位就是用于高速 interconnect validation、cable reach characterization 和 system bring-up。在 SSD 故障分析里,先排除连接环境,是非常基础的一步。5. NplusT:从 NAND 层面理解为什么会坏如果问题进入 NAND 层,比如 P/E 后 RBER 上升、read disturb、retention 下降、Vt shift、NAND die margin 不足,就不是普通 SSD 测试能解决的。NplusT 的 NanoCycler 面向 NAND Flash characterization,用于理解 array performance、reliability、power profile 和 timing/signal integrity。这类工具更适合 NAND 原厂、controller 厂商、SSD 研发团队。 它不能拿来直接给家庭用户救照片。 但它能帮助工程师在产品阶段就发现:某批 NAND 后期错误增长太快; QLC retention margin 不够; read retry 需要重新优化; LDPC 后期余量不足; 某些 P/E cycle 后 Vt distribution 漂移太明显。换句话说,NplusT 是用来预防未来千万块 SSD 出问题,而不是事后救一块已经坏掉的个人 SSD。十三、为什么大厂 SSD 也要测试,小厂 SSD 更要测试?大厂 SSD 通常有更好的 controller、更好的 NAND、更成熟的 firmware、更完整的验证流程。 但公开案例已经说明,大厂盘也可能出现 firmware bug、健康度异常、掉电问题、兼容性问题。SanDisk/WD、Samsung、Intel 的案例都说明,SSD 不是“名牌就永远不会出问题”。小厂、白牌、山寨 SSD 的风险更高。 有些问题不是“没测好”,而是从料源、controller、firmware、NAND bin、真假容量开始就不靠谱。所以对 SSD 厂商来说,完整测试工具链很重要:SerialTek 看协议; SanBlaze 跑 NVMe 验证; Quarch 做电源异常; SerialCables 保证连接路径; NplusT 看 NAND 本体可靠性。这样才能把 SSD 的问题从“客户说坏了”,拆解成:是 host 问题? 是链路问题? 是供电问题? 是 controller 问题? 是 firmware 问题? 是 NAND 问题? 是工作负载触发? 是掉电触发? 是温度触发? 还是假容量和低质量 NAND 本来就不该出货?十四、对普通用户最重要的建议:照片不能只放一块 SSD最后还是要回到那 6000 张家庭照片。不管 SSD 多贵,不管是不是三星、Intel/Solidigm、Kioxia、SK hynix、Micron,不管它标称 TBW 多高,不管 CrystalDiskInfo 以前显示多健康:只要照片只有一份,就等于没有备份。SSD 的坏法有时候比 HDD 更突然。HDD 坏之前可能有异响、坏道、速度变慢。 SSD 很多时候是昨天还好好的,今天突然不识别。 尤其是 M.2 NVMe SSD,体积小、速度快、发热高、固件复杂,一旦 controller 或 FTL 出问题,普通用户几乎没有自救空间。家庭照片最基本的备份策略应该是:电脑本机一份; 移动硬盘或 NAS 一份; 云端一份; 重要照片定期离线备份; 每隔一段时间验证备份能打开; 不要只相信一个 SSD; 不要只相信一个网盘; 不要只相信一个手机。真正重要的数据,至少要做到 3-2-1:三份数据; 两种不同介质; 一份异地保存。如果嫌麻烦,就想想那 6000 张照片。数据恢复费用可能远高于一块移动硬盘。 而且更残酷的是: 花钱也不一定能恢复。十五、最后一句话:SSD 不是不能修,而是不能按 HDD 的老办法修SSD 损坏后,能不能维修?答案是:有些能。 有些不能。 有些能修盘但救不了数据。 有些救得回数据但盘不能再用。 有些看起来只是小故障,实则 FTL 或 controller 已经崩了。 有些完全不识别,只是供电坏了,反而有机会。 有些还能识别,却因为 TRIM、加密、垃圾回收,数据已经没了。传统 HDD 数据恢复,很多时候是在和机械结构、盘片、磁头打交道。 现代 SSD 数据恢复,更多是在和 controller、firmware、FTL、NAND、ECC、加密、供电和协议打交道。所以,SSD 坏了以后,第一步不是“找人修一下”。 第一步是问清楚:我要的是修好这块盘,还是救回里面的数据?如果是后者,就要把 SSD 当成一个脆弱的事故现场。不要反复上电。 不要格式化。 不要修复文件系统。 不要 Secure Erase。 不要随便刷固件。 不要交给只会装系统的维修店反复试。真正专业的恢复,会先保护现场,再诊断,再镜像,再恢复。一句话总结:SSD 坏了,最怕的不是坏本身,而是第一次错误维修。照片还在不在,很多时候就取决于你坏盘后的前十分钟做了什么。更多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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。
    2026-08-08 15:04:14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 49
    • 电话:(021)5080-7071; 131-2785-6862

      在这里输入描述
    • www.saniffer.cn

      在这里输入描述
    • 邮箱:sales@saniffer.com

      在这里输入描述
    • 地址:上海市浦东新区张江路505号1号楼1605-1单元

      在这里输入描述

    关注微信公众号

    上海森弗信息技术有限公司 备案号:沪ICP备2024076352号-1

    版权所有 © 上海森弗信息技术有限公司 技术支持:竹子建站