CN104380257B - 在处理器核之间调度任务 - Google Patents

在处理器核之间调度任务 Download PDF

Info

Publication number
CN104380257B
CN104380257B CN201280072497.7A CN201280072497A CN104380257B CN 104380257 B CN104380257 B CN 104380257B CN 201280072497 A CN201280072497 A CN 201280072497A CN 104380257 B CN104380257 B CN 104380257B
Authority
CN
China
Prior art keywords
processor cores
criterion
processor
processor core
computing device
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
Application number
CN201280072497.7A
Other languages
English (en)
Other versions
CN104380257A (zh
Inventor
H·塞哈德里
R·穆拉里德哈
V·M·鲁德拉穆尼
I·曼索尔
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN104380257A publication Critical patent/CN104380257A/zh
Application granted granted Critical
Publication of CN104380257B publication Critical patent/CN104380257B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

Landscapes

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

Abstract

本文中描述了用于在多个处理器核之间调度多个任务的装置、计算机实现方法、计算设备、系统和计算机可读介质(瞬变和非瞬变)的实施例。响应于准则已被满足的确定,计算设备的多个处理器核中的第一处理器核可被转移到屏蔽状态,其中没有新的任务要被分配给所述第一处理器核,并且已被分配给所述第一处理器核的任务被执行到完成。在各种实施例中,该准则可基于所述计算设备的条件,诸如对计算设备来说可用的功率或者与计算设备相关联的温度。在各种实施例中,在已被分配给所述第一处理器核的任务执行完成之后,所述第一处理器核可转移到降低功率状态。

Description

在处理器核之间调度任务
技术领域
本发明实施例总体涉及数据处理的技术领域,并且更具体地说,涉及在处理器核之间调度任务。
背景技术
本文提供的背景技术描述出于总体上呈现本公开的上下文的目的。目前署名的发明人在本背景技术部分中描述的程度上的工作以及在提交时可能原本没有资格成为现有技术的描述的方面既不明示也不暗示地被承认为针对本公开的现有技术。除非本文另有指示,本部分中描述的方法不是本公开中的权利要求的现有技术,且不因包括在本部分中而被承认为现有技术。
操作系统(“OS”)调度器可以在多个计算资源(诸如处理器核)之间以减少完成任务的总体响应时间的方式分配任务。这种公平性原则可以提供合适的总体性能并最小化等待时间,特别是在处理资源均匀的情况下。通常,这种调度任务的方法未计及计算设备的条件或计算设备的异构计算资源之间的差异。
附图说明
实施例将通过下面的详细描述结合附图而容易理解。为了便于该描述,相似的附图标记指定相似的结构元件。在附图的各图中,实施例是通过示例的方式而非通过限制的方式图示的。
图1示意性地描绘根据各种实施例,具有本公开的多个处理器核和的操作系统(“OS”)调度器的示例系统。
图2示意性描绘根据各种实施例,OS调度器可如何在多个处理器核之间调度多个任务的示例。
图3示意性描绘根据各种实施例,OS调度器可如何在多个处理器核之间调度多个任务的另一示例。
图4描绘根据各种实施例的曲线图,该曲线图示出了多个处理器核随时间的示例平均工作量以及高和低工作量阈值,该高和低工作量阈值在被平均工作量达到时可以导致一个或多个处理器核被转移进或出屏蔽状态。
图5示意性描绘根据各种实施例,可由多核计算设备的OS调度器实现的示例方法。
图6示意性描绘根据各种实施例,在其上可实现所公开技术的示例计算设备。
具体实施方式
在下面的详细描述中,对形成该详细描述的一部分的附图进行了参考,其中,相似的附图标记自始至终指定相似的部分,并且在附图中,通过图示的方式示出了可实施的实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以作出结构或逻辑改变。因此,下面的详细描述不应在限制意义上采用,并且实施例的范围由所附权利要求及其等同物限定。
可以以最有助于理解要求保护的主题的方式进而将各种操作描述为多个分立的动作或操作。然而,描述的顺序不应理解为暗示这些操作必须依赖于顺序。特别地,这些操作可能不是按呈现的顺序执行的。所描述的操作可以是按与所描述的实施例不同的顺序执行的。在附加实施例中,可以执行各种附加操作和/或可以省略所描述的操作。
出于本公开的目的,短语“A和/或B”意指(A)、(B)或(A和B)。出于本公开的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
该描述可以使用短语“在一实施例中”或“在实施例中”,其均可以指代相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包含”、“包括”、“具有”等是同义的。
如本文所使用,术语“模块”可以指代下述各项、作为下述各项的一部分或包括下述各项:专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或组)和/或存储器(共享、专用或组)、组合逻辑电路、和/或提供所描述的功能的其他合适部件。
现在参照图1,在各种实施例中,计算设备10(被配置有本公开的教导的适用部分)可包括操作系统(“OS”)调度器12和一个或多个封装14,每个封装包括一个或多个处理器核16。
图1中的示例包括三个封装14,封装A-C,但这仅是为了说明的目的,而不意味着是限制性的。第一封装14(封装A)包括两个处理器核16:核1和核2。第二封装14(封装B)也包括两个处理器核16:核3和核4。第三封装14(封装C)包括三个处理器核16:核5,核6和核7。在此可想到其他数量的封装14和处理器核16。
在各种实施例中,不同的核16可以以不同的频率操作。例如,封装A上的核1和核2可以以一个频率操作,例如,3.1GHz,而封装B上的核3和核4可以以另一个频率操作,例如,1600MHz。在各种实施例中,在单一封装14上所包含的核16可以以不同频率操作。以较高频率操作的核16可以比以较低频率操作的核16更快速地完成任务。然而,以较高频率操作的核16还可以比以较低频率操作的核16利用更多的能量和/或产生更多的热量。
多核计算没备(诸如,计算设备10)可以由具有有限能量供给的电源(诸如电池18)供电。一次操作越多的核16(特别是高频核16),则电源(例如,电池18)可被越快速地耗尽。计算设备10的每个处理器核16可能不一直被需要。例如,如果计算设备10是移动电话,则当移动电话处于用户的口袋中时,可能不需要超过最低限度的处理能力,仅执行有限的功能以保持网络连接。
另外或替代地,计算设备10可以包括可能易受各种热力条件攻击的一个或多个部件。例如,某些类型的部件可能因温度的升高而损坏。处理器核16在它正在执行任务时可产生热量。使计算设备10的多个处理器核16过载可产生过多的热量,威胁对各种部件的损坏。另外或替代地,计算设备10可能遭受加热的环境,诸如在热天中车辆的内部。允许多个处理器核16(特别是高频处理器核16)继续在这种情形下运行可提高温度,进一步损坏各种部件。
图2描绘可被配置成在n个处理器核216之间调度多个任务202的示例OS调度器212,其中n是大于1的整数。每个核216可以包括运行队列,其可以包括一个或多个所调度的任务。在所示的示例场景中,核0在其进入空闲状态204之前具有排队等候的3个任务202。核1在其进入空闲状态204之前具有排队等候的两个任务202。核n-1和核n在其进入空闲状态204之前各自具有排队等候的一个任务202。OS调度器212可被配置成以减少完成任务的总体响应时间的方式分配任务202。因此,假设所有任务202在复杂性方面类似,那么OS调度器212可调度核n或核n-1上的下一个任务202。然而,该调度方案可以不考虑能量效率、异构处理器核的性质和/或计算设备的条件。
相应地,在各种实施例中,一个或多个处理器核16可被关闭,以节省电池功率和/或防止由热事件引起的对计算设备10的部件的损坏。在具有异构处理器核16的系统和计算设备中,以相对较高频率操作的核16可比以相对较低频率操作的另一核需要更多的功率和/或产生更多的热量。相应地,各种阈值可以被设定(将在下面描述),使得以相对较高频率操作的一个或多个处理器核16可以更可能被关闭以降低装置的功耗和/或温度。(如本文中所使用的术语“异构”是指处理器核的不同操作特性,包括但不限于例如它们的操作频率)。
与关闭仍具有任务要完成的处理器核16相关的成本可能是高的,并可以抵消能量效率或温度控制中的任何收益。例如,核心可能需要被通知:处理器核16正在被关闭。可以识别可接管被分配到要关闭的处理器核16的任务的处理器核16的新集合。与要关闭的处理器核16相关联的任务和中断可以被迁移到所以别的处理器核16集合。在各种实施例中,与要关闭的处理器核16相关联的服务也可以被迁移到其他处理器核16。最后,处理器核16可被关闭。与关闭处理器核16相关联的等待时间可能是不可预测的,且可以大约几秒钟,从而导致负的能量节省。
相应地,并非立即关闭核,而是OS调度器(诸如,图1中的OS调度器12)可以转移处理器核为中间、“屏蔽”状态,其中没有新的任务要被分配,并且其中现有的任务被执行到完成。这一点的示例示于图3中。示例OS调度器312可被配置成在n个处理器核316之间调度多个任务302。和图2一样,每个核316包括可具有所调度的一个或多个任务的运行队列。例如,核0在其进入空闲状态304之前具有排队等候的3个任务302,以及核1在其进入空闲状态304之前具有排队等候的两个任务302。然而,OS调度器312已转移核n-1和核n为屏蔽状态,如屏蔽块306所指示。
在各种实施例中,屏蔽状态中的处理器核316可以不具有新任务分配给它。在各种实施例中,已被分配给屏蔽处理器核316的一个或多个任务可被执行到完成,而不被迁移到其他处理器核。在已被分配给屏蔽处理器核316的一个或多个任务被执行到完成之后,屏蔽处理器核316可被转移到降低功率状态。这可减少和/或避免与在处理器核316之间迁移任务相关联的成本。
在各种实施例中,当处理器核316处于降低功率状态时,与该处理器核相关联的一个或多个核锁相环可以被关闭。在各种实施例中,与处理器核316相关联的高速缓存可被刷新。在各种实施例中,处理器核316的状态可以被保存到高速缓存。在各种实施例中,由处理器核316进行的功率使用可以是大约40uw。在各种实施例中,降低功率状态中的处理器核316可处于线程级C6中。
在各种实施例中,响应于一个或多个准则已经得到满足的确定,处理器核(例如,图3中的处理器核316)可被转移进或出屏蔽状态。在各种实施例中,该准则可以是多个处理器核的工作量是否落到阈值以下或超过阈值。在各种实施例中,工作量可以是多个处理器核的平均工作量。在各种实施例中,平均工作量可以通过周期性地测量多个处理器核的当前负荷水平而确定。在各种实施例中,多个处理器核的当前负荷水平可以每4-6秒加以测量。
在图4的曲线图400中,示出了多个处理器核随时间的平均工作量的示例。第一阈值402可以是“低水印”,在其以下,多个处理器核中的一个或多个处理器核可被转移到屏蔽状态。第二阈值404可以是“高水印”,在其以上,多个处理器核中的一个或多个处理器核可被转移出屏蔽状态。
在点406之前,平均工作量可处于第二阈值404以下,以及一个或多个处理器核可处于屏蔽状态和/或处于降低功率状态。然而,在点406处,当平均工作量超过第二阈值404时,处于屏蔽/或降低功率状态的一个或多个处理器核可被转移到非屏蔽状态。一旦非屏蔽,处理器核就可以由OS调度器(例如,12、212、312)分配任务。
这些新近非屏蔽的处理器核可继续操作,直到在点408处平均工作量落到第一阈值402以下。当发生这种情况时,该多个处理器核中的一个或多个处理器核可被转移到屏蔽状态,其中没有新的任务要被分配给处理器核(例如,由OS调度器12、212或312),和/或其中已被分配给处理器核的现有任务被执行到完成。在各种实施例中,一旦被分配给新近屏蔽的处理器核的现有任务被执行到完成,这些屏蔽的处理器核就可以例如由OS调度器(例如,12、212、312)转移到降低功率状态。
在各种实施例中,可以针对分离的处理器核建立分离的“高水印”和“低水印”阈值。例如,以特别高的频率运行(且因此更功率密集)的处理器核可以具有关联的“低水印”阈值(在其以下,处理器核是屏蔽的),该“低水印”阈值高于其他较不功率密集的处理器核。这样,比起相对较低频的处理器核,高频处理器核可以更可能被转移到屏蔽状态(并最终被转移到降低功率状态)。
类似地,高频处理器核可以具有关联的“高水印”阈值(在其以上,处理器核是非屏蔽的),该“高水印”阈值高于其他较低频的处理器核的“高水印”阈值。这样,高频处理器核可不是非屏蔽的,直到多个处理器核的平均工作量足够高以表明高频核的使用是合理的,而不管在能量使用和温度方面的后果。
另一方面,在各种实施例中,以相对较低频率运行的处理器核可以具有关联的“低水印”阈值,其低于与高频处理器核相关联的“低水印”阈值。这样,低频处理器核可以不太可能被转移到屏蔽状态。类似地,低频处理器核可以具有也相对较低的“高水印”阈值,使得它更可能保持非屏蔽并以适中的平均工作量操作。
当然,这些示例仅是说明性的,并且在各种实施例中,与高频处理器核相关联的阈值可高于、低于和/或等于与低频处理器核相关联的阈值。此外,在各种实施例中,仅多个处理器核的子集(例如,需要相对大量功率或产生相对大量热量的那些核)可具有关联的阈值。其他处理器核(例如,执行基本功能(例如,保持移动电话连接到小区)的低频处理器核)可以不具有阈值,或者可以具有不可能被满足的阈值。
在各种实施例中,除了针对不同处理器核而不同外,阈值还可以动态地基于计算设备的条件。例如,在各种实施例中,阈值可以是基于计算设备的电池功率水平、计算设备的热条件、计算设备正在使用的电流水平(例如,峰值/突发)等等中的一个或多个来确定的。
例如,如果图1的计算设备10的电池18落到特定功率水平以下,则与计算设备10的一个或多个处理器核16相关联的“低水印”阈值可以被提高,使得这些处理器核16可以更可能转移到屏蔽状态,并然后转移到降低功率状态。在各种实施例中,与各种处理器核16相关联的“高水印”阈值也可以被提高,以降低这些处理器核16可非屏蔽和被分配任务的可能性。
在各种实施例中,一个或多个阈值可以基于计算设备的热状态而调整。例如,如果图1的计算设备10的温度上升到特定水平以上,则可能存在对计算设备10的一个或多个部件的损坏的危险。相应地,与计算设备10的一个或多个处理器核16相关联的“低水印”阈值可以被提高,使得这些处理器核16可以更可能转移到屏蔽状态,并然后转移到降低功率状态。与前述示例一样,在各种实施例中,与各种处理器核16相关联的“高水印”阈值也可以被提高,以降低这些处理器核16可以非屏蔽和被分配任务的可能性。
一个或多个阈值还可以至少部分基于计算设备10的性质而选择。例如,如果计算设备10是移动电话,则用户可能期望电池寿命长于另一便携式设备,诸如膝上型计算机。相应地,与各种处理器核16相关联的“高水印”和“低水印”阈值可以被选择,例如,由制造商或由用户使用与操作系统相关联的用户接口来选择,以便比起在计算设备10是膝上型计算机的情况下更积极地节约能量。例如,“高水印”和“低水印阈值”可以都被提高。这可以提高处理器核可屏蔽的可能性,并降低屏蔽的处理器核可非屏蔽的可能性。
一个或多个阈值也可以基于可如何使用计算设备10而选择。例如,如果计算设备10要用于图形密集的应用,则与图形相关处理器核(例如,在图形卡上)相关联的阈值可被降低。这可提高这些处理器核将非屏蔽的可能性,并降低它们将被屏蔽的可能性。如果计算设备10将被大量地用于语音通信,则与通信相关处理器核相关联的阈值可以被相应地降低,并且与其他核(例如,图形相关)相关联的阈值可以被提高。
图5描绘了可由OS调度器(诸如图1中的OS调度器12、图2中的OS调度器212和/或图3中的OS调度器312)实现的示例方法500。在块502,可以例如由OS调度器12确定多个处理器核的平均工作量。在各种实施例中,该确定可以例如由OS调度器12通过周期性地测量该多个处理器核的瞬时工作量并更新运行平均工作量来进行。
在块504,可以例如由OS调度器12确定:在块502确定的平均工作量是否超过第一阈值。例如,可以例如由OS调度器12确定多个处理器核的平均工作量是否超过“高水印”阈值,在该“高水印”阈值以上,多个处理器核中的高频处理器核应当无屏蔽且被操作。
如果在块504,平均工作量被确定为已经超过第一阈值,则在块506,可以例如由OS调度器12将多个处理器核中的至少一个处理器核(例如,高频处理器核)转移到非屏蔽状态。在块508,可以例如由OS调度器12将一个或多个任务分配到新近非屏蔽的处理器核。
然而,在块504,如果平均工作量被确定为未超过第一阈值,则在块510,可以例如由OS调度器12确定:平均工作量是否落到第二阈值以下。例如,可以例如由OS调度器12确定多个处理器核的平均工作量是否落到“低水印”阈值以下,在该“低水印”阈值以下,多个处理器核中的高频处理器核应该是屏蔽的且被转移到降低功率状态。
如果在块510,平均工作量被确定为未落到第二阈值以下,则方法500可继续回到块502。在各种实施例中,在平均工作量在块502再一次被确定之前,可以过去预定量的时间(例如,4-6秒,或为5秒)。
然而,在块510,如果平均工作量被确定为已经落到第二阈值以下,则在块512,可以例如由OS调度器12将多个处理器核中的处理器核转移到屏蔽状态。在块514,可以例如由OS调度器12允许一个或多个已被分配给新近屏蔽的处理器核的现有任务被执行到完成。在块516,在现有任务被运行到完成之后,可以例如由OS调度器12将屏蔽的处理器核转移到降低功率状态。
在描述适用于实施本公开实施例的示例计算设备之前,应当注意,虽然本公开已经基本上在异构处理器核的上下文中呈现,但是本公开不限于此。本公开的实施例可以用同构以及异构处理器核进行实施。
图6图示了根据各种实施例,适合用作计算设备10的示例计算设备600(其也可以被称为系统)。计算设备600容纳印刷电路板(“PCB”)602。PCB 602可以包括多个部件,包括但不限于处理器604和至少一个通信芯片606。处理器604可以物理和电气耦合到PCB 602。在各种实施例中,处理器604可以包括两个或更多个处理器核。在各种实施例中,所述至少一个通信芯片606也可以物理和电气耦合到PCB 602。在另外的实施方式中,通信芯片606可以是处理器604的一部分。
取决于其应用,计算设备600可以包括其他部件,其可以或可以不物理和电气耦合至PCB 602。这些其他部件包括但不限于易失性存储器(例如,动态随机存取存储器608,也称为“DRAM”)、非易失性存储器(例如,只读存储器610,也称为“ROM”)、闪速存储器612、OS调度器613(其可以以硬件或软件方式存在)、图形处理器614、数字信号处理器(未示出)、密码处理器(未示出)、存储器控制器616、输入/输出(“I/O”)控制器617、天线618、显示器(未示出)、触摸屏显示器620,触摸屏控制器622、电池624、音频编解码器(未示出)、视频编解码器(未示出)、功率放大器626、全球定位系统(“GPS”)设备628、罗盘630、加速度计(未示出)、陀螺仪(未示出)、扬声器632、摄像机634和大容量存储设备(诸如,硬盘驱动器、固态驱动器、压缩盘(“CD”)、数字多功能盘(“DVD”))(未示出)等等。
在各种实施例中,易失性存储器(例如,DRAM608)、非易失性存储器(例如,ROM610)、闪速存储器612和大容量存储设备可以包括编程指令,其被配置成响应于处理器604的执行使得计算设备600能够实施方法500的所有或所选方面。
通信芯片606可以实现用于数据向和从计算设备600的传送的有线和/或无线通信。术语“无线”及其派生词可以用于描述可通过使用调制电磁辐射、通过非固体介质传送数据的电路、设备、系统、方法、技术、通信信道等。该术语不暗示关联的设备不包含任何导线,尽管在一些实施例中它们可能不包含。通信芯片606可以实现任何数目的无线标准或协议,包括但不限于Wi-Fi(IEEE 802.11族)、WiMAX(IEEE 802.16族)、IEEE 802.20、长期演进(“LTE”)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM、GPRS、CDMA、TDMA、DECT、蓝牙、它们的衍生物以及被指定为3G、4G、5G和更高的任何其他无线协议。计算设备600可以包括多个通信芯片606。例如,第一通信芯片606可以专用于较短距离无线通信,诸如Wi-Fi和蓝牙,以及第二通信芯片606可以专用于较长距离无线通信,诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO和其他。
在各种实施方式中,计算设备600可以是膝上型电脑、上网本、平板、笔记本、超极本、智能电话、个人数字助理(“PDA”)、超级移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏控制台)、数码摄像机、便携式音乐播放器或者数字录像机。在另外的实施方式中,计算设备600可以是处理数据的任何其他电子设备。
本文中描述了用于在多个处理器核之间分发任务的装置、计算机实现方法、系统、设备和计算机可读介质的实施例。在各种实施例中,响应于准则已被满足的确定,计算设备的多个处理器核中的第一处理器核可被转移到屏蔽状态,其中没有新的任务要被分配到所述第一处理器核,以及已被分配给所述第一处理器核的一个或多个任务被执行到完成。在各种实施例中,该准则可以至少部分地基于计算设备的条件,诸如对计算设备来说可用的功率或者与计算设备相关联的温度。在各种实施例中,在已被分配给第一处理器核的一个或多个任务被执行到完成之后,第一处理器核可被转移到降低功率状态。
在各种实施例中,降低功率状态可以是下述状态:其中,与所述第一处理器核相关联的一个或多个核锁相环被关闭,与所述第一处理器核相关联的高速缓存被刷新,和/或所述第一处理器核的状态被保存到高速缓存。
在各种实施例中,准则可以是多个处理器核的工作量是否落到预定阈值以下。在各种实施例中,预定阈值可以至少部分基于计算设备的电池功率水平和/或计算设备的热状态而确定。
在各种实施例中,工作量可以是多个处理器核的平均工作量。在各种实施例中,多个处理器核的当前负荷水平可被周期性地测量以确定多个处理器核的平均工作量。在各种实施例中,多个处理器核的当前负荷水平可以每4-6秒加以测量。
在各种实施例中,响应于第二准则已被满足的确定,第一处理器核可被转移到非屏蔽状态,其中,新的任务要被分配到所述第一处理器核。在各种实施例中,第二准则可以是多个处理器核的工作量是否超过第二预定阈值。
在各种实施例中,响应于第三准则已被满足的确定,计算设备的多个处理器核中的第二处理器核可被转移到屏蔽状态,其中没有新的任务要被分配到所述第二处理器核,以及已被分配给所述第二处理器核的任务被执行到完成。在各种实施例中,所述第三准则可不同于所述第一准则。在各种实施例中,所述第一和第二处理器核可以以不同频率操作。
尽管本文出于描述的目的图示和描述了特定实施例,但在不脱离本公开的范围的情况下,可以用旨在实现相同目的的许多种可替换和/或等同实施例或实施方式替代所示出和描述的实施例。本申请意图覆盖本文讨论的实施例的任何改编或变型。因此,显然意图是,本文描述的实施例仅由其权利要求和等同物限定。
在本公开记载了“一”或“第一”元素或其等同物的情况下,这种公开包括一个或多个这种元素,既不要求也不排除两个或更多个这种元素。此外,所标识的元素的序数指示符(例如,第一、第二或第三)被用于在元素之间进行区分,而不指示或暗示要求或受限数目的这种元素,它们也不指示这种元素的特定位置或顺序,除非另有具体声明。

Claims (34)

1.一种用于在处理器核之间调度任务的系统,包括:
存储器;
可操作地耦合到所述存储器的多个处理器核;和
调度器,由一个或多个处理器核操作以:
确定准则已被满足,所述准则至少部分地基于系统的条件,其中,所述准则包括多个处理器核的工作量是否落到预定阈值以下;
转移多个处理器核中的第一处理器核到中间屏蔽状态,其中没有新的任务要被分配到所述第一处理器核,以及已被分配给所述第一处理器核的一个或多个任务被执行到完成而不被迁移到其他处理器核;和
在已被分配给所述第一处理器核的一个或多个任务被执行到完成之后,转移所述第一处理器核到降低功率状态,
其中,所述工作量是所述多个处理器核的平均工作量。
2.根据权利要求1所述的系统,其中,所述降低功率状态包括下述状态:其中,与所述第一处理器核相关联的一个或多个核锁相环被关闭,与所述第一处理器核相关联的高速缓存被刷新,以及所述第一处理器核的状态被保存到高速缓存。
3.根据权利要求1所述的系统,其中,所述预定阈值至少部分基于计算设备的电池功率水平而确定。
4.根据权利要求1所述的系统,其中,所述预定阈值至少部分基于计算设备的热状态而确定。
5.根据权利要求1所述的系统,其中,所述调度器进一步周期性地测量所述多个处理器核的当前负荷水平,以确定所述多个处理器核的平均工作量。
6.根据权利要求5所述的系统,其中,所述调度器进一步每4-6秒测量所述多个处理器核的当前负荷水平。
7.根据权利要求1-6中任一项所述的系统,其中,所述准则是第一准则,并且其中,所述调度器进一步响应于第二准则已被满足的确定,转移所述第一处理器核到非屏蔽状态,其中新的任务要被分配到所述第一处理器核。
8.根据权利要求7所述的系统,其中,所述第二准则包括所述多个处理器核的工作量是否超过预定阈值。
9.根据权利要求1-6中任一项所述的系统,其中,所述准则是第一准则,并且其中,所述调度器进一步:
确定不同于第一准则的第二准则是否已被满足;和
响应于第二准则已被满足的确定,转移多个处理器核中的多个处理器核中的第二处理器核到屏蔽状态,其中没有新任务要被分配给所述第二处理器核,以及已被分配给所述第二处理器核的任务被执行到完成。
10.根据权利要求9所述的系统,其中,所述第一和第二处理器核以不同的频率操作。
11.根据权利要求9所述的系统,其中,所述第一准则包括多个处理器核的工作量是否落到第一预定阈值以下,并且所述第二准则包括多个处理器核的工作量是否落到第二预定阈值以下,所述第二预定阈值不同于所述第一预定阈值。
12.一种计算机实现方法,包括:
由被配置成将任务分配给计算设备的多个处理器核的调度器确定多个处理器核的工作量满足准则,所述准则至少部分基于对计算设备来说可用的功率或与计算设备相关联的温度,其中,所述准则包括多个处理器核的工作量是否落到预定阈值以下;
由所述调度器转移计算设备的多个处理器核中的第一处理器核到中间屏蔽状态,在所述中间屏蔽状态中,没有新的任务要被分配到所述第一处理器核,以及已被分配给所述第一处理器核的一个或多个任务被执行到完成而不被迁移到其他处理器核;和
在已被分配给所述第一处理器核的一个或多个任务被执行到完成之后,由所述调度器转移所述第一处理器核到降低功率状态,
其中,所述工作量是所述多个处理器核的平均工作量。
13.根据权利要求12所述的计算机实现方法,其中,转移所述第一处理器核到降低功率状态包括:转移所述第一处理器核到下述状态:其中,与所述第一处理器核相关联的一个或多个核锁相环被关闭,与所述第一处理器核相关联的高速缓存被刷新,并且所述第一处理器核的状态被保存到高速缓存。
14.根据权利要求12所述的计算机实现方法,其中,所述预定阈值至少部分基于所述计算设备的电池功率水平而确定。
15.根据权利要求12所述的计算机实现方法,其中,所述预定阈值至少部分基于所述计算设备的热状态而确定。
16.根据权利要求12所述的计算机实现方法,进一步包括周期性地测量多个处理器核的当前负荷水平,以确定所述多个处理器核的平均工作量。
17.根据权利要求16所述的计算机实现方法,其中,所述多个处理器核的当前负荷水平被每4-6秒加以测量。
18.根据权利要求12所述的计算机实现方法,其中,所述准则是第一准则,并且其中,响应于由所述计算设备执行,指令进一步使得所述计算设备能够响应于所述多个处理器核的工作量满足第二准则的确定,转移所述第一处理器核到非屏蔽状态,其中新的任务要被分配到所述第一处理器核。
19.根据权利要求18所述的计算机实现方法,其中,所述第二准则包括所述多个处理器核的工作量是否超过预定阈值。
20.根据权利要求12所述的计算机实现方法,其中,所述准则是第一准则,以及其中,所述方法进一步包括:响应于第二准则已被满足的确定,转移计算设备的多个处理器核中的第二处理器核到屏蔽状态,其中没有新的任务要被分配到所述第二处理器核,以及已被分配给所述第二处理器核的任务被执行到完成,所述第二准则不同于所述第一准则。
21.根据权利要求20所述的计算机实现方法,其中,所述第一和第二处理器核以不同的频率操作。
22.根据权利要求20所述的计算机实现方法,其中,所述第一准则包括多个处理器核的工作量是否落到第一预定阈值以下,并且所述第二准则包括多个处理器核的工作量是否落到第二预定阈值以下,所述第二预定阈值不同于所述第一预定阈值。
23.一种或多种在其上具有指令的计算机可读介质,所述指令响应于由计算设备的一个或多个处理设备的执行而使所述计算设备执行根据权利要求12-22中任一项所述的方法。
24.一种计算机实现装置,包括:
用于由被配置成将任务分配给计算设备的多个处理器核的调度器确定多个处理器核的工作量满足准则的部件,所述准则至少部分基于对计算设备来说可用的功率或与计算设备相关联的温度,其中,所述准则包括多个处理器核的工作量是否落到预定阈值以下;
用于由所述调度器转移计算设备的多个处理器核中的第一处理器核到中间屏蔽状态,在所述中间屏蔽状态中,没有新的任务要被分配到所述第一处理器核,以及已被分配给所述第一处理器核的一个或多个任务被执行到完成而不被迁移到其他处理器核;和
用于在已被分配给所述第一处理器核的一个或多个任务被执行到完成之后,由所述调度器转移所述第一处理器核到降低功率状态的部件,
其中,所述工作量是所述多个处理器核的平均工作量。
25.根据权利要求24所述的计算机实现装置,其中,用于转移所述第一处理器核到降低功率状态的部件包括:用于转移所述第一处理器核到下述状态的部件:其中,与所述第一处理器核相关联的一个或多个核锁相环被关闭,与所述第一处理器核相关联的高速缓存被刷新,并且所述第一处理器核的状态被保存到高速缓存。
26.根据权利要求24所述的计算机实现装置,其中,所述预定阈值至少部分基于所述计算设备的电池功率水平而确定。
27.根据权利要求24所述的计算机实现装置,其中,所述预定阈值至少部分基于所述计算设备的热状态而确定。
28.根据权利要求24所述的计算机实现装置,其中,所述装置进一步包括用于周期性地测量多个处理器核的当前负荷水平以确定所述多个处理器核的平均工作量的部件。
29.根据权利要求28所述的计算机实现装置,其中,所述多个处理器核的当前负荷水平被每4-6秒加以测量。
30.根据权利要求24所述的计算机实现装置,其中,所述准则是第一准则,并且其中,响应于由所述计算设备执行,指令进一步使得所述计算设备能够响应于所述多个处理器核的工作量满足第二准则的确定,转移所述第一处理器核到非屏蔽状态,其中新的任务要被分配到所述第一处理器核。
31.根据权利要求30所述的计算机实现装置,其中,所述第二准则包括所述多个处理器核的工作量是否超过预定阈值。
32.根据权利要求24所述的计算机实现装置,其中,所述准则是第一准则,以及其中,所述装置进一步包括:用于响应于第二准则已被满足的确定,转移计算设备的多个处理器核中的第二处理器核到屏蔽状态的部件,在所述屏蔽状态中,没有新的任务要被分配到所述第二处理器核,以及已被分配给所述第二处理器核的任务被执行到完成,所述第二准则不同于所述第一准则。
33.根据权利要求32所述的计算机实现装置,其中,所述第一和第二处理器核以不同的频率操作。
34.根据权利要求32所述的计算机实现装置,其中,所述第一准则包括多个处理器核的工作量是否落到第一预定阈值以下,并且所述第二准则包括多个处理器核的工作量是否落到第二预定阈值以下,所述第二预定阈值不同于所述第一预定阈值。
CN201280072497.7A 2012-05-09 2012-05-09 在处理器核之间调度任务 Expired - Fee Related CN104380257B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/037171 WO2013169249A1 (en) 2012-05-09 2012-05-09 Scheduling tasks among processor cores

Publications (2)

Publication Number Publication Date
CN104380257A CN104380257A (zh) 2015-02-25
CN104380257B true CN104380257B (zh) 2020-11-13

Family

ID=49551095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280072497.7A Expired - Fee Related CN104380257B (zh) 2012-05-09 2012-05-09 在处理器核之间调度任务

Country Status (6)

Country Link
US (1) US9207994B2 (zh)
EP (1) EP2847674A4 (zh)
CN (1) CN104380257B (zh)
AU (1) AU2012379690B2 (zh)
TW (1) TWI595418B (zh)
WO (1) WO2013169249A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990407B2 (en) * 2012-04-24 2021-04-27 Intel Corporation Dynamic interrupt reconfiguration for effective power management
US8904204B2 (en) 2012-06-29 2014-12-02 International Business Machines Corporation Managing computing resources through aggregated core management
CN103777734A (zh) * 2012-10-25 2014-05-07 英业达科技有限公司 机柜式服务器系统与其操作方法
KR20140080058A (ko) * 2012-12-20 2014-06-30 삼성전자주식회사 멀티코어를 위한 로드 밸런싱 방법 및 휴대 단말
RU2538920C2 (ru) * 2013-05-06 2015-01-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ распределения задач сервером вычислительной системы, машиночитаемый носитель информации и система для реализации способа
KR102205836B1 (ko) * 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9582012B2 (en) * 2014-04-08 2017-02-28 Qualcomm Incorporated Energy efficiency aware thermal management in a multi-processor system on a chip
US20150355660A1 (en) * 2014-06-06 2015-12-10 Qualcomm Incorporated Enhanced core power reduction
US11474874B2 (en) * 2014-08-14 2022-10-18 Qubole, Inc. Systems and methods for auto-scaling a big data system
US9424092B2 (en) 2014-09-26 2016-08-23 Microsoft Technology Licensing, Llc Heterogeneous thread scheduling
US10175885B2 (en) * 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
US11436667B2 (en) 2015-06-08 2022-09-06 Qubole, Inc. Pure-spot and dynamically rebalanced auto-scaling clusters
CN105892596A (zh) * 2016-03-28 2016-08-24 联想(北京)有限公司 一种信息处理方法及电子设备
CN105656793A (zh) * 2016-03-28 2016-06-08 深圳市双赢伟业科技股份有限公司 一种对无线路由器降温的方法和无线路由器
US11080207B2 (en) 2016-06-07 2021-08-03 Qubole, Inc. Caching framework for big-data engines in the cloud
US10606664B2 (en) 2016-09-07 2020-03-31 Qubole Inc. Heterogeneous auto-scaling big-data clusters in the cloud
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
US10554554B2 (en) 2016-12-06 2020-02-04 Microsoft Technology Licensing, Llc Hybrid network processing load distribution in computing systems
US10715424B2 (en) 2016-12-06 2020-07-14 Microsoft Technology Licensing, Llc Network traffic management with queues affinitized to one or more cores
US10826841B2 (en) * 2016-12-06 2020-11-03 Microsoft Technology Licensing, Llc Modification of queue affinity to cores based on utilization
US10055248B1 (en) 2017-02-22 2018-08-21 Red Hat, Inc. Virtual processor scheduling via memory monitoring
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
US10528118B2 (en) 2017-04-21 2020-01-07 Intel Corporation Dynamically power on/off register files during execution
US10733024B2 (en) 2017-05-24 2020-08-04 Qubole Inc. Task packing scheduling process for long running applications
CN109522101B (zh) * 2017-09-20 2023-11-14 三星电子株式会社 用于调度多个操作系统任务的方法、系统和/或装置
US10955901B2 (en) * 2017-09-29 2021-03-23 Advanced Micro Devices, Inc. Saving power in the command processor using queue based watermarks
US11138037B2 (en) 2017-11-02 2021-10-05 Mediatek Inc. Switch policy for hybrid scheduling in multi-processor systems
US11451067B2 (en) * 2017-12-19 2022-09-20 Intel Corporation Method, apparatus and system to enhance a device policy manager to manage devices based on battery condition
US11228489B2 (en) 2018-01-23 2022-01-18 Qubole, Inc. System and methods for auto-tuning big data workloads on cloud platforms
CN109634745B (zh) * 2018-12-03 2023-01-10 郑州云海信息技术有限公司 一种基于时间轴的动态调节cpu核负载的方法及系统
US11650851B2 (en) * 2019-04-01 2023-05-16 Intel Corporation Edge server CPU with dynamic deterministic scaling
US11144360B2 (en) 2019-05-31 2021-10-12 Qubole, Inc. System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system
US11704316B2 (en) 2019-05-31 2023-07-18 Qubole, Inc. Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks
US11489776B2 (en) * 2020-07-28 2022-11-01 Arista Networks, Inc. Multicore offloading of network processing
US20220188208A1 (en) * 2020-12-10 2022-06-16 Advanced Micro Devices, Inc. Methods for configuring span of control under varying temperature
CN113900712B (zh) * 2021-10-26 2022-05-06 海光信息技术股份有限公司 指令处理方法、指令处理装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561485A (zh) * 2000-12-27 2005-01-05 英特尔公司 用于限制在由虚拟机监控器支持的虚拟机上运行的客户软件操作的新处理器模式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737615A (en) 1995-04-12 1998-04-07 Intel Corporation Microprocessor power control in a multiprocessor computer system
US20030097508A1 (en) * 2001-11-16 2003-05-22 Aneshansley Nicholas E. Dynamically configuring processor resources
US8639946B2 (en) 2005-06-24 2014-01-28 Sigmatel, Inc. System and method of using a protected non-volatile memory
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US20080098245A1 (en) * 2006-03-22 2008-04-24 G2 Microsystems, Inc. Power management system and method
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
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
US8892916B2 (en) 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
US8171319B2 (en) * 2009-04-16 2012-05-01 International Business Machines Corporation Managing processor power-performance states
US8607243B2 (en) * 2011-09-20 2013-12-10 International Business Machines Corporation Dynamic operating system optimization in parallel computing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1561485A (zh) * 2000-12-27 2005-01-05 英特尔公司 用于限制在由虚拟机监控器支持的虚拟机上运行的客户软件操作的新处理器模式

Also Published As

Publication number Publication date
US20130318379A1 (en) 2013-11-28
AU2012379690B2 (en) 2015-11-05
TW201407479A (zh) 2014-02-16
TWI595418B (zh) 2017-08-11
EP2847674A1 (en) 2015-03-18
WO2013169249A1 (en) 2013-11-14
AU2012379690A1 (en) 2014-11-06
EP2847674A4 (en) 2016-01-27
US9207994B2 (en) 2015-12-08
CN104380257A (zh) 2015-02-25

Similar Documents

Publication Publication Date Title
CN104380257B (zh) 在处理器核之间调度任务
US20130086395A1 (en) Multi-Core Microprocessor Reliability Optimization
US9229525B2 (en) Adaptive latency tolerance for power management of memory bus interfaces
KR102189115B1 (ko) 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법
US20180348851A1 (en) Report updated threshold level based on parameter
US8726055B2 (en) Multi-core power management
US9600059B2 (en) Facilitating power management in a multi-core processor
US8959531B2 (en) Coordinating device and application break events for platform power saving
US20140013098A1 (en) Thermal Profile Optimization Techniques
US9535483B2 (en) Adaptively disabling and enabling sleep states for power and performance
KR20140040933A (ko) 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US9588578B2 (en) Method of changing an operating frequency for performing a dynamic voltage and frequency scaling, system on-chip, and mobile device having the same
JP2016523399A (ja) エネルギー効率的なモバイルプラットフォームのための適応的割り込みコアレッシング
EP3172635B1 (en) Ultra low power architecture to support always on path to memory
TWI670592B (zh) 系統單晶片、關於其之方法及包括該系統單晶片之裝置
US11181969B2 (en) Method and system for graphics processor unit busy state detection
US9760145B2 (en) Saving the architectural state of a computing device using sectors
CN113056717B (zh) 提供功率管理的方法和装置及计算机可读存储介质
EP2775395B1 (en) Integrated circuit, electronic device and instruction scheduling method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201113

Termination date: 20210509

CF01 Termination of patent right due to non-payment of annual fee