CN106980492A - 用于确定处理器核上的工作布置的系统、方法和设备 - Google Patents
用于确定处理器核上的工作布置的系统、方法和设备 Download PDFInfo
- Publication number
- CN106980492A CN106980492A CN201611163844.3A CN201611163844A CN106980492A CN 106980492 A CN106980492 A CN 106980492A CN 201611163844 A CN201611163844 A CN 201611163844A CN 106980492 A CN106980492 A CN 106980492A
- Authority
- CN
- China
- Prior art keywords
- core
- thread
- processor
- list
- candidate
- 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
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/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
- 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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了用于确定处理器核上的工作布置的系统、方法和设备。本申请中公开了用于计算的装置、方法和存储介质,所述计算包括对处理器核上的工作布置的确定。在实施例中,装置可包括一个或多个标识处理器核中的优选核的处理器、设备和/或电路。一个或多个处理器、设备和/或电路可配置为确定是否将线程迁移到或迁移出优选核。在一些实施例中,确定可以是通过由驱动程序执行的过程和/或处理器的功率控制单元执行的算法。
Description
技术领域
本公开涉及处理器效率并且更具体地涉及确定处理器核上的工作布置。
背景技术
本文中所提供的背景描述用于总地呈现本公开的上下文的目的。除非在本文中另有指示,本部分中描述的材料不是本申请中的权利要求的现有技术,并且不因为包含在本部分中而被承认为现有技术。
为了管理制造多核处理器期间的制造变化同时保持质量和可靠性,在测试期间采用保守的保护带,并且基于设备的速度和功率特性对它们“拣选”或分类。常规的速度拣选通过将单独的相关速度和最小操作电压作为整体分配给处理器来将多核处理器视为单核设备。额定的速度和最小电压通常反映最慢核的速度和具有最差的最小电压的核的最小电压。
附图简述
通过下列具体实施方式结合附图,将容易理解实施例。为了便于该描述,相同的附图标记指示相同的结构元件。在附图中,通过示例而非限制地说明实施例。
图1示出了根据各实施例的配备有用于确定处理器核上的工作布置的技术的示例系统。
图2示出了根据各实施例的包括用于确定处理器核上的工作布置的驱动程序的图1的系统的示例。
图3A示出了根据各实施例的可由图2的应用线程跟踪器执行的示例操作。
图3B示出了可由图2的监视回路执行的示例操作。
图3C示出了根据各实施例的可由图2的关联(affinitization)控制回路执行的示例操作。
图4A-B示出了根据各实施例的用于实现图1的系统的功率控制单元(PCU)的模块的伪代码的示例。
图5示出了根据各实施例的可由图1的模块执行的示例过程。
图6示出了根据各实施例的可由图1的模块执行的另一过程。
图7示出了根据各实施例的可采用本文中所描述的装置和/或方法的示例计算设备。
具体实施方式
本文中公开了与包括对处理器核上的工作布置的确定的计算相关联的装置、方法和存储介质。在实施例中,装置可包括一个或多个用于标识处理器核中的优选核的处理器、设备和/或电路。一个或多个处理器、设备和/或电路可配置为确定是否将线程迁移到或迁移出优选核。在一些实施例中,确定可以是通过由驱动程序执行的执行过程和/或处理器的功率控制单元执行的过程。
在以下详细描述中,参考形成本文一部分的附图,其中相同的标记指示全文中相同的部分,并且其中通过说明示出了可以实现的实施例。应理解,可利用其它实施例并作出结构或逻辑改变而不背离本公开的范围。因此,以下详细描述不旨在作为限制,并且实施例的范围由所附权利要求及其等效方案来限定。
所附说明书公开了公开的方面。可以设计本公开的替代实施例及其等效物而不背离本公开的精神或范围。应当注意,下文公开的相同的元件由附图中相同的附图标记指示。
可以按在理解要求保护的主题中最有帮助的方式轮流将各操作描述为多个分立动作或操作。然而,不应将描述的顺序解释为意味着这些操作必然取决于顺序。具体而言,可以不按照呈现的顺序执行这些操作。可以以不同于描述的实施例的顺序执行描述的操作。在附加的实施例中,可以执行各种附加操作和/或可以省略描述的操作。
对于本公开的目的,短语“A和/或B”意思是(A)、(B)或(A和B)。对于本公开的目的,短语“A、B和/或C”意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书可使用短语“在一个实施例中”或“在多个实施例中”,其每一个可指代相同或不同实施例中的一个或多个。此外,相对于本公开的实施例使用的术语“包含”、“包括”、“具有”等同义。
如本文中所使用的,术语“电路”可指代一部分或包括专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的、或组)和/或存储器(共享的、专用的、或组)、组合逻辑电路和/或提供所描述的功能的其他合适的部件。
可以将处理器核(下文中也可简单地称为核)暴露至操作系统,通常经由固件接口(例如,高级配置和电源接口(ACPI))。根据操作系统的调度器策略,随着一个或多个逻辑处理器与每一个处理器核相关联,操作系统可创建逻辑处理器列表并且在这些逻辑处理器上布置工作。由此,操作系统可确定处理器封装中的软件线程(下文中“线程”)的物理布置,例如线程在哪个核/逻辑处理器上运行。由于各种原因,例如制造变化,所有核不是被创造为相等的,例如,尽管核可能是逻辑上相同的(例如,架构上相同的),但可能具有不同的物理特性。能够在更高的性能水平(例如,比处理器封装的频率/电压带更高的频率或更低的电压)操作的核可以被称为优选核。由此,在核上布置工作而不考虑制造变化和/或优选核能导致更高功率和/或更低性能。
本公开提出了用于在操作系统在软件水平(例如,驱动程序水平)在优选核上布置工作的控制过程以及用于在不同水平上(例如,硬件(伪代码)水平)在优选核上布置工作的控制过程。
用于在优选核上布置工作的示例过程可以在操作系统软件(例如,驱动程序)中实现。可以计算需求线程(例如,软件线程)的数量(由于超过可编程阈值的每线程利用率),并且可以将其分配为在优选核的按顺序的列表上运行(例如使用强制紧密度)。此外,随着情况改变,可以对分配到核的工作负载作出动态调节。根据提供的列表顺序或凭借处于“在关注中”(可配置的)的应用,应用的线程可以是优先的。
用于在优选核上布置工作的另一示例过程可包括通过检查核利用(例如依据其c状态和p状态驻留)经由动态核迁移(DCM)用于在优选核上布置工作的伪代码过程。
当调度器在不超过需要的数量的核上实施调度时,首先利用优选核可提供性能和/或功率的益处,因为优选核可以既是最高性能核又是最低电压核。
图1示出了根据各实施例的配备有用于确定处理器核上的工作布置的技术的示例系统。
在至少一个实施例中,系统100可包括具有核区120和非核122的处理器101。在一些实施例中,核区120可包括多个处理核102-1至102-n,但公开的功能可应用于多处理器系统中的单核处理器。在一些实施例中,处理器101可包括第一处理核102-1、第二处理核102-2等等到第n处理核102-n。
在一些实施例中,处理核102可包括提供总功能的不同方面的子元件或集群。在一些实施例中,处理核102可包括前端104、执行流水线106和核外围128。核外围128可包括第一级(L1)数据高速缓存108、诸如C-6存储130(例如,对应于ACPI状态C-6)的存储以及高级可编程中断控制器(APIC)132。在至少一个实施例中,前端104可用于从指令高速缓存(未示出)获取指令并且调度获取的指令用于执行。在一些实施例中,执行流水线106可结合寄存器组(未示出)和L1数据高速缓存108解码和执行各种数学的、逻辑的、存储器访问和流控制指令。因此,在一些实施例中,前端104可负责确保稳定的指令流被馈送到执行流水线106,而执行流水线106可负责执行指令和处理结果。在一些实施例中,执行流水线106可包括两个或多个并行的算术流水线、两个或多个并行的存储器访问或负载/存储流水线以及两个或多个流控制或分支流水线。在至少一个实施例中,执行流水线106可进一步包括一个或多个浮点流水线。在一些实施例中,执行流水线106可包括用于乱序执行指令、推测地执行指令或两者皆有的寄存器和逻辑资源。在实施例中,从核102-1到102-n的每个核可以是超标量核或超线程核。超标量核能并行地执行两个或多个指令。超线程核能并行地执行两个或多个指令上下文或指令流。
核外围128能包括支持前端104和执行流水线106的逻辑,包括管理存储和中断。核外围128能包括L1数据高速缓存108、C6存储130和高级可编程中断控制器(APIC)132。当处理核102转变至低功率状态(例如C6状态)时,C6存储130能够存储处理核102的软件上下文和身份(或核状态)。外围控制器(例如,APIC 132)能为处理核102管理中断,包括标识哪些中断应用于相关联的处理核102和管理能用于标识相关联的核的APIC ID。
在至少一个实施例中,在执行存储器访问指令期间,执行流水线106可通过访问适用存储器地址的副本来尝试执行指令,该副本驻留在可包括两个或多个安排在分层配置中的高速缓存存储器的高速缓存存储器子系统的最低级高速缓存存储器中。在至少一个实施例中,高速缓存存储器子系统可包括L1数据高速缓存108和非核122中的末级高速缓存(LLC)118。在至少一个实施例中,高速缓存存储器子系统的其他元件可包括结合前端104操作的用于每个核的指令高速缓存(未示出)和用于每个核的一个或多个中间高速缓存(未示出)。在至少一个实施例中,用于处理器101的高速缓存存储器子系统可包括用于每个核的L1数据和指令高速缓存以及用于每个核的包括指令和数据的中间或L2高速缓存存储器。包括指令和数据的LLC 118可在多个处理核102中共享。在一些实施例中,如果存储器访问指令在L1数据高速缓存108中未命中,对适用程序或线程的执行可能停止或变慢,而高速缓存存储器子系统访问各种高速缓存存储器直到发现适用存储器地址的副本。
在至少一个实施例中,处理器101、第一处理核102-1、第二处理核102-2和处理核102-n可经由交叉开关112通信,其可支持数据排队、点到点协议和多核对接。处理器101的其他实施例可采用共享的总线互连或直接核到核互连和协议。在至少一个实施例中,交叉开关112可用作将处理核102与LLC 118互连的非核控制器。在一些实施例中,非核122可包括配置为实现高速缓存一致性策略并且结合存储器控制器(未示出)来保持系统存储器(未示出)和各种高速缓存存储器之间的一致性的高速缓存控制器117。
在至少一个实施例中,系统100还可包括用于确定处理器核102上的工作布置的模块99(例如优选核模块)。在一个示例中,核102可以是多个逻辑上相同的核,例如架构上相同的核。多个核中的第一核可具有第一物理特性,而多个核中的第二核可具有与第一物理特性不同的第二物理特性。模块99可配置为标识第一和第二核中的一个核相对于第一和第二核中的另一个核为优选的,例如,凭借它们在物理特性中的不同,例如它们的操作频率和/或电压。模块99可配置为查明是否将线程迁移到或迁移出被标识的核。在一个示例中,模块99可配置为控制对线程迁移到或迁移出被标识的核,例如,输出信号到布置控制器124。
在一些实施例中,模块99可以是功率控制单元(PCU)124的部件,例如,PCU 124的布置控制器134的部件。然而,在其他实施例中,模块99可以是从PCU 124和/或布置控制器134的部件分离的部件。例如,在一些实施例中,模块99可以是与操作系统相关联的驱动程序(图2示出了包括驱动程序299的实施例)。在这种情况下,模块99的输出(例如对工作布置的确定)可被输入到操作系统(例如系统100的计算设备的操作系统)的调度器中。
功率控制单元可以是消耗来自CPU上的部件的功率相关的遥测(有时连续地)的微控制器或可编程状态机以管理部件的功率、频率和温度。系统100(例如布置控制器134和/或部件99)能监视处理核102的工作负载并且确定哪些工作能够被移动到不同的核以提高效率。能够在热输出、功率使用和/或完成的工作中测量效率。例如,能够通过由于管芯内变化(更低的热输出、降低的功率使用、终身使用管理或执行更多工作)而在不同的核之间移动线程来提高效率。能够通过保持核的低电压操作来提高效率,通过不提供高于阈值的工作负载(即,在核之间移动线程以阻止核在阈值之上操作,其也被称为对核“加压力”)来保持核的低电压操作。能够通过将多个线程结合在单个超线程核上提高效率,其节省多核开销的功率。能够通过将线程布置在物理上分离以使能处理器管芯上的更大的热扩散的核上来提高效率。能够通过将线程按顺序从物理处理器移动到物理处理器以加热处理器管芯的不同部分来扩散热量而提高效率。能够通过当指令将不使用算术单元时使用具有失效的算术单元的核和/或当指令将使用失效的算术单元时将线程在核之间迁移来提高效率。能够通过执行用于终身使用管理和/或热管理的负载平衡来提高效率。
在一些实施例中,因为核被使用和/或用于执行大的工作负载,核的效率可能降低。效率降低可能是由于更大的操作电压和/或更大的热输出。在一些实施例中,能够管理核的终身使用,并且能够在核之间转移工作负载以扩展核的终身使用。在一个实施例中,处理器会报告比实际上在处理器上可用的核计数低的核计数。工作负载能够在核中被扩展以增加核的总寿命和效率,超过在没有额外的未报告的核的情形下将是可能的核的总寿命和效率。在一些实施例中,线程能够被转移出核以隔离核。被隔离的核能够被测试和/或确定核的性能特性。在一个实施例中,能结合虚拟机管理者方案使用核隔离。在其他实施例中,被隔离的核能用于支持其他专用隐藏执行装置。
在一些实施例中,硬件PCU 124能决定核和可用的流水线资源中的线程布置。核的逻辑处理器可枚举到OS。然而,逻辑处理器的数量可以少于处理器支持的物理核和/或同时线程的数量(即,可以有比枚举到OS的更多的处理器资源)。OS可在对其可见的逻辑处理器上布置工作,并且处理器(例如,PCU 124)可在之后的时刻将线程迁移到不同的资源。例如,PCU 124能发起节省核的上下文、将上下文重新存储到不同的核以及将先前核的本地APICID重定向到新核的序列。该迁移能在核或线程水平发生。可替代地,硬件能通过操作系统接口126向OS提供迁移暗示,并且OS能将工作从一个核或线程移动到另一个。
在至少一个实施例中,除了处理核102,核区120还可包括用于每个核处理器102的电压调节器/时钟发生器(VRCG)电路114。在一些实施例中,结合PCU 124生成的并且提供给每个处理核102的用于每个核的电源电压信号和时钟频率信号,VRCG电路114通过将由适用电源电压信号和时钟频率信号指示的功率状态应用于适用处理核102以及非核122来支持每核功率状态。
在一些实施例中,当第二处理核102-2的性能特性使得第二处理核102-2比第一处理核102-1更好地适于达到期望的效率目标时,PCU 124进一步用于为执行特定线程选择处理核102以及将线程和其对应的性能目标或上下文信息从第一核(例如,第一处理核102-1)迁移到第二核(例如,第二处理核102-2)。参见例如图2和3来得到对迁移的更详细的描述。
在一些实施例中,处理器101可包括对核的混合分类,除了处理核102,还包括图形核和其他类型的核逻辑。在这些混合核实施例中,PCU 124可确定最佳的或期望的功率状态,不仅是为了处理核102,还为了核区120中的其他类型的核元件。类似地,在至少一个实施例中,处理器101可包括为非核122提供功率状态的VRCG电路114-u,并且在该实施例中,PCU 124可为非核122确定最佳的或优选的功率状态。在一些实施例中,处理器101可支持用于每个处理核102、核区120中的任何其他类型的核和非核122的独立的功率状态。其他实施例可为整个核区120支持一个功率状态以及为非核122支持一个功率状态。
PCU 124还可以包括操作系统接口126。在一些实施例中,PCU124能为工作布置或通过操作系统接口126迁移到操作系统提供推荐。操作系统然后能执行核之间的线程迁移。例如,操作系统可能不具有足够的信息以识别两个逻辑处理器实际上与一个超线程核相关联。PCU 124能向操作系统推荐在两个逻辑处理器上整合两个线程,其能消除多核开销。
图2示出了根据各实施例的包括用于确定处理器核上的工作布置的驱动程序的图1的系统的示例。
在一些实施例中,驱动程序299可包括三个功能块,即应用线程跟踪器211、监视回路214和关联控制回路217。应用线程跟踪器211可配置为跟踪在系统上用于不同应用的所有运行线程。给定应用能具有一个以上线程。当应用在运行时,其可创建新的线程和/或破坏先前创建的线程。应用线程跟踪器211保持所有正在运行的线程的列表。从保持的列表中,驱动程序299可周期性地或连续地计算所有被跟踪的线程的处理器核需求水平。图3A示出了可由应用线程跟踪器211执行的操作,下文将更完整地描述。
再次参见图2,在一个示例中,周期的需求计算可以由监视回路213根据可配置的间隔执行。在间隔中,监视回路213的应用线程需求检查器216可计算对每个处理器核的利用,例如,基于通过分配的线程或多个线程的核利用的从0到100的百分比。如果需求大于可编程阈值,例如,百分之90,则线程/多个线程可受益于优选核。驱动程序299可根据与可编程阈值的比较将当前被跟踪的线程的子集标识为“需求”线程。监视回路213可包括用于与操作系统205的注册表206通信的注册表监视器214、应用线程需求检查器216以及用于与CPU 222的消息收发接口223(例如,超频邮箱(overclocking mailbox))通信的硬件配置监视器215。图3B示出了可由监视回路213执行的操作,下文将更完整地描述。
再次参见图2,关联控制回路217可配置为通过使用操作系统暴露的接口(例如,紧密度接口、ACPI接口等等,或其组合)将线程关联到被选择的核(例如,优选核列表中的核)。图3C示出了可由关联控制回路217执行的操作,下文将更完整地描述。
再次参见图2,应用201可配置有用户接口以允许用户选择将在优选核上运行的应用(用户选择的应用的线程可以被关联到优选核)。在一个示例中可以是最高睿频加速应用的应用201可包括前台应用检测回路202以检查新的用户选择和/或确定操作系统中哪个应用在关注中。在其他实施例中,前台应用检测回路202可存在于驱动程序299中,取决于操作系统要求。
处理器222可包括消息收发接口223,例如邮箱接口。消息收发接口可支持读取优选核列表的命令,其可以是为给定核指定代码ID(或索引)的排序列表。优选核列表可以偶尔被读取以确定每个核属于优选核列表中的哪里。核索引零可以是最高优选核,而对应于N个核的核索引N可对应于最低优选核。驱动程序299可使用消息收发接口223的该命令以读取核列表。在其他实施例中,驱动程序299可直接读取每个核的模型专用寄存器(MSR)(例如,软件可见寄存器)以确定一个核是否是优选核。
在一些实施例中,可提供熔断器221。熔断器221可包括在制造期间被编程的只读存储器来为每个核分别指示核的属性,例如其操作频率、其电压水平。熔断器221存储该核信息,其可由驱动程序299读取以确定一个核是否是优选核(优选核的性能操作频率/电压比其中该核是处理器的成员的该处理器的频率/电压更高)。
消息收发接口223可与BIOS 207通信。BIOS 207可包括用户界面以使得系统管理员能管理性能配置,例如,超频、降频、升电压(overvolting)、降电压(undervolting)等等,或其组合。
图3A示出了根据各实施例的可由图2的应用线程跟踪器执行的示例操作。
驱动程序(例如应用线程跟踪器211)可向操作系统注册以得到诸如“驱动程序初始化”功能块301中示出的那些通知,例如,应用负载通知、过程创建/删除通知、线程创建/删除通知。驱动程序(例如应用线程跟踪器211)可初始化空的线程驱动程序列表。
功能块302示出可由驱动程序(例如应用线程跟踪器211)在应用运行期间执行的过程。例如,当应用启动时,操作系统可通知驱动程序(例如应用线程跟踪器211)。
驱动程序(例如应用线程跟踪器211)可响应于如菱形305和306所示的接收通知来执行过滤以确定是否跟踪应用。驱动程序(例如应用线程跟踪器211)可在菱形305中确定应用是否是可执行的。在菱形306中,如果启动的应用在操作系统文件夹(例如文件夹)中不是可执行的,则应用可以是用户模式应用,并且由此,应用将被跟踪。
在框307中,线程跟踪器列表可以被更新。线程跟踪器可通过应用名称和OS调度器使用的其内部标识符(过程ID或“PID”和线程ID或“TID”,其独特地标识该应用的每条可执行代码)存储来自应用启动(过滤后保持)的每个感兴趣的应用。
示出的“互斥”功能308指代相互排斥的目标以阻止数据结构破坏(使得在时间上的任何给定点只有一条代码能访问跟踪列表)。
对应于应用执行(启动后)的通知也在图3A中示出,并且这些事件也能导致在框307中线程被添加到线程跟踪器列表。
图3B示出了可由图2的监视回路执行的示例操作。
在框310中,驱动程序(例如监视回路213)可根据可配置间隔(假设N秒的间隔)检查用户是否改变了关于优选核过程的偏好。例如,具有用户接口的应用使得用户能选择哪些应用可以使用优选核,并且这些设置可以由用户在任何时刻改变。例如,优选核的排序可以基于性能定制由用户改变,例如,超频、降频、升电压、降电压等等,或其组合。在一些实施例中,框310中的检查监视经由应用和用户接口的任何参数改变,例如任何优选核参数。
如果检测到参数变化,在菱形311中,驱动程序(例如监视回路213)可检查注册表是否已经被改变。如果检测到变化,可以执行驱动程序状态机的重置,如框313所示。在一些实施例中,重置可包括线程利用重新计算(例如,根据需要重新计算每线程利用率)、解关联(unaffinitizition)(例如,根据需要解关联所有线程)、检查硬件优选核状态变化(例如,优选核列表,是否使能改变)、检查关联是否使能改变(例如,检查关联是否使能改变)、注册表更新、关联计时器重启和/或停止等等,或其组合。
图3C示出了根据各实施例的可由图2的关联控制回路执行的示例操作。
在框320中,关联计时器事件可能发生(其可能是基于诸如注册表中的估算间隔参数的可配置间隔)。在菱形322中,驱动程序(例如监视回路213)可确定是否所有线程(在跟踪器列表中)已经使需求被检查了。如果否,对于跟踪器列表中的剩余线程,驱动程序(例如监视回路213)在框323中可计算利用(例如,处理器和/或核利用率),并且在菱形324中可确定利用率是否大于阈值,例如确定利用率是否大于或等于参数“利用阈值百分比”,其在一个实施例中可以是90%。如果在菱形325中线程在用于优选核的前台应用或包含列表中,则在框326中线程可被标志为需求线程(感兴趣的),并且可以增加需求线程计数器的数量。
在菱形327中,驱动程序(例如监视回路213)可确定多个需求线程计数器中的一个计数器是否不大于物理核的计数。如果该计数器大于物理核的计数,则在框328中驱动程序(例如监视回路213)可解关联任何先前被驱动程序关联的线程。
在框329中,驱动程序(例如监视回路213)可对在跟踪器列表中的需求线程排序,例如,对线程排序。排序可以是基于线程是否是用户选择的应用(从具有用户接口的应用的列表中)和/或在关注中(例如,也在关注中的用户选择的应用可以被排序为高于不在关注中的用户选择的应用)。
在菱形331中,驱动程序(例如监视回路213)可确定是否所有需求线程被关联到优选核。如果否,在框332中,驱动程序(例如监视回路213)可从跟踪器列表中得到下一需求线程,并且在框333中从优选核列表中得到下一优选核。在框334中,驱动程序(例如,监视回路213)可将线程关联到核。
图4A-B示出了根据各实施例的用于实现图1的系统的功率控制单元(PCU)的模块的伪代码的示例。
PCU执行的软件可称为p代码。框401-410示出了用于确定处理器核上的工作布置的p代码的模块的示例伪代码的部分。
框401示出了示例定义。现在可以是当前时间戳,并且进入延迟、退出延迟和循环延迟可以是能够被设定的参数。进入延迟可以是操作系统通过核分派工作以进行任何迁移之后等待的时间。退出延迟可以是迁移之后进行另一迁移之前等待的时间。这些可以阻止抖动(thrashing)。循环延迟可以是用于新调度的轮询之间等待的时间。
框402可以是确定是否满足循环延迟的检查。在一个示例中,p代码最慢轮询约为一毫秒。该循环默认每一毫秒可执行一次,但如果需要,循环延迟计时器可用于指定比那个更长的时间。如果正运行的核的数量没有变化,或当前活跃的正运行的核没有变化,则过程可等待直到下一轮循环。
框403示出了在过程中使用的信息的赋值。值“R”可以是当前在其上调度了某些事务的运行核的数量。快堆栈可以是最快的R个核的堆栈,核中最快的在堆栈的顶部,例如,基于变化具有最高频率的核在堆栈的顶部。
框404可以是基于是否为操作系统启用了为特定的工作项请求特定水平的性能或功率的能力的条件。例如,第一预定模式是否是可用的(在第一预定模式中,操作系统能够为工作项从硬件请求每个核的特定水平的性能)。该能力在本文中可被称为“HWP”,或变速技术(Speed Shift Technology)。在一个示例中,条件检查可以是预定模式(例如HWP)是否存在。如果该能力存在,例如,如果硬件P存在,实际上运行的核的慢堆栈可以被创造,随着核被排序为对于在堆栈顶部的核的工作具有最高请求性能的核和对于在堆栈底部的核的工作具有最低请求性能的核。如果预定模式存在,条件是快堆栈的成员是否与慢堆栈的成员相同,并且按照相同的顺序。
框405可以是基于预定模式是否存在的另一条件。在没有该能力的情形下,例如,对于第二不同模式,慢堆栈被定义为在堆栈顶部最慢的实际上运行的核的堆栈。如果预定模式不存在,条件可以是快堆栈的成员是否与慢堆栈的成员相同,而不论堆栈上的顺序如何。
框406可以从快堆栈中弹出核。如果被弹出的核保持空闲,并且满足超时,则可能将工作从慢堆栈迁移到较快的核。被迁移的工作可以是在最慢的可用核上运行的工作。如果快堆栈的被弹出的核已经在运行并且预定模式不是可用的,则过程可为快堆栈的下一最顶部核重复另一迭代。如果预定模式是可用的,该过程可考虑排序。类似地,如果不满足超时,例如,核的上一迁移时刻加上退出延迟大于当前,该过程可移动到快堆栈中的下一核。
在框407中,当选择的核不在运行时,并且当慢堆栈不是空的时,核可能弹出离开慢堆栈。该核可被称为受害核,因为它是仍被考虑的最慢的核(即,在该核上的工作是在慢核上的受害者)。如果预定模式是可用的,该过程可确定迁移是否将实现比工作负载请求的性能更高的性能。如果候选核的性能水平大于已经被弹出离开慢堆栈的核的请求的性能水平,则迁移可以被绕过。换言之,如果迁移的目标核对应于比操作系统为给定工作请求的性能更高的性能,则迁移可能不会被执行。类似地,如果迁移将在已经在运行其他工作的核上,并且工作交换到目标核将导致比操作系统为该工作请求的性能更低的性能,迁移可能不会被执行。类似地,在框408中,如果核生产率低于表明值得迁移的阈值,迁移可能不会被执行。
在框409中,迁移可以被执行,例如,可以将工作从已经被从慢堆栈弹出离开的核迁移到目标。如果迁移将导致将受害者工作分配到较低性能核,迁移被绕开。如果预定模式是可用的,并且目标核当前在运行工作,迁移实际上是两个核之间工作的交换,而不是仅仅将工作迁移到空闲核。
图5示出了根据各实施例的可由图1的模块执行的示例过程。
在框5001中,模块(其可以是一个实施例中的驱动程序)可将处理器的一个核相对于处理器的另一个核标识为优选的。在一个示例中,核可以是架构上相同的,但关于处理器的制造具有的不同的物理特性。优选核可能比另一核每秒有更多指令、可能有更好的指令每瓦特性能、可能有更低电压、可能是更降电压的(运行时有较低功率使用)等等,或其结合。
在框5002中,模块可确定对应于操作系统和/或处理器的线程的需求是否大于阈值。在框5003中,如果线程还未被关联到优选核,模块可将线程关联到被标识的核。在一个示例中,关联使用操作系统的紧密度接口。
在一个示例中,模块可确定具有大于阈值的需求的线程的第一数量是否大于处理器的运行核的第二数量。模块可响应于确定第一数量大于第二数量解关联线程-核关联,例如,可解关联所有线程-核关联,例如对应于至少被标识的核的所有线程-核关联。
在一个示例中,模块可响应于确定线程的需求大于阈值将线程添加到跟踪器列表。模块可基于用户接口接收的包含列表或用户请求中的至少一个对跟踪器列表的线程排序。
在一个示例中,模块可执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联。模块可执行被排序的跟踪器列表的下一线程到优选核列表中的下一条目的核的第二关联。模块可重复第二关联直到被排序的跟踪器列表的所有线程被关联到优选核列表的核的相应一个。
图6示出了根据各实施例的可由图1的模块执行的另一过程。
在框6001中,模块(其可以是处理器的功率控制单元的)可确定是否将与操作系统和/或处理器相关联的线程的候选线程迁移到或迁移出处理器的核的候选者。在一个示例中,核可以是架构上相同的,但关于处理器的制造具有不同的物理特性。优选核可能比另一核每秒有更多指令、可能有更好的指令每瓦特性能、可能有更低电压、可能是更降电压的(运行时有较低功率使用)等等,或其结合。
在框6002中,模块可查明操作系统是否包括预定模式。在一个示例中,预定模式可以是HWP(硬件P)。在一个示例中,预定模式可以是使操作系统能为特定的工作项请求特定水平的性能或功率的模式。
在框6003中,模块可基于查明的结果选择处理器的核的候选者。
在一个示例中,如果操作系统包括预定模式,模块可基于核的不同物理特性生成第一组核的第一排序,或者如果操作系统不包括预定模式,模块可基于核的不同物理特性生成第二组核的第二不同排序。模块可从与第一或第二排序相关联的堆栈的顶部选择核中的候选核。
在一个示例中,模块可选择核的第一子集,其中第一子集的每个核具有不同于(例如,大于)阈值物理特性的对应的物理特性。核的第二子集可包括余下的核。模块可响应于标识正在运行并且与在第一时刻调度的工作相关联的第一子集的核之一,在该第一时刻标识第一或第二组。
在一个示例中,模块可响应于标识正在运行并且与在第一时刻调度的工作相关联的第二子集的核之一,在第二时刻标识第三组。仅当操作系统不包括预定模式并且第二组的成员与第三组的成员相同时,模块可在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核,或仅当操作系统不包括预定模式并且第一排序的成员与第三组的排序的成员相同并且按相同顺序时,模块可在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核。
图7示出了根据各实施例的可采用本文中所描述的装置和/或方法的示例计算设备。
根据各实施例,示例计算设备500可采用本文中所描述的装置和/或方法。如所示,计算设备500可包括大量部件,例如一个或多个处理器504(示出一个)和至少一个通信芯片506。
在各实施例中,一个或多个处理器504的每一个可包括一个或多个处理器核。在各实施例中,至少一个通信芯片506可以是物理地或电地耦合到一个或多个处理器504。在进一步的实现中,通信芯片506可以是一个或多个处理器504的一部分。在各实施例中,计算设备500可包括印刷电路板(PCB)502。对于这些实施例,可以将一个或多个处理器504和通信芯片506设置在其上。在替代实施例中,可以在不采用PCB 502的情形下耦合各种部件。
取决于其应用,计算设备500可包括可能或可能不物理地或电地耦合到PCB 502的其他部件。这些其他部件包括但不限于存储器控制器(未示出)、易失性存储器(例如,动态随机存取存储器(DRAM)520)、诸如只读存储器(ROM)524的非易失性存储器、闪存522、I/O控制器(未示出)、数字信号处理器(未示出)、密码协处理器(未示出)、图形处理器530、一个或多个天线528、显示器(未示出)、触摸屏显示器532、触摸屏控制器546、电池536、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(GPS)设备540、罗盘542、加速度计(未示出)、陀螺仪(未示出)、扬声器550、相机552和大容量存储设备(例如硬盘驱动器、固态驱动器、压缩盘(CD)、数字多功能盘(DVD))(未示出)等等。
在一些实施例中,响应于由一个或多个处理器504执行编程指令,一个或多个处理器504、闪存522和/或存储设备(未示出)可包括配置为使能计算设备500的存储编程指令的相关联的固件(未示出),以实施本文中所描述的方法的所有或被选择的方面。例如,编程指令可参考图1-6的相应一个实现先前描述的驱动程序。在各实施例中,这些方面可以被附加地或可替代地使用从一个或多个处理器504、闪存512或存储设备511分离的硬件来实现。例如,替代硬件可参考图1-6的相应一个包括配备有代码的先前描述的功率控制单元以执行先前描述的操作。
通信芯片506可使能有线和/或无线通信以将数据转移到或转移出计算设备500。术语“无线”和其衍生物可用于描述可使用通过非固态介质调制的电磁辐射来传递数据的电路、设备、系统、方法、技术、通信信道等。术语不意指相关联的设备不含有任何线,尽管在一些实施例中它们可能不含有任何线。通信芯片506可实现大量无线标准或协议的任何一个,包括但不限于IEEE 702.20、长期演进(LTE)、LTE高级(LTE-A)、通用分组无线服务(GPRS)、演进数据最优化(Ev-DO)、演进型高速分组接入(HSPA+)、演进型高速下行链路分组接入(HSDPA+)、演进型高速上行链路分组接入(HSUPA+)、全球移动通信系统(GSM)、GSM演进增强型数据速率(EDGE)、码分多址(CDMA)、时分多址(TDMA)、数字增强型无绳电信(DECT)、全球微波互联接入(WiMAX)、蓝牙、其衍生物和称为3G、4G、5G以及进一步的任何其他无线协议。计算设备500可包括多个通信芯片506。例如,第一通信芯片506可专用于诸如Wi-Fi和蓝牙的较短距离无线通信,而第二通信芯片506可专用于诸如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO及其他的较长距离无线通信。
在各实施例中,计算设备500可以是膝上型计算机、上网本、笔记本、超极本、智能电话、计算平板、个人数字助理(PDA)、超移动PC、移动电话、台式计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏控制台或自动娱乐单元)、数码相机、家电、便携式音乐播放器或数字录像机。在进一步的实现中,计算设备500可以是处理数据的任何其他电子设备。
可以利用一个或多个计算机可用或计算机可读介质的任意组合。计算机可用或计算机可读介质可以是,例如但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。计算机可读介质的更具体的示例(非穷举的列表)将包括下列:具有一条或多条线的电连接件、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光存储设备、诸如支持因特网或内联网的传输介质的传输介质或磁存储设备。注意,计算机可用或计算机可读介质甚至可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而被电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。在本文档的上下文中,计算机可用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。计算机可用介质可包括被传播的数据信号,随其体现在基带中或作为载波的一部分的计算机可用程序代码。可以使用任何合适的介质传送计算机可用程序代码,包括但不限于无线、有线、光纤缆线、RF等等。
用于执行本公开的操作的计算机程序代码可以一种或多种编程语言的任意组合来编写,包括面向对象编程语言(例如Java、Smalltalk、C++等等)以及常规程序化编程语言(诸如“C”编程语言或类似的编程语言)。该程序代码可作为部分地在用户的计算机上并且部分地在远程计算机上或完全地在远程计算机或服务器上的独立的软件包完全地在用户的计算机上、部分地在用户的计算机上执行。在后一场景中,可通过任意类型的网络(包括局域网(LAN)或广域网(WAN))将远程计算机连接至用户的计算机,或可作出至外部计算机的该连接(例如,通过使用因特网服务提供商的因特网)。
示例
示例1提供了用于计算的装置,所述计算包括对处理器核工作布置的确定。该装置可包括处理器,处理器封装括:多个架构上相同的核,其中多个架构上相同的核中的第一核具有第一物理特性并且多个架构上相同的核中的第二核具有与第一物理特性不同的第二物理特性;以及由处理器操作的优选核模块。该优选核模块可用于:标识第一和第二核中的一个核相对于第一和第二核中的另一个核为优选的;确定线程的需求是否大于阈值;以及响应于确定线程的需求大于阈值,如果线程还未被关联到优选核,则将线程关联到被标识的核。
示例2包括示例1的主题,并且第一和第二物理特性中的与所述优选核相对应的一个物理特性包括第一电压,所述第一电压低于第一和第二物理特性中的另一个物理特性的第二电压。
示例3包括示例1-2的任一项的主题,并且第一和第二核与相同的操作频率相关联。
示例4包括示例1-2的任一项的主题,并且第一和第二核与不同的操作频率相关联。
示例5包括示例1-4任一项的主题,并且优选核对应于经由用户接口的用户选择输入。
示例6包括示例1-5任一项的主题,并且优选核对应于熔断器表的数据。
示例7包括示例1-6任一项的主题,并且优选核模块用于:确定具有大于阈值的需求的线程的第一数量是否大于处理器的运行核的第二数量;以及响应于确定第一数量大于第二数量,解关联线程-核关联。
示例8包括示例1-7任一项的主题,并且优选核模块用于:响应于确定第一数量大于第二数量,解关联对应于至少被标识的核的所有线程-核关联。
示例9包括示例1-8任一项的主题,并且优选核模块用于:响应于确定线程的需求大于阈值,将线程添加到跟踪器列表;基于用户接口接收的包含列表或用户请求中的至少一个,对跟踪器列表的线程排序。
示例10包括示例1-9任一项的主题,并且优选核模块用于:执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联;执行被排序的跟踪器列表的下一线程到优选核列表中的下一条目的核的第二关联;以及重复第二关联直到被排序的跟踪器列表的所有线程被关联到优选核列表的核的相应核。
示例11是用于计算的计算机可读介质,所述计算包括对处理器核工作布置的确定,响应于处理设备的执行,在其上存储使得处理设备执行操作的指令的指令,用于:标识处理器的多个核中的一个核相对于多个核中的另一个核为优选的;确定对应于处理器的线程的需求是否大于阈值;以及响应于确定线程的需求大于阈值,如果线程还未被关联到优选核,则将线程关联到被标识的核。
示例12包括示例11的主题,并且操作进一步用于:确定具有大于阈值的需求的线程的第一数量是否大于处理器的运行核的第二数量;以及响应于确定第一数量大于第二数量,解关联线程-核关联。
示例13包括示例11-12任一项的主题,并且操作进一步用于:响应于确定第一数量大于第二数量,解关联对应于至少被标识的核的所有线程-核关联。
示例14包括示例11-13任一项的主题,并且操作进一步用于:响应于确定线程的需求大于阈值,将线程添加到跟踪器列表;以及基于用户接口接收的包含列表或用户请求中的至少一个,对跟踪器列表的线程排序。
示例15包括示例11-14任一项的主题,并且操作进一步用于:执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联;执行被排序的跟踪器列表的下一线程到优选核列表中的下一条目的核的第二关联;以及重复第二关联直到被排序的跟踪器列表的所有线程被关联到优选核列表的核的相应核。
示例16是一种用于计算的装置,所述计算包括对确定与操作系统相关联的线程的处理器核工作布置的确定,该装置包括:多个核,其中多个核中的第一核具有第一物理特性并且多个核中的第二核具有与第一物理特性不同的第二物理特性;以及功率控制单元,用于:确定是否将线程中的候选线程迁移到或迁移出多个核中的候选者;查明操作系统是否包括预定模式;以及基于查明的结果选择多个核中的候选者。
示例17包括示例16的主题,并且功率控制单元进一步用于:如果操作系统包括预定模式,则基于多个核的不同物理特性生成多个核的第一组的第一排序;如果操作系统不包括预定模式,则基于多个核的不同物理特性生成多个核的第二组的第二排序,其中第二排序与第一排序不同;以及从第一或第二排序的顶部选择多个核中的候选核。
示例18包括示例16-17任一项的主题,并且功率控制单元进一步用于:选择多个核的第一子集,其中第一子集的每个核具有大于阈值物理特性的对应的物理特性;以及其中多个核的第二子集包括余下的核;响应于标识正在运行并且与第一时刻调度的工作相关联的第一子集的核中的一个核,在第一时刻形成第一或第二组。
示例19包括示例16-18任一项的主题,并且功率控制单元进一步用于:响应于标识在第一时刻正在运行的第二子集的核中的一个核,在第二时刻形成第三组。
示例20包括示例16-19任一项的主题,并且功率控制单元进一步用于:仅当操作系统不包括预定模式并且第二组的成员与第三组的成员相同时,在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核;以及仅当操作系统包括预定模式并且第一排序的成员与第三组的排序的成员相同并且按相同顺序,在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核。
示例21是一种方法,用于计算包括相对于多个架构上相同的核对与操作系统相关联的线程的处理器核工作布置的确定,该方法包括:确定是否将线程中的候选线程迁移到或迁移出多个架构上相同的核中的候选者;查明操作系统是否包括预定模式;并且基于查明的结果选择多个架构上相同的核中的候选者。
示例22包括示例21的主题,并且如果操作系统包括预定模式,则基于多个架构上相同的核的不同物理特性生成多个架构上相同的核的第一组的第一排序;如果操作系统不包括预定模式,则基于多个架构上相同的核的不同物理特性生成多个架构上相同的核的第二组的第二排序,其中第二排序与第一排序不同;以及从第一或第二排序的顶部选择多个架构上相同的核中的候选核。
示例23包括示例20-21任一项的主题,选择多个架构上相同的核的第一子集,其中第一子集的每个核具有大于阈值物理特性的对应的物理特性;以及其中多个架构上相同的核的第二子集包括余下的核;响应于标识正在运行并且与第一时刻调度的工作相关联的第一子集的核中的一个核,在第一时刻形成第一或第二组。
示例24包括示例21-23任一项的主题,并且响应于标识在第一时刻正在运行的第二子集的核中的一个核,在第二时刻形成第三组;仅当操作系统不包括预定模式并且第二组的成员与第三组的成员相同时,在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核;以及仅当操作系统包括预定模式并且第一排序的成员与第三组的排序的成员相同并且按相同顺序时,在对应于第一和第二时刻的迭代迁移检查过程的迭代期间标识候选线程和候选核。
示例25包括示例21-24任一项的主题,其中预定模式是使操作系统能为特定的工作项请求特定水平的性能或功率的模式。
示例26是一种确定处理器核工作布置的设备,该设备包括:用于将处理器的多个核中的一个核相对于多个核中的另一个核标识为优选的的装置;用于确定对应于处理器的线程的需求是否大于阈值的装置;以及用于响应于确定线程的需求大于阈值,如果线程还未被关联到优选核,将线程关联到被标识的核的装置。
示例27包括示例26的主题,以及用于确定具有大于阈值的需求的线程的第一数量是否大于处理器的运行核的第二数量的装置;以及用于响应于确定第一数量大于第二数量,解关联线程-核关联的装置。
示例28包括示例26-27任一项的主题,以及用于响应于确定第一数量大于第二数量,解关联对应于至少被标识的核的所有线程-核关联的装置。
示例29包括示例26-28任一项的主题,并且响应于确定线程的需求大于阈值,将线程添加到跟踪器列表;以及基于用户接口接收的包含列表或用户请求中的至少一个,对跟踪器列表的线程排序。
示例30包括示例26-29任一项的主题,并且执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联;执行被排序的跟踪器列表的下一线程到优选核列表中的下一条目的核的第二关联;以及重复第二关联直到被排序的跟踪器列表的所有线程被关联到优选核列表的核的相应核。
Claims (25)
1.一种用于计算的装置,所述计算包括对处理器核工作布置的确定,所述装置包括:
处理器,包括:
多个架构上相同的核,其中所述多个架构上相同的核中的第一核具有第一物理特性,并且所述多个架构上相同的核中的第二核具有与所述第一物理特性不同的第二物理特性;以及
优选核模块,由所述处理器操作,所述优选核模块用于:
将所述第一和第二核中的一个核相对于所述第一和第二核中的另一个核标识为优选的;
确定线程的需求是否大于阈值;以及
响应于确定所述线程的所述需求大于所述阈值,如果所述线程还未被关联到优选核,则将所述线程关联到被标识的核。
2.如权利要求1所述的装置,其特征在于,所述第一和第二物理特性中的与所述优选核相对应的一个物理特性包括第一电压,所述第一电压低于所述第一和第二物理特性中的另一个物理特性的第二电压。
3.如权利要求2所述的装置,其特征在于,所述第一和第二核与相同的操作频率相关联。
4.如权利要求2所述的装置,其特征在于,所述第一和第二核与不同的操作频率相关联。
5.如权利要求1-4任一项所述的装置,其特征在于,所述优选核对应于经由用户接口的用户选择输入。
6.如权利要求1-4任一项所述的装置,其特征在于,所述优选核对应于熔断器表的数据。
7.如权利要求1所述的装置,其特征在于,所述优选核模块用于:
确定具有大于所述阈值的需求的线程的第一数量是否大于所述处理器的运行核的第二数量;以及
响应于确定所述第一数量大于所述第二数量,解关联线程-核关联。
8.如权利要求7所述的装置,其特征在于,所述优选核模块用于:
响应于所述确定所述第一数量大于所述第二数量,解关联对应于至少所述被标识的核的所有线程-核关联。
9.如权利要求8所述的装置,其特征在于,所述优选核模块用于:
响应于确定所述线程的所述需求大于所述阈值,将所述线程添加到跟踪器列表;
基于用户接口接收的包含列表或用户请求中的至少一个对所述跟踪器列表的所述线程排序。
10.如权利要求8所述的装置,其特征在于,所述优选核模块用于:
执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联;
执行所述被排序的跟踪器列表的下一线程到所述优选核列表中的下一条目的核的第二关联;以及
重复所述第二关联直到所述被排序的跟踪器列表的所有线程被关联到所述优选核列表的核的相应核。
11.一种用于计算的设备,所述计算包括对处理器核工作布置的确定,所述设备包括:
用于将处理器的多个核中的一个核相对于所述多个核中的另一个核标识为优选的装置;
用于确定对应于所述处理器的线程的需求是否大于阈值的装置;以及
用于响应于确定所述线程的所述需求大于所述阈值,如果所述线程还未被关联到优选核,则将所述线程关联到被标识的核的装置。
12.如权利要求11所述的设备,进一步包括:
用于确定具有大于所述阈值的需求的线程的第一数量是否大于所述处理器的运行核的第二数量的装置;以及
用于响应于确定所述第一数量大于所述第二数量,解关联线程-核关联的装置。
13.如权利要求12所述的设备,进一步包括:
用于响应于所述确定所述第一数量大于所述第二数量,解关联对应于至少所述被标识的核的所有线程-核关联的装置。
14.如权利要求13所述的设备,进一步包括:
用于响应于确定所述线程的所述需求大于所述阈值,将所述线程添加到跟踪器列表的装置;
用于基于用户接口接收的包含列表或用户请求中的至少一个对所述跟踪器列表的所述线程排序的装置。
15.如权利要求13所述的设备,进一步包括:
用于执行被排序的跟踪器列表的初始线程到优选核列表中的初始条目的核的第一关联的装置;
用于执行所述被排序的跟踪器列表的下一线程到所述优选核列表中的下一条目的核的第二关联的装置;以及
用于重复所述第二关联直到所述被排序的跟踪器列表的所有线程被关联到所述优选核列表的核的相应核的装置。
16.一种用于计算的装置,所述计算包括对确定与操作系统相关联的线程的处理器核工作布置的确定,所述装置包括:
多个核,其中所述多个核中的第一核具有第一物理特性,并且所述多个核中的第二核具有与所述第一物理特性不同的第二物理特性;以及
功率控制单元,用于:
确定是否将所述线程中的候选线程迁移到或迁移出所述多个核中的候选者;
查明所述操作系统是否包括预定模式;
基于所述查明的结果选择所述多个核中的所述候选者。
17.如权利要求16所述的装置,其特征在于,所述功率控制单元进一步用于:
如果所述操作系统包括所述预定模式,则基于所述多个核的不同物理特性生成所述多个核的第一组的第一排序;
如果所述操作系统不包括所述预定模式,则基于所述多个核的所述不同物理特性生成所述多个核的第二组的第二排序,其中所述第二排序与所述第一排序不同;以及
从所述第一或第二排序的顶部选择所述多个核中的所述候选核。
18.如权利要求17所述的装置,其特征在于,所述功率控制单元进一步用于:
选择所述多个核的第一子集,其中所述第一子集的每个核具有大于阈值物理特性的相应的物理特性;以及
其中所述多个核的第二子集包括余下的核;
在响应于标识正在运行并且与在第一时刻调度的工作相关联的所述第一子集的所述核之一,在所述第一时刻形成所述第一或第二组。
19.如权利要求18所述的装置,其特征在于,所述功率控制单元进一步用于:
响应于标识如在所述第一时刻正在运行的所述第二子集的所述核之一,在第二时刻形成第三组。
20.如权利要求19所述的装置,其特征在于,所述功率控制单元进一步用于:
仅当所述操作系统不包括所述预定模式并且所述第二组的成员与所述第三组的成员相同时,在对应于所述第一和第二时刻的迭代迁移检查过程的迭代期间标识所述候选线程和所述候选核;以及
仅当所述操作系统包括所述预定模式并且所述第一排序的成员与所述第三组的排序的成员相同并且按相同顺序时,在对应于所述第一和第二时刻的迭代迁移检查过程的迭代期间标识所述候选线程和所述候选核。
21.一种用于计算的方法,所述计算包括对相对于多个架构上相同的核与操作系统相关联的线程的处理器核工作布置的确定,所述方法包括:
确定是否将所述线程的候选线程迁移到或迁移出所述多个架构上相同的核中的候选者;
查明所述操作系统是否包括预定模式;以及
基于所述查明的结果选择所述多个架构上相同的核中的所述候选者。
22.如权利要求21所述的方法,进一步包括:
如果所述操作系统包括所述预定模式,则基于所述多个架构上相同的核的不同物理特性生成所述多个架构上相同的核的第一组的第一排序;
如果所述操作系统不包括所述预定模式,则基于所述多个架构上相同的核的所述不同物理特性生成所述多个架构上相同的核的第二组的第二排序,其中所述第二排序与所述第一排序不同;以及
从所述第一或第二排序的顶部选择所述多个架构上相同的核中的所述候选核。
23.如权利要求22所述的方法,进一步包括:
选择所述多个架构上相同的核的第一子集,其中所述第一子集的每个核具有大于阈值物理特性的相应的物理特性;以及
其中所述多个架构上相同的核的第二子集包括余下的核;
响应于标识正在运行并且与在第一时刻调度的工作相关联的所述第一子集的所述核之一,在所述第一时刻形成所述第一或第二组。
24.如权利要求23所述的方法,进一步包括:
响应于标识如在所述第一时刻正在运行的所述第二子集的所述核之一,在第二时刻形成第三组;
仅当所述操作系统不包括所述预定模式并且所述第二组的成员与所述第三组的成员相同时,在对应于所述第一和第二时刻的迭代迁移检查过程的迭代期间标识所述候选线程和所述候选核;以及
仅当所述操作系统包括所述预定模式并且所述第一排序的成员与所述第三组的排序的成员相同并且按相同顺序时,在对应于所述第一和第二时刻的迭代迁移检查过程的迭代期间标识所述候选线程和所述候选核。
25.如权利要求21-24任一项所述的方法,其特征在于,所述预定模式是使所述操作系统能为特定的工作项请求特定水平的性能或功率的模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/997,032 | 2016-01-15 | ||
US14/997,032 US10073718B2 (en) | 2016-01-15 | 2016-01-15 | Systems, methods and devices for determining work placement on processor cores |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980492A true CN106980492A (zh) | 2017-07-25 |
CN106980492B CN106980492B (zh) | 2019-07-26 |
Family
ID=59311941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611163844.3A Active CN106980492B (zh) | 2016-01-15 | 2016-12-15 | 用于计算的装置、系统、方法、机器可读存储介质和设备 |
Country Status (6)
Country | Link |
---|---|
US (5) | US10073718B2 (zh) |
EP (1) | EP3403181A1 (zh) |
KR (1) | KR20180094901A (zh) |
CN (1) | CN106980492B (zh) |
SG (1) | SG10201610420TA (zh) |
WO (1) | WO2017123368A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN112181124A (zh) * | 2020-09-11 | 2021-01-05 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
CN112182770A (zh) * | 2020-10-10 | 2021-01-05 | 中国运载火箭技术研究院 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037227B2 (en) * | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
JP6772007B2 (ja) * | 2016-09-12 | 2020-10-21 | キヤノン株式会社 | 情報処理装置及びその制御方法、コンピュータプログラム |
US10826841B2 (en) * | 2016-12-06 | 2020-11-03 | Microsoft Technology Licensing, Llc | Modification of queue affinity to cores based on utilization |
US10715424B2 (en) * | 2016-12-06 | 2020-07-14 | Microsoft Technology Licensing, Llc | Network traffic management with queues affinitized to one or more cores |
US10554554B2 (en) | 2016-12-06 | 2020-02-04 | Microsoft Technology Licensing, Llc | Hybrid network processing load distribution in computing systems |
DE112017006568T5 (de) | 2017-02-24 | 2019-10-10 | Intel Corporation | Auslegung einer Basistaktfrequenz eines Prozessors auf der Basis von Nutzungsparametern |
CN109145053B (zh) * | 2018-08-01 | 2021-03-23 | 创新先进技术有限公司 | 数据处理方法和装置、客户端、服务器 |
US10956230B2 (en) * | 2018-10-01 | 2021-03-23 | Vmware, Inc. | Workload placement with forecast |
EP4158475A4 (en) * | 2020-05-29 | 2024-01-10 | Intel Corp | SYSTEMS, METHODS AND DEVICE FOR WORKLOAD-OPTIMIZED CENTRAL PROCESSING UNITS (CPUS) |
CN112000455B (zh) * | 2020-09-10 | 2022-02-01 | 华云数据控股集团有限公司 | 一种多线程任务处理方法、装置及电子设备 |
US11493975B2 (en) * | 2020-09-24 | 2022-11-08 | Intel Corporation | System, apparatus and method for providing power monitoring isolation in a processor |
CN113238854B (zh) * | 2021-07-07 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种线程数自动调节的方法、装置、设备及可读介质 |
GB2612646B (en) * | 2021-11-09 | 2024-01-10 | Advanced Risc Mach Ltd | Determining whether a given task is allocated to a given one of a plurality of logically homogeneous processor cores |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107262A1 (en) * | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
CN101154169A (zh) * | 2006-09-27 | 2008-04-02 | 株式会社东芝 | 多处理器系统 |
US20090055826A1 (en) * | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
CN101504618A (zh) * | 2009-02-26 | 2009-08-12 | 浙江大学 | 面向多核处理器的实时线程迁移方法 |
US20100077185A1 (en) * | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Managing thread affinity on multi-core processors |
CN101981529A (zh) * | 2008-03-28 | 2011-02-23 | 微软公司 | 功率知晓线程调度和处理器的动态使用 |
CN102246117A (zh) * | 2008-12-11 | 2011-11-16 | 高通股份有限公司 | 非对称多处理器上的自适应线程调度设备及方法 |
CN102402458A (zh) * | 2010-10-01 | 2012-04-04 | 微软公司 | 具有非对称处理器核的系统上的虚拟机和/或多级调度支持 |
US20140281610A1 (en) * | 2013-03-14 | 2014-09-18 | Intel Corporation | Exploiting process variation in a multicore processor |
US20150178138A1 (en) * | 2013-12-20 | 2015-06-25 | Qualcomm Incorporated | Multi-core dynamic workload management |
CN104781803A (zh) * | 2012-12-26 | 2015-07-15 | 英特尔公司 | 用于架构不同核的线程迁移支持 |
US20150205642A1 (en) * | 2012-10-16 | 2015-07-23 | Huawei Technologies Co., Ltd. | Method and Apparatus for Determining To-Be-Migrated Task Based on Cache Awareness |
Family Cites Families (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4958273A (en) | 1987-08-26 | 1990-09-18 | International Business Machines Corporation | Multiprocessor system architecture with high availability |
US5367697A (en) | 1991-10-22 | 1994-11-22 | Bull Hn Information Systems Inc. | Means for providing a graceful power shut-down capability in a multiprocessor system having certain processors not inherently having a power shut-down capability |
US5491788A (en) | 1993-09-10 | 1996-02-13 | Compaq Computer Corp. | Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error |
US5761516A (en) | 1996-05-03 | 1998-06-02 | Lsi Logic Corporation | Single chip multiprocessor architecture with internal task switching synchronization bus |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US6141762A (en) | 1998-08-03 | 2000-10-31 | Nicol; Christopher J. | Power reduction in a multiprocessor digital signal processor based on processor load |
US6449729B1 (en) | 1999-02-12 | 2002-09-10 | Compaq Information Technologies Group, L.P. | Computer system for dynamically scaling busses during operation |
US6772189B1 (en) | 1999-12-14 | 2004-08-03 | International Business Machines Corporation | Method and system for balancing deferred procedure queues in multiprocessor computer systems |
US7100061B2 (en) | 2000-01-18 | 2006-08-29 | Transmeta Corporation | Adaptive power control |
US6407575B1 (en) | 2000-05-31 | 2002-06-18 | Compaq Computer Corporation | Load insensitive clock source to enable hot swap of a node in a multiprocessor computer system |
US6691216B2 (en) | 2000-11-08 | 2004-02-10 | Texas Instruments Incorporated | Shared program memory for use in multicore DSP devices |
US6874083B2 (en) | 2000-12-22 | 2005-03-29 | Intel Corporation | Method and apparatus to ensure proper voltage and frequency configuration signals are defined before applying power to processor |
JP2002215599A (ja) | 2001-01-18 | 2002-08-02 | Mitsubishi Electric Corp | マルチプロセッサシステムおよびその制御方法 |
FR2820526B1 (fr) | 2001-02-05 | 2003-06-13 | Thomson Csf | Procede de simulation de performances, et procede de realisation d'applications multiprocesseurs, et dispositifs permettant de mettre en oeuvre lesdits procedes |
US6836849B2 (en) | 2001-04-05 | 2004-12-28 | International Business Machines Corporation | Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements |
JP2002312180A (ja) | 2001-04-11 | 2002-10-25 | Hitachi Ltd | 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス |
CN1237459C (zh) | 2001-07-18 | 2006-01-18 | 皇家菲利浦电子有限公司 | 多处理器设备中的非易失性存储器装置和方法 |
US20030046228A1 (en) | 2001-08-28 | 2003-03-06 | Jean-Marc Berney | User-wearable functional jewelry with biometrics and smartcard to remotely sign and/or authenticate to e-services |
US7111178B2 (en) | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
US6608528B2 (en) | 2001-10-22 | 2003-08-19 | Intel Corporation | Adaptive variable frequency clock system for high performance low power microprocessors |
US6826656B2 (en) | 2002-01-28 | 2004-11-30 | International Business Machines Corporation | Reducing power in a snooping cache based multiprocessor environment |
JP4090908B2 (ja) | 2003-02-21 | 2008-05-28 | シャープ株式会社 | 画像処理装置および画像形成装置 |
US7146514B2 (en) | 2003-07-23 | 2006-12-05 | Intel Corporation | Determining target operating frequencies for a multiprocessor system |
GB2408116B (en) | 2003-11-14 | 2006-09-20 | Advanced Risc Mach Ltd | Operating voltage determination for an integrated circuit |
US7676637B2 (en) | 2004-04-27 | 2010-03-09 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
US7398403B2 (en) | 2004-07-01 | 2008-07-08 | Matsushita Electric Industrial Co., Ltd. | Multiprocessor control apparatus, control method thereof, and integrated circuit |
US7966511B2 (en) | 2004-07-27 | 2011-06-21 | Intel Corporation | Power management coordination in multi-core processors |
JP4082706B2 (ja) | 2005-04-12 | 2008-04-30 | 学校法人早稲田大学 | マルチプロセッサシステム及びマルチグレイン並列化コンパイラ |
US8473934B2 (en) | 2005-07-15 | 2013-06-25 | Imec | Method for mapping applications on a multiprocessor platform/system |
US7779287B2 (en) | 2005-08-22 | 2010-08-17 | Intel Corporation | Reducing power consumption in multiprocessor systems |
US7461275B2 (en) * | 2005-09-30 | 2008-12-02 | Intel Corporation | Dynamic core swapping |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
US7861068B2 (en) | 2006-03-07 | 2010-12-28 | Intel Corporation | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling |
JP2007328461A (ja) | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US7268570B1 (en) | 2006-06-27 | 2007-09-11 | International Business Machines Corporation | Apparatus and method for customized burn-in of cores on a multicore microprocessor integrated circuit chip |
US20120016793A1 (en) | 2006-07-11 | 2012-01-19 | Jo-Ann Peters | Wearable Contactless Payment Devices |
JP2008026944A (ja) | 2006-07-18 | 2008-02-07 | Renesas Technology Corp | バス結合型マルチプロセッサ |
WO2008025058A1 (en) | 2006-08-27 | 2008-03-06 | My Mobile Watch Limited | Gsm mobile watch phone |
US7882379B2 (en) | 2006-09-22 | 2011-02-01 | Sony Computer Entertainment Inc. | Power consumption reduction in a multiprocessor system |
US7463992B2 (en) | 2006-09-29 | 2008-12-09 | Intel Corporation | Method and system to self-test single and multi-core CPU systems |
US7949887B2 (en) | 2006-11-01 | 2011-05-24 | Intel Corporation | Independent power control of processing cores |
US7702933B2 (en) | 2007-01-30 | 2010-04-20 | Inventec Corporation | Multiprocessor power-on switch circuit |
US20080196030A1 (en) * | 2007-02-13 | 2008-08-14 | Buros William M | Optimizing memory accesses for multi-threaded programs in a non-uniform memory access (numa) system |
US8069354B2 (en) | 2007-08-14 | 2011-11-29 | Mips Technologies, Inc. | Power management for system having one or more integrated circuits |
JP2009069921A (ja) | 2007-09-11 | 2009-04-02 | Hitachi Ltd | マルチプロセッサシステム |
US20090165007A1 (en) | 2007-12-19 | 2009-06-25 | Microsoft Corporation | Task-level thread scheduling and resource allocation |
US7996346B2 (en) | 2007-12-19 | 2011-08-09 | International Business Machines Corporation | Method for autonomic workload distribution on a multicore processor |
US8212650B2 (en) | 2008-02-01 | 2012-07-03 | Wimm Labs, Inc. | Situationally aware and self-configuring electronic data and communication device |
US8615647B2 (en) | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
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 |
JP2010039923A (ja) | 2008-08-07 | 2010-02-18 | Hitachi Ltd | 情報処理装置 |
JP4743240B2 (ja) | 2008-08-28 | 2011-08-10 | ソニー株式会社 | 受信装置、中継ケーブル及び電源装置 |
US20100058086A1 (en) | 2008-08-28 | 2010-03-04 | Industry Academic Cooperation Foundation, Hallym University | Energy-efficient multi-core processor |
WO2010035315A1 (ja) | 2008-09-24 | 2010-04-01 | 富士通株式会社 | マルチコアcpuにおける消費電力制御方法,消費電力制御プログラム及び情報処理システム |
US7990974B1 (en) | 2008-09-29 | 2011-08-02 | Sonicwall, Inc. | Packet processing on a multi-core processor |
US8127160B2 (en) | 2008-10-13 | 2012-02-28 | International Business Machines Corporation | Dynamic frequency and voltage scaling for a computer processor |
US20100094572A1 (en) | 2008-10-15 | 2010-04-15 | International Business Machines Corporation | Dynamic Frequency And Voltage Scaling For A Computer Processor |
US9507640B2 (en) | 2008-12-16 | 2016-11-29 | International Business Machines Corporation | Multicore processor and method of use that configures core functions based on executing instructions |
US8245070B2 (en) | 2008-12-30 | 2012-08-14 | Intel Corporation | Method for optimizing voltage-frequency setup in multi-core processor systems |
US8379872B2 (en) | 2009-06-01 | 2013-02-19 | Red Tail Hawk Corporation | Talk-through listening device channel switching |
US8260262B2 (en) | 2009-06-22 | 2012-09-04 | Mourad Ben Ayed | Systems for three factor authentication challenge |
US8458676B2 (en) | 2009-06-30 | 2013-06-04 | International Business Machines Corporation | Executing platform-independent code on multi-core heterogeneous processors |
US8661274B2 (en) | 2009-07-02 | 2014-02-25 | Qualcomm Incorporated | Temperature compensating adaptive voltage scalers (AVSs), systems, and methods |
US8924975B2 (en) | 2009-07-23 | 2014-12-30 | Empire Technology Development Llc | Core selection for applications running on multiprocessor systems based on core and application characteristics |
US8543857B2 (en) * | 2009-09-26 | 2013-09-24 | Intel Corporation | Method and apparatus for low power operation of multi-core processors |
US8276142B2 (en) * | 2009-10-09 | 2012-09-25 | Intel Corporation | Hardware support for thread scheduling on multi-core processors |
US8417974B2 (en) | 2009-11-16 | 2013-04-09 | International Business Machines Corporation | Power efficient stack of multicore microprocessors |
KR101640848B1 (ko) | 2009-12-28 | 2016-07-29 | 삼성전자주식회사 | 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치 |
US8281164B2 (en) | 2010-08-16 | 2012-10-02 | Wisconsin Alumni Research Foundation | Method and apparatus for optimizing clock speed and power dissipation in multicore architectures |
US9268611B2 (en) | 2010-09-25 | 2016-02-23 | Intel Corporation | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
US20120144218A1 (en) | 2010-12-03 | 2012-06-07 | International Business Machines Corporation | Transferring Power and Speed from a Lock Requester to a Lock Holder on a System with Multiple Processors |
US8612781B2 (en) | 2010-12-14 | 2013-12-17 | Advanced Micro Devices, Inc. | Method and apparatus for application of power density multipliers optimally in a multicore system |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US20120284729A1 (en) | 2011-05-03 | 2012-11-08 | Microsoft Corporation | Processor state-based thread scheduling |
US8793686B2 (en) | 2011-06-08 | 2014-07-29 | Microsoft Corporation | Operating system decoupled heterogeneous computing |
US9086883B2 (en) | 2011-06-10 | 2015-07-21 | Qualcomm Incorporated | System and apparatus for consolidated dynamic frequency/voltage control |
US8874941B2 (en) | 2011-06-14 | 2014-10-28 | Utah State University | Apparatus and method for designing an architecturally homogeneous power-performance heterogeneous multicore processor using simulated annealing optimization |
JP5720483B2 (ja) | 2011-08-11 | 2015-05-20 | 富士通株式会社 | 移行プログラム、移行装置、および移行方法 |
US8954017B2 (en) * | 2011-08-17 | 2015-02-10 | Broadcom Corporation | Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device |
US8914650B2 (en) | 2011-09-28 | 2014-12-16 | Intel Corporation | Dynamically adjusting power of non-core processor circuitry including buffer circuitry |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
US9075610B2 (en) * | 2011-12-15 | 2015-07-07 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation |
US9372524B2 (en) | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9727388B2 (en) * | 2011-12-29 | 2017-08-08 | Intel Corporation | Migrating threads between asymmetric cores in a multiple core processor |
US9678791B2 (en) | 2012-02-14 | 2017-06-13 | International Business Machines Corporation | Shared resources in a docked mobile environment |
US20140007097A1 (en) | 2012-06-29 | 2014-01-02 | Brocade Communications Systems, Inc. | Dynamic resource allocation for virtual machines |
US9286116B2 (en) * | 2012-07-06 | 2016-03-15 | Microsoft Technology Licensing, Llc | Multiple core real-time task execution |
US9557378B2 (en) | 2012-07-20 | 2017-01-31 | Globalfoundries Inc. | Method and structure for multi-core chip product test and selective voltage binning disposition |
JP2014032621A (ja) | 2012-08-06 | 2014-02-20 | Sharp Corp | スケジューリング方法、及び情報処理装置 |
CN102818111B (zh) | 2012-09-03 | 2014-08-13 | 中冶赛迪工程技术股份有限公司 | 一种圆筒形煤气柜侧板刮油装置 |
US9632822B2 (en) | 2012-09-21 | 2017-04-25 | Htc Corporation | Multi-core device and multi-thread scheduling method thereof |
US9329900B2 (en) | 2012-12-28 | 2016-05-03 | Intel Corporation | Hetergeneous processor apparatus and method |
JP6051924B2 (ja) | 2013-02-21 | 2016-12-27 | 富士通株式会社 | 情報処理装置の制御方法、制御プログラム、情報処理装置 |
WO2014185906A1 (en) | 2013-05-15 | 2014-11-20 | Empire Technology Development, Llc | Core affinity bitmask translation |
KR20140145748A (ko) * | 2013-06-14 | 2014-12-24 | 한국전자통신연구원 | 다중 코어 환경에서 프로세스의 할당 방법 및 장치 |
US9342374B2 (en) * | 2013-06-28 | 2016-05-17 | Dell Products, L.P. | Method of scheduling threads for execution on multiple processors within an information handling system |
US9292293B2 (en) * | 2013-08-08 | 2016-03-22 | Qualcomm Incorporated | Intelligent multicore control for optimal performance per watt |
US9582012B2 (en) * | 2014-04-08 | 2017-02-28 | Qualcomm Incorporated | Energy efficiency aware thermal management in a multi-processor system on a chip |
WO2015163897A1 (en) * | 2014-04-24 | 2015-10-29 | Empire Technology Development Llc | Core prioritization for heterogeneous on-chip networks |
US20150355700A1 (en) | 2014-06-10 | 2015-12-10 | Qualcomm Incorporated | Systems and methods of managing processor device power consumption |
US9977699B2 (en) * | 2014-11-17 | 2018-05-22 | Mediatek, Inc. | Energy efficient multi-cluster system and its operations |
US10133602B2 (en) * | 2015-02-19 | 2018-11-20 | Oracle International Corporation | Adaptive contention-aware thread placement for parallel runtime systems |
US9697128B2 (en) | 2015-06-08 | 2017-07-04 | International Business Machines Corporation | Prefetch threshold for cache restoration |
US10509677B2 (en) * | 2015-09-30 | 2019-12-17 | Lenova (Singapore) Pte. Ltd. | Granular quality of service for computing resources |
US10037227B2 (en) | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
US10372493B2 (en) | 2015-12-22 | 2019-08-06 | Intel Corporation | Thread and/or virtual machine scheduling for cores with diverse capabilities |
-
2016
- 2016-01-15 US US14/997,032 patent/US10073718B2/en active Active
- 2016-12-13 EP EP16885414.9A patent/EP3403181A1/en not_active Withdrawn
- 2016-12-13 WO PCT/US2016/066351 patent/WO2017123368A1/en unknown
- 2016-12-13 KR KR1020187016836A patent/KR20180094901A/ko active IP Right Grant
- 2016-12-13 SG SG10201610420TA patent/SG10201610420TA/en unknown
- 2016-12-15 CN CN201611163844.3A patent/CN106980492B/zh active Active
-
2018
- 2018-08-21 US US16/107,691 patent/US10922143B2/en active Active
-
2021
- 2021-02-10 US US17/173,100 patent/US11409577B2/en active Active
-
2022
- 2022-07-05 US US17/857,394 patent/US11853809B2/en active Active
-
2023
- 2023-12-19 US US18/545,912 patent/US20240118942A1/en active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060107262A1 (en) * | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
CN101154169A (zh) * | 2006-09-27 | 2008-04-02 | 株式会社东芝 | 多处理器系统 |
US20090055826A1 (en) * | 2007-08-21 | 2009-02-26 | Kerry Bernstein | Multicore Processor Having Storage for Core-Specific Operational Data |
CN101981529A (zh) * | 2008-03-28 | 2011-02-23 | 微软公司 | 功率知晓线程调度和处理器的动态使用 |
US20100077185A1 (en) * | 2008-09-19 | 2010-03-25 | Microsoft Corporation | Managing thread affinity on multi-core processors |
CN102246117A (zh) * | 2008-12-11 | 2011-11-16 | 高通股份有限公司 | 非对称多处理器上的自适应线程调度设备及方法 |
CN101504618A (zh) * | 2009-02-26 | 2009-08-12 | 浙江大学 | 面向多核处理器的实时线程迁移方法 |
CN102402458A (zh) * | 2010-10-01 | 2012-04-04 | 微软公司 | 具有非对称处理器核的系统上的虚拟机和/或多级调度支持 |
US20150205642A1 (en) * | 2012-10-16 | 2015-07-23 | Huawei Technologies Co., Ltd. | Method and Apparatus for Determining To-Be-Migrated Task Based on Cache Awareness |
CN104781803A (zh) * | 2012-12-26 | 2015-07-15 | 英特尔公司 | 用于架构不同核的线程迁移支持 |
US20140281610A1 (en) * | 2013-03-14 | 2014-09-18 | Intel Corporation | Exploiting process variation in a multicore processor |
US20150178138A1 (en) * | 2013-12-20 | 2015-06-25 | Qualcomm Incorporated | Multi-core dynamic workload management |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN112181124A (zh) * | 2020-09-11 | 2021-01-05 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
CN112181124B (zh) * | 2020-09-11 | 2023-09-01 | 华为技术有限公司 | 功耗管理的方法和相关设备 |
CN112182770A (zh) * | 2020-10-10 | 2021-01-05 | 中国运载火箭技术研究院 | 在线迭代计算方法、装置及计算机存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2017123368A1 (en) | 2017-07-20 |
US20220334887A1 (en) | 2022-10-20 |
US10922143B2 (en) | 2021-02-16 |
US11853809B2 (en) | 2023-12-26 |
US20210263782A1 (en) | 2021-08-26 |
US11409577B2 (en) | 2022-08-09 |
KR20180094901A (ko) | 2018-08-24 |
US10073718B2 (en) | 2018-09-11 |
SG10201610420TA (en) | 2017-08-30 |
US20180357110A1 (en) | 2018-12-13 |
US20170206118A1 (en) | 2017-07-20 |
EP3403181A1 (en) | 2018-11-21 |
CN106980492B (zh) | 2019-07-26 |
US20240118942A1 (en) | 2024-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980492B (zh) | 用于计算的装置、系统、方法、机器可读存储介质和设备 | |
ES2836353T3 (es) | Programación de subprocesos heterogéneos | |
KR102197874B1 (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법 | |
CN105164635B (zh) | 针对固态存储设备在运行中的性能调整 | |
TWI556092B (zh) | 用以減少電力消耗之基於優先順序的應用程式事件控制技術 | |
CN106293914B (zh) | 一种任务调度的方法及终端 | |
CN103744716B (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
KR102169692B1 (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 | |
KR20200054403A (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 | |
US20140053164A1 (en) | Region-Weighted Accounting of Multi-Threaded Processor Core According to Dispatch State | |
US20160179680A1 (en) | Systems and methods for integrated rotation of processor cores | |
JP2020513603A (ja) | 動的な外部電力資源選択 | |
US10942798B2 (en) | Watchdog timer hierarchy | |
US11734067B2 (en) | Multi-core system and controlling operation of the same | |
Obukhova et al. | Diagnostics of power consumption of a mobile device multi-core processor with detail of each core utilization | |
CN107533479A (zh) | 功率知晓调度和功率管理器 | |
US10684834B2 (en) | Method and apparatus for detecting inter-instruction data dependency | |
US11422857B2 (en) | Multi-level scheduling | |
CN115686805A (zh) | Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置 | |
Gupta et al. | Kinship: efficient resource management for performance and functionally asymmetric platforms | |
EP4163795A1 (en) | Techniques for core-specific metrics collection | |
Zhang et al. | A workflow scheduling method for cloudlet management in mobile cloud | |
Bhandia et al. | DCSim: cooling energy aware VM allocation framework for a cloud data center | |
Alvarez Valera | An energy saving perspective for distributed environments: Deployment, scheduling and simulation with multidimensional entities for Software and Hardware | |
Valera | An energy saving perspective for distributed environments: Deployment, scheduling and simulation with multidimensional entities for Software and Hardware |
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 |