《基于软件的功率封顶.pdf》由会员分享,可在线阅读,更多相关《基于软件的功率封顶.pdf(14页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN101965547A43申请公布日20110202CN101965547ACN101965547A21申请号200880127836022申请日20080303G06F1/26200601G06F1/3220060171申请人惠普开发有限公司地址美国德克萨斯州72发明人DJ切普利斯74专利代理机构中国专利代理香港有限公司72001代理人李娜王洪斌54发明名称基于软件的功率封顶57摘要本发明涉及功率消耗,并且具体来说涉及管理和控制计算机系统中的功率消耗的装置、方法和计算机可读介质。具体来说,本发明通过控制由处理器执行的线程的类型来管理功率消耗。本发明监控系统的资源来确定该系统的。
2、功率消耗。如果功率消耗大高,则本发明发出更多的低功率线程来由处理器执行。85PCT申请进入国家阶段日2010090386PCT申请的申请数据PCT/US2008/0556642008030387PCT申请的公布数据WO2009/110884EN2009091151INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图5页CN101965548A1/2页21一种用于控制功率使用的装置,包括一个或多个计算机,所述一个或多个计算机中包括以下部件或者如果多于一个计算机的话则在它们当中包括以下部件软件监控部件,其在操作中监控与该装置中的功率使用有关的一个或多个变量;起动部。
3、件,其在与功率使用有关的一个或多个变量的值超过该变量的阈值的情况下基于从软件监控部件发出的指令来起动至少一个低功率线程。2根据权利要求1所述的装置,其中在管理程序之上运行软件监控部件。3根据权利要求1所述的装置,其中所起动的低功率线程的数目与功率利用阈值有关。4根据权利要求4所述的装置,其中所述功率利用阈值由软件的用户设置。5根据权利要求1所述的装置,其中所起动的低功率线程的数目由PID回路确定。6根据权利要求1所述的装置,其中软件监控部件的用户激活起动部件以起动一个或多个低功率线程。7一种用于控制计算机系统中的功率使用的方法,包括电子地监控与该系统中的功率使用有关的一个或多个变量;在与功率使。
4、用有关的一个或多个变量的值超过该变量的阈值的情况下基于从该计算机系统上的软件发出的指令来电子地起动至少一个低功率线程。8根据权利要求7所述的方法,其中在管理程序之上运行所述软件。9根据权利要求7所述的方法,其中所起动的低功率线程的数目与功率利用阈值有关。10根据权利要求9所述的方法,其中所述功率利用阈值由该软件的用户设置。11根据权利要求7所述的方法,其中所起动的低功率线程的数目由PID回路确定。12根据权利要求7所述的方法,其中所述软件的用户起动一个或多个低功率线程。13一种计算机可读介质,其上安装有计算机可读代码,当被执行时,所述计算机可读代码执行一种用于控制计算机系统中的功率使用的方法,。
5、该方法包括下述步骤监控与该系统中的功率使用有关的一个或多个变量;在与功率使用有关的一个或多个变量的值超过该变量的阈值的情况下基于从该系统上的软件发出的指令来起动至少一个低功率线程。14根据权利要求13所述的计算机可读介质,其中在管理程序之上运行所述软件。15根据权利要求1所述的计算机可读介质,其中所起动的低功率线程的数目与功率利用阈值有关。16根据权利要求1所述的计算机可读介质,其中所起动的低功率线程的数目由PID回路确定。17根据权利要求1所述的计算机可读介质,其中所述软件的用户起动一个或多个低功率线程。18一种用于控制功率使用的装置,其包括用于监控与系统中的功率使用有关的一个或多个变量的组。
6、件;以及用于在与功率使用有关的一个或多个变量的值超过该变量的阈值的情况下基于从该系统上的软件发出的指令来起动至少一个低功率线程的组件。权利要求书CN101965547ACN101965548A2/2页319一种用于控制功率使用的装置,包括软件监控部件,其在操作中基于标准来动态确定功率利用阈值;以及起动部件,其在该功率利用阈值被超过的情况下基于从该软件监控部件发出的指令来起动至少一个低功率线程。20一种用于控制功率使用的装置,包括用户输入部件,其中用户发出至少一个指令来起动至少一个低功率线程;以及起动部件,其基于从该用户输入部件发出的指令来起动至少一个低功率线程。权利要求书CN101965547。
7、ACN101965548A1/6页4基于软件的功率封顶技术领域0001本发明涉及功率消耗,并且具体来说涉及管理和控制计算机系统中的功率消耗的装置、方法和计算机可读介质。背景技术0002期望有效地管理计算机系统和数据中心中的功率消耗和热量生成。发明内容0003本发明的第一实施例涉及一种用于控制功率使用POWERUSAGE的装置,所述装置包括一个或多个计算机,所述一个或多个计算机中THEREIN包括以下部件或者如果多于一个计算机的话在它们当中AMONGTHEM包括以下部件软件监控部件,其在操作中监控与该装置中的功率使用有关的一个或多个变量;以及起动部件,其在与功率使用有关的一个或多个变量的值超过该。
8、变量的阈值的情况下基于从软件监控部件发出的指令来起动至少一个低功率线程。0004本发明的第二实施例涉及一种用于控制计算机系统中的功率使用的方法,其包括下述步骤电子地监控与该系统中的功率使用有关的一个或多个变量;以及在与功率使用有关的一个或多个变量的值超过该变量的阈值的情况下基于从该计算机系统上的软件发出的指令来电子地起动至少一个低功率线程。0005本发明的第三实施例涉及一种计算机可读介质,其上安装有计算机可读代码,当被执行时,所述计算机可读代码执行一种用于控制计算机系统中的功率使用的方法,该方法包括下述步骤监控与该系统中的功率使用有关的一个或多个变量,以及在与功率使用有关的一个或多个变量的值超。
9、过该变量的阈值的情况下基于从该系统上的软件发出的指令来起动至少一个低功率线程。0006本发明的第四实施例涉及一种用于控制功率使用的装置,其包括用于监控与该系统中的功率使用有关的一个或多个变量的组件,以及用于在与功率使用有关的一个或多个变量的值超过该变量的阈值的情况下基于从该系统上的软件发出的指令来起动至少一个低功率线程的组件。0007本发明的第五实施例涉及一种用于控制功率使用的装置,其包括软件监控部件,其在操作中基于标准来动态确定功率利用POWERUTILIZATION阈值;以及起动部件,其在该功率利用阈值被超过的情况下基于从该软件监控部件发出的指令来起动至少一个低功率线程。0008本发明的第。
10、六实施例涉及一种用于控制功率使用的装置,其包括用户输入部件,其中用户发出至少一个指令来起动至少一个低功率线程;以及起动部件,其基于从该用户输入部件发出的指令来起动至少一个低功率线程。说明书CN101965547ACN101965548A2/6页5附图说明0009根据下文给出的详细描述以及本发明优选实施例的附图将会更完全地理解本发明,但是本发明的优选实施例不应该看作是限制本发明,而是仅用于解释和理解。0010图1是计算机系统的示意图。0011图2是描绘由CPU执行的工作负载线程和低功率线程之间的关系的示意图。0012图3是描绘PID回路的流程图。0013图4是描绘本发明的一个实施例的示意图。00。
11、14图5是描绘本发明的一个实施例的流程图。具体实施方式0015图1描绘了计算机系统。该系统控制其通过中央处理单元CPU对程序的处理和执行。CPU由其时钟速度限制,所述时钟速度确定处理器每秒可以执行多少指令。由此,CPU具有其能执行的线程或指令的特定容量。在计算机上运行的每个进程包含至少一个线程,并且可以包含多个线程。当在该CPU上运行多个线程时,CPU容量被填充,并且该系统中的功率消耗增加。如果没有运行来自操作系统的进程的线程,则低功率线程在剩余的时钟时间运行。下面将讨论低功率线程以及它们的影响的示例。0016图2描绘由CPU执行的工作负载线程和低功率线程之间的关系。CPU的部分2A表示由CP。
12、U执行的工作负载线程2A的示例性量。工作负载线程2A被执行以运行操作系统的进程或应用。CPU的部分2B表示由CPU在没有用来执行工作负载线程的时钟时间上执行的低功率线程的示例性量。箭头2C表明由CPU执行的工作负载线程的量与由处理器执行的低功率线程的量反相关。当执行较多的工作负载线程时,执行较少的低功率线程。相反,如果执行较多的低功率线程,则执行较少的工作负载线程。0017执行工作负载线程通常比执行较低功率线程例如HALT停止指令需要更多的系统资源。本发明通过控制由处理器执行的线程的类型来管理功率消耗。具体来说,本发明监控系统的资源以确定该系统的功率消耗。下面将描述功率消耗监控的示例。如果功率。
13、消耗太高,则本发明发出更多的低功率线程来由处理器执行。0018在一个实施例中,所执行的低功率线程是C1EHALT指令。处理器具有各种状态。处于状态C0的处理器是处于活动状态。处于状态C1的处理器是处于休眠状态。C1E表示具有比C1状态更低的功率消耗的增强的休眠状态。因此,发出C1EHALT指令使得处理器处于低功率休眠模式长达时钟周期或时钟周期的一部分。然而,应该注意,每个处理器可以潜在地利用不同的指令集架构,并且因此每个处理器具有被利用的不同低功率指令。本发明将利用C1EHALT指令作为示例性低功率线程的部分;然而,这决不是限制,并且可以利用任何低功率线程。例如,可以利用常规HALT线程。此外。
14、,本发明可以利用多于一种类型的低功率线程。决不应该将本发明所利用的低功率线程的类型和组合看作是限制本发明。0019在一个实施例中,在系统的功率消耗超过功率利用阈值的情况下,本发明将发出更多的低功率线程。功率利用阈值可以表示在采取管理功率消耗的行动之前系统可以消耗的功率量的上限。还可以以许多不同的形式来表示功率利用阈值。例如,阈值可以以瓦特、所发出的低功率线程的数目、执行低功率线程的CPU的百分比仅列举几个例子来指定。功率利用阈值的形式不限制本发明。说明书CN101965547ACN101965548A3/6页60020在一个实施例中,功率利用阈值是预先设置的。在另一个实施例中,功率利用阈值可以。
15、由本发明的用户来设置。在另一个实施例中,功率利用阈值可以通过从系统资源获得数据来动态确定。例如,如果系统开始过热,则在那时由处理器正执行的工作负载线程的数目可以被设置成功率利用阈值。在另一个实施例中,如果功率消耗超过功率利用阈值,则将通知系统的用户、系统管理员或其他被授权的人。该通知可以通过记录事件、通过向管理员或用户发送电子邮件、通过使系统发出特定警报或噪声、或者通过任何其他通知方法来发生。通知的方法不限制本发明。0021在一个实施例中,本发明被实施为在系统处理器上运行的软件。该软件从系统资源获得测量以确定该系统是否正消耗太多的功率。优选地,该软件读取系统中的功率计以获得功率消耗信息。在一个。
16、实施例中,如果系统的功率消耗超过功率利用阈值,则软件将启动更多的低功率线程。在另一个实施例中,如果系统的功率消耗低于功率利用阈值,则软件将取消KILL更多的低功率线程。在一个实施例中,如果系统没有包含测量功率消耗的资源例如功率计,则本发明最初可以发出特定或标准数目的低功率线程,并且监控其对系统的影响例如,当发出数目X的线程时是否出现了热事件。本发明可以连续监控系统并且在必要时改变所发出的低功率线程的数目。所发出的线程的初始数目可以是预先设置的量例如CPU容量的10、10个低功率线程等等,或者可以由系统的用户、系统管理员或另一个被授权的用户来设置。最初选择的线程量不限制本发明;相反,可以利用任何。
17、量。0022在一个实施例中,将在PID控制回路算法上建模该软件。因此,在一定时间段内系统消耗的平均功率将被维持在所规定的等级或低于所规定的等级。图3描绘了示出使用比例积分微分PID回路的本发明的一个实施例的流程图。PID回路是连续获得输入测量并且通过相应地计算并输出调整进程的结果来试图校正所测量的变量和期望阈值之间的误差的控制回路反馈机制。PID回路输入系统的功率消耗测量,和功率利用阈值步骤301。PID通过使用三个参数比例、积分和微分值来计算要运行的低功率线程的量。比例值确定系统对该系统的实际功率消耗和功率利用阈值之间的当前差值的反应步骤302。积分值基于实际功率消耗和功率利用阈值之间的最近。
18、差值之和确定系统的反应步骤303。微分值确定对低功率线程数目已改变的速率的反应步骤304。这三个值的加权和被用来调整所执行的低功率线程的数目步骤305。0023在另一个实施例中,软件部件将针对当前系统硬件配置因为它与功率有关估计线程容量和最佳最大线程数目,并且将相应地设置功率利用阈值。通过利用系统资源来确定功率利用阈值,由处理器执行的工作负载线程的数目将不会超过功率容量。在该实施例中,可以通过分析由处理器执行的工作负载线程的数目和其对系统资源的影响之间的关系来动态设置功率利用阈值。在该实施例中,功率利用阈值还可以被约束成仅由系统管理员或其他被授权的人来设置或改变。0024在另一个实施例中,软件。
19、可以提供用户可以通过其来查看并管理功率消耗的实用程序UTILITY。在该实施例中,用户可以设置或改变功率利用阈值。例如,用户可以指定系统不应该消耗多于300瓦特的功率。用户还可以指定,例如处理器执行的25的线程应该是低功率线程。在该实施例中,可以利用各种各样的利用阈值,从而允许系统性能方面的更大灵活性。例如,用户可以临时设置利用阈值使得系统接近容量运行,因为用户想要在短的时间段内运行功率密集程序,并且然后随后在功率密集程序已完成之后降低阈值。在另说明书CN101965547ACN101965548A4/6页7一个实施例中,用户还可以指定是否改变处理器当前执行的低功率线程的数目。在一个实施例中,。
20、用户可以在通过实用程序监控系统的功率消耗之后增加由处理器执行的低功率线程的数目。0025在另一个实施例中,如果系统检测到即将发生将导致系统的意外停机的热事件,则功率利用阈值可以被自动降低以防止热事件。功率利用阈值可以被减小设置的量,可以被减小特定的百分比例如25,或者可以以许多不同方式来改变。确定使功率利用阈值降低多少决不是限制本发明。此外,在该实施例中,本发明可以维持功率利用阈值,但是软件可以改为发出更多的低功率线程以立即影响正由处理器用来执行工作负载线程的系统资源。0026在一个实施例中,本发明的软件在系统上运行,并且仅管理该特定系统的功率消耗。在另一个实施例中,本发明的软件在数据中心中的。
21、系统上运行,其中数据中心的每个系统运行该软件以管理它们自己的功率消耗。0027在另一个实施例中,本发明的软件在服务器上运行,并且管理多个计算机系统的功率消耗。例如,服务器可以位于数据中心中,并且软件可以管理该数据中心中所有系统的功率消耗。在该实施例中,对于该数据中心中的所有系统该软件可以利用相同的功率利用阈值。在该实施例中,对于该数据中心中的每个特定系统或者对于该数据中心中的特定系统组,该软件可以利用不同的功率利用阈值。功率利用阈值可以仍通过上述所有方法来设置。此外,软件的用户或系统管理员或任何其他被授权的人可以描述对于什么范围的系统要使用什么样的功率利用。软件的用户例如可以描述一个特定功率利。
22、用阈值被用于数据中心中执行特定功能或者处于特定IP范围内的所有系统。每个系统具有与其相关联的IP地址。仅那些具有落入所选择的IP范围内的IP地址的系统将利用特定功率利用阈值。所述范围可以是窄的,或者可以包括大量系统,或者甚至所有系统。用于确定为系统或系统组设置的功率利用阈值的不同特性不限制本发明;相反,潜在地可以利用各种各样的特性或方法。0028图4描绘本发明的另一个实施例,其中计算机系统400包含本发明的功率管理软件。具体来说,该系统包括用于监控与功率使用有关的变量例如但不限于功率和温度的软件监控部件401。根据变量的值与这些变量的阈值的比较,软件监控部件可以潜在地发出指令来起动由处理器执行。
23、的低功率线程。该系统还将包括起动部件402,其将在从该软件部件接收到指令后起动低功率线程。因此,系统将根据本发明来管理其功率消耗。在一个实施例中,所监控的变量是功率,并且可以潜在地以上述方式之一来设置功率利用阈值。在另一个实施例中,PID回路可以是软件部件的一部分以确定是否起动低功率线程。在另一个实施例中,系统的用户可以起动低功率线程,如上所述。0029图5描绘根据本发明的另一个实施例,其中一种方法用于控制系统中的功率使用。具体来说,可以监控与系统中的功率使用有关的变量步骤501。这些变量可以包括但不限于功率和温度。如果变量中的一个或多个的值超过该变量的阈值,则可以基于从该系统上的软件发出的指。
24、令来起动低功率线程步骤502。在一个实施例中,所监控的变量是功率,并且可以潜在地以上述方式之一来设置功率利用阈值。在另一个实施例中,PID回路可以用来确定要起动的低功率线程的数目。在另一个实施例中,系统的用户可以起动低功率线程,如上所述。0030本发明的软件可以以若干不同方式来实施。软件的实施方式不限制本发明。说明书CN101965547ACN101965548A5/6页80031在一个实施例中,将该软件作为计算机可读代码安装在计算机可读介质上,当被执行时,所述计算机可读代码实行本文所述的本发明的功能。0032在一个实施例中,该软件由用户、系统管理员或另一个被授权的人安装在系统上。该软件通过驱。
25、动器与系统进行通信,并且通过该驱动器获得功率消耗读数。然后该软件基于功率消耗读数以及一般而言基于系统的状态来如上所述地运行。0033在另一个实施例中,作为操作系统内核的一部分预先加载并安装软件。该软件利用ACPI描述表来通过功率计访问功率消耗读数。ACPI是用来降低系统中的功率消耗的高级配置和电源接口规范。它通常与系统中的硬件一起使用。ACPI表提供可以被本发明用来如本文详述的那样管理系统中的功率消耗的关于功率消耗的硬件信息。0034在另一个实施例中,该软件被安装或预先加载在操作系统上,所述操作系统加载于管理程序HYPERVISOR之上。管理程序是允许在一个处理器上运行多于一个操作系统的虚拟机。
26、。具体来说,管理程序管理系统资源例如处理器和存储器以分配每个虚拟操作系统运行所需的系统资源。管理程序可以被引导,其然后引导一个或多个操作系统内核。管理程序可以根据该软件是否被预先加载到操作系统中来利用驱动器或ACPI表来获得功率消耗信息。在该实施例中,对于管理程序支持的每个操作系统,该管理程序可以利用不同的功率利用阈值。在该实施例中,管理程序可以支持仅运行低功率线程的一个操作系统。通过支持仅运行低功率线程的操作系统,管理程序将保证由CPU执行特定量或百分比的低功率线程。为该低功率线程操作系统虚拟化的系统资源可以不被其他操作系统应用或内核应用所影响。因此,通过仅运行低功率线程,低功率操作系统保证。
27、一定比例的全体系统资源仅用于运行低功率线程。0035在一个实施例中,该软件被用户、系统管理员或另一个被授权的人安装在系统上。该软件包括用户输入部件,用户可以通过该用户输入部件发出指令来起动低功率线程。在一个实施例中,用户输入部件可以潜在地利用软件实用程序来查看功率消耗如上所述以使得用户能够确定要起动多少低功率线程。在另一个实施例中,用户可以利用不同手段来监控功率消耗,或者可以任意设置要起动的低功率线程的数目。系统中的起动部件将基于由用户输入部件从用户接收的指令来起动低功率线程。0036用于实施本发明的整个系统或方法或部分的示例性系统可能包括传统计算机形式的通用计算设备,包括处理单元、系统存储器。
28、和将包括系统存储器的各种系统部件耦合到处理单元的系统总线。该系统存储器可以包括只读存储器ROM和随机存取存储器RAM。该计算机还可以包括用于从磁性硬盘读取并写入到该磁性硬盘的磁性硬盘驱动器,用于从可移动磁盘读取或写入到该可移动磁盘的磁盘驱动器,以及用于从可移动光盘例如CDROM或其他光学介质读取或写入到该可移动光盘的光盘驱动器。驱动器以及它们相关联的计算机可读介质为该计算机提供计算机可执行指令、数据结构、程序模块和其他数据的非易失性存储。0037可以利用各种编程技术来实现本发明的软件和WEB实施方式,其中基于规则的逻辑和其他逻辑用来实现各种数据库搜索步骤、相关步骤、比较步骤和判决步骤。还应该指。
29、出,本文以及权利要求中所使用的词语“部件”意图包括使用一行或多行软件代码的实施方式、和/或硬件实施方式、和/或接收手动输入的设备。0038为了说明和描述目的已给出本发明实施例的前述描述。它不打算是穷举的或将本说明书CN101965547ACN101965548A6/6页9发明限制成所公开的精确形式,并且鉴于上述教导修改和变化是可能的,或者可以从本发明的实践中获得。为了解释本发明的原理以及其实际应用而选择并描述实施例,以使得本领域技术人员能够利用各种实施例中的以及具有适合于所预期的特定使用的各种修改的本发明。说明书CN101965547ACN101965548A1/5页10图1说明书附图CN101965547ACN101965548A2/5页11图2说明书附图CN101965547ACN101965548A3/5页12图3说明书附图CN101965547ACN101965548A4/5页13图4说明书附图CN101965547ACN101965548A5/5页14图5说明书附图CN101965547A。