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,效率得到的很大的提高。
PCI Express 版本 |
推出 | Line 编码 |
原始 传输率* |
有效带宽 | ||||
---|---|---|---|---|---|---|---|---|
×1 | ×2 | ×4 | ×8 | ×16 | ||||
1.0 | 2003 | 8b/10b | 2.5 GT/s | 250 MB/s | 0.50 GB/s | 1.0 GB/s | 2.0 GB/s | 4.0 GB/s |
2.0 | 2007 | 8b/10b | 5.0 GT/s | 500 MB/s | 1.0 GB/s | 2.0 GB/s | 4.0 GB/s | 8.0 GB/s |
3.0 | 2010 | 128b/130b | 8.0 GT/s | 984.6 MB/s | 1.97 GB/s | 3.94 GB/s | 7.88 GB/s | 15.8 GB/s |
4.0 | 2017 | 128b/130b | 16.0 GT/s | 1969 MB/s | 3.94 GB/s | 7.88 GB/s | 15.75 GB/s | 31.5 GB/s |
5.0 | 2019 | NRZ 128b/130b | 32.0 GT/s | 3938 MB/s | 7.88 GB/s | 15.75 GB/s | 31.51 GB/s | 63.0 GB/s |
6.0 | 2021 | PAM4 & FEC 128b/130b | 64.0 GT/s | 7877 MB/s | 15.75 GB/s | 31.51 GB/s | 63.02 GB/s | 126.03 GB/s |
* PCI-E 每 lane是全双工传输,这里给出的速率是单个方向的速率
为简洁起见,我们一般谈论的PCIE带宽,采用GT/s为单位表示,也即PCIE总线上实际编码后发送的数据速率。