数据组包方法与装置制造方法

文档序号:7771043阅读:212来源:国知局
数据组包方法与装置制造方法
【专利摘要】本发明提供了一种数据组包方法与装置,其中,数据组包方法包括:确定待发送数据的RB是按照RB对应的SDU长度向量将待发送数据组织到上行授权资源中;先对组织到上行授权资源中的待发送数据进行MAC?SDU组包,再根据MAC?SDU组包结果确定MAC?PDU的实际头长与预留头长的差;或者,先确定在最后一个MAC?SDU中填充的RLC?PDU的长度再对组织到上行授权资源中的待发送数据进行MAC?SDU组包;根据MAC?PDU的实际头长与预留头长的差或者根据RLC?PDU的长度,在MAC层和物理层共享的缓冲区中,进行MAC?PDU的组包。通过本发明,避免地址空间浪费,提高MAC?PDU的组包速度和效率。
【专利说明】数据组包方法与装置
【技术领域】
[0001]本发明涉及通信【技术领域】,特别是涉及一种MAC(Medium Access Control,介质访问控制)F1DU (Packet Data Unit,分组数据单元)的组包方法与装置。
【背景技术】
[0002]LTECLong Time Evolution,长期演进)系统中,多种多样的终端数据业务展现出各自特有的性能需求,比如最典型的网页要求低响应时间、FTP (File Transfer Protocol,文件传输协议)业务要求数据的正确性、以及音视频业务对保证速率的要求。这些不同的业务数据对无线资源的分配和竞争,在LTE系统内会集中体现在MAC(Medium Access Control,介质访问控制)层的“多RB (Radio Bearer,无线承载)调度器”中。因为MAC层在数据面可以被理解为物理层和业务层的接口,MAC层将来自业务层的数据块以分组的形式存在于业务层的RLC (Radio Link Control,无线链路控制)层的缓存之中,而来自物理层的上行授权(UpLink grant, ULgrant)被不间断地通告给MAC层,因此,多RB调度器在功能上就需要高速且高效地将来自多个业务的RB上的数据分组,连续地组织到的ULgrant中。
[0003]多RB调度器在将RB上的数据分组组织到的ULgrant后,需要先将组织到ULgrant中的数据组织成MAC PDU包,然后再复制到物理层。一个MAC PDU包包含一个MAC PDU头、O或多个MAC SDU (Service Data Unit ;业务数据单元)、0或多个MAC控制单元,以及可能的填充。MAC PDU头和MAC SDUs (其中,SDUs为SDU的复数形式,表示多个SDU)的长度可变。一个MAC PDU头包含一个或多个MAC PDU子头;每个子头对应一个MAC SDU或一个MAC控制单元或填充。除MAC PDU内最后一个子头以及固定长度MAC控制单元的子头之外,MAC PDU子头包含R/R/E/LCID/F/L六个头字段,而MAC PDU内最后一个子头以及固定长度的MAC控制单元子头包含R/R/E/LCID四个头字段。填充对应的MAC PDU子头也包含四个头字段R/R/E/LCID。从上述MAC PDU的结构可以看出,MAC PDU头是一个可变的长度,只有组完MAC SDU之后才能确定MAC的PDU头长,所以,在组MAC SDU的时候无法确定组包的起始位置,需要借助于中间地址,在通过中间地址进行组包后,再拷贝到物理层的BUFFER (缓冲区)中。
[0004]但是,这种组包方法一方面需要额外的中间地址空间,另一方面也降低了 MAC PDU组包的速度和效率。

【发明内容】

[0005]本发明提供了一种MAC PDU的组包方法与装置,以解决现有MACPDU组包时,浪费地址空间,组包速度和效率不高的问题。
[0006]为了解决上述问题,本发明公开了一种数据组包方法,包括:确定待发送数据的无线承载是按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中,其中,所述业务数据单元长度向量中的元素分别用于标识所述无线承载的各业务数据单元的分段长度;先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包,再根据所述介质访问控制层业务数据单元组包结果,确定介质访问控制层分组数据单元的实际头长与预留头长的差,其中,所述预留头长大于或等于所述实际头长;或者,先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度,再对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包;当先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包时,则根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包;或者,当先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时,则根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
[0007]为了解决上述问题,本发明还公开了一种数据组包装置,包括:第一确定模块,用于确定待发送数据的无线承载是按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中,其中,所述业务数据单元长度向量中的元素分别用于标识所述无线承载的各业务数据单元的分段长度;第二确定模块,用于先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包,再根据所述介质访问控制层业务数据单元组包结果,确定介质访问控制层分组数据单元的实际头长与预留头长的差,其中,所述预留头长大于或等于所述实际头长;或者,用于先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度,再对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包;组包模块,用于当先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包时,则根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包;或者,当先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时,则根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
[0008]与现有技术相比,本发明具有以下优点:
[0009]首先,本发明的数据组包方案在进行MAC PDU组包时,通过获得MAC PDU的实际头长与预留头长的差,或者,通过获得最后一个MAC SDU中填充的RLCXRadio Link Control,无线链路控制)PDU的长度,实现了在协议规定的调度器特性的基础上,BUFFER零拷贝的方案,其直接使用MAC层和底层(物理层)共享的BUFFER进行MAC PDU的组包,MAC层直接把组包数据写入BUFFER,而不再通过中间地址进行组包后再拷贝到BUFFER中,从而减少了数据的拷贝次数,降低了 CPU load (CPU负载),也避免了地址空间浪费,提高了 MAC PDU的组包速度和效率。
[0010]其次,本发明中待发送数据的RB (Radio Bearer,无线承载)按照其对应的SDU长度向量,将待发送数据组织到ULgrant资源。SDU长度向量为RB的各待上传SDU分段的数据长度的向量,向量中的每一个元素都是RB的一个完整SDU分段,当资源充足时,按照SDU长度向量为RB分配的无线资源能够保证RB中SDU分段的完整传输,保护了 SDU的完整性,SDU的完整性是提高LTE整体性能的一个手段,它能够有效地降低SDU的分割,减小上层报 文的开销以及被重传的可能性。
【专利附图】

【附图说明】
[0011]图1是根据本发明实施例一的一种数据组包方法的步骤流程图;
[0012]图2是根据本发明实施例二的一种数据组包方法的步骤流程图;
[0013]图3是根据本发明实施例三的一种数据组包方法的步骤流程图;
[0014]图4是根据本发明实施例四的一种数据组包装置的结构框图;
[0015]图5是根据本发明实施例五的一种数据组包装置的结构框图。
【具体实施方式】
[0016]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0017]实施例一
[0018]参照图1,示出了根据本发明实施例一的一种数据组包方法的步骤流程图。
[0019]本实施例的数据组包方法包括以下步骤:
[0020]步骤S102:确定待发送数据的RB是按照RB对应的SDU长度向量,将待发送数据组织到ULgrant资源中。
[0021]其中,SDU长度向量中的兀素分别用于标识RB的各SDU的分段长度。
[0022]采用按照RB对应的SDU长度向量,将RB的待发送数据组织到ULgrant资源中的方式,除最后一个SDU外,其它SDU中的实际数据长度与SDU分段长度相同,也即,只要SDU分段长度确定,则对应的SDU中的实际数据长度即确定;而最后一个SDU中的实际数据长度可能小于也可能等于SDU分段长度,无法根据SDU分段长度确定最后一个SDU中的实际数据长度,也就无法根据SDU分段长度确定MAC PDU的头长。
[0023]在按照RB对应的SDU长度向量,将RB的待发送数据组织到ULgrant资源中时,可以先根据本RB对应的SDU长度向量获取大于或等于本RB的Bj、且与本RB的Bj最接近的SDU分段长度;然后选择获取的SDU的分段长度和当前剩余的ULgrant资源的长度中的小值作为本RB的第一轮资源分配值,按照第一轮资源分配值为本RB分配ULgrant资源。若第一轮资源分配后仍有待发送数据的RB,且仍有剩余的ULgrant资源,则可以继续按照第一轮资源分配的方法继续进行第二轮资源分配,直到所有RB的待上传数据全部获得ULgrant资源或者ULgrant资源耗尽。其中,Bj用于标识需要给RB分配的无线资源的长度。Bj在RB 未得到授权时,是 RB 的 PBR (Prioritised Bit Rate,保证速率)与 TTI (TransmissionTime Interval,传输时间间隔)的乘积,表示当前调度时需要在第一轮给RB分配的数据长度,该Bj随着时间的推移会逐渐增长。在为RB分配资源后,Bj会更新,从原Bj中减去为该RB分配的资源值,Bj可以为负值。
[0024]例如,一个RB有三个待上传的SDU分段,各SDU分段的数据长度均为5,则第一SDU分段的长度向量值为5,第二 SDU分段的长度向量值为10,第三SDU分段的长度向量值为15,该RB的SDU长度向量为{5,10,15}。若该RB的Bj为13,则选择的SDU分段长度为15。当ULgrant资源充足时,为该RB分配长度为15的ULgrant资源。
[0025]步骤S104:先对组织到ULgrant资源中的、待发送数据进行MAC SDU组包,再根据MAC SDU组包结果,确定MAC PDU的实际头长与预留头长的差;或者,先确定在最后一个MACSDU中填充的RLC PDU的长度,再对组织到ULgrant资源中的、待发送数据进行MAC SDU组包。
[0026]其中,预留头长大于或等于实际头长。
[0027]当按照RB对应的SDU长度向量,将待发送数据组织到ULgrant资源时,除最后一个MAC SDU外,其它MAC SDU对应的头长可以方便地根据该MAC SDU的SDU长度向量确定,但最后一个MAC SDU的的SDU长度向量指示的长度则有可能不能实现该MAC SDU的完整组包。因此,在MACPDU组包时,需要针对这种情况而进行特别处理。
[0028]当先进行MAC SDU组包时,MAC层和物理层共享的BUFFER中预留有足够的头长(也即预留头长)空间,进行MAC SDU组包后即可计算获得MAC PDU的实际头长,该实际头长与预留头长的差值即为实际MAC PDU与预留MAC PDU的偏差。依赖该偏差可以确定MAC PDU的实际起始地址和长度,实现直接的BUFFER写入,无须中间地址和再次拷贝。
[0029]当先确定在最后一个MAC SDU中填充的RLC PDU的长度时,可以根据该长度,和,根据最后一个MAC SDU的长度确定的最后一个MAC SDU的头长,再结合其它MAC SDU对应的头长,获得MAC PDU的实际头长,根据该实际头长即可确定MAC PDU的实际起始地址和长度,以及MACSDU的实际地址和长度,进而实现直接的BUFFER写入,无须中间地址和再次拷贝。
[0030]步骤S106:根据MAC PDU的实际头长与预留头长的差,或者,根据RLC PDU的长度,在MAC层和物理层共享的BUFFER缓冲区中,进行MACPDU的组包。
[0031]当进行了先对组织到ULgrant资源中的、待发送数据进行MAC SDU组包,再根据MAC SDU组包结果,确定MAC PDU的实际头长与预留头长的差后,可以根据MAC PDU的实际头长与预留头长的差,在MAC层和物理层共享的BUFFER缓冲区中,进行MAC PDU的组包。
[0032]当进行了先确定在最后一个MAC SDU中填充的RLC PDU的长度,再对组织到ULgrant资源中的、待发送数据进行MAC SDU组包后,可以根据RLC PDU的长度和计算出的各个MAC SDU对应的头长,在MAC层和物理层共享的BUFFER缓冲区中,进行MAC PDU的组包。
[0033]本实施例的数据组包方法的执行主体为资源分配装置,例如该资源分配装置具体可以为调度器。
[0034]通过本实施例,首先,待发送数据的RB按照其对应的SDU长度向量,将待发送数据组织到ULgrant资源。SDU长度向量为RB的各待上传SDU分段的数据长度的向量,向量中的每一个元素都是RB的一个完整SDU分段,当资源充足时,按照SDU长度向量为RB分配的无线资源能够保证RB中SDU分段的完整传输,保护了 SDU的完整性,SDU的完整性是提高LTE整体性能的一个手段,它能够有效地降低SDU的分割,减小上层报文的开销以及被重传的可能性。
[0035]其次,在进行MAC PDU组包时,通过获得MAC PDU的实际头长与预留头长的差,或者,通过获得最后一个MAC SDU中填充的RLC PDU的长度,实现了在协议规定的调度器特性的基础上,BUFFER零拷贝的方案,其直接使用MAC层和底层(物理层)共享的BUFFER进行MAC PDU的组包,MAC层直接把组包数据写入BUFFER,而不再通过中间地址进行组包后再拷贝到BUFFER中,从而减少了数据的拷贝次数,降低了 CPU load,也避免了地址空间浪费,提高了 MAC PDU的组包速度和效率。
[0036]实施例二
[0037]参照图2,示出了根据本发明实施例二的一种数据组包方法的步骤流程图。
[0038]本实施例的数据组包方法包括以下步骤:
[0039]步骤S202:调度器为Bj>0的RB进行ULgrant资源分配。
[0040]本实施例中,以执行主体为MAC层调度器为例详细介绍本发明的技术方案。
[0041]本实施例的资源分配方案基于两轮调度的基本框架,第一轮调度针对PBR结果Bj,对于Bj>0的RB,将ULgrant资源按照RB的优先级顺序,先根据Bj结果和SDU长度向量分配给各个RB。如果在ULgrant资源耗尽之前,各个信道都被满足,则可以进入第二轮调度。第二轮调度会将剩余的ULgrant资源,按照RB的优先级顺序,依次分配给还有待发数据的各RB。
[0042]具体地,本步骤可以包括:
[0043]步骤S2022:为Bj>0的RB生成SDU长度向量。
[0044]SDU长度向量为RB的各待上传SDU分段的长度向量。以一个RB为例,生成该RB的SDU长度向量的步骤包括:获取该RB的各SDU分段标识(如包括第一 SDU分段、第二 SDU分段和第三SDU分段)的长度值;对于每一个SDU分段,将本SDU分段所标识的长度值与本SDU分段前的所有SDU分段所标识的长度值的和,作为本SDU的分段长度(如单个SDU分段所标识的长度值均为5,则第一 SDU的分段长度5为该RB的SDU长度向量中的第一个元素、第二 SDU的分段长度5+5 = 10为该RB的SDU长度向量中的第二个元素,第三SDU的分段长度5+5+5 = 15为该RB的SDU长度向量中的第三个元素);按照该RB中的各SDU分段的前后顺序,以各SDU的分段长度为元素生成该RB的SDU长度向量(该RB的SDU长度向量为{5,10,15})。其中,SDU分段所标识的长度值是一个SDU分段所能标识的长度值,即该SDU分段的长度的值。
[0045]步骤S2024:获取ULgrant资源,调度器确定Bj>0的RB。
[0046]本实施例中,设定Bj>0的RB包括RB-l、RB-2、RB-3、RB-4和RB-5,相对应地,每个RB 的 SDU 长度向量分别为{5,10,15}、{5,10,15,20}、{5,10,15}、{5,10,15}和{5,10,15,
20}。
[0047]本实施例中,对于Bj大于O的上述各RB可以按照优先级的顺序进行后续的ULgrant资源分配处理。
[0048]步骤S2026:调度器获取Bj>0的各RB的Bj,从各RB对应的SDU长度向量中获取大于本RB的Bj、且与本RB的Bj最接近的SDU分段长度。
[0049]本实施例中,设定RB-1的Bj为5、RB-2的Bj为13、RB_3的Bj为8、RB_4的Bj为
9、RB-5的Bj为18。并且,如上所述,RB-1、RB-2、RB-3、RB-4和RB-5对应的SDU长度向量分别为{5,10,15}、{5,10,15,20}, {5,10,15}、{5,10,15}和{5,10,15,20}。因此,调度器确定的各RB的SDU分段长度分别为5、15、10、10和20。
[0050]步骤S2028:调度器将获取的SDU的分段长度和当前剩余的ULgrant资源的长度中的小值作为本RB的第一轮资源分配值,按照第一轮资源分配值分配ULgrant资源给本RB。
[0051]ULgrant资源通常以长度形式表示和度量,因此,本步骤中的当前剩余的ULgrant资源的长度能够表示当前剩余的ULgrant资源。
[0052]本实施例中,设定SDU的分段长度和当前剩余的ULgrant资源的长度中,SDU的分段长度为小值,则调度器将确定的各RB的SDU的分段长度作为第一轮资源分配值,根据该值为各RB分配上行授权资源。
[0053]步骤S20210:对于每一个RB,调度器将该RB的Bj减去对应RB的第一轮资源分配值后的结果作为该RB的新Bj。
[0054]也即,Bj (n) = Bj (n)-lk(n),其中,第一个Bj (η)表示第η个RB的新Bj,第二个Bj (η)表示第η个RB的原Bj,Ik (η)表示第η个RB的第一轮资源分配值,k表示该RB的
SDU向量序号。
[0055]步骤S20212:在上述为各个待发送数据的RB按照各自对应的SDU长度向量进行第一轮的ULgrant资源分配之后,若ULgrant资源有剩余,则根据仍有待上传数据的RB的优先级,按照仍有待上传数据的RB对应的SDU长度向量,为仍有待上传数据的RB分配ULgrant资源,直到所有RB的待上传数据全部获得ULgrant资源或者ULgrant资源耗尽。
[0056]也即,在进行上述步骤后,若ULgrant资源分配给Bj大于O的各RB后有剩余,则按照仍有待上传数据的RB的优先级,为仍有待上传数据的RB分配ULgrant资源,直到所有RB的待上传数据全部获得ULgrant资源或者ULgrant资源耗尽。
[0057]第一轮调度在正常情况下,可能并不能将待发数据全部待发完,这时信道上还有剩余SDU。如果此时还有剩余 的ULgrant资源,可以进行ULgrant资源分配的第二轮调度。
[0058]第二轮调度可以采用多种方式,
[0059]例如,优选地,若同一优先级的仍有待上传数据的RB有至少两个,则根据各个RB对应的LC (逻辑信道)的ID (标识)的排列顺序,按照各个RB对应的SDU长度向量,将剩余的ULgrant资源轮转分配给仍有待上传数据的RB。
[0060]再例如,优选地,若同一优先级的仍有待上传数据的RB有N个,且N个RB中有M个RB的待上传数据的长度Ii小于或等于讥_/^,其中,吣1^〈=10〈=丨〈=1-1,讥_为当前剩余的上行授权资源的长度;则为M个RB分配各自所需的Ii长度的上行授权资源,并按照
公式:Ul_ = IHuUZN — U更新UIm ;为剩余的N— M个RB分配U1m/N的上行授
权资源,并将更新后的UIm指示的上行授权资源迭代平均分配给剩余的N— M个RB。
[0061 ] 其中,将更新后的UIm指示的上行授权资源迭代平均分配给剩余的N— M个RB包括:将N-M个RB视为新的上述操作(上一段中描述的操作)中的N个RB,再一次施行上述操作,反复执行,直到新一轮的N-M为1,则将所有的剩余上行授权资源分配给该RB。
[0062] 再例如,优选地,在按照RB的优先级,为仍有待上传数据的RB分配上行授权资源的过程中,当首次对同一优先级的N个RB,且N个RB中有M个RB的待上传数据的长度Ii小于或等于U1M/N进行资源分配时,其中,N>1, M〈=N,0〈=i〈=M-l,UIm为当前剩余的上行授权资源的长度;则为M个RB分配各自所需的Ii长度的上行授权资源,并按照公式:
Ulrem = (Ulrem/N — Ii)更新U1M,获得更新后的UIm ;对剩余的N—M个RB (即剩余的
N-M个数据长度大于U1m/N的RB)中的每个RB,获取本RB已分配到的上行授权资源(即第一轮调度分配到的授权长度),并与更新前的U1m/N相加得到本RB的Ulavg,从本RB对应的SDU长度向量中获取小于本RB的Ulavg、且与本RB的Ulavg最接近的SDU长度,作为本RB的授权长度Ij,其中,各RB的SDU长度向量在本RB每次获得上行授权资源后更新,0〈=j〈=N-M ;按照所有剩余的、仍有待上传数据的RB的标识(ID)排列顺序,将更新后的Ulreni指示的上行授权资源轮转分配给所有剩余的、仍有待上传数据的RB。例如,假定同优先级的RB为ABCD四个,本次调度到这个阶段,CD尚需资源分配时则本次分配给C,下次调度到这个阶段,如果还有CD需分配资源,则将资源分配给D。但不限于上述方式,第二轮调度还可以采用现有的调度方法,如,当调度到第二轮的时候,高优先级RB更有可能分配到剩余的ULgrant资源,并且这些ULgrant资源会倾向于满足所有的待发数据。
[0063]步骤S204:调度器确定待发送数据的RB已按照RB对应的SDU长度向量,将待发送数据组织到ULgrant资源中。
[0064]步骤S206:调度器确定MAC PDU的头长,并根据确定后的MAC PDU头长,进行MACrou组包。
[0065]一种可行方式是,先对组织到ULgrant资源中的、待发送数据进行MACSDU组包,再根据MAC SDU组包结果,确定MAC PDU的实际头长与预留头长的差,其中,预留头长大于或等于实际头长;然后,根据MAC PDU的实际头长与预留头长的差,在MAC层和物理层共享的BUFFER缓冲区中,进行MAC PDU的组包。
[0066]具体地,因预留头长是已知的,可以先将MAC层和物理层共享的BUFFER的首地址加上预留头长,得到SDU组包起始地址;从SDU组包起始地址开始,对组织到ULgrant资源中的、本RB的待发送数据进行MACSDU组包;在进行MAC SDU组包后,即可采用传统方式计算出MAC PDU的实际头长;然后,确定MAC PDU的实际头长与预留头长的差;在确定了 MACPDU的实际头长与预留头长的差之后,将MAC层和物理层共享的BUFFER的首地址加上实际头长与预留头长的差,得到PDU组包起始地址;从PDU组包起始地址开始,进行MAC PDU的组包,先写入MAC PDU的头部数据,再写入MAC SDU数据。
[0067]另一种可行方式是,先确定在最后一个MAC SDU中填充的RLC PDU的长度,再对组织到ULgrant资源中的、待发送数据进行MAC SDU组包;然后,根据RLC PDU的长度,在MAC层和物理层共享的BUFFER缓冲区中,进行MAC PDU的组包。此种方式又可以进一步分为两种方式:
[0068]方式一,在进行MAC SDU组包前,通知RLC层确定本RB的最后一个MAC SDU中填充的RLC PDU的长度;从RLC层获取确定的所述长度;再对组织到ULgrant资源中的、待发送数据进行MAC SDU组包;根据最后一个MAC SDU中填充的RLC PDU的长度,和根据各个MACSDU的长度计算出的各个MAC SDU对应的头长,确定MAC PDU的头长;再根据确定的MAC PDU的头长和MAC SDU的长度,在MAC层和物理层共享的BUFFER中,进行MAC PDU的组包。
[0069]方式二,将最后一个MAC SDU在ULgrant资源中的普通填充(common padding,即填充数超过2个字节的填充)的长度,确定为最后一个MAC SDU中填充的RLC PDU的长度;再对组织到ULgrant资源中的、待发送数据进行MAC SDU组包;然后,获取最后一个MAC SDU在ULgrant资源中的授权长度;根据获取的授权长度,确定最后一个MAC SDU的头长为中头(即MAC PDU子头包含六个头字段R/R/E/LCID/F/L时,其中L头字段为7个bit的头长)与普通填充的长度之和,或者,为长头(即MAC PDU子头包含六个头字段R/R/E/LCID/F/L时,其中L头字段为15个bit的头长)与普通填充的长度之和;接着,根据确定的最后一个MACSDU的头长,以及,其它各个MAC SDU的长度对应的各个MAC SDU的头长,确定MAC PDU的头长;再然后,根据MAC PDU的头长和MAC SDU的长度,在MAC层和物理层共享的BUFFER中,进行MAC PDU组包。
[0070]通过本实施例,在协议规定的调度器特性的基础上,提供了一种BUFFER零拷贝方案,直接使用MAC层和底层(物理层)共享的BUFFER进行MAC的组包,减少了一次拷贝,从而降低了 CPU load。并且,针对BUFFER零拷贝对调度器进行了改进,对同优先级LC采用了一种轮询方式进行了公平性的近似处理。多个同优先级公平性,因为与当前信道的待发数据量直接相关所以较为复杂。本实施例采用了基础公平保证+剩余轮询的方式,前者保证每个同优先级RB都能得到均值内最大限度的完整SDU个数的授权,而剩余轮询也能确保最大限度的完整SDU个数的授权,同时兼顾公平原则,算法处理的复杂性也是可以接受的。
[0071]实施例三
[0072]参照图3,示出了根据本发明实施例三的一种数据组包方法的步骤流程图。
[0073]本实施例仍基于两轮调度的基本框架,从两轮调度和BUFFER零拷贝层面对本实施例的数据组包方法进行说明。
[0074]本实施例的数据组包方法包括以下步骤:
[0075]步骤S302 =MAC调度器对所有Bj大于O的RB进行第一轮调度。
[0076]本步骤在ULgrant授权通告到达UE时执行,针对所有Bj大于O的RB,按照优先级的顺序(同优先级则按照ID顺序)分配ULgrant资源。每个RB得到的ULgrant授权长度Grantstepl为:SDU向量中从Bj向上取整值、和剩余ULgrant即Ulrail中的最小值。同时,更新 Bj 为 Bj-Grantstepl。
[0077]具体地,第一轮调度针对PBR结果Bj:将ULgrant按照RB的优先级顺序,先根据Bj结果和待发数据长度分配资源给各个RB ;如果在ULgrant耗尽之前,各个信道都被满足,则可以进入第二轮调度,而第二轮``调度会将剩余的ULgrant,按照RB的优先级顺序,依次分配给还有待发数据的各RB。
[0078]具体的各调度轮次情形如下:
【权利要求】
1.一种数据组包方法,其特征在于,包括: 确定待发送数据的无线承载是按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中,其中,所述业务数据单元长度向量中的元素分别用于标识所述无线承载的各业务数据单元的分段长度; 先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包,再根据所述介质访问控制层业务数据单元组包结果,确定介质访问控制层分组数据单元的实际头长与预留头长的差,其中,所述预留头长大于或等于所述实际头长;或者,先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度,再对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包; 当先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包时,则根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包; 或者, 当先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时,则根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
2.根据权利要求1所述的方法,其特征在于, 所述先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包的步骤包括:将所述介质访问控制层和物理层共享的缓冲区的首地址加上所述预留头长,得到业务数据单元组包起始地址;从所述业务数据单元组包起始地址开始,对组织到所述上行授权资源中的、所述待发送数据进行所述介质访问控制层业务数据单元的组包;` 所述根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包的步骤包括:将所述介质访问控制层和物理层共享的缓冲区的首地址加上所述实际头长与预留头长的差,得到分组数据单元组包起始地址;从所述分组数据单元组包起始地址开始,进行所述介质访问控制层分组数据单元的组包。
3.根据权利要求1所述的方法,其特征在于, 所述确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度的步骤包括:在进行所述介质访问控制层业务数据单元组包前,通知无线链路控制层确定所述最后一个介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度;从所述无线链路控制层获取确定的所述长度; 所述根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包的步骤包括:根据所述无线链路控制层分组数据单元的长度,和各个所述介质访问控制层业务数据单元的长度,确定所述介质访问控制层分组数据单元的头长;根据确定的所述介质访问控制层分组数据单元的头长和所述介质访问控制层业务数据单元的长度,在所述介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
4.根据权利要求1所述的方法,其特征在于, 所述确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度的步骤包括:将所述最后一个介质访问控制层业务数据单元在所述上行授权资源中的普通填充的长度,确定为所述最后一个介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度; 所述根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包的步骤包括:获取所述最后一个介质访问控制层业务数据单元在所述上行授权资源中的授权长度;根据获取的所述授权长度,确定所述最后一个介质访问控制层业务数据单元的头长为中头与所述普通填充的长度之和,或者,为长头与所述普通填充的长度之和;根据所述最后一个介质访问控制层业务数据单元的头长,和其它各个所述介质访问控制层业务数据单元的长度,确定所述介质访问控制层分组数据单元的头长;根据确定的所述介质访问控制层分组数据单元的头长和所述介质访问控制层业务数据单元的长度,在所述介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
5.根据权利要求1所述的方法,其特征在于,在所述确定待发送数据的无线承载已按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中的步骤之前,还包括: 在为各个待发送数据的无线承载按照各自对应的业务数据单元长度向量进行第一轮的上行授权资源分配之后,若所述上行授权资源有剩余,则根据仍有待上传数据的无线承载的优先级,按照所述仍有待上传数据的无线承载对应的业务数据单元长度向量,为所述仍有待上传数据的无线承载分配上行授权资源,直到所有无线承载的待上传数据全部获得上行授权资源或者所述上行授权资源耗尽。
6.根据权利要求5所述的方法,其特征在于,所述根据仍有待上传数据的无线承载的优先级,按照所述仍有待上传数据的无`线承载对应的业务数据单元长度向量,为所述仍有待上传数据的无线承载分配上行授权资源的步骤包括: 若同一优先级的所述仍有待上传数据的无线承载有至少两个,则根据各个无线承载对应的逻辑信道的标识的排列顺序,按照各个所述无线承载对应的业务数据单元长度向量,将剩余的所述上行授权资源轮转分配给所述仍有待上传数据的无线承载。
7.一种数据组包装置,其特征在于,包括: 第一确定模块,用于确定待发送数据的无线承载是按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中,其中,所述业务数据单元长度向量中的元素分别用于标识所述无线承载的各业务数据单元的分段长度; 第二确定模块,用于先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包,再根据所述介质访问控制层业务数据单元组包结果,确定介质访问控制层分组数据单元的实际头长与预留头长的差,其中,所述预留头长大于或等于所述实际头长;或者,用于先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度,再对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包; 组包模块,用于当先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包时,则根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包;或者,当先确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时,则根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
8.根据权利要求7所述的装置,其特征在于, 所述第二确定模块在先对组织到所述上行授权资源中的、所述待发送数据进行介质访问控制层业务数据单元组包时:将所述介质访问控制层和物理层共享的缓冲区的首地址加上所述预留头长,得到业务数据单元组包起始地址;从所述业务数据单元组包起始地址开始,对组织到所述上行授权资源中的、所述待发送数据进行所述介质访问控制层业务数据单元的组包; 所述组包模块在根据所述介质访问控制层分组数据单元的实际头长与预留头长的差,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包时:将所述介质访问控制层和物理层共享的缓冲区的首地址加上所述实际头长与预留头长的差,得到分组数据单元组包起始地址;从所述分组数据单元组包起始地址开始,进行所述介质访问控制层分组数据单元的组包。
9.根据权利要求7所述的装置,其特征在于, 所述第二确定模块在确定 在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时:在进行所述介质访问控制层业务数据单元组包前,通知无线链路控制层确定所述最后一个介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度;从所述无线链路控制层获取确定的所述长度; 所述组包模块在根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包时:根据所述无线链路控制层分组数据单元的长度,和各个所述介质访问控制层业务数据单元的长度,确定所述介质访问控制层分组数据单元的头长;根据确定的所述介质访问控制层分组数据单元的头长和所述介质访问控制层业务数据单元的长度,在所述介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
10.根据权利要求7所述的装置,其特征在于, 所述第二确定模块在确定在最后一个所述介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度时:将所述最后一个介质访问控制层业务数据单元在所述上行授权资源中的普通填充的长度,确定为所述最后一个介质访问控制层业务数据单元中填充的无线链路控制层分组数据单元的长度; 所述组包模块在根据所述无线链路控制层分组数据单元的长度,在介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包时:获取所述最后一个介质访问控制层业务数据单元在所述上行授权资源中的授权长度;根据获取的所述授权长度,确定所述最后一个介质访问控制层业务数据单元的头长为中头与所述普通填充的长度之和,或者,为长头与所述普通填充的长度之和;根据所述最后一个介质访问控制层业务数据单元的头长,和其它各个所述介质访问控制层业务数据单元的长度,确定所述介质访问控制层分组数据单元的头长;根据确定的所述介质访问控制层分组数据单元的头长和所述介质访问控制层业务数据单元的长度,在所述介质访问控制层和物理层共享的缓冲区中,进行所述介质访问控制层分组数据单元的组包。
11.根据权利要求7所述的装置,其特征在于,还包括: 调度模块,用于在所述第一确定模块确定待发送数据的无线承载已按照所述无线承载对应的业务数据单元长度向量,将所述待发送数据组织到上行授权资源中之前,在为各个待发送数据的无线承载按照各自对应的业务数据单元长度向量进行第一轮的上行授权资源分配之后,若所述上行授权资源有剩余,则根据仍有待上传数据的无线承载的优先级,按照所述仍有待上传数据的无线承载对应的业务数据单元长度向量,为所述仍有待上传数据的无线承载分配上行授权资源,直到所有无线承载的待上传数据全部获得上行授权资源或者所述上行授权资源耗尽。
12.根据权利要求11所述的装置,其特征在于,所述调度模块在根据仍有待上传数据的无线承载的优先级,按照所述仍有待上传数据的无线承载对应的业务数据单元长度向量,为所述仍有待上传数据的无线承载分配上行授权资源时:若同一优先级的所述仍有待上传数据的无线承载有至少两个,则根据各个无线承载对应的逻辑信道的标识的排列顺序,按照各个所述无线 承载对应的业务数据单元长度向量,将剩余的所述上行授权资源轮转分配给所述仍有待上传数据的无线承载。
【文档编号】H04W28/06GK103517335SQ201310430649
【公开日】2014年1月15日 申请日期:2013年9月18日 优先权日:2013年9月18日
【发明者】周翠平, 朱文博, 丁丽洁, 蒋诗梅, 周光明 申请人:北京创毅讯联科技股份有限公司, 北京创毅视讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1