一种对CPU进行调频的智能控制方法及系统与流程

文档序号:37715590发布日期:2024-04-23 11:45阅读:5来源:国知局
一种对CPU进行调频的智能控制方法及系统与流程

本发明涉及计算机,尤其涉及一种对cpu进行调频的智能控制方法及系统。


背景技术:

1、cpu动态调频技术可以在不同负载情况下优化cpu的能效、温度控制、散热管理和性能表现,使cpu在不同场景下实现最佳的能量利用和性能表现。

2、目前,cpu动态调频的主流技术都是根据cpu的负载或者进程的负载去做动态调频,经常会遇到cpu长时间运行在高频段,但是cpu实际执行的指令又比较少,也就是每个指令循环(cycles per instructions,cpi)值比较大,换言之就是cpu内部是处于cpu 停运状态的,cpu光出工不出力,看着cpu的负载高,但实际执行的运算却很少。当cpu在执行这类任务的时候,在保证不降低任务执行效率的前提下,可以通过降低cpu的频率来提高cpu的效能。

3、目前,行业内主要通过以下两种策略来对cpu的频率进行调整: userspace策略,通过用户空间程序来动态调节cpu频率;schedutil策略:是linux的默认调频策略,基于调度器调度事件触发的调频策略,根据当前cpu利用率进行动态调频的调频策略。

4、然而,实践发现,userspace策略中用户空间根据运行场景的算力需求去动态调节cpu频率,无法根据cpu的利用率去做,cpu频率选择不够精准,不适用于全部场景;schedutil策略虽然能够解决userspace策略的问题,但是schedutil策略会存在cpu高频运行但是指令执行不多的低效场景,即cpu出工不出力,这种情况cpu的运行效能差。因此,如何提出一种减少cpu高频运行但是指令执行不多的低效场景的情况,从而提高cpu的运行效能的技术方案显得尤为重要。


技术实现思路

1、本发明所要解决的技术问题在于,提供一种对cpu进行调频的智能控制方法及系统,能够减少cpu高频运行但是指令执行不多的低效场景的情况,从而提高cpu的运行效能。

2、为了解决上述技术问题,本发明实施例第一方面公开了一种对cpu进行调频的智能控制方法,所述方法包括:

3、当需要对所述cpu进行调频时,获取所述cpu的当前调频频率,并确定所述cpu下一次的调频频率;

4、根据所述cpu的当前调频频率及所述cpu下一次的调频频率,控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时的性能事件数据执行数据采集操作,得到所述cpu对应的性能事件数据,所述cpu对应的性能事件数据包括所述cpu对应的性能事件发生次数;

5、根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子,并根据所述cpu的算力比例因子及所述cpu下一次的调频频率,控制所述cpu执行调频操作。

6、作为一种可选的实施方式,在本发明第一方面中,所述控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时的性能事件数据执行数据采集操作,得到所述cpu对应的性能事件数据,包括:

7、以当确定出需要对所述cpu进行调频的时刻作为数据采集的起始时刻,开始控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时某一时长段内的性能事件数据执行数据采集操作;

8、在执行所述采集操作的过程中,判断所述cpu的当前调频频率与所述cpu下一次的调频频率是否相等;

9、当判断出所述cpu的当前调频频率与所述cpu下一次的调频频率不相等时,控制所述性能监控单元停止执行所述数据采集操作,得到所述cpu对应的性能事件数据。

10、作为一种可选的实施方式,在本发明第一方面中,所述确定所述cpu下一次的调频频率,包括:

11、判断所述cpu是否发生调度事件,当判断结果为是时,控制所述cpu执行到调度入口,并获取所述调度事件的调度信息,所述调度信息包括所述cpu的利用率及所述cpu支持的最高频率;

12、根据所述调度信息,计算所述cpu下一次的调频频率;

13、其中,所述cpu下一次的调频频率的计算公式如下:

14、next_freq=c*max_freq*cpu_util;

15、式中,next_freq为所述cpu下一次的调频频率,max_freq为所述cpu支持的最高频率,cpu_util是所述cpu的利用率,且cpu_util是所述cpu上多个调度类的利用率及中断的利用率的总和,c为常量。

16、作为一种可选的实施方式,在本发明第一方面中,所述cpu对应的性能事件发生次数包括所述cpu的停运周期发生次数、所述cpu的指令执行发生次数及所述cpu的总执行周期发生次数;

17、其中,所述根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子,包括:

18、根据所述cpu的指令执行发生次数及所述cpu的停运周期发生次数,计算所述cpu的算力冗余周期数;

19、根据所述cpu的算力冗余周期数及所述cpu的总执行周期发生次数,计算所述cpu的算力比例因子。

20、作为一种可选的实施方式,在本发明第一方面中,所述cpu的算力比例因子的计算公式如下:

21、k=1 - x/cpu_cycles;

22、x = stall_cycles - m * instructions;

23、式中,k为所述cpu的算力比例因子,x 为所述cpu的算力冗余周期数,cpu_cycles为所述cpu的总执行周期发生次数,stall_cycles为所述cpu的停运周期发生次数,m为常量,instructions为所述cpu的指令执行发生次数。

24、作为一种可选的实施方式,在本发明第一方面中,所述根据所述cpu的算力比例因子及所述cpu下一次的调频频率,控制所述cpu执行调频操作,包括:

25、根据所述cpu的算力比例因子及所述cpu下一次的调频频率,计算所述cpu的目标调频频率,其中,当所述cpu的算力比例因子≥1时,所述cpu的算力比例因子取1,当所述cpu的算力比例因子<1时,所述cpu的算力比例因子取实际值;

26、根据所述cpu的目标调频频率及所述cpu的当前调频频率,控制所述cpu执行调频操作;

27、所述cpu的目标调频频率的计算公式如下:

28、target_freq = next_freq * k;

29、式中,target_freq为所述cpu的目标调频频率,k为所述cpu的算力比例因子。

30、作为一种可选的实施方式,在本发明第一方面中,所述根据所述cpu的目标调频频率及所述cpu的当前调频频率,控制所述cpu执行调频操作,包括:

31、判断所述cpu的当前调频频率与所述cpu的目标调频频率是否相等;

32、当判断出所述cpu的当前调频频率与所述cpu的目标调频频率不相等时,控制所述cpu将所述cpu的当前调频频率设置为所述cpu的目标调频频率。

33、作为一种可选的实施方式,在本发明第一方面中,所述cpu对应的性能事件数据还包括所述cpu对应的性能事件发生类型,所述cpu对应的性能事件发生次数包括每个所述性能事件发生类型对应的性能事件发生次数,所有所述性能事件发生类型包括所述cpu的停运周期发生类型、所述cpu的指令执行发生类型及所述cpu的总执行周期发生类型;

34、其中,所述根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子之前,所述方法还包括:

35、计算每个所述性能事件发生类型对应的性能事件发生次数,并判断所述cpu的停运周期发生类型对应的性能事件发生次数是否大于等于预设停运次数;

36、当判断出结果为是时,判断所述cpu的指令执行发生类型对应的性能事件发生次数是否小于等于预设执行次数,当判断出所述cpu的指令执行发生类型对应的性能事件发生次数小于等于所述预设执行次数时,触发执行所述的根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子。

37、本发明实施例第二方面公开了一种对cpu进行调频的智能控制系统,所述智能控制系统包括:

38、获取模块,用于当需要对所述cpu进行调频时,获取所述cpu的当前调频频率;

39、确定模块,用于确定所述cpu下一次的调频频率;

40、控制模块,用于根据所述cpu的当前调频频率及所述cpu下一次的调频频率,控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时的性能事件数据执行数据采集操作,得到所述cpu对应的性能事件数据,所述cpu对应的性能事件数据包括所述cpu对应的性能事件发生次数;

41、所述确定模块,还用于根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子;

42、所述控制模块,还用于根据所述cpu的算力比例因子及所述cpu下一次的调频频率,控制所述cpu执行调频操作。

43、作为一种可选的实施方式,在本发明第二方面中,所述控制模块控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时的性能事件数据执行数据采集操作,得到所述cpu对应的性能事件数据的具体方式包括:

44、以当确定出需要对所述cpu进行调频的时刻作为数据采集的起始时刻,开始控制所述cpu的性能监控单元对所述cpu以所述cpu的当前调频频率进行工作时某一时长段内的性能事件数据执行数据采集操作;

45、在执行所述采集操作的过程中,判断所述cpu的当前调频频率与所述cpu下一次的调频频率是否相等;

46、当判断出所述cpu的当前调频频率与所述cpu下一次的调频频率不相等时,控制所述性能监控单元停止执行所述数据采集操作,得到所述cpu对应的性能事件数据。

47、作为一种可选的实施方式,在本发明第二方面中,所述确定模块确定所述cpu下一次的调频频率的具体方式包括:

48、判断所述cpu是否发生调度事件,当判断结果为是时,控制所述cpu执行到调度入口,并获取所述调度事件的调度信息,所述调度信息包括所述cpu的利用率及所述cpu支持的最高频率;

49、根据所述调度信息,计算所述cpu下一次的调频频率;

50、其中,所述cpu下一次的调频频率的计算公式如下:

51、next_freq=c*max_freq*cpu_util;

52、式中,next_freq为所述cpu下一次的调频频率,max_freq为所述cpu支持的最高频率,cpu_util是所述cpu的利用率,且cpu_util是所述cpu上多个调度类的利用率及中断的利用率的总和,c为常量。

53、作为一种可选的实施方式,在本发明第二方面中,所述cpu对应的性能事件发生次数包括所述cpu的停运周期发生次数、所述cpu的指令执行发生次数及所述cpu的总执行周期发生次数;

54、其中,所述确定模块根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子的具体方式包括:

55、根据所述cpu的指令执行发生次数及所述cpu的停运周期发生次数,计算所述cpu的算力冗余周期数;

56、根据所述cpu的算力冗余周期数及所述cpu的总执行周期发生次数,计算所述cpu的算力比例因子。

57、作为一种可选的实施方式,在本发明第二方面中,所述cpu的算力比例因子的计算公式如下:

58、k=1 - x/cpu_cycles;

59、x = stall_cycles - m * instructions;

60、式中,k为所述cpu的算力比例因子,x 为所述cpu的算力冗余周期数,cpu_cycles为所述cpu的总执行周期发生次数,stall_cycles为所述cpu的停运周期发生次数,m为常量,instructions为所述cpu的指令执行发生次数。

61、作为一种可选的实施方式,在本发明第二方面中,所述控制模块根据所述cpu的算力比例因子及所述cpu下一次的调频频率,控制所述cpu执行调频操作的具体方式包括:

62、根据所述cpu的算力比例因子及所述cpu下一次的调频频率,计算所述cpu的目标调频频率,其中,当所述cpu的算力比例因子≥1时,所述cpu的算力比例因子取1,当所述cpu的算力比例因子<1时,所述cpu的算力比例因子取实际值;

63、根据所述cpu的目标调频频率及所述cpu的当前调频频率,控制所述cpu执行调频操作;

64、所述cpu的目标调频频率的计算公式如下:

65、target_freq = next_freq * k;

66、式中,target_freq为所述cpu的目标调频频率,k为所述cpu的算力比例因子。

67、作为一种可选的实施方式,在本发明第二方面中,所述控制模块根据所述cpu的目标调频频率及所述cpu的当前调频频率,控制所述cpu执行调频操作的具体方式包括:

68、判断所述cpu的当前调频频率与所述cpu的目标调频频率是否相等;

69、当判断出所述cpu的当前调频频率与所述cpu的目标调频频率不相等时,控制所述cpu将所述cpu的当前调频频率设置为所述cpu的目标调频频率。

70、作为一种可选的实施方式,在本发明第二方面中,所述cpu对应的性能事件数据还包括所述cpu对应的性能事件发生类型,所述cpu对应的性能事件发生次数包括每个所述性能事件发生类型对应的性能事件发生次数,所有所述性能事件发生类型包括所述cpu的停运周期发生类型、所述cpu的指令执行发生类型及所述cpu的总执行周期发生类型;

71、其中,所述智能控制系统还包括:

72、计算模块,用于在所述确定模块根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子之前,计算每个所述性能事件发生类型对应的性能事件发生次数;

73、判断模块,用于判断所述cpu的停运周期发生类型对应的性能事件发生次数是否大于等于预设停运次数;

74、所述判断模块,还用于当判断出结果为是时,判断所述cpu的指令执行发生类型对应的性能事件发生次数是否小于等于预设执行次数,当判断出所述cpu的指令执行发生类型对应的性能事件发生次数小于等于所述预设执行次数时,触发所述确定模块执行所述的根据所述cpu对应的性能事件数据,确定所述cpu的算力比例因子。

75、本发明第三方面公开了另一种对cpu进行调频的智能控制系统,所述智能控制系统包括:

76、存储有可执行程序代码的存储器;

77、与所述存储器耦合的处理器;

78、所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的任意一种对cpu进行调频的智能控制方法中部分或全部步骤。

79、本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的任意一种对cpu进行调频的智能控制方法中部分或全部步骤。

80、与现有技术相比,本发明实施例具有以下有益效果:

81、本发明实施例中,公开了一种对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页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1