CN102163072B - 用于节能的基于软件的线程重映射 - Google Patents
用于节能的基于软件的线程重映射 Download PDFInfo
- Publication number
- CN102163072B CN102163072B CN200910258390.1A CN200910258390A CN102163072B CN 102163072 B CN102163072 B CN 102163072B CN 200910258390 A CN200910258390 A CN 200910258390A CN 102163072 B CN102163072 B CN 102163072B
- Authority
- CN
- China
- Prior art keywords
- core
- thread
- processing device
- state
- idle state
- 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
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
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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
-
- 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/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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/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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
在支持同步多线程的多核心处理器上,跟踪每个逻辑处理器的功率状态。在指示逻辑处理器准备转换到深低功率状态时,可以执行软件重映射(例如,线程跳跃)。因此,如果在不同核心上的多个逻辑处理器都处于低功率状态,则把它们重映射到同一核心上,然后把核心置于低功率状态。描述并要求保护其它实施例。
Description
背景
在所有细分种类的基于计算机的系统中,功率和热管理要比以前更具有挑战性。而在服务器领域,电的成本驱使人们需要低功率系统,在移动系统中电池寿命和热限使这些问题相关。可以在不活动或另外不需要的时候,通过减少提供给全部或部分计算系统的电力来实现最高性能和最小功耗的基于计算机的系统的管理。
计算机的一种功率管理标准是2006年10月10日出版的“高级配置和功率接口(ACPI)标准”,例如,Rev.3.0b,该标准定义了一种接口,该接口允许操作系统(OS)控制硬件元件。许多现代操作系统使用ACPI标准来执行计算系统的功率和热管理。ACPI实施使得核心(core)可处于不同的节能状态(也称为低功率或空闲状态),一般称之为所谓的C1到Cn状态。
当核心处于活动时,它以所谓的C0状态运行,但是当核心处于空闲时,操作系统试图使它能节约的功率量与进入和退出给定状态的额外开销之间保持平衡。因此,C1表示具有最少节能但是几乎可以立即开机和关机的低功率状态(因此,称之为“浅低功率”或“浅空闲”状态),而深低功率状态(例如,C3、C6或C7)表示根据硅实施静功耗可忽略不计的功率状态,但是进入这个状态和响应于活动性(即,回到活动C0)的时间是相当长的。注意,不同的处理器可以包括不同数量的核心C-状态,每个C-状态映射到一个ACPI C-状态。即,多个核心C-状态可以映射到相同的ACPI C-状态。
当前操作系统C-状态策略可能不会提供最有效的性能结果,因为当前操作系统C-状态策略可能没有考虑同一封装中其它核心的活动。尤其,当前操作系统C-状态策略不能得到效率方面的优点,这个效率方面的优点是通过更紧密地跟踪和管理运行在同一封装的不同核心上的各种线程的功率状态可以获得的。即,核心的一个硬件线程可以处于深低功率状态,而核心的另一个硬件线程可以是活动的。根据当前操作系统C-状态策略,核心不能进入深低功率状态,除非核心上的所有线程都处于深低功率状态。如果多个核心都经历这个情况,则没有核心可以进入深低功率状态(即使多个硬件线程是不活动的)。
附图说明
图1是框图,示出执行所揭示技术的至少一个实施例。
图2是根据至少一个实施例的、表示重映射例子视图之前和之后的数据流框图。
图3是数据流和控制流图,示出执行基于软件的线程-跳跃的、供在包括两个双线程核心的采样系统上节能的方法的至少一个实施例。
图4是流程图,示出执行基于软件的线程-跳跃的、供节能的方法的至少一个实施例。
图5是根据本发明至少一个实施例的系统的框图。
图6是根据本发明至少另一个实施例的系统的框图。
图7是根据本发明至少另一个实施例的系统的框图。
具体实施方式
各个实施例正确地和实时地对核心执行线程的基于软件的逻辑重映射,有效地对同一核心“交换”空闲线程以使核心可以进入低功率状态。更具体地,操作系统可以执行逻辑重映射和任务牵引(task pulling),把任务从一个核心上的一个硬件线程上下文拉到不同核心上的另一个硬件线程上下文。如果硬件线程上下文已准备好转换到低功率状态,则操作系统就可以确定封装中的任何其它线程上下文是否也处于低功率状态。然后操作系统就可以执行基于软件的逻辑重映射,以对同一核心交换一个或多个低功率线程上下文作为第一低功率线程,并且如果合适的话,使活动线程从该核心交换到另一个核心。当已经完成了交换以致映射到特定核心的所有线程上下文都处于低功率状态时,核心本身也可以处于低功率状态。如这里所使用的,术语“线程”是指软件线程。在这里可以互换地使用术语“逻辑CPU”、“逻辑处理器”、“硬件线程上下文”和“线程单元”来指可在其上执行软件线程的硬件线程上下文。下面结合图2更详细地描述硬件线程上下文的至少一个实施例(见LP0和LP1的讨论)。对于该实施例,线程单元可以包括核心的一部分,例如,多线程SMT核心的SMT(同步多线程)逻辑处理器。然而,对于其它实施例,线程单元可以包括,例如,整个单线程核心。
对于至少一个实施例,可以结合现有的操作系统机制使用这里所讨论的交换方案的实施例,以便以最少成本(根据功率和/或时间)得到这些核心上的任务的调度。各个实施例连同操作系统C-状态和调度策略可用于操作系统内核(kernel)代码。另一方面,一个或多个实施例可以用于具有对操作系统C-状态和调度机构的接口的平台固件。
注意,这里描述的处理器核心C-状态是,例如,可从美国加州圣克拉拉市Intel公司得到的、诸如那些基于IA-32架构和IA-64架构的处理器,虽然各个实施例可以同样地使用其它处理器。下面表1中所示出的是一个实施例中可用的核心C-状态的示例指定,而表2把这些核心C-状态映射到相应的ACPI状态。然而,可以理解,本发明的范围并不局限于这个方面。
现在参考图1,所示出的是根据至少一个实施例的系统10的框图,系统10采用交换机制基于功率状态信息使线程从一个核心上的一个逻辑处理器迁移到不同核心上的不同逻辑处理器。如图1所示,系统10包括具有多个处理器核心250-25n-1(通常为核心25)的处理器封装20。在从双核封装到可能包括大量核心的多核封装的不同实施方式中,核心的数量会变化。图1中通过虚线表示附加核心的任选性质。每个核心25可以包括各种逻辑和控制结构,以响应于指令而执行对数据的操作。虽然只示出了一个封装20,但是包括多个封装的计算系统也可以采用所描述的方法和机制。
对于至少一个实施例,一个或多个核心25可以支持每个核心多个硬件线程上下文。(例如,参见图2的系统250,其中每个核心252支持每个核心两个硬件线程上下文)。不应该把这个实施例作为限制,因为熟悉本领域的技术人员可以理解每个核心可以支持两个以上的硬件线程上下文。
图1示出了计算系统10可以包括附加的元件。例如,除了封装硬件20之外,系统10还可以包括固件层30,固件层30可以包括BIOS(基本输入-输出系统)。计算系统10还可以包括热和功率接口40。对于至少一个实施例,热和功率接口40是硬件/软件接口,诸如由上述2006年10月10日出版的、“高级配置和功率接口(ACPI)标准”,例如,Rev.3.0b,定义的接口。ACPI规范描述平台寄存器、ACPI表(例如,42)以及ACPI BIOS的操作。图1示出这些ACPI组件的集合,一方面,在逻辑上作为封装硬件结构20和固件30之间的一个层,另一方面,作为操作系统(“OS”)50。
可以配置图1的操作系统50使之与热和功率接口40交互作用,以便引导封装20的功率管理。因此,图1示出系统10,该系统能够使用ACPI接口40来执行操作系统引导的配置和功率管理(OSPM)。
因此,操作系统50可以包括执行OSPM功能的逻辑(软件、固件、硬件或组合)。对于至少一个实施例,OSPM逻辑模块可以是作为操作系统内核51的一部分的系统代码。操作系统内核51还可以包括调度逻辑模块(未示出)。
操作系统50还可以包括ACPI驱动器(未示出),该驱动器建立操作系统或应用程序和PC硬件之间的链接。驱动器可以启动对某些ACPI-BIOS功能的调用、对ACPI寄存器的访问以及对ACPI表42的读取。
作为例子,下面表1参考具有95瓦(W)的热设计功率(TDP)的示例处理器,示出核心C-状态及其描述以及估计的功耗和这些状态的退出延时。当然可以理解,这只是一个例子,各个实施例不局限于这个方面。表1还示出封装C-状态及其描述、估计的退出延时以及估计的功耗。
表1
描述 | 估计的退出延时 | 估计的功耗 | |
核心C0 | 所有核心逻辑活动 | - | 4.9W |
核心C1 | 时钟选通的核心 | 2μs | 2.4W |
核心C3 | 多级高速缓存(MLC)灌注的和无效的核心 | 10-20μs | 1.7W |
核心C6 | 功率选通的核心 | 20-40μs | 0W |
核心C7 | 功率选通的核心和信号“封装(pkg)最后一级高速缓存(LLC)缩减可行(OK-to-shrink) | 20-40μs | 0W |
封装C0 | 所有非核心和核心逻辑活动 | - | 95W |
封装C1 | 所有核心不活动,时钟选通pkg | 2.5μs | 29W |
封装C3 | Pkg C1+所有外部链接到长等待时间空闲状态+存储器置于短等待时间不活动状态 | ~50μs | 21W |
封装C6 | Pkg C3+用于功率平面的降低电压(仅维持极低的保留电压)+存储器置于长等待时间不活动状态 | ~80μs | 6W |
封装C7 | Pkg C6+LLC缩减 | ~100μs | 4W |
表1示出核心C0和核心C1C-状态是相对较低的延时功率状态,而深C-状态(例如,核心C3、核心C6和核心C7)是高等待时间状态。还可以使核心的每个SMT线程单元(或“逻辑处理器”)与表1所示的C-状态中之一相关联。这里把与逻辑处理器相关联的C-状态称为“线程C-状态”。
表2示出示例处理器的核心C-状态到ACPI C-状态的示例映射。再次,要注意,这个映射仅作为例子,各个实施例不局限于这个方面。
表2
核心C0→ACPI C0 |
核心C1→ACPI C1 |
核心C3→ACPI C1或C2 |
核心C6→ACPI C2或C3 |
核心C7→ACPI C3 |
要注意,ACPI不支持封装C-状态;因此,在表2中没有提供上述表1中列出的封装C-状态的ACPI映射。
我们现在转到图2来进行简短的讨论,其示出当操作系统内核(见图1的51)执行已知技术(不提供低功率线程到同一核心的迁移)时,可能会发生功率无效。
图2示出系统250,系统250具有包括两个核心2520和2521的封装20。当然,尽管示出封装20只有两个核心,这只是为了简化而便于说明。本领域技术人员可以理解,封装20可以包括任何数量的核心而不背离这里描述和要求保护的各个实施例的范围。
图2所示的核心2520和2521是多线程核心。即,图2示出每个核心252是双线程同步多线程(“SMT”)核心,其中对于两个硬件线程上下文LP0、LP1中的每一个,每个核心252保持独立的架构状态(T0、T1),但是两个硬件线程上下文LP0、LP1共享了某些其它资源220、222、224。如上所述,对于这个实施例,每个硬件线程上下文LP(或“逻辑CPU”或“逻辑处理器”)可以具有独立的C-状态。
如果允许硬件线程上下文转换到深线程C-状态而不考虑封装20的总线程和核心C-状态,则可能会招致功率和性能两者的无效。在图2中系统250A的“以前”例子中示出了这个缺点。作为例子,假定核心0即2520的硬件线程LP0处于活动的C-状态(例如,C0),但是核心0即2520的硬件线程LP1处于深核心C-状态(例如,C6)。根据当前C-状态策略,核心C0 2520不能进入深核心C-状态,因为它的硬件线程LP0之一不处于深线程C-状态。如上所述,当前C-状态策略规定:只有在核心的所有硬件上下文都处于深线程C-状态时该核心才能进入深核心C-状态。
图2示出与“之前”例子中的核心1即2521相似的情况。假定核心1即2521的一个硬件线程LP2处于浅线程C-状态(例如,C1),并且核心1即2521的另一个硬件线程LP3处于深线程C-状态(例如,C6)。因此,核心12521不能进入深核心C-状态,因为它的硬件线程LP0之一没有处于深线程C-状态。
在图2所示的“之前”的例子中,每个核心具有n个线程上下文,总共有n个线程上下文处于深线程C-状态。然而,没有核心可以进入深核心C-状态,因为策略要求:除非核心上所有的SMT线程上下文都处于深线程C-状态,核心才可以进入深核心C-状态。
考虑表1,可以看到在图2中示出的系统250A的例子导致不必要的功耗。表1示出在C-6功率状态中的核心大致利用零瓦(0W)。因此,核心C-6功率状态的有效使用可以提供相当大的功率效益。然而,如图2所示,对于封装20,两个SMT线程上下文即LP1和LP3处于深线程C-状态中。因为这些线程上下文在不同的核心上,所以核心0 2520或核心12521中没有核心可以进入深核心C-状态。即,核心0 2520处于核心C0状态,因为它的硬件线程上下文之一即LP0,处于活动线程C-状态(例如,C0)。因此,核心0 2520的功耗是4.9瓦。相似地,核心12521不能进入深C-状态,因为它的硬件线程上下文之一即LP0处于浅空闲线程C-状态(C1)。核心1 252处于核心C1状态。因此,核心1 2521的功耗是2.4瓦。在图2的“之前”例子中的系统250A的总功耗是4.9+2.4=7.3瓦。
图2的“之后”示例系统250B示出可以通过根据本发明的至少一个实施例的、软件线程到硬件线程上下文的、基于软件的重映射来避免这些功率无效。通过把n个(在本情况中,n=2)硬件线程映射到同一n路SMT-线程核心中,重映射利用了核心C-6状态的功率效益,其中所有n个线程都处于线程C-6状态。
图2的“之后”例子示出可以根据本发明的至少一个实施例执行重映射以便实现硬件线程上下文之间的软件线程交换。图2示出,在系统250B上,已经把软件线程从LP1映射到LP2,反之亦然。因此,在“之后”例子中,系统250B的核心0的硬件线程上下文LP0和LP1两者都处于C6状态。因此,已经使核心02520置于能量更有效的核心C6 C-状态。相反,已经把处于浅的状态中的两个线程映射到核心1 2521的硬件线程上下文。因此,核心1 2521处于活动的C0 C-状态。系统250B的两个核心2520和2521的功率使用为:4.9瓦+0瓦=4.9瓦。因此,“之前”系统250A和“之后”系统250B的核心之间的功率使用之差是7.3瓦-4.9瓦=2.4瓦。这表示由于交换而引起的33%节能。
应该注意,图2所示的交换是在软件中执行的,并且允许来自多线程SMT核心的线程子集的交换。相反,当前基于硬件的核心跳跃方案将第一核心的所有状态复制到另一个核心。在某些情况中,这样做是为了平衡负载或甚至整平核心中的热点。可以使用这种基于硬件的核心跳跃方法从一个单线程核心到另一个进行工作的切换,或切换从一个多线程核心到另一个多线程核心的所有线程的所有工作。然而,这种基于硬件的核心跳跃方法是相当粗糙的机制,这种机制不允许从一个核心到另一个核心的线程子集的细粒度映射(finer-grainedmapping)。当从一个核心到另一个核心交换线程子集时必须解决的一个问题是“清理”(untangle)共享资源的极复杂任务(例如,参见图2的共享执行资源220和共享高速缓存222)以致可以把线程特定硬件状态转移到新的核心。在已知的基于硬件的核心跳跃方案中,这种操作可以复杂到使人望而却步。基于硬件的核心跳跃的另一个缺点是只有当硬件变得空闲时,已知方法才从一个核心到另一个核心传送线程执行。等待硬件资源变得空闲所需的时间可导致浪费节能的机会。
为了解决基于硬件的核心跳跃中的这些和其它难题,本发明已经设想了一种软件方法,这里称之为“线程跳跃”。该方法是基于软件的重映射方法,该方法重映射封装中不同核心的逻辑处理器之间的线程以便实现节能。
可以在软件(诸如,例如,操作系统的内核代码)中执行这里描述的线程跳跃实施例而无需任何底层硬件变化。线程跳跃解决在仅从一个核心到另一个核心传送线程的子集时清理每-线程的资源的困难。其一个理由是,并不等待硬件线程变得空闲,线程跳跃机制的实施例(诸如,例如,下面联系图3和4所描述的)使用软件方法使要驱逐到另一个核心的软件线程的执行中止。一旦中止了,就把软件线程映射到不同处理器核心上的新的逻辑处理器,并且操作系统调度器为受让人线程拉出一个任务,即,要在新分配的逻辑处理器上执行的任务。该处理与传统的操作系统线程调度相反,传统的操作系统线程调度不受线程C-状态变化触发,并且不涉及软件线程到不同核心上的硬件线程上下文的逻辑重映射。
图3是数据流图,该图更详细地示出根据至少一个实施例的、基于软件的重映射机制的操作。图3示出:在操作1,OSPM已经确定硬件线程上下文(“X”)已经准备进入深空闲状态。在操作系统内核把硬件线程上下文置于空闲状态之前,它执行处理(下面结合图4更详细地讨论)以判定是否以基于软件的任务拖拉而把某些其它线程上下文的任务拖拉到线程上下文X作为替代会变得更有效。这个处理包括操作2,其中判定在与X相同的核心352上的兄弟硬件线程上下文是否处于深空闲状态。如果不是,则从功率的观点来看,把X置于深空闲状态可能不是有效的,因为根据当前的C-状态策略,核心352不能进入深空闲状态,除非它的所有硬件上下文都是空闲的。如这里所使用的,在单个核心上,“兄弟”硬件线程上下文意味着指准备进入深空闲状态的特定上下文之外的其它硬件线程上下文。对于具有双线程核心的实施例,任何硬件线程上下文的兄弟上下文的数量是一。对于每个核心具有两个以上的硬件线程上下文的核心的实施例,兄弟上下文的数量可能大于一。
如果在操作2判定X的一个或多个兄弟线程上下文没有处于深空闲状态,则操作系统判定任何其它核心是否包括已经处于深空闲状态的硬件线程上下文。因此,在操作3和4,估计其它核心上的线程上下文的功率状态。
为了便于示出和讨论,图3示出两个核心352、353,每个核心具有两个线程上下文:分别为核心0的W、X以及核心1的Y、Z。然而,熟悉本领域的技术人员可以理解,这里描述的线程跳跃机制的实施例可以应用于每个具有任何数量的硬件线程上下文的任何数量的核心。
在操作3,判定在活动核心上的任何其它硬件上下文是否处于深空闲状态。作为例子,图3示出,在操作3,判定硬件线程上下文Y处于深空闲状态。在对于活动核心353发现了深的空闲线程上下文Y时,估计核心353上一个或多个其它线程上下文的功率状态。在图3中,在操作4判定线程上下文Z是活动的。因此,为了节能,把线程上下文Z置于深空闲状态和把Z的当前任务拖拉到硬件线程上下文X是更有效的。
因此,在操作5执行重映射。在软件中执行该重映射。操作系统内核执行中止操作以使当前正在逻辑处理器Z上执行的任务中止。重映射逻辑处理器以使与硬件线程上下文Z相关联的线程重映射到逻辑处理器Y。该重映射包括把正在核心1353上通过逻辑处理器Z执行的任务的上下文数据传送到核心0 252上的逻辑处理器Y。然后恢复任务的执行,但是是在代替Z的硬件上下文Y上恢复任务的执行。
在操作6,通过操作系统内核使逻辑处理器Z置于深空闲状态。因为现在核心1的所有硬件线程上下文都处于深空闲状态,所以在操作7,核心353进入深空闲状态。
图4是流程图,示出用于执行图3所示的以及如图2的系统250B的“之后”例子中示出的交换的方法400的至少一个实施例。对于至少一个实施例,可以通过操作系统内核(例如,参见图1的51)来执行图4中示出的方法400。图4示出方法400响应于一个核心上的硬件线程上下文即将发生的功率状态转换而提供线程跳跃,以把软件任务交换到另一个核心上的硬件线程上下文。
图4示出方法400在起始框402处开始。响应于通过内核(例如,图1的51)的OSPM逻辑(未示出)所判定的、应该使在系统的核心之一(核心0)上的逻辑处理器(LP X)置于深空闲状态而触发起始框402。
处理从起始框402进行到框404。在框404,判定核心0上的其它硬件线程上下文是否处于深线程C-状态。对于每个核心具有两个硬件线程上下文的实施例,在框404判定其它核心是否处于深线程C-状态。对于每个核心包括n个硬件线程上下文的所有实施例,当n>2时,处理在框404判定除了核心0上的LP X之外,是否所有其它硬件线程上下文都处于深线程C-状态。如果为是,则不需要交换,在把X置于深线程C-状态之后适当地把整个核心置于核心深C-状态,并且处理进行到框418。否则,处理进行到框406。
在框406,已经经由框404的处理确定不存在把X的本地核心(home core)置于深核心C-状态的条件。因为如果任何其它核心是深C-状态条件的一个线程上下文尝试(threadcontext shy)则仍能得到节能的益处,所以在框406判定除了核心0之外的其它核心是否具有处于深的线程C-状态中的硬件线程上下文。当然,已经处于深核心C-状态的其它核心会具有处于深线程C-状态中的线程上下文,所以只对没有处于深核心C-状态的核心执行框406的估计。
如果在框406没有识别另一核心的线程上下文,则处理进行到任选框415或框416(取决于实施例)。对于在封装中包括两个以上核心的实施例,处理进行到任选框415。图4中的虚线表示了框415的任选特性。在框415,判定是否存在要估计的附加核心,以使可能的线程交换到LP X。对于双核实施例,框415是任选的,并且不需要执行。如果在框415判定要估计附加核心,则处理返回框406。否则,处理进行到框416。在框416,进行正常的C-状态处理-通过线程跳跃不再获得更多的效率。
作为替代,如果在框406判定在另一个核心(核心1)上的硬件线程上下文(LP Y)处于深线程C-状态,则处理进行到任选框407或框408(取决于实施例)。对于每个核心包括两个以上的逻辑处理器的实施例,处理进行到任选框407,而对于每个核心只包括两个逻辑处理器的实施例,处理进行到框408。在图4中以虚线表示框407的任选特性。
在框407,判定:与把LP X置于核心0上的深空闲线程状态时核心0所具有的处于深空闲线程状态的逻辑处理器相比,两个核心之间的工作交换是否导致新的核心会比核心0具有更多处于深空闲线程状态的逻辑处理器。如果为是,则处理进行到框408以便继续交换处理。如果为否,则通过交换不能获得效率,所以作为替代,处理进行到任选框415(对于每个核心具有两个以上逻辑处理器的实施例)或框416。
在框408,判定其它核心(核心1)上的任何硬件线程上下文(LP Z)是否处于活动状态。如果为是,则存在这样的情况,即,与LP X的本地核心不同的一个核心具有处于深C-状态的至少一个硬件线程上下文、以及处于活动状态的至少一个其它硬件线程上下文。因此,从节能观点来看,使深的空闲硬件线程上下文固定到同一核心上是有利的,但是应该在LPZ转换到深空闲线程C-状态之前把来自活动LP Z的当前工作拖拉到另一个硬件线程上下文也是真实的。因此,处理进行到框410。然而,如果在框408判定其它核心没有处于活动状态的兄弟上下文,则不应该发生任务拖拉,处理进行到框414。在该情况下,兄弟核心或是已经处于深线程C-状态或是已经处于某些其它非活动状态(诸如,例如,C1浅空闲状态)。
在框410,执行软件任务拖拉。即,使当前正运行在LP Z上的任务暂时中止,并且移动到LP X。这样做,诸如操作系统(更具体地,操作系统的调度器)之类的软件实体使LP Z的活动任务中止。然后把与LP Z的活动任务相关联的工作分配给LP X的本地核心。把LP X开始执行LP Z的任务所必需的状态移动到LP X核心。在框410在核心之间传送上下文状态的方式是与实施方式有关的,并且可以按多种方式中的任何一种方式来执行。例如,对于至少一个实施例,把来自LP Z的上下文数据复制到LP X已经访问过的存储器或存储器分层结构(例如,到高速缓存)的合适部分。指令指针是要传送的状态的一部分,所以当该LP X恢复执行时,它将在LP Z已经执行过的下一条指令开始执行。在框410执行任务拖拉之后,操作进行到框414。
在框414,通过软件交换LP X和LP Z的逻辑映射。即,把与LP X相关联的逻辑CPUID(中央处理单元标识符)交换到LP Z,且相似地,把与LP Z相关联的逻辑CPU ID交换到LPX。然后在LP X上恢复以前运行在LP Z上的活动线程的操作。然后处理进行到框417,其中LPZ进入深空闲状态。
处理从框417进行到框420。在框420,判定在LP Y的本地核心上的所有逻辑处理器现在是否都处于深睡眠状态。如果不是,则在框422结束处理。
如果在框420判定LP Y的本地核心的所有逻辑处理器现在都处于深线程C-状态,则核心进入深核心C-状态。然后在框422结束处理。
可以在许多不同的系统类型中实施各个实施例。现在参考图5,所示出的是根据本发明一个实施例的系统500的框图。如图5所示,系统500可以包括耦合到图形存储器控制器集线器(GMCH)520的一个或多个处理元件510、515。在图5中以虚线表示附加处理单元515的任选性质。
每个处理单元可以是单个核心,或可选择地包括多个核心。除了处理核心之外,处理元件可任选地包括其它管芯上单元,诸如集成存储器控制器和/或集成I/O控制逻辑。同样,对于至少一个实施例,处理元件的核心可以是多线程的,因为它们可以包括每个核心一个以上的硬件线程上下文。
图5示出GMCH 520可以与存储器540耦合,例如存储器540可以是动态随机存取存储器(DRAM)。对于至少一个实施例,存储器540可以包括包含操作系统(例如,图1的51)的指令或代码。
GMCH 520可以是芯片组或芯片组的一部分。GMCH 520可以与处理器510、515通信,并且控制处理器510、515和存储器540之间的交互作用。GMCH520还可起处理器510、515和系统500中的其它元件之间的加速总线接口的作用。对于至少一个实施例,GMCH 520经由诸如前端总线(FSB)595之类的多点总线与处理器510、515进行通信。
此外,GMCH 520耦合到显示器540(诸如平板显示器)。GMCH 520可以包括集成图形加速器。GMCH 520又与输入/输出(I/O)控制器集线器(ICH)550耦合,可以用输入/输出(I/O)控制器集线器550使各种外围设备与系统500耦合。例如在图5的实施例中示出的是外部图形设备560和另一个外围设备570,外部图形设备560是与ICH 550耦合的分立的图形设备。
可选地,在系统500中还可以存在附加的或不同的处理单元。例如,附加处理元件515可以包括与处理器510相同的、与处理器510种类不同的或不对称的附加处理器、加速器(诸如,例如图形加速器或数字信号处理器(DSP)单元)、现场可编程门阵列或任何其它处理单元之类附加的处理器。根据包括架构、微架构、热、功耗特性等优点度量谱,物理资源510、515之间可以存在许多差异。这些差异在处理元件510、515之间可以有效地表示它们为不对称的和种类不同的。对于至少一个实施例,各种处理元件510、515可以驻留在同一芯片封装中。
现在参考图6,所示出的是根据本发明的一个实施例的第二系统实施例600的框图。如图6所示,多处理器系统600是点对点互连系统,并且包括经由点对点互连650耦合的第一处理单元670和第二处理单元680。如图6所示,处理单元670和680的每一个可以是多核处理器,包括第一和第二处理器核心(例如,处理器核心674a和674b以及处理器核心684a和684b)。
可选地,一个或多个处理元件670、680可以是与处理器不同的元件,诸如加速器或现场可编程门阵列。
在仅示出两个处理元件670、680时,应该理解,本发明的范围不局限于此。在其它实施例中,在给出的处理器中可能存在一个或多个附加处理元件。
第一处理元件670可以进一步包括存储器控制器集线器(MCH)672以及点对点(P-P)接口676和678。相似地,第二处理元件680可以包括MCH 682以及P-P接口686和688。如图6所示,MCH 672和682将处理器耦合到各自的存储器,即,存储器642和存储器644,它们可以是本地附加到各自的处理器的主存储器的一部分。
第一处理元件670和第二处理元件680可以分别通过P-P互连676、686和684耦合到芯片组690。如图6所示,芯片组690包括P-P接口694和698。此外,芯片组690包括使芯片组690与高性能图形引擎648耦合的接口692。在一个实施例中,可以使用总线649以使图形引擎648与芯片组690耦合。或者,点对点互连649可以耦合这些组件。
芯片组690可以依次经由接口696耦合到第一总线616。在一个实施例中,第一总线616可以是外围组件互连(PCI)总线,或诸如PCI高速总线或其它第三代I/O互连总线之类的总线,虽然本发明的范围不局限于此。
如图6所示,各个I/O设备614可以和总线桥618一起耦合到第一总线616,总线桥618使第一总线616耦合到第二总线620。在一个实施例中,第二总线620可以是低引脚数(LPC)总线。例如,在一个实施例中,包括键盘/鼠标622、通信设备626和数据存储单元628(诸如盘驱动或可以包括代码630的其它海量存储设备)之类的各种设备可以与第二总线620耦合。代码630可以包括用于执行上述一个或多个方法的实施例的指令。此外,音频I/O624可以耦合到第二总线620。注意,其它架构是可行的。例如,代替图6的点对点架构,系统可以实施多点总线或其它这种架构。
现在参考图7,所示的是根据本发明一个实施例的第三系统实施例700的框图。图6和7中相同的元件具有相同的标号,并且图7中省略了图6的某些方面以避免图7的其它方面变得模糊。
图7示出处理元件670、680可以分别包括集成存储器和I/O控制逻辑(“CL”)672和682。对于至少一个实施例,CL 672、682可以包括存储器控制器集线器逻辑(MCH),诸如上面结合图5和6所描述的那些。此外,CL 672、682还可以包括I/O控制逻辑。图7示出不仅存储器642、644耦合到CL672、682,而且I/O设备714也耦合到控制逻辑672、682。传统I/O设备715耦合到芯片组690。
可以以硬件、软件、固件或这些实施方法的组合来实现这里描述的机制的实施例。本发明的实施例可被实现为在可编程系统上执行的计算机程序,这些可编程系统包括至少一个处理器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。
诸如图6中示出的代码630之类的程序代码可应用于输入数据以执行这里描述的功能并产生输出信息。例如,程序代码630可以包括编码成能够执行图2、3和4中示出的方法的实施例的操作系统。因此,本发明的实施例还包括机器可访问的和计算机可使用的介质,介质包含用于执行方法的操作的指令或包含诸如HDL之类的设计数据(定义这里描述的结构、电路、装置、处理器和/或系统特征)。这些实施例还可以涉及计算机程序产品。
这些机器可访问的、计算机可使用的存储介质可以包括,但是不局限于,通过机器或设备制造或形成的颗粒的有形配置,包括诸如硬盘之类的存储介质、包括软盘、光盘、紧致盘只读存储器(CD-ROM)、可重写紧致盘(CD-RW)以及磁光盘之类的任何其它类型的盘、诸如只读存储器(ROM)、随机存取存储器(RAM)(诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)之类的半导体器件、磁或光卡或适合于存储电子指令的任何其它类型的计算机可使用介质。
输出信息可以按已知的方式应用于一个或多个输出设备。为了本申请,处理系统包括具有处理器的任何系统,例如,诸如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器。
可以以高级程序或面向对象编程语言来实施程序以便与处理系统通信。如果需要的话,还可以以汇编或机器语言来实施程序。事实上,并没有把这里描述的机制限制于任何特定编程语言的范围。在任何情况中,语言可以是编译或解译语言。
这里所呈现的是方法、装置和系统的实施例,用于在不同核心上的线程之间重映射线程元件和再分配工作,以使空闲线程固定到同一核心上。在已经示出和描述本发明的特定实施例的同时,熟悉本领域的技术人员会明白,可以作出许多变化、改变和修改而不背离所附的权利要求书的范围。因此,熟悉本领域的技术人员可以理解,可以作出变化和修改而不背离本发明的上位方面。所附的权利要求书包括在落在本发明的真实范围和精神内的所有如此的变化、改变和修改的范围内。
Claims (14)
1.一种方法,包括:
响应于操作系统功率管理确定第一处理器核心的第一线程单元已经准备进入深空闲状态,获得第一处理器核心的第二线程单元的功率状态;
响应于第一处理器核心的第二线程单元的功率状态不在深空闲状态中,获得第二处理器核心的第一线程单元和第二线程单元的状态;
响应于第二处理器核心的第二线程单元的功率状态在深空闲状态中,第二处理器核心的第一线程单元不在深空闲状态中,则从第二处理器核心的第一线程单元向第一处理器核心的第一线程单元交换工作;
在所述交换后,将第二处理器核心的第一线程单元的功率状态改变为深空闲状态;以及
在所述改变后,改变所述第二处理器核心的核心功率状态。
2.如权利要求1所述的方法,其特征在于,所述交换还基于第二处理器核心上的第二线程单元的功率状态信息。
3.如权利要求1所述的方法,其特征在于,所述交换在软件中执行。
4.如权利要求3所述的方法,其特征在于,所述交换通过操作系统执行。
5.如权利要求3所述的方法,其特征在于,所述交换还包括执行基于软件的上下文切换。
6.如权利要求1所述的方法,其特征在于,所述线程单元驻留在同一管芯封装中。
7.如权利要求1所述的方法,其特征在于,所述交换还包括使第一处理器核心的第一线程单元的线程标识符重映射到第二处理器核心的第一线程单元,并且使第二处理器核心的第二线程单元的线程标识符重映射到第一处理器核心的第一线程单元。
8.一种系统,包括:
包括第一处理器核心和第二处理器核心的芯片封装,所述第一处理器核心包括耦合到所述第二处理器核心的多个线程单元,所述第二处理器核心包括多个线程单元;
功率模块,用于响应于操作系统功率管理确定第一处理器核心的第一线程单元已经准备进入深空闲状态,确定第一处理器核心的第二线程单元的功率状态,并响应于第一处理器核心的第二线程单元不在深空闲状态中的判定,确定是否第二处理器核心的第一线程单元不在深空闲状态中且第二处理器核心的第二线程单元在深空闲状态中;以及
调度器模块,用于响应于第二处理器核心的第一线程单元不在深空闲状态中且第二处理器核心的第二线程单元在深空闲状态中,从第二处理器核心的第一线程单元向第一处理器核心的第一线程单元交换工作,由此使得第二处理器核心能够被置于深空闲状态中。
9.如权利要求8所述的系统,其特征在于,所述调度器模块和所述功率模块是软件模块。
10.如权利要求8所述的系统,其特征在于,所述第一处理器核心还包括集成存储器控制器。
11.一种系统,包括:
用于响应于操作系统功率管理确定第一处理器核心的第一线程单元已经准备进入深空闲状态,获得第一处理器核心的第二线程单元的功率状态的装置;
用于响应于第一处理器核心的第二线程单元的功率状态不在深空闲状态中,获得第二处理器核心的第一线程单元和第二线程单元的状态的装置;
用于响应于第二处理器核心的第二线程单元的功率状态在深空闲状态中、第二处理器核心的第一线程单元不在深空闲状态中,则从第二处理器核心的第一线程单元向第一处理器核心的第一线程单元交换工作的装置;
用于在所述交换后,将第二处理器核心的第一线程单元的功率状态改变为深空闲状态的装置;以及
用于在所述改变后,改变所述第二处理器核心的核心功率状态的装置。
12.如权利要求11所述的系统,其特征在于,所述交换还基于第二处理器核心上的第二线程单元的功率状态信息。
13.如权利要求11所述的系统,其特征在于,所述用于交换的装置还包括:用于执行基于软件的上下文切换的装置。
14.如权利要求11所述的系统,其特征在于,所述用于交换的装置还包括:用于使第一处理器核心的第一线程单元的线程标识符重映射到第二处理器核心的第一线程单元的装置,以及用于使第二处理器核心的第二线程单元的线程标识符重映射到第一处理器核心的第一线程单元的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510118010.XA CN104699225B (zh) | 2008-12-09 | 2009-12-08 | 用于节能的基于软件的线程重映射 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/316,014 US8954977B2 (en) | 2008-12-09 | 2008-12-09 | Software-based thread remapping for power savings |
US12/316,014 | 2008-12-09 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510118010.XA Division CN104699225B (zh) | 2008-12-09 | 2009-12-08 | 用于节能的基于软件的线程重映射 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102163072A CN102163072A (zh) | 2011-08-24 |
CN102163072B true CN102163072B (zh) | 2017-04-12 |
Family
ID=42209231
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910258390.1A Expired - Fee Related CN102163072B (zh) | 2008-12-09 | 2009-12-08 | 用于节能的基于软件的线程重映射 |
CN201510118010.XA Active CN104699225B (zh) | 2008-12-09 | 2009-12-08 | 用于节能的基于软件的线程重映射 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510118010.XA Active CN104699225B (zh) | 2008-12-09 | 2009-12-08 | 用于节能的基于软件的线程重映射 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8954977B2 (zh) |
EP (1) | EP2207092B1 (zh) |
CN (2) | CN102163072B (zh) |
ES (1) | ES2701739T3 (zh) |
Families Citing this family (155)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799687B2 (en) | 2005-12-30 | 2014-08-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
JP5531679B2 (ja) * | 2010-03-04 | 2014-06-25 | 日本電気株式会社 | Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム |
US8904154B2 (en) * | 2010-04-16 | 2014-12-02 | Massachusetts Institute Of Technology | Execution migration |
WO2011134716A1 (en) * | 2010-04-26 | 2011-11-03 | International Business Machines Corporation | Managing a multiprocessing computer system |
US8510749B2 (en) | 2010-05-27 | 2013-08-13 | International Business Machines Corporation | Framework for scheduling multicore processors |
US8381002B2 (en) * | 2010-06-23 | 2013-02-19 | International Business Machines Corporation | Transparently increasing power savings in a power management environment |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8448006B2 (en) | 2010-10-19 | 2013-05-21 | International Business Machines Corporation | Performing virtual and/or physical resource management for power management |
US8983536B2 (en) | 2010-10-22 | 2015-03-17 | Google Technology Holdings LLC | Resource management in a multi-operating environment |
US8990602B2 (en) | 2010-12-21 | 2015-03-24 | Intel Corporation | Apparatus, method, and system for early deep sleep state exit of a processing element |
US8775836B2 (en) * | 2010-12-23 | 2014-07-08 | Intel Corporation | Method, apparatus and system to save processor state for efficient transition between processor power states |
US9069555B2 (en) | 2011-03-21 | 2015-06-30 | Intel Corporation | Managing power consumption in a multi-core processor |
US8910177B2 (en) * | 2011-04-14 | 2014-12-09 | Advanced Micro Devices, Inc. | Dynamic mapping of logical cores |
US8793515B2 (en) | 2011-06-27 | 2014-07-29 | Intel Corporation | Increasing power efficiency of turbo mode operation in a processor |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US8688883B2 (en) | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
US8914650B2 (en) | 2011-09-28 | 2014-12-16 | Intel Corporation | Dynamically adjusting power of non-core processor circuitry including buffer circuitry |
US8954770B2 (en) | 2011-09-28 | 2015-02-10 | Intel Corporation | Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin |
TWI454905B (zh) | 2011-09-30 | 2014-10-01 | Intel Corp | 在多核心平台中之受限制的啓動技術 |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US8943340B2 (en) | 2011-10-31 | 2015-01-27 | Intel Corporation | Controlling a turbo mode frequency of a processor |
WO2013079988A1 (en) * | 2011-11-28 | 2013-06-06 | Freescale Semiconductor, Inc. | Integrated circuit device, asymmetric multi-core processing module, electronic device and method of managing execution of computer program code therefor |
US9239611B2 (en) | 2011-12-05 | 2016-01-19 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme |
US8972763B2 (en) | 2011-12-05 | 2015-03-03 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state |
US9052901B2 (en) | 2011-12-14 | 2015-06-09 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current |
US9098261B2 (en) | 2011-12-15 | 2015-08-04 | Intel Corporation | User level control of power management policies |
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 |
US9396041B2 (en) * | 2012-02-01 | 2016-07-19 | Google Technology Holdings LLC | Optimization of resource usage in a multi-environment computing system |
US9268596B2 (en) | 2012-02-02 | 2016-02-23 | Intel Corparation | Instruction and logic to test transactional execution status |
WO2013137860A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically computing an electrical design point (edp) for a multicore processor |
US9354689B2 (en) | 2012-03-13 | 2016-05-31 | Intel Corporation | Providing energy efficient turbo operation of a processor |
WO2013137862A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
CN104204825B (zh) | 2012-03-30 | 2017-06-27 | 英特尔公司 | 动态测量处理器中的功耗 |
CN103376877B (zh) * | 2012-04-26 | 2017-12-01 | 深圳市中兴微电子技术有限公司 | 一种多核处理器时钟控制装置及控制方法 |
WO2013162589A1 (en) | 2012-04-27 | 2013-10-31 | Intel Corporation | Migrating tasks between asymmetric computing elements of a multi-core processor |
WO2014004222A1 (en) * | 2012-06-29 | 2014-01-03 | Intel Corporation | Instruction and logic to test transactional execution status |
US9569279B2 (en) | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
DE102013108041B4 (de) * | 2012-07-31 | 2024-01-04 | Nvidia Corporation | Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen |
US8943252B2 (en) | 2012-08-16 | 2015-01-27 | Microsoft Corporation | Latency sensitive software interrupt and thread scheduling |
US9063727B2 (en) | 2012-08-31 | 2015-06-23 | Intel Corporation | Performing cross-domain thermal control in a processor |
US8984313B2 (en) | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
US9342122B2 (en) | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9423858B2 (en) | 2012-09-27 | 2016-08-23 | Intel Corporation | Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain |
KR20140044596A (ko) * | 2012-10-05 | 2014-04-15 | 삼성전자주식회사 | 멀티 코어 프로세서를 구비한 컴퓨팅 시스템 및 그것의 로드 밸런싱 방법 |
WO2014065841A1 (en) * | 2012-10-26 | 2014-05-01 | Intel Corporation | Computing subsystem hardware recoveryvia automated selective power cycling |
US9146609B2 (en) * | 2012-11-20 | 2015-09-29 | International Business Machines Corporation | Thread consolidation in processor cores |
US9575543B2 (en) | 2012-11-27 | 2017-02-21 | Intel Corporation | Providing an inter-arrival access timer in a processor |
US9183144B2 (en) | 2012-12-14 | 2015-11-10 | Intel Corporation | Power gating a portion of a cache memory |
US9405351B2 (en) | 2012-12-17 | 2016-08-02 | Intel Corporation | Performing frequency coordination in a multiprocessor system |
US9292468B2 (en) | 2012-12-17 | 2016-03-22 | Intel Corporation | Performing frequency coordination in a multiprocessor system based on response timing optimization |
US9075556B2 (en) | 2012-12-21 | 2015-07-07 | Intel Corporation | Controlling configurable peak performance limits of a processor |
US9235252B2 (en) | 2012-12-21 | 2016-01-12 | Intel Corporation | Dynamic balancing of power across a plurality of processor domains according to power policy control bias |
KR20150098649A (ko) | 2012-12-22 | 2015-08-28 | 퀄컴 인코포레이티드 | 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소 |
US10007323B2 (en) | 2012-12-26 | 2018-06-26 | Intel Corporation | Platform power consumption reduction via power state switching |
US9164565B2 (en) | 2012-12-28 | 2015-10-20 | Intel Corporation | Apparatus and method to manage energy usage of a processor |
US9081577B2 (en) | 2012-12-28 | 2015-07-14 | Intel Corporation | Independent control of processor core retention states |
US9335803B2 (en) | 2013-02-15 | 2016-05-10 | Intel Corporation | Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores |
US9367114B2 (en) | 2013-03-11 | 2016-06-14 | Intel Corporation | Controlling operating voltage of a processor |
US9250901B2 (en) * | 2013-03-12 | 2016-02-02 | Intel Corporation | Execution context swap between heterogeneous functional hardware units |
US9395784B2 (en) | 2013-04-25 | 2016-07-19 | Intel Corporation | Independently controlling frequency of plurality of power domains in a processor system |
US9377841B2 (en) | 2013-05-08 | 2016-06-28 | Intel Corporation | Adaptively limiting a maximum operating frequency in a multicore processor |
US9823719B2 (en) | 2013-05-31 | 2017-11-21 | Intel Corporation | Controlling power delivery to a processor via a bypass |
US9471088B2 (en) | 2013-06-25 | 2016-10-18 | Intel Corporation | Restricting clock signal delivery in a processor |
US9348401B2 (en) | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
US9348407B2 (en) | 2013-06-27 | 2016-05-24 | Intel Corporation | Method and apparatus for atomic frequency and voltage changes |
US9600346B2 (en) | 2013-07-10 | 2017-03-21 | International Business Machines Corporation | Thread scheduling across heterogeneous processing elements with resource mapping |
US9430014B2 (en) * | 2013-07-18 | 2016-08-30 | Qualcomm Incorporated | System and method for idle state optimization in a multi-processor system on a chip |
US9377836B2 (en) | 2013-07-26 | 2016-06-28 | Intel Corporation | Restricting clock signal delivery based on activity in a processor |
US9495001B2 (en) | 2013-08-21 | 2016-11-15 | Intel Corporation | Forcing core low power states in a processor |
US10386900B2 (en) | 2013-09-24 | 2019-08-20 | Intel Corporation | Thread aware power management |
US9405345B2 (en) | 2013-09-27 | 2016-08-02 | Intel Corporation | Constraining processor operation based on power envelope information |
US9594560B2 (en) | 2013-09-27 | 2017-03-14 | Intel Corporation | Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain |
US20150095614A1 (en) * | 2013-09-27 | 2015-04-02 | Bret L. Toll | Apparatus and method for efficient migration of architectural state between processor cores |
US9494998B2 (en) | 2013-12-17 | 2016-11-15 | Intel Corporation | Rescheduling workloads to enforce and maintain a duty cycle |
US9389675B2 (en) | 2013-12-19 | 2016-07-12 | International Business Machines Corporation | Power management for in-memory computer systems |
US9459689B2 (en) | 2013-12-23 | 2016-10-04 | Intel Corporation | Dyanamically adapting a voltage of a clock generation circuit |
US9323525B2 (en) | 2014-02-26 | 2016-04-26 | Intel Corporation | Monitoring vector lane duty cycle for dynamic optimization |
US10108454B2 (en) | 2014-03-21 | 2018-10-23 | Intel Corporation | Managing dynamic capacitance using code scheduling |
US9665153B2 (en) | 2014-03-21 | 2017-05-30 | Intel Corporation | Selecting a low power state based on cache flush latency determination |
US11200058B2 (en) * | 2014-05-07 | 2021-12-14 | Qualcomm Incorporated | Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media |
US20150355942A1 (en) * | 2014-06-04 | 2015-12-10 | Texas Instruments Incorporated | Energy-efficient real-time task scheduler |
US10417149B2 (en) | 2014-06-06 | 2019-09-17 | Intel Corporation | Self-aligning a processor duty cycle with interrupts |
US9760158B2 (en) | 2014-06-06 | 2017-09-12 | Intel Corporation | Forcing a processor into a low power state |
US9606602B2 (en) | 2014-06-30 | 2017-03-28 | Intel Corporation | Method and apparatus to prevent voltage droop in a computer |
US9513689B2 (en) | 2014-06-30 | 2016-12-06 | Intel Corporation | Controlling processor performance scaling based on context |
US9785481B2 (en) * | 2014-07-24 | 2017-10-10 | Qualcomm Innovation Center, Inc. | Power aware task scheduling on multi-processor systems |
US9575537B2 (en) | 2014-07-25 | 2017-02-21 | Intel Corporation | Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states |
US9760136B2 (en) | 2014-08-15 | 2017-09-12 | Intel Corporation | Controlling temperature of a system memory |
US9671853B2 (en) | 2014-09-12 | 2017-06-06 | Intel Corporation | Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency |
US10339023B2 (en) | 2014-09-25 | 2019-07-02 | Intel Corporation | Cache-aware adaptive thread scheduling and migration |
US9977477B2 (en) | 2014-09-26 | 2018-05-22 | Intel Corporation | Adapting operating parameters of an input/output (IO) interface circuit of a processor |
US9684360B2 (en) | 2014-10-30 | 2017-06-20 | Intel Corporation | Dynamically controlling power management of an on-die memory of a processor |
US9703358B2 (en) | 2014-11-24 | 2017-07-11 | Intel Corporation | Controlling turbo mode frequency operation in a processor |
US10048744B2 (en) | 2014-11-26 | 2018-08-14 | Intel Corporation | Apparatus and method for thermal management in a multi-chip package |
US20160147280A1 (en) | 2014-11-26 | 2016-05-26 | Tessil Thomas | Controlling average power limits of a processor |
US9710043B2 (en) | 2014-11-26 | 2017-07-18 | Intel Corporation | Controlling a guaranteed frequency of a processor |
KR102347657B1 (ko) * | 2014-12-02 | 2022-01-06 | 삼성전자 주식회사 | 전자 장치 및 이의 공유 캐시 메모리 제어 방법 |
US10877530B2 (en) | 2014-12-23 | 2020-12-29 | Intel Corporation | Apparatus and method to provide a thermal parameter report for a multi-chip package |
US20160224098A1 (en) | 2015-01-30 | 2016-08-04 | Alexander Gendler | Communicating via a mailbox interface of a processor |
US9639134B2 (en) | 2015-02-05 | 2017-05-02 | Intel Corporation | Method and apparatus to provide telemetry data to a power controller of a processor |
US10234930B2 (en) | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
US9910481B2 (en) | 2015-02-13 | 2018-03-06 | Intel Corporation | Performing power management in a multicore processor |
US9874922B2 (en) | 2015-02-17 | 2018-01-23 | Intel Corporation | Performing dynamic power control of platform devices |
US9842082B2 (en) | 2015-02-27 | 2017-12-12 | Intel Corporation | Dynamically updating logical identifiers of cores of a processor |
US9710054B2 (en) | 2015-02-28 | 2017-07-18 | Intel Corporation | Programmable power management agent |
US9652027B2 (en) * | 2015-04-01 | 2017-05-16 | Microsoft Technology Licensing, Llc | Thread scheduling based on performance state and idle state of processing units |
US9760160B2 (en) | 2015-05-27 | 2017-09-12 | Intel Corporation | Controlling performance states of processing engines of a processor |
US9710041B2 (en) | 2015-07-29 | 2017-07-18 | Intel Corporation | Masking a power state of a core of a processor |
US10001822B2 (en) | 2015-09-22 | 2018-06-19 | Intel Corporation | Integrating a power arbiter in a processor |
US10089155B2 (en) * | 2015-09-22 | 2018-10-02 | Advanced Micro Devices, Inc. | Power aware work stealing |
US9983644B2 (en) | 2015-11-10 | 2018-05-29 | Intel Corporation | Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance |
US9910470B2 (en) | 2015-12-16 | 2018-03-06 | Intel Corporation | Controlling telemetry data communication in a processor |
US10037227B2 (en) * | 2015-12-17 | 2018-07-31 | Intel Corporation | Systems, methods and devices for work placement on processor cores |
US10216245B2 (en) | 2015-12-22 | 2019-02-26 | Cray Inc. | Application ramp rate control in large installations |
US10146286B2 (en) | 2016-01-14 | 2018-12-04 | Intel Corporation | Dynamically updating a power management policy of a processor |
US10289188B2 (en) | 2016-06-21 | 2019-05-14 | Intel Corporation | Processor having concurrent core and fabric exit from a low power state |
US10281975B2 (en) | 2016-06-23 | 2019-05-07 | Intel Corporation | Processor having accelerated user responsiveness in constrained environment |
US10324519B2 (en) | 2016-06-23 | 2019-06-18 | Intel Corporation | Controlling forced idle state operation in a processor |
CN106200868B (zh) * | 2016-06-29 | 2020-07-24 | 联想(北京)有限公司 | 多核处理器中共享变量获取方法、装置及多核处理器 |
CN106201726A (zh) * | 2016-07-26 | 2016-12-07 | 张升泽 | 多内核芯片线程分配方法及系统 |
US10379596B2 (en) | 2016-08-03 | 2019-08-13 | Intel Corporation | Providing an interface for demotion control information in a processor |
US10234920B2 (en) | 2016-08-31 | 2019-03-19 | Intel Corporation | Controlling current consumption of a processor based at least in part on platform capacitance |
US10379904B2 (en) | 2016-08-31 | 2019-08-13 | Intel Corporation | Controlling a performance state of a processor using a combination of package and thread hint information |
US10423206B2 (en) | 2016-08-31 | 2019-09-24 | Intel Corporation | Processor to pre-empt voltage ramps for exit latency reductions |
US10775859B2 (en) * | 2016-09-23 | 2020-09-15 | Hewlett Packard Enterprise Development Lp | Assignment of core identifier |
US10168758B2 (en) | 2016-09-29 | 2019-01-01 | Intel Corporation | Techniques to enable communication between a processor and voltage regulator |
CN110235085A (zh) * | 2017-01-13 | 2019-09-13 | 阿里巴巴集团控股有限公司 | 确定多处理系统的处理器使用率 |
US10429919B2 (en) | 2017-06-28 | 2019-10-01 | Intel Corporation | System, apparatus and method for loose lock-step redundancy power management |
WO2019040054A1 (en) | 2017-08-23 | 2019-02-28 | Intel Corporation | SYSTEM, APPARATUS, AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A USER-PROGRAMMED (FPGA) PREDIFFUSED NETWORK |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US20190073243A1 (en) * | 2017-09-07 | 2019-03-07 | Alibaba Group Holding Limited | User-space spinlock efficiency using c-state and turbo boost |
US10620266B2 (en) | 2017-11-29 | 2020-04-14 | Intel Corporation | System, apparatus and method for in-field self testing in a diagnostic sleep state |
US10620682B2 (en) | 2017-12-21 | 2020-04-14 | Intel Corporation | System, apparatus and method for processor-external override of hardware performance state control of a processor |
WO2019132330A1 (en) * | 2017-12-26 | 2019-07-04 | Samsung Electronics Co., Ltd. | Method and system for predicting optimal number of threads for application running on electronic device |
CN111712793B (zh) * | 2018-02-14 | 2023-10-20 | 华为技术有限公司 | 线程处理方法和图形处理器 |
US10620969B2 (en) | 2018-03-27 | 2020-04-14 | Intel Corporation | System, apparatus and method for providing hardware feedback information in a processor |
US10739844B2 (en) | 2018-05-02 | 2020-08-11 | Intel Corporation | System, apparatus and method for optimized throttling of a processor |
US10955899B2 (en) | 2018-06-20 | 2021-03-23 | Intel Corporation | System, apparatus and method for responsive autonomous hardware performance state control of a processor |
US10976801B2 (en) | 2018-09-20 | 2021-04-13 | Intel Corporation | System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor |
US10860083B2 (en) | 2018-09-26 | 2020-12-08 | Intel Corporation | System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail |
US11656676B2 (en) | 2018-12-12 | 2023-05-23 | Intel Corporation | System, apparatus and method for dynamic thermal distribution of a system on chip |
CN109947569B (zh) * | 2019-03-15 | 2021-04-06 | Oppo广东移动通信有限公司 | 绑定核心的方法、装置、终端及存储介质 |
US11256657B2 (en) | 2019-03-26 | 2022-02-22 | Intel Corporation | System, apparatus and method for adaptive interconnect routing |
US11048549B2 (en) * | 2019-04-04 | 2021-06-29 | Google Llc | Transferral of process state and/or components in computing environments |
US11442529B2 (en) | 2019-05-15 | 2022-09-13 | Intel Corporation | System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor |
US11422849B2 (en) * | 2019-08-22 | 2022-08-23 | Intel Corporation | Technology for dynamically grouping threads for energy efficiency |
US11698812B2 (en) | 2019-08-29 | 2023-07-11 | Intel Corporation | System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor |
US11366506B2 (en) | 2019-11-22 | 2022-06-21 | Intel Corporation | System, apparatus and method for globally aware reactive local power control in a processor |
US11132201B2 (en) | 2019-12-23 | 2021-09-28 | Intel Corporation | System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit |
US11921564B2 (en) | 2022-02-28 | 2024-03-05 | Intel Corporation | Saving and restoring configuration and status information with reduced latency |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089558B2 (en) * | 2001-03-08 | 2006-08-08 | International Business Machines Corporation | Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment |
US6985951B2 (en) * | 2001-03-08 | 2006-01-10 | International Business Machines Corporation | Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment |
US7065659B2 (en) * | 2002-06-28 | 2006-06-20 | Microsoft Corporation | Power management architecture for defining component power states under a global power state and maintaining a power state floor for a specified component if a power state for the specified component under a new global power state is below the power state floor |
US20050060590A1 (en) | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
JP4800837B2 (ja) | 2006-05-22 | 2011-10-26 | 株式会社日立製作所 | 計算機システム、その消費電力低減方法、及びそのプログラム |
JP2008257578A (ja) | 2007-04-06 | 2008-10-23 | Toshiba Corp | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
-
2008
- 2008-12-09 US US12/316,014 patent/US8954977B2/en active Active
-
2009
- 2009-11-30 EP EP09252700.1A patent/EP2207092B1/en active Active
- 2009-11-30 ES ES09252700T patent/ES2701739T3/es active Active
- 2009-12-08 CN CN200910258390.1A patent/CN102163072B/zh not_active Expired - Fee Related
- 2009-12-08 CN CN201510118010.XA patent/CN104699225B/zh active Active
-
2014
- 2014-12-24 US US14/582,757 patent/US20150135189A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
《Chip Multi Processing aware Linux Kernel Scheduler》;Suresh Siddha et al.;《Linux symposium》;20061231;第2卷;329-339 * |
Also Published As
Publication number | Publication date |
---|---|
CN102163072A (zh) | 2011-08-24 |
US20150135189A1 (en) | 2015-05-14 |
CN104699225B (zh) | 2018-06-08 |
CN104699225A (zh) | 2015-06-10 |
US20100146513A1 (en) | 2010-06-10 |
EP2207092A3 (en) | 2013-07-03 |
EP2207092A2 (en) | 2010-07-14 |
ES2701739T3 (es) | 2019-02-25 |
EP2207092B1 (en) | 2018-09-26 |
US8954977B2 (en) | 2015-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102163072B (zh) | 用于节能的基于软件的线程重映射 | |
TWI628539B (zh) | 在多核心處理器中執行電源管理 | |
TWI550518B (zh) | 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 | |
US9904346B2 (en) | Methods and apparatus to improve turbo performance for events handling | |
KR101451898B1 (ko) | 지능형 전력 제어기 | |
EP1730628B1 (en) | Resource management in a multicore architecture | |
CN105492989B (zh) | 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质 | |
CN104049715B (zh) | 平台不可知的功率管理 | |
CN103842933B (zh) | 多核平台中的受约束引导技术 | |
TW201237760A (en) | Dynamic core selection for heterogeneous multi-core systems | |
CN101187908A (zh) | 单芯片多处理器共享数据存储空间的访问方法 | |
CN104781753A (zh) | 功率选通高速缓存存储器的一部分 | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
CN113849296A (zh) | 用于闭环动态资源分配控制框架的装置和方法 | |
CN107567614A (zh) | 用于对根据关键度被分组的指令的缕程的执行的多核处理器 | |
WO2021034440A1 (en) | Technology for dynamically grouping threads for energy efficiency | |
US9684541B2 (en) | Method and apparatus for determining thread execution parallelism | |
CN115934309A (zh) | 用于核心特定度量收集的技术 | |
JP2009070389A (ja) | 処理装置のためのコントローラ | |
Prakash et al. | Custom instructions with local memory elements without expensive DMA transfers | |
EP3929743B1 (en) | Technology for optimizing hybrid processor utilization | |
Mohammad et al. | Drop: Distributed run-time and power constraint mapping for many-core systems | |
US20230161941A1 (en) | Application negotiable platform thermal aware scheduler | |
Mukherjee et al. | Autonomous Power Management Techniques in Embedded Multi-Cores | |
Mittal | A Resolution for Shared Memory Conflict in Multiprocessor System-on-a-Chip |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170412 Termination date: 20201208 |