一种LTE基站上层多用户的调度方法转让专利

申请号 : CN201310176298.7

文献号 : CN104159316B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何苏勤刘兵何宾胡巧芝仉乾隆

申请人 : 北京化工大学

摘要 :

本发明提供了一种基于长期演进(LTE)的专用无线传输系统中对多用户优先级进行管理和调度的处理方法。该方法为用户设置了一个优先级,并以具有高优先级的用户优先得到处理时间为调度策略,在基站(eNodeB)端RRC层中调度用户并对用户的数据进行处理。本发明的优先级算法考虑到了用户的等待时间和数据量,并且基站根据优先级算法定期调整用户的优先级。为了区分重要性不同的用户,处于就绪状态的上下文实体存储在多级优先级队列中,而每个优先级队列以最大堆(堆顶存储优先级最高的UE上下文实体)为存储结构,在调度时存储在堆顶的元素即是下一个被调度的UE上下文实体。本方法使用户之间的数据能够可靠传输,同时,提高了系统的实时性和传输效率。

权利要求 :

1.一种LTE基站上层多用户的调度方法,该方法通过多线程同步技术实现,由数据缓存模块(1)、发送线程处理模块(2)、用户优先级模块(3)、用户状态模块(4)、就绪状态用户队列模块(5)、用户上下文实体模块(6)、用户管理器模块(7)、接收线程处理模块(8)构成,包括以下步骤:

1.1.所述的数据缓存模块(1)在基站初始化时申请一组固定的存储空间作为缓存,并组织成空闲缓存链表,方便接收线程处理模块(8)和发送线程处理模块(2)存取用户数据;

1.2.接收线程处理模块(8)负责接收用户发送的数据,并使用数据缓存模块(1)提供的接口获取一个空闲的缓存存储接收到的用户数据,同时调用用户上下文实体模块(6)的接口将缓存中的数据存储在相应用户的缓存队列中;

1.3.发送线程处理模块(2)通过调用就绪状态用户队列模块(5)的接口获取下一个被调度的用户,并处理存储在被调度用户的缓存队列中的数据,一次调度只对固定数量的缓存中的数据进行处理;

1.4.用户优先级模块(3)首先根据式子 定期更新数据缓存队列中的所有

缓存当前的等待时间,然后通过优先级计算公式: 更新用户的优

先级;

2.根据权利要求1所述的一种LTE基站上层多用户的调度方法,其特征在于:前述步骤

1.3中发送线程处理模块(2)包含以下步骤:

2.1.发送线程从线程创建开始工作直到主线程退出或者系统异常结束;发送线程循环地通过就绪状态用户队列模块(5)提供的接口获取被调度的用户,如果成功获取被调度的用户,将修改其状态为执行状态;

2.2.发送线程获取当前被调度的用户后,通过访问该用户数据缓存队列中的缓存地址,获取存储在缓存地址中的用户数据,并调度RLC(Radio Link Control,无线链路控制)层的接口将数据发送给目标用户,发送完成之后将缓存地址加入到空闲缓存链表中,以存储其它用户数据;

3.根据权利要求1所述的一种LTE基站上层多用户的调度方法,其特征在于:前述步骤

1.4中用户优先级算法包括以下步骤:

3.1.首先对加入到就绪状态队列模块(5)的UE上下文实体的优先级进行初始化,初始化的值为 其中N为用户数据缓存队列中的数据缓存个数;

3.2.接收线程处理模块(8)将存储数据的缓存地址加入到相应用户数据缓存队列的尾部时,需要将数据缓存的等待时间初始化为1;

3.3.用户优先级模块(3)定期遍历每个优先级队列,如果队列中存在UE上下文实体,则遍历队列中所有UE上下文实体,对于队列中的某个UE上下文实体,首先更新其等待时间,然后通过优先级算法更新其优先级,直到完成所有UE上下文实体优先级的更新;

4.根据权利要求1所述的一种LTE基站上层多用户的调度方法,其特征在于:就绪状态队列模块(5)以多级优先级队列存储了处于就绪状态的UE上下文实体,每个优先级队列以Max heap(最大堆)为存储结构,用户优先级模块(3)定期通过上述步骤1.4中的优先级算法更新就绪状态队列模块(5)中UE上下文实体的优先级,每次更新完成后,需要调整Max heap以保持优先级最高的UE上下文实体在堆顶,在发送线程处理模块(2)调度时,不需要再对UE上下文实体排序,直接取出堆顶的UE上下文实体作为下一个被调度的用户。

说明书 :

一种LTE基站上层多用户的调度方法

技术领域

[0001] 本发明涉及无线通信领域,且更具体地涉及LTE(Long Term Evolution,长期演进)系统中对多用户优先级进行管理和调度的处理方法。

背景技术

[0002] LTE技术所具有的高移动性和高带宽等优点,使得它不仅能够应用于商用的移动网络,而且在专用的小型无线通信系统中也能得到很好的应用。在基于LTE的专用小型无线通信系统中,应用场景为单基站多用户,基站无需接入核心网,因此需要对LTE标准协议进行裁剪,同时,需要在基站RRC(Radio Resource Control,无线资源控制)层中增加对多用户的处理和调度的功能。
[0003] 在多个用户同时与基站通信的情况下,如何公平地选择一个用户进行处理成为了一个关键的因素。为了实现基站对多用户的处理,通常的一种选择方法是基站轮询处理每一个需要处理的用户。该方法实际上是以先来先服务的方式处理用户,基站一旦接收到用户的数据,立即对其进行处理。处理完成后,采用同样的方法对后续接收到的数据进行处理。虽然此方法降低了实现的复杂度,但是当某个用户一直占用基站的处理时间时,会造成其它用户等待的情况,这样会带来严重的延时。
[0004] 因此,在基站对多用户进行处理时,需要一种合理的方法对用户进行调度处理,以保证整个系统具有较低的延时。

发明内容

[0005] 本发明提供了基于长期演进(LTE)的专用无线传输系统下基站RRC层对多用户进行处理的调度方法。该方法为每个UE(User Equipment,用户设备)上下文实体分配了一个优先级,具有高优先级的用户优先被调度作为下一个被处理的用户。同时,根据用户的数据量和等待时间定期调整用户的优先级,从而避免处理器时间被同一个用户一直占用以致某些用户得不到处理,达到了用户之间公平通信的要求。通过采用这种调度方法,降低了用户之间通信延时,从而改善了系统性能。
[0006] 本发明是采用以下技术手段实现的:
[0007] 1.一种LTE基站上层多用户调度的方法,该方法通过多线程同步技术实现,由数据缓存模块(1)、发送线程处理模块(2)、用户优先级模块(3)、用户状态模块(4)、就绪状态用户队列模块(5)、用户上下文实体模块(6)、用户管理器模块(7)、接收线程处理模块(8)构成,包括以下步骤:
[0008] 1.1.所述的数据缓存模块(1)在基站初始化时申请一组固定的存储空间作为缓存,并组织成空闲缓存链表,方便接收线程处理模块(8)和发送线程处理模块(2)存取用户数据;
[0009] 1.2.接收线程处理模块(8)负责接收用户发送的数据,并使用数据缓存模块(1)提供的接口获取一个空闲的缓存存储接收到的用户数据,同时调用用户上下文实体模块(6)的接口将缓存中的数据存储在相应用户的缓存队列中;
[0010] 1.3. 发送线程处理模块(2)通过调用就绪状态用户队列模块(5)的接口获取下一个被调度的用户,并处理存储在被调度用户的缓存队列中的数据,一次调度只对固定数量的缓存中的数据进行处理;
[0011] 1.4.用户优先级模块(3)首先根据式子 定期更新数据缓存队列中的所有缓存当前的等待时间,然后通过优先级计算公式: 更新用
户的优先级;
[0012] 2.前述步骤1.3中发送线程处理模块(2)包含以下步骤:
[0013] 2.1.发送线程从线程创建开始工作直到主线程退出或者系统异常结束;发送线程循环地通过就绪状态用户队列模块(5)提供的接口获取被调度的用户,如果成功获取被调度的用户,将修改其状态为执行状态;
[0014] 2.2.发送线程获取当前被调度的用户后,通过访问该用户数据缓存队列中的缓存地址,获取存储在缓存地址中的用户数据,并调度RLC(Radio Link Control,无线链路控制)层的接口将数据发送给目标用户,发送完成之后将缓存地址加入到空闲缓存链表中,以存储其它用户数据;
[0015] 3. 前述步骤1.4中用户优先级算法包括以下步骤:
[0016] 3.1. 首先对加入到就绪状态队列模块(5)的UE上下文实体的优先级进行初始化,初始化的值为 ,其中N为用户数据缓存队列中的数据缓存个数;
[0017] 3.2. 接收线程处理模块(8)将存储数据的缓存地址加入到相应用户数据缓存队列的尾部时,需要将数据缓存的等待时间初始化为1;
[0018] 3.3.用户优先级模块(3)定期遍历每个优先级队列,如果队列中存在UE上下文实体,则遍历队列中所有UE上下文实体,对于队列中的某个UE上下文实体,首先更新其等待时间,然后通过优先级算法更新其优先级,直到完成所有UE上下文实体优先级的更新;
[0019] 4. 就绪状态队列模块(5)以多级优先级队列存储了处于就绪状态的UE上下文实体,每个优先级队列以Max heap(最大堆)为存储结构,用户优先级模块(3)定期通过上述步骤1.4中的优先级算法更新就绪状态队列模块(5)中UE上下文实体的优先级,每次更新完成后,需要调整Max heap以保持优先级最高的UE上下文实体在堆顶,在发送线程处理模块(2)调度时,不需要再对UE上下文实体排序,直接取出堆顶的UE上下文实体作为下一个被调度的用户;

附图说明

[0020] 图1为本发明的系统基本框图;
[0021] 图2为本发明的数据缓存模块框图;
[0022] 图3 为优先级算法的流程图;
[0023] 图4为系统接收线程的处理流程图;
[0024] 图5为系统发送线程的处理流程图。

具体实施方式

[0025] 以下结合说明书附图对本发明的实施例做进一步的说明:
[0026] 本发明的系统基本框图为图1,从图可以得知用户数据在基站端的处理过程。接收线程处理模块(8)接收到UE发送的数据后根据数据所属用户的标识,从用户管理模块(7)中获得UE上下文实体,然后从数据缓存模块(1)中获取空闲缓存地址以存储接收到的数据,并将数据置于用户上下文实体的数据队列的队尾。发送线程处理模块(2)通过用户优先级模块(3)提供的接口选取优先级最高的UE上下文实体,随后从其数据队列队头取出缓存地址并将缓存中的数据发送给目标UE。用户管理器模块(7)管理用户上下文实体,并提供了操作增加、删除、查询等用户上下文实体等操作的接口。而用户上下文实体模块(6)维护了用户的信息,包括用户标识、与基站的连接状态、用户当前状态、用户待发送数据的缓存队列、用户的优先级,并提供了操作这些信息的接口。
[0027] 用户状态模块(4)对用户的状态进行管理。用户上下文实体在不同时刻处于以下三种状态中的某一种状态,即执行状态、等待状态和就绪状态。当RRC连接建立完成后,用户上下文实体为等待状态,等待用户发送数据到基站。如果当前用户为等待状态,当基站接收到该用户数据时,需要修改其状态为就绪状态;正在被调度处理的用户的状态为执行状态,当一次处理完成后,发送线程根据用户是否还有数据需要处理以决定用户上下文实体在下一刻的状态,如果此用户上下文实体还有数据需要处理,则该用户从执行状态迁移到就绪状态,否则迁移到等待状态。每种状态的用户上下文实体数量的总和等于建立RRC连接的用户数量。
[0028] 图2为空闲数据缓存队列的结构图。在系统初始化时,根据系统资源的多少分配一定数量数据缓存。数据缓存用来暂时存储基站接收到终端的数据,其地址是连续的,通过改变其结构体的数据缓存指针,使所有空闲的缓存成为一个逻辑上连续,但物理上不连续的队列,这样数据缓存模块(1)在对缓存进行操作时,能够很快的完成存取操作,从而节省系统时间开销。每一个数据缓存的大小由视频数据帧最大值而定,本方法中设为1500字节。当系统初始化时分配的数据缓存被基站使用完之后,必须再次向系统申请增加一定数据的数据缓存,本方法中再次申请增加的数据缓存大小为初始时的二分之一,申请成功之后根据步骤1.1中提到的方法组织成链式的队列,并插入到空闲数据缓存队列中。
[0029] 优先级算法考虑了用户数据量和等待时间两个因素。在上述步骤1.4中,Wn,k是用户n的数据缓存队列中第k个缓存的等待时间,N为数据缓存队列的长度,反应了用户的数据量。由于接收线程处理模块(8)按接收到数据的先后顺序将数据加入到用户数据缓存队列中,因此,如果k1<k2,那么缓存地址k1比缓存地址k2先入数据缓存队列,且满足以下关系:
[0030]
[0031] 考虑到优先级与用户数据量和等待时间有关,为了反映数据缓存的等待时间对优先级的影响程度,在计算优先级时,需要增加一个因子表示相应数据缓存的权重。由于离缓存队列队头越近的数据缓存等待时间越大,对优先级的影响就越大,则选择因子表示第k个缓存的权重。将所有数据缓存的等待时间与其权重相乘求和后得到用户n的优先级,设为Pn,其计算式子如下:
[0032]
[0033] 每次调整用户优先级的过程中,首先更新用户数据当前的等待时间,对于每一个用户的每一个数据缓存都有一个等待时间的记录,在数据缓存地址加入到用户上下文实体的数据缓存队列中时,等待时间初始化为1个单位,每进行一次更新,其值就加1。优先级算法的流程图如图3所示。
[0034] 就绪状态用户队列模块(5)存储了处于就绪状态的用户上下文实体,发送线程进行调度时,从该模块中选择合适的用户进行处理。用户上下文实体使用多级优先级队列进行存储,不同的优先级队列反映了存储的UE上下文实体的重要性程度。在调度过程中,首先从第一级的队列中选择优先级最高的用户,如果第一级队列中没有需要调度的用户,则从第二级中选择,以此类推,调度程序总是先从优先级最高的队列中选择合适的用户。而在每一级优先级队列中,使用最大堆存储用户实体。最大堆本质是一个连续的数组,具有二叉树的性质,通过下标的运算可以方便的找到节点的子节点和父节点。根据最大堆的性质,优先级最高的用户存储在堆顶,在调度程序进行调度时,可以在时间复杂度为O(1)(完成操作执行的语句次数是一个常数)的时间内选择优先级最高的用户。调度程序取走堆顶的用户后需要调整堆中元素位置使其满足堆性质,时间复杂度为O(lgn)(完成操作执行的语句次数与lgn的比为常数),其中n为优先级队列中的用户个数。
[0035] 图4为接收线程的处理过程。接收线程通过RLC层接口监听是否有用户的数据到来,如果无数据到来,则一直轮询。如果接收到终端用户发送的数据,则解析数据得到数据所属用户的标识,然后根据标识调用用户管理器模块的接口,获取该用户的上下文实体。同时调度数据缓存模块的接口,申请一定数量的空闲缓存以存储接收到的数据,并调用用户上下文实体模块接口将这些缓存置于用户上下文实体的数据队列尾部。随后接收线程需要调度用户优先级接口调整所有用户的上下文实体的优先级,如果该用户当前状态为等待状态,则需要修改其状态为就绪状态,初始化其优先级,并存储于就绪状态队列中。这样就完成一次数据的接收处理过程,随后继续监听低层是否有数据到来。
[0036] 图5为发送线程的处理过程。发送线程从就绪队列中选择优先级最高的用户上下文实体进行处理,获取优先级最高的用户上下文实体后,修改其状态为执行状态,通过用户上下文实体模块接口取三个数据缓存,如果不足够三个,则把所有缓存地址全取出,然后调用RLC层的接口发送数据。发送完成后,发送线程根据该用户上下文实体中数据队列中是否还有数据决定其新的状态,如果该用户还有数据需要处理,则新的状态为就绪状态,并通过就绪状态用户模块接口存储在就绪队列中;如果该用户无数据需要处理,则新的状态为等待状态,并通过调用用户管理器模块接口存储在用户等待队列中。完成这些处理后,发送线程调用优先级模块接口调整所有处于就绪状态的优先级,这样就完成了一次发送处理过程,随后调度下一个具有最高优先级的用户进行处理。
[0037] 本发明的特点是:系统的处理过程采用模块化实现,易于扩展和维护。并采用了高级数据结构,降低了操作的处理时间,提高了系统的性能。
[0038] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。