发明内容
有鉴于此,本发明实施例提供一种移动设备的功耗管理方法、装置及移动设备,以实现移动设备中芯片级的智能下电,有效降低移动设备的功耗,从而提高移动设备的用户体验。
第一方面,本发明实施例提供了一种移动设备的功耗管理方法,所述移动设备包括至少一个传感器,以及管理所述至少一个传感器的传感器处理器,所述方法包括:
判断所述传感器处理器当前是否处于空闲状态;
当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;
基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态;
当所述第一下电时长超时或监测到目标中断的产生时,则对所述传感器处理器执行上电操作。
在第一方面的第一种可能的实现方式中,所述获取所述传感器处理器的下一次工作时间,包括:
根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期,确定所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间,其中所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间为所述传感器处理器的下一次工作时间;或者,
遍历所述传感器处理器的定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值,其中所述最小值用于指示所述传感器处理器的下一次工作时间。
结合第一方面,或者第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长,包括:
根据所述传感器处理器的下一次工作时间和所述传感器处理器的上电预留时间,计算所述传感器处理器的第一下电时长。
结合第一方面,或者第一方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述对所述传感器处理器执行上电操作之后或同时,还包括:
根据所述第一下电时长和上电预留时间,或者所述上电操作时所述第一下电时长的当前消耗情况,对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
结合第一方面,或者第一方面第一至第三种任意一种可能的实现方式,在第四种可能的实现方式中,所述基于所述第一下电时长对所述传感器处理器执行下电操作之前或同时,还包括:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,所述对所述传感器处理器执行上电操作之后或同时,还包括:
根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
结合第一方面,或者第一方面第一至第二种任意一种可能的实现方式,在第五种可能的实现方式中,所述基于所述第一下电时长对所述传感器处理器执行下电操作,包括:
利用所述第一下电时长设置第一定时器并启动计时;
保存所述移动设备运行过程中生成的数据段,并下电所述传感器处理器或者发送下电命令,其中所述下电命令用于指示下电所述传感器处理器。
结合第一方面,或者第一方面第一至第五种任意一种可能的实现方式,在第六种可能的实现方式中,所述对所述传感器处理器执行上电操作,包括:
将所述移动设备中存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;
对所述传感器处理器上电。
结合第一方面第五种可能的实现方式,在第七种可能的实现方式中,所述对所述传感器处理器执行上电操作之后或同时,还包括:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent、所述第一定时器中的初始值M0和上电预留时间,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和所述第一定时器中的初始值M0,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为所述第一下电时长。
结合第一方面第五种可能的实现方式,在第八种可能的实现方式中,所述对所述传感器处理器执行上电操作之后或同时,还包括:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和上电预留时间,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为零,且所述第一定时器的超时条件为所述第一下电时长;
结合第一方面,或者第一方面第一至第八种任意一种可能的实现方式,在第九种可能的实现方式中,所述基于所述第一下电时长对所述传感器处理器执行下电操作,包括:
当所述传感器处理器的第一下电时长大于所述下电时长下限值时,基于所述第一下电时长对所述传感器处理器执行下电操作。
结合第一方面,或者第一方面第一至第九种任意一种可能的实现方式,在第十种可能的实现方式中,
所述判断所述传感器处理器当前是否处于空闲状态,包括:判断所述传感器处理器当前是否在执行任务;相应的,所述如果所述传感器处理器当前处于空闲状态,获取所述传感器处理器的下一次工作时间,包括:如果所述传感器处理器当前未在执行任务或执行空闲任务,则获取所述传感器处理器的下一次工作时间;或者,
所述判断所述传感器处理器当前是否处于空闲状态,包括:判断所述传感器处理器的当前功耗值是否低于功耗阈值;相应的,所述如果所述传感器处理器当前处于空闲状态,获取所述传感器处理器的下一次工作时间,包括:如果所述传感器处理器的当前功耗阈值低于功耗阈值,则获取所述传感器处理器的下一次工作时间。
结合第一方面第十种可能的实现方式,在第十一种可能的实现方式中,所述判断所述传感器处理器当前是否在执行任务包括:
判断全局计数器的多个位是否清零,其中所述全局计数器的多个位与所述传感器管理器上运行的传感器管理系统包括的多个管理模块一一对应,其中所述管理模块对应的位非零时,用于表示所述传感器处理器正在执行任务;所述管理模块对应的位为零时,用于表示所述传感器处理器执行完毕所述任务,其中所述任务用于反映所述管理模块的功能的执行情况;
当所述全局计数器的多个位均清零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务;
或者,
判断全局计数器是否为零,其中所述全局计数器非零时,用于表示所述传感器处理器正在执行一个或多个任务;所述全局计数器为零时,用于表示所述所述传感器处理器执行完毕所述一个或多个任务,其中所述一个或多个任务用于反映所述传感器管理系统包括的多个管理模块中的任一或多个管理模块的功能的执行情况;
当所述全局计数器为零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
结合第一方面,或者第一方面第一至第十一种任意一种可能的实现方式,在第十二种可能的实现方式中,所述方法还包括:
判断所述传感器当前是否处于空闲状态;
当所述传感器当前处于空闲状态时,获取所述传感器的下一次采样数据的时间,并根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长;
基于所述第二下电时长,对所述传感器执行下电操作;以及,
当所述第二下电时长超时或监测到目标中断的产生时,对所述传感器执行上电操作。
第二方面,本发明实施例提供了一种移动设备的功耗管理方法,所述移动设备包括至少一个传感器,以及管理所述至少一个传感器的传感器处理器,所述方法包括:
判断所述传感器处理器当前是否处于空闲状态;
当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;以及,
当监测到目标中断的产生时,则对所述传感器处理器执行上电操作。
在第二方面的第一种可能的实现方式中,所述判断所述传感器处理器当前是否处于空闲状态,包括:判断所述传感器处理器当前是否在执行任务;
相应的,所述当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作为:当所述传感器处理器当前未在执行任务或执行空闲任务且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;
或者,
所述判断所述传感器处理器当前是否处于空闲状态,包括:判断所述传感器处理器的当前功耗值是否低于功耗阈值;
相应的,所述当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作为:当所述传感器处理器的当前功耗阈值低于功耗阈值且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
第三方面,本发明实施例提供了一种移动设备,包括:
传感器处理器,
耦合至所述传感器处理器的功耗管理器;
耦合至所述传感器处理器的至少一个传感器;以及
耦合至所述传感器处理器的存储器;
其中,所述传感器处理器通过调用所述存储器中存储的指令,以用于:
判断所述传感器处理器当前是否处于空闲状态;
当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;
基于所述第一下电时长,执行下电所述传感器处理器的操作,或者向所述功耗管理器发送下电指令,所述下电指令用于指示所述功耗管理器对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。
在第三方面的第一种可能的实现方式中,在获取所述传感器处理器的下一次工作时间的方面,所述传感器处理器具体用于:
根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期,确定所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间,其中所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间为所述传感器处理器的下一次工作时间;或者,
遍历所述传感器处理器的定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值,所述最小值用于指示所述传感器处理器的下一次工作时间。
结合第三方面,或者第三方面第一种可能的实现方式,在第二种可能的实现方式中,
在根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长的方面,所述传感器处理器具体用于:
根据所述传感器处理器的下一次工作时间和所述传感器处理器的上电预留时长,计算所述传感器处理器的第一下电时长。
结合第三方面,或者第三方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述功耗管理器用于:当所述第一下电时长超时或监测到目标中断的产生时,对所述传感器处理器执行上电操作;以及,
所述传感器处理器还用于:根据所述第一下电时长和上电预留时长,或者所述上电操作时所述第一下电时长的当前消耗情况对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
结合第三方面,或者第三方面第一至第二种任意一种可能的实现方式,在第四种可能的实现方式中,所述传感器处理器还用于:在对所述传感器处理器执行下电操作之前或同时,将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
所述功耗管理器用于当所述第一下电时长超时或监测到目标中断的产生时,对所述传感器处理器执行上电操作;以及,
所述传感器处理器还用于:根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
结合第三方面第三种可能的实现方式以及第四种可能的实现方式中的任意一种可能的实现方式,在第五种可能的实现方式中,在所述对所述传感器处理器执行上电操作的方面,所述功耗管理器用于:
将所述存储器中存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述存储器中的指定位置;
对所述传感器处理器上电。结合第三方面,或者第三方面第一至第五种任意一种可能的实现方式,在第六种可能的实现方式中,
在所述基于所述第一下电时长对所述传感器处理器执行下电操作的方面,所述传感器处理器用于:
利用所述第一下电时长设置第一定时器并启动计时;
保存所述移动设备运行过程中生成的数据段在所述存储器中,并下电或者向所述功耗管理器发送下电命令,其中所述下电命令用于指示所述功耗管理器下电所述传感器处理器。
结合第三方面第六种可能的实现方式,在第七种可能的实现方式中,所述传感器处理器具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent、所述第一定时器中的初始值M0和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和所述第一定时器中的初始值M0,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为所述第一下电时长。
结合第三方面第六种可能的实现方式,在第八种可能的实现方式中,所述传感器处理器具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为零,且所述第一定时器的超时条件为所述第一下电时长;
结合第三方面,或者第三方面第一至第八种任意一种可能的实现方式,在第九种可能的实现方式中,在所述基于所述第一下电时长对所述传感器处理器执行下电操作的方面,所述传感器处理器用于:
当所述传感器处理器的第一下电时长大于所述下电时长下限值时,基于所述第一下电时长对所述传感器处理器执行下电操作。
结合第三方面,或者第三方面第一至第九种任意一种可能的实现方式,在第十种可能的实现方式中,
所述传感器处理器具体用于:
判断所述传感器处理器当前是否在执行任务;当所述传感器处理器当前未在执行任务或执行空闲任务,则获取所述传感器处理器的下一次工作时间;
或者,
所述传感器处理器具体用于:判断所述传感器处理器的当前功耗值是否低于功耗阈值;当所述传感器处理器的当前功耗阈值低于功耗阈值,则获取所述传感器处理器的下一次工作时间。
结合第三方面第十种可能的实现方式,在第十一种可能的实现方式中,在所述判断所述传感器处理器当前是否在执行任务的方面,所述传感器处理器具体用于:
判断全局计数器的多个位是否清零,其中所述全局计数器的多个位与所述传感器管理器上运行的传感器管理系统包括的多个管理模块一一对应,其中所述管理模块对应的位非零时,用于表示所述传感器处理器正在执行任务;所述管理模块对应的位为零时,用于表示所述传感器处理器执行完毕所述任务,其中所述任务用于反映所述管理模块的功能的执行情况;
当所述全局计数器的多个位均清零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务;
或者,
在所述判断所述传感器处理器当前是否在执行任务的方面,所述传感器处理器具体用于:
判断全局计数器是否为零,其中所述全局计数器非零时,用于表示所述传感器处理器正在执行一个或多个任务;所述全局计数器为零时,用于表示所述所述传感器处理器执行完毕所述一个或多个任务,其中所述一个或多个任务用于反映所述传感器管理系统包括的多个管理模块中的任一或多个管理模块的功能的执行情况;
当所述全局计数器为零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
结合第三方面,或者第三方面第一至第十一种任意一种可能的实现方式,在第十二种可能的实现方式中,所述传感器处理器还用于:
判断所述传感器当前是否处于空闲状态;
当所述传感器当前处于空闲状态时,获取所述传感器的下一次采样数据的时间,并根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长;
基于所述第二下电时长,对所述传感器执行下电操作;以及,
当所述第二下电时长超时或监测到目标中断的产生时,对所述传感器执行上电操作。
第四方面,本发明实施例提供了一种移动设备,,包括:
传感器处理器,
耦合至所述传感器处理器的功耗管理器;
耦合至所述传感器处理器的至少一个传感器;以及
耦合至所述传感器处理器的存储器;
其中,所述传感器处理器通过调用所述存储器中存储的指令,以用于:
判断所述传感器处理器当前是否处于空闲状态;
当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;以及,
所述功耗管理器用于当监测到目标中断的产生时,则对所述传感器处理器执行上电操作。
在第四方面的第一种可能的实现方式中,所述传感器处理器具体用于:
判断所述传感器处理器当前是否在执行任务;当所述传感器处理器当前未在执行任务或执行空闲任务且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;或者,
判断所述传感器处理器的当前功耗值是否低于功耗阈值;当所述传感器处理器的当前功耗阈值低于功耗阈值且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
结合第四方面,或者第四方面第一种可能的实现方式,在第二种可能的实现方式中,其中所述下电命令用于指示功耗管理器下电所述传感器处理器;
在对所述传感器处理器执行上电操作的方面,所述功耗管理器具体用于:将所述移动设备中存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;并对所述传感器处理器上电。
结合第四方面,或者第四方面第一至第二种任意一种可能的实现方式,在第三种可能的实现方式中,对所述传感器处理器执行下电操作之前或同时,所述传感器处理器还用于:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,在对所述传感器处理器执行上电操作之后或同时,所述传感器处理器还用于:根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
可见,本发明实施例中,通过判断所述传感器处理器当前是否处于空闲状态;当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,即使在一个或多个传感器处于上电空闲状态或上电运行状态时也能在合适的下电时机对传感器处理器进行真正意义的下电,即采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验;
其中,本发明实施例中,根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器处理器将要执行任务的时间,以实现能较为精准的确定传感器处理器的本次下电时长(亦可称为传感器处理器的下次上电时机),从而进一步提高了移动设备的用户体验。
具体实施方式
本发明实施例提供一种移动设备的功耗管理方法,以实现移动设备中芯片级的智能下电,有效降低移动设备的功耗,从而提高移动设备的用户体验。
本发明实施例还提供了相应的装置及移动设备。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的术语;
传感器处理器,即用于管理传感器的处理器;应当理解的是,本发明仅仅是为了便于描述,命名为传感器处理器,本质上传感器处理器即是一种处理器,该处理器可以负责处理、运算移动设备内部的数据,包括:用于读取传感器采集的数据,或者用于处理传感器采集的数据,并对传感器作出相应的响应。例如可以是,SensorHub DSP(Digital SignalProcessing/Processor,数字信号处理),MCU(Micro Controller Unit,微控制器单元),或MPU(Micro Processor Unit,微处理器单元),其中MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。
参阅图1,图1是本发明实施例中一种移动设备的逻辑结构示意图。
以图1为例介绍本发明实施例提供的移动设备的功耗管理方法应用的移动设备的逻辑架构。该移动设备具体可以为一智能手机。如图1所示,该移动设备的硬件层包括传感器处理器、一种或多种传感器,例如加速度、陀螺仪、磁力仪、光传感,应当理解的是,本发明实施例中的传感器还可以为压差传感器、秤重传感器、光电传感器、气体传感器、速度传感器、流量传感器、位置传感器、力传感器、视觉/图像传感器、位移传感器、尺度传感器、角度传感器、声传感器、密度传感器、离子传感器、湿度传感器、称重传感器、霍尔传感器等,当然还可以包括其它处理器(比如功耗处理器或应用处理器等)、存储器、输入/输出设备、内存、内存控制器、网络接口等,输入/输出设备可包括键盘、鼠标、触摸屏等。在硬件层之上可运行有操作系统以及一些应用程序。
具体的,该移动设备还包括驱动层、传感器管理系统、通信层和应用层。
其中,驱动层可包括传感器驱动、通信驱动、I2C(Inter-Integrated Circuit,内整合总线)驱动等;
其中,传感器管理系统可包括:传感器管理模块、功耗管理模块、系统状态管理模块、通信管理模块等,可选的,还可以包括运动管理模块、虚拟传感器管理模块、计步管理模块以及其它管理模块;
其中,通信层可包括通信驱动(IPC Driver)、事件处理(Event System)、传感器硬件抽像层(Sensor HAL)等;
其中,应用层可包括各种传感器应用,例如计步器、游戏应用、导航等,还可以包括主界面(home)、媒体播放器(Media Player)、浏览器(Browser)等多种应用程序。
需要说明的是,传感器管理系统是操作系统的核心部分,包括传感器管理模块、功耗管理模块、系统状态管理模块、通信管理模块等,其中,本发明实施例所描述的功耗管理可以是由传感器处理器与其上软件逻辑层(即驱动,传感器管理系统,通信层和应用层)共同配合进行实施的,具体的,传感器处理器上运行的任务线程或进程可以用于反映传感器管理系统中的各个管理模块的功能,即判断所述传感器处理器当前是否处于空闲状态(也可以理解为判断传感器管理系统是否处于空闲状态);当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;以及,基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。应当理解的是,可以是传感器处理器自己下电,也可以是传感器处理器生成对应的下电指令,将该下电指令传递给移动设备中的功耗管理器件(例如电源或者功耗处理器),由功耗管理器器件(例如电源或者功耗处理器)对传感器处理器进行上下电控制。
需要说明的是,本发明实施例可以适用嵌入式、物联网等领域,相应的,本发明实施例中的移动设备可以是智能手机,穿戴设备,车载终端(比如车联网里面的车机),智能家居终端(比如智能家居里面的无线红外探测仪、智能门磁、烟雾探测、光电烟感、天然气检测报警、移动网接入的传感设备等),以及物联网终端(比如智能门锁)等。
参阅图2-A,图2-A是本发明实施例提供的移动设备的功耗管理方法的流程示意图。需要说明的是,本发明实施例的方法应用于移动设备,所述移动设备包括一个或多个传感器以及管理所述一个或多个传感器的传感器处理器,本发明实施例的方法可以包括如下步骤:
S101、判断所述传感器处理器当前是否处于空闲状态;
需要说明的是,本发明实施例涉及的空闲状态的概念是当前时刻传感器处理器上未运行任何的应用层业务和系统层业务,或者当前时刻所有的应用层业务和系统层业务都已经被传感器处理器完成。
在一种实现方式下,S101可以包括:判断所述传感器处理器当前是否正在执行任务,如果所述传感器处理器当前未在执行任务或执行空闲任务,则说明该传感器处理器当前处于空闲状态;如果所述传感器处理器当前正在执行任务,则说明该传感器处理器当前处于工作状态。
应当理解的是,这里的任务可以是传感器应用触发的任务,系统任务,通信任务,当前执行中断任务,或者定时任务等。例如可以理解为:判断是否存在系统线程或进程,或者通信线程或进程,或者其它线程或进程运行在该传感器处理器上。
具体的,可以通过不同的方法来判断所述传感器处理器当前是否在执行任务,即:
在一种实施例中,判断全局计数器的多个位是否清零,其中所述全局计数器的多个位与所述传感器管理器上运行的传感器管理系统包括的多个管理模块一一对应,其中所述管理模块对应的位非零时,用于表示所述传感器处理器正在执行任务;所述管理模块对应的位为零时,用于表示所述传感器处理器执行完毕所述任务,其中所述任务用于反映所述管理模块的功能的执行情况;
当所述全局计数器的多个位均清零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
在一种实施例中,判断全局计数器是否为零,其中所述全局计数器非零时,用于表示所述传感器处理器正在执行一个或多个任务;所述全局计数器为零时,用于表示所述所述传感器处理器执行完毕所述一个或多个任务,其中所述一个或多个任务用于反映所述传感器管理系统包括的多个管理模块中的任一或多个管理模块的功能的执行情况;
当所述全局计数器为零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
此外,在另一种实现方式下,S101可以包括:判断所述传感器处理器的当前功耗值是否低于功耗阈值,如果所述传感器处理器的当前功耗阈值低于功耗阈值,则说明该传感器处理器当前处于空闲状态;如果所述传感器处理器的当前功耗阈值高于或等于功耗阈值,则说明该传感器处理器当前处于工作状态;
需要说明的是,S101也可以理解为,判断传感器管理系统是否处于空闲状态;
S102、当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间。
这里的所述传感器处理器的下一次工作时间,可以理解为:传感器处理器的下一次读取传感数据的时间或者传感器处理器的下一次处理传感数据的时间或者传感器处理器的下一次响应传感器的时间。
在一种实现方式下,S102可以为:当所述传感器处理器当前未在执行任务或执行空闲任务时,获取所述传感器处理器的下一次工作时间;或者,
在另一种实现方式下,S102可以为:当所述传感器处理器的当前功耗阈值低于功耗阈值时,获取所述传感器处理器的下一次工作时间;
以及,可以通过不同的方法来获取所述传感器处理器的下一次工作时间,具体的:
在一个实施例中,遍历所述传感器处理器的定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值,所述最小值用于指示所述传感器处理器的下一次工作时间;其中,定时器链表上存放的是整个系统中将来要超时的定时器;任务延时链表是存放着任务被延时处理的链表,应当理解的是,这里的定时器包括但不限于:用于对传感器采样周期进行计时的定时器,以及用于对传感器处理器的数据读取周期进行计时的定时器。比如:如果所述定时器链表和任务延时链表中的最小值为5ms(5ms表示某递减计时的定时器,其当前值为5ms),则说明传感器处理器的下一次工作时间是5ms之后的时刻;如果所述定时器链表和任务延时链表中的最小值为17:55(17:55表示某任务被延时于17:55处理(而当前系统时间是17:53)),则说明传感器处理器的下一次工作时间是17:55的时刻。应当理解的是,这里仅是举例说明,而不应造成对本发明的限制。
在一个实施例中,根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期,确定所述传感器处理器的下一次读取传感数据的时间或者所述传感器处理器的下一次处理传感数据的时间,其中所述传感器处理器的下一次读取传感数据的时间或者所述传感器处理器的下一次处理传感数据的时间为所述传感器处理器的下一次工作时间;
具体可以是,根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期以及当前系统时间值(例如,用于对采样周期计时的定时器的当前值,或者用于对数据读取周期计时的定时器的当前值),确定所述传感器处理器的下一次读取传感数据的时间或者所述传感器处理器的下一次处理传感数据的时间,其中所述传感器处理器的下一次读取传感数据的时间或者所述传感器处理器的下一次处理传感数据的时间为所述传感器处理器的下一次工作时间。
下面对传感器与传感器处理器的几种交互方式进行介绍:
(1)由传感器处理器按照某个读取周期去读取传感器的最新的传感器指标,在传感器处理器读取时触发传感器再去采集实际数据;
(2)由传感器处理器给传感器设置一个采样周期,传感器按照设定的周期定时采集,传感器处理器再按照同样的周期定时读取传感器采集到的数据,应当理解的是,虽然两者的周期可以是相同的,但传感器处理器的起始时间可以设置成较晚于传感器的起始时间,传感器与传感器处理器之间的时间间隔可以让传感器采集完成相应的数据;
(3)由传感器处理器给传感器设置一个采样周期,传感器按照设定的周期定时采集,将采集到的数据缓存一定的次数,传感器处理器再按照一个更长的读取周期定时读取传感器采集到的数据,这个更长的周期一般是传感器采样周期的数倍,这样传感器处理器需要读取的次数会下降数倍;
(4)传感器处理器给传感器设置一个中断处理函数,传感器在侦测到相应的状态变化时往传感器处理器上报中断;
综上所述,传感器处理器在上面的四种模式中,在两次读取传感器数据之间的时间间隔传感器处理器都会处于空闲/休眠/低功耗状态,通过本发明实施例,可以在两次读取传感器数据之间的时间间隔较大的情况下,在合适的时机对传感器处理器进行下电处理,以降低功耗。
比如计步器应用需要用到加速度传感器,当计步器在工作时,加速度传感器也处于工作状态,加速度传感器的采样周期是20ms,如果加速度传感器一次采样数据需要2ms的处理时间,通过本发明实施例就可以在合适的时机对传感器处理器进行下电处理,其中传感器处理器最大程度上可以下电接近18ms。
再如远近光传感器工作时,在从远到近或者从近到远的时候会产生一个中断,传感器处理器就需要处理这个中断,但是如果状态一直没有变化,通过本发明实施例就可以在合适的时机对传感器处理器进行下电处理。
应当理解的是:由于传感器处理器的下一次工作时间的确定是考虑了传感器的采样周期或者传感器处理器的数据读取周期,在传感器处理器的下一次工作时间到来之前,传感器处理器下电不会影响传感器周期性地或定期地采样数据,或者也不影响对传感器的采样数据的及时响应或及时处理,因为,需要传感器处理器去读取传感器采集到的数据的时候,传感器处理器已经上电了,或者,在传感器采集完数据而需要传感器处理器去响应或去处理传感器采集到的数据的时候,传感器处理器已经上电了。
S103、根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;
需要说明的是,为了区分传感器处理器的本次下电时长与传感器的本次下电时长,本发明实施例中,引入第一下电时长表示传感器处理器的本次下电时长,引入第二下电时长表示传感器的本次下电时长;
在一种实现方式下,S103可以为:根据所述传感器处理器的下一次工作时间T和所述传感器处理器的上电预留时长N,计算所述传感器处理器的第一下电时长S。具体的,例如是:计算下电时长S=T–N;或者,计算下电时长S=T–N–△T;△T用于表示一个很小的缓冲时间。
需要说明的是,本实施例中的传感器处理器的上电预留时长用于表示所述传感器处理器完成上电所需的最短时间或平均时间。
具体的,上电预留时长可以是设定的经验值,也可是实际测量值,例如在移动设备的系统启动完成后,进行从下电定时器超时或中断产生到上电所花费时间的测量。
S104、基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态(换言之,即所述移动设备中的至少一个传感器中的部分或全部传感器处于上电空闲状态或上电运行状态)。
应当理解的是:这里传感器的上电空闲状态可以理解为:传感器处于上电状态且处于空闲状态;这里传感器的上电运行状态可以理解为:传感器处于上电状态且处于工作状态(例如传感器在采集数据,但不限于此)。
例如,针对前面提到的传感器与传感器处理器的第(1),(2),(3)种交互方式下,在传感器处理器下电的期间,传感器在所述传感器处理器的下电期间的子时间段或完整时间段中可以在工作,比如在采集数据,或者上报中断。
在一种实现方式下,S104可以包括:
利用所述第一下电时长设置第一定时器并启动第一定时器的计时;
保存所述移动设备运行过程中生成的数据段,并下电所述传感器处理器或者发送下电命令,所述下电命令用于指示下电所述传感器处理器。
较优的,对所述传感器处理器执行下电操作之前或同时,还可以包括:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存用于连接当前运行的传感器的输入/输出(I/O)口的状态。
需要说明的是,本发明实施例的第一定时器为用于对第一下电时长进行计时的定时器;以及,本发明实施例中,待保存的数据段包括栈数据和全局数据等,这里不再赘述。以及,本发明实施例中,可以是传感器处理器向电源或电源管理处理器发送下电命令,由电源或电源管理处理器对传感器处理器进行下电操作,也可以是传感器处理器自己下电。
可见,本发明实施例中,通过判断所述传感器处理器当前是否处于空闲状态;当所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。可见,相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,即使传感器在运行时也能在合适的下电时机对传感器处理器进行真正意义的下电,即采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验;
其中,本发明实施例中,根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器处理器将要执行任务的时间,以实现能较为精准的确定本次下电时长(换言之即下次上电时机),从而进一步提高了移动设备的用户体验;
此外,本发明实施例中,根据所述传感器处理器的下一次工作时间和所述传感器处理器的上电预留时长,计算所述传感器处理器的第一下电时长,即在计算第一下电时长时,预留合理长的时间用于传感器处理器完成上电过程,从而能在实现降低移动设备的功耗的同时,还能保证传感器处理器的上电的可靠性,进而进一步提高了移动设备的用户体验;
此外,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
图2-B所示为本发明另一实施例的移动设备的功耗管理方法的流程示意图。图2-B将结合图2-A进行说明,与图2-A具有相同标号的步骤具有相同或相似的描述,这里不再赘述,本实施例中用S105代替S104,其中:
S105、当所述传感器处理器的第一下电时长大于下电时长下限值时,基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。
需要说明的是,本实施例中的下电时长下限值用于表示所述传感器处理器完成下电和上电所需的最短时间或平均时间。
具体的,下电时长下限值可以是设定的经验值,也可是实际测量值,例如在移动设备的系统启动完成后,进行一次或多次下电和上电所花费时间的测量,得到最短时间或平均时间,应当理解的是,在不同的应用场景下,下电时长下限值可以是不同的,可以通过实际的测量保证其准确性。
进一步的,本发明实施例中,通过比较第一下电时长与下电时长下限值的大小,能保证下电操作的有效性和可靠性,避免了在第一下电时长小于下电时长下限值的情况下进行无意义的下电休眠。
图2-C所示为本发明再一实施例的移动设备的功耗管理方法的流程示意图。图2-C将结合图2-A或图2-B进行说明,与图2-A或图2-B具有相同标号的步骤具有相同或相似的描述,这里不再赘述,以及,本实施例中还可以包括:
S106、当所述第一下电时长超时或监测到目标中断的产生时,则对所述传感器处理器执行上电操作。
需要说明的是,这里的目标中断可以是IPC(核间通信)中断,传感器中断,定时timing中断等等。
其中,在一种实现方式下,S106中的对所述传感器处理器执行上电操作可以包括:
将所述移动设备中存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;以及,对所述移动设备的传感器处理器上电;其中这里的指定位置可以是与传感器处理器耦合的存储器中的指定位置,或者传感器处理器内部的存储空间中的指定位置,本发明包括但不限于此。
较优的,本实施例中,对所述传感器处理器执行上电操作之后或同时,还包括:
S107、根据所述第一下电时长和上电预留时长,或者所述上电操作时所述第一下电时长的当前消耗情况,对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
具体的,当所述第一下电时长超时时,对所述传感器处理器执行上电操作,并根据所述第一下电时长和上电预留时长对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;或者,
当监测到目标中断的产生时,则对所述传感器处理器执行上电操作,并根据所述上电操作时所述第一下电时长的当前消耗情况对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
以及,较优的,本实施例中,对所述传感器处理器执行上电操作之后或同时,还可以包括:
S108、根据所述传感器处理器在下电操作之前或同时所保存的传感器处理器当前运行的上下文和用于连接当前运行的传感器的输入/输出I/O口的状态,恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
进一步的,本发明实施例中,相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,能实现传感器处理器(即芯片级)的上下电技术,以及,能在合适的上电时机(即第一下电时长超时时)对传感器处理器进行上电,或者能做到传感器响应及时,从而提高移动设备的用户体验;
进一步的,本发明实施例中,通过对系统时间进行修正,能保证上下电操作后的系统时间和外界时间保持一致,从而在传感器处理器上下电的情况下,也能保证系统时间的准确性,间接地保证传感器数据上报精准,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,就好像系统一直正常运行着。
在一个实施例中,如果所述第一定时器中的初始值M0为所述第一下电时长,相应地,S107可以包括:
在所述第一定时器超时的情况下,利用在所述上电操作时从所述第一定时器读取出的当前值Mcurrent、所述第一定时器中的初始值M0和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和所述第一定时器中的初始值M0,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
在一个实施例中,如果所述第一定时器中的初始值M0为零,且所述第一定时器的超时条件为所述第一下电时长,相应地,S107可以包括
在所述第一定时器超时的情况下,利用在所述上电操作时从所述第一定时器读取出的当前值Mcurrent和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
需要说明的是,在移动设备中的传感器处理器下电后,传感器处理器的系统时间就处于不计时的状态,在上电后,系统时间的值还是下电前的时间,但是实际时间已经发生变化。
因此,本发明实施例中,通过对定时器链表和任务延时链表进行修正,能保证上下电操作后的系统时间和外界时间保持一致,从而在传感器处理器上下电的情况下,也能保证系统时间的准确性,间接地保证传感器数据上报精准,进而进一步提高了移动设备的用户体验。
可选地,在上述图2-A,图2-B或图2-C对应的实施例的基础上,本发明实施例提供的移动设备的功耗管理方法的另一实施例中,所述方法还可以包括:
判断所述传感器当前是否处于空闲状态;
当所述传感器当前处于空闲状态时,获取所述传感器的下一次采样数据的时间,并根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长;
基于所述第二下电时长,对所述传感器执行下电操作;以及,
当所述第二下电时长超时或监测到目标中断的产生时,对所述传感器执行上电操作。
应当理解的是,关于传感器的如上步骤可以参考传感器处理器的相似步骤进行处理,这里不再赘述。
进一步的,本发明实施例中,不仅能对传感器处理器进行上下电操作,还能对传感器进行上下电操作,而且能在传感器在使用的过程中,间歇性的对传感器进行下电,从而最大化地降低移动设备的功耗,进而提高移动设备的用户体验;
其中,本发明实施例中,根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器将要采集数据的时间,以实现能较为精准的确定传感器的本次下电时长(即第二下电时长,换言之即传感器的下次上电时机),从而进一步提高了移动设备的用户体验。
需要说明的是,本发明实施例中也可以兼容现有的传感器下电技术,本发明对此不做限定。
可选地,在上述图2-A,图2-B或图2-C对应的实施例或可选实施例的基础上,本发明实施例提供的移动设备的功耗管理方法的另一实施例中,所述方法还可以包括:
当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;
当监测到所述目标中断的产生时,则对所述传感器处理器执行上电操作。
需要说明的是,如何判断传感器处理器当前是否处于空闲状态的技术手段参见前面实施例的描述,这里不再赘述。
进一步的,针对传感器采集数据不是周期机制,而支持中断触发采集的应用场景下,相对于现有技术中只能做到对传感器进行上下电操作来实现降低传感器功耗,本发明实施例采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
参阅图3,本发明实施例提供的移动设备的功耗管理方法的一实施例包括:可以理解的是,本发明实施例方法的执行主体是移动设备,具体可以是由该移动设备中的传感器处理器执行,其中,可以是由移动设备中的功耗管理器(例如电源或者功耗处理器)对传感器处理器进行上下电操作。
200、开始;
201,移动设备上启动或运行传感器应用;
202,判断该传感器应用是否请求传感器数据,当该传感器应用请求传感器数据时,转执行S214;当该传感器应用未请求传感器数据时,转执行S203或S221;
203,判断传感器处理器上运行的传感器管理系统是否空闲,当传感器管理系统空闲时,转执行S204;当传感器管理系统非空闲时,转执行S221;
在一个实施例中,传感器管理系统中有一个全局计数器,传感器管理系统可以包括传感器管理模块、功耗管理模块、系统状态管理模块、通信管理模块,可选的还有虚拟传感器管理模块、计步管理模块、运动管理模块等,每个模块分别对应全局计数器的某一位;在这些模块工作时,对该全局计数器相应位进行标识;在这些模块完成工作时,对该全局计数器对应的位进行清除。判断该全局计数器的多个位是否清零,如果多个位均清零,则说明传感器管理系统进入空闲状态(这里的空闲状态即传感器管理系统不需要工作的状态)。
在一个实施例中,传感器管理系统中有一个全局计数器,传感器管理系统可以包括传感器管理模块、功耗管理模块、系统状态管理模块、通信管理模块,可选的还有虚拟传感器管理模块、计步管理模块、运动管理模块等,每个模块工作时,对该全局计数器进行加1;在模块完成工作时,对该全局计数器进行减1。判断该全局计数器是否为零,如果为零,说明传感器管理系统进入空闲状态(这里的空闲状态即传感器管理系统不需要工作的状态)。
例如,在一种应用场景下,计步器计步使用加速度传感器。假定加速度传感器采样周期是C ms(即加速度传感器每C ms上报一次数据给计步器管理模块),计步器管理模块在接收到数据到处理完成所用时间是D ms。在计步器管理模块接收到采样数据时,全局计数器中对应于计步管理模块的位被置位(此时功耗管理模块检测到此位被置位),根据加速度采样数据进行步数的计算,在处理完成后,全局计数器中对应于计步管理模块的位被清除(此时功耗管理模块检测到此位被清除)。在一种实现方式下,加速度传感器可以间隔性的下电,例如以间隔(C-D)ms时间下电。
204,获取传感器处理器的下一次工作时间T,并确定本次下电时长S(换言之,即确定传感器处理器的下次上电时间);
在一个实施例中,传感器数据是通过中断或定时器上报的,系统中有定时器链表和任务延时链表,定时器链表上存放的是整个系统中将来要超时的定时器;任务延时链表是存放着任务被延时处理的链表,如任务在请求外设数据时,外设没有准备好,这个任务会延时一段时间,再来读取。这个任务在外设数据没有准备好时,就会被放入任务延时链表中。遍历定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值为系统下一次工作时间;
计算本次下电时长S=T–N,其中N表示系统上电所需的最短时间或平均时间。在一种实现方式下,在定时器超时或中断产生后,到系统完成上电所花费时间的测量,得到测量值N。
205,判断所述传感器处理器的本次下电时长S是否大于下电时长下限值K,当S值大于K值时,执行步骤206;当S值小于或等于K值时,转步骤221;
下电时长下限值K是系统完成下电和上电最短的时间,如果T值比K值还要小,表示系统下电和上电基本流程都完成不了,因此T值小于K值时,进行下电休眠是没有意义的。
K值的获取方法可以是:系统启动完成后进行一次下电和上电的最短时间的测量。
206、将本次下电时长S写入定时器,换言之即该定时器的初始值设为S;
可选地,还可以对外设执行挂起/休眠操作;
208,对系统当前的上下文进行保存;
在一种实现方式下,如图5B所示,移动设备中的传感器处理器41将上下文保存到掉电不丢失数据的存储空间中,例如可以是保存到与其耦合的存储器44,或者传感器处理器41自身的存储空间。
在另一种实现方式下,如图5C所示,移动设备中的功耗处理器62将上下文保存到掉电不丢失数据的存储空间中,例如可以是保存到与其耦合的存储器44。
具体的,保存寄存器xPSR、LR(PC)、LR、R12、寄存器R0-R3、R4-R11,控制寄存器CONTROL到任务栈中,并将任务栈指针PSP保存在当前任务中。
209,向功耗管理器(例如电源或功耗处理器)发送下电命令,所述下电命令用于指示功耗管理器下电传感器处理器;
应当理解的是,传感器处理器也可以自己下电。
210,保存数据段;
在一种实现方式下,如图5B所示,移动设备中的传感器处理器41将数据段保存到掉电不丢失数据的存储空间中,例如可以是保存到与其耦合的存储器44,或者传感器处理器41自身的存储空间。
在另一种实现方式下,如图5C所示,移动设备中的功耗处理器62将数据段保存到掉电不丢失数据的存储空间中,例如可以是保存到与其耦合的存储器44。
211,功耗管理器(例如电源或功耗处理器)接管中断;
212,传感器处理器下电;
213,定时器超时;
需要说明的是:系统上电的情况分为定时器唤醒和中断唤醒。
定时器唤醒:设置在定时器中的S值超时,说明系统要处理任务,触发系统上电。
中断唤醒:在S值没有超时时,可能会产生中断,让系统去处理一些任务,触发系统上电;比如此时用户请求传感器数据,则会产生中断,系统被上电。
214,功耗管理器判断传感器处理器是否已下电,当是时,转步骤215;当否时,转步骤221;
215,功耗管理器将所述移动设备中原本存储的代码段和S210中保存的数据段复制到所述移动设备中的指定位置;
216,功耗管理器对传感器处理器和外设(可选的,与206呼应)上电;
217,传感器处理器上电后或同时,读取定时器的当前值Mcurrent,其中Mcurrent<=S;
218,对定时器链表和任务延时链表进行修正;
当定时器的初始值设置为S(定时器是递减的方式计时),则:
定时器唤醒:在定时器超时(Mcurrent=0),使用|S-Mcurrent|+N=|T–N-0|+N=T对定时器链表和任务延时链表进行修正,其中,如果定时器链表中的定时器也是以递减的方式计时,则设置定时器链表中的定时器的当前值为下电前定时器的值与T的差值,例如:定时器链表中某定时器在下电前的值为15,则修正某定时器的方式为:设置该定时器的当前值为:15-T;
中断唤醒:在中断发生且定时器没超时(0<Mcurrent<S),使用|S-Mcurrent|对定时器链表和任务延时链表进行修正,其中,如果定时器链表中的定时器都是以递减的方式计时,则设置定时器链表中的定时器的当前值为下电前定时器的值与|S-Mcurrent|的差值,例如:定时器链表中某定时器在下电前的值为15,则修正该定时器的方式为:设置定时器链表中该定时器的当前值为:15-|S-Mcurrent|;
需要说明的是,假设S206中设置定时器的初始值为0,且定时器的超时条件为S(定时器是递增的方式计时),则:
定时器唤醒:在定时器超时(Mcurrent=S),使用Mcurrent+N=(T–N)+N=T对定时器链表和任务延时链表进行修正,其中,如果定时器链表中的定时器是以递减的方式计时,则设置定时器链表中的定时器的当前值为下电前定时器的值减去T值,例如:定时器链表中某定时器在下电前的值为15,则修正该定时器的方式为:设置定时器链表中的该定时器的当前值为:15-T;
中断唤醒:在中断发生且定时器没超时(Mcurrent<S),使用Mcurrent对定时器链表和任务延时链表进行修正,其中,如果定时器链表中的定时器是以递减的方式计时,则设置定时器链表中的定时器的当前值为下电前定时器的值减去Mcurrent,例如:定时器链表中某定时器在下电前的值为15,则修正该定时器的方式为:设置定时器链表中该定时器的当前值为:15-Mcurrent;如果定时器链表中的定时器是以递增的方式计时,则设置定时器链表中的定时器的当前值为下电前定时器的值加上Mcurrent,例如:定时器链表中某定时器在下电前的值为0,则修正该定时器的方式为:设置定时器链表中该定时器的当前值为Mcurrent。
应当理解的是,针对定时器唤醒模式,由于定时器计数已经为0(即Mcurrent=0),不再计数,已经流逝的时间为S;然后对传感器处理器上电,上电花费的时间为N,所以对定时器链表和任务延时链表进行修正,以反映时间已经流逝了S+N=T;
针对中断唤醒模式,由于定时器仍然在计数,只需要在上电完成后,从定时器中读取当前值Mcurrent(如果定时器的初始值为0,且定时器的超时条件为S,定时器是递增的方式计时),其中,如果定时器链表中的定时器是以递减的方式计时,则设置定时器链表中的定时器的当前值为下电前该定时器的值减去Mcurrent,以反映时间已经流逝了Mcurrent。
可选地,对外设执行恢复操作(与206呼应);
220,恢复系统上下文;
在一个实施例中,
上下文保存:保存寄存器xPSR、LR(PC)、LR、R12、寄存器R0-R3、R4-R11,控制寄存器CONTROL到任务栈中,并将任务栈指针PSP保存在当前任务中。
上下文恢复:通过当前任务取到任务栈指针,并将上下文保存时的寄存器值弹出,依次弹出CONTROL、R4-R11、R0-R3、R12、LR、PC、xPSR。
由于上下文保存和恢复结束时,都是通过BX LR跳出保存和恢复动作,但是由于上下文恢复时的LR和上下文保存的LR值相同,所以在恢复上下文之后,回到的仍然是保存上下文结束之后的代码处。
巧妙之处为在上下文保存之后和上下文恢复都是回到相同的地方;区别在于:在保存上下文之前,会对一个全局标志变量设置为休眠SLEEP,在保存上下文之后,会对这个标志变量位进行判断,如果为休眠SLEEP,则通知功耗管理模块下电;上电之后,会对该全局标识变量进行修改为正常NORMAL,在恢复上下文之后即使回到相同的地方,但是由于经过上下电后,该标识变量已经修改为NORMAL,不走下电流程。总之可以理解为在上下文保存和标识变量判断中间存在一个“缝隙”,上电流程就是在这个缝隙中完成,这就是通过LR巧妙实现。
221,系统正常运行。
可见,本发明实施例中,即使在一个或多个传感器处于上电空闲状态或上电运行状态时也能在合适的下电时机对传感器处理器进行真正意义的下电,即采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验;其中,本发明实施例中,获取传感器处理器的下一次工作时间T,换言之,即通过准确的获知预料到的或者计划中的传感器处理器将要执行任务的时间,以实现能较为精准的确定传感器处理器的本次下电时长(换言之即传感器处理器的下次上电时机),从而进一步提高了移动设备的用户体验。
进一步的,本发明实施例中,计算本次下电时长S=T–N,即在计算第一下电时长时,预留合理长的时间用于传感器处理器完成上电过程,从而能在实现降低移动设备的功耗的同时,还能保证传感器处理器的上电的可靠性,进而进一步提高了移动设备的用户体验;
进一步的,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例中,通过比较第一下电时长与下电时长下限值的大小,能保证下电操作的有效性和可靠性,避免了在第一下电时长小于下电时长下限值的情况下进行无意义的下电休眠;
进一步的,本发明实施例中,通过定时器唤醒还能实现在合适的上电时机(即第一下电时长超时时)对传感器处理器进行上电,或者通过中断唤醒还能做到传感器响应及时,从而提高移动设备的用户体验;
进一步的,本发明实施例中,通过对定时器链表和任务延时链表进行修正,能保证上下电操作后的系统时间和外界时间保持一致,从而在传感器处理器上下电的情况下,也能保证系统时间的准确性,间接地保证传感器数据上报精准,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,而是一直正常运行着,从而保证了系统的可靠性,进而进一步提高了移动设备的用户体验。
参阅图4,为本发明实施例提供的移动设备的功耗管理方法的一实施例,所述方法可以应用于移动设备,所述移动设备包括至少一个传感器,以及管理所述至少一个传感器的传感器处理器,所述方法可以包括:
S301、判断所述传感器处理器当前是否处于空闲状态;
在一个实施例中,判断所述传感器处理器当前是否在执行任务;
在一个实施例中,判断所述传感器处理器的当前功耗值是否低于功耗阈值;
需要说明的是,如何判断传感器处理器当前是否处于空闲状态的技术手段和细节参见前面实施例的描述,这里不再赘述。
S302、当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;
在一个实施例中,当所述传感器处理器当前未在执行任务或执行空闲任务且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;
在一个实施例中,当所述传感器处理器的当前功耗阈值低于功耗阈值且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
其中,在一个实施例中,S302中的对所述传感器处理器执行下电操作可以包括:保存所述移动设备运行过程中生成的数据段,并下电所述传感器处理器或者发送下电命令,其中所述下电命令用于指示下电所述传感器处理器。应当理解的是:可以是传感器处理器向功耗处理器或电源发送下电命令,由功耗处理器或电源来下电,也可以是传感器处理器自己下电。
S303、当监测到所述目标中断的产生时,则对所述传感器处理器执行上电操作。
在一个实施例中,S303中的对所述传感器处理器执行上电操作,可以包括:
将所述移动设备中原本存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;这里的指定位置,例如可以是与传感器处理器耦合的存储器中的指定位置,或者可以是传感器处理器内部的存储空间中的指定位置;以及,对所述传感器处理器上电。
可见,本发明实施例中,通过判断所述传感器处理器当前是否处于空闲状态;当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;当监测到所述目标中断的产生时,则对所述传感器处理器执行上电操作。相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
此外,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
可选地,在上述图4对应的实施例的基础上,本发明实施例提供的移动设备的功耗管理方法的另一实施例中,对所述传感器处理器执行下电操作之前或同时,所述方法还可以包括:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,在对所述传感器处理器执行上电操作之后或同时,还可以包括:根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,就好像系统一直正常运行着。
需要说明的是,如何判断所述传感器处理器当前是否在执行任务的技术手段和细节,如何对所述传感器处理器执行下电操作的技术手段和细节,如何对所述传感器处理器执行上电操作的技术手段和细节请参见前面实施例的描述,这里不再赘述。
参阅图5A,为本发明实施例提供的一种移动设备40的结构示意图,其中该移动设备包括:
传感器处理器41,
耦合至所述传感器处理器41的功耗管理器42;
耦合至所述传感器处理器41的至少一个传感器43;以及
耦合至所述传感器处理器41的存储器44;
应当理解的是,存储器44可以包括只读存储器和随机存取存储器,并向传感器处理器41提供指令和数据。存储器44的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器44存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,例如图1所示的通信层、传感器管理系统、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
应用程序,包含各种应用程序,例如图1所示的计步器、游戏应用、导航应用等,用于实现各种应用业务。
在本发明实施例中,通过调用所述存储器44中存储的程序或指令,所述传感器处理器41用于:
判断所述传感器处理器41当前是否处于空闲状态;
当所述传感器处理器41当前处于空闲状态时,获取所述传感器处理器41的下一次工作时间,并根据所述传感器处理器41的下一次工作时间确定所述传感器处理器41的第一下电时长;
基于所述第一下电时长,执行下电所述传感器处理器41的操作或者向所述功耗管理器42发送下电指令,所述下电指令用于指示功耗管理器42对所述传感器处理器41执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备40中的至少一个传感器43中的一个或多个传感器处于上电空闲状态或上电运行状态。
可见,本发明实施例中,相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,即使在一个或多个传感器处于上电空闲状态或上电运行状态时也能在合适的下电时机对传感器处理器进行真正意义的下电,即采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验;其中,本发明实施例中,根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器处理器将要执行任务的时间,以实现能较为精准的确定传感器处理器的本次下电时长(换言之即传感器处理器的下次上电时机),从而进一步提高了移动设备的用户体验。
可选地,在上述图5A对应的实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在获取所述传感器处理器的下一次工作时间的方面,所述传感器处理器具体用于:
根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期,确定所述传感器处理器的下一次读取传感数据的时间或者下一次处理传感数据的时间或者下一次响应传感器的时间,其中所述传感器处理器的下一次读取传感数据的时间或者下一次处理传感数据的时间或者下一次响应传感器的时间为所述传感器处理器的下一次工作时间;或者,
遍历所述传感器处理器的定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值,所述最小值用于指示所述传感器处理器的下一次工作时间。
因为所述传感器处理器的下一次工作时间的确定是考虑了传感器的采样周期或者传感器处理器的数据读取周期或者考虑了其它定时执行的任务或者其它计划将执行的任务的时间,因此所述传感器处理器的下一次工作时间到来之前,传感器处理器下电不会影响传感器周期性地或定期地采样数据,或者也不影响对传感器的采样数据的及时响应或处理。
可选地,在上述图5A对应的实施例或可选实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长的方面,所述传感器处理器41具体用于:
根据所述传感器处理器的下一次工作时间T和所述传感器处理器的上电预留时长N,计算所述传感器处理器的第一下电时长S。具体的,即计算本次下电时长S=T–N;
进一步的,本发明实施例中,计算本次下电时长S=T–N,即在计算第一下电时长时,预留合理长的时间用于传感器处理器完成上电过程,从而能在实现降低移动设备的功耗的同时,还能保证传感器处理器的上电的可靠性,进而进一步提高了移动设备的用户体验;
可选地,在上述图5A对应的实施例或可选实施例的基础上,本发明实施例提供的移动设备的另一实施例中,所述功耗管理器42还用于:当所述第一下电时长超时或监测到目标中断的产生时,对所述传感器处理器41执行上电操作;
相应地,在所述传感器处理器41上电后或同时,所述传感器处理器41还用于根据所述第一下电时长和上电预留时长,或者所述上电操作时所述第一下电时长的当前消耗情况对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
进一步的,本发明实施例中,支持中断唤醒或定时超时唤醒,以实现对传感器处理器进行上电,并且通过对系统时间进行修正,能保证上下电操作后的系统时间和外界时间保持一致,从而在传感器处理器上下电的情况下,也能保证系统时间的准确性,间接地保证传感器数据上报精准,进而进一步提高了移动设备的用户体验。
可选地,在上述图5A对应的实施例或可选实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在对所述传感器处理器执行下电操作之前或同时,所述传感器处理器41还用于:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,所述功耗管理器42还用于:当所述第一下电时长超时或监测到目标中断的产生时,对所述传感器处理器41执行上电操作;
相应地,在所述传感器处理器41上电后,所述传感器处理器41还用于:根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,而是一直正常运行着,从而保证了系统的可靠性,进而进一步提高了移动设备的用户体验。
较优地,在上述图5A对应的实施例或可选实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在所述基于所述第一下电时长对所述传感器处理器执行下电操作的方面,所述传感器处理器41具体用于:
利用所述第一下电时长设置第一定时器并启动计时;具体的,即将第一下电时长S写入第一定时器并启动计时;
保存所述移动设备运行过程中生成的数据段在所述存储器44中,并下电或者向功耗管理器42发送下电命令,其中所述下电命令用于指示功耗管理器42下电所述传感器处理器41。
较优地,在上述图5A对应的实施例或可选实施例或较优实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在对所述传感器处理器41执行上电操作的方面,所述功耗管理器42具体用于:将所述存储器44中存储的代码段和所述传感器处理器41的下电过程中保存的数据段复制到所述存储器44中的指定位置或者传感器处理器41内的存储空间中的指定位置;并对传感器处理器41上电。
进一步的,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
以及,在一种实现方式下,所述传感器处理器41具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent、所述第一定时器中的初始值M0和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和所述第一定时器中的初始值M0,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为所述第一下电时长。
以及,在另一种实现方式下,所述传感器处理器41具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为零,且所述第一定时器的超时条件为所述第一下电时长;
较优地,在上述图5A对应的实施例或可选实施例或较优实施例的基础上,本发明实施例提供的移动设备的另一实施例中,在所述基于所述第一下电时长对所述传感器处理器执行下电操作的方面,所述传感器处理器41具体用于:
当所述传感器处理器的第一下电时长大于所述下电时长下限值时,基于所述第一下电时长对所述传感器处理器执行下电操作。
进一步的,本发明实施例中,通过比较第一下电时长与下电时长下限值的大小,能保证下电操作的有效性和可靠性,避免了在第一下电时长小于下电时长下限值的情况下进行无意义的下电休眠;
较优地,在上述图5A对应的实施例或可选实施例或较优实施例的基础上,本发明实施例提供的移动设备的另一实施例中,
所述传感器处理器41具体用于:判断所述传感器处理器当前是否在执行任务;当所述传感器处理器当前未在执行任务或执行空闲任务时,获取所述传感器处理器的下一次工作时间;
或者,
所述传感器处理器41具体用于:判断所述传感器处理器的当前功耗值是否低于功耗阈值;当所述传感器处理器的当前功耗阈值低于功耗阈值时,获取所述传感器处理器的下一次工作时间。
其中,在一种实现方式下,在所述判断所述传感器处理器当前是否在执行任务的方面,所述传感器处理器41具体用于:
判断全局计数器的多个位是否清零,其中所述全局计数器的多个位与所述传感器管理器上运行的传感器管理系统包括的多个管理模块一一对应,其中所述管理模块对应的位非零时,用于表示所述传感器处理器正在执行任务;所述管理模块对应的位为零时,用于表示所述传感器处理器执行完毕所述任务,其中所述任务用于反映所述管理模块的功能的执行情况;
当所述全局计数器的多个位均清零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
其中,在另一种实现方式下,在所述判断所述传感器处理器当前是否在执行任务的方面,所述传感器处理器41具体用于:
判断全局计数器是否为零,其中所述全局计数器非零时,用于表示所述传感器处理器正在执行一个或多个任务;所述全局计数器为零时,用于表示所述所述传感器处理器执行完毕所述一个或多个任务,其中所述一个或多个任务用于反映所述传感器管理系统包括的多个管理模块中的任一或多个管理模块的功能的执行情况;
当所述全局计数器为零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
较优地,在上述图5A对应的实施例或可选实施例或较优实施例的基础上,本发明实施例提供的移动设备的另一实施例中,所述传感器处理器41还用于:
判断所述传感器当前是否处于空闲状态;
当所述传感器当前处于空闲状态时,获取所述传感器的下一次采样数据的时间,并根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长;
基于所述第二下电时长,对所述传感器执行下电操作;以及,
当所述第二下电时长超时或监测到目标中断的产生时,对所述传感器执行上电操作。
进一步的,本发明实施例中,不仅能对传感器处理器进行上下电操作,还能对传感器进行上下电操作,而且能在传感器在使用的过程中,间歇性的对传感器进行下电,从而最大化地降低移动设备的功耗,进而提高移动设备的用户体验;
其中,本发明实施例中,根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器将要采集数据的时间,以实现能较为精准的确定传感器的本次下电时长(即第二下电时长,换言之即传感器的下次上电时机),从而进一步提高了移动设备的用户体验。
需要说明的是,本发明实施例中也可以兼容现有的传感器下电技术,本发明对此不做限定。可以理解的是,本实施例的传感器处理器41的工作机制可如上述方法实施例中描述,传感器处理器41的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
图5-B所示为本发明另一实施例的移动设备的结构示意图。图5-B将结合图5-A进行说明,与图5-A具有相同标号的器件具有相同或相似的描述,这里不再赘述,本实施例中用电源52代替功耗管理器42,电源52的功耗极低,一直保持不掉电,其中:
在对传感器处理器41执行下电操作的过程中,传感器处理器41用于利用第一下电时长设置电源52中的定时器,设置电源52接管中断,将代码段(可选的)和数据段写入存储器44,并向电源52发送下电命令,该下电命令用于指示电源52下电传感器处理器41;需要说明的是,在传感器处理器41的下电期间,电源52具有接管传感器中断的功能、定时器的功能、给系统上电功能。
电源45用于当所述第一下电时长超时或监测到目标中断的产生时,对所述传感器处理器41执行上电操作,所述上电操作包括从存储器44中加载代码段和数据段到传感器处理器41中,并为传感器处理器41上电。
图5-C所示为本发明另一实施例的移动设备的结构示意图。图5-C将结合图5-A进行说明,与图5-A具有相同标号的器件具有相同或相似的描述,这里不再赘述,本实施例中用功耗处理器62代替功耗管理器42,以及本实施例的移动设备还可以包括:与传感器处理器41和功耗处理器62分别耦合的应用处理器45(主要负责应用业务的处理,参见现有技术,这里不再赘述),其中功耗处理器62与存储器44、应用处理器45和传感器处理器41分别耦合。
功耗处理器62用于当所述第一下电时长超时或监测到目标中断的产生时,对传感器处理器41执行上电操作,所述上电操作包括从存储器44中加载代码段和数据段到传感器处理器41中,并为传感器处理器41上电;需要说明的是,在传感器处理器41的下电期间,功耗处理器62具有接管传感器中断的功能、定时器的功能、给系统上电功能。
可选地,在对传感器处理器41执行下电操作的过程中,功耗处理器62还可以用于利用第一下电时长设置定时器,将传感器处理器41当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态,将代码段(可选的)和数据段写入存储器44,并下电传感器处理器41。
可选地,在所述传感器处理器41上电后,功耗处理器62还可以用于:根据保存的所述上下文和所述I/O口的状态恢复传感器处理器41和传感器43的上下文,使得传感器处理器41在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
需要说明的是,应用处理器、功耗处理器和传感器处理器之间可以以IPC(核间通信)通信;传感器处理器与传感器之间可以以I2C(Inter-Integrated Circuit,内整合总线)通信。
参阅图6,为本发明实施例提供的一种移动设备70的结构示意图,其中该移动设备70包括:
传感器处理器71,
耦合至所述传感器处理器71的功耗管理器72;
耦合至所述传感器处理器71的至少一个传感器73;以及
耦合至所述传感器处理器71的存储器74;
应当理解的是,存储器74可以包括只读存储器和随机存取存储器,并向传感器处理器71提供指令和数据。存储器74的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器74存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统,包含各种系统程序,例如图1所示的通信层、传感器管理系统、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
应用程序,包含各种应用程序,例如图1所示的计步器、游戏应用、导航应用等,用于实现各种应用业务。
在本发明实施例中,通过调用所述存储器74中存储的程序或指令,所述传感器处理器71用于:判断所述传感器处理器71当前是否处于空闲状态;当所述传感器处理器71当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器71执行下电操作;以及,
功耗管理器72用于当监测到目标中断的产生时,则对所述传感器处理器71执行上电操作。
在一种实现方式下,所述传感器处理器71具体用于:
判断所述传感器处理器当前是否在执行任务;当所述传感器处理器当前未在执行任务或执行空闲任务且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
在另一种实现方式下,所述传感器处理器71具体用于:
判断所述传感器处理器的当前功耗值是否低于功耗阈值;当所述传感器处理器的当前功耗阈值低于功耗阈值且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
其中,在一个实施例中,在对所述传感器处理器执行下电操作的方面,所述传感器处理器71具体用于:保存所述移动设备运行过程中生成的数据段,并下电所述传感器处理器或者向功耗管理器发送下电命令,其中所述下电命令用于指示功耗管理器下电所述传感器处理器。应当理解的是:可以是传感器处理器向功耗处理器或电源发送下电命令,由功耗处理器或电源来下电;也可以是传感器处理器自己下电。
其中,在一个实施例中,在对所述传感器处理器执行上电操作的方面,功耗管理器72具体用于:将所述移动设备中原本存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;以及,对所述传感器处理器71上电。这里的指定位置,例如可以是与传感器处理器耦合的存储器中的指定位置,或者可以是传感器处理器内部的存储空间中的指定位置。
可见,本发明实施例中,通过判断所述传感器处理器当前是否处于空闲状态;当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;当监测到所述目标中断的产生时,则对所述传感器处理器执行上电操作。相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
此外,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
可选地,在上述图6对应的实施例的基础上,本发明实施例提供的移动设备的另一实施例中,对所述传感器处理器执行下电操作之前或同时,所述传感器处理器71还用于:将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,在对所述传感器处理器执行上电操作之后或同时,所述传感器处理器71还用于:根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,就好像系统一直正常运行着。
需要说明的是,判断所述传感器处理器当前是否在执行任务的细节,对所述传感器处理器执行下电操作的细节,对所述传感器处理器执行上电操作的细节请参见前面实施例的描述,这里不再赘述。可以理解的是,本实施例的传感器处理器71的工作机制可如上述方法实施例中描述,传感器处理器71的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述
可见,本发明实施例中,针对传感器采集数据不是周期机制,而支持中断触发采集的应用场景下,相对于现有技术中只能做到对传感器进行上下电操作来实现降低传感器功耗,本发明实施例采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
参阅图7,为本发明实施例提供的一种移动设备的功耗管理装置80的结构示意图,其中,该功耗管理装置80集成于该移动设备中,所述移动设备包括至少一个传感器,以及管理所述至少一个传感器的传感器处理器,该功耗管理装置80包括:
判断模块81,用于判断所述传感器处理器当前是否处于空闲状态;
下电时长确定模块82,用于在所述判断模块判断出所述传感器处理器当前处于空闲状态时,获取所述传感器处理器的下一次工作时间,并根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长;
上下电控制模块83,用于基于所述第一下电时长对所述传感器处理器执行下电操作,其中在所述传感器处理器的下电期间的子时间段或完整时间段中,所述移动设备中的至少一个传感器中的一个或多个传感器处于上电空闲状态或上电运行状态。
在一种实现方式下,在所述获取所述传感器处理器的下一次工作时间的方面,所述下电时长确定模块82具体用于:
根据所述多个传感器的传感器采样周期中的最小采样周期或者平均采样周期或者所述传感器处理器的数据读取周期,确定所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间,其中所述传感器处理器的下一次读取传感数据的时间或者下一次响应传感器的时间为所述传感器处理器的下一次工作时间;或者,
遍历所述传感器处理器的定时器链表和任务延时链表,确定所述定时器链表和任务延时链表中的最小值,所述最小值用于指示所述传感器处理器的下一次工作时间;
以及,在一种实现方式下,在所述根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长的方面,所述下电时长确定模块82具体用于:根据所述传感器处理器的下一次工作时间T和所述传感器处理器的上电预留时长N,计算所述传感器处理器的第一下电时长S。具体的,即计算第一下电时长S=T–N。
较优地,所述上下电控制模块83还用于:当所述第一下电时长超时或监测到目标中断的产生时,则对所述传感器处理器执行上电操作;
可选地,本发明实施例的功耗管理装置还可以包括:
在所述上下电控制模块83对所述传感器处理器执行上电操作之后或同时,系统时间修正模块84,用于根据所述第一下电时长和上电预留时长,或者所述上电操作时所述第一下电时长的当前消耗情况对所述传感器处理器的系统时间进行修正,使得修正后的系统时间能反映出所述下电操作和所述上电操作的执行过程中流逝的时间。
可选地,本发明实施例的功耗管理装置还可以包括:
在所述上下电控制模块83对所述传感器处理器执行下电操作之前或同时,上下文保存和恢复模块85用于将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存用于连接当前运行的传感器的输入/输出I/O口的状态;
在所述上下电控制模块83对所述传感器处理器执行上电操作之后或同时,所述上下文保存和恢复模块85还用于根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
以及,在一种实现方式下,在所述对所述传感器处理器执行上电操作的方面,所述上下电控制模块83具体用于:
将所述移动设备中存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;并对传感器处理器上电。
以及,在一种实现方式下,在所述基于所述第一下电时长对所述传感器处理器执行下电操作的方面,所述上下电控制模块83具体用于:
利用所述第一下电时长设置第一定时器并启动计时;
保存所述移动设备运行过程中生成的数据段,并下电所述传感器处理器或者发送下电命令,其中所述下电命令用于指示下电所述传感器处理器。
以及,在一种实现方式下,所述系统时间修正模块84具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent、所述第一定时器中的初始值M0和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和所述第一定时器中的初始值M0,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为所述第一下电时长。
以及,在另一种实现方式下,所述系统时间修正模块84具体用于:
在所述第一定时器超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent和上电预留时长,对定时器链表和任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
在目标中断发生且所述第一定时器未超时的情况下,利用从所述第一定时器读取出的当前值Mcurrent,对所述定时器链表和所述任务延时链表进行修正,使得修正后的定时器链表和任务延时链表中的当前时间值能反映出所述下电操作和所述上电操作的执行过程中流逝的时间;
其中,所述第一定时器中的初始值M0为零,且所述第一定时器的超时条件为所述第一下电时长;
较优地,所述上下电控制模块83具体用于:当所述传感器处理器的第一下电时长大于所述下电时长下限值时,基于所述第一下电时长对所述传感器处理器执行下电操作。
以及,在一种实现方式下,所述判断模块81具体用于判断所述传感器处理器当前是否在执行任务,在判断出所述传感器处理器当前未在执行任务或执行空闲任务时,触发下电时长确定模块82工作;
其中,在一种具体实现方式下,在判断所述传感器处理器当前是否在执行任务的方面,所述判断模块81具体用于:
判断全局计数器的多个位是否清零,其中所述全局计数器的多个位与所述传感器管理器上运行的传感器管理系统包括的多个管理模块一一对应,其中所述管理模块对应的位非零时,用于表示所述传感器处理器正在执行任务;所述管理模块对应的位为零时,用于表示所述传感器处理器执行完毕所述任务,其中所述任务用于反映所述管理模块的功能的执行情况;
当所述全局计数器的多个位均清零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
或者,在另一种具体实现方式下,在判断所述传感器处理器当前是否在执行任务的方面,所述判断模块81具体用于:
判断全局计数器是否为零,其中所述全局计数器非零时,用于表示所述传感器处理器正在执行一个或多个任务;所述全局计数器为零时,用于表示所述所述传感器处理器执行完毕所述一个或多个任务,其中所述一个或多个任务用于反映所述传感器管理系统包括的多个管理模块中的任一或多个管理模块的功能的执行情况;
当所述全局计数器为零时,则确定所述传感器处理器当前未在执行任务或执行空闲任务。
此外,在另一种实现方式下,所述判断模块81具体用于判断所述传感器处理器的当前功耗值是否低于功耗阈值,在判断出所述传感器处理器的当前功耗阈值低于功耗阈值时,触发下电时长确定模块82工作。
较优地,本发明实施例中,所述判断模块81还用于判断所述传感器当前是否处于空闲状态;
所述下电时长确定模块82还用于当所述传感器当前处于空闲状态时,获取所述传感器的下一次采样数据的时间,并根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长;
所述上下电控制模块83还用于基于所述第二下电时长,对所述传感器执行下电操作;以及,当所述第二下电时长超时或监测到目标中断的产生时,对所述传感器执行上电操作。需要说明的是,本发明实施例的功耗管理装置也可以兼容现有的传感器下电技术,本发明对此不做限定。
应当理解的是,本发明实施例的功耗管理装置对应于前述实施例提及的传感器管理系统中的功耗管理。
可见,本发明实施例的功耗管理装置中,相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,即使在一个或多个传感器处于上电空闲状态或上电运行状态时也能在合适的下电时机对传感器处理器进行真正意义的下电,即采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验;
其中,本发明实施例的功耗管理装置中,根据所述传感器处理器的下一次工作时间确定所述传感器处理器的第一下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器处理器将要执行任务的时间,以实现能较为精准的确定传感器处理器的本次下电时长(换言之即传感器处理器的下次上电时机),从而进一步提高了移动设备的用户体验。
进一步的,本发明实施例的功耗管理装置中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例的功耗管理装置中,通过比较第一下电时长与下电时长下限值的大小,能保证下电操作的有效性和可靠性,避免了在第一下电时长小于下电时长下限值的情况下进行无意义的下电休眠;
进一步的,本发明实施例的功耗管理装置中,通过定时器唤醒还能实现在合适的上电时机(即第一下电时长超时时)对传感器处理器进行上电,或者通过中断唤醒还能做到传感器响应及时,从而提高移动设备的用户体验;
进一步的,本发明实施例的功耗管理装置中,通过对定时器链表和任务延时链表进行修正,能保证上下电操作后的系统时间和外界时间保持一致,从而在传感器处理器上下电的情况下,也能保证系统时间的准确性,间接地保证传感器数据上报精准,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例的功耗管理装置中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,而是一直正常运行着,从而保证了系统的可靠性,进而进一步提高了移动设备的用户体验。
进一步的,本发明实施例的功耗管理装置中,不仅能对传感器处理器进行上下电操作,还能对传感器进行上下电操作,而且能在传感器在使用的过程中,间歇性的对传感器进行下电,从而最大化地降低移动设备的功耗,进而提高移动设备的用户体验;其中,本发明实施例的功耗管理装置中,根据所述传感器的下一次采样数据的时间确定所述传感器的第二下电时长,换言之,即通过准确的获知预料到的或者计划中的传感器将要采集数据的时间,以实现能较为精准的确定传感器的本次下电时长(即第二下电时长,换言之即传感器的下次上电时机),从而进一步提高了移动设备的用户体验。
参阅图8,为本发明实施例提供的一种移动设备的功耗管理装置90的结构示意图,其中,该功耗管理装置90集成于该移动设备中,所述移动设备包括至少一个传感器,以及管理所述至少一个传感器的传感器处理器,该功耗管理装置90包括:
判断模块91,用于判断所述传感器处理器当前是否处于空闲状态;
上下电控制模块92,用于当所述判断模块判断出所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;以及,当监测到目标中断的产生时,则对所述传感器处理器执行上电操作。
在一种实现方式下,所述判断模块91具体用于判断所述传感器处理器当前是否在执行任务;
相应地,所述上下电控制模块92具体用于当所述判断模块91判断出所述传感器处理器当前未在执行任务或执行空闲任务且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;
或者,在另一种实现方式下,所述判断模块91具体用于判断所述传感器处理器的当前功耗值是否低于功耗阈值;
相应地,所述上下电控制模块92具体用于当所述判断模块91判断出所述传感器处理器的当前功耗阈值低于功耗阈值且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作。
其中,在一个实施例中,在对所述传感器处理器执行下电操作的方面,所述上下电控制模块92具体用于:保存所述移动设备运行过程中生成的数据段,并发送下电命令或者下电所述传感器处理器,其中所述下电命令用于指示下电所述传感器处理器。应当理解的是:可以是传感器处理器向功耗处理器或电源发送下电命令,由功耗处理器或电源来下电,也可以是传感器处理器自己下电。
其中,在一个实施例中,在对所述传感器处理器执行上电操作的方面,所述上下电控制模块92具体用于:将所述移动设备中原本存储的代码段和所述传感器处理器的下电过程中保存的数据段复制到所述移动设备中的指定位置;以及,对所述传感器处理器上电;这里的指定位置,例如可以是与传感器处理器耦合的存储器中的指定位置,或者可以是传感器处理器内部的存储空间中的指定位置。
可见,本发明实施例中,通过判断所述传感器处理器当前是否处于空闲状态;当所述传感器处理器当前处于空闲状态且在设置的空闲超时阈值到来之前未监测到目标中断的产生时,对所述传感器处理器执行下电操作;当监测到所述目标中断的产生时,则对所述传感器处理器执行上电操作。相对于现有技术中只能做到对传感器进行上下电操作来降低传感器功耗,本发明实施例中,采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
此外,本发明实施例中,在下电过程中,保存数据段而无需保存代码段,能够减少上下电时间(即上下电操作的耗时),从而间接性的延长了传感器处理器的下电时长,进一步的降低了移动设备的功耗,进而进一步提高了移动设备的用户体验。
可选地,在上述图8对应的实施例的基础上,本发明实施例提供的移动设备的功耗管理装置的另一实施例中,所述上下电控制模块92还用于对所述传感器处理器执行下电操作之前或同时,将所述传感器处理器当前运行的上下文保存到空闲任务栈中,并保存连接当前运行的传感器的输入/输出I/O口的状态;
以及,所述上下电控制模块92还用于在对所述传感器处理器执行上电操作之后或同时,根据保存的所述上下文和所述I/O口的状态恢复所述传感器处理器和所述传感器的上下文,使得所述传感器处理器在上下文恢复后执行的下一条程序计算器PC指针为上下文保存后原本要执行的下一条PC指针。
进一步的,本发明实施例中,通过在下电前对系统当前的上下文进行保存,在上电时对系统的上下文进行恢复,能保证系统上下电过程后能接着运行,并且上下电过程后回到的仍然是下电前上下文保存之后的位置,就好像系统从未上下电,就好像系统一直正常运行着。
需要说明的是,如何判断所述传感器处理器当前是否在执行任务的技术手段,如何对所述传感器处理器执行下电操作的技术手段,如何对所述传感器处理器执行上电操作的技术手段请参见前面实施例的描述,这里不再赘述。换言之,本发明实施例中的判断模块91和上下电控制模块92的功能与结构参见前述实施例的介绍,这里不再赘述。
可见,本发明实施例中,针对传感器采集数据不是周期机制,而支持中断触发采集的应用场景下,相对于现有技术中只能做到对传感器进行上下电操作来实现降低传感器功耗,本发明实施例采用芯片级的下电技术,实现芯片级最低功耗,最大化地降低移动设备的功耗,从而提高移动设备的用户体验。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件(例如传感器处理器,或者传感器处理器与功耗处理器配合)来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的移动设备的功耗管理方法、功耗管理方法、装置以及移动设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。