楊順風(fēng),王茜竹,王愛軍
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
LTE 是3GPP 主導(dǎo)的UMTS 技術(shù)的長(zhǎng)期演進(jìn)。LTE 系統(tǒng)以正交頻分復(fù)用和多輸入多輸出技術(shù)為基礎(chǔ),并在移動(dòng)通信系統(tǒng)中全面采用和優(yōu)化分組數(shù)據(jù)傳輸。
LTE 的目標(biāo)是開發(fā)出一套滿足更低傳輸時(shí)延、提供更高用戶傳輸速率、增加容量和覆蓋、減少運(yùn)營(yíng)費(fèi)用、優(yōu)化網(wǎng)絡(luò)架構(gòu)、采用更大載波帶寬的系統(tǒng)[1]。因此數(shù)據(jù)傳輸?shù)目焖?、高效與否將直接影響到LTE 系統(tǒng)的傳輸速率等系統(tǒng)性能參數(shù)。
如圖1 所示,LTE 業(yè)務(wù)數(shù)據(jù)處理涉及RABM 模塊、PDCP模塊、RLC 模塊、MAC 模塊[2],而信令數(shù)據(jù)主要涉及NAS、RRC、PDCP、RLC 及MAC 模塊。其中,數(shù)據(jù)處理過(guò)程主要在PDCP、RLC、MAC 模塊進(jìn)行。下面將著重介紹PDCP 以及RLC 模塊的功能:
PDCP 模塊的主要功能有[3]:
1)用戶平面和控制平面數(shù)據(jù)的傳輸;
2)用戶平面的報(bào)頭壓縮和解壓縮;
3)用戶和控制平面數(shù)據(jù)的加密和解密,控制平面數(shù)據(jù)的校驗(yàn)和完整性保護(hù);
4)數(shù)據(jù)包的丟棄。
RLC 模塊的功能由RLC 實(shí)體執(zhí)行,主要功能有[4]:
1)高層PDU 的傳輸以及對(duì)高層PDU 的按序遞交;
2)對(duì)RLC SDU 的級(jí)聯(lián)、分段和重組(UM 和AM);
3)對(duì)RLC SDU 的重復(fù)檢錯(cuò)以及丟棄(UM 和AM);
4)對(duì)RLC 數(shù)據(jù)PDU 的重分段(AM)。
圖1 數(shù)據(jù)傳輸模塊圖
LTE 系統(tǒng)中的數(shù)據(jù)傳輸模式分為TM(Transparent Mode,透明模式)、UM(Unacknowledged Mode,非確認(rèn)模式)、AM(Acknowledged Mode),由于透明模式下PDCP 和RLC 模塊只是單純的對(duì)數(shù)據(jù)進(jìn)行遞交操作,并沒有其他對(duì)數(shù)據(jù)的處理操作,而UM 模式下對(duì)于數(shù)據(jù)的處理操作流程可以使用和AM 相同的方案,所以只針對(duì)AM 模式下的上行數(shù)據(jù)傳輸流程進(jìn)行設(shè)計(jì)研究,圖2 為AM 模式下上行數(shù)據(jù)傳輸?shù)脑敿?xì)流程設(shè)計(jì)。
圖2 AM 模式上行數(shù)據(jù)發(fā)送流程圖
1)RRC 向PDCP 發(fā)送一條CPDCP_CONFIG_REQ 請(qǐng)求配置原語(yǔ),PDCP 收到該原語(yǔ)后保存相關(guān)參數(shù);
2)RRC 向RLC 發(fā)送一條CRLC_CONFIG_REQ 請(qǐng)求配置原語(yǔ),RLC 收到該原語(yǔ)后,保存相關(guān)參數(shù),RLC 模塊由空狀態(tài)(NUL)進(jìn)入到AM 數(shù)據(jù)傳輸狀態(tài)(AMT);
3)當(dāng)RABM 子層收到需要發(fā)送的上行數(shù)據(jù)時(shí),不對(duì)數(shù)據(jù)做任何處理,將上行數(shù)據(jù)通過(guò)原語(yǔ)PDCP_DATA_REQ 發(fā)送給對(duì)應(yīng)的PDCP 實(shí)例,PDCP 在收到發(fā)送數(shù)據(jù)請(qǐng)求原語(yǔ)后,將從RABM 收到的上行數(shù)據(jù)全部進(jìn)行添加PDCP SN、頭壓縮、加密等處理,然后保存在PDCP PDU 緩存中;
4)PDCP 使用RLC_AM_DATA_REQ 原語(yǔ)將數(shù)據(jù)傳遞給對(duì)應(yīng)的AM-RLC 實(shí)例,收到該原語(yǔ)后,RLC 將收到的RLC SDU 存儲(chǔ)在上行緩存中,并更新RLC SDU 待發(fā)送的數(shù)據(jù)量[5];
5)MAC 子層在收到可用的上行總資源授權(quán)之后,將通過(guò)MAC_STATUS_IND 原語(yǔ)來(lái)給RLC 分配可用的上行發(fā)送資源;
6)RLC 在收到資源分配指示之后,將根據(jù)分配的資源對(duì)RLC PDU 進(jìn)行分段或級(jí)聯(lián),并按照AMD PDU 的格式加上序列號(hào)(SN)、輪詢比特(P)以及負(fù)載的SUD 長(zhǎng)度信息(LI)等頭信息[6];
7)至此,上行數(shù)據(jù)在PDCP 和RLC 的數(shù)據(jù)處理全部完成,RRC 通過(guò)CRLC_DEACT_REQ 以及CPDCP_DEACT_REQ來(lái)釋放對(duì)應(yīng)的AM-RLC 以及PDCP 實(shí)例,使PDCP 和RLC回到空狀態(tài)(NUL)。
按照協(xié)議要求,數(shù)據(jù)在上行數(shù)據(jù)發(fā)送過(guò)程中,首先將數(shù)據(jù)從RABM 模塊搬移到PDCP 模塊,此時(shí)PDCP 模塊申請(qǐng)新的內(nèi)存塊存儲(chǔ)收到的數(shù)據(jù),發(fā)送完成后,釋放RABM 模塊中占用的內(nèi)存塊,然后在PDCP 模塊申請(qǐng)新的內(nèi)存塊存儲(chǔ)收到的數(shù)據(jù),發(fā)送完成后,釋放RABM 模塊中占用的內(nèi)存塊,然后在PDCP 模塊進(jìn)行添加PDCP SN、頭壓縮、加密等操作之后將新的數(shù)據(jù)搬移到RLC 模塊申請(qǐng)的內(nèi)存塊,同時(shí)釋放在PDCP 中的緩存數(shù)據(jù),RLC 模塊收到數(shù)據(jù)之后根據(jù)MAC 收到的授權(quán)資源的大小信息,來(lái)分段/級(jí)聯(lián)RLC SDU 并且添加RLC 固定頭以及擴(kuò)展頭,處理完成之后發(fā)送給MAC 模塊,最后由MAC 模塊處理之后將數(shù)據(jù)搬移到PUSCH 內(nèi)存塊中來(lái)完成數(shù)據(jù)的無(wú)線發(fā)送。
現(xiàn)有的上行數(shù)據(jù)傳輸方案是由上層在收到上行IP 包數(shù)據(jù)時(shí)進(jìn)行內(nèi)存申請(qǐng),并通過(guò)指針傳遞的方式來(lái)完成模塊間的數(shù)據(jù)傳輸,但是,由于在PDCP、RLC 和MAC 模塊存在對(duì)數(shù)據(jù)的處理操作,所以必然的就存在對(duì)數(shù)據(jù)的搬移。通常在PDCP 模塊、RLC 模塊和MAC 模塊都存在一次對(duì)數(shù)據(jù)的搬移,本文將設(shè)計(jì)一種可以減少在上行傳輸過(guò)程中的數(shù)據(jù)搬移的傳輸方案。
首先,由于PDCP 模塊對(duì)于數(shù)據(jù)的操作沒有級(jí)聯(lián)/分段,只是添加PDCP 頭,所以上行在申請(qǐng)上行IP 包內(nèi)存時(shí),預(yù)留出PDCP 頭的內(nèi)存[7],這樣在PDCP 模塊的時(shí)候就可以在IP包源地址中寫IP 包內(nèi)存添加PDCP 頭,這樣就可以省去在PDCP 模塊的一次搬移。定義結(jié)構(gòu)T_ComPduLte,該結(jié)構(gòu)主要用于記錄上行數(shù)據(jù)的地址、長(zhǎng)度以及PDCP 頭等信息,用于各個(gè)模塊之間傳輸。T_ComPduLte 結(jié)構(gòu)如下所述:
圖3 PDCP PDU 緩存示意圖
如圖3 所示,PDCP PDU 需要三個(gè)指針來(lái)維護(hù),分別為pFirstPdu、pCurrentPdu、pLastPdu,pFirstPdu 指向目前緩存的PDCP PDU 鏈表的第一個(gè)節(jié)點(diǎn)的地址,pCurrentPdu 指向鏈表中下一個(gè)需要RLC 處理的PDCP PDU 節(jié)點(diǎn)的地址,pLastPdu指向的是整個(gè)PDCP PDU 鏈表的位地址,由于AM 模式在收到對(duì)等層的狀態(tài)報(bào)告之后才能對(duì)數(shù)據(jù)進(jìn)行釋放處理,所以pFirstPdu~pCurrentPdu 之間的節(jié)點(diǎn)其實(shí)就是已經(jīng)發(fā)送給網(wǎng)絡(luò)端但是未收到狀態(tài)報(bào)告的PDCP PDU,而pCurrentPdu~pLastPdu 指的就是PDCP PDU 緩存中還未發(fā)送的數(shù)據(jù),用v_totalSduLen 來(lái)記錄PDCP 還未發(fā)送的數(shù)據(jù)。當(dāng)PDCP 收到RABM 的數(shù)據(jù)之后,將PDCP SDU 進(jìn)行頭壓縮、加密、添加PDCP SN 等處理后添加到pFirstPdu 鏈表中;如果pFirstPdu為NULL,則將收到的已處理的結(jié)構(gòu)單元指針賦給pFirstPdu(pLastPdu);如果pFirstPdu 中有數(shù)據(jù),則將收到的數(shù)據(jù)直接鏈接到pLastPdu- >next 位置;然后更新pLastPdu。而pCurrentPdu 只想的是鏈表中正在傳遞給RLC 模塊的PDU。
RLC 將會(huì)掃描PDCP PDU 的緩存情況,如果pFirstPdu~pCurrentPdu 之間的SDU 個(gè)數(shù)大于等于2048 時(shí),即等到接收狀態(tài)報(bào)告的RLC SDU 大于等于2048,由于AM 模式在T_RLC_UlPduInfo 的結(jié)構(gòu)信息,然后通過(guò)MAC_DATA_REQ 將多個(gè)PDU 信息結(jié)構(gòu)體發(fā)送到MAC 層。
MAC 收到從RLC 模塊發(fā)過(guò)來(lái)的RLC PDU 組裝信息之后,將MAC PDU 數(shù)據(jù)搬移到PUSCH 內(nèi)存塊中最后來(lái)完成數(shù)據(jù)的無(wú)線發(fā)送。而MAC PDU 的組裝就是在這次搬移的時(shí)候完成的,在搬移的時(shí)候首先回調(diào)RLC 函數(shù)根據(jù)T_RLC_UlPduInfo 的結(jié)構(gòu)體信息來(lái)填寫RLC 頭,然后將不同的RLC 下接收窗口長(zhǎng)度為2048,所以不能夠發(fā)送新的SDU 數(shù)據(jù),只允許發(fā)送狀態(tài)PDU 或重傳數(shù)據(jù)。
在RLC 模塊,由于RLC PDU 的長(zhǎng)度不是固定的,為了避免動(dòng)態(tài)分配內(nèi)存以及數(shù)據(jù)的搬移,設(shè)計(jì)了T_RLC_UlPduInfo結(jié)構(gòu)體。該結(jié)構(gòu)體用于RLC 模塊向MAC 發(fā)送RLC PDU 的頭內(nèi)容、包含的SDU 的個(gè)數(shù)、頭長(zhǎng)度以及MAC PDU 頭長(zhǎng)度、RLC SDU 數(shù)據(jù)指針等信息。T_RLC_UlPduInfo 結(jié)構(gòu)體如下所述:
在收到MAC_STATUS_IND 后,需要根據(jù)資源情況將RLC SDU 分段或級(jí)聯(lián)。PDU 的組裝信息包括PDU 頭長(zhǎng)度、PDU 頭內(nèi)容、包含的SDU 個(gè)數(shù)以及PDU 總長(zhǎng)度等信息包含PDU 復(fù)用到MAC PDU 中并填寫MAC PDU 頭信息,最后將處理完成之后的數(shù)據(jù)搬移到PUSCH 內(nèi)存塊中完成數(shù)據(jù)無(wú)線發(fā)送。
根據(jù)LTE 對(duì)于傳輸速率的高要求[8],本文主要研究了數(shù)據(jù)傳輸?shù)募軜?gòu)以及各個(gè)模塊功能,設(shè)計(jì)了AM 模式下上行數(shù)據(jù)傳輸?shù)牧鞒淘O(shè)計(jì),并提出了一種模塊間內(nèi)存共享的方案,通過(guò)對(duì)該方案的分析,不難看出該方案在整個(gè)數(shù)據(jù)上行傳輸過(guò)程中僅僅只對(duì)數(shù)據(jù)進(jìn)行了一次搬移處理,不僅節(jié)約了內(nèi)存的使用,而且減少了上行數(shù)據(jù)傳輸過(guò)程中的數(shù)據(jù)處理使用的時(shí)間,滿足了LTE 系統(tǒng)對(duì)數(shù)據(jù)傳輸提出的高速要求。
[1]Rapporteur L T E.Text Proposal for TS 36.300 (Stage 2 TS) [S]//3GPP TSG RAN WG1 Meeting.2011,48:R1-071251.
[2]Access E U T R.Medium Access Control (MAC) Protocol Specification (Release 8),”3GPP TS 36.321[S].V8..0 (2010-06),
[3]Protocol,Packet Data Convergence." Specification”,3GPP TS[S].36.323 V9.0.0 (Rel’9) ." (2009-12) .
[4]Access E U T R.Radio Link Control (RLC) Protocol Specification (Release 9) ”,3GPP TS 36.322[S].V9.2.0,(2010-06) .
[5]孫遠(yuǎn)欣,杭小飛,張雪梅.LTE 系統(tǒng)中PDCP 子層功能研究[J].現(xiàn)代電子技術(shù),2011,34(7) :44-48.
[6]李責(zé)勇,趙國(guó)會(huì).LTE 協(xié)議棧RLC 層的研究與實(shí)現(xiàn)[J].數(shù)字通信,2012 (1) :48-51.
[7]殷人昆,耿國(guó)華.數(shù)據(jù)結(jié)構(gòu):C 語(yǔ)言描述[M].西安:西安電子科技大學(xué)出版社,2002.
[8]趙訓(xùn)威,林輝,張明,等.3GPP 長(zhǎng)期演進(jìn)(LTE) 系統(tǒng)架構(gòu)與技術(shù)規(guī)范[M].北京:人民郵電出版社,2010.