背景技术
长期演进(LTE)协议36.300规定,LTE用户平面从上到下包括分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层、无线链路控制(RadioLink Control,RLC)层、媒体接入控制((Medium Access Control,MAC)层和物理(PHY)层,如图1所示。
RLC层的主要功能是分段与级联上层数据包,使得它们的大小适应于空中无线接口(即空口)能够进行的实际传输。对于需要无差错传输的无线承载(Radio Bear,RB),RLC层采用确认模式(Acknowledged Mode,AM),通过重传来恢复丢失的数据包。在重传情况下,如果MAC层指示的当前空口可传输数据量大小小于原始RLC确认模式数据(AMD)协议数据单元(Protocol DataUnit,PDU)的大小,发送端RLC层可以重新把原始的RLC AMD PDU分段成更小的PDU块,称为RLC AMD PDU分段。每个RB有一个RLC实体。
MAC层的主要功能是对不同的RB的数据进行复用,通过MAC调度器来决定每个UE能够传输的数据总量,并且指示RLC层能够提供的数据包的大小。
在发送端,用户数据从上层依次传递给下层,数据流向为:PDCP层->RLC层->MAC层->PHY层,在PHY层通过空口发送到接收端。在接收端,用户数据从下层依次传递给上层,数据流向为:PHY层->MAC层->RLC层->PDCP层。
在发送端,每一层从上层接收业务数据单元(Service Data Unit,SDU),为该层提供业务,并向下层输出PDU。例如:RLC层接收到来自PDCP层的 分组数据,这些分组数据从PDCP的角度看是PDCP PDU,而从RLC层的角度看是RLC SDU。RLC层生成提供给下层(即MAC层)的分组数据。这些传递给MAC层的分组数据从RLC层的角度看是RLC PDU,从MAC层的角度看是MAC SDU。
在接收端,这个分组数据包的传递过程是相反的,即下层都向上层发送SDU,上层作为PDU接收。
LTE36.321协议中定义了MAC PDU子头和完整的MAC PDU格式,分别如图2A、图2B和图3所示。如图2A和图2B中,R为预留域,E为扩展域,LCID为逻辑信道标识域,F为格式域。
下面重点分析MAC子头中与长度相关的指示域字段。MAC子头中长度(Length,L)域表示MAC SDU)或者MAC控制单元(Control Element,CE)的长度(单位是字节),有7比特和15比特两种取值。对于15比特的L域,可以表示的最大MAC SDU或最大MAC CE的大小为2^15-1=32767(Byte)。
AM模式下的RLC AMD PDU和RLC状态PDU分别如图4和图5所示。图4中,LI为长度指示域,LI的个数为奇数,K为正奇数;D/C为数据/格式域,RF为重分段标志域,P为轮询域,FI为帧信息域,E为扩展域,LSF为最后分段标志域。图5中,D/C为数据/控制域,CPT为控制PDU类型域,ACK_SN为肯定应答序列号域,NACK_SN为否定应答序列号域,E1为扩展域1,E2为扩展域2。
下面重点分析与长度相关的指示域字段。RLC AMD PDU中的分段偏移(Segmentation Offset,SO)域为15bit,RLC状态PDU中分段偏移起始(SOstart)域和分段偏移结束(SOend)域为15bit。可以表示的最大RLC PDU分段大小为2^15-1=32767(Byte)。
图4中,序列号(Sequence Number,SN)域表示AM模式下的RLC AMDPDU序列号,一共10比特,用于RLC实体识别该RLC PDU,进行重排序和重复检测。
图4所示的AMD PDU分段是一种特殊的AMD PDU,用于在重分段的重发情况下(当MAC层指示的有效的重传资源比原始PDU长度小时),只要是重传原始AMD PDU(即由RLC SDU创建的RLC PDU)的一部分数据时,都采用此格式。以RF域来指示该RLC PDU是一个AMD PDU分段包,携带与原始AMD PDU相同的SN域,以SO域(15比特)来指示该AMD PDU分段在原始AMD PDU中的起始位置(即AMD PDU分段中Data域的第1个字节在原始AMD PDU的Data域中的字节序号,从0开始编号)。
图5所示的RLC状态PDU的主要功能是接收端向发送端上报肯定应答(ACK)以及否定应答(NACK)。在RLC状态PDU中负荷从RLC控制PDU头结束的第一个比特开始,包含1个ACK_SN域和1个E1域,0或多个NACK_SN的集合域,1个E1域和1个E2域,(当E2=1时还包含)对于每个NACK_SN的1个SOstart和SOend的集合域。
其中,NACK_SN域包括接收端没有完全接收到的AMD PDU的序列号。在重分段情况下,则需要添加SOstart和SOend域用以指示AMD PDU中丢失了哪些字节。SOstart域和SOend域共同指示了AM RLC实体接收侧已经检测到丢失的、对应的SN=NACK_SN的AMD PDU部分。具体地讲,SOstart域指示了AMD PDU数据域中AMD PDU部分的第一个字节的位置;SOend域指示了AMD PDU数据域中AMD PDU部分的最后一个字节的位置。
例如:特殊SOstart域取值为″000000000000000″,特殊的SOend取值为″111111111111111″,用于指示从AMD PDU第一个字节开始、直到最后一个字节在内的AMD PDU部分的丢失。此时,15bit的SOstart和SOend域所能够指示的丢失的最大字节数是2^15-1=32767字节。一般情况下,这两个取值不会在一个NACK记录中同时出现,否则就不需要使用SOstart和SOend了,只使用NACK就可以表示。
LTE-A(Long Term Evolution-Advanced)系统的目标要求支持上行500M比特每秒(bit per second,bps)和下行1Gbps的峰值速率,从而引入了载波聚 合(Carrier Aggregation,CA)特性和下行8*8/上行4*4的增强多输入多输出(Multiple-Input Multiple-Output,MIMO)特性,尤其是LTE-A中下行增强的8*8MIMO特性导致了超大传输块(Transport Block,TB)的存在。
长期演进升级(LTE-A)协议36.213 Va20版本中,对于单码字映射到四层的情况,当TBS索引为最高的等级26,并且物理资源块(Physical ResourceBlock,PRB)对个数NPRB取值为89到110时,都会出现TBS_L4大于32767字节的情况——即超过MAC PDU和RLC AMD PDU中15比特长度域能够表示的范围。
如表1和表2所示,表1为单码字映射到单层的TBS表格,即为协议36.213Va20中的表7.1.7.2.1-1;表2为单码字映射到四层的TBS映射表格,即为协议36.213 Va20中的表7.1.7.2.5-1。
表1
TBS_L1(bit) |
TBS_L4(bit) |
TBS_L4(Byte) |
TBS_L4(Byte)-32767
|
61664 |
245648 |
30706 |
-2061 |
63776 |
254328 |
31791 |
-976 |
66592 |
266440 |
33305 |
538 |
68808 |
275376 |
34422 |
1655 |
71112 |
284608 |
35576 |
2809 |
73712 |
293736 |
36717 |
3950 |
75376 |
299856 |
37482 |
4715 |
表2
备注:32767(Byte)*8=262136(bit)。
LTE系统中层二(Layer Two,L2)的处理流程如图6所示,用户数据包到达PDCP层,由PDCP层进行头压缩、加密、增加头部结构等操作后,形成PDCP PDU,并将PDCP PDU发送至RLC层。RLC层将收到的PDCP PDU按照MAC层具体传输格式的要求进行适当的级联(concatenation)、分段(segmentation)并增加头部结构,形成合适大小的RLC PDU发送至MAC层,MAC层将RLC PDU再进一步组装为MAC PDU后发送给物理层,物理层将MAC PDU发送出去。
在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:
当物理层的TB大小超过32767字节时,意味着RLC PDU的大小也有可能超过32767字节,此时MAC PDU中无法使用现有的15bit的L域来指示MAC SDU的长度。
具体实施方式
为了解决MAC PDU中的MAC子头无法正确指示MAC SDU承载的数据量的问题,本发明实施例提供一种数据处理方法,本方法中,在MAC PDU的负荷域能够承载的最大数据量值大于一个RLC PDU能够承载的最大数据量值时,组装出一个或多个承载的数据量值不大于一个RLC PDU能够承载的最大数据量值的RLC PDU,并将组装出的RLC PDU发送给MAC层,MAC层根据接收到的RLC PDU组装MAC PDU。
参见图7,本发明实施例提供给的数据处理方法,包括以下步骤:
步骤70:通信设备的MAC层确定第一数据量值,并将第一数据量值发送给RLC层,第一数据量值为MAC PDU的负荷域能够承载的最大数据量值;该通信设备可以是基站、终端等。
步骤71:RLC层将第一数据量值与第二数据量值进行比较,在根据比较结果确定第一数据量值大于第二数据量值时,组装出一个或多个RLC PDU,将组装出的RLC PDU发送给MAC层;其中,组装出的每个RLC PDU承载的数据量值不大于第二数据量值;第二数据量值为预先设定的一个RLC PDU能够承载的最大数据量值,并且第二数据量值不大于MAC PDU子头的长度(L) 域能够指示的最大数据量值;该长度域用于指示MAC PDU中MAC SDU承载的数据量值;
步骤72:MAC层根据接收到的RLC PDU组装MAC PDU。组装出的MACPDU的格式可以参见LTE36.321协议,MAC PDU子头包含的长度域指示对应MAC SDU承载的数据量(单位是字节)。
本方法中,第一数据量值、第二数据量值、RLC PDU承载的数据量值、MAC PDU子头的长度域能够指示的最大数据量值的单位需要一致,例如,该单位可以为字节。MAC PDU子头的长度域能够指示的最大数据量值可以根据该长度域的比特长度确定,例如,在该长度域的比特长度为15比特时,该长度域能够指示的最大数据量值为2^15-1=32767字节。
步骤70中,MAC层确定第一数据量值,其具体实现可以如下:
MAC层确定当前TTI待传输的传输块TB大小;计算该TB大小与MAC子头的数据量值、MAC CE的数据量值的差值;将该差值确定为第一数据量值。其中,TB大小、MAC子头的数据量值、MAC CE的数据量值的单位需要与第一数据量值、第二数据量值、RLC PDU承载的数据量值、MAC PDU子头的长度域能够指示的最大数据量值的单位一致,例如,该单位可以为字节。
较佳的,步骤72中,在RLC层根据比较结果确定第一数据量值大于第二数据量值之后、并且组装出一个或多个RLC PDU之前,RLC层可以将当前可用的RLC PDU的序列号(SN)的个数与预先设定的SN占用个数门限值进行比较;所述SN占用个数门限值为小于系统定义的SN的总个数的正整数;在根据比较结果确定当前可用的SN的个数大于所述SN占用个数门限值时,组装出M个RLC PDU,M为不小于2的正整数,组装出的每个RLC PDU承载的数据量值不大于第二数据量值;在根据比较结果确定当前可用的SN的个数小于或等于SN占用个数门限值时,组装出一个承载的数据量值不大于第二数据量值的RLC PDU。
这里,SN是用于控制更新自动重传请求(ARQ)重传窗口的参数,在SN 资源被耗尽时,ARQ重传窗口不能得到更新,会导致新的数据无法被传输。本发明中,在当前可用的SN的个数大于所述SN占用个数门限值时,说明SN资源充足,因此,可以组装出M个RLC PDU发送给MAC层;在当前可用的SN的个数不大于所述SN占用个数门限值时,说明SN资源缺乏,此时仅组装出一个RLC PDU可以有效节省SN资源,从而降低SN资源被耗尽的速度,进而尽量避免由于SN资源被耗尽所导致的新的数据无法被传输的问题。
具体的,所述SN占用个数门限值可以按照如下公式确定:
SN占用个数门限值=η*a/2,
其中,η是介于0到1之间的百分数,a为系统定义的SN的总个数。较佳的,η的取值范围为10%~20%。
具体的,M的取值预先配置;或者,M的取值按照如下公式确定:
M=ceil(TBS_Byte_Total/RLC_PDU_MAX_LENGTH),其中,ceil表示向上取整,TBS_Byte_Total表示MAC层当前TTI待传输的TB大小,RLC_PDU_MAX_LENGTH表示第二数据量值。
较佳的,组装出的M个RLC PDU中每个RLC PDU包含的RLC SDU为未进行SDU分段的完整的RLC SDU。
较佳的,组装出的M个RLC PDU承载的数据量值之和不大于第一数据量值。
进一步的,在RLC层根据比较结果确定第一数据量值不大于第二数据量值时,RLC层组装出一个承载的数据量值等于第一数据量值的RLC PDU,将该RLC PDU发送给MAC层,MAC层根据接收到的RLC PDU组装MAC PDU。
下面对本发明进行具体说明:
本方案的基本思想是:SN能少用就少用,每个RLC PDU长度有最大上限的限制。
本方案采用变量M和SN_th来实现上述基本思想,下面首先介绍变量M和SN_th的定义和配置方法。
变量M的定义和配置方法:
变量M值表示的是一个传输块对应的RLC PDU个数,下面给出配置M值的两种方法。
方法一:M=ceil(TBS_Byte_Total/RLC_PDU_MAX_LENGTH),其中,ceil表示向上取整,TBS_Byte_Total表示MAC层经过调度之后确定的当前TTI待传输的传输块大小(单位是字节),RLC_PDU_MAX_LENGTH表示一个RLCPDU能够承载的最大数据量值(单位是字节);
方法二:由算法或者高层固定配置,M是>=2的整数,根据目前考虑,优先考虑M=2,但不排除取更大值的可能性。
下面基于方法一给出计算M值的两个实施例。
例1:LTE-A(R10)协议中定义的最大传输块尺寸大小TBS_Byte_Total=37482字节,一个RLC PDU的最大尺寸大小RLC_PDU_MAX_LENGTH=2^15-1=32767,采用方法一计算可得M=ceil(37482/32767)=2;
例2:假设后续标准中允许使用更大的TB块,例如,TBS_Byte_Total=3*32767(字节),采用方法1计算可得M=ceil(3*32767/32767)=3。
变量SN_th表示RLC层发送和接收重排序窗口中可用SN资源占用情况的负荷门限,下面分别给出设置SN_th的出发点和方法。
载波聚合(CA)技术带来的对SN消耗速度的增长将会提高传输窗口停滞的概率。对RLC SN进行适当扩展可以解决这个问题,但目前LTE-A(R10)协议没有定义SN扩展。因此目前总的SN资源是有限的,通过设置门限SN_th来避免当可用SN资源较少时仍使用多个SN(对应的基本思想是SN能少用就少用)。具体地,当可用SN个数小于门限SN_th时,从节约SN个数的角度考虑,对该超大TB块只使用一个SN,传输一个最大为RLC_PDU_MAX_LENGTH的RLC_PDU,而不使用2个或者多个,从而降低 由于SN消耗速度的增长而导致传输窗口停滞的概率。
SN门限值SN_th取值为η*SN/2,其中,η是介于0到1之间的百分数,η取值根据RRC层指示或者算法配置,建议取值为10%~20%。
本方案基本步骤是:RLC层收到扣除MAC子头和MAC CE开销的传输块大小TBS_Byte_Request(单位是字节)之后,将TBS_Byte_Request与RLC_PDU_MAX_LENGTH进行比较,如果TBS_Byte_Request大于RLC_PDU_MAX_LENGTH,则检查目前RLC层可用的SN的个数,当可用SN个数大于门限值SN_th时,RLC层将TBS分为大小近似相等的M份,分别组成M个新的RLC PDU,并且要保证每一个RLC PDU中都包含的是完整的RLCSDU(即没有进行SDU分段);当可用SN个数小于门限值SN_th时,RLC层只组成一个长度为RLC_PDU_MAX_LENGTH字节的RLC PDU,以达到节省SN资源的目的。
本方案的具体步骤如下:
步骤1:MAC层根据调度结果确定当前TTI待传输的TB大小为TBS_Byte_Total(以字节为单位),并按照如下公式确定MAC PDU的负荷域能够承载的数据量TBS_Byte_Request(以字节为单位)后,将TBS_Byte_Request发送给RLC层;
TBS_Byte_Request=TBS_Byte_Total-MAC_Header_Byte(MAC PDU子头的数据量值)-Other_Logical_Channel_Byte(包含MAC CE在内的其他逻辑信道的数据量值)。
步骤2:RLC层收到MAC指示的TBS_Byte_Request之后,将TBS_Byte_Request与RLC_PDU_MAX_LENGTH(单位字节)比较,如果TBS_Byte_Request>RLC_PDU_MAX_LENGTH,则进入步骤3;否则进入步骤4。
步骤3:将目前RLC层可用的SN的个数与门限值SN_th比较,当可用的SN的个数大于门限值SN_th时,进入步骤3.1;否则,进入步骤3.2。
步骤3.1:采用将TBS_Byte_Request划分为M份的思想,RLC层依次组出M个大小近似相等的新的RLC PDU(每个RLC PDU占用1个SN,共占用M个SN,其中,M为>=2的常数);并且将组成的M个新的RLC PDU发送给MAC层,由MAC层进一步组成MAC PDU。
步骤3.2:RLC层只组出来一个长度为RLC_PDU_MAX_LENGTH字节的RLC PDU;并且将新的RLC PDU通知给MAC层,由MAC层进一步组成MACPDU。
步骤4:RLC层根据MAC指示的TBS_Byte_Request组成一个新的RLCPDU,并且通知MAC层,由MAC层进一步组成MAC PDU。
需要说明的是:在步骤3.1中,要保证每一个RLC PDU中都包含的是完整的RLC SDU,即没有进行SDU分段,从而尽可能地减小RLC层的分段开销;
需要说明的是:在步骤3.2中,由于RLC层可用SN个数较少,所以只组装出一个尺寸为RLC_PDU_MAX_LENGTH字节的RLC PDU,这样可以避免在RLC层组装出多个新的RLC PDU而占用多个SN,从而达到节省SN资源的目的。
参见图8,本发明实施例提供一种数据处理装置,该装置包括:
MAC单元80,用于确定第一数据量值,将第一数据量值发送给RLC单元,第一数据量值为MAC PDU的负荷域能够承载的最大数据量值;并根据RLC单元发来的RLC PDU组装MAC PDU;
RLC单元81,将第一数据量值与第二数据量值进行比较,在根据比较结果确定第一数据量值大于第二数据量值时,组装出一个或多个RLC PDU,将组装出的RLC PDU发送给MAC单元;其中,每个RLC PDU承载的数据量值不大于第二数据量值;第二数据量值为预先设定的RLC PDU能够承载的最大数据量值,并且第二数据量值不大于MAC PDU子头的长度域能够指示的最大数据量值。
所述MAC单元80用于:
确定当前TTI待传输的TB大小;计算该TB大小与MAC子头的数据量值、MAC CE的数据量值的差值;将该差值确定为第一数据量值。
所述RLC单元81还用于:
在根据比较结果确定第一数据量值大于第二数据量值之后、并且组装出一个或多个RLC PDU之前,将当前可用的RLC PDU的序列号SN的个数与预先设定的SN占用个数门限值进行比较;所述SN占用个数门限值为小于系统定义的SN的总个数的正整数;
在根据比较结果确定当前可用的SN的个数大于所述SN占用个数门限值时,组装出M个RLC PDU,M为不小于2的正整数;在根据比较结果确定当前可用的SN的个数小于或等于SN占用个数门限值时,组装出一个RLC PDU。
所述RLC单元81还用于:按照如下公式确定所述SN占用个数门限值:
SN占用个数门限值=η*a/2;
其中,η是介于0到1之间的百分数。η的取值范围可以为10%~20%。
所述RLC单元81还用于:按照配置信息确定M的取值;或者,按照如下公式确定M的取值:
M=ceil(TBS_Byte_Total/RLC_PDU_MAX_LENGTH),其中,ceil表示向上取整,TBS_Byte_Total表示MAC单元当前TTI待传输的TB大小,RLC_PDU_MAX_LENGTH表示第二数据量值。
组装出的M个RLC PDU中每个RLC PDU包含的RLC SDU为未进行SDU分段的完整的RLC SDU;
组装出的M个RLC PDU承载的数据量值之和不大于第一数据量值。
所述RLC单元81还用于:
在根据比较结果确定第一数据量值不大于第二数据量值时,组装出一个承载的数据量值等于第一数据量值的RLC PDU,将该RLC PDU发送给所述MAC单元。
本发明实施例还提供一种基站,该基站包括所述数据处理装置。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,在MAC PDU的负荷域能够承载的最大数据量值即第一数据量值大于一个RLC PDU能够承载的最大数据量值即第二数据量值时,RLC层组装出一个或多个承载的数据量值不大于第二数据量值的RLCPDU,并将组装出的RLC PDU发送给MAC层,MAC层根据接收到的RLC PDU组装MAC PDU。由于RLC层组装出的RLC PDU承载的数据量值不大于第二数据量值,以及第二数据量值不大于MAC PDU子头的长度域能够指示的最大数据量值,因此,MAC层根据RLC层发来的RLC PDU组装的MAC PDU中MAC SDU承载的数据量值,也就不大于MAC PDU子头的长度域能够指示的最大数据量值,那么,MAC PDU中的MAC子头的长度域就能够正确指示MACSDU承载的数据量。
相对于现有技术,当SN资源充足时,本发明可以有效地利用空口资源,进行超大TB块的传输,同时尽可能地降低RLC层的分段开销;
相对于现有技术,当SN资源缺乏时,本发明在保证数据传输速率的前提下节省了SN资源。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。