发明内容
本发明实施例提供一种控制中央处理器的方法和装置,可减少CPU在短时间内频繁地开启和/或关闭造成的电量消耗。
根据本发明的第一方面,一种控制中央处理器CPU的方法,包括:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
判断所述一个CPU的工作频率是否小于关核频率;
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
获取所述M×N个CPU功耗敏感因子的平均数;
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
在第一方面的第一种可能的实现方式中,所述对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第一方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述方法还包括:
当***空闲时,所述定时器停止计时。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
当***退出空闲时,所述定时器启动计时。
结合本发明的第一方面;或第一方面的第一种可能的实现方式;或第一方面的第二种可能的实现方式;或第一方面的第三种可能的实现方式;或第一方面的第四种可能的实现方式;或第一方面的第五种可能的实现方式,在第六种可能的实现方式中,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU,包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
根据本发明的第二方面,一种控制中央处理器CPU的方法,包括:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
判断所述一个CPU的工作频率是否小于关核频率;
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,N个CPU功耗敏感因子;
获取所述N个CPU功耗敏感因子的平均数;
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
在第二方面的第一种可能的实现方式中,对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
当***空闲时,所述定时器停止计时。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中;或者结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
当***退出空闲时,所述定时器启动计时。
结合本发明的第二方面;或第二方面的第一种可能的实现方式;或第二方面的第二种可能的实现方式;或第二方面的第三种可能的实现方式;或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU,包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
根据本发明的第三方面,一种控制中央处理器CPU的方法,包括:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
判断所述一个CPU的工作频率是否大于开核频率;
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于M个工作的CPU执行上述步骤,重复N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
获取所述M×N个CPU功耗敏感因子的平均数;
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
在第三方面的第一种可能的实现方式中,所述对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第三方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述方法还包括:
当***空闲时,所述定时器停止计时。
结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
当***退出空闲时,所述定时器启动计时。
结合第三方面的第二种可能的实现方式,或本发明的第三方面的第三种可能的实现方式,或本发明的第三方面的第四种可能的实现方式,或本发明的第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
结合第三方面的第六种可能的实现方式,在第七种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第三方面;或第三方面的第一种可能的实现方式;或第三方面的第二种可能的实现方式;或第三方面的第三种可能的实现方式;或第三方面的第四种可能的实现方式;或第三方面的第五种可能的实现方式;或第三方面的第六种可能的实现方式;或第三方面的第七种可能的实现方式,在第八种可能的实现方式中,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU,包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
根据本发明的第四方面,一种控制中央处理器CPU的方法,包括:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
判断所述一个CPU的工作频率是否大于开核频率;
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,N个CPU功耗敏感因子;
获取所述N个CPU功耗敏感因子的平均数;
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
在第四方面的第一种可能的实现方式中,对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第四方面的第一种可能的实现方式,第二种可能的实现方式中,所述方法还包括:
当***空闲时,所述定时器停止计时。
结合第四方面的第一种可能的实现方式,或第四方面的第二种可能的实现方式,第三种可能的实现方式中,所述方法还包括:
当***退出空闲时,所述定时器启动计时。
结合第四方面的第一种可能的实现方式,或本发明的第四方面的第二种可能的实现方式,或本发明的第四方面的第三种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
结合第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第四方面;或第四方面的第一种可能的实现方式;或第四方面的第二种可能的实现方式;或第四方面的第三种可能的实现方式;或第四方面的第四种可能的实现方式;或第四方面的第五种可能的实现方式;或第四方面的第六种可能的实现方式,在第七种可能的实现方式中,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU,包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
根据本发明的第五方面,一种终端,包括处理器,所述处理器用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
判断所述一个CPU的工作频率是否小于关核频率;
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
获取所述M×N个CPU功耗敏感因子的平均数;
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
在第五方面的第一种可能的实现方式中,所述处理器对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第五方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述处理器还用于:
当***空闲时,控制所述定时器停止计时。
结合第五方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第五方面的第三种可能的实现方式,在第五种可能的实现方式中,所述处理器还用于:
当***退出空闲时,控制所述定时器启动计时。
结合本发明的第五方面;或第五方面的第一种可能的实现方式;或第五方面的第二种可能的实现方式;或第五方面的第三种可能的实现方式;或第五方面的第四种可能的实现方式;或第五方面的第五种可能的实现方式,在第六种可能的实现方式中,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU,包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
根据本发明的第六方面,一种终端,其特征在于,所述终端包括处理器,所述处理器用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
判断所述一个CPU的工作频率是否小于关核频率;
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,N个CPU功耗敏感因子;
获取所述N个CPU功耗敏感因子的平均数;
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
在第六方面的第一种可能的实现方式中,所述处理器对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:
当***空闲时,所述定时器停止计时。
结合第六方面的第二种可能的实现方式,在第三种可能的实现方式中;或者结合第六方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于:
当***退出空闲时,所述定时器启动计时。
结合本发明的第六方面;或第六方面的第一种可能的实现方式;或第六方面的第二种可能的实现方式;或第六方面的第三种可能的实现方式;或第六方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理器在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU,包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
根据本发明的第七方面,一种终端,包括处理器,所述处理器用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
判断所述一个CPU的工作频率是否大于开核频率;
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于M个工作的CPU执行上述步骤,重复N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
获取所述M×N个CPU功耗敏感因子的平均数;
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
在第七方面的第一种可能的实现方式中,所述处理器对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第七方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第七方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述处理器还用于:
当***空闲时,所述定时器停止计时。
结合第七方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第七方面的第三种可能的实现方式,在第五种可能的实现方式中,所述处理器还用于:
当***退出空闲时,所述定时器启动计时。
结合第七方面的第二种可能的实现方式,或本发明的第七方面的第三种可能的实现方式,或本发明的第七方面的第四种可能的实现方式,或本发明的第七方面的第五种可能的实现方式,在第六种可能的实现方式中,所述处理器还用于:
在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值的时候,则控制所述定时器停止计时。
结合第七方面的第六种可能的实现方式,在第七种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第七方面;或第七方面的第一种可能的实现方式;或第七方面的第二种可能的实现方式;或第七方面的第三种可能的实现方式;或第七方面的第四种可能的实现方式;或第七方面的第五种可能的实现方式;或第七方面的第六种可能的实现方式;或第七方面的第七种可能的实现方式,在第八种可能的实现方式中,所述处理器在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
根据本发明的第八方面,一种终端,包括处理器,所述处理器用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
判断所述一个CPU的工作频率是否大于开核频率;
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;
获取执行上述步骤N次后,N个CPU功耗敏感因子;
获取所述N个CPU功耗敏感因子的平均数;
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
在第八方面的第一种可能的实现方式中,所述处理器对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第八方面的第一种可能的实现方式,第二种可能的实现方式中,所述处理器还用于:
当***空闲时,所述定时器停止计时。
结合第八方面的第一种可能的实现方式,或第八方面的第二种可能的实现方式,第三种可能的实现方式中,所述处理器还用于:
当***退出空闲时,所述定时器启动计时。
结合第八方面的第一种可能的实现方式,或本发明的第八方面的第二种可能的实现方式,或本发明的第八方面的第三种可能的实现方式,在第五种可能的实现方式中,所述处理器还用于:
在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值的时候,则控制所述定时器停止计时。
结合第八方面的第五种可能的实现方式,在第六种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第八方面;或第八方面的第一种可能的实现方式;或第八方面的第二种可能的实现方式;或第八方面的第三种可能的实现方式;或第八方面的第四种可能的实现方式;或第八方面的第五种可能的实现方式;或第八方面的第六种可能的实现方式,在第七种可能的实现方式中,所述处理器在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,包括:
在所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M时,开启至少一个处于非工作状态的CPU。
根据本发明的第九方面,一种装置,包括:
第一单元,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
第二单元,用于判断所述一个CPU的工作频率是否小于关核频率;
第三单元,用于在所述一个CPU的工作频率小于关核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元,用于在所述一个CPU的工作频率大于或等于关核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元,用于对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
第六单元,用于获取所述M×N个CPU功耗敏感因子的平均数;
第七单元,用于当所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU。
在第九方面的第一种可能的实现方式中,所述第五单元对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第九方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括第n个工作的CPU对应的定时器n,所述第五单元对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第九方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述装置还包括:
第八单元,用于当***空闲时,所述定时器停止计时。
结合第九方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第九方面的第三种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
第九单元,用于当***退出空闲时,所述定时器启动计时。
结合本发明的第九方面;或第九方面的第一种可能的实现方式;或第九方面的第二种可能的实现方式;或第九方面的第三种可能的实现方式;或第九方面的第四种可能的实现方式;或第九方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第七单元具体用于:
当所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
根据本发明的第十方面,一种装置,包括:
第一单元,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
第二单元,用于判断所述一个CPU的工作频率是否小于关核频率;
第三单元,用于在所述一个CPU的工作频率小于关核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元,用于在所述一个CPU的工作频率大于或等于关核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元,用于对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数,并获取执行上述步骤N次后,N个CPU功耗敏感因子;
第六单元,用于获取所述N个CPU功耗敏感因子的平均数;
第七单元,用于在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU。
在第十方面的第一种可能的实现方式中,还包括所述一个CPU对应的定时器a,所述第五单元对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第十方面的第一种可能的实现方式,在第二种可能的实现方式中,所述装置还包括:
第八单元,用于当***空闲时,所述定时器停止计时。
结合第十方面的第二种可能的实现方式,在第三种可能的实现方式中;或者结合第十方面的第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
第九单元,用于当***退出空闲时,所述定时器启动计时。
结合本发明的第十方面;或第十方面的第一种可能的实现方式;或第十方面的第二种可能的实现方式;或第十方面的第三种可能的实现方式;或第十方面的第四种可能的实现方式,在第五种可能的实现方式中,所述第七单元具体用于:
当所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M时,关闭至少一个工作的CPU。
根据本发明的第十一方面,一种装置,包括:
第一单元,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
第二单元,用于判断所述一个CPU的工作频率是否大于开核频率;
第三单元,用于在所述一个CPU的工作频率大于开核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元,用于在所述一个CPU的工作频率小于或等于开核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元,用于对于M个工作的CPU执行上述步骤,重复N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
第六单元,用于获取所述M×N个CPU功耗敏感因子的平均数;
第七单元,用于在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU。
在第十一方面的第一种可能的实现方式中,所述第五单元对于M个工作的CPU分别执行上述步骤N次包括:
对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
结合第十一方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括第n个工作的CPU对应的定时器n,所述第五单元对于第n个工作的CPU执行所述上述步骤N次,包括:
在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述步骤;从而当所述定时器n的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第十一方面的第二种可能的实现方式中,在第三种可能的实现方式中,所述装置还包括:
第八单元,用于当***空闲时,所述定时器停止计时。
结合第十一方面的第二种可能的实现方式,在第四种可能的实现方式中;或者结合第十一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
第九单元,用于当***退出空闲时,所述定时器启动计时。
结合第十一方面的第二种可能的实现方式,或本发明的第十一方面的第三种可能的实现方式,或本发明的第十一方面的第四种可能的实现方式,或本发明的第十一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述装置还包括:
第十单元,用于如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则控制所述定时器停止计时。
结合第十一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第十一方面;或第十一方面的第一种可能的实现方式;或第十一方面的第二种可能的实现方式;或第十一方面的第三种可能的实现方式;或第十一方面的第四种可能的实现方式;或第十一方面的第五种可能的实现方式;或第十一方面的第六种可能的实现方式;或第十一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述第七单元具体用于:
当所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M时,开启至少一个处于非工作状态的CPU。
根据本发明的第十二方面,一种装置,包括:
第一单元,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
第二单元,用于判断所述一个CPU的工作频率是否大于开核频率;
第三单元,用于在所述一个CPU的工作频率大于开核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元,用于在所述一个CPU的工作频率小于或等于开核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元,用于对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,N个CPU功耗敏感因子;
第六单元,用于获取所述N个CPU功耗敏感因子的平均数;
第七单元,用于在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU。
在第十二方面的第一种可能的实现方式中,还包括所述一个CPU对应的定时器a,所述第五单元对于所述一个CPU执行上述步骤N次,包括:
在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述步骤;从而当所述定时器a的计时时刻连续到达至N次时,执行所述上述步骤N次。
结合第十二方面的第一种可能的实现方式,第二种可能的实现方式中,所述所述装置还包括:
第八单元,用于当***空闲时,所述定时器停止计时。
结合第十二方面的第一种可能的实现方式,或第十二方面的第二种可能的实现方式,第三种可能的实现方式中,所述装置还包括:
第九单元,用于当***退出空闲时,所述定时器启动计时。
结合第十二方面的第一种可能的实现方式,或本发明的第十二方面的第二种可能的实现方式,或本发明的第十二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
第十单元,用于如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则控制所述定时器停止计时。
结合第十二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述最高频率持续周期次数阈值为:
(所述开启CPU功耗敏感因子阈值×所述N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重;
所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:
所述工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
结合本发明的第十二方面;或第十二方面的第一种可能的实现方式;或第十二方面的第二种可能的实现方式;或第十二方面的第三种可能的实现方式;或第十二方面的第四种可能的实现方式;或第十二方面的第五种可能的实现方式;或第十二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述第七单元具体用于:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
根据本发明的第十三方面,一种携带程序代码的计算机程序,当所述计算机程序在计算机上运行时,所述程序代码执行结合本发明的第一方面;或第一方面的第一种可能的实现方式;或第一方面的第二种可能的实现方式;或第一方面的第三种可能的实现方式;或第一方面的第四种可能的实现方式;或第一方面的第五种可能的实现方式;或第一方面的第六种可能的实现方式;或本发明的第二方面;或第二方面的第一种可能的实现方式;或第二方面的第二种可能的实现方式;或第二方面的第三种可能的实现方式;或第二方面的第四种可能的实现方式;或第二方面的第五种可能的实现方式;或本发明的第三方面;或第三方面的第一种可能的实现方式;或第三方面的第二种可能的实现方式;或第三方面的第三种可能的实现方式;或第三方面的第四种可能的实现方式;或第三方面的第五种可能的实现方式;或第三方面的第六种可能的实现方式;或第三方面的第七种可能的实现方式,或第三方面的第八种可能的实现方式;或本发明的第四方面;或第四方面的第一种可能的实现方式;或第四方面的第二种可能的实现方式;或第四方面的第三种可能的实现方式;或第四方面的第四种可能的实现方式;或第四方面的第五种可能的实现方式;或第四方面的第六种可能的实现方式,或第四方面的第七种可能的实现方式所述的方法。
根据本发明的第十四方面,一种计算机可读存储介质,所述计算机存储计算机程序代码,当所述计算机程序代码被一个计算机执行的时候,所述计算机程序代码可以使得所述计算机执行结合本发明的第一方面;或第一方面的第一种可能的实现方式;或第一方面的第二种可能的实现方式;或第一方面的第三种可能的实现方式;或第一方面的第四种可能的实现方式;或第一方面的第五种可能的实现方式;或第一方面的第六种可能的实现方式;或本发明的第二方面;或第二方面的第一种可能的实现方式;或第二方面的第二种可能的实现方式;或第二方面的第三种可能的实现方式;或第二方面的第四种可能的实现方式;或第二方面的第五种可能的实现方式;或本发明的第三方面;或第三方面的第一种可能的实现方式;或第三方面的第二种可能的实现方式;或第三方面的第三种可能的实现方式;或第三方面的第四种可能的实现方式;或第三方面的第五种可能的实现方式;或第三方面的第六种可能的实现方式;或第三方面的第七种可能的实现方式,或第三方面的第八种可能的实现方式;或本发明的第四方面;或第四方面的第一种可能的实现方式;或第四方面的第二种可能的实现方式;或第四方面的第三种可能的实现方式;或第四方面的第四种可能的实现方式;或第四方面的第五种可能的实现方式;或第四方面的第六种可能的实现方式,或第四方面的第七种可能的实现方式所述的方法。
根据本发明的第十五方面,一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码被一个计算机执行的时候,所述计算机程序代码可以使得所述计算机执行结合本发明的第一方面;或第一方面的第一种可能的实现方式;或第一方面的第二种可能的实现方式;或第一方面的第三种可能的实现方式;或第一方面的第四种可能的实现方式;或第一方面的第五种可能的实现方式;或第一方面的第六种可能的实现方式;或本发明的第二方面;或第二方面的第一种可能的实现方式;或第二方面的第二种可能的实现方式;或第二方面的第三种可能的实现方式;或第二方面的第四种可能的实现方式;或第二方面的第五种可能的实现方式;或本发明的第三方面;或第三方面的第一种可能的实现方式;或第三方面的第二种可能的实现方式;或第三方面的第三种可能的实现方式;或第三方面的第四种可能的实现方式;或第三方面的第五种可能的实现方式;或第三方面的第六种可能的实现方式;或第三方面的第七种可能的实现方式,或第三方面的第八种可能的实现方式;或本发明的第四方面;或第四方面的第一种可能的实现方式;或第四方面的第二种可能的实现方式;或第四方面的第三种可能的实现方式;或第四方面的第四种可能的实现方式;或第四方面的第五种可能的实现方式;或第四方面的第六种可能的实现方式,或第四方面的第七种可能的实现方式所述的方法。
从上述方案可以看出,本发明实施例提供的控制中央处理器的方法和装置,引入权重的概念,权重与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。或者如果平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。从而通过权重和平均数保证CPU开启或/和关闭具备平稳的条件,节省了CPU的电能消耗。
具体实施方式
为确认本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施例作进一步的详细描述。
本发明的第一实施例提供一种控制CPU的方法,如图1所示,包括如下步骤:
步骤101,获取工作的CPU中的一个CPU的占用率和工作频率。所述工作的CPU的个数为M,M为大于或等于二的正整数。CPU占用率和工作频率可以通过检测获得。CPU占用率是指,***中运行的程序占用CPU资源的相对百分比。
步骤102,判断所述一个CPU的工作频率是否小于关核频率。如果所述一个CPU的工作频率小于关核频率,进入步骤103,否则进入步骤104。其中,关核频率可以为486兆赫兹(MHz)。
步骤103,如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第一权重可以为低权重,取值可为1。CPU功耗敏感因子为CPU对于其所消耗的功率的敏感程度,其值为当前CPU的工作频率与CPU频率权重的乘积。
步骤104,如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值比低权重大,如可为2。该第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
步骤105,对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数。通常,N可取值为5。
步骤106,获取执行上述步骤N次后,M×N个CPU功耗敏感因子。
步骤107,获取所述M×N个CPU功耗敏感因子的平均数;该平均数可以包括如下几种:算术平均数,几何平均数,调和平均数,平方平均数,移动平均数,算术-几何平均数和平方平均数。上述各种平均数的计算方式为本领域技术人员公知,此处不再赘述。
步骤108,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。其中,关闭CPU的策略可以是将最后开启的CPU关闭,或者将最先开启的CPU关闭。也可根据各个工作CPU的占用率,将占用率最低的CPU关闭;或者根据各个工作CPU的工作频率,将工作频率最低的CPU关闭。此外,还可根据其他策略关闭CPU。此处不做限定。后文涉及CPU的关闭,均可参考此处的关闭策略操作。
本发明实施例一提供的控制CPU的方法,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。通过权重和平均数,保证CPU关闭具备平稳的条件,节省了CPU的电能消耗。
本发明的第二实施例提供一种控制CPU的方法,如图2所示,包括如下步骤:
步骤201,获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数。
步骤202,判断所述一个CPU的工作频率是否小于关核频率。如果所述一个CPU的工作频率小于关核频率,进入步骤203。如果所述一个CPU的工作频率大于或等于关核频率,进入步骤204。
步骤203,如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第一权重可以为低权重,取值可为1。
步骤204,如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值大于低权重的取值,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
步骤205,对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数。
步骤206,获取执行上述步骤N次后,N个CPU功耗敏感因子。
步骤207,获取所述N个CPU功耗敏感因子的平均数。
步骤208,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
本发明实施例二提供的控制CPU的方法,与实施例一不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和关闭CPU功耗敏感因子阈值比较,从而确定至少一个工作的CPU处于非工作状态。相比起实施例一的方法,实施例二实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明的第三实施例提供一种控制CPU的方法,如图3所示,包括如下步骤:
步骤301,获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;当前处于非工作状态的CPU的个数大于或等于一。
步骤302,判断所述一个CPU的工作频率是否大于开核频率。其中,开核频率可以为918MHz。
步骤303,如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为高权重,取值可为4。
步骤304,如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值比高权重的取值小,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
步骤305,对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数。通常,N可取值为10。
步骤306,获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
步骤307,获取所述M×N个CPU功耗敏感因子的平均数;
步骤308,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。其中,所述开启CPU功耗敏感因子阈值可以设为200。开启CPU的策略可以根据处于非工作状态的CPU的编号,从小到大依次开启;或者依处于非工作状态的CPU的编号,从大到小依次开启。还可以根据其他策略关闭CPU。此处不做限定。后文涉及CPU的开启,均可参考此处的开启策略操作。
本发明实施例三提供的控制CPU的方法,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
通过权重和平均数,保证CPU开启具备平稳的条件,节省了CPU的电能消耗。
本发明的第四实施例提供一种控制CPU的方法,如图4所示,包括如下步骤:
步骤401,获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;当前处于非工作状态的CPU的个数大于或等于一。
步骤402,判断所述一个CPU的工作频率是否大于开核频率。
步骤403,如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为高权重,取值可为4。
步骤404,如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为中权重,取值比高权重的取值小,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。。
步骤405,对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数。
步骤406,获取执行上述步骤N次后,N个CPU功耗敏感因子。
步骤407,获取所述N个CPU功耗敏感因子的平均数。
步骤408,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
本发明实施例四提供的控制CPU的方法,与实施例三不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和开启CPU功耗敏感因子阈值比较,从而确定至少一个所述当前处于非工作状态的CPU处于工作状态。相比起实施例三的方法,实施例四实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明的第五实施例提供一种控制CPU的方法,该实施例在第一实施例的基础上,有如下变化:
步骤105中,对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述101至104步骤;故当所述定时器n的计时时刻连续到达至N次时,共执行所述上述101至104步骤N次。
此外,该实施例方法还可包括:当***空闲时,第n个工作的CPU对应的定时器n停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,步骤108中,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU,可包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。其中CPU上运行的队列任务为运行的线程。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明的第六实施例提供一种控制CPU的方法,该实施例在第二实施例的基础上,有如下变化:
步骤205中,对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述201至204步骤;故当所述定时器a的计时时刻连续到达至N次时,共执行所述上述201至204步骤N次。
此外,该实施例方法还可包括:当***空闲时,所述定时器a停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,步骤208中,如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU,可包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明的第七实施例提供一种控制CPU的方法,该实施例在第三实施例的基础上,有如下变化:
步骤305中,对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述301至304步骤;故当所述定时器n的计时时刻连续到达至N次时,共执行所述上述301至304步骤N次。
此外,该实施例方法还可包括:当***空闲时,所述定时器n停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例方法还可包括:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重,即高权重,其值可为4。占用率阈值根据不同的平台可取不同值,优选的,该值的取值范围可以在90%到95%之间。这里的不同的平台是指不同的硬件芯片组。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,步骤308中,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU,可包括:如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
本发明的第八实施例提供一种控制CPU的方法,该实施例在第四实施例的基础上,有如下变化:
步骤405中,对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述401至404步骤;故当所述定时器a的计时时刻连续到达至N次时,共执行所述上述401至404步骤N次。
此外,该实施例方法还可包括:当***空闲时,所述定时器a停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例方法还可包括:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,频率权重为所述第一权重,即高权重,其值可为4。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,步骤408中,如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU,可包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
执行上述方法实施例的CPU具体可以是负责调度的CPU。即执行上述方法实施例的CPU可调度其他普通的执行指令和运算的CPU。该负责调度的CPU可以是除其他普通执行指令和运算的CPU以外独立的CPU,也可将调度功能集成在某个普通执行指令和运算的CPU中。该负责调度的CPU(后文简称为“调度CPU”)的硬件形式可以是高级精简指令集计算机(Advanced Reduced Instruction Set Computing(RISC)Machines,ARM)芯片,也可以是单片机等其他芯片。
本发明第九实施例还提供一种终端,如图5所示,终端501包括处理器5011。该处理器具体可以为CPU,该CPU进一步可以是调度CPU。该处理器5011用于:
获取工作的CPU中的一个CPU的占用率和工作频率。所述工作的CPU的个数为M,M为大于或等于二的正整数。CPU占用率和工作频率可以通过检测获得。CPU占用率是指,***中运行的程序占用CPU资源的相对百分比。
判断所述一个CPU的工作频率是否小于关核频率。如果所述一个
CPU的工作频率小于关核频率,进入步骤103,否则进入步骤104。其中,关核频率可以为486兆赫兹(MHz)。
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第一权重可以为低权重,取值可为1。CPU功耗敏感因子为CPU对于其所消耗的功率的敏感程度,其值为当前CPU的工作频率与CPU频率权重的乘积。
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值比低权重大,如可为2。该第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数。通常,N可取值为5。
获取执行上述步骤N次后,M×N个CPU功耗敏感因子。
获取所述M×N个CPU功耗敏感因子的平均数;该平均数可以包括如下几种:算术平均数,几何平均数,调和平均数,平方平均数,移动平均数,算术-几何平均数和平方平均数。上述各种平均数的计算方式为本领域技术人员公知,此处不再赘述。
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。其中,关闭CPU的策略可以是将最后开启的CPU关闭,或者将最先开启的CPU关闭。也可根据各个工作CPU的占用率,将占用率最低的CPU关闭;或者根据各个工作CPU的工作频率,将工作频率最低的CPU关闭。此外,还可根据其他策略关闭CPU。此处不做限定。后文涉及CPU的关闭,均可参考此处的关闭策略操作。
本发明实施例九提供的终端,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。通过权重和平均数,保证CPU关闭具备平稳的条件,节省了CPU的电能消耗。
本发明第十实施例还提供一种终端,如图5所示,终端501包括处理器5011。该处理器具体可以为CPU,该CPU进一步可以是调度CPU。该处理器5011用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数。
判断所述一个CPU的工作频率是否小于关核频率。如果所述一个CPU的工作频率小于关核频率,进入步骤203。如果所述一个CPU的工作频率大于或等于关核频率,进入步骤204。
如果所述一个CPU的工作频率小于关核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第一权重可以为低权重,取值可为1。
如果所述一个CPU的工作频率大于或等于关核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值大于低权重的取值,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数。
获取执行上述步骤N次后,N个CPU功耗敏感因子。
获取所述N个CPU功耗敏感因子的平均数。
如果所述平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。
本发明实施例十提供的终端,与实施例九不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和关闭CPU功耗敏感因子阈值比较,从而确定至少一个工作的CPU处于非工作状态。相比起实施例九的方法,实施例十实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明第十一实施例还提供一种终端,如图5所示,终端501包括处理器5011。该处理器具体可以为CPU,该CPU进一步可以是调度CPU。该处理器5011用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;当前处于非工作状态的CPU的个数大于或等于一。
判断所述一个CPU的工作频率是否大于开核频率。其中,开核频率可以为918MHz。
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为高权重,取值可为4。
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。该第二权重可以为中权重,取值比高权重的取值小,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。
对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数。通常,N可取值为10。
获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
获取所述M×N个CPU功耗敏感因子的平均数;
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。其中,所述开启CPU功耗敏感因子阈值可以设为200。开启CPU的策略可以根据处于非工作状态的CPU的编号,从小到大依次开启;或者依处于非工作状态的CPU的编号,从大到小依次开启。还可以根据其他策略关闭CPU。此处不做限定。后文涉及CPU的开启,均可参考此处的开启策略操作。
本发明实施例十一提供的终端,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。通过权重和平均数,保证CPU开启具备平稳的条件,节省了CPU的电能消耗。
本发明第十二实施例还提供一种终端,如图5所示,终端501包括处理器5011。该处理器具体可以为CPU,该CPU进一步可以是调度CPU。该处理器5011用于:
获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;当前处于非工作状态的CPU的个数大于或等于一。
判断所述一个CPU的工作频率是否大于开核频率。
如果所述一个CPU的工作频率大于开核频率,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为高权重,取值可为4。
如果所述一个CPU的工作频率小于或等于开核频率,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子。所述第一权重为中权重,取值比高权重的取值小,如可为2。第一权重和所述第二权重不相等,且均为大于或等于一的正整数。。
对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数。
获取执行上述步骤N次后,N个CPU功耗敏感因子。
获取所述N个CPU功耗敏感因子的平均数。
如果所述平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。
本发明实施例十二提供的终端,与实施例十一不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和开启CPU功耗敏感因子阈值比较,从而确定至少一个所述当前处于非工作状态的CPU处于工作状态。相比起实施例十一的方法,实施例十二实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明第十三实施例提供一种终端,该实施例在第九实施例的基础上,有如下变化:
处理器5011对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行处理器5011的前四个功能;故当所述定时器n的计时时刻连续到达至N次时,共执行所述上述处理器5011的前四个功能N次。
此外,该实施例提供的处理器还可用于:当***空闲时,第n个工作的CPU对应的定时器n停止计时。
此外,该实施例提供的处理器还可用于:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,处理器在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU,可包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。其中CPU上运行的队列任务为运行的线程。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明第十四实施例提供一种终端,该实施例在第十实施例的基础上,有如下变化:
处理器5011对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述处理器5011的前四个功能;故当所述定时器a的计时时刻连续到达至N次时,共执行处理器5011的前四个功能N次。
此外,该实施例提供的处理器还可用于:当***空闲时,所述定时器a停止计时。
此外,该实施例提供的处理器还可用于:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,处理器5011在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU,可包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明第十五实施例提供一种终端,该实施例在第十一实施例的基础上,有如下变化:
处理器5011对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述处理器5011的前四个功能;故当所述定时器n的计时时刻连续到达至N次时,共执行所述处理器5011的前四个功能N次。
此外,该实施例方法还可包括:当***空闲时,所述定时器n停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例方法还可包括:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重,即高权重,其值可为4。占用率阈值根据不同的平台可取不同值,优选的,该值的取值范围可以在90%到95%之间。这里的不同的平台是指不同的硬件芯片组。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,处理器5011在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,可包括:如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
本发明第十六实施例提供一种终端,该实施例在第十二实施例的基础上,有如下变化:
处理器5011对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述处理器5011的前四个功能;故当所述定时器a的计时时刻连续到达至N次时,共执行所述处理器5011的前四个功能N次。
此外,该实施例方法还可包括:当***空闲时,所述定时器a停止计时。
此外,该实施例方法还可包括:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例方法的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例方法还可包括:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,频率权重为所述第一权重,即高权重,其值可为4。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,处理器5011在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,可包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
上述第九至第十二实施例中的终端,可包括各种类型的终端,包括固定终端,移动终端等。本文对终端类型不作限定,只要不属于局端设备均可认为是本文所指的终端。例如,终端还可包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等。
本发明第十七实施例提供一种手机,手机可以是本发明第九至第十二实施例提供的终端的具体形式。图6为手机的部分结构的框图。参考图6,手机100包括、RF(Radio Frequency,射频)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机100的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobilecommunication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(LongTerm Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机100的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图象播放功能等)等;存储数据区可存储根据手机100的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及手机100的各种菜单。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触控面板131与显示面板141是作为两个独立的部件来实现手机100的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现手机100的输入和输出功能。
手机100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机100移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机100还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,麦克风162可提供用户与手机100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路108以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
WiFi属于短距离无线传输技术,手机100通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于手机100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是手机100的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机100的各种功能和处理数据,从而对手机进行整体监控。优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
可选的,处理器180可包括一个或多个处理单元。一个或多个处理单元中可包括一个独立的调度CPU和一个或多个普通CPU。所述调度CPU可调度普通CPU。该调度CPU的硬件形式可以是高级精简指令集计算机(AdvancedReduced Instruction Set Computing(RISC)Machines,ARM)芯片,也可以是单片机等其他芯片。普通CPU即普通执行指令和运算的CPU。可以理解的,该调度CPU的功能也可集成在某个或某几个普通CPU中,本实施例不做限制。该调度CPU的功能具体可参考前述的第九至第十二实施例,此处不再赘述。
手机100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗等功能。
尽管未示出,手机100还可以包括摄像头、蓝牙模块等,在此不再赘述。
本发明第十八实施例还提供一种装置,如图7所示,为该装置的概要结构示意图。该装置701包括如下单元:
第一单元7011,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
第二单元7012,用于判断所述一个CPU的工作频率是否小于关核频率;
第三单元7013,用于在所述一个CPU的工作频率小于关核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元7014,用于在所述一个CPU的工作频率大于或等于关核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元7015,用于对于M个工作的CPU分别执行上述步骤N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
第六单元7016,用于获取所述M×N个CPU功耗敏感因子的平均数;
第七单元7017,用于当所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU。
本发明实施例十八提供的装置,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数小于关闭CPU功耗敏感因子阈值,关闭至少一个工作的CPU。通过权重和平均数,保证CPU关闭具备平稳的条件,节省了CPU的电能消耗。
本发明实施例十九还提供一种装置,如图7所示,为该装置的概要结构示意图。该装置701包括如下单元:
第一单元7011,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于二的正整数;
第二单元7012,用于判断所述一个CPU的工作频率是否小于关核频率;
第三单元7013,用于在所述一个CPU的工作频率小于关核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元7014,用于在所述一个CPU的工作频率大于或等于关核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元7015,用于对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数,并获取执行上述步骤N次后,N个CPU功耗敏感因子;
第六单元7016,用于获取所述N个CPU功耗敏感因子的平均数;
第七单元7017,用于在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU。
本发明实施例十九提供的装置,与实施例十八不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和关闭CPU功耗敏感因子阈值比较,从而确定至少一个工作的CPU处于非工作状态。相比起实施例十八的装置,实施例十九实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明实施例二十还提供一种装置,如图7所示,为该装置的概要结构示意图。该装置701包括如下单元:
第一单元7011,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
第二单元7012,用于判断所述一个CPU的工作频率是否大于开核频率;
第三单元7013,用于在所述一个CPU的工作频率大于开核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元7014,用于在所述一个CPU的工作频率小于或等于开核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元7015,用于对于M个工作的CPU执行上述步骤,重复N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,M×N个CPU功耗敏感因子;
第六单元7016,用于获取所述M×N个CPU功耗敏感因子的平均数;
第七单元7017,用于在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU。
本发明实施例二十提供的装置,引入第一权重和第二权重的概念,与CPU的占用率相乘获得CPU功耗敏感因子,并计算CPU功耗敏感因子的平均数,以便与CPU功耗敏感因子阈值比较。如果平均数大于开启CPU功耗敏感因子阈值,开启至少一个处于非工作状态的CPU。通过权重和平均数,保证CPU开启具备平稳的条件,节省了CPU的电能消耗。
本发明实施例二十一还提供一种装置,如图7所示,为该装置的概要结构示意图。该装置701包括如下单元:
第一单元7011,用于获取工作的CPU中的一个CPU的占用率和工作频率;所述工作的CPU的个数为M,M为大于或等于一的正整数;处于非工作状态的CPU的个数大于或等于一;
第二单元7012,用于判断所述一个CPU的工作频率是否大于开核频率;
第三单元7013,用于在所述一个CPU的工作频率大于开核频率时,将所述一个CPU的占用率与第一权重相乘,得到所述一个CPU对应的CPU功耗敏感因子;
第四单元7014,用于在所述一个CPU的工作频率小于或等于开核频率时,将所述一个CPU的占用率与第二权重相乘,得到所述一个CPU对应的CPU功耗敏感因子,所述第一权重和所述第二权重不相等,且均为大于或等于一的正整数;
第五单元7015,用于对于所述一个CPU执行上述步骤N次,所述N为大于或等于一的正整数;并获取执行上述步骤N次后,N个CPU功耗敏感因子;
第六单元7016,用于获取所述N个CPU功耗敏感因子的平均数;
第七单元7017,用于在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU。
本发明实施例二十一提供的装置,与实施例二十不同在于,仅通过一个CPU计算N次的CPU功耗敏感因子,并计算N次的CPU功耗敏感因子的平均数,以便和开启CPU功耗敏感因子阈值比较,从而确定至少一个所述当前处于非工作状态的CPU处于工作状态。相比起实施例二十一的装置,实施例二十实施起来所需的CPU更少,因此整个算法更简洁,高效。
本发明实施例二十二还提供一种装置,如图8所示,为该装置的详细结构示意图。在该实施例十八的基础上,有如下变化:
第五单元对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,还包括第n个工作的CPU对应的定时器n,则对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述第一单元到第四单元的功能;故当所述定时器n的计时时刻连续到达至N次时,共执行所述第一单元到第四单元的功能N次。
此外,该实施例装置还可包括第八单元,用于:当***空闲时,第n个工作的CPU对应的定时器n停止计时。
此外,该实施例装置还可包括第九单元,用于:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,第七单元在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU,具体可包括:
如果所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M,关闭至少一个工作的CPU。其中CPU上运行的队列任务为运行的线程。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明实施例二十三还提供一种装置,如图8所示,为该装置的详细结构示意图。在该实施例十九的基础上,有如下变化:
装置还包括一个CPU对应的定时器a;
第五单元对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述第一单元到第四单元的功能;故当所述定时器a的计时时刻连续到达至N次时,共执行第一单元到第四单元的功能N次。
此外,该装置还可包括第八单元,用于:当***空闲时,所述定时器a停止计时。
此外,该装置还可包括第九单元,用于:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例的调度CPU所在设备的操作***通知该负责调度的CPU。
进一步的,第七单元在所述平均数小于关闭CPU功耗敏感因子阈值时,关闭至少一个工作的CPU,具体可包括:
在所述平均数小于关闭CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数小于M时,关闭至少一个工作的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***负荷不均衡的时候同样能节省功耗。如当***仅有一个不可分割到两个或多个CPU上运行的任务正在运行(例如一个线程任务,或一个单线程的进程任务),且该任务所占的***负荷高于***负荷忙碌阈值时,不会增加运行的CPU内核的数量。这样就避免如下情况的发生:单一增加CPU内核的数量,可是由于***此时单进程运行,无法同时在不同的CPU上进行调度,造成了新增CPU的无效功耗开销。
本发明实施例二十四还提供一种装置,如图8所示,为该装置的详细结构示意图。在该实施例二十的基础上,有如下变化:
第五单元对于M个工作的CPU分别执行上述步骤N次,具体可包括:对于第n个工作的CPU执行所述上述步骤N次;n大于或等于一,且小于或等于M。
进一步的,还包括第n个工作的CPU对应的定时器n,则对于第n个工作的CPU执行所述上述步骤N次,可包括:在第n个工作的CPU对应的定时器n的计时时刻到达时,执行所述上述301至304步骤;故当所述定时器n的计时时刻连续到达至N次时,共执行所述上述301至304步骤N次。
此外,该实施例装置还可包括第八单元,用于:当***空闲时,所述定时器n停止计时。
此外,该实施例装置还可包括第九单元,用于:当***退出空闲时,所述定时器n启动计时。其中,***空闲与否,由执行该实施例的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例装置还可包括第十单元,用于:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,所述频率权重为所述第一权重,即高权重,其值可为4。占用率阈值根据不同的平台可取不同值,优选的,该值的取值范围可以在90%到95%之间。这里的不同的平台是指不同的硬件芯片组。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,第七单元在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,可包括:如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
本发明实施例二十五还提供一种装置,如图8所示,为该装置的详细结构示意图。在该实施例二十一的基础上,有如下变化:
装置还包括一个CPU对应的定时器a;
第五单元对于所述一个CPU执行上述步骤N次,具体可包括:在所述一个CPU对应的定时器a的计时时刻到达时,执行所述上述第一单元到第四单元的功能;故当所述定时器a的计时时刻连续到达至N次时,共执行第一单元到第四单元的功能N次。
此外,该实施例还可包括第八单元,用于:当***空闲时,所述定时器a停止计时。
此外,该实施例还可包括第九单元,用于:当***退出空闲时,所述定时器a启动计时。其中,***空闲与否,由执行该实施例的调度CPU所在设备的操作***通知该负责调度的CPU。
此外,该实施例装置还可包括第十单元,用于:如果在所述定时器连续计时时刻到达时,获取的所述定时器对应的CPU的工作频率均为频率最大值,且所述工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值,则所述定时器停止计时。
其中,最高频率持续周期次数阈值为:
(开启CPU功耗敏感因子阈值×N)/(占用率阈值×频率权重),其中,频率权重为所述第一权重,即高权重,其值可为4。
工作频率均为频率最大值的次数刚大于最高频率持续周期次数阈值为:工作频率均为频率最大值的次数为最高频率持续周期次数阈值加一。
进一步的,第七单元在所述平均数大于开启CPU功耗敏感因子阈值时,开启至少一个处于非工作状态的CPU,可包括:
如果所述平均数大于开启CPU功耗敏感因子阈值,并且在所述工作的CPU上运行的队列任务数大于M,开启至少一个处于非工作状态的CPU。
本实施例采用定时器控制方法步骤的执行时刻,并通过***是否空闲,开启或关闭定时器。因此可在***空闲时及时关闭计时器,节省功率消耗;并能在***非空闲时及时启动定时器计时,快速响应各类需求。另一种控制定时器的关闭的方式,是在定时器计时时刻连续到达时,CPU工作频率都是最大值,且CPU工作频率出现最大值的次数刚好大于最高频率持续周期次数阈值。这种情况表示CPU已满负荷运行一段时间,已经到达稳定状态。这时计时器没有必要继续开启,故可关闭计时器以节省电量。另外,通过CPU上运行的队列任务数与工作的CPU个数的比较,在***任务数大于工作的CPU个数时,开启一个非工作状态的CPU,可快速响应用户的需求,提高用户体验。
本发明第二十六实施例还提供一种携带程序代码的计算机程序,当所述计算机程序在计算机上运行时,所述程序代码执行第一至第八实施例中任一实施例的方法。
本发明第二十七实施例还提供一种计算机可读存储介质,所述计算机存储计算机程序代码,当所述计算机程序代码被一个计算机执行的时候,所述计算机程序代码可以使得所述计算机执行第一至第八实施例中任一实施例的方法。
本发明第二十八实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序代码,当所述计算机程序代码被一个计算机执行的时候,所述计算机程序代码可以使得所述计算机执行第一至第八实施例中任一实施例的方法。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。