鄭 建,徐 海
(重慶金美通信有限責(zé)任公司,重慶400030)
Serial Rapid IO橋接以太網(wǎng)設(shè)計(jì)和實(shí)現(xiàn)
鄭 建,徐 海
(重慶金美通信有限責(zé)任公司,重慶400030)
利用FPGA的SRIO核自主實(shí)現(xiàn)了RapidIO規(guī)范所定義的傳輸層和邏輯層的11類報(bào)文收發(fā),并完成了11類報(bào)文和以太網(wǎng)報(bào)文相互的分片和重組功能,最終實(shí)現(xiàn)了千兆以太網(wǎng)和SRIO的高性能橋接。并通過(guò)了邏輯仿真和實(shí)際電腦ping包測(cè)試。
現(xiàn)場(chǎng)可編程邏輯陣列;串行Rapid IO;以太網(wǎng);橋接;高性能
RapidIO技術(shù)最初是由Freescale和Mercury共同研發(fā)的一項(xiàng)互聯(lián)技術(shù),最初是為了用于處理器之間的互聯(lián)。隨著互聯(lián)技術(shù)的發(fā)展,RapidIO技術(shù)漸漸成為通信、嵌入式系統(tǒng)內(nèi)芯片與芯片之間互聯(lián)的新方法。串行RapidIO以其極少的信號(hào)走線來(lái)降低信號(hào)干擾,通過(guò)節(jié)約引腳資源和完善的傳輸協(xié)議來(lái)保證傳輸正確性這些優(yōu)點(diǎn)在嵌入式互聯(lián)和背板互聯(lián)的設(shè)計(jì)中有著廣泛運(yùn)用。
然而實(shí)際運(yùn)用的需求千差萬(wàn)別,用戶可能需自主實(shí)現(xiàn)傳輸層和邏輯層的部分功能,并實(shí)現(xiàn)上層數(shù)據(jù)的處理以及和其他類型接口的橋接。
2.1 RapidIO技術(shù)概述
RapidIO是新型的傳輸協(xié)議,該協(xié)議基于點(diǎn)對(duì)點(diǎn)分組包交換技術(shù)。RapidIO包含了三層結(jié)構(gòu):物理層、傳輸層以及邏輯層。
(1)物理層協(xié)議
物理層位于Rapid IO協(xié)議分層的最底層,主要完成包括器件接口的細(xì)節(jié)、包傳輸機(jī)制、流量控制機(jī)制、錯(cuò)誤管理機(jī)制和電器特性等。
(2)傳輸層
傳輸層位于Rapid IO協(xié)議分層的中間層,主要定義了Rapid IO地址空間和設(shè)備之間包交換的路由信息。
(3)邏輯層
邏輯層位于Rapid IO協(xié)議分層的最高層,定義了Rapid IO協(xié)議所有類型的包格式,為設(shè)備完成事務(wù)傳輸提供完備的信息。RapidIO主要支持IO事務(wù)和消息事務(wù)兩種操作。
RapidIO事務(wù)操作是基于請(qǐng)求和響應(yīng)的,該流程如圖1所示。
在請(qǐng)求端發(fā)出請(qǐng)求事務(wù)后,該請(qǐng)求經(jīng)過(guò)交換結(jié)構(gòu)單元送往請(qǐng)求的目的地。目的地在收到請(qǐng)求事務(wù)后對(duì)該事務(wù)作出響應(yīng)應(yīng)答。響應(yīng)事務(wù)經(jīng)過(guò)交換結(jié)構(gòu)送往發(fā)出請(qǐng)求事務(wù)的設(shè)備,此時(shí)一次操作才算完成。請(qǐng)求發(fā)送到接收響應(yīng)中間存在著各個(gè)層級(jí)之間的檢驗(yàn),包括CRC、長(zhǎng)度等校驗(yàn)。如果出錯(cuò),雖然操作完成但是操作失敗,目的地會(huì)返回一個(gè)錯(cuò)誤指示響應(yīng)。

圖1 Rapid IO事務(wù)操作流程
2.2 分片重組
Altera的CycloneⅣ芯片集成了串行RapidIO核。利用該IP核提供的Avalon_st接口可以實(shí)現(xiàn)消息類包的傳輸,并自主實(shí)現(xiàn)傳輸層和邏輯層處理。傳輸層字段主要定義了包類型和源、目的ID,處理相對(duì)簡(jiǎn)單,不作為重點(diǎn)講述。邏輯層主要定義了消息長(zhǎng)度、標(biāo)準(zhǔn)長(zhǎng)度、信件、信箱以及消息段等分片和重組的關(guān)鍵信息,具體位置如圖2所示。

圖2 11類消息請(qǐng)求包格式
消息長(zhǎng)度表示該事務(wù)共被分成了幾片,標(biāo)準(zhǔn)長(zhǎng)度為除最后一片之外每一片的長(zhǎng)度,信件、信箱標(biāo)明該事務(wù)片段屬于哪個(gè)郵箱和那個(gè)信件,消息段標(biāo)明該片段為事務(wù)所有分片中的某一片。信件、信箱、消息段唯一確定該片段的歸屬,據(jù)此即可完成片段的定位。
利用FPGA完成11類報(bào)文的分片重組功能可以達(dá)到線速處理能力,并可方便添加用戶自定義功能和實(shí)現(xiàn)對(duì)其他接口的橋接,這也為以后實(shí)現(xiàn)復(fù)雜交換系統(tǒng)打下堅(jiān)實(shí)基礎(chǔ)。
FPGA處理框圖如圖3所示,圖中SGMII core和GMAC、rxFIFO、txFIFO組成千兆以太網(wǎng)收發(fā)系統(tǒng)。其中GMAC采用自主邏輯實(shí)現(xiàn),完成以太網(wǎng)幀的收發(fā),由于不是重點(diǎn),具體細(xì)節(jié)不再贅述。Package_Div完成以太網(wǎng)幀到Rapid IO幀的分片功能,相反的Package_comb模塊完成RapidIO幀到以太網(wǎng)幀的重組功能。Avalon_st模塊完成RapidIO幀的緩存及收發(fā)。FPGA提供的SRIO核對(duì)內(nèi)提供Avalon_st接口,對(duì)外為serdes差分信號(hào)。

圖3 FPGA設(shè)計(jì)框圖
采用SRIO核的Avalon_st接口完成11類包的收發(fā)。使用該接口時(shí)SRIO核只提供物理層和部分傳輸層功能,邏輯層功能需用戶實(shí)現(xiàn),所以傳輸過(guò)程中需要自主完成基于請(qǐng)求響應(yīng)事務(wù)的全部邏輯功能。值得注意的是在接收請(qǐng)求事務(wù)時(shí)給出的響應(yīng)事務(wù)的優(yōu)先級(jí)需比該請(qǐng)求事務(wù)的優(yōu)先級(jí)高一級(jí);而在發(fā)送請(qǐng)求完成后,對(duì)接收到的響應(yīng)事務(wù)檢查確保正確之后即可丟棄。
在完成基本Rapid IO幀收發(fā)的基礎(chǔ)上,還需進(jìn)一步完成其對(duì)以太網(wǎng)幀的橋接工作。由于11類報(bào)文規(guī)定數(shù)據(jù)的最大凈荷長(zhǎng)度為256字節(jié),如需傳送超過(guò)256字節(jié)的以太網(wǎng)報(bào)文就必須完成對(duì)應(yīng)的分片和重組功能。分片即是對(duì)超長(zhǎng)的以太網(wǎng)幀按照標(biāo)準(zhǔn)長(zhǎng)度的定義劃分為若干片,再將每個(gè)分片作為11類報(bào)文的凈荷并為其添加幀頭部信息,然后按照Avalon_st接口的發(fā)送數(shù)據(jù)端的時(shí)序發(fā)送出去。重組是分片的反方向操作,即接收端將同屬某一事務(wù)的各個(gè)片段按照其消息段號(hào)進(jìn)行有序組裝。在過(guò)程中需刪除所有的Rapid IO幀頭部信息,并將重組后的長(zhǎng)度信息附在自定義頭部,方便下級(jí)模塊使用。圖4為分片功能波形,可以看出該功能模塊將一個(gè)較長(zhǎng)以太網(wǎng)幀分三次讀出,從而完成凈荷的分片工作;并在往下級(jí)傳時(shí)添加幀頭部信息,以完成完整的Rapid IO幀的組裝功能。

圖4 分片功能波形
圖5為重組功能波形,可以看出該功能模塊在收到11類報(bào)文后經(jīng)檢查幀頭信息后將凈荷送往下級(jí)FIFO,只有在收到該事務(wù)的結(jié)束幀后才會(huì)給出eop結(jié)束標(biāo)志。圖中還可以看到每收到一個(gè)11類請(qǐng)求事務(wù)幀,均由硬件向發(fā)送方回復(fù)一個(gè)響應(yīng)事務(wù)幀。

圖5 重組功能波形
實(shí)驗(yàn)硬件連接關(guān)系如圖6所示,F(xiàn)PGA采用ALTERA公司的EP4CGX75CF23I7芯片,該FPGA對(duì)外提供4個(gè)收發(fā)器;采用一個(gè)收發(fā)器實(shí)現(xiàn)SGMII,外部接88E1111PHY芯片即可通過(guò)以太網(wǎng)與電腦通信;采用另一個(gè)收發(fā)器實(shí)現(xiàn)SRIO,通過(guò)SRIO接口的直接與P2020模塊的相連即可和P2020通信。這樣便可形成電腦?以太網(wǎng)?FPGA?SRIO?P2020模塊的雙向通信鏈路。

圖6 設(shè)計(jì)場(chǎng)景框圖
將PC機(jī)端的IP地址設(shè)置為與P2020同網(wǎng)段后,利用P2020的控制臺(tái)以及電腦進(jìn)行互相ping包測(cè)試,具體測(cè)試結(jié)果如表1所示。

表1 實(shí)驗(yàn)測(cè)試結(jié)果
從實(shí)驗(yàn)結(jié)果可以看出,對(duì)于各種長(zhǎng)度的以太網(wǎng)幀均能正確處理,并且實(shí)現(xiàn)零掉包率。需注意對(duì)于大于1518字節(jié)的以太網(wǎng)幀,首先由數(shù)據(jù)發(fā)起端的協(xié)議棧進(jìn)行分片,所以FPGA只處理小于1518字節(jié)的以太網(wǎng)幀即可。但是為了支持以太網(wǎng)巨幀模式,將分片和重組的最大幀長(zhǎng)設(shè)計(jì)為4096,以應(yīng)對(duì)將來(lái)的潛在需求。
下一步研究:在實(shí)現(xiàn)更多接口和SRIO接口橋接的基礎(chǔ)上,進(jìn)一步完成這些接口相互間的數(shù)據(jù)交換以及QOS處理等功能。
利用了FPGA可編程的高度靈活性,實(shí)現(xiàn)了Rapid IO規(guī)定的11類消息事務(wù)的收發(fā),并完成了傳輸以太網(wǎng)幀所必須的分片和重組功能,從而實(shí)現(xiàn)了SRIO到以太網(wǎng)的橋接功能,并達(dá)到了線速處理性能和零掉包率的目標(biāo)。
[1] Sam Fuller.RapidIO:The embedded system interconnection[M].王勇,林粵偉,吳冰冰,等譯.北京:電子工業(yè)出版社,2006.
[2] 林玲.RapidIO在多處理器系統(tǒng)互連中的應(yīng)用[J].計(jì)算機(jī)工程,2006,32(4):244-246.
[3] 聶新義,孫柯柯,馬克杰.PCI轉(zhuǎn)RapidIO橋接的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(3):246-248.
[4] Altera Corporation.Cyclone IV Device Handbook[EB/OL].http://www.Altera.com.cn.
[5] Altera Corporation.RapidIO MegaCore Function User Guide[EB/OL].http://www.altera.com.cn.
Design and Im plementation of Serial Rapid IO Bridging to Ethernet
Zheng Jian,Xu Hai
(Chongqing Jinmei Communication Co.,Ltd.,Chongqing 400030,China)
The self-design is conducted,by the Rapid IO IPcore embedded in FPGA,for the type 11 packages transceiving through transport layer and logic layer.The function of combining and splitting for the packages between type 11 and Ethernet is completed.At last,the bridge between Gigabit Ethernet and SRIO,with high performance,is implemented,and the test of logic simulation and ping testwith PC computer are passed.
FPGA;SRIO;Ethernet;Bridge;High performance
10.3969/j.issn.1002-2279.2015.01.006
TP302.2
A
1002-2279(2015)01-0016-03
鄭建(1982-),男,四川南充人,助理工程師,主研方向:FPGA邏輯設(shè)計(jì)設(shè)計(jì)及應(yīng)用。
2014-07-01