安超群 李飛
作者簡介:安超群(1986— ),女,湖北襄陽人,工程師,碩士;研究方向:模擬電路設(shè)計,集成電路設(shè)計,數(shù)字信號處理,可靠性設(shè)計等。
摘要:針對基于軟件設(shè)計的萬兆以太網(wǎng)MAC層無法滿足高速數(shù)據(jù)實時傳輸?shù)陌l(fā)展要求,文章提出了一種基于FPGA硬件平臺的萬兆以太網(wǎng)MAC層協(xié)議的設(shè)計與實現(xiàn)方案。該設(shè)計方案主要利用FPGA的并行處理能力,通過Verilog硬件描述語言完成萬兆以太網(wǎng)MAC層數(shù)據(jù)實時處理的硬件設(shè)計,實現(xiàn)大帶寬、低延時和高可靠性的萬兆以太網(wǎng)MAC層的數(shù)據(jù)收發(fā)功能。試驗驗證表明:該設(shè)計方案實現(xiàn)了萬兆以太網(wǎng)高速率的數(shù)據(jù)傳輸,具有低延時、高性能、高可靠性與簡易性等優(yōu)點。
關(guān)鍵詞:萬兆以太網(wǎng);MAC控制器;并行CRC校驗;并行數(shù)據(jù)處理
中圖分類號:TP311? 文獻標志碼:A
0? 引言
以太網(wǎng)(Ethernet)是一種計算機局域網(wǎng)技術(shù)。IEEE制定的IEEE Std 802.3協(xié)議,規(guī)定了包括MAC層的協(xié)議內(nèi)容、電信號以及物理層的連線。從1983年第一次發(fā)布IEEE Std 802.3協(xié)議至今,以太網(wǎng)經(jīng)過了40年的發(fā)展,傳輸速率從10 Mbps、100Mbps提升到1 000Mbps,目前已經(jīng)達到了10 Gbps[1]。萬兆以太網(wǎng)是也稱10 G以太網(wǎng)(10 Gigabit Ethernet),是在IEEE802.3ae協(xié)議中提出的以太網(wǎng)標準,該標準規(guī)范中規(guī)定使用光纖傳輸、傳輸帶寬高達10 Gbps、傳輸距離最遠能達到40km [2],經(jīng)過不斷的升級與擴充,萬兆以太網(wǎng)以其速率高、兼容性好、穩(wěn)定性強的優(yōu)點逐漸成為以太網(wǎng)的核心設(shè)備[3],服務(wù)于工業(yè)自動化、5G網(wǎng)絡(luò)傳輸和智慧城市建設(shè)等行業(yè)。
大多數(shù)系統(tǒng)設(shè)計中,10Mbps、100Mbps和1 000Mbps以太網(wǎng)協(xié)議除了物理層以外的協(xié)議層均以軟件的方式實現(xiàn),甚至10 Gbps以太網(wǎng)協(xié)議使用高性能CUP或服務(wù)器實現(xiàn)?;诖刑幚淼能浖軜?gòu)難以并行處理以太網(wǎng)協(xié)議中的各種事務(wù),同時CPU還要優(yōu)先響應(yīng)中斷事務(wù),隨著技術(shù)的發(fā)展,CPU的處理頻率已經(jīng)大幅提高,同時可以用多核CPU來處理多任務(wù)。但是,以太網(wǎng)速度的提升遠大于CPU處理性能的提升,使得CPU能夠用來處理單個網(wǎng)絡(luò)數(shù)據(jù)包的時間減少。如果CPU不能及時處理網(wǎng)絡(luò)數(shù)據(jù)包,那必然會影響網(wǎng)絡(luò)傳輸?shù)难訒r和吞吐量[4]。因此,基于軟件控制實現(xiàn)的10 Gbps以太網(wǎng)協(xié)議數(shù)據(jù)傳輸效率較低,難以滿足大帶寬、低延時和高可靠性的數(shù)據(jù)傳輸。根據(jù)高速數(shù)據(jù)傳輸?shù)奶幚硪?,結(jié)合以太網(wǎng)的傳輸協(xié)議,引入一種并行的以太網(wǎng)協(xié)議處理方式是解決大帶寬、高速率數(shù)據(jù)處理需求和軟件計算能力有限之間矛盾的有效方法。
1? 萬兆以太網(wǎng)通信協(xié)議架構(gòu)
1.1? 萬兆以太網(wǎng)各協(xié)議層的組成
基于IEEE Std 802.3標準的萬兆以太網(wǎng)協(xié)議架構(gòu)如圖1所示,其架構(gòu)主要包括:應(yīng)用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網(wǎng)絡(luò)層(Network)、數(shù)據(jù)鏈路層(Data_link)和物理層(Physical)。其中,數(shù)據(jù)鏈路層提供物理地址尋址,讓成幀的數(shù)據(jù)按一定規(guī)則沿鏈路從一個節(jié)點傳到另一個節(jié)點,負責發(fā)送一個分段內(nèi)的數(shù)據(jù),常見的鏈路層產(chǎn)品就是網(wǎng)卡、網(wǎng)橋等[5];物理層主要規(guī)范了數(shù)據(jù)傳輸?shù)拿浇椤⑽锢磉B接及光電特性能內(nèi)容,保證光電信號的可靠傳輸。
1.2? 萬兆以太網(wǎng)MAC層特性
萬兆以太網(wǎng)協(xié)議標準中規(guī)定,整個數(shù)據(jù)通信過程系統(tǒng)的物理層(Physical)通信速率必須具備10 Gbps帶寬的數(shù)據(jù)傳輸能力。根據(jù)協(xié)議規(guī)定,數(shù)據(jù)在物理層的傳輸速率是比較固定的,除了受到器件的物理特性的影響外,設(shè)計者在這一層級的優(yōu)化設(shè)計沒有太大的空間。應(yīng)用層(Application)、表示層(Presentation)和會話層(Session)的使用主要涉及具體的業(yè)務(wù),這些層級功能主要靠軟件實現(xiàn)。在協(xié)議中傳輸層(Transport)、網(wǎng)絡(luò)層(Network)和數(shù)據(jù)鏈路層(Data_link)事務(wù)定義明確,因此具有一定的提速空間。本文主要重點優(yōu)化設(shè)計數(shù)據(jù)鏈路層的數(shù)據(jù)處理速率。
由圖1可知,數(shù)據(jù)鏈路層的數(shù)據(jù)處理過程主要是將用戶數(shù)據(jù)進行MAC層協(xié)議的封裝,MAC層協(xié)議的封裝主要涉及傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報協(xié)議(UDP)。TCP 的傳輸速度慢,效率低,確認機制、重傳機制、擁塞控制等都會占用大量的時間[6]。UDP協(xié)議具備傳輸速率塊、效率高等優(yōu)點,如果能夠研究出有效可靠的數(shù)據(jù)處理流程保證UDP協(xié)議數(shù)據(jù)傳輸?shù)目煽啃?,使用UDP協(xié)議傳輸數(shù)據(jù)將大大提高數(shù)據(jù)傳輸系統(tǒng)的數(shù)據(jù)處理速率。
2? 基于FPGA的萬兆以太網(wǎng)高效率MAC層設(shè)計與實現(xiàn)
2.1? 高效率低延時萬兆以太網(wǎng)MAC架構(gòu)設(shè)計
根據(jù)前面分析,應(yīng)用FPGA的并行處理能力實現(xiàn)萬兆以太網(wǎng)高效率的數(shù)據(jù)鏈路層,并對其可靠性進行驗證,可實現(xiàn)高效率的UDP協(xié)議數(shù)據(jù)傳輸?;贔PGA的萬兆以太網(wǎng)MAC層架構(gòu)如圖2所示。用戶邏輯使用AXI4協(xié)議進行數(shù)據(jù)交互,MAC層模塊內(nèi)使用異步FIFO對數(shù)據(jù)進行跨時鐘域處理,通過參數(shù)配置模塊對MAC層模塊進行本地MAC地址、本地IP地址、ARP控制參數(shù)和端口號等參數(shù)配置。在發(fā)送通路中,MAC協(xié)議封裝模塊將異步FIFO輸出的數(shù)據(jù)按UDP協(xié)議添加UDP包頭、IP包頭和MAC幀頭,將數(shù)據(jù)封裝成MAC幀,再將數(shù)據(jù)傳輸至FCS生成模塊生成CRC校驗數(shù)據(jù),最后將數(shù)據(jù)送至XGMII接口處理模塊進行處理發(fā)送。在MAC協(xié)議封裝模塊中,要同時響應(yīng)用戶數(shù)據(jù)和ARP報文數(shù)據(jù),其中ARP報文優(yōu)先級最高。在接收通路中,在接收前端先將XGMII結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成MAC幀,將MAC幀數(shù)據(jù)送至FCS校驗?zāi)K進行CRC校驗,數(shù)據(jù)校驗正確后再將數(shù)據(jù)送至MAC協(xié)議解析模塊進行處理,解析完成后按照接收的數(shù)據(jù)類型將數(shù)據(jù)傳至異步FIFO或者將信息傳至ARP報文處理模塊進行ARP應(yīng)答。
2.2? MAC層事務(wù)數(shù)據(jù)并行處理算法
根據(jù)圖2分析,MAC層數(shù)據(jù)處理算法流收發(fā)模塊相互獨立,處于全雙工工作狀態(tài)。同時,F(xiàn)CS模塊中CRC校驗和計算根據(jù)數(shù)據(jù)長度不同,分別設(shè)計了并行處理的64 bit、56 bit、48 bit、40 bit、32 bit、24 bit、16 bit和8 bitCRC校驗子模塊,最多只需要1個時鐘周期就能完成64 bit數(shù)據(jù)的校驗和幀尾不同長度字節(jié)數(shù)據(jù)的驗證,在一幀數(shù)據(jù)傳輸結(jié)束標準產(chǎn)生時能同步無延時地輸出校驗結(jié)構(gòu),很大程度提高了數(shù)據(jù)傳輸效率。在系統(tǒng)初始階段,MAC層模塊根據(jù)系統(tǒng)配置的參數(shù)向目標主機發(fā)送ARP報文請求,等待系統(tǒng)返回ARP幀獲取主機MAC地址。在MAC層模塊設(shè)計中,可通過參數(shù)配置設(shè)定ARP報文請求次數(shù),等待報文超時時間等參數(shù),目標主機發(fā)送ARP報文請求時,MAC層模塊將優(yōu)先回復ARP報文。
在整個MAC層模塊中,UDP協(xié)議的封裝和解析,IP層協(xié)議的封裝和解析,MAC層的協(xié)議的封裝和解析大都直接調(diào)用系統(tǒng)預(yù)先配置的參數(shù)封裝和完成解析,這樣處理大大提高了數(shù)據(jù)的處理效率。IP校驗和計算和校驗結(jié)果均能實時地計算完成,ARP報文處理、ICMP報文處理和數(shù)據(jù)幀處理均能實時地響應(yīng),降低了數(shù)據(jù)傳輸延時,提高了系統(tǒng)性能。
3? 系統(tǒng)實現(xiàn)及試驗驗證
根據(jù)前面分析的系統(tǒng)架構(gòu)和算法設(shè)計,萬兆以太網(wǎng)MAC層FPGA實現(xiàn)的RTL原理如圖3所示,整個系統(tǒng)設(shè)計運用自頂向下的設(shè)計思想。發(fā)送通道主要由u_xge_mac_fcs_add、u_xge_mac_tx_pre和u_mac_user_tx 3個主模塊組成,3個主模塊內(nèi)均有是實現(xiàn)算法設(shè)計功能要求的相應(yīng)的子模塊。接收通道主要由u_xge_mac_fcs_rmv、u_xge_mac_rx_pre和u_mac_user_rx 3個主模塊組成。與發(fā)送通道相同,3個主模塊內(nèi)均有滿足算法設(shè)計功能要求的相應(yīng)的子模塊。
針對整個萬兆以太網(wǎng)系統(tǒng),設(shè)計測試模塊進行數(shù)據(jù)回環(huán)測試,測試系統(tǒng)由數(shù)據(jù)產(chǎn)生模塊、數(shù)據(jù)校驗統(tǒng)計模塊和debug參數(shù)管理控制模塊組成。按照搭建的測試平臺,利用FPGA內(nèi)部的ILA在線邏輯分析儀對系統(tǒng)測試分析,測試系統(tǒng)RTL如圖4所示。
整個系統(tǒng)對相同的一幀數(shù)據(jù)進行了10 000次的回環(huán)測試,錯誤統(tǒng)計結(jié)果為0,由此驗證了整個UDP協(xié)議的MAC層數(shù)據(jù)傳輸?shù)目煽啃?,幀頭處理延時為91個時鐘周期,除去幀頭延時數(shù)據(jù)發(fā)送延時為2個時鐘周期。根據(jù)試驗結(jié)果,應(yīng)用該方法設(shè)計的萬兆以太網(wǎng)MAC層數(shù)據(jù)傳輸效率顯著提高。
4? 結(jié)語
本文介紹了一種基于FPGA硬件平臺的萬兆以太網(wǎng)MAC協(xié)議的詳細設(shè)計與實現(xiàn)方案,利用此平臺完成了萬兆以太網(wǎng)MAC層數(shù)據(jù)的收發(fā)仿真與實物測試。該萬兆以太網(wǎng)測試平臺主要由光電轉(zhuǎn)換模塊、光纖和FPGA芯片及外圍電路組成硬件框架,利用此硬件架構(gòu),通過數(shù)據(jù)回環(huán)測試實現(xiàn)了大帶寬、低延時和高可靠性的萬兆以太網(wǎng)MAC層的數(shù)據(jù)收發(fā)功能。試驗驗證表明,該設(shè)計方案完成了整個通信流程的數(shù)據(jù)收發(fā),實現(xiàn)了萬兆以太網(wǎng)UDP協(xié)議數(shù)據(jù)收發(fā)功能,除去協(xié)議開銷,用戶數(shù)據(jù)傳輸速率高達8.546 Gbps,具有高性能、高可靠性與簡易性等優(yōu)點。該方案設(shè)計在有高速率、大帶寬且具有一定定制化要求的高速萬兆以太網(wǎng)協(xié)議通信設(shè)計應(yīng)用中具有重要參考意義。
參考文獻
[1]敖志剛.萬兆以太網(wǎng)及其實用技術(shù)[M].北京:電子工業(yè)出版社,2007.
[2]曹政,李磊,陳明宇.萬兆以太網(wǎng)MAC控制器設(shè)計與實現(xiàn)[J].小型微型計算機系統(tǒng),2007(6):5.
[3]趙柏山,王禹衡,劉佳琪.用于視頻傳輸?shù)?0G網(wǎng)絡(luò)接口設(shè)計[J].微處理機,2018(3):28-32.
[4]張佳怡.基于10G光通信網(wǎng)絡(luò)加速系統(tǒng)的設(shè)計與實現(xiàn)[D].南京:南京理工大學,2020.
[5]王禹衡.基于FPGA的10G以太網(wǎng)UDP/IP處理器視頻傳輸接口設(shè)計[D].沈陽:沈陽工業(yè)大學,2018.
(編輯? 王永超)
Design and implementation of a 10 Gigabit Ethernet MAC layer based on FPGA
An? Chaoqun1, Li? Fei2
(1.Guangdong Vocational College of Mechanical and Electrical Technology, Guangzhou 510515, China;
2.Guangzhou Haige Communications Industry Group Co., Ltd., Guangzhou 510663, China)
Abstract:? In response to the software based design of the 10 Gigabit Ethernet MAC layer being unable to meet the development requirements of high-speed real-time data transmission, a design and implementation scheme of the 10 Gigabit Ethernet MAC layer protocol based on FPGA hardware platform is proposed. This design scheme mainly uses the parallel processing ability of FPGA to complete the hardware design of real-time data processing of 10 Gigabit Ethernet MAC layer through Verilog hardware description language, and realize the data receiving and transmitting function of 10 Gigabit Ethernet MAC layer with large bandwidth, low delay and high reliability. Experimental verification shows that this design scheme achieves high-speed data transmission over 10 Gigabit Ethernet, excluding protocol overhead. It has the advantages of high performance, high reliability and simplicity.
Key words: 10 Gigabit Ethernet; MAC controller; parallel CRC verification; parallel data processing