PCIe傳輸速率和可用頻寬(吞吐量)計算

Grady-Wang發表於2020-12-08

在這裡插入圖片描述
幾個概念:
傳輸速率為每秒傳輸量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。
由此可計算出上表中的資料。

相關文章