基带处理资源分配方法与流程

文档序号:17940837发布日期:2019-06-18 23:04阅读:774来源:国知局
基带处理资源分配方法与流程

本发明涉及无线通信技术领域,尤其涉及一种基带处理资源分配系统和基带处理资源分配方法。



背景技术:

已部署的传统基站处理能力相对固定,无法按需扩容,运营商需要耗费昂贵的建设维护费以及高额的站址配套和租赁费用,通过大量的增加基站数量,以满足无线宽带及窄带的业务需求。此外,传统基站之间彼此独立,无法实现资源的统计复用,造成资源和能源的极大浪费。

为了解决上述的传统基站限制以应对数据通信与多媒体业务的爆发式增长,新的基站正在逐渐替代传统基站,目前主要有cloud-ran(cran)网络架构和超级基站的集中式网络架构。例如,图1示出了中科院计算所提出的超级基站的集中式网络架构的拓扑图,整个架构分为4层资源,每层资源均采取水平池化共享的理念。第一层为分布式光纤拉远射频单元,即rrh,负责无线信号收发及简单的信号处理,通过光纤将射频数据传回超级基站机房,然后通过射频交换机将射频数据按需要交换到任意基带处理单元;第二层是多模可重构的基带处理资源池,可采用dsp来实现基站的基带处理;第三层是多模可重构的协议处理资源池,主要完成基站层2和层3的协议处理;第四层是全局资源管理控制池,主要完成对基站的管理控制,如rrm(无线资源管理),oam(操作维护)等,以及整个超级基站系统的资源分配与调度控制。

尽管集中式的基站架构能够有效减少能源消耗,提高基础设施利用率,实现计算资源的共享以及负荷均衡与集中等,然而,随着正交频分复用(ofdm)、多天线收发(mimo)和协同多点传输(comp)等新技术的引入,无线算法复杂度上升,这对基带信号处理能力提出了更高的要求。现有的基带处理还不能有效地满足基带信号处理的实时性需求。

因此,需要对现有技术进行改进,以提高基站处理海量数据的效率。



技术实现要素:

本发明的目的在于克服上述现有技术的缺陷,提供一种基带处理资源分配系统和基带处理资源分配方法。

根据本发明的第一方面,提供了一种基带处理资源的分配方法,其中,该基带处理由多个多核dsp执行,该方法包括以下步骤:

步骤1:根据待处理的数据量确定构成基带处理单元包含的dsp数量;

步骤2:根据各个dsp的负载情况以及所确定的dsp数量选择所述基带处理单元包含的dsp。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:当所述基带处理单元中一个dsp的负载高于第一阈值时,在所述基带处理单元所包含的dsp之间进行负载传递,以实现所述基带处理单元所包含的dsp之间的负载均衡。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:当所述基带处理单元中的多个dsp的负载均低于第二阈值时,在所述基带处理单元所包含的dsp之间进行负载搬移,以将具有相对较低负载水平的dsp上的负载聚合到相对较高负载水平的dsp。

在本发明的一个实施例中,该基带处理资源的分配方法还包括步骤3,该步骤3包括以下子步骤:

步骤31:将所述基带处理单元的各个dsp划分为一个主核和多个从核;

步骤32:将基带处理的上行任务和下行任务分别分解为多个上行子任务和多个下行子任务;

步骤33:基于计算复杂度将所述上行子任务和所述下行子任务分配给所述基带处理单元的各个dsp的主核和从核,其中,至少一个上行子任务和至少一个下行子任务分配给相同的核。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:在dsp执行任务的过程中,对于迭代循环操作和相关性小的语句,分解为多个线程并行执行。

在本发明的一个实施例中,所分解的线程数与执行该任务的dsp的核数相等。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:对于迭代循环操作,调度循环指令以使前一次迭代尚未完成之前开始一个新的迭代。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:在dsp执行任务的过程中,采用超长指令字将多条单指令连接在一起。

在本发明的一个实施例中,该基带处理资源的分配方法还包括:对于一条单指令对应的多个操作数,同时读取或写入。

与现有技术相比,本发明的优点在于:

本发明采用多核dsp阵列来提高基带处理的速度;并结合多核dsp阵列的特点,从指令线程级、任务级和系统级等更多维度实现基带处理的并行化。这种采用粗细粒度相结合的并行化方案,能够极大地提高基带处理效率和资源利用率,从而解决了处理海量数据的实时性问题。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了现有技术的超级基站的集中式网络架构的拓扑图。

图2示出了根据本发明一个实施例的集中式基带架构图;

图3示出了根据本发明一个实施例的基带处理方法的流程图;

图4示出了根据本发明一个实施例的基带处理板和基带管理板的交互示意图;

图5示意了根据本发明一个实施例的负载均衡和负载聚合的过程。

图6(a)示意了现有的td-lte系统的上行链路和下行链路的分配方式;

图6(b)示意了根据本发明一个实施例的上行链路和下行链路的分配方式;

图7示出了fork-join执行模型的结构;

图8示出了不同线程数与执行速度的对比图;

图9示出了本发明一个实施例的采用采用vliw+simd的dsp的内部结构。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

下面将以超级基站的集中式架构和td-lte系统为例阐述本发明。图2示出了根据本发明一个实施例的基带集中式架构。该架构包括高速射频交换、基带处理资源池和协议处理资源池。高速射频交换由中频板、射频前端和cpri接口板构成,基带处理资源池由多个基带处理板和少量的基带管理板组成,协议处理资源池由运行管理维护板构成、无线资源管理板、计算资源管理板以及至少一个协议处理板构成,各板之间通过cpri或srio等高速接口或交换网络进行数据交互,协议处理资源池通过高速以太交换网络与远程控制系统(即远控系统)和核心网连接。本发明针对基带处理资源池的基带处理板和基带管理板进行改进,因此对于其它处理板或功能单元将不再进行描述。

在本发明中,每个基带处理板包括由多个dsp构成的dsp阵列,每个dsp包含多个核,基带处理板主要负责完成基站系统的基带信号处理。基带管理板主要负责各个基带处理板的资源监测和负载管理功能,例如检测每个dsp的工作状态和负载情况。在一个实施例中,基带处理板和基带管理板均集成两片ti(德州仪器)公司的c66系列的多核dsp,例如,采用ti的c6618类型的4核dsp芯片。

针对由多核dsp阵列构成的基带处理板,本发明的一个实施例提出了从多个维度进行并行化处理的方法,包括系统级维度、任务级维度和指令线程级维度等,其中指令线程级维度及任务级维度的并行主要在基带处理板上进行,系统级维度的并行需要基带管理板和基带处理板共同参与。

图3示出了根据本发明一个实施例的基带处理的资源分配方法的流程图,包括以下步骤:

第一步、动态分配构成基带处理单元的dsp以实现系统级维度的并行化。

简言之,系统级维度的并行化方法基于基带处理板上各dsp的负载情况和需要分配的资源量来动态分配构成当前基带处理单元的dsp,数据由该基带处理单元来实时进行处理。

图4示出了一个基带处理板和基带管理板的交互示意图,该基带处理板包括dsp1和dsp2,每片dsp具有4个核,即core0-core3。结合图4本发明的系统级维度的并行化方法,包括以下子步骤:

步骤s11,获取各个基带处理板上的dsp负载情况。

基带管理板可周期性的监测各个基带处理板上的dsp的负载情况,如资源占用率等。例如,在td-lte系统中,由于上层协议数据的传输周期为1ms,因此,可设置dsp以1ms为周期上报负载情况,基带管理板可根据上报状态进行周期性的统计更新,以保证进行资源分配前各个基带处理板上的dsp状态是最新的,这有助于合理的分配构成基带处理单元的dsp。

步骤s12,根据待处理的数据量计算需要分配的dsp数量。

基带管理板根据上层协议传来的数据量计算需要分配的基带资源数,即dsp数量。

步骤s13,组合当前的基带处理单元。

基带管理板根据当前基带处理板上的dsp的负载情况和计算的所需dsp数量来合理分配资源,组合成当前使用的基带处理单元,将待处理的数据分配给该基带处理单元执行,例如,由该基带处理单元中的所分配的多个dsp并行执行。

在一个实施例中,基站系统运行过程中,基带管理板通过对各dsp单元的负载状态进行监控和计算,动态地改变构成基带处理单元的dsp的数量或占用的dsp的核的编号,以实现负载均衡或负载聚合,从而对基带处理资源的合理分配,以使各个dsp达到期望的负载。

参见图5示意的负载均衡和负载聚合,在进行负载均衡之前,基带处理单元的资源包括dsp1的4个核、dsp2的3个核以及dsp3的2个核,经过负载均衡之后,dsp1-dsp3均占用3个核。在一个实施例,当基带处理单元中某一个dsp的负载高于一个预定的阈值或低于一个预定的阈值时,触发负载均衡。通过负载均衡能够使各个基带处理板上的dsp能够被充分利用起来,提高基带资源池的运行效率,同时达到最佳负载效果,避免频繁出现单个dsp的负载过高,或空闲的情况发生,从而实现硬件资源的复用。在另一个实施例中,当基带处理单元中多个dsp均处于低负荷状态时,通过负载聚合将多个dsp的任务合并到一个或少量dsp,被释放的dsp则可以处于低功耗状态。根据不同的场景或应用适当的选择负载均衡或负载聚合能够在处理效率、传输效率和功耗三方面达到最优。

通过上述的系统级维度的并行化,根据各基带处理板的各个dsp的负载情况和数据量需求情况,实现基带处理单元的dsp数目的动态扩展或缩减,从而在基带处理资源池内实现多个dsp的并行,并通过负载聚合降低功率。

第二步、dsp核上分配上行任务和下行任务以实现任务级维度的并行化。

图6(a)示出了现有的td-lte系统的上行链路和下行链路的分配方式,其是将上行链路和下行链路分别绑定在不同的核来处理,也就是说,dsp中的一部分核处理上行链路,另外一部分核处理下行链路,该方法具有实现简单,易于管理和维护的优点,适用于上下行链路处理复杂度不高的情况。然而,对于上下行处理复杂度变大的情况,会导致负责相应处理的核的负载过高,处理能力不够,而另外的核却处于空闲的情况发生,从而出现核间负载不均衡。

图6(b)示出了本发明的上行链路和下行链路的分配方式,其是将上行链路和下行链路绑定在相同的dsp核进行处理,即每个核上即有上行任务又有下行任务,若当前处理处于上行子帧,每个核的下行任务被挂起,若当前处理处于下行子帧,每个核的上行任务被挂起,以确保每个子帧所有核均参与上行处理或下行处理,这种方式能够达到核间负载均衡的目的,又能使上行任务或下行任务在所有核上并行处理,从而显著提高执行效率。

具体地,本发明的任务级维度并行化方法包括以下子步骤:

步骤s210,对于基带处理单元所包含的dsp设置主核和从核。

例如,将dsp的一个核设为主核,其余核设为从核,如,core0为主核,core1-core3为从核,主核负责接收来自高层或底层的所有数据,并承担部分处理和任务分发工作,根据需求对上下行的不同任务进行组合、调度、切换等,当各个核处理完成后,主核将数据进行汇聚和同步,并发送出去。

步骤s220,为每个核分配下行任务。

以td-lte系统为例,下行任务主要完成参考信号、同步信号以及信道的处理,例如,涉及rs参考信号、主同步信号pss、辅同步信号sss、信道pbch、pdsch、pdcch、pcfich、phich等。在一个实施例中,通过处理的复杂度分析和评估,将各核的下行任务分配如下:

主核core0负责的下行任务处理包括:pss、sss、rs、pbch、phich的处理及部分符号ifft;

从核core1负责的下行任务处理包括:pcfich、pdcch的处理及部分符号ifft;

从核core2负责的下行任务处理包括:pdsch的处理及部分符号ifft;

从核core3负责下行任务部分耗时模块或算法的并行处理,如pdsch的资源映射和部分符号ifft的并行处理。

从核core1-core3处理完成之后,向主核core0发送同步信号,以指示处理完成。所有信道和信号的资源映射处理完之后,进行ofdm的处理,ofdm中最耗时的模块是ifft的处理,单个核中很难达到要求,所以用四个核进行并行处理。例如,在收到从核发送过来的同步信号后,将启动四个核的ifft并行处理,所有核处理完之后会在core0中再做一次同步,完成同步后将汇聚的数据发送出去。

步骤s230,为每个核分配上行任务。

td-lte系统的上行任务主要完成prach信道、pucch信道、pusch信道、srs信号、dmrs信号等的处理。各个信道相互独立存在,而pusch信道是所有信道中处理流程最复杂、处理耗时最长的部分。各个核的上行任务分配如下:

主核core0负责的上行任务处理包括:srs、dmrs及部分符号fft;

从核core1负责的上行任务处理包括:prach、pucch的处理及部分符号fft;

从核core2负责的上行任务处理包括:pusch的处理及部分符号fft;

从核core3负责上行任务部分耗时模块或算法的并行处理,如pusch的解资源映射和部分符号fft的并行处理。

主核core0收到来自底层的基带信号后,去除cp,然后通过edma(增强型直接存储器访问)搬移到共享内存区域中,并进行核间任务分发,通知其他从核启动相应任务。任务划分首先以ofdm符号级为基本处理单元,各核根据分配给自己的ofdm符号,动态读取共享存储区域的数据,分别完成fft处理及相应物理信道及信号的处理之后进行核间同步,由主核core0将数据汇聚并同步之后,上报给高层。

本发明提出的上下行混合式任务级维度的并行化方法能够将上行链路和下行链路绑定在相同的核上,通过时分复用利用该相同的核,从而提高了资源利用率。此外,将上行链路和下行链路分别划分为多个子任务,并将多个子任务针对通信协议的特点,分配给不同的核进行处理,从而适应于上下行处理复杂度高的情况,能够避免出现核间负载不均衡的现象。

第三步、针对dsp内部各核实现指令线程级维度的并行化。

本发明的指令线程级维度的并行方法是针对dsp内部各核的并行处理方法,结合dsp的硬件特性进行更细粒度的并行处理。

根据本发明的一个实施例,指令线程级维度的并行方法包括以下子步骤:

步骤s310,将主任务分解为多个线程以实现并行化。

例如,采用openmp将主任务进行分解,openmp是可用于共享内存并行系统的多处理器程序设计的一套指导性编译处理方案,提供了对并行算法的高层的抽象描述。具体地,对于通信算法中存在的大量迭代循环操作(例如,for循环语句)和相关性较小的语句,通过openmp采用fork-join(分叉-合并)执行模型将主任务分解为多个线程来并行化,如图7所示,其中fork创建线程或者唤醒已有线程,join即多线程的会合。fork-join模型在刚开始执行的时候,仅有一个称为“主线程”的运行线程存在,主线程在运行过程中,当遇到需要进行并行计算时,派生出线程来并行执行任务。在并行执行过程中,主线程和派生线程共同工作,在并行任务执行结束后,派生线程退出或者阻塞,不再工作,控制流回到单独的主线程。

具体地,通过在源代码中加入专用的pragma来指明自己的意图。例如,对于下面的一段求pi的代码,需要循环十万次(num_steps=100000),可以通过pragma来指定用2个线程(#definenumthreads2)来同时执行,由此编译器可以自动将程序进行并行化,并在必要之处加入同步互斥以及通信。

图8示出了同一段代码的不同线程数与执行速度的对比图,其中,横坐标表示线程数,纵坐标表示执行速度(单位是dsp的周期数,数值越大表示越耗时),系列1曲线对应10次循环的情况,系列2对应40次循环的情况,对于10次循环和40次循环的情况,线程数为2时,执行速度最快。可见,在使用openmp开展多线程并行时,并不是线程数越多越好,这是由于线程数越多,核间交互开销也越大。在一个优选的实施例中,将线程数设置为与dsp的核数相等,以保证较少的耗时较少并且运行效率也处于相对较高的水平。

步骤s320,调度循环指令,以使重叠地执行不同循环。

在此步骤中,通过编排软件流水的方式,在前一次迭代尚未完成之前开始一个新的循环迭代,使一个核里循环的多次迭代能够并行执行。

在具体实施时,需要确定最小迭代间隔,一个循环的最小迭代间隔是指该循环相邻两次迭代开始之间必须等待的最小周期数。迭代间隔越小,执行一个循环所用的周期就越少。以tidsp执行定点点积运算为例,若不采用流水并行,1200次迭代的周期数为19224,若采用软件流水并行后,1200次迭代的周期数为696,效率提高27倍多。

通过编排软件流水的方式,能够提高有效的利用资源并提高运算效率。

步骤s330,将多条指令连接在一起,以增加指令线程级并行度。

例如,采用超长指令字(vlim)将多条指令连接在一起,vliw的基本思路是:dsp处理器在一个长指令字中赋予编译程序控制所有功能单元的能力,使得编译程序能够精确地调度在何处执行每个操作。

图9示出了根据本发明的dsp的内部结构,由取指单元、译码单元、执行单元和存储区四部分组成。例如,对于tic6000系列dsp,dsp处理器有8个执行单元,理论上dsp处理器每个周期可以执行8条单指令,这8条单指令被看成是一个指令包,取指单元、译码单元、执行单元每次对一个指令包进行操作。vliw将多条单指令看成一条长指令,vliw的工作过程可以看成是对每条长指令的取指、译码、执行过程。具体地,本发明中采用的c6618型号dsp支持8个32位单指令的取指包,即总字长为256位,将这256位组成一个超长指令字,其中每条单指令为32位的操作码,一个取指包可以包含最多8个单指令,可将每个256位的指令包分配到8个执行单元并行执行。

通过采用vliw结构能发挥指令线程级并行优势,充分利用了dsp的资源,从而大幅提高了运算速度。

步骤s340,同时获得单条指令的多个操作数,以提高运算效率。

simd(单指令多数据流)技术能够复制多个操作数,并将它们打包在寄存器的一组指令中。相对于单指令单数据流(sisd),本发明中采用单指令多数据流技术能够提供矢量处理能力。例如,当采用sisd对加法指令译码后,执行单元先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而采用simd对加法指令译码后几个执行单元可同时访问内存,一次性获得所有操作数进行运算。例如,c6618的simd指令扩展到支持128bit矢量数据,如指令qmpy32能够执行两个复数对应的4个32bit数据的乘法。

在一个实施例中,采用vliw+simd的混合结构,仍参见图9所示,其中,取指和访问存储区的过程采用simd技术,以能够同时获得或存储指令的多个操作数,而对指令的译码和执行过程采用vliw结构,以并行执行多条指令。这种方式能够从更细粒度(即指令线程级)提高并行度。

例如,为了获得更多的指令线程级并行性,本发明使用的多核dsp芯片,其指令架构支持16位数据的双路simd操作以及8位数据的四路simd操作,能够复制多个操作数,一次执行所有指令,可将多个相同数据打包在一个64位寄存器上,同时对其进行相同的运算(加减乘除、移动、逻辑运算等等),从而加快了运算速率。在具体实施时,可采用线性汇编实现这种混合结构,通过线性汇编指定寄存器、自定义并行指令等方式提高编译器的编排效率。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。此外,本发明的思想也适用于其他的移动通信制式。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1