CN107209545B - 在多核处理器中执行功率管理 - Google Patents

在多核处理器中执行功率管理 Download PDF

Info

Publication number
CN107209545B
CN107209545B CN201680008146.8A CN201680008146A CN107209545B CN 107209545 B CN107209545 B CN 107209545B CN 201680008146 A CN201680008146 A CN 201680008146A CN 107209545 B CN107209545 B CN 107209545B
Authority
CN
China
Prior art keywords
cores
processor
workload
power
active
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.)
Active
Application number
CN201680008146.8A
Other languages
English (en)
Other versions
CN107209545A (zh
Inventor
V·W·李
D·金
Y·白
S·姬
S·李
D·D·卡拉玛卡
N·K·梅勒普迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN107209545A publication Critical patent/CN107209545A/zh
Application granted granted Critical
Publication of CN107209545B publication Critical patent/CN107209545B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

在实施例中,处理器包括用于独立地执行指令的多个核,核包括用于存储性能信息的多个计数器,以及耦合到多个核的功率控制器,功率控制器具有逻辑,用于从多个计数器中的至少一些中接收性能信息,至少部分地基于性能信息和模型信息确定下一操作间隔中会是活动的核的数量以及该数量的核的性能状态,以及使得该数量的核在下一操作间隔期间是活动的,性能信息与工作负荷在多个核中的一个或多个上的执行相关联。描述其他实施例并要求它们的权利。

Description

在多核处理器中执行功率管理
技术领域
各实施例涉及对系统的功率管理,更具体而言,涉及对多核处理器的功率管理。
背景技术
半导体处理和逻辑设计的进步已允许可存在于集成电路器件上的逻辑数量的增长。结果,计算机系统配置已从系统中的单个或多个集成电路演进到单个集成电路上的多个硬件线程、多个核、多个设备和/或多个完整系统。另外,随着集成电路的密度增长,对计算系统(从嵌入式系统到服务器)的功率要求也逐步升高。此外,软件的低效率以及其对硬件的要求也已导致计算设备能耗的增加。事实上,一些研究指出,计算设备消耗了诸如美国之类的国家的全部电力供应中相当大的百分比。结果,存在对与集成电路相关联的能效和节能的迫切需求。随着服务器、台式计算机、笔记本、超极本TM、平板、移动电话、处理器、嵌入式系统等变得越来越流行(从被包括在典型的计算机、汽车和电视机中到生物技术中),这些需求将增长。
附图说明
图1是根据本发明的实施例的系统的部分的框图。
图2是根据本发明的实施例的处理器的框图。
图3是根据本发明的另一实施例的多域处理器的框图。
图4是包括多个核的处理器的实施例。
图5是根据本发明的一个实施例的处理器核的微架构的框图。
图6是根据另一实施例的处理器核的微架构的框图。
图7是根据又一实施例的处理器核的微架构的框图。
图8是根据再一实施例的处理器核的微架构的框图。
图9是根据本发明的另一实施例的处理器的框图。
图10是根据本发明的实施例的代表性SoC的框图。
图11是根据本发明的实施例的另一示例SoC的框图。
图12是可与多个实施例一起使用的示例系统的框图。
图13是可与多个实施例一起使用的另一示例系统的框图。
图14是代表性计算机系统的框图。
图15是根据本发明的实施例的系统的框图。
图16是根据本发明的实施例的功率控制逻辑的框图。
图17是根据本发明的另一实施例的包括硬件功率控制逻辑的处理器的框图。
图18是根据本发明的实施例的用于控制处理器的功耗的方法的流程图。
图19是根据本发明的另一实施例的用于控制处理器的功耗的方法的流程图。
图20是根据本发明的实施例的用于更新训练模型参数的方法的流程图。
具体实施方式
在各种实施例中,提供了用于处理器的智能多核功率管理控制器,其在运行中学习工作负荷特性并且动态地调节功率配置以对每份能量提供最优性能。在一个实施例中,此类功率配置包括活动的核和线程的数量以及对于每个活动核的最优电压和频率。在各种实施例中,基于机器学习的性能和能量模型标识特定的工作负荷行为(诸如密集的存储器访问)并且预测最优功率控制,包括在使存储器资源饱和的同时将一个或多个核置于空闲状态或低功率状态。
在实施例中,功率管理控制器配置有确定最优功率配置的策略和将确定的配置应用到底层系统的机制。此类策略可以包括由专家开发的试探法,和/或离线/在线机器学习方案,并且可以进一步包括多个用户级和操作系统(OS)级的核到线程的管理机制。
本文中所描述的功率管理控制器可以配置为仅将所需的资源分配到工作负荷,从而可以使性能和能效最大化。作为示例,在所有计算资源被完全利用之前,存储器约束的工作负荷使存储器资源(诸如带宽或队列)饱和。如果在所有线程和核都活动的情况下执行此类工作负荷,则将产生低效率。由于诸如增加的同步开销的各种原因,一些计算约束的工作负荷还遭受被损害的可扩展性。实施例同样应用到在核中产生松弛(slack)的其他工作负荷,使得核变得未被充分利用。其他示例工作负荷包括I/O或网络约束的工作负荷。实施例因此可以为不同的工作负荷标识最佳功率配置。例如,可以标识特定工作负荷,并且用于该工作负荷的未被充分利用的资源可以被断电或在降低的消耗水平上操作以实现显著的节能而不会不利地影响性能。
在实施例中,用于工作负荷的最佳功率配置定义最优的线程和核的数量、执行单元、电压和频率等等。该功率配置取决于许多参数,包括运行时工作负荷行为和系统功率状态两者。此外,当考虑在功率状态之间转换的期间引发的开销时,选择过程变得更加复杂。单个固定的控制策略难以适用于各种工作负荷和不同的系统。因此,实施例提供一组不同的模型来估计,并且智能选择器从被标识的模型中选择。这实现在运行时的多个控制策略和灵活的选择。因此,实施例可以用于同时为每个工作负荷确定最优功率配置(例如,核/线程的数量以及电压/频率),而不是基于单个性能/能量预测模型的预定义的控制策略。
实施例操作以在不会不利地影响存储器密集型工作负荷的性能的情况下节能,上述的存储器密集型工作负荷在完全利用计算资源之前使得存储器资源饱和,会浪费多核处理器中的能量。实施例可以标识此类行为并且关闭未被充分利用的核以提供节能而没有性能牺牲。
在一些实施例中,异构多处理器可以包括两个不同类型的核:一个核类型针对计算优化,而另一核类型针对存储器访问优化。在一个示例中,两种类型的核实现相同的指令集架构(ISA)但是具有不同的微架构,其可以促进核类型之间的线程迁移。
程序的计算和存储器约束的阶段可以具有非常不同的处理器要求,非常不同的处理器要求不能被单个核类型优化。例如,针对计算工作负荷优化的同构多处理器的目标可以是在可以维持每核每周期一个融合乘加(FMA)的频率处的最高核计数。然而,该多处理器在主要等待存储器返回的程序阶段可能不能是非常能量高效的。这是因为,在存储器被约束的阶段,核主要是空闲地等待存储器访问,然而该空闲时间可能没有足够长来保证将核置于低功率状态。因此,在高频率的空闲核处会消耗不必要的功率。
由此,实施例提供包括针对不同的操作点优化的两个或多个专用核类型的异构多处理器。在本文中描述的示例中,提供了两个核类型,计算优化的核(也被称为偏向计算的核)和存储器优化的核(也被称为偏向存储器的核)。然而,可以理解本发明的范围不限于2个核类型,并且在其他情形中,可以存在针对其他工作负荷类型优化的附加的核类型。
虽然参考在诸如计算平台或处理器之类的特定集成电路中的节能和能效描述了以下多个实施例,但是其他实施例也适用于其他类型的集成电路和逻辑设备。可将本文中所描述的多个实施例的类似技术和教导应用于也可受益于更佳的能效和节能的其他类型的电路或半导体器件。例如,所公开的实施例不限于任何特定类型的计算机系统。即,所公开的实施例可以在许多不同的系统类型中使用,包括服务器计算机(例如,塔、机架、刀片、微服务器等等)、通信系统、存储系统、任意配置的台式计算机、膝上型计算机、笔记本和平板计算机(包括2:1平板、平板手机等等),并且还可以在其他设备中使用,诸如手持设备、片上系统(SoC)和嵌入式应用。手持式设备的一些示例包括诸如智能电话的蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、可穿戴设备,或能够执行以下所教导的功能和操作的任何其他系统。此外,实施例可以在具有标准语音功能的移动终端中实现,诸如移动电话、智能电话和平板电话,和/或在不具有标准无线语音功能通信能力的非移动终端中实现,诸如许多可穿戴设备、平板电脑、笔记本、台式机、微服务器、服务器等等。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的那样,本文中描述的方法、装置和系统的多个实施例(无论是关于硬件、固件、软件还是它们的组合)对于“绿色技术”的未来(诸如,对于涵盖美国经济大部分的产品的节能和能效)是至关重要的。
现在参考图1,所示的是根据本发明的实施例的系统的部分的框图。如图1所示,系统100可以包括各种组件,其包括所示为多核处理器的处理器110。处理器110可经由外部电压调节器160耦合至电源150,该外部电压调节器160可执行第一电压转换以将经调节的主电压提供给处理器110。
可以看出,处理器110可以是包括多个核120a-120n的单管芯处理器。另外,每一个核可以与集成的电压调节器(IVR)125a-125n相关联,这些集成的电压调节器接收经调节的主电压,并生成操作电压,操作电压被提供到与IVR相关联的处理器的一个或多个代理。相应地,可提供IVR实现以允许对每一个单个核的电压进而对功率和性能进行细粒度的控制。由此,每一个核都可在独立的电压和频率下操作,从而允许极大的灵活性,并提供平衡功耗与性能的广泛机会。在一些实施例中,对多个IVR的使用允许将组件分组到不同的功率层中,使得功率被IVR调节并且仅被提供给组中的那些组件。在功率管理期间,当处理器被置于某个低功率状态时,一个IVR的给定的功率层可以被掉电或断电,而另一IVR的另一功率层保持为活动的或完全供电的。
仍参考图1,附加的组件可存在于处理器内,包括输入/输出接口132、另一接口134以及集成存储器控制器136。可以看出,这些组件中的每一个都可以由另一集成的电压调节器125X来供电。在一个实施例中,接口132可以为
Figure BDA0001365762110000051
快速路径互连(QPI)互连使能操作,该互连在包括多个层的高速缓存一致性协议中提供点对点(PtP)链路,多个层包括物理层、链路层和协议层。进而,接口134可以经由外围组件互连快速(PCIeTM)协议来通信。
还示出了功率控制单元(PCU)138,其可包括用于针对处理器110执行功率管理操作的硬件、软件和/或固件。可以看出,PCU 138经由数字接口将控制信息提供给外部电压调节器160以使该电压调节器生成合适的被调节的电压。PCU 138也经由另一数字接口将控制信息提供给多个IVR 125以控制所生成的操作电压(或使对应的IVR在低功率模式下被禁用)。在各实施例中,PCU 138可以包括用于执行基于硬件的功率管理的各种功率管理逻辑单元。此类功率管理可以是完全被处理器控制的(例如,通过各种处理器硬件,并且其可以是被工作负荷和/或功率、热或其他处理器约束触发的),并且/或者功率管理可以响应于外部源(诸如平台或管理功率管理源或系统软件)而被执行。如本文中所进一步描述的,PCU138可以包括控制逻辑,控制逻辑用于基于正在被执行的工作负荷的类型执行工作负荷分类,并且使得工作负荷至少部分地基于工作负荷类型在可能不同数量的核上(并且在可能不同的性能状态下)执行。
尽管为了易于说明没有示出,但应理解诸如非核(uncore)逻辑和其他组件(诸如,内部存储器(例如,一个或多个层级的高速缓存存储器层次结构等))之类的附加组件可存在于处理器110内。此外,尽管在图1的实现中示出为具有集成的电压调节器,但是,多个实施例不限于此。
注意,本文中所描述的功率管理技术可以独立于基于操作系统(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的多核处理器。在一个实施例中,每一个此类核可以是独立的功率域,并且可配置成基于工作负荷进入和退出活动状态和/或最大性能状态。可经由互连215将各种核耦合到包括各种组件的系统代理或非核220。可以看出,非核220可包括共享高速缓存230,共享高速缓存230可以是末级高速缓存。此外,非核可以包括集成存储器控制器240,用于例如经由存储器总线与系统存储器(图2中未示出)通信。非核220还包括各种接口250和功率控制单元255,功率控制单元255可以包括工作负荷分类逻辑256(其可以包括机器学习逻辑或与机器学习逻辑相关联)以对正在被执行的工作负荷进行分类并且至少部分地基于分类来执行对多个核和/或性能状态的动态控制,如本文中所描述的。
此外,通过接口250a-250n,可完成向诸如外围设备、大容量存储设备等的各种芯片外组件的连接。尽管在图2的实施例中以此特定实现示出,但是本发明的范围不限于该方面。
现在参考图3,所示出的是根据本发明的另一实施例的多域处理器的框图。如图3的实施例中所示,处理器300包括多个域。具体而言,核域310可以包括多个核3100–310n,图形域320可以包括一个或多个图形引擎,并且还可以存在系统代理域350。在一些实施例中,系统代理域350能以独立于核域的独立频率执行,并且可在全部的时刻保持被供电以处理功率控制事件和功率管理,使得可以控制域310和320动态地进入和退出高功率状态和低功率状态。域310和320中的每一个能以不同的电压和/或功率操作。注意,虽然仅以三个域示出,但是应理解,本发明的范围不限于此方面,并且附加的域可存在于其他实施例中。例如,多个核域可存在,每一个核域包括至少一个核。
一般而言,除各种执行单元和附加的处理元件之外,每个核310还包括多个低层级高速缓存。进而,各种核可彼此耦合,并且耦合到共享高速缓存存储器,该共享高速缓存存储器由末级高速缓存(LLC)3400–340n的多个单元形成。在各实施例中,可在多个核与图形引擎以及各种媒体处理电路之间共享LLC 340。如所示,环形互连330由此将多个核耦合到一起,并且在多个核、图形域320和系统代理电路350之间提供互连。在一个实施例中,互连330可以是核域的部分。然而,在其他实施例中,该环形互连可以是其自身域中的。
如进一步所示,系统代理域350可包括显示控制器352,该显示控制器352可提供对相关联的显示器的控制以及到它的接口。如进一步所示,系统代理域350可以包括功率控制单元355,功率控制单元355可以包括工作负荷分类逻辑356(其本身包括机器学习逻辑)以执行基于工作负荷分类的线程迁移和功率控制技术,如本文中所描述的。
如图3中进一步所示,处理器300还可包括集成存储器控制器(IMC)370,其可提供到诸如动态随机存取存储器(DRAM)之类的系统存储器的接口。可以存在多个接口3800–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中的重排序缓冲器、ILTB 420、加载/存储缓冲器和队列之类的一些资源。可潜在地完全共享诸如通用内部寄存器、页表基寄存器、低层级数据高速缓存和数据TLB 415、执行单元440和乱序单元435的多个部分之类的其他资源。
处理器400通常包括其他资源,它们可被完全共享,可通过分区被共享,或可由处理元件专用/专用于处理元件。在图4中,示出具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省略这些功能单元中的任何单元,并包括未描绘出的任何其他已知的功能单元、逻辑或固件。如所示出的那样,核401包括简化的、代表性的乱序(OOO)处理器核。但是,在不同实施例中,可利用有序处理器。OOO核包括用于预测要被执行/进行的分支的分支目标缓冲器420以及用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)420。
核401还包括耦合至取出单元420以用于解码所取出的元素的解码模块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的实现方式涉及了诸如具有
Figure BDA0001365762110000141
x86指令集架构(ISA)的乱序机器,但本发明的范围在此方面不受限制。即,其他实施例可在以下处理器中实现:有序处理器;诸如基于ARM的处理器的精简指令集计算(RISC)处理器;或具有另一类型ISA的处理器,该另一类型的ISA可经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作。
现在参照图6,所示为根据另一实施例的处理器核的微架构的框图。在图6的实施例中,核600可以是具有不同的微架构的低功率核,诸如设计为降低功耗的具有相对受限制的流水线深度的
Figure BDA0001365762110000142
基于凌动TM(AtomTM)的处理器如所示,核600包括耦合以将指令提供到指令解码器615的指令高速缓存610。分支预测器605可以耦合到指令高速缓存610。注意,指令高速缓存610可以进一步耦合到高速缓存存储器的另一层级,诸如L2高速缓存(为了易于说明,图6中未示出)。进而,指令解码器615将经解码的指令提供到发出队列602以供存储和传递到给定的执行流水线。微代码ROM 618耦合到指令解码器615。
浮点流水线630包括浮点寄存器堆632,其可包括具有给定位(诸如128、256或512位)的多个架构寄存器。流水线630包括浮点调度器634,用于调度指令以在流水线的多个执行单元之一上执行。在所示的实施例中,此类执行单元包括ALU 635、混洗单元636和浮点加法器638。进而,在这些执行单元中生成的结果可以被往回提供到缓冲器和/或寄存器堆632的寄存器。当然,应理解虽然以这几个示例执行单元示出,但是在另一实施例中可以存在附加的或不同的浮点执行单元。
还可以提供整数流水线640。在所示的实施例中,流水线640包括整数寄存器堆642,其可包括具有给定位(诸如128或256位)的多个架构寄存器。流水线640包括整数调度器644,用于调度指令以在流水线的多个执行单元之一上执行。在所示的实施例中,此类执行单元包括ALU 645、移位器单元646和跳转执行单元648。进而,在这些执行单元中生成的结果可以被往回提供到缓冲器和/或寄存器堆642的寄存器。当然,应理解虽然以这几个示例执行单元示出,但是在另一实施例中可以存在附加的或不同的整数执行单元。
存储器执行调度器650可以调度存储器操作以在地址生成单元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。可以将这些不同的执行单元的结果提供到写回单元780。应理解,虽然为了便于说明示出单个写回单元,但是在一些实现中,分开的多个写回单元可以与执行单元中的每一个相关联。此外,应理解,虽然图7中示出的单元中的每一个和逻辑被表示为在高层级,但是特定实现可以包括多个或不同的结构。可以在许多不同的最终产品(从移动设备扩展到服务器系统)中实现使用一个或多个具有如图7中的流水线的核来设计的处理器。
参照图8,所示为根据再一实施例的处理器核的微架构的框图。如图8所示,核800可以包括多级多发出乱序流水线以在非常高性能水平处执行(其可在高于图7的核700的功耗水平处发生)。作为一个此类示例,处理器800可以具有根据ARM Cortex A57设计的微架构。在实现中,可以提供配置为执行32位和64位代码的15(或更大)级流水线。此外,流水线可以提供3路(或更大)宽度和3路(或更大)发出操作。核800包括取出单元810,取出单元810配置为取出指令并将这些指令提供到解码器/重命名器/分派器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可以是基于
Figure BDA0001365762110000171
架构核TM的处理器(诸如,i3、i5、i7)或可从英特尔公司得到的另一个此类处理器。然而,诸如可从加利福尼亚州桑尼威尔的超微半导体有限公司(AMD)得到的、来自ARM控股有限公司或其被许可方的基于ARM的设计的、或来自加利福尼亚州桑尼威尔的MIPS技术公司或它们的被许可方或采用者的基于MIPS的设计之类的其他低功率处理器可替代地存在于诸如苹果A7处理器、高通骁龙处理器或德州仪器OMAP处理器之类的其他实施例中。此类SoC可用于诸如智能电话、平板计算机、平板手机计算机、超极本TM计算机或其他便携式计算设备之类的低功率系统中。
在图9所示的高层级视图中,处理器900包括多个核单元9100-910n。每一个核单元都可包括一个或多个处理器核、一个或多个高速缓存存储器和其他电路。每一个核单元910都可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);MIPS指令集;ARM指令集(具有诸如NEON的可选附加扩展))或其他指令集或其组合。注意,核单元中的一些可以是异构资源(例如,具有不同设计)。此外,每一个此类核可耦合到高速缓存存储器(未示出),在实施例中,该高速缓存存储器可以是共享层级(L2)高速缓存存储器。可使用非易失性存储器930来存储各种程序和其他数据。例如,可以使用该存储设备来存储微代码的至少多个部分、诸如BIOS之类的引导信息、其他系统软件等。
每一个核单元910还可包括诸如总线接口单元之类的接口,其用于实现向处理器的附加电路的互连。在实施例中,每一个核单元910都耦合到一致性结构,该一致性结构可充当进而耦合到存储器控制器935的主高速缓存一致性管芯上互连。存储器控制器935转而控制与诸如DRAM之类的存储器(为了易于说明,在图9中未示出)的通信。
除这些核单元之外,附加的处理引擎也存在于该处理器内,包括至少一个图形单元920,该图形单元920可包括用于执行图形处理以及可能在图形处理器上执行通用操作(所谓的GPGPU操作)的一个或多个图形处理单元(GPU)。此外,可以存在至少一个图像信号处理器925。信号处理器925可配置成用于处理从一个或多个捕捉设备(无论是SoC内部的还是芯片外的)接收到的传入的图像数据。
也可以存在其他加速器。在图9的示图中,视频译码器950可执行译码操作,包括对于视频信息的编码和解码,例如,提供对高清晰度视频内容的硬件加速支持。可进一步提供显示控制器955以加速显示操作,包括提供对系统的内部和外部显示器的支持。此外,可以存在安全处理器945,其用于执行诸如安全引导操作、各种加密操作等的安全操作。
多个单元中的每一个可以经由功率管理器940控制其功耗,功率管理器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。在不同的实施例中,这些核可以基于
Figure BDA0001365762110000191
架构TM核设计或ARM架构设计。在另一些实施例中,可在给定的SoC中实现英特尔核和ARM核的混合。
如图10中所示,SoC 1000包括具有多个第一核10120–10123的第一核域1010。在示例中,这些核可以是诸如有序核之类的低功率核。在一个实施例中,可将这些第一核实现为ARM Cortex A53核。这些核转而耦合到核域1010的高速缓存存储器1015。此外,SoC 1000包括第二核域1020。在图10的示图中,第二核域1020具有多个第二核10220–10223。在示例中,这些核可以是比第一核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耦合至SoC 1310以提供显示能力和经由触摸的用户输入,包括在触摸面板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的各种组件中的许多组件进行通信的中央枢纽。作为一个示例,处理器1400被实现为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和蓝牙单元1452。通过使用WLAN单元1450,可以实现Wi-FiTM通信,而通过蓝牙单元1452,可以发生短距离蓝牙TM通信。这些单元可以经由给定的链路与处理器1410通信。
另外,无线广域通信(例如,根据蜂窝式或其他无线广域协议)可以经由WWAN单元1456进行,该WWAN单元1456进而可以耦合到订户身份模块(SIM)1457。另外,为了允许接收并使用位置信息,还可以存在GPS模块1455。注意,在图14中示出的实施例中,WWAN单元1456和诸如相机模块1454的集成捕捉设备可以经由给定的链路进行通信。
集成相机模块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或其他功率管理逻辑,用于执行如本文中所描述的基于处理器的功率管理,包括工作负荷分类和动态线程迁移以及至少部分地基于工作负荷分类和动态线程迁移的核性能控制。
仍参考图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/O 1524可以被耦合到第二总线1520。可将多个实施例合并到其他类型的系统中,包括诸如智能蜂窝电话、平板计算机、上网本、超极本TM等之类的移动设备。
在实施例中,预测逻辑适于确定最优功率配置,并且控制逻辑适于应用被确定的功率配置。预测逻辑通过读取性能/能量计数器来周期性地收集输入统计信息,并且然后使用智能模型来估计当前状态并且预测下一最优功率配置。在实施例中,控制逻辑通过线程迁移和动态电压和频率缩放将该功率控制决定应用到底层系统。在一些实施例中,可以存在专用于存储器密集型工作负荷的一个或多个异构核。线程可以迁移到此类核以在存储器约束阶段节省更多能量。硬件线程迁移技术可以用于在偏向计算的核与偏向存储器的核之间迁移线程,从用户应用和操作系统的角度来看,其不涉及任何软件干预。
因为计算约束的工作负荷和存储器约束的工作负荷具有非常不同的系统要求,因此模型解决了分类问题。给定在当前时间样本处的一组功率配置参数(例如,核的数量、线程的数量、时钟频率和电压)和运行时统计信息(例如,各种性能/能量计数器),目标是找到最优功率配置以使下一时间间隔的性能和能效最大化。在不同的实施例中,可以使用两种类型的预测模型,专家试探法和机器学习。
现在参考图16,所示为根据本发明的实施例的功率控制逻辑的框图。如图16所示,可以由硬件、软件和/或固件的组合形成的功率控制逻辑1600可以被实现为处理器的较大的功率控制单元(诸如PCU)的一部分。此类PCU本身进而可以实现为一个或多个微控制器或其他控制逻辑。在所示的实施例中,功率控制逻辑1600包括性能特性缓冲器1610。如本文中所描述的,缓冲器1610可以配置为存储传入性能特性,例如,从处理器和/或具有此类处理器的系统的各种核和其他逻辑的性能/能量计数器获得的传入性能特性。
进而,将特性信息提供给预测逻辑1620。在不同的实现中,可以存在不同类型的预测逻辑。如本文中所描述的,此类逻辑可以包括基于专家试探法和/或机器学习的一个或多个模型。从关于当前处理器操作的传入特性信息,预测逻辑1620可以生成功率配置定义。此类定义可以用于为下一操作间隔定义适当的处理器操作控制。在实施例中,此类功率配置定义信息可以包括在下一操作间隔中会是活动的多个核、会被调度到此类核的对应线程、以及被选择的核会在其下操作的电压/频率。
如所示,该功率配置定义信息被提供给控制逻辑1630,控制逻辑1630可以配置为在下一操作间隔中实施该定义。由此,控制逻辑1630可以配置为将控制信息提供到各种处理器实体,包括诸如一个或多个锁相环的时钟发生器、诸如集成电压调节器的一个或多个电压调节器等等。此外,控制信息可以被提供到各个核以指示在下一操作间隔中给定的核会被上电还是断电。如果核会被断电,则核可以采取各种动作,包括将其状态保存到合适的存储以使得核能进入被请求的低功率状态、选通一个或多个时钟信号以及选通一个或多个功率门。对于在下一操作间隔中会变为上电的核,此类控制可以包括非选通一个或多个时钟信号、非选通一个或多个功率门以及从给定的存储恢复核的状态。当然,应理解在各种实施例中,会发生使此类核进入和退出低功率状态的附加操作。此外,应理解在不同实现中,可以存在各种不同配置的功率控制逻辑。
对于专家试探法模型,专家标识工作负荷和系统的最相关的参数、创建预测模型以对计算或存储器约束的工作负荷进行分类、以及向用于被标识的工作负荷的最高能效的配置导航。例如,可以使用两个直观试探法模型。由于设计的复杂度,试探法仅可选择作为设计空间探索中的最流行的配置的特征的许多可能的参数的子集,称为热状态。
对于简单的分类试探法模型(H1),可以使用两个参数来作出决定,例如,指令每秒(IPS)和存储器带宽(memBW)。IPS是核利用率的指示器,而memBW直接示出存储器占用率。具有低IPS和高memBW的工作负荷被分类为存储器约束的,而高IPS和低memBW的工作负荷被分类为计算约束的。高和低的阈值是可调节的,例如,在一些实施例中由用户调节。决定策略可以是如下:为存储器约束的工作负荷实现弱功率配置(较少核/线程和较低电压/频率),以及为计算约束的工作负荷实现强功率配置(其可以是基准配置)。
反馈分类试探法模型(H2)首先类似于H1对工作负荷进行分类。并且,每种分类具有优选的动作;例如,存储器约束的工作负荷将使得较弱的配置被实现(首先较少核/线程,然后较低电压/频率),而计算约束的应用将使得较强配置被实现。混合的工作负荷具有变得更弱或更强的某些可能性。然后,能效度量(EE)被计算为IPS*IPS/PCL以估计当前能效,其中PCL是从主要功率组件导出的估计的功耗水平(诸如泄漏)。基于来自上一动作的正或负的EE反馈,作出是采取优选的动作、采取与上一动作相同的动作、还是什么都不做的新的决定。
一组综合的运行时工作负荷和系统统计信息可以大到数百个或数千个特征,诸如许多队列结构的占用率、每个功能性单元的利用率等等。为了考虑所有这些组合,设计空间爆炸式地增长。因此,实施例可以使用机器学习技术以用于数据处理和作出决定。
在机器学习模型中,可以包括运行时统计信息作为属性。多维记录是在采样时间期间所有属性的平均统计值的集合。对于每个时间间隔的最高能效配置被分派具有核、线程、电压和频率的信息的标签。模型预测下一最优功率配置。
在机器学习训练过程中,可以从大量数据中标识某些性能/能量特性,并且这些性能/能量特性用于作出智能的、自动的决定。离线训练过程采用在给定时间的大维度工作负荷/系统统计信息作为输入,以预测最佳功率配置。离线训练过程可以生成一组系数(或权重),该一组系数(或权重)可以被编程到功率控制器中(例如,通过存储在非易失性存储器中)以便实时地使用。
因此在设计或配置过程中,发生离线数据收集。在设计阶段期间和/或在制造后可以例如由处理器设计者来执行该离线数据收集过程。在该过程中,可以执行(和/或仿真)各种不同的工作负荷,诸如代表性基准工作负荷,以实现对处理器上的工作负荷的表征(由性能和能量参数信息确定)。在一些情形中,可以使用大量基准工作负荷来适当地训练机器学习分类器。
在示例中,在对代表性工作负荷的离线数据收集期间,标识多个工作负荷阶段,并且在每个工作负荷阶段期间,可以为特定功率配置生成数据点。然后执行对所有可能的配置的穷举搜索,以收集一组代表性工作负荷数据。所计算的性能和能量用于预处理最佳能效配置,同时可以实施性能下降约束以过滤过多性能牺牲。然后,每个数据点被标记为其最佳配置名称以用于稍后被监督的学习过程。
在不同的实施例中,可以考虑一组给定的相关属性。在一个实施例中,这些属性包括IPS、memBW、平均往返存储器等待时间(memLat)、存储器指令百分比(memInst)、浮点指令百分比(FPinst)、ALU指令百分比(ALUinst)、待决输出存储器请求队列百分比(memQ)以及末级高速缓存未命中率(LLCMiss)。此类属性可以最佳地代表工作负荷行为并且有效地帮助减少性能/能量计数器的数量。
在不同的实施例中,可以使用各种被离线监督的模型。在一个示例中,具有脊估计器的多类逻辑回归模型可以用于测量多于两类相关的或独立的变量之间的关系,这些变量呈现良好的准确度和简单的实现。在另一示例中,可以使用多层感知器。该模型是使用反向传播的人工神经网络分类器,其可以适用于具有非线性行为的大量数据。这些节点都是sigmoid(逻辑函数)并且具有至少三层。输入层采用所有被选择的属性,而输出层产生最优功率配置。作为另一示例,可以使用决策树模型,其保持如流程图的树结构,其中树叶代表标签(所有可能的最优配置),而树枝是属性的结合。在树的每一节点,选择属性以有效地将数据点分成一类和另一类中的子集。
一旦模型被训练,它们被实现至功率控制器中以用于在线预测。在运行时,收集对应于所选择的属性的性能/能量计数器,并且经训练的机器学习模型预测下一最优功率配置。为了改善准确度,可以使用运行时反馈机制,并且可以无视用于更新功率配置的机器学习决定而不采取动作。由于机器学习模型可能在若干功率配置之间非常频繁地来回切换,这因此导致高切换开销。用于历史跟踪的饱和计数器可以用于避免此类过于敏感的反应。此外,机器学习模型可能倾向于选择高节能但牺牲过多性能,尤其对于计算约束的工作负荷,其中较弱系统资源直接与性能相关联。每个核的IPS历史寄存器可以用于检测由于功率配置变化的突然性能降低。
控制逻辑负责将最优功率控制决定应用到底层系统,其涉及硬件控制(例如,电压和频率缩放)和软件控制(例如,核和线程映射)。在不同的实施例中,可以使用各种线程映射机制。
在一个实施例中,可以修改软件层(用户应用、运行时间库和/或操作系统)。预测逻辑提供接口以传递最优功率控制决定,然后软件经由用户水平线程操作执行(分叉/结合)、诸如Posix线程等的动态运行时间库、任务队列调度器或操作系统线程迁移来调节线程到核映射。
可以提供应用编程接口(API),使得用户应用或运行时间库可以直接访问功率控制器以检索最优功率配置决定。如果改变功率配置更好,则应用或运行时调节线程-核映射。
例如,如果应用具有大的并行循环,则编程器或编译器可以将循环分成多段,并且插入功率查询和线程管理API调用,以获得每段的最优配置并且相应地使下一段并行化。诸如OpenMP的运行时框架和任务队列将免除用户应用的编程开销。例如,当用户应用使具有OpenMP的循环并行化时,运行时可以调用功率查询API以获得循环的最优配置,并且经由线程固定(pinning)API适当地管理线程和核。任务队列库也可以应用类似的方法。任务队列调度器可以用于基于最优功率决定来自动地迁移任务。
另一机制是扩充操作系统来为所有用户应用提供线程管理。操作系统周期性地与功率控制器交互并且获得最优配置。操作系统然后将软件线程调度到合适的硬件上下文。例如,假设用户应用在四个核上运行八个线程;每个核两个线程,但是操作系统被通知单个核是最优配置。然后,操作系统将所有八个线程仅分派到一个核上,即使全部四个核是可用的。操作系统将六个线程从其他三个核迁移到被选择的一个核,并且关闭未被占用的三个核以节能。
实施例还可以使用透明线程迁移。在一些情形中,处理器可以包括异构核,包括偏向计算的核与存储器优化的核。此类设计是基于单个核架构不能同时为计算约束的工作负荷和存储器约束的工作负荷优化的观察。例如,常规多处理器通常为目标是在高频率运行的许多核计数的计算工作负荷而优化。然而,在主要等待存储器访问的阶段期间,此类多处理器可能不是能量高效的。因此,可以提供在低频率运行的专用于存储器密集的阶段的一个或多个核(偏向存储器或存储器优化的核)以使存储器资源饱和,提供与在许多计算核的情形下的存储器性能相同的存储器性能。
线程迁移机制可以用于在两种类型的核之间以对于软件透明的方式切换执行,软件包括用户应用和操作系统。例如,假设系统具有一个存储器优化的核和四个计算优化的核。如果每个计算核能够进行两路SMT,则存储器优化的核配备有总共八个硬件上下文。存储器优化的核上下文只对硬件可见,并且对软件完全隐藏。以及,到存储器优化的核上下文上的线程迁移仅由硬件处理。硬件处理器在计算核与存储器优化的核之间克隆完全相同的线程上下文,并且然后静默地在新核上恢复执行。即使是操作系统也不能检测到底层线程迁移。此外,因为存储器优化的核只是相同高速缓存一致性域上的另一核,所以它完全不会引入任何存储器一致性问题,虽然它可能遭受来自上下文迁移的数据迁移开销。注意,存储器优化的核架构提供优化能效的新机会。因为只有存储器密集的工作负荷在其上执行,所以它的架构可以是极度专用的,以实现比通用核高一个数量级的效率。在一些情形中,存储器优化的核实现与计算核相同的ISA。
现在参考图17,所示为根据本发明的另一实施例的包括硬件功率控制逻辑的处理器的框图。如图17所示,处理器1700是多核处理器,在特定实现中,多核处理器可以是具有各种核的SoC,各种核包括至少一些具有不同计算和存储器能力的异构核。如此,通过对活动核的适当控制,可以在核中分配工作负荷以提供功率和性能的高效混合。如所示,处理器1700包括多个核17100–1710n。在不同的实施例中,这些核可以是有序核和乱序核以及偏向计算的核和一个或多个偏向存储器的核的混合,以提供在高效和低核功率处的存储器约束的操作。
如图17进一步所示,核1710耦合到高速缓存存储器1720,其在实施例中可以被实现为诸如末级高速缓存的共享高速缓存存储器。此外,处理器1700可以包括内部存储器1730,内部存储器1730诸如可以位于多管芯处理器封装的单个管芯上。
在操作期间,被包括在各种核内的性能/能量计数器可以配置为将特性信息提供到功率控制器1750。在各种实施例中,功率控制器1750可以被实现为PCU,PCU包括用于执行如本文中所描述的基于模型的功率控制的专用硬件逻辑。
在图17的示图中,功率控制器1750包括特性缓冲器1760,特性缓冲器1760可以存储从各种核传入的信息。虽然本发明的范围不限于此方面,但是此类性能/能量特性可以包括指令每周期信息、指令混合信息、加载/存储队列信息、高速缓存命中/未命中信息、存储器等待时间信息和存储器带宽信息等等。
如所示,缓冲器1760耦合到性能/能量模型逻辑1770,性能/能量模型逻辑1770可以基于传入特性信息来确定性能和能量预测。在不同的实施例中,性能/能量模型逻辑1770可以包括用于实现给定的模型(诸如基于专家试探法的模型、基于机器学习的模型和/或其组合)的硬件。仍然参考图17,注意,性能/能量逻辑1770进一步接收来自配置存储1780的输入。一般而言,配置存储1780包括关于可能的操作特性的信息,包括活动核的数量(例如,从0到n)和给定数量的活动核的电压/频率对。在其中性能/能量逻辑1770是基于试探法的逻辑的实施例中,配置存储1780可以进一步提供试探法存储来存储具有多个条目的一个或多个查找表,条目中的每一个可以用于存储与特定工作负荷分类和对应的功率配置相关联的工作负荷特性信息。在其中性能/能量逻辑1770是基于机器学习的逻辑的实施例中,配置存储1780可以进一步提供训练模型参数存储(例如,经由非易失性存储)来存储具有多个条目的一个或多个查找表,条目中的每一个可以用于存储在离线训练过程期间获得的训练模型参数。
在一些实施例中,机器学习和试探法方法两者的模型可以被实现为包括输入参数(工作负荷特性,诸如IPS等等)和用于为每个参数提供权重的一组系数的等式。等式可以用于计算代表用于下一操作间隔的处理器的最优配置状态的数值。该值可以用作具有不同配置参数的表的索引。在这些情形中,配置存储1780为每个参数提供系数的表。一般而言,该等式(或该等式的格式)是固定的。因此,只有系数可以变化。在试探法方法中,当在制造期间时,系数是固定的。在机器学习方法中,在离线训练期间获得系数并且将系数编程到存储中。当操作时,可以基于机器学习在线更新系数。
仍然参考图17,功率控制器1750进一步包括功率配置选择器1790,功率配置选择器1790可以接收对下一操作间隔的给定的性能能量预测并且确定合适的下一功率配置以将操作控制提供到用于下一操作间隔的核1710。在图17示出的实施例中,功率配置选择器1790包括历史逻辑1792、影响逻辑1794和更新逻辑1795。
一般而言,历史逻辑1792可以配置为对传入预测进行分析并且基于短期和/或长期历史确定预测是否是合适的以及是否应提供该预测以控制用于下一操作间隔的核。例如,在用于实现减少数量的核的配置变化发生之前,可以连续地作出对特定配置(例如,减少数量的核)的多个预测(例如,3个或多个)。在必要时,历史逻辑1792通过参考历史状态还可以用于避免对功率管理的过于敏感的控制。在一个实施例中,历史逻辑1792可以经由计数器(例如,2位饱和的计数器)对每个可能的决定实现迟缓的切换方案。例如,当作出功率选通决定时,该计数器递增。只有当在预定数量的连续时间间隔(例如,3个)期间(参考计数器)作出相同决定时,才执行功率配置更新。在其他情形中,历史逻辑1792可以实现用于记录先前功率配置决定和系统状态的历史表。
影响逻辑1794可以配置为确定预测和配置更新对处理器的功率和/或性能的影响以及限制或阻止将预测作为控制提供到核。
如图17进一步所示,功率配置选择器1790进一步包括更新逻辑1795。更新逻辑1795可以确定是否基于近的过去决定(例如,参考历史表中的条目)和远的过去决定(经由长期累积函数)来实现功率配置更新。因此,更新逻辑1795可以配置为通过基于对实际应用中的处理器的实际利用来更新训练模型参数,在处理器操作的寿命期间(从处理器的最初引导经过多个引导周期(并且可能是许多年的操作))执行自我学习。请理解,尽管在该高级别下示出图17的示图,但是许多变型和替代是可能的。
现在参考图18,所示为根据本发明的实施例的用于控制处理器的功耗的方法的流程图。在图18示出的实施例中,可以通过硬件、软件和/或固件的合适的组合(诸如本文中所描述的硬件功率控制逻辑,其可以被实现为功率控制器的一部分,其本身被实现为一个或多个微控制器)来执行方法1800。在一个实施例中,可以由实现了基于试探法的模型的模型逻辑来执行方法1800。如所见,方法1800通过接收工作负荷特性信息而开始(框1810)。如所描述的,可以从处理器的各种核和其他逻辑的性能/能量计数器接收此类信息。此外,还接收配置和功率状态信息(框1820)。该配置信息可以对应于当前操作间隔中的多个被活动供电的核及其功率状态(例如,核在其下操作的给定的功率水平)。在一些实施例中,功率状态信息可以进一步包括性能状态信息,其可以对应于核在其下操作的特定电压/频率水平。在一些情形中,核的性能状态可以处于被保证的操作频率(其是处理器保证操作的最大操作频率)、超频频率(其是高于该被保证的频率的投机操作频率)或有效频率水平,其是低于被保证的频率的操作频率。
仍然参考图18,下一控制传递到框1830,其中可以对工作负荷进行分类。更具体地,可以基于所接收的工作负荷特性信息和功率状态信息中的一些或全部对工作负荷进行分类。在高水平,可以确定该工作负荷分类在有限量的可能水平中的一个,包括存储器约束的水平、计算约束的水平或典型操作水平,典型操作水平通常可以对应于在存储器约束的水平与计算约束的水平之间操作的工作负荷。控制接下来传递到菱形1835以确定工作负荷是否是存储器约束的。虽然本发明的范围不限于此方面,但是在实施例中对工作负荷存储器约束的确定可以基于从操作中的各种核获得的等待时间信息、与存储器带宽相关联的带宽信息等的聚集。
如果确定工作负荷不是存储器约束的,则控制直接传递到框1850,其中可以保持当前设定。由此,在下一操作间隔中,相同数量的核可以被上电,并且这些核可以在当前频率和电压水平继续执行当前线程。
相反,如果确定工作负荷是存储器约束的,则控制从菱形1835传递到框1840,其中可以生成配置预测。更具体地,该配置预测可以用于具有减少的核活动的场景,因为一个或多个当前活动的核可以被掉电和/或计算密集的核可以被掉电以支持一个或多个存储器密集的核,以实现对存储器约束条件的改善处理。控制接下来传递到菱形1845以确定配置预测与历史信息是否一致。此类确定可以基于指示先前预测的适当性的历史信息。如果预测不是一致的,则控制传递到框1850,其中可以保持当前设定。注意,在一些情形中,除了该历史分析之外,还作出关于预测的配置是否将不利地影响性能的确定。例如,如果配置预测如果被实现将使得性能惩罚增加大于阈值水平(例如,5%),则可以不实现新配置,并且控制因此传递到框1850。
如果相反,确定配置预测与历史信息一致(和/或未被预测为不利地影响性能超过阈值水平),则控制传递到框1860,其中可以将在下一操作间隔中会被执行的线程调度/重新调度到减少数量的核。例如,可以将当前在会被掉电的核上执行的线程重新调度到会保持为上电的核。这是各种实施例中的情形,核可以是多线程的,使得多个线程可以同时在单个核上执行,例如,经由多个逻辑处理器,其提供合适的硬件线程资源以实现同时执行。在其他情形中,可以将线程从某些活动核重新调度到其他活动核以更好地适应和提供高效操作(诸如从计算核移动到偏向存储器的核)。下一控制传递到框1870,其中可以更新核的功率状态。即,将各种控制信号发送到核、时钟发生器、电压调节器等以实现对给定核的适当的激活/去激活。此后,操作在下一间隔操作间隔中发生,其中线程在活动核上执行(框1880)。请理解,尽管在该高级别下示出图18的实施例,但是许多变型和替代是可能的。
现在参考图19,所示为根据本发明的另一实施例的用于控制处理器的功耗的方法的流程图。如图19所示,可以通过硬件、软件和/或固件的合适的组合(诸如本文中所描述的硬件功率控制逻辑)来执行方法1900。在一个实施例中,可以由实现基于机器学习的模型的模型逻辑来执行方法1900。方法1900通过接收例如来自处理器内的性能/能量计数器的工作负荷特性信息而开始(框1910)。此外,还接收配置和功率状态信息(框1920)。该配置信息可以对应于当前操作间隔中的多个被活动供电的核及其功率状态。
接下来,控制传递到框1930,其中可以基于工作负荷特性和功率状态信息从配置存储获得训练模型参数。更具体地,机器学习控制逻辑可以基于工作负荷特性信息和功率状态信息来执行对工作负荷的分类以获得训练模型参数。这些参数可以对应于给定类型的被分类的工作负荷,诸如计算约束的、存储器约束的、典型工作负荷等等。此外,考虑到基于机器学习分类器的逻辑的更高的计算能力(相比于基于试探法的逻辑),可以发生对工作负荷水平的更细粒度的分析和分类。由此,除了计算约束的、存储器约束的和典型分类之外,除了多个水平的正常操作分类之外,还可以对多个水平的计算约束的分类、多个水平的存储器约束的分类进行标识和分类。
仍然参考图19,控制传递到框1940,其中可以从训练模型参数中生成配置预测。注意,在一些情形中,在更新功率配置之前,机器学习逻辑可以估计由于先前采取的动作的长期和短期性能/能量影响。在实施例中,在功率控制器中实现两个回报函数以用于短期和长期影响估计。例如,如果总回报值(短期和长期回报的加权组合)指示模型正在作过于激进的预测(并且不利地影响性能),则该功率配置更新不发生。此外,如所描述的,关于图20,可以发生自我学习,其中可以通过将训练模型参数更新为例如关于性能影响更保守来调节训练模型参数。此后,控制传递到框1950,其中可以将线程调度(和重新调度,如果需要的话)到确定数量的核。在一些实施例中,可以按对OS或其他软件透明的硬件方式来执行此类线程调度。在其他情形中,OS本身可以对指示数量的核执行线程调度。
控制接下来传递到框1960,其中可以更新核的功率状态。例如,将各种控制信号发送到核、时钟发生器、电压调节器等以实现对给定核的适当的激活/去激活。此后,操作在下一间隔操作间隔中发生,其中线程在活动核上执行(框1970)。请理解,尽管在该高级别下示出图19的实施例,但是许多变型和替代是可能的。
应理解,根据本申请的实施例的机器学习逻辑提供基于机器的自我学习的能力,使得可以例如由操作包括在处理器的寿命期间具有大致相似的工作负荷的处理器的系统的特定终端用户,基于对实际应用中的处理器的实际利用,来更新训练模型参数的基准(例如,制造处理器时提供的)。此外,由于处理器的工作负荷和利用在其寿命中变化,可以基于此类自我学习来更新这些训练模型参数,以在处理器的寿命期间实现被优化的性能和功率管理。
现在参考图20,所示为根据本发明的实施例的用于更新训练模型参数的方法的流程图。如图20所示,可以通过硬件、软件和/或固件的合适的组合(诸如本文中所描述的实现基于机器学习的模型的硬件功率控制逻辑)来执行方法2000。
如所示,方法2000通过估计被分析的工作负荷的先前配置预测的性能/能量影响而开始(框2010)。作为示例,该影响可以关于由减少数量的活动核(和/或降低的核操作的频率)引起的性能损失。接下来,控制传递到菱形2020以确定该影响是否大于第一影响阈值。例如,在一些实施例中,该影响阈值可以是高影响阈值,并且可以被设置在预定水平,例如,按性能损失的百分比测量的性能影响。作为示例,该阈值水平可以小于约10%的性能损失。如果确定影响大于第一影响阈值,则控制传递到框2030,其中可以更新一个或多个训练模型参数。更具体地,对于被分析的特定工作负荷类型,可以更新一个或多个训练模型参数以限制在训练模型参数中标识的功率管理配置的性能影响。由此,在处理器寿命中发生动态的机器或自我学习,从而可以实现性能和功率管理的适当的平衡。
仍然参考图20,如果相反,确定在框2020处影响不大于该第一影响阈值,则控制接下来传递到菱形2040以确定影响是否小于第二影响阈值。作为示例,在实施例中,该第二影响阈值可以是低影响阈值,并且可以被设置为不同的预定水平,例如,小于约2-3%的性能损失。如果确定影响高于该阈值,则不发生更新或自我学习,因为存在用于当前执行的合适的训练模型参数。否则,如果确定影响小于第二影响阈值,则控制传递到框2050,其中可以更新一个或多个训练模型参数。更具体地,对于被分析的特定工作负荷类型,可以更新一个或多个训练模型参数以通过在训练模型参数中标识的功率管理配置来提供进一步的功率节约控制。由此,在处理器寿命中发生动态的机器或自我学习,从而可以实现性能和功率管理的适当的平衡。请理解,尽管在该高级别下示出图20的实施例,但是许多变型和替代是可能的。
基于实现的特定模型逻辑(和在处理器寿命期间执行的自我学习),许多存储器约束的和计算约束的工作负荷可以在较少的活动计算资源和/或较低频率的情况下实现最优性能和能效。通过为每个特定工作负荷标识和选择最优配置,实施例可以提供约4倍的节能,同时保持性能损失在小于约5%内。
以下示例关于进一步的实施例。
在一个示例中,处理器包括:用于独立地执行指令的多个核,多个核中的每一个包括用于存储性能信息的多个计数器;以及耦合到多个核的功率控制器。功率控制器可以包括逻辑,用于从多个计数器中的至少一些中接收性能信息,至少部分地基于性能信息和模型信息确定下一操作间隔中会是活动的核的数量以及该数量的核的性能状态,以及使得该数量的核在下一操作间隔期间是活动的,其中性能信息与工作负荷在多个核中的一个或多个上的执行相关联。
在示例中,处理器进一步包括配置存储,配置存储具有多个条目,多个条目中的每一个用于存储会被启用的核的数量以及该数量的核会在其下操作的一对或多对电压/频率。
在示例中,逻辑耦合到配置存储以访问多个条目中的一个或多个以及至少部分地基于多个条目中的一个或多个确定下一操作间隔中会是活动的核的数量。
在示例中,逻辑用于至少部分地基于性能信息对工作负荷进行分类以及基于工作负荷分类确定下一操作间隔中会是活动的核的数量。
在示例中,如果工作负荷分类指示存储器约束的工作负荷,则逻辑用于确定下一操作间隔中会是活动的核的数量会小于活动的核的当前数量。
在示例中,如果工作负荷分类指示存储器约束的工作负荷,则逻辑用于使得一个或多个线程被从第一类型的核迁移到第二类型的核以用于下一操作间隔。
在示例中,逻辑包括试探法逻辑,并且模型信息会被从处理器的试探法存储获得以存储与工作负荷相关联的功率配置信息。
在示例中,逻辑包括机器学习逻辑,并且模型信息包括在处理器的制造期间会被存储在处理器的存储中的训练信息。
在示例中,机器学习逻辑包括更新逻辑,更新逻辑用于在处理器的寿命期间基于处理器的操作的历史和机器学习逻辑的一个或多个配置预测来更新训练信息的至少一些。
在示例中,逻辑包括历史逻辑,历史逻辑用于接收对在下一操作间隔中会是活动的核的数量的预测,以及用于基于先前预测的历史使得逻辑能使得该数量的核在下一操作间隔中是活动的。
在示例中,历史逻辑包括计数器,计数器用于保持在下一操作间隔中会是活动的第一数量的核的多个连续预测的计数,其中历史逻辑用于当计数超过阈值时使得逻辑能使得第一数量的核在下一操作间隔中是活动的,以及否则使得第一数量的核在下一操作间隔中不能是活动的。
在示例中,逻辑用于如果工作负荷在确定数量的核上的执行的性能影响将超过阈值水平,则在下一操作间隔中保持当前数量的活动核。
注意,可使用各种方式来实现上述处理器。
在示例中,处理器包括被结合在用户装备启用触摸的设备中的SoC。
在另一示例中,系统包括显示器和存储器,并且包括以上示例中的一个或多个中的处理器。
在另一示例中,系统包括处理器,包括:用于独立地执行指令的多个核;以及耦合到多个核的功率控制器,用于:接收在第一操作间隔中在第一数量的活动核上执行的工作负荷的工作负荷特性信息、关于第一数量的活动核的配置信息、以及第一数量的活动核的功率状态信息;基于工作负荷特性信息、配置信息以及功率状态信息对工作负荷进行分类;以及至少部分地基于工作负荷分类将一个或多个线程调度到不同数量的活动核以用于下一操作间隔,以及更新多个核中的一个或多个的功率状态以启用不同数量的活动核以用于下一操作间隔。系统可以进一步包括耦合至处理器的DRAM。
在示例中,功率控制器用于如果工作负荷被分类为存储器约束的工作负荷,则生成用于下一操作间隔的具有减少数量的活动核的功率配置预测。
在示例中,功率控制器用于确定功率配置预测与历史信息是否一致,以及如果是,则将一个或多个线程调度到减少数量的活动核以用于下一操作间隔,以及否则保持第一数量的活动核以用于下一操作间隔。
在示例中,功率控制器用于至少部分地基于工作负荷特性信息从处理器的存储获得训练模型参数信息。
在示例中,功率控制器用于:从训练模型参数信息生成功率配置预测,功率配置预测包括:在下一操作间隔中会是活动的核的数量,在下一操作间隔中会是活动的线程的数量,以及该数量的核的性能状态;估计功率配置预测的性能/能量影响;如果估计的性能/能量影响超过第一影响阈值,则为被分类的工作负荷类型更新训练模型参数信息的至少一些以减少性能影响;以及如果估计的性能/能量影响小于第二影响阈值,则为被分类的工作负荷类型更新训练模型参数信息的至少一些以增加功率节约。
在另一示例中,方法包括:经由工作负荷分类器对在包括多个核的多核处理器上执行的工作负荷进行分类,以及至少部分地基于工作负荷分类使得多个核中的减少数量的核在下一操作间隔中是活动的;确定减少数量的核对多核处理器的性能度量的影响;以及如果影响大于第一阈值,则为与工作负荷相关联的工作负荷类型更新与工作负荷分类器相关联的一个或多个训练模型参数,其中被更新的训练模型参数用于实现减少对性能度量的影响。
在示例中,方法进一步包括如果影响小于第二阈值,则为与工作负荷相关联的工作负荷类型更新与工作负荷分类器相关联的一个或多个训练模型参数,其中被更新的训练模型参数用于实现减少功耗,其中第二阈值小于第一阈值。
在示例中,对工作负荷进行分类包括至少部分地基于从多个核中的一个或多个中获得的工作负荷特性信息从多核处理器的存储获得训练模型参数。
在示例中,方法进一步包括:从训练模型参数生成功率配置预测,功率配置预测用于标识在下一操作间隔中会是活动的核的减少的数量、在下一操作间隔中会是活动的线程的数量、以及减少数量的核的性能状态;以及至少部分地基于历史信息确定是否使得功率管理控制器能使得减少数量的核在下一操作间隔中是活动的。
在示例中,更新一个或多个训练模型参数包括使得用于工作负荷类型的会是活动的核的数量增加。
在示例中,方法进一步包括使得工作负荷的一个或多个线程从一个或多个第一核迁移到至少一个第二核,其中至少一个第二核包括偏向存储器的核,并且一个或多个第一核包括偏向计算的核。
在另一示例中,包括指令的计算机可读介质用于执行上述示例中的任一项的方法。
在另一示例中,包括数据的计算机可读介质用于被至少一个机器使用以制造至少一个集成电路以执行上述示例中的任一项的方法。
在另一示例中,设备包括用于执行上述示例中的任一项的方法的装置。
会理解,上述示例的各种组合是可能的。
实施例可以被用于许多不同类型的系统中。例如,在一个实施例中,可以将通信设备布置为用于执行本文所述的各种方法与技术。当然,本发明的范围不限于通信设备,相反,其他实施例可以涉及用于处理指令的其他类型的装置,或一个或多个机器可读介质,该机器可读介质包括指令,响应于在计算设备上执行这些指令,这些指令使该设备执行本文所述的方法与技术中的一个或多个。
实施例可以实现在代码中,并且可以存储在非暂态存储介质中,该非暂态存储介质具有存储于其上的指令,该指令可以被用来对系统编程以执行指令。实施例还可以实现在数据中,并且可以存储在非暂态存储介质中,该非暂态存储介质如果被至少一个机器使用,将使得至少一个机器制造至少一个集成电路以执行一个或多个操作。存储介质可以包括但不限于,任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,诸如,只读存储器(ROM)、诸如动态随机存取存储器(DRAM)与静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);磁卡或光卡;或适用于存储电子指令的任何其他类型的介质。
虽然已参照有限数量的实施例描述了本发明,但是本领域技术人员将从中领会很多修改和变型。所附权利要求旨在涵盖落入本发明的真实精神与范围的所有此类修改与变型。

Claims (22)

1.一种用于执行功率管理的处理器,包括:
多个核,用于独立地执行指令,所述多个核中的每一个包括用于存储性能信息的多个计数器;以及
功率控制器,耦合到所述多个核,所述功率控制器包括:
机器学习逻辑,用于从所述多个计数器中的至少一些中接收性能信息,至少部分地基于所述性能信息和模型信息确定下一操作间隔中会是活动的核的数量以及所述数量的核的性能状态,所述模型信息包括在机器学习训练期间离线获得并且在所述处理器的制造期间被存储在所述处理器的存储中的训练信息,并且使得所述数量的核在所述下一操作间隔期间是活动的,所述性能信息与所述多个核中的一个或多个上的工作负荷的执行相关联。
2.如权利要求1所述的处理器,进一步包括配置存储,所述配置存储包括多个条目,所述多个条目中的每一个用于存储会被启用的核的数量以及所述数量的核会在其下操作的一对或多对电压/频率。
3.如权利要求2所述的处理器,其特征在于,所述机器学习逻辑耦合到所述配置存储以访问所述多个条目中的一个或多个、并且至少部分地基于所述多个条目中的一个或多个确定所述下一操作间隔中会是活动的核的数量。
4.如权利要求1所述的处理器,其特征在于,所述机器学习逻辑用于至少部分地基于所述性能信息对工作负荷进行分类、并且基于所述工作负荷分类确定所述下一操作间隔中会是活动的核的数量。
5.如权利要求4所述的处理器,其特征在于,如果所述工作负荷分类指示存储器约束的工作负荷,则所述机器学习逻辑用于确定所述下一操作间隔中会是活动的核的数量会小于活动的核的当前数量。
6.如权利要求4所述的处理器,其特征在于,如果所述工作负荷分类指示存储器约束的工作负荷,则所述机器学习逻辑用于使得一个或多个线程被从第一类型的核迁移到第二类型的核以用于所述下一操作间隔。
7.如权利要求1所述的处理器,其特征在于,所述机器学习逻辑包括试探法逻辑,并且所述模型信息会被从所述处理器的试探法存储获得,所述试探法存储用于存储与所述工作负荷相关联的功率配置信息。
8.如权利要求1所述的处理器,其特征在于,所述机器学习逻辑包括更新逻辑,所述更新逻辑用于在所述处理器的寿命期间基于所述处理器的操作的历史和所述机器学习逻辑的一个或多个配置预测来更新所述训练信息的至少一些。
9.如权利要求1所述的处理器,其特征在于,所述机器学习逻辑包括历史逻辑,所述历史逻辑用于接收对在所述下一操作间隔中会是活动的核的数量的预测,并且用于基于先前预测的历史使得所述机器学习逻辑能使得所述数量的核在所述下一操作间隔中是活动的。
10.如权利要求9所述的处理器,其特征在于,所述历史逻辑包括计数器,所述计数器用于保持在所述下一操作间隔中会是活动的第一数量的核的多个连续预测的计数,其中所述历史逻辑用于:当所述计数超过阈值时,使得所述机器学习逻辑能使得所述第一数量的核在所述下一操作间隔中是活动的;否则不能使得所述第一数量的核在所述下一操作间隔中是活动的。
11.如权利要求1所述的处理器,其特征在于,所述机器学习逻辑用于:如果所述工作负荷在确定数量的核上的执行的性能影响将超过阈值水平,则在所述下一操作间隔中保持当前数量的活动核。
12.一种用于执行功率管理的系统,包括:
处理器,包括:
多个核,用于独立地执行指令;以及,
功率控制器,耦合到所述多个核,所述功率控制器用于:
接收在第一操作间隔中在第一数量的活动核上执行的工作负荷的工作负荷特性信息、关于所述第一数量的活动核的配置信息、以及所述第一数量的活动核的功率状态信息;
至少部分地基于所述工作负荷特性信息从所述处理器的存储获得训练模型参数信息;
基于所述工作负荷特性信息、所述配置信息以及所述功率状态信息对所述工作负荷进行分类,包括用于从所述训练模型参数信息生成功率配置预测;以及
至少部分地基于具有所述功率配置预测的所述工作负荷分类将一个或多个线程调度到不同数量的活动核以用于下一操作间隔,并且更新所述多个核中的一个或多个的功率状态以启用所述不同数量的活动核以用于所述下一操作间隔;以及
动态随机存取存储器(DRAM),耦合至所述处理器。
13.如权利要求12所述的系统,其特征在于,所述功率控制器用于:如果所述工作负荷被分类为存储器约束的工作负荷,则生成用于所述下一操作间隔的具有减少数量的活动核的所述功率配置预测。
14.如权利要求13所述的系统,其特征在于,所述功率控制器用于确定所述功率配置预测与历史信息是否一致,并且如果是,则将所述一个或多个线程调度到所述减少数量的活动核以用于所述下一操作间隔,否则保持所述第一数量的活动核以用于所述下一操作间隔。
15.如权利要求12所述的系统,其特征在于,所述功率配置预测包括:在所述下一操作间隔中会是活动的核的数量;在所述下一操作间隔中会是活动的线程的数量;以及所述数量的核的性能状态;
并且其中所述功率控制器用于:
估计所述功率配置预测的性能/能量影响;
如果估计的性能/能量影响超过第一影响阈值,则为被分类的工作负荷类型更新所述训练模型参数信息的至少一些以减少性能影响;以及
如果估计的性能/能量影响小于第二影响阈值,则为被分类的工作负荷类型更新所述训练模型参数信息的至少一些以增加功率节约。
16.一种用于执行功率管理的方法,包括:
经由工作负荷分类器对在包括多个核的多核处理器上执行的工作负荷进行分类,以及至少部分地基于工作负荷分类使得所述多个核中的减少数量的核在下一操作间隔中是活动的;
确定所述减少数量的核对所述多核处理器的性能度量的影响;以及
如果所述影响大于第一阈值,则为与所述工作负荷相关联的工作负荷类型更新与所述工作负荷分类器相关联的一个或多个训练模型参数,所述一个或多个训练模型参数在机器学习训练期间离线获得并且在所述多核处理器的制造期间被存储在所述多核处理器的非易失性存储中,其中所述被更新的训练模型参数用于实现减少对所述性能度量的影响。
17.如权利要求16所述的方法,进一步包括:如果所述影响小于第二阈值,则为与所述工作负荷相关联的所述工作负荷类型更新与所述工作负荷分类器相关联的所述一个或多个训练模型参数,其中所述被更新的训练模型参数用于实现减少功耗,其中所述第二阈值小于所述第一阈值。
18.如权利要求16所述的方法,其特征在于,对所述工作负荷进行分类包括:至少部分地基于从所述多个核中的一个或多个中获得的工作负荷特性信息,从所述多核处理器的存储获得训练模型参数。
19.如权利要求18所述的方法,进一步包括:
从所述训练模型参数生成功率配置预测,所述功率配置预测用于标识在所述下一操作间隔中会是活动的核的减少的数量、在所述下一操作间隔中会是活动的线程的数量、以及所述减少的数量的核的性能状态;以及
至少部分地基于历史信息,确定是否使得功率管理控制器能使得所述减少的数量的核在所述下一操作间隔中是活动的。
20.如权利要求16所述的方法,其特征在于,更新所述一个或多个训练模型参数包括使得用于所述工作负荷类型的会是活动的核的数量增加。
21.如权利要求16所述的方法,进一步包括使得所述工作负荷的一个或多个线程从一个或多个第一核迁移到至少一个第二核,其中所述至少一个第二核包括偏向存储器的核,并且所述一个或多个第一核包括偏向计算的核。
22.一种机器可读存储介质,所述机器可读存储介质包括机器可读指令,所述机器可读指令在被执行时用于实现如权利要求16到21中的任一项所述的方法。
CN201680008146.8A 2015-02-13 2016-01-19 在多核处理器中执行功率管理 Active CN107209545B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/621,731 2015-02-13
US14/621,731 US9910481B2 (en) 2015-02-13 2015-02-13 Performing power management in a multicore processor
PCT/US2016/013869 WO2016130282A1 (en) 2015-02-13 2016-01-19 Performing power management in a multicore processor

Publications (2)

Publication Number Publication Date
CN107209545A CN107209545A (zh) 2017-09-26
CN107209545B true CN107209545B (zh) 2020-10-09

Family

ID=56615615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680008146.8A Active CN107209545B (zh) 2015-02-13 2016-01-19 在多核处理器中执行功率管理

Country Status (5)

Country Link
US (1) US9910481B2 (zh)
EP (1) EP3256928A4 (zh)
CN (1) CN107209545B (zh)
TW (2) TWI575370B (zh)
WO (1) WO2016130282A1 (zh)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2786224B1 (en) * 2011-11-30 2020-05-06 Intel Corporation Reducing power for 3d workloads
US10296397B2 (en) * 2015-05-18 2019-05-21 Krystallize Technologies, Inc. Automated workload analysis and simulation process
KR20170013697A (ko) * 2015-07-28 2017-02-07 삼성전자주식회사 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9942631B2 (en) 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
US10177194B2 (en) 2015-12-11 2019-01-08 Gingy Technology Inc. Fingerprint identification apparatus
WO2017138220A1 (ja) * 2016-02-12 2017-08-17 ソニー株式会社 情報処理方法および情報処理装置
US20180025289A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification
US20180024859A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification
JP2019530066A (ja) * 2016-09-23 2019-10-17 インテル・コーポレーション コンピュータシステムのためのプログラマブルセキュリティユニットを実装するための方法、装置およびプログラム
EP3539063A1 (en) * 2016-12-15 2019-09-18 Siemens Aktiengesellschaft Configuration and parameterization of energy control system
CN107161007A (zh) * 2017-06-16 2017-09-15 上海赫千电子科技有限公司 一种车辆仪表与中控的一体化设备及方法
US10732694B2 (en) * 2017-09-22 2020-08-04 Qualcomm Incorporated Power state control of a mobile device
CN107807730B (zh) * 2017-10-31 2019-12-03 Oppo广东移动通信有限公司 应用清理方法、装置、存储介质及电子设备
DE102019101853A1 (de) * 2018-01-31 2019-08-01 Nvidia Corporation Dynamische Partitionierung von Ausführungsressourcen
TWI639075B (zh) 2018-02-12 2018-10-21 創意電子股份有限公司 電腦執行方法、時脈資料處理系統以及電腦可讀取儲存媒體
US11137807B2 (en) * 2018-03-28 2021-10-05 Intel Corporation System, apparatus and method for controllable processor configuration based on a temperature specification
US10725873B2 (en) * 2018-06-01 2020-07-28 Arm Limited Lockstep processing systems and methods
US11148675B2 (en) 2018-08-06 2021-10-19 Qualcomm Incorporated Apparatus and method of sharing a sensor in a multiple system on chip environment
US11348909B2 (en) * 2018-09-28 2022-05-31 Intel Corporation Multi-die packages with efficient memory storage
US11320883B2 (en) * 2018-09-28 2022-05-03 Intel Corporation Multi-die stacks with power management
CN111078282B (zh) * 2018-10-19 2020-12-22 安徽寒武纪信息科技有限公司 运算方法、装置及相关产品
US11106261B2 (en) 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
US11906580B2 (en) 2018-12-07 2024-02-20 Hewlett-Packard Development Company, L.P. Automated overclocking using a prediction model
US11527950B2 (en) 2019-03-25 2022-12-13 Semiconductor Components Industries, Llc Power supply system for controlling load distribution across multiple converters for optimizing overall efficiency
US11258374B2 (en) 2019-03-25 2022-02-22 Semiconductor Components Industries, Llc Power supply system for optimizing standby power using artificial intelligence
US10797581B1 (en) 2019-03-25 2020-10-06 Semiconductor Components Industries, Llc Power supply system for controlling a ZVS parameter to optimize efficiency using artificial intelligence
US11093019B2 (en) 2019-07-29 2021-08-17 Microsoft Technology Licensing, Llc Integrated circuit power domains segregated among power supply phases
WO2021042373A1 (zh) * 2019-09-06 2021-03-11 阿里巴巴集团控股有限公司 数据处理与任务调度方法、设备、系统及存储介质
CN111176408B (zh) * 2019-12-06 2021-07-16 瑞芯微电子股份有限公司 一种SoC的低功耗处理方法和装置
TWI736079B (zh) * 2019-12-23 2021-08-11 瑞昱半導體股份有限公司 晶片及其異常處理方法
US11314299B2 (en) * 2020-03-27 2022-04-26 Intel Corporation System, apparatus and method for dynamic power state scaling of a voltage regulator for a processor
US12008383B2 (en) 2020-09-01 2024-06-11 Intel Corporation Hardware directed core parking based on performance and energy efficiency capabilities of processing units and runtime system characteristics
US20210117307A1 (en) * 2020-12-26 2021-04-22 Chris M. MacNamara Automated verification of platform configuration for workload deployment
WO2021056033A2 (en) * 2021-01-20 2021-03-25 Zeku, Inc. Apparatus and method of intelligent power and performance management
US11640194B2 (en) 2021-06-29 2023-05-02 Red Hat, Inc. Coordinating dynamic power scaling of agents based on power correlations of agent instructions
US11797410B2 (en) * 2021-11-15 2023-10-24 Advanced Micro Devices, Inc. Chiplet-level performance information for configuring chiplets in a processor
CN116982028A (zh) * 2022-02-28 2023-10-31 华为技术有限公司 一种任务调度方法、npu、芯片、电子设备和可读介质
CN114915358A (zh) * 2022-05-06 2022-08-16 成都德辰博睿科技有限公司 一种无线电监测系统、方法、装置及存储介质
US20240004444A1 (en) * 2022-06-30 2024-01-04 Advanced Micro Devices, Inc. Rest-of-chip power optimization through data fabric performance state management
US20240111560A1 (en) * 2022-09-30 2024-04-04 Subhankar Panda Workload linked performance scaling for servers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104345858A (zh) * 2013-08-02 2015-02-11 北京百度网讯科技有限公司 服务器硬件设备的功耗管理方法及装置、服务器

Family Cites Families (87)

* Cited by examiner, † Cited by third party
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
WO2004066092A2 (en) 2003-01-23 2004-08-05 University Of Rochester Multiple clock domain microprocessor
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
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
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
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
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
US20090089792A1 (en) 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for managing thermal asymmetries in a multi-core processor
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
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 엘지전자 주식회사 전원관리 제어 장치 및 방법
US7930574B2 (en) 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US9189282B2 (en) 2009-04-21 2015-11-17 Empire Technology Development Llc Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
KR101155202B1 (ko) * 2009-12-24 2012-06-13 포항공과대학교 산학협력단 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US9021156B2 (en) * 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
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
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
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
US9436245B2 (en) 2012-03-13 2016-09-06 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
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core 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
US9223979B2 (en) 2012-10-31 2015-12-29 Intel Corporation Detection of return oriented programming attacks
WO2014105058A1 (en) 2012-12-28 2014-07-03 Intel Corporation Optimal logical processor count and type selection for a given workload on platform thermals and power budgeting constraints
US9665154B2 (en) 2013-05-31 2017-05-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Subsystem-level power management in a multi-node virtual machine environment
US9292293B2 (en) * 2013-08-08 2016-03-22 Qualcomm Incorporated Intelligent multicore control for optimal performance per watt
US9852499B2 (en) * 2013-12-13 2017-12-26 Konica Minolta Laboratory U.S.A., Inc. Automatic selection of optimum algorithms for high dynamic range image processing based on scene classification
US20150355700A1 (en) * 2014-06-10 2015-12-10 Qualcomm Incorporated Systems and methods of managing processor device power consumption

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104345858A (zh) * 2013-08-02 2015-02-11 北京百度网讯科技有限公司 服务器硬件设备的功耗管理方法及装置、服务器

Also Published As

Publication number Publication date
WO2016130282A1 (en) 2016-08-18
CN107209545A (zh) 2017-09-26
US9910481B2 (en) 2018-03-06
TW201730715A (zh) 2017-09-01
EP3256928A1 (en) 2017-12-20
TW201640273A (zh) 2016-11-16
US20160239065A1 (en) 2016-08-18
TWI628539B (zh) 2018-07-01
TWI575370B (zh) 2017-03-21
EP3256928A4 (en) 2018-10-10

Similar Documents

Publication Publication Date Title
US10775873B2 (en) Performing power management in a multicore processor
CN107209545B (zh) 在多核处理器中执行功率管理
US10146286B2 (en) Dynamically updating a power management policy of a processor
CN107533354B (zh) 控制处理器的处理引擎的性能状态
US11775047B2 (en) System, apparatus and method for dynamically adjusting platform power and performance based on task characteristics
KR20210134322A (ko) 프로세서의 전력 라이센스 제어를 위한 시스템, 장치 및 방법
CN114207597A (zh) 用于向异构处理器中的操作系统提供硬件状态反馈的系统、装置和方法
US20240028101A1 (en) System, apparatus and method for globally aware reactive local power control in a processor
CN113448373A (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