一种调频方法、装置及电子设备与流程

文档序号:30089235发布日期:2022-05-18 08:00阅读:95来源:国知局
一种调频方法、装置及电子设备与流程

1.本发明涉及电子技术领域,特别是涉及一种调频方法、装置及电子设备。


背景技术:

2.现代科技发展越来越快,尤其是电子设备,例如智能手机、平板电脑等移动终端的兴起,导致与之对应的应用程序,例如聊天程序、游戏程序等程序的快速发展,其功耗要求越来越大,而电子设备的电池却难以满足长时间持续的大功耗要求。
3.为了降低电子设备的功耗,通常通过调整各个器件或模块的频率来实现,例如:cpu、ddr、gpu等运算资源,现有技术一般通过多个器件或模块进行投票的方式来决定频率,或者,通过利用窗口的方式来决定负载,再由负载来确定是否提高或降低频率。
4.发明人在实现本发明的过程中发现,现有技术的调频方法无法及时响应短时间的帧率变化,导致局域性能不足,浪费功耗。
5.有鉴于此,现有技术亟待改进。


技术实现要素:

6.本发明实施例旨在提供一种调频方法、装置及电子设备,其解决了现有技术的调频方法无法及时响应短时间的帧率变化,导致局域性能不足,浪费功耗的技术问题,提高局域性能,节省功耗。
7.为解决上述技术问题,本发明实施例提供以下技术方案:
8.第一方面,本发明实施例提供一种调频方法,应用于电子设备,所述方法包括:
9.根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;
10.比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;
11.根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
12.在一些实施例中,在比较所述第一连续帧的平均帧率与期望帧率之前,所述方法还包括:
13.确定所述期望帧率。
14.在一些实施例中,所述确定所述期望帧率,包括:
15.确定第一期望帧率和初始期望帧率;
16.若所述第一期望帧率小于所述初始期望帧率,则根据当前帧的负载状态,确定所述期望帧率。
17.在一些实施例中,所述负载状态包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu使用率、gpu使用率中的至少一个。
18.在一些实施例中,所述根据当前帧的负载状态,确定所述期望帧率,包括:
19.判断当前帧的负载状态是否大于预设负载阈值;
20.若当前帧的负载状态大于预设负载阈值,则将所述初始期望帧率确定为期望帧率;
21.若当前帧的负载状态小于或等于预设负载阈值,则将所述第一期望帧率确定为期望帧率。
22.在一些实施例中,若所述负载状态为处理当前帧所需要的指令数,则所述预设负载阈值为预设指令数阈值,所述判断所述负载状态是否大于预设负载阈值,包括:
23.判断处理当前帧所需要的指令数是否大于预设指令数阈值;
24.若是,则确定所述负载状态大于预设负载阈值;
25.若否,则确定所述负载状态小于或等于预设负载阈值。
26.在一些实施例中,在调整当前帧的初始时间约束之前,所述方法还包括:
27.确定当前帧的初始时间约束。
28.在一些实施例中,所述确定当前帧的初始时间约束,包括:
29.根据当前帧的前一帧的至少一个模块的频点组合,结合当前帧的前一帧的负载状态,计算当前帧的前一帧的合理时间约束;
30.将当前帧的前一帧的合理时间约束确定为当前帧的初始时间约束。
31.在一些实施例中,所述比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束,包括:
32.判断所述第一连续帧的平均帧率是否大于期望帧率;
33.若所述第一连续帧的平均帧率大于期望帧率,则增加当前帧的初始时间约束,以生成调整后的时间约束;
34.若所述第一连续帧的平均帧率小于期望帧率,则减少当前帧的初始时间约束,以生成调整后的时间约束。
35.在一些实施例中,所述方法还包括:
36.判断所述电子设备的系统是否稳定;
37.若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
38.若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
39.在一些实施例中,所述判断所述电子设备的系统是否稳定,包括:
40.根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
41.计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
42.若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
43.若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳定。
44.在一些实施例中,若所述电子设备的系统不稳定,所述方法还包括:
45.判断是否通过所述电子设备的系统进行系统调频;
46.若是,则通过所述电子设备的系统进行系统调频;
47.若否,则进行缓冲调频,其中,所述缓冲调频包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。
48.在一些实施例中,所述判断是否通过所述电子设备的系统进行系统调频,包括:
49.若所述帧率差的绝对值大于或等于第二预设帧率差阈值,则确定通过所述电子设备的系统进行系统调频;
50.若所述帧率差的绝对值小于第二预设帧率差阈值,则确定不通过所述电子设备的系统进行系统调频,其中,所述第二预设帧率差阈值大于所述第一预设帧率差阈值。
51.在一些实施例中,所述根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,包括:
52.基于至少一个模块的预设频点组合集合,确定满足所述调整后的时间约束的第一频点组合集合;
53.根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于调整后的时间约束,并且功耗最小;
54.将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
55.在一些实施例中,所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个。
56.第二方面,本发明实施例提供一种调频装置,应用于电子设备,所述装置包括:
57.平均帧率单元,用于根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;
58.时间约束单元,连接所述平均帧率单元,用于比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;
59.频点调整单元,连接所述时间约束单元,用于根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
60.在一些实施例中,所述时间约束单元,包括:
61.期望帧率模块,用于确定所述期望帧率。
62.在一些实施例中,所述期望帧率模块,具体用于:
63.确定第一期望帧率和初始期望帧率;
64.若所述第一期望帧率小于所述初始期望帧率,则根据当前帧的负载状态,确定所述期望帧率。
65.在一些实施例中,所述负载状态包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu使用率、gpu使用率中的至少一个。
66.在一些实施例中,所述期望帧率模块,具体用于:
67.判断当前帧的负载状态是否大于预设负载阈值;
68.若当前帧的负载状态大于预设负载阈值,则将所述初始期望帧率确定为期望帧
率;
69.若当前帧的负载状态小于或等于预设负载阈值,则将所述第一期望帧率确定为期望帧率。
70.在一些实施例中,若所述负载状态为处理当前帧所需要的指令数,则所述预设负载阈值为预设指令数阈值,所述判断所述负载状态是否大于预设负载阈值,包括:
71.判断处理当前帧所需要的指令数是否大于预设指令数阈值;
72.若是,则确定所述负载状态大于预设负载阈值;
73.若否,则确定所述负载状态小于或等于预设负载阈值。
74.在一些实施例中,所述频点调整单元,包括:
75.初始时间约束模块,用于确定当前帧的初始时间约束。
76.在一些实施例中,所述初始时间约束模块,具体用于:
77.根据当前帧的前一帧的至少一个模块的频点组合,结合当前帧的前一帧的负载状态,计算当前帧的前一帧的合理时间约束;
78.将当前帧的前一帧的合理时间约束确定为当前帧的初始时间约束。
79.在一些实施例中,所述频点调整单元,具体用于:
80.判断所述第一连续帧的平均帧率是否大于期望帧率;
81.若所述第一连续帧的平均帧率大于期望帧率,则增加当前帧的初始时间约束,以生成调整后的时间约束;
82.若所述第一连续帧的平均帧率小于期望帧率,则减少当前帧的初始时间约束,以生成调整后的时间约束。
83.在一些实施例中,所述初始时间约束模块,具体用于:
84.判断所述电子设备的系统是否稳定;
85.若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
86.若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
87.在一些实施例中,所述频点调整单元,包括:
88.系统稳定判断模块,用于判断所述电子设备的系统是否稳定;
89.若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
90.若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
91.在一些实施例中,系统稳定判断模块,具体用于:
92.根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
93.计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
94.若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
95.若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳
定。
96.在一些实施例中,若所述电子设备的系统不稳定,所述方法还包括:
97.判断是否通过所述电子设备的系统进行系统调频;
98.若是,则通过所述电子设备的系统进行系统调频;
99.若否,则进行缓冲调频,其中,所述缓冲调频包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。
100.在一些实施例中,所述判断是否通过所述电子设备的系统进行系统调频,包括:
101.若所述帧率差的绝对值大于或等于第二预设帧率差阈值,则确定通过所述电子设备的系统进行系统调频;
102.若所述帧率差的绝对值小于第二预设帧率差阈值,则确定不通过所述电子设备的系统进行系统调频,其中,所述第二预设帧率差阈值大于所述第一预设帧率差阈值。
103.在一些实施例中,频点调整单元,具体用于:
104.基于至少一个模块的预设频点组合集合,确定满足所述调整后的时间约束的第一频点组合集合;
105.根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于调整后的时间约束,并且功耗最小;
106.将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
107.在一些实施例中,所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个。
108.第三方面,本发明实施例提供一种电子设备,包括:
109.至少一个处理器;和
110.与所述至少一个处理器通信连接的存储器;其中,
111.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的调频方法。
112.第四方面,本发明实施例提供一种计算机可读存储介质,包括计算机程序,当所述计算机程序在计算机或处理器上运行时,使得所述计算机或处理器执行上述的调频方法。
113.本发明实施例的有益效果是:区别于现有技术的情况下,本发明实施例提供的一种调频方法,应用于电子设备,所述方法包括:根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。一方面,通过比较平均帧率与期望帧率来调整当前帧的初始时间约束,能够更好地确定初始时间约束,另一方面,通过调整后的时间约束,确定最佳频点组合,本发明能够提高局域性能,节省功耗。
附图说明
114.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除
非有特别申明,附图中的图不构成比例限制。
115.图1是本发明实施例提供的一种调频系统的结构示意图;
116.图2是本发明实施例提供的一种强化学习模型的示意图;
117.图3是本发明实施例提供的一种基于强化学习的改进模型的示意图;
118.图4是本发明实施例提供的一种调频方法的流程示意图;
119.图5是图4中的步骤s20的细化流程示意图;
120.图6是本发明实施例提供的一种人工神经网络模型的示意图;
121.图7是图4中的步骤s30的细化流程图;
122.图8是本发明实施例一种切换调频方式的示意图;
123.图9是本发明实施例提供的另一种切换调频方式的示意图;
124.图10是本发明实施例提供的一种调频装置的结构示意图;
125.图11是本发明实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
126.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
127.需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
128.对本发明进行详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
129.(1)fps(frame per second,fps):每秒显示帧数fps,是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。fps是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。
130.(2)efps(expected frames per second,efps):期望帧率,每款游戏或应用程序,都有自己期望的fps(例如游戏《王者荣耀》目前即有两种efps设定可选择:30与60)。一般而言游戏或应用程序在执行时,fps等于efps;但若当前的负载过重,则fps可能小于efps,例如王者荣耀设定efps=60时,fps可能在56-60之间震荡。
131.(3)e-period(expected period、expected frame length,e-period):期望帧长,为1/efps。例如:60fps的游戏,e-period约为16.667ms。
132.(4)帧长(frame length):游戏的画面更新时间间隔,可粗估为1/fps。
133.(5)长帧(long frame):指某帧的帧长大于期望帧长(e-period)。
134.(6)短帧(short frame):指某帧的帧长小于期望帧长(e-period)。
135.(7)超长帧(very long frame):指某帧的帧长远大于e-period,例如帧长为两倍
大以上时,此时通常会让用户明显感觉到卡顿。
136.(8)掉帧(jank):当fps小于efps时,即称为掉帧。当efps与fps差距越大,亦称为fps抖动越大,此时用户会明显感觉到卡顿。
137.(9)gpu绘图api:android手机中的利用gpu画图的绘图函数库。
138.(10)绘图线程(render thread):负责绘图使用绘图函式库,因直接呼叫绘图函式,故最容易被辨识为绘图线程。
139.(11)控制线程(control thread):负载最大的线程,本身也负责叫醒绘图线程、与控制帧长,主要功能为控制帧率,间接控制绘图线程的绘图开始时间。此线程因没有直接呼叫绘图函数库,故比较难被识别出。
140.(12)运行时间(runtime):在硬件效能充沛,或游戏对性能需求不高的状况下,通常runtime小于或等于frame length。以efps=40的游戏来举例,每帧的帧长是25ms,但游戏本身可能只跑15ms,剩下的10ms会是睡眠时间。另外,绘图线程与控制线程都分别有自己不同的runtime;但帧长(frame length)当下只会有一个。
141.(13)系统调频:指手机原生内建的cpu、ddr调频策略。原本的调频策略为了通用,也通常会留一些性能的余裕,即:系统会使用比原本恰能在e-period内跑完的cpu、ddr频率,再高一点的频率来运行。
142.(14)窗口:用来统计监测线程负载的时间长短单位。
143.(15)离线(off-line)学习:即线下学习,指的是开发人员在开发时,直接分析数据,并用该数据来训练模型。在此阶段学习的好处是开发人员能大幅对模型进行优化。但若算法中使用太多的线下学习,则容易造成游戏或应用一改版,就必须要线下人员重新调整,其泛用性没有在线学习高。
144.(16)在线(on-line)学习:即线上学习,当游戏或应用在电子设备上运行时,实时做模型的训练与调整。在此过程,开发人员无法时刻紧盯、优化学习的成果。模型只能从开发人员原先规划好的步骤与流程学习。但若在线学习能得到不错的效果,则能相当泛用,使得模型不必因为游戏或应用改版,而重新回到线下训练。
145.在现有的技术方案中,各个运算资源(如:cpu、ddr、gpu、npu)频率的选择都是互相独立的。在cpu的频率选择上,不管是传统的dvfs或是后来提出的eas,大体上来说都还是利用窗口的方式来决定负载,再利用负载来决定是否提高目前的频率。在经验法则下,目前cpu频率的技术方案选择了以1.25倍效能来预防任务负载的波动。
146.在电子设备,例如智能手机中,多个器件或模块(cpu、gpu、modem)都会同时使用到双倍速率存储器(double data rate,ddr),因此ddr频率的选择依靠各个模块投票,并取最高频率者。智能手机原生的cpu、ddr调频策略为了通用,也通常会留一些性能的余裕。但具有性能余裕的同时,也代表了功耗浪费。在系统里多个器件对ddr频率投票,并取频率最高者时,某些器件可能会夸大自己需要的ddr频率,造成投票出的ddr频率偏高,导致功耗的浪费。
147.另外,原生ddr的频率选择和cpu的频率选择是互相独立的。但其实ddr频率与cpu频率存在着某种偶合关系:在某些时刻,“低频率ddr与高频率cpu”与“高频率ddr与低频率cpu”,可能都能让游戏不掉帧;但两者比较之下,可能前者较能节省到功耗(依实际测量出来决定),因此单纯对cpu频率或ddr频率进行调整,容易导致功耗的浪费。
148.基于上述问题,本发明实施例提出一种调频方法,在不掉帧的前提下,实现最低功耗的至少一个模块的最佳频点组合。
149.具体地,下面以电子设备为智能手机为例对本发明实施例作具体阐述。
150.请参阅图1,图1是本发明实施例提供的调频系统的结构示意图;
151.如图1所示,该调频系统100,应用于电子设备,例如智能手机,该调频系统为所述电子设备的硬件系统架构,该调频系统100包括:中央处理单元110、图形处理单元120、存储器130、神经网络处理单元140、总线150以及硬件加速器160。
152.可以理解的是,所示调频系统100可以包括在一个或多个芯片中,从而形成一个电子系统。该系统可位于一个电子设备中,该电子设备可以是无线终端、有线终端、用户设备或无连接设备。例如,该电子设备可以是智能手机、个人计算机、平板电脑或游戏机等。
153.其中,所示的中央处理单元110,即(central processing unit,cpu),通过总线150与图形处理单元120、存储器130、神经网络处理单元140以及硬件加速器160连接。
154.其中,所示的图形处理单元120,即(graphics processing unit,gpu),通过总线150与中央处理单元110、存储器130、神经网络处理单元140以及硬件加速器160连接。
155.其中,所示的存储器130例如可以是ddr存储器,该存储器130可以用于存储调频系统100的程序代码和数据。存储器130通过总线150与中央处理单元110、图形处理单元120以及神经网络处理单元140连接。
156.其中,所示的神经网络处理单元140,即(network process units,npu),通过总线150与中央处理单元110、图形处理单元120、存储器130以及硬件加速器160连接。
157.可以理解的是,总线150可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等任一类型总线。所述总线150可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
158.其中,中央处理单元110、图形处理单元120以及神经网络处理单元140可以用于处理图像,中央处理单元110、图形处理单元120以及神经网络处理单元140可以为一个芯片上,并通过用于与所述芯片外部耦合的接口读取存储器130中存储的软件代码来实现相应的功能。该软件代码经由接口和总线150从存储器130被读入芯片内部并被中央处理单元110、图形处理单元120或神经网络处理单元140的至少一个使用。
159.其中,所示的硬件加速器160,通过总线150与中央处理单元110、图形处理单元120、存储器130以及神经网络处理单元140连接。该硬件加速器160可以包括专用集成电路(application-specific integrated circuit,asic)),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
160.下面结合图1所示的调频系统100,以电子设备为智能手机为例进行详细阐述。
161.请参阅图2,图2是本发明实施例提供的一种强化学习模型的示意图;
162.如图2所示,该强化学习模型20,包括:agent21以及environment22。
163.其中,图示的environment22,即智能手机的内部环境,图示的agent21,即智能体,agent是必须经由学习的模型,agent通过接收state,即负载状态,从而做出action,即行
动,所述action为至少一个模块的频点组合,图2中以所述至少一个模块包括cpu和ddr,所述频点组合为cpu frequency和ddr frequency,即cpu频率和ddr频率。
164.其中,所述state,即状态,本发明实施例中的状态指的是负载状态,图2中的状态包括处理当前帧所需要的指令数(instructions)、数据缓存缺失所发生的次数(cache miss)以及使用率(util),其中,该cache miss包括一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数,该util包括cpu使用率、gpu使用率以及npu使用率。
165.在本发明实施例中,所述负载状态还可以包括cpu频率、cpu频率、gpu频率、ddr频率、网络速度以及温度等电子设备的内部信息,即所述负载状态包括处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个。
166.如图2所示,environment将state,所述environment将所述state发送到agent,agent通过接收state,从而生成action,即推荐environment一组频点组合。在电子设备的系统,例如手机系统在以所述频点组合运行后,所跑出来的结果(如游戏是否因此而掉帧、是否因此而比之前节省更多功耗)会以reward(奖励)的形式传回给agent。
167.其中,该reward可能设计的方式包括:当游戏掉帧时,给予-1。当游戏没掉帧,且频率低于手机系统推荐的频率时,给予该频率的差当成reward(正面的奖励)。当游戏没掉帧,但与系统选的频率相等时,给予0。
168.本发明将所述强化学习模型称为model free模型,其中,所述model free模型的agent,通常必须用到强化学习中的tabular solution,比如monte carlo:
169.一开始的一段时间必须用随机试错的方式,尝试各种不同的频点组合,并将其结果记录到第一表格中,所述第一表格为一种高维度表格,所述第一表格包括每种state(si)与采取不同的action(aj)最后得到的reward。
170.在deploy期间,即配置频点组合期间,当发生state=si时,通过在该表格中寻找当si发生时,能得到最高报酬的action(ai*)。最终得到模型认为最好的cpu、ddr频率(i*,j*),此时的作法称为exploit。
171.其中,在deploy期间,有时可能因游戏场景改变,而改变了潜在最佳的action,因此必须有一个微小的机率来尝试其它action是否会得到更高的reward。此时的做法称为随机试错(explore)。
172.可以理解的是,由于表格是离散且个数有限的,但许多系统的状态是连续的,因此必须把这些系统的状态切分文件位。例如:instructions的值域是[0,1e10],可以根据处理当前帧所需要的指令数(instructions),确定不同的负载档位,以方便建立所述第一表格:
[0173]
由于计算量不高,所述model free模型可以在线学习,由于是在线学习,因此可以不受运算芯片、游戏的影响。但是,在学习过程中,因为随机试错(explore)的关系,可能会导致掉帧明显、降低使用者体验。
[0174]
综上所述,若要克服上述缺点,则必须改为线下学习。但线下学习必须针对不同运算芯片、游戏、应用程序等,都必须有自己的model(即:高维度表格)。且游戏更新时,也必须跟着变更model。对于手机商来说,如果没有实时确定游戏或应用程序的更新信息,则可能
影响用户体验。且因为要线下针对不同游戏、不同运算芯片训练不同模型,必须花费庞大的人力资源。
[0175]
承上,不论是在线或线下学习,都有其局限性。故本发明另外提出了以下的基于强化学习的改进模型,即model based模型,来避免上述的缺点。
[0176]
请参阅图3,图3是本发明实施例提供的一种基于强化学习的改进模型的示意图;
[0177]
如图3所示,该基于强化学习的改进模型30,包括:
[0178]
agent31,即智能体;
[0179]
environment32,即智能手机的内部环境;
[0180]
负载预测模型33,所述负载预测模型用于获取当前帧之前的至少一帧的负载状态,并根据当前帧之前的至少一帧的负载状态,确定当前帧的预测负载。
[0181]
性能模型34,所述性能模型用于接收负载预测单元发送的预测负载,并根据所述预测负载,基于至少一个模块的预设频点组合集合,预估当前线程基于至少一个模块的每一预设频点组合运行所需的运行时间tij。
[0182]
功耗模型35,所述功耗模型用于接收所述性能模型发送的运行时间,并根据所述运行时间和至少一个功耗特征,确定当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗pij。
[0183]
optimizer36,即优化器,所述优化器用于根据所述初始时间约束、运行时间以及功耗,确定所述至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合,其中,所述最佳频点组合满足不掉帧的前提下的最小功耗。
[0184]
在deploy时,即配置频点组合时,整体流程为:
[0185]
environment32将当前帧的之前的至少一帧的系统状态,即负载状态发送到agent31与负载预测模型33。
[0186]
负载预测模型33根据所述负载状态,生成预测负载,将其预测的负载输出给性能模型。其预测的负载包括处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
[0187]
性能模型34获取负载预测模型33预测出来的预测负载,估计当前线程的运行时间,例如游戏线程的运行时间runtime(tij)。其中tij代表通过至少一个模块的频点组合执行当前线程后的运行时间,例如:使用cpu频率i与ddr频率j执行游戏线程后的runtime。
[0188]
功耗模型35的输入为性能模型34发送的当前线程的运行时间tij和至少一个功耗特征,其中,所述功耗特征包括帧长、cpu频率、gpu频率、ddr频率、npu频率、温度、电量中的至少一个,所述功耗模型的输出为当前线程基于所述至少一个模块的每一预设频点组合运行所产生的功耗pij,例如使用cpu频率i与ddr频率j执行游戏线程所需的功耗。
[0189]
optimizer36的输入为至少一个模块的预设频点组合集合的全部频点组合的tij、pij,例如:cpu、ddr的所有排列组合的tij、pij。
[0190]
optimizer从agent获得时间约束tc(time constraint,tc),并计算在不使游戏掉帧的情况下,功耗最小的至少一个模块对应的最佳频点组合,例如cpu、ddr频点组合(i*,j*)。
[0191]
其中,电子设备的系统,例如手机系统使用上述的最佳频点组合(i*,j*)执行一帧的游戏,并将运行结果(帧长、是否掉帧、温度、电流

等系统状态)反馈给agent,并让agent调整系统状态,即负载状态,以便下一帧能更准确的得到合理的时间约束tc。
[0192]
在本发明实施例中,所述智能体agent包括一时间约束模型(time constraint模型),其中,该时间约束模型与优化器(optimizer)、手机系统构成一个强化学习机制:
[0193]
agent观察手机的状态(如:前几帧的instructions、cache miss、cpu频率、ddr频率、gpu频率、温度、电流),采取action(输出tc,或修改前一刻的tc后输出)。optimizer依造该tc,选出合适的频点组合,例如cpu频率与ddr频率,并推荐该频点组合给手机系统,使得手机系统在当前帧使用所述频点组合来运行。
[0194]
在当前帧结束时(即下一帧的开始时),可以知道以所述频点组合来运行是否掉帧,并将是否掉帧反馈给agent。agent接受反馈,调整系统状态后,再重复步骤,如此不断循环。
[0195]
其中,所述时间约束模型包括蒙特卡罗方法(monte carlo method)等统计方法构造的模型,也可能是使用人工神经网络模型(artificial neural networks)等。
[0196]
其中,所述优化器optimizer在得到合适的tc后,将通过公式(1)求解以下的约束优化(constraint optimization):
[0197]
arg min p
ij s.t.t
ij
≤tc
ꢀꢀ
公式(1)
[0198]
其中:
[0199]
i,j表示以cpu频率i和ddr频率j来运行游戏;
[0200]
pij表示以cpu频率i与ddr频率j来运行游戏时,所产生的功耗;
[0201]
tij表示以cpu频率i与ddr频率j来运行游戏时,所需要的运行时间runtime。
[0202]
可以理解的是,上式(1)相当于求解在满足不掉帧的条件下,功耗较小的cpu、ddr频点组合;
[0203]
从上式可看出,增加或减少tc,会改变能选的到的cpu、ddr频点。当tc越大,则满足该时间约束的tij越多,越低频率的cpu、ddr频点越可能被选择,因此,能节省越多的功耗。可以理解的是,增加tc可建议手机系统使用较低频的cpu、ddr,可视为建议手机系统减速;反之,减少tc则可视为对手机系统加速。
[0204]
由于必须统计一段够长的时间(例如:半秒或一秒)的帧率或者纪录够长时间的帧长,才能精准地知道系统的长期趋势,以对系统加速或减速。但是在游戏中,可能会遇到需要局域(几帧内)加、减速的情况。在发生此状况时,可能无法有效响应局域的变化,造成局域性能不足或者无法节省更多功耗。
[0205]
若时间约束tc的初值若由前几帧的运行时间或由线下的经验得到,则在介入系统调频的时候,容易造成帧率不稳定(初值太大);或功耗浪费(初值太小)。
[0206]
由于efps可能由游戏提供的接口得到;但在游戏没有提供efps的情况下,则可能由平均的帧率反推efps,或者线下针对每款游戏写下其可能存在的efps候选清单,例如:《王者荣耀》有30、60两种efps,则可能由平均帧率寻找最接近的efps。但很有可能游戏因为局部负载过重,而从高帧率(例如:60fps)掉到靠近低帧率(例如:32fps),而让系统误判为efps=30,造成之后cpu、ddr都选到较低的频点。此现象甚至会影响到后来的帧率:因为即使随后负载恢复正常,但因为游戏仍以efps=30为目标,造成仍选择以较低的cpu、ddr频
点。最终造成游戏难以恢复成60fps。
[0207]
同时,在切换场景,例如:从游戏从加载页面进入到战斗页面,或者用户切换efps时,都可能让帧率失准,或者在一些复杂、多变、超乎开发者想象的情境下,可能因为帧率失准而影响用户体验。
[0208]
基于此,本发明提出一种调频方法,解决局域性能不足,浪费功耗的技术问题。
[0209]
具体的,请参阅图4,图4是本发明实施例提供的一种调频方法的流程示意图;
[0210]
如图4所示,该调频方法,应用于电子设备,所述方法包括:
[0211]
步骤s10:根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;
[0212]
具体的,所述第一连续帧为当前帧之前的若干帧,通过获取当前帧之前的若干帧的每一帧的帧长,确定所述第一连续帧中的每一帧的帧长,根据所述第一连续帧中的每一帧的帧长,确定所述第一连续帧中的每一帧的帧率,计算所述第一连续帧的平均帧率,其中,所述第一连续帧的平均帧率为所述第一连续帧中的每一帧的帧率的平均值。
[0213]
其中,所述第一连续帧包括至少两帧,可以理解的是,在每帧采取改动时间约束tc的action时,将前几帧的帧率(以下称为“小窗口”)一同纳入考虑是否做局域加减速。由于多线程游戏会有长短帧的现象。,例如游戏可能会出现一帧长帧,接下来配一帧短帧的结果。但因为长短互补的缘故,整体而言可能不会造成掉帧的状况。故在选择小窗口需要包含多少帧的信息时,必须是偶数帧。且当小窗口包含太少帧,可能会无法让长短帧互补(长短帧不会是规律的一长一短,亦有可能是三长二短等不规则变化);小窗口若包含太多帧,则可能无法及时反应短期的负载变化。
[0214]
可以理解的是,大窗口大约经过1秒更新一次tc,大窗口并非移动式窗口,举例来说:0s-1s为第一个大窗口,此时会判断是否加减速。1s-2s为第二个大窗口,此时也会判断是否加减速。小窗口则是移动式窗口,每帧都会判断是否加减速。虽然累积一秒的信息,能准确知道tc应该要加、减速;但无法响应局域的负载,所以此处提出了小窗口判断加减速。大窗口在加、减速的步伐,也与小窗口不同。大窗口可能是(
±
1.0),而小窗口可能是(
±
0.2)。也就是说,长期的趋势由大窗口决定,而小窗口负责局域的修正。
[0215]
步骤s20:比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;
[0216]
具体的,请再参阅图5,图5是图4中的步骤s20的细化流程示意图;
[0217]
如图5所示,该步骤s20:比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束,包括:
[0218]
步骤s21:判断所述第一连续帧的平均帧率是否大于期望帧率;
[0219]
在比较所述第一连续帧的平均帧率与期望帧率之前,所述方法还包括:
[0220]
确定所述期望帧率。
[0221]
具体的,所述确定所述期望帧率,包括:
[0222]
确定第一期望帧率和初始期望帧率;
[0223]
具体的,所述第一期望帧率为经过调整后的帧率,所述初始期望帧率为未经过调整的原始帧率,其中,帧率的调整方式包括由游戏提供相关的接口获取,或者由平均帧率获取,或者,统计预设时间段内的每一时间片段的期望帧率,根据所述预设时间段内的每一时
间片段的期望帧率,确定所述第一期望帧率,其中,所述预设时间段内的每一时间片段的长度相等,根据所述预设时间段内的每一时间片段的期望帧率,确定所述第一期望帧率,包括:通过计算每一时间片段的期望帧率的平均值,将所述平均值作为所述第一期望帧率。
[0224]
若所述第一期望帧率小于所述初始期望帧率,则根据当前帧的负载状态,确定所述期望帧率。
[0225]
具体的,所述根据当前帧的负载状态,确定所述期望帧率,包括:
[0226]
判断当前帧的负载状态是否大于预设负载阈值;
[0227]
若当前帧的负载状态大于预设负载阈值,则将所述初始期望帧率确定为期望帧率;
[0228]
若当前帧的负载状态小于或等于预设负载阈值,则将所述第一期望帧率确定为期望帧率。
[0229]
由于用户可能会调整当前线程的帧率,使得帧率下降,或者,由于局域负载重而导致帧率下降,因此,当所述第一期望帧率小于所述初始期望帧率时,进一步判断当前帧的负载状态,当确定当前帧的负载状态大于预设负载阈值时,则将所述初始期望帧率确定为期望帧率,相当于保持原先的期望帧率,此时确定为由于局域负载重而导致帧率下降;
[0230]
当确定当前帧的负载状态小于或等于预设负载阈值,则将所述第一期望帧率确定为期望帧率,此时可以确定为由于用户调整当前线程的帧率,使得帧率下降,因此此时可以通过所述第一期望帧率替换原先的期望帧率。
[0231]
其中,若所述负载状态为处理当前帧所需要的指令数,则所述预设负载阈值为预设指令数阈值,所述判断所述负载状态是否大于预设负载阈值,包括:
[0232]
判断处理当前帧所需要的指令数是否大于预设指令数阈值;若是,则确定所述负载状态大于预设负载阈值;若否,则确定所述负载状态小于或等于预设负载阈值。其中,所述当前帧所需要的指令数包括绘图线程(render thread)与控制线程(control thread)的指令数,所述预设指令数阈值为所述绘图线程(render thread)与控制线程(control thread)的指令数的平均值。
[0233]
在本发明实施例中,确定负载状态还包括根据当前帧的中央处理单元的使用率来确定,即cpu使用率,若所述cpu使用率大于预设使用率阈值,则确定所述负载状态为负载重,若所述cpu使用率小于预设使用率阈值,则确定所述负载状态为负载轻。
[0234]
步骤s22:增加当前帧的初始时间约束,以生成调整后的时间约束;
[0235]
具体的,在调整当前帧的初始时间约束之前,所述方法还包括:确定当前帧的初始时间约束。
[0236]
具体的,所述确定当前帧的初始时间约束,包括:
[0237]
根据当前帧之前的至少一帧的绘图线程的运行时间确定所述初始时间约束,或者,根据当前帧对应的应用程序的经验值确定所述初始时间约束。
[0238]
具体的,所述确定当前帧的初始时间约束,还包括:
[0239]
根据当前帧的前一帧的至少一个模块的频点组合,结合当前帧的前一帧的负载状态,计算当前帧的前一帧的合理时间约束,将当前帧的前一帧的合理时间约束确定为当前帧的初始时间约束。
[0240]
具体的,通过当前帧的前一帧的至少一个模块的频点组合,结合当前帧的前一帧
的负载状态,逆推当前帧的前一帧的合理时间约束,其中,所述计算当前帧的前一帧的合理时间约束由智能体agent完成,具体的,由智能体agent的时间约束模型(time constraint模型)完成,或者,通过多种人工神经网络模型完成,包括:卷积神经网络模型(convolution neural networks,cnn)、长短期记忆网络模型(long short term memory,lstm)、全连接神经网络(fully-connected neural networks,fc)等。可以理解的是,性能模型用于逆推当前帧的前一帧的合理时间约束,前一帧系统所使用的cpu、ddr频点组合为已知的,并且前一帧系统的负载(也就是性能模型的输入)也是已知的,因此,可以通过性能模型得到tc。
[0241]
具体的,请再参阅图6,图6是本发明实施例提供的一种人工神经网络模型的示意图;
[0242]
如图6所示,该人工神经网络模型包括卷积神经网络模型(convolution neural networks,cnn)以及长短期记忆网络模型(long short term memory,lstm),
[0243]
其中,cnn的输入是序列数据,以每帧的帧长为例,所述cnn的输入包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个。
[0244]
在时间为t时,将数帧的帧长输入cnn中获取局域信息,所述局域信息包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个,随后再将该局域信息送入lstm,并输出当前帧的tc或tc增减值,即

tc。
[0245]
在时间为t+1时,同样将数帧的帧长输入cnn中获取局域信息。随后再将该局域信息送入lstm。可以理解的是,lstm会保留之前的记忆,即之前的系统状态,即负载状态,并将负载状态state送到下一帧,该负载状态state用于保留长期tc的趋势。通过将负载状态state送到下一帧,智能体agent既能在长期的趋势下,判断时间约束tc的走势;亦具有响应短期变化的能力。
[0246]
步骤s23:减少当前帧的初始时间约束,以生成调整后的时间约束;
[0247]
在本发明实施例中,通过计算当前帧之前的若干帧的平均帧率与期望帧率的大小,确定是否进行局域加减速,可以有效实现局域内的及时响应。
[0248]
在本发明实施例中,所述调整当前帧的初始时间约束,还包括:
[0249]
计算当前帧之前的至少一帧的帧长余额,根据所述帧长余额,确定是否调整当前帧的初始时间约束,若所述帧长余额大于0,则增加所述当前帧的初始时间约束,若所述帧长余额小于0,则减少所述当前帧的初始时间约束。
[0250]
具体的,所述帧长余额的计算方式如下方公式(1):
[0251][0252]
其中,q表示的是帧长余额quota;
[0253]
n代表的是当前帧之前的若干帧的帧数,即小窗口的大小;
[0254]
fi代表第i个帧的帧长;
[0255]
其中,若q>0,则试探性地增大当前帧的初始时间约束;若q<0,则减少所述当前
帧的初始时间约束,以对系统进行加速。
[0256]
在本发明实施例中,所述比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束,包括:
[0257]
判断所述第一连续帧的平均帧率是否大于期望帧率;
[0258]
若所述第一连续帧的平均帧率大于期望帧率,则增加当前帧的初始时间约束,以生成调整后的时间约束;
[0259]
若所述第一连续帧的平均帧率小于期望帧率,则减少当前帧的初始时间约束,以生成调整后的时间约束。
[0260]
步骤s30:根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
[0261]
请再参阅图7,图7是图4中的步骤s30的细化流程图;
[0262]
如图7所示,该步骤s30:根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,包括:
[0263]
步骤s31:基于至少一个模块的预设频点组合集合,确定满足所述调整后的时间约束的第一频点组合集合;
[0264]
具体的,所述满足所述调整后的时间约束指的是基于预设频点组合运行当前帧的运行时间小于所述调整后的时间约束,通过动态调整所述调整后的时间约束,例如:增加或减少所述调整后的时间约束,确定更新后的时间约束,基于更新后的时间约束,从所述至少一个模块的预设频点组合集合中获取满足所述更新后的时间约束的第一频点组合集合。
[0265]
步骤s32:根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于调整后的时间约束,并且功耗最小;
[0266]
具体的,所述第一频点组合集合为满足所述调整后的时间约束的多个频点组合,通过预设条件对所述第一频点组合集合进行筛选,确定最佳频点组合。其中,所述预设条件包括所述运行时间小于或等于初始时间约束,并且功耗最小,相当于从所述第一频点组合集合中筛选运行时间小于或等于调整后的时间约束,并且功耗最小的频点组合,并将其确定为最佳频点组合。
[0267]
步骤s33:将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
[0268]
具体的,将所述第一频点组合集合中筛选运行时间小于或等于调整后的时间约束,并且功耗最小的频点组合,确定为所述至少一个模块对应的最佳频点组合,并将所述最佳频点组合推荐给电子设备的系统,例如手机系统,以使所述手机系统基于所述最佳频点组合运行当前帧。
[0269]
在本发明实施例中,所述方法还包括:
[0270]
判断所述电子设备的系统是否稳定;
[0271]
若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
[0272]
若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
[0273]
在本发明实施例中,所述判断所述电子设备的系统是否稳定,包括:
[0274]
根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
[0275]
计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
[0276]
若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
[0277]
若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳定。
[0278]
在本发明实施例中,若所述电子设备的系统不稳定,所述方法还包括:
[0279]
判断是否通过所述电子设备的系统进行系统调频;
[0280]
若是,则通过所述电子设备的系统进行系统调频;
[0281]
若否,则进行缓冲调频,其中,所述缓冲调频包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。其中,前一帧的合理时间约束是由前一帧系统建议的频率换算得到的,由于此时智能体agent提出的tc已经不可靠,所以半学习阶段根据参考前一帧系统调频的方法所选出的频率,并经过性能模型换算出等效的tc’,所述优化器optimizer以此来选出当前帧的各模块的频率。
[0282]
在本发明实施例中,所述判断是否通过所述电子设备的系统进行系统调频,包括:
[0283]
若所述帧率差的绝对值大于或等于第二预设帧率差阈值,则确定通过所述电子设备的系统进行系统调频;
[0284]
若所述帧率差的绝对值小于第二预设帧率差阈值,则确定不通过所述电子设备的系统进行系统调频,其中,所述第二预设帧率差阈值大于所述第一预设帧率差阈值。
[0285]
可以理解的是,进入半学习阶段(缓冲调频)的阈值一般小于进入学习阶段(系统调频)的阈值。
[0286]
在本发明实施例中,所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个。
[0287]
具体的,请再参阅图8,图8是本发明实施例一种切换调频方式的示意图;
[0288]
由于原生的系统调频机制不能针对游戏或应用程序进行功耗优化,但是系统调频的泛化能力较好,因此,本发明通过在处理每帧时都判断目前电子设备的系统是否稳定,从而确定调频方式,以适应环境的变化。
[0289]
如图8所示,该切换调频方式,包括:
[0290]
步骤s801:强化学习调频;
[0291]
具体的,所述强化学习调频,为学习阶段(learning stage),其包括:
[0292]
根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
[0293]
可以理解的是,所述强化学习调频基于本发明提出的强化学习模型或基于强化学习的改进模型。
[0294]
步骤s802:判断所述电子设备的系统是否稳定;
[0295]
具体的,所述判断所述电子设备的系统是否稳定,包括:
[0296]
根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧
率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
[0297]
计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
[0298]
若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
[0299]
若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳定。
[0300]
其中,由于系统的稳定性更多体现在一段时间内的稳定,因此,在判断系统稳定时,需要比第一连续帧,即小窗口更多的帧来确定,但是,为了提高速度,其帧数也不能过多,因此其帧数必须小于大窗口,其中,所述大窗口包括预设时间段内的第三连续帧,因此,所述第二连续帧的帧数大于所述第一连续帧的帧数,且所述第二连续帧的帧数小于所述第三连续帧的帧数,并且,所述第二连续帧的帧数被设置为所述第一连续帧的预设倍数,所述预设倍数处于1.5-3倍的区间范围,所述第二连续帧在本发明中被视为中窗口,中窗口的帧数大于小窗口,但小于大窗口。可以理解的是,不同游戏或应用程序的第二连续帧(中窗口)的大小可能不同。
[0301]
通过计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值,与第一预设帧率差阈值进行比较,反映所述第二连续帧的波动程度,从而能够确定所述系统是否稳定,若所述电子设备的系统不稳定,则进入步骤s803;若所述电子设备的系统稳定,则返回步骤s801。
[0302]
步骤s803:判断是否通过所述电子设备的系统进行系统调频;
[0303]
其中,若所述电子设备的系统不稳定,则进一步判断是否通过所述电子设备的系统进行系统调频。
[0304]
具体的,所述判断是否通过所述电子设备的系统进行系统调频,包括:
[0305]
若所述帧率差的绝对值大于或等于第二预设帧率差阈值,则确定通过所述电子设备的系统进行系统调频;
[0306]
若所述帧率差的绝对值小于第二预设帧率差阈值,则确定不通过所述电子设备的系统进行系统调频,其中,所述第二预设帧率差阈值大于所述第一预设帧率差阈值。
[0307]
可以理解的是,所述第二预设帧率差阈值大于所述第一预设帧率差阈值,当所述帧率差的绝对值大于或等于第二预设帧率差阈值,可以视为系统的环境较为复杂,此时需要通过系统调频的方式来应对复杂环境,以使帧率更为稳定。
[0308]
步骤s804:系统调频;
[0309]
具体的,通过原生的系统调频机制进行调频。
[0310]
步骤s805:缓冲调频;
[0311]
具体的,所述缓冲调频,指的是强化学习调频与系统调频之间的一种处理方式,其通过半学习阶段当做缓冲,以平衡系统调频与强化学习调频之间的切换造成的功耗损失。
[0312]
其中,所述缓冲调频包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。
[0313]
具体的,通过计算当前帧的前一帧的合理时间约束,将当前帧的前一帧的合理时间约束确定为当前帧的初始时间约束,并根据当前帧的前一帧的合理时间约束,确定所述
至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合,以使所述系统基于所述建议频点组合运行当前帧。
[0314]
通过缓冲调频的方式,本发明能够降低系统调频与强化学习调频之间的切换造成的不必要的功耗损失,以节省功耗。
[0315]
请再参阅图9,图9是本发明实施例提供的另一种切换调频方式的示意图;
[0316]
如图9所示,该切换调频方式,包括:
[0317]
步骤s901:强化学习调频;
[0318]
步骤s902:判断所述电子设备的系统是否稳定;
[0319]
其中,所述电子设备包括一稳定判断模型,所述稳定判断模型用于判断所述电子设备的系统是否稳定,其中,所述稳定判断模型包括多种判断方法,例如:统计方法。
[0320]
具体的,所述判断所述电子设备的系统是否稳定,包括:
[0321]
根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
[0322]
计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
[0323]
若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
[0324]
若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳定。
[0325]
具体的,所述判断所述电子设备的系统是否稳定,还包括:
[0326]
根据上述的帧长余额quota,若所述帧长余额quota<0,并且,所述帧长余额小于预设余额阈值,则确定所述电子设备的系统不稳定。
[0327]
具体的,所述判断所述电子设备的系统是否稳定,还包括:
[0328]
将所述第二连续帧(即中窗口)划分为若干个时间片段,统计所述第二连续帧内的每一时间片段的平均帧率;
[0329]
比较每一时间片段的平均帧率与期望帧率,确定每一时间片段的稳定状态,所述稳定状态包括稳定或不稳定,若所述平均帧率与期望帧率的差值在预设范围内,则确定该时间片段的稳定状态为稳定,否则确定该时间片段的稳定状态为不稳定;
[0330]
统计第二连续帧内的每一稳定状态的数量,根据第二连续帧内的每一稳定状态的数量,确定所述电子设备的系统是否稳定,若所述第二连续帧内的稳定状态为稳定的数量大于所述稳定状态为不稳定的数量,则确定所述电子设备的系统稳定,否则,确定所述电子设备的系统不稳定。
[0331]
具体的,所述判断所述电子设备的系统是否稳定,还包括:
[0332]
判断是否出现用户调整期望帧率,若出现,则确定所述电子设备的系统不稳定,其中,所述用户通过期望帧率表来调整期望帧率,例如所述期望帧率表包括30fps、60fps、90fps。
[0333]
步骤s903:判断是否进入半学习阶段;
[0334]
在本发明实施例中,所述电子设备还包括一阶段判断模型,所述阶段判断模型为一强化学习系统,所述强化学习系统的输入为负载状态,包括多个判断系统稳定性的特征,例如:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所
发生的次数、三级数据缓存缺失所发生的次数、cpu频率、cpu使用率、gpu频率、gpu使用率、ddr频率、npu频率、npu使用率、网络速度、温度中的至少一个;
[0335]
其中,所述强化学习系统中的模型包括:蒙特卡罗方法(monte carlo method)等统计方法构造的模型,也可能是使用人工神经网络模型(artificial neural networks)等。
[0336]
当所述阶段判断模型判断系统进入半学习阶段后,且在一段时间之后系统趋于稳定,则给所述阶段判断模型反馈正的reward;当所述阶段判断模型判断系统进入半学习阶段后,且在一段时间之后,系统仍然处于不稳定,则必须强制系统进入学习阶段,即给所述阶段判断模型反馈负的reward。
[0337]
具体的,所述判断是否进入半学习阶段,包括:
[0338]
若确定所述电子设备的系统不稳定,并且,确定不通过所述电子设备的系统进行系统调频,此时进入半学习阶段。
[0339]
步骤s904:半学习阶段;
[0340]
具体的,所述半学习阶段,指的是上述的缓冲调频,包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。
[0341]
可以理解的是,当进入半学习阶段之后,在一段时间之后,进一步判断所述电子设备的系统是否稳定,若系统变得稳定,则返回步骤s901:强化学习调频;若系统还是不稳定,则进入步骤s906:学习阶段;
[0342]
步骤s905:判断所述电子设备的系统是否稳定;
[0343]
步骤s906:学习阶段;
[0344]
具体的,所述学习阶段,指的是以系统调频的方式进行调频的阶段,在此阶段,强化学习调频的方式不发挥作用,只依赖系统原生的调频机制进行调频,以使系统变得稳定。
[0345]
步骤s907:判断所述电子设备的系统是否稳定;
[0346]
当进入学习阶段之后,在一段时间之后,进一步判断所述电子设备的系统是否稳定,若是,则返回步骤s901:强化学习调频;若否,则继续留在学习阶段;
[0347]
在本发明实施例中,通过在强化学习调频与系统调频之间加入缓冲调频,能够避免强化学习调频与系统调频之间切换造成不必要的功耗浪费,以节省功耗。
[0348]
在本发明实施例中,通过提供一种调频方法,应用于电子设备,所述方法包括:根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。一方面,通过比较平均帧率与期望帧率来调整当前帧的初始时间约束,能够更好地确定初始时间约束,另一方面,通过调整后的时间约束,确定最佳频点组合,本发明能够提高局域性能,节省功耗。
[0349]
请再参阅图10,图10是本发明实施例提供的一种调频装置的结构示意图;
[0350]
如图10所示,该调频装置10,应用于电子设备,所述调频装置10包括:
[0351]
平均帧率单元101,用于根据当前帧之前的第一连续帧中的每一帧的帧长,计算所
述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;
[0352]
时间约束单元102,连接所述平均帧率单元,用于比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;
[0353]
频点调整单元103,连接所述时间约束单元,用于根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
[0354]
在本发明实施例中,所述时间约束单元,包括:
[0355]
期望帧率模块,用于确定所述期望帧率。
[0356]
在本发明实施例中,所述期望帧率模块,具体用于:
[0357]
确定第一期望帧率和初始期望帧率;
[0358]
若所述第一期望帧率小于所述初始期望帧率,则根据当前帧的负载状态,确定所述期望帧率。
[0359]
在本发明实施例中,所述负载状态包括:处理当前帧所需要的指令数、一级数据缓存缺失所发生的次数、二级数据缓存缺失所发生的次数、三级数据缓存缺失所发生的次数、cpu使用率、gpu使用率中的至少一个。
[0360]
在本发明实施例中,所述期望帧率模块,具体用于:
[0361]
判断当前帧的负载状态是否大于预设负载阈值;
[0362]
若当前帧的负载状态大于预设负载阈值,则将所述初始期望帧率确定为期望帧率;
[0363]
若当前帧的负载状态小于或等于预设负载阈值,则将所述第一期望帧率确定为期望帧率。
[0364]
在本发明实施例中,若所述负载状态为处理当前帧所需要的指令数,则所述预设负载阈值为预设指令数阈值,所述判断所述负载状态是否大于预设负载阈值,包括:
[0365]
判断处理当前帧所需要的指令数是否大于预设指令数阈值;
[0366]
若是,则确定所述负载状态大于预设负载阈值;
[0367]
若否,则确定所述负载状态小于或等于预设负载阈值。
[0368]
在本发明实施例中,所述频点调整单元,包括:
[0369]
初始时间约束模块,用于确定当前帧的初始时间约束。
[0370]
在本发明实施例中,所述初始时间约束模块,具体用于:
[0371]
根据当前帧的前一帧的至少一个模块的频点组合,结合当前帧的前一帧的负载状态,计算当前帧的前一帧的合理时间约束;
[0372]
将当前帧的前一帧的合理时间约束确定为当前帧的初始时间约束。
[0373]
在本发明实施例中,所述频点调整单元,具体用于:
[0374]
判断所述第一连续帧的平均帧率是否大于期望帧率;
[0375]
若所述第一连续帧的平均帧率大于期望帧率,则增加当前帧的初始时间约束,以生成调整后的时间约束;
[0376]
若所述第一连续帧的平均帧率小于期望帧率,则减少当前帧的初始时间约束,以生成调整后的时间约束。
[0377]
在本发明实施例中,所述初始时间约束模块,具体用于:
[0378]
判断所述电子设备的系统是否稳定;
[0379]
若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
[0380]
若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
[0381]
在本发明实施例中,所述频点调整单元,包括:
[0382]
系统稳定判断模块,用于判断所述电子设备的系统是否稳定;
[0383]
若所述电子设备的系统稳定,则根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合;
[0384]
若所述电子设备的系统不稳定,则通过所述电子设备的系统进行系统调频。
[0385]
在本发明实施例中,系统稳定判断模块,具体用于:
[0386]
根据当前帧之前的第二连续帧中的每一帧的帧长,计算所述第二连续帧的平均帧率,其中,所述第二连续帧的帧数大于所述第一连续帧的帧数;
[0387]
计算所述第二连续帧的平均帧率与所述期望帧率的帧率差的绝对值;
[0388]
若所述帧率差的绝对值大于或等于第一预设帧率差阈值,则确定所述电子设备的系统不稳定;
[0389]
若所述帧率差的绝对值小于第一预设帧率差阈值,则确定所述电子设备的系统稳定。
[0390]
在本发明实施例中,若所述电子设备的系统不稳定,所述方法还包括:
[0391]
判断是否通过所述电子设备的系统进行系统调频;
[0392]
若是,则通过所述电子设备的系统进行系统调频;
[0393]
若否,则进行缓冲调频,其中,所述缓冲调频包括:根据所述当前帧的前一帧的合理时间约束,确定所述至少一个模块对应的建议频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述建议频点组合。
[0394]
在本发明实施例中,所述判断是否通过所述电子设备的系统进行系统调频,包括:
[0395]
若所述帧率差的绝对值大于或等于第二预设帧率差阈值,则确定通过所述电子设备的系统进行系统调频;
[0396]
若所述帧率差的绝对值小于第二预设帧率差阈值,则确定不通过所述电子设备的系统进行系统调频,其中,所述第二预设帧率差阈值大于所述第一预设帧率差阈值。
[0397]
在本发明实施例中,频点调整单元,具体用于:
[0398]
基于至少一个模块的预设频点组合集合,确定满足所述调整后的时间约束的第一频点组合集合;
[0399]
根据所述第一频点组合集合,查找满足预设条件的频点组合,其中,所述预设条件包括所述运行时间小于或等于调整后的时间约束,并且功耗最小;
[0400]
将满足预设条件的频点组合确定为所述至少一个模块对应的最佳频点组合。
[0401]
在本发明实施例中,所述至少一个模块包括中央处理单元、图形处理单元、神经网络处理单元、用于存储所述当前帧的存储器中的至少一个。
[0402]
在本发明实施例中,通过提供一种调频装置,应用于电子设备,所述装置包括:平
均帧率单元,用于根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;时间约束单元,连接所述平均帧率单元,用于比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;频点调整单元,连接所述时间约束单元,用于根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。一方面,通过比较平均帧率与期望帧率来调整当前帧的初始时间约束,能够更好地确定初始时间约束,另一方面,通过调整后的时间约束,确定最佳频点组合,本发明能够提高局域性能,节省功耗。
[0403]
请参阅图11,图11为本发明各个实施例的一种电子设备的硬件结构示意图;
[0404]
如图11所示,该电子设备11包括但不限于:射频单元111、网络模块112、音频输出单元113、输入单元114、传感器115、显示单元116、用户输入单元117、接口单元118、存储器119、处理器1110、以及电源1111等部件,所述电子设备还包括摄像头。本领域技术人员可以理解,图11中示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于电视机、手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
[0405]
处理器1110,用于根据当前帧之前的第一连续帧中的每一帧的帧长,计算所述第一连续帧的平均帧率,其中,所述第一连续帧包括至少两帧;比较所述第一连续帧的平均帧率与期望帧率,调整当前帧的初始时间约束,确定调整后的时间约束;根据调整后的时间约束,确定至少一个模块对应的最佳频点组合,将所述至少一个模块处理当前帧的工作频点调整为所述至少一个模块对应的最佳频点组合。
[0406]
在本发明实施例中,一方面,通过比较平均帧率与期望帧率来调整当前帧的初始时间约束,能够更好地确定初始时间约束,另一方面,通过调整后的时间约束,确定最佳频点组合,本发明能够提高局域性能,节省功耗。
[0407]
应当理解的是,本发明实施例中,射频单元111可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器1110处理;另外,将上行的数据发送给基站。通常,射频单元111包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元111还可以通过无线通信系统与网络和其他设备通信。
[0408]
电子设备11通过网络模块112为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
[0409]
音频输出单元113可以将射频单元111或网络模块112接收的或者在存储器119中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元113还可以提供与电子设备11执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元113包括扬声器、蜂鸣器以及受话器等。
[0410]
输入单元114用于接收音频或视频信号。输入单元114可以包括图形处理器(graphics processing unit,gpu)1141和麦克风1142,图形处理器1141对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的目标图像进行处理。处理后的图像帧可以显示在显示单元116上。经图形处理器1141处理后的图像帧可以存
储在存储器119(或其它存储介质)中或者经由射频单元111或网络模块112进行发送。麦克风1142可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元111发送到移动通信基站的格式输出。
[0411]
电子设备11还包括至少一种传感器115,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1161的亮度,接近传感器可在电子设备11移动到耳边时,关闭显示面板1161和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器115还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
[0412]
显示单元116用于显示由用户输入的信息或提供给用户的信息。显示单元116可包括显示面板1161,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板1161。
[0413]
用户输入单元117可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元117包括触控面板1171以及其他输入设备1172。触控面板1171,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1171上或在触控面板1171附近的操作)。触控面板1171可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1110,接收处理器1110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1171。除了触控面板1171,用户输入单元117还可以包括其他输入设备1172。具体地,其他输入设备1172可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0414]
进一步的,触控面板1171可覆盖在显示面板1161上,当触控面板1171检测到在其上或附近的触摸操作后,传送给处理器1110以确定触摸事件的类型,随后处理器1110根据触摸事件的类型在显示面板1161上提供相应的视觉输出。虽然在图11中,触控面板1171与显示面板1161是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板1171与显示面板1161集成而实现电子设备的输入和输出功能,具体此处不做限定。
[0415]
接口单元118为外部装置与电子设备11连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元118可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备11内的一个或多个元件或者可以用于在电子设备11和外部装置之间传输数据。
[0416]
存储器119可用于存储软件程序以及各种数据。存储器119可主要包括存储程序区和存储数据区,其中,存储程序区可存储至少一个功能所需的应用程序1191(比如声音播放
功能、图像播放功能等)以及操作系统1192等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器119可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0417]
处理器1110是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器119内的软件程序和/或模块,以及调用存储在存储器119内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器1110可包括一个或多个处理单元;优选的,处理器1110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1110中。
[0418]
电子设备11还可以包括给各个部件供电的电源1111(比如电池),优选的,电源1111可以通过电源管理系统与处理器1110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0419]
另外,电子设备11包括一些未示出的功能模块,在此不再赘述。
[0420]
优选的,本发明实施例还提供一种电子设备,包括处理器1110,存储器119,存储在存储器119上并可在所述处理器1110上运行的计算机程序,该计算机程序被处理器1110执行时实现上述电池检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0421]
本发明实施例的电子设备11以多种形式存在,包括但不限于:
[0422]
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类电子设备包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。
[0423]
(2)移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类电子设备包括:pda、mid和umpc设备等,例如ipad。
[0424]
(3)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。
[0425]
(4)其他具有视频播放功能和上网功能的电子设备。
[0426]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时实现上述电池检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
[0427]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0428]
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可
以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0429]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是移动终端,个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0430]
最后应说明的是:以上结合附图描述的实施例仅用以说明本发明的技术方案,本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1