分析仪买回来了,但到底怎么把它“串”进 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 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。
熟悉 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 已经插进 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
协议分析仪真正开始“进入链路”。
接下来镜头转到这套测试环境里很核心的一块硬件:
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 没问题,结果因为插了分析仪,链路反而出问题。
所以一个真正好用的高速协议分析环境,其中非常重要的一件事情恰恰是:
分析仪必须尽量做到“看得见,但别添乱”。
这套 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?
其实只要永远记住 CPU / Root Complex 和 SSD 的位置,就很简单。
在这套环境里:
CPU / Host → M.2 SSD
也就是 Host 往 Device 发。
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 会非常痛苦。
接下来 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 信号完整性设计的价值所在。
很多刚开始学习 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 状态是不是已经不对?”
这两种信息一结合,定位问题会快很多。
在这段现场 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 数据时非常不合适。
分析仪后面除了电源、管理接口之外,还有网络和 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 强制拉高。
这种细节特别值得写下来。
因为实验室里最难查的问题,往往不是“完全不知道怎么测试”,而是:
别人搭的环境能跑,我照着连了一遍,为什么我的就是不工作?
最后发现只是某一个配置项不同。
前面的事情全部做完,终于进入真正的 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 到底经历了什么。
Capture 页面里面最值得第一眼看的,就是三个方向:
Host → SSD
SSD → Host
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 加到实时窗口。
现场随手增加了 WAKE# 等信号作为演示。
这个功能在调一些“偶现”问题时特别有用。
例如:
SSD 偶尔无法 Resume;
偶尔不能从低功耗状态醒来;
偶尔冷启动掉盘;
有时 Warm Reset 正常、Cold Boot 异常。
这时候工程师完全可以把最关心的几个 Sideband 固定放在 Capture 页面实时观察。
更重要的一点是:
是否把某个 Sideband 加到实时显示窗口,并不决定它有没有被记录。
现场明确说明,即使你没有把某个 Sideband 放在当前实时页面,只要 Interposer 支持并完成采集,它仍然会进入 Trace,后面依然可以回头分析。
这一点非常重要。
因为出了问题以后,你经常才突然想起来:
“刚才是不是应该看一下 WAKE#?”
如果数据本身已经记录下来,那就不必重新复现一次问题。
现场接下来又展示了一个很实用的功能:
功耗。
演示中称这一部分集成了 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
处在同一条时间线上,
工程师看问题的方式就完全不同了。
现场继续让 Capture Buffer 增长。
即使 Host 什么都不干,PCIe 链路底层仍然存在各种维护和 Data Link 层通信,所以 Buffer 并不会完全停止增长。
演示抓取了大约 5 GB 左右数据以后停止 Capture。
然后进入:
Traces → Live Trace
双击。
这时分析仪开始进行:
Post Process
以及:
Building Trace Page
之类的后台处理。
页面右下角能看到处理百分比。
同时 Timeline、Events 等窗口也逐渐建立。
这里实际上揭示了现代协议分析仪非常关键的一个设计思路:
Capture 和 Decode 不一定是同一件事。
先尽可能完整地把链路数据抓下来;
然后再利用本机处理能力,把海量原始数据组织成工程师真正看得懂的协议事件。
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
特别有价值。
真正的 PCIe Trace 可能有几百万、几千万甚至更多事件。
没有人会从第一行开始往下翻。
所以现场接下来演示了最实际的操作:
Search。
例如想找 DLLP:
在 Search 中输入 DLLP。
想找 TLP:
搜索 Any TLP。
找到以后直接跳到对应位置。
选中某一条 Packet 以后,右侧 Detail 窗口会把 Packet 展开解码。
这样工程师看到的不再只是一串 Hex。
而是:
这个 Packet 是什么;
里面有哪些 Field;
每个 Field 当前是什么值。
这才是真正意义上的协议分析。
如果只看一条 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 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 里面可能包含大量:
初始化;
Configuration Space Access;
Memory Read/Write;
各种 DLLP;
底层协议维护事件。
如果现在只想研究 NVMe Command,再把所有东西摆在屏幕上,反而容易把自己淹没。
于是现场演示了 Filter。
这里有一个很容易第一次用错的小细节:
界面里的某些 Filter 默认逻辑是:
Filter Out。
也就是说:
打勾不是“我要看它”,而是“把它过滤掉”。
现场就是通过调整过滤条件,把不关心的 PCIe 底层事件过滤出去,让页面集中显示需要观察的 NVMe 操作。
这和很多工程师第一次使用协议分析软件时的直觉刚好相反,所以非常值得特别提醒。
现场最后又点开了两个非常实用的窗口:
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
DLLP
TLP
Sideband
并且在本次环境中还可以进一步结合功耗信息进行时间相关分析。
这样一画,前面那些看起来很复杂的 Cable、Adapter 和接口,突然就简单了。
协议分析仪真正有价值的地方,从来不是:
“我能看到很多 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公众号,点击底部菜单栏即可免费获取。如有任何技术问题,也可直接在公众号内留言交流。