CN103270470B - 多核系统能耗优化 - Google Patents
多核系统能耗优化 Download PDFInfo
- Publication number
- CN103270470B CN103270470B CN201180062034.8A CN201180062034A CN103270470B CN 103270470 B CN103270470 B CN 103270470B CN 201180062034 A CN201180062034 A CN 201180062034A CN 103270470 B CN103270470 B CN 103270470B
- Authority
- CN
- China
- Prior art keywords
- energy
- system component
- instruction
- cpu
- utilization factor
- 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.)
- Expired - Fee Related
Links
- 238000005457 optimization Methods 0.000 title description 5
- 238000005265 energy consumption Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 49
- 230000015654 memory Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000007726 management method Methods 0.000 description 83
- 238000004891 communication Methods 0.000 description 31
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 8
- 238000000429 assembly Methods 0.000 description 7
- 230000000712 assembly Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
-
- 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/3243—Power saving in microcontroller unit
-
- 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
本文所描述的技术一般涉及优化计算机系统中的能耗。在一些示例中,可以通过在系统组件的一系列能量设置和利用率下测量系统组件的性能级别和能量使用量来确定计算机系统的系统组件的能量使用量基准。可基于预测因素来确定系统组件的利用率,所述预测因素包括计算机系统上的第一指令集的执行。系统组件可被配置为:通过从所述一系列能量设置中选择用于操作所述系统组件的能量设置,在第一指令集之后执行第二指令集。该能量设置可以基于该能量使用量基准和所确定的利用率来选择。
Description
背景技术
除非本文中另行指出,否则在本节中描述的方案并非本申请的权利要求的现有技术,且不因为其被本节包括而被承认为现有技术。
多核微处理器计算机系统常常比单核微处理器计算机系统提供更好的性能。然而,与单核微处理器计算机系统相比,多核微处理器计算机系统使用更多的能量并产生更多的热量。随着其他系统组件(如图形卡和硬盘驱动器)在性能上得到改善,它们也使用更多的能量并产生更多的热量。因此,需要这样的装置和方法,其在保持多核微处理器计算机系统的性能的同时降低了能耗。
发明内容
本文所描述的技术一般涉及优化计算机系统中的能耗。在一些示例中,可以通过在系统组件的一系列能量设置和利用率下测量系统组件的性能级别和能量使用量来确定针对计算机系统的系统组件的能量使用量基准。可基于预测因素来确定系统组件的利用率,所述预测因素包括计算机系统上的第一指令集的执行。系统组件可被配置为:通过从所述一系列能量设置中选择用于操作所述系统组件的能量设置,在第一指令集之后执行第二指令集。该能量设置可以基于能量使用量基准和所确定的利用率来选择。
在本公开的一个或多个实施例中,描述了一种用于优化计算机系统中的能耗的方法,所述方法可以包括:通过在系统组件的一系列能量设置和利用率下测量系统组件的性能级别和能量使用量来确立针对计算机系统的系统组件的能量使用量基准。该方法还包括:基于在计算机系统上的第一指令集的执行来确定系统组件的利用率,以及配置所述系统组件用于通过从所述一系列能量设置中选择用于操作所述系统组件的能量设置,在第一指令集之后执行第二指令集。该能量设置可以基于能量使用量基准和所确定的利用率来选择。在本公开的一个或多个实施例中,该方法可以使用虚拟机监视器来实现,所述虚拟机监视器被配置为在计算机系统上容宿(host)不同的操作系统。
在本公开的一个或多个实施例中,描述了一种优化计算机系统中的能耗的方法,所述方法可以包括:基于指令的执行来确定计算机系统的CPU上的指令负荷;以及,当CPU上的指令负荷超过CPU负荷阈值时,确定在指令执行期间所述CPU使用的高速缓存的高速缓存未命中率(cache-missrate)。所述方法还可以包括:当确定所述高速缓存未命中率大于高速缓存未命中率阈值时,降低所述CPU的时钟速率。
以上发明内容仅仅是说明性的,而绝不是限制性的。除了上述示例性的各方案、各实施例和各特征之外,参照附图和以下详细说明,将清楚其他方案、其他实施例和其他特征。
附图说明
根据以下说明和所附权利要求,结合附图,本公开的前述和其他特征将更加清楚。在认识到这些附图仅仅示出了根据本公开的一些示例且因此不应被认为是限制本公开范围的前提下,通过使用附图以额外的特征和细节来详细描述本公开。
附图中:
图1示出了说明性多核计算机系统的框图;
图2A示出了用于监视各个系统组件的能量使用量的说明性示图;
图2B示出了说明性能量使用量基准;
图3示出了用于优化计算机系统中的系统组件的能耗的说明性方法的流程图;
图4示出了用于基于CPU指令负荷和高速缓存未命中来优化计算机系统中的CPU的能耗的说明性方法的流程图;
图5示出了用于实现优化能耗的方法的说明性计算机程序产品;以及
图6示出了说明性计算机设备的框图;
全部附图根据本公开的至少一些实施例而布置。
具体实施方式
在以下详细说明中,参考了作为详细说明的一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。具体实施方式部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方案可以按照在此明确公开的多种不同配置来设置、替换、组合、和设计。
本公开涉及通常与优化多核计算机系统中的能耗有关的方法、装置、计算机程序和系统等。
本公开的一些实施例一般涉及用于多核计算机系统的分层操作系统(OS)架构。虚拟机监视器(VMM)可以支持计算机系统上的多个操作系统。在本公开的一个或多个实施例中,VMM可以限制OS的可用物理资源。例如,VMM可被配置为使每个OS运行在一个具有其自己的本地主存储器的中央处理单元(CPU)上,以及该VMM可以将物理上靠近该CPU的其他系统组件分配给该OS。在本公开的一个或多个实施例中,VMM可适合于实现针对计算机系统中的提供给该OS的CPU以及其他系统组件的能耗的统一模型。该统一模型可以涉及VMM构建针对每个系统组件的能量使用量基准,然后根据操作条件和能量使用量基准来调整系统组件。
在本公开的全文中,“能量使用量基准”可以泛指由系统组件的与其能量设置和/或利用率相关联的能量使用量和/或性能级别表示的基准。例如,系统组件的能量使用量基准可以通过下述方式来获得:在各种能量设置和利用率下操作系统组件,以及在这些操作期间收集系统组件的能量使用量和/或性能级别。之后,能量使用量基准可被用于调整系统组件的能量设置,以在保持可接受的性能的同时达到最优的能耗。
在本公开的全文中,术语系统组件的“能量设置”可以泛指可以影响系统组件的性能和/或能耗的系统组件配置。系统组件的能量设置可以在实时操作期间通过硬件或软件装置进行调整。例如,CPU的时钟速率可以具有这样的能量设置:其在运行时间期间可被调整为较快或较慢。配置为以较快的时钟速率运行的CPU与配置为以较慢的时钟速率运行的相同CPU比,可能表现得更好并且消耗更多的能量。
在本公开的一个或多个实施例中,VMM可被配置为:为了节省能量,优于OS原先分配的系统组件而选择另一系统组件以执行一个或多个调度指令。在一些示例中,该其他系统组件可以是在物理上比原先分配的系统组件更靠近运行该OS的CPU。在一些其他示例中,其他系统组件可以是在物理上离该CPU更远,但是目前是空闲的,而原先分配的系统组件处于繁忙状态并且等待它变得可用可能会花费更多的能量。
在本公开的一个或多个实施例中,VMM可被配置为根据其指令负荷和高速缓存未命中率来调整CPU的时钟速率,以节省能量。例如,该VMM可适合于当指令负荷和高速缓存未命中率都高于某个阈值级别时降低CPU的时钟速率。
图1示出了根据本公开的一个或多个实施例的说明性多核计算机系统100的框图。计算机系统100可包括:系统组件,如CPU101、102、103;主存储器104、105、106;以及输入/输出(I/O)设备107。CPU101、102和103中的一个或多个CPU可以是多核处理器。计算机系统100可以具有非统一的存储器架构,使得主存储器104、105和106分别在CPU101、102和103的本地。I/O设备107可以包括:一个或多个图形卡108,一个或多个硬盘驱动器109,和/或一个或多个网卡110。计算机系统100可包含图1中未示出的附加的系统组件,如系统总线、光盘播放器(CDROM或DVD)、或者一些其他种类的系统组件。在一个或多个实施例中,可在不同的能量设置下配置的系统组件可以是用于优化能耗的统一模型的主题。
VMM130可被配置为允许在虚拟机131、132和133之间共享系统组件,虚拟机131、132和133分别可以运行自己的操作系统134、135、136和应用程序137、138和139。VMM130可适合于根据计算机系统100的拓扑来限制操作系统134、135和136可用的物理资源。在本公开的一个或多个实施例中,VMM130可被配置为使每个OS运行在一个具有其自己的主存储器的CPU上。例如,VMM130可被配置为:在具有主存储器104的CPU101上运行OS134,由具有主存储器105的CPU102执行OS135,由具有主存储器106的CPU103执行OS136。通过将每个OS限制到一个具有其自己的主存储器的CPU,VMM130可以节约否则将耗费在访问在另一CPU本地的主存储器或者在CPU之间共享的主存储器上的能量。在本公开的一个或多个实施例中,VMM130可以使得:对于每个OS而言,在物理上靠近分配给该OS的CPU的其它系统组件对于该OS是可用的。例如,VMM130可以呈现物理上靠近该OS的CPU的一个硬盘驱动器109,尽管在计算机系统100中存在多个硬盘驱动器109。通过选择性地限制每个OS可用的系统组件,VMM130可以适合于节约否则将耗费在访问在物理上与执行该OS的CPU远离的系统组件上的能量。
VMM130可以包括多个模块,所述模块被配置为管理和支持对物理机器的仿真以及优化计算机系统100的能耗。VMM130可以包括一个或多个通信管理模块140、存储器管理模块150和/或能量管理模块160。能量管理模块160可以包括能量控制器161、设备状态收集器162和/或OS状态收集器163中的一个或多个。
通信管理模块40可以适合于提供对VMM130的各个模块的访问,以及提供对VMM130所控制和管理的物理系统组件的访问。通信管理模块140可以适合于在以下各项中的一个或多个之间复制和同步数据:CPU101、102、103,主存储器104、105、106和/或硬盘驱动器109。
存储器管理模块150可被配置为用于访问计算机系统100的主存储器104、105和106的统一接口。存储器管理模块150可以包括用于针对VMM130的存储器映射、访问控制和/或缓存的设备。
在本公开的一个或多个实施例中,能量管理模块160可以适合于促进各种能耗优化,以便提高计算机系统100的能效,同时最大限度地减少性能退化。为了实现这一点,能量管理模块160可以首先针对每个系统组件确立能量使用量基准。在运行时间期间,能量管理模块160可被配置为监视每个系统组件的利用率,并且基于能量使用量基准和利用率来调整系统组件的能量设置。
在本公开的一个或多个实施例中,系统组件的能量使用量基准可以通过在一个或多个基准程序的执行期间评估系统组件的性能级别和能量使用量来确立。可以由设备状态收集器162来监视和收集特定系统组件的能量使用量。具体地,系统组件可以包括用于监视和收集系统组件的能量使用量数据的软件或硬件。设备状态收集器162可以在基准程序的执行期间定期地或连续地调用这些装置。所收集的能量使用量数据可以按测量单位(如瓦特)来表示。
执行基准程序的系统组件的性能级别可以根据各种因素来确定。在本公开的一个或多个实施例中,该性能级别可以通过评估系统组件执行基准程序的指令所花费的时间来确定。该执行时间可被保存,作为与系统组件的能量使用量基准相关联的历史数据。随后,可以设置阈值以确定系统组件在执行时间方面是具有良好、一般还是差的性能。例如,对于可导致操作在50MHz的时钟速率下的CPU的利用率在25-50%的指令,当指令的完成执行时间小于第一阈值时间段时,CPU的性能可被视为“良好”。对于可导致操作在50MHz的时钟速率下的CPU的利用率在50-75%的指令,当指令的完成执行时间大于第一阈值时间段但小于第二阈值时间段时,性能可被视为“一般”。对于可导致操作在50MHz的时钟速率下的CPU的利用率大于75%的指令,当指令的完成执行时间大于第二阈值时间段时,CPU的性能可被确定为“差”。
在本公开的一个或多个实施例中,OS状态收集器163可被配置用于确定在操作期间特定系统组件的利用率。VMM130可适合于执行源白应用进程和/或操作系统命令的指令。每个指令可以具有动作和目的地地址。可选地,一些指令还可以具有相应的源地址。通过评估指令的动作和地址,OS状态收集器163可以评估指令的主要目的和可能会主要涉及的具体系统组件。例如,尽管CPU可能参与执行指令,但是通过评估动作和地址,OS状态收集器63可以能够确定该指令的主要目的是要访问主存储器、访问硬盘驱动器、执行网络通信、或渲染图形图像。作为结果,OS状态收集器163可以能够识别主要利用该系统组件的指令,并且作为在计算机系统100上执行的总指令的百分比,确定系统组件利用率。
在一些实施例中,当指令读或写被OS映射到视频卡的地址时,则OS状态收集器163可以确定指令的目的是与视频/图形处理相关的。当指令的目的不明显时,OS状态收集器163仍可以分配指令的估计目的。例如,当指令将两个数相乘在一起时,如果这两个数是从存储器加载的,则该指令可能具有存储器访问目的。如果这两个数是从寄存器加载的,则该指令可能是涉及CPU的纯计算指令。
在本公开的一个或多个实施例中,能量控制器161可以适合于调节每个系统组件的能量设置。系统组件可包括这样的硬件或软件,所述硬件或软件有效地调整相关联的能量设置,以控制系统组件的性能级别和能量使用量。例如,可以有效地增大或减小与CPU和/或系统总线相关联的时钟速率,可选择性地激活或停用主存储器,可以有效地增大或减小硬盘驱动器的转速,以及可以有效地增大或减小网卡的数据传输速率。
在本公开的一个或多个实施例中,能量控制器161可被有效地配置为经由通信管理模块140调整每个系统组件的能量设置。例如,能量控制器161可以适合于与通信管理模块140进行交互以获取该系统组件的能量设置。通信管理模块140可以适合于允许能量控制器161配置系统组件,包括调整其能量设置。在本公开的一个或多个实施例中,设备状态收集器162可被配置为经由通信管理模块140收集每个系统组件的能量使用量。
在本公开的一个或多个实施例中,能量管理模块160可被有效地配置为:在调整系统组件的能量设置后,收集每个系统元件的性能级别和能量使用量。能量管理模块可以按需地、周期性地、或者连续地或基本上连续地收集每个系统组件的性能级别和能量使用量。所收集的性能级别和能量使用量可被用作反馈,以进一步细调能量使用量基准。下文将进一步描述上述实施例的细节。
图2A示出了根据本公开的一个或多个实施例的、用于监测计算机系统100中的各个系统组件的能量使用量的说明性示图210。在图210中捕获的信息可以是设备状态收集器162生成的。图210可包括多个图形211、212、213和214,示出了各个系统组件和整个系统在一段时间上的能量使用量。例如,图211可以示出计算机系统100的总能量使用量,图212可以示出硬盘驱动器109的能量使用量,图213可以示出主存储器104、105、106的能量使用量,图214可以示出计算机系统100中的PCI/E总线的能量使用量。在本公开的一个或多个实施例中,如果特定的系统组件不提供用于收集其能量使用量信息的直接装置,则该系统组件的能量使用量可以基于整个系统以及提供了用于检测能量使用量信息的直接装置的其他系统组件的能量使用量来导出。
在本公开的一个或多个实施例中,VMM130的能量管理模块160可以适合于基于在一个或多个基准程序的执行期间所观测到的系统组件的能量使用量来确定系统组件的能量使用量基准。基于各种能量设置和利用率,所确定的能量使用量基准可以表明系统组件的性能级别。能量使用量基准可以基于在运行时间期间所观测到的系统组件的性能级别和能量使用量来细调。
图2B示出了根据本公开的一个或多个实施例的、用于示例计算机系统的说明性能量使用量基准220。能量用量基准220可以通过利用计算机系统100执行一个或多个基准程序来确立。基准程序可被设计为在不同的利用率下使用系统组件。另外,基准程序可被配置为从系统组件收集各种性能级别和能量使用量。例如,某个基准程序可能会导致特定CPU的特定利用率(例如,<25%,25%-50%,50-75%或>75%)。在执行期间,基准程序可以将CPU设置到特定能量设置(例如,CPU时钟速率),并且根据特定的能量设置和所选的利用率来收集CPU的能量使用量和/或性能级别。上述基准测试的操作可以在不同的能量设置和/或利用率下进行重复。然后,可以将所收集的能量使用量和/或性能值与对应的能量设置和利用率一起存储在能量使用量基准中220。
对于能量使用量基准220,CPU可被配置为在不同的能量设置(例如,时钟速率33MHz、50MHz和66MHz)和利用率(例如,<25%、25%-50%、50%-75%或>75%)下操作。基于这两个因素,基准程序可以从CPU收集能量使用量和/或性能值。如图所示,然后将所收集的能量使用量和/或性能级别与时钟速率和利用率相关联。
在本公开的一个或多个实施例中,在操作期间,能量管理模块160可被配置为基于CPU的能量使用量基准220和利用率来选择用于CPU的能量设置。基于包括第一指令集的过去执行在内的一个或多个预测因素,可以确定利用率。当第一指令集足够大(例如,在百万的量级)时,能量管理模块160可以确定用于执行第一指令集的系统组件的利用率,并使用所确定的利用率作为在第一指令集之后执行第二指令集的系统组件的利用率的预测因素。
可用于确定CPU利用率的其他一些预测因素包括:在第一指令集的过去执行期间收集的执行时间和CPU温度。在一些情况下,执行时间应该是用于确定利用率的主要因素,尤其是当CPU是在高性能级别下操作时。例如,能量管理模块160可以确定当第一指令集在第一时间量内完成时,利用率将是90%。当第一指令集超过第二时间量完成时,利用率将低于70%。在一些实施例中,当CPU在“一般”性能级别下操作时,CPU的温度可被用于确定利用率。例如,能量管理模块160可以确定:当CPU的温度在60摄氏度左右时,CPU利用率可以是60%,以及当CPU的温度在45摄氏度以下时,CPU利用率可以是50%。当CPU在45-60摄氏度之间的温度下操作时,CPU利用率可以是在两者之间。
例如,假设用于执行第一指令集的第一利用率被确定为是70%,那么第一利用率可以落在50%-75%的范围内。如果CPU的当前时钟速率被设定为66MHz,则能量管理模块160可以选择50MHz作为新的时钟速率,因为在66HMz处CPU的能量使用量是70W,而在50MHz处CPU的能量使用量是65W。此外,根据能量使用量基准220,运行在50MHz的CPU可能仍然提供“一般”性能,以用于执行具有50-75%的CPU利用率的指令。因此,通过选择较低的50MHz作为新的时钟速度,CPU可以消耗较少的能量,同时仍然提供足够的性能,以执行第二指令集。
在另一个示例中,如果CPU的当前时钟速率被设定为33MHz,则能量管理模块160可以选择50MHz或更高的速率作为新的时钟速率,因为以当前的时钟速率,CPU可能不足以执行第二指令集。在执行第二指令集之后,能量管理模块160可确定用于执行第二指令集的系统组件的第二利用率,并使用它作为对在第二指令之后执行第三指令集的系统组件的第三利用率的预测。能量管理模块160然后可以基于能量使用量基准220和第二利用率来选择新的时钟速率。
在本公开的一个或多个实施例中,能量管理模块160可以适合于进一步评估当确定CPU指令负荷大于阈值时用于执行指令集的CPU的高速缓存未命中率。基于该评估,在能量管理模块60确定CPU可能处于空闲状态以等待加载高速缓存时,其可以选择较低的时钟速率。基于CPU指令负荷和高速缓存未命中率来选择时钟速率的详情将在下文进一步描述。
图3示出了用于优化根据本公开的一个或多个实施例布置的计算机系统100中的系统组件的能耗的示例性方法301的流程图。方法301可被针对作为用于优化计算机系统100中的能耗的统一模型的一部分的每个系统组件进行重复。方法301可以包括由一个或多个步骤310、320、330、340、350、360、370和/或380所示的一个或多个操作、功能或动作。虽然以顺次顺序示出了这些步骤,但是这些步骤也可以并行地执行,和/或以与此处所描述的顺序不同的顺序来执行。此外,根据期望的实现,各个步骤可被组合成较少的步骤,分成另外的步骤,和/或被删除。方法301可以开始于步骤310。
在步骤310处,在计算机系统100中运行的VMM130的能量管理模块160可以适合于确立针对计算机系统的系统组件的能量使用量基准。能量管理模块160可被配置为:通过在系统组件的一组能量设置和一组利用率下测量系统组件的性能级别和能量使用量来确立能量使用量基准。如上所述,能量管理模块160可被配置为运行一个或多个基准程序以将系统组件设置为不同的能量设置和利用率,并且将所收集的性能级别和能量使用量存储在能量使用量基准中。步骤310之后跟着执行步骤320。
在步骤320中,能量管理模块160可被配置为基于第一指令集的执行来确定系统组件的利用率。在一些实施例中,能量管理模块160可以适合于监视在计算机系统100上执行的预定数量的指令(例如,百万个指令),并计算这些指令中有多少指令主要使用该系统组件。于是,利用率可被用作第一指令集之后的第二指令集对系统组件的利用率的预测因素。如上所述,其他预测因素可包括执行时间和CPU温度。
在一些实施例中,能量管理模块60可被配置为基于被调度但尚未在计算机系统100上执行的指令来预测系统组件的利用率。VMM130可以接收要求执行特定操作或特定应用的请求。因为用于特定操作或特定应用的指令可能是事先已知的,所以能量管理模块160通过基于历史数据或者通过分析在执行之前加载到存储器中的指令,能够预测利用率。
在一些示例中,虚拟机可能会收到要求运行字处理应用的请求。因为应用可能先前已被执行多次,所以能量管理模块160可以能够基于通过监测应用的执行所获得的历史数据,来预测硬盘驱动器109的利用率。在一些示例中,历史数据可被存储在针对硬盘驱动器109的能量使用量基准中。在一些其他示例中,VMM130还可以接收用以打开网络通信插口的命令。在用于该命令的必要指令被加载到存储器中之后,能量管理模块160可适合于:在执行所加载的指令之前分析这些指令,以预测网卡的利用率。在一些实施例中,能量管理模块160可确定或预测参与能耗优化的每个系统组件的利用率。
步骤320之后跟着执行步骤330。
在步骤330,能量管理模块160可适合于:基于在步骤310中确立的能量使用量基准和步骤320中确定的利用率,选择用于操作系统组件的能量设置。在一些实施例中,在所选择的能量设置下,可以假定系统组件满足用于在第一指令集之后执行第二指令集的阈值性能级别。例如,能量设置可以通过下述方式从能量使用量基准中选择:评估哪个能量设置被配置为在仍以等于或高于针对所确定的利用率的阈值性能级别来执行的同时消耗最少量的能量。步骤330之后跟着执行步骤340。
在步骤340,能量管理模块160可以配置系统组件用于在第一指令集的执行之后、使用在步骤330中选择的能量设置来执行所述第二指令集。如果确定系统组件的当前能量设置不同于新选择的能量设置,则能量管理模块160可经由VMM130的通信管理模块140将该系统组件调整到所选择的能量设置。在本公开的一个或多个实施例中,可能确定系统组件在其当前能量设置下比在新选择的能量设置下消耗更少的能量。然而,当能量管理模块160确定在当前能量设置下系统组件可能无法提供用于执行第二指令集的足够性能时,能量管理模块160仍可将系统组件设置到新选择的能量设置。这样的方法可被用于确保计算机系统100在不牺牲计算机系统100的整体性能的情况下近似实现优化能耗。步骤340之后跟着执行步骤350。
在步骤350,能量管理模块160可被配置为:通过测量系统组件的性能级别和能量使用量的附加值,评估在第二指令集的执行期间计算机系统100的操作。在本公开的一个或多个实施例中,能量管理模块160可以监测计算机系统100用于完成第二指令集的执行所经过的时间,将该时间与针对能量使用量基准的阈值时间段进行比较,以及基于该比较确定估计的性能级别(例如,差、一般、良好)。基准程序可以确定在第二指令集的执行中系统组件的性能级别。在一些实施例中,能量管理模块160也可以适合于在第二指令集的执行期间收集系统组件的实时能量使用量。步骤350之后跟着执行步骤360。
在步骤360,能量管理模块160可以适合于基于下述中的一个或多个来更新能量使用量基准:性能级别和能量使用量的附加值、所选的能量设置和/或所确定的利用率。能量管理模块60可随后使用更新的能量使用量基准来近似优化系统组件的能耗。例如,能量管理模块160可以基于第二指令集的执行来确定系统组件的另一利用率。随后,能量管理模块160可以适合于基于更新的能量使用量基准和另一利用率来选择用于系统组件的操作的另一能量设置。能量管理模块160然后可以给系统组件配置另一能量设置,以便在第二指令集之后执行第三指令集。类似于步骤350,能量管理模块160可被配置为还评估在执行第三指令集时计算机系统100的操作,以及还更新能量使用量基准。如本文所述,能量使用量基准可以基于从计算机系统100上的实时指令的执行获得的反馈而持续更新。步骤360之后跟着执行步骤370。
在本公开的一个或多个实施例中,在步骤370,能量管理模块160可被配置为从该系统组件和另一系统组件中选择高能效的系统组件,以便在执行一个或多个调度的指令时消耗较少的能量。能量管理模块160可以评估要在计算机系统上执行的调度指令,并且确定OS原始分配用于执行该调度指令的系统组件。例如,OS可能在对计算机系统100的拓扑结构没有太多了解的情况下向它的CPU和特定的高速缓存发出了该调度指令。
在本公开的一个或多个实施例中,能量管理模块160可被配置为:当能量管理模块160知道计算机系统100的系统组件的拓扑时,从节能角度评估是原始分配的系统组件还是备选系统组件接近最优。在本公开的一个或多个实施例中,能量管理模块160可被配置为选择在执行该调度指令中在满足阈值性能级别的同时消耗较少能量的替代组件,以替代原始分配的系统组件。
在本公开的一个或多个实施例中,能量管理模块160可以适合于评估在运行OS的CPU与原始分配系统组件和备选系统组件之间的物理距离。例如,当确定调度指令中的原始分配的高速缓存与CPU的距离比备选高速缓存与CPU的距离远时,能量管理模块160可以选择该备选高速缓存作为高能效的系统组件。
在本公开的一个或多个实施例中,能量管理模块160可被配置为基于原始分配的系统组件的可用性来选择高能效的系统组件。例如,当确定原始分配的高速缓存暂时不可用时,能量管理模块160可以选择使用离CPU较远的空闲高速缓存,因为使用该空闲高速缓存可以节省用来等待繁忙高速缓存的能量。在这个示例中,能量管理模块160可确定备选高速缓存是在调度指令的执行中应该使用的高能效的系统组件。步骤370之后跟着执行步骤380。
在步骤380,能量管理模块160可以将该调度指令配置为使用该高能效的系统组件来执行。另外,能量管理模块160可被配置为:针对其他调度指令,重复上述操作(例如,步骤310-380)中的一个或多个。
图4示出了根据本公开的一个或多个实施例的、基于CPU指令负荷和高速缓存未命中率来优化计算机系统100中的CPU的能耗的示意性方法401的流程图。方法401可以与方法301(图3)并行地执行。方法401可以包括由一个或多个步骤410、420、425、430、440、451、453和/或455所示的一个或多个操作、功能或动作。虽然以顺次顺序示出了这些步骤,但是这些步骤也可以并行地执行,和/或以与此处所描述的顺序不同的顺序来执行。此外,根据期望的实现,各个步骤可被组合成较少的步骤,分成另外的步骤,和/或被删除。方法401可以开始于步骤410。
在步骤410,在计算机系统100上运行的VMM130的能量管理模块160可以被配置为基于计算机系统100上的指令的执行来确定CPU上的指令负荷。在一些实施例中,能量管理模块160可以适合于评估多核CPU的核心之一,以确定与该核心相关联的指令负荷。在操作期间,能量管理模块160可被配置为评估在计算机系统100上执行的预定数量的指令(执行指令),并且计算使用特定CPU或多核CPU中的特定核心的指令(使用指令)的数目。执行指令和使用指令可被用于计算CPU的负荷。例如,指令负荷可以通过将使用指令的数目除以执行指令的数目来确定。步骤410之后跟着执行步骤420。
在步骤420,能量管理模块160可被配置为评估CPU上的指令负荷是否超过预定的CPU负荷阈值。在一些实施例中,所述预定的CPU负荷阈值可以是一个值(例如,约75%)或一个范围(例如,从约50%至约70%)。预定的CPU负荷阈值可以表明:当指令负荷高于预定的CPU负荷阈值或阈值范围时,CPU处于重负荷;或者当指令负荷低于预定的阈值或阈值范围时,CPU处于轻负荷。
在本公开的一个或多个实施例中,如果步骤420处的确定结果表明该指令负荷低于预定的CPU负荷阈值,则步骤420之后可以跟着执行步骤425。否则,当步骤420处的确定结果表明指令负荷不超过预定的CPU负荷阈值时,步骤420之后可以跟着执行步骤430。
在步骤425,能量管理模块160可被配置为基于CPU的现有时钟速率和所确定的指令负荷来调整CPU的时钟速率。如果该指令负荷表明CPU处于轻负荷,且CPU的现有时钟速率被设置为高,则能量管理模块60可以将CPU调整到较低的时钟速率。步骤425之后可以跟着执行步骤410。
在步骤430,能量管理模块160可被配置为确定在指令执行期间CPU所使用的高速缓存的高速缓存未命中率。换言之,能量管理模块160可以适合于评估当CPU处于重负荷时高速缓存的性能。高的高缓存未命中率可以表明执行指令所需的数据不能被直接访问,并且需要从主存储器或硬盘驱动器上载。对必要数据的上载可能会花费一些时间。即使存在要执行的指令,但是CPU可能必须等待,直到数据被上载并变为可用的。因此,即使CPU可能处于重负荷下,高速缓存未命中率可以表明CPU处于空闲状态且在浪费能量。步骤430之后可以跟着执行步骤440。
在一些实施例中,在步骤440,能量管理模块160可以适合于评估高速缓存未命中率与预定的高速缓存未命中阈值。高速缓存未命中阈值可以是一个预定的值范围(例如,100-1000)。当确定高速缓存未命中率高于高速缓存未命中阈值时,步骤440之后可以跟着执行步骤451。如果确定高速缓存未命中率在高速缓存未命中阈值的范围内,则步骤440之后可以跟着执行步骤453。如果确定高速缓存未命中率低于高速缓存未命中阈值,则在440之后可以跟着执行步骤455。
在步骤451,能量管理模块160可被配置为:无论CPU是否被认为是处于重负荷,都因为高速缓存未命中率高于高速缓存未命中阈值而降低CPU的时钟速率。调整量可以基于CPU上的指令负荷和/或高速缓存未命中率来确定。在本公开的一个或多个实施例中,能量管理模块160可以适合于使用能量使用量基准来评估如何在仍允许CPU提供足够性能的同时降低CPU的能耗。如果CPU的当前时钟速率为低,或不能被调整为更低,则能量管理模块160可保持CPU的时钟速率。在步骤453,因为高速缓存未命中率在高速缓存未命中阈值内,能量管理模块160可以保持CPU的时钟速率。
在步骤455,能量管理模块160可被配置为提高CPU的时钟速率。如果CPU的当前时钟速率无法被调整到更高,则能量管理模块160可确定保持CPU的时钟速率。
图5是根据本公开的一个或多个实施例的用于实现优化能耗的方法的计算机程序产品500的说明性实施例的框图。计算机程序产品500可以包括信号承载介质502。信号承载介质502可包括可执行指令504的一个或多个集合,所述指令在例如由处理器执行时可以适合于提供上文描述的功能。因此,例如,参考图1的计算机系统100,能量管理模块160可以响应于信号承载介质502所传送的指令504,进行至少在图3或图4中示出的操作中的一个或多个操作。
在一些实施方式中,信号承载介质502可以包括非临时性计算机可读介质506,例如但不限于,硬盘驱动器、紧致盘(CD)、数字多功能盘(DVD)、数字带、存储器等。在一些实施方式中,信号承载介质502可以包括可记录介质508,例如但不限于,存储器、读/写(R/W)CD、R/WDVD等。在一些实施方式中,信号承载介质502可以包括通信介质510,例如但不限于,数字和/或模拟通信介质(例如,光缆、波导、有线通信链路、无线通信链路等)。因此,例如,可以通过信号承载介质502无线地传送计算机程序产品500,其中通过无线通信介质510(例如,符合IEEE802.11标准的无线通信介质)传送信号承载介质502。计算机程序产品500可被记录在非临时性计算机可读介质506或其他类似的可记录介质508上。
图6示出了被布置为在本公开的一个或多个实施例中使用的计算机系统的示例计算设备600的说明性实施例的框图。在最基本的配置601中,计算设备600可以包括一个或多个处理器610和主存储器620。存储器总线630可以用于处理器610与主存储器620之间的通信。
根据所期望的配置,处理器610可以是任意类型的,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器610可以包括一级或多级高速缓存(例如,一级高速缓存610和二级高速缓存612)、一个或多个处理器核心613和寄存器614。处理器核心613可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或其任意组合。存储控制器615也可以与处理器610一起使用,或在一些实施方式中,存储控制器615可以是处理器610的内部部件。
根据所期望的配置,主存储器620可以是任意类型的,包括但不限于易失性存储器(如,RAM)、非易失性存储器(如,ROM、闪存)或其任意组合。主存储器620可以包括操作系统621、一个或多个应用622和程序数据624。应用622可以包括VMM623,其布置用于执行此处所述的功能和/或操作,包括针对图3的方法301和图4的方法401所描述的各种功能块和/或操作。程序数据624可以包括VMM623生成的能量使用量基准625。在一些示例实施例中,应用622可被布置用于与程序数据624一起在操作系统621上工作,使得可以提供如此处所描述的能耗优化的实现。所描述的基本配置在图6中由虚线601内的组件示出。
计算设备600可以具有附加特征或功能、以及利于基本配置601与任意所需设备和接口之间的通信的附加接口。例如,总线/接口控制器640可以有助于基本配置601与一个或更多个数据存储设备650之间经由存储接口总线641进行通信。数据存储设备650可以是可拆除存储设备651、不可拆除存储设备652或其组合。可拆除存储和不可拆除存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)之类的磁盘设备、诸如紧致盘(CD)驱动器或数字通用盘(DVD)驱动器之类的光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以任意方法或技术实现的易失性和非易失性、可拆除和不可拆除介质,用于存储信息,如计算机可读指令、数据结构、程序模块或其他数据。
主存储器620、可拆除存储设备651和不可拆除存储设备652都是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储器、磁卡带、磁带、磁盘存储器或其他磁存储设备、或可以用于存储期望信息并可由计算设备600访问的任意其他介质。任意这种计算存储介质可以是设备600的一部分。
计算设备600还可以包括接口总线642,有助于从各种接口设备(例如,输出接口660、外围设备接口674、和通信接口680)经由总线/接口控制器640到基本配置601的通信。示例输出接口660可以包括图形处理单元661和音频处理单元662,它们可以被配置为经由一个或多个A/V端口663与各种外部设备(如,显示器或扬声器)通信。示例外围设备接口660可以包括串行接口控制器671或并行接口控制器672,它们可以被配置为经由一个或更多个I/O端口673与诸如输入设备(例如,键盘、鼠标、手写笔、语音输入设备、触摸输入设备)或其他外围设备(例如,打印机、扫描仪)之类的外部设备通信。示例通信接口680可以包括网络控制器681,其可以被配置为有助于经由一个或更多个通信端口682在网络通信链路上与一个或更多个其他计算设备690通信。
网络通信链路可以是通信介质的一个示例。通信介质典型可以具体化为计算机可读指令、数据结构、程序模块或其他传送机制,并且可以包括任意信息传递介质。作为非限制性示例,通信介质可以包括诸如有线网络或直接有线连接的有线介质、以及诸如声、射频(RF)、红外(IR)之类的无线介质和其他无线介质。这里所使用的术语计算机可读介质可以包括存储介质和通信介质。
计算设备600可以实现为小型便携式(或移动)电子设备的一部分,例如蜂窝电话、个人数字助理(PDA)、个人媒体播放设备、无线上网设备、个人头戴设备、专用设备或包括上述功能中的任意功能的混合设备。计算设备600还可实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。另外,计算设备600可以实现为无线基站或者其他无线系统或设备的一部分。
在对系统的方面的硬件实现和软件实现之间留下的区别不大;对硬件或软件的使用一般是(但并非总是如此,因为在某些情况下在硬件和软件之间的选择可以变成是重要的)代表成本与效率之间的权衡的设计选择。存在通过其可对本文描述的过程和/或系统和/或其他技术产生影响的各种媒介(例如,硬件、软件和/或固件),并且优选的媒介将随过程和/或系统和/或其他技术的部署环境发生变化。例如,如果实现者确定速度和精度是最重要的,则实现者可能选择主要是硬件和/或固件的媒介;如果灵活性是最重要的,则实现者可能选择主要是软件的实现;或者,作为又一备选,实现者可以选择硬件、软件和/或固件的某种组合。
上面的详细描述已经通过使用框图、流程图和/或示例来阐述了设备和/或过程的各种实施例。在这样的框图、流程图和/或示例包含一个或更多个功能和/或操作这种程度,本领域技术人员将理解可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地或共同地实现在这样的框图、流程图或实施例内的每个功能和/或操作。在一些实施例中,本文描述的主题的若干部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其他集成格式来实现。然而,本领域技术人员将认识到:本文所公开的实施例的一些方面的全部或部分可以等效地实现在集成电路中,实现为在一个或更多个计算机上运行的一个或更多个计算机程序(例如,作为在一个或更多个计算机系统上运行的一个或更多个程序),实现为在一个或更多个处理器上运行的一个或更多个程序(例如,作为在一个或更多个微处理器上运行的一个或更多个程序),实现为固件,或者实现为几乎其任意组合;以及,设计电路和/或编写软件或固件的代码将是完全在本领域技术人员根据本公开具有的能力范围内。此外,本领域技术人员将理解:本文所描述的主题的机构能够作为各种形式的程序产品进行分发;以及,无论用于实际执行分发的信号承载介质为何,本文所描述的主题的说明性实施例都适用。信号承载介质的示例包括,但不限于,下述介质:可记录型介质(如软盘、硬盘驱动器、致密盘(CD)、数字多功能盘(DVD)、数字磁带、计算机存储器);传输型介质(如数字和/或模拟通信介质(如,光纤光缆、波导、有线通信链路、无线通信链路))。
本领域技术人员将认识到:以本文所阐述的方式来描述设备和/或过程以及在其后使用工程实践来将这样描述的设备和/或过程集成到数据处理系统中,在本技术领域内是常见的。也就是说,通过合理数量的实验,本文所描述的设备和/或过程的至少一部分可被集成到数据处理系统中。在本领域技术人员将认识到:典型的数据处理系统一般包括一个或多个系统单元壳体、视频显示设备、如易失性和非易失性存储器之类的存储器、如微处理器和数字信号处理器之类的处理器、如操作系统、驱动程序、图形用户界面和应用程序之类的计算实体、如触摸板或屏幕之类的一个或更多个交互设备、和/或包括反馈回路和控制马达(例如,用于检测位置和/或速度的反馈;用于移动和/或调节组件和/或数量的控制马达)在内的控制系统。典型的数据处理系统可以利用任何合适的可商业获得的组件(如在数据计算/通信和/或网络计算/通信系统中通常能找到的那些组件)来实现。
这里所描述的主题有时示出包含在不同的组件内的组件或者与不同的其他组件连接的组件。但是,应当理解的是,这样描述的架构仅仅是示例性的,以及实际上可以实现获得相同功能的许多其他架构。从概念上讲,用于实现相同功能的任何组件配置被有效地“关联”,使得实现所需的功能。因此,本文中组合实现特定功能的任意两个组件可被视为彼此“关联”,使得实现所期望的功能,与架构或内部组件无关。类似地,如此关联的任何两个组件也可被视为相互之间“可操作地连接”或“可操作地耦合”,以实现期望的功能,以及能够被如此关联的任何两个组件也可被视为相互之间“可操作地连接”,以实现期望的功能。可操作地耦合的具体实例包括但不限于:物理上可配对和/或物理上相互作用的组件,和/或可无线地相互作用和/或无线相互作用的组件,和/或逻辑上相互作用和/或可逻辑上的相互作用的组件。
至于本文中任何关于复数和/或单数术语的使用,本领域技术人员可以从复数形式转换为单数形式,和/或从单数形式转换为多数形式,以适合具体环境和应用。为清楚起见,在此明确声明单数形式/多数形式可互换。
本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的特征。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任意特定权利要求限制为仅包含一个该特征的发明,即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或“一个”(例如,“一”和/或“一个”通常应当被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域技术人员应认识到,这种列举通常应解释为意指至少是所列数目(例如,不存在其他修饰语的短语“两个特征”通常意指至少两个该特征,或者两个或更多该特征)。此外,在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
根据前述内容,应该理解,此处出于说明目的已经描述了本公开的各种实施例,以及在不偏离本公开的范围和精神的情况下可以做出各种修改。因此,这里所公开的各种实施例不是限制性的,本公开的真实范围和精神由所附权利要求表征。
Claims (17)
1.一种优化计算机系统中的能耗的方法,包括:
通过在系统组件的多个能量设置和多个利用率下测量所述系统组件的性能级别和能量使用量,确立针对所述计算机系统的所述系统组件的能量使用量基准;
至少基于在所述计算机系统上的第一多个指令的执行来确定所述系统组件的利用率,以及
通过从所述多个能量设置中选择用于所述系统组件的操作的能量设置,配置所述系统组件以在执行所述第一多个指令之后在所述计算机系统上执行第二多个指令,其中:
所述能量设置是基于所述能量使用量基准和所确定的利用率来选择的;以及
在所选择的能量设置下,所述系统组件被确定为满足执行所述第二多个指令的阈值性能级别。
2.根据权利要求1所述的方法,其中,所述确立针对所述计算机系统的系统组件的能量使用量基准包括:
设置所述系统组件操作在从所述多个能量设置中选择的特定能量设置下;
选择具有所述系统组件的选自所述多个利用率中的特定利用率的基准程序;
在所述基准程序的执行期间,从所述系统组件收集特定性能级别和特定能量使用量值;以及
将所述特定能量设置、所述特定利用率、所述特定性能级别、以及所述特定能量使用量值存储在所述能量使用量基准中。
3.根据权利要求1所述的方法,其中所确定的利用率基于在所述第一多个指令的执行期间主要使用所述系统组件的指令的百分比。
4.根据权利要求1所述的方法,还包括:
识别在调度指令的执行期间要使用的系统组件;
从所述系统组件和另一系统组件中选择高能效的系统组件,以便在所述调度指令的执行期间在满足所述阈值性能级别的同时消耗较少的能量;以及
将所述高能效的系统组件用于在所述调度指令的执行期间的操作。
5.根据权利要求1所述的方法,还包括:
预测另一系统组件执行调度指令的操作的另一利用率,所述预测基于针对所述另一系统组件的另一能量使用量基准中的历史数据或者对所述调度指令的分析;以及
基于所预测的另一利用率和针对所述另一系统组件的所述另一能量使用量基准,从多个另一能量设置中选择用于所述另一系统组件的操作的另一能量设置。
6.根据权利要求1所述的方法,还包括:
提供不同的虚拟机来运行不同的操作系统,包括:
在不同的中央处理单元上运行所述操作系统,每个所述中央处理单元具有其自己的主存储器;
将所述计算机系统中的包括所述系统组件在内的系统组件分配给所述操作系统;以及,
针对所述计算机系统中的每个系统组件,重复以下步骤:确立能量使用量基准,确定利用率,以及配置系统组件。
7.根据权利要求6所述的方法,其中分配系统组件包括:针对每个中央处理单元,分配在物理上靠近所述中央处理单元的一组系统组件。
8.根据权利要求1所述的方法,还包括:
通过在所述系统组件的所选择的能量设置和所确定的利用率下测量所述系统组件的性能级别和能量使用量的附加值,评估在所述第二多个指令的执行期间所述系统组件的操作;
基于所述系统组件的所述性能级别和所述能量使用量的所述附加值、所选择的能量设置以及所确定的利用率来更新所述能量使用量基准;
基于所述计算机系统上的所述第二多个指令的执行来确定所述系统组件的另一利用率;以及
通过从所述多个能量设置中选择用于所述系统组件的操作的另一能量设置,配置所述系统组件以在所述计算机系统上执行所述第二多个指令之后执行第三多个指令,其中所述另一能量设置是基于所述能量使用量基准和所述另一利用率来选择的;以及所述系统组件被确定为满足在所选择的另一能量设置下执行所述第三多个指令的阈值性能级别。
9.根据权利要求1所述的方法,其中所述系统组件是中央处理单元CPU、高速缓存、存储器、硬盘驱动器、图形卡、或者网卡。
10.一种被配置为优化计算机系统中的能耗的系统,包括:
虚拟机监视器,被配置为:
通过在系统组件的多个能量设置和多个利用率下测量所述系统组件的性能级别和能量使用量,确立针对所述系统组件的能量使用量基准;
至少基于在所述计算机系统上的第一多个指令的执行来确定所述系统组件的利用率,以及
从所述多个能量设置中选择用于所述系统组件的操作的能量设置,以在执行所述第一多个指令之后在所述计算机系统上执行第二多个指令,其中:
所述能量设置是基于所述能量使用量基准和所确定的利用率来选择的;以及
在所选择的能量设置下,所述系统组件被确定为满足执行所述第二多个指令的阈值性能级别。
11.根据权利要求10所述的系统,其中所述虚拟机监视器还被配置为:
识别在执行调度指令时要使用的系统组件;
从所述系统组件或另一系统组件中选择高能效的系统组件,以便在所述调度指令的执行期间在满足所述阈值性能级别的同时消耗较少的能量;以及
将所述高能效的系统组件用于在所述调度指令的执行期间的操作。
12.根据权利要求10所述的系统,其中所述虚拟机监视器还被配置为:
预测另一系统组件执行调度指令的操作的另一利用率,所述预测基于针对所述另一系统组件的另一能量使用量基准中的历史数据或者对所述调度指令的分析;以及
基于所预测的另一利用率和针对所述另一系统组件的所述另一能量使用量基准,从多个另一能量设置中选择用于所述另一系统组件的操作的另一能量设置。
13.根据权利要求10所述的系统,其中所述虚拟机监视器还被配置为:
提供不同的虚拟机来运行不同的操作系统,包括:
在不同的中央处理单元上运行所述操作系统,每个所述中央处理单元具有其自己的主存储器;
将所述计算机系统中的包括所述系统组件在内的系统组件分配给所述操作系统;以及,
针对所述计算机系统中的每个系统组件,重复以下步骤:确立能量使用量基准,确定利用率,以及从所述多个能量设置中选择能量设置。
14.根据权利要求13所述的系统,其中所述虚拟机监视器还被配置为针对每个中央处理单元,分配在物理上靠近所述中央处理单元的一组系统组件,以分配系统组件。
15.根据权利要求10所述的系统,其中所述虚拟机监视器还被配置为:
在所述第二多个指令的执行期间,在所述系统组件的所选择的能量设置和所确定的利用率下测量所述系统组件的性能级别和能量使用量的附加值;以及
基于所述系统组件的所述性能级别和所述能量使用量的所述附加值、所选择的能量设置以及所确定的利用率来更新所述能量使用量基准。
16.根据权利要求10所述的系统,其中所述虚拟机监视器还被配置为:
基于指令的执行来确定所述计算机系统的中央处理单元CPU上的指令负荷;以及
当所述CPU上的指令负荷超过CPU负荷阈值时:
确定在所述指令的执行期间所述CPU所使用的高速缓存的高速缓存未命中率;以及
当所述高速缓存未命中率大于一高速缓存未命中率阈值时,降低所述CPU的时钟速率。
17.根据权利要求16所述的系统,其中所述虚拟机监视器还被配置为:
当所述CPU上的指令负荷超过所述CPU负荷阈值并且所述高速缓存未命中率小于另一高速缓存未命中率阈值时,提高所述CPU的时钟速率;以及
当所述CPU上的指令负荷超过所述CPU负荷阈值并且所述高速缓存未命中率在高速缓存未命中率阈值范围内时,保持所述CPU的时钟速率。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/079930 WO2013040762A1 (en) | 2011-09-21 | 2011-09-21 | Multi-core system energy consumption optimization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103270470A CN103270470A (zh) | 2013-08-28 |
CN103270470B true CN103270470B (zh) | 2016-02-17 |
Family
ID=47913759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180062034.8A Expired - Fee Related CN103270470B (zh) | 2011-09-21 | 2011-09-21 | 多核系统能耗优化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8671293B2 (zh) |
JP (1) | JP5695766B2 (zh) |
KR (1) | KR101529016B1 (zh) |
CN (1) | CN103270470B (zh) |
WO (1) | WO2013040762A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6291966B2 (ja) * | 2014-03-31 | 2018-03-14 | 日本電気株式会社 | 初期化処理高速化システム、初期化処理高速化装置、初期化処理高速化方法及び初期化処理高速化プログラム |
US20150355700A1 (en) * | 2014-06-10 | 2015-12-10 | Qualcomm Incorporated | Systems and methods of managing processor device power consumption |
US20150363116A1 (en) * | 2014-06-12 | 2015-12-17 | Advanced Micro Devices, Inc. | Memory controller power management based on latency |
JP6330526B2 (ja) * | 2014-07-02 | 2018-05-30 | 富士通株式会社 | センシング制御プログラム及び携帯端末装置 |
US9952650B2 (en) * | 2014-10-16 | 2018-04-24 | Futurewei Technologies, Inc. | Hardware apparatus and method for multiple processors dynamic asymmetric and symmetric mode switching |
US10248180B2 (en) | 2014-10-16 | 2019-04-02 | Futurewei Technologies, Inc. | Fast SMP/ASMP mode-switching hardware apparatus for a low-cost low-power high performance multiple processor system |
US10928882B2 (en) | 2014-10-16 | 2021-02-23 | Futurewei Technologies, Inc. | Low cost, low power high performance SMP/ASMP multiple-processor system |
WO2016118162A1 (en) * | 2015-01-23 | 2016-07-28 | Hewlett Packard Enterprise Development Lp | Non-uniform memory access aware monitoring |
CN104765633A (zh) * | 2015-04-22 | 2015-07-08 | 浪潮电子信息产业股份有限公司 | 服务器操作系统的安装方法、装置及可移动存储设备 |
US9804849B2 (en) * | 2015-10-20 | 2017-10-31 | International Business Machines Corporation | Space reduction in processor stressmark generation |
CN106059940B (zh) * | 2016-05-25 | 2019-07-09 | 新华三信息技术有限公司 | 一种流量控制方法及装置 |
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 |
US10892971B2 (en) | 2019-03-12 | 2021-01-12 | Arch Systems Inc. | System and method for network communication monitoring |
WO2021126216A1 (en) * | 2019-12-19 | 2021-06-24 | Google Llc | Resource management unit for capturing operating system configuration states and offloading tasks |
CN112947737A (zh) * | 2021-02-20 | 2021-06-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片功耗调整方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497407A (zh) * | 2002-09-30 | 2004-05-19 | 英特尔公司 | 用于在低工作量期间减少时钟频率的方法和装置 |
US7334143B2 (en) * | 2004-04-19 | 2008-02-19 | Hewlett-Packard Development Company, L.P. | Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value |
CN101187831A (zh) * | 2006-10-24 | 2008-05-28 | 国际商业机器公司 | 微处理器的自主动态电压和频率调节的方法和计算机系统 |
CN101231552A (zh) * | 2007-01-24 | 2008-07-30 | 惠普开发有限公司 | 调节功耗 |
JP2009175788A (ja) * | 2008-01-21 | 2009-08-06 | Hitachi Ltd | サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム |
JP2011044072A (ja) * | 2009-08-24 | 2011-03-03 | Panasonic Corp | アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3573957B2 (ja) * | 1998-05-20 | 2004-10-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ |
US7003441B2 (en) * | 2001-07-31 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Method for deriving the benchmark program for estimating the maximum power consumed in a microprocessor |
US7634668B2 (en) | 2002-08-22 | 2009-12-15 | Nvidia Corporation | Method and apparatus for adaptive power consumption |
JP4860104B2 (ja) * | 2003-10-09 | 2012-01-25 | 日本電気株式会社 | 情報処理装置 |
JP2005196430A (ja) * | 2004-01-07 | 2005-07-21 | Hiroshi Nakamura | 半導体装置および半導体装置の電源電圧/クロック周波数制御方法 |
US7861099B2 (en) | 2006-06-30 | 2010-12-28 | Intel Corporation | Method and apparatus for user-activity-based dynamic power management and policy creation for mobile platforms |
JP4837456B2 (ja) * | 2006-06-28 | 2011-12-14 | パナソニック株式会社 | 情報処理装置 |
JP5344190B2 (ja) * | 2008-03-04 | 2013-11-20 | 日本電気株式会社 | 半導体デバイス |
US8397097B2 (en) * | 2008-04-09 | 2013-03-12 | Nec Corporation | Computer system and operating method thereof |
CN101739113B (zh) * | 2008-11-20 | 2013-04-10 | 国际商业机器公司 | 在虚拟化集群系统中进行能效管理的方法及装置 |
US8397088B1 (en) * | 2009-07-21 | 2013-03-12 | The Research Foundation Of State University Of New York | Apparatus and method for efficient estimation of the energy dissipation of processor based systems |
US20110209160A1 (en) | 2010-02-22 | 2011-08-25 | Vasanth Venkatachalam | Managed Code State Indicator |
US9170916B2 (en) * | 2010-07-09 | 2015-10-27 | Damian Dalton | Power profiling and auditing consumption systems and methods |
-
2011
- 2011-09-21 JP JP2013550738A patent/JP5695766B2/ja not_active Expired - Fee Related
- 2011-09-21 KR KR1020147007447A patent/KR101529016B1/ko not_active IP Right Cessation
- 2011-09-21 CN CN201180062034.8A patent/CN103270470B/zh not_active Expired - Fee Related
- 2011-09-21 US US13/878,238 patent/US8671293B2/en active Active
- 2011-09-21 WO PCT/CN2011/079930 patent/WO2013040762A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497407A (zh) * | 2002-09-30 | 2004-05-19 | 英特尔公司 | 用于在低工作量期间减少时钟频率的方法和装置 |
US7334143B2 (en) * | 2004-04-19 | 2008-02-19 | Hewlett-Packard Development Company, L.P. | Computer power conservation apparatus and method that enables less speculative execution during light processor load based on a branch confidence threshold value |
CN101187831A (zh) * | 2006-10-24 | 2008-05-28 | 国际商业机器公司 | 微处理器的自主动态电压和频率调节的方法和计算机系统 |
CN101231552A (zh) * | 2007-01-24 | 2008-07-30 | 惠普开发有限公司 | 调节功耗 |
JP2009175788A (ja) * | 2008-01-21 | 2009-08-06 | Hitachi Ltd | サーバの消費電力制御装置、サーバの消費電力制御方法及びコンピュータプログラム |
JP2011044072A (ja) * | 2009-08-24 | 2011-03-03 | Panasonic Corp | アイドル状態検出回路、半導体集積回路、信号処理装置、アイドル状態検出方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5695766B2 (ja) | 2015-04-08 |
JP2014507719A (ja) | 2014-03-27 |
WO2013040762A1 (en) | 2013-03-28 |
KR20140064900A (ko) | 2014-05-28 |
KR101529016B1 (ko) | 2015-06-15 |
US8671293B2 (en) | 2014-03-11 |
CN103270470A (zh) | 2013-08-28 |
US20130246781A1 (en) | 2013-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103270470B (zh) | 多核系统能耗优化 | |
US9442774B2 (en) | Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip | |
KR101476568B1 (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
US9311152B2 (en) | Methods and apparatuses for load balancing between multiple processing units | |
EP3259825B1 (en) | Heterogeneous battery cell switching | |
CN105493053A (zh) | 多核处理器中的高速缓存划分 | |
CN107209545A (zh) | 在多核处理器中执行功率管理 | |
US10331191B2 (en) | Program and data annotation for hardware customization and energy optimization | |
CN105630638A (zh) | 用于为磁盘阵列分配缓存的设备和方法 | |
WO2016133688A1 (en) | Heterogeneous battery cell charging | |
CN104025053A (zh) | 使用集体操作建模的消息传递接口调谐 | |
KR20130021625A (ko) | 메모리 상태 변화에 따른 단말기 운용 방법 및 이를 지원하는 단말기 | |
CN104391678A (zh) | 服务器及其方法、系统及其方法 | |
US11698673B2 (en) | Techniques for memory access in a reduced power state | |
CN103348333A (zh) | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 | |
CN110462590A (zh) | 用于基于中央处理单元功率特性来调度软件任务的系统和方法 | |
US20150301582A1 (en) | Energy Efficient Mobile Device | |
CN101373444A (zh) | 向执行环境揭示系统拓扑 | |
CN104536736A (zh) | 服务器及其方法、系统及其方法 | |
WO2023151465A1 (zh) | 一种ssd的规格参数的调节方法及相关产品 | |
Zhu et al. | Revisiting swapping in mobile systems with SwapBench | |
Adhinarayanan | Models and Techniques for Green High-Performance Computing | |
CN117873522A (zh) | 芯片更新方法、装置、计算机设备和存储介质 | |
CN116257401A (zh) | 利用智能运行时分析器和建议器的应用开发的性能增强 | |
Wang et al. | Wireless Network Interface Card Energy Management for Interactive Applications |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160217 Termination date: 20190921 |