PCIe傳輸速率和有效帶寬計算方式

(1)如下表

(2)詳細描述

PCIE協議發展到現在有1.0,2.0和3.0版本,其傳輸速率不一樣。

PCIe是串行總線,PCIe1.0的線上比特傳輸速率爲2.5Gb/s,物理層使用8/10編碼,即8比特的數據,實際在物理線路上是需要傳輸10比特的,因此:

PCIe1.0 x 1的帶寬=(2.5Gb/s )/ 10bit =250MB/s

這是單條Lane的帶寬,有幾條Lane,那麼整個帶寬就是250MB乘以Lane的數目。

PCIe2.0的線上比特傳輸速率在PCIe1.0的基礎上翻了一倍,爲5Gb/s,物理層同樣使用8/10編碼,所以:

PCIe2.0 x 1的帶寬=(5Gb/s )/ 10bit = 500MB/s

同樣,有多少條Lane,帶寬就是500MB/s乘以Lane的數目。

PCIe3.0的線上比特傳輸速率沒有在PCIe2.0的基礎上翻倍,不是10Gb/s,而是8Gb/s,但物理層使用的是128/130編碼進行數據傳輸,所以:

PCIe3.0 x 1的帶寬=(8Gb/s)/ 8bit = 1GB/s

同樣,有多少條Lane,帶寬就是1GB/s乘以Lane的數目。

由於採用了128/130編碼,128比特的數據,只額外增加了2bit的開銷,有效數據傳輸比率增大,雖然線上比特傳輸率沒有翻倍,但有效數據帶寬還是在PCIe2.0的基礎上做到翻倍。

這裏值得一提的是,上面算出的數據帶寬已經考慮到8/10或者128/130編碼,因此,大家在算帶寬的時候,沒有必要再考慮線上編碼的問題了。

和SATA單通道不同,PCIe連接可以通過增加通道數擴展帶寬,彈性十足。通道數越多,速度越快。不過,通道數越多,成本越高,佔用更多空間,還有就是更耗電。因此,使用多少通道,應該在性能和其他因素之間進行一個綜合考慮。

PCIe是從PCI發展過來的,PCIe的”e”是express的簡稱,快的意思。PCIe怎麼就能比PCI快呢,因爲PCIe在物理傳輸上,跟PCI有着本質的區別。PCI使用並口傳輸數據,而PCIe使用的是串口傳輸。PCI並行總線,單個時鐘週期可以傳輸32bit或者64bit,怎麼就比不了你單個時鐘週期傳輸1個bit數據的串行總線呢。在實際時鐘頻率比較低的情況下,並口因爲可以同時傳輸若干比特,速率確實比串口快。隨着技術的發展,數據傳輸速率要求越來越快,要求時鐘頻率也越來越快,但是,並行總線時鐘頻率不是想快就能快的。如下圖所示:

 

在發送端,數據在某個時鐘沿傳出去(左邊時鐘第一個上升沿),在接收端,數據在下個時鐘沿(右邊時鐘第二個上升沿)接收。因此,要在接收端能正確採集到數據,要求時鐘的週期必須大於數據傳輸的時間(從發送端到接收端)。受限於數據傳輸時間(該時間還隨着數據線長度的增加而增加),因此時鐘頻率不能做得太高。另外,時鐘信號在線上傳輸的時候,也會存在相位偏移(clock skew ),影響接收端的數據採集。

PCIe使用串行總線進行數據傳輸就沒有這些問題。它沒有外部時鐘信號,它的時鐘信息通過8/10編碼或者128/130編碼嵌入在數據流,接收端可以從數據流裏面恢復時鐘信息,因此,它不受數據在線上傳輸時間的限制,你導線多長都沒有問題,你數據傳輸頻率多快也沒有問題;沒有外部時鐘信號,自然就沒有所謂的clock skew問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章