掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明实施例涉及互联网技术领域,特别是涉及一种调频方法、一种调频装置、一种电子设备以及一种计算机可读存储介质。

背景技术

随着智能化的发展,生活中出现了大量的智能化服务,而这些服务的后端都运行在服务器上,例如,股票交易平台、机票购票平台和网络购物平台等,而大部分服务平台的使用频率都不是稳定的,存在使用高峰期和低谷期,这就要求服务器CPU(CentralProcessing Unit中央处理器)的运行频率随时在变化,高峰期提高频率以提高服务器性能,低谷期降低频率达到节能的目的。

现有技术下,在Linux(操作系统内核)中CPU的调频策略是基于调度器的策略,用户可以主动设置策略,一种策略对应一种模式。一般情况下默认运行在Ondemand模式(按需响应模式),如果设置当前系统运行在Performance(最高性能)模式,则系统会调用Performance调度器,使系统运行在最高频率模式;如果设置当前系统运行在Powersave(最低性能)模式,则系统会调用Powersave调度器,使系统运行在最低频率。而系统一般的默认模式为Ondemand模式,该调度器是基于负载决定当前系统的运行频率,系统会循环根据采样点获取当前负载,如果当前负载大于预设值,直接使当前系统运行在最高频率,否则,系统会根据当前负载,计算出所需频率,设置使频率生效。该模式主要是利用负载和频率的强相关映射来保证CPU的性能和功耗之间的平衡。

当前的调频策略主要有两个大的缺陷:第一,这种基于负载的调度器策略更偏向于系统运行在高频模式下,会使系统功耗增加;第二,基于负载的调度器调频策略属于一种被动调频,系统先根据采样点获取当前系统负载,再根据负载计算出当前负载下需要的运行频率,这种调频总是滞后的,当服务器从性能高峰到低谷转换时总是滞后的,会造成大量的性能损耗。针对上述问题,已经出现了通过聚类算法建模进行主动调频的案例,但是聚类算法更适用于多场景问题建模,比如手机中游戏、购物等不同场景CPU的频率调优。而服务器一般都是单一业务场景,因此,通过聚类算法建模不适用于服务器业务。

发明内容

本发明实施例是提供一种调频方法、装置、电子设备以及计算机可读存储介质,以解决或部分解决基于负载的调度器策略更偏向于系统运行在高频模式下以使系统功耗增加,以及当服务器从性能高峰到低谷转换时总是滞后的以造成大量的性能损耗的问题。

本发明实施例公开了一种调频方法,所述方法包括:

获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据;

根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构;

根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据;

将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型;

获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率;

根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频。

可选地,在所述获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据之前,所述方法还包括:

根据先验知识,得到多个影响所述CPU的CPU运行状态的因素;

根据所述因素和所述CPU的CPU运行频率,构建初始贝叶斯网络结构。

可选地,各个所述因素对应为所述初始贝叶斯网络结构中的父节点或中间节点,所述CPU的CPU运行频率对应为所述初始贝叶斯网络结构中的子节点。

可选地,在所述获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据之前,所述方法还包括:

根据先验知识,得到多个影响所述CPU的CPU运行状态的因素所对应的父节点或中间节点;其中,将所述CPU的CPU运行频率作为子节点;

根据所述因素所对应的父节点或中间节点以及所述CPU的CPU运行频率所对应的子节点,构建初始贝叶斯网络结构。

可选地,所述CPU运行状态数据至少包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存访问次数、二级缓存访问次数和CPU利用率的一种或多种。

可选地,所述初始贝叶斯网络结构中包含多个节点,所述根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,包括:

计算所述初始贝叶斯网络结构中各个所述节点相互间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

根据各个所述节点对应的互信息值的大小关系,确定所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

可选地,所述根据各个所述节点对应的互信息值的大小关系,确定所述初始贝叶斯网络结构需要保留的目标节点,包括:

根据各个所述节点对应的互信息值的大小关系,删除小于预设互信息值的互信息值对应的节点,将剩余的节点作为所述初始贝叶斯网络结构需要保留的目标节点。

可选地,所述节点包括父节点和子节点,所述计算所述初始贝叶斯网络结构中各个所述节点相互间的信息熵,包括:

收集各个针对所述初始贝叶斯网络结构中所述父节点的数据;

根据所述父节点的数据,计算各个所述父节点和所述子节点之间的信息熵。

可选地,所述根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,包括:

计算所述初始贝叶斯网络结构中各个所述父节点和所述子节点之间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

删除小于预设互信息值的互信息值对应的父节点,将剩余的父节点作为所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

可选地,所述根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据,包括:

在删除小于预设互信息值的互信息值对应的节点后,将被删除的所述节点对应的数据删除;

将所述目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

可选地,所述将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,包括:

将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到针对所述目标贝叶斯网络结构中各个所述节点的条件概率表;

将各个所述节点对应的条件概率表和所述目标贝叶斯网络结构结合,得到贝叶斯网络预测模型。

可选地,所述节点的条件概率表用于表示所述节点的不同取值对应的概率。

可选地,所述获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率,包括:

收集针对所述目标贝叶斯网络结构中各个所述父节点的数据;

将各个所述父节点对应的数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率。

可选地,所述获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据,包括:

周期性地获取所述CPU的CPU运行状态数据,定期更新所述初始先验数据。

可选地,所述CPU内置有寄存器,在所述获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率之后,所述方法还包括:

将所述下一时刻的CPU运行频率写入所述CPU中的寄存器,以从所述寄存器中读取所述下一时刻的CPU运行频率对应的频率值。

可选地,所述根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频,包括:

若所述频率值不在预设频率范围内,则根据所述预设频率范围对所述频率值进行调整;

若所述频率值在预设频率范围内,则根据所述频率值对所述CPU的CPU运行频率进行调频。

可选地,所述预设频率范围为所述CPU运行在最高频率模式和最低频率模式之间的频率值。

本发明实施例还公开了一种调频装置,所述装置包括:

初始先验数据获取模块,用于获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据;

目标贝叶斯网络结构构建模块,用于根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构;

目标先验数据获取模块,用于根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据;

贝叶斯网络预测模型构建模块,用于将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型;

下一时刻CPU运行频率预测模块,用于获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率;

CPU频率调节模块,用于根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频。

可选地,所述装置还包括:

影响因素确定模块,用于根据先验知识,得到多个影响所述CPU的CPU运行状态的因素;

第一初始贝叶斯网络结构构建模块,用于根据所述因素和所述CPU的CPU运行频率,构建初始贝叶斯网络结构。

可选地,所述装置还包括:

节点确定模块,用于根据先验知识,得到多个影响所述CPU的CPU运行状态的因素所对应的父节点或中间节点;其中,将所述CPU的CPU运行频率作为子节点;

第二初始贝叶斯网络结构构建模块,用于根据所述因素所对应的父节点或中间节点以及所述CPU的CPU运行频率所对应的子节点,构建初始贝叶斯网络结构。

可选地,所述初始贝叶斯网络结构中包含多个节点,所述目标贝叶斯网络结构构建模块具体用于:

计算所述初始贝叶斯网络结构中各个所述节点相互间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

根据各个所述节点对应的互信息值的大小关系,确定所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

可选地,所述装置还包括:

目标节点确定模块,用于根据各个所述节点对应的互信息值的大小关系,删除小于预设互信息值的互信息值对应的节点,将剩余的节点作为所述初始贝叶斯网络结构需要保留的目标节点。

可选地,所述节点包括父节点和子节点,所述装置还包括:

父节点数据收集模块,用于收集各个针对所述初始贝叶斯网络结构中所述父节点的数据;

信息熵计算模块,用于根据所述父节点的数据,计算各个所述父节点和所述子节点之间的信息熵。

可选地,所述目标贝叶斯网络结构构建模块具体用于:

计算所述初始贝叶斯网络结构中各个所述父节点和所述子节点之间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

删除小于预设互信息值的互信息值对应的父节点,将剩余的父节点作为所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

可选地,所述目标先验数据获取模块具体用于:

在删除小于预设互信息值的互信息值对应的节点后,将被删除的所述节点对应的数据删除;

将所述目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

可选地,所述贝叶斯网络预测模型构建模块具体用于:

将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到针对所述目标贝叶斯网络结构中各个所述节点的条件概率表;

将各个所述节点对应的条件概率表和所述目标贝叶斯网络结构结合,得到贝叶斯网络预测模型。

可选地,所述下一时刻CPU运行频率预测模块具体用于:

收集针对所述目标贝叶斯网络结构中各个所述父节点的数据;

将各个所述父节点对应的数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率。

可选地,所述初始先验数据获取模块具体用于:

周期性地获取所述CPU的CPU运行状态数据,定期更新所述初始先验数据。

可选地,所述CPU内置有寄存器,所述装置还包括:

频率值读取模块,用于将所述下一时刻的CPU运行频率写入所述CPU中的寄存器,以从所述寄存器中读取所述下一时刻的CPU运行频率对应的频率值。

可选地,所述CPU频率调节模块具体用于:

若所述频率值不在预设频率范围内,则根据所述预设频率范围对所述频率值进行调整;

若所述频率值在预设频率范围内,则根据所述频率值对所述CPU的CPU运行频率进行调频。

本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。

本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。

本发明实施例包括以下优点:

在本发明实施例中,获取CPU的CPU运行状态数据,并将CPU运行状态数据作为初始先验数据,然后根据初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,再根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,进而将目标先验数据输入至目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,并且,不断获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,预测得到下一时刻的CPU运行频率,从而根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。本发明实施例中,通过系统当前时刻的CPU运行状态能够提前预测CPU下一时刻的运行频率,进而主动调整CPU的CPU运行频率,降低了CPU从高频模式到低频模式过程中造成的大量性能损耗,使其在性能和节能功耗之间达到更好的平衡。

附图说明

图1是现有技术中提供的一种调频方法的步骤流程图;

图2是本发明实施例中提供的一种调频方法的步骤流程图;

图3是本发明实施例中提供的一种初始贝叶斯网络结构示意图;

图4是本发明实施例中提供的一种调频方法的流程示意图之一;

图5是本发明实施例中提供的一种调频方法的流程示意图之二;

图6是本发明实施例中提供的一种调频方法的流程示意图之三;

图7是本发明实施例中提供的一种调频装置的结构框图;

图8是本发明实施例中提供的一种计算机可读存储介质的结构示意图;

图9是实现本发明各个实施例的一种电子设备的硬件结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

为了使本领域技术人员更好地理解本发明实施例的技术方案,下面对本发明实施例中涉及的部分技术特征进行解释、说明:

贝叶斯网络,贝叶斯网络模型(1987年Pearl首次提出)是一种对来自不同来源的信息进行编码的方法,贝叶斯网络是描述条件概率结构的有向无环图。在贝叶斯网络中,图形化模型结构与模型量化的概率框架相耦合,其中量化可以使用一系列信息类型和来源,如原始数据、统计模型输出或专家启发式;其次,该模型可用于估计、推理和场景评估,其中场景评估是通过操纵图和概率来实现的。贝叶斯网络模型的统计能力和灵活性,以及从其他模型和数据集轻松编码信息的能力,使它们成为构建用于研究、仿真和群体决策支持的复杂模型的理想基础。

互信息,互信息作为用来描述两个信号相互间的统计相关性的相似性度量方式,具体地采用信息熵的概念来表示,其主要描述了当前系统中信息的总体特征,即包含信息量的多少。当前系统变量的不确定度大的时候,对应信息熵也较大。

CPU(Central Processing Unit / Processor 中央处理器),其为电子计算机的主要设备之一,为电脑中的核心配件,其功能主要是解释计算机指令以及处理计算机软件中的数据,电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

CPU时钟频率,CPU频率,即CPU的时钟频率,是指CPU运算时的工作的频率,决定计算技术的运行速度,单位是Hz。

Pstate值,其为和CPU频率值一一对应的数值,一个Pstate值可以表示一个频点,和CPU频率值成负相关,频率值越大,Pstate值越小,反之越大。其中在Power架构(RISC(Reduced Instruction Set Computing)指令系统)下通常代替表示CPU的频率。

Powersave模式,该模式为最低性能模式,CPU运行在Powersave模式,就是CPU运行在节能模式,是CPU运行最低频率的模式。

Performance模式,该模式为最高性能模式,CPU运行在Performance模式,就是CPU运行在最佳性能模式,是CPU运行最高频率的模式。

Ondemand模式,其为按需响应模式,该模式是系统根据负载自动调节CPU运行频率的模式。

CME(Core Management Engines),Openpower服务器(一种服务器类型)上CPU内部的芯片,该芯片使设置的频率真正生效,并且当Linux(操作系统)设置频率值到PMCR(PowerManagement Control Register)寄存器中,CME负责从该寄存器中读出设置的频率值发送至PGPE(Pstate General Purpose Engine)。

PGPE(Pstate General Purpose Engine),Openpower服务器上CPU内部的芯片,主要用于分担OCC(On-Chip Microcontroller 硬实时子系统)的工作,完成Pstate值的合理性判定,即PGPE会维护CPU运行频率的正常范围,当设置的频率超过CPU物理上允许的频率范围,PGPE会调整频率到正常范围。

PMCR(Power Management Control Register)寄存器:PMCR 是用来请求 Pstate更改机制的专用寄存器,主要用于存储请求的Pstate值。

联合树算法:通过贝叶斯网络转化为联合树的图形表达方式来表达联合概率分布,完成对贝叶斯网络的推理运算。

作为一种示例,当前的调频策略主要是基于调度器的策略,用户可以主动设置策略,一种策略对应一种模式。一般情况下默认运行在Ondemand模式(按需响应模式),如果设置当前系统运行在Performance(最高性能)模式,则系统会调用Performance调度器,使系统运行在最高频率模式;如果设置当前系统运行在Powersave(最低性能)模式,则系统会调用Powersave调度器,使系统运行在最低频率。而系统一般的默认模式为Ondemand模式,该调度器是基于负载决定当前系统的运行频率,系统会循环根据采样点获取当前负载,如果当前负载大于预设值,直接使当前系统运行在最高频率,否则,系统会根据当前负载,计算出所需频率,设置使频率生效。该模式主要是利用负载和频率的强相关映射来保证CPU的性能和功耗之间的平衡。现有技术主要有两个大的缺陷:第一,这种基于负载的调度器策略更偏向于系统运行在高频模式下,会使系统功耗增加;第二,基于负载的调度器调频策略属于一种被动调频,系统先根据采样点获取当前系统负载,再根据负载计算出当前负载下需要的运行频率,这种调频总是滞后的,当服务器从性能高峰到低谷转换时总是滞后的,会造成大量的性能损耗。针对上述问题,已经出现了通过聚类算法建模进行主动调频的案例,但是聚类算法更适用于多场景问题建模,比如手机中游戏、购物等不同场景CPU的频率调优。而服务器一般都是单一业务场景,因此,通过聚类算法建模不适用于服务器业务。

参照图1,示出了现有技术中提供的一种调频方法的步骤流程图,如图1所示,在现有技术下,服务器系统通过获取当前的系统负载,判断系统负载是否大于预设值,若是系统负载大于预设值,则使系统运行在最高频率模式,即将CPU运行频率提高到最大频率,若是系统负载小于预设值,则根据系统负载进行下一时刻的频率计算,最后使频率生效,从而达到一个调频的结果,可以理解的是,在现有技术中,服务器系统主要根据当前系统负载进行动态调频,当系统负载增加的时候进行升频,负载降低的时候进行降频,最终使CPU运行频率和负载之间达到一个平衡的状态。但是这种基于负载的调度器策略更偏向于系统运行在高频模式下,从而使系统功耗增加,其次,基于负载的调度器调频策略属于一种被动调频,系统先根据采样点获取当前系统负载,再根据负载计算出当前负载下需要的运行频率,这种调频总是滞后的,即,当服务器从性能高峰到低谷转换时总是滞后的,会造成大量的性能损耗。

对此,本发明的核心发明点之一在于获取CPU的CPU运行状态数据,并将CPU运行状态数据作为初始先验数据,然后根据初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,再根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,进而将目标先验数据输入至目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,并且,不断获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,预测得到下一时刻的CPU运行频率,从而根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。本发明实施例中,通过系统当前时刻的CPU运行状态能够提前预测CPU下一时刻的运行频率,进而主动调整CPU的CPU运行频率,降低了CPU从高频模式到低频模式过程中造成的大量性能损耗,使其在性能和节能功耗之间达到更好的平衡。

参照图2,示出了本发明实施例中提供的一种调频方法的步骤流程图,具体可以包括如下步骤:

步骤201,获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据;

对于CPU,其为电子计算机的主要设备之一,其功能主要是解释计算机指令以及处理计算机软件中的数据,电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。

其中,对于初始先验数据,其可以为CPU运行状态数据,CPU运行状态数据主要为对CPU运行频率有影响的数据或者和CPU运行频率大小有关系的数据以及对应的频率数据,CPU运行状态数据可以包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存(L3Cache)访问次数、二级缓存(L2Cache)访问次数和CPU利用率。需要说明的是,CPU运行状态的信息在实际的运行过程中,可能远不止上述列举的数据,本领域技术人员可以根据实际情况进行调整,本发明实施例对此不作限制。

值得一提的是,在数据收集的过程中,为了使得收集的CPU运行状态数据足够全面,尽可能地保证收集到完整业务周期的数据,在系统运行的过程中还要不断地收集最新的CPU运行状态数据。可选地,周期性地获取CPU的CPU运行状态数据,定期更新初始先验数据,需要说明的是,对于CPU运行状态数据收集的周期,本领域技术人员可以根据实际情况对收集周期进行设置,本发明实施例对此不作限制。

在具体实现中,先获取CPU的CPU运行状态数据,即对CPU运行频率有影响的数据或者和CPU运行频率大小有关系的数据以及对应的频率数据,CPU运行状态数据可以包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存(L3Cache)访问次数、二级缓存(L2Cache)访问次数和CPU利用率,并将该数据作为初始先验数据。

步骤202,根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构;

其中,对于初始贝叶斯网络结构,其为预设的初始贝叶斯网络结构,其可以根据先验知识,得到多个影响CPU的CPU运行状态的因素,从而可以根据因素和CPU的CPU运行频率,构建初始贝叶斯网络结构。参照图3,示出了本发明实施例中提供的一种初始贝叶斯网络结构示意图,其中,先验知识为先于经验的知识,其可以用于分析影响CPU的CPU运行状态的因素,各个因素对应为初始贝叶斯网络结构中的父节点或中间节点,如图3中的父节点A、父节点B、父节点C、父节点D和父节点E,以及图3中的中间节点E,CPU的CPU运行频率对应为初始贝叶斯网络结构中的子节点,如图中的子节点M。

对于优化,其可以为对初始贝叶斯网络中的节点数进行精简,具体地,通过上述步骤收集了很多能够影响CPU运行频率的数据,并对各种影响因素进行了全面的收集,而在这些数据中,真正决定或者影响CPU运行频率的数据可能只占一部分,并不是所有的数据都和CPU运行频率强相关,并且把所有的数据作为先验知识会造成贝叶斯网络预测模型过于复杂,从而造成预测模型预测准确率降低,因此需要对初始贝叶斯网络结构进行优化,对初始贝叶斯网络中的节点数进行精简,在本发明实施例中主要采用互信息理论。

其中,对于互信息理论,其可以用来描述两个信号相互间的统计相关性的相似性度量方式,具体地采用信息熵的概念来表示,其主要描述了当前系统中信息的总体特征,即包含信息量的多少。当前系统变量的不确定度大的时候,对应信息熵也较大。其中,计算初始贝叶斯网络结构中每一个节点相互之间的信息熵,即计算节点之间的互信息值,互信息值越大,说明相关性越强,保留互信息值大的节点,需要说明的是,对于互信息值大小的确定没有绝对标准,主要通过对比各个节点互信息值的大小,去除互信息值明显小的节点,如果各个节点的互信息值差别不大,则全部节点都需要保留。本领域技术人员可以根据实际情况对互信息值的保留范围进行调整,本发明实施例对此不作限制。

在具体实现中,根据初始先验数据对预设的初始贝叶斯网络结构进行优化,即对初始贝叶斯网络结构中的节点数进行精简,利用剩下的节点构建目标贝叶斯网络结构。

步骤203,根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据;

对于目标贝叶斯网络结构,其可以为对初始贝叶斯网络结构进行优化而得到的贝叶斯网络结构,即,对初始贝叶斯网络结构中的节点数进行精简,利用剩下的节点构建而成的目标贝叶斯网络结构;对于目标先验数据,其可以为优化后的初始先验数据,目标先验数据可以为在删除小于预设互信息值的互信息值对应的节点后,即,在删除互信息值小的节点后,将被删除的节点对应的数据删除,将目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据,可以理解的是,目标先验数据为对初始先验数据进行初步处理,具体是对异常数据的剔除后的数据。

在本发明实施例中,根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,可以理解的是,在删除互信息值小的节点后,将被删除的节点对应的数据删除,将目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

步骤204,将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型;

其中,对于贝叶斯网络预测模型,其可以为用于预测下一时刻的CPU运行频率的预测模型。

在具体实现中,将目标先验数据输入至目标贝叶斯网络结构进行训练,能够得到贝叶斯网络预测模型。

步骤205,获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率;

其中,CPU运行状态数据主要为对CPU运行频率有影响的数据或者和CPU运行频率大小有关系的数据以及对应的频率数据,CPU运行状态数据可以包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存(L3Cache)访问次数、二级缓存(L2Cache)访问次数和CPU利用率,需要说明的是,CPU运行状态的信息在实际的运行过程中,可能远不止上述列举的数据,本领域技术人员可以根据实际情况进行调整,本发明实施例对此不作限制。对于当前的CPU运行状态数据,即为当前时刻的CPU运行状态数据。

对于贝叶斯网络预测模型,其可以用于预测下一时刻的CPU运行频率的预测模型;对于下一时刻的CPU运行频率,其为针对当前时刻CPU运行频率的下一时刻的CPU运行频率。

在本发明实施例中,获取当前的CPU运行状态数据,并且将当前的CPU运行状态数据输入贝叶斯网络预测模型,能够得到下一时刻的CPU运行频率。

步骤206,根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频。

对于调频,其可以为对CPU的CPU运行频率进行动态调频,可以调整为高频率模式也可以调整为低频率模式。

在具体实现中,获取当前的CPU运行状态数据,并且将当前的CPU运行状态数据输入贝叶斯网络预测模型,能够得到下一时刻的CPU运行频率,从而可以根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。

在本发明实施例中,获取CPU的CPU运行状态数据,并将CPU运行状态数据作为初始先验数据,然后根据初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,再根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,进而将目标先验数据输入至目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,并且,不断获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,预测得到下一时刻的CPU运行频率,从而根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。本发明实施例中,通过系统当前时刻的CPU运行状态能够提前预测CPU下一时刻的运行频率,进而主动调整CPU的CPU运行频率,降低了CPU从高频模式到低频模式过程中造成的大量性能损耗,使其在性能和节能功耗之间达到更好的平衡。

在一种可选实施例中,在所述步骤201、获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据之前,所述方法还包括:

根据先验知识,得到多个影响所述CPU的CPU运行状态的因素所对应的父节点或中间节点;其中,将所述CPU的CPU运行频率作为子节点;

根据所述因素所对应的父节点或中间节点以及所述CPU的CPU运行频率所对应的子节点,构建初始贝叶斯网络结构。

其中,对于初始贝叶斯网络结构,其为预设的初始贝叶斯网络结构,其可以根据先验知识,得到多个影响CPU的CPU运行状态的因素,从而可以根据因素和CPU的CPU运行频率,构建初始贝叶斯网络结构。其中,先验知识为先于经验的知识,其可以用于分析影响CPU的CPU运行状态的因素,如图3所示,各个因素对应为初始贝叶斯网络结构中的父节点或中间节点,如图3中的父节点A、父节点B、父节点C、父节点D和父节点E,以及图3中的中间节点E,CPU的CPU运行频率对应为初始贝叶斯网络结构中的子节点,如图中的子节点M。

在具体实现中,如图3所示,节点A可以表示为CPU电压,CPU电压的不同可能会对CPU的运行频率产生影响;节点B可以表示为CPU电流,CPU电流的不同可能会对CPU的运行频率产生影响;节点C可以表示为三级缓存(L3 cache)的命中率,三级缓存的命中率不同,系统的运行状态也会不同,可能导致CPU的运行频率不同;节点D可以表示为二级缓存(L2cache)的命中率,二级缓存的命中率不同,系统的运行状态也会不同,可能导致CPU的运行频率不同;节点E可以表示为内存利用率,其中,节点C和节点D是节点E的父节点,但节点C和节点D并不是完全决定节点E,而是指二级缓存和三级缓存的命中率和内存利用率有一定关系,内存利用率的不同可能会对CPU运行频率产生影响;节点F可以表示IO(Input/Output输入/输出)利用率,IO利用率不同,说明当前系统所处的运行状态不同,不同的IO利用率可能需要CPU运行在不同的频率下;节点G:该节点可以表示为CPU温度,该节点主要是从安全的角度出发,CPU温度影响着CPU的运行频率,要保证CPU运行在正常的温度范围;节点H:该节点可以表示为系统当前负载,当前系统负载不同,需要CPU运行在不同的频率下以适应当前系统负载;节点M可以表示为CPU运行频率,是上述节点的子节点,上述节点所代表的因素都直接或者间接影响着CPU运行频率,综合各影响因素最终决定CPU运行频率。

具体地,初始贝叶斯网络结构中存在节点集,主要包括三种节点,第一种是目标节点,目标节点主要可以表示为需要解决的问题,决策过程就是计算目标的后验概率,通过证据推理可以对目标节点进行决策,即图3中的子节点M;第二种是证据节点,证据节点是在推理时输入的节点,它属于可观测的节点,一般属于已知条件,即图3中的父节点A、父节点B、父节点C、父节点D、父节点F、父节点G、父节点H;第三种是中间节点,中间节点是除前两种节点之外的节点,即图3中的中间节点E。对于节点值如何划分的问题主要是为所选因素状态的划分,对于每一个因素范围都是一个完整的空间状态,然后对每个空间进行连续的划分,这个因素落在哪一个区间范围即为该节点的取值,每个状态都是相互独立的,在本发明实施例的初始贝叶斯网络结构设计模型中,由于数据集是实际生产数据,因此可获得的数据集足够大,因此,每一个节点值的划分都可以为CPU的实际运行状态。其中,对于证据节点(例如:图3中的父节点A)和中间节点(如图3中的中间节点E)的数据可以取CPU实际运行数据,而目标节点(如图3中的子节点M)的取值可以定义为Powersave模式到Performance模式之间的频率值,即,将CPU的运行频率所对应的频率值定义为最高频率模式和最低频率模式之间的频率值。

在本发明实施例中,根据先验知识,得到多个影响CPU的CPU运行状态的因素所对应的父节点或中间节点,其中,将CPU的CPU运行频率作为子节点,根据因素所对应的父节点或中间节点以及CPU的CPU运行频率所对应的子节点,构建初始贝叶斯网络结构。

在一种可选实施例中,所述初始贝叶斯网络结构中包含多个节点,所述步骤202、根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,包括:

计算所述初始贝叶斯网络结构中各个所述节点相互间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

根据各个所述节点对应的互信息值的大小关系,确定所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

具体地,通过上述步骤收集了很多能够影响CPU运行频率的数据,并对各种影响因素进行了全面的收集,而在这些数据中,真正决定或者影响CPU运行频率的数据可能只占一部分,并不是所有的数据都和CPU运行频率强相关,并且把所有的数据作为先验知识会造成贝叶斯网络预测模型过于复杂,从而造成预测模型预测准确率降低,因此需要对初始贝叶斯网络结构进行优化,对初始贝叶斯网络中的节点数进行精简,在本发明实施例中主要采用互信息理论。

其中,对于互信息理论,其可以用来描述两个信号相互间的统计相关性的相似性度量方式,具体地采用信息熵的概念来表示,其主要描述了当前系统中信息的总体特征,即包含信息量的多少。当前系统变量的不确定度大的时候,对应信息熵也较大。其中,计算初始贝叶斯网络结构中每一个节点相互之间的信息熵,即计算节点之间的互信息值,互信息值越大,说明相关性越强,保留互信息值大的节点,需要说明的是,对于互信息值大小的确定没有绝对标准,主要通过对比各个节点互信息值的大小,去除互信息值明显小的节点,如果各个节点的互信息值差别不大,则全部节点都需要保留。本领域技术人员可以根据实际情况对互信息值的保留范围进行调整,本发明实施例对此不作限制。

其中,对于节点,其可以包括父节点、中间节点和子节点;对于信息熵,其对应的数值可以用互信息值表示;对于目标节点,其可以表示为在删除部分节点后保留下来的节点,即保留互信息值大的节点为目标节点。

在本发明实施例中,收集各个针对初始贝叶斯网络结构中父节点的数据,根据父节点的数据,计算初始贝叶斯网络结构中各个父节点和子节点之间的信息熵,其中,将信息熵对应的数值称为互信息值,接着,删除小于预设互信息值的互信息值对应的父节点,将剩余的父节点作为初始贝叶斯网络结构需要保留的目标节点,其中,互信息值越大,说明相关性越强,保留互信息值大的节点,需要说明的是,对于互信息值大小的确定没有绝对标准,主要通过对比各个节点互信息值的大小,去除互信息值明显小的节点,如果各个节点的互信息值差别不大,则全部节点都需要保留;最后根据保留下来的目标节点,构建成优化后的目标贝叶斯网络结构。

在一种可选实施例中,所述步骤203、根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据,包括:

在删除小于预设互信息值的互信息值对应的节点后,将被删除的所述节点对应的数据删除;

将所述目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

其中,对于目标贝叶斯网络结构,其可以为对初始贝叶斯网络结构进行优化而得到的贝叶斯网络结构,即,对初始贝叶斯网络结构中的节点数进行精简,利用剩下的节点构建而成的目标贝叶斯网络结构。

对于目标先验数据,其可以为优化后的初始先验数据,目标先验数据可以为在删除小于预设互信息值的互信息值对应的节点后,即,在删除互信息值小的节点后,将被删除的节点对应的数据删除,将目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据,可以理解的是,目标先验数据为对初始先验数据进行初步处理,具体是对异常数据的剔除后的数据。

在本发明实施例中,在删除小于预设互信息值的互信息值对应的节点后,将被删除的节点对应的数据删除,将目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据,具体地,根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,可以理解的是,在删除互信息值小的节点后,将被删除的节点对应的数据删除,将目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

在一种可选实施例中,所述步骤204、将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,包括:

将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到针对所述目标贝叶斯网络结构中各个所述节点的条件概率表;

将各个所述节点对应的条件概率表和所述目标贝叶斯网络结构结合,得到贝叶斯网络预测模型。

对于条件概率表,其可以用于表示节点的不同取值对应的概率,其为将目标先验数据输入至目标贝叶斯网络结构进行训练而得到的针对目标贝叶斯网络结构中各个节点的条件概率表。需要说明的是,本发明实施例中所采用的获取条件概率表的方法为最大似然估计法,最大似然估计法主要根据概率分布和样本集来计算出使样本集可能性最大的分布参数,即目标贝叶斯网络结构模型中各个节点的条件概率表。需要说明的是,对于各个节点的条件概率表的计算方法,本领域技术人员可以根据实际情况选取,本发明实施例对此不作限制。

在一种示例中,如图3所示,假设节点在没有父节点的情况下,以A节点为例,对于A节点的取值可以为一个数值级别上的统计,假设A节点一共有100条数据,A节点可能有10种取值,在10种取值中取值为5的有20条数据,那么A节点取值为5的概率为0.2。需要说明的是,本发明实施例中所采用的获取条件概率表的方法为最大似然估计法,由于最大似然估计法为现有的计算方法,本发明实施例在此不做赘述。

其中,对于贝叶斯网络预测模型,其可以为各个节点对应的条件概率表和目标贝叶斯网络结构结合而构成的,贝叶斯网络预测模型用于预测下一时刻的CPU运行频率的预测模型。

在本发明实施例中,将目标先验数据输入至目标贝叶斯网络结构进行训练,得到针对目标贝叶斯网络结构中各个节点的条件概率表,从而将各个节点对应的条件概率表和目标贝叶斯网络结构结合,得到贝叶斯网络预测模型。

在一种可选实施例中,所述步骤205、获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率,包括:

收集针对所述目标贝叶斯网络结构中各个所述父节点的数据;

将各个所述父节点对应的数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率。

对于父节点的数据,其可以为当前的CPU运行状态数据。其中,CPU运行状态数据主要为对CPU运行频率有影响的数据或者和CPU运行频率大小有关系的数据以及对应的频率数据,CPU运行状态数据可以包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存(L3Cache)访问次数、二级缓存(L2Cache)访问次数和CPU利用率,需要说明的是,CPU运行状态的信息在实际的运行过程中,可能远不止上述列举的数据,本领域技术人员可以根据实际情况进行调整,本发明实施例对此不作限制。对于当前的CPU运行状态数据,即为当前时刻的CPU运行状态数据。具体地,在系统运行过程中,不断收集CPU运行状态数据,同时把相关数据作为目标先验数据存储起来,不断更新目标贝叶斯网络结构中的节点对应的条件概率表,不断提高贝叶斯网络预测模型的预测准确率。

对于贝叶斯网络预测模型,其可以用于预测下一时刻的CPU运行频率的预测模型;对于下一时刻的CPU运行频率,其为针对当前时刻CPU运行频率的下一时刻的CPU运行频率。

在一种示例中,以优化后的目标先验数据对目标贝叶斯网络结构进行训练,最终获得贝叶斯网络预测模型,输入当前时刻的CPU运行状态数据(如图3中各个父节点的值,例如父节点A、父节点B),通过贝叶斯网络预测模型预测得到下一时刻CPU运行频率(如图3中子节点M的值),最终把下一时刻CPU频率传输到频率调整模块,使其生效。其中,对于频率调整模块,其可以为用于进行CPU运行频率调整的模块。

在本发明实施例中,收集针对目标贝叶斯网络结构中各个父节点的数据,将各个父节点对应的数据输入贝叶斯网络预测模型,得到下一时刻的CPU运行频率。即获取当前的CPU运行状态数据,并且将当前的CPU运行状态数据输入贝叶斯网络预测模型,能够得到下一时刻的CPU运行频率。

在一种可选实施例中,所述步骤206、根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频,包括:

若所述频率值不在预设频率范围内,则根据所述预设频率范围对所述频率值进行调整;

若所述频率值在预设频率范围内,则根据所述频率值对所述CPU的CPU运行频率进行调频。

其中,对于频率值,其可以为CPU的下一时刻的CPU运行频率所对应的频率值;对于预设频率范围,其可以为CPU运行在最高频率模式和最低频率模式之间的频率值范围。

在具体实现中,在获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,得到下一时刻的CPU运行频率之后,将下一时刻的CPU运行频率写入频率调整模块中的寄存器,其中,寄存器可以用于存储下一时刻的CPU运行频率对应的频率值,从而利用频率调整模块读取寄存器存储的下一时刻的CPU运行频率对应的频率值,判断频率值是否满足预设频率范围并对频率值进行处理,若频率值不在预设频率范围内,则根据预设频率范围对频率值进行调整,若频率值在预设频率范围内,则根据频率值对CPU的CPU运行频率进行调频。

在本发明实施例中,获取CPU的CPU运行状态数据,并将CPU运行状态数据作为初始先验数据,然后根据初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,再根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,进而将目标先验数据输入至目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,并且,不断获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,预测得到下一时刻的CPU运行频率,从而根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。本发明实施例中,通过系统当前时刻的CPU运行状态能够提前预测CPU下一时刻的运行频率,进而主动调整CPU的CPU运行频率,降低了CPU从高频模式到低频模式过程中造成的大量性能损耗,使其在性能和节能功耗之间达到更好的平衡。

为了使本领域技术人员更好地理解本发明实施例的技术方案,下面通过具体示例进行示例性说明。

由上述可知,在本发明实施例中,可以将调频策略分为四个模块,数据收集模块、数据存储模块、预测模型训练模块和频率调模块。

对于数据收集模块,其主要负责CPU运行状态数据的收集,主要收集对CPU运行频率有影响的数据或者和运行频率大小有关系的数据以及对应的频率数据,主要包括CPU电压、CPU电流、CPU温度、系统当前负载、内存利用率、磁盘利用率、三级缓存(L3Cache)访问次数、二级缓存(L2Cache)访问次数和CPU利用率等。在数据收集的过程中,收集的CPU运行状态数据需要足够全面,同时需要保证收集到完整业务周期的数据。因此,在系统运行过程中还要不断收集最新的CPU运行状态数据,其中,数据收集周期可以根据实际情况进行设置,将收集的数据存入数据存储模块。

对于数据存储模块,其主要用于存储CPU运行状态数据,接收数据收集模块发送的数据,对数据进行初步处理,具体是异常数据的剔除,处理之后的数据作为目标先验数据提供给目标贝叶斯网络结构使用,目标贝叶斯网络结构使用之后,根据目标贝叶斯网络结构进行训练的结果对存储的数据进行优化,优化之后的数据作为最终的目标先验数据。

对于预测模型训练模块,贝叶斯网络结构模型主要分两大部分:贝叶斯网络结构的构建和贝叶斯网络结构中每一个节点对应的条件概率表的构建。该模块根据数据收集模块使用的先验知识,构建初始贝叶斯网络结构,构建初始贝叶斯网络结构之后,输入数据存储模块的先验数据,依据先验数据和初始贝叶斯网络结构,通过互信息理论对构建的贝叶斯网络进行优化得到目标贝叶斯网络结构,再根据优化后的目标贝叶斯网络结构,对数据存储模块的初始先验数据进行优化,保留贝叶斯网络中剩余节点对应的数据作为最终的先验数据以作为目标先验数据,以优化后的目标先验数据对优化后的目标贝叶斯网络进行训练,获取目标贝叶斯网络中每一个节点对应的条件概率表,根据条件概率表,最终确定CPU频率的贝叶斯网络预测模型。在系统运行过程中,不断收集CPU运行状态数据,同时把相关数据存储于数据存储模块,不断更新目标贝叶斯网络结构中节点对应的条件概率表,不断提高预测模型预测准确率。

对于频率调整模块,其可以通过贝叶斯网络预测模型预测的CPU运行频率发送至频率调整模块,频率调整模块使其生效,从而达到一个动态调频的过程。

参照图4,示出了本发明实施例中提供的一种调频方法的流程示意图之一,如图中所示,在本发明实施例中,主要包含两个部分,首先为模型构建、优化、训练这一部分和和频率预测这一部分。

具体地,模型构建、优化、训练这一部分具体步骤可以为:

S11、首先根据先验知识构建初始贝叶斯网络结构。

S12、根据初始先验数据通过互信息理论对初始贝叶斯网络结构进行优化,得到优化后的目标贝叶斯网络结构。

S13、根据目标贝叶斯网络结构对初始先验数据进行优化,保留优化后目标贝叶斯网络结构中存在的剩余节点的相关数据作为目标先验数据。

S14、将目标先验数据输入至目标贝叶斯网络结构进行训练,根据目标先验数据以及目标贝叶斯网络结构计算每一个节点对应的条件概率表,由条件概率表和目标贝叶斯网络结构相结合得到贝叶斯网络预测模型。

其中,频率预测这一部分具体步骤可以为:

S21、获取当前时刻的CPU运行状态数据。

S22、将当前时刻的CPU运行状态数据输入贝叶斯网络预测模型。

S23、得到下一时刻的CPU运行频率。

S24、将得到的下一时刻的CPU运行频率发送到频率调整模块,对CPU的CPU运行频率进行调频。

参照图5,示出了本发明实施例中提供的一种调频方法的流程示意图之二,如图5所示,本发明实施例以Openpower架构服务器为例,Openpower架构服务器包含CME芯片、PGPE芯片和PMCR寄存器,其所对应的调频步骤可以为:

S31、依据先验知识,分析能表示CPU运行状态的元素和CPU频率之间关系,构建初始贝叶斯网络结构。

S32、依据初始贝叶斯网络结构收集各个父节点的数值,收集数据的方式主要有两种:直接收集传感器数据进行计算和以传感器数据为基础进行计算。

S33、计算初始贝叶斯网络结构中各个父节点和频率值节点M子节点之间的互信息值。

S34、将互信息值较小的节点删除,对初始贝叶斯网络进行优化,提高贝叶斯网络预测模型的预测准确率。

S32、获取优化之后的目标贝叶斯网络结构。

S32、目标贝叶斯网络结构优化完成之后,根据目标贝叶斯网络结构中剩余节点,优化数据存储模块的初始先验数据,只保留网络结构中剩余节点的相关数据作为最终的先验数据作为目标先验数据。

S32、以数据存储模块中的数据作为目标先验数据,对目标贝叶斯网络结构进行训练,获取每一个节点的条件概率表,把每一个节点的条件概率表和整体目标贝叶斯网络结构相结合获得最终的贝叶斯网络预测模型。

S32、在系统在运行的过程中,继续不断的获取最新的初始先验数据,更新条件概率表,定期持续训练预测模型,达到对预测模型持续优化的目的,提高预测模型的预测准确率。

S32、系统在运行过程中不断获取当前时刻CPU运行状态(贝叶斯网络模型中父节点的值)数据,输入贝叶斯网络预测模型,获取下一时刻CPU运行频率(节点M的值)。

S32、把子节点M的值写入PMCR寄存器。

S32、CME芯片能够响应PMCR寄存器的更改,从PMCR寄存器中读取下一时刻CPU运行频率对应的Pstate值发送至PGPE芯片。

S32、PGPE芯片对该Pstate值进行合理性判断,如果该频率值不在合理范围内,则对该频率值进行调整,否则对该频率值不做调整发送至CME芯片。

S32、CME芯片使该频率值生效,从而达到CPU运行频率的动态调频。

参照图6,示出了本发明实施例中提供的一种调频方法的流程示意图之三,如图6中所示,具体步骤可以为:

S4、首先是初始贝叶斯网络结构构建,具体步骤如下:

S41、首先输入网络结构总的节点个数。

S42、以此输入每一个节点编号,A(CPU电压)、B(CPU电流)、C(L3 cache命中率)、D(L2 cache命中率)、E(内存利用率)...等。

S43、确定每一个节点可能取值的个数,例如:N=[3 4 2 2 2....],每一个数值和第二步的输入节点的顺序相对应,通过第二和第三步可得节点E的取值可能有两种,需要说明的是,实际的生产环境数据E节点的取值可能有十几种,本领域技术人员可以根据实际情况进行选取,本发明实施例对此不作限制。

S44、描述节点间关系,如果两个节点之间存在联系,两节点间取值为1,即:dag(A,M)=1,如果节点之间没有任何联系,则不做任何说明。

S5、初始贝叶斯网络结构优化,具体步骤如下:

S51、根据数据库中的初始先验数据,计算初始贝叶斯网络结构中有关联的节点间的互信息值,根据互信息值,删除互信息值较小的节点,完成对初始贝叶斯网络结构的优化,合理的降低模型复杂度,使预测准确率更高,根据优化后的目标贝叶斯网络结构再对数据库中初始先验数据进行优化,只保留优化后网络结构中节点的相关数据作为目标先验数据。

S6、目标贝叶斯网络结构构建,具体步骤如下:

S61、输入优化后剩余节点个数。

S62、以此输入剩余节点编号。

S63、输入剩余节点的可能取值个数。

S64、描述剩余节点间关系。

S7、目标贝叶斯网络结构参数学习,具体步骤如下:

S71、结合步骤S6的目标贝叶斯网络结构和数据库中目标先验数据通过最大似然估计法学习。

S72、获得每一个节点的条件概率表。

S71、节点的条件概率表主要是说明该节点在父节点的不同取值下,该节点的每一种取值的概率。以E节点为例,条件概率表如图6,该图说明了节点E在父节点C和D的不同取值情况下每一种取值的概率。

S72、但是在描述节点的条件概率表时,描述方式为:

E=[0.1 0.15 0.8 1 0.9 0.85 0.2 0 ] ,在贝叶斯网络结构构建中输入了每一个节点的可能取值个数,每一个节点的可能取值个数是多少,该节点参数描述就分成多少份,每一份对应位置的数据和为1。

S8、贝叶斯网络预测模型构建,具体步骤如下:

S81、根据步骤S6构建的优化后的目标贝叶斯网络结构,步骤S7学习的目标贝叶斯网络结构参数,由参数和结构结合获得贝叶斯网络预测模型。

S9、贝叶斯网络推理,具体步骤如下:

在系统运行过程中,获取当前时刻CPU运行状态数据,即证据节点(父节点A、父节点B、父节点C等)的数值,以证据节点作为输入,输入贝叶斯网络预测模型,通过联合树算法推理获得目标节点M的值,即下一时刻CPU频率。从而可以根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。

在本发明实施例中,获取CPU的CPU运行状态数据,并将CPU运行状态数据作为初始先验数据,然后根据初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构,再根据目标贝叶斯网络结构对初始先验数据进行优化,得到目标先验数据,进而将目标先验数据输入至目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型,并且,不断获取当前的CPU运行状态数据,将当前的CPU运行状态数据输入贝叶斯网络预测模型,预测得到下一时刻的CPU运行频率,从而根据下一时刻的CPU运行频率,对CPU的CPU运行频率进行调频。本发明实施例中,通过系统当前时刻的CPU运行状态能够提前预测CPU下一时刻的运行频率,进而主动调整CPU的CPU运行频率,降低了CPU从高频模式到低频模式过程中造成的大量性能损耗,使其在性能和节能功耗之间达到更好的平衡。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图7,示出了本发明实施例中提供的一种调频装置的结构框图,具体可以包括如下模块:

初始先验数据获取模块701,用于获取CPU的CPU运行状态数据,并将所述CPU运行状态数据作为初始先验数据;

目标贝叶斯网络结构构建模块702,用于根据所述初始先验数据对预设的初始贝叶斯网络结构进行优化,得到目标贝叶斯网络结构;

目标先验数据获取模块703,用于根据所述目标贝叶斯网络结构对所述初始先验数据进行优化,得到目标先验数据;

贝叶斯网络预测模型构建模块704,用于将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到贝叶斯网络预测模型;

下一时刻CPU运行频率预测模块705,用于获取当前的CPU运行状态数据,将所述当前的CPU运行状态数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率;

CPU频率调节模块706,用于根据所述下一时刻的CPU运行频率,对所述CPU的CPU运行频率进行调频。

在一种可选实施例中,所述装置还包括:

影响因素确定模块,用于根据先验知识,得到多个影响所述CPU的CPU运行状态的因素;

第一初始贝叶斯网络结构构建模块,用于根据所述因素和所述CPU的CPU运行频率,构建初始贝叶斯网络结构。

在一种可选实施例中,所述装置还包括:

节点确定模块,用于根据先验知识,得到多个影响所述CPU的CPU运行状态的因素所对应的父节点或中间节点;其中,将所述CPU的CPU运行频率作为子节点;

第二初始贝叶斯网络结构构建模块,用于根据所述因素所对应的父节点或中间节点以及所述CPU的CPU运行频率所对应的子节点,构建初始贝叶斯网络结构。

在一种可选实施例中,所述初始贝叶斯网络结构中包含多个节点,所述目标贝叶斯网络结构构建模块702具体用于:

计算所述初始贝叶斯网络结构中各个所述节点相互间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

根据各个所述节点对应的互信息值的大小关系,确定所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

在一种可选实施例中,所述装置还包括:

目标节点确定模块,用于根据各个所述节点对应的互信息值的大小关系,删除小于预设互信息值的互信息值对应的节点,将剩余的节点作为所述初始贝叶斯网络结构需要保留的目标节点。

在一种可选实施例中,所述节点包括父节点和子节点,所述装置还包括:

父节点数据收集模块,用于收集各个针对所述初始贝叶斯网络结构中所述父节点的数据;

信息熵计算模块,用于根据所述父节点的数据,计算各个所述父节点和所述子节点之间的信息熵。

在一种可选实施例中,所述目标贝叶斯网络结构构建模块702具体用于:

计算所述初始贝叶斯网络结构中各个所述父节点和所述子节点之间的信息熵;其中,将所述信息熵对应的数值称为互信息值;

删除小于预设互信息值的互信息值对应的父节点,将剩余的父节点作为所述初始贝叶斯网络结构需要保留的目标节点;

根据所述目标节点,得到目标贝叶斯网络结构。

在一种可选实施例中,所述目标先验数据获取模块703具体用于:

在删除小于预设互信息值的互信息值对应的节点后,将被删除的所述节点对应的数据删除;

将所述目标贝叶斯网络结构中剩余的节点所对应的数据作为目标先验数据。

在一种可选实施例中,所述贝叶斯网络预测模型构建模块704具体用于:

将所述目标先验数据输入至所述目标贝叶斯网络结构进行训练,得到针对所述目标贝叶斯网络结构中各个所述节点的条件概率表;

将各个所述节点对应的条件概率表和所述目标贝叶斯网络结构结合,得到贝叶斯网络预测模型。

在一种可选实施例中,所述下一时刻CPU运行频率预测模块705具体用于:

收集针对所述目标贝叶斯网络结构中各个所述父节点的数据;

将各个所述父节点对应的数据输入所述贝叶斯网络预测模型,得到下一时刻的CPU运行频率。

在一种可选实施例中,所述初始先验数据获取模块701具体用于:

周期性地获取所述CPU的CPU运行状态数据,定期更新所述初始先验数据。

在一种可选实施例中,所述CPU内置有寄存器,所述装置还包括:

频率值读取模块,用于将所述下一时刻的CPU运行频率写入所述CPU中的寄存器,以从所述寄存器中读取所述下一时刻的CPU运行频率对应的频率值。

在一种可选实施例中,所述CPU频率调节模块706具体用于:

若所述频率值不在预设频率范围内,则根据所述预设频率范围对所述频率值进行调整;

若所述频率值在预设频率范围内,则根据所述频率值对所述CPU的CPU运行频率进行调频。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述调频方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

图8是本发明实施例中提供的一种计算机可读存储介质的结构示意图;

本发明实施例还提供了一种计算机可读存储介质801,计算机可读存储介质801上存储有计算机程序,计算机程序被处理器执行时实现上述调频方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质801,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。

图9为实现本发明各个实施例的一种电子设备的硬件结构示意图。

该电子设备900包括但不限于:射频单元901、网络模块902、音频输出单元903、输入单元904、传感器905、显示单元906、用户输入单元907、接口单元908、存储器909、处理器910、以及电源911等部件。本领域技术人员可以理解,图9中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。

应理解的是,本发明实施例中,射频单元901可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器910处理;另外,将上行的数据发送给基站。通常,射频单元901包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元901还可以通过无线通信系统与网络和其他设备通信。

电子设备通过网络模块902为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。

音频输出单元903可以将射频单元901或网络模块902接收的或者在存储器909中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元903还可以提供与电子设备900执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元903包括扬声器、蜂鸣器以及受话器等。

输入单元904用于接收音频或视频信号。输入单元904可以包括图形处理器(Graphics Processing Unit,GPU)9041和麦克风9042,图形处理器9041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元906上。经图形处理器9041处理后的图像帧可以存储在存储器909(或其它存储介质)中或者经由射频单元901或网络模块902进行发送。麦克风9042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元901发送到移动通信基站的格式输出。

电子设备900还包括至少一种传感器905,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板9061的亮度,接近传感器可在电子设备900移动到耳边时,关闭显示面板9061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器905还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。

显示单元906用于显示由用户输入的信息或提供给用户的信息。显示单元906可包括显示面板9061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode, OLED)等形式来配置显示面板9061。

用户输入单元907可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元907包括触控面板9071以及其他输入设备9072。触控面板9071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板9071上或在触控面板9071附近的操作)。触控面板9071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器910,接收处理器910发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板9071。除了触控面板9071,用户输入单元907还可以包括其他输入设备9072。具体地,其他输入设备9072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

进一步的,触控面板9071可覆盖在显示面板9061上,当触控面板9071检测到在其上或附近的触摸操作后,传送给处理器910以确定触摸事件的类型,随后处理器910根据触摸事件的类型在显示面板9061上提供相应的视觉输出。虽然在图9中,触控面板9071与显示面板9061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板9071与显示面板9061集成而实现电子设备的输入和输出功能,具体此处不做限定。

接口单元908为外部装置与电子设备900连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元908可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备900内的一个或多个元件或者可以用于在电子设备900和外部装置之间传输数据。

存储器909可用于存储软件程序以及各种数据。存储器909可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器909可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

处理器910是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器909内的软件程序和/或模块,以及调用存储在存储器909内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器910可包括一个或多个处理单元;优选的,处理器910可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器910中。

电子设备900还可以包括给各个部件供电的电源911(比如电池),优选的,电源911可以通过电源管理系统与处理器910逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

另外,电子设备900包括一些未示出的功能模块,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术分类

06120115638163