CN106227591B - 在异构多核片上系统上进行无线通信调度的方法和装置 - Google Patents
在异构多核片上系统上进行无线通信调度的方法和装置 Download PDFInfo
- Publication number
- CN106227591B CN106227591B CN201610638066.2A CN201610638066A CN106227591B CN 106227591 B CN106227591 B CN 106227591B CN 201610638066 A CN201610638066 A CN 201610638066A CN 106227591 B CN106227591 B CN 106227591B
- Authority
- CN
- China
- Prior art keywords
- calculating task
- calculating
- task
- time
- assembly line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种用于在异构多核片上系统上进行无线通信调度的方法,包括:确定用于无线通信的多个计算任务,其中每个计算任务对应于一个基本的信号处理功能;确定执行每个计算任务所需的时间;根据所述时间,确定用于执行所述多个计算任务的流水线,其中该流水线包括一个或多个阶段,每个阶段包含至少一个计算任务并且被映射到所述异构多核片上系统上的一个或多个并行的计算核心;以及分发任务队列。本发明还提供了一种相应的装置。通过本发明在异构多核片上系统上进行无线通信调度,能够适应于无线通信任务的流式处理特征,同时能够兼顾不同数据类型以及无线通信任务对软硬件的要求,并且保证无线通信的实时性。
Description
技术领域
本发明涉及无线通信,尤其涉及无线通信任务的处理。
背景技术
为满足个人通信系统对高速率无线数据通信的要求,无线通信标准与技术不断地演进,在2008年的3GPP标准化组织开展的第四代移动通信标准的讨论会上制定了长期演进技术(Long Time Evolution,LTE)的规范。LTE系统利用了正交频分多址(OFDM)、多天线(MIMO)等技术抑制了信道衰落、提升了信道容量,从而使得通信速率显著提升。在R12版本的协议中,LTE系统的峰值数据传输速率可以达到下行600Mbps,上行300Mbps。然而,这样的高速率导致了用于计算的电路部件的高负载,在R12版本中基带处理运算负载高达1000GOPS。
为了满足通信技术的发展而带来的运算需求,相应的集成电路的设计制造工艺也在不断发展。集成电路的设计规模快速地增长,但是电源电压并没有随着电路规模的增大而明显地下降,由此导致功耗逐渐成为集成电路设计的关键。
鉴于此,另一种用于解决通信技术的运算需求的方式是,在移动通信设备中采用多核处理器系统来代替高频率的单处理器,以解决计算性能和功耗之间的矛盾。在这样的基于多核的系统架构中,如何划分任务并利用多核的计算资源对任务进行合理的调度控制从而满足计算性能的要求是当今计算机系统结构面临的一大难题。
在现有技术中,已经广泛存在针对高性能并行计算系统进行多核调度控制的问题的研究和实践。然而这样的高性能计算系统并不能完全适应于针对无线通信系统的多核调度控制,其原因在于以下几个方面:
首先,无线通信任务具有传统高性能计算领域的计算任务所不具备的流式处理的特征,因此传统高性能计算系统及其多核调度控制方法无法很好地解决将流式任务调度到的多个处理器上的问题,进而在调度无线通信任务时,传统的高性能计算机系统难以发挥其效用。
另一方面,各种无线通信任务的计算方式往往是不相同的,例如,快速傅里叶变换(FFT)、信道估计等运算是基于复数符号的运算,而Turbo/Viterbi等信道编译码是基于比特流的运算,他们的数据类型完全不同。由此,使得相较于传统的高性能计算机系统,具有不同的运算特征的无线通信任务更倾向于利用异构多核的架构。
具体而言,为了延长产品的生命周期,可编程的解决方案逐渐成为无线通信解决方案的主流,例如广泛应用的基于单指令多数据(SIMD)和超常指令字(VLIW)架构的数字信号处理器(digital signal processor,DSP);然而,并非全部类型的无线通信任务都可以采用可编程的解决方案,例如信道编译码之类的复杂度较高的比特流运算对性能功耗比的要求较高,仍然需要沿用硬件加速器。因此,往往无法在无线通信系统中应用传统的高性能计算系统及其相应的多核调度控制方法,而会采用集成了通用处理器、DSP处理器以及硬件加速器等多种类型的计算核心的技术方案。
第三方面,不同于高性能计算领域,无线通信系统对任务的实时性有着非常精确的要求,这使得多核调度控制实现机制要优先考虑实时性的要求,而传统的高性能计算机系统采用的是基于操作系统的任务调度方法,其并不适用于此。
第四方面,面向无线通信系统的调度控制需要实现定时同步数据收发的特殊功能,需要配置和控制射频芯片,因此需要设计专有的控制机制,这一点是传统的高性能计算系统所没有的。
综上所述,传统的高性能计算系统无法在调度无线通信任务时发挥其最大效用;并且,由于一部分无线通信任务必须采用硬件加速器而非DSP处理器,因而传统的高性能计算系统并不兼容全部的无线通信任务;此外,传统的高性能计算机系统无法满足无线通信系统对任务的实时性的要求;而且,传统的高性能计算系统通常无法实现定时同步数据收发射频功能。
发明内容
为了克服上述技术问题,本发明提供了一种用于在异构多核片上系统上进行无线通信调度的方法,包括:确定用于无线通信的多个计算任务,其中每个计算任务对应于一个基本的信号处理功能;确定执行每个计算任务所需的时间;根据所述时间,确定用于执行所述多个计算任务的流水线,其中该流水线包括一个或多个阶段,每个阶段包含至少一个计算任务并且被映射到所述异构多核片上系统上的一个或多个并行的计算核心;以及分发任务队列。
优选地,确定执行每个计算任务所需的时间还包括:针对每个计算任务,首先确定采用软件还是硬件来进行处理。
优选地,在确定用于执行所述多个计算任务的流水线之后还包括:检查所述流水线是否能够满足实时性要求,如果不能,则重新确定用于执行所述多个计算任务的流水线。
优选地,所述方法还包括:利用先入先出队列(FIFO)和直接存储器存取(DMA)传输来实现流式数据与基本数据单元的转换。
优选地,所述方法还包括:同步外部标准脉冲与本地参考时钟的起始时间;确定所述本地参考时钟的周期;输出经过同步的标准脉冲和参考时间。
优选地,所述标准脉冲和所述参考时间用于同步射频数据的收发。
优选地,采用FIFO队列安排所述射频数据。
优选地,确定用于执行所述多个计算任务的流水线包括:将所述多个计算任务划分为一个或多个子集,每个子集对应于所述流水线的一个阶段,并使得所述流水线的各个阶段的实际执行时间与理想执行时间之差当中的最大值小于设定值,其中所述理想执行时间是理想的每个流水线阶段的执行时间。
优选地,所述异构多核片上系统采用两级交互控制架构,其包括作为第一级控制层的集中式主控制单元以及作为第二级控制层的针对各个计算核心的相应的辅控制单元。
相应地,本发明还提供了一种用于在异构多核片上系统上进行无线通信调度的装置,包括:用于确定用于无线通信的多个计算任务的模块,其中每个计算任务对应于一个基本的信号处理功能;用于确定执行每个计算任务所需的时间的模块;用于根据所述时间,确定执行所述多个计算任务的流水线的模块,其中该流水线包括一个或多个阶段,每个阶段包含至少一个计算任务并且被映射到所述异构多核片上系统上的一个或多个并行的计算核心;以及用于分发任务队列的模块。
与现有技术相比,本发明提出的技术方案具有以下优点:能适应于无线通信任务的流式处理特征;可以兼顾计算时各种数据类型对性能功耗比的要求;保证无线通信的实时性的要求
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图并不构成对于本发明的技术方案的限制。
图1是根据本发明一个实施例的用于无线通信系统的异构多核调度控制装置的框图;
图2是本发明提供的主控制单元内部结构框图;
图3是本发明提供的主控制单元中定时同步单元的工作步骤;
图4是本发明提供的主控制单元中射频接口单元的结构框图;
图5是本发明提供的主控制单元中任务调度与决策单元的工作步骤;
图6是本发明提供的辅控制单元的状态机。
具体实施方式
下面结合附图和具体实施例对本发明做进一步地描述。
为了满足无线通信系统的高实时性要求,并且有效地利用多核计算资源来提升计算效率,本发明意在提供一种能够实现无线系统定时同步和射频控制的用于无线通信系统的片上异构多核的调度控制方法和装置。
发明人认为,由于在物理层的信号处理任务基于一定的基本数据单元(例如,在LTE中,物理层信号处理任务是基于一个OFDM/SC-FDMA符号进行的,以20M带宽为例,由2048个采样数据组成一个数据单元),然而在射频收发过程的数据没有数据单元的概念而仅仅是按照固定的速率进行传输,因此,需要针对流式数据和数据单元进行转换(即,数据分片)。进一步地,为了满足系统实时处理的要求,数据流需要在达到一个基本数据单元的大小之后即刻开始被处理,这样方可达到一边接收一边处理的效果。
基于此,本发明提供了一种从流式数据到数据单元的转换方法,主要利用先入先出队列(FIFO)、直接存储器存取(Direct Memory Access,DMA)传输来实现。首先,在FIFO的一侧写入接收到的数据流,在FIFO的另一侧DMA读出数据并写入指定的地址。当DMA实际传输数据长度达到预先配置的传输长度时,DMA即发出数据分片中断,以通知启动数据处理任务,并继续接收后续数据。由此,即可通过对传输长度的参数进行配置,将流式数据划分成基本的数据单元,并且由于DMA产生的中断标志着一个基本单元的数据准备就绪,因此可将DMA发出的中断作为启动后续的计算处理单元的标志。
发明人认为,这样一方面,能够实现边接收边处理,以满足实时处理的要求;另一方面,FIFO控制器和DMA的配置均可采用硬件实现,不需要操作系统介入,从而以最小的工作量完成数据流和数据单元的转换,降低延时和功耗;再一方面,数据可以直接通过DMA传输到DSP处理器等计算核心的内部存储器上,多个计算核心同时访问相同的基本数据单元时,因为不同计算核心的内部存储器存储地址不同,自然完成了数据备份,而无需数据加锁。
发明人还认为,由于无线通信系统物理层的计算任务具有流式应用程序的基本特征,所以非常适合通过基于流水线建模的调度方案来将无线通信系统物理层的计算任务映射给多核系统的不同的计算核心。其原因在于,无线通信系统物理层计算任务的控制平面和数据平面相对独立,并且计算任务的复杂度依照数据量的大小线性变化,因此可以通过预测确定计算任务的复杂度;同时,无线通信系统物理层的计算任务是一系列的依次执行的计算任务,因而具备对其进行阶段划分的可能性。
为了完成对计算任务的流水线建模和调度,可以首先,基于通信协议标准和算法原理,将无线通信需要进行的数据处理划分成由多个计算任务构成的任务流水线,并将其中的计算任务作为物理层调度控制的对象。例如,一个典型的LTE物理层算法链路可以被定义为如下任务流水线,包括:去循环前缀、快速傅里叶变换(FFT)、资源解映射、信道估计、信道均衡、软解调、信道译码。这些计算任务需要被映射给多核系统的不同计算核心。
然而,仅基于通信协议标准和算法原理所划分的任务流水线过于粗略:一方面,这样划分的流水线中的计算任务的数量一般与多核系统中的计算核心的数量并不相等,直接映射无法充分利用所有计算核心的计算资源;另一方面,任务流水线中的计算任务之间的负载一般并不均衡,可能存在某些计算任务的计算量与其他计算任务的计算量之间差异非常大的情况,直接按照这样的划分方式将不同的计算任务映射给不同的计算核心也可能会使得计算核心之间的负载分配不均衡,导致计算资源的浪费。
因此,需要将上述划分所得到的计算任务进一步划分成不同的子集,以平衡流水线模型中各个阶段的任务负载,从而能够进行高效地调度。
随后,将上述所划分的子集根据任务前驱-后继关系映射到流水线的各个阶段。如果该流水线的某个阶段存在有多个能够并行进行的任务子集,那么在该阶段就至少应该有与该任务子集数目相等个数的计算核心。
最后,将每个阶段的任务映射给不同的计算核心。
除上述方法以外,发明人还认为,可以采用两级分布式的交互控制方法,即除了集中式的主控制单元作为一级控制层,还进一步采用针对诸如DSP处理器和ASIC硬件加速器等计算核心的分布式辅控制单元作为位于其下的一级控制层。这是出于以下两方面的考虑:一方面,集中式的交互控制方法需要主控制单元管理每个计算核心的任务调度,处理每个计算核心的中断和反馈,对控制核心的处理能力要求较高;另一方面,无线通信系统对实时性有着非常精确的要求,而集中式交互控制由于主控制核心的处理能力以及主控制核心和计算核心的距离会产生一定的时延。因此,可以通过采用两级分布式交互控制的方法,使得主控制核心仅对任务进行基本的划分和映射,由分别针对诸如DSP处理器和ASIC硬件加速器等计算核心的辅控制单元控制任务序列。在此基础上,以同时包含DSP处理器和ASIC硬件加速器的异构片上多核系统为例,可以采用如下的交互控制方案:多个DSP计算核心在逻辑上统一由相互协作的DSP辅控制单元控制,多个ASIC加速器在逻辑上统一由相互协作的ASIC辅控制单元控制。
在将这种两级分布式的交互控制方法应用于上述基于流水线建模的调度方案中时,流水线各个阶段的计算核心都从相应的辅控制单元中得到启动计算任务的命令和需要处理的数据。由于在这个过程中,主控制单元并不参与控制,从而能够大大降低主控制单元的负载。此外,由于计算核心之间的控制和交互被本地化,因而能够减少由数据交换距离所产生的延迟。
以下以同时包含DSP处理器和ASIC硬件加速器的异构片上多核系统为例,对根据本发明的实施例进行说明。参考图1,根据本发明的实施例,用于无线通信物理层的片上异构多核的调度控制装置,包括:主控制单元101和计算核心辅控制单元。针对同时包含DSP处理器和ASIC硬件加速器的异构片上多核系统,计算核心辅控制单元包括DSP辅控制单元102和ASIC辅控制单元103。主控制单元101、DSP辅控制单元102、ASIC辅控制单元103都通过AMBA总线实现全相连。除此之外,主控制单元101,DSP辅控制单元102,ASIC辅控制单元103之间还通过相应的控制线全相连(以虚线示出),来实现信号量和中断的传递。
主控制单元101用于实现系统定时同步、射频接口数据转换、片上异构多核任务分配决策的任务。DSP辅控制单元102存在于每个DSP处理器上,其协调DSP处理器之间的数据传输和同步控制,以使DSP处理器执行基于主控制单元101分发的任务队列和调度决策。与DSP辅控制单元102相类似,ASIC辅控制单元103协调各个ASIC硬件加速器之间的数据传递和交互控制,以完成基于主控制单元101分发的任务队列和调度决策所确定的计算任务。
参考图2,根据本发明的一个实施例,主控制单元101可以包括:通过AMBA总线相互连接的定时同步单元201、射频接口单元202、以及任务分配决策单元203。
定时同步单元201通过一组控制线和外部标准定时模块相连,并输出和外部标准定时模块同步的脉冲,从而实现系统的定时同步,以满足无线通信系统对定时同步的精确要求。
由前述分析可知,数据流与数据单元之间的转换需要和系统对时协调工作,尤其是对于系统定时有很高要求的通信系统(例如,TDD系统),需要首先找到数据帧头位置才能进行正确的转换。因此,需要首先通过本地参考时间和系统时间的对齐来得到正确的帧头位置,从这个正确的位置开始进行数据流到数据单元的转换。
因此,根据本发明的一个优选实施例,可以在定时同步单元201的内部设置同步计数器来产生本地参考时间,并根据外部输入的标准帧头脉冲找到绝对时间的起始位置,从而使参考时间与绝对时间进行对时,使得本地参考时间的技术循环与数据帧的采样点数相同,进而使得每一次数据帧头位置都为0。这样,既可简化控制系统设计,也能够根据参考时钟的值直接判断出数据帧内部的相对偏移,从而得到子帧、时隙等更为详细的时间位置。
以下参考图3,以针对时分复用系统(Time Division Duplexing,TDD)为例,可通过如下方法实现系统的定时同步:
S302:使能外部标准脉冲获取标准位置。
外部标准时间模块发出PPS脉冲(pulses per second,秒脉冲)以指示标准时间的起始位置(在时分复用的无线通信系统中,该位置即为数据帧的起始位置),通过使能外部标准脉冲,外部标准脉冲会将本地产生参考时钟的同步计数器清零,从而达到本地参考时钟的起点和外部标准脉冲同步。
优选地,由于系统上电之后本地参考时间即进入自由计数状态,在必要的设备初始化(例如,各个处理器的引导装载程序(boot loader)完成之后,本地参考时间的计数是完全未知的状态,为方便与外部标准脉冲进行对时,可以在步骤S302进行之前,加入步骤S301,先人为强制对本地参考时间清零一次,以为步骤S302做好准备。
S303:配置本地参考时间的计数规则。
配置本地同步计数器的计数规律,以实现本地参考时间的周期化,使本地参考时间以一个数据帧为单位进行循环计数,进而每个数据帧的起始点都会和标准数据帧的起始点对齐。此时,本地参考时间和外部标准时间已经完成了同步对时,认为是获得了标准时间。
S304:输出经过同步的标准脉冲和参考时间。
根据标准时间可以确定标准脉冲和参考时间,由此,定时同步单元201向射频接口单元202输出经过同步的标准脉冲和参考时间,从而使得数据收发和标准时间同步。
射频接口单元202在主控制单元101内部与定时同步单元201连接,并且与外部的射频芯片以及DSP辅控制单元102分别相连(图2中未示出),主要用于协调射频芯片和基带芯片之间的配合。射频接口单元202通过一组控制线和定时同步单元201连接,以根据定时同步单元201输出的标准脉冲和参考时间配置射频芯片进行收发,来实现收发时刻的定时同步;同时其通过另外一组控制线和外部的DSP辅控制单元102连接,以实现物理层基带信号的基本数据单元在射频芯片和基带芯片之间的转化。
参考图4,根据本发明的一个实施例,射频接口单元202可以包括:控制单元401,其一侧与定时同步单元201相连以获取标准脉冲和参考时间,另一侧与射频芯片相连以实现定时收发数据。控制单元401还对收发任务配置列表402和403进行配置,其中,发送配置列表402中每个配置包含数据源地址和长度,数据在基带芯片内部产生之后以发送配置列表402中的地址和长度通过DMA读入先入先出队列(FIFO)404,以固定的射频采样速率读出,从而完成基带信号的基本数据单元向射频流式数据的转换;接收配置列表403中每个配置包含数据目的地址和长度,数据从射频芯片以固定的射频采样速率送入FIFO405,通过DMA以接收配置列表403的地址和长度读出,实现射频流式数据向基带信号的基本数据单元的转换。
优选地,可以预先配置DMA的传输长度,以使得以OFDM符号作为基本数据单元,以细化处理粒度,使得后续流水线建模在一个OFDM符号完成转化之后就可以启动,从而使得流水线更快的进入核心期,降低延时。
图2中的任务分配决策单元203用于对任务进行划分和流水线建模,其通过一组控制线和AMBA总线接口与外部的DSP辅控制单元102以及ASIC辅控制单元103相连,以实现任务分发和配置。
参考图5,根据本发明的一个实施例,无线通信物理层多核片上系统的流水线调度的方法,包括:
S501:基于协议标准和基带信号处理算法原理定义物理层计算任务,以使得所定义的每个任务完成一个基本的信号处理功能,例如,快速傅里叶变换(FFT)、多相滤波、资源映射、信道编译码等。
S502:将物理层的每一个计算任务按照数据类型和计算特征划分为使用软件或者硬件方案。
根据本发明的一个实施例,根据处理并行度和位宽等参数进行考量,将涉及复数符号的处理的计算任务划分为采用DSP处理器的软件实现方案;将涉及比特流的处理的计算任务划分为采用ASIC硬件加速器的硬件实现方案。例如,基于比特流的信道编译码算法采用ASIC硬件加速器的实现方案,易于进行单指令多数据(SIMD)和超长指令字(VLIW)并行的快速傅里叶变换(FFT)则采用DSP处理器的软件实现方案。在本发明中,虽然需要同时采用硬件处理器和DSP处理器,但是通过随后步骤的划分流水线并行处理的方法,可以避免软硬件数据间的转换,从而节省了处理时间。出于相似的原因,本发明也能够克服由于数据计算方式不同而造成浪费处理时间的问题。
S503:确定执行每个计算任务所需的时间。
基于步骤S501和S502,可以获得在典型数据量下每个计算任务执行所需的时钟周期个数(例如,每处理1兆比特数据需消耗多少个时钟周期),进而根据计算核心的时钟频率,可以得到执行每个计算任务所需的绝对时间,即计算任务所需的时钟周期个数除以计算核心的时钟频率。本领域技术人员应当理解,在计算核心的时钟频率相同且固定的情况下,也可以计算任务所需的时钟周期个数来衡量执行该任务所需的时间。
S504:计算任务流水线建模决策。
由于无线通信物理层需要对周期性的基本数据单元进行既定的一系列的计算任务,因此可以根据步骤S503所确定的任务所需时间来将这一系列的计算任务进行均衡的阶段划分(即,将一个或多个计算任务聚合在一起形成一个子集并映射到一个流水线阶段),并将根据步骤S502中所确定的计算任务所使用的软件/硬件方案将每个阶段映射给一个或多个并行的计算核心以流水线建模决策。
根据本发明的实施例,对于每一个基本数据单元,首先根据任务各自的负载和与其对应的处理器实现方案的处理能力计算其所有任务均在同一个流水线阶段完成的时延t,然后根据系统配置(例如,来自于媒体访问控制层(Media Access Control,MAC)或者更高层的系统带宽、天线数、频域资源分配位置等参数))得到系统要求的时延T,进而计算所需要的流水线阶段数n,优选地,n=ceil(t/T);进而,理想的每个流水线阶段的执行时间tideal=其所有计算任务执行的总时延t/流水线阶段数n;之后将计算任务划分为一个或多个子集分别映射为流水线的相应阶段使得MAX(ti-tideal)最小,其中,ti为每个流水线阶段的实际执行时间。优选地,鉴于对上述将计算任务划分为子集进而映射到流水线阶段使得MAX(ti-tideal)最小的问题求解最优解是NP(Non-Deterministic Polynomial,非确定多项式)问题,在物理层基带任务个数不多的情况下,由于影响任务复杂度的系统配置是有限的(主要由带宽天线个数决定),因此,根据本发明的一个实施例,可以采用暴力搜索的方法对其进行求解,进一步地,可以采用暴力搜索离线计算最优流水线划分并在线选择的方法实现步骤S504。例如,针对各个流水线,分别计算ti-tideal,并找出其中ti-tideal最大的那个流水线,当该流水线的ti-tideal小于一个设定值时,认为搜索结束。
S505:实时性约束检查,包括:检查计算任务整体的延时是否能够满足实时性要求,以及系统吞吐率是否达到性能要求。如果满足实时性约束检查,则继续步骤S506,如果不满足则继续步骤S504。
S506:将决策结果形成任务队列,通过AMBA总线接口以及信号控制线的方式分发给DSP辅控制单元102和ASIC辅控制单元103,从而驱动DSP辅控制单元102和ASIC辅控制单元103调度和控制各个计算核心进行计算。
其中,任务队列包含每个处理器执行的任务以及开始执行、需要等待其他关联任务的执行、执行结束后需要通知其它处理器等由主控制单元101的任务分配决策单元203提前分配的配置信息;将任务ID和数据写入指定地址(例如,其形态可以是SRAM/FIFO/寄存器)供DSP处理器或ASIC硬件加速器读取;控制信号则通过使能相应的辅控制单元驱动其读取任务队列中的配置信息并控制相应的计算核心进行运算。
图1中所示的DSP辅控制单元102存在于每个DSP处理器上,包括任务调度序列、DMA数据传递单元和信号量控制交互单元,其基于上述步骤S506中主控制单元101分发的任务队列和调度决策,通过读取任务队列中的配置信息,按照任务队列的要求控制相应的DSP处理器进行执行,通过正常的收发控制信号并传递给内核,即可完成协调不同DSP处理器之间的数据传输和同步控制。
参考图6,根据本发明的一个实施例,DSP辅控制单元的状态机采用停-等的信号量交互同步机制完成多核之间的相互同步和触发。
经上电复位处于复位状态的DSP辅控制单元,在收到主控制单元101的任务队列和启动信号之后进入初始化状态。
初始化状态的DSP辅控制单元根据主控制单元101的调度决策准备好相应的程序和数据,进入运行状态。
运行状态的DSP辅控制单元按照调度决策控制与其对应的DSP处理器按序执行计算任务;当执行到需要进行处理器之间的数据传输和同步控制时(暂停),进入等待状态;当收到程序终止的信号时,进入停止状态。
等待状态的DSP辅控制单元收到对应的信号量触发时再次进入运行状态继续执行程序。
停止状态的DSP辅控制单元可以通过启动信号进入初始化状态或者复位信号进入复位状态。在程序执行完成之后,DSP辅控制单元102会将计算结果传递给其它的计算单元,例如将结果传递给ASIC运算单元进行后续计算或者将结果传递给主控制单元101告知所分发的任务队列已经完成,等待下一次任务分发。
根据本发明的一个实施例,以由两个DSP处理器组成两级流水线处理任务为例,第一级DSP处理器在其DSP辅控制单元的控制下,首先处于“等待”状态等待主控制单元101的射频接口单元202通过DMA发出的数据分片中断,收到该中断后进入“运行”状态进行计算,完成后即发出数据处理完成中断给第二级DSP处理器的DSP辅控制单元并其再次进入“等待”状态等待射频接口单元202通过DMA发出的数据分片中断;与此对应的,第二级DSP处理器在其DSP辅控制单元的控制下,首先进入“等待”状态以等待第一级DSP处理器发出的中断,收到中断后进入“运行”状态进行计算,完成后发送中断给主控制单元101(或者ASIC辅控制单元)以启动后续任务。由此,分散在两个DSP处理器上的辅控制逻辑/单元协作完成了DSP辅控制单元的整体控制逻辑。
通过将DSP之间的控制交互在辅控制单元上进行,而不反馈到主控制单元101,可以有效降低系统的延迟。以DSP之间发中断通知为例,在辅控制系统内交互中断采用硬件连线的方式,需要1个时钟周期;如果通过主控制单元接收处理并转发中断,受系统流量影响,则需要30至200个时钟周期不等。
与DSP辅控制单元102类似,ASIC辅控制单元103用于完成协调各个ASIC硬件加速器之间的数据传递和交互控制,完成既定的计算任务,包括配置启动单元、DMA数据传递单元和信号量控制交互单元。ASIC辅控制单元的状态机与DSP辅控制单元的状态机设计相同。同样的,在ASIC的任务执行完成之后,ASIC辅控制单元103会将计算结果传递给其它计算单元,例如将结果传递给DSP运算单元进行后续计算或者将结果传递给主控制单元101告知所分发的任务队列已经完成,等待下一次分发。
应用上述实施例所述的装置和方法,能够通过基于流水线建模的调度方案来调度无线通信系统物理层的计算任务,从而解决现有技术无法适应于无线通信任务的流式处理特征的问题;通过对任务进行流水线建模和任务划分得到调度决策,将任务队列静态的写入到各个辅控制单元,由辅控制单元按照队列的要求执行,无需操作系统的参与,从而降低复杂度和功耗;通过采用辅控制单元降低主控制单元的工作负载,并将调度控制局部化,降低控制系统的工作量和消耗的功率;通过采用集中式的主控制单元与针对DSP处理器和ASIC硬件加速器的辅控制单元交互地进行控制的方法,保证无线通信的实时性的要求。
以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的精神和范围的前提下所作的等同变化、修改与结合,均应属于本发明要求保护的范围。本发明要求的保护范围由所附的权利要求书及其等同界定。
Claims (13)
1.一种用于在异构多核片上系统上进行无线通信调度的方法,所述异构多核片上系统包括软件处理单元以及硬件处理单元,所述方法包括:
确定用于无线通信的多个计算任务,其中每个计算任务对应于一个基本的信号处理功能;
针对每一个所述计算任务,根据其是否涉及基于复数符号的运算以及是否涉及基于比特流的运算,将其划分为使用软件或者硬件方案;
根据所确定的计算任务以及该计算任务所对应的软件或者硬件方案,确定执行每一个所述计算任务所需的时间;
根据所述时间,确定用于执行所述多个计算任务的流水线,其中该流水线包括一个或多个阶段,每个阶段包含至少一个计算任务并且根据所述计算任务所对应的软件或者硬件方案被映射到所述异构多核片上系统上的一个或多个并行的计算核心;以及
分发任务队列;
其中,所述软件处理单元为DSP处理单元,所述硬件处理单元为ASIC处理单元,并且采用以下方式执行所述将每一个所述计算任务按照数据类型和计算特征划分为使用软件或者硬件方案的步骤:
将涉及复数符号处理的计算任务划分为使用DSP处理单元的软件方案,将涉及比特流处理的计算任务划分为使用ASIC处理单元的硬件方案。
2.根据权利要求1所述的方法,其中确定执行每一个所述计算任务所需的时间,包括:计算在典型数据量下每个计算任务执行所需的时钟周期数。
3.根据权利要求1所述的方法,其中所述根据所述时间,确定用于执行所述多个计算任务的流水线包括:
以使得MAX(ti-tideal)最小作为目标,求解ti,
其中,ti为第i个流水线阶段的实际执行时间,tideal等于所有计算任务执行的总时延t与流水线阶段数n的比值。
4.根据权利要求3所述的方法,其中所述根据所述时间,确定用于执行所述多个计算任务的流水线包括:
i)针对各个流水线分别计算ti-tideal,找出其中ti-tideal最大的那个流水线,获得在该流水线的ti-tideal小于一个设定值时的ti;
ii)检查计算任务整体的时延是否满足实时性约束,在不满足时重复上述步骤i)。
5.根据权利要求3所述的方法,其中所述流水线阶段数n满足:
n=ceil(t/T)
其中,t是所有计算任务执行的总时延,T是系统配置所期望的时延。
6.根据权利要求1所述的方法,其中,在确定用于执行所述多个计算任务的流水线之后还包括:
检查所述流水线是否能够满足实时性要求,如果不能,则重新确定用于执行所述多个计算任务的流水线。
7.根据权利要求1中所述的方法,还包括:
利用先入先出队列FIFO和直接存储器存取DMA传输来实现流式数据与基本数据单元的转换。
8.根据权利要求1所述的方法,其中还包括步骤:
同步外部标准脉冲与本地参考时钟的起始时间;
确定所述本地参考时钟的周期;
输出经过同步的标准脉冲和参考时间。
9.根据权利要求8所述的方法,其中所述标准脉冲和所述参考时间用于同步射频数据的收发。
10.根据权利要求9所述的方法,其中,采用先入先出队列FIFO安排所述射频数据。
11.根据权利要求1所述的方法,其中确定用于执行所述多个计算任务的流水线包括:
将所述多个计算任务划分为一个或多个子集,每个子集对应于所述流水线的一个阶段,并使得所述流水线的各个阶段的实际执行时间与理想执行时间之差当中的最大值小于设定值,其中所述理想执行时间是理想的每个流水线阶段的执行时间。
12.根据权利要求1-10中任意一项所述的方法,其中,所述异构多核片上系统采用两级交互控制架构,其包括作为第一级控制层的集中式主控制单元以及作为第二级控制层的针对各个计算核心的相应的辅控制单元。
13.一种用于在异构多核片上系统上进行无线通信调度的装置,所述异构多核片上系统包括软件处理单元以及硬件处理单元,所述装置包括:
用于确定用于无线通信的多个计算任务的模块,其中每个计算任务对应于一个基本的信号处理功能;
用于针对每一个所述计算任务,根据其是否涉及基于复数符号的运算以及是否涉及基于比特流的运算,将其划分为使用软件或者硬件方案的模块;
用于根据所确定的计算任务以及该计算任务所对应的软件或者硬件方案,确定执行每一个所述计算任务所需的时间的模块;
用于根据所述时间,确定执行所述多个计算任务的流水线的模块,其中该流水线包括一个或多个阶段,每个阶段包含至少一个计算任务并且根据所述计算任务所对应的软件或者硬件方案被映射到所述异构多核片上系统上的一个或多个并行的计算核心;以及
用于分发任务队列的模块;
其中,所述软件处理单元为DSP处理单元,所述硬件处理单元为ASIC处理单元,并且采用以下方式执行所述将每一个所述计算任务按照数据类型和计算特征划分为使用软件或者硬件方案的步骤:
将涉及复数符号处理的计算任务划分为使用DSP处理单元的软件方案,将涉及比特流处理的计算任务划分为使用ASIC处理单元的硬件方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610638066.2A CN106227591B (zh) | 2016-08-05 | 2016-08-05 | 在异构多核片上系统上进行无线通信调度的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610638066.2A CN106227591B (zh) | 2016-08-05 | 2016-08-05 | 在异构多核片上系统上进行无线通信调度的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106227591A CN106227591A (zh) | 2016-12-14 |
CN106227591B true CN106227591B (zh) | 2019-10-25 |
Family
ID=57547725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610638066.2A Active CN106227591B (zh) | 2016-08-05 | 2016-08-05 | 在异构多核片上系统上进行无线通信调度的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106227591B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388429B (zh) * | 2018-09-29 | 2024-01-02 | 古进 | Mhp异构多流水线处理器的任务分发方法 |
CN109408118B (zh) * | 2018-09-29 | 2024-01-02 | 古进 | Mhp异构多流水线处理器 |
CN110058931B (zh) * | 2019-04-19 | 2022-03-22 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN111061547B (zh) * | 2019-10-24 | 2023-04-11 | 中国科学院计算技术研究所 | 一种异构系统的任务调度方法及系统 |
CN111142938B (zh) * | 2019-11-20 | 2023-07-07 | 深圳先进技术研究院 | 一种异构芯片的任务处理方法、任务处理装置及电子设备 |
US11734017B1 (en) | 2020-12-07 | 2023-08-22 | Waymo Llc | Methods and systems for processing vehicle sensor data across multiple digital signal processing cores virtually arranged in segments based on a type of sensor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7360067B2 (en) * | 2002-12-12 | 2008-04-15 | International Business Machines Corporation | Method and data processing system for microprocessor communication in a cluster-based multi-processor wireless network |
CN1333333C (zh) * | 2005-03-16 | 2007-08-22 | 西安电子科技大学 | 码流播放卡和码流采集卡的驱动方法 |
CN102306139A (zh) * | 2011-08-23 | 2012-01-04 | 北京科技大学 | 用于ofdm无线通信系统的异构多核数字信号处理器 |
CN103677984B (zh) * | 2012-09-20 | 2016-12-21 | 中国科学院计算技术研究所 | 一种物联网计算任务调度系统及其方法 |
CN103197976A (zh) * | 2013-04-11 | 2013-07-10 | 华为技术有限公司 | 异构系统的任务处理方法及装置 |
CN103838552B (zh) * | 2014-03-18 | 2016-06-22 | 北京邮电大学 | 4g宽带通信系统多核并行流水线信号的处理系统和方法 |
-
2016
- 2016-08-05 CN CN201610638066.2A patent/CN106227591B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106227591A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106227591B (zh) | 在异构多核片上系统上进行无线通信调度的方法和装置 | |
US11868163B2 (en) | Efficient loop execution for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US11675598B2 (en) | Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue | |
US20220188265A1 (en) | Loop Thread Order Execution Control of a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
US11150900B2 (en) | Execution or write mask generation for data selection in a multi-threaded, self-scheduling reconfigurable computing fabric | |
US20210255864A1 (en) | Multiple Types of Thread Identifiers for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
US20210373890A1 (en) | Conditional Branching Control for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
US10990391B2 (en) | Backpressure control using a stop signal for a multi-threaded, self-scheduling reconfigurable computing fabric | |
US20210064435A1 (en) | Memory Interface for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
US11003451B2 (en) | Execution control of a multi-threaded, self-scheduling reconfigurable computing fabric | |
US20230153258A1 (en) | Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric | |
Sutton et al. | Bolt: A stateful processor interconnect | |
US20170097854A1 (en) | Task placement for related tasks in a cluster based multi-core system | |
US20210048877A1 (en) | Power Management of an Event-Based Processing System | |
WO2021213075A1 (zh) | 一种基于多处理节点来进行节点间通信的方法和设备 | |
US20170337084A1 (en) | Compute unit including thread dispatcher and event register and method of operating same to enable communication | |
Tuveri et al. | A runtime adaptive H. 264 video-decoding MPSoC platform | |
Fan et al. | Behave differently when clustering: a semi-asynchronous federated learning approach for IoT | |
US20230319642A1 (en) | Methods and Apparatus for Application Processing in Modems | |
Hsu | Scalable DU Architecture for IoT massive connection | |
Huang et al. | A configurable multiplex data transfer model for asynchronous and heterogeneous FPGA accelerators on single DMA device | |
Chen | Hardware-software co-design and optimization for point-to-point network-on-chip based many-core systems | |
Nasiri et al. | H-Storm: A Hybrid CPU-FPGA Architecture to Accelerate Apache Storm | |
Rosa | Reduction of energy consumption in MPSoCs through a dynamic frequency scaling technique | |
Ramachandran et al. | Designing Of Reconfigurable MPNOC On FPGA For Processing The Wireless Sensor Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |