最近和用户技术交流的时候,经常碰到一些新加入公司的工程师从来没有使用过计算机总线协议分析仪,例如PCIe协议分析仪,我又翻出来几年前拍摄的PCIe 5.0 x16协议分析仪的高清演示视频,对于其中的主要内容做了提炼,分享给感兴趣了解的朋友。

注意:我们的文章来自我们平时自己在实验室做的测试拍摄的高清视频,和国内用户的技术交流,以及和国内、外最前沿厂商和供应商的产品、技术、产品的培训和沟通,不是AI生成,但有些文字会通过AI进行润色,使得阅读更加通顺。

SerialTek PCIe Gen5 x16 协议分析仪安装、调试与使用

我们今天整理的内容,来自之前做的一套比较完整的 SerialTek PCIe Gen5 x16 协议分析仪培训视频,该视频以分析PCIe 5.0 x16插卡为例进行演示。整个视频比较长,大概2小时40分钟,对于该视频感兴趣的朋友可以留言给我们,这个视频既包含了硬件连接、上电、抓包环境搭建,最关键的包含了管理软件使用、Trace 分析、LTSSM 状态查看、协议解码等内容。

因为很多刚接触 PCIe 协议分析仪的工程师,第一次看到这种设备时,都会觉得:

  • 设备很贵
  • 线很多
  • 软件界面复杂
  • 不知道从哪里下手
  • 不知道抓到的数据到底怎么看

所以这篇总结,我们尽量按照视频里的实际演示顺序来整理,同时尽量用工程师日常调试的思路来讲,不去堆太多规范术语,而是尽量让第一次接触 PCIe Gen5 x16 Analyzer 的人,也能大概建立一个完整印象。


一、PCIe 协议分析仪到底是干什么的?

培训一开始,其实首先强调的并不是“怎么点软件”。

而是:

为什么需要 PCIe 协议分析仪。

很多人第一次接触 PCIe 调试,会下意识觉得:

“PCIe 不就是一条高速总线吗?” “设备能识别出来不就行了?”

但真正做服务器、GPU、SSD、NIC、CXL 或 AI 系统调试时,很快会发现:

很多问题其实根本无法只靠:

  • dmesg
  • Windows Event
  • 驱动日志
  • BIOS log

定位。

例如:

  • LTSSM 为什么卡在 Polling?
  • 为什么 Recovery 反复震荡?
  • 为什么设备偶尔掉链?
  • 为什么 Gen5 x16 会退速?
  • 为什么能枚举但性能异常?
  • 为什么 Linux 正常、Windows 蓝屏?
  • 为什么高压力下突然出现 Replay?
  • 为什么训练后偶现 Correctable Error?

这些问题,最后都要回到:

PCIe 链路本身到底发生了什么。

而协议分析仪,本质上就是:

在 Root Complex (你理解成CPU)和 Endpoint(你理解成各类PCIe插卡,如网卡,GPU卡) 中间“监听”PCIe 总线。

把:

  • Ordered Set
  • DLLP
  • TLP
  • LTSSM
  • Sideband
  • Link State

全部抓下来。

这也是为什么:

现在很多大型服务器、SSD、GPU、CXL 公司,

已经把协议分析仪视为:

基础研发工具。

而不是“出了问题才偶尔借来用”的设备。


二、Gen5 x16 分析仪长什么样?

培训视频前半部分,首先演示的是:

硬件本体。

很多工程师第一次看到 Gen5 x16 Analyzer 时,第一反应通常是:

“怎么这么大?”

因为:

PCIe Gen5 x16:

已经是:

32 GT/s × 16 Lane

的数据量。

它不是普通逻辑分析仪能处理的。


视频里演示的这套设备:

主要包括:

  • 主分析仪设备
  • Host 控制电脑
  • Gen5 x16 Interposer
  • 专用高速线缆
  • 外部供电
  • 被测系统

等。

其中:

Interposer

是整个系统里最关键的东西之一。

因为:

它负责:

在不影响 PCIe 正常工作的情况下,

把高速信号“复制”一份给分析仪。

这个过程其实非常难。

因为:

Gen5 已经进入:

极高信号完整性要求时代。

所以:

  • 线缆长度
  • 接口质量
  • PCB 设计
  • Retimer
  • REFCLK

都会影响是否能稳定抓包。


三、硬件连接流程

视频里接下来重点演示的是:

怎么接线。

这一部分其实非常重要。

因为:

很多第一次使用 PCIe Analyzer 的人,

并不是不会点软件,

而是:

线接错了。


整体连接思路其实很简单:

1)Host 与 Device 中间插入 Interposer

即:

CPU/Switch ↔ Interposer ↔ SSD/GPU/NIC


2)Interposer 再连接分析仪

通过专用高速线:

Interposer ↔ Analyzer


3)Analyzer 连接控制电脑

控制电脑负责:

  • 配置
  • Trigger
  • Trace 保存
  • 后处理分析

培训里特别强调:

Gen5 时代一定要注意供电。

包括:

  • 外部供电是否稳定
  • Interposer 是否需要额外供电
  • 某些设备是否必须先上电再启动软件

因为:

Gen5 x16:

已经不像早期 Gen3 那么“随便插都能跑”。


四、第一次抓包时最容易遇到的问题

培训视频里,其实花了不少时间讲:

“为什么抓不到数据”。

这部分很真实。

因为:

很多新人第一次使用时:

经常:

  • 软件打开了
  • 设备识别了
  • 但没有 Trace

或者:

  • Link 一直不上
  • 一抓包就掉链
  • 只能跑到 Gen1
  • Lane width 不对

这里视频里重点提到几个经验:


1)先确认链路本身正常

即:

不要一上来就怀疑分析仪。

先确认:

  • Host
  • Device
  • Interposer

在不抓包时:

本来就能稳定工作。


2)Gen5 对线缆非常敏感

培训里特别提到:

Gen5 后:

很多问题其实是 SI 问题。

包括:

  • Lane margin
  • 插损
  • 线材
  • Connector

3)某些平台会因为低功耗导致抓包异常

尤其:

  • 笔记本
  • M.2 SSD
  • Client 平台

会频繁进入:

L1 / L1.2。

这时候:

  • CLKREQ#
  • REFCLK
  • Recovery

都会频繁变化。

如果分析仪处理不好:

就容易:

丢 Trace。

这一点,在之前 M.2 SSD 的技术交流里也反复提到。


五、软件界面初步认识

硬件连接完成后,

培训开始进入:

软件演示。

这部分对于第一次接触的人,

其实是最容易“懵”的。

因为:

界面里会出现:

  • LTSSM
  • Ordered Set
  • DLLP
  • TLP
  • Lane
  • Speed
  • Recovery
  • Trigger
  • Trace Buffer

等大量内容。


视频里的讲法比较接地气:

不是一上来讲规范,

而是:

先让大家知道:

“哪个界面是干什么的”。


整体软件大概分成几个区域:

1)Timeline 时间轴

这是最核心区域之一。

所有抓到的数据:

都按时间顺序排列。


2)Packet/Event 窗口

显示:

  • Ordered Set
  • DLLP
  • TLP
  • NVMe Command

等。


3)解码窗口

点某一包后:

会自动展开:

  • Header
  • Address
  • Tag
  • Length
  • Completion

等字段。


4)LTSSM 状态区

显示:

  • Detect
  • Polling
  • Config
  • Recovery
  • L0

等链路状态。


六、为什么 LTSSM 如此重要?

培训里后面花了大量时间:

讲 LTSSM。

因为:

绝大部分 PCIe 问题,

最终都会反映在 LTSSM 上。


视频里讲得比较通俗:

可以把 LTSSM 理解成:

PCIe 链路“从陌生到建立连接”的全过程。

例如:

Detect

互相检测有没有设备。


Polling

双方开始“打招呼”。


Config

协商 Lane 数量、速度等。


Recovery

重新训练链路。


L0

正式进入正常工作状态。


培训里一个很重要的经验是:

看 LTSSM 的变化顺序。

很多问题:

不是“不工作”。

而是:

卡在某个阶段反复循环。

例如:

  • Polling ↔ Recovery
  • Recovery ↔ Recovery
  • Config 失败

这些都能帮助快速定位问题方向。


七、软件里怎么看性能问题

培训后半段,

开始讲:

NVMe / PCIe Trace 分析。

这里演示了:

  • Queue
  • Read Command
  • Completion
  • Latency

等。


重点不是:

“协议规范怎么定义”。

而是:

工程师平时怎么看问题。

例如:

一个 NVMe Read Command:

从 Host 发出,

到 Completion 返回。

中间:

实际上包含:

很多底层 PCIe TLP。

软件里:

可以直接:

  • 点中一条命令
  • 自动关联上下文
  • 统计耗时

这比以前:

人工对时间戳,

方便很多。


视频里还演示:

如何:

  • 放大时间轴
  • 对比不同 Packet
  • 统计最慢命令
  • 查看不同 Queue 延迟

这些对于:

  • SSD 性能分析
  • GPU DMA
  • NIC 流量
  • CXL Memory

调试都非常有用。


八、为什么现在越来越多工程师开始重视 Trace 分析

培训最后其实讲了一个很现实的问题:

真正懂 PCIe Trace 的工程师,非常少。

因为:

很多人:

  • 会写驱动
  • 会做硬件
  • 会做 FPGA

但:

不一定真正懂 PCIe Trace。

而现在:

随着:

  • PCIe Gen5
  • PCIe Gen6
  • CXL
  • AI服务器

快速发展,

越来越多问题:

已经不能只靠:

  • 日志
  • 经验

解决。

最终:

还是得回到:

Trace。

培训里也提到:

现在很多公司:

其实都在缺:

真正懂 PCIe 的工程师。

因为:

PCIe 已经不只是“一个接口”。

而是:

现代服务器内部最核心的互连体系。


九、这套培训给人的最大感受

整个培训看下来,

最大的感受其实是:

PCIe 协议分析,

本质上不是“看包”。

而是:

看系统行为。

尤其到了:

  • Gen5
  • Gen6
  • CXL

之后,

很多问题:

已经不是单纯协议错误。

而是:

  • SI
  • 电源
  • LTSSM
  • Low Power
  • Recovery
  • Firmware
  • BIOS
  • Driver

共同作用。


很多时候:

系统:

“能跑”,

不代表:

真正稳定。

而协议分析仪:

就是帮助工程师:

把这些“系统内部真实发生的事情”看清楚。


十、总结

对于第一次接触 PCIe Gen5 x16 Analyzer 的工程师来说,

最重要的,

其实不是:

一开始就把规范背下来。

而是:

先建立几个概念:


1)

Analyzer 不是示波器。

它更像:

PCIe 世界里的“抓包工具”。


2)

LTSSM 非常重要。

很多问题:

都能从:

  • Polling
  • Recovery
  • L0

变化中看出来。


3)

Timeline 是核心。

因为:

PCIe 本质是:

时间序列行为。


4)

很多问题:

本质上是:

  • SI
  • Low Power
  • Recovery

问题。

而不仅是:

“协议不对”。


5)

真正学 PCIe:

一定要:

多看 Trace。

因为:

很多经验:

不是规范里写出来的,

而是:

一条一条 Trace 看出来的。

更多PCIe5&6.0, CXL, NVMe SSD, SAS/SATA, NVMe over Fabric (NVMoF), NAND, DDR5/LPDDR5以及UFS测试方面的问题想咨询,可以查看Saniffer公司2026.2.24最新更新的测试工具白皮书15.1版本,我们已经整理收录在Saniffer 公  号 的【白皮书】菜单中。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐