CN107533479A - 功率知晓调度和功率管理器 - Google Patents
功率知晓调度和功率管理器 Download PDFInfo
- Publication number
- CN107533479A CN107533479A CN201680020840.1A CN201680020840A CN107533479A CN 107533479 A CN107533479 A CN 107533479A CN 201680020840 A CN201680020840 A CN 201680020840A CN 107533479 A CN107533479 A CN 107533479A
- Authority
- CN
- China
- Prior art keywords
- thread
- processing unit
- performance
- multistage
- scheduling
- 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
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/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- 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/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
具有多个处理单元的计算***被配置成通过使线程被分配给处理单元来执行工作。线程调度器被耦合到多个处理器并被配置为将线程调度到这些处理单元。功率管理器被耦合到线程调度器并控制处理单元的性能状态或空闲状态。线程调度器维护关于每个处理单元的当前性能状态或空闲状态的信息。所述信息包括计算***中的处理单元的多级描述。多级描述包括处理单元的性能状态或空闲状态的不同等级的三个或更多个不同的条目值。功率管理器将处理单元的多级描述提供给线程调度器,其被配置为基于多级描述将线程调度到处理单元。
Description
背景
背景和相关技术
计算机和计算***已经影响了现代生活的近乎每一个方面。计算机通常涉及工作、休闲、保健、运输、娱乐、家政管理等。
在计算***中使用的现代处理器提供可由操作***管理以实现更高的能效和节能的多个性能状态(例如高级配置与电源接口(ACPI)P-状态)以及空闲状态(ACPI C-状态)。一些功率状态可以具有与将处理器带离低功耗空闲状态以使得其可以恢复工作相关联的重要的“退出延迟”。
本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实施所述一些实施例的一个示例性技术领域。
简要概述
本文解说的一个实施例包括可在包括多个处理单元的计算***中实施的方法。所述方法包括对所述多个处理单元上的线程进行调度的动作。所述方法包括:对于特定处理单元模型,获得三个或更多个性能状态到各性能等级以及该特定处理单元模型的各处理单元的功率要求的多级映射或者三个或更多个空闲状态到从各空闲状态退出的退出延迟以及该特定处理单元模型处于各空闲状态时的功率要求的多级映射中的至少一者。所述方法还包括:对于所述特定模型的多个处理单元中的每个处理单元,获得关于每个处理单元的当前性能状态或空闲状态中的至少一个的信息以创建在计算***中的处理单元的多级描述。多级描述包括所述多个处理单元中的各处理单元的性能状态或空闲状态的三个或更多个不同的条目值。所述方法还包括基于多级描述将线程从线程调度器调度到处理单元。
另一个实施例包括具有多个处理单元的计算***,所述多个处理单元被配置成通过使线程被分配给该处理单元来执行工作。所述***还包括被耦合到多个处理器的线程调度器。线程调度器被配置为将线程调度到多个处理单元中的各处理单元。所述***还包括被耦合到多个线程调度器的功率管理器。功率管理器被配置为控制处理单元的性能状态或空闲状态中的至少一个。线程调度器维护关于每个处理单元的当前性能状态或空闲状态中的至少一个的信息。所述信息包括计算***中的各处理单元的多级描述。多级描述包括所述多个处理单元中的各处理单元的性能状态或空闲状态的不同级别的三个或更多个不同的条目值。功率管理器被耦合到线程调度器,以将计算***中的处理单元的多级描述提供给线程调度器。线程调度器被配置为基于计算***中的各处理单元的多级描述将线程调度到多个处理单元中的各处理单元。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附加特征和优点将在以下描述中提出,且部分会从描述中显而易见,或者可以通过实施本文的原理来获悉。本发明的特征和优点可以通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征从以下描述和所附权利要求书中将更完全显而易见,或者可以通过如下文所述实施本发明而获悉。
附图简述
为了描述能够获得上述和其它优点和特征的方式,将通过参考附图中示出的各具体实施例来呈现对以上简述的主题的更为具体的描述。理解这些附图仅描述典型的实施例,因此不应被视为限制本发明的范围,各实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:
图1解说了一种***,该***具有多个处理单元、功率管理器以及与功率管理器通信以调度多个处理单元上的线程的线程调度器。
图2解说了一种调度在多个处理单元上的线程的方法。
详细描述
如上所述,计算***中的现代处理器提供可由操作***管理以实现更高的性能、能量效率或节能的多个性能状态(例如ACPI P-状态)以及空闲状态(例如ACPI C-状态)。一些功率状态可以具有与将处理器带离低功耗状态以使得其可以恢复工作相关联的重要的“退出延迟”。然而,通常,在选择要将准备好执行的线程(其中线程是基本指令序列)调度到其上的空闲处理器时,线程调度器不考虑详细的性能状态或空闲状态信息。没有该信息,调度器可能做出从功率角度且还可能从性能角度而言低效的决策。
相反,本文中解说的一些实施例可以被配置成使得在选择要将准备好执行的线程调度到其上的处理器时,线程调度器可考虑处理器的多级空闲状态和/或多级性能状态。在选择要将线程调度到其上的处理器时,处于更深度空闲状态(例如具有大于某个阈值的退出延迟或具有大于某个阈值的节能)的处理器可被给予适当缩放的负加权因子。类似地,处理器的性能状态的知识可以由线程调度器结合关于准备好的线程执行特性的信息用于选择具有适当的当前性能状态的处理器。
现在参考图1。图1示出处理器封装102。处理器封装102包括多个处理单元。在所示的示例中,示出了四个处理单元102-0、102-1、102-2和102-3。然而,在其它实施例中,可以实现更少或更多的处理器。如在此所用,处理单元可以是处理器核、超线程或其它处理单元。处理单元通过使线程被调度给它们来执行工作。
处理单元的空闲状态和性能状态由功率管理器104控制。具体而言,功率管理器104可以配置个别的空闲状态和/或功率状态。功率管理器可以被实现在硬件、固件或软件中。在一些实施例中,功率管理器104可以被实现在操作***中。
下面解说空闲状态和性能状态的各示例。具体而言,ACPI定义被称为C-状态的处理器空闲状态以及被称为P-状态的处理器性能状态。在ACPI中,CPU空闲状态C0–C3被定义如下:
C0是操作状态。尽管处理器在C0空闲状态中不是真正“空闲”的,但其还是被分类为ACPI空闲状态中的一种。C1(通常被称为Halt)是其中处理单元不在执行指令但可基本上即时地返回到执行状态的状态。C2(通常被称为Stop-Clock(停止钟))是其中处理单元维持所有软件可见状态但可花费更长的时间来唤醒的状态。C3(通常被称为Sleep(睡眠))是其中处理单元不必保持其缓存一致但维持其它状态的状态。一些处理单元在C3状态上具有变化(Deep Sleep(深度睡眠),Deeper Sleep(更深度睡眠)等),其区别在于唤醒处理单元要花费多长时间。
尽管设备或处理单元例如通过处于C0空闲状态工作,但其可处于若干功率性能状态中的一者。P0是最高性能状态,而P1、P2、…到Pm是连续的较低性能状态。在P0,处理单元以最大功率和频率工作。P1是比P0更低的性能,这通常归因于较低的电压和/或频率。P2小于P1,其中电压/频率被缩放等。
功率管理器104与存储106相关联,存储106包括跟踪处理单元102-0、102-1、102-2和102-3的空闲和性能状态的一个或多个存储实体。在所示的示例中,性能/空闲状态表108表示这些存储实体。在图1所示的示例中,性能/空闲状态表108包括每个处理单元的性能状态条目,性能状态条目以每个处理单元为基础将频率和/或电压标识为总频率和/或电压的一个百分比。在一些实施例中,这可以是当前的频率和/或电压值。然而,实施例还可以包括表示处理单元活动时的频率和/或电压的最近工作频率和/或功率值。例如,处理单元102-1处于指示它基本上被关机且不工作的C3空闲状态。然而,在被置入该状态之前,处理单元102-1以50%工作。这以括号中的50%来展示。这样,如在此所使用的,在性能/空闲状态表106中的括号中的频率和/或电压值指示了最近工作频率和/或功率值,其表示处理单元活动但该处理单元当前没有以该频率和/或功率值工作时的频率和/或电压。
功率管理器104还访问与空闲状态和性能状态相关的附加信息。例如,图1解说了空闲状态表110和性能状态表112。
空闲状态表110包括多个(即三个或更多)空闲状态的信息。在这个示例中,空闲状态表包括每个空闲状态的功率汲取条目和退出延迟条目。功率汲取条目标识当处理单元处于特定空闲状态时由处理单元汲取的功率量。退出延迟是将处理单元从特定空闲状态带离出进入全功能空闲状态(即在本示例中为C0)所花费的时间量。
性能状态表112包括多个性能状态的信息。在这个示例中,性能状态表112包括每个性能状态的频率条目、功率条目和性能条目。在所示的示例中,频率条目标识总频率中处于给定性能状态的处理单元在工作的百分比。这样,例如,具有为1.5GHz的最大工作频率的处理单元以80%工作,即以1.2GHz工作。一些实施例可以另外或替换地包括(例如通过最大电压的百分比、绝对值或其它值)标识电压电平的电压电平条目。
功率条目标识以给定性能状态工作的处理单元所汲取的功率量。这通常用瓦特来表达。
性能条目标识了与该性能状态相关联的任何附加性能特征,包括高速缓存频率或大小或关联,或存储器频率或宽度,或特定卸载引擎特性,或与具有折衷功率和性能的能力的任何其它硬件组件相关联的特征。
再次参考图1,实施例可以包括线程调度器114。线程调度器114对处理单元102-0到102-4上的工作进行调度。其中线程调度器114与功率管理器104通信的实施例可以被实现。线程调度器114和功率管理器104之间的通信可以被用于改善***的响应性。线程调度器114和功率管理器104之间的通信可以另外地或替换地被用于改善***的能效或节能。
下面解说了可发生在线程调度器114和功率管理器104之间以实现该响应性和/或能效或节能的通信的各示例。在本上下文中,能效可以被认为是完成给定任务或任务组所需的能量(功率*时间)。
传统上,线程调度器通过标准选择要在其上执行准备好的线程的处理单元,所述标准为例如该线程先前曾被调度到过(以获得“热高速缓存”利益)的地方的历史、该线程曾与其密切相关(强制的或可选的)的处理单元或处理单元的子集、当前活动的处理单元的分布以及其它相关联的资源(例如I/O或存储器)的位置。实施例可通过还(或替换地)考虑每个处理单元的当前空闲状态和/或性能状态和/或线程的期望性能特性来改进这些决策。当处理单元可以具有多个(例如三个或更多个)不同的空闲状态和多个性能状态时,这尤其为真。例如,当特定处理单元模型处于深度空闲状态(例如ACPI C-状态C6)时,可能发生该特定处理单元模型刷新其相关联的高速缓存中的一者或多者。在这样的情况下,高速缓存的位置优势被减少或移除,并且由此实施例可以确定当选择要将线程调度到其上的处理器时,这样的处理单元应该有更少的权重被给予它们或根本不被考虑。
为了做出性能和功率两者都知晓的线程调度决策,可以在线程调度器114和功率管理器104之间建立通信以传递有帮助的信息。这样的信息可以包括处理单元的功率-性能简档;处理单元所处的性能状态;处理单元所处的空闲功率状态;处理单元离开空闲状态的退出延迟;空闲状态的功率要求、性能状态的功率要求,等。如上所述,功率管理器104使得可以从性能/空闲状态表108、空闲状态表110和性能状态表112中获得该信息。
这样,线程调度器114可以使用如上所述的功率性能简档的知识,并且功率管理器104可以决定在下一个功率管理器时间段期间处理单元应该以哪个性能和空闲状态来运行。在该上下文中,功率管理器时间段可以被认为是下一(不久的将来的)时间间隔,在该时间间隔中功率管理器不将对处理单元的性能和空闲状态做出改变(或做出最小的改变),除非***的状态以某种方式被改变。功率管理器104可以将关于处理单元的当前性能和空闲状态的信息提供给线程调度器114,以使得线程管理器114可以将该信息认为是在做出线程调度决策时的输入之一。
类似地,功率管理器104可以从线程调度器114(或***中的任意其它实体)接收关于在最近结束的功率管理器时间段中发生的活动的种类或即将在不久的将来(即下一功率管理器时间段)中发生的活动的种类的信息。该信息可以被功率管理器104在其功率管理器决策制定中使用。
线程的特性当与由功率管理器104所提供的信息相结合时可以以多种方式被用于改善线程调度决策。例如,如果高优先级线程准备好运行,线程调度器114可以决定不唤醒处于深度空闲状态的处理单元,而是代之在处于浅度空闲状态的处理单元上运行,其中深度或浅度由离开该空闲状态的退出延迟决定。线程调度器114可以甚至选择抢占在活动处理单元处运行的低优先级线程。该决策还可以将线程最后运行时间或平均运行时间考虑为其它输入之一。类似地,当在活动的处理单元中选择时,线程调度器114可以考虑处理单元的性能状态(如果该信息可用的话),以选择要将高优先级线程调度到其上的处理单元。线程调度器114可以甚至选择抢占在高性能状态处理单元上运行的低优先级线程。通过为高优先级线程选择处于“活动”状态和/或高性能状态的处理单元,线程调度器114可以通过更快地完成关键任务来改善***的响应性。注意,在本上下文中的“优先级”的概念不意指线程优先级的任何特定实现,而指示线程的“优先级”确定其相对于其它线程的重要性(例如其要快速或成功完成的要求)的抽象期望。
关于除了在最后的功率时间段期间运行的线程之外的线程的信息116可以由线程调度器114维护。由调度器收集/维护的信息可以在线程调度器114和功率管理器104之间传递以决定***(或处理单元)的性能和空闲状态。线程调度器114可以维护诸如在不同的优先级级别(例如实时优先级级别、前景优先级级别、背景优先级级别和正常优先级级别)处花费了多少时间之类的信息。如果某些优先级级别处有更多工作发生,功率管理器104可以使***的特性更偏向性能,而在其它情况下,它可以扭转为倾向节能。类似地,线程调度器114可以计算在先前功率管理器时间段期间线程在就绪状态(即准备好被执行且等待被调度到处理单元)中花费了多少时间。基于该信息,功率管理器104可以决定多少处理单元应该被置于特定功率和/或性能状态中。
线程调度器114还可以为线程展示一个途径(诸如API)以指示那些线程想要在以更高性能状态运行的处理单元处运行。如此,当线程调度器114选择空闲处理单元时,其偏好以高频率运行的处理单元。或者,在假设更高优先级线程应该更快完成它们的工作的情况下,线程调度器114可以基于线程的优先级选择偏好以高频率运行的处理单元以改善响应性。为了使其发生,如上所述,在功率管理器104和线程调度器114之间存在通信。
在一些实施例中,线程调度器114维护细粒度信息,例如线程在其被调度时的运行时间或线程在其被取消调度时的期望等待时间。当决定处理单元的性能和/或功率状态时,该信息可以被用作功率管理器104的输入。例如,如果期望线程长期运行,线程调度器114可以向功率管理器104提供为线程快速增加处理器的性能状态(或甚至直接选择处理器的最高性能状态)的暗示。类似地,如果期望线程准备好在简短的时间量(例如几微秒)之后运行,线程调度器114可以向功率管理器104提供不将处理单元置于低功率状态的暗示,因为很可能马上就需要它。
在一些实施例中,来自***的特性或工作负荷可以被提取并馈送回功率管理器104。例如,当在屏幕上有东西改变时,可以解释成其直接将有价值的信息提供给用户,并且因此在这样的情况下对***的性能的不利影响将可被用户负面地感知。这样,实施例可以将线程调度到处理单元,以便偏好***的性能,或者至少该***与屏幕更新相关的那部分。然而,这也可以有判断力地完成,因为在屏幕上的小更新可能不会向用户提供有价值的信息,因此可将那些小改变从更多有意义的用户界面更新中过滤掉。当***需要更高的性能时,其它使用情况可以被标识。例如,应用启动、应用切换等可以是期望更高性能以最小化对用户的影响的缘由。
在***中的其它组件可以向线程调度器114提供信息。例如,***可以提供关于服务质量(QoS)的信息。这样的信息可以标识与由线程执行的动作相关联的QoS要求。替换地或另外地,实施例可以标识QoS承诺是否被满足。该信息可以被用于在处理器上调度线程。例如,如果QoS没有被满足,线程可以被调度到以更高性能工作的处理单元。如果QoS被满足,有可能将线程调度到较低性能的处理单元以节省能源。
作为QoS考虑的一个示例,在多媒体体验(例如媒体回放或实况媒体捕捉)中所涉及到的构架在其预期的操作逼近期限并且因此功率管理器104应该扭转为偏好性能直到现有条件被调整时可以向功率管理器104提供反馈。类似地,负责***动画或最终屏幕合成的构架或***组件可以向功率管理器104提供其需要来自***的更多性能以合成多个表面的反馈。
中断和推迟过程调用(DPC)是需要以非常高性能的方式来处理的重要工作项,因为中断和DPC是非常高优先级的工作项,其可以防止其它工作在处理单元上发生,直到这些工作项完成它们的执行。如果平台和/或操作***允许可将中断和DPC引导到不同的处理单元,则处理单元的性能和/或空闲状态可被考虑以作出决策。在具有多个设备和/或多个中断优先级等级的***上,中断优先级等级和处理单元的性能和/或空闲状态两者可被组合地用于做出线程调度决策。
还可以基于在性能和能效或节能之间的折衷决策来做出中断和/或DPC转向决策。例如,当需要性能时,中断和/或DPC可以被引导到已经处于高性能状态的处理单元。当能效或节能是重要的时,中断和/或DPC可以被调度到各处理单元,使得处理单元的性能状态为高性能状态不是如此重要。
可以基于权重在线程调度方案中使用如上和如下讨论的因子。具体而言,某些因子的存在性或某些因子的程度可以使得到线程调度决策制定方案的输入以某种形式被加权。这样,例如,存在某种因子可以引起对高性能处理单元或低退出延迟单元的更大偏好。然而,加权不一定强制选择这样的处理单元,而是简单地使得它们更加优选同时允许在其它因子使得加权输入是偏好较低功耗的处理单元时选择其它处理单元。
下面的讨论现在涉及可被执行的多个方法和方法动作。尽管这些方法动作可以以特定次序被讨论或在流程图中被例示为以指定次序发生,但是除非特别指明否则不需要任何特定排序,或者因某一动作取决于在该动作被执行之前完成的另一个动作而要求特定排序。
现在参考图2,例示出方法200。可在包括多个处理单元的计算***中实施方法200。所述方法200包括在所述多个处理单元上调度线程的动作。所述方法200包括:对于特定处理单元模型,获得三个或更多个性能状态到各性能等级以及该特定处理单元模型的各处理单元的功率要求的多级映射或者三个或更多个空闲状态到从各空闲状态退出的退出延迟以及该特定处理单元模型处于各空闲状态时的功率要求的多级映射中的至少一者(动作202)。例如,图1解说了可能包括该信息的空闲状态表110和性能状态表112。该信息可以是对功率管理器104可用的。
所述方法200还包括:对于所述特定模型的多个处理单元中的每个处理单元,获得关于每个处理单元的当前性能状态或空闲状态中的至少一个的信息以创建计算***中的处理单元的多级描述(动作204)。多级描述包括用于在所述多个处理单元中的处理单元的性能状态或空闲状态的三个不同级别处的三个或更多个不同的条目值。这样,例如,图1解说了可以存储各种处理单元的当前性能状态和/或空闲状态的不同条目值的性能/空闲状态表108。不同级别的不同值的示例可以是例如不同的空闲状态级别或不同的性能状态级别。这样,在图1所示的示例中,性能/空闲状态表108包括空闲状态的四个条目C0、C3、C2和C1。这些条目中的每个条目具有表示多级空闲状态映射的不同级别的不同值。类似地,性能/空闲状态表108包括具有不同的性能状态值的四个不同的条目。这些条目的每个条目具有表示多级性能状态映射的不同级别的不同值。该信息是对功率管理器104可用的。
所述方法200还包括基于多级描述将线程从线程调度器调度到处理单元(动作206)。例如,功率管理器104可以为线程调度器114提供来自性能/空闲状态表108的信息。线程调度器可以使用该信息来将线程调度到处理单元102-0、102-1、102-2和102-3中的一者或多者。
可以执行其中调度线程基于线程的优先级的方法200。例如,如果线程满足或超过特定优先级特性(即为高优先级线程),被设定在比多个处理单元中的另一个处理单元具有更高性能状态的性能状态处或处于比另一个处理单元具有更低退出延迟的空闲状态处的处理单元被选择以使得线程被调度到该处理单元。或者,如果线程低于特定优先级特性(即为低优先级线程),调度可以较少关注具有高性能的处理单元性能状态或其具有低退出延迟的空闲状态。
可以执行其中调度线程基于线程的延迟敏感性的方法200。例如,线程可以与其中高延迟有害的实时处理相关联。这样,例如,实施例可以对要求低延迟以被调度到具有高性能特性或低退出延迟的处理单元的线程进行加权。如果延迟是不重要的,这在调度过程中可不再被强调。
可以执行其中调度线程基于与该线程相关联的服务质量(QoS)保证的方法200。例如,如果***没有以约定的QoS工作,线程调度可以强调高性能处理单元或低退出延迟处理单元以改善QoS。相反,如果***远远超出约定的QoS,可以通过对更低性能处理单元强调更低***功率要求同时仍然在约定的QoS协议内工作来保存功率和资源。
可以执行其中调度线程基于线程的期望运行时持续时间的方法200。例如,任务的过去历史可以提供要被调度的线程的运行时持续时间的指示。如上所述,具有短运行时的线程可以具有偏好低退出延迟或高性能处理单元的调度,或甚至偏好抢占已经在处理单元上运行的其它更长的运行线程的调度。更长的运行可以证明偏好更高退出延迟和/或更低性能处理单元的调度是合理的。
可以执行其中调度线程基于线程的期望性能的方法200。例如,可以包括指示线程应该在高性能处理单元上运行的附加元数据。在一些特定实施例中,线程可以具有指示线程的期望性能状态的相关联的信息。
可以执行其中调度线程基于线程的就绪时间度量的方法200。例如,可以作出关于线程已经在线程调度器114中等待被调度的时间量的判定。具有长等待时间的线程可以以下述方式被调度:偏好具有高性能的处理单元、具有低退出延迟的处理单元和/或抢占已经执行的线程。
可以执行其中调度线程基于线程所执行的动作的用户感知性的方法200。例如,如果线程涉及用户快速可见的操作(例如更新屏幕),则该线程可以以下述方式被调度:偏好具有高性能的处理单元、具有低退出延迟的处理单元和/或抢占已经执行的线程。
此外,各方法可由计算机***实现,计算机***包括一个或多个处理器以及诸如计算机存储器这样的计算机可读介质。特别是,计算机存储器可以存储计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时使各种功能得以被执行,诸如各实施例中记载的动作。
本发明的各实施例可以包括或使用包括计算机硬件的专用或通用计算机,如以下更详细讨论的。本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机***访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机***和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机***组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传输至计算机***RAM和/或计算机***处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可以被包括在同样(或甚至主要)利用传输介质的计算机***组件中。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机***配置的网络计算环境中实践,这些计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器***、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机***两者都执行任务的分布式***环境中实施。在分布式***环境中,程序模块可以位于本地和远程存储器存储设备二者中。
替换地或附加地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上******(SOC)、复杂可编程逻辑器件(CPLD)、等等。
本发明可以以其他具体形式来体现,而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
Claims (10)
1.一种在多个处理单元上调度线程的计算机实现的方法,所述计算机实现的方法由执行所述计算机实现的方法的计算机可执行指令的一个或多个处理器执行,并且所述计算机实现的方法包括:
对于特定处理单元模型,获得三个或更多个性能状态到各性能等级以及所述特定处理单元模型的各处理单元的功率要求的多级映射或者三个或更多个空闲状态到从各空闲状态退出的退出延迟以及所述特定处理单元模型处于各空闲状态时的功率要求的多级映射中的至少一者;
对于所述特定模型的多个处理单元中的每个处理单元,获得关于每个处理单元的当前性能状态或空闲状态中的至少一个的信息以创建所述计算***中的所述处理单元的多级描述,其中所述多级描述包括在所述多个处理单元中的处理单元的性能状态或空闲状态的三个或更多个不同的条目值;以及
基于所述多级描述将线程从线程调度器调度到处理单元。
2.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于所述线程的优先级。
3.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于所述线程的延迟敏感度。
4.如权利要求1所述的计算机实现的方法,其特征在于,调度线程是基于与所述线程相关联的服务质量(QoS)保证。
5.如权利要求1所述的计算机实现的方法,其特征在于,调度线程是基于所述线程的期望运行时持续时间。
6.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于所述线程的期望性能。
7.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于所述线程的就绪时间度量。
8.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于由所述线程执行的动作的用户感知性。
9.如权利要求1所述的计算机实现的方法,其特征在于,调度线程基于来自所述多级描述的加权信息。
10.一种计算***,包括:
多个处理单元,所述多个处理单元通过使线程被分配给所述处理单元来执行工作;
被耦合到所述多个处理器的线程调度器;
被耦合到所述线程调度器的功率管理器,并且其中所述线程调度器维护关于每个处理单元的当前性能状态或空闲状态中的至少一个的信息,并且所述信息包括所述处理单元的多级描述;
其中所述多级描述包括所述多个处理单元中的处理单元的性能状态或空闲状态的不同级别的三个或更多个不同的条目值;以及
其中所述线程调度器基于所述处理单元的所述多级描述来调度分配给所述处理单元的线程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/676,676 US9652027B2 (en) | 2015-04-01 | 2015-04-01 | Thread scheduling based on performance state and idle state of processing units |
US14/676,676 | 2015-04-01 | ||
PCT/US2016/024401 WO2016160639A1 (en) | 2015-04-01 | 2016-03-28 | Power aware scheduling and power manager |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533479A true CN107533479A (zh) | 2018-01-02 |
CN107533479B CN107533479B (zh) | 2021-05-25 |
Family
ID=55661647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680020840.1A Active CN107533479B (zh) | 2015-04-01 | 2016-03-28 | 功率知晓调度和功率管理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9652027B2 (zh) |
EP (1) | EP3278220B1 (zh) |
CN (1) | CN107533479B (zh) |
WO (1) | WO2016160639A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102464678B1 (ko) * | 2016-03-18 | 2022-11-11 | 한국전자통신연구원 | 매니코어 시스템에서 쓰레드를 스케줄링 하는 방법 및 그 장치 |
US10884811B2 (en) | 2017-06-04 | 2021-01-05 | Apple Inc. | Scheduler for AMP architecture with closed loop performance controller using static and dynamic thread grouping |
US11531563B2 (en) | 2020-06-26 | 2022-12-20 | Intel Corporation | Technology for optimizing hybrid processor utilization |
CN112131008B (zh) * | 2020-09-28 | 2024-04-19 | 芯瞳半导体技术(山东)有限公司 | 一种调度线程束warp的方法、处理器及计算机存储介质 |
US20220197367A1 (en) * | 2020-12-18 | 2022-06-23 | Intel Corporation | Hardware and software coordinated cost-aware low power state selection |
EP4359885A1 (en) | 2021-06-22 | 2024-05-01 | Microsoft Technology Licensing, LLC | Power budget management using quality of service (qos) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000039677A1 (en) * | 1998-12-23 | 2000-07-06 | Powertv, Inc. | Method and apparatus for providing operating system scheduling operations |
CN1577311A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和实时处理*** |
US20060123251A1 (en) * | 2004-12-02 | 2006-06-08 | Intel Corporation | Performance state-based thread management |
US20090320031A1 (en) * | 2008-06-19 | 2009-12-24 | Song Justin J | Power state-aware thread scheduling mechanism |
US20100146513A1 (en) * | 2008-12-09 | 2010-06-10 | Intel Corporation | Software-based Thread Remapping for power Savings |
CN101981529A (zh) * | 2008-03-28 | 2011-02-23 | 微软公司 | 功率知晓线程调度和处理器的动态使用 |
CN102541659A (zh) * | 2011-12-30 | 2012-07-04 | 重庆新媒农信科技有限公司 | 一种服务器业务请求处理方法和装置 |
US20120284729A1 (en) * | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Processor state-based thread scheduling |
CN102918501A (zh) * | 2010-05-25 | 2013-02-06 | 英特尔公司 | 用于分析多线程应用的性能的方法和*** |
CN102955555A (zh) * | 2011-08-19 | 2013-03-06 | 苏州简约纳电子有限公司 | 一种多线程处理方法和装置 |
US8839259B2 (en) * | 2007-03-26 | 2014-09-16 | Intel Corporation | Thread scheduling on multiprocessor systems |
US20140372782A1 (en) * | 2013-06-13 | 2014-12-18 | Mauricio Breternitz | Combined dynamic and static power and performance optimization on data centers |
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901522B2 (en) | 2001-06-07 | 2005-05-31 | Intel Corporation | System and method for reducing power consumption in multiprocessor system |
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 |
US9110716B2 (en) | 2008-06-10 | 2015-08-18 | Dell Products, Lp | Information handling system power management device and methods thereof |
US9098274B2 (en) | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
US8321703B2 (en) | 2009-12-12 | 2012-11-27 | Microsoft Corporation | Power aware memory allocation |
US9804874B2 (en) | 2011-04-20 | 2017-10-31 | Microsoft Technology Licensing, Llc | Consolidation of idle virtual machines on idle logical processors |
US9235500B2 (en) | 2010-12-07 | 2016-01-12 | Microsoft Technology Licensing, Llc | Dynamic memory allocation and relocation to create low power regions |
-
2015
- 2015-04-01 US US14/676,676 patent/US9652027B2/en active Active
-
2016
- 2016-03-28 CN CN201680020840.1A patent/CN107533479B/zh active Active
- 2016-03-28 EP EP16714717.2A patent/EP3278220B1/en active Active
- 2016-03-28 WO PCT/US2016/024401 patent/WO2016160639A1/en active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000039677A1 (en) * | 1998-12-23 | 2000-07-06 | Powertv, Inc. | Method and apparatus for providing operating system scheduling operations |
CN1577311A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和实时处理*** |
US20060123251A1 (en) * | 2004-12-02 | 2006-06-08 | Intel Corporation | Performance state-based thread management |
US8839259B2 (en) * | 2007-03-26 | 2014-09-16 | Intel Corporation | Thread scheduling on multiprocessor systems |
CN101981529A (zh) * | 2008-03-28 | 2011-02-23 | 微软公司 | 功率知晓线程调度和处理器的动态使用 |
US20090320031A1 (en) * | 2008-06-19 | 2009-12-24 | Song Justin J | Power state-aware thread scheduling mechanism |
US20100146513A1 (en) * | 2008-12-09 | 2010-06-10 | Intel Corporation | Software-based Thread Remapping for power Savings |
CN102918501A (zh) * | 2010-05-25 | 2013-02-06 | 英特尔公司 | 用于分析多线程应用的性能的方法和*** |
US20120284729A1 (en) * | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Processor state-based thread scheduling |
CN102955555A (zh) * | 2011-08-19 | 2013-03-06 | 苏州简约纳电子有限公司 | 一种多线程处理方法和装置 |
CN102541659A (zh) * | 2011-12-30 | 2012-07-04 | 重庆新媒农信科技有限公司 | 一种服务器业务请求处理方法和装置 |
US20140372782A1 (en) * | 2013-06-13 | 2014-12-18 | Mauricio Breternitz | Combined dynamic and static power and performance optimization on data centers |
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
Non-Patent Citations (2)
Title |
---|
LUCIAN PETRICA ET AL: "Dynamic power management through adaptive task scheduling for multi-threaded SIMD processors", 《: 2012 10TH INTERNATIONAL SYMPOSIUM ON ELECTRONICS AND TELECOMMUNICATIONS》 * |
王科特等: "基于多核处理器的K线程低能耗的任务调度优化算法", 《计算机科学》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3278220B1 (en) | 2022-08-03 |
WO2016160639A1 (en) | 2016-10-06 |
US20160291672A1 (en) | 2016-10-06 |
CN107533479B (zh) | 2021-05-25 |
EP3278220A1 (en) | 2018-02-07 |
US9652027B2 (en) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533479A (zh) | 功率知晓调度和功率管理器 | |
CN104169832B (zh) | 提供处理器的能源高效的超频操作 | |
Calheiros et al. | Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS | |
CN102163072B (zh) | 用于节能的基于软件的线程重映射 | |
CN104081315B (zh) | 包括线程合并的用于能效和节能的方法、装置和*** | |
CN106980492A (zh) | 用于确定处理器核上的工作布置的***、方法和设备 | |
CN107209548A (zh) | 在多核处理器中执行功率管理 | |
CN102812439B (zh) | 用于在多处理器计算机***中分派任务的方法和*** | |
US20110131580A1 (en) | Managing task execution on accelerators | |
CN106716365A (zh) | 异构线程调度 | |
CN107209545A (zh) | 在多核处理器中执行功率管理 | |
CN102695998A (zh) | 用于在虚拟化***中控制中央处理单元功率的***和方法 | |
CN106662909A (zh) | 操作***中的启发式处理器电力管理 | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN105359057A (zh) | 设置计算机参数使得电源工作在基于电源的功率效率峰值的范围内 | |
CN106168846A (zh) | 计算***与在计算***内控制多核心处理器操作的方法 | |
US20180136709A1 (en) | Dynamic External Power Resource Selection | |
CN112269632B (zh) | 一种优化云数据中心的调度方法和*** | |
CN109992366A (zh) | 任务调度方法及调度装置 | |
Zhang et al. | CloudFreq: Elastic energy-efficient bag-of-tasks scheduling in DVFS-enabled clouds | |
CN109491780A (zh) | 多任务调度方法及装置 | |
Mezmaz et al. | A bi-objective hybrid genetic algorithm to minimize energy consumption and makespan for precedence-constrained applications using dynamic voltage scaling | |
Zhang et al. | Energy-efficient task scheduling for DVFS-enabled heterogeneous computing systems using a linear programming approach | |
Wang et al. | Model and algorithm for heterogeneous scheduling integrated with energy-efficiency awareness | |
Bhuiyan et al. | Capability-aware energy-efficient virtual machine scheduling in heterogeneous datacenters |
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 |