CN117873302A - 用于处理器的优化节流的系统、装置和方法 - Google Patents

用于处理器的优化节流的系统、装置和方法 Download PDF

Info

Publication number
CN117873302A
CN117873302A CN202410076713.XA CN202410076713A CN117873302A CN 117873302 A CN117873302 A CN 117873302A CN 202410076713 A CN202410076713 A CN 202410076713A CN 117873302 A CN117873302 A CN 117873302A
Authority
CN
China
Prior art keywords
processor
power
information
throttle
core
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.)
Pending
Application number
CN202410076713.XA
Other languages
English (en)
Inventor
C·L·恩戈
J·G·赫尔默丁二世
P·杜塔
J·雷施
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 CN117873302A publication Critical patent/CN117873302A/zh
Pending legal-status Critical Current

Links

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/3243Power saving in microcontroller unit
    • 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/263Arrangements for using multiple switchable power supplies, e.g. battery and AC
    • 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/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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 Engineering (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

在一个实施例中,处理器包括:多个处理元件,多个处理元件用于执行操作;功率管理代理(PMA),PMA耦合到多个处理元件以控制多个处理元件的功耗;以及节流电路,节流电路耦合到PMA。节流电路用于至少部分地基于从PMA传递的转换信息来确定用于多个处理元件的节流功率级别。描述并要求保护其他实施例。

Description

用于处理器的优化节流的系统、装置和方法
本申请为分案申请,其原申请是于2020年9月18日(国际申请日为2019年4月2日)向中国专利局提交的专利申请,申请号为201980020521.4,发明名称为“用于处理器的优化节流的系统、装置和方法”。
技术领域
实施例涉及系统的功率管理,并且更特别地涉及多核处理器的功率管理。
背景技术
半导体处理和逻辑设计的进步已经允许增加可能存在于集成电路设备上的逻辑单元的数量。结果,计算机系统构造已经从系统中的单个或多个集成电路发展到单独的集成电路上的多个硬件线程、多个核、多个设备和/或完整系统。另外,随着集成电路的密度的增长,计算系统的功率需求(从嵌入式系统到服务器)也在逐步上升。此外,软件低效及其对硬件的要求也已经引起计算设备能耗的增加。实际上,一些研究表明,计算设备消耗一个国家(例如,美国)的整个电力供应的相当大的百分比。结果,对于与集成电路相关联的能量效率和节约存在着非常重要的需求。随着服务器、台式计算机、笔记本、UltrabooTM、平板电脑、移动电话、处理器、嵌入式系统等变得更加普及(从包括在典型的计算机、汽车和电视中到生物技术),这些需求将增加。
附图说明
图1是根据本发明的实施例的系统的一部分的块图。
图2是根据本发明的实施例的处理器的块图。
图3是根据本发明的另一个实施例的多域处理器的块图。
图4是包括多核的处理器的实施例。
图5是根据本发明的一个实施例的处理器核的微架构的块图。
图6是根据另一实施例的处理器核的微架构的块图。
图7是根据又一实施例的处理器核的微架构的块图。
图8是根据再一实施例的处理器核的微架构的块图。
图9是根据本发明的另一实施例的处理器的块图。
图10是根据本发明的实施例的代表性SoC的块图。
图11是根据本发明的实施例的另一示例性SoC的块图。
图12是可以与实施例一起使用的示例性系统的块图。
图13是可以与实施例一起使用的另一示例性系统的块图。
图14是代表性计算机系统的块图。
图15是根据本发明的实施例的系统的块图。
图16是根据实施例的系统的块图。
图17是根据本发明的实施例的方法的流程图。
图18是根据本发明的另一实施例的方法的流程图。
图19是根据本发明的又一实施例的方法的流程图。
图20是根据本发明的又一实施例的方法的流程图。
具体实施方式
在各种实施例中,诸如多核处理器或其他片上系统(SoC)的处理器可以被配置为响应于平台事件的指示,以优化方式执行处理器的一个或多个处理元件的节流。也就是说,不是立即使处理器内的所有操作被节流到最小操作点,而是可以在节流条件下优化处理器性能,而不损害保护机制,以根据平台事件来防止电气故障。更具体地,如本文所述,第一代理(即平台目标代理)可以主动地确定整个处理器的最优节流功率目标。进而,另一代理(本文中称为功率管理代理)可以至少部分地基于用户活动、优先级信息等来主动地确定每个处理元件的最优节流目标。然后进而,附加代理(本文称为节流代理)可以至少部分地基于这些优化的处理元件节流目标和总体优化的节流功率目标,动态地控制用于处理元件的操作点。可以优化这种动态控制的操作点,使得处理器不需要立即退化到最小操作点。
对于本文所述的实施例,可以为处理器维持适当的节流行为,同时保存性能能力。也就是说,如本文所述优化的节流级别可以被设置在典型工作负荷仍可以在合适性能级别处操作的级别。然而,应当理解,在诸如病毒工作负荷级别的最坏情况条件下,可以实施完全节流机制以使所有处理元件在最小操作点处操作。
注意,在实施例中,这种优化的节流行为可以基于输入功率能力而发生。也就是说,当诸如电池源的给定电源被充分充电时,节流行为不需要被限制到最小操作点,因为电池源可以提供足够的功率以在大于这种最小操作点的节流级别处操作。
相反,响应于平台事件,常规平台通常使处理器被强制在最低操作点(例如,最低频率和/或电压模式)处操作,这可能不期望地影响性能。相反,在实施例中,至少部分地基于输入功率能力(例如,充电容量)的先验知识,响应于平台事件的处理器节流可以处于高于最低操作点的级别,从而避免不必要的性能损失。
当平台检测到存在潜在的功能故障时,平台生成快速信号以快速节流处理器功率,以避免功能故障。在这种情况下,根据实施例的处理器可以被配置为在其被节流时优化性能,而不损害保护机制(以避免功能故障)。为此,提供处理器机制以主动地设置处理器的最优节流功率目标,并且至少部分地基于用户活动来主动地设置每个处理元件的最优操作点。在已经生成这些主动设置之后,当接收到节流信号时(即,响应于检测到潜在的功能故障),可以以低延迟控制处理元件以在不高于相应的处理元件节流功率目标级别的级别处操作。
尽管参考诸如计算平台或处理器中的具体集成电路描述了以下实施例,但是其他实施例可适用于其他类型的集成电路和逻辑设备。本文描述的实施例的类似技术和教导可以应用于也可以受益于更好的能量效率和能量节约的其他类型的电路或半导体设备。例如,所公开的实施例不限于任何特定类型的计算机系统。也就是说,所公开的实施例可以用于许多不同的系统类型,范围包括服务器计算机(例如,塔式、机架式、刀片式、微服务器等)、通信系统、存储系统、任何构造的台式计算机、膝上型计算机、笔记本和平板计算机(包括2:1平板计算机、平板手机等),并且还可以用于诸如手持式设备、片上系统(SoC)和嵌入式应用的其他设备。手持式设备的一些示例包括诸如智能电话的蜂窝式电话、因特网协议设备、数字相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常可以包括微控制器、数字信号处理器(DSP)、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、可穿戴设备或者可以执行下面教导的功能和操作的任何其他系统。更是因此,实施例可以在诸如移动电话、智能电话和平板手机的具有标准语音功能的移动终端中实施,和/或在诸如许多可穿戴设备、平板计算机、笔记本、台式机、微服务器、服务器等的不具有标准无线语音功能通信能力的非移动终端中实施。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可以涉及软件优化。
现在参考图1,图1示出了根据本发明的实施例的系统的一部分的块图。如图1所示,系统100可以包括各种部件,包括处理器110,其如图所示是多核处理器。处理器110可以经由外部电压调节器160耦合到电源150,外部电压调节器160可以执行第一电压变换以向处理器110提供初级调节电压。
如所看到的,处理器110可以是包括多个核120a-120n的单个管芯处理器。另外,每个核可以与集成电压调节器(IVR)125a-125n相关联,IVR 125a-125n接收初级调节电压并且生成将被提供给与IVR相关联的处理器的一个或多个代理的操作电压。因此,可以提供IVR实施方式以允许电压的细粒度控制,并且因此允许每个单独核的功率和性能的细粒度控制。这样,每个核可以在独立的电压和频率处操作,从而实现了很大的灵活性并且提供了用于平衡功耗与性能的广泛机会。在一些实施例中,多个IVR的使用使得能够将部件分组到分离的功率平面中,使得由IVR调节功率并且将其仅供应给该组中的那些部件。在功率管理期间,当处理器被置于某个低功率状态时,一个IVR的给定功率平面可以被断电或关闭,而另一IVR的另一功率平面保持活动或被完全供电。
仍然参考图1,处理器内可以存在附加部件,附加部件包括输入/输出接口132、另一接口134和集成存储器控制器136。如所看到的,这些部件中的每一个可以由另一集成电压调节器125x供电。在一个实施例中,接口132可以启用用于快速路径互连(QPI)互连的操作,其在包括多个层的高速缓存一致性协议中提供点对点(PtP)链路,所述多个层包括物理层、链路层和协议层。进而,接口134可以经由外围部件互连快速(PCIeTM)协议进行通信。
还示出了功率控制单元(PCU)138,其可以包括硬件、软件和/或固件以执行关于处理器110的功率管理操作。如所看到的,PCU 138经由数字接口向外部电压调节器160提供控制信息,以使电压调节器生成适当的调节电压。PCU 138还经由另一数字接口向IVR 125提供控制信息,以控制所生成的操作电压(或者在低功率模式中使对应的IVR被禁用)。在各种实施例中,PCU 138可以包括各种功率管理逻辑单元以执行基于硬件的功率管理。这种功率管理可以是完全处理器控制的(例如,通过各种处理器硬件,并且其可以由工作负荷和/或功率、热或其他处理器约束来触发)和/或功率管理可以响应于外部源(例如平台或管理功率管理源或系统软件)来执行。
在本文的实施例中,PCU 138可以被配置为控制处理器110内的域在多个不同操作点之一处操作。更具体地,PCU 138可以确定不同域的操作点。另外,应当理解,例如PCU 138外部的快速机制可能涉及响应于平台事件而执行节流操作。因此,如图1中进一步所示,节流电路139(其在一些情况下可以是分布式硬件电路)可以进一步与IVR 125(和/或核120本身)通信。这样,如本文进一步描述的,节流电路139可以至少部分地基于从PCU 138接收的转换信息,将处理器节流功率级别转换到针对单独域(例如核120等)的对应节流级别。
虽然为了便于说明而未示出,但是应当理解,在处理器110内可以存在附加部件,例如非核逻辑单元、以及诸如内部存储器(例如一级或多级高速缓存存储器层级结构)的其他部件等等。此外,虽然在图1的实施方式中示出了具有集成电压调节器,但是实施例不限于此。
本文描述的处理器可以利用功率管理技术,该功率管理技术可以独立于基于操作系统(OS)的功率管理(OSPM)机制并且与其互补。根据一种示例性OSPM技术,处理器可以在各种性能状态或级别(所谓的P-状态,即,从P0到PN)操作。通常,P1性能状态可以对应于OS可以请求的最高保证性能状态。除了这个P1状态之外,OS还可以请求更高性能状态(即,P0状态)。因此,该P0状态可以是机会或涡轮模式状态,其中,当功率和/或热预算可用时,处理器硬件可以将处理器或其至少部分配置为在高于保证频率的频率操作。在许多实施方式中,处理器可以包括多个所谓的盒频率(bin frequency),其高于P1保证最大频率,超过在制造期间融合或以其他方式写入处理器时的特定处理器的最大峰值频率。另外,根据一种OSPM机制,处理器可以在各种功率状态或级别处操作。关于功率状态,OSPM机制可以指定不同的功耗状态,通常称为C状态,C0、C1到Cn状态。当核活动时,它在C0状态下运行,并且当核空闲时,它可以被置于核低功率状态,也称为核非零C状态(例如,C1-C6状态),其中每个C状态处于较低功耗级别(使得C6比C1处于更深的低功率状态,等等)。
应当理解,在不同的实施例中可以单独地或组合地使用许多不同类型的功率管理技术。作为代表性示例,功率控制器可以控制处理器通过某种形式的动态电压频率缩放(DVFS)来进行功率管理,在DVFS中,可以动态地控制一个或多个核或其他处理器逻辑单元的操作电压和/或操作频率以在某些情况下降低功耗。在示例中,可以使用可从加利福尼亚州圣克拉拉的英特尔公司获得的增强型英特尔SpeedStepTM技术来执行DVFS,以在最低功耗级别处提供最优性能。在另一示例中,可以使用英特尔TurboBoostTM技术来执行DVFS,以使得一个或多个核或其他计算引擎能够基于条件(例如,工作负荷和可用性)以高于保证操作频率的频率来操作。
可以在某些示例中使用的另一种功率管理技术是不同计算引擎之间的工作负荷的动态交换。例如,处理器可以包括在不同功耗级别处操作的非对称核或其他处理引擎,使得在功率受限的情况下,一个或多个工作负荷可以被动态地切换以在较低功率核或其他计算引擎上执行。另一示例性功率管理技术是硬件占空比控制(HDC),其可以使得核和/或其他计算引擎根据占空比被周期性地启用和禁用,使得可以在占空比的非活动时段期间使得一个或多个核是非活动的,并且在占空比的活动时段期间使得一个或多个核是活动的。
实施例可以在用于各种市场的处理器中实施,所述处理器包括服务器处理器、台式处理器、移动处理器等。现在参考图2,示出了根据本发明的实施例的处理器的块图。如图2所示,处理器200可以是包括多个核210a-210n的多核处理器。在一个实施例中,每个这种核可以具有独立的功率域,并且可以被配置为基于工作负荷进入和退出活动状态和/或最大性能状态。
各种核可以经由互连215耦合到包括各种部件的系统代理或非核220。如所看到的,非核220可以包括共享高速缓存230,其可以是最后一级高速缓存。另外,非核可以包括集成存储器控制器240以例如经由存储器总线与系统存储器(图2中未示出)通信。非核220还包括各种接口250、性能监视单元(PMU)260和功率控制单元255,功率控制单元255可以包括执行如本文所述的功率管理技术的逻辑单元。另外,功率控制单元255可以包括节流控制电路256,节流控制电路256可以至少部分地基于提示信息来动态地确定要由节流电路258使用的转换信息,以使得这种电路能够动态地确定单独核210(以及处理器200的潜在的其他部件)的节流功率级别,从而使得能够响应于平台事件而进行低延迟操作点改变。
另外,通过接口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,以至少部分地基于关于正在核310、图形引擎320等上执行的工作负荷的提示信息来确定转换信息。如本文所述,进而,PCU 355将这种信息提供给节流电路358以使节流电路358能够确定对应核/图形引擎的节流操作点并且启用到这种更新的操作点的低延迟转变。
如图3进一步所看到的,处理器300还可以包括集成存储器控制器(IMC)370,IMC370可以提供到诸如动态随机存取存储器(DRAM)的系统存储器的接口。可以存在多个接口3800-380n以实现处理器与其他电路之间的互连。例如,在一个实施例中,可以提供至少一个直接媒体接口(DMI)接口以及一个或多个PCIeTM接口。更进一步,为了提供诸如附加处理器或其他电路的其他代理之间的通信,还可以提供一个或多个QPI接口。尽管在图3的实施例中以这种高级别示出,但是应当理解,本发明的范围并不限于此。
参考图4,示出了包括多个核的处理器的实施例。处理器400包括任何处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SoC)或执行代码的其他设备。在一个实施例中,处理器400包括至少两个核—核401和402,核401和402可以包括非对称核或对称核(所示实施例)。然而,处理器400可以包括可以是对称或非对称的任何数量的处理元件。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑单元。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够保持处理器的状态(例如执行状态或架构状态)的任何其他元件。换言之,在一个实施例中,处理元件指能够独立地与诸如软件线程、操作系统、应用程序或其他代码的代码相关联的任何硬件。物理处理器通常指集成电路,其潜在地包括诸如核或硬件线程的任何数量的其他处理元件。
核通常指位于集成电路上的能够维持独立架构状态的逻辑单元,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程通常指位于集成电路上的能够维持独立架构状态的任何逻辑单元,其中独立维持的架构状态共享对执行资源的访问。如可以看到的,当某些资源被共享而其他资源专用于架构状态时,硬件线程和核的命名之间的界线重叠。然而,通常,核和硬件线程被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
如图4所示,物理处理器400包括两个核,核401和402。这里,核401和402被认为是对称核,即具有相同构造、功能单元和/或逻辑单元的核。在另一个实施例中,核401包括无序处理器核,而核402包括有序处理器核。然而,核401和402可以从任何类型的核中单独地选择,所述核例如是本地核、软件管理核、适用于执行本地指令集架构(ISA)的核、适用于执行转换后的ISA的核、协同设计的核或其他已知的核。为了进一步讨论,以下更详细地描述核401中所示的功能单元,因为核402中的单元以类似的方式操作。
如所描绘的,核401包括两个硬件线程401a和401b,硬件线程401a和401b也可以被称为硬件线程槽401a和401b。因此,在一个实施例中,诸如操作系统的软件实体潜在地将处理器400视为四个分离的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器401a相关联,第二线程与架构状态寄存器401b相关联,第三线程可以与架构状态寄存器402a相关联,并且第四线程可以与架构状态寄存器402b相关联。这里,如上所述,架构状态寄存器(401a、401b、402a和402b)中的每一个可以被称为处理元件、线程槽或线程单元。如图所示,架构状态寄存器401a在架构状态寄存器401b中被复制,因此能够为逻辑处理器401a和逻辑处理器401b存储单独的架构状态/上下文。在核401中,也可以为线程401a和401b复制其他较小的资源,例如分配器和重命名器块430中的指令指针和重命名逻辑单元。诸如重排序/引退单元435中的重排序缓冲器、ILTB420、加载/存储缓冲器和队列的一些资源可以通过分区来共享。诸如通用内部寄存器、(一个或多个)页表基址寄存器、低级别数据高速缓存和数据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用于高速缓存最近获取的元素。注意,较高级别或者更外指的是高速缓存级别增加或者更远离(一个或多个)执行单元。在一个实施例中,较高级别高速缓存410是诸如第二或第三级数据高速缓存的最后一级数据高速缓存(处理器400上的存储器层级结构中的最后的高速缓存)。然而,较高级别高速缓存410不限于此,因为它可以与指令高速缓存相关联或包括指令高速缓存。相反,踪迹高速缓存(一种指令高速缓存)可以耦合在解码器425之后,以存储最近解码的踪迹。
在所描绘的构造中,处理器400还包括总线接口模块405和功率控制器460,它们可以执行根据本发明的实施例的功率管理。在这种情境下,总线接口405与处理器400外部的诸如系统存储器和其他部件的设备通信。
存储器控制器470可以与诸如一个或许多存储器的其他设备接口连接。在示例中,总线接口405包括具有用于与存储器接口连接的存储器控制器和用于与图形处理器接口连接的图形控制器的环形互连。在SoC环境中,甚至更多的设备(例如网络接口、协处理器、存储器、图形处理器和任何其他已知的计算机设备/接口)可以被集成在单个管芯或集成电路上,以提供具有高功能性和低功耗的小形状因数。
现在参考图5,示出了根据本发明的一个实施例的处理器核的微架构的块图。如图5所示,处理器核500可以是多级管线化无序处理器。核500可以基于可以从集成电压调节器或外部电压调节器接收的接收到的操作电压在各种电压处操作。
如图5所看到的,核500包括前端单元510,其可以用于获取要执行的指令并将它们准备好以供稍后在处理器管线中使用。例如,前端单元510可以包括获取单元501、指令高速缓存503和指令解码器505。在一些实施方式中,前端单元510还可以包括踪迹高速缓存、以及微代码储存器和微操作储存器。获取单元501可以例如从存储器或指令高速缓存503获取微指令,并将它们馈送到指令解码器505以将它们解码成原语,即,用于由处理器执行的微操作。
耦合在前端单元510与执行单元520之间的是无序(OOO)引擎515,OOO引擎515可以用于接收微指令并将它们准备好以供执行。更具体地,OOO引擎515可以包括各种缓冲器,以对微指令流重新排序并分配执行所需的各种资源,以及提供将逻辑寄存器重命名到诸如寄存器文件530和扩展寄存器文件535的各种寄存器文件内的存储位置上。寄存器文件530可以包括用于整数和浮点操作的分离的寄存器文件。出于构造、控制和附加操作的目的,也可以存在一组机器专用寄存器(MSR)538并且可以由核500内(以及核500外部)的各种逻辑单元访问该组MSR 538。
各种资源可以存在于执行单元520中,除了其他专用硬件之外,执行单元520包括例如各种整数、浮点和单指令多数据(SIMD)逻辑单元。例如,除了其他这种执行单元之外,这种执行单元可以包括一个或多个算术逻辑单元(ALU)522和一个或多个向量执行单元524。
来自执行单元的结果可以被提供给引退逻辑单元,即重排序缓冲器(ROB)540。更具体地,ROB 540可以包括各种阵列和逻辑单元,以接收与执行的指令相关联的信息。然后,ROB 540检查该信息,以确定指令是否能够被有效地引退并且结果数据是否被提交给处理器的架构状态,或者是否发生了阻止指令的正确引退的一个或多个异常。当然,ROB 540可以处理与引退相关联的其他操作。
如图5所示,ROB 540耦合到高速缓存550,在一个实施例中,该高速缓存550可以是低级别高速缓存(例如,L1高速缓存),但本发明的范围不限于此。而且,执行单元520可以直接耦合到高速缓存550。从高速缓存550,可以与较高级别高速缓存、系统存储器等发生数据通信。注意,核500的性能和能量效率能力可以基于工作负荷和/或处理器约束而变化。这样,功率控制器(图5中未示出)可以至少部分地基于如本文所述确定的热设置点,动态地确定处理器500的全部或一部分的适当配置。虽然在图5的实施例中以这种高级别示出,但是应当理解,本发明的范围并不限于此。例如,虽然图5的实施方式是关于诸如x86指令集架构(ISA)的无序机器,但是本发明的范围并不限于此。也就是说,其他实施例可以在有序处理器、诸如基于ARM的处理器的精简指令集计算(RISC)处理器、或者可以经由仿真引擎和相关联的逻辑电路来仿真不同ISA的指令和操作的另一类型的ISA的处理器中实施。
现在参考图6,示出了根据另一实施例的处理器核的微架构的块图。在图6的实施例中,核600可以是不同微架构的低功率核,例如具有被设计成降低功耗的相对有限的管线深度的基于AtomTM的处理器。如所看到的,核600包括指令高速缓存610,指令高速缓存610被耦合以向指令解码器615提供指令。分支预测器605可以耦合到指令高速缓存610。注意,指令高速缓存610可以进一步耦合到诸如L2高速缓存(为了易于说明,在图6中未示出)的另一级别的高速缓存存储器。进而,指令解码器615将解码的指令提供给发出队列620,以便存储和递送到给定的执行管线。微代码ROM 618耦合到指令解码器615。
浮点管线630包括浮点寄存器文件632,浮点寄存器文件632可以包括多个具有诸如128、256或512位的给定位的架构寄存器。管线630包括浮点调度器634,以调度指令以在管线的多个执行单元之一上执行。在所示的实施例中,这种执行单元包括ALU 635、混洗单元636和浮点加法器638。进而,在这些执行单元中生成的结果可以被提供回寄存器文件632的缓冲器和/或寄存器。当然,应当理解,虽然示出了这几个示例性执行单元,但是在另一实施例中可以存在附加的或不同的浮点执行单元。
还可以提供整数管线640。在所示的实施例中,管线640包括整数寄存器文件642,整数寄存器文件642可以包括多个具有诸如128或256位的给定位的架构寄存器。管线640包括整数调度器644,以调度指令以在管线的多个执行单元之一上执行。在所示的实施例中,这种执行单元包括ALU 645、移位器单元646和跳转执行单元648。进而,在这些执行单元中生成的结果可以被提供回寄存器文件642的缓冲器和/或寄存器。当然,应当理解,虽然示出了这几个示例性执行单元,但是在另一实施例中可以存在附加的或不同的整数执行单元。
存储器执行调度器650可以调度存储器操作以在地址生成单元652中执行,地址生成单元652也耦合到TLB 654。如所看到的,这些结构可以耦合到数据高速缓存660,数据高速缓存660可以是L0和/或L1数据高速缓存,L0和/或L1数据高速缓存进而耦合到包括L2高速缓存存储器的高速缓存存储器层级结构的附加级别。
为了提供对无序执行的支持,除了重排序缓冲器680之外,还可以提供分配器/重命名器670,该重排序缓冲器680被配置成对无序执行的指令进行重排序以便有序引退。注意,核600的性能和能量效率能力可以基于工作负荷和/或处理器约束而变化。这样,功率控制器(图6中未示出)可以至少部分地基于如本文所述确定的热设置点,动态地确定处理器500的全部或一部分的适当配置。尽管在图6的图示中示出了这种特定的管线架构,但是应当理解,许多变化和替代都是可能的。
注意,在诸如根据图5和图6的微架构的具有非对称核的处理器中,由于功率管理原因,工作负荷可以在核之间动态交换,因为这些核虽然具有不同的管线设计和深度,但是可以具有相同或相关的ISA。这种动态核交换可以以对用户应用(以及可能的内核)透明的方式执行。
参考图7,示出了根据又一实施例的处理器核的微架构的块图。如图7所示,核700可以包括多级有序管线,以在非常低的功耗级别下执行。作为一个这样的示例,处理器700可以具有根据可从加利福尼亚州桑尼维尔市ARM控股有限公司获得的ARM Cortex A53设计的微架构。在实施方式中,可以提供被配置为执行32位和64位代码两者的8级管线。核700包括获取单元710,获取单元710被配置为获取指令并且将它们提供给可以解码指令(例如,诸如ARMv8 ISA的给定ISA的微指令)的解码单元715。进一步注意,队列730可以耦合到解码单元715以存储解码的指令。将解码的指令提供给发出逻辑725,其中可以将解码的指令发出到多个执行单元中的给定一个。
进一步参考图7,发出逻辑725可以向多个执行单元之一发出指令。在所示的实施例中,这些执行单元包括整数单元735、乘法单元740、浮点/向量单元750、双发出单元760和加载/存储单元770。这些不同执行单元的结果可以被提供给写回单元780。应当理解,虽然为了易于说明而示出了单个写回单元,但在一些实施方式中,分离的写回单元可以与执行单元中的每一个相关联。此外,应理解,虽然图7中所示的单元和逻辑中的每一个都被表示在高级别,但是特定的实施方式可以包括更多或不同的结构。使用具有如图7中的管线的一个或多个核来设计的处理器可以在从移动设备延伸到服务器系统的许多不同的终端产品中实施。
参考图8,示出了根据再一实施例的处理器核的微架构的块图。如图8所示,核800可以包括多级多发出无序管线,以在非常高的性能级别(其可以在比图7的核700更高的功耗级别处发生)处执行。作为一个这样的示例,处理器800可以具有根据ARM Cortex A57设计的微架构。在实施方式中,可以提供15级(或更大)管线,其被配置为执行32位和64位代码两者。另外,管线可以提供3(或更大)-宽度和3(或更大)-发出操作。核800包括获取单元810,获取单元810被配置为获取指令并将它们提供给可以解码指令(例如,ARMv8指令集架构的微指令)的解码器/重命名器/分派器815,对指令内的寄存器引用进行重命名,并将指令(最终)分派到所选择的执行单元。解码的指令可以存储在队列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可以是诸如i3、i5、i7或者可从英特尔公司获得的另一这种处理器的基于Architecture CoreTM的处理器。然而,诸如可从加利福尼亚州桑尼维尔市的超威半导体公司(Advanced Micro Devices,AMD)获得的其他低功率处理器、来自ARM控股有限公司的基于ARM的设计或者其被许可方、或者来自加利福尼亚州桑尼维尔市的MIPS技术公司的基于MIPS的设计或者其被许可方或采用方,可以替代地存在于诸如苹果A7处理器、高通骁龙处理器或者德州仪器OMAP处理器的其他实施例中。这种SoC可以被用在诸如智能电话、平板计算机、平板手机计算机、UltrabookTM计算机或其他便携式计算设备、或车辆计算系统的低功率系统中。
在图9所示的高级别视图中,处理器900包括多个核单元9100-910n。每个核单元可以包括一个或多个处理器核、一个或多个高速缓存存储器和其他电路。每个核单元910可以支持一个或多个指令集(例如,x86指令集(具有一些已添加了较新版本的扩展);MIPS指令集;ARM指令集(具有诸如NEON的可选的附加扩展))或其他指令集或其组合。注意,核单元中的一些可以是异构资源(例如,具有不同设计)。另外,每个这种核可以耦合到高速缓存存储器(未示出),在实施例中,高速缓存存储器可以是共享级别(L2)高速缓存存储器。非易失性储存器930可以用于存储各种程序和其他数据。例如,该存储可以用于存储微代码、诸如BIOS的启动信息、其他系统软件和其他信息的至少部分。在实施例中,非易失性储存器930可以存储如本文所述的多个配置,其可以被优先化以供固件使用。
每个核单元910还可以包括诸如总线接口单元的接口,以实现与处理器的附加电路的互连。在实施例中,每个核单元910耦合到一致性结构,该一致性结构可以充当进而耦合到存储器控制器935的主高速缓存一致性管芯上互连。进而,存储器控制器935控制与诸如DRAM(为了易于说明,在图9中未示出)的存储器的通信。
除了核单元之外,在处理器内存在附加的处理引擎,附加的处理引擎包括至少一个图形单元920,至少一个图形单元920可以包括一个或多个图形处理单元(GPU)以执行图形处理,并且可能在图形处理器上执行通用操作(所谓的GPGPU操作)。另外,可以存在至少一个图像信号处理器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的块图。在所示的实施例中,SoC1000可以是被配置为用于低功率操作的多核SoC,其要被优化以用于并入到智能电话或诸如平板计算机或其他便携式计算设备或车辆计算系统的其他低功率设备。作为示例,SoC 1000可以使用诸如较高功率和/或低功率核(例如,无序核和有序核)的组合的非对称或不同类型的核来实施。在不同的实施例中,这些核可以基于ArchitectueTM核设计或ARM架构设计。在其他实施例中,Intel和ARM核的混合可以在给定SoC中实施。
如图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,图形域1030可以包括一个或多个图形处理单元(GPU),GPU被配置为独立地执行例如由核域1010和1020中的一个或多个核提供的图形工作负荷。作为示例,除提供图形和显示器渲染操作之外,GPU域1030还可以用于提供对各种屏幕尺寸的显示器支持。
如所看到的,各个域耦合到一致性互连1040,一致性互连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合适于并入到诸如智能电话、平板计算机、智能TV、车辆计算系统等的各种各样的便携式和其他设备中。在所示的示例中,SoC 1100包括中央处理器单元(CPU)域1110。在实施例中,多个单独的处理器核可以存在于CPU域1110中。作为一个示例,CPU域1110可以是具有4个多线程核的四核处理器。这种处理器可以是同构或异构处理器,例如低功率和高功率处理器核的混合。
进而,提供GPU域1120以在一个或多个GPU中执行高级图形处理以处理图形和计算API。DSP单元1130可以提供一个或多个低功率DSP以用于处理除了可能在多媒体指令的执行期间发生的高级计算之外的多媒体应用,例如音乐回放、音频/视频的低功率。进而,通信单元1140可以包括各种部件以经由诸如蜂窝通信(包括3G/4G LTE)、诸如BluetoothTM、IEEE802.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的其他部件的功率级别。仍如本文所述,PMIC 1215可以响应于给定平台事件向应用处理器1210发送节流信号。
为了使通信能够被传送和接收,各种电路可以被耦合在基带处理器1205与天线1290之间。具体地,可以存在射频(RF)收发器1270和无线局域网(WLAN)收发器1275。通常,RF收发器1270可以用于根据给定的无线通信协议(例如3G或4G无线通信协议,例如根据码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)或其他协议)接收和传送无线数据和呼叫。另外,可以存在GPS传感器1280。也可以提供诸如接收或传送无线电信号(例如AM/FM和其他信号)的其他无线通信。另外,经由WLAN收发器1275,也可以实现本地无线通信。
现在参考图13,示出了可以与实施例一起使用的另一示例性系统的块图。在图13的图示中,系统1300可以是诸如平板计算机、2:1平板计算机、平板手机或其他可变换或独立式平板系统的移动低功率系统。如图所示,存在SoC 1310并且SoC 1310可以被配置为作为设备的应用处理器来操作,并且其可以包括如本文所述的功率控制器和节流电路。
各种设备可以耦合到SoC 1310。在所示的图示中,存储器子系统包括耦合到SoC1310的闪存存储器1340和DRAM 1345。另外,触摸面板1320耦合到SoC 1310以经由触摸提供包括在触摸面板1320的显示器上提供虚拟键盘的显示器能力和用户输入。为了提供有线网络连接,SoC 1310耦合到以太网接口1330。外围集线器1325耦合到SoC 1310以能够与各种外围设备接口连接,例如可以通过各种端口或其他连接器中的任何一个耦合到系统1300。
除了SoC 1310内的内部功率管理电路和功能之外,PMIC 1380耦合到SoC 1310,以提供基于平台的功率管理,例如,基于系统是由电池1390供电还是经由AC适配器1395由AC电源供电。除了这种基于电源的功率管理之外,PMIC 1380还可以基于环境和使用条件来执行平台功率管理活动。此外,PMIC 1380可以将控制和状态信息传递给SoC 1310,以引起SoC1310内的各种功率管理动作。如本文进一步描述的,PMIC 1380可以响应于给定平台事件向SoC 1310发送节流信号。
仍然参考图13,为了提供无线能力,WLAN单元1350耦合到SoC1310,并且进而耦合到天线1355。在各种实施方式中,WLAN单元1350可以根据一个或多个无线协议来提供通信。
如进一步所示,多个传感器1360可以耦合到SoC 1310。这些传感器可以包括各种加速度计、环境和其他传感器,包括用户手势传感器。最后,音频编解码器1365耦合到SoC1310,以提供到音频输出设备1370的接口。当然,应当理解,虽然在图13中示出了该特定实施方式,但是许多变化和替代是可能的。
现在参考图14,示出了诸如笔记本、UltrabootTM或其他小形状因数系统的代表性计算机系统的块图。在一个实施例中,处理器1410包括微处理器、多核处理器、多线程处理器、超低电压处理器、嵌入式处理器或其他已知的处理元件。在所示实施方式中,处理器1410充当主处理单元和中央集线器,用于与系统1400的各种部件中的许多部件通信。作为一个示例,处理器1400被实施为SoC,并且其可以包括如本文所述的功率控制器和节流电路。
在一个实施例中,处理器1410与系统存储器1415通信。作为说明性示例,系统存储器1415经由多个存储器设备或模块来实施以提供给定量的系统存储器。
为了提供诸如数据、应用、一个或多个操作系统等信息的永久存储,大容量储存器1420也可以耦合到处理器1410。在各种实施例中,为了实现更薄和更轻的系统设计并且改进系统响应性,该大容量储存器可以经由SSD来实施,或者大容量储存器可以主要使用具有较少量SSD储存器的硬盘驱动器(HDD)来实施,以充当SSD高速缓存,以在断电事件期间实现上下文状态和其他这种信息的非易失性存储,使得可以在重新启动系统活动时发生快速加电。还如图14所示,闪存设备1422可以例如经由串行外围接口(SPI)耦合到处理器1410。该闪存设备可以提供包括基本输入/输出软件(BIOS)以及系统的其他固件的系统软件的非易失性存储。
各种输入/输出(I/O)设备可以存在于系统1400内。在图14的实施例中具体示出了显示器1424,显示器1424可以是进一步提供触摸屏1425的高清晰度LCD或LED面板。在一个实施例中,显示器1424可以经由可以被实施为高性能图形互连的显示器互连耦合到处理器1410。触摸屏1425可以经由另一互连耦合到处理器1410,在实施例中,该另一互连可以是I2C互连。如图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单元可以经由SMBus与处理器1410进行通信。注意,经由该NFC单元1445,彼此紧密接近的设备可以通信。
如图14进一步所看到的,附加的无线单元可以包括其他短范围无线引擎,其他短范围无线引擎包括WLAN单元1450和蓝牙单元1452。使用WLAN单元1450,可以实现Wi-FiTM通信,而经由蓝牙单元1452,可以发生短范围BluetoothTM通信。这些单元可以经由给定链路与处理器1410通信。
另外,无线广域通信(例如,根据蜂窝或其他无线广域协议)可以经由WWAN单元1456发生,WWAN单元进而可以耦合到订阅者身份模块(SIM)1457。另外,为了能够接收和使用位置信息,还可以存在GPS模块1455。注意,在图14所示的实施例中,WWAN单元1456和诸如相机模块1454等集成捕获设备可以经由给定链路通信。
集成相机模块1454可以并入在盖中。为了提供音频输入和输出,音频处理器可以经由数字信号处理器(DSP)1460来实施,DSP 1460可以经由高清晰度音频(HDA)链路耦合到处理器1410。类似地,DSP 1460可以与集成编码器/解码器(CODEC)和放大器1462通信,集成编码器/解码器(CODEC)和放大器1462进而可以耦合到可以在机壳内实施的输出扬声器1463。类似地,放大器和CODEC 1462可以被耦合以从麦克风1465接收音频输入,在实施例中,麦克风1465可以经由双阵列麦克风(例如数字麦克风阵列)实施以提供高质量音频输入,以实现对系统内的各种操作的语音激活的控制。还注意,可以从放大器/CODEC 1462向耳机插孔1464提供音频输出。尽管在图14的实施例中示出了这些特定部件,但是应当理解,本发明的范围并不限于此。
实施例可以在许多不同的系统类型中实施。现在参考图15,示出了根据本发明的实施例的系统的块图。如图15所示,多处理器系统1500是点对点互连系统,并且包括经由点对点互连1550耦合的第一处理器1570和第二处理器1580。如图15所示,处理器1570和1580中的每一个可以是包括第一处理器核和第二处理器核(即,处理器核1574a和1574b以及处理器核1584a和1584b)的多核处理器,尽管处理器中可能潜在地存在更多的核。处理器中的每一个可以包括PCU 1575、1585或其他功率管理逻辑单元、以及节流电路1577、1587。
仍然参考图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包括接口1592,以通过P-P互连1539将芯片组1590与高性能图形引擎1538耦合。进而,芯片组1590可以经由接口1596耦合到第一总线1516。如图15所示,各种输入/输出(I/O)设备1514可以耦合到第一总线1516,以及耦合到将第一总线1516耦合到第二总线1520的总线桥1518。在一个实施例中,各种设备可以耦合到第二总线1520,所述各种设备包括例如键盘/鼠标1522、通信设备1526和诸如磁盘驱动器或可以包括代码1530的其他大容量存储设备的数据存储单元1528。此外,音频I/O 1524可以耦合到第二总线1520。实施例可以被并入到包括诸如智能蜂窝电话、平板计算机、上网本、UltrabookTM等的移动设备的其他类型的系统中。
现在参考图16,示出了根据实施例的系统的块图。更具体地,图16示出的是系统1600的一部分,系统1600可以是任何类型的计算系统,范围从诸如移动电话、平板计算机、膝上型计算机等的小型便携式设备到诸如台式系统、服务器计算机等的较大系统。在本文的实施例的典型环境中,计算系统可以至少有时用基于电池的电源供电,使得平台电气故障是可能的。尽管本发明的范围不限于此,但是这种电气故障可以包括电池电压下降到低于电压调节器欠压锁定电平。另一示例可以是电池短路保护故障。平台事件也可以在AC功率上发生。例如,AC适配器还具有过电流和短路保护机制。举例来说,当输出电流达到某一阈值时,AC适配器可以限制输出电流,并且使电压下降;一旦电压下降到低于某个阈值,AC适配器就关断。为了恢复,通常从墙壁上拔下AC适配器。另外,可编程电源通常要求电源在负荷汲取大于阈值电流时限制电流,并且在电压降到低于阈值电压时关断。为了防止这种电气故障,诸如功率管理集成电路(PMIC)的平台代理可以发出通知。平台事件的这种通知可以被实现为响应于检测到诸如电气故障的可能不利的平台事件而触发平台事件信号。如本文所述,该平台事件信号可以用于在处理器内引起节流。
具体地,如图16所示,系统1600包括处理器1610,处理器1610可以是多核处理器或其他SoC。在本文的实施例中,处理器1610可以被实施为处理器封装,并且可以包括一个或多个半导体管芯。如图所示,处理器1610包括多个处理元件16201-1620n。在一些情况下,处理元件1620可以是诸如同构处理核的同构处理元件。然而,在许多实施例中,可以存在包括核、图形处理器、控制器、专用功能单元等的异构处理元件1620。在一些实例中,处理元件1620的集合可以被分组到所谓的域中,其可以在公共或独立的性能状态处操作。
如图16进一步所示,处理器1610还包括节流电路1630。在所示的实施例中,节流电路1630可以包括多个单独的节流代理16301-1630n。如图所示,节流电路1630可以是分布式硬件电路,其中每个节流代理1630与对应的处理元件1620相关联。然而,应当理解,本发明的范围不限于此,并且在其他实施例中,除1:1之外的对应关系是可能的。在实施例中,节流电路1630及其组成节流代理16301-1630n可以被实施为硬件电路。此外,尽管在图16所示的实施方式中,每个节流代理1630与对应的处理元件1620相关联但是与对应的处理元件1620分离,但是在某些情况下,给定的节流代理可以被包括在对应的处理元件1620内。
仍然参考图16,进一步示出了功率目标代理(PTA)1640、功率管理代理(PMA)1650和使用监视器1660。尽管被示出为相对于处理器1610的外部部件,但是在一些实施例中,PTA1640、PMA1650和使用监视器1660可以至少部分地以在处理器1610的一个或多个处理引擎1620上执行的固件和/或软件来实施。例如,PTA 1640可以在操作系统或其他系统调度器内实施。这样,PTA 1640接收关于电源能力(例如,充电能力)的状态的信息。进而,在一些实施例中可以是固件或功率管理微代码的PMA 1650可以在一个或多个处理单元1620上执行。作为示例,专用核或微控制器可以用于执行PMA 1650以管理处理器1610的功耗。并且,使用监视器1660也可以在操作系统或其他系统调度器内实施以监视用户行为并且向PMA 1650提供提示信息。使用监视器1660可以优化处理器对功率(电池运行时间)和性能的利用。注意,在实施例中,使用监视器1660可以与功率目标代理1640捆绑,尽管这两个代理执行不同的功能。
如图16进一步所示,系统1600还包括平台监视器1670。平台监视器1670可以被配置成监视平台事件,并响应于检测到要触发节流的平台事件而断言节流信号。作为一个示例,平台监视器1670可以包括硬件电路以将临界电压轨与阈值进行比较的。当这种轨电压下降到低于阈值时,平台监视器1670可以被配置为输出节流信号。尽管不同的实施方式当然是可能的,但是在实施例中,平台监视器1670可以被实施为功率管理集成电路(PMIC)、充电控制器或其他平台硬件部件。
在正常操作期间,PTA 1640可以接收输入功率能力信息,并且至少部分地基于该输入功率能力信息来确定封装节流功率阈值或目标,该封装节流功率阈值或目标是在平台事件期间处理器1610的最大允许功耗级别。注意,该封装节流功率目标可以小于处理器的给定功率目标或预算。在一些情况下,处理器可以配置有多个功率级别。这种功率级别可以包括一个或多个较低的、长期的功率预算或限制(平均而言,处理器可以不超过该功率预算或限制)。处理器可以进一步配置有可以超过该长期功率预算的较高瞬时功率预算。在一些实施例中,应当理解,每个所配置的功率预算也可以具有相关联的节流功率目标。
根据输入功率能力信息的通知或诸如平台设备上的高负荷的另一通知的其他平台信息,PTA 1640可以至少部分地基于系统1600的电池源的可用电量来确定封装节流功率阈值。作为另一通知的一个示例,当调制解调器要以高功率尖峰操作以向远端基站传送时,调制解调器可以断言该信号以暂时对处理器进行节流。注意,在实施例中,即使在平台由AC源供电时,功率目标代理1640也可以监视输入功率条件以进行更新。更进一步地,至少部分地基于所监视的输入功率条件,PTA 1640可以主动设置封装节流功率目标。PTA 1640还可以将封装节流功率目标发送到节流电路1630的节流代理。
进而,功率管理代理1650可以至少部分地基于使用监视器1660提供的提示信息来生成转换信息,以使得节流代理能够将封装节流功率阈值转换成处理元件节流功率阈值或目标。作为示例,提示信息可以对应于关于在不同类型的处理元件1620上执行的工作负荷的优先级提示。在实施例中,提示信息是功率管理代理1650选择合适于处理器1610的参数的数值。这种提示信息可以是抽象概念,使得OS或使用监视器1660不与特定处理器相联系(该角色由功率管理代理1650完成)。在一个实施例中,使用监视器1660可以被配置为监视用户行为并且提供提示信息作为计数器。例如,假设两种不同类型的用户活动,即文件复制活动和游戏活动。利用这种布置,用户监视器1660可以输出具有用于文件复制活动的第一提示值(提示-1)和用于游戏活动的第二提示值(提示-2)的提示信息。至少部分地基于该提示信息,PMA1650可以向对应的节流代理1630提供转换信息(例如,以控制信号的形式)。功率管理代理1650可以响应于该特定提示信息而进行:如果接收到“提示-1”,则为节流代理16301设置10%的转换比率,并且为节流代理16302设置90%的转换比率;并且如果接收到“提示-2”,则为节流代理16301设置50%的转换比率,并且为节流代理16302设置50%的转换比率。进而,每个节流代理1630使用该转换信息和封装节流功率阈值来确定一个或多个相关联的处理元件1620的适当节流操作点。
注意,以上对设置封装节流功率目标和单独的处理元件节流功率目标的操作的讨论可以在正常操作期间主动地发生,例如,根据给定的持续时间或执行循环。然后,在检测到触发处理器节流的给定平台事件的操作期间,发生用于对单独的处理元件1620进行节流的快速低延迟的基于硬件的操作。也就是说,当平台监视器1670识别出平台中的变化(例如从AC电源到电池源的操作功率的切换)时,它向节流电路1630发送节流信号,以指示已经招致的平台事件。并且响应于该节流信号,单独的节流代理1630立即强制对应的处理元件1620在不大于对应的节流操作点处操作,从而实现低延迟节流。应当理解,虽然在图16的实施例中以这种高级别示出,但是许多变化和替代是可能的。
现在参考图17,示出了根据本发明的实施例的方法的流程图。更具体地,方法1700是根据实施例的用于通过功率目标代理控制平台功耗以及通过用户监视器监视用户活动的方法。这样,方法1700可以由硬件电路、软件、固件和/或其组合来执行。在特定实施例中,功率目标代理和使用监视器可以至少部分地被实施为软件,并且在一个特定实施例中,代理可以被包括在操作系统或其他监管软件内。
如图所示,方法1700开始于接收输入电源能力改变的通知(块1710)。输入电源能力改变可以是电池能力或AC电源状态。电池能力可能由于电池充电状态、温度或老化效应而改变。AC电源可以是USB功率递送集线器,其取决于插入的端口的数量来改变所通告的功率。输入功率能力改变的这种指示可以是从诸如PMIC、电池电量计、USB功率递送控制器、电池充电电路、电压调节器等的一个或多个平台实体提供给平台目标代理的例行通知。例如,可以提供电池能力(例如,充电百分比)的周期性通知。或者在其他情况下,功率目标代理可以例行地轮询该信息。
在任何事件中,控制从块1710传到块1720,其中可以至少部分地基于该能力改变来设置封装节流功率目标。更具体地,如本文所述,可以至少部分地基于电池的充电能力来设置峰值功率阈值。作为一个代表性示例,当平台由电池供电时,功率目标代理可以在电池具有80%电量时将封装节流功率目标设置为50瓦(W)的级别,并且在电池具有20%电量时将封装节流功率目标设置在30W。注意,即使在平台提供有AC电源时,功率目标代理也可以被配置成在电池具有80%电量时将封装节流功率目标设置或编程为50W,并且在电池具有20%电量时将封装节流功率目标编程为30W(根据以上代表性示例)。在块1730处,可以将该封装节流功率目标存储在配置储存器中。例如,该信息可以存储在处理器的配置寄存器的节流功率阈值字段中。另外,功率目标代理可以将该封装节流功率目标发送到节流代理。
功率目标代理(或操作系统或其他系统软件的另一部分)也可以执行调度活动。因此,如图17进一步所示,在块1740处,功率目标代理可以将工作负荷调度到处理元件。例如,计算密集型工作负荷可以被调度到核处理元件,图形密集型工作负荷可以被调度到图形处理元件,网络工作负荷可以被调度到接口控制器等。在块1750处,使用监视器可以向功率管理代理提供提示信息。更具体地,该提示信息可以涉及关于在不同类型的处理元件上调度的工作负荷的优先级信息。例如,对于以计算为中心的工作负荷,核处理元件可以具有较高的优先级,并且因此该提示信息可以指示相同的优先级。进而,对于图形密集型工作负荷,(一个或多个)图形处理元件可以具有较高的优先级,并且因此在该实例中可以为这些(一个或多个)处理元件提供对应的较高优先级提示信息。尽管本发明的范围不限于此,但是在一个实施例中,该提示信息可以采取转换比率等的形式。应当理解,虽然在图17的实施例中以这种高级别示出,但许多变化和替代是可能的。
现在参考图18,示出了根据本发明的另一实施例的方法的流程图。更具体地,如图18所示,方法1800是用于经由本文所述的功率管理代理来控制处理器内的功耗的方法。这样,方法1800可以由硬件电路、软件、固件和/或其组合来执行。在特定实施例中,功率管理代理可以至少部分地实施为硬件电路和固件,并且在一个特定实施例中,功率管理代理可以是诸如专用核或微控制器的专用处理元件,以执行功率管理代码。
如图所示,方法1800开始于至少部分地基于功率预算和工作负荷来确定用于每个处理元件的操作点(块1810)。例如,假设处理器配置有给定功率预算,例如TDP级别或处理器可以操作的其他长期功率级别(并且其可以被存储在处理器的配置储存器中)。功率管理代理也可以具有关于要在不同处理元件上执行的工作负荷的信息。因此,在实施例中,功率管理代理可以被配置为至少部分地基于来自主机软件的请求来确定每个处理元件的操作点,以递送功率和性能的期望组合。这样,功率管理代理可以执行该总功率预算到处理元件中每一个的分配或预算。例如,当所有处理元件执行相同的工作负荷时,可以为处理元件中的每一个确定公共操作点。相反,在更典型的情境中,一些处理元件可能具有比其他处理元件更高的工作负荷和/或可能消耗比其他处理元件更高的功率。这样,可以为每个处理元件确定非对称操作点(例如,除了其他潜在参数之外,每个非对称操作点由操作电压和操作频率形成)。此后,在块1820处,这些操作点可以被发送到单独的处理元件。响应于该操作点信息,使处理元件在这种操作点处操作。应当理解,在块1810和1820处的这些操作可以在平台的正常操作期间迭代地进行。
仍然参考图18,在菱形1830处,确定是否接收到提示信息(例如,从使用监视器)。如果确定没有接收到这种提示信息,则控制接着传到菱形1840以确定更新周期是否已经完成。该更新周期是功率管理代理可以分析功率预算和当前工作负荷以确定是否更新操作点的持续时间。如果该更新周期已经完成,则控制传回到上述块1810。
仍然参考图18,相反,如果确定已经接收到更新的提示信息,则控制传到块1850。在块1850处,可以确定转换。更具体地,该转换是用于取得封装节流功率目标并在不同的处理元件之间适当地分配该封装节流功率目标的某种形式的操作。在实施例中,功率管理代理可以至少部分地基于从使用监视器接收的提示信息来执行该转换。以这种方式,可以基于不同处理元件的优先级、关键性、用户有用性等将可用功率预算更公平地分配给不同处理元件。
在一个实施例中,封装到元件节流功率的转换可以通过缩放因数的方式。在一个这样的示例中,假设处理器包括两个处理元件(核和图形处理器),并且还假设封装节流功率阈值是50W。进一步出于示例目的而假设,当工作负荷是核密集型的(例如,主机软件复制文件)时,功率管理代理生成转换信息以将90%的比率设置到核,并且将10%的比率设置到图形处理器。利用这种比率或缩放因数布置,处理元件的所得到的功率预算对应于核的45W和图形处理器的5W的级别。相反,假设工作负荷(例如,用于主机软件渲染图像)使得功率管理代理将20%的比率设置到核,并且将80%的比率设置到图形处理器。利用这种比率或缩放因数布置,处理元件的所得到的功率预算对应于核的10W和图形的40W的级别。
注意,实施例可以使用不同的技术来使功率管理代理能够提供转换信息,以定义要由每个节流代理动态计算的预算。因此,尽管执行该转换的不同方式是可能的,但在一些示例中,可以根据与处理元件中的每一个相关联的比率信息来进行分配。或者基于由功率管理代理执行的转换操作,可以提供指针信息。进而,指针信息用于使得能够访问包括操作点信息的表。在转换信息包括比率信息的示例中,每个处理元件的比率值(例如,系数)的设置可以至少部分地基于从使用监视器接收的提示信息。最后,进一步参考图18,控制传到块1860,其中转换信息可以被发送到节流代理。尽管在图18的实施例中以这种高级别示出,但是许多变化和替代是可能的。
现在参考图19,示出了根据本发明的又一实施例的方法的流程图。更具体地,方法1900是根据实施例的使用节流代理来设置处理元件功率节流限制的方法。这样,方法1900可以由硬件电路、软件、固件和/或其组合来执行。在特定实施例中,可以提供一个或多个硬件电路(例如具有多个单独的硬件电路的分布式节流电路,每个单独的硬件电路与至少一个处理元件相关联)以执行方法1900。注意,用于设置单独的平台元件节流功率目标的方法1900可以根据所谓的慢循环来执行,因为该目标设置可以以非关键方式来执行,因为这种操作不影响实际节流操作的低延迟启动。
如图19所示,方法1900开始于从功率目标代理接收封装节流功率目标以及从功率管理代理接收转换信息(块1910)。尽管在图19中被示为单个操作,但是应当理解,这两个不同的值可以异步地(并且从两个不同的实体)并且根据给定的持续时间来接收。在任何事件中,控制接下来传到块1920,其中可以至少部分地基于这两个值来确定处理元件节流功率目标。作为一个示例,节流代理例如根据以下等式将处理元件节流功率目标(P元件_节流)计算为封装节流功率目标(P封装_节流)(如由功率目标代理所设置的)和系数(C功率_管理)(如由功率管理代理所给出的)的函数:P元件_节流=f(P封装_节流,C功率_管理)。在一些实施例中,可能不存在对于节流代理从封装到元件节流功率阈值转换的特定时序要求。这是因为功率目标代理可以仅响应于特定平台事件(例如,电池条件的变化)来设置节流功率,该特定平台事件通常可能具有大约几秒的延迟。另外,应当理解,功率管理代理可以优化以容纳通常不具有硬性时序要求的软件活动类型。
在另一实施例中,节流代理可以被配置成维持查找表(其可以由平台固件提供,例如由基本输入/输出系统(BIOS)提供)。利用该实施例中,功率管理代理为给定的一组封装节流功率阈值提供指向查找表的指针。
仍然参考图19,控制接下来传到块1930,其中可以基于该处理元件节流功率目标来确定用于处理元件的节流操作点。作为示例,节流代理可以基于该处理元件节流功率目标来访问本地查找表以标识对应的操作点(例如,电压/频率对)。接下来在块1940处,节流操作点可以被存储在给定的存储位置中(例如,在节流代理内部)。作为一个示例,节流代理可以包括存储所确定的节流操作点的配置储存器,如以下进一步所述描述的,当接收到节流指示时,所确定的节流操作点可以被读取并且用于控制节流活动。
注意,对于本文的实施例,至少部分地基于给定工作负荷的处理元件的优先级,不同处理元件的所得到的操作点可以处于非对称级别。此外,应当理解,可以使至少一个处理元件(以及可能多个处理元件)在大于最小操作点的节流操作点处操作。也就是说,基于电池能力(例如,充电级别),节流操作点可以高于典型的节流点(即,在最低操作点处,其可以存储在处理器的配置储存器中)。作为示例,该最低操作点可以对应于低频模式,该低频模式是处理器可以操作的最低频率和电压。应当理解,虽然在图19的实施例中以这种高级别示出,但许多变化和替代是可能的。
在实施例中,节流代理可以使用所计算的处理元件节流功率目标以使一个或多个相关联的处理元件在给定操作点处操作。对于核或图形处理器,操作点可以被转换成操作电压/频率对。对于诸如输入/输出(IO)端口的其他处理元件,操作点可以被转换为诸如动态链路宽度、带宽等的其他操作参数。注意,节流代理可以被配置为立即执行节流以避免平台电气故障。在一些情况下,如果处理元件不能立即转变到所指示的节流操作点(例如,由于硬件限制),则它可以在锁定到最优节流状态之前首先转变到安全状态(例如,低于当前操作点但高于节流操作点的中间操作点)。
现在参考图20,示出了根据本发明的又一实施例的方法的流程图。更具体地,图20的方法2000是根据实施例的使用节流代理来对处理元件进行节流的方法。这样,方法2000可以由硬件电路、软件、固件和/或其组合来执行。对于本文的实施例,方法2000可以由给定硬件电路执行,即由给定节流代理执行。通过使用硬件电路(以及潜在地与一个或多个处理元件相关联的专用硬件电路),节流操作可以以非常低的延迟发生。这样,可以根据快速循环来执行方法2000,以使得能够发生低延迟节流。例如,在一个实施例中,节流代理可以被配置为使节流在从平台事件的指示开始的亚微秒的延迟窗口内发生。注意,通过在实施例中使用分布式硬件电路,可以避免OS或其他系统软件(和/或诸如功率管理代理的功率控制电路/固件)确定适当的节流点并控制处理元件的开销。
如图20所示,方法2000开始于读取节流操作点(块2010)。如上所述,该节流操作点可以被存储在节流代理的配置储存器中。接下来,在菱形2020处确定是否例如从平台监视器接收到节流信号。如本文所述,该节流信号因此向节流代理指示,现在处理器被控制在不大于封装节流功率阈值的功率级别处操作。这样,当(例如)去除AC源时,平台事件的指示(例如,节流信号)发生。响应于该指示,处理器可以被配置为将总功耗节流到先前编程的功率目标(例如,如由功率目标代理所设置的,在80%电量时为50W,在20%电量时为30W)。
如果确定已经接收到节流信号,则控制传到块2030,其中使处理元件在节流操作点处操作。例如,在处理元件包括内部时钟生成器和相关联的电压调节器的情况下,节流代理可以发送操作点命令以使操作频率和操作电压中的一个或多个被内部地更新到处理元件。在其他情况下,节流代理可以与诸如相关联的时钟生成器、电压调节器、链路状态机等的其他控制部件通信,以控制适当的操作参数,使得处理元件在不大于处理元件节流功率阈值的功率级别处操作。应当理解,虽然在图20的实施例中以这种高级别示出,但是许多变化和替代是可能的。
以下示例涉及另外的实施例。
在一个示例中,一种处理器包括:多个处理元件,多个处理元件用于执行操作;PMA,PMA耦合到多个处理元件以控制多个处理元件的功耗;以及节流电路,节流电路耦合到PMA。节流电路可以包括多个节流代理,每个节流代理与多个处理元件中的一个处理元件相关联,其中,PMA用于将转换信息传递到节流电路,并且多个节流代理中的每个节流代理用于至少部分地基于转换信息来确定用于多个处理元件中的相关联的一个处理元件的节流功率级别。
在示例中,转换信息包括比率信息,并且PMA用于至少部分地基于从使用监视器接收的提示信息来确定转换信息,提示信息用于指示多个处理元件的相对优先级。
在示例中,转换信息包括指针信息,并且多个节流代理中的第一节流代理用于利用指针信息的第一指针来访问查找表,以确定用于第一处理元件的第一节流功率级别。
在示例中,第一节流代理用于基于第一节流功率级别来确定用于第一处理元件的第一操作点,并且向第一处理元件发送操作点更新,以使第一处理元件在第一操作点处操作。
在示例中,第一操作点大于最小操作点。
在示例中,功率目标代理用于至少部分地基于电池的充电能力的改变来设置用于处理器的封装节流功率级别。
在示例中,平台监视器用于响应于平台事件而向节流电路传递节流信号,其中,平台事件包括平台到电池操作的切换,功率目标代理用于进一步向节流电路传递封装节流功率级别。
在示例中,封装节流功率级别小于处理器的热设计功率,并且节流电路用于使多个处理元件中的至少一些在大于最小操作点的操作点处操作。
在另一示例中,一种方法包括:在包括多个处理电路的SoC的功率控制器中,响应于平台事件,至少部分地基于提示信息来确定用于SoC的节流功率阈值的转换信息;以及将转换信息发送到SoC的多个节流代理,多个节流代理中的每个节流代理与多个处理电路中的至少一个处理电路相关联,以使多个节流代理至少部分地基于转换信息,来将多个处理电路中的至少一个处理电路的操作点更新到大于最小操作点的节流级别。
在示例中,该方法还包括从使用监视器接收提示信息,提示信息包括关于多个处理电路的优先级信息。
在示例中,该方法还包括:在多个节流代理中接收转换信息;由多个节流代理中的第一节流代理使多个处理电路中的第一处理电路基于转换信息的第一转换要素在第一操作点处操作;以及由多个节流代理中的第二节流代理使多个处理电路中的第二处理电路基于转换信息的第二转换要素在第二操作点处操作,第二操作点大于第一操作点,并且其中,根据提示信息,第二处理电路具有比第一处理电路更高的优先级。
在示例中,确定转换信息包括至少部分地基于提示信息来生成多个系数,每个系数与多个处理电路中的一个处理电路相关联。
在示例中,该方法还包括:在多个节流代理中的第一节流代理中,基于多个系数中的第一系数和针对SoC的节流功率限制,来计算用于多个处理电路中的第一处理电路的第一节流功率级别;以及使第一处理电路基于第一节流功率级别在第一操作点处操作,第一操作点大于最小操作点。
在示例中,该方法还包括:使第一处理电路在中间操作点处操作,中间操作点低于第一处理电路先前操作所在的先前操作点并且高于第一操作点;以及在已经完成对第一处理电路的硬件限制之后,使第一处理电路在第一操作点处操作。
在示例中,确定转换信息包括至少部分地基于提示信息来生成多个指针,每个指针与多个处理电路中的一个处理电路相关联。
在示例中,该方法还包括:由多个节流代理中的第一节流代理使用多个指针中的第一指针来访问表,以获得用于多个处理电路中的第一处理电路的第一节流功率级别;以及使第一处理电路基于第一节流功率级别在第一操作点处操作,第一操作点大于最小操作点。
在另一示例中,包括指令的计算机可读介质用于执行上述示例中的任一个的方法。
在另一示例中,包括数据的计算机可读介质将由至少一个机器使用来制造至少一个集成电路以执行以上示例中的任一个的方法。
在另一示例中,一种装置包括用于执行上述示例中的任一个的方法的单元。
在又一示例中,一种系统包括:第一电源,第一电源用于向系统提供功率;第二电源,第二电源用于向系统提供功率,第二电源包括电池;充电电路,充电电路用于对第二电源进行充电;功率管理集成电路,功率管理集成电路耦合到处理器,其中,功率管理集成电路用于响应于功率从第一电源到第二电源的切换而向处理器发送节流信号,其中,第二电源和充电电路中的至少一个用于将电池的充电能力传递到处理器;以及处理器。
在示例中,处理器包括:至少一个核,至少一个核用于执行第一指令;至少一个图形处理器,至少一个图形处理器用于执行第二指令;功率控制器,功率控制器耦合到至少一个核和至少一个图形处理器,以根据处理器的功率预算来控制至少一个核和至少一个图形处理器的功耗,其中,功率目标代理用于至少部分地基于充电能力来主动地确定处理器的节流功率预算。进而,功率控制器用于基于至少一个核和至少一个图形处理器的优先级来主动地确定转换信息。该处理器还可以包括节流电路,节流电路耦合到功率控制器,其中,节流电路用于至少部分地基于转换信息和节流功率预算来主动地确定至少一个核的第一节流功率预算和至少一个图形处理器的第二节流功率预算,并且响应于节流信号,使至少一个核基于第一节流功率预算在第一操作点处操作并且使至少一个图形处理器基于第二节流功率预算在第二操作点处操作。
在示例中,转换信息包括比率信息,并且功率控制器用于至少部分地基于从使用监视器接收的提示信息来确定转换信息,提示信息用于指示至少一个核和至少一个图形处理器的相对优先级。
在示例中,转换信息包括指针信息,并且节流电路用于利用指针信息的第一指针来访问查找表,以确定至少一个核的第一节流功率预算,并且利用指针信息的第二指针来访问查找表,以确定至少一个图形处理器的第二节流功率预算。
在示例中,该功率控制器用于:使至少一个核在中间操作点处操作,中间操作点低于至少一个核先前操作所在的先前操作点并且高于第一操作点,第一操作点大于最小操作点;并且在已经完成对至少一个核的硬件限制之后,使至少一个核在第一操作点处操作。
应当理解,上述示例的各种组合是可能的。
注意,术语“电路”和“电路系统”在本文可互换使用。如本文所使用的,这些术语和术语“逻辑单元”用于单独地或以任何组合指代模拟电路、数字电路、硬连线电路、可编程电路、处理器电路、微控制器电路、硬件逻辑电路、状态机电路和/或任何其他类型的物理硬件部件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是相反,其他实施例可以针对用于处理指令的其他类型的装置,或者包括响应于在计算设备上执行而使设备运行本文描述的方法和技术中的一个或多个的指令的一个或多个机器可读介质。
实施例可以以代码实施,并且可以存储在其上存储有指令的非瞬态存储介质上,所述指令可以用于对系统进行编程以执行所述指令。实施例还可以以数据实施,并且可以存储在非暂时性存储介质上,如果由至少一个机器使用,则该非暂时性存储介质使该至少一个机器制造至少一个集成电路以执行一个或多个操作。另外的实施例可以在计算机可读存储介质中实施,该计算机可读存储介质包括当被制造到SoC或其他处理器中时用于配置SoC或其他处理器以执行一个或多个操作的信息。存储介质可以包括但不限于:任何类型的盘,包括软盘、光盘、固态驱动器(SSD)、紧凑盘只读存储器(CD-ROM)、可重写紧凑盘(CD-RW)和磁光盘;半导体设备,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存存储器、电可擦除可编程只读存储器(EEPROM);磁卡或光卡,或适合于存储电子指令的任何其他类型的介质。
尽管已经针对有限数量的实施例描述了本发明,但是本领域的技术人员将从中意识到许多修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围内的所有这些修改和变化。

Claims (18)

1.一种装置,包括:
多个处理元件,包括第一处理核、第二处理核和图形处理器,所述第一处理核包括比所述第二处理核更低功率的处理核;
功率管理代理(PMA),耦合到所述多个处理元件,所述PMA控制所述多个处理元件的功耗;以及
节流电路,耦合到所述PMA,所述节流电路使所述处理元件基于由所述PMA提供的转换信息在对应的电压/频率对下操作;
其中,所述PMA为具有不同属性的工作负荷提供不同的转换信息。
2.根据权利要求1所述的装置,其中,所述PMA基于功率目标来控制所述多个处理元件的功耗。
3.根据权利要求1或2所述的装置,其中,所述不同的转换信息还使所述节流电路为所述图形处理器配置不同的功率水平。
4.根据权利要求1至3中任一项所述的装置,其中,所述不同属性包括不同工作负荷优先级,并且其中,所述不同的转换信息包括基于第一工作负荷优先级的第一转换信息和基于第二工作负荷优先级的第二转换信息。
5.根据权利要求4所述的装置,其中,所述第一转换信息包括指示用于所述第一处理核、所述第二处理核和所述图形处理器的第一操作点的信息,并且所述第二转换信息包括指示用于所述第一处理核、所述第二处理核和所述图形处理器的第二操作点的信息。
6.根据权利要求4所述的装置,其中,所述第一操作点和所述第二操作点包括用于所述第一处理核、所述第二处理核和所述图形处理器的第一组频率和第二组频率。
7.根据权利要求1至6中任一项所述的装置,其中,所述不同的转换信息包括不同的对应比率信息。
8.根据权利要求1至7中任一项所述的装置,其中,所述PMA至少部分地基于提示信息来确定所述不同的转换信息。
9.根据权利要求8所述的装置,其中,所述提示信息基于第一工作负荷属性的第一特性和第二工作负荷属性的第二特性。
10.一种方法,包括:
在包括第一处理核、第二处理核和图形处理器的多个处理元件上执行工作负荷,所述第一处理核包括比所述第二处理核更低功率的处理核;
通过功率管理代理(PMA)控制所述多个处理元件的功耗;
通过节流电路使所述处理元件基于由所述PMA提供的转换信息在对应的电压/频率对下操作;以及
由所述PMA为具有不同属性的工作负荷提供不同的转换信息。
11.根据权利要求10所述的方法,其中,所述PMA基于功率目标来控制所述多个处理元件的功耗。
12.根据权利要求10或12所述的方法,其中,所述不同的转换信息还使所述节流电路为所述图形处理器配置不同的功率水平。
13.根据权利要求10至12中任一项所述的方法,其中,所述不同属性包括不同工作负荷优先级,并且其中,所述不同的转换信息包括基于第一工作负荷优先级的第一转换信息和基于第二工作负荷优先级的第二转换信息。
14.根据权利要求13所述的方法,其中,所述第一转换信息包括指示用于所述第一处理核、所述第二处理核和所述图形处理器的第一操作点的信息,并且所述第二转换信息包括指示用于所述第一处理核、所述第二处理核和所述图形处理器的第二操作点的信息。
15.根据权利要求13所述的方法,其中,所述第一操作点和所述第二操作点包括用于所述第一处理核、所述第二处理核和所述图形处理器的第一组频率和第二组频率。
16.根据权利要求10至15中任一项所述的方法,其中,所述不同的转换信息包括不同的对应比率信息。
17.根据权利要求10至16中任一项所述的方法,其中,所述PMA至少部分地基于提示信息来确定所述不同的转换信息。
18.根据权利要求17所述的方法,其中,所述提示信息基于第一工作负荷属性的第一特性和第二工作负荷属性的第二特性。
CN202410076713.XA 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法 Pending CN117873302A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/969,198 2018-05-02
US15/969,198 US10739844B2 (en) 2018-05-02 2018-05-02 System, apparatus and method for optimized throttling of a processor
PCT/US2019/025299 WO2019212669A1 (en) 2018-05-02 2019-04-02 System, apparatus and method for optimized throttling of a processor
CN201980020521.4A CN111886562A (zh) 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980020521.4A Division CN111886562A (zh) 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法

Publications (1)

Publication Number Publication Date
CN117873302A true CN117873302A (zh) 2024-04-12

Family

ID=65229352

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980020521.4A Pending CN111886562A (zh) 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法
CN202410076713.XA Pending CN117873302A (zh) 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201980020521.4A Pending CN111886562A (zh) 2018-05-02 2019-04-02 用于处理器的优化节流的系统、装置和方法

Country Status (7)

Country Link
US (1) US10739844B2 (zh)
JP (2) JP7416706B2 (zh)
KR (2) KR20240016449A (zh)
CN (2) CN111886562A (zh)
BR (1) BR112020019436A2 (zh)
DE (1) DE112019001522T5 (zh)
WO (1) WO2019212669A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11199894B2 (en) 2018-10-30 2021-12-14 Dell Products L.P. Method and apparatus for providing high bandwidth capacitor circuit in power assist unit
US11144105B2 (en) * 2018-10-30 2021-10-12 Dell Products L.P. Method and apparatus to provide platform power peak limiting based on charge of power assist unit
US10990149B2 (en) 2018-10-31 2021-04-27 Dell Products L.P. Method and apparatus for providing peak optimized power supply unit
US10852808B2 (en) 2018-10-31 2020-12-01 Dell Products, L.P. Method and apparatus to distribute current indicator to multiple end-points
US11106261B2 (en) 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
US11054882B2 (en) * 2019-02-21 2021-07-06 Apple Inc. Externally-triggered throttling
US10936048B2 (en) 2019-03-29 2021-03-02 Intel Corporation System, apparatus and method for bulk register accesses in a processor
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11513576B2 (en) * 2019-06-01 2022-11-29 Apple Inc. Coherent power management system for managing clients of varying power usage adaptability
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11157067B2 (en) 2019-12-14 2021-10-26 International Business Machines Corporation Power shifting among hardware components in heterogeneous system
US11275663B2 (en) * 2020-06-08 2022-03-15 Intel Corporation Fast dynamic capacitance, frequency, and/or voltage throttling apparatus and method
US20220091656A1 (en) * 2020-09-23 2022-03-24 Intel Corporation Processor peak current control apparatus and method
US12093100B2 (en) 2020-09-26 2024-09-17 Intel Corporation Hierarchical power management apparatus and method
US11722138B2 (en) * 2020-10-20 2023-08-08 Micron Technology, Inc. Dynamic power and thermal loading in a chiplet-based system
KR20220053246A (ko) * 2020-10-22 2022-04-29 삼성전자주식회사 전자 장치 및 전자 장치에서 전력 제어 방법
KR102283902B1 (ko) 2021-02-17 2021-08-02 주식회사 리빙케어 서버 컴퓨터용 메모리 모듈의 온도 데이터 검출방법
US20220413581A1 (en) 2021-06-25 2022-12-29 Nuvia, Inc. Dynamic Power Management for SoC-based Electronic Devices
US11747882B2 (en) * 2021-10-26 2023-09-05 Dell Products L.P. Central processor/accelerator power management system
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency
US20240192747A1 (en) * 2022-12-07 2024-06-13 Dell Products, L.P. Sustained power limit control in heterogeneous computing platforms

Family Cites Families (80)

* 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
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7539885B2 (en) 2000-01-13 2009-05-26 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
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
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
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
US8510581B2 (en) 2007-03-26 2013-08-13 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
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
US8688926B2 (en) 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
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
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
US9354689B2 (en) 2012-03-13 2016-05-31 Intel Corporation Providing energy efficient turbo operation of a processor
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9189045B2 (en) 2012-10-08 2015-11-17 Dell Products L.P. Power management system
US9383806B2 (en) 2013-04-17 2016-07-05 Apple Inc. Multi-core processor instruction throttling
US20160070327A1 (en) * 2014-09-08 2016-03-10 Qualcomm Incorporated System and method for peak current management to a system on a chip
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
JP6123830B2 (ja) * 2015-03-30 2017-05-10 日本電気株式会社 情報処理装置、電力制御方法、プログラム、制御装置
US10613611B2 (en) * 2016-06-15 2020-04-07 Intel Corporation Current control for a multicore processor

Also Published As

Publication number Publication date
US10739844B2 (en) 2020-08-11
US20190041969A1 (en) 2019-02-07
JP2024024042A (ja) 2024-02-21
KR20240016449A (ko) 2024-02-06
JP7416706B2 (ja) 2024-01-17
BR112020019436A2 (pt) 2021-01-19
DE112019001522T5 (de) 2020-12-31
JP2021520537A (ja) 2021-08-19
CN111886562A (zh) 2020-11-03
WO2019212669A1 (en) 2019-11-07
KR20200139150A (ko) 2020-12-11

Similar Documents

Publication Publication Date Title
JP7416706B2 (ja) プロセッサの最適スロットルのためのシステム、機器、及び方法
US20220291732A1 (en) Techniques To Enable Communication Between A Processor And Voltage Regulator
CN107250946B (zh) 执行对平台装置的动态功率控制
CN107077175B (zh) 提供针对多芯片封装的热参数报告的装置和方法
US11435816B2 (en) Processor having accelerated user responsiveness in constrained environment
US11409560B2 (en) System, apparatus and method for power license control of a processor
US10379904B2 (en) Controlling a performance state of a processor using a combination of package and thread hint information
US10324519B2 (en) Controlling forced idle state operation in a processor
US10289188B2 (en) Processor having concurrent core and fabric exit from a low power state
US10719326B2 (en) Communicating via a mailbox interface of a processor
EP3969984A1 (en) System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
US11366506B2 (en) System, apparatus and method for globally aware reactive local power control in a processor
US20180314289A1 (en) Modifying an operating frequency in a processor
US20220214737A1 (en) System, apparatus and method for responsive autonomous hardware performance state control of a processor
US20160224090A1 (en) Performing context save and restore operations in a processor
CN109791427B (zh) 使用滑动平均值的处理器电压控制
EP3340039A1 (en) Processor prefetch throttling based on short streams

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