PCIE 的 GT/s 与 Gbps 的关系

我们大多数人都习惯于采用Gbps或每秒千兆比特为单位的总线速度表示,但GT/s代表每秒千兆传输。这两者有什么区别呢?

区别与数据的编码有关。因为PCIe是一条串行总线,数据中嵌入了时钟,它需要确保发生足够的电平转换(1到0和0到1),以便接收端恢复时钟。为了增加电平转换,PCIe使用了 “8b/10b “编码,即每8个bit(1个字节)被编码成一个10 bit 的符号进行传输,然后在接收端进行解码。因此,总线需要传输10 bit的编码数据来表示所发送的8 bit的数据。而到了PCIE 3.0 标准,编码方案为128b/130b编码,也即每128 bit的数据编码为130 bit的符号进行传输。

以每条PCIe 1.0 lane 为例,PCIe是全双工的总线,一个lane由两对差分信号线,即4根信号线组成。
双向总线在每个方向上可以每秒传输 2.5 Gbit,全双工即5 Gbit, 也即全双工每秒传输 5GT/s。

由于总线每传送的8bit未编码数据需要转换为10 bit的编码数据来传送,其有效带宽为

GT(Gigatransfer) x Lane的数量 x 编码方案效率

用上边 PCIe 1.0 单条 lane 单个方向的速率为例,代入数据:

2.5 GT x 1 lane x (8/10 的编码方案效率) = 2Gbps ÷ 8 = 250MB/s。

而一条16通道的PCIe 1.0 总线,每秒传输 40 GT/s,有效带宽 32 Gbps

到了 PCIE 3.0, 编码方案为 128b/130b,效率得到的很大的提高。
PCIE 的 GT/s 与 Gbps 的关系_第1张图片
( PCI-E 每 lane是全双工传输,这里给出的速率是单个方向的速率)
为简洁起见,我们一般谈论的PCIE带宽,采用GT/s为单位表示,也即PCIE总线上实际编码后发送的数据速率


转自---------吴川斌的博客

你可能感兴趣的:(接口设计)