【VS开发】PCIe体系结构的组成部件
PCIe總線作為處理器系統的局部總線,其作用與PCI總線類似,主要目的是為了連接處理器系統中的外部設備,當然PCIe總線也可以連接其他處理器系統。在不同的處理器系統中,PCIe體系結構的實現方法略有不同。但是在大多數處理器系統中,都使用了RC、Switch和PCIe-to-PCI橋這些基本模塊連接PCIe和PCI設備。在PCIe總線中,基于PCIe總線的設備,也被稱為EP(Endpoint)。
4.2.1 基于PCIe架構的處理器系統
在不同的處理器系統中,PCIe體系結構的實現方式不盡相同。PCIe體系結構以Intel的x86處理器為藍本實現,已被深深地烙下x86處理器的印記。在PCIe總線規范中,有許多內容是x86處理器獨有的,也僅在x86處理器的Chipset中存在。在PCIe總線規范中,一些最新的功能也在Intel的Chipset中率先實現。本節將以一個虛擬的處理器系統A和PowerPC處理器為例簡要介紹RC的實現,并簡單歸納RC的通用實現機制。
1 處理器系統A
在有些處理器系統中,沒有直接提供PCI總線,此時需要使用PCIe橋,將PCIe鏈路轉換為PCI總線之后,才能連接PCI設備。在PCIe體系結構中,也存在PCI總線號的概念,其編號方式與PCI總線兼容。一個基于PCIe架構的處理器系統A如圖4?7所示。
在上圖的結構中,處理器系統首先使用一個虛擬的PCI橋分離處理器系統的存儲器域與PCI總線域。FSB總線下的所有外部設備都屬于PCI總線域。與這個虛擬PCI橋直接相連的總線為PCI總線0。這種架構與Intel的x86處理器系統較為類似。
在這種結構中,RC由兩個FSB-to-PCIe橋和存儲器控制器組成。值得注意的是在圖4?7中,虛擬PCI橋的作用只是分離存儲器域與PCI總線域,但是并不會改變信號的電氣特性。RC與處理器通過FSB連接,而從電氣特性上看,PCI總線0與FSB兼容,因此在PCI總線0上掛接的是FSB-to-PCIe橋,而不是PCI-to-PCIe橋。
在PCI總線0上有一個存儲器控制器和兩個FSB-to-PCIe橋。這兩個FSB-to-PCIe橋分別推出一個×16和×8的PCIe鏈路,其中×16的PCIe鏈路連接顯卡控制器(GFX),其編號為PCI總線1;×8的PCIe鏈路連接一個Switch進行PCIe鏈路擴展。而存儲器控制器作為PCI總線0的一個Agent設備,連接DDR插槽或者顆粒。
此外在這個PCI總線上還可能連接了一些使用“PCI配置空間”管理的設備,這些設備的訪問方法與PCI總線兼容,在x86處理器的Chipset中集成了一些內嵌的設備。這些內嵌的設備使用均使用“PCI配置空間”進行管理,包括存儲器控制器。
PCIe總線使用端到端的連接方式,因此只有使用Switch才能對PCIe鏈路進行擴展,而每擴展一條PCIe鏈路將產生一個新的PCI總線號。如圖4?7所示,Switch可以將1個×8的PCIe端口擴展為4個×2的PCIe端口,其中每一個PCIe端口都可以掛接EP。除此之外PCIe總線還可以使用PCIe橋,將PCIe總線轉換為PCI總線或者PCI-X總線,之后掛接PCI/PCI-X設備。多數x86處理器系統使用這種結構連接PCIe或者PCI設備。
在PCIe總線規范中并沒有明確提及PCIe主橋,而使用RC概括除了處理器之外的所有與PCIe總線相關的內容。在PCIe體系結構中,RC是一個很模糊也很混亂的概念。Intel使用PCI總線的概念管理所有外部設備,包括與這些外部設備相關的寄存器,因此在RC中包含一些實際上與PCIe總線無關的寄存器。使用這種方式有利于系統軟件使用相同的平臺管理所有外部設備,也利于平臺軟件的一致性,但是仍有其不足之處。
2 PowerPC處理器
PowerPC處理器掛接外部設備使用的拓撲結構與x86處理器不同。在PowerPC處理器中,雖然也含有PCI/PCIe總線,但是仍然有許多外部設備并不是連接在PCI總線上的。在PowerPC處理器中,PCI/PCIe總線并沒有在x86處理器中的地位。在PowerPC處理器中,還含有許多內部設備,如TSEC(Three Speed Ethenet Controller)和一些內部集成的快速設備,與SoC平臺總線直接相連,而不與PCI/PCIe總線相連。在PowerPC處理器中,PCI/PCIe總線控制器連接在SoC平臺總線的下方。
Freescale即將發布的P4080處理器,采用的互連結構與之前的PowerPC處理器有較大的不同。P4080處理器是Freescale第一顆基于E500 mc內核的處理器。E500 mc內核與之前的E500 V2和V1相比,從指令流水線結構、內存管理和中斷處理上說并沒有本質的不同。E500mc內核內置了一個128KB大小的L2 Cache,該Cache連接在BSB總線上;而E500 V1/V2內核中并不含有L2 Cache,而僅含有L1 Cache而且與FSB直接相連。在E500mc內核中,還引入了虛擬化的概念。在P4080處理器中,一些快速外部設備,如DDR控制器、以太網控制器和PCI/PCIe總線接口控制器也是直接或者間接地連接到CoreNet中,在P4080處理器,L3 Cache也是連接到CoreNet中。P4080處理器的拓撲結構如圖4?8所示。
目前Freescale并沒有公開P4080處理器的L1、L2和L3 Cache如何進行Cache共享一致性。多數采用CoreNet架構互連的處理器系統使用目錄表法進行Cache共享一致性,如Intel的Nehelem EX處理器。P4080處理器并不是一個追求峰值運算的SMP處理器系統,而針對Data Plane的應用,因此P4080處理器可能并沒有使用基于目錄表的Cache一致性協議。在基于全互連網絡的處理器系統中如果使用“類總線監聽法”進行Cache共享一致性,將不利于多個CPU共享同一個存儲器系統,在Cache一致性的處理過程中容易形成瓶頸。
如圖4?8所示,P4080處理器的設計重點并不是E500mc內核,而是CoreNet。CoreNet內部由全互連網絡組成,其中任意兩個端口間的通信并不會影響其他端口間的通信。與MPC8548處理器相同,P4080處理器也使用OceaN[1]結構連接PCIe與RapidIO接口。
在P4080處理器中不存在RC的概念,而僅存在PCIe總線控制器,當然也可以認為在P4080處理器中,PCIe總線控制器即為RC。P4080處理器內部含有3個PCIe總線控制器,如果該處理器需要連接更多的PCIe設備時,需要使用Switch擴展PCIe鏈路。
在P4080處理器中,所有外部設備與處理器內核都連接在CoreNet中,而不使用傳統的SoC平臺總線[2]進行連接,從而在有效提高了處理器與外部設備間通信帶寬的同時,極大降低了訪問延時。此外P4080處理器系統使用PAMU(Peripheral Access Management Unit)分隔外設地址空間與CoreNet地址空間。在這種結構下,10GE/1GE接口使用的地址空間與PCI總線空間獨立。
P4080處理器使用的PAMU是對MPC8548處理器ATMU的進一步升級。使用這種結構時,外部設備使用的地址空間、PCI總線域地址空間和存儲器域地址空間的劃分更加明晰。在P4080處理器中,存儲器控制器和存儲器都屬于一個地址空間,即存儲器域地址空間。此外這種結構還使用OCeaN連接SRIO[3]和PCIe總線控制器,使得在OCeaN中的PCIe端口之間[4]可以直接通信,而不需要通過CoreNet,從而減輕了CoreNet的負載。
從內核互連和外部設備互連的結構上看,這種結構具有較大的優勢。但是采用這種結構需要使用占用芯片更多的資源,CoreNet的設計也十分復雜。而最具挑戰的問題是,在這種結構之下,Cache共享一致性模型的設計與實現。在Boxboro EX處理器系統中,可以使用QPI將多個處理器系統進行點到點連接,也可以組成一個全互連的處理器系統。這種結構與P4080處理器使用的結構類似,但是Boxboro EX處理器系統包含的CPU更多。
3 基于PCIe總線的通用處理器結構
在不同的處理器系統中,RC的實現有較大差異。PCIe總線規范并沒有規定RC的實現細則。在有些處理器系統中,RC相當于PCIe主橋,也有的處理器系統也將PCIe主橋稱為PCIe總線控制器。而在x86處理器系統中,RC除了包含PCIe總線控制器之外,還包含一些其他組成部件,因此RC并不等同于PCIe總線控制器。
如果一個RC中可以提供多個PCIe端口,這種RC也被稱為多端口RC。如MPC8572處理器的RC可以直接提供3條PCIe鏈路,因此可以直接連接3個EP。如果MPC8572處理器需要連接更多EP時,需要使用Switch進行鏈路擴展。
而在x86處理器系統中,RC并不是存在于一個芯片中,如在Montevina平臺中,RC由MCH和ICH兩個芯片組成。本節并不對x86和PowerPC處理器使用的PCIe總線結構做進一步討論,而只介紹這兩種結構的相同之處。一個通用的,基于PCIe總線的處理器系統如圖4?9所示。
上圖所示的結構將PCIe總線端口、存儲器控制器等一系列與外部設備有關的接口都集成在一起,并統稱為RC。RC具有一個或者多個PCIe端口,可以連接各類PCIe設備。PCIe設備包括EP(如網卡、顯卡等設備)、Switch和PCIe橋。PCIe總線采用端到端的連接方式,每一個PCIe端口只能連接一個EP,當然PCIe端口也可以連接Switch進行鏈路擴展。通過Switch擴展出的PCIe鏈路可以繼續掛接EP或者其他Switch。
4.2.2 RC的組成結構
RC是PCIe體系結構的一個重要組成部件,也是一個較為混亂的概念。RC的提出與x86處理器系統密切相關。事實上,只有x86處理器才存在PCIe總線規范定義的“標準RC”,而在多數處理器系統,并不含有在PCIe總線規范中涉及的,與RC相關的全部概念。
不同處理器系統的RC設計并不相同,在圖4?7中的處理器系統中,RC包括存儲器控制器、兩個FSB-to-PCIe橋。而在圖4?8中的PowerPC處理器系統中,RC的概念并不明晰。在 PowerPC處理器中并不存在真正意義上的RC,而僅包含PCIe總線控制器。
在x86處理器系統中,RC內部集成了一些PCI設備、RCRB(RC Register Block)和Event Collector等組成部件。其中RCRB由一系列“管理存儲器系統”的寄存器組成,而僅存在于x86處理器中;而Event Collector用來處理來自PCIe設備的錯誤消息報文和PME消息報文。RCRB寄存器組屬于PCI總線域地址空間,x86處理器訪問RCRB的方法與訪問PCI設備的配置寄存器相同。在有些x86處理器系統中,RCRB在PCI總線0的設備0中。
RCRB是x86處理器所獨有的,PowerPC處理器也含有一組“管理存儲器系統”的寄存器,這組寄存器與RCRB所實現的功能類似。但是在PowerPC處理器中,該組寄存器以CCSRBAR寄存器為基地址,處理器采用存儲器映像方式訪問這組寄存器。
如果將RC中的RCRB、內置的PCI設備和Event Collector去除,該RC的主要功能與PCI總線中的HOST主橋類似,其主要作用是完成存儲器域到PCI總線域的地址轉換。但是隨著虛擬化技術的引入,尤其是引入MR-IOV技術之后,RC的實現變得異常復雜。
但是RC與HOST主橋并不相同,RC除了完成地址空間的轉換之外,還需要完成物理信號的轉換。在PowerPC處理器的RC中,來自OCeaN或者FSB的信號協議與PCIe總線信號使用的電氣特性并不兼容,使用的總線事務也并不相同,因此必須進行信號協議和總線事務的轉換。
在P4080處理器中,RC的下游端口可以掛接Switch擴展更多的PCIe端口,也可以只掛接一個EP。在P4080處理器的RC中,設置了一組Inbound和Outbound寄存器組,用于存儲器域與PCI總線域之間地址空間的轉換;而P4080處理器的RC還可以使用Outbound寄存器組將PCI設備的配置空間直接映射到存儲器域中。PowerPC處理器在處理PCI/PCIe接口時,都使用這組Inbound和Outbound寄存器組。
在P4080處理器中,RC可以使用PEX_CONFIG_ADDR與PEX_CONFIG_DATA寄存器對 EP進行配置讀寫,這兩個寄存器與MPC8548處理器HOST主橋的PCI_CONFIG_ADDR和PCI_CONFIG_DATA寄存器類似,本章不再詳細介紹這組寄存器。
而x86處理器的RC設計與PowerPC處理器有較大的不同,實際上和大多數處理器系統都不相同。x86處理器賦予了RC新的含義,PCIe總線規范中涉及的RC也以x86處理器為例進行說明,而且一些在PCIe總線規范中出現的最新功能也在Intel的x86處理器系統中率先實現。在x86處理器系統中的RC實現也比其他處理器系統復雜得多。深入理解x86處理器系統的RC對于理解PCIe體系結構非常重要。
4.2.3 Switch
本篇在第4.1.4節,簡單介紹了在PCIe總線中,如何使用Switch進行鏈路擴展,本節主要介紹Switch[5]的內部結構。從系統軟件的角度上看,每一個PCIe鏈路都占用一個PCI總線號,但是一條PCIe鏈路只能連接一個PCI設備,Switch、EP或者PCIe橋片。PCIe總線使用端到端的連接方式,一條PCIe鏈路只能連接一個設備。
一個PCIe鏈路需要掛接多個EP時,需要使用Switch進行鏈路擴展。一個標準Switch具有一個上游端口和多個下游端口。上游端口與RC或者其他Switch的下游端口相連,而下游端口可以與EP、PCIe-to-PCI-X/PCI橋或者下游Switch的上游端口相連。
PCIe總線規范還支持一種特殊的連接方式,即Crosslink連接方式。使用這種方式時,Switch的下游端口可以與其他Switch的下游端口直接連接,上游端口也可以其他Switch的上游端口直接連接。在PCIe總線規范中,Crosslink連接方式是可選的,并不要求PCIe設備一定支持這種連接方式。
在PCIe體系結構中,Switch的設計難度僅次于RC,Switch也是PCIe體系結構的核心所在。而從系統軟件的角度上看,Switch內部由多個PCI-to-PCI橋組成,其中每一個上游和下游端口都對應一個虛擬PCI橋。在一個Switch中有多個端口,在其內部就有多少個虛擬PCI橋,就有多少個PCI橋配置空間。值得注意的是,在Switch內部還具有一條虛擬的PCI總線,用于連接各個虛擬PCI橋,系統軟件在初始化Switch時,需要為這條虛擬PCI總線編號。Switch的組成結構如圖4?10所示。
Switch[6]需要處理PCIe總線傳輸過程中的QoS問題。PCIe總線的QoS要求PCIe總線區別對待優先權不同的數據報文,而且無論PCIe總線的某一個鏈路多么擁塞,優先級高的報文,如等時報文(Isochronous Packet)都可以獲得額定的數據帶寬。而且PCIe總線需要保證優先級較高的報文優先到達。PCIe總線采用虛擬多通路VC技術[7],并在這些數據報文設定一個TC(Traffic Class)標簽,該標簽由3位組成,將數據報文根據優先權分為8類,這8類數據報文可以根據需要選擇不同的VC進行傳遞。
在PCIe總線中,每一條數據鏈路上最多可以支持8個獨立的VC。每個VC可以設置獨立的緩沖,用來接收和發送數據報文。在PCIe體系結構中,TC和VC緊密相連,TC與VC之間的關系是“多對一”。
TC可以由軟件設置,系統軟件可以選擇某類TC由哪個VC進行傳遞。其中一個VC可以傳遞TC不相同的數據報文,而TC相同的數據報文在指定一個VC傳遞之后,不能再使用其他VC。在許多處理器系統中,Switch和RC僅支持一個VC,而x86處理器系統和PLX的Switch中可以支持兩個VC。
下文將以一個簡單的例子說明如何使用TC標簽和多個VC,以保證數據傳送的服務質量。我們將PCIe總線的端到端數據傳遞過程模擬為使用汽車將一批貨物從A點運送到B點。如果我們不考慮服務質量,可以采用一輛汽車運送所有這些貨物,經過多次往返就可以將所有貨物從A點運到B點。但是這樣做會耽誤一些需要在指定時間內到達B點的貨物。有些貨物,如一些急救物資、EMS等其他優先級別較高的貨物,必須要及時地從A點運送到B點。這些急救物資的運送應該有別于其他普通物資的運送。
為此我們首先將不同種類的貨物進行分類,將急救物資定義為TC3類貨物,EMS定義為TC2類貨物,平信定義為TC1類貨物,一般包裹定義為TC0類貨物,我們最多可以提供8種TC類標簽進行貨物分類。
之后我們使用8輛汽車,分別是VC0~7運送這些貨物,其中VC7的速度最快,而VC0的速度最慢。當發生堵車事件時,VC7優先行駛,VC0最后行駛。然后我們使用VC3運送急救物資,VC2運送EMS,VC1運送平信,VC0運送包裹,當然使用VC0同時運送平信和包裹也是可以的,但是平信或者包裹不能使用一種以上的汽車運送,如平信如果使用了VC1運輸,就不能使用VC0。因為TC與VC的對應關系是“多對一”的關系。
采用這種分類運輸的方法,我們可以做到在A點到B點帶寬有限的情況下,仍然可以保證急救物資和EMS可以及時到達B點,從而提高了服務質量。
PCIe總線除了解決數據傳送的QoS問題之外,還進一步考慮如何在鏈路傳遞過程中,使用流量控制機制防止擁塞。
在PCIe體系結構中,Switch處于核心地位。PCIe總線使用Switch進行鏈路擴展,在Switch中,每一個端口對應一個虛擬PCI橋。深入理解PCI橋是理解Switch軟件組成結構的基礎。目前PCIe總線提出了MRA-Switch的概念,這種Switch與傳統Switch有較大的區別。
4.2.4 VC和端口仲裁
在Switch中存在多個端口,其中來自不同Ingress端口的報文可以發向同一個Egress端口,因此Switch必須要解決端口仲裁和路由選徑的問題。所謂端口仲裁指來自不同Ingress端口的報文到達同一個Egress端口的報文通過順序,端口仲裁機制如圖4?11所示。
在一個Switch中設有仲裁器,該仲裁器規定了數據報文通過Switch的規則。在PCIe總線中存在兩種仲裁機制,分別是基于VC和基于端口的仲裁機制。端口仲裁機制主要針對RC和Switch,當多個Ingress端口需要向同一個Egress端口發送數據報文時需要進行端口仲裁。具體地講,在PCIe體系結構中有三個端口,需要進行端口仲裁。
- Switch的Egress端口。當EP A和EP B同時訪問EP C,D或者DDR-SDRAM時,需要通過Switch的Egress端口C。此時Switch需要進行端口仲裁確定是EP A的數據報文還是EP B的數據報文優先通過Egress端口C。
- 多端口RC的Egress端口。當RC的端口1和端口3同時訪問Endpoint C時,RC的端口2需要進行端口仲裁,決定來自RC哪個端口的數據可以率先通過。
- RC通往主存儲器的端口。當RC的端口1、端口2和端口3同時訪問DDR控制器時,這些數據報文將通過RC的Egress端口4,此時需要進行端口仲裁。
在PCIe體系結構中,鏈路的端口仲裁需要根據每一個VC獨立設置,而且可以使用不同的算法進行端口仲裁。
下文以圖4?11中,Switch的兩個Ingress端口A和B向Egress端口C發送數據報文為例,簡要說明端口仲裁和VC仲裁的使用方法,其過程如圖4?12所示。
基于VC的仲裁是指發向同一個端口的數據報文,根據使用的VC而進行仲裁的方式。如上圖所示,當來自端口B和端口A數據報文(分別使用VC0和VC1通路)在到達端口C之前,需要首先進行端口仲裁后,才能進行VC仲裁。PCIe總線規定了3種VC仲裁方式, 分別為Strict Priority,RR(Round Robin)和WRR(Weighted Round Robin)算法。
當使用Strict Priority仲裁方式時,發向VC7的數據報文具有最高的優先級,而發向VC0的數據報文優先級最低。PCIe總線允許對Switch或者RC的部分VC采用Strict Priority方式進行仲裁,而對其他VC采用RR和WRR算法,如VC7~4采用Strict Priority方式,而采用其他方式處理VC3~0。
使用RR方式時,所有VC具有相同的優先級,所有VC輪流使用PCIe鏈路。WRR方式與RR算法類似,但是可以對每一個VC進行加權處理,采用這種方式可以適當提高VC7的優先權,而將VC0的優先權適當降低。
我們假定Ingress端口A和Ingress B向Egress端口C進行數據傳遞時,使用兩個VC通路,分別是VC0和VC1。其中標簽為TC0~3的數據報文使用VC0傳送,而標簽為TC4~7數據報文使用VC1傳送。
而數據報文在離開Egress端口C時,需要首先進行端口仲裁,之后再通過VC仲裁,決定哪個報文優先傳送。數據報文從Ingress A/B端口發送到Egress C端口時,將按照以下步驟進行處理。
(1) 首先到達Ingress A/B端口的數據報文,將根據該端口的TC/VC映射表[8]決定使用該端口的哪個VC通道。如圖4?12所示,假設發向端口A的數據報文使用TC0~TC3,而發向端口B的數據報文使用TC0~TC7,這些數據報文在端口A中僅使用了VC0通道,而在端口B中使用了VC0和VC1兩個通道。
(2) 數據報文在端口中傳遞時,將通過路由部件(Routing Logic),將報文發送到合適的端口。如圖4?12所示,端口C可以接收來自端口A或者B的數據報文。
(3) 當數據報文到達端口C時,首先需要經過TC/VC映射表,確定在端口C中使用哪個VC通路接收不同類型的數據報文。
(4) 對于端口C,其VC0通道可能會被來自端口A的數據報文使用,也可能會被來自端口B的數據報文使用。因此在PCIe的Switch中必須設置一個端口仲裁器,決定來自不同數據端口的數據報文如何使用VC通路。
(5) 數據報文通過端口仲裁后,獲得VC通路的使用權之后,還需要經過Switch中的VC仲裁器,將數據報文發送到實際的物理鏈路中。
PCIe總線規定,系統設計者可以使用以下三種方式進行端口仲裁。
(1) Hardware-fixed仲裁策略。如在系統設計時,采用固化的RR仲裁方法。這種方法的硬件實現原理較為簡單,此時系統軟件不能對端口仲裁器進行配置。
(2) WRR仲裁策略,即加權的RR仲裁策略。
(3) Time-Based WRR仲裁策略,基于時間片的WRR仲裁策略,PCIe總線可以將一個時間段分為若干個時間片(Phase),每個端口占用其中的一個時間片,并根據端口使用這些時間片的多少對端口進行加權的一種方法。使用WRR和Time-Based WRR仲裁策略,可以在某種程度上提高PCIe總線的QoS。
PCIe設備的Capability寄存器規定了端口仲裁使用的算法。有些PCIe設備并沒有提供多種端口仲裁算法,可能也并不含有Capability寄存器。此時該PCIe設備使用Hardware-fixed仲裁策略。
4.2.5 PCIe-to-PCI/PCI-X橋片
本篇將PCIe-to-PCI/PCI-X橋片簡稱為PCIe橋片。該橋片有兩個作用。
- 將PCIe總線轉換為PCI總線,以連接PCI設備。在一個沒有提供PCI總線接口的處理器中,需要使用這類橋片連接PCI總線的外設。許多PowerPC處理器在提供PCIe總線的同時,也提供了PCI總線,因此PCIe-to-PCI橋片對基于PowerPC處理器系統并不是必須的。
- 將PCI總線轉換為PCIe總線(這也被稱為Reverse Bridge),連接PCIe設備。一些低端的處理器并沒有提供PCIe總線,此時需要使用PCIe橋將PCI總線轉換為PCIe總線,才能與其他PCIe設備互連。這種用法初看比較奇怪,但是在實際應用中,確實有使用這一功能的可能。本節主要講解PCIe橋的第一個作用。
PCIe橋的一端與PCIe總線相連,而另一端可以與一條或者多條PCI總線連接。其中可以連接多個PCI總線的PCIe橋也被稱為多端口PCIe橋。
PCIe總線規范提供了兩種多端口PCIe橋片的擴展方法。多端口PCIe橋片指具有一個上游端口和多個下游端口的橋片。其中上游端口連接PCIe鏈路,而下游端口推出PCI總線,連接PCI設備。
目前雖然PCIe總線非常普及,但是仍然有許多基于PCI總線的設計,這些基于PCI總線的設計可以通過PCIe橋,方便地接入到PCIe體系結構中。目前有多家半導體廠商可以提供PCIe橋片,如PLX、NXP、Tundra和Intel。就功能的完善和性能而言,Intel的PCIe橋無疑是最佳選擇,而PLX和Tundra的PCIe橋在嵌入式系統中得到了廣泛的應用。
[1]?OCeaN是一個基于交叉矩陣的總線結構,連接在OCeaN中的外部設備可以直接通信,而不相互干擾。
[2]?這種方式也可以被認為是SoC平臺總線從共享總線結構升級到Switch結構。
[3]?SRIO為串型RapidIO。
[4]?PCIe端口之間的直接通信過程也被稱為Peer-to-Peer傳送方式。
[5]?PCIe總線中的Switch與網絡應用的Switch的功能并不相同,而與網絡應用中的Route功能接近。
[6]?在PCIe體系結構中,RC和EP也需要處理QoS。
[7]?有關多通路VC的詳細說明見第9章。
[8]?該表存在于PCI Express. Extended Capabilities結構中。
轉載于:https://www.cnblogs.com/huty/p/8518661.html
總結
以上是生活随笔為你收集整理的【VS开发】PCIe体系结构的组成部件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android—资源文件(res)的引用
- 下一篇: [每天一道A+B]签到检测程序