1 前言
隨著網(wǎng)絡(luò)規(guī)模的持續(xù)膨脹和新型網(wǎng)絡(luò)應(yīng)用需求的不斷增長(zhǎng),目前基于IPv4技術(shù)的因特網(wǎng)在可擴(kuò)展性、IP地址空間、安全、服務(wù)質(zhì)量控制、移動(dòng)性、運(yùn)營(yíng)管理和盈利模式等諸多方面面臨著挑戰(zhàn),尤其是地址空間匱乏、可擴(kuò)展性差等缺陷嚴(yán)重制約了因特網(wǎng)的發(fā)展,需要探索新的技術(shù)來(lái)解決這些問(wèn)題

以太網(wǎng)是當(dāng)前最基本、最流行的局域網(wǎng)組網(wǎng)技術(shù),為了適應(yīng)各種新開(kāi)展的業(yè)務(wù)如流視頻等,其速率也在不斷提高
2 網(wǎng)絡(luò)接口功能分析
千兆以太網(wǎng)原先是作為一種交換技術(shù)設(shè)計(jì)的,采用光纖作為上行鏈路,用于樓宇之間的連接,之后在服務(wù)器的連接和骨干網(wǎng)中,千兆以太網(wǎng)獲得了廣泛應(yīng)用
基于千兆以太網(wǎng)的發(fā)展現(xiàn)狀和良好的應(yīng)用前景,當(dāng)前國(guó)內(nèi)外研制各種核心路由器和高性能交換機(jī)的公司不再滿(mǎn)足于能夠提供低密度(單接口、雙接口等)千兆以太網(wǎng)線(xiàn)路接口卡模塊,紛紛推出或開(kāi)始研制高密度(四接口、八接口等)的線(xiàn)路接口卡模塊,高密度千兆以太網(wǎng)線(xiàn)路接口卡的研究正在成為一個(gè)熱點(diǎn)
1).多種數(shù)據(jù)包的分類(lèi)處理:本文研究的十接口千兆線(xiàn)路接口卡兼容IPv4、IPv6雙協(xié)議棧,需要實(shí)現(xiàn)三種二層協(xié)議封裝格式的拆封與封裝處理、兩種三層協(xié)議的查表處理和一種MPLS協(xié)議的處理,在高速環(huán)境下實(shí)現(xiàn)多種協(xié)議的正確處理是一個(gè)難點(diǎn);
2).幀重組合路加速功能的實(shí)現(xiàn):需要實(shí)現(xiàn)以太網(wǎng)幀的重組、十接口數(shù)據(jù)合路調(diào)度與加速三種功能,這是千兆線(xiàn)路接口卡滿(mǎn)足線(xiàn)速處理功能的關(guān)鍵;
3). 十接口數(shù)據(jù)合路調(diào)度功能的實(shí)現(xiàn):需要研究一種具有良好擴(kuò)展性和時(shí)延性能的調(diào)度算法,實(shí)現(xiàn)高速環(huán)境下十接口數(shù)據(jù)合路調(diào)度的功能
從功能角度來(lái)看

圖1 千兆以太網(wǎng)線(xiàn)路接口卡功能示意圖
3 硬件設(shè)計(jì)與實(shí)現(xiàn)
經(jīng)過(guò)對(duì)十接口千兆以太網(wǎng)線(xiàn)路接口卡功能和性能需求進(jìn)行認(rèn)真分析,按照功能清晰、接口簡(jiǎn)單、實(shí)現(xiàn)容易的原則,設(shè)計(jì)了其實(shí)現(xiàn)方案,并按照設(shè)計(jì)方案對(duì)千兆以太網(wǎng)線(xiàn)路接口卡進(jìn)行了子模塊劃分,共分為光電轉(zhuǎn)換子模塊、MAC層處理子模塊、輸入處理子模塊、輸出處理子模塊、輸入IP地址***模塊、輸出IP地址***模塊和協(xié)議報(bào)文緩存子模塊等七個(gè)子模塊

圖 2 十接口千兆以太網(wǎng)線(xiàn)路接口卡模塊結(jié)構(gòu)圖
其中MAC層處理子模塊是千兆線(xiàn)路接口卡設(shè)計(jì)的核心,選用PMC-Sierra公司的PM3388芯片為MAC層處理芯片, PM3388芯片是目前市場(chǎng)上唯一支持十接口的千兆以太網(wǎng)控制器,其功能特性如下:
十路千兆以太網(wǎng)控制器(同時(shí)完成PHY層和MAC層功能);
通過(guò)內(nèi)部十個(gè)SERDES接口直接與光電轉(zhuǎn)換模塊相連
從網(wǎng)絡(luò)上接收8B/10B格式碼流
每個(gè)接口提供多播地址過(guò)濾及8個(gè)單播地址過(guò)濾;
提供標(biāo)準(zhǔn)的IEEE 802.3 以太網(wǎng)幀格式完整性檢驗(yàn)
內(nèi)部提供224K字節(jié)接收FIFO和64K發(fā)送FIFO,可在十路接口上靈活配置;
提供SATURN標(biāo)準(zhǔn)的PL4(POS-PHY Level 4)標(biāo)準(zhǔn)16位LVDS總線(xiàn)接口,速率可達(dá)700Mbps;
提供標(biāo)準(zhǔn)IEEE 1149.1 JTAG測(cè)試端口;
提供微處理器接口;
提供線(xiàn)路側(cè)環(huán)回和系統(tǒng)側(cè)環(huán)回的系統(tǒng)級(jí)調(diào)試功能;
提供豐富的配置及統(tǒng)計(jì)寄存器
PM3388工作流程包括接收處理和發(fā)送處理兩部分
如果該以太網(wǎng)幀無(wú)誤
為了保證PL4接口達(dá)到十路1Gbps的速率,PM3388的參考時(shí)鐘引腳接160MHz時(shí)鐘晶振,輸入輸出接口的采樣時(shí)鐘通過(guò)將該時(shí)鐘倍頻獲得320MHz時(shí)鐘,輸入輸出數(shù)據(jù)分別在時(shí)鐘雙沿采樣,可以獲得640Mbps的數(shù)據(jù)數(shù)率,總帶寬達(dá)10.24Gbps,可以滿(mǎn)足0丟包率性能對(duì)帶寬的要求
此外,輸入處理FPGA是千兆以太網(wǎng)線(xiàn)路接口卡模塊設(shè)計(jì)的重點(diǎn)之一,主要的功能是將各種標(biāo)準(zhǔn)的MAC幀數(shù)據(jù)格式轉(zhuǎn)換為網(wǎng)絡(luò)層統(tǒng)一的數(shù)據(jù)格式,為網(wǎng)絡(luò)層處理屏蔽掉底層物理接口
輸入處理FPGA采用Altera公司Stratix GX系列的EP1SGX25F芯片,該芯片具有25660個(gè)邏輯單元,16個(gè)高速收發(fā)器通道,39個(gè)源同步IO和總數(shù)為1944576比特的RAM,可以滿(mǎn)足實(shí)現(xiàn)輸出處理功能對(duì)資源的要求
輸入處理子模塊主要完成輸入處理和配置統(tǒng)計(jì)兩大功能:第一、接收MAC層處理子模塊發(fā)送過(guò)來(lái)的數(shù)據(jù)片,完成MAC幀重組和十路數(shù)據(jù)合路處理,再根據(jù)MAC幀封裝的三層協(xié)議類(lèi)型實(shí)現(xiàn)數(shù)據(jù)包的分類(lèi)處理,按照不同的處理要求把數(shù)據(jù)包分別送B接口、F接口或者同時(shí)送兩個(gè)接口
4 系統(tǒng)調(diào)試
FPGA的調(diào)試包括輸入FPGA和輸出FPGA兩部分,主要檢查FPGA的焊接、時(shí)鐘和程序下載等是否正確,調(diào)試方法是用VHDL編寫(xiě)一個(gè)計(jì)數(shù)器的程序,用JTAG下載到FPGA中,利用SignalTap軟件和指示燈測(cè)試FPGA是否工作正常
PM3388芯片是千兆線(xiàn)路接口卡完成MAC層控制功能的芯片,其調(diào)試是整個(gè)千兆線(xiàn)路接口卡調(diào)試的重點(diǎn)
PM3388芯片寄存器配置的調(diào)試過(guò)程為:首先往一個(gè)可讀寫(xiě)寄存器(選擇地址為0x6的寄存器)中寫(xiě)入一個(gè)數(shù),再讀出來(lái)比較是否正確,如果不正確,通過(guò)SignalTap軟件分別抓輸出FPGA與PM3388芯片的微處理機(jī)接口的讀寫(xiě)控制信號(hào),確定錯(cuò)誤是發(fā)生在寫(xiě)操作還是讀操作上,排除錯(cuò)誤
而PL4系統(tǒng)側(cè)環(huán)回主要是為了驗(yàn)證輸出FPGA與PM3388的輸入PL4接口、輸入FPGA與PM3388的輸出PL4接口是否正常,調(diào)試方法是使用板級(jí)處理機(jī)向輸出處理FPGA發(fā)送協(xié)議包,輸出處理FPGA再把該數(shù)據(jù)包發(fā)送到PM3388的PL4接口的接收側(cè),接收側(cè)把該數(shù)據(jù)包環(huán)回到PL4接口的發(fā)送側(cè),從發(fā)送側(cè)發(fā)送到輸入處理FPGA,最后該數(shù)據(jù)包被板級(jí)處理機(jī)讀回來(lái)進(jìn)行比較
5 總結(jié)
本文的創(chuàng)新點(diǎn)在于采用合適的設(shè)計(jì)方案和調(diào)試方案,完成了十接口千兆線(xiàn)路接口卡的設(shè)計(jì)與實(shí)現(xiàn),研制的千兆線(xiàn)路接口卡完全滿(mǎn)足了T比特路由器項(xiàng)目對(duì)十接口千兆線(xiàn)路接口卡設(shè)計(jì)的功能與性能要求