本节概述
传输速率与带宽对应表如下,注:此表为全双工通信速率且没考虑编码方式
详细说明
我们在接触PCIe设备时会接触到一个词,传输速率,比如8GT/s。或者有人问你设备的带宽多少?通信速率多少?
Width(带宽):通常用x1、x2、x4、x8等表示,表示该链路由几条lane组成。
Speed(速率):通常用2.5GT/s、5GT/s、8GT/s,表示每条lane上的传输速率。PCIe1.0为2.5GT/s,PCIe2.0为5GT/s,PCIe3.0为8GT/s,
GT/s —— Giga transation per second
(千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。
Gbps —— Giga Bits Per Second (千兆位/秒)。GT/s 与Gbps 之间不存在成比例的换算关系。
PCIe 链路吞吐量计算方法:
吞吐量 = 速率 * 带宽 * 2方向(全双工) * 编码方式
例如: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 的速率。以一个PCIe 2.0 x8的通道为例,该链路的吞吐量=5GT * 8 * 2 * 8/10 = 64 Gbps = 8GB/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 x8的通道为例,该链路的吞吐量= 8GT * 8 * 2 * 128/130
= 126.031 Gbps = 15.754 GB/s。