CN102004543A - 一种实现cpu节能的方法及装置 - Google Patents
一种实现cpu节能的方法及装置 Download PDFInfo
- Publication number
- CN102004543A CN102004543A CN2010105716679A CN201010571667A CN102004543A CN 102004543 A CN102004543 A CN 102004543A CN 2010105716679 A CN2010105716679 A CN 2010105716679A CN 201010571667 A CN201010571667 A CN 201010571667A CN 102004543 A CN102004543 A CN 102004543A
- Authority
- CN
- China
- Prior art keywords
- thread
- territory
- cpu
- frequency
- frequency modulation
- 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
Images
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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一种实现CPU节能的方法及装置,相应的方法包括获取每个域中所有触发调频的线程的CPU占有率及所属的域;在所述触发调频的线程所属的域中,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率;根据所述CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。本发明根据每个触发调频的线程的CPU占有率对对每个域中的线程的CPU频率值进行同步,进而在多核系统下同步CPU频率值,实现了CPU的节能。
Description
技术领域
本发明涉及一种实现CPU节能的方法及装置,尤其涉及一种在多核系统模式下实现CPU节能的方法及装置。
背景技术
节能减排已经成为国际政治与经济中的一大热点问题,由于广泛应用而引起的通信设备的节能问题则是热点问题中的热点。典型的电信环境是在一组机框中设有一组单板,每个单板上有多个运行实体,这些实体可以是CPU、核、VCPU或者超线程(逻辑核)。一个CPU可以有多个核,一个核可能会有一个或者多个硬线程。一个OS(Operation System,操作系统)实例会部署到一个或者多个运行实体。其中的CPU节能可以通过逐级调节频率达到低频以降低功耗来实现。
已有的OS实例主要包括SMP(Symmetric multiprocessing,对称多处理器)和AMP(Asymmetric multiprocessing,非对称多处理器)。对于SMP,由于只有一个OS实例,该OS实例可以同时管理所有的CPU内核,能够定时监控CPU占有率,当发现过高或者过低时就可以调整CPU频率以达到节能的目的。对于AMP部署模式的多核系统以及采用AMP和SMP混合部署模式的多核系统,其主要特征是:在一个域内运行有多个操作系统实例,每个OS实例都可以独立控制自己的CPU主频,其中一个域中的所有硬线程共用同一个CPU频率。若在一个域内运行多个OS实例,当每个OS实例分别去控制CPU频率时就会发生冲突。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有的CPU节能技术中,对于多核系统,无法通过调整CPU的频率以实现节能。
发明内容
本发明的实施例提供了一种实现CPU节能的方法及装置,能够在多核系统下同步CPU频率值,以实现CPU的节能。
一种实现CPU节能的方法,包括:
获取每个域中所有触发调频的线程的CPU占有率及所属的域;
在所述触发调频的线程所属的域中,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率;
根据所述CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
一种实现CPU节能的装置,包括:
域获取单元,用于获取每个域中所有触发调频的线程的CPU占有率及所属的域;
频率计算单元,用于在所述触发调频的线程所属的域中,根据所述域获取单元获取的触发调频的线程的CPU占有率计算需要调整的CPU目标频率;
频率调整单元,用于根据所述频率计算单元获得的CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
由上述本发明的实施例提供的技术方案可以看出,根据每个触发调频的线程的CPU占有率对每个域中的线程的CPU频率值进行同步,进而在多核系统下同步CPU频率值,从而实现了CPU的节能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的AMP和SMP混合部署模式的结构示意图;
图2为本发明的实施例提供的在多核系统模式下实现CPU节能的方法流程示意图;
图3为本发明的实施例提供的初始化配置CpuFreq1线程的时序图;
图4为本发明的实施例提供的CpuFreq1线程计算CPU目标频率的时序图;
图5为本发明的实施例提供的CpuGover1.1触发调频流程的调整CPU频率的时序图;
图6为本发明的实施例提供的CpuGover1.2触发调频流程的调整CPU频率的时序图;
图7为本发明的实施例提供的CpuGover2.1触发调频流程的调整CPU频率的时序图;
图8为本发明的实施例提供的CpuGover2.2触发调频流程的调整CPU频率的时序图;
图9为本发明的实施例提供的CpuGover3触发调频流程的调整CPU频率的时序图;
图10为本发明的实施例提供的实现CPU节能的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明的实施例提出的是一种实现CPU节能的方法,包括获取每个域中所有触发调频的线程的CPU占有率及所属的域;在所述触发调频的线程所属的域中,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率;根据所述CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。图1所示的是一种AMP和SMP混合部署模式的多核系统,深色的圆和浅色的圆分别表示物理属性一致的核,该核被作为一个天然域(深色为域1、浅色为域2),因为域内所有的硬线程共用同一CPU主频。在每个域内都有一个深色外环的硬线程(图1中的pthread1和pthread 5),该硬线程表示域内的主硬线程,其它硬线程为从硬线程。具体地,依据图1的部署模式,每个OS实例都有硬线程CpuFreq,CpuFreq依据跨域个数创建cpuGover线程,于是有如下的关系:
OS1包含CpuFreq1,CpuFreq1包括CpuGover1.1(包括pthread1、3和4,属于域1)和CpuGover1.2(包括pthread6和7,属于域2);
OS2包含CpuFreq2,CpuFreq2包括CpuGover2.1(包括pthread2,属于域1)和CpuGover2.2(包括pthread5,属于域2);
OS3包含CpuFreq3,CpuFreq3包括CpuGover3(包括pthread8,属于域2)。
CpuGover线程主要负责CPU占有率的监控及获取,然后上报给自己的管理者CpuFreq,CpuGover不存在分布式概念,在一个OS实例下只能看到自己,看不到OS实例内部的其它Gover,也看不到其它OS实例的Gover。
CpuFreq负责收集CPU占有率,然后对CPU占有率就行分析处理;并处理结果同步给主CpuFreq,各个CpuFreq自己进行定时器参数的调整,最后由主CpuFreq进行频率设置。
由于CpuFreq是分布式存在,因此相互之间需要同步信息。其中对于CPU占有率的处理是在多个CPU占有率数值中依据配置的策略选择合适的CPU占有率,然后硬件支持特征设置频率更新定时器参数,以保证时间与频率的一致。
下面按各个线程对CPU的频率进行调整的顺序对实现CPU节能的方法作具体说明,如图2所示,该方法具体可以包括:
步骤21,初始化配置硬线程CpuFreq。
CpuFreq的身份确定和部署是通过配置完成的,配置信息包括公共信息和私有信息,公共信息为单板上所有域的ID及每个域的CpuFreq的位置信息,私有信息为所在OS下的域特征。配置好的CpuFreq可以创建CpuGover实例,因为支持动态创建,所以CpuFreq需要清除原有的CpuGover后注册新的CpuGover,并启动对线程的监控。
具体的,以CpuFreq1为例,在图3中,CpuFreq1首先注销原有的cpugovernor并停止原有的cpu gover线程,然后注册新的cpu gover并在域中创建cpu gover实例及创建cpu gover线程,创建的线程包括CpuGover1.1和CpuGover1.2,线程创建完成后启动对每个线程的监控。
步骤22,获取每个域中所有触发调频的线程的CPU占有率及所属的域。
按层次可以将CpuGover划分为底层,将CpuFreq划分为上层,在一个OS实例内底层可能有多个实例,上层将多个实例进行汇聚整合为一个硬线程。同时还为每个线程设置一个定时器,定时器的步长可以CPU的占有率更新频率为基准。
具体的,以CpuFreq1为例,如图4所示,如果定时器超时,则CpuGover1.1和CpuGover1.2会获取自身的CPU占有率并向CpuFreq1上报,CpuFreq1记录各线程的CPU占有率及根据各线程的配置信息获取相应的线程所属的域。
对于CpuGover何时上报CPU占有率可以设置一个门限值,当CPU占有率的变化值大于门限值时,则CpuGover向CpuFreq上报CPU占有率,当CPU占有率的变化值小于门限值时,则不上报CPU占有率,以减少不必要的消息流量。
步骤23,在所述触发调频的线程所属的域中,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率。
在计算CPU目标频率的过程中,首先选择最高CPU占有率的线程进行处理,计算出所在OS实例的定时器参数。如果在CpuFreq无法获取域的主CpuFreq的信息时将按照最高频率进行处理。
具体的,以CpuFreq1为例,如图4所示,CpuFreq1依据策略,根据CpuGover1.1和CpuGover1.2的CPU占有率计算需要调整的CPU目标频率。所述的策略可以在初始化配置到配置信息中,相应的策略可以为:筛选CPU占有率并获取CPU占有率对应的标称CPU频率。
步骤24,在所述触发调频的线程所属的域中挂起定时器。
具体地,CpuFreq1首先通知其它域的CpuFreq挂起定时器,当其它域的CpuFreq挂起定时器并向CpuFreq1返回挂起响应后,CpuFreq1再挂起本域的定时器,这样是为了最大限度的使所有定时器的时间保持一致,同时也能提高调整CPU频率的可靠性。
步骤25,根据所述CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
由于调整定时器的时候会调整到定时器的关键参数(例如对于tick值,若调整之前定时器设定为每100tick触发一个定时器检查,调整之后可能会设定为200tick触发一个定时器检查),因此在CPU频率调整之前,可以根据OS实例的配置表中的CPU频率和定时器参数的对应关系,选择对应的定时器参数作为更新的定时器参数。
具体的,CpuFreq1发送CPU目标频率给其它域的CpuFreq,每个CpuFreq都会根据CPU目标频率计算自己何时的定时器参数。计算出定时器参数后,通过调用CPU的驱动程序调整CPU的频率值,在AMP和SMP混合部署模式的多核系统中还支持动态加载。
步骤26,重新启动定时器。
为了保证AMP和SMP混合部署模式的多核系统的可靠性,在每次设置完CPU频率值之后,还要重启定时器,这样当CPU的频率调整失败时,可以放弃本次操作,待下次定时器超时则重新调整CPU的频率。
进一步地,在步骤25中,对于图1所示的情况,存在相同OS实例中相同域的线程调整CPU频率、相同OS实例中不同域的线程调整CPU频率、不同OS实例中不同域的线程调整CPU频率等情况,因此下面对这些情况进行详细说明。
CPU调频实施例一
如图5所示,当CpuGover1.1触发调频流程时,会先上报到所属OS实例的主硬线程CpuFreq1(相当于图1中的pthread1),CpuFreq1计算出需要调整的CPU目标频率后,向域2的主硬线程CpuFreq2(相当于图1中的pthread5)发送挂起操作通知(由于触发调频的线程所在的域1仅包括OS1和OS2两个实例,因此仅由OS1和OS2的主硬线程进行CPU频率调整)。当CpuFreq1和CpuFreq2都挂起当前触发的定时器后,CpuFreq1调用CPU驱动程序设置CPU频率并将该CPU频率发送给CpuFreq2。CpuFreq1根据新的CPU频率计算并设置本地的定时器参数,同时CpuFreq2也根据自身的规则设置CpuGover2.1的定时器参数(CpuGover2.1是OS1的处于域2中的线程,因此在OS1设置CPU频率时也需要与之同步,同步的操作由域2中的主硬线程CpuFreq2完成)。设置完定时器参数后,CpuFreq1和CpuFreq2都重新触发定时器,完成本次触发调频流程。
CPU调频实施例二
如图6所示,当CpuGover1.2触发调频流程时,会先上报到所属OS实例的主硬线程CpuFreq1,CpuFreq1将CPU频率参数发送给域2的主硬线程CpuFreq2,CpuFreq2计算出需要调整的CPU目标频率后,向域2的主硬线程CpuFreq2和从硬线程CpuFreq3发送挂起操作通知(由于触发调频的线程所在的域2包括OS1、OS2和OS3共三个实例,因此需要OS1和OS2的主硬线程以及OS3的从硬线程进行CPU频率调整)。当CpuFreq1、CpuFreq2和CpuFreq3都挂起当前触发的定时器后,CpuFreq2调用CPU驱动程序设置CPU频率并将该CPU频率发送给CpuFreq1和CpuFreq3。CpuFreq2根据自身规则设置本地的定时器参数,同时CpuFreq1根据自身的规则设置CpuGover1.2的定时器参数,以及CpuFreq3根据新的CPU频率调整自己的定时器参数。设置完定时器参数后,CpuFreq1、CpuFreq2和CpuFreq3都重新触发定时器,完成本次触发调频流程。
CPU调频实施例三
如图7所示,当CpuGover2.1触发调频流程时,会先上报到所属OS实例的主硬线程CpuFreq2,CpuFreq2将CPU频率参数发送给域1的主硬线程CpuFreq1,CpuFreq1计算出需要调整的CPU目标频率后,向域2的主硬线程CpuFreq2发送挂起操作通知,当CpuFreq1和CpuFreq2都挂起当前触发的定时器后,CpuFreq1调用CPU驱动程序设置CPU频率并将该CPU频率发送给CpuFreq2。CpuFreq1根据自身规则设置本地的定时器参数,同时CpuFreq2根据新CPU频率计算并设置CpuGover2.1的定时器参数。设置完定时器参数后,CpuFreq1和CpuFreq2都重新触发定时器,完成本次触发调频流程。
CPU调频实施例四
如图8所示,当CpuGover2.2触发调频流程时,会先上报到所属OS实例的主硬线程CpuFreq2,CpuFreq2计算出需要调整的CPU目标频率后,向域1的主硬线程CpuFreq2及域2的从硬线程CpuFreq3发送挂起操作通知。当CpuFreq1、CpuFreq2和CpuFreq3都挂起当前触发的定时器后,CpuFreq2调用CPU驱动程序设置CPU频率并将该CPU频率发送给CpuFreq2和CpuFreq3。CpuFreq1根据自身规则设置本地的定时器参数,同时CpuFreq2也根据新的CPU频率计算并设置CpuGover2.2的定时器参数,以及CpuFreq3根据新的CPU频率计算并设置自身的定时器参数。设置完定时器参数后,CpuFreq1、CpuFreq2和CpuFreq3都重新触发定时器,完成本次触发调频流程。
CPU调频实施例五
如图9所示,当CpuGover3触发调频流程时,会先上报到所属OS实例的从硬线程CpuFreq3(由于OS3在域2内没有主硬线程,因此只能先上报到从硬线程),CpuFreq3将CPU频率参数发送给所述域中的主硬线程CpuFreq2,CpuFreq2计算出需要调整的CPU目标频率后,向CpuFreq2及CpuFreq3发送挂起操作通知。当CpuFreq1、CpuFreq2和CpuFreq3都挂起当前触发的定时器后,CpuFreq2调用CPU驱动程序设置CPU频率并将该CPU频率发送给CpuFreq1和CpuFreq3。CpuFreq1和CpuFreq2根据自身规则设置本地的定时器参数,同时CpuFreq3也根据新的CPU频率计算并设置CpuGover3的定时器参数。设置完定时器参数后,CpuFreq1、CpuFreq2和CpuFreq3都重新触发定时器,完成本次触发调频流程。
本发明提供的实施例根据每个触发调频的线程的CPU占有率对对每个域中的线程的CPU频率值进行同步,实现了在AMP部署模式的多核系统以及采用AMP和SMP混合部署模式的多核系统下同步CPU频率值,从而实现了CPU的节能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本发明的实施例还提供了一种实现CPU节能的装置,如图10所示,具体可以包括域获取单元101、频率计算单元102和频率调整单元103,域获取单元101用于获取每个域中所有触发调频的线程的CPU占有率及所属的域;频率计算单元102用于在所述触发调频的线程所属的域中,根据所述域获取单元101获取的触发调频的线程的CPU占有率计算需要调整的CPU目标频率;频率调整单元103用于根据所述频率计算单元102获得的CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
进一步地,在所述域获取单元中可以包括监测发送子单元,用于监测每个域中所有从线程的CPU占有率,若其中一个或多个从线程的CPU占有率的变化大于门限值,则发送所述CPU占有率;在所述频率计算单元中包括频率获取子单元,用于在每个域中所有触发调频的线程的CPU占有率中选出CPU占有率的最大值,并根据OS实例的配置表中的CPU占有率和CPU频率的对应关系选择相应的CPU频率值作为CPU目标频率;在所述频率调整单元中包括定时器挂起子单元,用于在所述触发调频的线程所属的域中挂起定时器。
以及,当不同域中不同的线程触发调频时,在频率调整单元103可以包括以下的情况:
①、当触发调频的线程与所属OS实例的主硬线程在同一域中时,在频率调整单元103包括第一定时器挂起子单元、第一频率设置发送子单元、第一定时器参数设置子单元和第一定时器触发子单元,第一定时器挂起子单元用于当触发调频的线程与OS实例的主硬线程同在一个域时,同时挂起当前触发的定时器与所述OS实例的其它线程所在域的定时器;第一频率设置发送子单元用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述OS实例的其它线程所在域;第一定时器参数设置子单元用于与所述触发调频的线程同在一个域的主硬线程计算并设置本地的定时器参数,所述OS实例的其它线程所在域的主硬线程根据自身规则设置所述OS实例的其它线程的定时器参数;第一定时器触发子单元用于将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
②、当触发调频的线程与所属OS实例的主硬线程不在同一域中时,在频率调整单元103包括第二CPU频率参数发送子单元、第二定时器挂起子单元、第二频率设置发送子单元、第二定时器参数设置子单元和第二定时器触发子单元,第二CPU频率参数发送子单元用于当触发调频的线程与OS实例的主硬线程不在同一个域时,所述触发调频的线程所属OS实例的主硬线程将所述触发调频的线程的CPU频率参数发送给所述触发调频的线程所属域的主硬线程;第二定时器挂起子单元用于同时挂起当前触发的定时器、所述OS实例的其它线程所在域的定时器;第二频率设置发送子单元用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域;第二定时器参数设置子单元用于与所述触发调频的线程同在一个域的主硬线程根据自身规则计算并设置本地的定时器参数,所述触发调频的线程所属OS实例的主硬线程计算并设置所述触发调频的定时器参数;第二定时器触发子单元用于将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
③、当触发调频的线程所述的域中没有OS实例的主硬线程时,在频率调整单元103包括第三CPU频率参数发送子单元、第三定时器挂起子单元、第三频率设置发送子单元、第三定时器参数设置子单元和第三定时器触发子单元,第三CPU频率参数发送子单元用于当触发调频的线程在所属域中不占有主硬线程时,将CPU频率参数发送给所述触发调频的线程所属OS实例的主硬线程;第三定时器挂起子单元用于同时挂起当前触发的定时器、触发调频的线程所属域中其它OS实例的线程的定时器;第三频率设置发送子单元用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域中其它OS实例的硬线程;第三定时器参数设置子单元用于与所述触发调频的线程同在一个域的主硬线程根据新CPU频率计算并设置本地的定时器参数,所述触发调频的线程所在域中其它OS实例的硬线程根据自身规则设置本地的定时器参数;第三定时器触发子单元,用于将触发调频的线程所在域与所述触发调频的线程所在域中其它OS实例的硬线程的定时器重新触发。
上述装置中包含的各单元及子单元的功能已在之前的方法实施例中详细叙述,在本实施例中就不再敷述。
本发明提供的实施例根据每个触发调频的线程的CPU占有率对对每个域中的线程的CPU频率值进行同步,实现了在AMP部署模式的多核系统以及采用AMP和SMP混合部署模式的多核系统下同步CPU频率值,从而实现了CPU的节能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (14)
1.一种实现CPU节能的方法,其特征在于,包括:
获取每个域中所有触发调频的线程的CPU占有率及所属的域;
在所述触发调频的线程所属的域中,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率;
根据所述CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
2.根据权利要求1所述的方法,其特征在于,所述触发调频包括:
监测每个域中所有从线程的CPU占有率,若其中一个或多个从线程的CPU占有率的变化大于门限值,则发送所述CPU占有率。
3.根据权利要求1所述的方法,其特征在于,根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率包括:
在每个域中所有触发调频的线程的CPU占有率中选出CPU占有率的最大值,并根据操作系统OS实例的配置表中的CPU占有率和CPU频率的对应关系选择相应的CPU频率值作为CPU目标频率。
4.根据权利要求1所述的方法,其特征在于,在根据所述触发调频的线程的CPU占有率计算需要调整的CPU目标频率之后还包括:
在所述触发调频的线程所属的域中挂起定时器。
5.根据权利要求1至4任意一项所述的方法,其特征在于,设置所述触发调频的线程的CPU频率值包括:
当触发调频的线程与OS实例的主硬线程同在一个域时,同时挂起当前触发的定时器与所述OS实例的其它线程所在域的定时器;
与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述OS实例的其它线程所在域;
与所述触发调频的线程同在一个域的主硬线程计算并设置本地的定时器参数,所述OS实例的其它线程所在域的主硬线程根据自身规则设置所述OS实例的其它线程的定时器参数;
将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
6.根据权利要求1至4任意一项所述的方法,其特征在于,设置所述触发调频的线程的CPU频率值包括:
当触发调频的线程与OS实例的主硬线程不在同一个域时,所述触发调频的线程所属OS实例的主硬线程将所述触发调频的线程的CPU频率参数发送给所述触发调频的线程所属域的主硬线程;
同时挂起当前触发的定时器、所述OS实例的其它线程所在域的定时器;
与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域;
与所述触发调频的线程同在一个域的主硬线程根据自身规则计算并设置本地的定时器参数,所述触发调频的线程所属OS实例的主硬线程计算并设置所述触发调频的定时器参数;
将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
7.根据权利要求1至4任意一项所述的方法,其特征在于,设置所述触发调频的线程的CPU频率值包括:
当触发调频的线程在所属域中不占有主硬线程时,将CPU频率参数发送给所述触发调频的线程所属OS实例的主硬线程;
同时挂起当前触发的定时器、触发调频的线程所属域中其它OS实例的线程的定时器;
与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域中其它OS实例的硬线程;
与所述触发调频的线程同在一个域的主硬线程根据新CPU频率计算并设置本地的定时器参数,所述触发调频的线程所在域中其它OS实例的硬线程根据自身规则设置本地的定时器参数;
将触发调频的线程所在域与所述触发调频的线程所在域中其它OS实例的硬线程的定时器重新触发。
8.一种实现CPU节能的装置,其特征在于,包括:
域获取单元,用于获取每个域中所有触发调频的线程的CPU占有率及所属的域;
频率计算单元,用于在所述触发调频的线程所属的域中,根据所述域获取单元获取的触发调频的线程的CPU占有率计算需要调整的CPU目标频率;
频率调整单元,用于根据所述频率计算单元获得的CPU目标频率计算定时器参数并设置所述触发调频的线程的CPU频率值。
9.根据权利要求8所述的装置,其特征在于,在所述域获取单元中包括:
监测发送子单元,用于监测每个域中所有从线程的CPU占有率,若其中一个或多个从线程的CPU占有率的变化大于门限值,则发送所述CPU占有率。
10.根据权利要求8所述的装置,其特征在于,在所述频率计算单元中包括:
频率获取子单元,用于在每个域中所有触发调频的线程的CPU占有率中选出CPU占有率的最大值,并根据操作系统OS实例的配置表中的CPU占有率和CPU频率的对应关系选择相应的CPU频率值作为CPU目标频率。
11.根据权利要求8所述的装置,其特征在于,在所述频率调整单元中包括:
定时器挂起子单元,用于在所述触发调频的线程所属的域中挂起定时器。
12.根据权利要求8至11任意一项所述的装置,其特征在于,在所述频率调整单元中包括:
第一定时器挂起子单元,用于当触发调频的线程与OS实例的主硬线程同在一个域时,同时挂起当前触发的定时器与所述OS实例的其它线程所在域的定时器;
第一频率设置发送子单元,用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述OS实例的其它线程所在域;
第一定时器参数设置子单元,用于与所述触发调频的线程同在一个域的主硬线程计算并设置本地的定时器参数,所述OS实例的其它线程所在域的主硬线程根据自身规则设置所述OS实例的其它线程的定时器参数;
第一定时器触发子单元,用于将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
13.根据权利要求8至11任意一项所述的装置,其特征在于,在所述频率调整单元中还包括:
第二CPU频率参数发送子单元,用于当触发调频的线程与OS实例的主硬线程不在同一个域时,所述触发调频的线程所属OS实例的主硬线程将所述触发调频的线程的CPU频率参数发送给所述触发调频的线程所属域的主硬线程;
第二定时器挂起子单元,用于同时挂起当前触发的定时器、所述OS实例的其它线程所在域的定时器;
第二频率设置发送子单元,用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域;
第二定时器参数设置子单元,用于与所述触发调频的线程同在一个域的主硬线程根据自身规则计算并设置本地的定时器参数,所述触发调频的线程所属OS实例的主硬线程计算并设置所述触发调频的定时器参数;
第二定时器触发子单元,用于将触发调频的线程所在域与所述OS实例的其它线程所在域的定时器重新触发。
14.根据权利要求8至11任意一项所述的装置,其特征在于,在所述频率调整单元中还包括:
第三CPU频率参数发送子单元,用于当触发调频的线程在所属域中不占有主硬线程时,将CPU频率参数发送给所述触发调频的线程所属OS实例的主硬线程;
第三定时器挂起子单元,用于同时挂起当前触发的定时器、触发调频的线程所属域中其它OS实例的线程的定时器;
第三频率设置发送子单元,用于与所述触发调频的线程同在一个域的主硬线程调用CPU驱动程序设置CPU频率,并将所述CPU频率发送到所述触发调频的线程所在域中其它OS实例的硬线程;
第三定时器参数设置子单元,用于与所述触发调频的线程同在一个域的主硬线程根据新CPU频率计算并设置本地的定时器参数,所述触发调频的线程所在域中其它OS实例的硬线程根据自身规则设置本地的定时器参数;
第三定时器触发子单元,用于将触发调频的线程所在域与所述触发调频的线程所在域中其它OS实例的硬线程的定时器重新触发。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105716679A CN102004543B (zh) | 2010-11-29 | 2010-11-29 | 一种实现cpu节能的方法及装置 |
PCT/CN2011/074866 WO2011150792A1 (zh) | 2010-11-29 | 2011-05-30 | 一种实现cpu节能的方法及装置 |
US13/904,461 US9377842B2 (en) | 2010-11-29 | 2013-05-29 | Method and apparatus for realizing CPU power conservation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105716679A CN102004543B (zh) | 2010-11-29 | 2010-11-29 | 一种实现cpu节能的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004543A true CN102004543A (zh) | 2011-04-06 |
CN102004543B CN102004543B (zh) | 2013-08-07 |
Family
ID=43811950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105716679A Active CN102004543B (zh) | 2010-11-29 | 2010-11-29 | 一种实现cpu节能的方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9377842B2 (zh) |
CN (1) | CN102004543B (zh) |
WO (1) | WO2011150792A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011150792A1 (zh) * | 2010-11-29 | 2011-12-08 | 华为技术有限公司 | 一种实现cpu节能的方法及装置 |
CN102866765A (zh) * | 2012-06-05 | 2013-01-09 | 威盛电子股份有限公司 | 图形处理单元与其管理方法 |
CN102929383A (zh) * | 2012-11-06 | 2013-02-13 | 山东大学 | 一种通过cpu动态调频技术降低嵌入式系统功耗的方法 |
CN103415823A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
US20140157284A1 (en) * | 2012-12-03 | 2014-06-05 | Qualcomm Innovation Center, Inc. | Thread processing on an asymmetric multi-core processor |
WO2016008066A1 (zh) * | 2014-07-14 | 2016-01-21 | 华为技术有限公司 | 一种多核处理器的管理方法及装置 |
CN105677482A (zh) * | 2015-12-31 | 2016-06-15 | 联想(北京)有限公司 | 一种频率调节方法及电子设备 |
CN105930218A (zh) * | 2016-04-18 | 2016-09-07 | 深圳市万普拉斯科技有限公司 | 运算资源频率调整方法及系统 |
CN109960584A (zh) * | 2019-01-30 | 2019-07-02 | 努比亚技术有限公司 | Cpu调频控制方法、终端及计算机可读存储介质 |
CN110275510A (zh) * | 2019-06-14 | 2019-09-24 | 百度在线网络技术(北京)有限公司 | 车辆控制模型的处理频率调整方法、装置和电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6142709B2 (ja) * | 2013-07-23 | 2017-06-07 | 富士通株式会社 | 計測方法、計測プログラム、携帯情報端末、及びその制御方法 |
US10503238B2 (en) | 2016-11-01 | 2019-12-10 | Microsoft Technology Licensing, Llc | Thread importance based processor core parking and frequency selection |
US10372494B2 (en) | 2016-11-04 | 2019-08-06 | Microsoft Technology Licensing, Llc | Thread importance based processor core partitioning |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073244A (en) * | 1997-12-24 | 2000-06-06 | Mitsubishi Denki Kabushiki Kaisha | Power-saving clock control apparatus and method |
CN101201689A (zh) * | 2006-12-13 | 2008-06-18 | 上海晨兴电子科技有限公司 | 一种多任务系统中自动管理cpu功耗的方法 |
CN101576768A (zh) * | 2009-06-15 | 2009-11-11 | 北京中星微电子有限公司 | 切换设备频率的方法以及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770034B2 (en) * | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
CN1690955A (zh) * | 2004-04-29 | 2005-11-02 | 钜格系统科技股份有限公司 | 手持式信息处理装置的电源管理方法 |
CN101067758B (zh) * | 2007-06-14 | 2010-05-19 | 华南理工大学 | 一种嵌入式系统的能耗管理方法 |
CN100562854C (zh) * | 2008-03-11 | 2009-11-25 | 浙江大学 | 多核处理器操作系统负载均衡的实现方法 |
US20090271646A1 (en) * | 2008-04-24 | 2009-10-29 | Vanish Talwar | Power Management Using Clustering In A Multicore System |
US8527796B2 (en) * | 2009-08-24 | 2013-09-03 | Intel Corporation | Providing adaptive frequency control for a processor using utilization information |
CN102004543B (zh) * | 2010-11-29 | 2013-08-07 | 华为技术有限公司 | 一种实现cpu节能的方法及装置 |
-
2010
- 2010-11-29 CN CN2010105716679A patent/CN102004543B/zh active Active
-
2011
- 2011-05-30 WO PCT/CN2011/074866 patent/WO2011150792A1/zh active Application Filing
-
2013
- 2013-05-29 US US13/904,461 patent/US9377842B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073244A (en) * | 1997-12-24 | 2000-06-06 | Mitsubishi Denki Kabushiki Kaisha | Power-saving clock control apparatus and method |
CN101201689A (zh) * | 2006-12-13 | 2008-06-18 | 上海晨兴电子科技有限公司 | 一种多任务系统中自动管理cpu功耗的方法 |
CN101576768A (zh) * | 2009-06-15 | 2009-11-11 | 北京中星微电子有限公司 | 切换设备频率的方法以及设备 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011150792A1 (zh) * | 2010-11-29 | 2011-12-08 | 华为技术有限公司 | 一种实现cpu节能的方法及装置 |
US9377842B2 (en) | 2010-11-29 | 2016-06-28 | Huawei Technologies Co., Ltd. | Method and apparatus for realizing CPU power conservation |
US9147225B2 (en) | 2012-06-05 | 2015-09-29 | Via Technologies, Inc. | Graphics processing unit and management method thereof |
CN102866765A (zh) * | 2012-06-05 | 2013-01-09 | 威盛电子股份有限公司 | 图形处理单元与其管理方法 |
CN102866765B (zh) * | 2012-06-05 | 2016-04-13 | 威盛电子股份有限公司 | 图形处理单元与其管理方法 |
US9405353B2 (en) | 2012-08-30 | 2016-08-02 | Huawei Device Co., Ltd. | Method and apparatus for controlling central processing unit |
CN103415823B (zh) * | 2012-08-30 | 2016-05-25 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
CN103415823A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
CN102929383A (zh) * | 2012-11-06 | 2013-02-13 | 山东大学 | 一种通过cpu动态调频技术降低嵌入式系统功耗的方法 |
US9292356B2 (en) * | 2012-12-03 | 2016-03-22 | Qualcomm Innovation Center, Inc. | Thread processing on an asymmetric multi-core processor |
US20140157284A1 (en) * | 2012-12-03 | 2014-06-05 | Qualcomm Innovation Center, Inc. | Thread processing on an asymmetric multi-core processor |
WO2016008066A1 (zh) * | 2014-07-14 | 2016-01-21 | 华为技术有限公司 | 一种多核处理器的管理方法及装置 |
US10317931B2 (en) | 2014-07-14 | 2019-06-11 | Huawei Technologies Co., Ltd. | Method for managing multi-core processor, and apparatus |
CN105677482A (zh) * | 2015-12-31 | 2016-06-15 | 联想(北京)有限公司 | 一种频率调节方法及电子设备 |
CN105930218A (zh) * | 2016-04-18 | 2016-09-07 | 深圳市万普拉斯科技有限公司 | 运算资源频率调整方法及系统 |
CN109960584A (zh) * | 2019-01-30 | 2019-07-02 | 努比亚技术有限公司 | Cpu调频控制方法、终端及计算机可读存储介质 |
CN110275510A (zh) * | 2019-06-14 | 2019-09-24 | 百度在线网络技术(北京)有限公司 | 车辆控制模型的处理频率调整方法、装置和电子设备 |
CN110275510B (zh) * | 2019-06-14 | 2021-12-07 | 百度在线网络技术(北京)有限公司 | 车辆控制模型的处理频率调整方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20130268787A1 (en) | 2013-10-10 |
US9377842B2 (en) | 2016-06-28 |
WO2011150792A1 (zh) | 2011-12-08 |
CN102004543B (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102004543B (zh) | 一种实现cpu节能的方法及装置 | |
KR20060052086A (ko) | 정보 처리 시스템 및 정보 처리 방법과 프로그램 | |
CN106371974B (zh) | Docker容器内应用程序的监控方法和发布平台 | |
KR101747894B1 (ko) | 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들 | |
US20150324232A1 (en) | Resource management method and apparatus for virtual machine system, and virtual machine system | |
EP2495655B1 (en) | Method for switching operating system and electronic apparatus using the same | |
CN102779072B (zh) | 一种嵌入式系统及其应用进程的休眠与唤醒方法 | |
CN103067425A (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
US10353609B2 (en) | Memory allocation method and apparatus | |
CN110677305A (zh) | 一种云计算环境下的自动伸缩方法和系统 | |
CN103425592A (zh) | 一种多进程系统中的内存管理方法及装置 | |
CN105704785A (zh) | 一种网络搜索方法、装置及移动终端 | |
CN105630606A (zh) | 用于调整线程池容量的方法及装置 | |
KR20150016820A (ko) | 가상 노드 배치 관리 시스템 및 방법 | |
CN106230986A (zh) | 一种基于电力PaaS云平台的资源适配调度系统及方法 | |
CN106293934A (zh) | 一种集群系统管理优化方法及平台 | |
JP2010211644A (ja) | メモリ消費電力削減システム、方法及びプログラム | |
CN103563471B (zh) | 资源操作方法及装置 | |
JP2005354549A (ja) | 通信装置及び通信システム及び通信装置管理方法及びプログラム | |
JP2005202506A (ja) | ブレードサーバにおける電力管理システム | |
US20130254446A1 (en) | Memory Management Method and Device for Distributed Computer System | |
CN109684042A (zh) | 一种虚拟化平台中虚拟机内存动态调整的方法 | |
CN103188099A (zh) | 一种多应用系统的备份方法、装置及系统 | |
CN102141920A (zh) | 一种动态配置C-State方法和通信设备 | |
CN105357222B (zh) | 一种分布式Session管理中间件 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |