PCIe传输速率和可用带宽(吞吐量)计算

原文作者:FPGA设计论坛

几个概念:

        传输速率为每秒传输量GT/s,而不是每秒位数Gbps,是因为传输量包括不提供额外吞吐量的开销位,比如PCIe 1x和PCIe 2x使用8b/10b编码方案,导致占用了20%(=2/10)的原始信道带宽。

        GT/s——Giga transtion per second (千兆传输/秒),即每一秒内传输的次数,重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。

        Gbps——Giga Bits per second (千兆位/秒)。GT/s和Gbps之间不存在成比例的换算关系。

PCIe吞吐量(可用带宽)计算方法:

吞吐量=传输速率*编码方案

        例如:PCIe 2.0协议支持5.0GT/s,即每一条Lane上支持每秒钟传输5G个Bit,但这并不意味着PCIe 2.0协议的每一条Lane支持5Gbps的速率。

        为什么这么说呢,因为PCIe 2.0的物理层协议中使用的是8b/10b编码方案,即每传输8个Bit,需要发送10个Bit,这多出来的2Bit并不是对上层有意义的信息。那么,PCIe 2.0协议的每一条Lane支持5*8/10=4Gbps=500MB/s的速率。以一个PCIe 2.0 x8的通道为例,x8的可用带宽为4*8=32Gbps=4GB/s。

        同理:PCIe 3.0协议支持8.0GT/s,即每一条Lane上支持每秒钟传输8G个Bit。而PCIe 3.0的物理层协议中使用的是128b/130b编码方案,即每传输128个Bit,需要发送130个Bit,那么,PCIe 3.0协议的每一条Lane支持8*128/130=7.877GB/s=984.6MB/s的速率。以一个PCIe 3.0 x16的通道为例,x16的可用带宽为7.877*16=126.032 Gbps=15.754GB/s。

        由此可计算出上表中的数据。

        如下所示,不同PCIE版本的情况:

猜你喜欢

转载自blog.csdn.net/jk_101/article/details/128065684