pcie總線帶寬

總線帶寬簡介

在計算機系統中,總線的作用就好比是人體中的神經系統,它承擔的是所有數據傳輸的職責,而各個子系統間都必須藉由總線才能通訊,例如,CPU和北橋間有前端總線、北橋與顯卡間爲AGP總線芯片組間有南北橋總線,各類擴展設備通過PCI、PCI-X總線與系統連接;主機外部設備的連接也是通過總線進行,如流行的USB 2.0、IEEE1394總線等等,一句話,在一部計算機系統內,所有數據交換的需求都必須通過總線來實現!

按照工作模式不同,總線可分爲兩種類型,一種是並行總線,它在同一時刻可以傳輸多位數據,好比是一條允許多輛車並排開的寬敞道路,而且它還有雙向單向之分;另一種爲串行總線,它在同一時刻只能傳輸一個數據,好比只容許一輛車行走的狹窄道路,數據必須一個接一個傳輸、看起來彷彿一個長長的數據串,故稱爲“串行”。

並行總線和串行總線的描述參數存在一定差別。對並行總線來說,描述的性能參數有以下三個:總線寬度、時鐘頻率、數據傳輸頻率。其中,總線寬度就是該總線可同時傳輸數據的位數,好比是車道容許並排行走的車輛的數量;例如,16位總線在同一時刻傳輸的數據爲16位,也就是2個字節;而32位總線可同時傳輸4個字節,64位總線可以同時傳輸8個字節......顯然,總線的寬度越大,它在同一時刻就能夠傳輸更多的數據。不過總線的位寬無法無限制增加。

總線的帶寬指的是這條總線在單位時間內可以傳輸的數據總量,它等於總線位寬與工作頻率的乘積。例如,對於64位、800MHz的前端總線,它的數據傳輸率就等於64bit×800MHz÷8(Byte)=6.4GB/s;32位、33MHz PCI總線的數據傳輸率就是32bit×33MHz÷8=132MB/s,等等,這項法則可以用於所有並行總線上面——看到這裏,讀者應該明白我們所說的總線帶寬指的就是它的數據傳輸率。

對串行總線來說,帶寬和工作頻率的概念與並行總線完全相同,只是它改變了傳統意義上的總線位寬的概念。在頻率相同的情況下,並行總線比串行總線快得多,那麼,爲什麼各類並行總線反而要被串行總線接替呢?原因在於並行總線雖然一次可以傳輸多位數據,但它存在並行傳輸信號間的干擾現象,頻率越高、位寬越大,干擾就越嚴重,因此要大幅提高現有並行總線的帶寬是非常困難的;而串行總線不存在這個問題,總線頻率可以大幅向上提升,這樣串行總線就可以憑藉高頻率的優勢獲得高帶寬。

而爲了彌補一次只能傳送一位數據的不足,串行總線常常採用多條管線(或通道)的做法實現更高的速度——管線之間各自獨立,多條管線組成一條總線系統,從表面看來它和並行總線很類似,但在內部它是以串行原理運作的。對這類總線,帶寬的計算公式就等於“總線頻率×管線數”,這方面的例子有PCI Express和HyperTransport,前者有×1、×2、×4、×8、×16和×32多個版本,在第一代PCI Express技術當中,單通道的單向信號頻率可達2.5GHz,我們以×16舉例,這裏的16就代表16對雙向總線,一共64條線路,每4條線路組成一個通道,二條接收,二條發送。這樣可以換算出其總線的帶寬爲2.5GHz×16/10=4GB/s(單向)。除10是因爲每字節採用10位編碼。

GT/S與Gbps的定義

GT/s —— Giga Transmissionper second (千兆傳輸/秒),即每一秒內傳輸的次數。重點在於描述物理層通信協議的速率。

Gbps —— Giga Bits Per Second (千兆位/秒)。

GT/s 與Gbps 之間不存在成比例的換算關係。GT/s着重描述端口的速率屬性,可以不和鏈路寬度等關聯,這樣來描述“可以進行鏈路寬度擴展”的高速串行接口更爲合適一些。 需要結合具體的物理層通信協議來分析。

舉例

例如:PCI-e2.0 協議支持 5.0 GT/s, 即每一條Lane 上支持每秒鐘內傳輸 5G個bit;但這並不意味着 PCIe 2.0協議的每一條Lane支持 5Gbps 的速率。爲什麼這麼說呢? 因爲PCIe 2.0 的物理層協議中使用的是 8b/10b的編碼機制。 即每傳輸8個bit,需要發送10個bit;這多出的2個bit並不是對上層有意義的信息。 那麼, PCIe 2.0協議的每一條Lane支持 5 * 8 / 10 = 4Gbps 的速率。 以一個PCIe 2.0 x8的通道爲例,x8的可用帶寬爲 4 * 8 = 32 Gbps。

例如:第二代PCI Express接口(簡稱 PCIe Gen2)的速率屬性爲5.0GTs,這樣的描述主要說明的是每條PCIe Gen2的Lane(Serdes)每秒可以完成5.0G bit的數據傳輸這一屬性,無論對於寬度爲x1、x2、x4、x8的PCIe Gen2接口都是適用的。而如果籠統的說“PCIe Gen2的速率爲5.0GT/s,則顯得不太合適,因爲對於一個x8的PCIe Gen2鏈路來說,它的8個Lane加在一起真正的數據傳輸能力實際可以達到40GT/s!同理,說PCIe Gen3接口的速率爲8.0GT/S也是類似的意思。

pcie總線帶寬

PCIe鏈路可以由多條Lane組成,目前PCIe鏈路可以支持1、2、4、8、12、16和32個Lane,即×1、×2、×4、×8、×12、×16和×32寬度的PCIe鏈路。每一個Lane上使用的總線頻率與PCIe總線使用的版本相關。

第1個PCIe總線規範爲V1.0,之後依次爲V1.0a,V1.1,V2.0和V2.1。目前PCIe總線的最新規範爲V2.1,而V3.0正在開發過程中,預計在2010年發佈。不同的PCIe總線規範所定義的總線頻率和鏈路編碼方式並不相同,如表4‑1所示。

4‑1PCIe總線規範與總線頻率和編碼的關係

PCIe總線規範

總線頻率[1]

單Lane的峯值帶寬

編碼方式

1.x

1.25GHz

2.5GT/s

8/10b編碼

2.x

2.5GHz

5GT/s

8/10b編碼

3.0

4GHz

8GT/s

128/130b編碼

 

如上表所示,不同的PCIe總線規範使用的總線頻率並不相同,其使用的數據編碼方式也不相同。PCIe總線V1.x和V2.0規範在物理層中使用8/10b編碼,即在PCIe鏈路上的10 bit中含有8 bit的有效數據;而V3.0規範使用128/130b編碼方式,即在PCIe鏈路上的130 bit中含有128 bit的有效數據。

由上表所示,V3.0規範使用的總線頻率雖然只有4GHz,但是其有效帶寬是V2.x的兩倍。下文將以V2.x規範爲例,說明不同寬度PCIe鏈路所能提供的峯值帶寬,如表4‑2所示。

 4‑2PCIe總線的峯值帶寬

PCIe總線的數據位寬

×1

×2

×4

×8

×12

×16

×32

峯值帶寬(GT/s)

5

10

20

40

60

80

160

由上表所示,×32的PCIe鏈路可以提供160GT/s的鏈路帶寬,遠高於PCI/PCI-X總線所能提供的峯值帶寬。而即將推出的PCIe V3.0規範使用4GHz的總線頻率,將進一步提高PCIe鏈路的峯值帶寬。

在PCIe總線中,使用GT(Gigatransfer)計算PCIe鏈路的峯值帶寬。GT是在PCIe鏈路上傳遞的峯值帶寬,其計算公式爲總線頻率×數據位寬×2。

 

 

 

 

發佈了60 篇原創文章 · 獲贊 20 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章