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