一种CPU能效优化的方法及装置与流程

未命名 07-23 阅读:145 评论:0

一种cpu能效优化的方法及装置
技术领域
1.本发明涉及计算机处理技术领域,尤其涉及一种cpu能效优化的方法及装置。


背景技术:

2.近年来,随着云计算、大数据、人工智能等技术的高速发展,各应用对操作系统的算力需求越来越高,系统性能与功耗之间的矛盾也越来越突出。
3.目前,行业通用的cpufreq、eas等cpu调度算法主要采用cpufreq技术来平衡系统的性能和功耗。具体来说,即在cpu负载较低时降低cpu的电压和频率以降低功耗;在cpu负载较高时提高cpu电压和频率以提高其性能。然而,实践发现,cpu运行时有时会包含大量的cpu阻塞时长,这时提升cpu频率并不能提升系统算力,只是增加了系统功耗,从而导致系统能效下降。因此,提出一种如何针对性消除引起cpu能效下降的瓶颈因素,从而从根本上提升cpu的能效的技术方案显得尤为重要。


技术实现要素:

4.本发明提供了一种cpu能效优化的方法及装置,能够针对性消除引起cpu能效下降的瓶颈因素,从而从根本上提升cpu的能效。
5.为了解决上述技术问题,本发明第一方面公开了一种cpu能效优化的方法,所述方法包括:
6.获取预设时长段内cpu的实时运行信息以及所述cpu的实时负载;
7.对所述实时运行信息进行统计分析,得到所述预设时长段内所述cpu的实时性能指标;
8.根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作。
9.作为一种可选的实施方式,在本发明第一方面中,实时运行信息包括所述cpu在所述预设时长段内的运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种;
10.所述实时性能指标包括所述cpu在所述预设时长段内在每一时钟周期内所运行所述指令的数量,在所述预设时长段内平均运行每个所述指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种。
11.作为一种可选的实施方式,在本发明第一方面中,所述根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作,包括:
12.判断所述cpu在每一时钟周期内所运行所述指令的数量是否低于预设指令运行数量阈值;
13.当判断出低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述前端停顿次数是否高于预设前端停顿次数阈值;
14.当判断出高于所述预设前端停顿次数阈值时,判断所述实时负载是否高于预设负载阈值;
15.当判断出高于所述预设负载阈值时,确定所述cpu的频率,为限制所述cpu能效的瓶颈因素,并对所述cpu的频率执行提升操作。
16.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
17.当判断出所述cpu在每一时钟周期内所运行所述指令的数量低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述后端停顿次数是否高于预设后端停顿次数阈值;
18.当判断出高于所述预设后端停顿次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数是否高于预设内存访问次数阈值;
19.当判断出高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值;
20.当判断出高于所述预设最后一级缓存访问次数阈值时,确定所述cpu最后一级的缓存,为限制所述cpu能效的瓶颈因素,并对所述cpu的最后一级缓存执行增加操作,和/或,执行提升所述cpu的最后一级缓存的频率的操作。
21.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
22.当判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述总线访问次数是否高于预设总线访问次数阈值;
23.当判断出高于所述预设总线访问次数阈值时,确定所述cpu的总线,为限制所述cpu能效的瓶颈因素,并执行提升所述cpu总线的频率的操作,和/或,执行提升所述cpu内存的频率的操作。
24.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
25.当判断出所述实时负载不高于所述预设负载阈值时,判断所述cpu是否存在升频请求;
26.当判断出存在所述升频请求时,执行撤销所述升频请求的操作。
27.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
28.当判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数不高于所述预设最后一级缓存访问次数阈值时,判断所述cpu是否存在最后一级缓存调度请求;
29.当判断出存在所述最后一级缓存调度请求时,执行撤销所述最后一级缓存调度请求的操作。
30.作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
31.当判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数不高于所述预设内存访问次数阈值时,判断所述cpu是否存在目标调度请求,所述目标调度请求包括总线调度请求和/或内存调度请求;
32.当判断出存在所述目标调度请求时,执行撤销所述目标调度请求的操作。
33.本发明第二方面公开了一种cpu能效优化的装置,所述装置包括获取模块、分析模
块、资源调度模块,其中:
34.所述获取模块,用于获取预设时长段内cpu的实时运行信息以及所述cpu的实时负载;
35.所述分析模块,用于对所述实时运行信息进行统计分析,得到所述预设时长段内所述cpu的实时性能指标;
36.所述资源调度模块,用于根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作。
37.作为一种可选的实施方式,在本发明第二方面中,所述实时运行信息包括所述cpu在所述预设时长段内的运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种;
38.所述实时性能指标包括所述cpu在所述预设时长段内在每一时钟周期内所运行所述指令的数量,在所述预设时长段内平均运行每个所述指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种。
39.作为一种可选的实施方式,在本发明第二方面中,所述资源调度模块包括判断子模块、确定子模块、调度子模块,其中:
40.所述判断子模块,用于判断所述cpu在每一时钟周期内所运行所述指令的数量是否低于预设指令运行数量阈值;
41.所述判断子模块,还用于在判断出所述cpu在每一时钟周期内所运行所述指令的数量低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述前端停顿次数是否高于预设前端停顿次数阈值;
42.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述前端停顿次数高于所述预设前端停顿次数阈值时,判断所述实时负载是否高于预设负载阈值;
43.所述确定子模块,用于在所述判断子模块判断出所述实时负载高于所述预设负载阈值时,确定所述cpu的频率,为限制所述cpu能效的瓶颈因素;
44.所述调度子模块,用于在所述确定子模块确定所述cpu的频率,为限制所述cpu能效的瓶颈因素时,对所述cpu的频率执行提升操作。
45.作为一种可选的实施方式,在本发明第二方面中,其中:
46.所述判断子模块,还用于在判断出所述cpu在每一时钟周期内所运行所述指令的数量低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述后端停顿次数是否高于预设后端停顿次数阈值;
47.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述后端停顿次数高于所述预设后端停顿次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数是否高于预设内存访问次数阈值;
48.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值;
49.所述确定子模块,还用于在所述判断子模块判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次高于所述预设最后一级缓存访问次数阈值时,确定所述cpu最后一级的缓存,为限制所述cpu能效的瓶颈因素;
50.所述调度子模块,还用于在所述确定子模块确定所述cpu最后一级的缓存,为限制所述cpu能效的瓶颈因素时,对所述cpu的最后一级缓存执行增加操作,和/或,执行提升所述cpu的最后一级缓存的频率的操作。
51.作为一种可选的实施方式,在本发明第二方面中,其中:
52.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述总线访问次数是否高于预设总线访问次数阈值;
53.所述确定子模块,还用于在所述判断子模块判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述总线访问次数高于所述预设总线访问次数阈值时,确定所述cpu的总线,为限制所述cpu能效的瓶颈因素;
54.所述调度子模块,还用于在所述确定子模块确定所述cpu的总线,为限制所述cpu能效的瓶颈因素时,执行提升所述cpu总线的频率的操作,和/或,执行提升所述cpu内存的频率的操作。
55.作为一种可选的实施方式,在本发明第二方面中,其中:
56.所述判断子模块模块,还用于在判断出所述实时负载不高于所述预设负载阈值时,判断所述cpu是否存在升频请求;
57.所述调度子模块,还用于在所述判断子模块判断出存在所述升频请求时,执行撤销所述升频请求的操作。
58.作为一种可选的实施方式,在本发明第二方面中,其中:
59.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数不高于所述预设最后一级缓存访问次数阈值时,判断所述cpu是否存在最后一级缓存调度请求;
60.所述调度子模块,还用于在所述判断子模块判断出存在所述最后一级缓存调度请求时,执行撤销所述最后一级缓存调度请求的操作。
61.作为一种可选的实施方式,在本发明第二方面中,其中:
62.所述判断子模块,还用于在判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数不高于所述预设内存访问次数阈值时,判断所述cpu是否存在目标调度请求,所述目标调度请求包括总线调度请求和/或内存调度请求;
63.所述调度子模块,还用于在所述判断子模块判断出存在所述目标调度请求时,执行撤销所述目标调度请求的操作。
64.本发明第三方面公开了另一种cpu能效优化的装置,所述装置包括:
65.存储有可执行程序代码的存储器;
66.与所述存储器耦合的处理器;
67.所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-8任一项所述的cpu能效优化的方法。
68.本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-8任一项所述的cpu能效优化的方法。
69.与现有技术相比,本发明实施例具有以下有益效果:
70.本发明实施例中,获取预设时长段内cpu的实时运行信息和该cpu的实时负载;对实时运行信息进行统计分析,得到预设时长段内cpu的实时性能指标;根据实时性能指标和实时负载确定出限制cpu能效的瓶颈因素,并根据瓶颈因素,对cpu执行相应的cpu资源调度操作。可见,实施本发明能够针对性消引起cpu能效下降的瓶颈因素,从而从根本上提升cpu的能效。
附图说明
71.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
72.图1是本发明实施例公开的一种cpu能效优化的方法的流程示意图;
73.图2是本发明实施例公开的另一种cpu能效优化的方法的流程示意图;
74.图3是本发明实施例公开的又一种cpu能效优化的方法的流程示意图;
75.图4是本发明实施例公开的又一种cpu能效优化的方法的流程示意图;
76.图5是本发明实施例公开的一种cpu能效优化的装置的结构示意图;
77.图6是本发明实施例公开的另一种cpu能效优化的装置的结构示意图;
78.图7是本发明实施例公开的又一种cpu能效优化的装置的结构示意图;
79.图8是本发明实施例公开的又一种cpu能效优化的装置的结构示意图。
具体实施方式
80.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
81.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选的还包括没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
82.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
83.本发明公开了一种cpu能效优化的方法及装置,能够针对性消除引起cpu能效下降
的瓶颈因素,从而从根本上提升cpu的能效。以下分别进行详细说明。
84.实施例一
85.请参阅图1,图1是本发明实施例公开的一种cpu能效优化的方法的流程示意图。其中,图1所描述的cpu能效优化的方法可以应用于计算机操作系统中,还可以应用于智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、多处理器操作系统、网络操作系统、大型机操作系统等操作系统中的任何一种,例如unix操作系统、类unix操作系统、windows操作系统等,本发明实施例不做限定。如图1所示,该cpu能效优化的方法可以包括以下操作:
86.101、获取预设时长段内cpu的实时运行信息以及该cpu的实时负载。
87.本发明实施例中,该cpu可以是市面上任意一种cpu,本发明实施例不做限定。
88.本发明实施例中,该实时运行信息可以包括运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数,进一步的,该实时运行信息、实时负载可以从该cpu的性能监测单元和负载监测单元中获取,本发明实施例不做限定。
89.102、对上述实时运行信息进行统计分析,得到上述预设时长段内该cpu的实时性能指标。
90.本发明实施例中,该实时性能指标可以包括cpu在每一时钟周期内所运行指令的数量以及平均运行每个指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数,本发明实施例不做限定;其中,cpu在每一时钟周期内所运行指令的数量即cpu的ipc。
91.103、根据上述实时性能指标和实时负载确定出限制该cpu能效的瓶颈因素,并根据该瓶颈因素,对该cpu执行相应的cpu资源调度操作。
92.本发明实施例中,该瓶颈因素可以包括cpu的频率、最后一级缓存、总线,本发明实施例不做限定。
93.本发明实施例中,作为一种可选的实施方式,根据上述实时性能指标和实时负载确定出限制该cpu能效的瓶颈因素,并根据该瓶颈因素,对该cpu执行相应的cpu资源调度操作,可以包括:
94.判断cpu在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值;
95.当判断出低于预设指令运行数量阈值时,判断cpu在该预设时长段内平均运行每个指令发生的前端停顿次数是否高于预设前端停顿次数阈值;
96.当判断出高于预设前端停顿次数阈值时,判断cpu的实时负载是否高于预设负载阈值;
97.当判断出高于预设负载阈值时,确定所述cpu的频率,为限制该cpu能效的瓶颈因素,并对该cpu的频率执行提升操作。
98.可选的,当判断出实时负载不高于预设负载阈值时,判断cpu是否存在升频请求;
99.当判断出存在升频请求时,执行撤销升频请求的操作。
100.可见,实施图1所描述的cpu能效优化的方法能够通过对cpu的运行状况进行实时监控,并通过对监测到的cpu的实时性能信息和实时负载进行动态的统计分析,精准判断出影响cpu能效下降的瓶颈因素,并根据瓶颈因素进行针对性资源调度以补强cpu所需的短板
资源,能够快速消除影响cpu性能的影响因素,并从根本上提升cpu效能。
101.实施例二
102.请参阅图2,图2是本发明实施例公开的另一种cpu能效优化的方法的流程示意图。其中,图2所描述的cpu能效优化的方法可以应用于计算机操作系统中,还可以应用于智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、多处理器操作系统、网络操作系统、大型机操作系统等操作系统中的任何一种,例如unix操作系统、类unix操作系统、windows操作系统等,本发明实施例不做限定。如图2所示,该cpu能效优化的方法可以包括以下操作:
103.201、获取预设时长段内cpu的运行指令数、时钟周期数、前端停顿次数以及该cpu的实时负载。
104.本发明实施例中,该前端可以理解为cpu流水线上负责获取程序代码指令的部分,并将其解码为一个或多个称为微操作的底层硬件指令的部分,例如在最近的英特尔微体系结构上,流水线的前端(front-end)每个cpu周期可以分配4个微操作,而后端(back-end)可以在每个周期中退役4微操作,流水线槽(pipeline slot)代表处理一个微操作所需的硬件资源;假定对于每个cpu核心,在每个cpu周期内,有4个pipeline slot可用,在每个cpu周期中,pipeline slot可以是空的或者被微操作填充,如果在一个cpu周期内某个pipeline slot是空的,称之为一次停顿(stall)。进一步的,该前端停顿次数可以理解为cpu流水钱前端(front-end)的pipeline slot处于空闲状态的次数。
105.202、对上述运行指令数、时钟周期数、前端停顿次数进行统计分析,得到上述预设时长段内该cpu在每一时钟周期内所运行指令的数量、平均运行每个指令发生的前端停顿次数。
106.203、判断该cpu在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值,当步骤203的判断结果为是时,触发执行步骤204;当步骤204的判断结果为否时,结束流程。
107.204、判断该cpu在上述预设时长段内平均运行每个指令发生的前端停顿次数是否高于预设前端停顿次数阈值,当步骤204的判断结果为是时,触发执行步骤205;当步骤204的判断结果为否时,结束流程。
108.205、判断实时负载是否高于预设负载阈值,当步骤205的判断结果为是时,触发执行步骤206;当步骤205的判断结果为否时,触发执行步骤207。
109.206、确定该cpu的频率,为限制该cpu能效的瓶颈因素,并对该cpu的频率执行提升操作。
110.207、判断该cpu是否存在升频请求,当步骤207的判断结果为是时,触发执行步骤208;当步骤207的判断结果为否时,结束流程。
111.208、执行撤销升频请求的操作。
112.可见,实施图2所描述的cpu能效优化的方法能够通过对cpu的运行状况进行实时监控,对一定时长段内cpu在每一时钟周期内所运行指令的数量进行统计分析,判断cpu是否存在性能下降,并通过对该时长段内cpu平均运行每个指令发生的前端停顿次数以及实时负载进行统计分析,确定cpu的频率是否是cpu性能下降的根本原因,当确定cpu的频率是cpu性能下降的根本原因时,才对cpu的频率进行提升,不仅能够针对性地快速消除影响cpu
性能的影响因素,还能够减少因盲目提升cpu频率导致的能耗增加的问题,从而从根本上提升cpu的能效。
113.实施例三
114.请参阅图3,图3是本发明实施例公开的又一种cpu能效优化的方法的流程示意图。其中,图3所描述的cpu能效优化的方法可以应用于计算机操作系统中,还可以应用于智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、多处理器操作系统、网络操作系统、大型机操作系统等操作系统中的任何一种,例如unix操作系统、类unix操作系统、windows操作系统等,本发明实施例不做限定。如图3所示,该cpu能效优化的方法可以包括以下操作:
115.301、获取预设时长段内cpu的运行指令数、时钟周期数、后端停顿次数、内存访问次数、最后一级缓存访问次数。
116.本发明实施例中,该后端可以理解为cpu流水线上负责执行程序代码指令的部分,该后端停顿次数可以理解为由于缺乏接受执行新操作所需的后端资源而发生指令执行停顿的次数。
117.302、对上述运行指令数、时钟周期数、后端停顿次数、内存访问次数、最后一级缓存访问次数进行统计分析,得到上述预设时长段内该cpu在每一时钟周期内所运行指令的数量、平均运行每个指令发生的后端停顿次数、内存访问次数、最后一级缓存访问次数。
118.303、判断该cpu在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值,当步骤303的判断结果为是时,触发执行步骤304;当步骤304的判断结果为否时,结束流程。
119.304、判断该cpu在上述预设时长段内平均运行每个指令发生的后端停顿次数是否高于预设后端停顿次数阈值,当步骤304的判断结果为是时,触发执行步骤305;当步骤304的判断结果为否时,结束流程。
120.305、判断该cpu在上述预设时长段内平均运行每个指令时发生的内存访问次数是否高于预设内存访问次数阈值,当步骤305的判断结果为是时,触发执行步骤306;当步骤305的判断结果为否时,结束流程。
121.306、判断该cpu在预设时长段内平均运行每个指令发生的最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值,当步骤306的判断结果为是时,触发执行步骤307;当步骤306的判断结果为否时,触发执行步骤308。
122.307、确定cpu最后一级的缓存,为限制该cpu能效的瓶颈因素,并对该cpu的最后一级缓存执行增加操作,和/或,执行提升该cpu的最后一级缓存的频率的操作。
123.308、判断该cpu是否存在最后一级缓存调度请求,当步骤308的判断结果为是时,触发执行步骤309;当步骤308的判断结果为否时,结束流程。
124.309、执行撤销最后一级缓存调度请求的操作。
125.可见,实施图3所描述的cpu能效优化的方法能够通过对cpu的运行状况进行实时监控,对一定时长段内cpu在每一时钟周期内所运行指令的数量进行统计分析,判断cpu是否存在性能下降的同时,还能够通过对该时长段内cpu平均运行每个指令发生的后端停顿次数、内存访问次数、最后一级缓存访问次数进行统计分析,确定cpu最后一级缓存是否是cpu性能下降的根本原因,当确定cpu最后一级缓存是cpu性能下降的根本原因时,对该cpu
的最后一级缓存执行增加操作,和/或,执行提升该cpu的最后一级缓存的频率的操作,能够针对性地快速消除影响cpu性能的影响因素,从而从根本上提升cpu的能效。
126.实施例四
127.请参阅图4,图4是本发明实施例公开的又一种cpu能效优化的方法的流程示意图。其中,图4所描述的cpu能效优化的方法可以应用于计算机操作系统中,还可以应用于智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、多处理器操作系统、网络操作系统、大型机操作系统等操作系统中的任何一种,例如unix操作系统、类unix操作系统、windows操作系统等,本发明实施例不做限定。如图4所示,该cpu能效优化的方法可以包括以下操作:
128.401、获取预设时长段内cpu的运行指令数、时钟周期数、后端停顿次数、内存访问次数、总线访问次数。
129.402、对上述运行指令数、时钟周期数、后端停顿次数、内存访问次数、总线访问次数进行统计分析,得到上述预设时长段内该cpu在每一时钟周期内所运行指令的数量、平均运行每个指令发生的后端停顿次数、内存访问次数、总线访问次数。
130.403、判断该cpu在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值,当步骤403的判断结果为是时,触发执行步骤404;当步骤404的判断结果为否时,结束流程。
131.404、判断该cpu在上述预设时长段内平均运行每个指令发生的后端停顿次数是否高于预设后端停顿次数阈值,当步骤404的判断结果为是时,触发执行步骤405;当步骤404的判断结果为否时,结束流程。
132.405、判断该cpu在上述预设时长段内平均运行每个指令时发生的内存访问次数是否高于预设内存访问次数阈值,当步骤405的判断结果为是时,触发执行步骤406;当步骤405的判断结果为否时,结束流程。
133.406、判断该cpu在预设时长段内平均运行每个指令发生的总线访问次数是否高于预设总线次数阈值,当步骤406的判断结果为是时,触发执行步骤407;当步骤406的判断结果为否时,触发执行步骤408。
134.407、确定cpu的总线,为限制该cpu能效的瓶颈因素,并执行提升该cpu总线的频率的操作,和/或,执行提升该cpu内存的频率的操作。
135.408、判断该cpu是否存在存在目标调度请求,当步骤408的判断结果为是时,触发执行步骤409;当步骤408的判断结果为否时,结束流程。
136.本发明实施例中,该目标调度请求可以包括总线调度请求和/或内存调度请求,本发明实施例不做限定。
137.409、执行撤销该目标调度请求的操作。
138.可见,实施图4所描述的cpu能效优化的方法能够通过对cpu的运行状况进行实时监控,对一定时长段内cpu在每一时钟周期内所运行指令的数量进行统计分析,判断cpu是否存在性能下降的同时,还能够通过对该时长段内cpu平均运行每个指令发生的后端停顿次数、内存访问次数、总线访问次数进行统计分析,确定cpu的总线是否是cpu性能下降的根本原因,当确定cpu的总线是cpu性能下降的根本原因时,执行提升该cpu总线的频率的操作,和/或,执行提升该cpu内存的频率的操作,能够针对性地快速消除影响cpu性能的影响
因素,从而从根本上提升cpu的能效。
139.实施例五
140.请参阅图5,图5是本发明实施例公开的一种cpu能效优化的装置的结构示意图。如图5所示,该cpu能效优化的装置可以包括获取模块模块501、分析模块502、资源调度模块503,其中:
141.获取模块501,用于获取预设时长段内cpu的实时运行信息以及cpu的实时负载。
142.分析模块502,用于对实时运行信息进行统计分析,得到预设时长段内cpu的实时性能指标。
143.资源调度模块503,用于根据实时性能指标和实时负载确定出限制cpu能效的瓶颈因素,并根据瓶颈因素,对cpu执行相应的cpu资源调度操作。
144.本发明实施例中,该实时运行信息可以包括运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数,进一步的,该实时运行信息、实时负载可以从该cpu的性能监测单元和负载监测单元中获取,本发明实施例不做限定。
145.本发明实施例中,该实时性能指标可以包括cpu在每一时钟周期内所运行指令的数量以及平均运行每个指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数,本发明实施例不做限定;其中,cpu在每一时钟周期内所运行指令的数量即cpu的ipc。
146.可见,图5所描述的cpu能效优化的装置能够通过对cpu的运行状况进行实时监控,并通过对监测到的cpu的实时性能信息和实时负载进行动态的统计分析,精准判断出影响cpu能效下降的瓶颈因素,并根据瓶颈因素进行针对性资源调度以补强cpu所需的短板资源,能够快速消除影响cpu性能的影响因素,并从根本上提升cpu效能。
147.作为一个可选的实施例,该资源调度模块503可以包括判断子模块5031、确定子模块5032、调度子模块5033。此时,该cpu能效优化的装置可以如图6所示,图6是本发明实施例公开的另一种cpu能效优化的装置的结构示意图,其中:
148.判断子模块5031,用于判断cpu在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值。
149.判断子模块5031,还用于在判断出cpu在每一时钟周期内所运行指令的数量低于预设指令运行数量阈值时,判断cpu在该预设时长段内平均运行每个指令发生的前端停顿次数是否高于预设前端停顿次数阈值。
150.判断子模块5031,还用于在判断出cpu在该预设时长段内平均运行每个指令发生的前端停顿次数高于预设前端停顿次数阈值时,判断实时负载是否高于预设负载阈值。
151.确定子模块5032,用于在判断子模块5031判断出实时负载高于预设负载阈值时,确定cpu的频率,为限制该cpu能效的瓶颈因素。
152.调度子模块5033,用于在确定子模块5032确定cpu的频率,为限制该cpu能效的瓶颈因素时,对该cpu的频率执行提升操作。
153.可选的,判断子模块模块5031,还用于在判断出实时负载不高于预设负载阈值时,判断该cpu是否存在升频请求。
154.调度子模块5033,还用于在判断子模块5031判断出存在升频请求时,执行撤销该
升频请求的操作。
155.作为另一个可选的实施例,其中:
156.判断子模块5031,还用于在判断出该cpu在每一时钟周期内所运行指令的数量低于预设指令运行数量阈值时,判断该cpu在该预设时长段内平均运行每个指令发生的后端停顿次数是否高于预设后端停顿次数阈值。
157.判断子模块5031,还用于在判断出该cpu在该预设时长段内平均运行每个指令发生的后端停顿次数高于预设后端停顿次数阈值时,判断该cpu在该预设时长段内平均运行每个指令时发生的内存访问次数是否高于预设内存访问次数阈值。
158.判断子模块5031,还用于在判断出该cpu在该预设时长段内平均运行每个指令时发生的内存访问次数高于预设内存访问次数阈值时,判断该cpu在该预设时长段内平均运行每个指令发生的最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值。
159.确定子模块5032,还用于在判断子模块5031判断出该cpu在该预设时长段内平均运行每个指令发生的最后一级缓存访问次高于预设最后一级缓存访问次数阈值时,确定cpu最后一级的缓存,为限制该cpu能效的瓶颈因素。
160.调度子模块5033,还用于在确定子模块5032确定cpu最后一级的缓存,为限制该cpu能效的瓶颈因素时,对该cpu的最后一级缓存执行增加操作,和/或,执行提升该cpu的最后一级缓存的频率的操作。
161.可选的,判断子模块5031,还用于在判断出该cpu在该预设时长段内平均运行每个指令发生的最后一级缓存访问次数不高于预设最后一级缓存访问次数阈值时,判断该cpu是否存在最后一级缓存调度请求。
162.调度子模块5033,还用于在判断子模块5031判断出存在最后一级缓存调度请求时,执行撤销该最后一级缓存调度请求的操作。
163.作为又一个可选的实施例,其中:
164.判断子模块5031,还用于在判断出该cpu在该预设时长段内平均运行每个指令时发生的内存访问次数高于预设内存访问次数阈值时,判断该cpu在该预设时长段内平均运行每个指令发生的总线访问次数是否高于预设总线访问次数阈值。
165.确定子模块5032,还用于在判断子模块5031判断出该cpu在该预设时长段内平均运行每个指令发生的总线访问次数高于预设总线访问次数阈值时,确定cpu的总线,为限制该cpu能效的瓶颈因素。
166.调度子模块5033,还用于在确定子模块5032确定cpu的总线,为限制该cpu能效的瓶颈因素时,执行提升该cpu总线的频率的操作,和/或,执行提升cpu内存的频率的操作。
167.可选的,判断子模块5031,还用于在判断出该cpu在该预设时长段内平均运行每个指令时发生的内存访问次数不高于预设内存访问次数阈值时,判断该cpu是否存在目标调度请求;该目标调度请求可以包括总线调度请求和/或内存调度请求,本发明实施例不做限定。
168.调度子模块5033,还用于在判断子模块5031判断出存在目标调度请求时,执行撤销该目标调度请求的操作。
169.可见,图6所描述的cpu能效优化的装置能够通过对cpu的运行状况进行实时监控,并通过对监测到的cpu的实时性能信息和实时负载进行动态的统计分析,精准判断出影响
cpu能效下降的瓶颈因素,并根据瓶颈因素进行针对性资源调度以补强cpu所需的短板资源,能够快速消除影响cpu性能的影响因素,并从根本上提升cpu效能。
170.实施例六
171.请参阅图7,图7是本发明实施例公开的又一种cpu能效优化的装置的结构示意图。如图7所示,该cpu能效优化的装置可以包括cpu 601、性能监控装置602、负载监控装置603、cpu调频装置604、cache调度装置605、memory调度装置606、总线调度装置607,其中:
172.性能监控装置602,用于获取预设时长段内cpu601的实时运行信息。
173.负载监控装置603,用于获取预设时长段内cpu601的实时负载。
174.本发明实施例中,该实时运行信息可以包括运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数。
175.性能监控装置602,还用于对实时运行信息进行统计分析,得到预设时长段内cpu601的实时性能指标。
176.本发明实施例中,该实时性能指标可以包括cpu在每一时钟周期内所运行指令的数量以及平均运行每个指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数,本发明实施例不做限定;其中,cpu在每一时钟周期内所运行指令的数量即cpu的ipc。
177.性能监控装置602,还用于判断cpu601在每一时钟周期内所运行指令的数量是否低于预设指令运行数量阈值。
178.性能监控装置602,还用于在判断出cpu601在每一时钟周期内所运行指令的数量低于预设指令运行数量阈值时,判断cpu601在该预设时长段内平均运行每个指令发生的前端停顿次数是否高于预设前端停顿次数阈值。
179.负载监控装置603,还用于在性能监控装置602判断出cpu601在该预设时长段内平均运行每个指令发生的前端停顿次数高于预设前端停顿次数阈值时,判断实时负载是否于预设负载阈值。
180.cpu调频装置604,用于在负载监控装置603判断出实时负载高于预设负载阈值时,确定cpu601的频率,为限制cpu601能效的瓶颈因素,并对cpu601的频率执行提升操作。
181.可选的,cpu调频装置604,还用于在负载监控装置603判断出实时负载不高于预设负载阈值时,判断cpu601是否存在升频请求,若存在,执行撤销该升频请求的操作。
182.作为一个可选的实施例,其中:
183.性能监控装置602,还用于在判断出cpu601在每一时钟周期内所运行指令的数量低于预设指令运行数量阈值时,判断cpu601在该预设时长段内平均运行每个指令发生的后端停顿次数是否高于预设后端停顿次数阈值。
184.性能监控装置602,还用于在判断出cpu601在该预设时长段内平均运行每个指令发生的后端停顿次数高于预设后端停顿次数阈值时,判断cpu601在该预设时长段内平均运行每个指令时发生的内存访问次数是否高于预设内存访问次数阈值。
185.性能监控装置602,还用于在判断出cpu601在该预设时长段内平均运行每个指令时发生的内存访问次数高于预设内存访问次数阈值时,判断cpu601在该预设时长段内平均运行每个指令发生的最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值。
186.cache调度装置605,用于在性能监控装置602判断出cpu601在该预设时长段内平
均运行每个指令发生的最后一级缓存访问次高于预设最后一级缓存访问次数阈值时,确定cpu601最后一级的缓存,为限制cpu601能效的瓶颈因素,并对cpu601的最后一级缓存执行增加操作,和/或,执行提升cpu601的最后一级缓存的频率的操作。
187.可选的,cache调度装置605,还用于在性能监控装置602判断出cpu601在该预设时长段内平均运行每个指令发生的最后一级缓存访问次数不高于预设最后一级缓存访问次数阈值时,判断cpu601是否存在最后一级缓存调度请求,若存在,执行撤销该最后一级缓存调度请求的操作。
188.作为另一个可选的实施例,其中:
189.性能监控装置602,还用于在判断出cpu601在该预设时长段内平均运行每个指令时发生的内存访问次数高于预设内存访问次数阈值时,判断cpu601在该预设时长段内平均运行每个指令发生的总线访问次数是否高于预设总线访问次数阈值。
190.总线调度装置607,用于在性能监控装置602判断该cpu601在该预设时长段内平均运行每个指令发生的总线访问次数高于预设总线访问次数阈值时,确定cpu602的总线,为限制cpu601能效的瓶颈因素,并执行提升该cpu总线的频率的操作。
191.可选的,memory调度装置606,用于在确定cpu602的总线,为限制cpu601能效的瓶颈因素时,执行提升cpu内存的频率的操作。
192.可选的,总线调度装置607,还用于在性能监控装置602判断出cpu601在该预设时长段内平均运行每个指令时发生的内存访问次数不高于预设内存访问次数阈值时,判断cpu601是否存在总线调度请求,若存在,执行撤销该总线调度请求的操作。
193.可选的,memory调度装置607,还用于在性能监控装置602判断出cpu601在该预设时长段内平均运行每个指令时发生的内存访问次数不高于预设内存访问次数阈值时,判断cpu601是否存在内存调度请求,若存在,执行撤销该内存调度请求的操作。
194.可见,图7所描述的cpu能效优化的装置能够通过对cpu的运行状况进行实时监控,并通过对监测到的cpu的实时性能信息和实时负载进行动态的统计分析,精准判断出影响cpu能效下降的瓶颈因素,并根据瓶颈因素进行针对性资源调度以补强cpu所需的短板资源,能够快速消除影响cpu性能的影响因素,并从根本上提升cpu效能。
195.实施例七
196.请参阅图8,图8是本发明实施例公开的又一种cpu能效优化的装置的结构示意图。如图8所示,该cpu能效优化的装置可以包括:
197.存储有可执行程序代码的存储器701;
198.与存储器701耦合的处理器702;
199.处理器702调用存储器701中存储的可执行程序代码,执行本发明实施例一、本发明实施例二、本发明实施例三、本发明实施例四所描述的cpu能效优化的方法中的步骤。
200.实施例八
201.本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一、本发明实施例二、本发明实施例三、本发明实施例四所描述的cpu能效优化的方法中的步骤。
202.实施例九
203.本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机
程序的非瞬时性计算机存储介质,且该计算机程序可操作来使计算机执行本发明实施例一、本发明实施例二、本发明实施例三、本发明实施例四所描述的cpu能效优化的方法中步骤。
204.以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
205.通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机存储介质中,存储介质包括只读存储器(read-only memory,rom)、随机存储器(random access memory,ram)、可编程只读存储器(programmableread-only memory,prom)、可擦除可编程只读存储器(erasable programmableread only memory,eprom)、一次可编程只读存储器(one-time programmableread-only memory,otprom)、电子抹除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机的任何其他介质。
206.最后应说明的是:本发明实施例公开的cpu能效优化的方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

技术特征:
1.一种cpu能效优化的方法,其特征在于,所述方法包括:获取预设时长段内cpu的实时运行信息以及所述cpu的实时负载;对所述实时运行信息进行统计分析,得到所述预设时长段内所述cpu的实时性能指标;根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作。2.根据权利要求1所述的一种cpu能效优化的方法,其特征在于,所述实时运行信息包括所述cpu在所述预设时长段内的运行指令数、时钟周期数、前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种;所述实时性能指标包括所述cpu在所述预设时长段内在每一时钟周期内所运行所述指令的数量,在所述预设时长段内平均运行每个所述指令发生的前端停顿次数、后端停顿次数、最后一级缓存访问次数、内存访问次数、总线访问次数中的一种或多种。3.根据权利要求2所述的一种cpu能效优化的方法,其特征在于,所述根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作,包括:判断所述cpu在每一时钟周期内所运行所述指令的数量是否低于预设指令运行数量阈值;当判断出低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述前端停顿次数是否高于预设前端停顿次数阈值;当判断出高于所述预设前端停顿次数阈值时,判断所述实时负载是否高于预设负载阈值;当判断出高于所述预设负载阈值时,确定所述cpu的频率,为限制所述cpu能效的瓶颈因素,并对所述cpu的频率执行提升操作。4.根据权利要求3所述的一种cpu能效优化的方法,其特征在于,所述方法还包括:当判断出所述cpu在每一时钟周期内所运行所述指令的数量低于所述预设指令运行数量阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述后端停顿次数是否高于预设后端停顿次数阈值;当判断出高于所述预设后端停顿次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数是否高于预设内存访问次数阈值;当判断出高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数是否高于预设最后一级缓存访问次数阈值;当判断出高于所述预设最后一级缓存访问次数阈值时,确定所述cpu最后一级的缓存,为限制所述cpu能效的瓶颈因素,并对所述cpu的最后一级缓存执行增加操作,和/或,执行提升所述cpu的最后一级缓存的频率的操作。5.根据权利要求4所述的一种cpu能效优化的方法,其特征在于,所述方法还包括:当判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数高于所述预设内存访问次数阈值时,判断所述cpu在所述预设时长段内平均运行每个所述指令发生的所述总线访问次数是否高于预设总线访问次数阈值;当判断出高于所述预设总线访问次数阈值时,确定所述cpu的总线,为限制所述cpu能
效的瓶颈因素,并执行提升所述cpu总线的频率的操作,和/或,执行提升所述cpu内存的频率的操作。6.根据权利要求3所述的一种cpu能效优化的方法,其特征在于,所述方法还包括:当判断出所述实时负载不高于所述预设负载阈值时,判断所述cpu是否存在升频请求;当判断出存在所述升频请求时,执行撤销所述升频请求的操作。7.根据权利4所述的一种cpu能效优化的方法,其特征在于,所述方法还包括:当判断出所述cpu在所述预设时长段内平均运行每个所述指令发生的所述最后一级缓存访问次数不高于所述预设最后一级缓存访问次数阈值时,判断所述cpu是否存在最后一级缓存调度请求;当判断出存在所述最后一级缓存调度请求时,执行撤销所述最后一级缓存调度请求的操作。8.根据权利要求5所述的一种cpu能效优化的方法,其特征在于,所述方法还包括:当判断出所述cpu在所述预设时长段内平均运行每个所述指令时发生的所述内存访问次数不高于所述预设内存访问次数阈值时,判断所述cpu是否存在目标调度请求,所述目标调度请求包括总线调度请求和/或内存调度请求;当判断出存在所述目标调度请求时,执行撤销所述目标调度请求的操作。9.一种cpu能效优化的装置,其特征在于,所述装置包括获取模块、分析模块、资源调度模块,其中:所述获取模块,用于获取预设时长段内cpu的实时运行信息以及所述cpu的实时负载;所述分析模块,用于对所述实时运行信息进行统计分析,得到所述预设时长段内所述cpu的实时性能指标;所述资源调度模块,用于根据所述实时性能指标和所述实时负载确定出限制所述cpu能效的瓶颈因素,并根据所述瓶颈因素,对所述cpu执行相应的cpu资源调度操作。10.一种cpu能效优化的装置,其特征在于,所述装置包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-8任一项所述的cpu能效优化的方法。

技术总结
本发明公开了一种CPU能效优化的方法及装置,该方法包括:获取预设时长段内CPU的实时运行信息和该CPU的实时负载;对实时运行信息进行统计分析,得到预设时长段内CPU的实时性能指标;根据实时性能指标和实时负载确定出限制CPU能效的瓶颈因素,并根据瓶颈因素,对CPU执行相应的CPU资源调度操作。可见,实施本发明能够针对性消除引起CPU能效下降的瓶颈因素,从而从根本上提升CPU的能效。而从根本上提升CPU的能效。而从根本上提升CPU的能效。


技术研发人员:樊卿华 丁然 朱振华
受保护的技术使用者:珠海全志科技股份有限公司
技术研发日:2023.03.27
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐