CN107515663A - 调整中央处理器内核运行频率的方法和装置 - Google Patents
调整中央处理器内核运行频率的方法和装置 Download PDFInfo
- Publication number
- CN107515663A CN107515663A CN201610425809.8A CN201610425809A CN107515663A CN 107515663 A CN107515663 A CN 107515663A CN 201610425809 A CN201610425809 A CN 201610425809A CN 107515663 A CN107515663 A CN 107515663A
- Authority
- CN
- China
- Prior art keywords
- central processor
- processor core
- running frequency
- access
- utilization rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了调整中央处理器内核运行频率的方法和装置。所述方法的一具体实施方式包括:每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据;对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;基于所述预测利用率,调整所述中央处理器内核的运行频率。该实施方式在满足CPU处理任务需要的同时,有效地控制了CPU内核的运行频率,从而降低了CPU的功耗,实现了节能。
Description
技术领域
本申请涉及计算机控制领域,尤其涉及处理器控制领域,具体涉及一种调整中央处理器内核运行频率的方法和装置。
背景技术
随着计算机和互联网的普及与快速发展,计算机及其应用在人们日常生活中已经变得无处不在。然而,计算机在丰富人们日常生活的同时,其功耗却越来越高,高功耗会导致计算机系统的运行时间变少,更重要的是会增加计算机设备使用时的温度,进而导致设备寿命的减少。
随着硬件工艺的不断改进,中央处理器(Central Processing Unit,CPU)的功耗在计算机设备功耗中的占比越来越高,现在已经达到了25%,所以减少中央处理器的功耗对于延长整个计算机设备的使用寿命就变得非常重要。目前,在减少中央处理器的功耗方面,主要有动态电压与频率调节(Dynamic Voltage and Frequency Scaling,DVFS)技术、动态功耗管理(Dynamic Power Management,DPM)技术、温度管理技术以及根据中央处理器的空闲时间和繁忙时间来自动设置中央处理器频率的PAST方法等。上述方法在降低中央处理器的功耗方面的效果仍然有限,因此,人们需要一种更有效的中央处理器的节能方法。
发明内容
本申请的目的在于提出一种调整中央处理器内核运行频率的方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种调整中央处理器内核运行频率的方法,所述方法包括:每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,所述第二预设时间段小于或等于所述第一预设时间段;对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;基于所述预测利用率,调整所述中央处理器内核的运行频率。
在一些实施例中,在所述调整所述中央处理器内核的运行频率之后,所述方法还包括:利用系统函数采集所述中央处理器内核的实际利用率。
在一些实施例中,所述监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,包括:利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
在一些实施例中,所述对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理,包括:根据所述时钟周期的数量及所述指令完成的数量,计算每个时钟周期内完成的指令数;和/或根据所述访问一级缓存的次数及所述访问一级缓存未命中的次数,计算访问一级缓存未命中的比例;和/或根据所述访问二级缓存的次数及所述访问二级缓存未命中的次数,计算访问二级缓存未命中的比例;和/或根据所述访问三级缓存的次数及所述访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
在一些实施例中,在所述将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型之前,所述方法还包括:创建中央处理器内核利用率预测模型;提取所述计算处理得到的结果中最后一次采集操作之前采集的运行频率及影响所述中央处理器内核运行频率的事件的数据对应的结果;利用提取的结果训练创建的中央处理器内核利用率预测模型;将符合预设误差的中央处理器内核利用率预测模型作为所述预设的中央处理器内核利用率预测模型。
在一些实施例中,所述将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,包括:将最后一次采集操作采集的运行频率及影响所述中央处理器内核运行频率的事件的数据的计算处理结果作为输入参数导入所述预设的中央处理器内核利用率预测模型,所述计算处理结果包括以下至少一项:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
在一些实施例中,对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理,包括:对以下至少一项进行归一化处理:所述中央处理器内核的运行频率、所述每个时钟周期内完成的指令数、所述访问一级缓存未命中的比例、所述访问二级缓存未命中的比例、所述访问三级缓存未命中的比例、所述进程切换的次数、所述分支预测错误的次数、所述硬件中断的次数。
在一些实施例中,基于所述预测利用率,调整所述中央处理器内核的运行频率,包括:当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率;当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,所述第二预设值小于第一预设值。
在一些实施例中,所述当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率,包括:当所述预测利用率大于所述第一预设值且所述中央处理器内核当前的运行频率不等于最大运行频率时,判断当前预测利用率之前采集的N个实际利用率是否均大于所述第一预设值,N为预设正整数;响应于当前预测利用率之前采集的N个实际利用率均大于所述第一预设值,将所述中央处理器内核的运行频率调整至所述最大运行频率;响应于当前预测利用率之前采集的N个实际利用率中的至少一个小于所述第一预设值,将所述中央处理器内核的运行频率增大第三预设值。
在一些实施例中,当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,包括:当所述预测利用率小于所述第二预设值且所述中央处理器内核当前的运行频率不等于最小运行频率时,判断当前预测利用率之前采集的M个实际利用率是否均小于所述第二预设值,M为预设正整数;响应于当前预测利用率之前采集的M个实际利用率均小于所述第二预设值,将所述中央处理器内核的运行频率调整至所述最小运行频率;响应于当前预测利用率之前采集的M个实际利用率中的至少一个大于所述第二预设值,将所述中央处理器内核的运行频率降低第四预设值。
第二方面,本申请提供一种调整中央处理器内核运行频率的装置,所述装置包括:第一采集单元,用于每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;监测单元,用于监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,所述第二预设时间段小于或等于所述第一预设时间段;计算单元,用于对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;预测单元,用于将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;调整单元,用于基于所述预测利用率,调整所述中央处理器内核的运行频率。
在一些实施例中,所述装置还包括:第二采集单元,用于在所述调整单元调整所述中央处理器内核的运行频率之后,利用系统函数采集所述中央处理器内核的实际利用率。
在一些实施例中,所述监测单元进一步用于:利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
在一些实施例中,所述计算单元包括:第一计算模块,用于根据所述时钟周期的数量及所述指令完成的数量,计算每个时钟周期内完成的指令数;和/或第二计算模块,用于根据所述访问一级缓存的次数及所述访问一级缓存未命中的次数,计算访问一级缓存未命中的比例;和/或第三计算模块,用于根据所述访问二级缓存的次数及所述访问二级缓存未命中的次数,计算访问二级缓存未命中的比例;和/或第四计算模块,用于根据所述访问三级缓存的次数及所述访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
在一些实施例中,所述装置还包括:创建单元,用于在所述计算单元将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型之前,创建中央处理器内核利用率预测模型;提取单元,用于提取所述计算处理得到的结果中最后一次采集操作之前采集的运行频率及影响所述中央处理器内核运行频率的事件的数据对应的结果;训练单元,用于利用提取的结果训练创建的中央处理器内核利用率预测模型;确定单元,用于将符合预设误差的中央处理器内核利用率预测模型作为所述预设的中央处理器内核利用率预测模型。
在一些实施例中,所述预测单元,进一步用于:将最后一次采集操作采集的运行频率及影响所述中央处理器内核运行频率的事件的数据的计算处理结果作为输入参数导入所述预设的中央处理器内核利用率预测模型,所述计算处理结果包括以下至少一项:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
在一些实施例中,所述计算单元包括:归一化模块,用于对以下至少一项进行归一化处理:所述中央处理器内核的运行频率、所述每个时钟周期内完成的指令数、所述访问一级缓存未命中的比例、所述访问二级缓存未命中的比例、所述访问三级缓存未命中的比例、所述进程切换的次数、所述分支预测错误的次数、所述硬件中断的次数。
在一些实施例中,所述调整单元包括:增大模块,用于当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率;降低模块,用于当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,所述第二预设值小于第一预设值。
在一些实施例中,所述增大模块包括:第一判断子模块,用于当所述预测利用率大于所述第一预设值且所述中央处理器内核当前的运行频率不等于最大运行频率时,判断当前预测利用率之前采集的N个实际利用率是否均大于所述第一预设值,N为预设正整数;第一增大子模块,用于响应于当前预测利用率之前采集的N个实际利用率均大于所述第一预设值,将所述中央处理器内核的运行频率调整至所述最大运行频率;第二增大子模块,用于响应于当前预测利用率之前采集的N个实际利用率中的至少一个小于所述第一预设值,将所述中央处理器内核的运行频率增大第三预设值。
在一些实施例中,所述降低模块包括:第二判断子模块,用于当所述预测利用率小于所述第二预设值且所述中央处理器内核当前的运行频率不等于最小运行频率时,判断当前预测利用率之前采集的M个实际利用率是否均小于所述第二预设值,M为预设正整数;第一降低子模块,用于响应于当前预测利用率之前采集的M个实际利用率均小于所述第二预设值,将所述中央处理器内核的运行频率调整至所述最小运行频率;第二降低子模块,用于响应于当前预测利用率之前采集的M个实际利用率中的至少一个大于所述第二预设值,将所述中央处理器内核的运行频率降低第四预设值。
本申请提供的调整中央处理器内核运行频率的方法和装置,通过采集CPU内核的运行频率以及监测与CPU内核的运行频率相关的时间的数据,对数据进行进一步处理后导入预设的中央处理器内核利用率预测模型,得到预测的下一时间段的CPU内核的利用率,并根据CPU内核的预测利用率的大小,调整CPU内核的运行频率,在满足CPU处理任务需要的同时,有效地控制了CPU内核的运行频率,从而降低了CPU的功耗,实现了节能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的调整中央处理器内核运行频率的方法的一个实施例的流程图;
图2是根据本申请的调整中央处理器内核运行频率的方法的又一个实施例的流程图;
图3是根据本申请的调整中央处理器内核运行频率的方法的预设的中央处理器内核利用率预测模型的结构示意图;
图4是根据本申请的调整中央处理器内核运行频率的装置的一个实施例的结构示意图;
图5是根据本申请的调整中央处理器内核运行频率的装置的又一个实施例的结构示意图;
图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本申请的调整中央处理器内核运行频率的方法的一个实施例的流程图100。如图1所示,本实施例的调整中央处理器内核运行频率的方法包括以下步骤:
步骤101,每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作。
内核是CPU最核心的地方,其本质是一个由单晶硅制成的芯片,用于计算、存储和处理数据。一个CPU可以包括多个内核,每个内核在执行任务时都会有一定的运行频率。由于操作系统在运行时,必须安装一种CPU频率调节策略,因此,使得CPU在运行不同的任务时会有不同的运行频率。
可以理解的是,本实施例的调整中央处理器内核运行频率的方法适用于每个CPU内核。
步骤102,监测在每次采集操作所属的第二预设时间段内影响中央处理器内核运行频率的事件的数据。
本实施例中,影响CPU内核运行频率的事件可以理解为与CPU资源相关的事件,主要包括:指令执行、访问缓存、硬件中断、上下文切换、分支预测错误。可以理解的是,第二预设时间段小于或等于第一预设时间段。举例来说,设定第一预设时间段为60秒,即每间隔60秒采集CPU内核的运行频率,那么每次采集操作可以在0秒、60秒、120秒……等执行。但每次采集所取的时间段可以是60秒,也可以是小于60秒的其它时间段,例如30秒、10秒等。为了保证数据的正确性,本实施例中,限定第二预设时间段小于或等于第一预设时间段。
步骤103,对运行频率及影响中央处理器内核运行频率的事件的数据进行计算处理。
采集完CPU内核的运行频率,并监测了影响CPU内核运行频率的事件的数据,要对这些数据进行计算处理,以供进一步的使用。
步骤104,将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到中央处理器内核的预测利用率。
本实施例中,预设的中央处理器内核利用率预测模型可以为训练好的径向基函数神经网络(Radical Basis Function,RBF)模型,将对最后一次采集的数据计算处理得到的结果作为输入参数导入径向基函数神经网络中,可以得到预测的下一时间段CPU内核的利用率。
可以理解的是,在执行步骤101和步骤102时,需要选择基准测试程序供CPU执行。基准测试程序是一组专门用于测量计算机性能的程序,这些程序形成负载,供计算机运行。
由于径向基函数神经网络对CPU内核利用率预测的准确度,在很大程度上取决于对径向基函数神经网络的训练数据是否囊括了操作系统中各种任务的运行时特征。为了使径向基函数神经网络对CPU内核利用率的预测更加准确,本实施例中选取CPU运算密集型任务、I/O操作密集型任务和一般任务作为基准测试程序。
其中,CPU运算密集型任务可以为如下程序:两个矩阵相乘,每个矩阵的大小为1000行×1000列,连续计算10次。程序每次运行时的矩阵数据都是从同一个文件中读取,保证了每次计算时矩阵数据相同,文件中的数据为一次性随机生成。I/O操作密集型任务可以为如下程序:读10个文件的内容到内存,再从内存写入另外10个新文件,连续读写5次,文件大小的范围为80MB~350MB。程序每次执行时的读取文件相同。一般任务可以为如下程序:程序周期性睡眠,唤醒后做一些简单的读写文件与计算工作。每次的睡眠时间是随机的,从1~5秒不等,程序的运行时间大于200秒时退出。将运行时间设置为200秒,是为了保证任务每次的执行时间都大致相同。
步骤105,基于上述预测利用率,调整中央处理器内核的运行频率。
当预测的下一时间段CPU内核的利用率较大时,将CPU内核的运行频率调高,当预测的下一时间段CPU内核的利用率较小时,将CPU内核的运行频率调低。
在本实施例的一些可选的实现方式中,在上述步骤105之后,上述方法还包括图1中未示出的以下步骤:
利用系统函数采集中央处理器内核的实际利用率。
本实施例中,在对CPU内核的运行频率调整后,采集CPU内核的实际利用率可以帮助下一次CPU内核运行频率的调整,提高调整的准确度。系统函数是由Linux内核实现的函数其参数传递和调用都是由内核实现的。
在Linux系统中,可以用/proc/stat文件来计算CPU的利用率,/proc/stat文件包含了系统从启动到当前时刻为止的所有CPU活动的信息。
本申请的上述实施例提供的调整中央处理器内核运行频率的方法,通过采集CPU内核的运行频率以及监测与CPU内核的运行频率相关的时间的数据,对数据进行进一步处理后导入预设的中央处理器内核利用率预测模型,得到预测的下一时间段的CPU内核的利用率,并根据CPU内核的预测利用率的大小,调整CPU内核的运行频率,在满足CPU处理任务需要的同时,有效地控制了CPU内核的运行频率,从而降低了CPU的功耗,实现了节能。
图2示出了根据本申请的调整中央处理器内核运行频率的方法的又一个实施例的流程图200。本实施例的调整中央处理器内核运行频率的方法包括以下步骤:
步骤201,每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作。
步骤202,监测在每次采集操作所属的第二预设时间段内影响中央处理器内核运行频率的事件的数据。
在本实施例的一些可选的实现方式中,上述步骤202可以进一步包括图2中未示出的以下步骤:
利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
时钟周期是是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小得多但是交换速度却比内存要快得多。一级缓存(L1cache)内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。二级缓存(L2cache)是为了协调一级缓存与内存之间的速度。二级缓存比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。三级缓存(L3cache)是为读取二级缓存后未命中的数据设计的一种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
当I/O操作从缓存而不是从非易失存储中检索数据时,缓存命中发生。虽然I/O操作从缓存检索了数据,但没有在缓存中发现数据,数据必须从非易失存储读取,称为缓存未命中,缓存未命中增加了I/O操作的时间。
在Linux系统中,可以通过在struct perf_event_attr结构中对监测的事件进行定义。在对事件进行定义时,通常包括事件的类型和具体事件的名称。本实施例中,采用type表示事件的类型,采用config表示事件的名称。对type和config的分类如表1所示。
表1事件的定义参数
根据表1中的参数分类,各事件的type和config字段可以有如下组合:
时钟周期:(1),(4)。指令完成:(1),(5)。访问一级缓存:(3),(10),(13),(16)+(3),(10),(14),(16)+(3),(10),(15),(16)+(3),(11),(13),(16)+(3),(11),(14),(16)+(3)(11)(15)(16)。访问一级缓存未命中:(3),(10),(13),(17)+(3),(10),(14),(17)+(3),(10),(15),(17)+(3),(11),(13),(17)+(3),(11),(14),(17)+(3),(11),(15),(17)。访问二级缓存:与访问一级缓存未命中的数量相等;访问二级缓存未命中:(3),(12)。访问三级缓存:(1),(6)。访问三级缓存未命中:(1),(7)。进程切换:(2),(9)。分支预测错误:(1),(8)。
在Linux系统中,可以用/proc/interrupts文件来监测CPU内核的中断次数,该文件包含了系统从启动到当前时刻为止的各个中断事件在每个CPU内核上的发生次数。
为了全面的考察影响CPU内核运行频率的事件,本实施例中可以对时钟周期的数量、指令完成的数量、访问一级缓存的次数、访问一级缓存未命中的次数、访问二级缓存的次数、访问二级缓存未命中的次数、访问三级缓存的次数、访问三级缓存未命中的次数、进程切换的次数、分支预测错误的次数、硬件中断的次数等事件均进行采集。在实践中可以利用硬件寄存器对上述事件进行持续监测,只要在各事件所使用的系统函数中读取其返回的数据即可得到上述事件的数据。
步骤203,对运行频率及影响中央处理器内核运行频率的事件的数据进行计算处理。
在本实施例的一些可选的实现方式中,上述步骤203可以进一步包括图2中未示出的以下步骤:
根据时钟周期的数量及指令完成的数量,计算每个时钟周期内完成的指令数;和/或
根据访问一级缓存的次数及访问一级缓存未命中的次数,计算访问一级缓存未命中的比例;和/或
根据访问二级缓存的次数及访问二级缓存未命中的次数,计算访问二级缓存未命中的比例;和/或
根据访问三级缓存的次数及访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
每个时钟周期内完成的指令数(Instruction Per Clock,IPC)由时钟周期的数量与指令完成的数量相比计算而得。对同一个程序来说,执行时间越短则单位时间内处理器执行程序中的指令数越多,即每个时钟周期内完成的指令数越大。当IPC增大时,CPU的利用率增加。因此,IPC能够反映CPU内核运行频率的快慢。
访问一级缓存未命中的比例由访问一级缓存的次数及访问一级缓存未命中的次数相比计算而得。访问二级缓存未命中的比例由访问二级缓存的次数及访问二级缓存未命中的次数相比计算而得。访问三级缓存未命中的比例由访问三级缓存的次数及访问三级缓存未命中的次数相比计算而得。
本实施例中,上述计算处理结果可以包括:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。将计算处理得到的上述八个参数作为输入参数。
步骤204,创建中央处理器内核利用率预测模型。
本实施例中,中央处理器内核利用率预测模型可以采用径向基函数神经网络来实现。径向基函数神经网络可以采用MATLAB工具箱中的newrb函数。MATLAB工具箱是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的数学软件。newrb函数的语法格式为:
net=newrb(P,T,goal,spread,MN,DF)。
其中,net为创建的广义径向基函数神经网络,P、T分别为R*Q维的输入矩阵和S*Q维的期望输出矩阵,其中Q为输入的训练向量个数,R为输入向量维数,S为输出节点个数;goal为指定的均方误差,默认值为0;spread为径向基函数的扩散速度,默认值为1;MN为隐含节点最大个数,默认值为Q;DF为两次显示之间需要添加的隐含节点个数,默认值为25。
本实施例中,输入向量中可以包括八个输入参数,因此R=8。得到的输出参数为预测的CPU内核的利用率,是一个具体的数值,因此,输出节点的个数为1,即S=1。
步骤205,提取计算处理得到的结果中最后一次采集操作之前采集的运行频率及影响中央处理器内核运行频率的事件的数据对应的结果。
本实施例中,在对CPU内核的利用率进行预测之前,要先利用采集的数据将创建的径向基函数神经网络训练好。训练上述径向基函数神经网络的数据可以为上述计算处理得到的结果中除最后一次采集操作采集的数据对应的计算处理结果之外的其它计算处理结果。由于此训练在MATLAB中进行,所以训练数据以文件形式导出,在newrb函数中进行训练。
举例来说,CPU中包括4个内核,分别命名为cpu0、cpu1、cpu2、cpu3。对于每一个CPU内核,采集1560个训练向量。每个训练向量包括八个输入参数,也就是说采集中央处理器内核的运行频率的操作执行了1560次,上述采集操作之间的时间间隔可以取5秒钟,将上述1560个训练向量作为训练数据训练newrb函数创建的径向基函数神经网络。
步骤206,利用提取的结果训练创建的中央处理器内核利用率预测模型。
对于径向基函数来说,扩展系数spread越大,得到的拟合曲线越平滑。太大的扩展系数,对于拟合迭宕起伏的曲线时,会需要很多隐含节点。太小的扩展系数,在拟合平滑的曲线时,会需要很多隐含节点。因此,可以通过设置不同的扩展系数spread来调用newrb函数,来找到最好的扩展系数。
本实施例中,可以采用如下的函数:
net=newrb(P,T,1,0.6)
其中,矩阵P的训练向量的个数为1560个,输入的训练向量的维数为8,预设的均方误差为1,扩展系数为0.6。
可以理解的是,本实施例并不对训练向量的个数、训练向量的维数、预设的均方误差及扩展系数的值做限定。
在本实施例的一些可选的实现方式中,在步骤206之前,上述方法还可以包括图2中未示出的以下步骤:
对以下至少一项进行归一化处理:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
在利用训练向量训练创建的径向基函数神经网络时,首先对训练向量中的8个参数进行归一化处理,可以有效地简化计算。
步骤207,将符合预设误差的中央处理器内核利用率预测模型作为预设的中央处理器内核利用率预测模型。
对于上述预设的均方误差,得到的径向基函数神经网络得到网络中很多参数的值。在实践中,利用MATLAB进行训练后,需要将径向基函数神经网络中的参数导出,输入到新建的径向基函数神经网络中,得到预设的中央处理器内核利用率预测模型。
本实施例中,利用1560个训练向量训练径向基函数神经网络,并使其符合预设的均方误差,得到的径向基函数神经网络包括两个隐含层,第一个隐含层的隐含节点的个数为777个,第二个隐含层的隐含节点的个数为1个。
具体可参考图3,图3示出了根据本申请的调整中央处理器内核运行频率的方法的预设的中央处理器内核利用率预测模型的结构示意图300。如图3所示,输入向量所在的层面为径向基函数神经网络的输入层,隐含层包括两个,第一个隐含层包括777个隐含节点,第二个隐含层包括1个隐含节点,输出值所在的层面为径向基函数神经网络的输出层。输入层到隐含层的变换是非线性的,隐含层到输出层的变换是线性的。
步骤208,将最后一次采集操作采集的数据的计算处理结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到中央处理器内核的预测利用率。
本实施例中,训练径向基函数神经网络使用的训练向量的个数是1560条,在预测CPU内核的利用率时,采用最后一次采集的数据对应的输入向量可以提高预测利用率的准确度。
本实施例中,将最后一次采集的数据对应的八个输入参数代入上式,得到CPU内核的预测利用率。可以理解的是,每个CPU内核的利用率预测模型都不尽相同。可以对于每个CPU内核,都预设一个中央处理器内核利用率预测模型,以对每个CPU内核的利用率进行预测,从而能够调整每个CPU内核的运行频率。
步骤209,判断预测利用率是否大于第一预设值。
在预测利用率大于第一预设值时,执行步骤210;在预测利用率不大于第一预设值时,执行步骤220。
步骤210,判断之前N个实际利用率是否都大于第一预设值。
其中,N为预设的自然数。可以理解的是,在上次对CPU内核的利用率预测完成,并调整CPU内核的运行频率后,采集了CPU内核的实际利用率。在实践中,可以利用Linux系统的/proc/stat文件确定CPU内核的实际利用率。/proc/stat文件中包含如表2所示的如下参数以及每个参数的意义。
表2CPU内核的实际利用率涉及的参数
表2中,jiffies为全局变量,用来记录自系统启动以来产生的节拍的总数。nice值是表示进程可被执行的优先级的修正数值。由上表可知,每个CPU内核的时间可以采用如下公式计算:
cpu_time=user+nice+system+idle+iowait+irq+softirq+stealstolen+guest+guest_nice;
每个CPU内核的利用率可以采用下式来计算:
cpu_usage=1-(idle2-idle1)/(cpu2_time-cpu1_time)。
由此得到每个CPU内核的实际利用率。
在采集的N个实际利用率都大于第一预设值时,执行步骤211;否则执行步骤211’。
步骤211,将中央处理器内核的运行频率调至最大运行频率。
当之前的N个实际利用率都大于第一预设值时,表明当前阶段对CPU内核资源的需求非常大,将CPU内核的运行频率调整至最大运行频率,可以更好的满足任务对CPU内核资源的需求。
步骤211’,将中央处理器内核的运行频率增大第三预设值。
当之前的N个实际利用率中的至少一个小于第一预设值时,只将CPU内核的运行频率增大一个固定数值,在满足任务处理需求的同时,尽可能节能。
步骤220,判断预测利用率是否小于第二预设值。
当预测利用率小于第二预设值时,说明当前阶段对CPU内核资源的需求较小,执行步骤221;否则,执行步骤221’。
步骤221,判断之前M个实际利用率是否都小于第二预设值。
其中,M为预设正整数。是则,执行步骤222;否则,执行步骤222’。
步骤222,将中央处理器内核的运行频率调至最小运行频率。
当之前的M个实际利用率都小于第二预设值时,表明当前阶段对CPU内核资源的需求非常小,为了实现节能,将CPU内核的运行频率调至最小运行频率。
步骤222’,将中央处理器内核的运行频率降低第四预设值。
当之前的M个实际利用率中的至少一个大于第二预设值,表明当前阶段的任务虽然对CPU内核资源的需求较小,但仍然需要占用一部分CPU内核资源,所以只将CPU内核的运行频率降低第四预设值。
步骤221’,不调整中央处理器内核的运行频率。
如果预测利用率即不大于第一预设值,也不小于第二预设值,即预测利用率位于第一预设值和第二预设值之间,则不对CPU内核的运行频率进行调整。
本实施例中,第一预设值可以取80%,第二预设值可以取30%。可以理解的是,本实施例不对第一预设值、第二预设值、第三预设值、第四预设值、N和M的取值做限定,本领域技术人员可以根据需要自行设定上述参数的取值。
本申请的上述实施例提供的调整中央处理器内核运行频率的方法,利用径向基函数神经网络对下一时间段的CPU内核利用率进行预测,并结合本次预测之前采集的CPU内核的实际利用率,利用DVFS技术对CPU内核的运行频率进行调整,在满足任务处理需求的同时,有效地节省了CPU的功耗。
图4示出了根据本申请的调整中央处理器内核运行频率的装置的一个实施例的结构示意图400。如图4所示,本实施例的调整中央处理器内核运行频率的装置包括:第一采集单元401、监测单元402、计算单元403、预测单元404和调整单元405。
第一采集单元401,用于每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作。
监测单元402,用于监测在第一采集单元401执行的每次采集操作所属的第二预设时间段内影响中央处理器内核运行频率的事件的数据。
其中,第二预设时间段小于或等于第一预设时间段。
在本实施例的一些可选的实现方式中,监测单元402进一步用于:
利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
计算单元403,用于对第一采集单元401采集的运行频率及监测单元402监测的影响中央处理器内核运行频率的事件的数据进行计算处理。
预测单元404,用于将计算单元403计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到中央处理器内核的预测利用率。
在本实施例的一些可选的实现方式中,预测单元404进一步用于:
将最后一次采集操作采集的运行频率及影响中央处理器内核运行频率的事件的数据的计算处理结果作为输入参数导入预设的中央处理器内核利用率预测模型,计算处理结果包括以下至少一项:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
调整单元405,用于基于预测单元404得到的预测利用率,调整中央处理器内核的运行频率。
本申请的上述实施例提供的调整中央处理器内核运行频率的装置,通过第一采集单元采集CPU内核的运行频率以及监测单元监测与CPU内核的运行频率相关的时间的数据,利用计算单元对数据进行进一步处理后导入预设的中央处理器内核利用率预测模型,得到预测单元预测的下一时间段的CPU内核的利用率,调整单元根据CPU内核的预测利用率的大小,调整CPU内核的运行频率,在满足CPU处理任务需要的同时,有效地控制了CPU内核的运行频率,从而降低了CPU的功耗,实现了节能。
图5示出了根据本申请的调整中央处理器内核运行频率的装置的一个实施例的结构示意图500。如图5所示,本实施例的调整中央处理器内核运行频率的装置包括:第一采集单元501、监测单元502、计算单元503、创建单元504、提取单元505、训练单元506、确定单元507、预测单元508、调整单元509和第二采集单元510。
第一采集单元501,用于每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作。
监测单元502,用于监测在第一采集单元501执行的每次采集操作所属的第二预设时间段内影响中央处理器内核运行频率的事件的数据。
其中,第二预设时间段小于或等于第一预设时间段。
计算单元503,用于对第一采集单元501采集的运行频率及监测单元502监测的影响中央处理器内核运行频率的事件的数据进行计算处理。
计算单元503进一步包括第一计算模块5031、第二计算模块5032、第三计算模块5033、第四计算模块5034和归一化模块5035。
第一计算模块5031,用于根据时钟周期的数量及指令完成的数量,计算每个时钟周期内完成的指令数。
第二计算模块5032,用于根据访问一级缓存的次数及访问一级缓存未命中的次数,计算访问一级缓存未命中的比例。
第三计算模块5033,用于根据访问二级缓存的次数及访问二级缓存未命中的次数,计算访问二级缓存未命中的比例。
第四计算模块5034,用于根据访问三级缓存的次数及访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
归一化模块5035,用于对以下至少一项进行归一化处理:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
预测单元504,用于将计算单元503计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到中央处理器内核的预测利用率。
调整单元509,用于基于预测单元504得到的预测利用率,调整中央处理器内核的运行频率。
第二采集单元510,用于在调整单元509调整中央处理器内核的运行频率之后,利用系统函数采集中央处理器内核的实际利用率。
调整单元509进一步包括:增大模块5091和降低模块5092。
增大模块5091,用于当预测单元504得到的预测利用率大于第一预设值时,增大中央处理器内核的运行频率。
降低模块5092,用于当预测单元504得到的预测利用率小于第二预设值时,降低中央处理器内核的运行频率。
增大模块5091进一步包括:第一判断子模块50911、第一增大子模块50912和第二增大子模块50913。
第一判断子模块50911,用于当预测单元504得到的预测利用率大于第一预设值且中央处理器内核当前的运行频率不等于最大运行频率时,判断当前预测利用率之前第二采集单元510采集的N个实际利用率是否均大于第一预设值。
第一增大子模块50912,用于响应于当前预测利用率之前第二采集单元510采集的N个实际利用率均大于第一预设值,将中央处理器内核的运行频率调整至最大运行频率。
第二增大子模块50913,用于响应于当前预测利用率之前第二采集单元510采集的N个实际利用率中的至少一个小于第一预设值,将中央处理器内核的运行频率增大第三预设值。
降低模块5092进一步包括:第二判断子模块50921、第一降低子模块50922和第二降低子模块50923。
第二判断子模块50921,用于当预测单元504得到的预测利用率小于第二预设值且中央处理器内核当前的运行频率不等于最小运行频率时,判断当前预测利用率之前第二采集单元510采集的M个实际利用率是否均小于第二预设值。
第一降低子模块50922,用于响应于当前预测利用率之前第二采集单元510采集的M个实际利用率均小于第二预设值,将中央处理器内核的运行频率调整至最小运行频率;
第二降低子模块50923,用于响应于当前预测利用率之前第二采集单元510采集的M个实际利用率中的至少一个大于第二预设值,将中央处理器内核的运行频率降低第四预设值。
可以理解的是,最大运行频率、最小运行频率是CPU内核的固有参数,可通过现有技术手段确定每个CPU内核的最大运行频率及最小运行频率。N和M均为预设正整数,第一预设值、第二预设值、第三预设值、第四预设值均为常数。本实施例中,N和M可取3,第一预设值可取80%,第二预设值可取30%,第三预设值及第四预设值可取200Hz。
本申请的上述实施例提供的调整中央处理器内核运行频率的装置,利用径向基函数神经网络对下一时间段的CPU内核利用率进行预测,并结合本次预测之前采集的CPU内核的实际利用率,利用DVFS技术对CPU内核的运行频率进行调整,在满足任务处理需求的同时,有效地节省了CPU的功耗。
下面参考图6,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统600的结构示意图。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的上述功能。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一采集单元、监测单元、计算单元、预测单元和调整单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一采集单元还可以被描述为“每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,所述第二预设时间段小于或等于所述第一预设时间段;对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;基于所述预测利用率,调整所述中央处理器内核的运行频率。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种调整中央处理器内核运行频率的方法,其特征在于,所述方法包括:
每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;
监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,所述第二预设时间段小于或等于所述第一预设时间段;
对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;
将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;
基于所述预测利用率,调整所述中央处理器内核的运行频率。
2.根据权利要求1所述的方法,其特征在于,在所述调整所述中央处理器内核的运行频率之后,所述方法还包括:
利用系统函数采集所述中央处理器内核的实际利用率。
3.根据权利要求1所述的方法,其特征在于,所述监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,包括:
利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
4.根据权利要求3所述的方法,其特征在于,所述对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理,包括:
根据所述时钟周期的数量及所述指令完成的数量,计算每个时钟周期内完成的指令数;和/或
根据所述访问一级缓存的次数及所述访问一级缓存未命中的次数,计算访问一级缓存未命中的比例;和/或
根据所述访问二级缓存的次数及所述访问二级缓存未命中的次数,计算访问二级缓存未命中的比例;和/或
根据所述访问三级缓存的次数及所述访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
5.根据权利要求1所述的方法,其特征在于,在所述将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型之前,所述方法还包括:
创建中央处理器内核利用率预测模型;
提取所述计算处理得到的结果中最后一次采集操作之前采集的运行频率及影响所述中央处理器内核运行频率的事件的数据对应的结果;
利用提取的结果训练创建的中央处理器内核利用率预测模型;
将符合预设误差的中央处理器内核利用率预测模型作为所述预设的中央处理器内核利用率预测模型。
6.根据权利要求4所述的方法,其特征在于,所述将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,包括:
将最后一次采集操作采集的运行频率及影响所述中央处理器内核运行频率的事件的数据的计算处理结果作为输入参数导入所述预设的中央处理器内核利用率预测模型,所述计算处理结果包括以下至少一项:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
7.根据权利要求4所述的方法,其特征在于,对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理,包括:
对以下至少一项进行归一化处理:所述中央处理器内核的运行频率、所述每个时钟周期内完成的指令数、所述访问一级缓存未命中的比例、所述访问二级缓存未命中的比例、所述访问三级缓存未命中的比例、所述进程切换的次数、所述分支预测错误的次数、所述硬件中断的次数。
8.根据权利要求2所述的方法,其特征在于,基于所述预测利用率,调整所述中央处理器内核的运行频率,包括:
当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率;
当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,所述第二预设值小于第一预设值。
9.根据权利要求8所述的方法,其特征在于,所述当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率,包括:
当所述预测利用率大于所述第一预设值且所述中央处理器内核当前的运行频率不等于最大运行频率时,判断当前预测利用率之前采集的N个实际利用率是否均大于所述第一预设值,N为预设正整数;
响应于当前预测利用率之前采集的N个实际利用率均大于所述第一预设值,将所述中央处理器内核的运行频率调整至所述最大运行频率;
响应于当前预测利用率之前采集的N个实际利用率中的至少一个小于所述第一预设值,将所述中央处理器内核的运行频率增大第三预设值。
10.根据权利要求8所述的方法,其特征在于,当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,包括:
当所述预测利用率小于所述第二预设值且所述中央处理器内核当前的运行频率不等于最小运行频率时,判断当前预测利用率之前采集的M个实际利用率是否均小于所述第二预设值,M为预设正整数;
响应于当前预测利用率之前采集的M个实际利用率均小于所述第二预设值,将所述中央处理器内核的运行频率调整至所述最小运行频率;
响应于当前预测利用率之前采集的M个实际利用率中的至少一个大于所述第二预设值,将所述中央处理器内核的运行频率降低第四预设值。
11.一种调整中央处理器内核运行频率的装置,其特征在于,所述装置包括:
第一采集单元,用于每间隔第一预设时间段执行采集中央处理器内核的运行频率的操作;
监测单元,用于监测在每次采集操作所属的第二预设时间段内影响所述中央处理器内核运行频率的事件的数据,所述第二预设时间段小于或等于所述第一预设时间段;
计算单元,用于对所述运行频率及所述影响所述中央处理器内核运行频率的事件的数据进行计算处理;
预测单元,用于将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型,得到所述中央处理器内核的预测利用率;
调整单元,用于基于所述预测利用率,调整所述中央处理器内核的运行频率。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第二采集单元,用于在所述调整单元调整所述中央处理器内核的运行频率之后,利用系统函数采集所述中央处理器内核的实际利用率。
13.根据权利要求11所述的装置,其特征在于,所述监测单元进一步用于:
利用系统函数和/或系统中断文件监测在每次采集操作所属的第二预设时间段内的时钟周期的数量、指令完成的数量和/或访问一级缓存的次数、访问一级缓存未命中的次数和/或访问二级缓存的次数、访问二级缓存未命中的次数和/或访问三级缓存的次数、访问三级缓存未命中的次数和/或进程切换的次数和/或分支预测错误的次数和/或硬件中断的次数。
14.根据权利要求13所述的装置,其特征在于,所述计算单元包括:
第一计算模块,用于根据所述时钟周期的数量及所述指令完成的数量,计算每个时钟周期内完成的指令数;和/或
第二计算模块,用于根据所述访问一级缓存的次数及所述访问一级缓存未命中的次数,计算访问一级缓存未命中的比例;和/或
第三计算模块,用于根据所述访问二级缓存的次数及所述访问二级缓存未命中的次数,计算访问二级缓存未命中的比例;和/或
第四计算模块,用于根据所述访问三级缓存的次数及所述访问三级缓存未命中的次数,计算访问三级缓存未命中的比例。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
创建单元,用于在所述计算单元将计算处理得到的结果作为输入参数导入预设的中央处理器内核利用率预测模型之前,创建中央处理器内核利用率预测模型;
提取单元,用于提取所述计算处理得到的结果中最后一次采集操作之前采集的运行频率及影响所述中央处理器内核运行频率的事件的数据对应的结果;
训练单元,用于利用提取的结果训练创建的中央处理器内核利用率预测模型;
确定单元,用于将符合预设误差的中央处理器内核利用率预测模型作为所述预设的中央处理器内核利用率预测模型。
16.根据权利要求14所述的装置,其特征在于,所述预测单元,进一步用于:
将最后一次采集操作采集的运行频率及影响所述中央处理器内核运行频率的事件的数据的计算处理结果作为输入参数导入所述预设的中央处理器内核利用率预测模型,所述计算处理结果包括以下至少一项:中央处理器内核的运行频率、每个时钟周期内完成的指令数、访问一级缓存未命中的比例、访问二级缓存未命中的比例、访问三级缓存未命中的比例、进程切换的次数、分支预测错误的次数、硬件中断的次数。
17.根据权利要求14所述的装置,其特征在于,所述计算单元包括:
归一化模块,用于对以下至少一项进行归一化处理:所述中央处理器内核的运行频率、所述每个时钟周期内完成的指令数、所述访问一级缓存未命中的比例、所述访问二级缓存未命中的比例、所述访问三级缓存未命中的比例、所述进程切换的次数、所述分支预测错误的次数、所述硬件中断的次数。
18.根据权利要求12所述的装置,其特征在于,所述调整单元包括:
增大模块,用于当所述预测利用率大于第一预设值时,增大所述中央处理器内核的运行频率;
降低模块,用于当所述预测利用率小于第二预设值时,降低所述中央处理器内核的运行频率,所述第二预设值小于第一预设值。
19.根据权利要求18所述的装置,其特征在于,所述增大模块包括:
第一判断子模块,用于当所述预测利用率大于所述第一预设值且所述中央处理器内核当前的运行频率不等于最大运行频率时,判断当前预测利用率之前采集的N个实际利用率是否均大于所述第一预设值,N为预设正整数;
第一增大子模块,用于响应于当前预测利用率之前采集的N个实际利用率均大于所述第一预设值,将所述中央处理器内核的运行频率调整至所述最大运行频率;
第二增大子模块,用于响应于当前预测利用率之前采集的N个实际利用率中的至少一个小于所述第一预设值,将所述中央处理器内核的运行频率增大第三预设值。
20.根据权利要求18所述的装置,其特征在于,所述降低模块包括:
第二判断子模块,用于当所述预测利用率小于所述第二预设值且所述中央处理器内核当前的运行频率不等于最小运行频率时,判断当前预测利用率之前采集的M个实际利用率是否均小于所述第二预设值,M为预设正整数;
第一降低子模块,用于响应于当前预测利用率之前采集的M个实际利用率均小于所述第二预设值,将所述中央处理器内核的运行频率调整至所述最小运行频率;
第二降低子模块,用于响应于当前预测利用率之前采集的M个实际利用率中的至少一个大于所述第二预设值,将所述中央处理器内核的运行频率降低第四预设值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610425809.8A CN107515663B (zh) | 2016-06-15 | 2016-06-15 | 调整中央处理器内核运行频率的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610425809.8A CN107515663B (zh) | 2016-06-15 | 2016-06-15 | 调整中央处理器内核运行频率的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107515663A true CN107515663A (zh) | 2017-12-26 |
CN107515663B CN107515663B (zh) | 2021-01-26 |
Family
ID=60720828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610425809.8A Active CN107515663B (zh) | 2016-06-15 | 2016-06-15 | 调整中央处理器内核运行频率的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107515663B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660625A (zh) * | 2018-12-26 | 2019-04-19 | 深圳大学 | 一种边缘设备控制方法、边缘设备及计算机可读存储介质 |
CN109669778A (zh) * | 2018-12-21 | 2019-04-23 | 北京奇虎科技有限公司 | 一种用于为运行单元确定并行进程数量的方法及系统 |
CN109960584A (zh) * | 2019-01-30 | 2019-07-02 | 努比亚技术有限公司 | Cpu调频控制方法、终端及计算机可读存储介质 |
CN110134215A (zh) * | 2019-05-24 | 2019-08-16 | 广东中兴新支点技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
WO2020117270A1 (en) | 2018-12-07 | 2020-06-11 | Hewlett-Packard Development Company, L.P. | Automated overclocking using a prediction model |
CN111768329A (zh) * | 2019-04-01 | 2020-10-13 | 维塔科技(北京)有限公司 | 采集内核执行时间的方法、装置、存储介质及电子设备 |
CN111782476A (zh) * | 2020-06-30 | 2020-10-16 | Oppo广东移动通信有限公司 | 温度控制方法、装置、存储介质及电子设备 |
CN112068690A (zh) * | 2020-09-04 | 2020-12-11 | 龙芯中科技术有限公司 | 处理器调频方法及装置 |
CN112486683A (zh) * | 2020-11-27 | 2021-03-12 | 中国科学技术大学先进技术研究院 | 处理器控制方法、控制设备以及计算机可读存储介质 |
WO2021050275A1 (en) * | 2019-09-13 | 2021-03-18 | Nvidia Corporation | Device link management |
CN113868068A (zh) * | 2021-12-01 | 2021-12-31 | 统信软件技术有限公司 | 一种内核性能测试方法、计算设备及存储介质 |
CN113961347A (zh) * | 2021-10-27 | 2022-01-21 | 缪周航 | 提升移动计算平台可靠性的方法 |
CN116627433A (zh) * | 2023-07-18 | 2023-08-22 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
CN117130458A (zh) * | 2023-02-27 | 2023-11-28 | 荣耀终端有限公司 | 数据处理方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150215A (zh) * | 2013-02-04 | 2013-06-12 | 浙江大学 | 虚拟环境下细粒度的cpu资源使用预测方法 |
CN103488539A (zh) * | 2013-09-23 | 2014-01-01 | 北京交通大学 | 一种基于cpu动态调频技术的数据中心节能方法 |
CN104978235A (zh) * | 2015-06-30 | 2015-10-14 | 柏斯红 | 一种基于使用频率预测的负载均衡方法 |
CN105550323A (zh) * | 2015-12-15 | 2016-05-04 | 北京国电通网络技术有限公司 | 一种分布式数据库负载均衡预测方法和预测分析器 |
-
2016
- 2016-06-15 CN CN201610425809.8A patent/CN107515663B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150215A (zh) * | 2013-02-04 | 2013-06-12 | 浙江大学 | 虚拟环境下细粒度的cpu资源使用预测方法 |
CN103488539A (zh) * | 2013-09-23 | 2014-01-01 | 北京交通大学 | 一种基于cpu动态调频技术的数据中心节能方法 |
CN104978235A (zh) * | 2015-06-30 | 2015-10-14 | 柏斯红 | 一种基于使用频率预测的负载均衡方法 |
CN105550323A (zh) * | 2015-12-15 | 2016-05-04 | 北京国电通网络技术有限公司 | 一种分布式数据库负载均衡预测方法和预测分析器 |
Non-Patent Citations (1)
Title |
---|
张缇: "《神经网络预测的计算机CPU利用率系统研究》", 《湖北汽车工业学院学报》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3847521A4 (en) * | 2018-12-07 | 2022-04-27 | Hewlett-Packard Development Company, L.P. | AUTOMATIC OVERCLOCK USING A PREDICTION MODEL |
WO2020117270A1 (en) | 2018-12-07 | 2020-06-11 | Hewlett-Packard Development Company, L.P. | Automated overclocking using a prediction model |
US11906580B2 (en) | 2018-12-07 | 2024-02-20 | Hewlett-Packard Development Company, L.P. | Automated overclocking using a prediction model |
CN113168206A (zh) * | 2018-12-07 | 2021-07-23 | 惠普发展公司,有限责任合伙企业 | 使用预测模型的自动超频 |
CN109669778A (zh) * | 2018-12-21 | 2019-04-23 | 北京奇虎科技有限公司 | 一种用于为运行单元确定并行进程数量的方法及系统 |
CN109669778B (zh) * | 2018-12-21 | 2023-09-01 | 北京奇虎科技有限公司 | 一种用于为运行单元确定并行进程数量的方法及系统 |
CN109660625B (zh) * | 2018-12-26 | 2021-09-17 | 深圳大学 | 一种边缘设备控制方法、边缘设备及计算机可读存储介质 |
CN109660625A (zh) * | 2018-12-26 | 2019-04-19 | 深圳大学 | 一种边缘设备控制方法、边缘设备及计算机可读存储介质 |
CN109960584A (zh) * | 2019-01-30 | 2019-07-02 | 努比亚技术有限公司 | Cpu调频控制方法、终端及计算机可读存储介质 |
CN111768329A (zh) * | 2019-04-01 | 2020-10-13 | 维塔科技(北京)有限公司 | 采集内核执行时间的方法、装置、存储介质及电子设备 |
CN111768329B (zh) * | 2019-04-01 | 2024-03-15 | 维塔科技(北京)有限公司 | 采集内核执行时间的方法、装置、存储介质及电子设备 |
CN110134215A (zh) * | 2019-05-24 | 2019-08-16 | 广东中兴新支点技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
WO2021050275A1 (en) * | 2019-09-13 | 2021-03-18 | Nvidia Corporation | Device link management |
US11822926B2 (en) | 2019-09-13 | 2023-11-21 | Nvidia Corporation | Device link management |
GB2600870A (en) * | 2019-09-13 | 2022-05-11 | Nvidia Corp | Device link management |
CN111782476B (zh) * | 2020-06-30 | 2023-06-20 | Oppo广东移动通信有限公司 | 温度控制方法、装置、存储介质及电子设备 |
CN111782476A (zh) * | 2020-06-30 | 2020-10-16 | Oppo广东移动通信有限公司 | 温度控制方法、装置、存储介质及电子设备 |
CN112068690B (zh) * | 2020-09-04 | 2022-09-20 | 龙芯中科技术股份有限公司 | 处理器调频方法及装置 |
CN112068690A (zh) * | 2020-09-04 | 2020-12-11 | 龙芯中科技术有限公司 | 处理器调频方法及装置 |
CN112486683B (zh) * | 2020-11-27 | 2023-05-19 | 中国科学技术大学先进技术研究院 | 处理器控制方法、控制设备以及计算机可读存储介质 |
CN112486683A (zh) * | 2020-11-27 | 2021-03-12 | 中国科学技术大学先进技术研究院 | 处理器控制方法、控制设备以及计算机可读存储介质 |
CN113961347A (zh) * | 2021-10-27 | 2022-01-21 | 缪周航 | 提升移动计算平台可靠性的方法 |
CN113868068A (zh) * | 2021-12-01 | 2021-12-31 | 统信软件技术有限公司 | 一种内核性能测试方法、计算设备及存储介质 |
CN117130458A (zh) * | 2023-02-27 | 2023-11-28 | 荣耀终端有限公司 | 数据处理方法、电子设备及存储介质 |
CN116627433A (zh) * | 2023-07-18 | 2023-08-22 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
CN116627433B (zh) * | 2023-07-18 | 2024-01-09 | 鹏城实验室 | Ai处理器实时的参数预测方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107515663B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515663A (zh) | 调整中央处理器内核运行频率的方法和装置 | |
CN102959510B (zh) | 用于计算机功率和资源消耗建模的方法和系统 | |
CN102103516B (zh) | 基于虚拟cpu的频率和电压调节 | |
CN103873498B (zh) | 云平台资源自适应预警方法与系统 | |
CN107231264A (zh) | 用于管理云服务器的容量的方法和装置 | |
Arshad et al. | Utilizing power consumption and SLA violations using dynamic VM consolidation in cloud data centers | |
Alarifi et al. | Energy-efficient hybrid framework for green cloud computing | |
US20110010222A1 (en) | Point-in-time based energy saving recommendations | |
Kwon et al. | Tensor casting: Co-designing algorithm-architecture for personalized recommendation training | |
CN107209548A (zh) | 在多核处理器中执行功率管理 | |
CN106662909A (zh) | 操作系统中的启发式处理器电力管理 | |
CN106125888B (zh) | 云数据中心中基于虚拟机迁移的资源利用高效的节能方法 | |
CN108549583A (zh) | 大数据处理方法、装置、服务器及可读存储介质 | |
Borghesi et al. | Pricing schemes for energy-efficient HPC systems: Design and exploration | |
CN108874535A (zh) | 一种任务调节方法、计算机可读存储介质及终端设备 | |
Li et al. | Cost-aware automatic scaling and workload-aware replica management for edge-cloud environment | |
Ismaeel et al. | Multivariate time series ELM for cloud data centre workload prediction | |
CN107145216A (zh) | 一种调度方法 | |
Dogani et al. | K-agrued: a container autoscaling technique for cloud-based web applications in kubernetes using attention-based gru encoder-decoder | |
CN107704317A (zh) | 智能设备及其应用管理方法和具有存储功能的装置 | |
Wang et al. | Cloud workload analytics for real-time prediction of user request patterns | |
CN106844175B (zh) | 一种基于机器学习的云平台容量规划方法 | |
Cui et al. | Shadows on the Cloud: An Energy-aware, Profit Maximizing Resilience Framework for Cloud Computing. | |
Postema et al. | Evaluation of advanced data centre power management strategies | |
Bogdan et al. | Energy-efficient computing from systems-on-chip to micro-server and data centers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |