CN107533354B - 控制处理器的处理引擎的性能状态 - Google Patents
控制处理器的处理引擎的性能状态 Download PDFInfo
- Publication number
- CN107533354B CN107533354B CN201680024597.0A CN201680024597A CN107533354B CN 107533354 B CN107533354 B CN 107533354B CN 201680024597 A CN201680024597 A CN 201680024597A CN 107533354 B CN107533354 B CN 107533354B
- Authority
- CN
- China
- Prior art keywords
- processor
- performance state
- active
- cores
- processing engines
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/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/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/3243—Power saving in microcontroller unit
-
- 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
- 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
技术领域
各实施例涉及对系统的功率管理,更具体而言,涉及对多核处理器的功率管理。
背景技术
半导体处理和逻辑设计的进步已允许可存在于集成电路器件上的逻辑数量的增长。结果,计算机系统配置已从系统中的单个或多个集成电路演进到单个集成电路上的多个硬件线程、多个核、多个设备和/或多个完整系统。另外,随着集成电路的密度增长,对计算系统(从嵌入式系统到服务器)的功率要求也逐步升高。此外,软件的低效率以及其对硬件的要求也已导致计算设备能耗的增加。事实上,一些研究指出,计算设备消耗了诸如美国之类的国家的全部电力供应中相当大的百分比。结果,存在对与集成电路相关联的能效和节能的迫切需求。随着服务器、台式计算机、笔记本、超极本TM、平板、移动电话、处理器、嵌入式系统等变得越来越流行(从被包括在典型的计算机、汽车和电视机中到生物技术中),这些需求将增长。
一些现代处理器提供自主功率管理;然而,作为期望工作负荷一开始就提高性能的结果,通常损失了功率节省的机会。
附图说明
图1是根据本发明的实施例的系统的部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核的处理器的实施例。
图5是根据本发明的一个实施例的处理器核的微架构的框图。
图6是根据另一实施例的处理器核的微架构的框图。
图7是根据又一实施例的处理器核的微架构的框图。
图8是根据再一实施例的处理器核的微架构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是可与多个实施例一起使用的示例系统的框图。
图13是可与多个实施例一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是示出根据实施例的用于制造集成电路以执行操作的IP核开发系统的框图。
图17是根据本发明的实施例的方法的流程图。
图18是示出根据本发明的实施例的在时间间隔T期间两个处理引擎X和Y的活动的框图。
图19是根据本发明的另一实施例的用于控制处理器内的性能状态的方法的流程图。
图20是根据本发明的实施例的处理器的部分的框图。
图21是示出两个处理引擎的利用率的时序示图。
图22是示出两个处理引擎的测量的重叠与计算的随机重叠的时序示图。
具体实施方式
在各实施例中,处理器的功率控制逻辑可适用于分析处理器的一个或多个核和/或其他处理引擎的活动水平以确定在这些核或其他引擎上处理的并发性。至少部分地基于这些信息,功率控制逻辑可以确定适当的性能状态,在该性能状态下引擎中的一个或多个可操作以提供能量高效的操作水平。例如,当多个处理引擎在执行并行的工作负荷时,一个或多个引擎的性能状态可以被较不激进地提高。
实施例可进一步分析核和/或其他处理引擎的活动状态的重叠。基于这些分析,如果提高导致由这些引擎执行的待决工作负荷被更快地完成以允许处理器进入特定的例如深低功率状态,诸如在快速停止(race to halt)的情形中,则可以提高一个或多个此类核和/或引擎的性能状态。相比之下,如果对不同核和/或其他处理引擎上的工作负荷的执行是相关的,则可以阻止这些性能状态提高,因为很可能即使当对一个这种引擎上的待决工作负荷的执行完成时,对另一引擎上的相关的或并行的工作负荷的执行将阻止处理器进入这种深低功率状态。
还应理解,尽管本文所述的控制方法和分析是基于两个核或其他处理引擎(或两个独立域,每个域包括一个或多个处理引擎),但是本发明的范围在此方面不受限制,并且实施例同等地应用于包括如本文所述的会被分析和控制的多于两个核、其他处理引擎、和/或域的多核和/或多域处理器。
虽然参考在诸如计算平台或处理器之类的特定集成电路中的节能和能效描述了以下多个实施例,但是其他实施例也适用于其他类型的集成电路和逻辑设备。可将本文中所描述的多个实施例的类似技术和教导应用于也可受益于更佳的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于任何特定类型的计算机系统。即,所公开的实施例可以在许多不同的系统类型中使用,包括服务器计算机(例如,塔、机架、刀片、微服务器等等)、通信系统、存储系统、任意配置的台式计算机、膝上型计算机、笔记本和平板计算机(包括2:1平板、平板手机等等),并且还可以在其他设备中使用,诸如手持设备、片上系统(SoC)和嵌入式应用。手持式设备的一些示例包括诸如智能电话的蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、可穿戴设备,或能够执行以下所教导的功能和操作的任何其他系统。此外,实施例可以在具有标准语音功能的移动终端中实现,诸如移动电话、智能电话和平板电话,和/或在不具有标准无线语音功能通信能力的非移动终端中实现,诸如许多可穿戴设备、平板电脑、笔记本、台式机、微服务器、服务器等等。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的那样,本文中描述的方法、装置和系统的多个实施例(无论是关于硬件、固件、软件还是它们的组合)对于“绿色技术”的未来(诸如,对于涵盖美国经济大部分的产品的节能和能效)是至关重要的。
现在参考图1,所示的是根据本发明的实施例的系统的部分的框图。如图1所示,系统100可以包括各种组件,其包括所示为多核处理器的处理器110。处理器110可经由外部电压调节器160耦合至电源150,该外部电压调节器160可执行第一电压转换以将经调节的主电压Vreg提供给处理器110。
可以看出,处理器110可以是包括多个核120a-120n的单管芯处理器。另外,每一个核可以与集成的电压调节器(IVR)125a-125n相关联,这些集成的电压调节器接收经调节的主电压,并生成操作电压,操作电压被提供到与IVR相关联的处理器的一个或多个代理。相应地,可提供IVR实现以允许对每一个单个核的电压进而对功率和性能进行细粒度的控制。由此,每一个核都可在独立的电压和频率下操作,从而允许极大的灵活性,并提供平衡功耗与性能的广泛机会。在一些实施例中,对多个IVR的使用允许将组件分组到不同的功率层中,使得功率被IVR调节并且仅被提供给组中的那些组件。在功率管理期间,当处理器被置于某个低功率状态时,一个IVR的给定的功率层可以被掉电或断电,而另一IVR的另一功率层保持为活动的或完全供电的。类似地,核120可包括诸如一个或多个锁相环(PLL)的独立的时钟发生电路或与其相关联以独立地控制每个核120的操作频率。
仍参考图1,附加的组件可存在于处理器内,包括输入/输出接口(IF)132、另一接口134以及集成存储器控制器(IMC)136。可以看出,这些组件中的每一个都可以由另一集成的电压调节器125X来供电。在一个实施例中,接口132可以为英特尔快速路径互连(QPI)互连使能操作,该互连在包括多个层的高速缓存一致性协议中提供点对点(PtP)链路,多个层包括物理层、链路层和协议层。进而,接口134可以经由外围组件互连快速(PCIeTM)协议来通信。
还示出了功率控制单元(PCU)138,其可包括用于针对处理器110执行功率管理操作的硬件、软件和/或固件。可以看出,PCU 138经由数字接口162将控制信息提供给外部电压调节器160以使该电压调节器生成合适的经调节的电压。PCU 138也经由另一数字接口163将控制信息提供给多个IVR 125以控制所生成的操作电压(或使对应的IVR在低功率模式下被禁用)。在各实施例中,PCU 138可以包括用于执行基于硬件的功率管理的各种功率管理逻辑单元。此类功率管理可以是完全被处理器控制的(例如,通过各种处理器硬件,并且其可以是被工作负荷和/或功率、热或其他处理器约束触发的),并且/或者功率管理可以响应于外部源(诸如平台或管理功率源或系统软件)而被执行。如本文所述,在实施例中,PCU 138可配置为至少部分地基于处理器110的不同处理引擎的执行的并行性和/或重叠来执行功率管理。
尽管为了易于说明没有示出,但应理解诸如非核(uncore)逻辑和其他组件(诸如,内部存储器(例如,一个或多个层级的高速缓存存储器层次结构等))之类的附加组件可存在于处理器110内。此外,尽管在图1的实现中示出为具有集成的电压调节器,但是,多个实施例不限于此。例如,可以将其他经调节的电压从外部电压调节器160或经调节的电压的一个或多个附加的外部源提供给芯片上资源。
注意,本文中所描述的功率管理技术可以独立于基于操作系统(OS)的功率管理(OSPM)机制,并与其互补。根据一个示例OSPM技术,处理器可在各种性能状态或等级(所谓的P状态,即从P0到PN)上操作,每个性能状态或等级与操作频率(和操作电压)相关联。一般而言,P1性能状态可对应于可由OS请求的最高保证的性能状态。除此P1状态之外,OS可进一步请求更高的性能状态,即,P0状态。该P0状态因此可以是机会型状态或超频模式状态,在该状态中,当功率和/或热预算是可用的时,处理器硬件可配置处理器或其至少多个部分,以便以高于保证频率的频率进行操作。在许多实现中,处理器可包括在制造期间融合或以其他方式写入到处理器中的、高于P1保证的最大频率的多个所谓的元(bin)频率,该频率超出特定处理器的最大峰值频率。此外,根据一个OSPM机制,处理器可以在各种功率状态或等级上进行操作。对于功率状态,OSPM机制可以指定不同的功耗状态,一般将其称为C状态(C0、C1到Cn状态)。当核是活动的时,它以C0状态运行,而当该核是空闲的时,可将其置于核低功率状态,也将其称为核非零C状态(例如,C1-C6状态),每一个C状态都处于更低的功耗等级(使得C6是比C1更深的低功率状态,等等)。
应理解许多不同类型的功率管理技术可以在不同实施例中单独使用或组合使用。作为代表性示例,功率控制器可以控制处理器由一些形式的动态电压频率缩放(DVFS)来管理功率,在DVFS中一个或多个核或其他处理器逻辑的操作电压和/或操作频率可以被动态地控制以在某些情形下减少功耗。在示例中,可以使用加利福尼亚州圣克拉拉市的英特尔公司提供的增强型Intel SpeedStepTM技术来执行DVFS,以在最低功耗水平提供最优性能。在另一示例中,可以使用Intel TurboBoostTM技术来执行DVFS以使得一个或多个核或其他计算引擎能基于条件(例如,工作负荷和可用性)以高于保证操作频率的频率进行操作。
可以在某些示例中使用的另一功率管理技术是在不同计算引擎之间动态交换工作负荷。例如,处理器可以包括在不同功耗水平操作的非对称核或其他处理引擎,从而在功率约束的情形下,一个或多个工作负荷可以被动态地切换以在较低功率核或其他计算引擎上执行。另一示例性功率管理技术是硬件轮停(HDC),其可以使得核和/或其他计算引擎根据工作周期被周期性地启用和禁用,使得一个或多个核在工作周期的不活动时段变为不活动的,而在工作周期的活动时段变为活动的。
当操作环境中存在约束时也可以使用功率管理技术。例如,当遭遇功率和/或热约束时,可以通过降低操作频率和/或电压来减少功率。其他功率管理技术包括扼制指令执行速率或限制对指令的调度。此外,使给定的指令集架构的指令包括关于功率管理操作的显式的或隐式的方向是可能的。虽然以这些特定示例描述,但应理解许多其他功率管理技术可以在特定实施例中使用。
可在用于各种市场的处理器(包括服务器处理器、台式机处理器、移动处理器等)中实现多个实施例。现在参考图2,所示为根据本发明的实施例的处理器的框图。如图2中所示,处理器200可以是包括多个核210a–210n的多核处理器。在一个实施例中,每一个此类核可以是独立的功率域,并且可配置成基于工作负荷进入和退出活动状态和/或最大性能状态。一个或多个核210相对于其他核可以是异构的,例如,具有不同的微架构、指令集架构、流水线深度、功率和性能能力。可经由互连215将各种核耦合到包括各种组件的系统代理或非核220。可以看出,非核220可包括共享高速缓存230,共享高速缓存230可以是末级高速缓存。此外,非核可以包括集成存储器控制器240,用于例如经由存储器总线与系统存储器(图2中未示出)通信。非核220还包括各种接口250和功率控制单元255,功率控制单元255可包括用于执行本文所述的功率管理技术的逻辑。为此,功率控制单元255可包括P状态控制逻辑256,P状态控制逻辑256可适于至少部分地基于多个核上的工作负荷执行的并发性和/或重叠来控制一个或多个核210的P状态。该逻辑可进一步适于至少部分地基于工作负荷是否是用户交互的来执行P状态控制。
此外,通过接口250a-250n,可完成向诸如外围设备、大容量存储设备等的各种芯片外组件的连接。尽管在图2的实施例中以此特定实现示出,但是本发明的范围不限于该方面。
现在参考图3,所示出的是根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体而言,核域310可以包括多个核310a–310n,图形域320可以包括一个或多个图形引擎,并且还可以存在系统代理域350。在一些实施例中,系统代理域350能以独立于核域的独立频率执行,并且可在全部的时刻保持被供电以处理功率控制事件和功率管理,使得可以控制域310和320动态地进入和退出高功率状态和低功率状态。域310和320中的每一个能以不同的电压和/或功率操作。注意,虽然仅以三个域示出,但是应理解,本发明的范围不限于此方面,并且附加的域可存在于其他实施例中。例如,多个核域可存在,每一个核域包括至少一个核。
一般而言,除各种执行单元和附加的处理元件之外,每个核310还可包括多个低层级高速缓存。进而,各种核可彼此耦合,并且耦合到共享高速缓存存储器,该共享高速缓存存储器由末级高速缓存(LLC)340a–340n的多个单元形成。在各实施例中,可在多个核与图形引擎以及各种媒体处理电路之间共享LLC 340。如所示,环形互连330由此将多个核耦合到一起,并且在多个核、图形域320和系统代理电路350之间提供互连。在一个实施例中,互连330可以是核域的部分。然而,在其他实施例中,该环形互连可以是其自身域中的。
如进一步所示,系统代理域350可包括显示控制器352,该显示控制器352可提供对相关联的显示器的控制以及到它的接口。如进一步所示,系统代理域350可包括功率控制单元355,该功率控制单元355可包括P状态控制逻辑356以执行本文所述的功率管理技术,包括基于并发性、重叠和/或工作负荷表征的P状态控制。
如图3中进一步所示,处理器300还可包括集成存储器控制器(IMC)370,其可提供到诸如动态随机存取存储器(DRAM)之类的系统存储器的接口。可以存在多个接口380a–380n以实现处理器与其他电路之间的互连。例如,在一个实施例中,可提供至少一个直接媒体接口(DMI)接口以及一个或多个PCIeTM接口。此外,为了提供诸如附加处理器或其他电路的其他代理之间的通信,还可以提供一个或多个QPI接口。尽管在图3的实施例中在该高层级示出,但是会理解,本发明的范围不限于该方面。
参考图4,示出了包括多个核的处理器的实施例。处理器400包括任何处理器或处理器件,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协同处理器、片上系统(SoC)、或用于执行代码的其它器件。在一个实施例中,处理器400包括至少两个核——核401和402,它们可包括非对称核或对称核(所示实施例)。然而,处理器400可包括可以是对称的或非对称的任何数量的处理元件。
在一个实施例中,处理元件指的是用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够保持处理器的诸如执行状态或架构状态之类的状态的任何其他元件。换言之,在一个实施例中,处理元件指的是能够与诸如软件线程、操作系统、应用、或其他代码之类的代码独立地相关联的任何硬件。物理处理器通常指的是集成电路,其潜在地包括诸如核或硬件线程之类的任意数量的其他处理元件。
核通常指的是位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程通常指的是位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可见,当某些资源是共享的而其他资源是专用于架构状态的时候,硬件线程与核的术语之间的界线交叠。但核和硬件线程常常被操作系统视为单个的逻辑处理器,其中,操作系统能够分别在每一个逻辑处理器上调度操作。
如图4中所示,物理处理器400包括两个核——核401和402。在此,核401和402被认为是对称核,即,这些核具有相同的配置、功能单元和/或逻辑。在另一实施例中,核401包括乱序处理器核,而核402包括有序处理器核。然而,核401和402可以是从任何类型的核中单独地选出的,诸如原生核、受软件管理的核、适于执行原生指令集架构(ISA)的核、适于执行经转换ISA的核、协同设计的核或其他已知核。不过,为进一步讨论,以下将更详细地描述在核401中所示的多个功能单元,因为核402中的多个单元以类似方式操作。
如所描绘,核401包括两个硬件线程401a和401b,它们还可被称为硬件线程槽401a和401b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器400视为四个单独的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器401a相关联,第二线程与架构状态寄存器401b相关联,第三线程可与架构状态寄存器402a相关联,并且第四线程可与架构状态寄存器402b相关联。在此,架构状态寄存器(401a、401b、402a和402b)中的每一个可被称为处理元件、线程槽或线程单元,如上所述。如上所述,架构状态寄存器401a被复制在架构状态寄存器401b中,因此能够为逻辑处理器401a和逻辑处理器401b存储各个架构状态/上下文。在核401中,也可复制用于线程401a和401b的其他较小资源,诸如,指令指针以及分配器和重命名器块430中的重命名逻辑。可通过分区来共享诸如重排序/引退单元435中的重排序缓冲器、分支目标缓冲器和指令转换后备缓冲器(BTB和I-TLB)420、加载/存储缓冲器和队列之类的一些资源。可潜在地完全共享诸如通用内部寄存器、页表基寄存器、低层级数据高速缓存和数据TLB450、执行单元440和乱序单元435的多个部分之类的其他资源。
处理器400通常包括其他资源,它们可被完全共享,可通过分区被共享,或可由处理元件专用/专用于处理元件。在图4中,示出具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何单元,并包括未描绘出的任何其他已知的功能单元、逻辑或固件。如所示出的那样,核401包括简化的、代表性的乱序(OOO)处理器核。但是,在不同实施例中,可利用有序处理器。OOO核包括用于预测要被执行/进行的分支的分支目标缓冲器420以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)420。
核401还包括耦合至取出单元以用于解码所取出的元素的解码模块425。在一个实施例中,取出逻辑包括分别与线程槽401a、401b相关联的各个序列发生器。通常,核401与第一ISA相关联,该第一ISA定义/指定在处理器400上可执行的指令。作为第一ISA的部分的机器代码指令常包括引用/指定要被执行的指令或操作的指令的部分(被称为操作码)。解码逻辑425包括从这些指令的操作码识别出这些指令并在流水线上传递经解码的指令以进行第一ISA所定义的处理的电路。例如,在一个实施例中,解码器425包括被设计成用于或适于识别诸如事务性指令之类的特定指令的逻辑。作为由解码器425识别的结果,架构或核401采取特定的、预定义的动作以执行与适当指令相关联的任务。重要的是应注意,本文中所描述的任务、块、操作和方法中的任何一个可响应于单条或多条指令来执行;它们中的一些可以是新指令或旧指令。
在一个示例中,分配器和重命名器块430包括用于保留资源的分配器,诸如,用于存储指令处理结果的寄存器堆。然而,线程401a和401b潜在地能够进行乱序执行,其中,分配器和重命名器块430还保留其他资源(诸如,用于跟踪指令结果的重排序缓冲器)。单元430还可包括寄存器重命名器,其用于将程序/指令引用寄存器重命名为处理器400内部的其他寄存器。重排序/引退单元435包括用于支持被无序执行的指令的无序执行和稍后的有序引退的、诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件。
在一个实施例中,调度器和执行单元块440包括调度器单元,其用于在多个执行单元上调度指令/操作。例如,在具有可用的浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器堆,其用于存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知的执行单元。
较低层级的数据高速缓存和数据转换后备缓冲器(D-TLB)450耦合至执行单元440。数据高速缓存用于存储最近使用/操作的元素(诸如,数据操作数),潜在地在存储器一致性状态下保持这些元素。D-TLB用于存储最近的虚拟/线性至物理地址转换。作为特定示例,处理器可包括页表结构,用于将物理存储器分解成多个虚拟页。
在此,核401和402共享对用于对最近被取出元素进行高速缓存的、较高层级或进一步远离的高速缓存410的访问。注意,较高层级或进一步远离指的是高速缓存层级增加或进一步远离执行单元。在一个实施例中,较高层级高速缓存410是末级数据高速缓存(处理器400上的存储器层次结构中的末级高速缓存),诸如,第二或第三级数据高速缓存。然而,较高层级高速缓存410不限于此,因为它可与指令高速缓存相关联或包括指令高速缓存。替代地,跟踪高速缓存(指令高速缓存的类型)可耦合在解码器425之后,用于存储最近经解码的跟踪。
在所描绘的配置中,处理器400还包括总线接口模块405和可执行根据本发明的实施例的功率管理的功率控制单元460。在该情形下,总线接口405用于与在处理器400外部的设备(诸如系统存储器和其他组件)通信。
存储器控制器470可以与诸如一个或多个存储器的其他设备对接。在示例中,总线接口405包括环形互连,其与用于对接存储器的存储器控制器和用于对接图形处理器的图形控制器互连。在SoC环境中,诸如网络接口、协同处理器、存储器、图形处理器以及任何其它已知计算机器件/接口之类的甚至更多的器件可被集成到单个管芯或集成电路上,以提供具有高功能性和低功耗的小形状因数。
现在参照图5,所示为根据本发明的一个实施例的处理器核的微架构的框图。如图5所示,处理器核500可以是多级流水线类型的乱序处理器。核500可以基于所接收的操作电压在各种电压下操作,所接收的操作电压可以接收自集成电压调节器或外部电压调节器。
如图5所示,核500包括前端单元510,前端单元510可用于取出会被执行的指令并将这些指令准备好以供稍后在处理器流水线中使用。例如,前端单元510可包括取出单元501、指令高速缓存503和指令解码器505。在某些实现中,前端单元510可进一步包括跟踪高速缓存、微代码存储以及微操作存储。取出单元501可(例如,从存储器或指令高速缓存503)取出宏指令并将它们馈送至指令解码器505以将它们解码为原语,即用于通过处理器执行的微操作。
乱序(OOO)引擎515耦合在前端单元510与执行单元520之间,乱序引擎515可用于接收微指令并将它们准备好以供执行。更具体地,OOO引擎515可包括多个缓冲器,多个缓冲器用于重排序微指令流并分配执行所需的多个资源,以及提供对多个寄存器堆(例如,寄存器堆530和扩展寄存器堆535)中的存储位置上的逻辑寄存器的重命名。寄存器堆530可包括用于整数和浮点操作的单独的寄存器堆。为了配置、控制和附加操作,还可以存在一组机器专用寄存器(MSR)538并且可由核500内(以及核外部)的各种逻辑来访问。例如,功率限制信息可以存储在一个或多个MSR中并且如本文中所描述的被动态地更新。
在执行单元520中可存在多种资源,包括例如多种整数、浮点和单指令多数据(SIMD)逻辑单元等其它专门硬件。例如,除了这些执行单元以外,此类执行单元可包括一个或多个算术逻辑单元(ALU)522和一个或多个向量执行单元524。
来自执行单元的结果可被提供至引退逻辑,即重排序缓冲器(ROB)540。更具体地,ROB 540可包括多种阵列和逻辑以接收与被执行的指令相关联的信息。然后,通过ROB 540检查该信息以确定指令是否可以有效引退并且结果数据是否被提交至处理器的架构状态,或阻止指令的正常引退的一个或多个异常是否发生。当然,ROB 540可处理与引退相关联的其他操作。
如图5所示,ROB 540耦合至高速缓存550,在一个实施例中,高速缓存550可以是低层级高速缓存(例如,L1高速缓存),尽管本发明的范围不限于此。而且,执行单元520可直接耦合至高速缓存550。从高速缓存550,可发生与更高层级高速缓存、系统存储器等等的数据通信。虽然在图5的实施例中以此高级别示出,但应理解本发明的范围不限于此方面。例如,虽然图5的实现方式涉及了诸如具有x86指令集架构(ISA)的乱序机器,但本发明的范围在此方面不受限制。即,其他实施例可在以下处理器中实现:有序处理器;诸如基于ARM的处理器的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作。
现在参照图6,所示为根据另一实施例的处理器核的微架构的框图。在图6的实施例中,核600可以是具有不同的微架构的低功率核,诸如设计为降低功耗的具有相对受限制的流水线深度的基于凌动TM(AtomTM)的处理器如所示,核600包括耦合以将指令提供到指令解码器615的指令高速缓存610。分支预测器605可以耦合到指令高速缓存610。注意,指令高速缓存610可以进一步耦合到高速缓存存储器的另一层级,诸如L2高速缓存(为了易于说明,图6中未示出)。进而,指令解码器615将经解码的指令提供到发出队列(IQ)620以供存储和传递到给定的执行流水线。微代码ROM 618耦合到指令解码器615。
浮点流水线630包括浮点(FP)寄存器堆632,其可包括具有给定位(诸如128、256或512位)的多个架构寄存器。流水线630包括浮点调度器634,用于调度指令以在流水线的多个执行单元之一上执行。在所示的实施例中,此类执行单元包括ALU 635、混洗单元636和浮点加法器638。进而,在这些执行单元中生成的结果可以被往回提供到缓冲器和/或寄存器堆632的寄存器。当然,应理解虽然以这几个示例执行单元示出,但是在另一实施例中可以存在附加的或不同的浮点执行单元。
还可以提供整数流水线640。在所示的实施例中,流水线640包括整数(INT)寄存器堆642,其可包括具有给定位(诸如128或256位)的多个架构寄存器。流水线640包括整数执行(IE)调度器644,用于调度指令以在流水线的多个执行单元之一上执行。在所示的实施例中,此类执行单元包括ALU 645、移位器单元646和跳转执行单元(JEU)648。进而,在这些执行单元中生成的结果可以被往回提供到缓冲器和/或寄存器堆642的寄存器。当然,应理解虽然以这几个示例执行单元示出,但是在另一实施例中可以存在附加的或不同的整数执行单元。
存储器执行(ME)调度器650可以调度存储器操作以在地址生成单元(AGU)652中执行,地址生成单元652还耦合到TLB 654。如所示,这些结构可以耦合到数据高速缓存660,数据高速缓存660可以是L0和/或L1数据高速缓存,其进而耦合到高速缓存存储器层次结构的附加层级,包括L2高速缓存存储器。
为了提供对乱序执行的支持,可以提供分配器/重命名器670以作为重排序缓冲器680的附加,重排序缓冲器680配置为对被乱序地执行的指令进行重排序以供有序引退。虽然以图6的图示中的该特定流水线架构示出,但是应理解许多变型和替代是可能的。
注意,在具有非对称核的处理器中,诸如根据图5和6的微架构,由于功率管理的原因,可以在核之间动态地交换工作负荷,因为这些核虽然具有不同的流水线设计和深度,但是可以具有相同或相关的ISA。可以按照对用户应用(并且也可能对内核)透明的方式来执行此类动态核交换。
参照图7,所示为根据又一实施例的处理器核的微架构的框图。如图7所示,核700可以包括多级有序流水线以在非常低的功耗水平处执行。作为一个此类示例,处理器700可以具有根据可从加利福尼亚州桑尼威尔市的ARM控股有限公司得到的ARM Cortex A53设计的微架构。在实现中,可以提供配置为执行32位和64位代码的8级流水线。核700包括取出单元710,取出单元710配置为取出指令并将这些指令提供到解码单元715,解码单元715可以解码指令,例如具有给定ISA(诸如ARMv8ISA)的宏指令。此外,注意队列730可以耦合到解码单元715以存储经解码的指令。经解码的指令被提供到发出逻辑725,其中可以将经解码的指令发出到多个执行单元中的给定的一个。
进一步参考图7,发出逻辑725可以将指令发出到多个执行单元中的一个。在所示的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双发出单元760和加载/存储单元770。可以将这些不同的执行单元的结果提供到写回(WB)单元780。应理解,虽然为了便于说明示出单个写回单元,但是在一些实现中,分开的多个写回单元可以与执行单元中的每一个相关联。此外,应理解,虽然图7中示出的单元中的每一个和逻辑被表示为在高层级,但是特定实现可以包括多个或不同的结构。可以在许多不同的最终产品(从移动设备扩展到服务器系统)中实现使用一个或多个具有如图7中的流水线的核来设计的处理器。
参照图8,所示为根据再一实施例的处理器核的微架构的框图。如图8所示,核800可以包括多级多发出乱序流水线以在非常高性能水平处执行(其可在高于图7的核700的功耗水平处发生)。作为一个此类示例,处理器800可以具有根据ARM Cortex A57设计的微架构。在实现中,可以提供配置为执行32位和64位代码的15(或更大)级流水线。此外,流水线可以提供3路(或更大)宽度和3路(或更大)发出操作。核800包括取出单元810,取出单元810配置为取出指令并将指令提供给耦合到高速缓存820的解码器/重命名器/分派器单元815。单元815可解码指令,指令例如具有ARMv8指令集架构的宏指令,重命名指令内的寄存器引用,并将指令(最终)分派到所选择的执行单元。经解码的指令可以存储在队列825中。注意,虽然为了便于说明在图8中示出单个队列结构,但是应理解分开的多个队列可以被提供给多个不同类型的执行单元中的每一个。
在图8中还示出发出逻辑830,存储在队列825中的经解码的指令可以被从发出逻辑830发出到所选择的执行单元。在特定实施例中,发出逻辑830还可以实现为与发出逻辑830耦合的多个不同类型的执行单元中的每一个具有单独的发出逻辑。
可以将经解码的指令发出到多个执行单元中的给定的一个。在所示的实施例中,这些执行单元包括一个或多个整数单元835、乘法单元840、浮点/向量单元850、分支单元860和加载/存储单元870。在实施例中,浮点/向量单元850可以配置为处理128或256位的SIMD或向量数据。此外,浮点/向量执行单元850可以执行IEEE-754双精度浮点操作。可以将这些不同的执行单元的结果提供到写回单元880。注意,在一些实现中,分开的写回单元可以与执行单元中的一个相关联。此外,应理解,虽然图8中示出的单元中的每一个和逻辑被表示为在高层级,但是特定实现可以包括多个或不同的结构。
注意,在具有非对称核的处理器中,诸如根据图7和8的微架构,由于功率管理的原因,可以动态地交换工作负荷,因为这些核虽然具有不同的流水线设计和深度,但是可以具有相同或相关的ISA。可以按照对用户应用(并且也可能对内核)透明的方式来执行此类动态核交换。
可以在许多不同的最终产品(从移动设备扩展到服务器系统)中实现设计为使用一个或多个具有图5-8中的任意一个或多个中的流水线的核的处理器。现在参考图9,所示是根据本发明的另一实施例的处理器的框图。在图9的实施例中,处理器900可以是包括多个域的SoC,可控制其中的每一个域在独立的操作电压和操作频率下进行操作。作为特定的说明性示例,处理器900可以是基于英特尔架构核TM的处理器(诸如,i3、i5、i7)或可从英特尔公司得到的另一个此类处理器。然而,诸如可从加利福尼亚州桑尼威尔的超微半导体有限公司(AMD)得到的、来自ARM控股有限公司或其被许可方的基于ARM的设计的、或来自加利福尼亚州桑尼威尔的MIPS技术公司或它们的被许可方或采用者的基于MIPS的设计之类的其他低功率处理器可替代地存在于诸如苹果A7处理器、高通骁龙处理器或德州仪器OMAP处理器之类的其他实施例中。此类SoC可用于诸如智能电话、平板计算机、平板手机计算机、超极本TM计算机或其他便携式计算设备之类的低功率系统中,其可包含具有基于异构系统架构的处理器设计的异构系统架构。
在图9所示的高层级视图中,处理器900包括多个核单元910a-910n。每一个核单元都可包括一个或多个处理器核、一个或多个高速缓存存储器和其他电路。每一个核单元910都可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);MIPS指令集;ARM指令集(具有诸如NEON的可选附加扩展))或其他指令集或其组合。注意,核单元中的一些可以是异构资源(例如,具有不同设计)。此外,每一个此类核可耦合到高速缓存存储器(未示出),在实施例中,该高速缓存存储器可以是共享层级2(L2)高速缓存存储器。可使用非易失性存储器930来存储各种程序和其他数据。例如,可以使用该存储设备来存储微代码的至少多个部分、诸如BIOS之类的引导信息、其他系统软件等。
每一个核单元910还可包括诸如总线接口单元之类的接口,其用于实现向处理器的附加电路的互连。在实施例中,每一个核单元910都耦合到一致性结构,该一致性结构可充当进而耦合到存储器控制器935的主高速缓存一致性管芯上互连。存储器控制器935转而控制与诸如DRAM之类的存储器(为了易于说明,在图9中未示出)的通信。
除这些核单元之外,附加的处理引擎也存在于该处理器内,包括至少一个图形单元920,该图形单元920可包括用于执行图形处理以及可能在图形处理器上执行通用操作(所谓的GPGPU操作)的一个或多个图形处理单元(GPU)。此外,可以存在至少一个图像信号处理器925。信号处理器925可配置成用于处理从一个或多个捕捉设备(无论是SoC内部的还是芯片外的)接收到的传入的图像数据。
也可以存在其他加速器。在图9的示图中,视频译码器950可执行译码操作,包括对于视频信息的编码和解码,例如,提供对高清晰度视频内容的硬件加速支持。可进一步提供显示控制器955以加速显示操作,包括提供对系统的内部和外部显示器的支持。此外,可以存在安全处理器945,其用于执行诸如安全引导操作、各种加密操作等的安全操作。
多个单元中的每一个可以经由功率管理器940控制其功耗,功率管理器940可以包括用于执行本文中所描述的各种功率管理技术的控制逻辑。
在一些实施例中,SoC 900还可包括耦合到一致性结构(各种外围设备可耦合到该一致性结构)的非一致性结构。一个或多个接口960a-960d实现与一个或多个芯片外设备的通信。此类通信可以经由各种通信协议,诸如,PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI以及其他类型的通信协议。尽管在图9的实施例中在该高层级示出,但是会理解,本发明的范围不限于该方面。
现在参考图10,所示为代表性SoC的框图。在所示实施例中,SoC 1000可以是针对低功率操作所配置的多核SoC,该多核SoC待优化以便结合进智能电话或诸如平板计算机或其他便携式计算设备之类的其他低功率设备中。作为示例,可使用诸如较高功率核和/或低功率核(例如,乱序核和有序核)的组合之类的非对称核或不同类型核来实现SoC 1000。在不同的实施例中,这些核可以基于英特尔架构TM核设计或ARM架构设计。在另一些实施例中,可在给定的SoC中实现英特尔核和ARM核的混合。
如图10中所示,SoC 1000包括具有多个第一核1012a–1012d的第一核域1010。在示例中,这些核可以是诸如有序核之类的低功率核。在一个实施例中,可将这些第一核实现为ARM Cortex A53核。这些核转而耦合到核域1010的高速缓存存储器1015。此外,SoC 1000包括第二核域1020。在图10的示图中,第二核域1020具有多个第二核1022a–1022d。在示例中,这些核可以是比第一核1012消耗更高功耗的核。在实施例中,这些第二核可以是可实现为ARM Cortex A57核的乱序核。这些核转而耦合到核域1020的高速缓存存储器1025。注意,虽然图10中所示的示例在每个域中包括4个核,但是会理解,在其他示例中,更多或更少的核可存在于给定的域中。
进一步参考图10,也提供图形域1030,其可包括一个或多个图形处理单元(GPU),这些图形处理单元配置成用于独立地执行例如由核域1010和1020中的一个或多个核所提供的图形工作负荷。作为示例,除了提供图形和显示渲染操作之外,GPU域1030可以用于提供对各种屏幕尺寸的显示支持。
如所示,各种域耦合至一致性互连1040,在实施例中,该一致性互连可以是进而耦合至集成存储器控制器1050的高速缓存一致性互连结构。在一些示例中,一致性互连1040可包括共享高速缓存存储器,诸如,L3高速缓存。在实施例中,存储器控制器1050可以是用于提供与芯片外存储器进行的通信的多个通道(诸如,DRAM的多个通道(在图10中为了易于说明,没有示出))的直接存储器控制器。
在不同的示例中,核域的数量可以变化。例如,对于适于结合进移动计算设备的低功率SoC,可以存在诸如图10中所示的有限数量的核域。更进一步地,在此类低功率SoC中,包括较高功率核的核域1020可具有较少数量的此类核。例如,在一个实现中,可提供两个核1022以允许以降低的功耗等级进行的操作。此外,也可将不同的核域耦合到中断控制器以启用在不同域之间的工作负荷的动态交换。
在另一些实施例中,可以存在更大量的核域以及附加可选的IP逻辑,如此,可按比例将SoC放大到更高的性能(和功率)等级,以便结合进诸如台式机、服务器、高性能计算系统、基站等的其他计算设备中。作为一个此类示例,可提供各自具有给定数量的乱序核的4个核域。更进一步地,除了可选的GPU支持(作为示例,其可采取GPGPU的形式)之外,还可提供用于提供对特定功能(例如,web服务、网络处理、交换等)的优化的硬件支持的一个或多个加速器。此外,可以存在用于将此类加速器耦合到多个芯片外组件的输入/输出接口。
现在参考图11,所示为另一示例SoC的框图。在图11的实施例中,SoC 1100可包括用于允许多媒体应用、通信和其他功能的高性能的各种电路。由此,SoC 1100适于结合进多种便携式和其他设备,诸如,智能电话、平板计算机、智能电视等。在所示示例中,SoC 1100包括中央处理器单元(CPU)域1110。在实施例中,多个单独的处理器核可存在于CPU域1110中。作为一个示例,CPU域1110可以是具有4个多线程核的四核处理器。此类处理器可以是同构或异构处理器,例如,低功率和高功率处理器核的混合。
进而,提供GPU域1120以在一个或多个GPU中执行高级图形处理,从而处理图形并计算API。DSP单元1130可提供一个或多个低功率DSP,这些低功率DSP除了处理可在多媒体指令的执行期间发生的高级计算之外,还处理诸如音乐回放、音频/视频等的低功率多媒体应用。进而,通信单元1140可包括用于经由各种无线协议提供连接性的各种组件,各种无线协议诸如蜂窝通信(包括3G/4G LTE)、诸如蓝牙TM和IEEE 802.11之类的无线局域协议等。
更进一步地,可使用多媒体处理器1150来执行对高清晰度视频和音频内容的捕捉和回放,包括对用户姿势的处理。传感器单元1160可包括多个传感器和/或用于对接到存在于给定平台中的各种芯片外传感器的传感器控制器。可向图像信号处理器1170提供一个或多个分开的ISP,其用于参照从平台的一个或多个相机(包括静止相机和视频相机)捕捉到的内容来执行图像处理。
显示处理器1180可提供对向给定像素密度的高清晰度显示器的连接的支持,包括无线地传递内容以在此类显示器上回放的能力。更进一步地,位置单元1190可包括具有对多个GPS星座图的支持的GPS接收机,以便向应用提供使用此类GPS接收机所获取的高精度定位信息。会理解,虽然在图11的示例中以该特定的一组组件示出,但是许多变型和替代是可能的。
现在参考图12,所示为可与多个实施例一起使用的示例系统的框图。如所见,系统1200可以是智能电话或其他无线通信器。基带处理器1205被配置成执行关于会从该系统传输或由该系统接收的通信信号的各种信号处理。进而,基带处理器1205被耦合到应用处理器1210,该应用处理器1210可以是系统的主CPU,以执行除了诸如许多公知的社交媒体与多媒体应用的用户应用之外的OS以及其他系统软件。应用处理器1210可以进一步被配置成为该设备执行各种其他计算操作。
进而,应用处理器1210可以耦合到用户接口/显示器1220,例如,触摸屏显示器。此外,应用处理器1210可耦合至包括非易失性存储器(即,闪存1230)和系统存储器(即,动态随机存取存储器(DRAM)1235)的存储器系统。如进一步所示,应用处理器1210进一步耦合至诸如可记录视频和/或静止图像的一个或多个图像捕捉设备之类的捕捉设备1240。
仍然参考图12,包括订户身份模块和可能的安全存储设备和加密处理器的通用集成电路卡(UICC)1240也耦合到应用处理器1210。系统1200可以进一步包括可以耦合到应用处理器1210的安全处理器1250。多个传感器1225可以耦合到应用处理器1210以实现各种感测到的信息的输入,诸如加速度计与其他环境信息。音频输出设备1295可提供接口,以便例如以语音通信、播放的或流音频数据等的形式输出声音。
如进一步所示出的,提供近场通信(NFC)非接触式接口1260,其经由NFC天线1265在NFC近场中通信。尽管图12中示出分离的天线,请理解在一些实现中,可以提供一根天线或不同组的天线以实现各种无线功能。
功率管理集成电路(PMIC)1215耦合到应用处理器1210以执行平台级别功率管理。为此,PMIC 1215可以根据需要发出功率管理请求至应用处理器1210以进入某些低功率状态。此外,基于平台约束,PMIC 1215也可以控制系统1200的其他组件的功率级别。
为了实现传送与接收通信,可以在基带处理器1205与天线1290之间耦合各种电路。具体而言,可以存在射频(RF)收发机1270与无线局域网(WLAN)收发机1275。一般而言,可以根据诸如3G或4G无线通信协议(诸如根据码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其他协议)的给定的无线通信协议,使用RF收发机1270接收并传送无线数据和呼叫。此外,可以存在GPS传感器1280。也可以提供诸如无线电信号(例如,AM/FM与其他信号)的接收与传送的其他无线通信。此外,也可以经由WLAN收发机1275实现本地无线通信。
现在参考图13,所示为可与多个实施例一起使用的另一示例系统的框图。在图13的示图中,系统1300可以是诸如平板计算机、2:1平板、平板手机或其他转换式或独立式平板系统之类的移动低功率系统。如所示出的那样,存在SoC 1310,并且SoC 1310可配置成作为设备的应用处理器进行操作。
各种设备可耦合至SoC 1310。在所示示图中,存储器子系统包括耦合至SoC 1310的闪存1340和DRAM 1345。此外,触摸面板1320耦合至SoC1310以提供显示能力和经由触摸的用户输入,包括在触摸面板1320的显示器上提供虚拟键盘。为了提供有线网络连接性,SoC 1310耦合至以太网接口1330。外围中枢1325耦合至SoC 1310以启用与各种外围设备的对接,诸如,可通过各种端口或其他连接器中的任何一个而被耦合到系统1300。
除了SoC 1310中的内部功率管理电路和功能之外,PMIC 1380也耦合至SoC 1310以提供基于平台的功率管理,例如,基于该系统是由电池1390供电还是经由交流适配器1395由交流电供电。除了该基于功率源的功率管理之外,PMIC 1380还可执行基于环境和使用条件的平台功率管理活动。更进一步地,PMIC 1380可将控制和状态信息传递给SoC 1310以引起SoC 1310中的各种功率管理动作。
仍然参考图13,为了提供无线能力,将WLAN单元1350耦合至SoC 1310,并转而耦合至天线1355。在各种实现中,WLAN单元1350可以根据一个或多个无线协议提供通信。
如进一步所示出的那样,多个传感器1360可耦合至SoC 1310。这些传感器可包括各种加速度计、环境和其他传感器,包括用户姿势传感器。最后,将音频编解码器1365耦合至SoC 1310以向音频输出设备1370提供接口。当然会理解,虽然以图13中的该特定实现示出,但是许多变型和替代是可能的。
现在参考图14,所示为诸如笔记本、超极本TM或其他小形状因数系统的代表性计算机系统的框图。在一个实施例中,处理器1410包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器,或其他已知处理元件。在所示出的实现中,处理器1410充当主处理单元以及用于与系统1400的各种组件中的许多组件进行通信的中央枢纽。作为一个示例,处理器1410被实现为SoC。
在一个实施例中,处理器1410与系统存储器1415通信。作为示例性示例,系统存储器1415被实现为经由多个存储器设备或模块来提供给定量的系统存储器。
为提供对诸如数据、应用、一个或多个操作系统等的信息的持续的存储,大容量存储设备1420也可耦合到处理器1410。在各种实施例中,为了实现更薄和更轻的系统设计以及为了改善系统响应,该大容量存储设备可以经由SSD被实现,或者该大容量存储设备可以主要使用具有较小量的SSD存储设备的硬盘驱动器(HDD)来实现,SSD存储设备充当SSD高速缓存,以在掉电事件期间实现对上下文状态和其他此类信息的非易失性存储,从而在系统活动重新启动时,快速上电可以发生。图14还示出,闪存设备1422可以例如经由串行外围接口(SPI)耦合到处理器1410。该闪存设备可以提供对系统软件(包括基本输入/输出软件(BIOS)以及系统的其他固件)的非易失性存储。
系统1400内可以存在各种输入/输出(I/O)设备。图14的实施例中具体示出显示器1424,显示器1424可以是进一步提供触摸屏1425的高清晰度LCD或LED面板。在一个实施例中,显示器1424可以经由显示互连耦合到处理器1410,该显示互连可实现为高性能图形互连。触摸屏1425可以经由另一互连(在实施例中,可以是I2C互连)耦合到处理器1410。如图14中进一步所示,除触摸屏1425之外,经由触摸的用户输入也可以经由触板1430进行,触板1430可以配置在机架内,并且还可以耦合到与触摸屏1425相同的I2C互连。
出于感知计算和其他目的,各种传感器可以存在于系统内,并且能以不同的方式耦合到处理器1410。某些惯性传感器和环境传感器可以通过传感器中枢1440(例如,经由I2C互连)耦合到处理器1410。在图14示出的实施例中,这些传感器可以包括加速度计1441、环境光传感器(ALS)1442、罗盘1443以及陀螺仪1444。其他环境传感器可以包括一个或多个热传感器1446,在一些实施例中,这些热传感器1446经由系统管理总线(SMBus)总线耦合到处理器1410。
图14中还可见,各种外围设备可以经由低引脚计数(LPC)互连耦合到处理器1410。在所示的实施例中,各种组件可以通过嵌入式控制器1435耦合。此类组件可包括键盘1436(例如,经由PS2接口耦合)、风扇1437以及热传感器1439。在一些实施例中,触板1430还可以经由PS2接口耦合到EC 1435。此外,诸如可信任平台模块(TPM)1438的安全处理器也可经由该LPC互连耦合到处理器1410。
系统1400能以各种方式(包括以无线方式)与外部设备通信。在图14所示出的实施例中,存在各种无线模块,其中的每一个无线模块都可以对应于针对特定的无线通信协议而配置的无线电装置。用于在短距离(诸如,近场)内进行无线通信的一种方式可以经由NFC单元1445,在一个实施例中,该NFC单元1445可以经由SMBus与处理器1410进行通信。注意,经由该NFC单元1445,彼此紧邻的设备可以进行通信。
如图14中进一步所示,附加的无线单元可包括其他短距离无线引擎,包括WLAN单元1450和蓝牙TM单元1452。通过使用WLAN单元1450,可以实现Wi-FiTM通信,而通过蓝牙TM单元1452,可以发生短距离蓝牙TM通信。这些单元可以经由给定的链路与处理器1410通信。
另外,无线广域通信(例如,根据蜂窝式或其他无线广域协议)可以经由WWAN单元1456进行,该WWAN单元1456进而可以耦合到订户身份模块(SIM)1457。另外,为了允许接收并使用位置信息,还可以存在GPS模块1455。注意,在图14中示出的实施例中,WWAN单元1456和诸如相机模块1454的集成捕捉设备可以经由给定的链路进行通信。
为了提供音频输入和输出,可以经由数字信号处理器(DSP)1460来实现音频处理器,DSP 1460可以经由高清晰度音频(HDA)链路来耦合到处理器1410。类似地,DSP 1460可以与集成的编码器/解码器(编解码器)和放大器1462进行通信,集成的编解码器和放大器1462进而可以耦合到可以在机架内实现的输出扬声器1463。类似地,放大器和编解码器1462可以耦合到话筒1465以从话筒1465接收音频输入,在实施例中,话筒1465可以经由双阵列话筒(诸如数字话筒阵列)被实现,以提供高质量音频输入来实现对系统内的各种操作的语音激活的控制。另外注意,可以将音频输出从放大器/编解码器1462提供到头戴式耳机插孔1464。虽然在图14的实施例中利用这些特定组件示出,但应理解本发明的范围不限于此方面。
可在许多不同的系统类型中实现实施例。现在参考图15,所示为根据本发明的实施例的系统的框图。如图15所示,多处理器系统1500是点对点互连系统,且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图15所示,处理器1570和1580中的每一个可以是包括第一和第二处理器核(即处理器核1574a和1574b以及处理器核1584a和1584b)的多核处理器,尽管这些处理器中可能存在更多核。处理器中的每一个可包括PCU或其他功率管理逻辑以执行本文所述的基于处理器的功率管理,包括至少部分地基于工作负荷并发性、重叠和/或表征中的一个或多个的P状态控制。
仍参考图15,第一处理器1570还包括存储器控制器中枢(MCH)1572和点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582和P-P接口1586与1588。如图15所示,MCH 1572和1582将多个处理器耦合到相应的存储器(即,存储器1532和存储器1534),这些存储器可以是本地附连到相应处理器的系统存储器(例如,DRAM)的多个部分。第一处理器1570与第二处理器1580可以分别经由P-P互连1562与1564耦合到芯片组1590。如图15中所示,芯片组1590包括P-P接口1594和1598。
此外,芯片组1590包括通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合的接口1592。进而,芯片组1590可以经由接口1596被耦合到第一总线1516。如图15所示,各种输入/输出(I/O)设备1514以及总线桥接器1518可耦合到第一总线1516,总线桥接器1518将第一总线1516耦合到第二总线1520。在一个实施例中,各种设备可耦合到第二总线1520,包括例如,键盘/鼠标1522、通信设备1526以及诸如可包括代码1530的盘驱动器或者其他大容量存储设备之类的数据存储单元1528。此外,音频I/O1524可以被耦合到第二总线1520。可将多个实施例合并到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、超极本TM等之类的移动设备。
至少一个实施例的一个或多个方面可由存储在机器可读介质上的代表性代码实现,代表性代码表示和/或定义诸如处理器的集成电路内的逻辑。例如,机器可读介质可包括表示处理器内的各种逻辑的指令。当被机器读取时,指令可使机器制造逻辑以执行本文所述的技术。被称为“IP核”的这些表示是集成电路的逻辑的可重用单元,这些可重用单元可存储在有形的机器可读介质上作为描述集成电路的结构的硬件模型。可将硬件模型提供给多个客户或生产设施,客户或生产设施将硬件模型加载到制造集成电路的制造机器上。集成电路可以被制造使得该电路执行与本文所述的实施例中的任一个相关联地描述的操作。
图16是示出根据实施例的可用于制造集成电路以执行操作的IP核开发系统1600的框图。IP核开发系统1600可用于生成可被包含在较大的设计中或用于构建整个集成电路(例如,SoC集成电路)的模块化的、可重复使用的设计。设计设施1630可以高级编程语言(例如,C/C++)生成IP核设计的软件模拟1610。软件模拟1610可用于设计、测试或验证IP核的行为。然后可以从模拟模型1600创建或合成寄存器传送级(RTL)设计。RTL设计1615是对硬件寄存器之间的数字信号的流动建模的集成电路的行为的抽象,包括使用被建模的数字信号执行相关联的逻辑。除了RTL设计1615之外,还可创建、设计或合成在逻辑级或晶体管级的较低级设计。因此,初始设计和模拟的特定细节可以变化。
可通过设计设施进一步将RTL设计1615或等价物合成到硬件模型1620中,硬件模型1620可以是以硬件描述语言(HDL)或物理设计数据的一些其他表示。可进一步模拟或测试HDL以验证IP核设计。可使用非易失性存储器1640(例如,硬盘、闪存、或任何非易失性存储介质)存储IP核设计以传递到第三方生产设施1665。替代地,可以在有线连接1650或无线连接1660上传送(例如,经由互联网)IP核设计。生产设施1665然后可以制造至少部分地基于IP核设计的集成电路。所制造的集成电路可配置为执行根据本文所述的至少一个实施例的操作。
在硬件控制的性能状态更新的情况下,在某些周期性重复的工作负荷(诸如基于帧的算法)中可能出现误报(false positive),其中可以每一帧(或几帧)提高性能状态(例如到最大超频模式频率),这会浪费能量和性能。实施例可用于对从性能状态提高获利的交互工作负荷与不从性能状态提高获利的循环工作负荷进行区分。实施例还可在确定是否提高处理器的性能状态中考虑多线程工作负荷的影响。在各实施例中,本文所公开的功率管理技术在对工作负荷的吞吐量的最小的影响下使响应性最大化。更具体地,实施例可改善短时猝发的用户交互的动作的响应性,同时在执行非用户交互的工作负荷时使能量损失最小化。换言之,当处理器执行用户交互的工作负荷时可以提高至少一个引擎的性能状态,并且当处理器不执行用户交互的工作负荷时阻止这种提高。
在不同实施例中,技术可用于标识并行的工作负荷,并且作为其结果,采取动作以某种方式使P状态控制逻辑的激进度松弛以节省功率。还应注意,这些技术可用于多线程的情形,其中假设功耗高于单线程的情形。出于讨论的目的,假设具有下列假设的基于两核的处理器:
P=每个核的利用率百分比(假设两个核均具有相同的利用率百分比)。
由此:
两个核是活动的:P2
只有一个核是活动的:2*(1-P)*P
零个核是活动的:(1-P)2
活动核的数量的和:2*P2+1*2*(1-P)*P
至少一个核是活动的:1-(1-P)2
活动核的平均数量=(活动核的数量的和)/(至少一个活动核)。
基于该信息,可以提供配置表以用于包含在处理器中。现在参考表1,所示为根据实施例的代表性配置表。应理解,虽然基于以上等式示出这些代表值,但是其他实施例可提供从相同或不同等式导出的不同的配置表。该配置表可在制造期间融合到处理器中、例如作为固件编码的值写入非易失性存储器、和/或在处理器复位时输入到存储器中。
表1
在各实施例中,活动核的平均数量可以通过使用从某些处理器计数器获得的计数值来确定。更具体地,在一个实施例中,这些计数器包括:C0_ANY_SUM计数器,对每个核活动的时间量计数;以及C0_ANY计数器,对有任一核活动的时间量计数。活动核的平均数量可以通过计算硬件计数器在一段时间内的平均值来确定。
通过使用滚动平均技术(或其他平均技术),可以在给定的评估时间窗口上确定活动核的平均数量。当然,也可以使用其他平均方法。在该平均值高于理论计算值(本文中也被称为估计的核总体活动驻留度水平)的情形下,可以假定当前活动的工作负荷是并行的。如果活动核的平均数量低于该值,则可以假定对每个核上的工作负荷的执行之间没有依赖性。
在实施例中,P状态控制逻辑通常适于测量在定义的时间窗口上的每个核的平均活动时间。如果该平均测量值超过定义的高活动驻留度阈值,则逻辑请求P状态的提高(例如,核频率和/或电压的提高)。如果平均测量值低于定义的低活动驻留度阈值,则逻辑请求P状态的降低。
在工作负荷被标识为并行的情形下,实施例可更新P状态控制逻辑所使用的一个或多个参数。更具体地,可以更新(例如,提高)较低的和较高的P状态选择阈值和/或可以增大用于估计平均核利用率的评估时间窗口。提高阈值可以导致较低的P状态(例如,较低的操作频率),因为可以存在非常高的核利用率的值以提高P状态(反之亦然)。该阈值控制还可使得流动相比于阈值更低的情形更松弛。注意,P状态选择阈值的水平变化和时间窗口变化可以是实际功率变化与当前状态相比的函数。作为示例,对于在高P状态执行的单元,其阈值和时间窗口变化相比于仅在较低P状态范围执行的单元可以是更高的。(假设最高P状态比较低P状态消耗更多功率)。注意,当时间窗口更长时,P状态的变化将较不频繁,并且阈值越高将使P状态变化的数量松弛。对变化的控制也可以是处理器支持的核的数量的函数。增大用于估计平均核利用率的时间窗口有助于使该估计稳定并且使随机活动事件的影响最小化。
现在参照图17,示出了根据本发明的实施例的方法的流程图。更具体地,图17的方法1700可以由处理器的功率控制逻辑执行,功率控制逻辑在实施例中可以被实现为一个或多个微控制器或其他基于硬件的逻辑。在一些情形中,这种逻辑可以硬件、软件和/或固件的合适的组合实现。
如所示,方法1700以预测活动核的平均数量开始(框1710)。注意,出于说明的目的,对图17的讨论参照在给定评估间隔上的多核处理器的多个核。应理解,在其他情形中,处理引擎可以是除核之外的其他类型,诸如图形处理器或任何其他类型的处理引擎。在实施例中,活动核的平均数量预测可以对量级为约在10-100毫秒之间的评估间隔作出。此外,在实施例中,可以基于本文所述的一个或多个计数器中所维持的计数值作出这种预测。下一控制传至框1720,其中可以确定最大核活动驻留度水平。在实施例中,该确定可以标识具有最高活动状态驻留度水平(通常被称为最大利用率水平)的核,其可以利用率百分比表达。
仍然参考图17,接下来在框1730处,可以确定估计的核总体驻留度水平。更具体地,该确定可以作为最大核活动驻留度水平的函数作出。在一个实施例中,该最大核活动驻留度水平可用于访问配置存储中的条目,如在上文的表1的示例中,其提供基于给定的活动驻留度水平或利用率值的估计的核总体驻留度水平的表。此后,控制传至菱形1740以确定估计的核总体驻留度水平减去阈值的和是否小于活动核的平均水平。该阈值可用于提供对滞后的测量。注意,在其他情形中,可以直接地作出估计的核总体驻留度水平与活动核的活动数量之间的该比较而无需包括阈值(例如,基于最大C0%的函数)(或同等地,可以将阈值应用到活动核的平均数量而不是估计的核总体驻留度水平)。
在任一情形下,如果该比较指示和值小于活动和的平均数量,则控制传至框1750,其中可以对P状态控制逻辑在确定合适的P状态中所使用的一个或多个输入参数作出调节。更具体地,如图17所示,可以调节P状态控制逻辑的一个或多个活动驻留度阈值和评估时间窗口中的至少一个。注意,如果和不小于活动核的平均数量,则可以假定核之间存在依赖性,并且间隔可以被计数为不同核之间的软件线程迁移的消费者生产者情形。
作为示例,为了在多个核执行并行的工作负荷时降低P状态提高的激进度,可以将高的活动驻留度阈值提高到更高水平(例如,90%),并且可以提高低的活动驻留度阈值(例如,到约70%)。此外,可以增大评估时间窗口。例如,在一个实施例中,该时间窗口可以从约30毫秒加倍为约60毫秒。这种调节降低性能状态控制的激进度,与更长的评估间隔和更高的高活动驻留度阈值相同,在缺少非常活动的处理器的情况下,对性能状态提高的确定较不可能出现。应当理解,尽管在该高级别下示出图17的实施例,但是许多变型和替代是可能的。
阈值和时间窗口变化的量还与估计的活动核的数量有关。该估计一变高,变化也可以被增大。例如,直到给定值(例如,多至1.4),变化的量可以是零,高于该值(例如,在1.4与1.6之间),变化可以是低的和高的阈值的提高的值(例如,多至20%)和增大时间窗口(例如,增大30毫秒)的线性函数。
阈值和时间窗口的变化的量还可以是核的实际物理定义和实际可能能耗的函数,从而阈值和时间窗口变化的不同值可以基于核可消耗的可能的最大比率能耗。
除了上述方法之外,实施例可进一步分析多个处理引擎之间的活动重叠并相应地控制性能状态。更具体地,实施例可独立地(和/或替代地)标识两个或更多个处理引擎相互是相关的还是反相关的。基于这种标识,可以确定引擎中的一个或多个的操作频率通过性能状态提升而导致的增加将降级还是改善能耗。如上所讨论的,这些引擎可以是核、图形器件、处理器或SoC或其他处理器的其他处理引擎。
在此,当多个处理引擎试图一起工作时,可以将它们视为相关的。进而,当多个处理引擎试图相互大部分分开地(独立地)工作时,可以将它们视为反相关的。如果两个引擎是相关的,则提高一个引擎的性能状态(诸如通过提高操作频率)可能在大部分时间不会改善系统能耗,因为另一个引擎将阻止系统进入特定的例如深低功率状态。如果引擎是反相关的,则提高引擎中的一个的性能状态(诸如通过提高操作频率)很可能会导致附加的睡眠时间段,其会导致附加的节能。
在实施例中,下列变量可用于确定是否使性能状态更新发生。更具体地,可使用下列变量(假设存在多个处理引擎E1和E2以及评估间隔T):
UTILIZATION(Ei,T):引擎Ei在时间间隔T上的利用率。
MEASURED_OVERLAP(E1,E2,T):表示引擎E1和E2在时间间隔T上的重叠时间的测量计数器。
在实施例中,当两个引擎E1和E2一起工作时(均在活动状态中),该计数器在给定时间周期中增加一。进而,RANDOM_OVERLAP(X,Y,T)是对时间间隔T内的两个引擎之间的重叠时间的估计,两个引擎中的一个具有利用率X,另一个具有利用率Y(假设X是两个利用率中较大的)。假设两个引擎是独立的并且相互不知道来估计重叠时间。
当可以使用处理器中存在的计数器的计数值测量UTILIZATION和MEASURED_OVERLAP度量时,可以基于存在两个独立的引擎并且引擎中的每一个在观测时间帧T中连续地工作的假设来计算RANDOM_OVERLAP度量。
现在参考图18,所示为示出在时间间隔T期间两个处理引擎X和Y的活动的框图。如所示,在总时间间隔T中,两个引擎在不同的持续时间中是活动的,一个持续时间的长度为X,另一个持续时间的长度为Y。
在实施例中,可将RANDOM_OVERLAP(X,Y,T)计算为X*Y/T。
为了理解两个引擎之间的相关性,可以在RANDOM_OVERLAP(X,Y,T)与MEASURED_OVERLAP(E1,E2,T)之间作出比较。在实施例中,如果RANDOM_OVERLAP(X,Y,T)大于MEASURED_OVERLAP(E1,E2,T),则引擎被假定为是反相关的。如果RANDOM_OVERLAP(X,Y,T)小于或等于MEASURED_OVERLAP(E1,E2,T),则两个引擎被假定为是相关的(注意,可以应用阈值以降低滞后)。
现在参考图19,所示为根据本发明的另一实施例的用于控制处理器内的性能状态的方法的流程图。可以由如上所述的处理器的功率控制逻辑执行方法1800。如所示,方法1800以测量处理器的第一与第二引擎之间的活动重叠开始(框1810)。同样,尽管为了易于说明讨论对两个引擎的分析,应理解,在其他情形下,可以分析多于两个引擎。
控制接下来传至框1820,其中可以估计引擎之间的预期的重叠。更具体地,该预期的重叠可以被称为随机重叠值。在不同实施例中,可以出现估计该预期的重叠的不同方式。此后,在菱形1830处,确定测量的活动重叠是否大于随机重叠值。如果是,则对特定的评估间隔不进行进一步的操作。如果确定测量的活动重叠不大于随机重叠值,则控制传至框1840,其中可以提高处理引擎中的至少所选择的一个的性能状态。此处的情况很可能是引擎正在执行反相关的工作负荷,使得引擎中的至少所选择的一个的提高的性能状态可以使得待决工作负荷更快地完成,很可能使得处理器进入更深的低功率状态。应当理解,尽管在该高级别下示出图19的实施例,但是许多变型和替代是可能的。
现在参考图20,所示的是根据本发明的实施例的处理器的部分的框图。更具体地,图20所示的处理器1900的部分包括用于执行本文所述的分析和性能状态控制操作的各种硬件。如所示,处理器1900包括计数器存储区域1910。在所示的实施例中,存储区域1910包括多个独立的计数器,包括对应的核活动计数器19120-1912n。在实施例中,每个这种活动计数器1912可以与特定核或其他处理引擎(诸如图形处理器)相关联,并且可适于对对应引擎处于活动状态的时钟周期计数。此外,活动和计数器1914可适于对引擎活动的时钟周期计数。由此,在实施例中,在每个时钟周期中,该计数器可以增加一或更多,取决于活动引擎的数量。例如,如果在特定时钟周期中两个引擎是活动的,则该计数器可以增加二。最后,图20示出计数器存储区域1910包括活动任何计数器1916。在实施例中,计数器1916可适于对至少一个引擎活动的每个时钟周期增加一。此外,重叠计数器1918可配置为测量两个引擎之间的重叠持续时间。定义为:引擎1与引擎2之间的重叠计数器对引擎1和引擎2均工作的每个周期增加一。
注意,这些计数器维持的计数可由活动确定逻辑1920、P状态控制逻辑1930和引擎相关性确定逻辑1940中的一个或多个使用。在实施例中,活动确定逻辑1920和引擎相关性确定逻辑1940可适于为P状态控制逻辑1930执行分析和控制操作。作为示例,活动确定逻辑1920可执行图17的方法1700。进而,引擎相关性确定逻辑1940可适于执行图19的方法1800。
P状态控制逻辑1930可接收除了来自这些逻辑的控制输入之外的用户输入1932、来自阈值存储1934的一个或多个阈值以及评估时间窗口存储1936。在各实施例中,用户输入1932可以是用户所请求的性能状态。例如,基于对给定模式的操作的用户请求,例如,偏向性能的模式、偏向能效的模式和/或平衡模式,提供对P状态控制逻辑1930的合适输入。P状态控制逻辑1930可从存储1934选择合适的较低的和较高的活动阈值,例如,基于在活动确定逻辑1920中作出的确定。此外,可以从评估时间窗口存储1936获得用于作出P状态确定的合适的评估间隔,同样基于活动确定逻辑1920。
基于所有这些信息,P状态控制逻辑1930可为一个或多个核或其他处理引擎的下一操作间隔确定合适的P状态。例如,控制逻辑1930可根据用户输入1932以基准确定开始,并且然后可微调该用户请求以生成合适的性能状态。例如,在确定非平行或反相关的工作负荷正在被执行的情形下,可以更激进地提高性能状态。相反,在相关或平行的工作负荷正在被执行的情形下,可以将用户请求修剪为更低的性能状态,因为很可能更快速地完成工作负荷的能效将不会导致更深的功率节省状态。
图21是示出以50毫秒的时间间隔测量的两个处理引擎(引擎0和引擎1)的利用率的时序示图。图22是示出对于给定的工作负荷两个引擎的测量的重叠与计算的随机重叠的时序示图。
在各实施例中,本文所述的性能状态控制调节可与快速停止(race to halt)算法结合使用。快速停止算法提高SoC或其他处理器的核域的一个或多个处理器核的操作频率,以增加SoC睡眠时间。实施例可准确地估计当核域完成执行时SoC会的确睡眠,还是另一计算引擎(诸如图形域的图形处理器)会阻止SoC睡眠。在这些情形下,可以执行对两个计算域(核与图形器件)之间的重叠的比较。如果这些域是正相关的,则例如核域的性能状态的提高不被允许,因为图形域可能阻止SoC睡眠(当完成核域工作负荷时)。如果相反,这些域是反相关的,则当可能时(诸如不存在处理器约束,并且存在可用的功率预算)可以提高例如核域的性能状态,因为得到SoC睡眠状态的可能性是高的。
以下示例关于进一步的实施例。
在一个示例中,处理器包括:多个处理引擎,包括第一处理引擎和第二处理引擎,用于独立地执行指令;以及功率控制器,包括性能状态控制逻辑,用于控制多个处理引擎中的至少一个的性能状态,以及第一逻辑,用于确定在第一窗口上的活动处理引擎的平均数量、第一窗口的处理器的估计的活动水平,并且至少部分地基于对估计的活动水平与活动处理引擎的平均数量的比较来调节性能状态控制逻辑会对其执行性能状态确定的窗口长度以及至少一个活动水平阈值中的至少一个。
在示例中,第一逻辑用于当估计的活动水平与阈值的和小于活动处理引擎的平均数量时增大窗口长度。
在示例中,增大的窗口长度用于使得性能状态控制逻辑以降低的速率控制多个处理引擎中的至少一个的性能状态。
在示例中,第一逻辑用于至少部分地基于比较仅调节至少一个活动水平阈值。
在示例中,第一逻辑用于按照第一方向调节第一活动水平阈值和第二活动水平阈值,以使得性能状态控制逻辑以降低的速率提高至少一个处理引擎的性能状态。
在示例中,功率状态控制逻辑用于当平均核利用率值超过第一活动水平阈值时提高至少一个处理引擎的性能状态。
在示例中,第一逻辑用于根据存储在配置存储的条目中的值确定估计的活动水平,条目至少部分地基于多个处理引擎中的一个的最大活动状态驻留度被访问。
在示例中,当第一处理引擎和第二处理引擎执行并行的工作负荷时,估计的活动水平小于活动处理引擎的平均数量。
在示例中,当第一处理引擎和第二处理引擎执行独立的工作负荷时,估计的活动水平大于活动处理引擎的平均数量。
在示例中,处理器进一步包括:第一计数器,用于当多个处理引擎是活动的时维持时钟周期的第一计数;以及第二计数器,用于当多个处理引擎中的至少一个是活动的时维持时钟周期的第二计数。
在示例中,第一逻辑用于至少部分地基于第一计数和第二计数来确定活动核的平均数量。
在示例中,功率状态控制逻辑用于接收来自用户的对处理器的第一性能状态的请求,并且基于对估计的活动水平与活动处理引擎的平均数量的比较来阻止在第一性能状态的处理器的操作。
在示例中,功率状态控制逻辑用于当处理器用于执行用户交互的工作负荷时提高至少一个处理引擎的性能状态并且用于当处理器用于执行非用户交互的工作负荷时阻止性能状态提高。
注意,可使用各种方式来实现上述处理器。
在示例中,处理器包括包含在用户设备启用触摸的设备中的片上系统(SoC)。
在另一示例中,系统包括显示器和存储器,并且包括以上示例中的一个或多个中的处理器。
在另一示例中,方法包括:测量在评估间隔期间处理器的第一处理引擎与第二处理引擎之间的活动重叠;估计第一处理引擎与第二处理引擎之间的预期的活动重叠;以及响应于测量的活动重叠超过预期的活动重叠,使第一处理引擎和第二处理引擎中的至少一个的性能状态被提高。
在示例中,方法进一步包括响应于测量的活动重叠小于预期的活动重叠,阻止第一处理引擎和第二处理引擎中的至少一个的性能状态被提高。
在示例中,方法进一步包括至少部分地基于计数器的计数值来测量活动重叠,其中当第一处理引擎和第二处理引擎同时在活动状态中时计数器被更新。
在示例中,估计预期的活动重叠包括基于第一处理引擎的第一利用率值、第二处理引擎的第二利用率值和评估间隔的持续时间来计算预期的活动重叠。
在示例中,方法进一步包括如果在第一处理引擎完成待决工作负荷之后第二处理引擎会在活动状态中,则阻止第一处理引擎以更高的性能状态操作。
在另一示例中,包括指令的计算机可读介质用于执行上述示例中的任一项的方法。
在另一示例中,包括数据的计算机可读介质用于被至少一个机器使用以制造至少一个集成电路以执行上述示例中的任一项的方法。
在另一示例中,设备包括用于执行上述示例中的任一项的方法的装置。
在另一示例中,系统包括:处理器,包括具有多个核的第一域、具有至少一个图形引擎的第二域和功率控制器,功率控制器用于至少部分地基于对第一域上的第一工作负荷的执行与对第二域上的第二工作负荷的执行的相关性来控制第一域的性能状态;以及耦合到处理器的DRAM。
在示例中,功率控制器进一步用于确定第一窗口上的第一域和第二域的活动处理引擎的平均数量、第一窗口的处理器的估计的活动水平,并且至少部分地基于对估计的活动水平与活动处理引擎的平均数量的比较来调节功率控制器会对其控制性能状态的窗口长度。
在示例中,功率控制器用于当估计的活动水平与阈值的和小于活动处理引擎的平均数量时增大窗口长度。
在示例中,功率控制器用于接收来自用户的对处理器的第一性能状态的请求,并且基于对估计的活动水平与活动处理引擎的平均数量的比较来阻止在第一性能状态的处理器的操作。
在示例中,处理器进一步包括:第一计数器,用于当多个核是活动的时维持时钟周期的第一计数;以及第二计数器,用于当多个核中的至少一个是活动的时维持时钟周期的第二计数。
在示例中,功率控制器用于通过将第一域与第二域之间的活动重叠与估计的活动重叠值进行比较来确定相关性。
会理解,上述示例的各种组合是可能的。
实施例可以被用于许多不同类型的系统中。例如,在一个实施例中,可以将通信设备布置为用于执行本文所述的各种方法与技术。当然,本发明的范围不限于通信设备,相反,其他实施例可以涉及用于处理指令的其他类型的装置,或一个或多个机器可读介质,该机器可读介质包括指令,响应于在计算设备上执行这些指令,这些指令使该设备执行本文所述的方法与技术中的一个或多个。
实施例可以实现在代码中,并且可以存储在非暂态存储介质中,该非暂态存储介质具有存储于其上的指令,该指令可以被用来对系统编程以执行指令。实施例还可以实现在数据中,并且可以存储在非暂态存储介质中,该非暂态存储介质如果被至少一个机器使用,将使得至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于,任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,诸如,只读存储器(ROM)、诸如动态随机存取存储器(DRAM)与静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);磁卡或光卡;或适用于存储电子指令的任何其他类型的介质。
虽然已参照有限数量的实施例描述了本发明,但是本领域技术人员将从中领会很多修改和变型。所附权利要求旨在涵盖落入本发明的真实精神与范围的所有此类修改与变型。
Claims (18)
1.一种用于控制性能状态的处理器,包括:
多个处理引擎,包括第一处理引擎和第二处理引擎,用于独立地执行指令;以及
功率控制器,包括性能状态控制逻辑,用于控制所述多个处理引擎中的至少一个的性能状态,以及第一逻辑,用于确定在第一窗口上的活动处理引擎的平均数量、所述第一窗口的所述处理器的估计的活动水平,并且至少部分地基于对所述估计的活动水平与活动处理引擎的所述平均数量的比较来调节所述性能状态控制逻辑会对其执行性能状态确定的窗口长度以及至少一个活动水平阈值中的至少一个。
2.如权利要求1所述的处理器,其特征在于,所述第一逻辑用于当所述估计的活动水平与阈值的和小于活动处理引擎的所述平均数量时增大所述窗口长度。
3.如权利要求2所述的处理器,其特征在于,增大的窗口长度用于使得所述性能状态控制逻辑以降低的速率控制所述多个处理引擎中的至少一个的性能状态。
4.如权利要求1所述的处理器,其特征在于,所述第一逻辑用于至少部分地基于所述比较仅调节所述至少一个活动水平阈值。
5.如权利要求4所述的处理器,其特征在于,所述第一逻辑用于按照第一方向调节第一活动水平阈值和第二活动水平阈值,以使得所述性能状态控制逻辑以降低的速率提高所述至少一个处理引擎的性能状态。
6.如权利要求5所述的处理器,其特征在于,所述性能状态控制逻辑用于当平均核利用率值超过所述第一活动水平阈值时提高所述至少一个处理引擎的性能状态。
7.如权利要求1所述的处理器,其特征在于,所述第一逻辑用于根据存储在配置存储的条目中的值确定所述估计的活动水平,所述条目至少部分地基于所述多个处理引擎中的一个的最大活动状态驻留度被访问。
8.如权利要求1所述的处理器,其特征在于,当所述第一处理引擎和所述第二处理引擎执行并行的工作负荷时,所述估计的活动水平小于活动处理引擎的所述平均数量。
9.如权利要求1所述的处理器,其特征在于,当所述第一处理引擎和所述第二处理引擎执行独立的工作负荷时,所述估计的活动水平大于活动处理引擎的所述平均数量。
10.如权利要求1所述的处理器,其特征在于,所述处理器进一步包括:
第一计数器,用于当所述多个处理引擎是活动的时维持时钟周期的第一计数;以及
第二计数器,用于当所述多个处理引擎中的至少一个是活动的时维持时钟周期的第二计数。
11.如权利要求10所述的处理器,其特征在于,所述第一逻辑用于至少部分地基于所述第一计数和所述第二计数来确定活动核的所述平均数量。
12.如权利要求1所述的处理器,其特征在于,所述性能状态控制逻辑用于接收来自用户的对所述处理器的第一性能状态的请求,并且基于对所述估计的活动水平与活动处理引擎的所述平均数量的比较来阻止在所述第一性能状态的所述处理器的操作。
13.如权利要求1所述的处理器,其特征在于,所述性能状态控制逻辑用于当所述处理器用于执行用户交互的工作负荷时提高所述至少一个处理引擎的性能状态并且用于当所述处理器用于执行非用户交互的工作负荷时阻止所述性能状态提高。
14.一种用于控制处理器域的性能状态的系统,包括:
处理器,包括具有多个核的第一域、具有至少一个图形引擎的第二域和功率控制器,所述功率控制器用于至少部分地基于对所述第一域上的第一工作负荷的执行与对所述第二域上的第二工作负荷的执行的相关性来控制所述第一域的性能状态,其中,所述功率控制器进一步用于确定第一窗口上的所述第一域和所述第二域的活动处理引擎的平均数量、所述第一窗口的所述处理器的估计的活动水平,并且至少部分地基于对所述估计的活动水平与活动处理引擎的所述平均数量的比较来调节所述功率控制器会对其控制性能状态的窗口长度;以及
动态随机存取存储器(DRAM),耦合至所述处理器。
15.如权利要求14所述的系统,其特征在于,所述功率控制器用于当所述估计的活动水平与阈值的和小于活动处理引擎的所述平均数量时增大所述窗口长度。
16.如权利要求14所述的系统,其特征在于,所述功率控制器用于接收来自用户的对所述处理器的第一性能状态的请求,并且基于对所述估计的活动水平与活动处理引擎的所述平均数量的比较来阻止在所述第一性能状态的所述处理器的操作。
17.如权利要求14所述的系统,其特征在于,所述处理器进一步包括:
第一计数器,用于当所述多个核是活动的时维持时钟周期的第一计数;以及
第二计数器,用于当所述多个核中的至少一个是活动的时维持时钟周期的第二计数。
18.如权利要求14所述的系统,其特征在于,所述功率控制器用于通过将所述第一域与所述第二域之间的活动重叠与估计的活动重叠值进行比较来确定所述相关性。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/722,518 US9760160B2 (en) | 2015-05-27 | 2015-05-27 | Controlling performance states of processing engines of a processor |
US14/722,518 | 2015-05-27 | ||
PCT/US2016/029923 WO2016191032A1 (en) | 2015-05-27 | 2016-04-29 | Controlling performance states of processing engines of a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533354A CN107533354A (zh) | 2018-01-02 |
CN107533354B true CN107533354B (zh) | 2021-06-22 |
Family
ID=57393623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680024597.0A Expired - Fee Related CN107533354B (zh) | 2015-05-27 | 2016-04-29 | 控制处理器的处理引擎的性能状态 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9760160B2 (zh) |
EP (1) | EP3304248B1 (zh) |
CN (1) | CN107533354B (zh) |
WO (1) | WO2016191032A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11513805B2 (en) * | 2016-08-19 | 2022-11-29 | Wisconsin Alumni Research Foundation | Computer architecture with synergistic heterogeneous processors |
US10649518B2 (en) * | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
US10423209B2 (en) * | 2017-02-13 | 2019-09-24 | Apple Inc. | Systems and methods for coherent power management |
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
US10444817B2 (en) * | 2017-04-17 | 2019-10-15 | Intel Corporation | System, apparatus and method for increasing performance in a processor during a voltage ramp |
US11054883B2 (en) * | 2017-06-19 | 2021-07-06 | Advanced Micro Devices, Inc. | Power efficiency optimization in throughput-based workloads |
US20190102274A1 (en) | 2017-09-29 | 2019-04-04 | Intel Corporation | Utilization Metrics for Processing Engines |
US11157329B2 (en) | 2019-07-26 | 2021-10-26 | Intel Corporation | Technology for managing per-core performance states |
US10877552B1 (en) * | 2019-09-19 | 2020-12-29 | Amazon Technologies, Inc. | Dynamic power reduction through data transfer request limiting |
US11366506B2 (en) * | 2019-11-22 | 2022-06-21 | Intel Corporation | System, apparatus and method for globally aware reactive local power control in a processor |
KR20220079196A (ko) * | 2020-12-04 | 2022-06-13 | 삼성전자주식회사 | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
FR3122931A1 (fr) * | 2021-05-11 | 2022-11-18 | Psa Automobiles Sa | Procédé et dispositif de contrôle d’un ensemble de calculateurs d’un véhicule |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060149975A1 (en) * | 2004-12-30 | 2006-07-06 | Intel Corporation | Operating point management in multi-core architectures |
US20120144217A1 (en) * | 2011-12-15 | 2012-06-07 | Sistla Krishnakanth V | Dynamically Modifying A Power/Performance Tradeoff Based On Processor Utilization |
CN103492976A (zh) * | 2011-03-21 | 2014-01-01 | 英特尔公司 | 管理多核处理器中的功耗 |
US20140189377A1 (en) * | 2012-12-28 | 2014-07-03 | Dheeraj R. Subbareddy | Apparatus and method for intelligently powering hetergeneou processor components |
WO2014169596A1 (zh) * | 2013-09-09 | 2014-10-23 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
US20150095673A1 (en) * | 2011-10-31 | 2015-04-02 | Intel Corporation | Controlling A Turbo Mode Frequency Of A Processor |
CN104508594A (zh) * | 2012-08-31 | 2015-04-08 | 英特尔公司 | 在处理器中配置功率管理功能 |
Family Cites Families (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163153A (en) | 1989-06-12 | 1992-11-10 | Grid Systems Corporation | Low-power, standby mode computer |
US5522087A (en) | 1994-03-22 | 1996-05-28 | Verifone Inc. | System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up |
US5590341A (en) | 1994-09-30 | 1996-12-31 | Intel Corporation | Method and apparatus for reducing power consumption in a computer system using ready delay |
US5621250A (en) | 1995-07-31 | 1997-04-15 | Ford Motor Company | Wake-up interface and method for awakening an automotive electronics module |
US5931950A (en) | 1997-06-17 | 1999-08-03 | Pc-Tel, Inc. | Wake-up-on-ring power conservation for host signal processing communication system |
US6823516B1 (en) | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
US7539885B2 (en) | 2000-01-13 | 2009-05-26 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
US7010708B2 (en) | 2002-05-15 | 2006-03-07 | Broadcom Corporation | Method and apparatus for adaptive CPU power management |
JP2001318742A (ja) | 2000-05-08 | 2001-11-16 | Mitsubishi Electric Corp | コンピュータシステムおよびコンピュータ読み取り可能な記録媒体 |
KR100361340B1 (ko) | 2000-05-15 | 2002-12-05 | 엘지전자 주식회사 | 씨피유 클럭 제어 방법 |
US6792392B1 (en) | 2000-06-30 | 2004-09-14 | Intel Corporation | Method and apparatus for configuring and collecting performance counter data |
US6748546B1 (en) | 2000-09-26 | 2004-06-08 | Sun Microsystems, Inc. | Method and apparatus for reducing power consumption |
US6829713B2 (en) | 2000-12-30 | 2004-12-07 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
US7058824B2 (en) | 2001-06-15 | 2006-06-06 | Microsoft Corporation | Method and system for using idle threads to adaptively throttle a computer |
US20030061383A1 (en) | 2001-09-25 | 2003-03-27 | Zilka Anthony M. | Predicting processor inactivity for a controlled transition of power states |
US7111179B1 (en) | 2001-10-11 | 2006-09-19 | In-Hand Electronics, Inc. | Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters |
US6996728B2 (en) | 2002-04-26 | 2006-02-07 | Hewlett-Packard Development Company, L.P. | Managing power consumption based on utilization statistics |
US7051227B2 (en) | 2002-09-30 | 2006-05-23 | Intel Corporation | Method and apparatus for reducing clock frequency during low workload periods |
US6898689B2 (en) | 2002-11-15 | 2005-05-24 | Silicon Labs Cp, Inc. | Paging scheme for a microcontroller for extending available register space |
US7043649B2 (en) | 2002-11-20 | 2006-05-09 | Portalplayer, Inc. | System clock power management for chips with multiple processing modules |
US6971033B2 (en) | 2003-01-10 | 2005-11-29 | Broadcom Corporation | Method and apparatus for improving bus master performance |
CN1759368A (zh) | 2003-01-23 | 2006-04-12 | 罗切斯特大学 | 多时钟域微处理器 |
JP4061492B2 (ja) | 2003-02-10 | 2008-03-19 | ソニー株式会社 | 情報処理装置および消費電力制御方法 |
US7093147B2 (en) | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7272732B2 (en) | 2003-06-30 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Controlling power consumption of at least one computer system |
TW200502847A (en) | 2003-07-08 | 2005-01-16 | Benq Corp | Control device and method for reducing number of interrupts in a processor |
US7146514B2 (en) | 2003-07-23 | 2006-12-05 | Intel Corporation | Determining target operating frequencies for a multiprocessor system |
US7272730B1 (en) | 2003-07-31 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform |
US7194643B2 (en) | 2003-09-29 | 2007-03-20 | Intel Corporation | Apparatus and method for an energy efficient clustered micro-architecture |
US7810093B2 (en) * | 2003-11-14 | 2010-10-05 | Lawrence Livermore National Security, Llc | Parallel-aware, dedicated job co-scheduling within/across symmetric multiprocessing nodes |
US7770034B2 (en) | 2003-12-16 | 2010-08-03 | Intel Corporation | Performance monitoring based dynamic voltage and frequency scaling |
US7401240B2 (en) * | 2004-06-03 | 2008-07-15 | International Business Machines Corporation | Method for dynamically managing power in microprocessor chips according to present processing demands |
US20070156992A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US9001801B2 (en) | 2004-09-07 | 2015-04-07 | Broadcom Corporation | Method and system for low power mode management for complex Bluetooth devices |
US7941585B2 (en) | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
US7426648B2 (en) | 2004-09-30 | 2008-09-16 | Intel Corporation | Global and pseudo power state management for multiple processing elements |
US7434073B2 (en) | 2004-11-29 | 2008-10-07 | Intel Corporation | Frequency and voltage scaling architecture |
US7814485B2 (en) * | 2004-12-07 | 2010-10-12 | Intel Corporation | System and method for adaptive power management based on processor utilization and cache misses |
US8041967B2 (en) | 2005-02-15 | 2011-10-18 | Hewlett-Packard Development Company, L.P. | System and method for controlling power to resources based on historical utilization data |
US7454632B2 (en) | 2005-06-16 | 2008-11-18 | Intel Corporation | Reducing computing system power through idle synchronization |
US7430673B2 (en) | 2005-06-30 | 2008-09-30 | Intel Corporation | Power management system for computing platform |
US8301868B2 (en) | 2005-09-23 | 2012-10-30 | Intel Corporation | System to profile and optimize user software in a managed run-time environment |
US20070079294A1 (en) | 2005-09-30 | 2007-04-05 | Robert Knight | Profiling using a user-level control mechanism |
US20070106827A1 (en) | 2005-11-08 | 2007-05-10 | Boatright Bryan D | Centralized interrupt controller |
US20070245163A1 (en) | 2006-03-03 | 2007-10-18 | Yung-Hsiang Lu | Power management in computer operating systems |
US7437270B2 (en) | 2006-03-30 | 2008-10-14 | Intel Corporation | Performance state management |
US7752468B2 (en) | 2006-06-06 | 2010-07-06 | Intel Corporation | Predict computing platform memory power utilization |
US7529956B2 (en) | 2006-07-17 | 2009-05-05 | Microsoft Corporation | Granular reduction in power consumption |
US7930564B2 (en) | 2006-07-31 | 2011-04-19 | Intel Corporation | System and method for controlling processor low power states |
US7730340B2 (en) | 2007-02-16 | 2010-06-01 | Intel Corporation | Method and apparatus for dynamic voltage and frequency scaling |
WO2008117133A1 (en) | 2007-03-26 | 2008-10-02 | Freescale Semiconductor, Inc. | Anticipation of power on of a mobile device |
JP2008257578A (ja) | 2007-04-06 | 2008-10-23 | Toshiba Corp | 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法 |
US7971074B2 (en) | 2007-06-28 | 2011-06-28 | Intel Corporation | Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system |
US20090150696A1 (en) | 2007-12-10 | 2009-06-11 | Justin Song | Transitioning a processor package to a low power state |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
US7966506B2 (en) | 2007-12-12 | 2011-06-21 | Intel Corporation | Saving power in a computer system |
US8442697B2 (en) | 2007-12-18 | 2013-05-14 | Packet Digital | Method and apparatus for on-demand power management |
KR101459140B1 (ko) | 2007-12-26 | 2014-11-07 | 엘지전자 주식회사 | 전원관리 제어 장치 및 방법 |
US8156362B2 (en) | 2008-03-11 | 2012-04-10 | Globalfoundries Inc. | Hardware monitoring and decision making for transitioning in and out of low-power state |
US8010822B2 (en) | 2008-03-28 | 2011-08-30 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
US8954977B2 (en) | 2008-12-09 | 2015-02-10 | Intel Corporation | Software-based thread remapping for power savings |
US8700943B2 (en) | 2009-12-22 | 2014-04-15 | Intel Corporation | Controlling time stamp counter (TSC) offsets for mulitple cores and threads |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US20120144215A1 (en) | 2010-12-03 | 2012-06-07 | Advanced Micro Devices, Inc. | Maximum current limiting method and apparatus |
US8949637B2 (en) | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains 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 |
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 |
US8832478B2 (en) | 2011-10-27 | 2014-09-09 | Intel Corporation | Enabling a non-core domain to control memory bandwidth in a processor |
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 |
US9158693B2 (en) | 2011-10-31 | 2015-10-13 | Intel Corporation | Dynamically controlling cache size to maximize energy efficiency |
US9075610B2 (en) * | 2011-12-15 | 2015-07-07 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation |
US9354689B2 (en) | 2012-03-13 | 2016-05-31 | Intel Corporation | Providing energy efficient turbo operation of a processor |
WO2013137860A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically computing an electrical design point (edp) for a multicore processor |
US9323316B2 (en) | 2012-03-13 | 2016-04-26 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
US9250665B2 (en) * | 2012-06-07 | 2016-02-02 | Apple Inc. | GPU with dynamic performance adjustment |
US9342122B2 (en) | 2012-09-17 | 2016-05-17 | Intel Corporation | Distributing power to heterogeneous compute elements of a processor |
US9098282B2 (en) | 2012-12-27 | 2015-08-04 | Intel Corporation | Methods, systems and apparatus to manage power consumption of a graphics engine |
US9541985B2 (en) * | 2013-12-12 | 2017-01-10 | International Business Machines Corporation | Energy efficient optimization in multicore processors under quality of service (QoS)/performance constraints |
US9600058B2 (en) * | 2014-06-24 | 2017-03-21 | Intel Corporation | Enhancing power-performance efficiency in a computer system when bursts of activity occurs when operating in low power |
US9710273B2 (en) * | 2014-11-21 | 2017-07-18 | Oracle International Corporation | Method for migrating CPU state from an inoperable core to a spare core |
-
2015
- 2015-05-27 US US14/722,518 patent/US9760160B2/en active Active
-
2016
- 2016-04-29 EP EP16800474.5A patent/EP3304248B1/en active Active
- 2016-04-29 CN CN201680024597.0A patent/CN107533354B/zh not_active Expired - Fee Related
- 2016-04-29 WO PCT/US2016/029923 patent/WO2016191032A1/en unknown
-
2017
- 2017-08-25 US US15/686,222 patent/US10372198B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060149975A1 (en) * | 2004-12-30 | 2006-07-06 | Intel Corporation | Operating point management in multi-core architectures |
CN103492976A (zh) * | 2011-03-21 | 2014-01-01 | 英特尔公司 | 管理多核处理器中的功耗 |
US20150095673A1 (en) * | 2011-10-31 | 2015-04-02 | Intel Corporation | Controlling A Turbo Mode Frequency Of A Processor |
US20120144217A1 (en) * | 2011-12-15 | 2012-06-07 | Sistla Krishnakanth V | Dynamically Modifying A Power/Performance Tradeoff Based On Processor Utilization |
CN104508594A (zh) * | 2012-08-31 | 2015-04-08 | 英特尔公司 | 在处理器中配置功率管理功能 |
US20140189377A1 (en) * | 2012-12-28 | 2014-07-03 | Dheeraj R. Subbareddy | Apparatus and method for intelligently powering hetergeneou processor components |
WO2014169596A1 (zh) * | 2013-09-09 | 2014-10-23 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
Also Published As
Publication number | Publication date |
---|---|
EP3304248A1 (en) | 2018-04-11 |
EP3304248B1 (en) | 2020-05-27 |
WO2016191032A1 (en) | 2016-12-01 |
US10372198B2 (en) | 2019-08-06 |
EP3304248A4 (en) | 2018-12-19 |
US20170371400A1 (en) | 2017-12-28 |
US9760160B2 (en) | 2017-09-12 |
US20160349828A1 (en) | 2016-12-01 |
CN107533354A (zh) | 2018-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107533354B (zh) | 控制处理器的处理引擎的性能状态 | |
CN107209545B (zh) | 在多核处理器中执行功率管理 | |
CN107209548B (zh) | 在多核处理器中执行功率管理 | |
US11435816B2 (en) | Processor having accelerated user responsiveness in constrained environment | |
CN108885483B (zh) | 确定多管芯处理器中的热余量 | |
CN107077175B (zh) | 提供针对多芯片封装的热参数报告的装置和方法 | |
US9983644B2 (en) | Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance | |
CN109564526B (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
US10324519B2 (en) | Controlling forced idle state operation in a processor | |
CN113748397A (zh) | 用于动态控制处理器的处理电路的电流消耗的系统、装置和方法 | |
WO2018063752A1 (en) | Multi-level loops for computer processor control | |
CN109564460B (zh) | 在处理器中提供用于降级控制信息的接口 | |
CN109661637B (zh) | 用于可变功率轨的补偿控制 | |
US11669146B2 (en) | System, apparatus and method for responsive autonomous hardware performance state control of a processor | |
CN113448373A (zh) | 用于处理器的电压调节器的功率状态缩放的装置和方法 | |
EP3340039A1 (en) | Processor prefetch throttling based on short streams | |
CN109791427B (zh) | 使用滑动平均值的处理器电压控制 | |
CN109478086B (zh) | 至少部分地基于平台电容来控制处理器的电流消耗 | |
CN113924540A (zh) | 用于处理器中的传感器驱动的和基于试探的最低能量点跟踪的系统、装置和方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210622 |
|
CF01 | Termination of patent right due to non-payment of annual fee |