查看pcie总线上的设备ID以及带宽计算
Posted 代二毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查看pcie总线上的设备ID以及带宽计算相关的知识,希望对你有一定的参考价值。
1、获取设备在pcie总线上的ID:lspci
00:00.0 Class 0600: Device 8086:190f (rev 07)
00:01.0 Class 0604: Device 8086:1901 (rev 07)
00:01.1 Class 0604: Device 8086:1905 (rev 07)
00:02.0 Class 0300: Device 8086:1902 (rev 06)
00:1f.4 Class 0c05: Device 8086:a123 (rev 31)
01:00.0 Class 0104: Device 1b4b:9485 (rev c3)
02:00.0 Class 1200: Device cabc:0330
(1)输入lspci命令后,会得到以上信息,以最后一行为例进行解析:02:00.0是设备ID,该设备是的ID是2;Device cabc:0330表示该设备的名字是cabc:0330;
2、查看pcie的版本:lspci -vv
LnkSta: Speed 8GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
输入"lspci -vv"命令后,会得到pcie总线上各个设备的完整信息,,根据上一步得到的设备pcie总线上的ID,找到对应设备信息,其中查看LnkSta关键字后面的信息:Speed 8GT/s, Width x1,表示速率是8GT/s,吞吐量是x1,至于具体的含义后面介绍。
3、不同pcie协议版本的速率
4、PCIE相关概念:
传输速率为每秒传输量GT/s,而不是每秒位数Gbps,因为传输量包括不提供额外吞吐量的开销位; 比如 PCIe 1.x和PCIe 2.x使用8b / 10b编码方案,导致占用了20% (= 2/10)的原始信道带宽。
GT/s —— Giga transation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。
Gbps —— Giga Bits Per Second (千兆位/秒)。GT/s 与Gbps 之间不存在成比例的换算关系。
5、PCIE带宽计算
PCIe 吞吐量(可用带宽)计算方法:
吞吐量 = 传输速率 * 编码方案
例如:PCI-e2.0 协议支持 5.0 GT/s,即每一条Lane 上支持每秒钟内传输 5G个Bit;但这并不意味着 PCIe 2.0协议的每一条Lane支持 5Gbps 的速率。
为什么这么说呢?因为PCIe 2.0 的物理层协议中使用的是 8b/10b 的编码方案。 即每传输8个Bit,需要发送10个Bit;这多出的2个Bit并不是对上层有意义的信息。
那么, PCIe 2.0协议的每一条Lane支持 5 * 8 / 10 = 4 Gbps = 500 MB/s 的速率。
以一个PCIe 2.0 x8的通道为例,x8的可用带宽为 4 * 8 = 32 Gbps = 4 GB/s。
同理,PCI-e3.0 协议支持 8.0 GT/s, 即每一条Lane 上支持每秒钟内传输 8G个Bit。
而PCIe 3.0 的物理层协议中使用的是 128b/130b 的编码方案。 即每传输128个Bit,需要发送130个Bit。那么, PCIe 3.0协议的每一条Lane支持 8 * 128 / 130 = 7.877 Gbps = 984.6 MB/s 的速率。
一个PCIe 3.0 x16的通道,x16 的可用带宽为 7.877 * 16 = 126.031 Gbps = 15.754 GB/s。
由此可计算出上表中的数据
参考博客:https://blog.csdn.net/weixin_42229404/article/details/84069859
以上是关于查看pcie总线上的设备ID以及带宽计算的主要内容,如果未能解决你的问题,请参考以下文章