PCIe總線基本概念

PCIe總線的提出可以算是代表着傳統並行總線向高速串行總線發展的時代的到來。實際上,不僅是PCI總線到PCIe總線,高速串行總線取代傳統並行總線是一個大的趨勢。如ATA到SATA,SCSI到USB等……

不過,爲了兼容之前的PCI總線設備,雖然PCIe是一種串行總線,無法在物理層上兼容PCI總線,但是在軟件層卻兼容PCI總線。

和很多串行總線一樣,PCIe採用了全雙工的傳輸設計,即允許在同一時刻,同時進行發送和接收數據。如下圖所示,設備A和設備B之間通過雙向的Link相連接,每個Link支持1到32個通道(Lane)。由於是串行總線,因此所有的數據(包括配置信息等)都是以數據包爲單位進行發送。

與絕大部分的高速連接一樣,PCIe採用了差分對進行收發,以提高總線的性能。一個PCIe Lane的例子如下圖所示:

除了差分總線,PCIe還引入了嵌入式時鐘的技術(Embedded Clock),即發送端不再向接收端發送時鐘,但是接收端可以通過8b/10b的編碼從數據Lane中恢復出時鐘。一個簡單的時鐘恢復電路模型如下圖所示:

注:PCie Gen3以及之後的版本採用了128b/130b編碼方式。

PCIe相對於PCI總線的另一個大的優勢是其的Scalable Performance,即可以根據應用的需要來調整PCIe設備的帶寬。如需要很高的帶寬,則採用多個Lane(比如顯卡);如果並不需要特別高的帶寬,則只需要一個Lane就可以了(比如說網卡等)。

和PCI-X總線一樣,由於非常高的傳輸速度,PCIe是一種點對點連接的總線,而不像PCI那樣共享總線。但是PCIe總線系統可以通過Switch連接多個PCIe設備,也可以通過PCIe橋連接傳統的PCI和PCI-X設備。一個簡單的PCIe總線系統的拓撲結構圖如下所示:

注:這裏的Switch實際上包含了多個類似於PCI總線中橋的概念。

圖中的Root Complex經常被稱爲RC或者Root。在PCIe的Spec中,並沒有特別詳細的關於Root Complex的定義,從實際的角度來講,可以把Root Complex理解爲CPU與PCIe總線系統通信的媒介Endpoint處於PCIe總線系統拓撲結構中的最末端,一般作爲總線操作的發起者(initiator,類似於PCI總線中的主機)或者終結者(Completers,類似於PCI總線中的從機)。顯然,Endpoint只能接受來自上級拓撲的數據包或者向上級拓撲發送數據包。

所謂Lagacy PCIe Endpoint是指那些原本準備設計爲PCI-X總線接口的設備,但是卻被改爲PCIe接口的設備。而Native PCIe Endpoint則是標準的PCIe設備。其中,Lagacy PCIe Endpoint可以使用一些在Native PCIe Endpoint禁止使用的操作,如IO Space和Locked Request等。Native PCIe Endpoint則全部通過Memory Map來進行操作,因此,Native PCIe Endpoint也被稱爲Memory Mapped Devices(MMIO Devices)

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