带宽的计算
事实上,关于带宽计算,看起来很简单,实际上很容易弄错,即使算对了其中的几个基本概念还是容易搞混淆。这里特别梳理一下:
通常我们对于高速链路的数据传输速率的单位是Gbps(Gigabitsper second),即链路上每秒传输千兆个bit。当然,也有GBps(Gigabytesper second)。差别在于一个是小写的b,一个是大写的B,即:GBps = Gbps/8。两者还可以写成Gb/s和GB/s。
那PCIe Spec里面的GT/s又是什么鬼?
GT/s是giga transfers persecond的缩写。
Gbps和GT/s的差异是啥?
GT/s描述的是链路上传输的原始数据,Gbps描述的是链路上传输的有效数据。
原始数据和有效数据的差异是啥?
还记得PCIe 2.0采用的8b/10b编码么。原始数据是10b,其中有效数据只有8b。故Gbps= GT/s *(8/10)。PCIe3.0情况下,则:Gbps = GT/s * (128/130)。
回到我那篇文章的错误来。如PCIe 3.0情况下,每条lane每秒每个方向都提供8G的带宽。假设是X4的Link,则链路每个方向的带宽为3220GT/s(85.0X4),有效带宽为32*(128/130) = 31.508 Gbps = 3.938 GBps。简单列个表,总结一下X1\X4的各种速率下的带宽计算结果。