祝樹生,解春雷,仇公望,詹景坤,王小輝(中國運(yùn)載火箭技術(shù)研究院研究發(fā)展中心,北京,100076)
?
以太網(wǎng)、PCle和Rapid lO高速總線比較分析
祝樹生,解春雷,仇公望,詹景坤,王小輝
(中國運(yùn)載火箭技術(shù)研究院研究發(fā)展中心,北京,100076)
摘要:目前在嵌入式系統(tǒng)中有許多連接元件的方法,但最主要的還是以太網(wǎng)、PCI Express(PCIe)和Rapid IO這三種高速串行標(biāo)準(zhǔn)。本文主要從協(xié)議層次結(jié)構(gòu)、帶寬選項(xiàng)、拓?fù)浣Y(jié)構(gòu)、數(shù)據(jù)包協(xié)議、可靠性、可用性和應(yīng)用場景幾個(gè)方面對(duì)這三種總線的特點(diǎn)進(jìn)行了比較分析,以供在實(shí)際應(yīng)用中選用分析。
關(guān)鍵詞:以太網(wǎng);PCIe;Rapid IO;高速總線
隨著電子技術(shù)的快速發(fā)展,用于設(shè)備間、板間和嵌入式系統(tǒng)的可用高速數(shù)據(jù)傳輸方式越來越多。目前常用的板間和設(shè)備間互聯(lián)高速總線主要有以太網(wǎng)、PCIe和Rapid IO總線,由于每類總線的原理、機(jī)制和應(yīng)用場景都存在共同點(diǎn)和不同點(diǎn),因此需要從多方面對(duì)這三種總線進(jìn)行比較分析。
1.1以太網(wǎng)
以太網(wǎng)是由Xerox、Intel和DEC公司聯(lián)合開發(fā)的基帶局域網(wǎng)規(guī)范,是一種“盡力而為”的數(shù)據(jù)包傳送方式。在以太網(wǎng)物理層上建立的軟件協(xié)議,如TCP/IP,需要提供信息的可靠傳輸,因?yàn)榛谝蕴W(wǎng)的系統(tǒng)一般在網(wǎng)絡(luò)層執(zhí)行流量控制,而不是在物理層。一般基于以太網(wǎng)的系統(tǒng)帶寬都要超配20%到70%。因此以太網(wǎng)最適合對(duì)時(shí)延要求不高的設(shè)備間應(yīng)用,或帶寬要求較低的板上/板間應(yīng)用。
1.2PCIe總線
PCI Express(簡稱PCIe)總線由Intel于2001年提出,屬于一種基于數(shù)據(jù)包的串行連接總線,為第三代I/O總線,在第二代總線基礎(chǔ)上主要針對(duì)板上互連的數(shù)據(jù)包可靠傳送作了優(yōu)化。PCIe協(xié)議交換的是事務(wù)處理層數(shù)據(jù)包(TLP),如讀和寫,以及被稱為數(shù)據(jù)鏈路層數(shù)據(jù)包(DLLP)的少量特殊鏈路信息。DLLP用于鏈路管理功能,包括物理層的流量控制。PCIe后向兼容傳統(tǒng)的PCI和PCI-X器件,因此PCIe具有能夠充分利用與PCI相關(guān)的軟件和硬件知識(shí)產(chǎn)權(quán)的優(yōu)勢。
1.3Rapid IO總線
Rapid IO互聯(lián)架構(gòu)是一種高性能點(diǎn)對(duì)點(diǎn)的包交換技術(shù),支持芯片間以及板間的互聯(lián)通信,分為并行Rapid IO和串行Rapid IO(SRIO),能滿足從嵌入式結(jié)構(gòu)到桌面運(yùn)算的各種應(yīng)用需求。與PCIe一樣,Rapid IO協(xié)議交換的是數(shù)據(jù)包和被稱為控制符的少量特殊鏈路信息。Rapid IO兼具PCIe和以太網(wǎng)的特性。Rapid IO技術(shù)主要面向高性能嵌入式系統(tǒng)的互連通信,它采用高性能LVDS技術(shù),可以在4對(duì)差分線上實(shí)現(xiàn)10Gbps的有效傳輸速率,而且具有比萬兆以太網(wǎng)、PCI express更高的傳輸效率。
2.1協(xié)議層次結(jié)構(gòu)
以太網(wǎng)采用三層分級(jí)體系結(jié)構(gòu),即傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層。傳輸層提供用用程序之間的通信。網(wǎng)絡(luò)層也稱為IP層,主要是把源主機(jī)上的分組發(fā)送到其他任何一臺(tái)目標(biāo)機(jī)上,網(wǎng)絡(luò)層對(duì)路由通道進(jìn)行選擇。鏈路層包括網(wǎng)絡(luò)接口設(shè)備及其驅(qū)動(dòng)程序,把數(shù)據(jù)報(bào)與傳輸介質(zhì)的交換。
PCIe采用三層分級(jí)體系結(jié)構(gòu),即事務(wù)層、數(shù)據(jù)鏈路層和物理層。事務(wù)層主要產(chǎn)生事務(wù)包,數(shù)據(jù)鏈路層對(duì)TLP事務(wù)包進(jìn)行處理,物理層對(duì)TLP包進(jìn)行8b/10b編碼。
RaPidiO采用三層分級(jí)體系結(jié)構(gòu),即邏輯層、傳輸層、物理層,目前邏輯層定義了報(bào)文格式,支持五種規(guī)范:存儲(chǔ)器映射/I/ O系統(tǒng)、消息傳遞、全局共享存儲(chǔ)模式、流量控制和流數(shù)據(jù)。傳輸層定義了Rapid IO的地址空間并提供必要的路由信息。物理層描述了設(shè)備級(jí)接口,說明報(bào)文機(jī)制、流控機(jī)制、電氣特性和底層錯(cuò)誤機(jī)理。
三種協(xié)議分層與OSI分層對(duì)應(yīng)關(guān)系如圖1所示。
2.2帶寬選項(xiàng)
以太網(wǎng)、PCIe和Rapid IO在物理/鏈路層方面的最顯著區(qū)別是所能支持的帶寬選項(xiàng)。以太網(wǎng)帶寬具有一代增加10倍的悠久歷史。以太網(wǎng)目前工作在10Mbps、100Mbps、1Gbps。
PCIe和Rapid IO采用了不同的方法,因?yàn)榘迳稀彘g和設(shè)備間互連要求功率與數(shù)據(jù)流匹配。因此與以太網(wǎng)相比,PCIe 和Rapid IO支持更多的通道速率和通道帶寬組合。PCIe 2.0 x16通道帶寬可達(dá)8Gbps,最新的PCIe 3.0的目標(biāo)是帶寬達(dá)到10Gbps,而Rapid IO支持1.25、2.5、3.125、5和6.25Gbps的通道速率。PCIe和Rapid IO都支持從單個(gè)通道到多個(gè)通道的通道帶寬組合。PCIe規(guī)范中還支持32通道端口。對(duì)于給定的通道帶寬,Rapid IO端口可以提供多于或少于PCIe的帶寬,因此允許系統(tǒng)設(shè)計(jì)人員調(diào)整系統(tǒng)中用于數(shù)據(jù)流的功率大小。
2.3拓?fù)浣Y(jié)構(gòu)
Rapid IO和以太網(wǎng)都是模糊拓?fù)浣Y(jié)構(gòu)。任何端點(diǎn)組都可以用任何拓?fù)浣Y(jié)構(gòu)連接,包括環(huán)形、樹形、網(wǎng)狀、超立方體以及超復(fù)雜網(wǎng)絡(luò)等更深?yuàn)W的幾何圖形。數(shù)據(jù)包則根據(jù)它們的網(wǎng)絡(luò)地址在這些拓?fù)渲型瓿陕酚桑⒅С植煌負(fù)溥x項(xiàng)還允許系統(tǒng)設(shè)計(jì)人員通過匹配數(shù)據(jù)路徑和數(shù)據(jù)流程消除系統(tǒng)中的性能瓶頸。系統(tǒng)擴(kuò)展和演變?cè)赗apid IO和以太網(wǎng)絡(luò)中是不受約束的。
相反,PCIe在頂層支持帶單個(gè)根聯(lián)合體的樹狀結(jié)構(gòu),具體如圖 2所示。其中組成部分包括一個(gè)根聯(lián)合體,多個(gè)端點(diǎn)設(shè)備,一個(gè)交換設(shè)備(Switch),和一個(gè)PCIe-PCI橋。所有的內(nèi)部互聯(lián)都是通過PCIe鏈路。根聯(lián)合體是將CPU/存儲(chǔ)器子系統(tǒng)和I/O連接起來的設(shè)備,能夠支持不止一個(gè)PCIe接口。每個(gè)接口都可以連接單個(gè)PCIe端點(diǎn)設(shè)備,也可以連接PCIe交換設(shè)備或者橋接設(shè)備。端點(diǎn)設(shè)備作為PCIe傳輸?shù)恼?qǐng)求者或者完成者,是PCIe鏈路中不可或缺的設(shè)備。
2.4數(shù)據(jù)包協(xié)議
Rapid IO、PCIe和以太網(wǎng)在邏輯層方面也有多個(gè)差異較大的地方,最明顯的區(qū)別是所支持的語義。
PCIe數(shù)據(jù)包支持基于地址的讀寫語義。在PCIe系統(tǒng)中,發(fā)起讀或?qū)懙膶?shí)體必須知道系統(tǒng)的全局存儲(chǔ)器映射圖中的目標(biāo)地址,這對(duì)控制平面應(yīng)用而言是一種很自然的方法。然而,這種對(duì)全局地址映射圖的依賴性也會(huì)導(dǎo)致難以發(fā)展的緊耦合軟件系統(tǒng)。PCIe協(xié)議也支持通過消息TLP的消息傳送。不過消息TLP只支持有限數(shù)量的功能,如中斷和復(fù)位信號(hào)。這點(diǎn)與以太網(wǎng)和Rapid IO消息包有很大的不同,后者可用于進(jìn)程間通信。
與PCIe不同,建立在以太網(wǎng)物理層之上的軟件協(xié)議只支持消息語義。在發(fā)送消息時(shí),發(fā)送者只需知道接收地址。尋址機(jī)制一般是分層的,因此沒有哪個(gè)節(jié)點(diǎn)必須知道所有的地址。地址可能會(huì)隨系統(tǒng)發(fā)展而改變,支持軟件單元實(shí)現(xiàn)相互間的松散耦合。這些屬性對(duì)數(shù)據(jù)平面應(yīng)用來說是必要的。
Rapid IO同時(shí)支持讀/寫和消息語義。除了明顯的架構(gòu)優(yōu)勢和系統(tǒng)靈活性外,對(duì)讀/寫和消息處理的支持允許單路互連同時(shí)用于控制和數(shù)據(jù)平面。Rapid IO系統(tǒng)因此要比必須結(jié)合PCIe和以太網(wǎng)的系統(tǒng)來得更簡單,從而具有降低功耗和成本的優(yōu)勢。
2.5可靠性和可用性
大多數(shù)系統(tǒng)對(duì)可靠性和可用性都有要求。有可靠性和可用性要求的系統(tǒng)需要誤碼檢測、誤碼提醒、故障元件分析與隔離以及恢復(fù)機(jī)制。從高層看,PCIe、Rapid IO和以太網(wǎng)在所有這些方面都要相似的功能。不過在備份策略以及快速隔離系統(tǒng)使之免受故障元件影響的功能方面有很大差別。

圖1 三種協(xié)議分層與OSI分層對(duì)應(yīng)關(guān)系

圖2 三種總線拓?fù)浣Y(jié)構(gòu)
Rapid IO具有與以太網(wǎng)類似的備份、誤碼捕捉和誤碼提醒功能。PCIe支持有限的備份策略,因?yàn)樗膫鬏攲觾H限于樹狀結(jié)構(gòu)。上文提及的PCIe非透明橋接(NTB)允許兩個(gè)或多個(gè)樹狀結(jié)構(gòu)進(jìn)行通信,足以實(shí)現(xiàn)1+1備份(也稱為1:1備份)。NTB很難拓展到采用N+M備份機(jī)制的系統(tǒng)。理論上多根I/O虛擬化(MRIOV)可以用來在PCIe系統(tǒng)中支持N+M備份,其中N+M的總數(shù)量不超過8。然而,由于MRIOV系統(tǒng)中的子樹無法相互通信,從故障恢復(fù)可能要求系統(tǒng)中斷運(yùn)行,目的是重新配置系統(tǒng),以便隔離故障元件,并采用新的元件。
與PCIe和Rapid IO相比,以太網(wǎng)的誤碼檢測機(jī)制通常比較慢,因?yàn)橐蕴W(wǎng)是針對(duì)全球范圍內(nèi)分布的網(wǎng)絡(luò)設(shè)計(jì)的。PCIe和Rapid IO都有誤碼檢測和提醒機(jī)制,其時(shí)延要比以太網(wǎng)小得多。
雖然PCIe和Rapid IO都保證數(shù)據(jù)包的發(fā)送,但在誤碼條件下它們會(huì)棄包,以防止故障元件造成致命擁塞。然而,PCIe誤碼條件機(jī)制是不可配置的。當(dāng)鏈路必須再學(xué)習(xí)時(shí)數(shù)據(jù)包通常會(huì)被丟棄。另外,PCIe隔離機(jī)制只在幾個(gè)毫秒后就被激活。這些并不是所有系統(tǒng)都認(rèn)為理想的行為。
相反,Rapid IO標(biāo)準(zhǔn)允許對(duì)誤碼作出特殊系統(tǒng)響應(yīng),如鏈路再學(xué)習(xí)。當(dāng)誤碼發(fā)生時(shí),系統(tǒng)會(huì)立即開始棄包,或者它會(huì)保留包,并允許擁塞發(fā)生。Rapid IO使用“漏桶”式誤碼計(jì)數(shù)方法,并有兩個(gè)可配置門限。DEGRADED門限能盡早提醒系統(tǒng)管理軟件鏈路上正在發(fā)生誤碼。FAILED門限用于觸發(fā)丟包以實(shí)現(xiàn)用戶定義的誤碼率。Rapid IO誤碼管理的靈活性反映了嵌入式系統(tǒng)設(shè)計(jì)人員的不斷變化需求。
2.6應(yīng)用場景
由于以太網(wǎng)具有便于連接數(shù)量龐大的客戶終端,因此其在很多領(lǐng)域都具有不可動(dòng)搖的技術(shù)地位,多年來一直在LAN以及WAN領(lǐng)域被廣泛應(yīng)用,如數(shù)據(jù)存儲(chǔ)、無線終端、電話、工業(yè)領(lǐng)域以及其他嵌入式應(yīng)用。無論在軟硬件的可行性、專家的可支持性還是降低系統(tǒng)的復(fù)雜性、投入市場的時(shí)效性方面,以太網(wǎng)都能大大降低開發(fā)成本。
PCIe的應(yīng)用具有很強(qiáng)的靈活性,PCIe總線可以用于芯片組間的連接,由于其超高的帶寬也可以用于連接圖形芯片,整個(gè)IO系統(tǒng)將重新統(tǒng)一起來,簡化計(jì)算機(jī)系統(tǒng),增加計(jì)算機(jī)的模塊化。目前已經(jīng)作為計(jì)算機(jī)行業(yè)的最流行的總線結(jié)構(gòu),目前大部分的I/O接口采用PCIe總線。
Rapid IO作為一種系統(tǒng)內(nèi)部互連技術(shù),定位于內(nèi)部系統(tǒng)互聯(lián)層次,Rapid IO互連適用于多器件緊耦合的工作環(huán)境,可應(yīng)用在很多場合:DSP連接、處理器和其他器件的點(diǎn)對(duì)點(diǎn)主/從連接、控制和數(shù)據(jù)背板連接、基帶和RF板連接等。Rapid IO非常適合于熱插拔應(yīng)用,因?yàn)镽apid IO的點(diǎn)到點(diǎn)拓?fù)浣Y(jié)構(gòu)可以使設(shè)備的抽離對(duì)相鄰設(shè)備或子系統(tǒng)僅有非常少的電氣影響,甚至沒有影響。
2.7互聯(lián)總線對(duì)比分析
綜合以上內(nèi)容,從軟件開銷、帶寬選項(xiàng)、傳輸模式、拓?fù)浣Y(jié)構(gòu)、互聯(lián)模式、傳輸距離、數(shù)據(jù)包有效長度等幾個(gè)方面對(duì)三種總線進(jìn)行對(duì)比,具體如表 1所示。
通過上述分析,以太網(wǎng)最適合地理上分散的、具有長時(shí)延并且動(dòng)態(tài)網(wǎng)絡(luò)配置的網(wǎng)絡(luò)。PCIe則能對(duì)單板上的分層總線結(jié)構(gòu)提供最理想的支持。這兩種技術(shù)都可用于板上、板間和設(shè)備間通信,而且在許多應(yīng)用場合被同時(shí)用于同一系統(tǒng)。Rapid IO能將這兩種互連的優(yōu)勢結(jié)合到單個(gè)互連中,并可顯著節(jié)省功率和成本。
Rapid IO是嵌入式系統(tǒng)的最佳互連選擇。Rapid IO具有與PCIe和以太網(wǎng)相似的功能,并具有其它互連技術(shù)無法復(fù)制的功能,如:低時(shí)延、低抖動(dòng)的系統(tǒng)事件分發(fā);組合式鏈路層和網(wǎng)絡(luò)層流量控制機(jī)制;可配置的誤碼檢測和模糊拓?fù)渎酚煽蓪?shí)現(xiàn)高效的備份、高可靠性和可用性;讀/寫和進(jìn)程間通信消息語義的硬件實(shí)現(xiàn)。這些功能允許系統(tǒng)架構(gòu)師創(chuàng)建性能更高、功耗更低并且更容易擴(kuò)展的系統(tǒng)。
未來實(shí)時(shí)應(yīng)用系統(tǒng)的高性能需求,使得對(duì)總線的帶寬、效率、功耗等要求越來越高。隨著DSP處理器和嵌入式系統(tǒng)的快速發(fā)展,總線技術(shù)將成為限制系統(tǒng)的主要因素之一,因此可提供更高帶寬、可集成功能、基于硬件協(xié)議處理且更加有效的Rapid IO總線技術(shù)在未來一段時(shí)間將廣泛的應(yīng)用于計(jì)算機(jī)的的各個(gè)領(lǐng)域。
參考文獻(xiàn)
[1] Rapid IO Trade Association. Rapid IO Interconnect Specification. http://www.rapidio.org.2002-06.
[2] 樊博.基于PCIe的高速圖像采集處理關(guān)鍵技術(shù)研究[D].碩士學(xué)位論文.中國科學(xué)院大學(xué).2013.
[3] 吳強(qiáng).基于Rapid IO系統(tǒng)互連協(xié)議的邏輯設(shè)計(jì)與驗(yàn)證[D].碩士學(xué)位論文.西南交通大學(xué).2009.
[4]趙政.以太網(wǎng)交換及應(yīng)用技術(shù)研究[D].碩士學(xué)位論文.西安電子科技大學(xué).2008.
[5]張強(qiáng).串行Rapid IO互聯(lián)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].碩士學(xué)位論文.南京理工大學(xué).2013.
A Comparative analysis of high-speed bus in Ethernet、PCIe and Rapid IO
Zhu Shusheng,Xie Chunlei,Qiu Gongwang,Zhan Jingkun,Wang Xiaohui
(R&D Center,China Academy of Launch Vehicle Technology,Beijing,10076)
Abstract:There are many methods in connection components of embedded system,but the most important menthods are the Ethernet,PCIe and Rapid IO。This paper mainly compares and analyzes the protocol structure,bandwidth,topology structure,message protocol,credibility,usability and application scenario of three kinds of bus,which is provided to choose for actual application.
Keywords:Ethernet;PCIe;Rapid IO;High Speed Bus
中圖分類號(hào):TP334
文獻(xiàn)標(biāo)識(shí)碼:A
作者簡介
祝樹生(1984-),男,山西朔州人,工程師,主要從事電氣系統(tǒng)總體設(shè)計(jì)工作。

表1 互連總線對(duì)比