1 前言
隨著網絡規模的持續膨脹和新型網絡應用需求的不斷增長,目前基于IPv4技術的因特網在可擴展性、IP地址空間、安全、服務質量控制、移動性、運營管理和盈利模式等諸多方面面臨著挑戰,尤其是地址空間匱乏、可擴展性差等缺陷嚴重制約了因特網的發展,需要探索新的技術來解決這些問題
以太網是當前最基本、最流行的局域網組網技術,為了適應各種新開展的業務如流視頻等,其速率也在不斷提高
2 網絡接口功能分析
千兆以太網原先是作為一種交換技術設計的,采用光纖作為上行鏈路,用于樓宇之間的連接,之后在服務器的連接和骨干網中,千兆以太網獲得了廣泛應用
基于千兆以太網的發展現狀和良好的應用前景,當前國內外研制各種核心路由器和高性能交換機的公司不再滿足于能夠提供低密度(單接口、雙接口等)千兆以太網線路接口卡模塊,紛紛推出或開始研制高密度(四接口、八接口等)的線路接口卡模塊,高密度千兆以太網線路接口卡的研究正在成為一個熱點
1).多種數據包的分類處理:本文研究的十接口千兆線路接口卡兼容IPv4、IPv6雙協議棧,需要實現三種二層協議封裝格式的拆封與封裝處理、兩種三層協議的查表處理和一種MPLS協議的處理,在高速環境下實現多種協議的正確處理是一個難點;
2).幀重組合路加速功能的實現:需要實現以太網幀的重組、十接口數據合路調度與加速三種功能,這是千兆線路接口卡滿足線速處理功能的關鍵;
3). 十接口數據合路調度功能的實現:需要研究一種具有良好擴展性和時延性能的調度算法,實現高速環境下十接口數據合路調度的功能
從功能角度來看
圖1 千兆以太網線路接口卡功能示意圖
3 硬件設計與實現
經過對十接口千兆以太網線路接口卡功能和性能需求進行認真分析,按照功能清晰、接口簡單、實現容易的原則,設計了其實現方案,并按照設計方案對千兆以太網線路接口卡進行了子模塊劃分,共分為光電轉換子模塊、MAC層處理子模塊、輸入處理子模塊、輸出處理子模塊、輸入IP地址***模塊、輸出IP地址***模塊和協議報文緩存子模塊等七個子模塊
圖 2 十接口千兆以太網線路接口卡模塊結構圖
其中MAC層處理子模塊是千兆線路接口卡設計的核心,選用PMC-Sierra公司的PM3388芯片為MAC層處理芯片, PM3388芯片是目前市場上唯一支持十接口的千兆以太網控制器,其功能特性如下:
十路千兆以太網控制器(同時完成PHY層和MAC層功能);
通過內部十個SERDES接口直接與光電轉換模塊相連
從網絡上接收8B/10B格式碼流
每個接口提供多播地址過濾及8個單播地址過濾;
提供標準的IEEE 802.3 以太網幀格式完整性檢驗
內部提供224K字節接收FIFO和64K發送FIFO,可在十路接口上靈活配置;
提供SATURN標準的PL4(POS-PHY Level 4)標準16位LVDS總線接口,速率可達700Mbps;
提供標準IEEE 1149.1 JTAG測試端口;
提供微處理器接口;
提供線路側環回和系統側環回的系統級調試功能;
提供豐富的配置及統計寄存器
PM3388工作流程包括接收處理和發送處理兩部分
如果該以太網幀無誤
為了保證PL4接口達到十路1Gbps的速率,PM3388的參考時鐘引腳接160MHz時鐘晶振,輸入輸出接口的采樣時鐘通過將該時鐘倍頻獲得320MHz時鐘,輸入輸出數據分別在時鐘雙沿采樣,可以獲得640Mbps的數據數率,總帶寬達10.24Gbps,可以滿足0丟包率性能對帶寬的要求
此外,輸入處理FPGA是千兆以太網線路接口卡模塊設計的重點之一,主要的功能是將各種標準的MAC幀數據格式轉換為網絡層統一的數據格式,為網絡層處理屏蔽掉底層物理接口
輸入處理FPGA采用Altera公司Stratix GX系列的EP1SGX25F芯片,該芯片具有25660個邏輯單元,16個高速收發器通道,39個源同步IO和總數為1944576比特的RAM,可以滿足實現輸出處理功能對資源的要求
輸入處理子模塊主要完成輸入處理和配置統計兩大功能:第一、接收MAC層處理子模塊發送過來的數據片,完成MAC幀重組和十路數據合路處理,再根據MAC幀封裝的三層協議類型實現數據包的分類處理,按照不同的處理要求把數據包分別送B接口、F接口或者同時送兩個接口
4 系統調試
FPGA的調試包括輸入FPGA和輸出FPGA兩部分,主要檢查FPGA的焊接、時鐘和程序下載等是否正確,調試方法是用VHDL編寫一個計數器的程序,用JTAG下載到FPGA中,利用SignalTap軟件和指示燈測試FPGA是否工作正常
PM3388芯片是千兆線路接口卡完成MAC層控制功能的芯片,其調試是整個千兆線路接口卡調試的重點
PM3388芯片寄存器配置的調試過程為:首先往一個可讀寫寄存器(選擇地址為0x6的寄存器)中寫入一個數,再讀出來比較是否正確,如果不正確,通過SignalTap軟件分別抓輸出FPGA與PM3388芯片的微處理機接口的讀寫控制信號,確定錯誤是發生在寫操作還是讀操作上,排除錯誤
而PL4系統側環回主要是為了驗證輸出FPGA與PM3388的輸入PL4接口、輸入FPGA與PM3388的輸出PL4接口是否正常,調試方法是使用板級處理機向輸出處理FPGA發送協議包,輸出處理FPGA再把該數據包發送到PM3388的PL4接口的接收側,接收側把該數據包環回到PL4接口的發送側,從發送側發送到輸入處理FPGA,最后該數據包被板級處理機讀回來進行比較
5 總結
本文的創新點在于采用合適的設計方案和調試方案,完成了十接口千兆線路接口卡的設計與實現,研制的千兆線路接口卡完全滿足了T比特路由器項目對十接口千兆線路接口卡設計的功能與性能要求