CN112698712B - 能耗管理的方法和设备 - Google Patents

能耗管理的方法和设备 Download PDF

Info

Publication number
CN112698712B
CN112698712B CN201911007882.3A CN201911007882A CN112698712B CN 112698712 B CN112698712 B CN 112698712B CN 201911007882 A CN201911007882 A CN 201911007882A CN 112698712 B CN112698712 B CN 112698712B
Authority
CN
China
Prior art keywords
imu
firmware
cpu
energy consumption
frequency
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.)
Active
Application number
CN201911007882.3A
Other languages
English (en)
Other versions
CN112698712A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911007882.3A priority Critical patent/CN112698712B/zh
Priority to EP20878976.8A priority patent/EP4033332A4/en
Priority to PCT/CN2020/122459 priority patent/WO2021078144A1/zh
Publication of CN112698712A publication Critical patent/CN112698712A/zh
Priority to US17/727,686 priority patent/US20220244772A1/en
Application granted granted Critical
Publication of CN112698712B publication Critical patent/CN112698712B/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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • 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/3243Power saving in microcontroller unit
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

本申请公开了一种能耗管理的方法和设备,应用于电子设备的能耗管理,该方法可以由IMU固件执行,包括如下处理:在OS运行之前,获取IMU PM执行通知,其中,IMU PM执行通知是由启动固件在OS运行之前、确定由IMU固件执行能耗管理PM后发送的,启动固件还用于在OS运行之前阻止OS执行操作系统能耗管理OS PM;在根据IMU PM执行通知确定由IMU固件对CPU执行PM后,获取CPU当前的性能参数,其中,性能参数包括所述CPU的功耗、温度和使用率中的一种或多种;基于性能参数,对CPU进行能耗管理。采用本申请进行能耗管理,可以减少OS与IMU固件之间的交互流程,从而使能耗管理更加高效。

Description

能耗管理的方法和设备
技术领域
本申请涉及能耗管理技术领域,特别涉及一种能耗管理的方法和设备。
背景技术
服务器作为一种可提供数据计算、数据存储、数据管理等多种服务的设备,在企业中被广泛应用。相比与一般的终端侧计算机设备,服务器的性能更加稳定服务器的管理维护成本也相对较高,对服务器提供的电力及对服务器的冷却的成本,占了服务器的管理维护成本的很大部分。因此,为了降低服务器的电力及冷却的成本,就要对服务器进行有效的能耗管理,以控制其耗电及产热。
目前,较为常用的服务器能耗管理方法为操作系统(operation system,OS)电源管理(power management,PM),可简称为OS PM,通常OS PM也可以称为操作系统能耗管理。OS PM的流程如下:OS实时监控中央处理器(central processing unit,CPU)的使用率,根据使用率以及预先配置的调频调压策略,确定出调压值和调频值。然后,向智能管理单元(intelligent management unit,IMU)固件发送调频调压请求,IMU固件接收到OS发送的调频调压请求后,获取调压值和调频值,并根据调压值和调频值对CPU的频率和电压进行调节,在调节完成后,向OS反馈调节完成消息。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:
OS PM是由OS发起的,需要先通知到IMU固件,再由IMU固件执行调频调压。这一调节过程较为繁琐,存在较大时延。
发明内容
本申请实施例提供了一种能耗管理的方法和设备,能够解决相关的能耗管理中的调节过程繁琐的问题。所述技术方案如下:
第一方面,提供了一种能耗管理的方法,用于电子设备的能耗管理,所述电子设备包括中央处理器CPU,存储器;所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述启动固件、所述OS以及所述IMU固件的功能,其中,所述能耗管理的方法由所述IMU固件执行,包括:
在操作系统OS运行之前,获取智能管理单元能耗管理IMU PM执行通知,其中,所述IMU PM执行通知是由启动固件在所述OS运行之前、确定由所述IMU固件执行能耗管理PM后发送的,所述启动固件还用于在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM;
在根据所述IMU PM执行通知确定由IMU固件对CPU执行PM后,获取所述CPU当前的性能参数,其中,所述性能参数包括所述CPU的功耗、温度和使用率中的一种或多种;基于所述性能参数,对所述CPU进行能耗管理。
本申请实施例所示的方案中,IMU PM执行通知是用于通知IMU执行能耗管理的。该IMU PM执行通知由启动固件发送。发送时机可以为OS运行之前,阻止OS执行OS PM之后发送的,则IMU固件可以在OS被阻止执行OS PM之后,获取到IMU PM执行通知。IMU固件在接收到IMU PM执行指令之后,开启IMU PM。IMU固件可以周期性获取CPU实时的性能参数,如功耗、温度和使用率等。然后,再根据获取到的性能参数,对CPU的频率和电压进行调节,以达到能耗管理的目的。在上述过程中,性能参数的获取,以及CPU的频率和电压的调节均有IMU固件直接实现,无需与OS进行交互,减少了CPU的调节时延。
在一种可能的实现方式中,所述IMU PM执行通知为IMU PM执行指令,所述获取IMUPM的执行通知包括:
接收所述启动固件发送的所述IMU PM执行指令。
本申请实施例所示的方案中,在OS运行之前,可以通过启动设置界面给用户提供PM设置选项,其中,启动设置界面可以为UEFI setup界面或者BIOS界面。电子设备上电,在启动固件启动时,电子设备的显示屏可以显示有启动设置界面,用户可以在该启动设置界面上的PM设置选项中,选择IMU PM。则在启动固件启动配置项中的PM设置这一配置项的数据为用于指示IMU进行PM的数据。启动固件读取启动配置项中的PM设置这一配置项的数据时,则向IMU固件发送IMU PM执行指令。通过直接发送IMU PM执行指令的方式,可以更加及时的通知IMU固件执行IMU PM。
在一种可能的实现方式中,所述IMU PM执行通知为在预设存储地址中的第一预设数据,所述获取IMU PM的执行通知包括:
通过轮询所述预设存储地址,获取所述第一预设数据。
本申请实施例所示的方案中,启动固件在预设存储地址中写入第一预设数据。相应的,IMU固件获取IMU PM执行通知的处理为:IMU固件通过轮询所述预设存储地址,获取所述第一预设数据。其中,预设存储地址为技术人员预先设置的用于存储PM执行通知的存储地址,第一预设数据可以为二进制数“1”。
在一种可能的实现方式中,所述启动固件用于通过如下方法在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM:
创建第一高级配置和电源接口ACPI表,并将所述第一ACPI表上报至OS,其中,所述第一ACPI表中不包括性能状态表,以阻止所述OS执行OS PM,所述性能状态表为性能支持状态PSS表或连续性能控制CPC表。
本申请实施例所示的方案中,根据不同的ACPI规范,ACPI表中可以包括有PSS表和CPC表中的一种,PSS表和CPC表均可以给OS提供CPU支持的频率可调值,不同的是,PSS表中提供了CPU支持的多个不同等级的频率可调值,如P0级的频率可调值为2001MHZ,P2级的频率可调值为1900MHZ等,而CPC表中提供了CPU支持的频率可调值的上限和下限。OS可以根据这两种表中提供的CPU支持的频率可调值对CPU的频率进行调整。则,启动固件可以在初始化ACPI表时,不初始化其中的性能状态表,则OS无法对CPU进行调频。通过此方案,可以更为直接的阻止OS执行OS PM,处理效率更高。
在一种可能的实现方式中,所述启动固件用于通过如下方法在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM:
创建第二ACPI表,并将所述第二ACPI表上报至OS,其中,所述第二ACPI表中包括性能状态表,所述第二ACPI表中包括的性能状态表中的频率可调值为相同的预设数值,或者,所述第二ACPI表中包括的性能状态表的表头为范围未定义的值,以阻止所述OS执行OS PM。
本申请实施例所示的方案中,启动固件可以将性能状态表中的频率可调值初始化为相同的预设数值。对于不同种的性能状态表可以有如下情况。对于性能状态表为PSS表的情况,可以将其中各等级的频率可调值均初始化为相同的预设数值,如,将各等级的频率可调值均初始化为P0级的频率可调值,或者,还可以将各等级的频率可调值均初始化为任意相同的预设数值,如0MHZ。对于性能状态表为CPC表的情况,可以将CPU的频率可调值的上限和下限初始化为相同的预设数值,如,将频率可调值的上限初始化为频率可调值的下限,或者,还可以将频率可调值的下限初始化为频率可调值的上限,又或者,还可以将频率可调值的下限和上限调整为任意相同的预设数值,如0MHZ。还可以,将性能状态表的表头初始化为范围未定义的值,以使OS无法通过表头找到频率可调值。通过此方案,可以无需对ACPI表的结构修改,即可达到阻止OS执行OS PM的目的。
在一种可能的实现方式中,所述方法还包括:当所述启动固件在所述OS运行之前、确定由所述OS执行PM后时,所述启动固件执行如下操作:
创建第三ACPI表,向所述OS发送所述第三ACPI表,其中,所述第三ACPI中包括性能状态表,所述第三ACPI表中包括的性能状态表中的频率可调值为所述CPU支持的预设频率可调值,以使所述OS执行OS PM;
向所述IMU固件发送IMU PM关闭指令;
所述IMU固件还执行如下操作:
接收所述启动固件发送的所述IMU PM关闭指令,关闭IMU PM。
本申请实施例所示的方案中,在上述启动设置界面的PM设置选项中,用户还可以选择OS PM。则在启动固件启动配置项中的PM设置这一配置项的数据为用于指示IMU关闭PM的数据,也可以理解为用于指示OS执行PM的数据。启动固件读取启动配置项中的PM设置这一配置项的数据时,则向IMU固件发送IMU PM关闭指令。IMU固件在接收到IMU PM关闭指令后,关闭IMU PM。另外,启动固件在初始化ACPI表时,可以正常初始化其中的性能状态表,即,将其中的性能状态表中的频率可调值初始化为CPU支持的预设频率可调值,以使OS可以通过加载ACPI表,来确定CPU的频率可调值,进而执行OS PM。
在一种可能的实现方式中,所述方法还包括:当所述启动固件在所述OS运行之前、确定由所述OS执行PM后时,所述启动固件执行如下操作:
创建第三ACPI表,向所述OS发送所述第三ACPI表;
在预设存储地址中写入第二预设数据;
所述IMU固件还执行如下操作:
通过轮询所述预设存储地址,获取所述第二预设数据,关闭IMU PM。
本申请实施例所示的方案中,上述启动固件发送IMU PM关闭通知的处理可以为:启动固件在预设存储地址中写入第二预设数据。相应的,IMU固件获取IMU PM关闭通知的处理为:IMU固件通过轮询预设存储地址,获取第二预设数据。其中,预设存储地址为技术人员预先设置的用于存储PM执行通知的存储地址,第二预设数据可以为二进制数“0”。另外,启动固件在初始化ACPI表时,可以正常初始化其中的性能状态表,即,将其中的性能状态表中的频率可调值初始化为CPU支持的预设频率可调值,以使OS可以通过加载ACPI表,来确定CPU的频率可调值,进而执行OS PM。
在一种可能的实现方式中,所述启动固件为基本输入输出系统BIOS固件或者统一的可扩展固件接口UEFI固件。
本申请实施例所示的方案中,启动固件可以我BIOS固件或者UEFI固件,不同的电子设备中的启动固件也可能不同。
在一种可能的实现方式中,所述性能参数包括所述CPU的功耗,在所述获取CPU当前的性能参数之前,所述IMU固件执行如下操作:
接收所述带外管理系统发送功耗限制指令,其中,所述功耗限制指令中携带有功耗阈值;
所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述性能参数中的所述CPU的功耗大于所述功耗阈值,则降低所述CPU的频率和电压;
如果所述CPU的功耗小于所述功耗阈值的预设倍数,则提升所述CPU的频率和电压,其中,所述预设倍数大于0小于1。
本申请实施例所示的方案中,用户可以选择是否需要根据CPU的功耗,对CPU的频率和电压进行调节。用户可以向带外管理系统输入对限制CPU功耗的代码,带外管理系统则可以向IMU固件发送功耗限制指令,其中,该功耗限制指令中可以携带有功耗阈值。IMU接收到该耗限制指令后,实时获取CPU的当前功耗。如果上述获取到的CPU当前的功耗大于带外管理系统发送来的功耗阈值,则降低CPU的频率和电压。另外,还可以同时降低CPU的IO接口的功率和电压,如果CPU的频率已经调节到最低可调整值,则可以将CPU中各核的一些没有使用的端口关闭。如果CPU的功耗小于功耗阈值的预设倍数,则提升CPU的频率和电压,其中,预设倍数大于0小于1,如0.95。另外,还可以同时提升CPU的IO接口的功率和电压。通过本方案,可以根据用户需求确定是否要根据功耗,来调节频率和电压,这样,可以满足不同用户的不同的需求。
在一种可能的实现方式中,所述性能参数包括所述CPU的温度,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述CPU的温度大于第一温度阈值,则向所述带外管理系统发送高温告警消息,所述高温告警消息用于指示所述带外管理系统对CPU进行下电保护;
如果所述CPU的温度小于所述第一温度阈值,大于第二温度阈值,则降低所述CPU的频率和电压;
如果所述CPU的温度小于第三温度阈值,则提升所述CPU的频率和电压,其中,所述第三温度阈值小于所述第二温度阈值。
本申请实施例所示的方案中,在CPU上可以安装有温度传感器,温度传感器实时监测CPU的温度,IMU固件可以周期性从温度传感器获取到CPU当前的温度,例如,周期可以为0.5秒。或者,可以由温度传感器周期性监测CPU的温度,当温度达到温控阈值后,温度传感器才会向IMU固件发送CPU当前的温度。如果上述获取到的CPU当前的温度大于第一温度阈值,则向带外管理系统发送高温告警消息。带外管理系统接收到高温告警消息后,对CPU进行下电保护,以防止温度过高使CPU受损。如果CPU的温度小于第一温度阈值,大于第二温度阈值,则降低CPU的频率和电压。另外,还可以同时降低CPU的IO接口的功率和电压,增大风扇转速,提升散热,如果仍无法使温度有效的降低,还可以调整CPU中各核的电源域状态,将一些处于空闲状态的核的电源域调整为关闭状态,即将这些核关闭,使其不再运行产热。如果CPU的温度小于第三温度阈值,则可以提升CPU的频率和电压,其中,第三温度阈值小于第二温度阈值。另外,如果在之前为了降温,将CPU中的一些核的电源调整为关闭状态,则此时可以再将这些核的电源域调整为开启状态,即将这些核重新开启。
在一种可能的实现方式中,所述性能参数包括所述CPU的使用率,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述CPU的使用率大于第一使用率阈值,则提升所述CPU的频率和电压;
如果所述CPU的使用率小于第二使用率阈值,则降低所述CPU的频率和电压。
本申请实施例所示的方案中,在CPU的每个核上都可以安装有性能监测单元(performance monitor unit,PMU),PMU用于统计其所在的核处于非空闲状态的时钟数。对于每个统计周期,由PMU统计在该统计周期内其所在的核处于非空闲状态下的时钟数,并发送给IMU固件。IMU固件可以使用非空闲状态下的时钟数除以该统计周期的总时钟数,得到相应的核在该统计周期内的使用率。对于一个时钟域来说,在该时钟域内的所有核的使用率相加,再除以该时钟域内的核的数目,即为该时钟域内的核的平均使用率。对于一个CPU来说,可以只设置有一个时钟域,即所有核处于相同的时钟域内,这种情况下,CPU的使用率即为该时钟域内的核的平均使用率。当然,对于一个CPU来说,也可以设置有多个时钟域,例如,每个核对应一个时钟域,或者每几个核对应一个时钟域,这种情况下,CPU的使用率可以用这些时钟域内的核的平均使用率共同表示。在上述获取到每个时钟域内的核的平均使用率后,如果该平均使用率大于第一使用率阈值,则可以提升该时钟域内的核的频率和电压。如果该平均使用率小于第二使用率阈值,则降低该时钟域内的核的频率和电压,其中,第一使用率阈值小于第二使用率阈值。
在一种可能的实现方式中,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
将所述性能参数与所述CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据;
将所述待分类特征数据输入到预先训练的分类器模型中,得到目标业务类型;
基于预先存储的业务类型和配置调整策略之间的对应关系,确定所述目标业务类型对应的配置调整策略,其中,所述配置调整策略中至少包括所述CPU的待使用频率和待使用电压;
将所述CPU的频率和电压,分别调节为所述待使用频率和所述待使用电压。
本申请实施例所示的方案中,为了能根据CPU的所有性能参数,来综合决定如何对CPU的频率和电压进行调节。IMU固件可以将周期性获取到的CPU的性能参数和CPU的电压、频率,输入到预先训练的特征提取模型和分类器模型中,得到对应的目标业务类型。然后,查询业务分类和配置调整策略之间的对应关系,得到目标业务类型对应的配置调整策略。在该配置调整策略中包括有CPU待使用频率和待使用电压。再然后,可以将CPU的频率调节为该待使用频率,将CPU的电压调节为待使用电压。通过本方案,使得CPU的频率和电压调节更加灵活。
第二方面,提供了一种能耗管理的方法,用于电子设备的能耗管理,所述电子设备包括中央处理器CPU,存储器;所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述固件、所述OS以及所述IMU固件的功能,其中,所述能耗管理方法由所述IMU固件执行,包括:
在所述OS运行过程中,接收带外管理系统发送的用于通知所述IMU固件执行IMUPM的第一通知消息;
根据所述第一通知消息与所述OS进行交互,使得所述OS不再负责能耗管理;
获取所述CPU当前的性能参数,其中,所述性能参数包括所述CPU的功耗、温度和使用率中的一种或多种;
基于所述性能参数,对所述CPU进行能耗管理。
本申请实施例所示的方案中,如果服务器的OS运行过程中,执行PM的是OS,则用户可以通过服务器的带外管理系统开启IMU PM,使IMU固件负责PM。其中,带外管理系统可以为基板控制管理器(baseboard management controller,BMC)。用户可以向带外管理系统输入开启IMU PM的代码,带外管理系统则会通过智能平台管理接口(intelligentplatform management interface,IPMI)向IMU固件发送第一通知消息,以使IMU固件在接收到该第一通知消息后,执行IMU PM。IMU固件可以通过和OS进行交互,使OS不再负责能耗管理。在IMU PM开启后,IMU固件可以周期性获取CPU实时的性能参数,如功耗、温度和使用率等。然后,再根据获取到的性能参数,对CPU的频率和电压进行调节,以达到能耗管理的目的。通过本方案,可以在OS运行过程中,将OS PM切换为IMU PM,使得电子设备的能耗管理更加灵活,另外,通过本方案性能参数的获取,以及CPU的频率和电压的调节均有IMU固件直接实现,无需与OS进行交互,减少了CPU的调节时延。
在一种可能的实现方式中,所述根据所述第一通知消息与所述OS进行交互,使得所述OS不再负责能耗管理,包括:
如果接收到所述OS发送的第一能耗管理请求,则不根据所述第一能耗管理请求执行能耗管理,并向所述OS返回预设消息,使得所述OS不再负责所述能耗管理。
本申请实施例所示的方案中,第一能耗管理请求可以为OS指示IMU对CPU进行调频的请求。在本方案中,IMU固件在接收到第一能耗管理请求后,并不会执行该第一能耗管理请求对应的调频操作,而是执行自己的IMU PM。另外,虽然IMU固件不会根据该第一能耗管理请求进行调频,但是,在接收到该第一能耗管理请求后,可以向OS返回预设消息,该预设消息可以为执行成功的通知消息,以欺骗OS,使OS以为自己在负责PM,而实际是由IMU固件负责。通过此方案,无需对ACPI表进行修改,可以使OS PM切换到IMU PM的效率更高。
在一种可能的实现方式中,,所述根据所述第一通知消息与所述OS进行交互,包括:
在接收到所述第一通知消息后,获取第四高级配置和电源接口ACPI表,对所述第四ACPI表进行更新,得到第四更新ACPI表;
向所述OS发送第四ACPI表更新消息,其中,所述第四ACPI表更新消息用于指示所述OS获取所述第四更新ACPI表,以使所述OS基于所述第四更新ACPI表关闭OS PM。
本申请实施例所示的方案中,为了使OS不再执行OS PM,可以在内存中获取到ACPI表,并对ACPI表进行更新,再存储在原存储地址,然后,可以向OS发送ACPI表更新消息,以指示OS在内存中获取并解析ACPI表,使得OS无法根据ACPI表执行能耗管理。
在一种可能的实现方式中,所述对所述第四ACPI表进行更新,包括:
将所述第四ACPI表中包括的性能状态表移除,其中,所述性能状态表为PSS表或CPC表;
或者,将所述第四ACPI表中包括的性能状态表中的频率可调值调整为相同的预设数值;
或者,将所述第四ACPI表中包括的性能状态表的表头修改为范围未定义的值。
本申请实施例所示的方案中,IMU固件可以从内存中获取到ACPI表(上述第四ACPI表),并将其中的性能状态表移除,再将存储在原存储地址。这样,OS在获取到该ACPI表后,则无法解析到性能状态表,从而无法执行OS PM。
或者,IMU固件将该ACPI表中的性能状态表中的频率可调值调整为相同的预设数值,对于不同种的性能状态表,可以有如下情况。对于性能状态表为PSS表的情况,可以将其中各等级的频率可调值均调整为相同的预设数值,如,将各等级的频率可调值均调整为P0级的频率可调值,或者,还可以将各等级的频率可调值均调整为任意相同的预设数值,如0MHZ。对于性能状态表为CPC表的情况,可以将CPU的频率可调值的上限和下限调整为相同的预设数值,如,将频率可调值的上限调整为频率可调值的下限,或者,可以将频率可调值的下限调整为频率可调值的上限,又或者,可以将频率可调值的下限和上限调整为任意相同的预设数值,如0MHZ。
又或者,IMU固件可以将该ACPI表中的性能状态表的表头修改为范围未定义的值,以使OS无法通过表头找到频率可调值。
在一种可能的实现方式中,所述IMU固件还执行如下操作:
在操作系统OS运行过程中,接收所述带外管理系统发送的用于通知所述IMU固件开启OS PM的第二通知消息;
如果当前所述OS负责能耗管理,则不再对所述第二通知消息进行处理;
如果当前所述OS不负责能耗管理,则根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理。
本申请实施例所示的方案中,用户可以向带外管理系统输入开启IMU PM的代码,带外管理系统则会通过IPMI向IMU固件发送第二通知消息。如果当前的PM为OS PM则可以不对该第二通知消息进行处理,如果当前的PM为IMU PM,则在接收到该第二通知消息后,需要关闭IMU PM,并使OS负责PM,即开启OS PM。
在一种可能的实现方式中,所述根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理,包括:
在接收到所述OS发送的第二能耗管理请求后,执行所述第二能耗管理请求。
在一种可能的实现方式中,所述根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理,包括:
获取第五ACPI表,对所述第五ACPI表进行更新,得到第五更新ACPI表;
向所述OS发送第五ACPI表更新消息,其中,所述第五ACPI表更新消息用于指示所述OS获取所述第五更新ACPI表,以使所述OS根据所述第五更新ACPI表开启操作系统能耗管理OS PM。
本申请实施例所示的方案中,IMU固件可以通过更新ACPI表的方式,使OS开启OSPM。
在一种可能的实现方式中,所述对所述第五ACPI表进行更新,包括:
如果所述第五ACPI表中不包括性能状态表,则在所述第五ACPI表中添加性能状态表;
如果所述第五ACPI表中包括有性能状态表,则将所述第五ACPI表中包括的性能状态表中的频率可调值调整为所述CPU支持的预设频率可调值。
本申请实施例所示的方案中,为了使OS开启OS PM,IMU固件通过如下操作更新ACPI表。如果在之前使OS不负责PM时,对ACPI表进行的更新是将其中的性能状态表移除,则此处可以在内存中获取到ACPI表(上述第五ACPI表),并在其中添加正常的性能状态表。如果在之前使OS不负责PM时,对ACPI表进行的更新是对其中的频率可调值进行修改,而并未移除性能状态表,则此处可以将性能状态表中的频率可调值调整为CPU支持的预设频率可调值。如果在之前使OS不负责PM时,对ACPI表进行的更新是对表头进行修改,而并未移除性能状态表,则此处可以将性能状态表的表头调整为正常的频率可调值的表头。对ACPI表进行更新后,将其存储于原存储地址。
在一种可能的实现方式中,所述性能参数包括所述CPU的功耗,在所述获取CPU当前的性能参数之前,所述IMU固件对应的程序指令还被所述CPU读取并执行如下操作:
接收所述带外管理系统发送功耗限制指令,其中,所述功耗限制指令中携带有功耗阈值;
所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述性能参数中的所述CPU的功耗大于所述功耗阈值,则降低所述CPU的频率和电压;
如果所述CPU的功耗小于所述功耗阈值的预设倍数,则提升所述CPU的频率和电压,其中,所述预设倍数大于0小于1。
本申请实施例所示的方案中,用户可以选择是否需要根据CPU的功耗,对CPU的频率和电压进行调节。用户可以向带外管理系统输入对限制CPU功耗的代码,带外管理系统则可以根据该代码向IMU固件发送功耗限制指令,其中,该功耗限制指令中可以携带有功耗阈值。IMU接收到该耗限制指令后,实时获取CPU的当前功耗。如果上述获取到的CPU当前的功耗大于带外管理系统发送来的功耗阈值,则降低CPU的频率和电压。另外,还可以同时降低CPU的IO接口的功率和电压,如果CPU的频率已经调节到最低可调整值,则可以将CPU中各核的一些没有使用的端口关闭。如果CPU的功耗小于功耗阈值的预设倍数,则提升CPU的频率和电压,其中,预设倍数大于0小于1,如0.95。另外,还可以同时提升CPU的IO接口的功率和电压。通过本方案,可以根据用户需求确定是否要根据功耗,来调节频率和电压,这样,可以满足不同用户的不同的需求。
在一种可能的实现方式中,所述性能参数包括所述CPU的温度,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述CPU的温度大于第一温度阈值,则向所述带外管理系统发送高温告警消息,所述高温告警消息用于指示所述带外管理系统对CPU进行下电保护;
如果所述CPU的温度小于所述第一温度阈值,大于第二温度阈值,则降低所述CPU的频率和电压;
如果所述CPU的温度小于第三温度阈值,则提升所述CPU的频率和电压,其中,所述第三温度阈值小于所述第二温度阈值。
本申请实施例所示的方案中,在CPU上可以安装有温度传感器,温度传感器实时监测CPU的温度,IMU固件可以周期性从温度传感器获取到CPU当前的温度,例如,周期可以为0.5秒。或者,可以由温度传感器周期性监测CPU的温度,当温度达到温控阈值后,温度传感器才会向IMU固件发送CPU当前的温度。如果上述获取到的CPU当前的温度大于第一温度阈值,则向带外管理系统发送高温告警消息。带外管理系统接收到高温告警消息后,对CPU进行下电保护,以防止温度过高使CPU受损。如果CPU的温度小于第一温度阈值,大于第二温度阈值,则降低CPU的频率和电压。另外,还可以同时降低CPU的IO接口的功率和电压,增大风扇转速,提升散热,如果仍无法使温度有效的降低,还可以调整CPU中各核的电源域状态,将一些处于空闲状态的核的电源域调整为关闭状态,即将这些核关闭,使其不再运行产热。如果CPU的温度小于第三温度阈值,则可以提升CPU的频率和电压,其中,第三温度阈值小于第二温度阈值。另外,如果在之前为了降温,将CPU中的一些核的电源调整为关闭状态,则此时可以再将这些核的电源域调整为开启状态,即将这些核重新开启。
在一种可能的实现方式中,所述性能参数包括所述CPU的使用率,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
如果所述CPU的使用率大于第一使用率阈值,则提升所述CPU的频率和电压;
如果所述CPU的使用率小于第二使用率阈值,则降低所述CPU的频率和电压。
本申请实施例所示的方案中,在CPU的每个核上都可以安装有性能监测单元(performance monitor unit,PMU),PMU用于统计其所在的核处于非空闲状态的时钟数。对于每个统计周期,由PMU统计在该统计周期内其所在的核处于非空闲状态下的时钟数,并发送给IMU固件。IMU固件可以使用非空闲状态下的时钟数除以该统计周期的总时钟数,得到相应的核在该统计周期内的使用率。对于一个时钟域来说,在该时钟域内的所有核的使用率相加,再除以该时钟域内的核的数目,即为该时钟域内的核的平均使用率。对于一个CPU来说,可以只设置有一个时钟域,即所有核处于相同的时钟域内,这种情况下,CPU的使用率即为该时钟域内的核的平均使用率。当然,对于一个CPU来说,也可以设置有多个时钟域,例如,每个核对应一个时钟域,或者每几个核对应一个时钟域,这种情况下,CPU的使用率可以用这些时钟域内的核的平均使用率共同表示。在上述获取到每个时钟域内的核的平均使用率后,如果该平均使用率大于第一使用率阈值,则可以提升该时钟域内的核的频率和电压。如果该平均使用率小于第二使用率阈值,则降低该时钟域内的核的频率和电压,其中,第一使用率阈值小于第二使用率阈值。
在一种可能的实现方式中,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
将所述性能参数与所述CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据;
将所述待分类特征数据输入到预先训练的分类器模型中,得到目标业务类型;
基于预先存储的业务类型和配置调整策略之间的对应关系,确定所述目标业务类型对应的配置调整策略,其中,所述配置调整策略中至少包括所述CPU的待使用频率和待使用电压;
将所述CPU的频率和电压,分别调节为所述待使用频率和所述待使用电压。
本申请实施例所示的方案中,为了能根据CPU的所有性能参数,来综合决定如何对CPU的频率和电压进行调节。IMU固件可以将周期性获取到的CPU的性能参数和CPU的电压、频率,输入到预先训练的特征提取模型和分类器模型中,得到对应的目标业务类型。然后,查询业务分类和配置调整策略之间的对应关系,得到目标业务类型对应的配置调整策略。在该配置调整策略中包括有CPU待使用频率和待使用电压。再然后,可以将CPU的频率调节为该待使用频率,将CPU的电压调节为待使用电压。通过本方案,使得CPU的频率和电压调节更加灵活。
第三方面,提供了一种能耗管理的设备,所述设备包括CPU,存储器,所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述启动固件、所述OS以及所述IMU固件的功能;
其中,所述IMU固件,用于执行权利要求1-9或10-18中任一项所述的能耗管理的方法。
在一种可能的实现方式中,所述CPU包括IMU核以及业务处理AP核,其中,所述AP与所述IMU处理器通过系统隔离墙SIW隔离;
所述IMU固件的功能由所述IMU核处理。
本申请实施例提供的技术方案带来的有益效果是:
IMU固件可以获取IMU PM执行通知,以开启IMU PM。通过直接获取CPU当前的性能参数,并根据获取到的性能参数对CPU的频率和电压进行调节,达到能耗管理的目的。在这一过程中无需OS获取性能参数,再通知IMU固件进行CPU的频率和电压的调节,减少了交互过程,使得频率和电压的调节更加高效。
附图说明
图1是本申请实施例提供的一种服务器的结构示意图;
图2是本申请实施例提供的一种CPU的结构示意图;
图3是本申请实施例提供的一种能耗管理的方法的流程示意图;
图4是本申请实施例提供的一种能耗管理的方法的流程示意图;
图5是本申请实施例提供的一种带外管理系统的结构示意图;
图6是本申请实施例提供的一种能耗管理的设备。
具体实施方式
本申请实施例提供了一种能耗管理的方法,该方法可以用于电子设备的能耗管理,电子设备可以包括有CPU和存储器,存储器中可以存储有固件和OS分别对应的多个程序指令,多个程序指令被CPU读取并执行以实现固件和OS的功能,其中,固件可以包括启动固件和IMU固件,本申请实施例中提供的能耗管理方法可以由IMU固件执行实现。
上述电子设备可以为服务器、计算机等,本申请实施例以电子设备为服务器为例进行说明。如图1所示的服务器的结构示意图中,可以包括有OS、固件和CPU,固件可以包括有启动固件和IMU固件,启动固件如:统一的可扩展固件接口(unified extensiblefirmware interface,UEFI)固件、基本输入输出系统(Basic Input Output System,BIOS)固件,图中示出的为UEFI固件。UEFI固件可以用于在OS启动时,建立高级配置和电源接口(advanced configuration and power interface,ACPI)表以使OS可以正常启动,IMU固件可以用于实现本申请提供的能耗管理方法,通过获取CPU的性能参数,调节CPU的频率和电压,以达到对服务器能耗管理的目的。CPU可以包括有多个独立的核(core),如用于业务处理的业务处理器(application processor,AP)核,以及用于实现本申请实施例提供的能耗管理方法的处理器核,在本申请实施例中称为IMU核。上述UEFI固件以及OS可以运行在AP核上,IMU固件可以运行在IMU核上。当然,对于CPU来说,也可以仅包括有AP核,相应的,IMU固件可以运行在AP核上,同样也可以实现本申请实施例提供的能耗管理的方法。
对于包括有AP核和IMU核的CPU的结构示意图可以参见图2。如图2所示,左侧为多个AP核,右侧为IMU核,AP核和IMU核之间可以进行高速互联。另外,由于在CPU中独立出的IMU核用于运行IMU固件以实现能耗管理,那么,在IMU核上的数据也就相对比较重要,为了保证IMU核的数据安全,可以在通过系统隔离墙(system isolation wall,SIW)将AP核和IMU核进行隔离,实现AP核和IMU核之间的单向访问,即IMU核可以访问AP核中的数据,但是AP核不能访问IMU核中的数据。需要说明的是,IMU固件的名称并不仅限定为IMU,在其他应用中,也可以被命名为其他的名称。
下面对本申请实施例提供的一种能耗管理的方法的处理流程进行说明。
如图3所示,该方法的处理流程可以包括如下的步骤:
步骤301、在操作系统OS运行之前,获取智能管理单元能耗管理(intelligentmanagement unit power management,IMU PM)执行通知,其中,IMU PM执行通知是由启动固件在OS运行之前、确定由IMU执行PM后发送的,启动固件还用于在OS运行之前阻止OS执行操作系统能耗管理(operating system power management,OS PM)。
其中,IMU PM执行通知是用于通知IMU固件执行IMU PM的。
在实施中,在OS运行之前,启动固件确定能耗管理(power management,PM)由IMU固件执行,则可以发送IMU PM执行通知。IMU固件可以通过获取IMU PM执行通知,来开启IMUPM。为了避免和OS所执行的OS PM相冲突,启动固件发送IMU PM执行通知之前,可以先阻止OS执行OS PM。
在OS运行之前,启动固件可以通过如下方式确定PM由IMU固件执行。
在OS运行之前,可以通过启动设置界面给用户提供PM设置选项,其中,启动设置界面可以为UEFI setup界面或者BIOS界面。服务器上电,在启动固件启动时,服务器外的显示屏可以显示有启动设置界面,用户可以在该启动设置界面上的PM设置选项中,选择IMU PM。则在启动固件启动配置项中的PM设置这一配置项的数据为用于指示IMU进行PM的数据。启动固件读取启动配置项中的PM设置这一配置项的数据时,则发送IMU PM执行通知。
对于上述IMU PM执行通知可以由多种形式,以下列举其中几种进行说明。
形式一、IMU PM执行通知为IMU PM执行指令。
则上述启动固件发送IMU PM执行通知的处理可以为:启动固件向IMU固件发送IMUPM执行指令。相应的,IMU固件获取IMU PM执行通知的处理为:IMU固件接收该启动固件发送的IMU PM执行指令。
形式二、IMU PM执行通知为在预设存储地址中的第一预设数据。
则上述启动固件发送IMU PM执行通知的处理可以为:启动固件在预设存储地址中写入第一预设数据。相应的,IMU固件获取IMU PM执行通知的处理为:IMU固件通过轮询所述预设存储地址,获取所述第一预设数据。其中,预设存储地址为技术人员预先设置的用于存储PM执行通知的存储地址,第一预设数据可以为二进制数“1”。
另外,上述启动固件阻止OS执行OS PM的方式可以有多种,以下列举其中几种进行说明。
方式一、启动固件创建第一高级配置和电源接口ACPI表,并将第一ACPI表上报至OS,其中,第一ACPI表中不包括性能状态表,以阻止OS执行OS PM,性能状态表为性能支持状态PSS表或连续性能控制CPC表。
此处需要说明的是,根据不同的ACPI规范,ACPI表中可以包括有PSS表和CPC表中的一种,PSS表和CPC表均可以给OS提供CPU支持的频率可调值,不同的是,PSS表中提供了CPU支持的多个不同等级的频率可调值,如P0级的频率可调值为2001MHZ,P2级的频率可调值为1900MHZ等,而CPC表中提供了CPU支持的频率可调值的上限和下限。OS可以根据这两种表中提供的CPU支持的频率可调值对CPU的频率进行调整。
在实施中,启动固件在初始化ACPI表(即上述第一ACPI表)时,可以不初始化其中的性能状态表,则OS无法对CPU进行调频。
方式二、创建第二ACPI表,并将第二ACPI表上报至OS,其中,第二ACPI表中包括性能状态表,第二ACPI表中包括的性能状态表中的频率可调值为相同的预设数值,或者,第二ACPI表中包括的性能状态表的表头为范围未定义的值,以阻止所述OS执行OS PM。
在实施中,启动固件在初始化ACPI表(即上述第二ACPI表)时,可以初始化其中的性能状态表,不过将性能状态表中的频率可调值初始化为相同的预设数值。对于不同种的性能状态表可以有如下情况。对于性能状态表为PSS表的情况,可以将其中各等级的频率可调值均初始化为相同的预设数值,如,将各等级的频率可调值均初始化为P0级的频率可调值,或者,还可以将各等级的频率可调值均初始化为任意相同的预设数值,如0MHZ。对于性能状态表为CPC表的情况,可以将CPU的频率可调值的上限和下限初始化为相同的预设数值,如,将频率可调值的上限初始化为频率可调值的下限,或者,还可以将频率可调值的下限初始化为频率可调值的上限,又或者,还可以将频率可调值的下限和上限调整为任意相同的预设数值,如0MHZ。还可以,将性能状态表的表头初始化为范围未定义的值,以使OS无法通过表头找到频率可调值。
在一种可能的实现方式中,在OS运行之前,还可以选择由OS执行PM,相应的,启动固件执行的操作可以如下:创建第三ACPI表,向OS发送第三ACPI表,其中,第三ACPI中包括性能状态表,第三ACPI表中包括的性能状态表中的频率可调值调整为CPU支持的预设频率可调值,以使OS执行OS PM;发送IMU PM关闭通知。相应的,IMU固件还可以执行如下操作:获取IMU PM关闭通知,关闭IMU PM。
在实施中,在上述启动设置界面的PM设置选项中,用户可以选择OS PM。则在启动固件启动配置项中的PM设置这一配置项的数据为用于指示IMU关闭PM的数据,也可以理解为用于指示OS执行PM的数据。启动固件读取启动配置项中的PM设置这一配置项的数据时,则发送IMU PM关闭通知。
对于上述IMU PM关闭通知可以有多种形式,以下列举其中几种进行说明。
形式一、IMU PM关闭通知为IMU PM关闭指令。
上述启动固件发送IMU PM关闭通知的处理可以为:启动固件向IMU固件发送IMUPM关闭指令。相应的,IMU固件获取IMU PM关闭通知的处理为:IMU固件接收该启动固件发送的IMU PM关闭指令。
形式二、IMU PM执行通知为在预设存储地址中的第二预设数据。
上述启动固件发送IMU PM关闭通知的处理可以为:启动固件在预设存储地址中写入第二预设数据。相应的,IMU固件获取IMU PM关闭通知的处理为:IMU固件通过轮询预设存储地址,获取第二预设数据。其中,预设存储地址为技术人员预先设置的用于存储PM执行通知的存储地址,第二预设数据可以为二进制数“0”。
启动固件在初始化ACPI表(即上述第三ACPI表)时,可以正常初始化其中的性能状态表,即,将其中的性能状态表中的频率可调值初始化为CPU支持的预设频率可调值,以使OS可以通过加载ACPI表,来确定CPU的频率可调值,进而执行OS PM。
步骤302、在根据IMU PM执行通知确定由IMU固件对CPU进行能耗管理后,获取中央处理器CPU当前的性能参数,其中,性能参数包括CPU的功耗、温度和使用率中的一种或多种。
在实施中,IMU固件可以获取CPU的性能参数,如功耗、温度和使用率等。
对于CPU的功耗的获取。
IMU PM开启后,IMU固件可以周期性获取CPU的功耗,例如周期可以为0.5秒。或者,IMU PM开启后,IMU可以不立即获取CPU的功耗,而是由用户自己决定是否需要根据CPU的功耗对CPU进行调频、调压,只有在用户需要根据CPU的功耗对CPU进行调频、调压时,IMU固件才会周期性获取CPU的功耗。在用户需要根据CPU的功耗对CPU进行调频、调压时,用户可以向带外管理系统输入对限制CPU功耗的代码,带外管理系统则可以向IMU固件发送功耗限制指令,其中,该功耗限制指令中可以携带有功耗阈值。IMU接收到该耗限制指令后,实时获取CPU的当前功耗。
对于CPU的温度的获取。
在CPU上可以安装有温度传感器,温度传感器实时监测CPU的温度,IMU固件可以周期性从温度传感器获取到CPU当前的温度,例如,周期可以为0.5秒。或者,可以由温度传感器周期性监测CPU的温度,当温度达到温控阈值后,温度传感器才会向IMU固件发送CPU当前的温度。
对于CPU的使用率的获取。
在CPU的每个核上都可以安装有性能监测单元(performance monitor unit,PMU),PMU用于统计其所在的核处于非空闲状态的时钟数。对于每个统计周期,由PMU统计在该统计周期内其所在的核处于非空闲状态下的时钟数,并发送给IMU固件。IMU固件可以使用非空闲状态下的时钟数除以该统计周期的总时钟数,得到相应的核在该统计周期内的使用率。对于一个时钟域来说,在该时钟域内的所有核的使用率相加,再除以该时钟域内的核的数目,即为该时钟域内的核的平均使用率。对于一个CPU来说,可以只设置有一个时钟域,即所有核处于相同的时钟域内,这种情况下,CPU的使用率即为该时钟域内的核的平均使用率。当然,对于一个CPU来说,也可以设置有多个时钟域,例如,每个核对应一个时钟域,或者每几个核对应一个时钟域,这种情况下,CPU的使用率可以用这些时钟域内的核的平均使用率共同表示。
步骤303、基于性能参数,对CPU进行能耗管理。
在实施中,IMU固件可以根据获取到的不同性能参数,来调节CPU的频率和电压。下面对根据获取到的每种性能参数,调节CPU的频率和电压分别进行说明。
根据CPU的功耗进行调节。
如果上述获取到的CPU当前的功耗大于带外管理系统发送来的功耗阈值,则降低CPU的频率,还可以在降低频率的同时降低CPU的电压。另外,还可以同时降低CPU的IO接口的功率和电压,如果CPU的频率已经调节到最低可调整值,则可以将CPU中各核的一些没有使用的端口关闭。如果CPU的功耗小于功耗阈值的预设倍数,则提升CPU的频率和电压,其中,预设倍数大于0小于1,如0.95。另外,还可以同时提升CPU的IO接口的功率和电压。
根据CPU的温度进行调节。
如果上述获取到的CPU当前的温度大于第一温度阈值,则向带外管理系统发送高温告警消息。带外管理系统接收到高温告警消息后,对CPU进行下电保护,以防止温度过高使CPU受损。如果CPU的温度小于第一温度阈值,大于第二温度阈值,则降低CPU的频率,还可以在降低频率的同时降低CPU的电压。另外,还可以同时降低CPU的IO接口的功率和电压,增大风扇转速,提升散热,如果仍无法使温度有效的降低,还可以调整CPU中各核的电源域状态,将一些处于空闲状态的核的电源域调整为关闭状态,即将这些核关闭,使其不再运行产热。如果CPU的温度小于第三温度阈值,则可以提升CPU的频率,还可以在提升频率的同时提升CPU的电压,其中,第三温度阈值小于第二温度阈值。另外,如果在之前为了降温,将CPU中的一些核的电源调整为关闭状态,则此时可以再将这些核的电源域调整为开启状态,即将这些核重新开启。
根据CPU的使用率进行调节。
在上述获取到每个时钟域内的核的平均使用率后,如果该平均使用率大于第一使用率阈值,则可以提升该时钟域内的核的频率,还可以在提升频率的同时提升其电压。如果该平均使用率小于第二使用率阈值,则降低该时钟域内的核的频率,还可以在降低频率的同时降低其电压,其中,第一使用率阈值小于第二使用率阈值。
此处需要说明的是,上述提升或者降低CPU的频率,均可以通过调整CPU内各核对应的时钟域的锁相环电路(phase locked loop,PLL)来进行调节。在通过PLL来调节CPU的频率时,可以有以下几种模式。
模式一、快升慢降模式,即迅速提升频率,缓慢减低频率,这种模式可以保证CPU的性能。
模式二、慢升快降模式,即缓慢提升频率,快速减低频率,这种模式下可以有效节省CPU功耗。
在一种可能的实现方式中,可以基于CPU的所有性能参数,来综合决定如何对CPU的频率和电压进行调节,相应的,处理可以如下:将性能参数与CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据。将待分类特征数据输入到预先训练的分类器模型中,得到CPU当前的业务分类;基于预先存储的业务分类和配置调整策略之间的对应关系,确定CPU当前的业务分类对应的配置调整策略,其中,配置调整策略中至少包括CPU的待使用频率和待使用电压。将CPU的频率和电压,分别调节为待使用频率和待使用电压。
其中,特征提取模型可以为长短期记忆(long short-term memory,LSTM)自编码器模型、循环神经网络(recurrent neural network,RNN)模型等,分类器模型可以为K最邻近(k-nearest neighbor,KNN)分类模型、多层感知器(multi-layer perception,MLP)分类模型等。
在实施中,技术人员可以预先建立特征提取模型和分类器模型,并对特征提取模型和分类器模型训练。在训练特征提取模型和分类器模型训练时,可以对两个模型同时训练。技术人员可以采集大量服务器中CPU运行时的性能参数和CPU的电压、频率,作为输入样本,即每组输入样本中至少包括有CPU运行时的性能参数和CPU的电压、频率。在获取到输入样本后,可以由人工对这些输入样本进行业务分类,例如,可以分为10个业务类型。每组输入样本对应的业务类型即为输出样本。这样每组输入样本核对应的输出样本,即可以组成一组训练样本。通过使用大量训练样本,对特征提取模型和分类器模型训练进行训练,不断调整特征提取模型和分类器模型的参数,以使其准确性更高,最后,可以得到训练后的特征提取模型和分类器模型。对于每个业务类型,技术人员可以对该业务类型对应的CPU运行时的性能参数和CPU的电压、频率,进行能效评分,将能效评分最高的一组中的CPU的电压、频率作为该业务类型对应的配置调整策略。然后,将每个业务类型与相应的配置调整策略的进行对应存储。这样,该配置调整策略即可以为CPU在相应的业务类型下的待使用频率和待使用电压。
IMU固件可以将周期性获取到的CPU的性能参数和CPU的电压、频率,输入到预先训练的特征提取模型和分类器模型中,得到对应的目标业务类型。然后,查询业务分类和配置调整策略之间的对应关系,得到目标业务类型对应的配置调整策略。在该配置调整策略中包括有CPU待使用频率和待使用电压。再然后,可以将CPU的频率调节为该待使用频率,将CPU的电压调节为待使用电压。
通过本申请实施例提供的能耗管理的方法,IMU固件可以获取IMU PM执行通知,以开启IMU PM。通过直接获取CPU当前的性能参数,并根据获取到的性能参数对CPU的频率和电压进行调节,达到能耗管理的目的。在这一过程中无需OS获取性能参数,再通知IMU固件进行CPU的频率和电压的调节,减少了交互过程,使得频率和电压的调节更加高效。
下面对本申请实施例提供的又一种能耗管理的方法的处理流程进行说明。
如图4所示,该方法的处理流程可以包括如下的步骤:
步骤401、在OS运行过程中,接收带外管理系统发送的用于通知所述IMU固件执行IMU PM的第一通知消息。
在实施中,如果服务器的OS运行过程中,执行PM的是OS,则用户可以通过服务器的带外管理系统开启IMU PM,使IMU固件负责PM。其中,带外管理系统可以为基板控制管理器(baseboard management controller,BMC)。如图5中的5a所示,带外管理系统可以是服务器中的另外一个CPU--CPU1;如图5中的5b所,带外管理系统还可以是CPU中的一个处理器核。用户可以向带外管理系统输入开启IMU PM的代码,带外管理系统则会通过智能平台管理接口(intelligent platform management interface,IPMI)向IMU固件发送第一通知消息,以使IMU固件在接收到该第一通知消息后,执行IMU PM。
步骤402、根据第一通知消息与OS进行交互,使得OS不再负责能耗管理。
在实施中,IMU固件与OS进行交互,使得OS不再负责能耗管理,可以有多种实现方式,以下列举其中几种进行说明。
方式一、如果接收到OS发送的第一能耗管理请求,则不根据第一能耗管理请求执行能耗管理,并向OS返回预设消息,使得OS不再负责所述能耗管理。
其中,第一能耗管理请求可以为OS指示IMU对CPU进行调频的请求。
在此种方式下,IMU固件在接收到第一能耗管理请求后,并不会执行该第一能耗管理请求对应的调频操作,而是执行自己的IMU PM。另外,虽然IMU固件不会根据该第一能耗管理请求进行调频,但是,在接收到该第一能耗管理请求后,可以向OS返回预设消息,该预设消息可以为执行成功的通知消息,以欺骗OS,使OS以为自己在负责PM,而实际是由IMU固件负责。
方式二、获取第四高级配置和电源接口ACPI表,对第四ACPI表进行更新,得到第四更新ACPI表;向OS发送第四ACPI表更新消息,其中,第四ACPI表更新消息用于指示OS获取第四更新ACPI表,以使OS基于第四更新ACPI表关闭OS PM。
在此种方式下,为了使OS不再执行OS PM,可以对ACPI表进行更新,使得OS无法根据ACPI表执行能耗管理。此处,IMU固件在更新ACPI表时,可以有多种方法,以下列举几种进行说明。
方法一、将上述第四ACPI表中包括的性能状态表移除,其中,性能状态表为PSS表或CPC表。
在实施中,IMU固件可以从内存中获取到ACPI表(即上述第四ACPI表),并将其中的性能状态表移除,再将存储在原存储地址。这样,OS在获取到该ACPI表后,则无法解析到性能状态表,从而无法执行OS PM。
方法二、将上述第四ACPI表中包括的性能状态表中的频率可调值调整为相同的预设数值。
在实施中,将性能状态表中的频率可调值调整为相同的预设数值,对于不同种的性能状态表,可以有如下情况。对于性能状态表为PSS表的情况,可以将其中各等级的频率可调值均调整为相同的预设数值,如,将各等级的频率可调值均调整为P0级的频率可调值,或者,还可以将各等级的频率可调值均调整为任意相同的预设数值,如0MHZ。对于性能状态表为CPC表的情况,可以将CPU的频率可调值的上限和下限调整为相同的预设数值,如,将频率可调值的上限调整为频率可调值的下限,或者,可以将频率可调值的下限调整为频率可调值的上限,又或者,可以将频率可调值的下限和上限调整为任意相同的预设数值,如0MHZ。
方法三、将上述第四ACPI表中包括的性能状态表的表头修改为范围未定义的值。
在实施中,还可以将性能状态表的表头修改为范围未定义的值,以使OS无法通过表头找到频率可调值。
在一种可能的实现方式中,在OS运行过程中,还可以通过带外管理系统选择OSPM。相应的,IMU PM可以执行如下操作:在操作系统OS运行过程中,接收带外管理系统发送的用于通知IMU固件开启OS PM的第二通知消息;如果当前OS负责能耗管理,则不再对第二通知消息进行处理;如果当前OS不负责能耗管理,则根据第二通知消息与OS进行交互,使得OS负责能耗管理。
在实施中,用户可以向带外管理系统输入开启IMU PM的代码,带外管理系统则会通过IPMI向IMU固件发送第二通知消息。如果当前的PM为OS PM则可以不对该第二通知消息进行处理,如果当前的PM为IMU PM,则在接收到该第二通知消息后,需要关闭IMU PM,并使OS负责PM,即开启OS PM。
针对上述使OS不负责PM的方式不同,此处根据第二通知消息与OS进行交互,使得OS负责能耗管理的方式也不相同。
针对上述方式一,此处IMU固件在接收到第二通知消息后,当接收到OS发送的第二能耗管理请求后,执行该第二能耗管理请求。
针对上述方式二,此处IMU固件在接收到第二通知消息后,获取第五ACPI表,对第五ACPI表进行更新,得到第五更新ACPI表;向OS发送第五ACPI表更新消息,其中,第五ACPI表更新消息用于指示OS获取第五更新ACPI表,以使OS可以根据第五更新ACPI表开启OS PM。此处,更新ACPI表的方法可以如下。
如果第五ACPI表中不包括性能状态表,则在五ACPI表中添加性能状态表;如果第五ACPI表中包括有性能状态表,则将第五ACPI表中包括的性能状态表中的频率可调值调整为CPU支持的预设频率可调值。
在实施中,如果在之前使OS不负责PM时,对ACPI表进行的更新是将其中的性能状态表移除,则此处可以在内存中获取到ACPI表(即上述第五ACPI表),并在其中添加正常的性能状态表。如果在之前使OS不负责PM时,对ACPI表进行的更新是对其中的频率可调值进行修改,而并未移除性能状态表,则此处可以将性能状态表中的频率可调值调整为CPU支持的预设频率可调值。如果在之前使OS不负责PM时,对ACPI表进行的更新是对表头进行修改,而并未移除性能状态表,则此处可以将性能状态表的表头调整为正常的频率可调值的表头。对ACPI表进行更新后,将其存储于原存储地址。
下面对上述IMU固件向OS发送ACPI表更新消息的过程进行如下说明。
IMU固件确认与OS之间的Mailbox(邮箱)为空时,写入ACPI表更新消息到Mailbox,同时产生消息中断(Notify Interrupt)反馈到OS。OS收到Notify Interrupt时,或者轮询到Notify Interrupt时,则会处理Mailbox中的ACPI表更新消息,并产生门铃(Doorbell)中断给IMU固件,并清除Notify Interrupt。IMU固件收到OS返回的Doorbell中断后,确认OS的Doorbell中断,并清除Doorbell中断。
另外,在本申请实施例中还提供了一种IUM固件和OS之间发送的通信消息的数据结构,该通信消息即可以为上述ACPI表更新消息,数据结构如下表1所示。
表1
Figure GDA0003823387960000171
在上述数据结构中,Payload中所携带的数据可以如下表2所示。
表2
Bytes Name Description(描述)
1 PM 能耗管理策略
0:Reserved
1:OS PM
2:IMU PM
下面对上述表2进行说明。Payload中的第一个Byte,Byte1处写入1,即代表PM为OSPM,写入2即PM代表PM为IMU PM。
步骤403、在根据上述第一特征消息确定由IMU固件对CPU进行能耗管理后,获取中央处理器CPU当前的性能参数,其中,性能参数包括CPU的功耗、温度和使用率中的一种或多种。
在实施中,IMU固件可以获取CPU的性能参数,如功耗、温度和使用率等。
对于CPU的功耗的获取。
IMU PM开启后,IMU固件可以周期性获取CPU的功耗,例如周期可以为0.5秒。或者,IMU PM开启后,IMU可以不立即获取CPU的功耗,而是由用户自己决定是否需要根据CPU的功耗对CPU进行调频、调压,只有在用户需要根据CPU的功耗对CPU进行调频、调压时,IMU固件才会周期性获取CPU的功耗。在用户需要根据CPU的功耗对CPU进行调频、调压时,用户可以向带外管理系统输入对限制CPU功耗的代码,带外管理系统则可以向IMU固件发送功耗限制指令,其中,该功耗限制指令中可以携带有功耗阈值。IMU接收到该耗限制指令后,实时获取CPU的当前功耗。
对于CPU的温度的获取。
在CPU上可以安装有温度传感器,温度传感器实时监测CPU的温度,IMU固件可以周期性从温度传感器获取到CPU当前的温度,例如,周期可以为0.5秒。或者,可以由温度传感器周期性监测CPU的温度,当温度达到温控阈值后,温度传感器才会向IMU固件发送CPU当前的温度。
对于CPU的使用率的获取。
在CPU的每个核上都可以安装有性能监测单元(performance monitor unit,PMU),PMU用于统计其所在的核处于非空闲状态的时钟数。对于每个统计周期,由PMU统计在该统计周期内其所在的核处于非空闲状态下的时钟数,并发送给IMU固件。IMU固件可以使用非空闲状态下的时钟数除以该统计周期的总时钟数,得到相应的核在该统计周期内的使用率。对于一个时钟域来说,在该时钟域内的所有核的使用率相加,再除以该时钟域内的核的数目,即为该时钟域内的核的平均使用率。对于一个CPU来说,可以只设置有一个时钟域,即所有核处于相同的时钟域内,这种情况下,CPU的使用率即为该时钟域内的核的平均使用率。当然,对于一个CPU来说,也可以设置有多个时钟域,例如,每个核对应一个时钟域,或者每几个核对应一个时钟域,这种情况下,CPU的使用率可以用这些时钟域内的核的平均使用率共同表示。
步骤404、基于性能参数,对CPU进行能耗管理。
在实施中,IMU固件可以根据获取到的不同性能参数,来调节CPU的频率和电压。下面对根据获取到的每种性能参数,调节CPU的频率和电压分别进行说明。
根据CPU的功耗进行调节。
如果上述获取到的CPU当前的功耗大于带外管理系统发送来的功耗阈值,则降低CPU的频率,还可以在降低频率的同时降低CPU的电压。另外,还可以同时降低CPU的IO接口的功率和电压,如果CPU的频率已经调节到最低可调整值,则可以将CPU中各核的一些没有使用的端口关闭。如果CPU的功耗小于功耗阈值的预设倍数,则提升CPU的频率和电压,其中,预设倍数大于0小于1,如0.95。另外,还可以同时提升CPU的IO接口的功率和电压。
根据CPU的温度进行调节。
如果上述获取到的CPU当前的温度大于第一温度阈值,则向带外管理系统发送高温告警消息。带外管理系统接收到高温告警消息后,对CPU进行下电保护,以防止温度过高使CPU受损。如果CPU的温度小于第一温度阈值,大于第二温度阈值,则降低CPU的频率,还可以在降低频率的同时降低CPU的电压。另外,还可以同时降低CPU的IO接口的功率和电压,增大风扇转速,提升散热,如果仍无法使温度有效的降低,还可以调整CPU中各核的电源域状态,将一些处于空闲状态的核的电源域调整为关闭状态,即将这些核关闭,使其不再运行产热。如果CPU的温度小于第三温度阈值,则可以提升CPU的频率,还可以在提升频率的同时提升CPU的电压,其中,第三温度阈值小于第二温度阈值。另外,如果在之前为了降温,将CPU中的一些核的电源调整为关闭状态,则此时可以再将这些核的电源域调整为开启状态,即将这些核重新开启。
根据CPU的使用率进行调节。
在上述获取到每个时钟域内的核的平均使用率后,如果该平均使用率大于第一使用率阈值,则可以提升该时钟域内的核的频率,还可以在提升频率的同时提升其电压。如果该平均使用率小于第二使用率阈值,则降低该时钟域内的核的频率,还可以在降低频率的同时降低其电压,其中,第一使用率阈值小于第二使用率阈值。
此处需要说明的是,上述提升或者降低CPU的频率,均可以通过调整CPU内各核对应的时钟域的锁相环电路(phase locked loop,PLL)来进行调节。在通过PLL来调节CPU的频率时,可以有以下几种模式。
模式一、快升慢降模式,即迅速提升频率,缓慢减低频率,这种模式可以保证CPU的性能。
模式二、慢升快降模式,即缓慢提升频率,快速减低频率,这种模式下可以有效节省CPU功耗。
在一种可能的实现方式中,可以基于CPU的所有性能参数,来综合决定如何对CPU的频率和电压进行调节,相应的,处理可以如下:将性能参数与CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据。将待分类特征数据输入到预先训练的分类器模型中,得到CPU当前的业务分类;基于预先存储的业务分类和配置调整策略之间的对应关系,确定CPU当前的业务分类对应的配置调整策略,其中,配置调整策略中至少包括CPU的待使用频率和待使用电压。将CPU的频率和电压,分别调节为待使用频率和待使用电压。
其中,特征提取模型可以为长短期记忆(long short-term memory,LSTM)自编码器模型、循环神经网络(recurrent neural network,RNN)模型等,分类器模型可以为K最邻近(k-nearest neighbor,KNN)分类模型、多层感知器(multi-layer perception,MLP)分类模型等。
在实施中,技术人员可以预先建立特征提取模型和分类器模型,并对特征提取模型和分类器模型训练。在训练特征提取模型和分类器模型训练时,可以对两个模型同时训练。技术人员可以采集大量服务器中CPU运行时的性能参数和CPU的电压、频率,作为输入样本,即每组输入样本中至少包括有CPU运行时的性能参数和CPU的电压、频率。在获取到输入样本后,可以由人工对这些输入样本进行业务分类,例如,可以分为10个业务类型。每组输入样本对应的业务类型即为输出样本。这样每组输入样本核对应的输出样本,即可以组成一组训练样本。通过使用大量训练样本,对特征提取模型和分类器模型训练进行训练,不断调整特征提取模型和分类器模型的参数,以使其准确性更高,最后,可以得到训练后的特征提取模型和分类器模型。对于每个业务类型,技术人员可以对该业务类型对应的CPU运行时的性能参数和CPU的电压、频率,进行能效评分,将能效评分最高的一组中的CPU的电压、频率作为该业务类型对应的配置调整策略。然后,将每个业务类型与相应的配置调整策略的进行对应存储。这样,该配置调整策略即可以为CPU在相应的业务类型下的待使用频率和待使用电压。
IMU固件可以将周期性获取到的CPU的性能参数和CPU的电压、频率,输入到预先训练的特征提取模型和分类器模型中,得到对应的目标业务类型。然后,查询业务分类和配置调整策略之间的对应关系,得到目标业务类型对应的配置调整策略。在该配置调整策略中包括有CPU待使用频率和待使用电压。再然后,可以将CPU的频率调节为该待使用频率,将CPU的电压调节为待使用电压。
通过本申请实施例所提出的能耗管理的方法,IMU固件可以获取IMU PM执行通知,以开启IMU PM。通过直接获取CPU当前的性能参数,并根据获取到的性能参数对CPU的频率和电压进行调节,达到能耗管理的目的。在这一过程中无需OS获取性能参数,再通知IMU固件进行CPU的频率和电压的调节,减少了交互过程,使得频率和电压的调节更加高效。
本申请实施例还提供了一种能耗管理的设备,如图6所示,该设备可以包括有CPU610和存储器620,在存储器620中存储有启动固件,OS,IMU固件分别对应的多个程序指令,多个程序指令用于被所述CPU读取并执行实现启动固件、OS以及IMU固件的功能。其中,IMU固件可以用于执行能耗管理的方法。
在一种可能的实现方式中,CPU610可以为图2中的CPU,可见在该CPU中包括有IMU核和AP核,为了保证IMU核内的数据安全,可以在IMU核和AP核之间通过系统隔离墙SIW隔离。上述IMU固件的功能可以由该IMU核处理实现。
另外,需要说明的是,IMU固件在执行能耗管理的方法时,与上述各能耗管理的方法实施例中的具体实现方式相同,在此不做赘述。
以上所述仅为本申请一个实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种能耗管理的方法,其特征在于,用于电子设备的能耗管理,所述电子设备包括中央处理器CPU,存储器;所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述启动固件、所述OS以及所述IMU固件的功能,其中,所述能耗管理的方法由所述IMU固件执行,包括:
在操作系统OS运行之前,所述IMU固件获取智能管理单元能耗管理IMU PM执行通知,其中,所述IMU PM执行通知用于IMU PM用于通知所述IMU固件执行能耗管理,所述IMU PM执行通知是由启动固件在所述OS运行之前、确定由所述IMU固件执行能耗管理PM后发送的,所述启动固件还用于在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM;
所述IMU固件在根据所述IMU PM执行通知确定由IMU固件对CPU执行PM后,获取所述CPU当前的性能参数,其中,所述性能参数包括所述CPU的功耗、温度和使用率中的一种或多种;
所述IMU固件基于所述性能参数,对所述CPU进行能耗管理。
2.根据权利要求1所述的方法,其特征在于,所述IMU PM执行通知为IMU PM执行指令,所述获取IMU PM的执行通知包括:
接收所述启动固件发送的所述IMU PM执行指令。
3.根据权利要求1所述的方法,其特征在于,所述IMU PM执行通知为在预设存储地址中的第一预设数据,所述获取IMU PM的执行通知包括:
通过轮询所述预设存储地址,获取所述第一预设数据。
4.根据权利要求2或3中的任一项所述的方法,其特征在于,所述启动固件用于通过如下方法在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM:
创建第一高级配置和电源接口ACPI表,并将所述第一ACPI表上报至OS,其中,所述第一ACPI表中不包括性能状态表,以阻止所述OS执行OS PM,所述性能状态表为性能支持状态PSS表或连续性能控制CPC表。
5.根据权利要求2或3中任一项所述的方法,其特征在于,所述启动固件用于通过如下方法在所述OS运行之前阻止所述OS执行操作系统能耗管理OS PM:
创建第二ACPI表,并将所述第二ACPI表上报至OS,其中,所述第二ACPI表中包括性能状态表,所述第二ACPI表中包括的性能状态表中的频率可调值为相同的预设数值,或者,所述第二ACPI表中包括的性能状态表的表头为范围未定义的值,以阻止所述OS执行OS PM。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述启动固件在所述OS运行之前、确定由所述OS执行PM后时,所述启动固件执行如下操作:
创建第三ACPI表,向所述OS发送所述第三ACPI表,其中,所述第三ACPI中包括性能状态表,所述第三ACPI表中包括的性能状态表中的频率可调值为所述CPU支持的预设频率可调值,以使所述OS执行OS PM;
向所述IMU固件发送IMU PM关闭指令;
所述IMU固件还执行如下操作:
接收所述启动固件发送的所述IMU PM关闭指令,关闭IMU PM。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述启动固件在所述OS运行之前、确定由所述OS执行PM后时,所述启动固件执行如下操作:
创建第三ACPI表,向所述OS发送所述第三ACPI表;
在预设存储地址中写入第二预设数据;
所述IMU固件还执行如下操作:
通过轮询所述预设存储地址,获取所述第二预设数据,关闭IMU PM。
8.根据权利要求1-3中任一项所述的方法,其特征在于,所述启动固件为基本输入输出系统BIOS固件或者统一的可扩展固件接口UEFI固件。
9.根据权利要求1-3中任一项所述的方法,其特征在于,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
将所述性能参数与所述CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据;
将所述待分类特征数据输入到预先训练的分类器模型中,得到目标业务类型;
基于预先存储的业务类型和配置调整策略之间的对应关系,确定所述目标业务类型对应的配置调整策略,其中,所述配置调整策略中至少包括所述CPU的待使用频率和待使用电压;
将所述CPU的频率和电压,分别调节为所述待使用频率和所述待使用电压。
10.一种能耗管理的方法,其特征在于,用于电子设备的能耗管理,所述电子设备包括中央处理器CPU,存储器;所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述固件、所述OS以及所述IMU固件的功能,其中,所述能耗管理方法由所述IMU固件执行,包括:
在所述OS运行过程中,所述IMU固件接收带外管理系统发送的用于通知所述IMU固件执行IMU PM的第一通知消息,其中,所述第一通知消息用于通知所述IMU固件执行能耗管理;
所述IMU固件根据所述第一通知消息与所述OS进行交互,使得所述OS不再负责能耗管理;
所述IMU固件获取所述CPU当前的性能参数,其中,所述性能参数包括所述CPU的功耗、温度和使用率中的一种或多种;
所述IMU固件基于所述性能参数,对所述CPU进行能耗管理。
11.根据权利要求10所述方法,其特征在于,所述根据所述第一通知消息与所述OS进行交互,使得所述OS不再负责能耗管理,包括:
在接收到所述第一通知消息后,如果接收到所述OS发送的第一能耗管理请求,则不根据所述第一能耗管理请求执行能耗管理,并向所述OS返回预设消息,使得所述OS不再负责所述能耗管理。
12.根据权利要求10所述方法,其特征在于,所述根据所述第一通知消息与所述OS进行交互,包括:
在接收到所述第一通知消息后,获取第四高级配置和电源接口ACPI表,对所述第四ACPI表进行更新,得到第四更新ACPI表;
向所述OS发送第四ACPI表更新消息,其中,所述第四ACPI表更新消息用于指示所述OS获取所述第四更新ACPI表,以使所述OS基于所述第四更新ACPI表关闭OS PM。
13.根据权利要求12所述的方法,其特征在于,所述对所述第四ACPI表进行更新,包括:
将所述第四ACPI表中包括的性能状态表移除,其中,所述性能状态表为性能支持状态PSS表或连续性能控制CPC表;
或者,将所述第四ACPI表中包括的性能状态表中的频率可调值调整为相同的预设数值;
或者,将所述第四ACPI表中包括的性能状态表的表头修改为范围未定义的值。
14.根据权利要求10所述的方法,其特征在于,所述IMU固件还执行如下操作:
在操作系统OS运行过程中,接收所述带外管理系统发送的用于通知所述IMU固件开启OS PM的第二通知消息;
如果当前所述OS负责能耗管理,则不再对所述第二通知消息进行处理;
如果当前所述OS不负责能耗管理,则根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理。
15.根据权利要求14所述的方法,其特征在于,所述根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理,包括:
在接收到所述OS发送的第二能耗管理请求后,执行所述第二能耗管理请求。
16.根据权利要求14所述的方法,其特征在于,所述根据所述第二通知消息与所述OS进行交互,使得所述OS负责能耗管理,包括:
获取第五ACPI表,对所述第五ACPI表进行更新,得到第五更新ACPI表;
向所述OS发送第五ACPI表更新消息,其中,所述第五ACPI表更新消息用于指示所述OS获取所述第五更新ACPI表,以使所述OS根据所述第五更新ACPI表开启操作系统能耗管理OSPM。
17.根据权利要求16所述的方法,其特征在于,所述对所述第五ACPI表进行更新,包括:
如果所述第五ACPI表中不包括性能状态表,则在所述第五ACPI表中添加性能状态表;
如果所述第五ACPI表中包括有性能状态表,则将所述第五ACPI表中包括的性能状态表中的频率可调值调整为所述CPU支持的预设频率可调值。
18.根据权利要求10-17中任一项所述的方法,其特征在于,所述基于所述性能参数,对所述CPU进行能耗管理,包括:
将所述性能参数与所述CPU当前的频率和电压输入到预先训练的特征提取模型中,得到待分类特征数据;
将所述待分类特征数据输入到预先训练的分类器模型中,得到目标业务类型;
基于预先存储的业务类型和配置调整策略之间的对应关系,确定所述目标业务类型对应的配置调整策略,其中,所述配置调整策略中至少包括所述CPU的待使用频率和待使用电压;
将所述CPU的频率和电压,分别调节为所述待使用频率和所述待使用电压。
19.一种能耗管理的设备,其特征在于,所述设备包括CPU,存储器,所述存储器中存储有启动固件,操作系统OS以及智能管理单元IMU固件分别对应的多个程序指令,所述多个程序指令用于被所述CPU读取并执行以实现所述启动固件、所述OS以及所述IMU固件的功能;
其中,所述IMU固件,用于执行权利要求1-9或10-18中任一项所述的能耗管理的方法。
20.如权利要求19所述的设备,其特征在于,所述CPU包括IMU核以及业务处理AP核,其中,所述AP核与所述IMU核通过系统隔离墙SIW隔离;
所述IMU固件的功能由所述IMU核处理。
CN201911007882.3A 2019-10-22 2019-10-22 能耗管理的方法和设备 Active CN112698712B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201911007882.3A CN112698712B (zh) 2019-10-22 2019-10-22 能耗管理的方法和设备
EP20878976.8A EP4033332A4 (en) 2019-10-22 2020-10-21 POWER MANAGEMENT METHOD AND DEVICE
PCT/CN2020/122459 WO2021078144A1 (zh) 2019-10-22 2020-10-21 能耗管理的方法和设备
US17/727,686 US20220244772A1 (en) 2019-10-22 2022-04-22 Power management method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911007882.3A CN112698712B (zh) 2019-10-22 2019-10-22 能耗管理的方法和设备

Publications (2)

Publication Number Publication Date
CN112698712A CN112698712A (zh) 2021-04-23
CN112698712B true CN112698712B (zh) 2022-12-06

Family

ID=75504971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911007882.3A Active CN112698712B (zh) 2019-10-22 2019-10-22 能耗管理的方法和设备

Country Status (4)

Country Link
US (1) US20220244772A1 (zh)
EP (1) EP4033332A4 (zh)
CN (1) CN112698712B (zh)
WO (1) WO2021078144A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625861B (zh) * 2021-08-27 2024-04-19 深圳供电局有限公司 一种功耗节约方法及系统
CN115981448A (zh) * 2022-12-23 2023-04-18 摩尔线程智能科技(北京)有限责任公司 Gpu的功耗控制方法、装置、设备、介质和程序产品
CN116301095B (zh) * 2022-12-23 2024-03-19 摩尔线程智能科技(北京)有限责任公司 Gpu的温度控制方法、装置、设备、介质和程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477403A (zh) * 2009-01-22 2009-07-08 浪潮电子信息产业股份有限公司 一种系统功耗自动控制方法
CN103488532A (zh) * 2013-09-02 2014-01-01 华为技术有限公司 一种调整处理器频率的方法和设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089430B2 (en) * 2001-12-21 2006-08-08 Intel Corporation Managing multiple processor performance states
US7032116B2 (en) * 2001-12-21 2006-04-18 Intel Corporation Thermal management for computer systems running legacy or thermal management operating systems
US7577860B2 (en) * 2006-01-09 2009-08-18 Microsoft Corporation Processor specific BIOS interface for power management
CN101093446B (zh) * 2006-06-21 2011-06-22 鸿富锦精密工业(深圳)有限公司 操作系统引导装置、方法及其应用的电脑系统
US8315746B2 (en) * 2008-05-30 2012-11-20 Apple Inc. Thermal management techniques in an electronic device
US9477627B2 (en) * 2012-12-26 2016-10-25 Intel Corporation Interconnect to communicate information uni-directionally
US9575540B1 (en) * 2015-07-31 2017-02-21 Hon Hai Precision Industry Co., Ltd. Power consumption management device, system and method thereof
CN105677000B (zh) * 2016-02-14 2018-10-19 华为技术有限公司 动态电压频率调整的系统及方法
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
CN108803860A (zh) * 2018-06-26 2018-11-13 联想(北京)有限公司 一种功耗调节方法及电子设备
US11307907B2 (en) * 2020-02-03 2022-04-19 Dell Products L.P. Information handling system and method to automatically synchronize operating system and boot firmware languages

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477403A (zh) * 2009-01-22 2009-07-08 浪潮电子信息产业股份有限公司 一种系统功耗自动控制方法
CN103488532A (zh) * 2013-09-02 2014-01-01 华为技术有限公司 一种调整处理器频率的方法和设备

Also Published As

Publication number Publication date
WO2021078144A1 (zh) 2021-04-29
EP4033332A1 (en) 2022-07-27
CN112698712A (zh) 2021-04-23
EP4033332A4 (en) 2022-12-07
US20220244772A1 (en) 2022-08-04

Similar Documents

Publication Publication Date Title
CN112698712B (zh) 能耗管理的方法和设备
US8473768B2 (en) Power control apparatus and method for cluster system
US10146288B2 (en) Adaptive power consumption management in smart devices
US9769756B1 (en) Wake-up quotas and statistics generation
US9648564B1 (en) Wake-up management for mobile devices
US8250382B2 (en) Power control of servers using advanced configuration and power interface (ACPI) states
JP4822165B2 (ja) 大規模データセンターまたはitインフラにおけるエネルギー消費の確定および動的制御方法
US20030023885A1 (en) Automated power management system for a network of computers
US20060041767A1 (en) Methods, devices and computer program products for controlling power supplied to devices coupled to an uninterruptible power supply (UPS)
EP3238403A1 (en) Techniques for power management associated with processing received packets at a network device
US8677160B2 (en) Managing power consumption of a computer
CN111488048B (zh) 一种电源管理方法以及系统
WO2013127151A1 (zh) 功耗封顶的控制方法、设备和系统
CN111694707A (zh) 一种小型服务器集群管理系统及方法
CN101751265B (zh) 服务器的基本输入/输出系统的更新系统及其方法
US20100058088A1 (en) Computer System and Method for Energy-Saving Operation of a Computer System
US10057857B2 (en) System power management and optimization in telecommunication systems
CN114339815A (zh) 用于管理扩展节点的电子设备、方法、介质和装置
CN113360344B (zh) 一种服务器监控方法、装置、设备及计算机可读存储介质
CN104572402B (zh) 一种服务器及实现服务器功耗管理的方法
WO2023273728A1 (zh) 一种供电设备的功率管理方法和装置
CN115407861A (zh) 目标设备供电方法、系统、装置及计算机可读存储介质
CN115004640A (zh) 一种设备功耗管理系统、方法、设备和存储介质
US9639137B2 (en) Control method and electronic device
CN114756104A (zh) 过热处理方法及装置、存储介质

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