一种物联网计算任务调度系统及其方法转让专利

申请号 : CN201210352776.0

文献号 : CN103677984B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 石海龙李栋邱杰凡崔莉

申请人 : 中国科学院计算技术研究所

摘要 :

本发明公开了一种物联网计算任务调度系统及其方法,该系统包括:启动模块,用于启动节点,主处理器模块执行前多个任务并统计所述前多个任务执行一次的执行时间及任务触发情况;任务触发频率预测模块,根据所述任务触发情况预测未来一段时间的任务触发频率;任务参数测量模块,根据所述前多个任务测量得到任务切换算法模块所需要的多个参数;任务切换算法模块,根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式是硬件任务还是软件任务;协处理器模块,执行所述硬件任务;主处理器模块,执行所述软件任务。本发明利用协处理器模块与主处理器模块各自的优点,在保证系统实时性的同时,使节点整体功耗最低。

权利要求 :

1.一种物联网计算任务调度系统,其特征在于,包括:

启动模块,用于启动节点,主处理器模块执行前多个任务并统计所述前多个任务执行一次的执行时间及任务触发情况;

任务触发频率预测模块,用于根据所述任务触发情况预测未来一段时间的任务触发频率;

任务参数测量模块,用于根据所述前多个任务测量得到任务切换算法模块所需要的多个参数;

任务切换算法模块,用于根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式是硬件任务还是软件任务;

协处理器模块,用于执行所述硬件任务;

主处理器模块,用于执行所述软件任务;

其中所述多个参数包括软件任务执行一次所需时间、软件任务执行功率、主处理器休眠功率、硬件任务传输时延、硬件任务执行一次所需时间、硬件任务执行功率、协处理器休眠功率、协处理器配置计算任务所需功耗、计算任务触发频率、硬件任务相对软件任务的加速比。

2.如权利要求1所述的物联网计算任务调度系统,其特征在于,所述任务触发频率预测模块包括:短时预测模块,用于在所述协处理器模块处于休眠态时,根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;

长时预测模块,采用在所述协处理器模块处于关闭态时,在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。

3.根据权利要求1所述的物联网计算任务调度系统,其特征在于,所述任务切换算法模块包括:硬件任务切换模块,用于当预测的任务触发频率导致所述协处理器模块长期无法通过所述硬件任务实时完成时,将所述计算任务切换成所述软件任务由所述主处理器模块执行,同时关闭所述协处理器模块;

软件任务切换模块,用于当预测的任务触发频率导致所述主处理器模块无法通过所述软件任务实时完成时,开启所述协处理器模块,将所述计算任务切换成所述硬件任务并由所述协处理器模块执行;

选择任务切换模块,用于当所述主处理器模块和协处理器模块都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。

4.根据权利要求3所述的物联网计算任务调度系统,其特征在于,所述选择任务切换模块中:若所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则将所述硬件任务切换所述软件任务由所述主处理器模块执行,所述协处理器模块休眠;如果计算任务在所述主处理器模块中执行,则不切换任务;若预测到所述主处理器模块长期执行计算任务功耗较低,则关闭所述协处理器模块;

若所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则不切换任务;如果计算任务在所述主处理模块中执行,则将软件任务转换成硬件任务由所述协处理器模块执行。

5.根据权利要求1所述的物联网计算任务调度系统,其特征在于,所述任务切换算法模块中:需要切换计算任务成硬件任务由所述协处理器模块执行时,若所述协处理器模块处于关闭状态时,需要先完成所述协处理器模块的配置,在所述协处理器模块配置过程中,使所述主处理器模块休眠,配置完成后,唤醒所述主处理器模块,硬件任务根据所述主处理器模块的指令执行相关操作,若任务触发频率一直导致所述主处理器模块无法通过所述软件任务实时完成,则所述协处理器模块休眠,当新的计算任务到来时所述协处理器模块快速进入计算状态,同时所述主处理器模块继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。

6.根据权利要求3所述的物联网计算任务调度系统,其特征在于,所述选择任务切换模块中:通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。

7.根据权利要求2所述的物联网计算任务调度系统,其特征在于,所述长时预测模块包括:迭代调整模块,用于统计所述短时预测模块的时间差连续大于所述时间初始值的时间,然后用该时间与所述时间初始值求平均值,并根据该平均值计算触发频率阀值,通过该触发频率阀值计算任务触发频率。

8.一种物联网计算任务调度方法,其特征在于,包括:

步骤1,节点启动后的前多个任务由主处理器执行,并统计所述前多个任务执行一次的执行时间及任务触发情况;

步骤2,根据所述任务触发情况预测未来一段时间的任务触发频率;

步骤3,根据所述前多个任务测量得到任务切换算法所需要的多个参数;

步骤4,根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式;

步骤5,根据所述最佳执行方式,如果执行硬件任务,则切换到协处理器执行任务,如果执行软件任务,则切换到主处理器执行任务;

其中所述多个参数包括软件任务执行一次所需时间、软件任务执行功率、主处理器休眠功率、硬件任务传输时延、硬件任务执行一次所需时间、硬件任务执行功率、协处理器休眠功率、协处理器配置计算任务所需功耗、计算任务触发频率、硬件任务相对软件任务的加速比。

9.根据权利要求8所述的一种物联网计算任务调度方法,其特征在于,所述步骤2包括:步骤21,当所述协处理器模块处于休眠态时,进行短时预测,即根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;

步骤22,所述协处理器模块处于关闭态时,进行长时预测,即在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。

10.根据权利要求8所述的一种物联网计算任务调度方法,其特征在于,所述步骤5包括:步骤51,当预测的任务触发频率导致所述协处理器长期无法通过硬件任务实时完成时,将所述计算任务切换成所述软件任务并由所述主处理器执行,同时关闭所述协处理器;

步骤52,当预测的任务触发频率导致所述主处理器无法通过软件任务实时完成时,开启所述协处理器,将所述计算任务切换成所述硬件任务并由所述协处理器执行;

步骤53,所述主处理器和协处理器都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。

11.根据权利要求10所述的物联网计算任务调度方法,其特征在于,所述步骤53中:若所述主处理器执行计算任务功耗比所述协处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则将所述硬件任务切换所述软件任务由所述主处理器执行,所述协处理器休眠;如果计算任务在所述主处理器中执行,则不切换任务,若预测到所述主处理器长期执行计算任务功耗较低,则关闭所述协处理器;

若所述协处理器执行计算任务功耗比所述主处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则不切换任务;如果计算任务在所述主处理中执行,则将软件任务转换成硬件任务由所述协处理器执行。

12.根据权利要求8所述的物联网计算任务调度方法,其特征在于,所述步骤5中:需要切换计算任务成硬件任务并由所述协处理器执行时,若所述协处理器处于关闭状态时,需要先完成所述协处理器的配置,在所述协处理器配置过程中,使所述主处理器休眠,配置完成后,唤醒所述主处理器,硬件任务根据所述主处理器的指令执行相关操作,若任务触发频率一直导致所述主处理器无法通过软件任务实时完成,则所述协处理器休眠,当新的计算任务到来时所述协处理器快速进入计算状态,同时所述主处理器继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。

13.根据权利要求10所述的物联网计算任务调度方法,其特征在于,所述步骤53中:通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。

14.根据权利要求9所述的物联网计算任务调度方法,其特征在于,所述步骤22中的迭代调整过程为:统计所述短时预测模块的时间差连续大于所述时间初始值的时间,然后用该时间与所述时间初始值求平均值,并根据该平均值计算触发频率阀值,通过该触发频率阀值计算任务触发频率。

说明书 :

一种物联网计算任务调度系统及其方法

技术领域

[0001] 本发明涉及物联网领域,特别涉及一种物联网计算任务调度系统及其方法背景技术
[0002] 近年来,物联网技术迅速发展,在重大事故监测,环境监测与保护,智能交通,智能电网,智慧医疗等领域得到广泛应用。物联网应用中存在一类计算复杂度高,且要求实时性的应用,例如智能交通领域的车辆识别与流量统计,若采用视频传感器节点,需要在节点中运行计算复杂度很高的图像压缩/解压、模式识别等算法。为了保证系统实时性,这些复杂算法通常需要运行在专用的高速协处理器中。因此,针对这类应用,一般采用双核架构。协处理器模块中主要运行计算复杂度高且有实时性要求的算法,通常采用FPGA或者DSP实现,功耗较高执行速度快;而主处理器模块作为控制器运行一些简单的算法和协议,通常采用低功耗CPU实现,功耗很低但执行速度较慢。协处理器模块与主处理器模块通过高速总线相连,高速总线可以是串行总线(如SPI),也可以是并行总线(如HPI)。
[0003] 由于协处理器模块的休眠功耗比较高,当其算法长时间得不到运行时,则会浪费许多能量,降低节点能效比。例如,用于智能交通中车辆识别与流量监控的物联网视频节点,在早晚高峰期间,车流量较大,需要频繁执行模式识别算法来识别与统计车辆,此时采用协处理器模块执行效率较高;而在夜间车流量较少时,效率会大大降低。针对上述协处理器模块长期得不到运行时休眠功耗过高的问题,目前除了选择休眠功耗较低的协处理器模块之外,还没有较好的解决方案。
[0004] 协处理器模块具有三种状态:运行态,休眠态和关闭态。当协处理器执行计算任务时,处于运行态;当其无计算任务运行时,处于休眠态,休眠态时协处理器依然会消耗少量能量;当断开其电源时,处于关闭态,处于关闭态的协处理器不消耗能量。协处理器可以以很低的代价从休眠态迅速切换到运行态;而若要从关闭态切换到休眠态或运行态,则协处理器需配置自身程序,将耗费较多时间和能量。主处理器模块启动之后一般只有两种状态:运行态和休眠态;且主处理器的休眠功耗通常非常低,且从休眠态切换到运行态代价很低。
[0005] 本发明所提计算任务调度算法是利用协处理器关闭态时不需要消耗能量而主处理器从休眠态切换到运行态代价很低的特点,将触发频率很低的计算任务切换至主处理器中执行,以减少协处理器处于休眠态的时间和从关闭态切换到运行态的次数,继而降低节点的整体功耗。

发明内容

[0006] 本发明的目的是:利用协处理器关闭态时不需要消耗能量而主处理器从休眠态切换到运行态代价很低的特点,将触发频率很低的计算任务切换至主处理器中执行,以减少协处理器处于休眠态的时间和从关闭态切换到运行态的次数,继而降低节点的整体功耗。
[0007] 为实现上述目的,本发明提出了一种物联网计算任务调度系统,包括:
[0008] 启动模块,用于启动节点,主处理器模块执行前多个任务并统计所述前多个任务执行一次的执行时间及任务触发情况;
[0009] 任务触发频率预测模块,用于根据所述任务触发情况预测未来一段时间的任务触发频率;
[0010] 任务参数测量模块,用于根据所述前多个任务测量得到任务切换算法模块所需要的多个参数;
[0011] 任务切换算法模块,用于根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式是硬件任务还是软件任务;
[0012] 协处理器模块,用于执行所述硬件任务;
[0013] 主处理器模块,用于执行所述软件任务;
[0014] 进一步的,所述任务触发频率预测模块包括:
[0015] 短时预测模块,用于在所述协处理器模块处于休眠态时,根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;
[0016] 长时预测模块,采用在所述协处理器模块处于关闭态时,在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。
[0017] 进一步的,所述任务切换算法模块包括:
[0018] 硬件任务切换模块,用于当预测的任务触发频率导致所述协处理器模块长期无法通过所述硬件任务实时完成时,将所述计算任务切换成所述软件任务由所述主处理器模块执行,同时关闭所述协处理器模块;
[0019] 软件任务切换模块,用于当预测的任务触发频率导致所述主处理器模块无法通过所述软件任务实时完成时,开启所述协处理器模块,将所述计算任务切换成所述硬件任务并由所述协处理器模块执行;
[0020] 选择任务切换模块,用于当所述主处理器模块和协处理器模块都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。
[0021] 其中在所述选择任务切换模块中:
[0022] 若所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则将所述硬件任务切换所述软件任务由所述主处理器模块执行,所述协处理器模块休眠;如果计算任务在所述主处理器模块中执行,则不切换任务;若预测到所述主处理器模块长期执行计算任务功耗较低,则关闭所述协处理器模块;
[0023] 若所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则不切换任务;如果计算任务在所述主处理模块中执行,则将软件任务转换成硬件任务由所述协处理器模块执行。
[0024] 在所述任务切换算法模块中:
[0025] 需要切换计算任务成硬件任务由所述协处理器模块执行时,若所述协处理器模块处于关闭状态时,需要先完成所述协处理器模块的配置,在所述协处理器模块配置过程中,使所述主处理器模块休眠,配置完成后,唤醒所述主处理器模块,硬件任务根据所述主处理器模块的指令执行相关操作,若任务触发频率一直导致所述主处理器模块无法通过所述软件任务实时完成,则所述协处理器模块休眠,当新的计算任务到来时所述协处理器模块快速进入计算状态,同时所述主处理器模块继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。
[0026] 在所述选择任务切换模块中:
[0027] 通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。
[0028] 所述长时预测模块包括:
[0029] 迭代调整模块,用于统计所述短时预测模块的时间差连续大于所述时间初始值的时间,然后用该时间与所述时间初始值求平均值,并根据该平均值计算触发频率阀值,通过该触发频率阀值计算任务触发频率。
[0030] 本发明还提供了一种物联网计算任务调度方法,包括:
[0031] 步骤1,节点启动后的前多个任务由主处理器执行,并统计所述前多个任务执行一次的执行时间及任务触发情况;
[0032] 步骤2,根据所述任务触发情况预测未来一段时间的任务触发频率;
[0033] 步骤3,根据所述前多个任务测量得到任务切换算法所需要的多个参数;
[0034] 步骤4,根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式;
[0035] 步骤5,根据所述最佳执行方式,如果执行硬件任务,则切换到协处理器执行任务,如果执行软件任务,则切换到主处理器执行任务。
[0036] 进一步的,所述步骤2包括:
[0037] 步骤21,当所述协处理器模块处于休眠态时,进行短时预测,即根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;
[0038] 步骤22,所述协处理器模块处于关闭态时,进行长时预测,即在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。
[0039] 进一步的,所述步骤5包括:
[0040] 步骤51,当预测的任务触发频率导致所述协处理器长期无法通过硬件任务实时完成时,将所述计算任务切换成所述软件任务并由所述主处理器执行,同时关闭所述协处理器;
[0041] 步骤52,当预测的任务触发频率导致所述主处理器无法通过软件任务实时完成时,开启所述协处理器,将所述计算任务切换成所述硬件任务并由所述协处理器执行;
[0042] 步骤53,所述主处理器和协处理器都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。
[0043] 其中,在所述步骤53中:
[0044] 若所述主处理器执行计算任务功耗比所述协处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则将所述硬件任务切换所述软件任务由所述主处理器执行,所述协处理器休眠;如果计算任务在所述主处理器中执行,则不切换任务,若预测到所述主处理器长期执行计算任务功耗较低,则关闭所述协处理器;
[0045] 若所述协处理器执行计算任务功耗比所述主处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则不切换任务;如果计算任务在所述主处理中执行,则将软件任务转换成硬件任务由所述协处理器执行。
[0046] 在所述步骤5中:
[0047] 需要切换计算任务成硬件任务并由所述协处理器执行时,若所述协处理器处于关闭状态时,需要先完成所述协处理器的配置,在所述协处理器配置过程中,使所述主处理器休眠,配置完成后,唤醒所述主处理器,硬件任务根据所述主处理器的指令执行相关操作,若任务触发频率一直导致所述主处理器无法通过软件任务实时完成,则所述协处理器休眠,当新的计算任务到来时所述协处理器快速进入计算状态,同时所述主处理器继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。
[0048] 在所述步骤53中:
[0049] 通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。
[0050] 所述步骤22中的迭代调整过程为:
[0051] 统计所述短时预测模块的时间差连续大于所述时间初始值的时间,然后用该时间与所述时间初始值求平均值,并根据该平均值计算触发频率阀值,通过该触发频率阀值计算任务触发频率。
[0052] 本发明的有益效果在于利用协处理器模块与主处理器模块各自的优点,在保证系统实时性的同时,使节点整体功耗最低。具体而言:
[0053] 1,本发明结合协处理器模块运行速度快和主处理器模块休眠功耗低的优点,在协处理器和主处理器中同时保存物联网计算任务代码,根据任务触发频率不同,计算任务可以在协处理器与主处理器之间相互切换;方便采用合适的调度算法以保证节点整体功耗最低。
[0054] 关键点2,本发明所提计算任务调度算法是利用协处理器关闭态时不需要消耗能量而主处理器从休眠态切换到运行态代价很低的特点,将触发频率很低的计算任务切换至主处理器中执行,以减少协处理器处于休眠态的时间和从关闭态切换到运行态的次数,继而降低节点的整体功耗。同时任务调度算法可以保证系统实时性要求。
[0055] 关键点3,本发明采用短时预测与长时预测相结合的方式实现对任务触发频率的预测,短时预测主要解决协处理器模块处于休眠态时的触发频率预测,而长时预测主要解决协处理器模块处于关闭态时的触发频率预测。通过二者的结合,保证节点切换功耗最低。
[0056] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

[0057] 图1是本发明的物联网计算任务调度系统示意图;
[0058] 图2是本发明的物联网计算任务调度方法流程图;
[0059] 图3是本发明的软硬件任务切换示意图;
[0060] 图4是本发明的任务调度算法示意图。

具体实施方式

[0061] 为方便论述,在后文中将协处理器简写为RCU,而将主处理器简写为CPU;将协处理器中的计算任务称为硬件任务,而将主处理器中的计算任务称为软件任务。
[0062] 图1为本发明的物联网计算任务调度系统示意图.本发明的物联网计算任务调度系统,包括:
[0063] 启动模块200,用于启动节点,主处理器模块执行前多个任务并统计所述前多个任务执行一次的执行时间及任务触发情况;
[0064] 任务触发频率预测模块201,用于根据所述任务触发情况预测未来一段时间的任务触发频率;
[0065] 任务参数测量模块202,用于根据所述前多个任务测量得到任务切换算法模块所需要的多个参数;
[0066] 任务切换算法模块203,用于根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式是硬件任务还是软件任务;
[0067] 协处理器模块204,用于执行所述硬件任务;
[0068] 主处理器模块205,用于执行所述软件任务。
[0069] 所述任务触发频率预测模块201包括:
[0070] 短时预测模块,用于在所述协处理器模块处于休眠态时,根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;
[0071] 长时预测模块,采用在所述协处理器模块处于关闭态时,在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。
[0072] 所述任务切换算法模块203包括:
[0073] 硬件任务切换模块,用于当预测的任务触发频率导致所述协处理器模块长期无法通过所述硬件任务实时完成时,将所述计算任务切换成所述软件任务由所述主处理器模块执行,同时关闭所述协处理器模块;
[0074] 软件任务切换模块,用于当预测的任务触发频率导致所述主处理器模块无法通过所述软件任务实时完成时,开启所述协处理器模块,将所述计算任务切换成所述硬件任务并由所述协处理器模块执行;
[0075] 选择任务切换模块,用于当所述主处理器模块和协处理器模块都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。
[0076] 所述选择任务切换模块中:
[0077] 若所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则将所述硬件任务切换所述软件任务由所述主处理器模块执行,所述协处理器模块休眠;如果计算任务在所述主处理器模块中执行,则不切换任务;若预测到所述主处理器模块长期执行计算任务功耗较低,则关闭所述协处理器模块;
[0078] 若所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低时:如果计算任务在所述协处理器模块中执行,则不切换任务;如果计算任务在所述主处理模块中执行,则将软件任务转换成硬件任务由所述协处理器模块执行。
[0079] 所述任务切换算法模块203中:
[0080] 需要切换计算任务成硬件任务由所述协处理器模块执行时,若所述协处理器模块处于关闭状态时,需要先完成所述协处理器模块的配置,在所述协处理器模块配置过程中,使所述主处理器模块休眠,配置完成后,唤醒所述主处理器模块,硬件任务根据所述主处理器模块的指令执行相关操作,若任务触发频率一直导致所述主处理器模块无法通过所述软件任务实时完成,则所述协处理器模块休眠,当新的计算任务到来时所述协处理器模块快速进入计算状态,同时所述主处理器模块继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。
[0081] 所述选择任务切换模块中:
[0082] 通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。
[0083] 具体而言,以下几种情况出现时需要执行任务切换:(1)当任务触发频率很低,导致硬件任务长期得不到执行时,而硬件任务的休眠功耗过高,需要将硬件任务切换为软件任务并同时关闭协处理器模块,以降低节点整体功耗。(2)软件任务执行速度无法满足系统实时性要求时,需要切换到硬件任务。(3)软件任务和硬件任务都能满足系统实时性要求时,选择功耗较低的执行方式。
[0084] 软硬件任务切换示意图如附图3所示。整个过程分为6种情况:(a)节点启动后的前若干个任务都由CPU执行,用于统计软件任务执行一次的执行时间及任务触发情况;(b)基于上一阶段统计的软件任务执行情况及任务触发情况,结合提前估计的任务加速比,预测是否需要启动硬件任务;(c)当CPU模块预测到即将需要大量的计算而软件任务无法实时处理时,开启RCU模块,RCU模块启动时需要配置自身。在RCU模块配置过程中,CPU模块可休眠以节约能量,RCU模块配置完成后,唤醒CPU模块;(d)硬件任务根据CPU模块的指令执行相关操作,如复位、休眠、唤醒、开始执行、暂停执行等;由于任务触发频率较高,需要RCU模块一直执行任务,RCU模块不进入关闭状态而只休眠,当有新的计算任务到来时它可以快速进入计算状态;同时CPU模块中继续执行预测算法,并根据硬件任务的执行情况实时动态调整预测算法所需要参数,以提高预测准确率;(e)当软件任务执行功耗比硬件任务执行功耗低时,将计算任务切换到CPU模块中执行,而硬件任务处于休眠态;(f)若预测到在相当长一段时间内,软件任务的执行功耗会一直比较低,则关闭RCU模块,软件任务继续在CPU模块中运行。为了简化示意图,忽略了一些对节点整体功耗影响不大的过程。
[0085] 本发明所述计算任务可以在CPU模块中执行,也可以在RCU模块中执行,要确定是否需要进行任务切换,首先需要找到任务切换临界点。处于任务切换临界点时,任务在CPU模块中执行与在RCU模块中执行功耗相同。由于任务不同,软硬件任务切换临界点一般不相同,需要根据软硬件任务执行功耗,时间,任务触发频率等情况来实时确定。表1中为软硬件任务切换需要考虑的参数,其中PS、PH、PSS、PHS、PHC、TT根据终端所选用的器件可以提前测量得到。TS、TH由具体的计算任务确定,不同的计算任务它们的值往往不同,需要任务运行一段时间后才能测量得到。需要指出的是,硬件任务加速比SP在节点刚启动时,它的值是不知道的,而在图3第一阶段就需要用它去预测是否需要切换任务到硬件中执行。我们采用的方法是用一个提前估计的硬件加速比值初始化它,而这个估计值是在节点设计好后通过若干个软硬件任务实验取平均值估算得到的。对于特定的任务,该初始值往往不是最佳的,需要在任务执行过程中根据实际的任务执行情况进行调整。
[0086] 表1软硬件切换中需要考虑的性能参数
[0087]
[0088] 任务触发频率FS会根据环境的变化而变化,它是软硬件任务切换的重要驱动参数之一:当任务触发频率很高而软件无法有效完成计算任务时,需要将任务切换到RCU模块中执行。在节点计算任务已知的情况下,其它的参数都是常数值,任务的切换完全由任务触发频率FS决定,FS成为预测算法需要预测的唯一值。FS的预测算法将在后面详细给出,这里我们假设它已经被预测到,下面我们将要讨论是的任务的切换算法。
[0089] 假设当前的计算任务在CPU模块中执行,当满足下列几种情况时,需要切换到RCU模块中执行:
[0090] (1)当TS>1/FS时,即当任务触发频率过快导致CPU模块无法通过软件任务实时完成时,需要将任务切换到RCU模块中,而不用考虑节点功耗因素。
[0091] (2)当CPU模块和RCU模块都可以完成计算任务且RCU模块处于休眠态时,若在T时间内满足以下条件,则表示硬件任务的执行功耗小于软件任务的执行功耗,可以考虑将软件任务切换为硬件任务。
[0092] PSoftActive+PHardSleep>PHardActive+PSoftSleep  (式1)
[0093] 其中,PSoftActive为软件任务运行功耗,PHardSleep为RCU模块的休眠功耗,PHardActive为硬件任务运行功耗,PSoftSleep为CPU模块的休眠功耗,它们的值分别如下:
[0094] PSoftActive=PS*T*FS*TS+PSS*(T-T*FS*TS)
[0095] PHardSleep=T*PHS
[0096] PHardActive=PH*T*FS*TH+PHS*(T-T*FS*TH)
[0097] PSoftSleep=PS*T*FS*TT+PSS*(T-T*FS*TT)
[0098] 式1的含义为,当任务运行在CPU模块中时,且节点的整体功耗大于任务运行在RCU模块中的功耗时,就需要考虑将任务切换到RCU模块中执行。将参数代入式1并简化为,[0099] (PS-PSS)(TS-TT)-(PH-PHS)TH>0  (式2)
[0100] 当节点元器件已选定,计算任务已确定之后,式2左边部分各参数均为常数值,可令式2左边部分等于P0,由此可知,当P0>0时,即硬件任务计算功耗较低时,需要从软件任务切换到硬件任务来降低节点整体功耗;当P0<0时,采用软件任务可以有效降低节点功耗,此时可以将任务调度至CPU模块中执行。
[0101] (3)当CPU模块和RCU模块都可以完成计算任务且RCU模块处于关闭态时,若要切换到RCU模块运行,需要先完成RCU模块的配置。因此,若在T时间内满足以下条件,则表示硬件任务的执行功耗小于软件任务的执行功耗,可以考虑配置RCU模块并将任务调度至其中执行。
[0102] PSoftActive+PHardSleep>PHC+PHardActive+PSoftSleep  (式3)
[0103] 其中PHC为RCU模块的配置功耗,将式3简化为,
[0104] FS*T*[(PS-PSS)(TS-TT)-(PH-PHS)TH]>PHC  (式4)
[0105] 令
[0106] (PS-PSS)(TS-TT)-(PH-PHS)TH=P0  (式5)
[0107] 当P0<0时,式4不可能成立,因此采用CPU模块执行计算任务的功耗一直比RCU执行功耗低,这时不需要考虑将任务切换到RCU模块中执行。当P0>0时,若
[0108]
[0109] 表示当任务触发频率大于Fmin时,采用CPU模块执行计算任务的功耗大于RCU模块执行,此时可以将任务切换到RCU模块中运行;而当任务触发频率小于Fmin时,则不需要进行任务的切换,避免因配置RCU模块造成的功耗开销过大。
[0110] 需要指出的是式6中的Fmin会受到参数T的影响,当采用预测算法来决策计算任务是否需要切换时,T表示预测的整段时间,它的选择长短将影响决策阈值Fmin,需要根据实际的应用场合来选择合适的T,将在后面对其进行详细讨论。
[0111] 若当前计算任务在RCU模块中执行,根据上文的分析,可以得出下列推断
[0112] (1)当TS>1/FS时,即采用CPU模块无法满足计算任务实时性要求时,不能进行任务切换。
[0113] (2)当CPU模块可以满足计算任务实时性要求时,若P0<0,说明采用CPU模块执行计算任务功耗更低,可以将任务切换到CPU模块中执行。
[0114] (3)当软件任务可以执行,且P0>0时,需要比较实际任务触发频率FS与Fmin。若FS>Fmin,说明RCU模块执行计算任务功耗更低,不需要任务切换;若FS
[0115] 基于上述分析,本发明提出的任务调度算法如附图4所示。
[0116] 由上文讨论可知,当任务触发频率较高而CPU模块无法实时处理时,需要将任务切换到RCU模块中执行,任务触发频率预测的目的主要是判断下一次计算任务的执行方式。对于RCU模块而言,它的任务切换功耗与其当前的工作状态有关,当RCU模块处于休眠态时,任务可以随时在CPU模块和RCU模块中切换,切换功耗相对较低,而当RCU模块处于关闭态时,它的配置功耗占很大比重,因而不能随时切换任务。基于上述观察与分析,我们对任务触发频率的预测采用短时预测与长时预测相结合的方式实现。短时预测主要解决RCU模块处理休眠态时任务调度的触发频率预测,而长时预测主要解决RCU模块处于关闭态时的调度问题。
[0117] 当RCU模块处于休眠态时,采用短时预测的方法估计Fs,并根据估计结果判定是否需要进行任务切换。短时预测是根据当前任务触发时间与前一任务触发时间差估计任务触发频率,即
[0118]
[0119] 短时预测算法的实现复杂度非常低,可以在嵌入式CPU模块,如TI公司的MSP430系列单片机中快速实现。另一方面,短时预测结果能保证系统稳定执行任务,而不会出下CPU模块执行速度不够导致任务执行出错。理由如下:若FS的估计值满足TS<1/FS且P0<0,根据任务调度算法,任务将切换到软件中执行,如果实际的Fs与估计值存在偏差使TS<1/FS不成立,则会导致上一次软件任务还没有执行完就需要马上执行这一次任务,将会导致CPU模块执行任务出错。而采用式7估计的短时预测值不会出现任务无法有效执行的情况,由TS<1/FS及式7可知,若任务需要切换到CPU模块中执行,则必然会满足Ts<(T-T’),这说明当前任务触发时,上一次任务已经执行完毕,因而不会影响CPU模块执行下一次计算任务。
[0120] 当RCU模块处于关闭态时,由于其配置代价过高,不能采用短时预测的方式来实时决定是否进行任务切换,而需要估计在一段时间T内能保证式6成立才能打开RCU模块并将任务切换到其中执行。我们采用设置初始值并循环迭代修正初始值的方式实现长时预测,即在实施预测算法之前先预设一个合适的初始值T0,用于估计触发频率的阈值Fmin,若第一次短时预测值满足式6,则根据任务调度算法进行任务切换。同时根据短时预测值与Fmin的关系,统计连续大于Fmin或者小于Fmin的次数,并用该统计值与初始值的平均值迭代调整T0,经过若干次迭代之后该时间将趋于稳定,长时预测结果将更准确。长时预测机制根据应用不同,所选择的初始值T0也不同,需要根据不同物联网应用做出相应调整。
[0121] 其中,所述长时预测模块中的迭代过调整过程:根据短时预测模块得到的频率值与初始频率阈值的关系,统计短时预测频率值连续大于初始阈值的时间(因为短时预测频率值连续大于初始阈值表示需要将任务切换到协处理器中运行),然后用该时间与预设的时间求平均,并用该平均值替换预设的初始时间T0,同时用更新后的T0根据式6计算得到新的触发频率阈值。经过这样若干次迭代之后该时间T0将趋于稳定,即触发频率阈值也将趋于稳定,因此长时预测结果将更准确。
[0122] 长时预测模块中预设的时间初始值T0用来评估在T0时间内是采用硬件任务功耗低还是采用软件任务功耗低,进而可以选择功耗低的执行方式。用T0可以确定触发频率的初始阈值的(由具体实施方式中的式6右边的等式可确定),然后用短时预测得到的触发频率(由式7测量得到)与这个初始阈值比较,根据式6左边的不等式判断是否需要进行任务切换。然而初始时间T0在实际系统中往往不是最佳的,需要根据实际运行情况估计出最佳的T0,即迭代调整过程。
[0123] 本发明的物联网计算任务调度方法,包括:
[0124] 步骤100,节点启动后的前多个任务由主处理器执行,并统计所述前多个任务执行一次的执行时间及任务触发情况;
[0125] 步骤200,根据所述任务触发情况预测未来一段时间的任务触发频率;
[0126] 步骤300,根据所述前多个任务测量得到任务切换算法所需要的多个参数;
[0127] 步骤400,根据所述任务触发频率及所述多个参数,评估下一个计算任务的最佳执行方式;
[0128] 步骤500,根据所述最佳执行方式,如果执行硬件任务,则切换到协处理器执行任务,如果执行软件任务,则切换到主处理器执行任务。
[0129] 所述步骤200包括:
[0130] 步骤201,当所述协处理器模块处于休眠态时,进行短时预测,即根据当前任务触发时间与前一任务触发时间差计算得到任务调度的任务触发频率;
[0131] 步骤202,所述协处理器模块处于关闭态时,进行长时预测,即在实施预测算法前预设一个时间初始值用于估计触发频率的阀值,根据所述阀值和所述短时预测模块的时间差迭代调整时间初始值,然后通过计算得到任务调度的任务触发频率。
[0132] 所述步骤500包括:
[0133] 步骤501,当预测的任务触发频率导致所述协处理器长期无法通过硬件任务实时完成时,将所述计算任务切换成所述软件任务并由所述主处理器执行,同时关闭所述协处理器;
[0134] 步骤502,当预测的任务触发频率导致所述主处理器无法通过软件任务实时完成时,开启所述协处理器,将所述计算任务切换成所述硬件任务并由所述协处理器执行;
[0135] 步骤503,所述主处理器和协处理器都可以完成计算任务时,选择执行计算任务功耗低的最佳执行任务方式。
[0136] 所述步骤503中:
[0137] 若所述主处理器执行计算任务功耗比所述协处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则将所述硬件任务切换所述软件任务由所述主处理器执行,所述协处理器休眠;如果计算任务在所述主处理器中执行,则不切换任务,若预测到所述主处理器长期执行计算任务功耗较低,则关闭所述协处理器;
[0138] 若所述协处理器执行计算任务功耗比所述主处理器执行计算任务功耗低时:如果计算任务在所述协处理器中执行,则不切换任务;如果计算任务在所述主处理中执行,则将软件任务转换成硬件任务由所述协处理器执行。
[0139] 所述步骤500中:
[0140] 需要切换计算任务成硬件任务并由所述协处理器执行时,若所述协处理器处于关闭状态时,需要先完成所述协处理器的配置,在所述协处理器配置过程中,使所述主处理器休眠,配置完成后,唤醒所述主处理器,硬件任务根据所述主处理器的指令执行相关操作,若任务触发频率一直导致所述主处理器无法通过软件任务实时完成,则所述协处理器休眠,当新的计算任务到来时所述协处理器快速进入计算状态,同时所述主处理器继续执行预测算法,并根据硬件任务的完成情况实时调整预测算法所需参数。
[0141] 所述步骤503中:
[0142] 通过计算任务调度算法计算触发频率的阀值,当任务触发频率大于所述阀值时,所述协处理器模块执行计算任务功耗比所述主处理器模块执行计算任务功耗低;当任务触发频率小于所述阀值时,所述主处理器模块执行计算任务功耗比所述协处理器模块执行计算任务功耗低。
[0143] 具体而言,以下几种情况出现时需要执行任务切换:(1)当任务触发频率很低,导致硬件任务长期得不到执行时,而硬件任务的休眠功耗过高,需要将硬件任务切换为软件任务并同时关闭协处理器,以降低节点整体功耗。(2)软件任务执行速度无法满足系统实时性要求时,需要切换到硬件任务。(3)软件任务和硬件任务都能满足系统实时性要求时,选择功耗较低的执行方式。
[0144] 软硬件任务切换示意图如附图3所示。整个过程分为6种情况:(a)节点启动后的前若干个任务都由CPU执行,用于统计软件任务执行一次的执行时间及任务触发情况;(b)基于上一阶段统计的软件任务执行情况及任务触发情况,结合提前估计的任务加速比,预测是否需要启动硬件任务;(c)当CPU预测到即将需要大量的计算而软件任务无法实时处理时,开启RCU,RCU启动时需要配置自身。在RCU配置过程中,CPU可休眠以节约能量,RCU配置完成后,唤醒CPU;(d)硬件任务根据CPU的指令执行相关操作,如复位、休眠、唤醒、开始执行、暂停执行等;由于任务触发频率较高,需要RCU一直执行任务,RCU不进入关闭状态而只休眠,当有新的计算任务到来时它可以快速进入计算状态;同时CPU中继续执行预测算法,并根据硬件任务的执行情况实时动态调整预测算法所需要参数,以提高预测准确率;(e)当软件任务执行功耗比硬件任务执行功耗低时,将计算任务切换到CPU中执行,而硬件任务处于休眠态;(f)若预测到在相当长一段时间内,软件任务的执行功耗会一直比较低,则关闭RCU,软件任务继续在CPU中运行。为了简化示意图,忽略了一些对节点整体功耗影响不大的过程。
[0145] 本发明所述计算任务可以在CPU中执行,也可以在RCU中执行,要确定是否需要进行任务切换,首先需要找到任务切换临界点。处于任务切换临界点时,任务在CPU中执行与在RCU中执行功耗相同。由于任务不同,软硬件任务切换临界点一般不相同,需要根据软硬件任务执行功耗,时间,任务触发频率等情况来实时确定。表1中为软硬件任务切换需要考虑的参数,其中PS、PH、PSS、PHS、PHC、TT根据终端所选用的器件可以提前测量得到。TS、TH由具体的计算任务确定,不同的计算任务它们的值往往不同,需要任务运行一段时间后才能测量得到。需要指出的是,硬件任务加速比SP在节点刚启动时,它的值是不知道的,而在图3第一阶段就需要用它去预测是否需要切换任务到硬件中执行。我们采用的方法是用一个提前估计的硬件加速比值初始化它,而这个估计值是在节点设计好后通过若干个软硬件任务实验取平均值估算得到的。对于特定的任务,该初始值往往不是最佳的,需要在任务执行过程中根据实际的任务执行情况进行调整。
[0146] 表1软硬件切换中需要考虑的性能参数
[0147]
[0148] 任务触发频率FS会根据环境的变化而变化,它是软硬件任务切换的重要驱动参数之一:当任务触发频率很高而软件无法有效完成计算任务时,需要将任务切换到RCU中执行。在节点计算任务已知的情况下,其它的参数都是常数值,任务的切换完全由任务触发频率FS决定,FS成为预测算法需要预测的唯一值。FS的预测算法将在后面详细给出,这里我们假设它已经被预测到,下面我们将要讨论是的任务的切换算法。
[0149] 假设当前的计算任务在CPU中执行,当满足下列几种情况时,需要切换到RCU中执行:
[0150] (1)当TS>1/FS时,即当任务触发频率过快导致CPU无法通过软件任务实时完成时,需要将任务切换到RCU中,而不用考虑节点功耗因素。
[0151] (2)当CPU和RCU都可以完成计算任务且RCU处于休眠态时,若在T时间内满足以下条件,则表示硬件任务的执行功耗小于软件任务的执行功耗,可以考虑将软件任务切换为硬件任务。
[0152] PSoftActive+PHardSleep>PHardActive+PSoftSleep  (式1)
[0153] 其中,PSoftActive为软件任务运行功耗,PHardSleep为RCU的休眠功耗,PHardActive为硬件任务运行功耗,PSoftSleep为CPU的休眠功耗,它们的值分别如下:
[0154] PSoftActive=PS*T*FS*TS+PSS*(T-T*FS*TS)
[0155] PHardSleep=T*PHS
[0156] PHardActive=PH*T*FS*TH+PHS*(T-T*FS*TH)
[0157] PSoftSleep=PS*T*FS*TT+PSS*(T-T*FS*TT)
[0158] 式1的含义为,当任务运行在CPU中时,且节点的整体功耗大于任务运行在RCU中的功耗时,就需要考虑将任务切换到RCU中执行。将参数代入式1并简化为,
[0159] (PS-PSS)(TS-TT)-(PH-PHS)TH>0  (式2)
[0160] 当节点元器件已选定,计算任务已确定之后,式2左边部分各参数均为常数值,可令式2左边部分等于P0,由此可知,当P0>0时,即硬件任务计算功耗较低时,需要从软件任务切换到硬件任务来降低节点整体功耗;当P0<0时,采用软件任务可以有效降低节点功耗,此时可以将任务调度至CPU中执行。
[0161] (3)当CPU和RCU都可以完成计算任务且RCU处于关闭态时,若要切换到RCU运行,需要先完成RCU的配置。因此,若在T时间内满足以下条件,则表示硬件任务的执行功耗小于软件任务的执行功耗,可以考虑配置RCU并将任务调度至其中执行。
[0162] PSoftActive+PHardSleep>PHC+PHardActive+PSoftSleep  (式3)
[0163] 其中PHC为RCU模块的配置功耗,将式3简化为,
[0164] FS*T*[(PS-PSS)(TS-TT)-(PH-PHS)TH]>PHC  (式4)
[0165] 令
[0166] (PS-PSS)(TS-TT)-(PH-PHS)TH=P0  (式5)
[0167] 当P0<0时,式4不可能成立,因此采用CPU模块执行计算任务的功耗一直比RCU执行功耗低,这时不需要考虑将任务切换到RCU模块中执行。当P0>0时,若
[0168]
[0169] 表示当任务触发频率大于Fmin时,采用CPU执行计算任务的功耗大于RCU执行,此时可以将任务切换到RCU中运行;而当任务触发频率小于Fmin时,则不需要进行任务的切换,避免因配置RCU造成的功耗开销过大。
[0170] 需要指出的是式6中的Fmin会受到参数T的影响,当采用预测算法来决策计算任务是否需要切换时,T表示预测的整段时间,它的选择长短将影响决策阈值Fmin,需要根据实际的应用场合来选择合适的T,将在后面对其进行详细讨论。
[0171] 若当前计算任务在RCU中执行,根据上文的分析,可以得出下列推断
[0172] (1)当TS>1/FS时,即采用CPU无法满足计算任务实时性要求时,不能进行任务切换。
[0173] (2)当CPU可以满足计算任务实时性要求时,若P0<0,说明采用CPU执行计算任务功耗更低,可以将任务切换到CPU中执行。
[0174] (3)当软件任务可以执行,且P0>0时,需要比较实际任务触发频率FS与Fmin。若FS>Fmin,说明RCU执行计算任务功耗更低,不需要任务切换;若FS
[0175] 基于上述分析,本发明提出的任务调度算法如附图4所示。
[0176] 由上文讨论可知,当任务触发频率较高而CPU无法实时处理时,需要将任务切换到RCU中执行,任务触发频率预测的目的主要是判断下一次计算任务的执行方式。对于RCU而言,它的任务切换功耗与其当前的工作状态有关,当RCU处于休眠态时,任务可以随时在CPU和RCU中切换,切换功耗相对较低,而当RCU处于关闭态时,它的配置功耗占很大比重,因而不能随时切换任务。基于上述观察与分析,我们对任务触发频率的预测采用短时预测与长时预测相结合的方式实现。短时预测主要解决RCU处理休眠态时任务调度的触发频率预测,而长时预测主要解决RCU处于关闭态时的调度问题。
[0177] 当RCU处于休眠态时,采用短时预测的方法估计Fs,并根据估计结果判定是否需要进行任务切换。短时预测是根据当前任务触发时间与前一任务触发时间差估计任务触发频率,即
[0178]
[0179] 短时预测算法的实现复杂度非常低,可以在嵌入式CPU,如TI公司的MSP430系列单片机中快速实现。另一方面,短时预测结果能保证系统稳定执行任务,而不会出下CPU执行速度不够导致任务执行出错。理由如下:若FS的估计值满足TS<1/FS且P0<0,根据任务调度算法,任务将切换到软件中执行,如果实际的Fs与估计值存在偏差使TS<1/FS不成立,则会导致上一次软件任务还没有执行完就需要马上执行这一次任务,将会导致CPU执行任务出错。而采用式7估计的短时预测值不会出现任务无法有效执行的情况,由TS<1/FS及式7可知,若任务需要切换到CPU中执行,则必然会满足Ts<(T-T’),这说明当前任务触发时,上一次任务已经执行完毕,因而不会影响CPU执行下一次计算任务。
[0180] 当RCU处于关闭态时,由于其配置代价过高,不能采用短时预测的方式来实时决定是否进行任务切换,而需要估计在一段时间T内能保证式6成立才能打开RCU并将任务切换到其中执行。我们采用设置初始值并循环迭代修正初始值的方式实现长时预测,即在实施预测算法之前先预设一个合适的初始值T0,用于估计触发频率的阈值Fmin,若第一次短时预测值满足式6,则根据任务调度算法进行任务切换。同时根据短时预测值与Fmin的关系,统计连续大于Fmin或者小于Fmin的次数,并用该统计值与初始值的平均值迭代调整T0,经过若干次迭代之后该时间将趋于稳定,长时预测结果将更准确。长时预测机制根据应用不同,所选择的初始值T0也不同,需要根据不同物联网应用做出相应调整。
[0181] 其中,步骤202中所述长时预测中的迭代过调整过程:根据短时预测得到的频率值与初始频率阈值的关系,统计短时预测频率值连续大于初始阈值的时间(因为短时预测频率值连续大于初始阈值表示需要将任务切换到协处理器中运行),然后用该时间与预设的时间求平均,并用该平均值替换预设的初始时间T0,同时用更新后的T0根据式6计算得到新的触发频率阈值。经过这样若干次迭代之后该时间T0将趋于稳定,即触发频率阈值也将趋于稳定,因此长时预测结果将更准确。
[0182] 长时预测中预设的时间初始值T0用来评估在T0时间内是采用硬件任务功耗低还是采用软件任务功耗低,进而可以选择功耗低的执行方式。用T0可以确定触发频率的初始阈值的(由具体实施方式中的式6右边的等式可确定),然后用短时预测得到的触发频率(由式7测量得到)与这个初始阈值比较,根据式6左边的不等式判断是否需要进行任务切换。然而初始时间T0在实际系统中往往不是最佳的,需要根据实际运行情况估计出最佳的T0,即迭代调整过程。
[0183] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。