卞金來 魏俊淦 田建學 林成浴
【摘要】本文研究用FPGA來加速實現HSUPA FP協議。通過對FP協議的研究,合理設計使FP模塊的處理速度得到提升和優化處理時延。本文提出的主要優化技術路線對于LTE/LTE-A eNB的協議FPGA加速有借鑒和參考價值。
【關鍵詞】HSUPA FP協議;FP模塊;設計
1.引言
移動互聯網時代來臨,至2012年12月底,我國手機網民規模為4.2億,年增長率為18.1%[1]。同時無線業務量的巨增給RNC用戶面單板的性能帶來的很大的挑戰,而且一個RNC要同時服務大量的用戶,這樣RNC也面臨需要進行協議的硬件加速問題。考慮到FP協議開銷較大且協議較穩定,可以用FPGA來加速模塊來,以便大幅度提升用戶面處理的性能。本文研究用FPGA來加速實現HSUPA FP協議,需要實現支持6000個用戶,每個用戶上行400kbps的速率,共2.4Gbps的速率FP模塊的功能是對FP幀解析,提取FP幀負載,將FP幀中的PDU提取出來通過FIFO傳遞給MAC-es模塊。
2.FP協議幀的作用
網絡層和絕大多數鏈路層協議是在RNC上實現的,而物理層則是在Node B上實現的[2]。因為RNC和Node B在物理實體上是分離的,它們之間的數據傳輸通過Iub接口來實現,Iub接口的傳輸數據時采用FP幀協議。不同傳輸信道使用不同的幀協議通過Iub接口傳輸數據[3]。
3.設計難點
FP幀頭長度不是固定的。FP幀包含的子幀數,每個子幀包含PDU個數,每個PDU長度都是變長。由于幀頭變長,而幀頭描述信息連續,需要不斷定位每個子幀描述信息的起始和結尾位置,而子幀頭長度可變,可能一個字里面含有多個子幀頭,也可能一個子幀頭跨越多個字,對于不同情況需要做區分處理。子幀頭包含MAC-es PDU的描述信息,若在讀取幀頭時處理就需要停拍計算PDU長度等描述信息,而且還需要存儲這些信息供后續處理PDU數據使用,會造成時鐘拍數的浪費。由于FP幀的頭部不是定長,幀頭長度與子幀數目及每個子幀包含PDU個數有關。若想實現流水線處理,同時計算和分析,需要緩存幀數據。
4.設計思路
一是采用順序處理,每個info信息對應一個FP幀,當前FP處理完后再讀取下一個info處理下一個FP幀 。二是采用流水設計,將入口fifo數據緩存一拍,在處理當前子幀頭數據時,計算出下一子幀開始位置和長度,下一拍就可以立即處理入口數據而不需要停頓。在處理當前子幀頭,存儲相關信息時,計算出下一子幀頭位置,當一個word里面只有一個子幀頭時,可以連續處理fifo輸入數據。三是利用數據緩存,對于子幀頭的信息,在處理幀頭時并不計算相關描述信息,而是把幀頭存儲在一個內部fifo中,當處理到FP幀數據時,再讀出對應的幀頭信息,依次處理對應描述信息對應的PDU數據,這樣在處理幀頭時不需要停拍處理,從而實現連續處理入口fifo數據,進行流水操作。
5.FP幀接收處理模塊實現說明
從上級接口模塊取FP幀數據和FP幀長度。讀取定長子幀頭,解析出用戶平面和邏輯信道ID。分析處理子幀頭,記錄當前處理子幀頭位置和偏移,同時根據緩存數據計算出下一子幀頭位置和偏移。將包含子幀頭信息的word存入內部info fifo中。直至分析計算完全部子幀頭。此時剛好可以得到PDU數據開始位置,即為第一個數據PDU拼接點。在解析PDU之前,先要從DDI表項中讀出DDI和N(每個PDU中含有的sdu個數),通過DDI從ddi表中讀出每個sdu長度,計算出PDU長度。根據PDU長度和PDU拼接點輸出PDU數據信息給PDU data fifo,每個PDU解析之前輸出PDU的info信息給PDU info fifo。維持PDU計數和子幀計數。PDU計數達到子幀中 PDU個數時即表示當前子幀處理完,當子幀計數達到FP子幀數目時,即標志當前FP幀處理完畢。
6.FP解封模塊性能分析與測試
FP幀長度按照500字節進行分析處理,2.4Gbps條件下,每秒有600000個FP幀。導致FP幀產生時延是原因主要是分析FP幀頭時延,讀QDR時延和讀寫內部FIFO時延。對于一個500字節的FP幀,包含5個100字節左右的PDU。分析FP幀固定頭部需要5拍,分析子幀頭需要5拍,讀取內部FIFO需要2×5=10拍,每個PDU分析完后需要停一拍,共需要5拍。故對于每個FP幀,總的群時延為5+5+10+5=25拍。為25/200*10e-6=125ns。
為了驗證FP解封模塊的功能,根據協議,每一FP幀中最多10子幀,每個子幀最多15個MAC-es PDU。測試采用ModelSim來作為測試工具,是通過編寫測試程序,將測試用例數據傳遞給FP解封模塊的數據輸入FIFO中,然后查看FP解封模塊的輸出數據,檢查是否與預想結果一致。通過測試FP解封模塊能正確解封,證明了設計功能的可行性。對FP解封模塊進行測試時,每微秒就向模塊入口fifo灌入一個長度為504字節大小的FP幀,這個數據能在這段時間內被處理完,并且通過比較輸入輸出數據說明FP解封模塊功能正常此時FP解封模塊的吞吐量為:504×8bit/(1/1000000)s =4.023Gbps。設計要求的目標是2.4Gbps,因此FP解封模塊設計吞吐量能能滿足設計需求。
7.結束語
在FP解封模塊的設計中,利用了并行流水線開發設計,使處理延時大大降低。FP解封模塊的性能進行了分析,FP的時延為125ns,符合設計要求。通過構造典型的測試用例來對FP解封模塊進行測試,并通過仿真測試說明的設計的功能和吞吐量滿足設計目標。以上的分析說明了對FP解封模塊的設計正確可行,滿足設計要求。4G和5G網絡中,協議FPGA加速是必不可少的,尤其是1Gbps以上的eNB協議加速,本文提出的主要優化技術路線對于LTE/LTE-A eNB的協議FPGA加速有借鑒和參考價值。
參考文獻
[1]中國互聯網信息中心.中國移動互聯網發展狀況調查報告,2012 .
[2]劉琦. WCDMA HSUPA中關鍵技術的研究和實現[D].西安電子科技大學,2008.
[3]彭林.第三代移動通信技術:電子工業出版社,2003.