CN110832434A - 针对节能性能使用有效利用率进行核心频率管理 - Google Patents
针对节能性能使用有效利用率进行核心频率管理 Download PDFInfo
- Publication number
- CN110832434A CN110832434A CN201880044381.XA CN201880044381A CN110832434A CN 110832434 A CN110832434 A CN 110832434A CN 201880044381 A CN201880044381 A CN 201880044381A CN 110832434 A CN110832434 A CN 110832434A
- Authority
- CN
- China
- Prior art keywords
- processor
- frequency
- core
- effective utilization
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
一种用于处理器的频率调控方法,包括:从处理器读取电源管理信息。处理器在活动状态或者多个省电状态中的一个省电状态下进行操作。电源管理信息包括第一信息和第二信息,第一信息指示处理器的第一核心在活动状态下的占用,第二信息指示第一核心在第一省电状态下的占用。该方法包括基于第一信息和第二信息来生成有效利用率。该方法包括通过执行以下中的所选动作来设置目标频率:第一动作,第一动作包括提高目标频率,以及第二动作,第二动作包括基于有效利用率、关于处理器的当前频率来降低目标频率。所选动作是根据所述有效利用率而被选择的。该方法包括指令所述处理器以目标频率来操作第一核心。
Description
技术领域
本公开涉及处理器频率控制,并且更具体地涉及对具有多个省电状态的处理器的频率控制。
背景技术
现代处理器可以能够以不同的省电状态操作。在一些实现中,这些省电状态由高级配置和电源接口(ACPI)规范定义,诸如,ACPI规范版本6.1的第8节。采取单核处理器的简单示例,该处理器可以在处于活动状态时执行指令,该状态可以被标记为C0。
如果处理器正在等待通常将比处理器更慢的另一系统组件(例如,主存储器或辅助存储装置),则处理器可以进入省电状态。例如,当处理器正在执行停止指令而不是实质指令时,处理器可以进入被标记为C1的第一省电状态。可以对执行单元的时钟进行门控,使得在省电状态下,时钟不被传递到执行单元,并且执行单元不再消耗功率。处理器可以通过重新允许时钟被传递来恢复操作。
如果处理器将闲置更长的时间段,则处理器可以进入另一更深的省电状态。例如,该省电状态可以被标记为C3。在该第二省电状态下,处理器的1级缓存、并且在一些情况下是2级缓存将被冲除(flush),使得可以移除到缓存的电源。1级和2级缓存通常是易失性的,意味着移除电源将导致内容被擦除。要重新填充缓存需要更多时间,因此处理器需要额外的时间以从第二省电状态返回到活动状态。然而,当处理器将空闲更长的时间段时,诸如,在从主存储器请求数据时,进入第二省电状态可能是值得的。
在各种处理器架构中,还有可用的更进一步的省电状态。例如,第三省电状态可以从处理器的易失性存储装置中保存状态数据,并且然后移除到处理器的大部分功能单元的电源。例如,缓存、流水线寄存器、架构寄存器、时钟分配电路系统、分支预测器、算术单元等可以被下电。时钟生成电路系统可以保持被供电以避免时钟恢复和稳定的生成的附加延时。为了恢复执行,将保存的状态重新加载到处理器中。
当处理器正在等待更高延时的任务(诸如,磁盘访问)或处理器处于闲置/非活动(诸如,在等待下一事务到达时)时,第三省电状态可能是值得的。省电状态的延时与省电之间的均衡可以由处理器的设计者确定,并且可以在处理器的电源管理单元中被系统化。
在活动状态(C0)下,可以存在多个性能级别。例如,最高性能状态(标记为P0)可能是处理器可以操作的最高频率。如果处理器负载较轻,则处理器可能会以较低性能状态操作,诸如,被标记为P1的状态。不同的处理器架构,甚至共享架构的不同处理器型号可以具有不同的性能状态集。例如,所定义的从P0到Pn的性能状态可以由处理器定义,其中n是大于1的整数。在一些处理器中,频率范围是可用的,并且可能不一定映射到特定的P个数字。相反,处理器的频率可以在设置的增量或粒度范围内的任何处是可调整的。例如,可以以100MHz为增量调整处理器的频率。
在更现代的处理器中,处理器包括多于一个核心。进一步地,取决于处理器模型,每个核心可以能够执行多个线程。除了其中跨处理器的所有核心执行的所有线程一致地呈现均匀负载的极少数情况下,处理器的某些核心在某些时间可能比其他时间负载更轻。因此,处理器电源管理可以单独调整每个核心的省电状态。
进一步地,一些最近的处理器允许按核心调整处理器的性能状态。换言之,除了能够使各个核心进入个体省电状态之外,还可以在活动状态下独立地调整每个核心的频率。在其他实现中,核心组可以被一起控制。例如,在八核处理器中,可以将每对核心设置为与其他核心对无关的频率。
简单地作为图形说明而不代表任何特定处理器,图1描绘了具有四个电源状态的处理器:三个省电状态和活动(C0)电源状态10。C0电源状态包括五个性能状态:性能状态0(20-0)、性能状态1(20-1)、性能状态2(20-2)和性能状态3(20-3)。仅出于说明目的,性能状态20-0、20-1、20-2和20-3分别对应于2.3GHz、2.1GHz、1.8GHz和1.2GHz的频率。
进一步地,在一些多核处理器中,当少于所有核心处于C0状态10时,一个或多个更高性能状态(有时称为涡轮状态)可用。以较高频率运行核心子集的能力通常归因于热管理。处理器和任何关联的散热器可能仅能够消散由以较高频率操作的核心子集生成的热量。在图1中,在其他核心处于省电状态时,性能状态24可以允许单核以3.0GHz操作。
在图1中,非活动省电状态包括空闲状态32-1(C1,也被称为第一省电状态)、第二省电状态32-2(C3)和第三省电状态32-3(C6)。尽管性能不能为负,但省电状态的图形条的深度是从省电状态返回所涉及的延时的图形提醒。
换言之,从第一省电状态32-1返回到活动状态10所需的时间量远小于从第二省电状态32-2返回的延时,其又小于从非活动状态32-3恢复执行所需的时间。仅作为示例,第二省电状态32-2可以涉及冲除L1和L2缓存,而省电状态32-3可以包括保存核心的状态并且从大多数功能单元移除电源。为了清除,针对省电状态32所描绘的延时与针对性能状态20所描绘的频率是不同的、不可比较的。
在图1中仅示出了标记C1、C3和C6以说明某些处理器实现的省电状态是制造方或ACPI规范定义的省电状态的子集的事实。另外,处理器制造方可以定义非行业标准的附加省电状态(尽管它们可以由处理器制造方根据ACPI规范的格式进行定义)。
在图2中,性能状态的更精细的粒度的阵列40可能是可用的。例如,可以通过预定义的增量任意地调整处理器的频率。在一些实现中,阵列40的较高性能状态44要求核心中的至少一些核心处于省电状态32中的一个省电状态。
操作系统包括被设计具有在功率与性能之间进行各种均衡的频率调控器(governor)。这些频率调控器可以指令处理器以哪个频率操作每个处理器核心。例如,来自Canonical有限公司的Linux distribution Ubuntu包括若干频率调控器,这些频率调控器被分组成两类。参见以下表格:
具有根特权的操作系统用户可以能够在操作系统运行时在类别内切换调控器。然而,改变类别可能需要修改内核周长并且重启系统。这些现有技术的频率调控器常常不能在高负载下省电或遭受明显的性能损失。未能省电会增加设备的能量印痕(energyfootprint),其负面影响在云规模上被放大。另一方面,未能使性能最大化可能需要附加系统或更严格的硬件规格以便处理给定的负载。针对固定的硬件环境,未能使性能最大化可能会导致客户的应用级性能变差,诸如,响应时间变慢或事务吞吐量降低。
本文提供的背景描述是以大体上呈现本公开的上下文为目的。在一定程度上在本背景技术部分中描述的目前命名的发明人的工作以及在提交时可能没有其他资格作为现有技术的说明书的各个方面均未明确地或隐含地被承认为反对本公开的现有技术。
发明内容
一种用于处理器的频率调控方法,包括从处理器读取电源管理信息。处理器被配置为在多个省电状态中选择性地进行操作。电源管理信息包括(i)第一信息,指示处理器的第一核心在活动状态下的占用,以及(ii)第二信息,指示处理器的第一核心在多个省电状态中的第一省电状态下的占用。该方法包括基于第一信息和第二信息来生成有效利用率。该方法包括通过执行以下中的所选动作来设置目标频率:第一动作,包括提高目标频率,以及第二动作,包括基于有效利用率、关于处理器的当前频率降低目标频率。所选动作是根据有效利用率而被选择的。该方法包括指令处理器以目标频率操作第一核心。
在其他特征中,如果有效利用率大于阈值,则第一动作被选择,并且如果有效利用率小于阈值,则第二动作被选择。在其他特征中,降低目标频率包括将目标频率设置为有效利用率和处理器的当前频率的乘积。
在其他特征中,有效利用率基于第一数字和第二数字而被生成。第一数字基于的是第一信息。第二数字基于的是第二信息。第一数字指示自先前分析以来第一核心占用活动状态的时间分数。第二数字指示自先前分析以来第一核心占用多个省电状态的子集的时间分数。多个省电状态的子集是适当的子集,并且至少包括第一省电状态。在其他特征中,有效利用率基于将第一数字除以第一数字和第二数字之和而被生成。
在其他特征中,处理器包括多个核心,该多个核心包括第一核心。该方法包括指令处理器以目标频率操作多个核心中的所有核心。该方法包括以下中的一项:(i)针对多个核心中的每个核心确定个体有效利用率,并且对个体有效利用率进行平均以生成有效利用率,以及(ii)跨多个核心对第一信息进行平均,跨多个核心对第二信息求平均值,并且基于经平均的第一信息和经平均的第二信息来生成有效利用率。
在其他特征中,处理器包括多个核心,该多个核心包括第一核心。该方法包括针对多个核心中的每个核心单独执行读取、生成、设置和指示。在其他特征中,从多个省电状态之中,对于第一省电状态,第一核心返回到活动状态的延时是最大的。
一种用于具有第一核心的处理器的频率调控器系统,包括数据子系统,被配置为从处理器读取电源管理信息的电源状态。处理器被配置为在多个省电状态中选择性地进行操作。电源管理信息包括:(i)第一信息,指示处理器的第一核心在活动状态下的占用,以及(ii)第二信息,指示处理器的第一核心在多个省电状态中的第一省电状态下的占用。该系统包括利用率分析器,被配置为基于第一信息和第二信息来生成有效利用率。该系统包括频率控制电路,被配置为通过执行以下中的所选动作来设置目标频率:第一动作,该第一动作包括提高目标频率,以及第二动作,该第二动作包括基于有效利用率来相对于处理器的当前频率降低目标频率。所选动作是根据有效利用率而被选择的。频率控制电路被配置为指令处理器以目标频率操作第一核心。
在其他特征中,频率控制电路被配置为:如果有效利用率大于阈值,则选择第一动作,并且如果有效利用率小于阈值,则选择第二动作。在其他特征中,频率控制电路被配置为通过将目标频率设置为有效利用率和处理器的当前频率的乘积来降低目标频率。
在其他特征中,利用率分析器被配置为基于第一数字和第二数字生成有效利用率。第一数字基于的是第一信息。第二数字基于的是第二信息。第一数字指示自利用率分析器的先前分析以来第一核心占用活动状态的时间分数。第二数字指示自先前分析以来第一核心占用多个省电状态的子集的时间分数。多个省电状态的子集是适当的子集,并且至少包括第一省电状态。在其他特征中,利用率分析器被配置为基于将第一数字除以第一数字和第二数字之和来生成有效利用率。
在其他特征中,处理器包括多个核心,该多个核心包括第一核心。频率控制电路被配置为指令处理器以目标频率操作多个核心中的所有核心。利用率分析器被配置为通过以下中的一项来生成有效利用率:(i)针对多个核心中的每个核心确定个体有效利用率,并且对个体有效利用率进行平均以生成有效利用率,以及(ii)在多个核心上对第一信息进行平均,跨多个核心对第二信息进行平均,并且基于经平均的第一信息和经平均的第二信息来生成有效利用率。
一种用于具有第一核心的处理器的频率调控器系统,包括用于从处理器读取电源管理信息的电源状态数据收集部件。处理器被配置为在多个省电状态中选择性地进行操作。电源管理信息包括:(i)第一信息,该第一信息指示处理器的第一核心在活动状态下的占用,以及(ii)第二信息,该第二信息指示处理器的第一核心在多个省电状态中的第一省电状态下的占用。该系统包括用于基于第一信息和第二信息来生成有效利用率的利用率分析部件。该系统包括用于通过执行以下中的所选动作来设置目标频率的频率控制部件:第一动作,该第一动作包括提高目标频率,以及第二动作,该第二动作包括基于有效利用率、关于处理器的当前频率降低目标频率。所选动作是根据有效利用率而被选择的。该频率控制部件指示处理器以目标频率操作第一核心。
在其他特征中,如果有效利用率大于阈值,则频率控制部件选择第一动作,并且如果有效利用率小于阈值,则选择第二动作。在其他特征中,频率控制部件通过将目标频率设置为有效利用率和处理器的当前频率的乘积来降低目标频率。
在其他特征中,利用率分析部件基于第一数字和第二数字生成有效利用率。第一数字基于的是第一信息。第二数字基于的是第二信息。第一数字指示自利用率分析装置的先前分析以来第一核心占用活动状态的时间分数。第二数字指示自先前分析以来第一核心占用多个省电状态的子集的时间分数。多个省电状态的子集是适当的子集,并且至少包括第一省电状态。在其他特征中,利用率分析部件基于将第一数字除以第一数字和第二数字之和来生成有效利用率。
在其他特征中,处理器包括多个核心,该多个核心包括第一核心。该频率控制部件指令处理器以目标频率操作多个核心中的所有核心。利用率分析部件通过以下中的一项来生成有效利用率:(i)针对多个核心中的每个核心确定个体有效利用率,并且对个体有效利用率进行平均以生成有效利用率,以及(ii)跨多个核心对第一信息进行平均,跨多个核心对第二信息进行平均,并且基于经平均的第一信息和经平均的第二信息来生成有效利用率。
本公开的进一步的适用领域将通过详细说明、权利要求和附图而变得显而易见。详细说明和特定示例仅仅是为了说明的目的,而不旨在限制本公开的范围。
附图说明
将从具体实施方式和附图更全面地理解本公开。
图1是在各种电源状态下的处理器性能的图形说明。
图2是具有更好细粒度的频率控制的处理器模型在各种电源状态下的处理器性能的图形表示。
图3是包括客户端设备和服务器的分布式计算系统的功能框图。
图4是可以实现本公开的频率控制的示例客户端设备的功能框图。
图5是根据本公开的实现频率控制的示例服务器的功能框图。
图6是计算系统的高级功能框图,其中操作系统控制处理器硬件的多个核心。
图7是处理器硬件的示例实现的操作系统控制的功能框图。
图8是描绘了处理器电源管理的用户软件控制的功能框图。
图9是处理器电源管理的操作系统控制的功能框图。
图10是并入本公开的频率控制的处理器硬件的示例实现的功能框图。
图11是根据本公开的原理的频率调控器系统的示例实现的功能框图。
图12是根据本公开的原理的示例频率控制的流程图。
图13A和图13B是根据本公开的原理的频率控制的流程图,其中集合中的所有处理器核心以相同的频率操作。
图14是图12的操作的更具体示例的流程图,其中呈现了某些变量的特定值作为示例。
图15A是针对三个不同的频率调控系统的系统功率与负载的曲线图。
图15B是针对五个频率调控系统的系统功率与负载的曲线图。
在附图中,附图标记可以被重复使用以标识类似和/或相同的元件。
具体实施方式
频率调控器试图使功耗最小化,同时仍然处理被呈现给处理器的负载。一些频率调控器试图通过查看应用层度量(诸如,查询响应时间或每秒事务)来分析负载。然而,这些度量可能在任何给定的时间点都没有与处理器的活动级别完全相关。进一步地,在操作系统托管虚拟机或容器的环境中,操作系统和底层硬件可能无法查看这些应用层度量(参见图6)。
不依赖应用层度量的一个性能感知省电技术是设置处理器频率,使得充分利用每个核心。然而,标识充分利用率是困难的。如果将活动(C0)状态用作活动时间的唯一测量,则频率调控器可能会低估负载。这是因为处理器可能由于其他系统(而非非活动)中的延迟而从C0状态转换到省电状态(诸如,C1非活动状态)。
例如,由于较慢的存储或网络延迟或其他调度延迟,可能进入C1状态。它也可能是由C状态降级引起的,其中没有进入更深的睡眠状态,因为它推测可能很快就会发生唤醒。如果省电状态转换足够快地被执行,和/或如果主存储器延迟相对于处理器时钟足够慢,则从主存储器中取得数据甚至可能会导致转换到C1。
处理器在非活动状态下花费的时间不一定反映了负载的减少;相反,在C0状态下花费的时间百分比较低可以表明处理器正在等待其他子系统,诸如,I/O(输入/输出)。换言之,观察到C0状态仅占用82%的时间可能不一定意味着应该降低频率,使得C0时间的百分比接近100%。通过仅考虑C0占用,主动省电调控器可能会通过错误地假设较低的C0占用意味着较低的负载而损失一半的可能吞吐量。
本公开描述了某些省电状态(诸如,C1和C3)指示被施加在处理器上的延迟,而其他非活动状态(诸如,C6)表示处理器的实际利用率不足。因此,代替控制以使C0占用最大化,频率调控器可以替代地控制以最小化指示利用率不足的省电状态下的占用。换言之,针对状态C6被评估以指示利用率不足的系统,可以降低核心的频率以使在状态C6下花费的时间百分比接近0%。备选地,这可以被表述为降低频率以使在其他状态(C0、C1和C3)下花费的时间百分比接近100%。
本公开描述了一种频率调控器,该频率调控器在某些操作管理体制中与传统的频率调控器相比减少了所使用的电源量,并且在其他操作管理体制中关于其他频率调控器提高了性能。这种新的频率调控器在仅考虑核心利用率(在C0状态下花费的时间百分比)的调控器上进行了改进。如果C1或C3状态被处理器核心大量占用,则这种调控器要么不会在高负载下主动省电,要么会遭受较大的吞吐量损失。
示例实现
在下文中,符号fCn表示在电源状态Cn下花费的时间分数(表示为0与1之间的实数),其中n是整数。在一些实现中,n可以是任何字符串,其可以包括整数或整数和字母的组合(诸如,“1e”)。
核心活动的时间分数fC0与核心频率成反比。这种比例通常不是线性的,因为执行时间的一些因素(诸如,内存层次结构停止时间(stall time))不受核心频率的影响。值fC6可以表示利用率不足,因为仅在处理器期望长时间空闲时才进入电源状态C6。通过降低处理器频率来减小fC6会增大fC0。针对在1与5之间(包含性的)的n的fCn之和通常可能不受核心频率的影响。这是因为这些状态通常是由I/O(包括存储和网络)或其他调度事件直接或间接引起的,这些事件的延时不直接取决于处理器核心频率。
利用Cfreq表示核心的当前频率,调控器选择目标频率Tfreq,
认识到针对所有n的fCn之和等于1,从1到5的n的fCn之和在1-5之外可以重写为1减去针对n的fCn之和。在当前示例中,状态C0和C6在范围1-5之外是仅有的省电状态。因此,以上等式可以如下重写:
在这种不等式中求解Tfreq会得出:
fC0与fC0和fC6之和的比率被称为有效利用率ρeff。从数学上讲,ρeff必须小于或等于1,并且如果目标频率基于的是当前频率乘以小于或等于1的数字,则该不等式仅指示如何降低操作频率。
为了校正过度使用,当ρeff超过阈值时,频率调控器增加Tfreq。例如,每当ρeff超过0.99时,调控器可以将Tfreq提高预定的增量。预定增量可以基于处理器核心的当前频率而变化。例如,在阈值以下(诸如,2GHz),可以使用100MHz的增量,而在该阈值之上,可以使用10MHz的增量。较高频率中的频率增量的较小值是由较高频率的昂贵功耗所引起的。例如,阈值可以对应于涡轮操作的区域(即,并非所有处理器核心都可以同时操作的频率)。代替两个增量,可以使用随着当前频率提高而减小增量的表达式。该表达式可以包括规定最小增量的下限以及规定最大增量的上限。
这些特定的参数选择可能略微倾向于省电而不是性能损失,并且因此,特定的实现可以基于系统设计的优先级来调整这些值。频率调控器可以每10毫秒之后调度Tfreq计算的迭代。然而,在处理时间和调度延迟的情况下,频率调控器的调用次数可能少于预期的每秒100次(1s/10毫秒)。例如,调控器实际上可能每秒被调用约70次。
频率调控器可以在用户软件(如图8所示)中被实现,作为内核或驱动器中的操作系统(图9)的一部分,作为BIOS(基本输入/输出系统)的一部分,或由处理器本身实现(图10)。基于电源状态的有效利用率可以按核心被测量,并且按处理器的核心被频率控制,该处理器允许针对不同核心的不同频率。在多个核心的频率被一起控制的处理器或系统中,有效利用率可以跨核心进行平均。例如,可以针对单个核心、一个处理器的核心的子集、一个处理器的所有核心或系统中的多个处理器的核心计算有效利用率。
无论这些服务器是独立的还是在分布式计算或云环境中,本公开的频率调控器都可以在服务器中被实现(诸如图5所示)。频率调控器也可以在客户端设备(参见图4)中被使用,诸如,台式计算机和便携式计算机。进一步地,诸如智能手机和可穿戴设备等个人设备可以实现本公开的频率调控器。针对云系统,功率的减少可以节省能源成本和温室气体排放以及数据中心的操作成本。针对便携式设备,频率调控器可以延长电池寿命。
实验
为了测试服务器任务上的频率调控器,将在线事务处理(OLTP)工作负载被用于测试目的。在一项测试中,来自联想集团有限公司的ThinkStation P710台式计算机包括来自英特尔公司的双插槽Xeon Broadwell处理器(E5-2620 v4)。这些处理器总共具有32个逻辑核心,其中同时启用多线程(也称为超线程)。进一步地,计算机包括64GB的双倍数据速率(DDR4)内存、被配置为单个逻辑卷的两个512GB固态磁盘(SSD)和两个1TB磁盘。
数据库服务器(诸如,来自微软公司的SQL服务器)被配置在Linux发行版(诸如,来自Canonical有限公司的Ubuntu16.04.1LTS)上。数据库服务器被配置为在由SSD形成的逻辑卷上存储数据和日志。这些处理器支持动态电压和频率缩放,其中核心频率缩放伴随电压变化,其导致动态功率的立方或近立方的变化,或者至少导致静态功率的线性变化。
这些处理器支持按核心的频率控制,这可以通过将频率值写入特定于模型的寄存器(MSR)被致动。所有核心均处于活动时的最大频率为2.3GHz。系统使用的全部功率可以通过与市电交流电源成行放置的功率计被测量。
测试工作负载包括六个表格的数据库方案以及涉及记录的读取、插入、更新和删除的九个事务类型的混合。事务通过在与测试机器联网的单独客户端上运行的许多连接线程被启动。“步调延迟”被定义为针对每个线程的一个事务的完成与下一事务的开始之间的平均时间(以秒为单位)。步调延迟可以随着时间变化,以观察频率调控器对负载变化的响应。具体地,在该测试中,针对线程的一个事务的完成与下一事务的开始之间的时间是指数分布的随机变量,其平均值被设置为步调延迟,并且最大上限为步调延迟的10倍。
在图15A和图15B的曲线图中,步调延迟从1减小通过0.5、0.2、0.1、0.05、0.04,一直到0(其中,在一个事务完成与针对下一事务开始的请求之间不存在延迟)。针对步调延迟的每个值,基准在启动周期(诸如,2分钟)之后运行稳定状态15分钟。由于数据库工作负载与硬件交互的方式可能会随着时间发展,因此在每个频率调控器被测试之前,数据库被还原到已知状态。
观察结果包括fC6随着负载增加而减小,这是由于核心驻留在深度睡眠状态的机会减少。fC0(活动状态)随着负载而增大,但是在满负载下仅达到约82%,其中几乎所有其余时间花费在C1上。针对固定负载,由于核心更快地完成处理工作,所以fC6随着核心频率的提高而增大,并且fC0随着频率的提高而减小。
图15A和图15B将本公开的频率调控器(标记为“新”)与现有频率调控器进行了比较。通过减少步调延迟来增加表示为每秒事务(TPS)的负载。在图15A中,将新的频率调控器与P状态性能和P状态省电频率调控器进行比较。在图15B中,将新的频率调控器与Cpufreq性能、省电、按需和保守的频率调控器进行了比较。每秒事务和消耗的功率都随着负载而增加(步调延迟的值减小)。
通常,资源调控器应该利用负载来缩放功率,以及旨在选择功率性能Pareto最佳配置。换言之,频率调控器应该被配置为针对所服务的负载消耗最少量的功率。与P状态性能和Cpufreq性能调控器相比,Cpufreq省电调控器节省了最多的功率(在D=0.1时约为34瓦),但是只能提供中低负载。Cpufreq按需调控器节省了较少的功率,但是可以服务更大的负载范围。然而,与满负载D=0时的Cpufreq性能调控器相比,它明显损失了吞吐量。
其余的调控器能够实现全部吞吐量,尽管其功率效率在负载范围内变化很大。如所看到的,与可以为整个负载范围服务的其他频率调控器相比,在每个负载级别上,新的频率调控器不再消耗更多的功率,并且在一些情况下消耗的功率要少得多。新的频率调控器可以被调整,以达成性能与功率之间的不同均衡。例如,通过增加针对较低频率的频率增量,可以以稍高的功耗为代价来增加新的频率调控器的吞吐量。
设备实现
以下是其中可以实现本公开的系统和方法的分布式计算环境的简化示例。在整个说明书中,对诸如服务器、客户端设备、应用等术语的引用仅出于说明性目的。术语服务器和客户端设备应广义地理解为表示具有配置为执行机器可读指令的一个或多个处理器和存储器的计算设备。术语应用和计算机程序应广义地理解为表示可由计算设备执行的机器可读指令。
图3示出了分布式计算系统100的简化示例。分布式计算系统100包括分布式通信系统110、一个或多个客户端设备120-1、120-2、…、和120-M(统称为客户端设备120)以及一个或多个服务器130-1、130-2、…、和130-M(统称为服务器130)。N和M是大于或等于1的整数。分布式通信系统110可以包括局域网(LAN)、诸如互联网的广域网(WAN)或其他类型的网络。例如,服务器130可以位于不同的地理位置处。客户端设备120和服务器130经由分布式通信系统110彼此通信。客户端设备120和服务器130使用无线和/或有线连接而被连接到分布式通信系统110。
客户端设备120可以包括智能手机、个人数字助理(PDA)、膝上型计算机、个人计算机(PC)等。服务器130可以向客户端设备120提供多个服务。例如,服务器130可以执行一个或多个供应商开发的软件应用。服务器130可以托管软件应用在向客户端设备120的用户提供服务时所依赖的多个数据库。
图4示出了客户端设备120-1的简化示例。客户端设备120-1通常可以包括中央处理器(CPU)或处理器150、一个或多个输入设备152(例如,小键盘、触摸板、鼠标、触摸屏等)、包括显示器156的显示子系统154、网络接口158、存储器160和大容量存储装置162。
网络接口158经由分布式通信系统110将客户端设备120-1连接到分布式计算系统100。例如,网络接口158可以包括有线接口(例如,以太网接口)和/或无线接口(例如,Wi-Fi、蓝牙、近场通信(NFC)或其他无线接口)。存储器160可以包括易失性或非易失性存储器、缓存或其他类型的存储器。大容量存储装置162可以包括闪存、磁性硬盘驱动器(HDD)和其他大容量存储设备。
客户端设备120-1的处理器150执行操作系统(OS)164和一个或多个客户端应用166。客户端应用166包括经由分布式通信系统110访问服务器130的应用。
图5示出了服务器130-1的简化示例。服务器130-1通常包括一个或多个CPU或处理器170、网络接口178、存储器180和大容量存储装置182。在一些实现中,服务器130-1可以是通用服务器,并且包括一个或多个输入设备172(例如,小键盘、触摸板、鼠标等)和包括显示器176的显示子系统174。
网络接口178将服务器130-1连接到分布式计算系统100。例如,网络接口178可以包括有线接口(例如,以太网接口)和/或无线接口(例如,Wi-Fi、蓝牙、近场通信(NFC)或其他无线接口)。存储器180可以包括易失性或非易失性存储器、缓存或其他类型的存储器。大容量存储装置182可以包括闪存、一个或多个磁性硬盘驱动器(HDD)和其他大容量存储设备。
服务器130-1的处理器170执行操作系统(OS)184和一个或多个服务器应用186,它们可以被容纳在虚拟机管理程序或容器化架构中。大容量存储装置182可以存储一个或多个数据库188,该一个或多个数据库188存储由服务器应用186使用来执行相应功能的数据结构。
框图
在图6中,简化的处理器硬件200包括四个核心204-1、204-2、204-3和204-4(统称为核心204)。用于操作系统内核和管理程序的管理程序层208包括管理核心204的电源状态的电源管理子系统212。例如,电源管理子系统212可以控制核心204的操作频率。
虚拟机220-1、220-2、…、220-n(虚拟机220)在操作系统内核和管理程序层208上执行。示意性地示出了用户软件224-1、224-2、…、224-n(用户软件224)。用户软件224可以包括端用户软件,诸如,办公室生产力应用和网络浏览器,并且可以包括服务器应用,诸如,网络服务器和数据库服务器。操作系统内核和管理程序层208可能无法洞察到虚拟机220内的应用级数据。因此,电源管理子系统212可能必须仅依赖于由核心204提供的、有关其相对利用率的数据。
在图7中,简化的处理器硬件300包括核心304-1和304-2。电压和频率调节器308-1控制核心304-1的操作电压和频率,而电压和频率调节器308-2控制核心304-2的操作电压和频率。例如,电压和频率调节器308中的每个电压和频率调节器308可以包括根据来自电源管理单元312的指令而串联(in tandem)变化的电压调节器以及分频器。
电源管理单元312可以与核心304通信,以确定核心304应该何时进入省电状态,并且通过向电压和频率调节器308发送适当的命令来控制核心的频率。电源管理单元312可以根据控制寄存器316中进行的设置来操作。在各种实现中,电源管理单元312可以将诸如核心304的当前操作频率的某些数据写入控制寄存器316。
性能管理计数器320测量核心304的性能度量。例如,性能管理计数器320可以在电源状态中的每个电源状态内测量每个核心304的驻留性。基于来自性能管理计数器的数据,操作系统内核328的电源管理子系统324可以更新控制寄存器316中的值,以指令电源管理单元312调整核心304的频率。作为示例,性能管理计数器320可以在活动状态(C0)以及深度睡眠(C6)状态下测量核心304的驻留性。电源管理子系统324周期性地读取这些值并且调整核心304的频率,以减少在深度睡眠状态下花费的时间比例。
在图8中,描述了可以如何使用用户软件来管理处理器频率的示例。示出了图7的处理器硬件300,而为了清楚起见省略了电压和频率调节器308。操作系统内核350包括频率调控器系统354,该频率调控器系统354通过处理器硬件访问层358与性能管理计数器320和控制寄存器316通信。例如,处理器硬件访问层358可以是驱动器,并且可以包括基本输入/输出系统(BIOS)。
用户软件362可以包括特权用户软件366。例如,特权用户软件366可以利用管理员(或根)凭证来操作。特权用户软件366可以包括根据本公开的原理的频率调控器系统370。频率调控器系统370可以通过处理器硬件访问层358访问控制寄存器316和性能管理计数器320。频率调控器系统370可能需要禁用频率调控器系统354和/或指示频率调控器系统354应该启用手动频率控制。
例如,上面提到的Cpufreq用户空间频率调控器可以允许特权用户软件366访问控制寄存器316和性能管理计数器320。在一些情况下,Cpufreq用户空间频率调控器施加某些限制,诸如,值上的较大粒度。因此,频率调控器系统370可以绕过用户空间接口,替代地直接将值写入控制寄存器316。这可以允许对核心频率进行更精细粒度的控制。在没有特权用户软件366的情况下,频率调控器系统354可以控制核心频率,诸如,使用上表中的调控器中的一个调控器。
即使省略了频率调控器系统354,频率调控器系统370也可能能够通过处理器硬件访问层358与控制寄存器316和性能管理计数器320进行交互。换言之,如果操作系统内核开放了对特权用户软件366的硬件访问,则操作系统内核350可能不需要包括频率调控器或理解频率调控器系统370与控制寄存器316和性能管理计数器320之间交换的信息。
在图9中,操作系统内核400可以包括根据本公开的原理的频率调控器系统404,其直接访问控制寄存器316和性能管理计数器320。频率调控器系统404可以被实现为操作系统内核400的一部分,作为用户模式或保护模式驱动器,作为计算机的基本输入/输出系统(BIOS)的一部分,或者作为与操作系统内核400集成或在操作系统内核400上执行的操作系统的封装。
在图10中,处理器硬件420可以包括核心424-1和424-2以及电压和频率调节器428-1和428-2,其与图7的那些类似。进一步地,电源管理单元432可以访问性能管理计数器436,其类似于图7的性能管理计数器320。在各种实现中,电源管理单元432可以由操作系统内核444的电源管理子系统440激活或启用。例如,电源管理子系统440可以处理包括暂停、睡眠和休眠的电源管理。
电源管理子系统440可以对被用于控制电源管理单元432的控制寄存器448进行写入。电源管理单元432可以包括电源管理协处理器452和存储微代码的非易失性存储装置456。根据本公开的原理,微代码由电源管理协处理器452执行以控制核心424的频率。微代码还可以做出关于何时使核心424中的每个核心424进入不同的省电模式的决策。
在各种实现中,本公开的频率调控器的硬件实现可以在处理器硬件420中被实现。然而,出于灵活性,频率调控器可以被表示为微代码。
在图11中,示例频率调控器系统500的功能框图包括电源状态数据收集子系统504。例如,电源状态数据收集子系统504可以诸如从上述性能管理计数器获取电源状态驻留性信息。电源状态数据收集子系统504可以在读取相关计数器时清除它们,使得每次读取到最后都是递增的。在其他实现中,电源状态数据收集子系统504可以从先前的读数中减去当前读数以确定递增变化。
针对每个核心的每个电源状态,统计分析子系统508将收集到的电源状态数据的任何形式转换为分数表示,诸如,0与1之间的实数。等效地,实数可以是0与100之间的百分比。
利用率分析器512确定每个核心的有效利用率。例如,可以将其计算为fC0与fC0和fC6之和的比率。在一些实现中,指示处理器的利用率不足的电源状态(诸如,C6)可以由电源状态期望控制516规定。例如,针对某些处理器,C5状态和/或C7状态也可以指示处理器的利用率不足。在C5和C7还指示利用率不足的情况下,电源状态期望控制516将指示fC5、fC6和fC7之和应该被最小化。然后,利用率分析器512可以在fC0和fC6之和中包括fC5和fC7。
闭环频率控制电路520从操作频率确定电路524接收核心的当前操作频率。例如,操作频率确定电路524可以从处理器寄存器或性能计数器中读取核心的当前操作频率。在其他实现中,假设目标频率现在将是操作频率,则操作频率确定电路524可以存储和唤回先前命令的目标频率。
闭环频率控制电路520试图将来自利用率分析器512的有效利用率最大化。然而,如下面更详细地描述的,如果有效利用率变得太高,则可能会发生过度使用,并且因此提高频率以提高性能。频率限制器528可以对来自闭环频率控制电路520的所命令的频率施加上限。频率限制器528然后将频率命令发送给核心中的每个核心的处理器。闭环频率控制电路520和频率限制器528可以一起被称为频率控制电路532。
流程图
在图12中,控制开始于600,其中处理器的第一核心被选择。控制可以周期性地开始,诸如,以预定的10毫秒间隔开始。在604中,针对所选的核心,自先前执行图12的控制以来,控制确定核心在各种电源状态下的驻留性。控制还确定了所选核心的当前频率。
在608中,控制计算被标记为“A”的值,该值指示核心在期望的电源状态下的相对驻留性(即,指示处理器的利用率的电源状态,诸如,C0)。控制还计算了被标记为“B”的值,该值指示核心在不期望的电源状态下的相对驻留性,其指示核心的利用率不足。例如,C6可能是不期望的电源状态。
作为612,控制基于A与A和B之和的比率来计算有效利用率。在616中,如果有效利用率超过阈值,则控制转移至620;否则,控制转移至624。如果有效利用率高于阈值,则可以指示核心的利用率过高,换言之,应该提高核心的频率以容纳负载。作为620,控制将目标频率提高所规定的偏移。偏移量可以基于目标频率而变化。
控制在628中继续,其中将上限应用于目标频率。然后,控制在632继续。在624中,控制将目标频率设置为有效利用率和核心的当前频率的乘积。然后,控制在632继续。在632,控制指令所选的核心以目标频率进行操作。控制在636继续,其中如果存在剩余的附加核心要评估,则控制转移至640;否则,控制结束。在640,控制选择下一核心并且返回到604。
在图13A和图13B中,核心集合的频率被一起控制,因此在每次控制迭代中一起被评估。例如,处理器可能不具有对核心的个体频率控制,因此处理器的所有核心是单个集合的一部分。在另一示例中,处理器的每对核心可以形成一个集合。当存在多个集合时,针对每个集合执行图13A或图13B的控制。
在各种实现中,处理器的多个核心可以被指派给某个虚拟机或容器。这些多个核心可以形成集合。然后,基于针对不同虚拟机的不同要求,可以将不同的参数用于频率调控器。例如,专用于虚拟机的具有更高要求的服务水平目标的核心可以由新的频率调控器控制,其参数优先于性能而不是省电。
控制开始于700,并且选择核心集合中的第一核心。在704中,控制确定所选核心的当前频率,以及确定自该控制的先前执行以来可用电源状态下的驻留性。在708,如果集合中存在附加核心要评估,则控制转移至712;否则,控制转移至716。在712,控制选择集合中的下一核心并且返回到704。
在716,控制计算(A)核心在期望的电源状态下的相对驻留性以及(B)核心在不期望的电源状态下的相对驻留性。具体地,在716中,相对驻留性跨集合中的所有核心被平均。在720,控制基于A与A和B之和的比率计算核心的平均有效利用率。
在724,如果平均有效利用率大于阈值,则控制转移至728;否则,控制转移至732。在728,控制将目标频率提高一个偏移量,然后在736继续。在736,控制将上限应用于目标频率,并且在740继续。在732,控制将核心集合的目标频率设置为平均有效利用率和当前频率的乘积。控制在740继续,并且指示处理器以目标频率操作该核心集合。然后控制结束。
图13B类似于图13A,除了分别确定每个核心的有效利用率并且对个体有效利用率进行平均值以确定平均有效利用率之外。利用与图13A相同的附图标记来标注与图13A类似的图13B的元件。
在704之后,控制在752继续,其中控制计算核心在期望的电源状态下的相对驻留性以及核心在不期望的电源状态下的相对驻留性。在756,控制计算所选核心的有效利用率。控制然后在708继续,其中如果在集合中存在附加核心,则控制转移至712;否则,控制转移至760。在760,控制对核心的有效利用率进行平均以创建平均有效利用率。然后控制在724继续。
在图14中,控制在800以10毫秒的时间表开始。控制选择第一核心并且在804继续。针对所选的核心,控制读取自图14控制的上一次执行以来所选核心所驻留的C状态。在808中,如果存在附加核心,则控制转移至812;否则,控制转移至816。在812中,控制选择下一核心并且返回到804。
在816,控制选择第一核心。在820,控制计算在C0和C6电源状态下所选核心的分数驻留性。在824,控制基于fC0与fC0和fC6之和的比率来计算有效利用率。在828,如果有效利用率大于阈值,诸如,0.99,则控制转移至832。否则,控制转移至836。
在832,如果目标频率超过指示涡轮(高功率)操作的阈值,则控制转移至840;否则,控制转移至844。在840中,控制将偏移量设置为10MHz,并且在848中继续。在844中,控制将偏移量设置为100MHz,并且在852中继续。如果目标频率大于最大上限,则控制转移至856;否则,控制转移至860。
在856,控制将目标频率设置为上限,并且在860继续。在860,控制将目标频率写入所选核心的特定于模型的寄存器。在864,控制将所选核心的当前频率估计为目标频率。然后在836中在循环的下一次迭代中使用该当前频率。控制在868继续,其中如果存在附加核心,则控制转移至872;否则,控制结束。在872中,控制选择下一核心并且返回到820。
结论
前述描述本质上仅是说明性的,绝不旨在限制本公开、其应用或用途。本公开的广泛教导可以以各种形式被实现。因此,尽管本公开包括特定示例,但是本公开的真实范围不应受到如此限制,因为在研究附图、说明书和以下权利要求时,其他修改将变得明显。应该理解,在不更改本公开的原理的情况下,可以以不同的顺序(或同时)执行方法内的一个或多个步骤。进一步地,尽管上面将实施例中的每一个描述为具有某些特征,但是即使该组合没有被明确描述,也可以在任何其他实施例的特征中实现和/或与任何其他实施例的特征组合关于本公开的任何实施例描述的那些特征中的任何一个或多个。换言之,所描述的实施例不是互相排斥的,并且一个或多个实施例彼此的置换仍在本公开的范围内。
元件之间(例如,模块之间)的空间和功能关系是使用各种术语来描述的,包括“连接”、“接合”、“接口连接”和“耦合”。除非明确描述为“直接”,否则在以上公开中描述第一元件和第二元件之间的关系,该关系包含在第一元件与第二元件之间不存在其他中间元件的直接关系以及在第一元件与第二元件之间存在一个或多个中间元件的间接关系(空间上或功能上)。如本文使用的,短语A、B和C中的至少一个应该使用非排他性逻辑OR解释为表示逻辑(A OR B OR C),并且不应解释为表示“A中的至少一个、B中的至少一个以及C中的至少一个”。
在附图中,如箭头所指示的,箭头的方向通常说明了该图示感兴趣的信息流(诸如,数据或指令)。例如,当元件A和元件B交换各种信息但从元件A传输到元件B的信息与图示有关时,箭头可能从元件A指向元件B。该单向箭头并不意味着没有其他信息从元件B传输到元件A。进一步地,针对从元件A发送到元件B的信息,元件B可以将对该信息的请求或接收确认发送到元件A。
在本申请中,包括下面的定义,术语“模块”或术语“控制器”可以用术语“电路”代替。术语“模块”可以指代执行代码的处理器硬件(共享、专用或组)和存储处理器硬件执行的代码的存储器硬件(共享、专用或组)、指代该处理器硬件和存储器硬件的一部分或者包括该处理器硬件和存储器硬件。
模块可以包括一个或多个接口电路。在一些示例中,接口电路可以包括被连接到局域网(LAN)、互联网、广域网(WAN)或其组合的有线或无线接口。本公开的任何给定模块的功能性可以被分布在经由接口电路连接的多个模块之中。例如,多个模块可以允许负载平衡。在进一步的示例中,服务器(也称为远程或云)模块可以代表客户端模块完成一些功能性。
如上面使用的,术语代码可以包括软件、固件和/或微代码,并且可以指程序、例程、功能、类别、数据结构和/或对象。共享处理器硬件包含单个微处理器,该微处理器执行来自多个模块的一些或全部代码。组处理器硬件包含微处理器,该微处理器与附加微处理器组合执行来自一个或多个模块的一些或全部代码。对多个微处理器的引用包含离散管芯上的多个微处理器、单个管芯上的多个微处理器、单个微处理器的多个核心、单个微处理器的多个线程或上述的组合。
共享存储器硬件包含单个存储器设备,该存储器设备存储来自多个模块的一些或所有代码。组存储器硬件包含存储器设备,该存储器设备与其他存储器设备组合存储来自一个或多个模块的一些或全部代码。
术语存储器硬件是术语计算机可读介质的子集。如本文使用的,术语计算机可读介质不包含通过介质(诸如,在载波上)传播的瞬时电信号或电磁信号;因此,术语计算机可读介质被认为是有形的和非暂时性的。非暂时性计算机可读介质的非限制性示例是非易失性存储器设备(诸如,闪存设备、可擦除可编程只读存储器设备或掩码只读存储器设备)、易失性存储器设备(诸如,静态随机存取存储器设备或动态随机存取存储器设备)、磁性存储介质(诸如,模拟或数字磁带或硬盘驱动器)和光学存储介质(诸如,CD、DVD或蓝光光盘)。
可以通过将通用计算机配置为执行计算机程序中体现的一个或多个特定功能而创建的专用计算机来部分或完全地实施本申请中描述的装置和方法。上述功能块和流程图元素充当软件规范,其可以通过技术人员或程序员的例行工作将其转换为计算机程序。
计算机程序包括存储在至少一个非瞬态计算机可读介质上的处理器可执行指令。计算机程序还可以包括或依赖于所存储的数据。计算机程序可以包含与专用计算机的硬件交互的基本输入/输出系统(BIOS)、与专用计算机的特定设备交互的设备驱动器、一个或多个操作系统、用户应用、后台服务、后台应用等。
计算机程序可以包括:(i)要解析的描述性文本,诸如,HTML(超文本标记语言)、XML(可扩展标记语言)或JSON(JavaScript对象表示法),(ii)汇编代码,(iii)由编译器从源代码生成的目标代码,(iv)由解释器执行的源代码,(v)由即时编译器编译和执行的源代码等。仅作为示例,可以使用来自包括C、C++、C#、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Fortran、Perl、Pascal、Curl、OCaml、HTML5(超文本标记语言第5版)、Ada、ASP(活动服务器网页)、PHP(PHP:超文本预处理器)、Scala、Eiffel、Smalltalk、Erlang、Ruby、Visual Lua、MATLAB、SIMULINK和的语言的语法来编写源代码。
权利要求中叙述的所有元件都不旨在成为U.S.C.§112(f)的含义内的装置加功能元件,除非使用短语“用于…的制造”或在方法权利要求的情况下使用短语“用于…的操作”或“用于…的步骤”明确叙述元件。
Claims (15)
1.一种用于处理器的频率调控器系统,所述处理器具有第一核心,所述系统包括:
电源状态数据采集子系统,被配置为从所述处理器读取电源管理信息,其中所述处理器被配置为选择性地在多个省电状态中进行操作,并且其中所述电源管理信息包括:(i)第一信息,所述第一信息指示所述处理器的所述第一核心在活动状态下的占用,以及(ii)第二信息,所述第二信息指示所述处理器的所述第一核心在所述多个省电状态中的第一省电状态下的占用;
利用率分析器,被配置为基于所述第一信息和所述第二信息来生成有效利用率;以及
频率控制电路,被配置为:
通过执行以下中的所选动作来设置目标频率:
第一动作,包括增加所述目标频率;以及
第二动作,包括基于所述有效利用率、关于所述处理器的当前频率降低所述目标频率,
其中所述所选动作是根据所述有效利用率而被选择的;以及
指令所述处理器以所述目标频率来操作所述第一核心。
2.根据权利要求1所述的系统,其中所述频率控制电路被配置为:
如果所述有效利用率大于阈值,则选择所述第一动作;以及
如果所述有效利用率小于所述阈值,则选择所述第二动作。
3.根据权利要求1所述的系统,其中所述频率控制电路被配置为通过将所述目标频率设置为所述有效利用率和所述处理器的所述当前频率的乘积,来降低所述目标频率。
4.根据权利要求1所述的系统,其中:
所述利用率分析器被配置为基于第一数字和第二数字生成所述有效利用率;
所述第一数字基于的是所述第一信息;
所述第一数字指示自所述利用率分析器的先前分析以来所述第一核心占用所述活动状态的时间分数;
所述第二数字基于的是所述第二信息;
所述第二数字指示自所述先前分析以来所述第一核心占用所述多个省电状态的子集的时间分数;以及
所述多个省电状态的所述子集是适当的子集,并且至少包括所述第一省电状态。
5.根据权利要求4所述的系统,其中所述利用率分析器被配置为基于将所述第一数字除以所述第一数字和所述第二数字之和,来生成所述有效利用率。
6.根据权利要求1所述的系统,其中:
所述处理器包括多个核心,所述多个核心包括所述第一核心;以及
所述频率控制电路被配置为指令所述处理器以所述目标频率操作所述多个核心中的所有核心。
7.根据权利要求6所述的系统,其中所述利用率分析器被配置为通过以下中的一项来生成所述有效利用率:
确定所述多个核心中的每个核心的个体有效利用率,并且对所述个体有效利用率进行平均以生成所述有效利用率;以及
跨所述多个核心对所述第一信息进行平均,跨所述多个核心对所述第二信息进行平均,并且基于经平均的所述第一信息和经平均的所述第二信息来生成所述有效利用率。
8.一种用于处理器的频率调控方法,所述方法包括:
从所述处理器读取电源管理信息,其中所述处理器被配置为选择性地在多个省电状态中进行操作,并且其中所述电源管理信息包括:(i)第一信息,所述第一信息指示所述处理器的第一核心在活动状态下的占用,以及(ii)第二信息,所述第二信息指示所述处理器的所述第一核心在所述多个省电状态中的第一省电状态下的占用;
基于所述第一信息和所述第二信息来生成有效利用率;
通过执行以下中的所选动作来设置目标频率:
第一动作,包括增加所述目标频率;以及
第二动作,包括基于所述有效利用率、关于所述处理器的当前频率降低所述目标频率,
其中所述所选动作是根据所述有效利用率而被选择的;以及
指令所述处理器以所述目标频率来操作所述第一核心。
9.根据权利要求8所述的方法,其中:
如果所述有效利用率大于阈值,则选择所述第一动作;以及
如果所述有效利用率小于所述阈值,则选择所述第二动作。
10.根据权利要求8所述的方法,其中:
所述有效利用率基于第一数字和第二数字而被生成;
所述第一数字基于的是所述第一信息;
所述第一数字指示自先前分析以来所述第一核心占用所述活动状态的时间分数;
所述第二数字基于的是所述第二信息;
所述第二数字指示自所述先前分析以来所述第一核心占用所述多个省电状态的子集的时间分数;以及
所述多个省电状态的所述子集是适当的子集,并且至少包括所述第一省电状态。
11.根据权利要求8所述的方法,其中降低所述目标频率包括:将所述目标频率设置为所述有效利用率和所述处理器的所述当前频率的乘积。
12.根据权利要求11所述的方法,其中所述有效利用率基于将所述第一数字除以所述第一数字和所述第二数字之和而被生成。
13.根据权利要求8所述的方法,其中:
所述处理器包括多个核心,所述多个核心包括所述第一核心;
所述方法包括:指令所述处理器以所述目标频率操作所述多个核心中的所有核心;以及
所述方法包括以下中的一项:
确定所述多个核心中的每个核心的个体有效利用率,并且对所述个体有效利用率进行平均以生成所述有效利用率;以及
跨所述多个核心对所述第一信息进行平均,跨所述多个核心对所述第二信息进行平均,并且基于经平均的所述第一信息和经平均的所述第二信息来生成所述有效利用率。
14.根据权利要求8所述的方法,其中:
所述处理器包括多个核心,所述多个核心包括所述第一核心;以及
所述方法包括:针对所述多个核心中的每个核心,单独地执行所述读取、所述生成、所述设置和所述指令。
15.根据权利要求8所述的方法,其中从所述多个省电状态之中,对于所述第一省电状态,所述第一核心返回到所述活动状态的延时是最大的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/640,537 US10551901B2 (en) | 2017-07-01 | 2017-07-01 | Core frequency management using effective utilization for power-efficient performance |
US15/640,537 | 2017-07-01 | ||
PCT/US2018/035251 WO2019009973A1 (en) | 2017-07-01 | 2018-05-31 | HEART FREQUENCY MANAGEMENT USING EFFECTIVE USE FOR EFFICIENT ENERGY PERFORMANCE |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110832434A true CN110832434A (zh) | 2020-02-21 |
CN110832434B CN110832434B (zh) | 2023-07-28 |
Family
ID=62705703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880044381.XA Active CN110832434B (zh) | 2017-07-01 | 2018-05-31 | 用于处理器的频率调控的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10551901B2 (zh) |
EP (1) | EP3649536B1 (zh) |
CN (1) | CN110832434B (zh) |
WO (1) | WO2019009973A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111722931A (zh) * | 2020-06-24 | 2020-09-29 | 龙芯中科技术有限公司 | 处理器的控制方法、装置、设备及存储介质 |
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10732694B2 (en) * | 2017-09-22 | 2020-08-04 | Qualcomm Incorporated | Power state control of a mobile device |
US11269396B2 (en) * | 2018-09-28 | 2022-03-08 | Intel Corporation | Per-core operating voltage and/or operating frequency determination based on effective core utilization |
US11409560B2 (en) * | 2019-03-28 | 2022-08-09 | Intel Corporation | System, apparatus and method for power license control of a processor |
US11775298B2 (en) * | 2020-04-24 | 2023-10-03 | Intel Corporation | Frequency scaling for per-core accelerator assignments |
CN113517702B (zh) * | 2021-04-26 | 2022-02-08 | 南京邮电大学 | 一种源储荷调切联动的紧急控制方法及系统 |
US20240094796A1 (en) * | 2022-06-10 | 2024-03-21 | Nvidia Corporation | Techniques to modify processor performance |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818829A (zh) * | 2006-03-10 | 2006-08-16 | 浙江大学 | 内核动态调节处理器频率的节能方法 |
US20080148027A1 (en) * | 2006-12-14 | 2008-06-19 | Fenger Russell J | Method and apparatus of power managment of processor |
CN101794167A (zh) * | 2008-12-23 | 2010-08-04 | 英特尔公司 | 用于处理器的功率管理的方法和装置 |
US20110283286A1 (en) * | 2010-05-11 | 2011-11-17 | Dell Products L.P. | Methods and systems for dynamically adjusting performance states of a processor |
CN104205087A (zh) * | 2012-02-04 | 2014-12-10 | 英派尔科技开发有限公司 | 芯片多处理器中的核心级动态电压和频率调节 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6829713B2 (en) | 2000-12-30 | 2004-12-07 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
US20090271646A1 (en) | 2008-04-24 | 2009-10-29 | Vanish Talwar | Power Management Using Clustering In A Multicore System |
US8327126B2 (en) | 2008-08-25 | 2012-12-04 | International Business Machines Corporation | Multicore processor and method of use that adapts core functions based on workload execution |
US8589707B2 (en) | 2008-12-05 | 2013-11-19 | Stmicroelectronics International N.V. | System and method for optimizing electrical power consumption by changing CPU frequency including steps of changing the system to a slow mode, changing a phase locked loop frequency register and changing the system to a normal mode |
US8347119B2 (en) | 2009-06-26 | 2013-01-01 | Intel Corporation | System and method for processor utilization adjustment to improve deep C-state use |
US9176572B2 (en) * | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US8689037B2 (en) * | 2009-12-16 | 2014-04-01 | Qualcomm Incorporated | System and method for asynchronously and independently controlling core clocks in a multicore central processing unit |
US8924756B2 (en) | 2011-06-27 | 2014-12-30 | Intel Corporation | Processor core with higher performance burst operation with lower power dissipation sustained workload mode |
US9495001B2 (en) | 2013-08-21 | 2016-11-15 | Intel Corporation | Forcing core low power states in a processor |
US9354943B2 (en) | 2014-03-19 | 2016-05-31 | International Business Machines Corporation | Power management for multi-core processing systems |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US20160378168A1 (en) | 2015-06-26 | 2016-12-29 | Advanced Micro Devices, Inc. | Dynamic power management optimization |
CN107844152B (zh) * | 2016-09-20 | 2020-06-02 | 华为技术有限公司 | 负载监控器、基于多核心架构的供电系统和电压调整方法 |
-
2017
- 2017-07-01 US US15/640,537 patent/US10551901B2/en active Active
-
2018
- 2018-05-31 CN CN201880044381.XA patent/CN110832434B/zh active Active
- 2018-05-31 WO PCT/US2018/035251 patent/WO2019009973A1/en unknown
- 2018-05-31 EP EP18733425.5A patent/EP3649536B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818829A (zh) * | 2006-03-10 | 2006-08-16 | 浙江大学 | 内核动态调节处理器频率的节能方法 |
US20080148027A1 (en) * | 2006-12-14 | 2008-06-19 | Fenger Russell J | Method and apparatus of power managment of processor |
CN101794167A (zh) * | 2008-12-23 | 2010-08-04 | 英特尔公司 | 用于处理器的功率管理的方法和装置 |
US20110283286A1 (en) * | 2010-05-11 | 2011-11-17 | Dell Products L.P. | Methods and systems for dynamically adjusting performance states of a processor |
CN104205087A (zh) * | 2012-02-04 | 2014-12-10 | 英派尔科技开发有限公司 | 芯片多处理器中的核心级动态电压和频率调节 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111722931A (zh) * | 2020-06-24 | 2020-09-29 | 龙芯中科技术有限公司 | 处理器的控制方法、装置、设备及存储介质 |
CN116881090A (zh) * | 2023-09-06 | 2023-10-13 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
CN116881090B (zh) * | 2023-09-06 | 2024-01-26 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2019009973A1 (en) | 2019-01-10 |
US10551901B2 (en) | 2020-02-04 |
EP3649536A1 (en) | 2020-05-13 |
EP3649536B1 (en) | 2022-05-18 |
US20190004585A1 (en) | 2019-01-03 |
CN110832434B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110832434B (zh) | 用于处理器的频率调控的方法和系统 | |
Ibrahim et al. | Governing energy consumption in Hadoop through CPU frequency scaling: An analysis | |
Guenter et al. | Managing cost, performance, and reliability tradeoffs for energy-aware server provisioning | |
Ding et al. | Energy efficient scheduling of virtual machines in cloud with deadline constraint | |
Sarood et al. | Maximizing throughput of overprovisioned hpc data centers under a strict power budget | |
US9618997B2 (en) | Controlling a turbo mode frequency of a processor | |
Rossi et al. | E-eco: Performance-aware energy-efficient cloud data center orchestration | |
Sheikh et al. | Energy-and performance-aware scheduling of tasks on parallel and distributed systems | |
KR101476568B1 (ko) | 코어 마다의 전압 및 주파수 제어 제공 | |
KR101629155B1 (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
Liu et al. | A survey of the research on power management techniques for high‐performance systems | |
US8104041B2 (en) | Computer workload redistribution based on prediction from analysis of local resource utilization chronology data | |
Cai et al. | SLA-aware energy-efficient scheduling scheme for Hadoop YARN | |
CN102822768A (zh) | 通过从处理器性能管理系统掩蔽处理来减少功耗 | |
EP2972826B1 (en) | Multi-core binary translation task processing | |
Al-Dulaimy et al. | Power management in virtualized data centers: state of the art | |
Islam et al. | Distributed temperature-aware resource management in virtualized data center | |
Kadjo et al. | Towards platform level power management in mobile systems | |
Guliani et al. | Per-application power delivery | |
JP2019510284A (ja) | 不揮発性メモリとしての揮発性メモリの使用 | |
Ibrahim et al. | Towards efficient power management in mapreduce: Investigation of cpu-frequencies scaling on power efficiency in hadoop | |
Eibel et al. | Empya: Saving energy in the face of varying workloads | |
Monteiro et al. | Quantum virtual machine: power and performance management in virtualized web servers clusters | |
Liu et al. | Fast power and energy management for future many-core systems | |
Kiselev et al. | An energy-efficient scheduling algorithm for shared facility supercomputer centers |
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 |