一种基于5g小基站的mac层调度方法及终端
技术领域
本发明涉及移动通信领域,特别涉及一种基于5G小基站的MAC层调度方法及终端。
背景技术
随着带宽的提升,NR(New Radio,新空口)相较于LTE(Long Term Evolution,长期演进),每个TTI(Transport Time Interval,传输时间间隔)所处理的数据增加了十多倍,同时每个TTI的调度时间由1ms降为1个slot(时隙),因此需要在更短的时间内处理更大量的数据和调度。
但是由于NR小基站的CPU内核处理性能有限,每个TTI能够调度的用户设备数量较少,较难在短时间内处理大量的数据。
发明内容
本发明所要解决的技术问题是:提供一种基于5G小基站的MAC层调度方法及终端,提高小基站在每个调度时间内的处理的移动设备数量,以提升整体速率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于5G小基站的MAC层调度方法,包括步骤:
根据MAC层中每个上下行物理信道间的调度关系生成对应的调度事件;
将可并发处理的调度事件分配在不同的线程中进行并发处理,将只能串行处理的调度事件分配在同一个线程中进行串行处理,每个线程绑定在不同的CPU核中;
将所述串行处理的调度事件分配到多个独立的线程中进行延时处理。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种基于5G小基站的MAC层调度终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据MAC层中每个上下行物理信道间的调度关系生成对应的调度事件;
将可并发处理的调度事件分配在不同的线程中进行并发处理,将只能串行处理的调度事件分配在同一个线程中进行串行处理,每个线程绑定在不同的CPU核中;
将所述串行处理的调度事件分配到多个独立的线程中进行延时处理。
本发明的有益效果在于:根据每个上下行物理信道间的调度关系生成对应的调度事件,对于能够并发处理的调度事件配置到不同的线程中进行并发处理,将只能串行处理的调度事件配置在同一个线程中进行串行处理;将串行处理的线程进行延时处理时,将最耗时且不能并发处理的串行调度事件分配至多个线程中,通过类似多级流水线处理方式,将原来的处理过程拆分成执行时间相近的多个部分,由于比原先新增了多个线程进行延时处理,在接入大量用户设备后,在相同的时间内,调度的用户个数增加也会相应增加,因此能够在不改变CPU处理能力的情况下,通过引入多线程多核的方式提高每个单位时间内的处理数据量,从而提高小基站在每个调度时间内处理的移动设备数量,提升整体调度速率。
附图说明
图1为本发明实施例的一种基于5G小基站的MAC层调度方法的流程图;
图2为本发明实施例的一种基于5G小基站的MAC层调度终端的示意图;
图3为本发明实施例的一种基于5G小基站的MAC层调度方法的MAC层调度示意图;
图4为本发明实施例的一种基于5G小基站的MAC层调度方法的MAC层按时间顺序串行调度示意图;
图5为本发明实施例的一种基于5G小基站的MAC层调度方法的抽象的串行步骤与实际的MAC层处理之间关系示意图;
图6为现有技术中MAC层调度的单线程模型示意图;
图7为本发明实施例的一种基于5G小基站的MAC层调度方法的二级线程模型示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种基于5G小基站的MAC层调度方法,包括步骤:
根据MAC层中每个上下行物理信道间的调度关系生成对应的调度事件;
将可并发处理的调度事件分配在不同的线程中进行并发处理,将只能串行处理的调度事件分配在同一个线程中进行串行处理,每个线程绑定在不同的CPU核中;
将所述串行处理的调度事件分配到多个独立的线程中进行延时处理。
从上述描述可知,本发明的有益效果在于:根据每个上下行物理信道间的调度关系生成对应的调度事件,对于能够并发处理的调度事件配置到不同的线程中进行并发处理,将只能串行处理的调度事件配置在同一个线程中进行串行处理;将串行处理的线程进行延时处理时,将最耗时且不能并发处理的串行调度事件分配至多个线程中,通过类似多级流水线处理方式,将原来的处理过程拆分成执行时间相近的多个部分,由于比原先新增了多个线程进行延时处理,在接入大量用户设备后,在相同的时间内,调度的用户个数增加也会相应增加,因此能够在不改变CPU处理能力的情况下,通过引入多线程多核的方式提高每个单位时间内的处理数据量,从而提高小基站在每个调度时间内处理的移动设备数量,提升整体调度速率。
进一步地,所述将可并发处理的调度事件分配在不同的线程中进行并发处理包括:
将所述可并发处理的调度事件分配在不同的线程中;
将所述不同的线程基于时隙进行时间同步,对同步后的所述线程进行并发处理。
由上述描述可知,将可并发处理的调度事件分配在不同的线程中,并对线程进行时隙时间同步,能够保证可并发处理的调度事件均在同一时隙内进行并发处理,提高了调度事件的处理效率。
进一步地,将所述串行处理的调度事件分配到多个独立的线程中进行延时处理包括:
获取所述串行处理的调度事件的处理时间;
根据所述处理时间的大小将所述串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程;
将分割后得到的所述串行子线程分配至不同的CPU核中进行延时处理。
由上述描述可知,根据串行处理的调度事件的处理时间,将串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程,从而确保串行处理的处理时间能够在一个时隙内,避免因处理时间超过一个时隙而导致错过空口的发送时机。
进一步地,所述将分割后得到的所述串行子线程分配至不同的CPU核中进行延时处理包括:
将多个所述串行子线程放到对应的独立线程中进行处理,判断所述串行子线程的处理顺序是否为第一个,若是,则从空口和上层服务接受数据并处理所述串行子线程,若否,则从预设队列中获取数据并处理所述串行子线程;
判断所述串行子线程的处理顺序是否为最后一个,若是,则将处理结果存储在所述预设队列,若否,则通过空口发送所述处理结果。
由上述描述可知,通过将子线程处理后的结果存储在预设队列,下一个子线程再通过预设队列获取数据,能够实现流水线的调度方式,因此每一个串行子线程的处理时间减少,可处理的用户设备增加,从而提高整体的调度速率。
进一步地,还包括:
提前调度获取调度所需资源的调度事件对应的线程,并分配所述调度所需资源;
在所述提前调度获取调度所需资源的调度事件对应的线程后的每一时隙,都调度一次所述获取调度所需资源的调度事件。
由上述描述可知,提前调度获取调度所需资源的调度事件对应的线程,由于调度所需资源的是周期性的或者固定的或者可预见的,因此提前分配调度所需的资源能够提高后续的调度时间。
请参照图2,本发明另一实施例提供了一种基于5G小基站的MAC层调度终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据MAC层中每个上下行物理信道间的调度关系生成对应的调度事件;
将可并发处理的调度事件分配在不同的线程中进行并发处理,将只能串行处理的调度事件分配在同一个线程中进行串行处理,每个线程绑定在不同的CPU核中;
将所述串行处理的调度事件分配到多个独立的线程中进行延时处理。
由上述描述可知,根据每个上下行物理信道间的调度关系生成对应的调度事件,对于能够并发处理的调度事件配置到不同的线程中进行并发处理,将只能串行处理的调度事件配置在同一个线程中进行串行处理;将串行处理的线程进行延时处理时,将最耗时且不能并发处理的串行调度事件分配至多个线程中,通过类似多级流水线处理方式,将原来的处理过程拆分成执行时间相近的多个部分,由于比原先新增了多个线程进行延时处理,在接入大量用户设备后,在相同的时间内,调度的用户个数增加也会相应增加,因此能够在不改变CPU处理能力的情况下,通过引入多线程多核的方式提高每个单位时间内的处理数据量,从而提高小基站在每个调度时间内处理的移动设备数量,提升整体调度速率。
进一步地,所述将可并发处理的调度事件分配在不同的线程中进行并发处理包括:
将所述可并发处理的调度事件分配在不同的线程中;
将所述不同的线程基于时隙进行时间同步,对同步后的所述线程进行并发处理。
由上述描述可知,将可并发处理的调度事件分配在不同的线程中,并对线程进行时隙时间同步,能够保证可并发处理的调度事件均在同一时隙内进行并发处理,提高了调度事件的处理效率。
进一步地,将所述串行处理的调度事件分配到多个独立的线程中进行延时处理包括:
获取所述串行处理的调度事件的处理时间;
根据所述处理时间的大小将所述串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程;
将分割后得到的所述串行子线程分配至不同的CPU核中进行延时处理。
由上述描述可知,根据串行处理的调度事件的处理时间,将串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程,从而确保串行处理的处理时间能够在一个时隙内,避免因处理时间超过一个时隙而导致错过空口的发送时机。
进一步地,所述将分割后得到的所述串行子线程分配至不同的CPU核中进行延时处理包括:
将多个所述串行子线程放到对应的独立线程中进行处理,判断所述串行子线程的处理顺序是否为第一个,若是,则从空口和上层服务接受数据并处理所述串行子线程,若否,则从预设队列中获取数据并处理所述串行子线程;
判断所述串行子线程的处理顺序是否为最后一个,若是,则将处理结果存储在所述预设队列,若否,则通过空口发送所述处理结果。
由上述描述可知,通过将子线程处理后的结果存储在预设队列,下一个子线程再通过预设队列获取数据,能够实现流水线的调度方式,因此每一个串行子线程的处理时间减少,可处理的用户设备增加,从而提高整体的调度速率。
进一步地,还包括:
提前调度获取调度所需资源的调度事件对应的线程,并分配所述调度所需资源;
在所述提前调度获取调度所需资源的调度事件对应的线程后的每一时隙,都调度一次所述获取调度所需资源的调度事件。
由上述描述可知,提前调度获取调度所需资源的调度事件对应的线程,由于调度所需资源的是周期性的或者固定的或者可预见的,因此提前分配调度所需的资源能够提高后续的调度时间。
本发明上述一种基于5G小基站的MAC层调度方法及终端,适用于在NR小基站中单CPU处理能力不足的情况下,使用多线程并发来进行MAC层的调度,能够提高每个传输时间间隔中调度用户设备的数量,从而提高整体的调度效率,以下通过具体实施方式进行说明:
实施例一
请参照图1,一种基于5G小基站的MAC层调度方法,包括步骤:
S1、根据MAC层中每个上下行物理信道间的调度关系生成对应的调度事件。
具体的,请参照图3,5G基站中包括多个需要处理的调度信息,根据上下行信道间的调度关系生成对应的调度事件,在本实施例中,ULSCH为上行数据,需要进行MAC解码;RACH(Random Access Channel)为随机接入信道,在调度时需要分配CCE(Control ChannelElement,控制信道单元)及上行RB(Resource Block,资源块);CRC为上行HARQ(HybridAutomatic Repeat reQuest,混合自动重传请求)处理,BSR(Buffer Status Report,缓存状态报告)为上行新传处理,根据这两者的信息或者SR(Scheduling Request,上行调度请求)信息,调度UE进行重传或新传;SRS(Sounding Reference Signal,上行探测参考信号)信息用于确定UE的codebook(码本)或者频率选择性调度;RLC SDU(Radio Link Controlstructure Service Data Unit,无线链路控制子层服务数据单元)为上层服务下发的下行数据,HARQ为PUCCH(Physical Uplink Control Channel,物理上行链路控制信道)上报的信息,这两者用于UE的下行重传或新传。CSI(Channel State Information,信道状态信息)用于确定下行传输时的MCS(Modulation and Coding Scheme,调制与编码策略)、PMI(Precoding Matrix Indicator,预编码矩阵指示)、Layer(层)等下行传输时的相关配置信息。
请参照图4,在现有技术中,5G小基站的MAC层通常按照事件顺序串行调度各个调度事件,这种处理方式在单个线程单个CPU处理一整个流程,那么,就需要保证处理这些流程所耗的时间小于一个slot的时间,如果超过一个slot,那么,就会错过空口的发送时机,导致数据传输失败。而小基站使用的CPU一般性能相对较差,通过限制每个slot处理的UE个数来控制MAC调度的处理时间。
S2、将可并发处理的调度事件分配在不同的线程中进行并发处理,将只能串行处理的调度事件分配在同一个线程中进行串行处理,每个线程绑定在不同的CPU核中。
其中,所述将可并发处理的调度事件分配在不同的线程中进行并发处理包括:
将所述可并发处理的调度事件分配在不同的线程中;
将所述不同的线程基于时隙进行时间同步,对同步后的所述线程进行并发处理。
具体的,在本实施例,将调度模块分配到不同的线程中,每个线程绑定在不同的CPU核上,多个线程之间通过PHY(Physical,物理层)的slot indication(时隙指示)消息进行slot时间同步。
其中,还包括:提前调度获取调度所需资源的调度事件对应的线程,并分配所述调度所需资源;
在所述提前调度获取调度所需资源的调度事件对应的线程后的每一时隙,都调度一次所述获取调度所需资源的调度事件。
具体的,公共信道信息是周期性的或者固定的或者可预见的,那么可以提前N个slot就调度好,并分配CCE和RB,在初始时提前准备3个slot调度公共信道,随后每个slot都调度一次。
请参照图5,在本实施例中上行解码PUSCH使用一个独立的线程处理;剩余的调度事件在串行步骤1~N中处理。
S3、将所述串行处理的调度事件分配到多个独立的线程中进行延时处理;
将所述串行处理的调度事件分为多个步骤,并将每一步骤分配到不同的线程中进行延时处理,串行处理中的每一线程根据串行处理顺序一次分配至不同时隙中;因此将串行事件放在不同时隙不同线程中处理的扩展性更好,进而提高并发处理的效率,其中由于公共信道处理线程在每一个slot都调度一次,因此适应性地在每一个slot中添加上行解码的步骤,解码并获取公共信道中的信息。
将可并发处理的调度事件分配在不同的线程中进行并发处理,每一线程的耗时均较低,只要在分配时满足每个slot每个线程的最大耗时时间不超过1个slot,即可提升每个TTI处理的UE个数。
实施例二
本实施例与实施例一的不同之处在于,进一步限定了如何将所述串行处理的调度事件分配到多个线程中进行延时处理:
具体的,将所述串行处理的调度事件分配到多个独立的线程中进行延时处理包括:
获取所述串行处理的调度事件的处理时间;
根据所述处理时间的大小将所述串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程;
将分割后得到的所述串行子线程分配至不同的CPU核中进行延时处理。
在本实施例中,根据串行处理的调度事件的处理时间将串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程,例如,将基站每个TTI需要处理的步骤,抽象为串行步骤1~N,N个步骤的总处理时间较长,因此将N个步骤拆分为执行时间相近的两个部分,第一部分包含步骤1~N1;第二部分包含步骤N2~N,N2=(N1)+1,从而使分割后的两个部分的总处理时间都缩短至一个时隙内。
具体的,将多个所述串行子线程放到独立的线程独立的CPU核上处理,判断所述串行子线程的处理顺序是否为第一个,若是,则从空口和上层服务接受数据并处理所述串行子线程,若否,则从预设队列中获取数据并处理所述串行子线程;
判断所述串行子线程的处理顺序是否为最后一个,若是,则将处理结果存储在所述预设队列,若否,则通过空口发送所述处理结果。
请参照图5,公共信道等周期性、可预测的信道提前几个slot调度;上行解码每个TTI单独一个线程处理;剩余信道的处理在串行步骤1~N中处理。
请参照图6,在本实施例实施前,每个TTI以单线程按照时间顺序,从上层服务接收下行数据报文、从物理层接收上行数据,随后执行全部的串行步骤,处理完后将相关数据发给物理层、再由物理层通过空口发送出去。假设每个TTI只能处理2个UE。
请参照图7,在本实施例实施后,将串行步骤拆分为执行时间相近的两个部分,第一部分包含步骤1~N1;第二部分包含步骤N2~N,每个用户设备都需要分别在两个独立的线程中执行,每个线程绑定到独立的CPU核上,因此能够实现在任意时刻两个部分都能同时运行。
具体的,在TTI1时,线程2调度了UE1~4的第一部分;
在TTI2时,线程1调度了UE1~4的第二部分、线程2调度了UE4~8的第一部分;
以此类推,后续的每个TTI都是线程1调度前一个TTI的第二部分、线程2调度当前TTI的第一部分。
即类似二级流水线处理,线程2处第一部分后放入队列,在下一个TTI开始,由线程1处理剩下的第二部分。因此可以认为多了一个并发的线程处理,每个TTI可处理的UE个数多一倍。
以上步骤是将串行步骤分为两份,由2个线程处理,此为二级流水线处理;可根据具体需求,将串行步骤分为N个部分,由N个线程处理,以扩展为N级流水线,从而提升系统的总体性能。
实施例三
请参照图2,一种基于5G小基站的MAC层调度终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或实施例二的基于5G小基站的MAC层调度方法的各个步骤。
综上所述,本发明提供的一种基于5G小基站的MAC层调度方法及终端,根据每个上下行物理信道间的调度关系生成对应的调度事件,对于能够并发处理的调度事件配置到不同的线程中进行并发处理,将只能串行处理的调度事件配置在同一个线程中进行串行处理;对串行处理的线程进行流水线处理时,将最耗时且不能并发处理的串行调度事件分配至多个线程中处理,虽然在处理串行调度事件时进行了延时,但是能够在不改变CPU处理能力的情况下,通过引入多核的方式提高每个单位时间内的处理数据量,其中根据串行处理的调度事件的处理时间,将串行处理的线程分割为处理时间小于或者等于一个时隙的多个串行子线程,从而确保串行处理的处理时间能够在一个时隙内,避免因处理时间超过一个时隙而导致错过空口的发送时机;因此通过将调度事件进行并发处理,并将只能串行处理的调度事件分配至多个CPU核中,将现有的只能串行处理的MAC层调度分在不同的CPU核中处理,从而提高小基站在每个调度时间内处理的移动设备数量,提升整体调度速率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。