多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品与流程

摘要: 本技术涉及非对称多核系统,尤其涉及一种多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品。背景技术:1、随着嵌入式系统业务处理量的增加,多核处理器被...
多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品与流程

本技术涉及非对称多核系统,尤其涉及一种多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品。

背景技术:

1、随着嵌入式系统业务处理量的增加,多核处理器被广泛应用于并行执行业务任务。在非对称多处理(asymmetric multiprocessing,amp)架构中,各处理器核心通常具有相对独立的运行环境,业务任务在系统初始化或任务创建阶段被分配至相应的处理器核心执行。

2、然而,业务任务的数量和处理量会随系统运行状态发生变化。采用固定任务分配方式时,可能出现部分处理器核心承担的任务较多,而其他处理器核心处于空闲或低负载状态的情况,导致各处理器核心之间负载不均衡,影响多核处理器的资源利用率和业务处理效率。

3、为了调整任务分布,通常将业务任务从一个处理器核心迁移至另一个处理器核心。对于正在执行的业务任务,现有迁移方式通常需要保存和恢复程序计数器、通用寄存器状态等处理器执行状态,并可能涉及操作系统任务栈及相关运行数据的复制和同步。由于不同处理器核心具有各自的运行上下文,上述迁移过程较为复杂,且会产生较大的数据传输和状态恢复开销。

技术实现思路

1、本技术解决的技术问题在于提供一种多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品,以克服现有迁移过程产生较大数据传输和状态恢复开销的缺陷。

2、第一方面,本技术提出了一种多核非对称多处理架构的协同处理方法,适用于多核处理器;所述多核处理器包括多个处理器核心以及所述多个处理器核心共享访问的任务池;所述方法包括:

3、获取业务任务,并将所述业务任务分配至所述多个处理器核心中的至少一个处理器核心执行;

4、确定各所述处理器核心的运行负载,并根据各所述运行负载确定负载分布状态;

5、在所述负载分布状态表征存在负载不均衡的情况下,根据所述负载分布状态,确定待迁移业务任务以及分别用于迁出和接续执行所述待迁移业务任务的源核心和目标核心;

6、将所述待迁移业务任务的接续执行信息存入所述任务池,并将所述待迁移业务任务调度至所述目标核心,以使所述目标核心从所述任务池获取所述接续执行信息,并在不迁移所述源核心上的硬件执行上下文的情况下,根据所述接续执行信息接续执行所述待迁移业务任务。

7、在其中一个实施例中,所述多个处理器核心包括主控核心和至少一个从属核心;

8、所述确定各所述处理器核心的运行负载,并根据各所述运行负载确定负载分布状态,包括:

9、采用所述主控核心和各所述从属核心,分别确定自身的运行负载;

10、采用所述主控核心,根据自身的运行负载和各所述从属核心的运行负载确定所述负载分布状态;

11、其中,所述主控核心和各所述从属核心分别运行基于同一操作系统镜像建立的操作系统实例,并加载相同的业务代码,且通过结构相同的任务执行器执行所分配的业务任务。

12、在其中一个实施例中,所述采用所述主控核心和各所述从属核心,分别确定自身的运行负载,包括:

13、采用所述主控核心和各所述从属核心,分别统计分配至自身的业务任务数量,并获取各所述业务任务的预设任务权重;

14、采用所述主控核心和各所述从属核心,根据所述业务任务数量和所述预设任务权重,计算当前全部业务任务的预设任务权重之和,并将预设任务权重之和确定为自身的运行负载。

15、在其中一个实施例中,所述在所述负载分布状态表征存在负载不均衡的情况下,根据所述负载分布状态,确定待迁移业务任务以及分别用于迁出和接续执行所述待迁移业务任务的源核心和目标核心,包括:

16、采用所述主控核心,对各所述运行负载进行比较,确定最大运行负载和最小运行负载,并计算两者之间的负载差值;

17、在所述负载差值超出预设阈值的情况下,确定存在负载不均衡,将所述最大运行负载对应的处理器核心确定为源核心,将所述最小运行负载对应的处理器核心确定为目标核心;

18、针对当前分配至所述源核心的各业务任务,分别根据对应的预设任务权重,计算将各业务任务迁移至所述目标核心的预测负载差,并根据所述预测负载差确定所述待迁移业务任务。

19、在其中一个实施例中,所述将所述业务任务分配至所述多个处理器核心中的至少一个处理器核心执行,包括:

20、将所述业务任务组织为由多个业务处理单元构成的任务队列;

21、各所述处理器核心按照所述任务队列依次执行对应的业务处理单元,并更新用于指示所述业务任务执行位置的任务进度信息。

22、在其中一个实施例中,所述接续执行信息包括任务进度信息和业务状态信息;

23、所述将所述待迁移业务任务的接续执行信息存入所述任务池,包括:

24、采用所述源核心,在执行所述待迁移业务任务的过程中,生成并更新业务状态信息;所述业务状态信息包括接续执行下一待执行业务处理单元所需的任务参数、业务数据和资源依赖信息中的至少一种;

25、在完成当前业务处理单元且尚未执行下一业务处理单元时,将所述任务进度信息更新为指示下一待执行业务处理单元;

26、按照预设任务数据结构,将更新后的任务进度信息和所述业务状态信息组合成所述接续执行信息,并将所述接续执行信息写入所述任务池。

27、在其中一个实施例中,所述根据所述接续执行信息接续执行所述待迁移业务任务,包括:

28、采用所述目标核心,根据所述任务进度信息在所述任务队列中确定下一待执行业务处理单元;

29、根据所述业务状态信息,恢复执行所述下一待执行业务处理单元所需的业务数据;

30、采用所述目标核心的任务执行器,调用加载于所述目标核心的业务代码,从所述下一待执行业务处理单元开始执行所述待迁移业务任务,并在完成业务处理单元后更新所述任务进度信息和所述业务状态信息。

31、在其中一个实施例中,所述将所述待迁移业务任务调度至所述目标核心,包括:

32、获取所述目标核心的核心标识;将所述核心标识写入所述待迁移业务任务对应的任务调度属性,以指定所述目标核心执行所述待迁移业务任务。

33、采用所述目标核心,根据自身的核心标识从所述任务池中提取对应的接续执行信息,并将所述待迁移业务任务加入所述目标核心的任务队列。

34、在其中一个实施例中,所述目标核心从所述任务池获取所述接续执行信息,包括:

35、采用所述目标核心的任务执行器访问所述任务池,并根据自身的核心标识,与所述任务调度属性进行匹配,匹配成功则从所述任务池获取对应的接续执行信息,并根据所述接续执行信息将待迁移业务任务加入所述目标核心的任务队列。

36、第二方面,本技术提出了一种协同处理模块,适用于多核处理器;所述多核处理器包括多个处理器核心以及所述多个处理器核心共享访问的任务池;所述模块包括:

37、获取单元,用于获取业务任务,并将所述业务任务分配至所述多个处理器核心中的至少一个处理器核心执行;

38、确定单元,用于确定各所述处理器核心的运行负载,并根据各所述运行负载确定负载分布状态;在所述负载分布状态表征存在负载不均衡的情况下,根据所述负载分布状态,确定待迁移业务任务以及分别用于迁出和接续执行所述待迁移业务任务的源核心和目标核心;

39、接续单元,用于将所述待迁移业务任务的接续执行信息存入所述任务池,并将所述待迁移业务任务调度至所述目标核心,以使所述目标核心从所述任务池获取所述接续执行信息,并在不迁移所述源核心上的硬件执行上下文的情况下,根据所述接续执行信息接续执行所述待迁移业务任务。

40、第三方面,本技术还提供了一种协同处理系统,所述系统包括:

41、多核处理器,包括多个处理器核心以及所述多个处理器核心共享访问的任务池;

42、如第二方面中所述的协同处理模块,用于根据各所述处理器核心的运行负载,确定待迁移业务任务;利用所述任务池将所述待迁移业务任务从源核心调度至目标核心,并使所述目标核心根据存储于所述任务池中的接续执行信息接续执行所述待迁移业务任务。

43、第四方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中的方法。

44、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中的方法。

45、上述多核非对称多处理架构的协同处理方法、模块、系统、设备及程序产品,至少具有以下优点:

46、本技术通过确定各处理器核心的运行负载,在负载不均衡时将待迁移业务任务由源核心调度至目标核心,并利用各处理器核心共享访问的任务池向目标核心提供接续执行信息,使目标核心能够根据该接续执行信息继续执行待迁移业务任务。本技术可以根据运行负载动态调整业务任务在各处理器核心之间的分布,缓解部分核心过载而其他核心空闲的问题;同时,无需迁移源核心的硬件执行上下文,减少了跨核心迁移过程中执行状态的传输量和恢复开销,从而提高多核处理器的资源利用率和任务处理效率。