CN113238648A - 一种功耗调整方法及其装置 - Google Patents

一种功耗调整方法及其装置 Download PDF

Info

Publication number
CN113238648A
CN113238648A CN202110510153.0A CN202110510153A CN113238648A CN 113238648 A CN113238648 A CN 113238648A CN 202110510153 A CN202110510153 A CN 202110510153A CN 113238648 A CN113238648 A CN 113238648A
Authority
CN
China
Prior art keywords
idle
computing
idle frequency
delay
gating
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
Application number
CN202110510153.0A
Other languages
English (en)
Other versions
CN113238648B (zh
Inventor
王江勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Haiguang Integrated Circuit Design Co Ltd
Original Assignee
Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Haiguang Integrated Circuit Design Co Ltd filed Critical Chengdu Haiguang Integrated Circuit Design Co Ltd
Priority to CN202110510153.0A priority Critical patent/CN113238648B/zh
Publication of CN113238648A publication Critical patent/CN113238648A/zh
Application granted granted Critical
Publication of CN113238648B publication Critical patent/CN113238648B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

本发明提供了一种功耗调整方法及其装置。该功耗调整方法包括:获取计算部件的运行状态信息;根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时;时钟门控和/或功率门控根据动态调整后的空闲等待延时,在计算部件空闲时间超过空闲等待延时后,关闭计算部件对应的时钟信号和/或电源信号。将固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过运行情况信息,动态设置空闲等待延时的时长。可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。

Description

一种功耗调整方法及其装置
技术领域
本发明涉及集成电路技术领域,尤其涉及一种功耗调整方法及其装置。
背景技术
芯片功耗从原理上区分主要有两大类:静态功耗(Static Power)和动态功耗(Dynamic Power)。动态功耗,主要是由于信号的翻转引起;而静态功耗则是由器件在通电状态下的泄漏电流(Leakage Current)引起。在芯片实际工作过程中,某些功能或者模块并不需要一直开启,当其空闲时关闭其时钟信号,从而有效减少动态功耗,这便是CG(ClockGating,时钟门控)的主要功劳。为了进一步减少功耗,更有效的办法是使用PG(PowerGating,功率门控),直接断掉区域供电,静态功耗将大大减少。CG的优点在于设计简单,效果显著,并且当关闭对应的时钟信号时,保存的数据不会丢失。PG设计则更加复杂,但能耗控制也很显著,尤其在工作时间远少于空闲时间的场景,减少静态功耗更具有意义。PG的缺点在于电源关闭之后数据丢失,恢复需要更多时间来重新配置模块,从而增大延时。
GPGPU(General-purpose Computing On Graphics Processing Units,通用图形处理器)包含成百上千的核心运算单元,高密度计算资源带来了高性能的同时也带来了高能耗。通常高性能计算部件会集成CG和PG来降低能耗。当高性能计算核心空闲时,将会进入CG阶段,并且稍后也会进入PG阶段,以此最大程度降低能耗。
工作负载决定了高性能计算部件的繁忙和空闲情况,对于工作负载变化的不确定性特点,现有技术通常在计算资源空闲时,不会直接立即进入CG乃至PG阶段,而是有一个空闲等待延时,以确保随后这段时间不会有工作负载到来,在一定程度上避免了性能的损耗。这是因为功能部件或模块从CG和PG恢复到可工作状态需要一定时间。目前这个空闲等待延时的时长是固定值,并在整个系统运行过程中不会动态改变。而高性能计算部件空闲时,尽早进入CG和PG状态对于减低能耗有着重要作用,但由于从低功耗恢复到可用状态需要一定时间,这会导致计算部件的性能损耗。现有技术中采用固定的空闲等待延时,不能够很好的对GPGPU的功耗进行调整。
发明内容
本发明提供了一种功耗调整方法及其装置,以更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。
第一方面,本发明提供了一种功耗调整方法,用于调整处理器中计算部件的功耗。该功耗调整方法包括:获取计算部件的运行状态信息;根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时;时钟门控和/或功率门控根据动态调整后的空闲等待延时,在计算部件空闲时间超过空闲等待延时后,关闭计算部件对应的时钟信号和/或电源信号。
在上述的方案中,通过获取计算部件的运行状态信息,之后根据运行状态信息,动态调整时钟门控及功率门控中一个或两个门控对计算部件的空闲等待延时,之后由时钟门控和/或功率门控根据调整后的空闲等待延时,控制计算部件对应的时钟信号和/或电源信号。将现有技术中采用固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过历史或当前的运行情况信息,动态设置空闲等待延时的时长。在具体应用时,可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,从而更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。综合考虑能耗和性能的因素,在系统运行时实时读取获取性能数据,动态地给时钟门控和/功率门控设置更为合理的空闲等待延时参数。
在一个具体的实施方式中,获取计算部件的运行状态信息包括:统计计算部件的空闲频数变化信息;根据统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,计算部件的空闲频数变化差值;其中,空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。以便于根据计算部件的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在一个具体的实施方式中,根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时包括:判断空闲频数变化差值的绝对值是否大于设定阈值;如果判断结果为空闲频数变化差值的绝对值不大于设定阈值,则保持时钟门控和/或功率门控对计算部件的空闲等待延时不变;如果判断结果为空闲频数变化差值的绝对值大于设定阈值,则根据空闲频数变化差值,调整空闲等待延时。以便于根据空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在一个具体的实施方式中,根据空闲频数变化差值,调整空闲等待延时包括:根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该计算部件工作负载情况的空闲等待延时。
在一个具体的实施方式中,根据空闲频数变化差值的正负、空闲频数变化差值的绝对值的大小、以及设定时间段的时长确定空闲等待延时具体为:根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000021
其中,α表示空闲等待延时的经验值,为固定值;
Xt表示前后相邻的两个时间段中后一设定时间段内的所述计算部件的空闲频数;
Xt-1表示前后相邻的两个时间段中前一设定时间段内的所述计算部件的空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
在一个具体的实施方式中,处理器中包含有多个计算部件,多个计算部件均通过一个时钟门控和/或一个功率门控控制。根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时还包括:获取多个计算部件中,每个计算部件的空闲等待延时Tt;计算多个计算部件的空闲等待延时Tt的均值、中位值或最值;将均值、中位值或最值作为时钟门控和/或功率门控对所述多个计算部件进行控制的空闲等待延时。使一个时钟门控和/或一个功率门控分别根据一个空闲等待延时对多个计算部件进行控制,简化控制。
在一个具体的实施方式中,处理器中包含有多个计算部件,多个计算部件均通过一个时钟门控和/或一个功率门控控制。获取计算部件的运行状态信息包括:统计多个计算部件的总空闲频数变化信息;根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,多个计算部件的总空闲频数变化差值;其中,总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值。根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时包括:根据总空闲频数变化差值,动态调整时钟门控和/或功率门控对多个计算部件中每个计算部件的空闲等待延时。使一个时钟门控和/或一个功率门控分别根据一个空闲等待延时对多个计算部件进行控制,简化控制。同时便于根据多个计算部件的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在一个具体的实施方式中,根据总空闲频数变化差值,动态调整时钟门控和/或功率门控对多个计算部件中每个计算部件的空闲等待延时包括:判断总空闲频数变化差值的绝对值是否大于设定阈值;如果判断结果为总空闲频数变化差值的绝对值不大于设定阈值,则保持时钟门控和/或功率门控对多个计算部件中每个计算部件的空闲等待延时不变;如果判断结果为总空闲频数变化差值的绝对值大于设定阈值,则根据总空闲频数变化差值,调整空闲等待延时。以便于根据总空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在一个具体的实施方式中,根据总空闲频数变化差值,调整空闲等待延时包括:根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该多个计算部件工作负载情况的空闲等待延时。
在一个具体的实施方式中,根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时具体为:根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值的大小、以及设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000031
其中,α表示空闲等待延时的经验值,为固定值;
St表示前后相邻的两个时间段中后一设定时间段内的多个计算部件的总空闲频数;
St-1表示前后相邻的两个时间段中前一设定时间段内的多个计算部件的总空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
在一个具体的实施方式中,获取计算部件的运行状态信息包括:获取计算部件当前的运行状态信息。根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时包括:根据所获取的计算部件的当前的运行状态信息,判断当前计算部件是处于繁忙状态,还是处于空闲状态;如果判断结果为计算部件处于繁忙状态,则调整时钟门控和/或功率门控对计算部件的空闲等待延时为第一档经验值Vh;如果判断结果为计算部件处于空闲状态,则调整时钟门控和/或功率门控对计算部件的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。根据计算部件当前的工作负载情况,在两档经验值之间对空闲等待延时进行调整,简化调整算法。
第二方面,本发明还提供了一种功耗调整装置,该功耗调整装置用于调整处理器中计算部件的功耗。该功耗调整装置包括性能监控器、时钟门控和/或功率门控、功耗管理模块。其中,性能监控器用于获取计算部件的运行状态信息;功耗管理模块用于根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时;时钟门控和/或功率门控用于根据动态调整后的空闲等待延时,在计算部件空闲时间超过空闲等待延时后,关闭计算部件对应的时钟信号和/或电源信号。
在上述的方案中,通过获取计算部件的运行状态信息,之后根据运行状态信息,动态调整时钟门控及功率门控中一个或两个门控对计算部件的空闲等待延时,之后由时钟门控和/或功率门控根据调整后的空闲等待延时,控制计算部件对应的时钟信号和/或电源信号。将现有技术中采用固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过历史或当前的运行情况信息,动态设置空闲等待延时的时长。在具体应用时,可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,从而更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。综合考虑能耗和性能的因素,在系统运行时实时读取获取性能数据,动态地给时钟门控和/功率门控设置更为合理的空闲等待延时参数。
在一个具体的实施方式中,该性能监控器包括空闲事件计数器和统计器,其中,空闲事件计数器,用于统计计算部件的空闲频数变化信息;统计器用于根据所统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,计算部件的空闲频数变化差值。其中,空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。以便于根据计算部件的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在一个具体的实施方式中,功耗管理模块包括:第一判断模块及第一处理模块。其中,第一判断模块用于判断空闲频数变化差值的绝对值是否大于设定阈值;第一处理模块用于在判断结果为空闲频数变化差值的绝对值不大于设定阈值时,保持时钟门控和/或功率门控对计算部件的空闲等待延时不变;第一处理模块还用于在判断结果为空闲频数变化差值的绝对值大于设定阈值时,根据空闲频数变化差值,调整空闲等待延时。以便于根据空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在一个具体的实施方式中,第一处理模块根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该计算部件工作负载情况的空闲等待延时。
在一个具体的实施方式中,第一处理模块根据空闲频数变化差值的正负、空闲频数变化差值的绝对值的大小、以及设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000041
其中,α表示空闲等待延时的经验值,为固定值;
Xt表示前后相邻的两个时间段中后一设定时间段内的计算部件的空闲频数;
Xt-1表示前后相邻的两个时间段中前一设定时间段内的计算部件的空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
在一个具体的实施方式中,处理器中包含有多个计算部件,该多个计算部件均通过一个时钟门控和/或一个功率门控控制。第一处理模块还用于获取多个计算部件中,每个计算部件的空闲等待延时Tt;计算多个计算部件的空闲等待延时Tt的均值、中位值或最值;并将该均值、中位值或最值作为时钟门控和/或功率门控对多个计算部件进行控制的空闲等待延时。使一个时钟门控和/或功率门控根据一个空闲等待延时对多个计算部件进行控制,简化控制。
在一个具体的实施方式中,处理器中包含有多个计算部件,多个计算部件均通过一个时钟门控和/或一个功率门控控制。性能监控器包括空闲事件计数器和统计器;其中,空闲事件计数器用于统计多个计算部件的总空闲频数变化信息;统计器用于根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,多个计算部件的总空闲频数变化差值;该总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值。功耗管理模块用于根据总空闲频数变化差值,动态调整时钟门控和/或功率门控对多个计算部件中每个计算部件的空闲等待延时。使一个时钟门控和/或一个功率门控分别根据一个空闲等待延时对多个计算部件进行控制,简化控制。同时便于根据多个计算部件的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在一个具体的实施方式中,功耗管理模块包括第一判断模块及第一处理模块。其中,第一判断模块用于判断总空闲频数变化差值的绝对值是否大于设定阈值。第一处理模块用于在判断结果为总空闲频数变化差值的绝对值不大于设定阈值时,保持时钟门控和/或功率门控对多个计算部件中每个计算部件的空闲等待延时不变;第一处理模块还用于在判断结果为总空闲频数变化差值的绝对值大于设定阈值时,根据总空闲频数变化差值,调整空闲等待延时。以便于根据总空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在一个具体的实施方式中,第一处理模块用于根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该多个计算部件工作负载情况的空闲等待延时。
在一个具体的实施方式中,第一处理模块根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值的大小、以及设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000051
其中,α表示空闲等待延时的经验值,为固定值;
St表示前后相邻的两个时间段中后一设定时间段内的多个计算部件的总空闲频数;
St-1表示前后相邻的两个时间段中前一设定时间段内的多个计算部件的总空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
在一个具体的实施方式中,性能监控器包括状态寄存器;功耗管理模块包括读取模块、第二判断模块以及第二处理模块。其中,状态寄存器用于存储计算部件当前的运行状态信息;读取模块用于读取状态寄存器中存储的计算部件当前的运行状态信息;第二判断模块用于根据所获取的计算部件的当前的运行状态信息,判断当前计算部件是处于繁忙状态,还是处于空闲状态;第二处理模块用于在判断结果为计算部件处于繁忙状态时,调整时钟门控和/或功率门控对计算部件的空闲等待延时为第一档经验值Vh;该第二处理模块还用于在判断结果为计算部件处于空闲状态时,调整时钟门控和/或功率门控对计算部件的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。根据计算部件当前的工作负载情况,在两档经验值之间对空闲等待延时进行调整,简化调整算法。
附图说明
图1为本发明实施例提供的一种功耗调整方法的流程图;
图2为本发明实施例提供的另一种功耗调整方法的流程图;
图3为本发明实施例提供的一种计算部件的空闲事件统计示意图;
图4为本发明实施例提供的一种功耗调整装置的示意框图。
附图标记:
10-计算部件 20-性能监控器
30-时钟门控和/或功率门控
40-功耗管理模块
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例提供的功耗调整方法,下面首先说明一下本发明实施例提供的功耗调整方法的应用场景,该功耗调整方法应用于调整处理器中计算部件的功耗过程中,其中该处理器可以为CPU(central processing unit,中央处理器)、GPU(GraphicsProcessing Unit,图形处理器)、GPGPU等处理器,其中的计算部件主要执行具体的工作任务,也是产生能耗的主要部件。工作负载决定了计算部件的繁忙状态或者空闲状态。当计算部件开始工作(处理一个任务)时,将产生繁忙事件;而一个任务结束,计算部件将由繁忙切换为空闲,在空闲时将产生一个空闲事件。在处理器中设置有时钟门控及功率门控中的一个门控或两个门控,时钟门控和功率门控可以控制计算部件时钟和电压的供给。以在计算部件处于空闲状态的时长超过空闲等待延时后,关闭该计算部件对应的时钟信号和/或电源信号。其中,时钟门控用于控制关闭对应的计算部件的时钟信号,功率门控用于控制关闭对应的计算部件的电源信号。具体在处理器中设置门控的类型时,可以只设置时钟门控,也可以只设置功率门控,还可以时钟门控和功率门控都设置。本发明实施例提供的功耗调整方法不仅可以应用于只有一个时钟门控的场景,还可以适用于只有一个功率门控的场景,甚至还可以应用于既有时钟门控又有功率门控的应用场景。因此,需要解释的是,下文中提到的时钟门控和/或功率门控指的是既可以为时钟门控,也可以为功率门控,还可以为时钟门控及功率门控。在同时包含有时钟门控和功率门控对计算部件进行控制时,时钟门控所采用的空闲等待延时可以和功率门控所采用的空闲等待延时相同;也可以使两者的空闲等待延时不相同,即两者的控制方式相互独立。下面结合附图对该功耗调整方法进行详细的叙述。
参考图1,本发明实施例提供的功耗调整方法包括:
Step10:获取计算部件的运行状态信息;
Step20:根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时;
Step30:时钟门控和/或功率门控根据动态调整后的空闲等待延时,在计算部件空闲时间超过空闲等待延时后,关闭计算部件对应的时钟信号和/或电源信号。
在上述的方案中,通过获取计算部件的运行状态信息,之后根据运行状态信息,动态调整时钟门控及功率门控中一个或两个门控对计算部件的空闲等待延时,之后由时钟门控和/或功率门控根据调整后的空闲等待延时,控制计算部件对应的时钟信号和/或电源信号。将现有技术中采用固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过历史或当前的运行情况信息,动态设置空闲等待延时的时长。在具体应用时,可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,从而更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。综合考虑能耗和性能的因素,在系统运行时实时读取获取性能数据,动态地给时钟门控和/功率门控设置更为合理的空闲等待延时参数。下面结合附图对上述各个步骤进行详细的介绍。
首先,如图1及图2所示,获取计算部件的运行状态信息。可以获取计算部件的历史运行状态信息。在获取计算部件的历史运行状态信息时,可以获取空闲频数变化信息。具体的,可以先统计计算部件的空闲频数变化信息。之后,根据统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,计算部件的空闲频数变化差值。需要解释的是,这里面的空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。如图2所示出的Xt表示前后相邻的两个时间段中后一设定时间段内的所述计算部件的空闲频数,Xt-1表示前后相邻的两个时间段中前一设定时间段内的所述计算部件的空闲频数。Xt-Xt-1即为后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值,作为空闲频数变化差值。以便于根据计算部件的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在具体统计计算部件的空闲频数变化信息时,可以采用空闲事件计数器进行计数的方式进行。计算部件每处理完一个任务,即由繁忙状态切换为空闲状态一次,产生一次空闲事件,由空闲事件计数器统计一次该计算部件增加了一次空闲事件,以及该次空闲事件的增加时间节点。将空闲事件计数器统计的空闲事件增加情况以及对应的时间信息作为空闲频数变化信息。
在具体根据统计的空闲频数变化信息,计算该计算部件在前后相邻的两个等时长的设定时间段内的空闲频数变化差值时。可以先选取等时间间隔的三个时间节点,前两个时间节点之间的时间段作为前一设定时间段,后两个时间节点之间的时间段作为后一设定时间段。设定时间段的时长可以具体调整。之后,统计每个设定时间段内的空闲频数信息。为了便于统计每个设定时间段内空闲频数变化量,可以将每个设定时间段的开始时间节点处,将空闲事件计数器清零,在该设定时间段结束时的时间节点时,空闲事件计数器记录的空闲频数即为该设定时间段内的空闲频数信息。再后来,拿后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数,计算所得的差值作为空闲频数变化差值。
接下来,如图1及图2所示,根据运行状态信息,动态调整时钟门控和/或功率门控对计算部件的空闲等待延时。具体的,可以先判断空闲频数变化差值的绝对值是否大于设定阈值,如图2所示出的ε即为设定阈值,该设定阈值ε可以为很小值。如果判断结果为空闲频数变化差值的绝对值不大于设定阈值,则保持时钟门控和/或功率门控对计算部件的空闲等待延时不变。如果判断结果为空闲频数变化差值的绝对值大于设定阈值,则根据空闲频数变化差值,调整空闲等待延时。以便于根据空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。该设定阈值的大小可以根据不同的处理器类型、以及门控类型进行适当的调整。设定阈值越大,空闲频数变化差值越难以超过设定阈值,则动态调整时钟门控和/或功率门控对计算部件的空闲等待延时的次数也就越少,即动态调整的灵敏度也就越低。设定阈值越小,空闲频数变化差值越容易超过设定阈值,则动态调整时钟门控和/或功率门控对计算部件的空闲等待延时的次数也就越多,即动态调整的灵敏度也就越高。当然,如果动态调整的灵敏度越高时,对应功耗调整的计算量也就越大,反倒可能更多的损耗处理器的功耗。因此,一个合适的设定阈值需要根据不同的处理器类型、以及门控类型,结合经验值进行确定。当然,极限的情况下,可以设置设定阈值的大小为零,即空闲频数变化差值如果不等于零,即可进行调整。此时,也可以不设置判断的步骤,直接进入后续动态调整的步骤。接下来,给出一种根据空闲频数变化差值,调整空闲等待延时的实施例。
在具体根据空闲频数变化差值,调整空闲等待延时的时候,可以根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该计算部件工作负载情况的空闲等待延时。可以采用量化的方式进行计算,具体的,可以根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000081
即空闲等待延时Tt由两部分组成,其中的第一部分α为常量,表示空闲等待延时的经验值,取值可根据具体硬件环境,通过实验数据综合考虑能耗和性能而得到。第二部分为惩罚项,表示在前后相邻的设定时间段内根据空闲频数变化差值情况对α进行的修正。其中的Xt表示前后相邻的两个时间段中后一设定时间段内的所述计算部件的空闲频数;Xt-1表示前后相邻的两个时间段中前一设定时间段内的所述计算部件的空闲频数;Δt表示设定时间段的时长;β表示变化比例常数,β可以通过实验选择可容忍最大和最小的空闲等待时间幅度而得到。以便于采用量化的方式计算出较为准确的空闲等待延时。应当理解的是,调整空闲等待延时的计算模型并不限于上述示出的计算公式,除此之外,还可以采用其他用到空闲频数变化差值、设定时间段的时长的计算公式进行计算。
当然,可以采用该方法连续的进行监控,具体的,可以每隔等时长的设定时间段,即统计和计算一次,并按照上述的流程进行动态调整一次。例如,如图3所示出的空闲事件统计示意图,其中的横轴为时间,纵轴为空闲事件频数。时间轴上的t1~t8分别表示等时间间隔的时间节点,且相邻的两个时间节点中,位于后一时间节点对应的纵坐标值为该两个时间节点之间的时间段内空闲事件频数。例如,t2的y值表示t1到t2之间的时间段内空闲事件频数,t3的y值表示t2到t3时间段空闲事件频数,……。从图中可以看出,t2到t3之间的时间段内空闲事件频数,相对t1到t2之间的时间段内空闲事件频数变化较大,即t2到t3之间的时间段的空闲事件频数,与t1到t2之间的时间段内空闲事件频数,之间的空闲频数变化差值的绝对值较大,且此时该空闲频数变化差值为正,此时前后两个时间段之间的工作负载波动较大,增加时钟门控和/或功率门控的空闲等待延时的时长,可以降低性能损耗。图中t5到t6之间的时间段内空闲事件频数,相比t4到t5之间的时间段内空闲事件频数,空闲事件频数减少较多,该两个时间段之间的空闲频数变化差值的绝对值较大,且此时的空闲频数变化差值为负值,表示工作负载变化降低,需要缩短时钟门控和/或功率门控的空闲等待延时的时长。此时可能出现两种情形,一是负载较少的计算部件长时间处于空闲状态,减少时钟门控和/或功率门控的空闲等待延时的时长可以降低功耗。二是负载较大的计算部件多处于繁忙状态,减少时钟门控和/或功率门控的空闲等待延时的时长可以让计算部件空闲时尽早进入低功耗来降低温度。图中t7到t8之间的空闲事件频数较小,且相比t6到t7之间的空闲事件频数的差值的绝对值较少,此时可以维持之前的空闲等待延时。
如图4所示,处理器中可以包含有多个计算部件10,多个计算部件10均通过一个时钟门控和/或一个功率门控30控制。此时,可以根据多个计算部件10的运行状态信息,确定一个相同的空闲等待延时,由时钟门控和/或功率门控30按照确定的相同的空闲等待延时,对多个计算部件10进行控制,从而能够使时钟门控和/或功率门控30无需区分不同的计算部件10,减少运算及存储量。具体确定该一个相同的空闲等待延时的时候,可以先按照上述示出的方式,确定每个计算部件10的空闲等待延时Tt。之后获取多个计算部件10中,每个计算部件10的空闲等待延时Tt。接下来,计算多个计算部件10的空闲等待延时Tt的均值、中位值或最值,并将均值、中位值或最值作为时钟门控和/或功率门控30对所述多个计算部件10进行控制的空闲等待延时。具体可以将多个计算部件10的空闲等待延时Tt的均值作为时钟门控和/或功率门30控对所述多个计算部件10进行控制的空闲等待延时,也可以将多个计算部件10的空闲等待延时Tt的中位值作为时钟门控和/或功率门30控对所述多个计算部件10进行控制的空闲等待延时,还可以将多个计算部件10的空闲等待延时Tt的最大值或最小值作为时钟门控和/或功率门控30对所述多个计算部件10进行控制的空闲等待延时。使一个时钟门控和/或一个功率门控30分别根据一个空闲等待延时对多个计算部件10进行控制,简化控制。
当然,需要注意的是,确定上述一个相同的空闲等待延时的方式并不限于上述示出的先确定每个计算部件10的空闲等待延时Tt,之后根据每个计算部件10的空闲等待延时Tt再确定多个计算部件10的相同的空闲等待延时Tt的方式。除此之外,还可以采用其他的方式确定多个计算部件10的相同的空闲等待延时Tt
例如,可以通过统计多个计算部件10的总空闲频数的运行状态信息,根据运行总空闲频数运动状态信息确定多个计算部件10的空闲等待延时Tt。此时,在获取计算部件10的运行状态信息时,统计的是多个计算部件10的总空闲频数变化信息;之后根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,多个计算部件10的总空闲频数变化差值。其中,总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值。在根据运行状态信息,动态调整时钟门控和/或功率门控30对计算部件10的空闲等待延时的时候,根据总空闲频数变化差值,动态调整时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时。使一个时钟门控和/或功率门控30根据一个空闲等待延时对多个计算部件10进行控制,简化控制。同时便于根据多个计算部件10的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在具体根据总空闲频数变化差值,动态调整时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时,可以按照前述的设计思路也先判断总空闲频数变化差值的大小,之后根据变化大小确定是否调整空闲等待延时。具体的,先判断总空闲频数变化差值的绝对值是否大于设定阈值。如果判断结果为总空闲频数变化差值的绝对值不大于设定阈值,则保持时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时不变。如果判断结果为总空闲频数变化差值的绝对值大于设定阈值,则根据总空闲频数变化差值,调整空闲等待延时。以便于根据总空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在具体根据总空闲频数变化差值,调整空闲等待延时的时候,可以根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该多个计算部件10工作负载情况的空闲等待延时。
同样可以采用定量分析的方式确定多个计算部件10的相同的空闲等待延时Tt,例如,根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值的大小、以及设定时间段的时长,可以按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000101
其中,α同样表示空闲等待延时的经验值,为固定值;
St表示前后相邻的两个时间段中后一设定时间段内的多个计算部件10的总空闲频数;
St-1表示前后相邻的两个时间段中前一设定时间段内的多个计算部件10的总空闲频数;
Δt同样表示设定时间段的时长;
β同样表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
需要额外说明的是,在处理器中包含有多个计算部件10时,多个计算部件10并不限于前述示出的采用一个时钟门控和/或一个功率门控30进行控制的方式,还可以采用其他的控制方式。例如,可以使多个计算部件10通过多个时钟门控和/或多个功率门控30进行控制,具体的,每个计算部件10可以都有一个时钟门控和/或一个功率门控30进行控制,且每个时钟门控和/或功率门控30仅控制一个计算部件10,从而能够对不同的计算部件10采用不同的空闲等待延时进行控制,具有更好的能耗管理效果。当然,也可以使部分个数的计算部件10分别均采用单独的时钟门控和/或功率门控30进行控制,部分个数的计算部件10均采用同一个时钟门控和/或功率门控30进行控制的方式,具体可以根据应用场景、计算部件所处理的任务类型等因素选择适当的设置方式。
应当理解的是,获取计算部件10的运行状态信息时,并不限于上述示出的获取历史的运行状态信息的方式,还可以获取计算部件10当前的运行状态信息。此时,在具体根据运行状态信息,动态调整时钟门控和/或功率门控30对计算部件10的空闲等待延时的时候,可以根据所获取的计算部件10的当前的运行状态信息,判断当前计算部件10是处于繁忙状态,还是处于空闲状态。如果判断结果为计算部件10处于繁忙状态,则调整时钟门控和/或功率门控30对计算部件10的空闲等待延时为第一档经验值Vh。如果判断结果为计算部件10处于空闲状态,则调整时钟门控和/或功率门控30对计算部件10的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。根据计算部件10当前的工作负载情况,在两档经验值之间对空闲等待延时进行调整,简化调整算法。保证当计算部件10总体繁忙时,一旦空闲会更晚进入关闭时钟信号和/电源信号状态,降低性能损耗。
当然,在处理器中既设置有时钟门控,也设置有功率门控时,可以使时钟门控的空闲等待延时的动态调整方式,与功率门控的空闲等待延时的动态调整方式采用不同的调整方式。例如,可以采用前述示出的根据计算部件10的历史的运行状态信息,动态调整时钟门控的空闲等待延时,采用前述示出的根据计算部件10的当前的运行状态信息,动态调整功率门控的空闲等待延时。两个动态调整的顺序可以分别同时进行,也可以分先后对时钟门控和功率门控进行调整,例如,可以先动态调整时钟门控的空闲等待延时,再调整功率门控的空闲等待延时。
通过获取计算部件10的运行状态信息,之后根据运行状态信息,动态调整时钟门控及功率门控中一个或两个门控对计算部件10的空闲等待延时,之后由时钟门控和/或功率门控30根据调整后的空闲等待延时,控制计算部件10对应的时钟信号和/或电源信号。将现有技术中采用固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过历史或当前的运行情况信息,动态设置空闲等待延时的时长。在具体应用时,可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,从而更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。综合考虑能耗和性能的因素,在系统运行时实时读取获取性能数据,动态地给时钟门控和/功率门控设置更为合理的空闲等待延时参数。
另外,本发明实施例还提供了一种功耗调整装置,参考图4,该功耗调整装置用于调整处理器中计算部件10的功耗。该功耗调整装置包括性能监控器20、时钟门控和/或功率门控30、功耗管理模块40。其中,性能监控器20用于获取计算部件10的运行状态信息;功耗管理模块40用于根据运行状态信息,动态调整时钟门控和/或功率门控30对计算部件10的空闲等待延时;时钟门控和/或功率门控30用于根据动态调整后的空闲等待延时,在计算部件10空闲时间超过空闲等待延时后,关闭计算部件10对应的时钟信号和/或电源信号。
在上述的方案中,通过获取计算部件10的运行状态信息,之后根据运行状态信息,动态调整时钟门控及功率门控中一个或两个门控对计算部件10的空闲等待延时,之后由时钟门控和/或功率门控30根据调整后的空闲等待延时,控制计算部件10对应的时钟信号和/或电源信号。将现有技术中采用固定时长的空闲等待延时方式,改进为可动态调整时长的空闲等待延时模式,通过历史或当前的运行情况信息,动态设置空闲等待延时的时长。在具体应用时,可在负载变化较轻时减少空闲等待延时的时长,以此降低能耗。在负载变化较大时增大空闲等待延时的时长,以此减少低功耗切换带来的性能消耗,从而更好的调整处理器的功耗,改善功率消耗和性能损耗的问题。综合考虑能耗和性能的因素,在系统运行时实时读取获取性能数据,动态地给时钟门控和/功率门控设置更为合理的空闲等待延时参数。
其中的性能监控器20可以监控计算部件10的繁忙状态或者空闲状态,也可以作为统计计算部件10空闲或者繁忙事件频数的功能器件。具体设置性能监控器20时,该性能监控器20可以包括空闲事件计数器和统计器,其中,空闲事件计数器用于统计计算部件10的空闲频数变化信息。统计器用于根据所统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,计算部件10的空闲频数变化差值。其中,空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。以便于根据计算部件10的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。具体确定空闲频数变化差值的方式参考前述方法部分的描述,在此不再赘述。
其中的功耗管理模块40通过性能监控器20获取计算部件10的工作状态和空闲事件统计结果。之后根据历史及目前工作负载情况计算时钟门控和/或功率门控30的空闲等待延时,并将其设置到时钟门控和/功率门控中,时钟门控和/或功率门控30以此可以控制计算部件10进入关闭时钟信号和电源信号的时间点,改善功率消耗和性能损耗的问题。在设置功耗管理模块40时,功耗管理模块40可以包括第一判断模块及第一处理模块。其中,第一判断模块用于判断空闲频数变化差值的绝对值是否大于设定阈值。第一处理模块用于在判断结果为空闲频数变化差值的绝对值不大于设定阈值时,保持时钟门控和/或功率门控30对计算部件10的空闲等待延时不变。第一处理模块还用于在判断结果为空闲频数变化差值的绝对值大于设定阈值时,根据空闲频数变化差值,调整空闲等待延时。以便于根据空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在第一处理模块具体调整时,第一处理模块可以根据空闲频数变化差值的正负、空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该计算部件10工作负载情况的空闲等待延时。
第一处理模块还可以采用定量分析的方式确定空闲等待延时,例如,第一处理模块根据空闲频数变化差值的正负、空闲频数变化差值的绝对值的大小、以及设定时间段的时长,可以按照如下公式,计算空闲等待延时T2
Figure BDA0003059939810000121
其中,α表示空闲等待延时的经验值,为固定值;
Xt表示前后相邻的两个时间段中后一设定时间段内的计算部件10的空闲频数;
Xt-1表示前后相邻的两个时间段中前一设定时间段内的计算部件10的空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
另外,在处理器中还可以包含有多个计算部件10,可以使该多个计算部件10均通过一个时钟门控和/或一个功率门控控制。此时,第一处理模块还可以用于获取多个计算部件10中,每个计算部件10的空闲等待延时Tt。之后,计算多个计算部件10的空闲等待延时Tt的均值、中位值或最值,并将该均值、中位值或最值作为时钟门控和/或功率门控30对多个计算部件10进行控制的空闲等待延时。使一个时钟门控和/或一个功率门控30分别根据一个空闲等待延时对多个计算部件10进行控制,简化控制。
参考图4,处理器中可以包含有多个计算部件10,多个计算部件10均通过一个时钟门控和/或一个功率门控30控制。此时,可以根据多个计算部件10的运行状态信息,确定一个相同的空闲等待延时,由时钟门控和/或功率门控30分别按照确定的相同的空闲等待延时,对多个计算部件10进行控制,从而能够使时钟门控和/或功率门控30无需区分不同的计算部件10,减少运算及存储量。具体确定该一个相同的空闲等待延时的时候,第一处理模块还可以用于获取多个计算部件10中,每个计算部件10的空闲等待延时Tt;计算多个计算部件10的空闲等待延时Tt的均值、中位值或最值;并将该均值、中位值或最值作为时钟门控和/或功率门控30对多个计算部件10进行控制的空闲等待延时。使一个时钟门控和/或一个功率门控30分别根据一个空闲等待延时对多个计算部件10进行控制,简化控制。
需要注意的是,确定上述一个相同的空闲等待延时的方式并不限于上述示出的先确定每个计算部件10的空闲等待延时Tt,之后根据每个计算部件10的空闲等待延时Tt再确定多个计算部件10的相同的空闲等待延时Tt的方式。除此之外,还可以采用其他的方式确定多个计算部件10的相同的空闲等待延时Tt
例如,可以通过统计多个计算部件10的总空闲频数的运行状态信息,根据运行总空闲频数运动状态信息确定多个计算部件10的空闲等待延时Tt。此时,性能监控器20中的空闲事件计数器用于统计多个计算部件10的总空闲频数变化信息。性能监控器20中的统计器用于根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,多个计算部件10的总空闲频数变化差值;该总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值。功耗管理模块40用于根据总空闲频数变化差值,动态调整时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时。使一个时钟门控和/或一个功率门控30分别根据一个空闲等待延时对多个计算部件10进行控制,简化控制。同时便于根据多个计算部件10的历史负载情况,动态调整空闲等待延时,更精准的调整处理器的功耗,改善功率消耗和性能损耗的问题。
在具体根据总空闲频数变化差值,动态调整时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时,可以按照前述的设计思路也先判断总空闲频数变化差值的大小,之后根据变化大小确定是否调整空闲等待延时。此时,功耗管理模块40中的第一判断模块用于判断总空闲频数变化差值的绝对值是否大于设定阈值。功耗管理模块40中的第一处理模块用于在判断结果为总空闲频数变化差值的绝对值不大于设定阈值时,保持时钟门控和/或功率门控30对多个计算部件10中每个计算部件10的空闲等待延时不变;第一处理模块还用于在判断结果为总空闲频数变化差值的绝对值大于设定阈值时,根据总空闲频数变化差值,调整空闲等待延时。以便于根据总空闲频数变化差值的变化量大小,保持空闲等待延时为原值或进行增减调整,从而优化调整准确性。
在第一处理模块具体调整空闲等待延时的时候,第一处理模块可以用于根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值大小、以及设定时间段的时长确定空闲等待延时。以便于使调整后的空闲等待延时更符合该多个计算部件10工作负载情况的空闲等待延时。第一处理模块同样可以采用量化分析的方式确定空闲等待延时,具体的,第一处理模块根据总空闲频数变化差值的正负、总空闲频数变化差值的绝对值的大小、以及设定时间段的时长,可以按照如下公式,计算空闲等待延时Tt
Figure BDA0003059939810000131
其中,α表示空闲等待延时的经验值,为固定值;
St表示前后相邻的两个时间段中后一设定时间段内的多个计算部件10的总空闲频数;
St-1表示前后相邻的两个时间段中前一设定时间段内的多个计算部件10的总空闲频数;
Δt表示设定时间段的时长;
β表示变化比例常数。以采用量化的方式计算出较为准确的空闲等待延时。
需要额外说明的是,在处理器中包含有多个计算部件10时,多个计算部件10并不限于前述示出的采用一个时钟门控和/或一个功率门控30进行控制的方式,还可以采用其他的控制方式。例如,可以使多个计算部件10通过多个时钟门控和/或多个功率门控30进行控制,具体的,每个计算部件10可以都有一个时钟门控和/或一个功率门控30进行控制,且每个时钟门控和/或功率门控30仅控制一个计算部件10,从而能够对不同的计算部件10采用不同的空闲等待延时进行控制,具有更好的能耗管理效果。当然,也可以使部分个数的计算部件10分别均采用单独的时钟门控和/或功率门控30进行控制,部分个数的计算部件10均采用同一个时钟门控和/或功率门控30进行控制的方式,具体可以根据应用场景、计算部件所处理的任务类型等因素选择适当的设置方式。
当然,在采用前述示出的根据计算部件10的当前的运行状态信息,动态调整时钟门控和/或功率门控30的空闲等待延时的模式时,此时的性能监控器20还包括状态寄存器,状态寄存器用于存储计算部件10当前的运行状态信息。此时的功耗调整模块可以包括读取模块、第二判断模块以及第二处理模块。其中的读取模块用于读取状态寄存器中存储的计算部件10当前的运行状态信息。第二判断模块用于根据所获取的计算部件10的当前的运行状态信息,判断当前计算部件10是处于繁忙状态,还是处于空闲状态。第二处理模块用于在判断结果为计算部件10处于繁忙状态时,调整时钟门控和/或功率门控30对计算部件10的空闲等待延时为第一档经验值Vh;该第二处理模块还用于在判断结果为计算部件10处于空闲状态时,调整时钟门控和/或功率门控30对计算部件10的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。根据计算部件10当前的工作负载情况,在两档经验值之间对空闲等待延时进行调整,简化调整算法。具体的调整方式参考前述方法部分的描述,在此不再赘述。
需要解释的是,此装置中的性能监控器20、时钟门控和/或功率门控30、功耗管理模块40均为功能模块。每个功能模块可以包含嵌设于处理器中的硬件,还包括运行或存储在处理器的存储介质及逻辑电路中的运行程序。前述方法中的每个动态调整方式均可以设置对应的硬件以及存储在该硬件上的运行程序,来完成前述方式中示出的每种动态调整方式。在此不一一赘述每种动态调整方法对应的硬件及运行程序结合后的功能模块。另外,本发明示出的方法方案以及装置方法既可以在Firmware(固件)层实现,也可以在驱动层实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (16)

1.一种功耗调整方法,用于调整处理器中计算部件的功耗,其特征在于,包括:
获取所述计算部件的运行状态信息;
根据所述运行状态信息,动态调整时钟门控和/或功率门控对所述计算部件的空闲等待延时;
所述时钟门控和/或功率门控根据所述动态调整后的空闲等待延时,在所述计算部件空闲时间超过所述空闲等待延时后,关闭所述计算部件对应的时钟信号和/或电源信号。
2.如权利要求1所述的功耗调整方法,其特征在于,所述获取所述计算部件的运行状态信息包括:
统计所述计算部件的空闲频数变化信息;
根据所统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,所述计算部件的空闲频数变化差值;其中,所述空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。
3.如权利要求2所述的功耗调整方法,其特征在于,所述根据运行状态信息,动态调整时钟门控和/或功率门控对所述计算部件的空闲等待延时包括:
判断所述空闲频数变化差值的绝对值是否大于设定阈值;
如果判断结果为所述空闲频数变化差值的绝对值不大于所述设定阈值,则保持所述时钟门控和/或功率门控对所述计算部件的空闲等待延时不变;
如果判断结果为所述空闲频数变化差值的绝对值大于所述设定阈值,则根据所述空闲频数变化差值,调整所述空闲等待延时。
4.如权利要求3所述的功耗调整方法,其特征在于,所述根据所述空闲频数变化差值,调整所述空闲等待延时包括:
根据所述空闲频数变化差值的正负、所述空闲频数变化差值的绝对值大小、以及所述设定时间段的时长确定所述空闲等待延时。
5.如权利要求4所述的功耗调整方法,其特征在于,所述根据所述空闲频数变化差值的正负、所述空闲频数变化差值的绝对值大小、以及所述设定时间段的时长确定所述空闲等待延时具体为:
根据所述空闲频数变化差值的正负、所述空闲频数变化差值的绝对值的大小、以及所述设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure FDA0003059939800000011
其中,α表示空闲等待延时的经验值,为固定值;
Xt表示所述前后相邻的两个时间段中后一设定时间段内的所述计算部件的空闲频数;
Xt-1表示所述前后相邻的两个时间段中前一设定时间段内的所述计算部件的空闲频数;
Δt表示所述设定时间段的时长;
β表示变化比例常数。
6.如权利要求5所述的功耗调整方法,其特征在于,所述处理器中包含有多个计算部件,所述多个计算部件均通过一个时钟门控和/或一个功率门控控制;
所述根据所述运行状态信息,动态调整时钟门控和/或功率门控对所述计算部件的空闲等待延时还包括:
获取所述多个计算部件中,每个计算部件的空闲等待延时Tt
计算所述多个计算部件的空闲等待延时Tt的均值、中位值或最值;
将所述均值、中位值或最值作为所述时钟门控和/或功率门控对所述多个计算部件进行控制的空闲等待延时。
7.如权利要求1所述的功耗调整方法,其特征在于,所述处理器中包含有多个计算部件,所述多个计算部件均通过一个时钟门控和/或一个功率门控控制;
所述获取所述计算部件的运行状态信息包括:
统计所述多个计算部件的总空闲频数变化信息;
根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,所述多个计算部件的总空闲频数变化差值;其中,所述总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值;
所述根据所述运行状态信息,动态调整时钟门控和/或功率门控对所述计算部件的空闲等待延时包括:
根据所述总空闲频数变化差值,动态调整所述时钟门控和/或功率门控对所述多个计算部件中每个计算部件的空闲等待延时。
8.如权利要求7所述的功耗调整方法,其特征在于,所述根据所述总空闲频数变化差值,动态调整所述时钟门控和/或功率门控对所述多个计算部件中每个计算部件的空闲等待延时包括:
判断所述总空闲频数变化差值的绝对值是否大于设定阈值;
如果判断结果为所述总空闲频数变化差值的绝对值不大于所述设定阈值,则保持所述时钟门控和/或功率门控对所述多个计算部件中每个计算部件的空闲等待延时不变;
如果判断结果为所述总空闲频数变化差值的绝对值大于所述设定阈值,则根据所述总空闲频数变化差值,调整所述空闲等待延时。
9.如权利要求8所述的功耗调整方法,其特征在于,所述根据所述总空闲频数变化差值,调整所述空闲等待延时包括:
根据所述总空闲频数变化差值的正负、所述总空闲频数变化差值的绝对值大小、以及所述设定时间段的时长确定所述空闲等待延时。
10.如权利要求9所述的功耗调整方法,其特征在于,所述根据所述总空闲频数变化差值的正负、所述总空闲频数变化差值的绝对值大小、以及所述设定时间段的时长确定所述空闲等待延时具体为:
根据所述总空闲频数变化差值的正负、所述总空闲频数变化差值的绝对值的大小、以及所述设定时间段的时长,按照如下公式,计算空闲等待延时Tt
Figure FDA0003059939800000021
其中,α表示空闲等待延时的经验值,为固定值;
St表示所述前后相邻的两个时间段中后一设定时间段内的所述多个计算部件的总空闲频数;
St-1表示所述前后相邻的两个时间段中前一设定时间段内的所述多个计算部件的总空闲频数;
Δt表示所述设定时间段的时长;
β表示变化比例常数。
11.如权利要求1所述的功耗调整方法,其特征在于,所述获取所述计算部件的运行状态信息包括:
获取所述计算部件当前的运行状态信息;
所述根据运行状态信息,动态调整时钟门控和/或功率门控对所述计算部件的空闲等待延时包括:
根据所获取的计算部件的当前的运行状态信息,判断当前所述计算部件是处于繁忙状态,还是处于空闲状态;
如果判断结果为所述计算部件处于繁忙状态,则调整所述时钟门控和/或功率门控对所述计算部件的空闲等待延时为第一档经验值Vh;
如果判断结果为所述计算部件处于空闲状态,则调整所述时钟门控和/或功率门控对所述计算部件的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。
12.一种功耗调整装置,用于调整处理器中计算部件的功耗,其特征在于,包括性能监控器、时钟门控和/或功率门控、功耗管理模块;
其中,所述性能监控器用于获取所述计算部件的运行状态信息;
所述功耗管理模块用于根据所述运行状态信息,动态调整所述时钟门控和/或功率门控对所述计算部件的空闲等待延时;
所述时钟门控和/或功率门控用于根据所述动态调整后的空闲等待延时,在所述计算部件空闲时间超过所述空闲等待延时后,关闭所述计算部件对应的时钟信号和/或电源信号。
13.如权利要求12所述的功耗调整装置,其特征在于,所述性能监控器包括:
空闲事件计数器,用于统计所述计算部件的空闲频数变化信息;
统计器,用于根据所统计的空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,所述计算部件的空闲频数变化差值;其中,所述空闲频数变化差值等于后一设定时间段内的空闲频数减去前一设定时间段内的空闲频数的差值。
14.如权利要求13所述的功耗调整装置,其特征在于,所述功耗管理模块包括:
第一判断模块,用于判断所述空闲频数变化差值的绝对值是否大于设定阈值;
第一处理模块,用于在判断结果为所述空闲频数变化差值的绝对值不大于所述设定阈值时,保持所述时钟门控和/或功率门控对所述计算部件的空闲等待延时不变;还用于在判断结果为所述空闲频数变化差值的绝对值大于所述设定阈值时,根据所述空闲频数变化差值,调整所述空闲等待延时。
15.如权利要求12所述的功耗调整装置,其特征在于,所述处理器中包含有多个计算部件,所述多个计算部件均通过一个时钟门控和/或一个功率门控控制;
所述性能监控器包括空闲事件计数器和统计器;其中,所述空闲事件计数器用于统计所述多个计算部件的总空闲频数变化信息;所述统计器用于根据所统计的总空闲频数变化信息,计算前后相邻的两个等时长的设定时间段内,所述多个计算部件的总空闲频数变化差值;所述总空闲频数变化差值等于后一设定时间段内的总空闲频数减去前一设定时间段内的总空闲频数的差值;
所述功耗管理模块用于根据所述总空闲频数变化差值,动态调整所述时钟门控和/或功率门控对所述多个计算部件中每个计算部件的空闲等待延时。
16.如权利要求12所述的功耗调整装置,其特征在于,所述性能监控器包括:用于存储所述计算部件当前的运行状态信息的状态寄存器;
所述功耗管理模块包括:
读取模块,用于读取所述状态寄存器中存储的所述计算部件当前的运行状态信息;
第二判断模块,用于根据所获取的计算部件的当前的运行状态信息,判断当前所述计算部件是处于繁忙状态,还是处于空闲状态;
第二处理模块,用于在判断结果为所述计算部件处于繁忙状态时,调整所述时钟门控和/或功率门控对所述计算部件的空闲等待延时为第一档经验值Vh;还用于在判断结果为所述计算部件处于空闲状态时,调整所述时钟门控和/或功率门控对所述计算部件的空闲等待延时为第二档经验值Vl;其中,Vh>Vl。
CN202110510153.0A 2021-05-11 2021-05-11 一种功耗调整方法及其装置 Active CN113238648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110510153.0A CN113238648B (zh) 2021-05-11 2021-05-11 一种功耗调整方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110510153.0A CN113238648B (zh) 2021-05-11 2021-05-11 一种功耗调整方法及其装置

Publications (2)

Publication Number Publication Date
CN113238648A true CN113238648A (zh) 2021-08-10
CN113238648B CN113238648B (zh) 2023-05-09

Family

ID=77133210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110510153.0A Active CN113238648B (zh) 2021-05-11 2021-05-11 一种功耗调整方法及其装置

Country Status (1)

Country Link
CN (1) CN113238648B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114879829A (zh) * 2022-07-08 2022-08-09 摩尔线程智能科技(北京)有限责任公司 功耗管理方法、装置、电子设备、图形处理器及存储介质
CN117119783A (zh) * 2023-10-25 2023-11-24 广东迅扬科技股份有限公司 一种模块待机功耗的控制方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005995A1 (en) * 2005-06-30 2007-01-04 Kardach James P Power management system for computing platform
CN101067758A (zh) * 2007-06-14 2007-11-07 华南理工大学 一种嵌入式系统的能耗管理方法
US20120233488A1 (en) * 2008-07-23 2012-09-13 Nxp B.V. Adjustment of a processor frequency
US20150082060A1 (en) * 2013-09-16 2015-03-19 Stmicroelectronics International N.V. Power consumption management system and method
CN104750228A (zh) * 2015-03-26 2015-07-01 广东欧珀移动通信有限公司 一种降低多核处理器功耗的方法及装置
CN110245366A (zh) * 2018-03-08 2019-09-17 华为技术有限公司 动态功耗估计方法、装置及系统
CN112214099A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种基于单核cpu空闲指示的动态时钟调节系统及方法
CN112486245A (zh) * 2020-12-17 2021-03-12 清华大学 可重构阵列时钟门控控制方法、装置、设备及介质
CN112486683A (zh) * 2020-11-27 2021-03-12 中国科学技术大学先进技术研究院 处理器控制方法、控制设备以及计算机可读存储介质
CN112639674A (zh) * 2018-08-28 2021-04-09 超威半导体公司 支持功率管理控制的功率管理顾问程序

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070005995A1 (en) * 2005-06-30 2007-01-04 Kardach James P Power management system for computing platform
CN101067758A (zh) * 2007-06-14 2007-11-07 华南理工大学 一种嵌入式系统的能耗管理方法
US20120233488A1 (en) * 2008-07-23 2012-09-13 Nxp B.V. Adjustment of a processor frequency
US20150082060A1 (en) * 2013-09-16 2015-03-19 Stmicroelectronics International N.V. Power consumption management system and method
CN104750228A (zh) * 2015-03-26 2015-07-01 广东欧珀移动通信有限公司 一种降低多核处理器功耗的方法及装置
CN110245366A (zh) * 2018-03-08 2019-09-17 华为技术有限公司 动态功耗估计方法、装置及系统
US20200401201A1 (en) * 2018-03-08 2020-12-24 Huawei Technologies Co., Ltd. Dynamic Power Consumption Estimation Method, Apparatus, and System
CN112639674A (zh) * 2018-08-28 2021-04-09 超威半导体公司 支持功率管理控制的功率管理顾问程序
CN112214099A (zh) * 2020-10-16 2021-01-12 苏州浪潮智能科技有限公司 一种基于单核cpu空闲指示的动态时钟调节系统及方法
CN112486683A (zh) * 2020-11-27 2021-03-12 中国科学技术大学先进技术研究院 处理器控制方法、控制设备以及计算机可读存储介质
CN112486245A (zh) * 2020-12-17 2021-03-12 清华大学 可重构阵列时钟门控控制方法、装置、设备及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YING-WEN BAI等: ""Dynamic adjustment of CPU clock speed to prevent notebook overheating and shutdown by AC adapter"", 《THE 1ST IEEE GLOBAL CONFERENCE ON CONSUMER ELECTRONICS 2012》 *
周俊等: ""微处理器的低功耗芯片设计技术"", 《单片机与嵌入式系统应用》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114879829A (zh) * 2022-07-08 2022-08-09 摩尔线程智能科技(北京)有限责任公司 功耗管理方法、装置、电子设备、图形处理器及存储介质
CN117119783A (zh) * 2023-10-25 2023-11-24 广东迅扬科技股份有限公司 一种模块待机功耗的控制方法
CN117119783B (zh) * 2023-10-25 2024-01-30 广东迅扬科技股份有限公司 一种模块待机功耗的控制方法

Also Published As

Publication number Publication date
CN113238648B (zh) 2023-05-09

Similar Documents

Publication Publication Date Title
US20210064117A1 (en) Optimizing power usage by factoring processor architectural events to pmu
US11709534B2 (en) Method and apparatus for managing global chip power on a multicore system on chip
US9074947B2 (en) Estimating temperature of a processor core in a low power state without thermal sensor information
US7797561B1 (en) Automatic functional block level clock-gating
US7958483B1 (en) Clock throttling based on activity-level signals
US7802118B1 (en) Functional block level clock-gating within a graphics processor
US8261112B2 (en) Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US9086823B2 (en) Providing adaptive frequency control for a processor using utilization information
US9442557B2 (en) Using a linear prediction to configure an idle state of an entity in a computing device
CN113238648A (zh) 一种功耗调整方法及其装置
US9921635B2 (en) Dynamic and adaptive sleep state management
US10133323B2 (en) Processor control system
CN104871114A (zh) 用于集成电路的空闲阶段预测
US20080301604A1 (en) Apparatus for and method of estimating the quality of clock gating solutions for integrated circuit design
TW201303573A (zh) 管理多核心處理器中之功率消耗之技術
US20120146708A1 (en) Method and apparatus for application of power density multipliers optimally in a multicore system
US10409936B2 (en) Method and apparatus for modelling power consumption of integrated circuit
US10296067B2 (en) Enhanced dynamic clock and voltage scaling (DCVS) scheme
US9400308B2 (en) Multi-domain heterogeneous process-voltage-temperature tracking for integrated circuit power reduction
US20160259667A1 (en) Hardware and runtime coordinated load balancing for parallel applications
Jian et al. Understanding and optimizing power consumption in memory networks
JP2014186522A (ja) 計算システム及びその電力管理方法
US20230205306A1 (en) Default Boost Mode State for Devices
Majzoub Voltage island design in multi-core SIMD processors
WO2022245371A1 (en) Dynamic power management of ddr subsystem using statistical control

Legal Events

Date Code Title Description
PB01 Publication
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