我们经常在Linux下面使用lspci -vvv -s b:d.f查看某个pcie device的状态,输出内容较长,其中最常看的就是Link status,这个一般简写为LnkSta,它的下面有6个参数的后面跟着”+“和"-",这个是啥意思呢?如下
LnkSta: Speed 32GT/s, Width x8
TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
其实,上面这一行是 lspci -vvv 输出中 Link Status (LnkSta) 字段的内容,属于 PCI Express Capability 能力块,用于描述该 PCIe 链路的当前运行状态。 我们来逐项详细解释:
LnkSta: Speed 32GT/s, Width x8
TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
这一行属于 PCI Express Capability → Link Status Register 的解码结果。
它描述了当前链路的运行速率、宽度,以及多个状态标志位。
表示链路当前的传输速率(单位为 GT/s,即 GigaTransfers per second,每秒十亿次传输)。
32 GT/s 对应 PCIe 5.0 规范的速率。
各代速率参考:
| PCIe 代数 | 速率 (GT/s) |
|---|---|
| Gen1 | 2.5 GT/s |
| Gen2 | 5.0 GT/s |
| Gen3 | 8.0 GT/s |
| Gen4 | 16.0 GT/s |
| Gen5 | 32.0 GT/s |
| Gen6 | 64.0 GT/s(PAM4 编码) |
表示链路当前的通道数量。
x8 说明该设备当前和对端建立了 8 lane(8 通道) 的物理连接。
如果设备是 x16 插槽但只训练出 x8,就意味着只使用了 8 条通道,可能受限于主板布局、BIOS 或硬件问题。
这些标志位来自 PCIe Link Status Register (PCI Express Capability Register Offset + 0x12),用于描述链路状态或控制标志。 “+” 表示该位被置位(=1),“-” 表示未置位(=0)。
| 字段 | 全称 | 含义 | “+” 表示 | “-” 表示 |
|---|---|---|---|---|
| TrErr | Training Error | 链路训练错误标志。表示在 LTSSM(Link Training and Status State Machine)阶段检测到训练错误。 | 链路训练时发生过错误。 | 未检测到训练错误。 |
| Train | Training | 当前链路是否处于“训练中”状态。 | 链路正在重新训练(例如速率/宽度变化)。 | 链路已稳定(正常工作)。 |
| SlotClk | Slot Clock Configuration | 指示设备与上游是否使用相同参考时钟(RefClk)。 | 使用相同的时钟源(共用参考时钟)。 | 不共用时钟(异步时钟)。 |
| DLActive | Data Link Layer Active | 数据链路层是否处于活动状态。 | 链路已建立并处于活动传输状态。 | 数据链路层未激活(链路断开或休眠)。 |
| BWMgmt | Bandwidth Management Status | 链路带宽管理状态。 | 最近检测到链路带宽变化事件(例如链路速率或宽度变化)。 | 没有检测到带宽变化事件。 |
| ABWMgmt | Autonomous Bandwidth Management Status | 自动带宽管理状态。 | 设备或系统自动调整过带宽(PCIe 4.0+ 引入)。 | 未发生自动带宽调整。 |
| 符号 | 含义 |
|---|---|
| “+” | 该状态位为 1(active / true / detected / enabled)。例如:检测到错误、链路在训练中、共享时钟存在、带宽变化发生等。 |
| “-” | 该状态位为 0(inactive / false / none / disabled)。表示未检测到、未发生或未启用该状态。 |
你的输出:
LnkSta: Speed 32GT/s, Width x8
TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
解释为:
当前链路以 PCIe Gen5 (32 GT/s) 速率运行;
有效宽度为 x8;
未检测到链路训练错误;
当前链路训练已完成;
未共用主板参考时钟;
数据链路层未激活(这通常意味着设备可能在 D3hot 或 D3cold 电源状态);
未发生带宽管理或自动带宽调整事件。
如果其中出现例如:
LnkSta: Speed 16GT/s, Width x16, TrErr+ Train+ SlotClk+ DLActive+ BWMgmt+ ABWMgmt-那就表示:
当前正在链路重新训练;
检测到训练错误;
链路处于活动状态;
正在带宽调整;
使用共用时钟。
https://pan.baidu.com/s/18_c11aeFhSBe2qa-jUFs_Q?pwd=mm9y 提取码: mm9y
如果你有其任何关于PCIe5&6.0, CXL, NVMe/NVMoF, NAND, DDR5/LPDDR5以及UFS测试方面的我问题想咨询,请访问:访问www.saniffer.cn / www.saniffer.com 访问我们的相关测试工具和产品;或者添加点击左下角“阅读原文”留言,或者saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。