耗电统计方法、装置、电子设备及可读存储介质与流程

文档序号:31476897发布日期:2022-09-10 00:41阅读:62来源:国知局
1.本技术实施例涉及计算机
技术领域
:,尤其涉及一种耗电统计方法、装置、电子设备及可读存储介质。
背景技术
::2.在计算机
技术领域
:,续航一直都是用户最关心的电子设备指标之一。为了提高电子设备的续航能力,对电子设备中器件的耗电统计尤其重要。通过统计器件的耗电,可以实现对用户耗电提醒和异常耗电检测,进而提升电子设备的耗电能力。然而,现有的耗电统计方法的可靠性较低。技术实现要素:3.本技术实施例提供一种耗电统计方法、装置、电子设备及可读存储介质,能够解决现有耗电统计方法可靠性较低的问题。4.第一方面,本技术实施例提供了一种耗电统计方法,应用于电子设备,所述电子设备包括:第一器件,以及与所述第一器件电连接的第一功率检测器件,其中,所述第一功率检测器件用于检测所述第一器件的功率;5.所述方法包括:6.根据第一时长内所述第一功率检测器件检测到的第一功率值,获取所述第一时长内所述第一器件的第一耗电量;7.获取所述第一器件的m个进程分别对应的第一工作时长集合,得到m个第一工作时长集合,其中,第一进程对应的第一工作时长集合包括:所述第一时长内所述第一器件的所述第一进程在各频点下的工作时长,所述第一进程为所述m个进程中的任一个进程,m为正整数;8.根据所述m个第一工作时长集合和目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量,得到m个第二耗电量,其中,所述目标运行场景对应的功率集合包括:所述电子设备处于所述目标运行场景时所述第一器件工作于各频点的功率值;9.保存所述第一时长、所述第一耗电量和所述m个第二耗电量。10.第二方面,本技术实施例还提供一种耗电统计装置,应用于电子设备,所述电子设备包括:第一器件,以及与所述第一器件电连接的第一功率检测器件,其中,所述第一功率检测器件用于检测所述第一器件的功率;11.所述装置包括:12.第一获取模块,用于根据第一时长内所述第一功率检测器件检测到的第一功率值,获取所述第一时长内所述第一器件的第一耗电量;13.第二获取模块,用于获取所述第一器件的m个进程分别对应的第一工作时长集合,得到m个第一工作时长集合,其中,第一进程对应的第一工作时长集合包括:所述第一时长内所述第一器件的所述第一进程在各频点下的工作时长,所述第一进程为所述m个进程中的任一个进程,m为正整数;14.第三获取模块,用于根据所述m个第一工作时长集合和目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量,得到m个第二耗电量,其中,所述目标运行场景对应的功率集合包括:所述电子设备处于所述目标运行场景时所述第一器件工作于各频点的功率值;15.第一保存模块,用于保存所述第一时长、所述第一耗电量和所述m个第二耗电量。16.第三方面,本技术实施例还提供一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的耗电统计方法。17.第四方面,本技术实施例还提供一种可读存储介质,该可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的耗电统计方法。18.第五方面,本技术实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。19.第六方面,本技术实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。20.在本技术实施例中,一方面,可以通过第一功率检测器件检测第一器件的器件耗电;另一方面,可以通过获取第一器件内各进程在各频点下的工作时长,以及电子设备处于目标运行场景时第一器件工作于各频点的功率值,计算得到第一器件的各进程耗电,进而得到第一器件的总进程耗电。这样,通过分别获取第一器件的器件耗电和进程耗电,可以提高第一器件耗电统计的可靠性。附图说明21.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。22.图1是本技术实施例提供的第一功率检测器件的示意图;23.图2是本技术实施例提供的耗电统计方法的流程图之一;24.图3是本技术实施例提供的耗电统计的模块示意图之一;25.图4是本技术实施例提供的耗电统计方法的流程图之二;26.图5是本技术实施例提供的进程耗电统计的流程图之一;27.图6是本技术实施例提供的运行场景的耗电示意图;28.图7是本技术实施例提供的耗电统计的模块示意图之二;29.图8是本技术实施例提供的进程耗电统计的流程图之二;30.图9是本技术实施例提供的耗电统计装置的结构图;31.图10是本技术实施例提供的电子设备的结构图之一;32.图11是本技术实施例提供的电子设备的结构图之二。具体实施方式33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。34.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。35.为了方便理解,以下对本技术实施例涉及的一些内容进行说明:36.为了提高电子设备的续航水平,可以从两个维度发力。首先,通过技术手段把实际的耗电属性告诉用户,这样做可以让用户清楚自己的电量耗费在哪里,从而减轻用户对手机续航能力的怀疑情绪。在这一方面,各电子设备厂商均已推出耗电排行功能,不仅展示了各个器件的耗电详情,还进一步分解到了应用级别。在此背景下,为用户提供更加精准的器件和应用耗电度量,就显得尤为重要。其次,通过技术手段获取到用户的异常耗电行为,这种技术手段既可以在后台运行,也可以通过异常提醒的方式告诉用户。后台运行的异常耗电检测,可以包括两种处理方式:一种是把用户侧的“怀疑性异常”上报到云侧,在云侧进行统一的分类、排序,然后由技术开发人员进行异常处理。一种是把用户侧的“确定性异常”在端侧处理掉,比如,在后台处理掉不重要的进程的异常。37.通过上述分析,可以发现端侧的耗电统计是非常重要的一项技术。该技术的有效精度对用户耗电提醒和异常耗电检测都很重要。更精准的用户耗电提醒,可以避免给用户误导的信息。更精准的异常耗电检测,可以有效提升用户续航能力。38.在相关技术中,针对器件耗电,可以通过在器件供电前端增加由模拟数字转换器(analogtodigitalconverter,adc)构成的电量计来统计器件的耗电。此类统计方法可以很精准的统计器件耗电,统计精度与adc自身的精度一致。然而,该统计方法无法准确统计进程耗电详情。这就导致该方法不能用于进程耗电排行,进程异常检测。39.另外一类统计策略通过使用负载统计进程耗电信息,然后对一段时间内的耗电信息进行累加获取器件耗电。这种方法假设在相同负载下的耗电表现是相同的。这种假设是近似的,不完备的。在不同的测试场景下,器件在满负载的功耗表现差异比较大。比如,在同样满负载的条件下,运行整型运算与运行浮点运算的耗电就不相同。再比如,在同样满负载且运行整型耗电的条件下,运行已经在缓存中存在的指令,和运行需要到内存中取指的指令,其耗电表现也不相同。因此,采用负载统计器件进程耗电存在误差,对进程耗电累加得出的器件耗电也存在误差。40.因此,本技术提供一种新的耗电统计方法,可以同时实现对器件的器件耗电和进程耗电的统计,从而提高耗电统计的可靠性。41.本技术实施例的耗电统计方法可以应用于电子设备,或,由电子设备执行。所述电子设备包括:第一器件,以及与所述第一器件电连接的第一功率检测器件,其中,所述第一功率检测器件用于检测所述第一器件的功率。本技术实施例的耗电统计方法可以用于统计第一器件的耗电。42.在本技术实施例中,第一器件可以为电子设备中与进程的运行相关的器件,即进程的运行会调用的器件。值得注意地是,在统计器件的耗电时,一种实现方式中,可以以整体对器件的耗电进行统计;另一种实现方式中,考虑到器件中不同单元的运行条件不一样,也可以分别统计器件中不同单元的耗电,之后,计算该器件的整体耗电。因此,在实际应用中,所述第一器件可以为以下器件的整体或单元:中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、数字信号处理器(digitalsignalprocessing,dsp)或单片机等。43.为方便理解,以cpu为例,考虑到cpu的多核特性,所述第一器件可以为:单个cpu、单个cpu簇、单个cpu核或自定义的cpu单元。cpu簇是指一组相同的cpu核,比如,当前典型的分类方式是小核、中核和大核。自定义的cpu单元可以基于cpu的供电结构确定,如:假设cpu的供电方案采用小核加中核的策略,那么可以将该小核加中核确定为一个cpu单元。44.在本技术实施例中,针对每个第一器件,均为其设置一个独立的功率检测器件,专用于检测其器件耗电。45.具体实现时,一种实现方式中,第一功率检测器件可以直接用于检测第一器件的功率值,在此实现方式中,第一功率检测器件与第一器件并联。46.另一种实现方式中,第一功率检测器件可以包括电流计和计算单元,电流计用于检测第一器件的电流,计算单元可以基于电流计检测到的电流,以及读取到的电压,计算得到第一器件的功率值。电流计包括并联的第一元件和第二元件,第一元件可以为电阻或晶体管,第二元件用于检测第一器件的电流,第二元件可以为adc或其他自定义的元件,adc可以是新增的adc,也可以是第一器件的供电系统中自带的adc。在此实现方式中,第一功率检测器件可以设置在第一器件的前端或后端。为方便理解,可参见图1。在图1中,第一功率检测器件包括并联的电阻和adc,第一器件为cpu簇,第一功率检测器件设置在cpu簇之前。47.需要说明的是,第一功率检测器件可以封装在第一器件外,也可以封装在第一器件内,具体可根据实际情况决定,本技术实施例对此不做限定。48.在实际应用中,电子设备可以是手机、平板电脑(tabletpersonalcomputer)、膝上型电脑(laptopcomputer)或称为笔记本电脑、个人数字助理(personaldigitalassistant,pda)、掌上电脑、上网本、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、移动上网装置(mobileinternetdevice,mid)、增强现实(augmentedreality,ar)/虚拟现实(virtualreality,vr)设备、机器人、可穿戴式设备(wearabledevice)、车载设备(vue)、行人终端(pue)、智能家居(具有无线通信功能的家居设备,如冰箱、电视、洗衣机或者家具等)等终端侧设备。49.下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的耗电统计方法进行详细地说明。50.参见图2,图2是本技术实施例提供的耗电统计方法的流程图之一。如图2所示,耗电统计方法可以包括以下步骤:51.步骤201、根据第一时长内所述第一功率检测器件检测到的第一功率值,获取所述第一时长内所述第一器件的第一耗电量。52.在本技术实施例中,电子设备可以周期统计第一器件的耗电,所述第一时长等于所述第一器件的周期统计的周期长度。在一些实施例中,为实现周期统计,电子设备可以设置定时器。电子设备可以在定时器超时时执行一次统计,这样,可以通过周期控制定时器的启动实现第一器件的耗电的周期统计,定时器的周期可根据实际需求设置,本技术实施例对此不做限定。53.可以理解地是,所述第一功率值和所述第一时长的乘积即为第一耗电量。由于第一耗电量通过功率检测器件检测得到,可以称为第一器件的器件耗电量。54.步骤202、获取所述第一器件的m个进程分别对应的第一工作时长集合,得到m个第一工作时长集合,其中,第一进程对应的第一工作时长集合包括:所述第一时长内所述第一器件的所述第一进程在各频点下的工作时长,所述第一进程为所述m个进程中的任一个进程,m为正整数。55.所述m个进程为第一时长内第一器件运行的进程。每个进程对应一个第一工作时长集合,包括该进程在各频点下的工作时长,进一步,工作时长为非空闲态工作时长。56.步骤203、根据所述m个第一工作时长集合和目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量,得到m个第二耗电量。57.所述目标运行场景可以为第一器件的任一工作场景,也可以为第一器件运行频率最高的工作场景,本技术实施例并不限制所述目标运行场景的确定方式。58.所述目标运行场景对应的功率集合可以预先获取,如可以在实验室检测获取。所述目标运行场景对应的功率集合包括:所述电子设备处于所述目标运行场景时所述第一器件工作于各频点的功率值。进一步地,该功率值为所述第一器件在各频点下,跑满负载后的功率值。值得注意地是,若在目标运行场景下,第一器件不能跑满负载,可以基于当前负载的功率值,以及当前负载相对满负载,计算得到跑满负载后的功率值。59.针对每个进程,可以先计算进程在各频点下的耗电量,之后,将各频点对应的耗电量求和,得到该进程对应的耗电量。对于各频点对应的耗电量,可以通过计算各频点对应的功率值和工作时长的乘积得到。60.假设第一器件内各进程在频点f下的工作时长为upro(f),第一器件在频点f的功率值为pm-opt(f),那么,第一器件内各进程对应的耗电量epro可以通过以下公式计算得到:[0061][0062]由于第二耗电量为第一器件各进程的耗电量,所述m个第二耗电量可以称为第一器件的进程耗电量。[0063]步骤204、保存所述第一时长、所述第一耗电量和所述m个第二耗电量。[0064]具体实现时,一种实现方式中,电子设备可以直接保存所述第一时长、所述第一耗电量和所述m个第二耗电量,以供使用,如用于耗电排行或耗电异常检测等。[0065]另一种实现方式中,电子设备在保存耗电量之前,还可以先检测所述第一耗电量,与所述m个第二耗电量之和是否相等,以使保存的第一器件的器件耗电量与进程耗电量一致,从而可以保证耗电统计的可靠性。[0066]本实施例的耗电统计方法,一方面,可以通过第一功率检测器件检测第一器件的器件耗电;另一方面,可以通过获取第一器件内各进程在各频点下的工作时长,以及电子设备处于目标运行场景时第一器件工作于各频点的功率值,计算得到第一器件的各进程耗电,进而得到第一器件的总进程耗电。这样,通过分别获取第一器件的器件耗电和进程耗电,可以提高第一器件耗电统计的可靠性。[0067]在一些实施例中,所述根据所述m个第一工作时长集合和目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量之前,所述方法还包括:[0068]获取所述第一器件对应的第二工作时长集合,所述第二工作时长集合包括:所述第一时长内所述第一器件在各频点下的工作时长;[0069]获取所述第一器件的n个运行场景分别对应的功率集合,n为大于1的整数;[0070]根据所述第一工作时长集合,以及所述n个运行场景分别对应的功率集合,获取所述第一时长内所述第一器件的所述n个运行场景分别对应的第三耗电量,得到n个第三耗电量;[0071]根据所述n个第三耗电量,从所述n个运行场景中确定所述目标运行场景。[0072]在本实施例中,电子设备可以统计第一器件在各频点下的工作时长。这样,可以基于第一器件在各频点下的工作时长,以及电子设备处于各运行场景时第一器件工作于各频点的功率值,计算得到各运行场景下第一器件的进程耗电。[0073]之后,可以基于所述第一时长内各运行场景下第一器件的进程耗电,从所述n个运行场景中选择一个运行场景,作为目标运行场景,用于计算所述第一时长内第一器件的进程耗电。[0074]这样,可以提高第一进程的进程耗电的统计可靠性。[0075]一种可选的实施方式中,电子设备可以将所述n个第三耗电量中最大、最小或与所述n个第三耗电量的均值最接近的第三耗电量所对应的运行场景,确定为所述目标运行场景。[0076]另一种可选的实施方式中,所述根据所述n个第三耗电量,从所述n个运行场景中确定所述目标运行场景,可以包括:[0077]分别计算所述n个第三耗电量与所述第一耗电量的差值,得到n个差值;[0078]将所述n个差值中绝对值最小的差值对应的运行场景,确定为所述目标运行场景。[0079]在本可选实施方式中,通过分别比较各所述第三耗电量和所述第一耗电量的大小,确定目标运行场景。具体地,将与所述第一耗电量最接近的第三耗电量对应的运行场景,确定为所述目标运行场景。[0080]目标运行场景对应的第三耗电量最接近所述第一耗电量,说明目标运行场景最贴近第一器件的实际耗电场景,因此,基于第一器件的目标运行场景对应的功率集合,计算得到的第一时长内第一器件的进程耗电,可以更贴近第一时长内第一器件的进程耗电,从而可以进一步提高进程耗电的统计可靠性。[0081]需要说明的是,对于不同的时长,由于电子设备的运行情况可能不同,电子设备确定的目标运行场景也会因此不同,具体根据实际情况决定。[0082]在一些实施例中,所述保存所述第一时长、所述第一耗电量和所述m个第二耗电量,可以包括:[0083]确定目标耗电量与所述第一耗电量是否相等,所述目标耗电量为所述m个进程分别对应的第二耗电量的和;[0084]在所述目标耗电量与所述第一耗电量相等的情况下,保存所述第一时长、所述第一耗电量和所述m个第二耗电量。[0085]在本实施例中,在保存统计得到的耗电量之前,可以先检测统计到的进程耗电量是否与器件耗电量相等,若相等,可以直接保存统计到的耗电量;若不相等,可以修正进程耗电量,以使进程耗电量与器件耗电量保持一致,从而提高耗电统计的可靠性。[0086]一种可选的实施方式中,所述确定目标耗电量与所述第一耗电量是否相等之后,所述方法还包括:[0087]在所述目标耗电量与所述第一耗电量不相等的情况下,获取所述第二耗电量对应的修正系数,所述修正系数为所述第一耗电量与所述目标耗电量的比值;[0088]利用所述修正系数,修正所述m个第二耗电量;[0089]保存所述第一时长、所述第一耗电量和修正后的所述m个第二耗电量。[0090]具体实现时,可以将第二耗电量与修正系数的乘积确定为修正后的第二耗电量,这样,可以保证修正后的所述m个第二耗电量之和,与所述第一耗电量相等,从而提高耗电统计的可靠性。[0091]需要说明的是,本技术实施例中介绍的多种可选的实施方式,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本技术实施例不作限定。[0092]为方便理解,示例说明如下:[0093]在下述示例中,以统计cpu的耗电进行示例说明。[0094]本技术实施例可以用于统计cpu器件耗电与cpu进程耗电。最终能够实现超高精度的cpu器件耗电统计,也能够实现最优cpu进程耗电策略选择。[0095]本技术实施例可以提供一种硬件设备,用于统计cpu器件耗电,可以统计cpu在不同簇或核上面的耗电。本技术实施例还可以提供一种方法,用于计算cpu进程耗电。该方法可以先统计cpu使用详情,进而得出多个模型下的cpu使用耗电,再进一步选择最优模型统计cpu耗电。本技术实施例还可以提供一种策略,可以结合cpu器件耗电,重新分配cpu进程耗电。[0096]注意,cpu的多核特性已经成为电子设备的主流。本技术实施例可以在cpu簇(小核,中核,大核)的维度统计cpu耗电信息,也可以在cpu核的维度统计cpu耗电信息,还可以进行cpu簇/核的自由组合维度进行统计。依据不同的统计策略,分别阐述对应的实施方式。[0097]实施方式一[0098]本实施方式主要针对单个cpu簇进行器件和进程耗电统计。cpu簇(cluster,cl)是指一组相同的cpu核,比如,当前典型的分类方式是小核、中核和大核。本实施方式选择分簇统计,主要考虑当前的供电架构是按照簇来分配的,方便添加功率检测模块。本实施方式的模块示意图可参见图3。在图3中,cpu内运算资源包括单个簇,cpu簇外围连接一个功率检测模块,所述功率检测模块可以检测其功耗,所述功率检测模组模块可以封装在cpu外也可以封装在cpu内,功率检测模块的运算结果与算法单元那种用于监测cpu整体功耗的cpu能量计算模块共同输出值功耗数据分析单元。[0099]阶段一:可以在cpu簇前增加功率检测模块(即前述的功率检测器件)统计功耗。如图1所示,一种可行的方式是在cpu供电电路中串进电阻,并且在电阻两端添加adc统计耗电信息。该电流计可以是单独选型的电流计,也可以使用电源管理芯片(powermanagementic,pmic)供电系统中自带的电流计,还可以是其它用户自定义的硬件设备。注意,功率检测模块的精度代表着cpu器件耗电统计精度,也会影响cpu各进程耗电统计的精度。另外,本技术实施例附图中选用了adc芯片,不代表对该选型做限定。也可以选用其他可以度量cpu器件耗电的硬件设备。[0100]阶段二:在实验室准备cpu簇在任一典型场景下的能效数据。本阶段选择的场景可以是典型的benchmark测试模型,也可以是厂商较为关心的重点场景。以benchmark举例,可以是dhrystone、geekbench、specint等经典模型;以重点场景举例,可以是游戏、视频、社交等典型场景。benchmark:特指cpu实验室基准线测试平台;dhrystone:测量处理器运算能力的最常见基准程序之一,常用于处理器的整型运算性能的测量;geekbench:是一个兼容多平台的综合性测试工具,主要可以考察cpu和内存系统的运算能力;specint:cpu整数处理能力的计算机标准测试规范,由标准性能评估公司维护。[0101]本阶段需要输出的能效数据是指cpu簇在不同频率下,跑满负载后的功率数值。完成上述步骤后,本阶段输出的功耗数值表集合为:[0102]p={pm(f)}[0103]其中,p代表满负载功耗,m代表不同的测试模型(即测试场景),f代表不同的频点。[0104]阶段三:在端侧中执行cpu器件和进程耗电统计。该阶段可以通过软件代码实现,可以在端侧中运行对应的算法模块。该算法单元主要包括以下逻辑模块:定时器模块;cpu使用信息模块;cpu能量计算模块;计算结果落盘模块。如图4所示,该算法的主要执行步骤表述如下:[0105]步骤一,初始化阶段。在该阶段首先需要对硬件功率检测模块进行初始化,设置正确的配置参数。然后初始化存储cpu耗电信息的目录和文件。注意,该文件系统可以是文本,数据库或者其他格式。在此仅以数据库格式作为示例进行说明。再之后启动周期性定时器模块,该定时器的周期由开发人员按需设置,例如一种可行的方式是设置10分钟周期的定时器。[0106]步骤二,终端设备在定时器超时后进行数据处理。主要包括cpu器件耗电统计,cpu进程使用统计,cpu进程耗电计算几个方面。结合图5,以下程序说明cpu簇的器件和进程耗电统计过程。[0107]程序1,通过软件代码读取功率检测模块所统计的器件耗电ecom。[0108]程序2,通过软件代码获取内核中cpu簇在各频点下的使用详情u(f)。同时获取cpu簇内各进程在不同频点下的使用详情upro(f),也即进程pro在频点f下的使用时长(即前述的工作时长)。注意,此处的使用详情指的是不包含空闲态的工作时间。[0109]程序3,推导cpu在不同耗电模型下的耗电量。[0110][0111]程序4,获取最优数据模型。在所有m个模型中,选择min(ecom-em)对应的最优模型m-opt。在每个迭代周期中均通过该方式选择最优模型及其参数。[0112]程序5,依据上一步骤所获取的最优模型计算cpu各进程的耗电量[0113][0114]通过上述方式,最终可以获取cpu簇的器件耗电量ecom和进程耗电量epro。[0115]程序2可以由图3中的cpu使用信息模块执行,程序3-5可以由图3中的cpu能量计算模块执行。[0116]步骤三,计算结果落盘模块负责把当前时刻,cpu器件耗电,cpu进程耗电存储到对应目录下的数据库文件中。通过这种方式可以方便外部接口调用数据,例如耗电排行模块、耗电异常检测模块。[0117]实施方式一的有益效果:[0118]本实施方式提供一种硬件设备可以统计cpu器件耗电,该方案的好处是所获取的cpu器件耗电与采集设备精度一致。以adc设备为例,现有adc设备的精度在满足成本要求的前提下,可以提高到98%以上。[0119]本实施方式提供一种软件方法用于计算cpu进程耗电。该方法能够在多模型中选择最优模型,选择的依据是软件模型计算的耗电最接近硬件器件统计。采用该方法选择出最优模型,最终给出的进程耗电分配比最合理。如图6所示,本实施方式能够在每个周期中,均选择软件耗电统计和与硬件统计数值最接近的方案(图中标记为黑色)。该方法极大的提高了软件耗电统计精度,在每个小周期内获取到局部最优解。[0120]实施方式二[0121]本实施方式主要针对拥有多个簇的cpu进行器件和进程耗电统计。考虑cpu簇是器件供电的基本单元,本实施方式需要在每个簇的前端添加功率检测模块。本技术实施例不局限在cpu簇的单个单元上,也可以在cpu簇的组合单元进行。需要注意的是,所述cpu簇是厂家预设固定或者可以根据实际需要实时调整其大小的,多个子簇共同组成决定cpu运算能力的母簇。本实施方式的模块示意图可参见图7。在图7中,cpu内运算资源包括若干个簇,所述cpu簇是厂家预设固定或者可以根据实际需求实时调整大小的,多个子簇共同组成决定cpu运算能力的母簇。母cpu簇外围并联若干个功率检测模块,所述功率检测模块可以对一个或若干个子簇匹配并检测其功耗。[0122]阶段一,本技术实施例需要在cpu簇前端增加功率检测模块统计功耗数值。具体添加方式与“实施方式一”相同。[0123]阶段二,在实验室准备cpu簇在不同典型场景下的能效数据。具体选择场景与“实施方式一”相同。本阶段输出cpu簇的功耗数值表集合为:[0124]p={pm(c,f)}[0125]其中,c代表不同的簇。[0126]阶段三,在端侧中执行cpu器件和进程耗电统计。该阶段通过软件代码实现,需要在端侧中运行对应的算法模块。该算法单元的主要逻辑模块与“实施方式一”相同,如图4所示,该算法的主要执行步骤表述如下:[0127]步骤一,初始化阶段。[0128]步骤二,终端设备在定时器超时后进行数据处理。结合图5示意图,以下程序说明cpu簇的器件和进程耗电统计过程。[0129]程序1,通过软件代码读取功率检测模块硬件统计的cpu簇的器件耗电ecom(c)。[0130]程序2,通过软件代码获取内核中不同cpu簇在各频点下的使用详情。该使用详情可以表示为u(c,f)。同时获取cpu进程在各个簇、频点下的使用详情upro(c,f)。[0131]程序3,推导cpu簇在不同耗电模型下的耗电量。[0132][0133]程序4,获取最优数据模型。在所有m个模型中,选择对应的最优模型m-opt。在每个迭代周期中均通过该方式选择最优模型参数。[0134]程序5,计算cpu簇内各进程的耗电量:[0135][0136]通过上述方式,可以计算出该进程在簇c下的耗电量。最终该进程的总耗电量可以表示为:[0137][0138]通过上述方式,最终可以获取cpu的器件耗电量ecom(c),cpu的进程耗电量epro。[0139]步骤三,计算结果落盘模块负责把当前时刻,cpu器件耗电,cpu进程耗落盘。[0140]实施方式二的有益效果:[0141]本实施方式可以统计拥有多个簇的cpu的具体耗电信息。既可以统计到cpu器件的维度,也可以统计到cpu进程的维度。与“实施方式一”相同,本实施方式统计到的器件耗电精度非常高。本实施方式可以统计cpu簇内各进程耗电。在每轮执行过程中,均在端侧选择局部最优模型,确保所统计到的进程耗电之和最接近器件耗电。[0142]实施方式三:[0143]本实施方式主要解决所统计的cpu器件耗电与进程耗电不一致问题。通过在统计程序中增加“修正算法”实现该目的。其理论依据在于硬件统计精度远超软件统计。基于此,本实施方式在统计程序的最后一步中通过器件数值对进程数值进行了修正。本实施方式的模块示意图可参见图7。[0144]阶段一和阶段二可参见实施方式二。[0145]阶段三与实施方式二的区别在于还包括程序6,如图8所示。[0146]程序6,通过如下公式对cpu进程耗电进行修正,该公式使用cpu所有簇的硬件数值和与进程数值和的比例作为权重,对进程数值进行修正。[0147][0148]通过上述方式,可以计算出该进程在簇c下的耗电量。最终该进程的总耗电量可以表示为:[0149][0150]通过上述方式,最终可以获取cpu的器件耗电量ecom,cpu的进程耗电量e′pro。[0151]计算结果落盘模块负责把当前时刻,cpu器件耗电,cpu进程耗落盘。[0152]实施方式三的有益效果:[0153]本实施方式保留了实施方式二对多个簇进行统计的能力,保留了在多模型中选择最优模型的能力。该实施方式可以确保单轮模型的选择为局部最优解。[0154]本实施方式通过器件耗电对软件进程耗电进行修正。采用这种修正方式,是考虑cpu器件耗电的统计精度非常高。更进一步,cpu软件统计数值与硬件统计数值存在差异。本实施方式可以确保在单个簇内,所统计的进程耗电之和与硬件耗电保持一致。这也意味着,所统计的进程耗电在单簇维度上与硬件统计精度保持一致。[0155]上述示例以cpu簇为统计单元。本技术实施例不只局限在以cpu簇为统计单元的层面,还可以根据具体的供电系统进行调整。例如,假设cpu的供电方案采用小核加中核的策略,那么本技术实施例的统计硬件需要添加到cpu小核加中核的前端,所对应的软件统计策略也调整为统计小核加中核的进程数据。通过上述陈述和举例,本技术实施例可以在cpu核、cpu簇、多个cpu的各种组合方案中进行实施,对此类方案,也在本技术实施例保护范围内。[0156]需要说明的是,本技术实施例提供的耗电统计方法,执行主体可以为耗电统计装置,或者,该耗电统计装置中的用于执行耗电统计方法的控制模块。本技术实施例中以耗电统计装置执行耗电统计方法为例,说明本技术实施例提供的耗电统计装置。[0157]参见图9,图9是本技术实施例提供的耗电统计装置的结构图。[0158]如图9所示,耗电统计装置900包括:[0159]第一获取模块901,用于根据第一时长内所述第一功率检测器件检测到的第一功率值,获取所述第一时长内所述第一器件的第一耗电量;[0160]第二获取模块902,用于获取所述第一器件的m个进程分别对应的第一工作时长集合,得到m个第一工作时长集合,其中,第一进程对应的第一工作时长集合包括:所述第一时长内所述第一器件的所述第一进程在各频点下的工作时长,所述第一进程为所述m个进程中的任一个进程,m为正整数;[0161]第三获取模块903,用于根据所述m个第一工作时长集合和目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量,得到m个第二耗电量,其中,所述目标运行场景对应的功率集合包括:所述电子设备处于所述目标运行场景时所述第一器件工作于各频点的功率值;[0162]第一保存模块904,用于保存所述第一时长、所述第一耗电量和所述m个第二耗电量。[0163]在一些实施例中,所述装置还包括:[0164]第四获取模块,用于获取所述第一器件对应的第二工作时长集合,所述第二工作时长集合包括:所述第一时长内所述第一器件在各频点下的工作时长;[0165]第五获取模块,用于获取所述第一器件的n个运行场景分别对应的功率集合,n为大于1的整数;[0166]第六获取模块,用于根据所述第一工作时长集合,以及所述n个运行场景分别对应的功率集合,获取所述第一时长内所述第一器件的所述n个运行场景分别对应的第三耗电量,得到n个第三耗电量;[0167]确定模块,用于根据所述n个第三耗电量,从所述n个运行场景中确定所述目标运行场景。[0168]在一些实施例中,所述确定模块包括:[0169]计算单元,用于分别计算所述n个第三耗电量与所述第一耗电量的差值,得到n个差值;[0170]第一确定单元,用于将所述n个差值中绝对值最小的差值对应的运行场景,确定为所述目标运行场景。[0171]在一些实施例中,所述第一保存模块包括:[0172]第二确定单元,用于确定目标耗电量与所述第一耗电量是否相等,所述目标耗电量为所述m个进程分别对应的第二耗电量的和;[0173]保存单元,用于在所述目标耗电量与所述第一耗电量相等的情况下,保存所述第一时长、所述第一耗电量和所述m个第二耗电量。[0174]在一些实施例中,所述装置还包括:[0175]第六获取模块,用于在所述目标耗电量与所述第一耗电量不相等的情况下,获取所述第二耗电量对应的修正系数,所述修正系数为所述第一耗电量与所述目标耗电量的比值;[0176]修正模块,用于利用所述修正系数,修正所述m个第二耗电量;[0177]第二保存模块,用于保存所述第一时长、所述第一耗电量和修正后的所述m个第二耗电量。[0178]本技术实施例中的耗电统计装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本或者个人数字助理(personaldigitalassistant,pda)等,非移动电子设备可以为服务器、网络附属存储器(networkattachedstorage,nas)、个人计算机(personalcomputer,pc)、电视机(television,tv)、柜员机或者自助机等,本技术实施例不作具体限定。[0179]本技术实施例中的耗电统计装置可以为具有操作系统的装置。该操作系统可以为安卓(android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本技术实施例不作具体限定。[0180]本技术实施例提供的耗电统计装置900能够实现图2的方法实施例中的各个过程,为避免重复,这里不再赘述。[0181]可选的,如图10所示,本技术实施例还提供一种电子设备1000,包括处理器1001,存储器1002,存储在存储器1002上并可在所述处理器1001上运行的程序或指令,该程序或指令被处理器1001执行时实现上述耗电统计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。[0182]需要说明的是,本技术实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。[0183]图11为实现本技术实施例的一种电子设备的硬件结构示意图。[0184]该电子设备1100包括但不限于:射频单元1101、网络模块1102、音频输出单元1103、输入单元1104、传感器1105、显示单元1106、用户输入单元1107、接口单元1108、存储器1109、以及处理器1110等部件。[0185]本领域技术人员可以理解,电子设备1100还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图11中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。[0186]其中,处理器1110,用于:[0187]根据第一时长内所述第一功率检测器件检测到的第一功率值,获取所述第一时长内所述第一器件的第一耗电量;[0188]获取所述第一器件的m个进程分别对应的第一工作时长集合,得到m个第一工作时长集合,其中,第一进程对应的第一工作时长集合包括:所述第一时长内所述第一器件的所述第一进程在各频点下的工作时长,所述第一进程为所述m个进程中的任一个进程,m为正整数;[0189]根据所述m个第一工作时长集合,以及所述第一器件的目标运行场景对应的功率集合,获取所述第一时长内所述第一器件的所述m个进程分别对应的第二耗电量,得到m个第二耗电量,其中,所述目标运行场景对应的功率集合包括:所述电子设备处于所述目标运行场景时所述第一器件工作于各频点的功率值;[0190]保存所述第一时长、所述第一耗电量和所述m个第二耗电量。[0191]本技术实施例提供的电子设备1100能够实现图2的方法实施例中的各个过程,为避免重复,这里不再赘述。[0192]应理解的是,本技术实施例中,输入单元1104可以包括图形处理器(graphicsprocessingunit,gpu)11041和麦克风11042,图形处理器11041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1106可包括显示面板11061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板11061。用户输入单元1107包括触控面板11071以及其他输入设备11072。触控面板11071,也称为触摸屏。触控面板11071可包括触摸检测装置和触摸控制器两个部分。其他输入设备11072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器1109可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器1110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1110中。[0193]本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述耗电统计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。[0194]其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。[0195]本技术实施例另提供了一种芯片,包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述耗电统计方法实施例的各个过程,且能达到相同的技术效果,为避免重复,不再赘述。[0196]应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。[0197]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。[0198]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。[0199]上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1