CN101981529B - 功率知晓线程调度和处理器的动态使用 - Google Patents

功率知晓线程调度和处理器的动态使用 Download PDF

Info

Publication number
CN101981529B
CN101981529B CN2009801121797A CN200980112179A CN101981529B CN 101981529 B CN101981529 B CN 101981529B CN 2009801121797 A CN2009801121797 A CN 2009801121797A CN 200980112179 A CN200980112179 A CN 200980112179A CN 101981529 B CN101981529 B CN 101981529B
Authority
CN
China
Prior art keywords
nuclear
power
mask
thread
processor
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
CN2009801121797A
Other languages
English (en)
Other versions
CN101981529A (zh
Inventor
A·马歇尔
Y·邓
N·S·贾齐
A·U·基什安
A·J·瑞茨
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101981529A publication Critical patent/CN101981529A/zh
Application granted granted Critical
Publication of CN101981529B publication Critical patent/CN101981529B/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
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5033Allocation 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 data affinity
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Power Sources (AREA)

Abstract

公开了用于提供功率知晓线程调度和处理器的动态使用的技术和装置。在某些方面,监视多核系统以确定核活动。可以将核活动与平衡功率节省计划与性能计划的电源策略进行比较。一个或多个核可响应于该比较而停止以降低多核系统的功耗。在其他方面,可以在预定间隔执行功率知晓调度以动态停止或启动核。其他方面包括响应于核活动与电源策略的比较来调整已启动的核的功率状态。

Description

功率知晓线程调度和处理器的动态使用
背景
计算机系统功耗管理对于延长电池的操作能力并降低总体功耗而言是重要的,这在财务和环境上都是有益的。甚至对于非移动计算机,降低功率要求对于节省重要的全球资源并在依赖电池备份系统时,如在公共事业电源中断期间延长操作是有益的。
虽然计算系统的大多数组件在系统操作期间使用电源,但处理器使用不成比例的系统电源份额。许多计算机系统,包括基于消费者的系统,都包括多个处理器和/或具有多个核的处理器。多个处理器允许计算机并行地执行增大的工作量,然而额外的处理器也会增大功耗。大多数现代处理器具有非常低功率的空闲功率状态,这可以对多核系统上每一个核应用,并可以由操作系统进行控制。另外,处理器频率可以在每一个核或每一个核组的基础上伸缩,以降低系统电源使用。
概述
提供本概述是为了介绍以下在详细描述中进一步描述的提供功率知晓线程调度和处理器的动态使用的简化概念。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
公开了用于提供功率知晓线程调度和处理器的动态使用的示例性技术和装置。根据一个或多个实施例,监视多核系统以确定核活动。检索电源策略以便为核启动性能和功率节省计划。多核系统的一个或多个核基于电源策略和核活动来停止(park)(置于系统指定的低功率状态)。当停止一个或多个核时,留下已启动(unpark)的核来处理所有剩余系统活动。在某些实施例中,可以修改电源策略以包括影响功率节省或系统性能的其他因素。在至少一个其他实施例中,除停止一个或多个核之外,多核系统还可以动态地调整一个或多个已启动的核的功率状态。
附图简述
参考附图来描述详细描述。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。不同附图中的相同附图标号指示相似或相同的项目。
图1是可以用来实现功率知晓线程调度和处理器的动态使用的至少一个实施例的说明性系统。
图2示出了创建核停止掩码并利用线程调度器来实现掩码以允许将工作分配到处理器的过程的至少一个实施例的流程图。
图3A和3B示出了根据本发明的至少一个实施例的说明性核利用。更具体而言,图3B示出了响应于如图3A所示的说明性系统核利用的对核利用的说明性修订。
图4示出了评估线程调度和处理器的动态使用并确定处理器的修订配置的说明性过程的至少一个实施例的流程图。
图5示出了提供功率知晓线程调度和处理器的动态使用的说明性过程的至少一个实施例的流程图。
图6示出了提供功率知晓线程调度和处理器的动态使用的说明性过程的至少一个实施例的另一流程图,还包括域空闲考虑。
图7示出了为功率知晓线程调度和处理器的动态使用提供附加设置的至少一个实施例的说明性流程图。
详细描述
处理器可以允许低功率空闲功率状态,包括不消耗功率(零瓦特)的空闲状态。当没有有用的工作要执行时,操作系统可以指示一个或多个处理器(或简称为“核”)进入空闲功率状态(即,处理器休眠状态)。最大化花费在这些低功率状态的时间可以提高系统能量效率和/或延长电池寿命。除这些处理器空闲功率状态之外,处理器还可以提供单独或结合处理器核电压的同时降低的对伸缩处理器频率的控制。这些控制可被统称为处理器功率管理(PPM)特征。
处理器可以便于每秒数十亿次的执行。尽管具有这一大容量来执行计算机指令,但处理器可以在短时间内具有相当大的工作负载变化。例如,短如打字员的键击之间的延迟的时间段可以允许PPM短暂地降低处理器功率或者甚至进入简短的休眠状态。虽然几分之一秒的功率看起来是微不足道的,但是比较长的时间内累积的功率节省会是显著的。
因此,当处理器没有足够的工作负载来证明较高的功率状态是恰当的时候,PPM可以通过指示未使用的处理器进入低功率状态或休眠状态(“停止”状态)来降低功率需求。停止的核可以被置于使用最少电量或根本不使用电量的处理器空闲功率状态(ACPI C状态)。要在系统上执行的活动工作将在启动的处理器上进行时间多路复用。
因此,此处在随后的各个章节中公开了方便提供功率知晓线程调度和处理器的动态使用的技术和装置。
说明性环境
图1是可以用来实现功率知晓线程调度和处理器的动态使用的至少一个实施例的说明性系统100。系统100包括计算设备102。例如,计算设备可以是移动计算机102(1)、台式计算机102(2),和/或服务器102(N),以及其他可能的计算设备。在非常基本的配置中,计算设备102通常包括一个或多个处理器(“处理器”)104。例如,处理器104可以是并行或串行配置的多个独立处理器和多核处理单元中的至少一个,或者单独地或者是不同的组合。多核处理器可以具有包括在同一个芯片或集成电路上的两个或更多处理器(“核”)。术语“处理器”、“核”和“逻辑处理器”在全文中可互换地使用,除非参考特定元素特别另外指明。
另外,计算设备102还包括系统存储器106。取决于计算设备的确切配置和类型,系统存储器可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)或两种类型的某种组合。系统存储器106通常包括操作系统108、一个或多个程序模块110,且可以包括程序数据112。
操作系统108可以包括负责指示处理器功率管理(PPM)特征的使用的内核功率管理器114。内核功率管理器114可以使用性能状态(p状态)或线性扼流状态(t状态)来调整处理器104的性能(例如,速度)。例如,内核功率管理器114可以在可能时平衡处理器104的功耗与当前工作负载以节省能量。另选地或另外地,内核功率管理器114可以允许处理器104响应于工作负载需求来提供最大处理能力。此外,当没有诸如程序模块110的线程等活动线程准备运行时,内核功率管理器114可以指示处理器104中的一个或多个进入低功率休眠状态。
操作系统108可以提供用于跨系统100中的所有可用的处理器104来对工作单元(线程)进行排队、调度、确定优先顺序和分派的模块,这些模块可以被表示为统称为内核线程调度器116的模块集合。当活动线程准备运行时,内核调度器116经由一个或多个模块将线程都分派到任何可用核以便进行处理。
一般而言,内核功率管理器114和内核调度器116在对处理器104的控制和操作方面具有竞争利益。内核功率管理器被配置成最小化处理器104的功耗,并且因此试图降低处理器104中的一个或多个的频率和/或功率状态。相反,内核调度器116被配置成最大化处理吞吐量,并由此偏爱将工作分发到所有处理器104。
计算设备102可具有附加特征或功能。例如,计算设备102还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘或磁带。这些附加存储在图1中由可移动存储118和不可移动存储120示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器106、可移动存储118和不可移动存储120都是计算机存储介质的示例。因此,计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备102访问的任何其它介质。任何这样的计算机存储介质都可以是计算机设备102的一部分。
计算设备102还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备122。还可直接或经由到计算设备102的连接来包括诸如显示器、扬声器、打印机等一个或多个输出设备124。
计算设备100还可包括允许该设备诸如通过网络来与其他计算设备进行通信的通信连接126。通信连接126是通信介质的一个示例。通信介质通常可以具体化为计算机可读指令、数据结构或程序模块。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、RF、红外线及其他无线介质之类的无线介质。计算机可读介质可以是可由计算设备102访问的任何可用介质。作为示例而非限制,计算机可读介质可包括“计算机存储介质”和“通信介质”。
各种模块和技术在此处可在诸如程序模块等由一个或多个计算机或其他设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括用于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些程序模块等可以作为本机代码执行或诸如在虚拟机或其它即时(just-in-time)编译执行环境中下载和执行。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。
说明性处理器配置
图2示出了创建核停止掩码并利用线程调度器来实现掩码以允许将工作分配到处理器的过程200的至少一个实施例的流程图。过程200被示为逻辑流程图中一组框的集合,这表示可用硬件、软件或其组合实现的一系列操作。在软件的上下文中,各个框表示当由一个或多个处理器执行时完成所述操作的计算机可执行指令。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序并不旨在被解释为限制,并且任何数量的所述框可以按任何次序和/或并行地组合以实现该过程。除了过程200之外,本发明通篇所描述的其他过程也应如此解释。出于讨论的目的,过程200参考图1所示的系统100来描述。
如图2所示,在202,在系统存储器中创建核停止掩码。例如,在202,内核功率管理器114可以创建驻留在操作系统108中的核停止掩码。说明性核停止掩码(“位掩码”或简称为“掩码”)204可以提供表示对应的核的单元格。如图2所示,说明性系统包括八个核,然而,也可以使用更多或更少的核。位掩码204在每一单元格中包括位值,其中“1”表示已停止的核,而“0”表示已启动的核。已停止的核是被置于低功率休眠状态的核。在某些实施例中,已停止的核没有功耗,由此使用零瓦特。在某些实施例中,核具有诸如共享硬件电路之类的依赖性。如果两个核都可以被置于低功率状态,则依赖性也可以被隐式地置于低功率状态。由此,可以选择与另一个掩码相比将最大化功率节省的核停止掩码。例如,关闭单个处理器插槽中的所有核可能比关闭两个处理器插槽中的一半的核节省更多功率。位掩码204包括四个已停止的核,编号(从右到左,零到七)为:3、5、6、和7。由此,核0、1、2和4是已启动的核。
根据一个或多个实施例,在206位掩码204可以求逆以创建求逆位掩码208。例如,内核功率管理器114可以创建求逆位掩码208。求逆位掩码包括对应于每一个单元格(即,核)的求逆位值。因此,可以优选用“1”指定的核来处理数据,而可以不优选用“0”指定的核来处理应用程序线程。
在210,诸如通过内核调度器116来确定应用程序调度。例如,计算设备102可以运行程序模块110中的一个或多个。一些程序模块110可以包括单线程程序,而其他程序模块可以包括多线程模块。通常,内核调度器116基于诸如优先级、核可用性、亲和性(调度限制)以及其他因素等多个因素来将每一线程调度到可用核。当线程在数量上超过可用核时,则内核调度器116交替线程或以其他方式调度线程以确保线程最终取得进展(即,由处理器执行)。处理器104可以在单个核上每秒交替线程许多次,由此为内核调度器116提供将线程有效地调度到可用核的机会。
虽然许多程序模块不会将线程分配到特定处理器,但某些复杂程序模块可能需要由特定处理器执行线程,这被称为设置线程的处理器亲和性。程序模块线程亲和性掩码212表示如由程序模块110确定的被请求处理线程的核。例如,第一程序模块可以具有第一亲和性掩码212(1),其表示线程必须由内核调度器116调度到核0和1。与第二程序模块相关联的第二亲和性掩码212(2)可以指示线程可以被调度到核2和3,而另一个程序模块可以包括亲和性掩码212(P),其表示线程可以被调度到任一个可用核(所有核都被示为被选中)。应该注意,亲和性掩码212(P)是特殊情况,因为它有效地不包括对将线程分配到核的约束。
在某些实施例中,在214,使用“AND(与)”操作符来一次一个地将程序模块亲和性掩码212与求逆位掩码208组合以确定对于可用的处理器集218的适合的处理器集合。在220,使用第一亲和性掩码212(1)来创建第一可用处理器集218(1)。过程200可以包括对于每一个程序模块的操作210、214和220(即,对于求逆位掩码208和亲和性掩码212的每一次组合)的迭代过程。由此,在操作210、214和220的第二次迭代期间,使用第二亲和性掩码212(2)来创建第二可用处理器集218(2),以此类推。
如上文所讨论的,使用每一个核(例如,核0……核7)的位值来确定用于调度线程的可用处理器集218。在两个操作数(即,核的组合位值)都包括表示线程亲和于特定核的“1”的情况下,“AND”操作符216返回核位值“1”。例如,当第一亲和性掩码212(1)与求逆位掩码208组合时,核0和1两者都是活动核并且将返回核位值“1”,而其余核2-7包括核位值“0”,如在第一可用处理器集218(1)中说明性地示出的。
第二亲和性掩码212(2)在核3处包括核值“1”,而求逆位掩码208指示核3已被停止。内核调度器116可以选择覆盖求逆位掩码,以适应在第二可用处理器集218(2)中表示的第二亲和性掩码212(2),其中核3包括核值“1”,因此将工作转移到在求逆位掩码208中被指定为已停止的核(随后可以被启动)。在某些实施例中,可以使用任意数量的试探来调度线程。可以使用线程的亲和性方面的最优核,同时忽略求逆位掩码208。如果最优核已停止,则退回可以包括将同一个NUMA(非均匀存储器存取)节点中的处理器选为优选核。调度器将核停止求逆掩码视作运行线程的优选位置的提示,但它将在相信什么是性能最佳选项的硬限制(硬亲和性)之间进行选择。
在所有核都被指定为可用的情况下,如在亲和性掩码212(P)中,可以忽略位值,因为程序模块指示它允许任何核执行线程。亲和性掩码212(P)可以包括由求逆位掩码208指示的任一个核处的调度的核,诸如核0、1、2和4,如由可用处理器集218(P)通过核值示出“1/0”(“1”或者“0”,同时至少一个核必须具有核值“1”,以允许调度亲和性掩码212(P)的工作)来表示的。在某些实施例中,当确定将工作分配到可用核时,可用处理器集218(P)可以选择已启动并且空闲的核。在理想情况下,工作轮换可以将工作分配到核0、1、2和3,由此留下核4未使用,并可能在后续动作中停止。如下面所讨论的其他考虑事项可以确定响应于亲和性掩码212(P)给哪些核分配工作以创建优选位置。例如,优选位置可以基于诸如可任选存储器存取性能之类的因素。
如上文参考图2所描述的,可以使用操作210、214和220来调度线程。另外,可以通过诸如延迟过程调用(DPC),计时器,处理中断,或其他处理器工作等操作210、214和220来在过程200中执行其他工作。
根据一个或多个实施例,图2示出了一时间片内的示例核使用222。例如,来自可用处理器集218的活动核的组合可能导致给定时间检查间隔(诸如,但不限于100毫秒)期间的核使用222。核使用222中的核4可以或可以不被表示为取决于工作是否被调度到可用处理器集218(P)中的核4,如上文所讨论的。从内核功率管理器114的观点来看,在理想情况下,核使用222将包括核4的核值“0”,由此最小化已启动的核的数量,并导致功耗降低。不管核使用222如何,可以为下一时间片创建新的核停止掩码,可以使用来自核使用222的信息来确定新的核停止掩码。在某些情况下,可能不需要核3,因为核2可以具有足够的处理利用以满足第二亲和性掩码212(2)并且仍是已启动的核。
图3A和3B示出了根据本发明的至少一个实施例的说明性核利用。更具体而言,图3B示出了响应于如图3A所示的说明性系统核利用的对核利用的说明性修订。
根据一个或多个实施例,图3A示出了包括多个核302、304、306和308的系统300,但在系统300的替换实施例中可以包括更多或更少的核。内核功率管理器114可以使用电源策略来控制核。电源策略可以确定活动核的数量,并影响内核功率管理器114如何计算可用核的集合。可以使用电源策略来限制可用核的数量,或允许内核功率管理器114伸缩可用核的数量。平台支持的核数量可以随不同的系统而变化,由此需要灵活的方案以允许由内核功率管理器在未提前知道有多少核可用的情况下指定核的数量。因此,在某些实施例中,要使用的核数量可被表达为最大核利用的百分比。因此,核的实现可能需要将百分数舍入到表示核数量的下一可用数字。例如,核使用百分比可以计算为60%。如果系统包括四个核,则该百分数可以被舍入为75%,并且三个核将启动,而一个核停止。
每一核都包括表示该核的工作负载的核利用(“核效用”)310,其被表达为独立于核的性能状态的总时间中的核运行时间的百分比。例如,核0302可以具有80%的核效用,指示该核正在执行比核“0”的最大工作负载容量少20%的工作。因此,100%的核效用表示核正在执行最大容量工作,而具有0%核效用的核表示未使用的核。在某些实施例中,内核功率管理器114可以监视核效用310。
另外,每一核都可以包括性能状态(高级配置和电源接口(ACPI)p状态)312。p状态312是核频率和电压设置,并由内核功率管理器114进行控制。p状态312类似于电动机的扼流控制。100%的p状态312表示核的最大性能状态,而50%的p状态表示核处于最大频率的一半,且核电压电平相应地降低。应该注意,核的实际功耗可能不与p状态312一致或成比例。例如,由于诸如核功率泄漏、核基本功耗和/或其他因素等因素,使核的p状态312翻倍可能不会使核的功耗翻倍。在某些实施例中,内核功率管理器114可以诸如通过参考电源策略来确定和/或控制p状态312。
每一核都包括表示核相对于总工作负载容量的工作负载的输出利用值(“输出效用”)314。例如,输出效用314可以具有标度0-10000,其中0表示无利用,10000表示最大利用。输出效用314可以通过将核效用310和p状态312相乘来计算。例如,核0302包括80%的核效用和80%的p状态,因此输出效用是6400。在某些实施例中,输出效用314被内核功率管理器114用来确定核停止决定和/或确定p状态312设置,如参考电源策略。
在某些实施例中,系统300可以包括核块316,如第一核块316(1)和第二核块316(2),然而,可以在系统300中实现更多或更少的核块。核块316可以表示具有单个电路且具有多个核的平台,如双核或多核处理器。每一核块316都可以包括独特的功耗特性。例如,核可以包括当块中的任一个核被启动时出现的活动水平功耗、核泄漏,或其他功耗。例如,如果第一核块316(1)中的两个核被启动并具有输出效用10000,则组合功耗可以是2x瓦特。如果第一核块316(1)中的核0302随后被停止(例如,输出利用是0),而核1304保持不变,则由于诸如功率泄漏、活动功耗和/或其他因素之类的与核块316相关联的因素,组合功耗可以大于x瓦特。当核1随后被停止时,所产生的功耗可以是0瓦特。因此,停止核以使得整个核块在其他核被随后停止之前变为停止是有利的,由此最大化功率节省。
如图3A所示,系统300的说明性实现包括核3308停止,而其他核启动(即,活动)。虽然核3包括100%的p状态,但这可能不表示电能被供给到核3。换言之,内核功率管理器114可以停止一个核,同时使p状态处于大于0%的水平。
在示例利用情形下,内核功率管理器114可以计算系统300的输出,以确定最大总系统效用30000(即,3个已启动的核×10000=30000)的总系统效用12600(即,6400+3200+3000=12600)。上面所引用的利用数旨在解释可以使用总系统效用来执行的计算的性质,由此不限于本发明。
图3B在经修订的系统318中示出了响应于如图3A所示的总系统利用的对核利用的说明性修订。经修订的系统318包括对核302、304、306和308的停止/启动状态的修订。如上文所指出的,参考系统300,在一示例中,计算出总系统效用为12600。因此,内核功率管理器114可以在不降低该系统满足当前工作负载需求的能力的情况下停止其他核,因为总系统效用小于两个核的最大利用容量(即,12600<20000)。根据某些实施例,内核功率管理器114可以或许基于电源策略或其他因素来选择要停止的核,这对系统用户是完全透明的。用户透明性包括没有用户可感知到的系统或应用程序性能影响,除其更佳的能源效率的主要目标外。实现核停止所需的任何变化可被限于非常低级别的操作系统内部组件,并因此对于与核停止相关联的最终用户而言没有行为或体验变化。
当停止第二核时,经修订的系统的最大总系统效用将下降到20000(2个核×10000)。内核功率管理器114可以停止在先前状态(如图3A所示)中是活动的任一个核。如上文所讨论的,停止核2306以完全停止第二核块316(2)可能是有利的,从而导致核块320停止。因此,与停止核0302或核1304而不是核2306相比,已停止的核块320可以增加功率节省。
为了适应对系统318的任何用户的透明变化,必须吸收已停止的核(核2)的输出效用或将其重新分配到其余已启动的核(即,核0和核1)。从图3A中,核2的输出效用是3000。因此,在一种情况下,已启动的核可通过使每一个核都具有经修改的输出效用322(假设对于每一个核的额外输出效用1500)来同等地共享负担。在某些情况下,当将效用分配到已启动的核时,可以使用已停止的核的总效用的其他部分。例如,已启动的核可以接近容量运行(总效用接近作为最大效用的10000)。在这样的情况下,具有较大的带宽的核可以吸收更多的已停止的核的总效用。
在一个或多个实施例中,内核功率管理器114可以分别将核0302和核1304的核效用310调整到79%和47%。另外,内核功率管理器114可以将两个已启动的核的p状态312增大到100%。因此,经修订的系统318的总系统效用仍旧等于系统300的总系统效用12600。
经修订的系统318示出了对已停止/启动的状态、核效用310和/或p状态312的一种可能的修订,以适应对用户透明同时导致经修订的系统318的功耗降低的核修订。然而,可以在系统318中作出导致功耗降低并且对用户透明的许多其他修订。例如,核1304的核效用310可以增大到94%,而p状态降低到50%,从而导致总效用4700。修订策略可由考虑内核功率管理器114和内核调度器116的竞争利益的电源策略来确定。
可以在电源策略中实现可能影响经修订的系统318的其他考虑事项。例如,非时间敏感线程(例如,后台线程)可能对核停止决定造成较少的影响,同时使变化对用户保持透明。更具体而言,通过包括跨在给定核上执行的线程优先级的平均运行时的分布,内核功率管理器114可以伸缩核的计算出的利用,以使得不会像高优先级线程和工作负载那样考虑低优先级线程和工作负载。
图4示出了评估线程调度和处理器的动态使用并确定处理器的修订配置的说明性过程400的至少一个实施例的流程图。除操作系统108中和/或驻留在系统存储器106上的其他模块之外,过程400可以由内核功率管理器114实现。
根据一个或多个实施例,内核功率管理器114评估用于监视输出效用314(以及包括核效用310、p状态312等其他因素)的时间段。可以选择等于、或长于可用于处理每一线程的时间片的时间段。内核功率管理器114可以按给定频率启动对核的监视。
在404,内核功率管理器114可以计算总系统利用和最大总系统利用。内核功率管理器114可以在406查阅电源策略以确定如何调整核使用,以平衡内核功率管理器114的功率节省需求和内核调度器116和核可用性(处理性能)需求。在408,可以使用其他因素来确定是否要调整核使用,如果是,则确定如何调整使用以实现系统目标,诸如对用户的透明变化,适应热要求,和/或适应其他约束。
在410,内核功率管理器114可以为核计算新配置。例如,内核功率管理器可以计算新位掩码202,如2所示。在一个或多个实施例中,在410,可以调整位掩码以创建可用处理器集218。在412,内核功率管理器114可以实现来自410的配置。在某些实施例中,过程400可以重复以创建动态核分配,如通过以预定频率进行重复。或者,过程400可以在给定时间段内创建静态核分配。
说明性操作
图5示出了提供功率知晓线程调度和处理器的动态使用的说明性过程500的至少一个实施例的流程图。关于过程的排序和实现,过程500应该与图2的过程200类似地解释。例如,过程500中描述操作的次序并不旨在解释为限制,并且任何数量的所描述的框可以按任何次序和/或并行组合以实现该过程。出于讨论的目的,过程500参考图1所示的系统100来描述。
根据一个或多个实施例,“时间校验(TimeCheck)”周期性的评估例程可以从502开始。例如,延迟过程调用(DPC)可以从502开始。在某些实施例中,经由以固定周期性速率(通过时间值的电源策略参数“时间校验”配置的,如100毫秒、50毫秒或另一个时间值)运行的DPC,在每一核上输入状态机。在504,内核功率管理器114可以收集核的度量。例如,DPC被排到每一当前活动核以抓取活动核的度量。度量可以包括核利用、线程优先级分布、每一个核的就绪线程的平均等待时间,和/或空闲状态驻留的成功和失败度量,还有其他可能的度量。
在506,内核功率管理器114可以计算诸如核停止掩码204之类的位掩码。例如,可以基于利用阈值、电源策略,和/或任何依赖关系来为目标数量的活动核计算新的值。在508,可以更新活动集,如通过实现由内核功率管理器114管控的过程200以创建可用处理器集218。
在510,可以由操作系统108实现活动集。在512,内核功率管理器114可以确定是否已经添加了(已启动的)核。如果启动了核,则可以在514通知内核调度器116,并可以开始使用已启动的核来调度线程。这些已启动的核可以是远程线程调度(即,从不同的处理器)的目标,或者可以主动地选择从其他处理器选择线程。在某些实施例中,可以重新分配线程以便在已启动的核上运行,由此减少来自其他已启动的核的工作负载。
在516,可以由内核功率管理器114计算预期核输出利用,并且该核输出利用可以包括来自506的已启动的核。由此,使用对应于在506确定的活动核的数量的新的值来计算预期处理器利用。在518,内核功率管理器114可以计算p状态的新的值。在某些实施例中,在每一个核上调度DPC以更新其目标p状态。在一示例中,如果预期利用提高,则在没有核启动的情况下(在512)p状态值还可以增大。然而,如果在512启动核,则p状态可以增大或缩小,以平衡内核调度器116的处理需求和内核功率管理器114的功率节省需求。
在520,内核功率管理器114基于518处的结果来确定是否应该修订p状态和/或t状态(线性扼流状态)当前值。如果在520修改p状态和/或t状态,则在522,内核功率管理器114可以将过渡DPC排到受影响的核。由此,由内核调度器116调度的线程可以被调度到以如在520实现的新p状态和/或t状态运行的核。
在524,内核功率管理器114确定在506是否停止了核。例如,来自516的预期核输出利用可能小于当前利用。如果在524已经停止核,则内核功率管理器114可以在526通知内核调度器116终止将线程调度到新停止的核。对于添加或移动到活动核掩码的任何核,为该核调度DPC。如参考图3A和3B所描述的,可以将来自已停止的核的工作重新分配到一个或多个已启动的核。在某些实施例中,可以将新已停止的核置于可用的最深c状态。最后,在528,可以重复过程500。
图6示出了提供功率知晓线程调度和处理器的动态使用的说明性过程600的至少一个实施例的另一个流程图,还包括域空闲考虑。过程600包括如图5所描述的许多子过程,因此,将不描述图5中的那些子过程。
在602,内核功率管理器114可以确定是否启用域空闲考虑。如果启用域空闲考虑,则在604,域主抓取域(例如,核块316或所有核)的度量。
在某些实施例中,在606,域空闲考虑可以发起另一个决定。如果启用域空闲考虑,则在608,内核功率管理器114可以计算域目标p状态。最后,在610,可以重复过程600。
图7示出了提供用于功率知晓线程调度和处理器的动态使用的附加电源策略设置及其他输入的过程700的至少一个实施例的流程图。在某些实施例中,核停止可被实现为对计算用于处理器性能状态的目标状态的现有状态机的增强。将基于多个因素来确定要在任何给定时刻使用的核的正确数量,如下面参考过程700所描述的。
根据一个或多个实施例,在702,可以使用当前电源策略来设置要利用的核数量。在704,可以设置核的最小或最大数量。内核功率管理器114可以计算以能量高效的方式完成给定工作负载所需的活动核的数量。在某些情况下,运行最小数量的核可以有益于功率节省,并有益于内核功率管理器114。相反,运行最大数量的核可以提供最高性能水平,由此有益于内核调度器116。
在706,可以由内核功率管理器114使用子过程706(1)……706(4)中的一个或多个来实现用于核停止的附加电源策略参数。在706(1),可以调整用于停止和/或启动核的必需时间间隔。例如,可以通过改变间隔来操纵停止和/或启动核的频率。在某些实施例中,可以在第一间隔停止核,而在第二间隔启动核。例如,偏爱功率节省的策略可以频繁地如每隔100毫秒停止核,可以只可每隔500毫秒启动核。
在706(2),内核功率管理器114可以实现增大和/或减小策略。例如,第一策略选项可以一次只停止设定数量的核,如一次一个核。第二策略选项可以停止或启动核以实现理想的核利用,由此一次停止和/或启动多个核。第三策略可以转到一个极端或另一个极端(或者尽可能多地停止,或者尽可能多地启动)。
在706(3),可以基于处理器的忙碌度来增大或减小所需利用阈值。例如,处理器可以直到该处理器(或其他处理器)在给定时间段内包括忙碌状态才经历停止或启动状态变化。这可以使处理器减少在停止和启动状态之间快速连续翻转。
最后,在706(4),可以实现用于伸缩已启动的核的策略。例如,内核功率管理器114可以基于当前活动集中的处理器核的数量来计算理想的目标处理器性能状态。为在功率节省、性能,以及对特定工作负载的响应性之间提供最佳折衷,内核功率管理器114可以有利地以较高性能状态运行较小数量的处理器,或相反以较低性能状态运行较大数量的核。
在708,可以由内核功率管理器114使用子过程708(1)和708(2)中的一个或多个来实现核和/或系统试探。在708(1),内核功率管理器114可以基于深处理器空闲功率状态(休眠状态)的成功使用来计算所需活动核的数量以及活动使用中的核的最佳性能状态。这可以使内核功率管理器能够检测何时没有跨活动(已启动的)核集合高效地使用较深的空闲状态。为节能而仍提供性能,将更多核置于停止状态,并且提高其余活动核的性能状态以确保工作被高效地执行是有益的。
在708(2),可以使用平均等待时间以使得准备好将线程分配(分派)给核。例如,内核功率管理器114可以通过使用处于就绪状态的线程的平均等待时间的分布来计算所需处理器核的数量,这允许内核功率管理器伸缩使用中的核的数量以减少处于就绪状态的线程能够运行之前的等待时间,由此提高性能和响应性。在一示例中,当大量线程需要运行时,在降低核的p状态的同时启动核是有利的,因为每一个核一次只能处理一个线程。由此,在某些情况下,更多核可用性将使得能够处理大量线程。
在710,内核功率管理器114可以使用空闲状态依赖性来调整核停止实现。当内核功率管理器114选择应该停止或启动哪些特定核时,它将首先检查核的空闲状态依赖关系以确定哪些核可以共享电源或时钟资源,并基于共享控制来以最高能效方式选择停止或启动核。
在712,在确定是否要停止或启动一个或多个核时,可以考虑性能和扼流状态关系。共享性能状态或节流控制的核可以一起停止或启动,以实现更大的能效。
在714,可以考虑核封装(块)关系,如图3A和3B中所描述的关于核块的效率的依赖性,且更具体而言,在停止一新核块中的另一个核之前停止一核块。最后,在716,在实现核停止考虑事项时,内核功率管理器114可以使用存储器位置。例如,两个或更多核可以具有封装关系,诸如这些核共享具有共享存储体(例如,NUMA(非均匀存储器存取)节点)的物理处理器封装。与不共享共享的存储体的核相比,共享的存储体可以允许核具有减少的存储器存取时间。
结论
上文所描述的技术、系统和装置涉及提供功率知晓线程调度和处理器的动态使用。虽然已经用对结构特征和/或方法动作专用的语言描述了这些技术、系统和装置,但是应该理解,所附权利要求不必限于所述的具体特征或动作。相反,这些具体特征和动作是作为实现这些技术和装置的示例性形式而公开的。

Claims (17)

1.一种用于平衡具有多个核的计算设备的性能和功率节省的方法,包括:
确定哪些核正在活动地处理工作;
确定电源策略以便对多个核启动性能和功率节省计划;以及
基于所述电源策略来停止所述活动地处理工作的核中的至少一个,
其中确定所述电源策略包括:
创建核停止掩码,所述核停止掩码提供表示对应的核的单元格,所述核停止掩码在每一单元格中包括位值以表示所述对应的核的已停止或已启动状态;
确定表示将线程分配到在其上处理的一个或多个核的线程处理器亲和性掩码;
通过使用“AND”操作符将所述核停止掩码的求逆与所述线程处理器亲和性掩码组合来创建可用处理器集而提供所述核的性能和功率节省计划的至少一部分;以及
基于所述可用处理器集和活动地处理工作的核来计算要指定停止或启动哪些核。
2.如权利要求1所述的方法,其特征在于,所述确定电源策略作为迭代过程动态地进行。
3.如权利要求1所述的方法,其特征在于,还包括基于所述电源策略来伸缩所述多个核中的至少一个,其中所述伸缩所述多个核中的至少一个包括调整核的核效用或功率状态中的至少一个以增加功率节省。
4.如权利要求1所述的方法,其特征在于,所述停止所述活动地处理工作的核中的至少一个包括:
确定已启动的核块是否包括已停止的核;以及
如果确定所述已启动的核块具有所述已停止的核,则停止所述已启动的核块中的至少一个已启动的核。
5.如权利要求1所述的方法,其特征在于,还包括使用以下项来修改所述电源策略:
核和系统试探,其中所述核和系统试探是使用以下子过程中的一个或多个来实现的:基于深处理器空闲功率状态的成功使用来计算所需活动核的数量以及活动使用中的核的最佳性能状态的第一子过程,以及通过使用处于就绪状态的线程的平均等待时间的分布来计算所需处理器核的数量的第二子过程。
6.一种用于平衡多核系统的性能和功率节省的方法,包括:
监视所述多核系统中的核活动;
检索用于所述多核系统的电源策略,所述电源策略平衡所述多核系统中的每一个核的功率节省和处理性能;以及
基于所述电源策略,响应于所述核活动来停止至少一个核,
其中所述电源策略是通过以下步骤确定的:
创建核停止掩码,所述核停止掩码提供表示对应的核的单元格,所述核停止掩码在每一单元格中包括位值以表示所述对应的核的已停止或已启动状态;
确定表示将线程分配到在其上处理的一个或多个核的线程处理器亲和性掩码;
使用“AND”操作符将所述核停止掩码的求逆与所述线程处理器亲和性掩码组合来创建可用处理器集;以及
基于所述可用处理器集和活动地处理工作的核来计算要指定停止或启动哪些核。
7.如权利要求6所述的方法,其特征在于,所述停止核包括将核功率状态降低到最小功率处理器空闲功率状态。
8.如权利要求6所述的方法,其特征在于,还包括调整所述多核系统中的至少一个已启动的核的功率状态。
9.如权利要求6所述的方法,其特征在于,所述响应于所述核活动来停止至少一个核是以预定频率动态发起的。
10.如权利要求6所述的方法,其特征在于,所述监视多核系统中的核活动是在预定时间段内进行的,并且其中所述响应于所述核活动来停止至少一个核是响应于所监视的核活动检测到的功率节省机会动态地进行的。
11.如权利要求6所述的方法,其特征在于,所述响应于所述核活动来停止至少一个核包括将工作转移到与程序调度相关联的亲和性掩码所允许的且已启动的核。
12.如权利要求6所述的方法,其特征在于,还包括
修订所监视的核活动以创建经修订的核活动;
基于所述电源策略,响应于所述经修订的核活动来启动至少一个核;以及
将至少一个线程重新分配到已启动的所述至少一个核。
13.一种多逻辑处理器系统,包括:
多个处理器;以及
耦合到所述多个处理器的控制器,所述控制器:
实现性能调度,所述性能调度包括表示将线程分配到在其上处理的一个或多个核的线程处理器亲和性掩码;
实现功率节省策略,所述功率节省策略包括创建核停止掩码,所述核停止掩码提供表示对应的核的单元格,所述核停止掩码在每一单元格中包括位值以表示所述对应的核的已停止或已启动状态;以及
通过停止所述多个处理器中的一个或多个来平衡所述性能调度和功率节省策略,
其中所述功率节省策略还包括:
通过使用“AND”操作符将所述核停止掩码的求逆与所述线程处理器亲和性掩码组合来创建可用处理器集而提供平衡所述性能调度和功率节省策略的至少一部分;以及
基于所述可用处理器集和活动地处理工作的核来计算要指定停止或启动哪些核。
14.如权利要求13所述的系统,其特征在于,所述控制器从驻留在系统存储器中的内核功率管理器接收实现所述功率节省策略的指令。
15.如权利要求13所述的系统,其特征在于,所述多个处理器包括具有多个核的至少一个核块。
16.如权利要求15所述的系统,其特征在于,平衡所述性能调度和功率节省策略包括为具有至少一个已停止的核的核块中的已启动的核创建核停止优先化。
17.如权利要求13所述的系统,其特征在于,还包括调整至少一个已启动的核的功率状态。
CN2009801121797A 2008-03-28 2009-02-16 功率知晓线程调度和处理器的动态使用 Active CN101981529B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/057,716 2008-03-28
US12/057,716 US8010822B2 (en) 2008-03-28 2008-03-28 Power-aware thread scheduling and dynamic use of processors
PCT/US2009/034209 WO2009120427A1 (en) 2008-03-28 2009-02-16 Power-aware thread scheduling and dynamic use of processors

Publications (2)

Publication Number Publication Date
CN101981529A CN101981529A (zh) 2011-02-23
CN101981529B true CN101981529B (zh) 2013-09-11

Family

ID=41114264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801121797A Active CN101981529B (zh) 2008-03-28 2009-02-16 功率知晓线程调度和处理器的动态使用

Country Status (9)

Country Link
US (2) US8010822B2 (zh)
EP (1) EP2257861B1 (zh)
JP (1) JP5075274B2 (zh)
KR (2) KR101629155B1 (zh)
CN (1) CN101981529B (zh)
BR (1) BRPI0907774B1 (zh)
RU (1) RU2503987C2 (zh)
TW (1) TWI464570B (zh)
WO (1) WO2009120427A1 (zh)

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074110B2 (en) * 2006-02-28 2011-12-06 Intel Corporation Enhancing reliability of a many-core processor
GB0614515D0 (en) * 2006-07-21 2006-08-30 Ibm An apparatus for managing power-consumption
US8112648B2 (en) * 2008-03-11 2012-02-07 Globalfoundries Inc. Enhanced control of CPU parking and thread rescheduling for maximizing the benefits of low-power state
US8010822B2 (en) 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20090320031A1 (en) * 2008-06-19 2009-12-24 Song Justin J Power state-aware thread scheduling mechanism
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
US20100058086A1 (en) * 2008-08-28 2010-03-04 Industry Academic Cooperation Foundation, Hallym University Energy-efficient multi-core processor
US8473964B2 (en) * 2008-09-30 2013-06-25 Microsoft Corporation Transparent user mode scheduling on traditional threading systems
US8321874B2 (en) * 2008-09-30 2012-11-27 Microsoft Corporation Intelligent context migration for user mode scheduling
US8209554B2 (en) * 2009-02-23 2012-06-26 International Business Machines Corporation Applying power management on a partition basis in a multipartitioned computer system
LT2403894T (lt) 2009-03-03 2016-09-26 The Coca-Cola Company Biologinės kilmės polietileno tereftalamo pakuotė ir jos gamybos būdas
US8689017B2 (en) * 2009-03-12 2014-04-01 Cisco Technology, Inc. Server power manager and method for dynamically managing server power consumption
US8271818B2 (en) * 2009-04-30 2012-09-18 Hewlett-Packard Development Company, L.P. Managing under-utilized resources in a computer
US8239699B2 (en) * 2009-06-26 2012-08-07 Intel Corporation Method and apparatus for performing energy-efficient network packet processing in a multi processor core system
US8683476B2 (en) * 2009-06-30 2014-03-25 Oracle America, Inc. Method and system for event-based management of hardware resources using a power state of the hardware resources
US9146755B2 (en) * 2009-07-08 2015-09-29 Kaseya Limited System and method for transporting platform independent power configuration parameters
US8428930B2 (en) * 2009-09-18 2013-04-23 International Business Machines Corporation Page mapped spatially aware emulation of a computer instruction set
US8543857B2 (en) * 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
US8578384B2 (en) * 2009-10-28 2013-11-05 Freescale Semiconductor, Inc. Method and apparatus for activating system components
KR101648978B1 (ko) * 2009-11-05 2016-08-18 삼성전자주식회사 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
US9098274B2 (en) 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US8850404B2 (en) * 2009-12-23 2014-09-30 Intel Corporation Relational modeling for performance analysis of multi-core processors using virtual tasks
US8572622B2 (en) * 2009-12-30 2013-10-29 International Business Machines Corporation Reducing queue synchronization of multiple work items in a system with high memory latency between processing nodes
WO2011117669A1 (en) 2010-03-22 2011-09-29 Freescale Semiconductor, Inc. Integrated circuit device, signal processing system, electronic device and method therefor
US8335935B2 (en) * 2010-03-29 2012-12-18 Intel Corporation Power management based on automatic workload detection
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
US9804874B2 (en) 2011-04-20 2017-10-31 Microsoft Technology Licensing, Llc Consolidation of idle virtual machines on idle logical processors
US8381004B2 (en) 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
WO2012009252A2 (en) * 2010-07-13 2012-01-19 Advanced Micro Devices, Inc. Dynamic control of simds
US8736619B2 (en) 2010-07-20 2014-05-27 Advanced Micro Devices, Inc. Method and system for load optimization for power
US9311102B2 (en) * 2010-07-13 2016-04-12 Advanced Micro Devices, Inc. Dynamic control of SIMDs
US8631253B2 (en) * 2010-08-17 2014-01-14 Red Hat Israel, Ltd. Manager and host-based integrated power saving policy in virtualization systems
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8656408B2 (en) 2010-09-30 2014-02-18 International Business Machines Corporations Scheduling threads in a processor based on instruction type power consumption
US8677361B2 (en) 2010-09-30 2014-03-18 International Business Machines Corporation Scheduling threads based on an actual power consumption and a predicted new power consumption
EP2643741A4 (en) * 2010-11-25 2016-08-24 Freescale Semiconductor Inc METHOD AND DEVICE FOR PERFORMANCE MANAGEMENT OF A MULTICULTURAL PROCESSOR
US20120137289A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Protecting high priority workloads in a virtualized datacenter
US9069555B2 (en) * 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8924752B1 (en) 2011-04-20 2014-12-30 Apple Inc. Power management for a graphics processing unit or other circuit
US20120284729A1 (en) * 2011-05-03 2012-11-08 Microsoft Corporation Processor state-based thread scheduling
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
KR101812583B1 (ko) 2011-07-21 2018-01-30 삼성전자주식회사 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체
KR101873935B1 (ko) 2011-09-06 2018-07-04 인텔 코포레이션 전력 효율적 프로세서 아키텍처
US9128769B2 (en) 2011-10-13 2015-09-08 Cavium, Inc. Processor with dedicated virtual functions and dynamic assignment of functional resources
US9129060B2 (en) 2011-10-13 2015-09-08 Cavium, Inc. QoS based dynamic execution engine selection
CN102945162B (zh) * 2011-10-26 2016-12-21 微软技术许可有限责任公司 用于设备实现逻辑cpu划分的使用热度图表示的方法和装置
US10114679B2 (en) * 2011-10-26 2018-10-30 Microsoft Technology Licensing, Llc Logical CPU division usage heat map representation
TWI493332B (zh) * 2011-11-29 2015-07-21 Intel Corp 用於電力管理的方法與設備及其平台與電腦可讀取媒體
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9372524B2 (en) * 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US8856566B1 (en) 2011-12-15 2014-10-07 Apple Inc. Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened
US8881145B2 (en) * 2011-12-15 2014-11-04 Industrial Technology Research Institute System and method for generating application-level dependencies in one or more virtual machines
US9436512B2 (en) * 2011-12-22 2016-09-06 Board Of Supervisors Of Louisana State University And Agricultural And Mechanical College Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model
US9137848B2 (en) * 2012-01-31 2015-09-15 Lg Electronics Inc. Mobile terminal, controlling method thereof and recording medium thereof
KR101899811B1 (ko) * 2012-04-04 2018-09-20 엘지전자 주식회사 이동 단말기 및 그 제어 방법, 이를 위한 기록 매체
WO2013115821A1 (en) * 2012-02-02 2013-08-08 Empire Technolgy Development Llc Quality of service targets in multicore processors
US9110777B2 (en) * 2012-02-14 2015-08-18 International Business Machines Corporation Reducing performance degradation in backup semiconductor chips
JP5554358B2 (ja) 2012-03-23 2014-07-23 株式会社東芝 マルチプロセッサシステムおよび電力制御方法
JP5853817B2 (ja) * 2012-03-28 2016-02-09 富士通株式会社 情報処理装置、制御方法及び制御プログラム
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US9035956B1 (en) 2012-05-08 2015-05-19 Apple Inc. Graphics power control with efficient power usage during stop
US9390461B1 (en) 2012-05-08 2016-07-12 Apple Inc. Graphics hardware mode controls
US9176563B2 (en) * 2012-05-14 2015-11-03 Broadcom Corporation Leakage variation aware power management for multicore processors
CN102707996A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种异构多核处理器上的任务调度方法
US9250665B2 (en) 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
CN102779075B (zh) * 2012-06-28 2014-12-24 华为技术有限公司 一种在多处理器核系统中进行调度的方法、装置及系统
US8904204B2 (en) * 2012-06-29 2014-12-02 International Business Machines Corporation Managing computing resources through aggregated core management
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US10281892B2 (en) 2012-08-02 2019-05-07 Siemens Aktiengesellschaft Pipelining for cyclic control systems
US8943252B2 (en) 2012-08-16 2015-01-27 Microsoft Corporation Latency sensitive software interrupt and thread scheduling
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
US10585801B2 (en) 2012-11-26 2020-03-10 Advanced Micro Devices, Inc. Prefetch kernels on a graphics processing unit
US9182807B2 (en) * 2012-12-31 2015-11-10 Hewlett-Packard Development Company, L.P. Systems and methods for predictive power management in a computing center
JP6042217B2 (ja) * 2013-01-28 2016-12-14 ルネサスエレクトロニクス株式会社 半導体装置、電子装置、及び半導体装置の制御方法
EP2778915A1 (de) * 2013-03-13 2014-09-17 Siemens Aktiengesellschaft Verfahren zum Betrieb einer Industriesteuerung und Industriesteuerung
US9727345B2 (en) 2013-03-15 2017-08-08 Intel Corporation Method for booting a heterogeneous system and presenting a symmetric core view
US9311153B2 (en) * 2013-05-15 2016-04-12 Empire Technology Development Llc Core affinity bitmask translation
US9629020B2 (en) * 2013-05-28 2017-04-18 Rivada Networks, Llc Methods and systems for data context and management via dynamic spectrum controller and dynamic spectrum policy controller
KR102110812B1 (ko) * 2013-05-30 2020-05-14 삼성전자 주식회사 멀티 코어 시스템 및 멀티 코어 시스템의 작업 스케줄링 방법
US9304573B2 (en) 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
US20160170474A1 (en) * 2013-08-02 2016-06-16 Nec Corporation Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
US9495001B2 (en) * 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9927866B2 (en) * 2013-11-21 2018-03-27 Qualcomm Incorporated Method and system for optimizing a core voltage level and enhancing frequency performance of individual subcomponents for reducing power consumption within a PCD
US9541985B2 (en) 2013-12-12 2017-01-10 International Business Machines Corporation Energy efficient optimization in multicore processors under quality of service (QoS)/performance constraints
JP5946068B2 (ja) * 2013-12-17 2016-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム
US9652298B2 (en) 2014-01-29 2017-05-16 Vmware, Inc. Power-aware scheduling
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9189273B2 (en) 2014-02-28 2015-11-17 Lenovo Enterprise Solutions PTE. LTD. Performance-aware job scheduling under power constraints
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US9354943B2 (en) * 2014-03-19 2016-05-31 International Business Machines Corporation Power management for multi-core processing systems
US9195493B2 (en) * 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
US10162683B2 (en) 2014-06-05 2018-12-25 International Business Machines Corporation Weighted stealing of resources
US10082858B2 (en) * 2014-06-23 2018-09-25 Mellanox Technologies, Ltd. Peripheral device assistance in reducing CPU power consumption
US9395797B2 (en) 2014-07-02 2016-07-19 Freescale Semiconductor, Inc. Microcontroller with multiple power modes
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
US10324513B2 (en) 2014-08-31 2019-06-18 Mellanox Technologies, Ltd. Control of peripheral device data exchange based on CPU power state
US9424092B2 (en) * 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
US9489242B2 (en) * 2014-09-30 2016-11-08 Telefonaktiebolaget L M Ericsson (Publ) Algorithm for faster convergence through affinity override
US9190989B1 (en) 2014-10-07 2015-11-17 Freescale Semiconductor, Inc. Integrated circuit power management
US9891699B2 (en) 2014-12-18 2018-02-13 Vmware, Inc. System and method for performing distributed power management without power cycling hosts
US9588811B2 (en) * 2015-01-06 2017-03-07 Mediatek Inc. Method and apparatus for analysis of thread latency
US9652027B2 (en) 2015-04-01 2017-05-16 Microsoft Technology Licensing, Llc Thread scheduling based on performance state and idle state of processing units
US20160314024A1 (en) * 2015-04-24 2016-10-27 Mediatek Inc. Clearance mode in a multicore processor system
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
WO2017016590A1 (en) 2015-07-27 2017-02-02 Hewlett-Packard Development Company, L P Scheduling heterogenous processors
US9710041B2 (en) * 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US10146287B2 (en) 2016-04-01 2018-12-04 Intel Corporation Processor power monitoring and control with dynamic load balancing
US10133341B2 (en) * 2016-06-06 2018-11-20 Arm Limited Delegating component power control
CN106201726A (zh) * 2016-07-26 2016-12-07 张升泽 多内核芯片线程分配方法及系统
US10379904B2 (en) * 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
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
KR20180098904A (ko) * 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
CN107239348B (zh) * 2017-06-23 2020-05-15 厦门美图移动科技有限公司 一种多核处理器调度方法、装置及移动终端
RU2703188C1 (ru) * 2017-10-05 2019-10-15 НФВаре, Инц Способ распределения нагрузки в многоядерной системе
US20190146567A1 (en) * 2017-11-10 2019-05-16 Advanced Micro Devices, Inc. Processor throttling based on accumulated combined current measurements
EP3779690A4 (en) * 2018-04-20 2021-05-12 Guangdong Oppo Mobile Telecommunications Corp., Ltd. PROCESSOR CORE PLANNING METHOD AND DEVICE, TERMINAL DEVICE AND STORAGE MEDIUM
US10721172B2 (en) 2018-07-06 2020-07-21 Marvell Asia Pte, Ltd. Limiting backpressure with bad actors
US20200034190A1 (en) * 2018-07-24 2020-01-30 Vmware, Inc. Live migration of virtual machines between heterogeneous virtualized computing environments
US10915356B2 (en) * 2018-08-30 2021-02-09 Intel Corporation Technology to augment thread scheduling with temporal characteristics
US10997029B2 (en) * 2019-03-07 2021-05-04 International Business Machines Corporation Core repair with failure analysis and recovery probe
US11409560B2 (en) * 2019-03-28 2022-08-09 Intel Corporation System, apparatus and method for power license control of a processor
US11766975B2 (en) * 2019-07-17 2023-09-26 Marvell Asia Pte, Ltd. Managing power in an integrated circuit for high-speed activation
CN112241197A (zh) * 2019-07-17 2021-01-19 马维尔亚洲私人有限公司 针对高速激活管理集成电路中的功率
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US11782755B2 (en) * 2019-12-02 2023-10-10 Intel Corporation Methods, systems, articles of manufacture, and apparatus to optimize thread scheduling
US11301298B2 (en) 2020-03-28 2022-04-12 Intel Corporation Apparatus and method for dynamic control of microprocessor configuration
US12007896B2 (en) 2021-06-09 2024-06-11 Ampere Computing Llc Apparatuses, systems, and methods for configuring combined private and shared cache levels in a processor-based system
US11880306B2 (en) 2021-06-09 2024-01-23 Ampere Computing Llc Apparatus, system, and method for configuring a configurable combined private and shared cache
US11947454B2 (en) * 2021-06-09 2024-04-02 Ampere Computing Llc Apparatuses, systems, and methods for controlling cache allocations in a configurable combined private and shared cache in a processor-based system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577280A (zh) * 2003-07-15 2005-02-09 英特尔公司 提高多内核处理器性能的方法、系统和装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
JPH09185589A (ja) * 1996-01-05 1997-07-15 Toshiba Corp 情報処理システムと情報処理システムの省電力方法
JP2000112585A (ja) * 1998-10-02 2000-04-21 Toshiba Corp システムlsi及びパワーマネジメント方法
US7137117B2 (en) 2000-06-02 2006-11-14 Microsoft Corporation Dynamically variable idle time thread scheduling
US6901522B2 (en) 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US7174467B1 (en) 2001-07-18 2007-02-06 Advanced Micro Devices, Inc. Message based power management in a multi-processor system
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US7318164B2 (en) * 2001-12-13 2008-01-08 International Business Machines Corporation Conserving energy in a data processing system by selectively powering down processors
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7111182B2 (en) 2003-08-29 2006-09-19 Texas Instruments Incorporated Thread scheduling mechanisms for processor resource power management
KR100673690B1 (ko) * 2004-01-13 2007-01-24 엘지전자 주식회사 복수의 코어가 구비된 프로세서의 전원 제어방법
US7315952B2 (en) * 2004-06-02 2008-01-01 Intel Corporation Power state coordination between devices sharing power-managed resources
US7676655B2 (en) 2004-06-30 2010-03-09 Sun Microsystems, Inc. Single bit control of threads in a multithreaded multicore processor
US7437581B2 (en) * 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US7788670B2 (en) 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US20060123422A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Processor packing in an SMP server to conserve energy
US7526661B2 (en) 2004-12-02 2009-04-28 Intel Corporation Performance state-based thread management
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US20060212677A1 (en) 2005-03-15 2006-09-21 Intel Corporation Multicore processor having active and inactive execution cores
JP4555140B2 (ja) * 2005-04-22 2010-09-29 株式会社日立製作所 複合型計算機装置およびその管理方法
US20070204268A1 (en) 2006-02-27 2007-08-30 Red. Hat, Inc. Methods and systems for scheduling processes in a multi-core processor environment
US7574613B2 (en) 2006-03-14 2009-08-11 Microsoft Corporation Scaling idle detection metric for power management on computing device
US7490256B2 (en) 2006-04-04 2009-02-10 Microsoft Corporation Identifying a target processor idle state
US7752468B2 (en) * 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7992151B2 (en) * 2006-11-30 2011-08-02 Intel Corporation Methods and apparatuses for core allocations
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
JP4834625B2 (ja) * 2007-07-31 2011-12-14 株式会社東芝 電源管理装置及び電源管理方法
US7966506B2 (en) * 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US7962770B2 (en) * 2007-12-19 2011-06-14 International Business Machines Corporation Dynamic processor reconfiguration for low power without reducing performance based on workload execution characteristics
US8010822B2 (en) 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1577280A (zh) * 2003-07-15 2005-02-09 英特尔公司 提高多内核处理器性能的方法、系统和装置

Also Published As

Publication number Publication date
KR101629155B1 (ko) 2016-06-21
WO2009120427A1 (en) 2009-10-01
TWI464570B (zh) 2014-12-11
KR20100138954A (ko) 2010-12-31
EP2257861B1 (en) 2022-08-03
JP5075274B2 (ja) 2012-11-21
TW200941209A (en) 2009-10-01
JP2011515776A (ja) 2011-05-19
US20110307730A1 (en) 2011-12-15
CN101981529A (zh) 2011-02-23
RU2503987C2 (ru) 2014-01-10
EP2257861A4 (en) 2017-10-25
US8010822B2 (en) 2011-08-30
US9003215B2 (en) 2015-04-07
BRPI0907774B1 (pt) 2020-06-02
US20090249094A1 (en) 2009-10-01
RU2010139638A (ru) 2012-04-10
BRPI0907774A2 (pt) 2015-07-14
KR20160005367A (ko) 2016-01-14
EP2257861A1 (en) 2010-12-08

Similar Documents

Publication Publication Date Title
CN101981529B (zh) 功率知晓线程调度和处理器的动态使用
US8190939B2 (en) Reducing power consumption of computing devices by forecasting computing performance needs
US7730340B2 (en) Method and apparatus for dynamic voltage and frequency scaling
US8140876B2 (en) Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
EP3237998B1 (en) Systems and methods for dynamic temporal power steering
KR101411756B1 (ko) 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit
US8595527B2 (en) Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
KR20080079276A (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
CN104049712A (zh) 用于计算机系统的功率管理方法和系统
US10185384B2 (en) Reducing power by vacating subsets of CPUs and memory
JP6477260B2 (ja) アプリケーションを実行する方法及びリソースマネジャ
Rattihalli et al. Fine-grained heterogeneous execution framework with energy aware scheduling
JP5585651B2 (ja) マルチコアシステム、スケジューリング方法およびスケジューリングプログラム
JP2009175850A (ja) マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム
EP2687944B1 (en) Apparatus and method for managing power based on data
Pattnayak Optimizing power saving in cloud computing environments through server consolidation
CN117271058A (zh) 容器资源调度方法、装置及存储介质
Chauhan et al. Energy efficient rescheduling algorithm for High Performance Computing
Gholkar On the Management of Power Constraints for High Performance Systems
Moulik et al. FRESH: Fault-tolerant Real-time Scheduler for Heterogeneous multiprocessor platforms

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150505

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150505

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.