袁文燕,鄭 玥,宋宇飛,王 凱,田進進,張俊杰
(上海大學(xué)通信與信息工程學(xué)院,上海 200072)
FPGA片間萬兆可靠通信的設(shè)計與實現(xiàn)
袁文燕,鄭 玥,宋宇飛,王 凱,田進進,張俊杰
(上海大學(xué)通信與信息工程學(xué)院,上海 200072)
隨著云計算技術(shù)的發(fā)展,采用FPGA作為協(xié)同加速成為其發(fā)展的一個趨勢,如何設(shè)計與實現(xiàn)FPGA片間的高速通信是該研究方向的一個熱點。研究了FPGA萬兆通信的物理層、MAC層的實現(xiàn)機制,在通信協(xié)議可靠傳輸方面實現(xiàn)了MAC層的流控以及錯誤包檢測功能。仿真以及實際平臺測試表明,該通信協(xié)議能夠?qū)崿F(xiàn)FPGA片間萬兆的線速通信。
云計算;FPGA;10 G MAC層;流控
云計算服務(wù)目前在互聯(lián)網(wǎng)上急速增長,其通過互聯(lián)網(wǎng)來提供動態(tài)易擴展的資源。隨著云計算的發(fā)展,對以太網(wǎng)的數(shù)據(jù)通信以及高性能計算也提出了更高的要求[1],而基于大規(guī)模的FPGA協(xié)同加速成為云計算服務(wù)的一種發(fā)展趨勢[2-3]。因此如何設(shè)計與實現(xiàn)多片F(xiàn)PGA之間的可靠通信成為云計算研究的一個熱點。文獻[4-5]對物理層和MAC層的接口進行了設(shè)計,實現(xiàn)了吞吐率達Gbit/s級的通信速率。文獻[6-7]設(shè)計了千兆以太網(wǎng)全雙工模式下的物理通信,包括Pause幀的收發(fā),還實現(xiàn)了數(shù)據(jù)包的校驗出錯重傳機制,但限于上層應(yīng)用,對Pause幀的實現(xiàn)機制沒有具體闡述。
文獻[8-9]基于Xilinx公司FPGA平臺,在分析如何實現(xiàn)萬兆以太網(wǎng)的CRC32糾錯以及接收控制策略、CRC編碼/校驗及與千兆以太網(wǎng)兼容等關(guān)鍵問題的基礎(chǔ)上,實現(xiàn)了萬兆以太網(wǎng)MAC層控制但缺乏具體的實現(xiàn)方案。文獻[10]采用自定義的的10 G MAC,設(shè)計與實現(xiàn)了以太包的調(diào)度策略。
上述研究沒有涉及萬兆MAC層的流控以及可靠傳輸。基于此本文提出一種通過利用Xilinx FPGA集成的萬兆MAC IP核以及XAUI IP核實現(xiàn)FPGA片間可靠通信的方法。
本文提出的互聯(lián)系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)由4片Xilinx公司的Virtex6系列的FPGA xc6vlx550t-2ff1759構(gòu)成。每2片F(xiàn)PGA之間都有4路高速雙向傳輸通道,每路運行速度均為3.125 Gbit/s,對外都有1路10 G/20 G的QSFP光通信接口,線路采用8B/10B編碼,因此FPGA之間的互聯(lián)通信速率為10 Gbit/s。可以通過該硬件實現(xiàn)多級FPGA的級聯(lián)通信。
圖1 互聯(lián)系統(tǒng)結(jié)構(gòu)
為了支持FPGA之間的萬兆通信,物理層采用Xilinx公司提供的XAUI IP,MAC層采用Xilinx公司的萬兆以太MAC IP實現(xiàn)傳輸協(xié)議的CRC32校驗碼的填充與檢測,如圖2所示。在MAC層之上增加了MAC控制模塊,該模塊通過FIFO接口簡化了應(yīng)用層的設(shè)計,并采用流量控制以及錯誤檢測功能實現(xiàn)數(shù)據(jù)的10 G線速可靠傳輸。
圖2 高速互聯(lián)接口結(jié)構(gòu)圖
XAUI IP核配合Xilinx的Rocket IO GTX實現(xiàn)XGMII總線與10 G物理通道的轉(zhuǎn)換[11]。GTX收發(fā)器實現(xiàn)高速串行收發(fā)器的數(shù)據(jù)緩沖、通道綁定、接收端時鐘恢復(fù)以及發(fā)送預(yù)加重等功能[12]。XAUI IP核的XGMII總線包括32位的雙速率和64位的單速率接口,由于本文的XGMII總線在FPGA內(nèi)部,因此采用單速率的XGMII總線接口,系統(tǒng)工作時鐘頻率為156.25 MHz。
萬兆MAC核是一個單速,全雙工10 Gbit/s的以太網(wǎng)媒體控制器,實現(xiàn)IEEE802.3ae萬兆以太網(wǎng)數(shù)據(jù)的前導(dǎo)碼過濾與增加、數(shù)據(jù)4 byte CRC32校驗碼的填充與驗證。支持的以太數(shù)據(jù)幀長最小為64 byte,最大為1 518 byte(可以支持Jumbo frame)。其內(nèi)部結(jié)構(gòu)包括發(fā)送、接收引擎,流量控制模塊,管理接口和XGMII接口,通過XGMII接口能夠很方便地連接到XAUI IP核[13]。
發(fā)送端在傳輸數(shù)據(jù)之前,MAC層會先發(fā)送7 byte的同步碼和1 byte的幀首定界符,并在1幀傳送結(jié)束時填充4 byte的CRC32校驗碼,如果數(shù)據(jù)長度小于46 byte,則會自動在數(shù)據(jù)字段填充PAD字符,即補0。在接收端,MAC層去掉前導(dǎo)碼和幀首定界符,并對幀進行CRC32校驗。如果校驗正確則向上層發(fā)送收到正確幀(rx_good_frame)信號,否則發(fā)送收到錯誤幀(rx_bad_frame)信號。MAC層還具有流控的功能,實現(xiàn)收發(fā)雙方的通信速率匹配。
Xilinx提供的萬兆MAC控制器對接收到的錯誤數(shù)據(jù)并不進行處理,僅僅給出數(shù)據(jù)CRC32校驗是否正確。為了提供物理層的可靠傳輸,需要在此基礎(chǔ)上增加接收錯誤幀過濾模塊,如果接收到的是校驗錯誤幀,則需過濾掉該幀。本文采用基于雙端口數(shù)據(jù)RAM以及幀信息FIFO的存儲機制實現(xiàn)錯誤包的過濾,如圖3所示。接收存儲控制模塊若檢測到萬兆MAC IP接收端口收到的數(shù)據(jù)rx_valid(rx_data_valid_o!=8’h0)有效,則把該數(shù)據(jù)緩存到雙口數(shù)據(jù)RAM中去。然后檢測rx_valid是否小于8個時鐘節(jié)拍,如果小于8個時鐘節(jié)拍,則不用判斷rx_good_frame以及rx_bad_frame,因為此時接收到的幀肯定錯誤(小于萬兆以太協(xié)議的最小64 byte),回到IDLE狀態(tài)。如果rx_valid持續(xù)有效時鐘大于8個時鐘節(jié)拍,則在幀尾檢測是否有rx_good_frame或者rx_bad_frame;如果是bad幀,不作處理回到IDLE狀態(tài),如果是good幀,則將該幀存放RAM的起始地址和幀長信息寫入幀信息FIFO,并返回IDLE狀態(tài)。如果在幀尾沒有檢測到good或者bad信息,則等待;若等到good信息則把該幀長以及起始地址寫入幀信息FIFO,并返回IDLE狀態(tài),若等到bad信息則直接回到IDLE狀態(tài),其狀態(tài)機如圖4所示。
圖3 接收錯誤幀過濾圖
圖4 過濾模塊狀態(tài)機
讀取控制模塊若檢測到幀信息FIFO有數(shù)據(jù),則表示雙口數(shù)據(jù)RAM中已經(jīng)存儲了正確的以太幀,從幀信息FIFO中獲取接收到幀的地址與長度,并把接收到的數(shù)據(jù)存儲到用戶控制端口的接收FIFO中。由于采用存儲校驗機制,因此接收端相對發(fā)送端有一定的延遲,最大延遲為最長以太幀的存儲時間。
圖5 Pause幀傳輸鏈路延時
為了解決發(fā)送FPGA與接收FPGA通信速率的不匹配,需要在MAC層增加流控功能,即當(dāng)接收FIFO裕量小于預(yù)設(shè)的安全值,向發(fā)送方發(fā)送暫停(Pause)幀,告知發(fā)送方停止發(fā)送數(shù)據(jù)一段時間。發(fā)送方接收到暫停幀以后,停止數(shù)據(jù)的發(fā)送,若暫停期間沒有接收到新的Pause幀,則繼續(xù)本次數(shù)據(jù)通信,若暫停期間接收到新的暫停幀,則從當(dāng)前時刻增加新的暫停時間。Xilinx的萬兆MAC提供了流控功能,如圖2所示。當(dāng)萬兆MAC IP核檢測到暫停請求(Pause_req)為1時,等待當(dāng)前發(fā)送的以太幀傳輸完畢,然后把暫停時間Pause_val(16位寬)值封裝成標(biāo)準(zhǔn)IEEE802.3av Pause幀,并通過XAUI IP核把Pause幀發(fā)送出去。暫停時間為Pause_val×51.2 ns,最長為3.35 ms。根據(jù)本文的實現(xiàn)方案,從 Pause幀發(fā)出到接收方收到該幀并對其響應(yīng),需要經(jīng)歷多級鏈路延時,如圖5所示。其中當(dāng)前幀發(fā)送等待時間表示當(dāng)系統(tǒng)產(chǎn)生Pause_req時,如果萬兆MAC當(dāng)前正在發(fā)送以太幀,則需要等待該幀發(fā)送完畢的時間,因此Tsnd_current_delay等于最大以太幀長傳輸?shù)臅r間也即 1.2 μs。Tsnd_create_pau,Tsnd_xaui,Trcv_xaui與萬兆MAC IP以及XAUI IP核的特性相關(guān),其中Tsnd_create_pau表示從萬兆MAC接收到Pause_req有效到把Pause幀傳輸?shù)絏AUI IP核的延遲時間,Tsnd_xaui與Trcv_xaui表示從XGMII總線到高速串行鏈路之間的延時,Trcv_pau表示萬兆MAC接收到Pause幀到內(nèi)部邏輯處理該幀的時間。Tsnd_create_pau,Tsnd_xaui與Trcv_xaui以及Trcv_pau通過萬兆MAC以及XAUI IP的仿真即可得到。圖6是萬兆以太網(wǎng)點對點的Modelsim仿真,從該圖可以看出Tsnd_create_pau的延時為19 個時鐘節(jié)拍,即0.12 μs,Tsnd_xaui與Trcv_xaui延時為27個時鐘也即0.17 μs,Trcv_pau的延時為14個時鐘節(jié)拍也即0.09 μs。接收響應(yīng)延時Trcv_paus_res為當(dāng)萬兆MAC IP核接收到Pause幀以后,需要等待當(dāng)前以太幀發(fā)送完畢的延時,因此Trcv_paus_res為以太幀最長幀傳輸?shù)臅r間即1.2 μs。
圖6 Pause幀從發(fā)送到接收延遲仿真(截圖)
因此Pause幀從發(fā)送到接收響應(yīng)的Tpause_response延時為通道延時Tchannel+2.8 μs。在本文的硬件平臺中,F(xiàn)PGA之間的物理通道為直接連接,因此Tchannel為0。在Tpause_response期間,數(shù)據(jù)發(fā)送端仍有可能在10 G線速發(fā)送數(shù)據(jù),因此若要保證接收FIFO緩沖區(qū)不溢出,接收FIFO必須在裕量大于Tpause_response×8/6.4=3 500 byte的時候發(fā)送Pause幀。故接收緩沖區(qū)FIFO的深度必須大于512(寬度為8 byte)。
圖7 流量控制測試(截圖)
在Xilinx公司的ISE開發(fā)環(huán)境中進行代碼綜合、映射及布局布線,綜合結(jié)果測試表明,本設(shè)計的工作頻率可以達到156.25 MHz。通過快寫慢讀操作來驗證流控模塊,如圖7所示。最終實驗結(jié)果表明能正常過濾錯誤以太包,并確保通信速率達到了10 Gbit/s。用復(fù)位來模擬掉電操作,最終測試結(jié)果表明該系統(tǒng)在正常傳輸過程中若發(fā)送端或接收端突然掉電,上電后雙方仍能重新正常通信。
本文實現(xiàn)了萬兆MAC層發(fā)送、接收、流控以及錯誤幀過濾的設(shè)計。并且使用Xilinx的Virtex-6系列FPGA器件進行布局布線后進行板級測試驗證。結(jié)果表明,系統(tǒng)可以在156.25 MHz時鐘頻率正常工作,接收和發(fā)送帶寬均可接近10 Gbit/s。但隨著社會的發(fā)展,人們對通信速率的要求越來越高,在不久的將來,10 Gbit/s的通信速率將不能滿足人們的需求,所以對高速互聯(lián)的研究將永無止境,下一步可以提高互聯(lián)通信速率,進一步研究20 Gbit/s、40 Gbit/s或更高速率的互聯(lián)結(jié)構(gòu)。
:
[1]王文彬,肖玉杰,龍明.基于云移動技術(shù)的應(yīng)急視頻指揮系統(tǒng)[J].電視技術(shù),2013,37(1):161-164.
[2]YU J B,ZHU Y X,XIA L,et al.Grounding high efficiency cloud computing architecture:HW-SW co-design and implementation of a standalone web server on FPGA[C]//Proc.Applications of Digital Information and Web Technologies(ICADIWT).[S.l.]:IEEE Press,2011:124-129.
[3]NIVEDITA N,DAKHOLE P K,ZODE P P.Embedded web server on Nios II embedded FPGA platform[C]//Proc.Second International Conference on Emerging Trends in Engineering and Technology.[S.l.]:IEEE Press,2009:372-377.
[4]ZHANG Q ,KANG G X.MAC-PHY interface design and implementation based on PLB for Gbps transmission system[C]//Proc.The 8th Annual IEEE Consumer Communications and Networking Conference-Wireless Consumer Communication and Networking,Conference Publication.[S.l.]:IEEE Press,2011:674-678.
[5]WANG Guixin,KANG Guixia,WANG Hao.Design and FPGA implementation of MAC-PHY interface based on PCI express for next-generation WLANs[C]//Proc.8th International Conference on Wireless Communications,Networking and Mobile Computing(WiCOM).[S.l.]:IEEE Press,2012:1-4.
[6]丁世勇,譚文文,李桂英.基于FPGA的以太網(wǎng)MAC控制器的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2011,19(21):163-165.
[7]張克功,李和平,高鑫.基于千兆以太網(wǎng)的雷達數(shù)據(jù)可靠傳輸系統(tǒng)設(shè)計[J].自動化與儀表,2012(6):26-31.
[8]曹政,李磊,陳明宇.萬兆以太網(wǎng)MAC層控制器設(shè)計與實現(xiàn)[J].小型微型計算機系統(tǒng),2007,28(6):974-978.
[9]張友亮,劉志軍,馬成海,等.萬兆以太網(wǎng)MAC層控制器的FPGA設(shè)計與實現(xiàn)[J].計算機工程與應(yīng)用,2012,48(6):77-79.
[10]ARENAS R A,F(xiàn)INOCHIETTO J M,ROCHA L M.Design and implementation of packet switching capabilities on 10GbE MAC core[C]//Proc.Programmable Logic Conference(SPL).[S.l.]:IEEE Press,2010:141-146.
[11]馬騰飛,吳志勇,李增.基于XAUI協(xié)議的10Gb/s光纖通信系統(tǒng)[J].計算機工程,2010,36(17):264-265.
[12]LogicCORE IP 10-Gigabit Ethernet MAC v10.2 User Guide[EB/OL].[2013-05-10].http://www.xilinx.com.
[13]韓盛杰,張俊杰,林如儉.10G EPON的ONU硬件設(shè)計與實現(xiàn)[J].光通信技術(shù),2009(5):5-7.
Design and Implementation of 10-Gbit/s Reliable Intra-FPGA Communication
YUAN Wenyan,ZHENG Yue ,SONG Yufei,WANG Kai,TIAN Jinjin,ZHANG Junjie
(School of Communication and Information Engineering,Shanghai University,Shanghai 200072)
FPGA have already been successfully employed since the rapid growth of cloud computing,so that many researches focus on the reliable intra-FPGA communication .This paper adopts the bad frame filter technique and flow control technique to realize the reliable multi-FPGA communication after introducing the PHY and MAC layer design of 10 G Ethernet.The simulation and experimental results show that communication speed can reach 10 Gbit/s.
cloud computing;FPGA;10 G MAC;flow control
TN919.3
A
【本文獻信息】袁文燕,鄭玥,宋宇飛,等.FPGA片間萬兆可靠通信的設(shè)計與實現(xiàn)[J].電視技術(shù),2014,38(1).
國家高技術(shù)研究發(fā)展計劃863項目(2009AA012201)
袁文燕(1981— ),女,碩士,教師,主研數(shù)據(jù)高速傳輸。
責(zé)任編輯:魏雨博
2013-05-11