劉軍偉(中航工業(yè)西安航空計算技術(shù)研究所,西安,710065)
?
多種高速串行總線的對比研究與分析
劉軍偉
(中航工業(yè)西安航空計算技術(shù)研究所,西安,710065)
摘要:針對新一代非嵌入式系統(tǒng)及嵌入式系統(tǒng)對數(shù)據(jù)通信傳輸能力需求的進(jìn)一步提高,高速串行總線技術(shù)應(yīng)時而生,高速串行總線中應(yīng)用最為廣泛的三種為以太網(wǎng)總線、PCIe總線及RapidIO總線。對比分析以太網(wǎng)、PCIe及RapidIO的特點(diǎn)及原理,通過對比其區(qū)別為硬件設(shè)計時選用合適的高速串行總線提供一定的幫助。
關(guān)鍵詞:以太網(wǎng);PCIe;RapidIO
隨著計算機(jī)技術(shù)的發(fā)展,當(dāng)前及下一代計算機(jī)系統(tǒng)對通信帶寬的需求也越來越高。其中如何能提高數(shù)據(jù)傳輸速度及傳輸效率是系統(tǒng)必須解決的問題。嵌入式系統(tǒng)處理器的頻率不斷提高,高處理性能的處理器與低數(shù)據(jù)傳輸速度間的矛盾日益突出,于是高速的串行總線應(yīng)時而生,其中最常使用的是PCIe及RapidIO總線。非嵌入式系統(tǒng)間的互聯(lián)則通常選用以太網(wǎng)。
以太網(wǎng)、PCIe及RapidIO三種高速串行總線都是基于相似的SerDes串行解碼技術(shù),具有一定的相似性,三者無論從數(shù)據(jù)傳輸速率、帶寬或者時延性各方面指標(biāo)均優(yōu)于并行總線,然而三者在物理層、傳輸層及邏輯層等方面也存在差異。了解清楚三者的相似性及差異性,有助于硬件設(shè)計時選用合適的高速串行總線,最優(yōu)化地完成硬件模塊相應(yīng)功能設(shè)計。
以太網(wǎng)是由Xerox公司創(chuàng)建并與Intel、DEC聯(lián)合開發(fā)的基帶局域網(wǎng)規(guī)范,是一種基于總線型拓?fù)浣Y(jié)構(gòu),使用分布式仲裁機(jī)制解決數(shù)據(jù)沖突的總線,其采用載波監(jiān)聽多路訪問及沖突檢測技術(shù)(即CSMA/CD技術(shù))。以太網(wǎng)上的設(shè)備任何時候都可以發(fā)送信息,但發(fā)送前需檢測網(wǎng)絡(luò)是否空閑,即“監(jiān)聽”,假設(shè)某時刻有多個設(shè)備發(fā)生沖突,則檢測到?jīng)_突,欲發(fā)送數(shù)據(jù)的設(shè)備就需等待一段時間,即“回退”,回退時間隨機(jī)產(chǎn)生,回退時間過后再次試圖發(fā)送,這就是以太網(wǎng)中提到的載波監(jiān)聽多路訪問及沖突檢測技術(shù)(即CSMA/CD技術(shù))。以太網(wǎng)按照傳輸速度可分為標(biāo)準(zhǔn)以太網(wǎng)(傳輸速度10Mbps)、快速以太網(wǎng)(傳輸速度100Mbps)及千兆以太網(wǎng)(傳輸速度1000Mbps)。三種以太網(wǎng)中,千兆以太網(wǎng)以其高的傳輸速度特點(diǎn),通常與PCIe總線及RapidIO總線進(jìn)行比較。
PCIe全稱Peripheral Component Interface Express,是由Intel公司在PCI并行總線的基礎(chǔ)上于2001年提出的用來取代PCI總線的下一代高速串行總線接口標(biāo)準(zhǔn),也可稱為3GIO。PCI總線是一種33MHz@32bit或者66MHz@64bit的并行總線,帶寬為133MB/s至533MB/s,連接在其總線上的設(shè)備共享帶寬,然而隨著計算機(jī)通信技術(shù)的進(jìn)一步發(fā)展,新一代的高速接口總線大量涌現(xiàn),例如千兆以太網(wǎng)、光纖通道(FC)技術(shù)等使得PCI總線的帶寬已經(jīng)無力應(yīng)付系統(tǒng)內(nèi)部大量的高帶寬并行讀寫要求,PCI總線也成為系統(tǒng)性能提升的瓶頸,于是就出現(xiàn)了PCIe總線。PCIe是一種高性能、高靈活性、高可擴(kuò)展性、穩(wěn)定可靠的低成本通用I/O 架構(gòu),它融合多個市場領(lǐng)域的所有應(yīng)用要求,以無縫的方式彌補(bǔ)了現(xiàn)有PCI 總線的不足并進(jìn)行市場過渡,使設(shè)計人員能夠逐步采用新的拓?fù)浼夹g(shù)。PCIe總線是基于對芯片間的互聯(lián)的需求及以較低的開銷升級現(xiàn)有的PCI結(jié)構(gòu)的性能需求的基礎(chǔ)上開發(fā)出來的。PCIe總線接口根據(jù)對應(yīng)位寬的要求可分為1X、2X、4X、8X及16X,相應(yīng)接口均向下兼容。同時PCIe總線具有點(diǎn)對點(diǎn)串行互聯(lián),雙通道、高帶寬、傳輸速度快,以及支持設(shè)備熱插拔及熱交換等優(yōu)點(diǎn)。
RapidIO是由Motorola和Mercury等公司研發(fā)的一種高性能、低引腳數(shù)、基于數(shù)據(jù)包交換的開放式的互聯(lián)技術(shù)標(biāo)準(zhǔn)。目前主要采用的標(biāo)準(zhǔn)為RapidIO 1.x及RapidIO 2.x,其中RapidIO 1.x標(biāo)準(zhǔn)支持信號傳輸速率為1.25Gbps、2.5 Gbps、3.125 Gbps,RapidIO 2.x標(biāo)準(zhǔn)兼容RapidIO 1.x標(biāo)準(zhǔn),同時支持5GHz及6.25GHz的傳輸速率。目前嵌入式系統(tǒng)主要使用的是RapidIO 1.x標(biāo)準(zhǔn)。RapidIO總線具有高帶寬、低延時同時對于軟件透明等優(yōu)點(diǎn),同時RapidIO總線具有比以太網(wǎng)、PCIe總線更高的傳輸效率,能廣泛滿足嵌入式系統(tǒng)的應(yīng)用的需求。
2.1基本性能比較
千兆以太網(wǎng)、PCIe及RapidIO均為高速串行總線,三種總線的基本性能如下表表1所示。
通過比較可以看出,千兆以太網(wǎng)、PCIe及RapidIO三種高速串行總線有很多相似的特點(diǎn),譬如具有高的傳輸速率,具備較長的傳輸距離等等。然而同時它們也有其各自特有的特點(diǎn),譬如有無前端CRC、最大有效載荷等等。了解清楚三者的相似性及差異性,有助于硬件設(shè)計時選用合適的高速串行總線,最優(yōu)化地完成硬件模塊相應(yīng)功能設(shè)計。
表1 基本性能對照表
2.2物理層區(qū)別
在物理層,三者在流量控制及誤碼恢復(fù)機(jī)制方面有著很大的區(qū)別。以太網(wǎng)流量控制主要是在網(wǎng)絡(luò)層用軟件實現(xiàn)的,其物理層的流量控制機(jī)制是PAUSE,同時其采用棄包的方式處理擁塞。PCIe和RapidIO的物理層流量控制機(jī)制可確保數(shù)據(jù)包發(fā)送的可靠性,其中每個數(shù)據(jù)包都會被保留直到被確認(rèn),如果檢測到誤碼,鏈路維護(hù)協(xié)議迫使重傳。PCIe采用數(shù)據(jù)鏈路層數(shù)據(jù)包即DLLP來進(jìn)行發(fā)送,而RapidIO則使用嵌入式控制符進(jìn)行數(shù)據(jù)的發(fā)送,其原理與數(shù)據(jù)鏈路層數(shù)據(jù)包(DLLP)不同,RapidIO控制符可以被嵌入在數(shù)據(jù)包中,可以實現(xiàn)低時間延遲的流量控制信息交換,同時允許在一定時間內(nèi)發(fā)送更多的數(shù)據(jù)包。以下圖1及圖2直觀地反映了這一概念。圖1中當(dāng)節(jié)點(diǎn)B的緩沖區(qū)數(shù)據(jù)滿時節(jié)點(diǎn)A不能向節(jié)點(diǎn)B發(fā)送任何數(shù)據(jù)包,節(jié)點(diǎn)B可以向節(jié)點(diǎn)A發(fā)送數(shù)據(jù)包,當(dāng)節(jié)點(diǎn)B的緩沖區(qū)空閑出來時,節(jié)點(diǎn)B需向節(jié)點(diǎn)A告知。圖2中DLLP在當(dāng)前數(shù)據(jù)包的傳送完成之前是無法傳送數(shù)據(jù),而RapidIO的控制符被嵌入在正在發(fā)送的數(shù)據(jù)包中。將控制符嵌入在正在發(fā)送的數(shù)據(jù)包中的特性使RapidIO具有PCIe和以太網(wǎng)目前無法提供的能力。RapidIO能以更低延遲和更高的吞吐量完成可靠的數(shù)據(jù)包傳送。
圖1 示意圖
發(fā)送的數(shù)據(jù)包中的特性使RapidIO具有PCIe和以太網(wǎng)目前無法提供的能力。
圖2 DLLP與嵌入式控制符示意圖
2.3傳輸層區(qū)別
RapidIO和以太網(wǎng)均支持多種拓?fù)浣Y(jié)構(gòu),在任何端點(diǎn)組都可以用任何拓?fù)浣Y(jié)構(gòu)進(jìn)行連接,包括環(huán)形、樹形及網(wǎng)狀等多種拓?fù)浣Y(jié)構(gòu)。其所發(fā)送的數(shù)據(jù)包根據(jù)其網(wǎng)絡(luò)地址完成具體路由過程。其中以太網(wǎng)的IP地址是其網(wǎng)絡(luò)地址,RapidIO的destID是其網(wǎng)絡(luò)地址。系統(tǒng)擴(kuò)展在RapidIO和以太網(wǎng)中不受任何約束。然而,PCIe則與之不同,PCIe在支持單個根聯(lián)合體的樹狀結(jié)構(gòu)(即Root Complex結(jié)構(gòu)),其擴(kuò)展則依靠PCIe橋片來實現(xiàn),一個PCIe層可以訪問另一個PCIe層。以太網(wǎng)、PCIe及RapidIO在誤碼檢測、提醒及恢復(fù)機(jī)制等方面具有相似的功能同時具有各自的特點(diǎn)。以太網(wǎng)與PCIe、RapidIO相比,誤碼檢測機(jī)制相對較慢,其時延要大很多。PCIe與RapidIO相比較,雖然都可以保證數(shù)據(jù)包的發(fā)送,但在誤碼條件下均會棄包來防止鏈路堵塞,PCIe的誤碼條件機(jī)制不可配置,當(dāng)鏈路需要在詢鏈時數(shù)據(jù)包通常會被丟棄。相反RapidIO的誤碼管理有很大的靈活性,允許對誤碼作出重新詢鏈的響應(yīng),當(dāng)誤碼發(fā)生時系統(tǒng)立即開始棄包或者保留包并允許堵塞的發(fā)生。
2.4邏輯層區(qū)別
以太網(wǎng)、PCIe及RapidIO在邏輯層方面存在著較大的差異。其中在所支持的語義方面的差異尤為明顯。PCIe數(shù)據(jù)包支持基于地址的讀寫語義,發(fā)起讀或者寫的實體必須知道系統(tǒng)的全局存儲器映射圖中的目的地址。PCIe同時也支持通過消息TLP的消息傳送,不過消息TLP只支持有限數(shù)量的功能,例如中斷和復(fù)位信號,這點(diǎn)與以太網(wǎng)及RapidIO消息包有很大的不同,以太網(wǎng)和RapidIO可用于進(jìn)程間通信。以太網(wǎng)協(xié)議只支持消息語義,在發(fā)送消息時發(fā)送者只需要知道接收地址。尋址機(jī)制一般是分層的,因此沒有哪個節(jié)點(diǎn)必須知道所有的地址,地址可能會改變。RapidIO同時支持讀/寫及消息語義,除了明顯的架構(gòu)優(yōu)勢和系統(tǒng)靈活性外,對讀/寫和消息處理的支持允許單路互連。在邏輯層方面RapidIO要比PCIe及以太網(wǎng)更簡單。在讀寫語義的效率方面,RapidIO和PCIe的效率明顯高于以太網(wǎng)的遠(yuǎn)程直接存儲器訪問(RDMA),RDMA協(xié)議建立在其它以太網(wǎng)協(xié)議上,比如TCP,其中每個數(shù)據(jù)包都需要大量的包頭開銷。與RapidIO讀/寫事務(wù)處理相比,RDMA在時延和帶寬方面消耗大。
以太網(wǎng)、PCIe和RapidIO都是基于相似的Serdes技術(shù),它們在使用可用帶寬方式及適用的專門領(lǐng)域上存在著差些。以太網(wǎng)適合地理上分散的具有長延時并且動態(tài)網(wǎng)絡(luò)配置的網(wǎng)絡(luò)系統(tǒng)。PCIe則能對單板上的分層總線結(jié)構(gòu)提供最理想的支持,PCIe為外圍設(shè)備到主機(jī)DMA的連通性提供高性能的的內(nèi)部互聯(lián),這兩種技術(shù)都可用于板上、板間和設(shè)備間的通信,而且在很多時候被用于同一系統(tǒng)。RapidIO是一種高性能的交叉開關(guān)內(nèi)部互聯(lián)技術(shù),具有與PCIe和以太網(wǎng)相似的功能,并且具有其他互聯(lián)技術(shù)無法達(dá)到的優(yōu)點(diǎn),能將這兩種互聯(lián)的優(yōu)勢結(jié)合到單個互聯(lián)中,并可顯著節(jié)省資源。RapidIO可以彌補(bǔ)以太網(wǎng)及PCIe總線的不足,RapidIO適用于高實時性、高可靠性的嵌入式系統(tǒng)設(shè)計中,PCIe由于其數(shù)據(jù)傳輸速率高、系統(tǒng)拓?fù)浜唵巍⒓夹g(shù)門檻低及設(shè)計成本低等特點(diǎn),則更適用一些對成本控制嚴(yán)格,對實時性、可靠性要求較低的嵌入式系統(tǒng)中。
參考文獻(xiàn)
[1] 廖寅龍.田澤.FC網(wǎng)絡(luò)通信中PCIe的接口的設(shè)計與實現(xiàn)[J],航空計算技術(shù)2010.
[2] 孟會.劉雪峰.PCI Express 總線技術(shù)分析[J],計算機(jī)工程,2006.
[3] 翟彥彬.蔣志焱.張保寧.大規(guī)模RapidIO協(xié)議交換的FPGA實現(xiàn)[J],現(xiàn)代雷達(dá),2011.
劉軍偉,中航工業(yè)西安航空計算技術(shù)研究所,工程師。
Comparative Study and Analysis of Multiple High Speed Serial Bus
Liu Junwei
(AVIC Computing Technique Research Institute;Xi’an;710065)
Abstract:For a new generation of non-embedded system and embedded system of Data transmission capacity needs to further improve,the high speed serial bus should be timely,high speed serial bus used most widely three is Ethernet bus,PCIe bus and RapidIO bus.Comparative analysis of principles and characteristics of Ethernet bus,PCIe bus and RapidIO bus,through the comparison of the difference,the hardware design for the selected appropriate high speed serial bus to provide some help.
Keywords:Ethernet;PCIe;RapidIO
作者簡介