CN105308571B - 基于活动处理器的动态电压和频率管理 - Google Patents

基于活动处理器的动态电压和频率管理 Download PDF

Info

Publication number
CN105308571B
CN105308571B CN201480030491.2A CN201480030491A CN105308571B CN 105308571 B CN105308571 B CN 105308571B CN 201480030491 A CN201480030491 A CN 201480030491A CN 105308571 B CN105308571 B CN 105308571B
Authority
CN
China
Prior art keywords
processor
operating point
power
activity
point
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
CN201480030491.2A
Other languages
English (en)
Other versions
CN105308571A (zh
Inventor
J-S·李
D·C·穆雷
练维汉
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN105308571A publication Critical patent/CN105308571A/zh
Application granted granted Critical
Publication of CN105308571B publication Critical patent/CN105308571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • 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/3215Monitoring of peripheral devices
    • 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/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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

Abstract

本发明的在实施例中公开了一种系统,该系统可以包括多个处理器和被配置成在各操作点之间切换处理器的自动功率状态控制器(APSC)。可以由被编程到APSC中的数据来描述操作点,并且APSC可以包括寄存器,该寄存器能够利用目标操作点请求来编程,该请求用于标识所描述操作点中用于处理器的目标操作点。对操作点进行描述的数据还可以包括在操作点处可以同时活动的处理器的数量是否受到限制的指示。基于该指示和活动处理器的数量,APSC可以利用降低的操作点来覆盖所请求的操作点。在一些实施例中,数字功率估计器(DPE)可以监测处理器的操作,并可以在检测到高功耗时抑制处理器。

Description

基于活动处理器的动态电压和频率管理
技术领域
本发明涉及处理器中的功率管理。
背景技术
能够结合在给定半导体衬底上以形成集成电路的晶体管的数量一直在增大。同时,操作集成电路的时钟频率(“操作频率”)也持续增大。尽管电源电压大小随着时间在降低,但集成电路的功耗一直在增大。在将集成电路用于能量存储有限的设备中时(例如,依靠电池操作的移动设备),功耗是必须对设备重新充电之前设备能够使用多长时间的一个因素。此外,功耗产生的热量可能是移动设备和非移动设备中都有的问题。
包括处理器以执行软件的设备能够管理处理器中的功耗。典型地,如果当前需要在处理器上执行软件,可以停止给定的处理器。停止处理器可以包括时钟门控和功率门控,在时钟门控中停止时钟,但处理器保持加电并准备好在重新启动时钟时执行指令,在功率门控中,使处理器断电,并在执行指令之前加电重置。
很多设备包括多个处理器,包括移动设备。处理器还可能是大功率消耗者,尤其是在特定工作负荷下。因此,可能有一些这样的操作点(电源电压大小和操作频率的组合),在这些操作点处,如果所有处理器都活动地执行,则设备处于超过设备中功率源容量的风险。亦即,电源能够输出最大量的电流。如果所有处理器都在某些操作点活动地执行功率密集型工作负荷,则造成的电流消耗可能超过功率源能够提供的电流量。超过功率源容量可能导致错误的操作(例如,电源电压大小可能下降到集成电路在该操作频率下不再正常工作的点)。
发明内容
在实施例中,一种系统可以包括多个处理器和被配置成在各操作点之间切换处理器的自动功率状态控制器(APSC)。可以由编写到APSC中的数据来描述操作点,并且APSC可以包括寄存器,该寄存器可以利用目标操作点请求来编程,该请求用于标识所描述操作点中用于处理器的目标操作点。描述操作点的数据还可以包括在操作点可以同时活动的处理器数量是否受到限制的指示。基于该指示和活动处理器的数量,APSC可以利用降低的操作点覆盖请求的操作点。降低的操作点可以是该数量的活动处理器可以安全工作(例如,不会超过电源的容量)的操作点。在一些实施例中,数字功率估计器(DPE)可以监测处理器的操作,并可以在检测到高功耗时抑制处理器。在包括DPE的实施例中,依赖于DPE抑制以控制最大功耗情形,降低的操作点可以稍微高于处理器可以安全工作的操作点。
附图说明
现在对附图进行简要说明,下面的具体说明将参照附图进行描述。
图1是包括中央处理单元(CPU)复合体的片上系统的一个实施例的框图。
图2是图1所示的自动功率状态控制器(APSC)的一个实施例的框图。
图3是示出了图2所示APSC的一个实施例的操作的流程图。
图4是示出了图1所示数字功率估计器(DPE)的一个实施例结合APSC的操作的流程图。
图5是CPU复合体中的DPE的实施例方框图。
图6是示出了选择性启用DPE的一个实施例的流程图。
图7是示出了在启用DPE时图5中部件的一个实施例的操作的流程图。
图8是系统的一个实施例的框图。
尽管本发明易受各种修改形式和替代形式的影响,但附图中以举例的方式示出了其具体实施例并将在本文详细描述。然而,应当理解,本文的附图和详细描述并非旨在将本发明限制于所公开的特定形式,而正相反,其目的在于覆盖落在由所附权利要求所限定的本发明的实质和范围内的所有修改形式、等同形式和替代形式。本文所使用的标题仅用于组织的目的,并非意在用于限制说明书的范围。如在整个专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的意义(即,意味着必须)来使用“可以”一词。类似地,词语“包括”(“include”,“including”,和“includes”)是指包括但不限于。
各种单元、电路或其他部件可被描述为“被配置成”执行一项或多项任务。在此类情境中,“被配置成”是对一般意味着“具有”在操作期间执行这一项或多项任务的“电路”的结构的宽泛表述。如此,单元/电路/部件可被配置成即使在单元/电路/部件当前未接通时也执行所述任务。一般来讲,形成对应于“被配置成”的结构的电路可包括硬件电路和/或存储可执行以实现该操作的程序指令的存储器。存储器可包括易失性存储器(诸如静态随机存取存储器或动态随机存取存储器)和/或非易失性存储器(诸如光学存储装置或磁盘存储装置、闪存存储器、可编程只读存储器等)。类似地,为了描述中的方便,可将各种单元/电路/部件描述为执行一项或多项任务。此类描述应当被解释成包括短语“被配置成”。表述被配置成执行一项或多项任务的单元/电路/部件明确地旨在对该单元/电路/部件不援引35U.S.C.§112,第六段的解释。
该说明书包括参考“一个实施例”或“实施例”。出现短语“在一个实施例中”或“在实施例中”未必是指同一个实施例,尽管除非本文明确声明,一般会想到包括特征的任意组合的实施例。特定特征、结构或特性能够以任何与本公开相容的适当方式结合。
具体实施方式
现在转向图1,示出了SOC 10的一个实施例的框图,该SOC 10耦接到存储器12和功率管理单元(PMU)156。顾名思义,可以将SOC 10的部件集成到单个半导体衬底上作为集成电路“芯片”。在一些实施例中,可以在系统中的两个或更多个芯片上实现各个部件。然而,在本文中将把SOC 10用作实例。在例示的实施例中,SOC 10的部件包括中央处理单元(CPU)复合体14、外围部件18A-18B(简称“外围设备”)、存储器控制器22、功率管理器(PMGR)32和通信结构27。部件14、18A-18B、22和32可以全部耦接到通信结构27。存储器控制器22在使用期间可以耦接到存储器12。在例示的实施例中,CPU复合体14包括一个或多个处理器28、二级(L2)高速缓存30、自动功率状态控制器16和数字功率估计器(DPE)电路20。
CPU复合体14可以包括用作SOC 10的CPU的一个或多个CPU处理器28。系统的CPU包括执行系统的主要控制软件诸如操作系统的处理器。通常,在使用期间由CPU执行的软件可以控制系统的其他部件以实现系统的期望功能。处理器28也可以执行其他软件诸如应用程序。应用程序可以提供用户功能,并可以依赖于用于低级设备控制的操作系统。因此,处理器28也可以被称为应用处理器。CPU复合体14还可以包括其他硬件,例如L2高速缓存30和/或与系统其他部件的接口(例如,与通信结构27的接口)。
APSC 16可被配置成监测活动处理器28,并可被配置成基于当前操作点和活动处理器的数量动态地修改CPU复合体14的操作点。具体而言,在一些操作点处,如果超过最大数量的处理器在活动,则消耗的总功率可能超过在每个处理器中最坏情况功耗下PMU 156能够提供的功率能力。APSC 16可被配置成监测何时有超过最大数量的处理器活动,并可被配置成降低操作点以防止消耗的功率超过PMU 156的能力。降低的操作点可以是即使所有活动处理器28都在消耗最坏情况功率时,消耗的总功率也可以不超过PMU156的能力的操作点。
处理器28的最大数量可以比处理器的总数量少超过一个。例如,处理器28的总数量可以是N,并且针对给定操作点的处理器最大数量可以是N-M,其中N和M为整数,N大于M。针对给定操作点可以定义M个降低的操作点,可以基于活动处理器的数量选择M个降低操作点之一。即,如果活动处理器的数量比最大数量大一个,则可以选择M个降低操作点之一;如果活动处理器的数量比最大数量大两个,则可以选择M个降低操作点的另一个;等等。或者,可以有一个降低的操作点是充分降低的,以使N个处理器在最坏功耗下活动。处理器的最大数量可以是特定于操作点的。即,一个操作点可以具有N-M1作为最大数量,并且另一个操作点可以具有N-M2作为最大数量,其中M1和M2是不相同的整数。一些操作点可以没有最大数量(即,所有N个处理器可以都是活动的)。
例如,在处理器28中反复执行包含最高功耗指令的代码时,可能发生最坏功耗。哪些指令是最高功耗指令可能在处理器28的实施方式之间有所不同。在一些情况下,最高功耗指令可以是特定类型的指令(例如,浮点指令可能比媒体或整数指令消耗更多功率,或者媒体指令可以是最高功耗的,等等)。该类型指令内的特定指令可以比其他指令功耗更高(例如,乘-加浮点指令可能比其他浮点指令消耗更高功率)。
每个活动内核中同时发生最坏功耗的可能性可能非常低。不过,由于如果确实发生最坏情况可能会出现故障,所以可以配置APSC 16以防止这个可能性。如果不防止这种可能性,那么包括SOC 10的系统会容易受到所谓的“功率病毒”攻击,其中坏人会通过让最坏情形发生来尝试造成故障。
在一些实施例中,还可以包括DPE电路20,其可以与APSC 16协同工作,以防止最坏功耗导致故障,但可以允许将降低的操作点设置在比单独使用APSC 16更高的点。例如,可以基于执行代表系统中普通工作负荷的各种基准程序时处理器28的功耗来设置降低的操作点。可以选择最高功耗基准,并可以设置降低的操作点,使得可以在每个活动处理器28中执行最高功耗基准而不超过PMU 156的能力。DPE电路20可以被配置以监测处理器28来检测功耗超过阈值的情况,并可以被配置对一个或多个处理器28进行抑制以降低功耗。于是,如果处理器28正在执行导致功耗超过最高功耗基准的代码,则DPE电路20可以防止超过PMU156的能力,而不是可能短时间内超过(例如,一个或几个时钟周期)。
操作点可以指CPU复合体14的电源电压大小和操作频率的组合。操作频率可以是为处理器28提供计时的时钟频率。在一些情况下,CPU复合体14中的其他电路可以在从操作频率导出的更低时钟频率下操作(例如,L2高速缓存可以在更低时钟频率下操作)。电源电压大小和操作频率可以相关。例如,电源电压大小可以至少高到足以令处理器28在操作频率下合适地操作。在实施例中,电源电压大小可以是处理器28针对对应操作频率合适地操作的最小电源电压大小。操作点也可以称为操作状态或功率状态。
随着电源电压大小和操作频率增大,CPU复合体14消耗的功率一般可能增大。因此,在更低操作点下(更低电源电压大小和操作点),处理器28可以消耗更少功率,可以在任何给定时间允许更多处理器活动。通常,如果处理器加电,它就可以活动。处理器可用于几乎无延迟地执行指令(例如,可以对其进行时钟门控,但如果指令已经准备好执行,则可以不进行门控)。如果处理器断电或处于另一种可以执行指令之前可能发生显著延迟的低功率状态中,则处理器可以是不活动的。例如,如果处理器需要重置或重新锁定锁相环(PLL),则即使其保持加电,也可以是不活动的。
DPE 20对处理器28进行抑制一般是指限制处理器28执行指令而没有去激活处理器或改变其当前操作点。抑制可以包括限制指令(或特定指令,诸如高功耗指令)的发出速率,限制指令的执行速率等。
通常,处理器可以包括被配置成执行由处理器实现的指令集架构中定义的指令的任何电路和/或微码。处理器可以涵盖与其他部件一起在集成电路上实现的处理器内核,作为片上系统(SOC 10)或其他层级的集成。处理器还可以涵盖分立的微处理器、处理器内核和/或集成到多芯片模块实施方式中的微处理器、实现为多个集成电路的处理器等。
存储器控制器22一般可以包括用于从SOC 10的其他部件接收存储操作并访问存储器12以完成存储操作的电路。存储器控制器22可以被配置成访问任何类型的存储器12。例如,储存器12可以是静态随机存取存储器(SRAM)、诸如同步的DRAM(SDRAM)的动态RAM(DRAM),包括双倍数据率(DDR、DDR2、DDR3等)DRAM。可以支持低功率/移动版本的DDR DRAM(例如,LPDDR、mDDR等)。存储器控制器22可以包括用于存储操作的队列,用于对操作进行排序(并可能重新排序)以及向存储器12提供操作。存储器控制器22还可以包括数据缓存,以存储等候写入存储器的写入数据,并读取要返回存储操作源的数据。在一些实施例中,存储器控制器22可以包括存储器缓存,以存储最近访问的存储器数据。在SOC实施中,例如,如果预计很快要再次存取,则存储器缓存可以通过避免重新从存储器12存取数据来降低SOC中的功耗。在一些情况下,存储器缓存也可以称为系统缓存,与诸如L2缓存30的私有缓存或处理器28中的缓存相反,它们仅用于特定部件。此外,在一些实施例中,系统缓存不需要位于存储器控制器22中。
外围设备18A-18B可以是SOC 10中包括的任何一组附加的硬件功能。例如,外围设备18A-18B可以包括视频外围设备,诸如:被配置成处理来自相机或其他图像传感器的图像拍摄数据的图像信号处理器,被配置成在一个或多个显示设备上显示视频数据的显示控制器,图形处理单元(GPU)、视频编码器/解码器、缩放器、旋转器、混合器等。外围设备可以包括音频外围设备,例如麦克风、扬声器、与麦克风和扬声器的接口、音频处理器、数字信号处理器、混频器等。外围设备可以包括用于各种SOC 10外部的接口(例如,外围设备18B)的接口控制器,包括诸如通用串行总线(USB)的接口、包括PCI Express(PCIe)的外围部件互连(PCI)、串行和并行端口等。外围设备可以包括联网外围设备诸如介质访问控制器(MAC)。可以包括任何一组硬件。
通信结构27可以是用于在SOC 10的部件之间进行通信的任何通信互连和协议。通信结构27可以基于总线,包括共享总线配置、十字条配置和具有桥接器的分级总线。通信结构27也可以基于分组,并可以是具有桥接器、十字条、点对点或其他互连的分级体系。
PMGR 32可以被配置成控制从PMU 156请求的电源电压大小。可以有由用于SOC 10的PMU 156产生的多个电源电压。例如,图1中示出的是VCPU和VSOC。VCPU可以是用于CPU复合体14的电源电压。VSOC一般可以是用于CPU复合体14外部的SOC 10其余部分的电源电压。在一些实施例中,可以有用于SOC 10其余部分的多个电源电压。在一些实施例中,还可以有用于CPU复合体14和/或SOC 10中的各个存储器阵列的存储器电源电压。可与用于供应给逻辑电路的电压(例如,VCPU或VSOC)一起使用的存储器电源电压,可以具有比确保稳健存储器操作所需电压低的电压。在一些实施例中,各个部件(例如,APSC 16)的本地的逻辑部件可以控制部件的功率状态,包括功率上升和功率下降,以及用于支持超过一个操作点的那些部件的各个其他操作点。在其他实施例中,PMGR 32可以控制SOC 10其他部件的功率上升和功率下降,或者可以支持针对一些部件的本地控制以及针对其他部件的PMGR控制的组合。PMGR32可以在软件的直接控制下(例如,软件可以直接请求部件功率上升和/或功率下降)和/或可以被配置成来监测SOC 10并判断各个部件何时要功率上升或功率下降。
PMU 156一般可以包括产生电源电压并向系统的其他部件诸如SOC10、存储器12、诸如显示设备、图像传感器、用户接口设备等各种芯片外外围部件(图1中未示出)提供那些电源电压的电路。PMU 156从而可以包括可编程调压器、接口连接到SOC 10、更具体而言连接到PMGR 32以接收电压请求的逻辑部件,等等。
要指出的是,SOC 10的部件数量(以及图1中所示那些的子部件数量,例如在CPU复合体14之内)可以在实施例之间有所不同。每种部件/子部件可以比图1中所示的数量多或少。
图2为APSC 16的一个实施例的框图。在例示的实施例中,APSC 16包括动态电压和频率管理(DVFM)表40、控制电路42、寄存器44A-44D、复用器(muxex)46A-46C和逻辑电路48A-48B。DVFM表40耦接到寄存器44A、复用器46A-46C和逻辑电路48A-48B。逻辑电路48A-48B耦接成向复用器46A-46C提供选择控制。复用器46A-46C分别耦接到寄存器44B-44D。控制电路耦接到寄存器44A-44B并接收DPE事件和APSC事件。寄存器44C和44D的输出分别被传输到PMGR 32和时钟控制(ClkCtl)单元(未示出)。
DVFM表40包括多个条目,可以利用描述各个操作点或状态的数据(由图2中的DVFM状态列表示)对其进行编程。可以利用来自软件的、为CPU复合体14标识期望的操作点的目标操作点选择(TgtSel)来对寄存器44A进行编程。寄存器44A可以耦接到表40上的读取端口,并且来自对应条目的数据可以由表40输出,作为复用器46B-46C的第一输入。描述每个操作点的数据可以是电源电压大小(图2中的Volt.列)和操作频率(图2中的Freq.列)的指示。该数据还可以包括在该操作点处操作时对可以允许的处理器28的最大数量的指示。可以使用任何指示(例如,最大数量的计数、下文所述的比特矢量、可能不活动而不改变操作点的数量计数,等等)。
在例示的实施例和类似实施例中,该指示可以是比特矢量,处理器的每个数量都有一个比特,该数量可以大于针对至少一个可能操作点的最大数量。于是,对于例示的实施例而言,有四个处理器,三个活动处理器可能超过最大数(Limit3比特),四个活动处理器可能超过最大数(Limit4比特)。在表40中编程条目时,软件也可以基于最坏功率分析填充比特矢量,或者,在使用DPE电路20的实施例中,基于更多诸如基准的正常工作负荷填充功率分析。在第一状态中,比特可以表示处理器的数量超过限制,在第二状态中,表示处理器的数量不超过限制。在例示的实施例中,第一状态可以是设定状态,第二状态可以是清空状态。其他实施例可以使用设定和清空状态的相反意义。
在表40中针对DVFM状态0到3示出了用于Limit3和Limit4的实例值。在DVFM状态0和1中,都可以有任意数量的处理器是活动的,而不导致超过PMU 156的能力的功耗。因此,对于表40中的这些条目,Limit3和Limit4都可以清空。在DVFM状态2中,限制可以是3个处理器,从而Limit4比特是设定的,Limit3比特是清空的。在DVFM状态3中,限制可以是2个处理器,从而Limit3和Limit4比特都是设定的。
表40可以输出分别由寄存器44A索引到AND门48A-48B的Limit3和Limit4比特。此外,可以分别向AND门48A-48B输入表示有三个内核活动(3Ac)还是4个内核活动(4Ac)的信号。3Ac和4Ac信号可以由控制电路42产生。因此,如果Limit3比特是设定的,且有三个内核活动,则AND门48A可以使其输出信号生效。如果Limit4比特是设定的,且有4个内核活动,则AND门48B可以使其输出信号生效。
通过复用器46A-46C进行的默认选择可以是第一输入(可以是响应于寄存器44A,来自表格40,针对复用器46B-46C的数据输出,以及针对复用器46A的输出)。如果来自AND门48A-48B的复用器选择都不生效,可以选择默认输出。
表40包括除本实施例中的DVFM状态条目之外的附加条目。这些附加的条目可以存储降低的操作点,如果当前操作点限制活动处理器的最大数量且最大数量在活动(或变成活动),则要使用这些降低的操作点。更具体地,3rdCoreMax条目可以存储描述对应于Limit3比特(在2个处理器是最大数量时)的降低操作点的数据。4thCoreMax条目可以存储描述对应于Limit4比特(在3个处理器是最大数量时)的降低操作点的数据。4thCoreMax条目一般可以存储表示在使用期间比3rdCoreMax条目更低操作点的数据(就每个处理器的可能功耗而言)。
可以配置表40以从3rdCoreMax和4thCoreMax条目向复用器46B-46C输出数据。可以响应于来自AND门48A的选择生效来选择来自3rdCoreMax条目的数据,并且可以响应于来自AND门48B的选择生效来选择来自4thCoreMax条目的数据。可以通过复用器46A选择对应的标识符,以识别当前的操作点,而目标操作点可以保持在寄存器44A中。在一些实施例中,软件可以不选择3rdCoreMax和4thCoreMax条目作为请求的操作点(例如,可以不由写入到寄存器44A的任何值对条目进行索引)。在其他实施例中,也可以通过寄存器44A选择条目。在此类实施例中,可以适当提供和编程用于3rdCoreMax和4thCoreMax条目的限制比特矢量(Limit3和Limit4字段)(或者可以硬连线到用于3rdCoreMax条目的Limit31、Limit41以及用于4thCoreMax条目的Limit30、Limit41)。
要指出的是,尽管AND门48A-48B被示为与图2中的控制电路42分开,但AND门48A-48B可以是控制电路42的部分。此外,可以使用任何其他逻辑部件实施来替代AND门48A-48B,包括AND门48A-48B的布尔等价物。
寄存器44B-44D可以存储描述当前操作点的数据(或者,如果正在进行过渡,则描述CPU复合体14过渡到的操作点)。寄存器44B可以存储当前操作点的标识符(从寄存器44A为CPU复合体14请求的目标标识符,或者如果活动处理器的数量超过所请求操作点的最大数量则是覆盖标识符)。可以耦接控制电路42以接收寄存器44A-44B的输出,来确定针对各种APSC事件和DPE事件采取的动作。寄存器44C可以存储当前请求的电源电压大小的指示,可以将其传输到PMGR电路32以向PMU 156传送。类似地,可以从寄存器44D向时钟控制电路提供当前请求的操作频率的指示,以为CPU复合体14设定操作频率。在各实施例中,时钟控制电路可以是PMGR 32的部分、CPU复合体14的部分或在SOC 10内任何地方。
现在转向图3,示出了流程图,其例示了APSC 16(尤其是包括与门48A-48B的控制电路42)的一个实施例的操作。尽管为了容易理解按照特定次序示出了方框,但可以使用其他次序。可以在APSC 16/控制电路42的组合逻辑中并行执行各方框。如果需要,可以在多个时钟周期内流水线化方框、方框组合和/或整体流程图。可以配置APSC 16和/或控制电路42以实施图3所示的操作。
如先前所提及的,APSC 16/控制电路42可以接收CPU复合体14中的各种APSC事件。APSC事件可以包括处理器激活事件和处理器去激活事件。如果发生处理器激活事件(决策框50,“是”分支),APSC 16/控制电路42可以更新其活动处理器的计数。如果更新的活动处理器的数量可能超过PMU限制(决策框52,“是”分支),APSC 16/控制电路42可以通过复用器46A-46C选择正确的CoreMax功率状态(或操作点)以降低当前操作点,来防止可能超过PMU限制(方框54)。在本实施例中,如果设定了来自当前选定目标条目中比特矢量的对应限制比特,则更新的活动处理器的数量可能超过PMU限制。在一些实施例中,可以发生超过一个这样的过渡。例如,如果目标操作点是图2中的DVFM状态3,并且一开始两个处理器是活动的,则可以确立目标操作点。随后,激活第三个处理器可以导致将操作点降低到3rdCoreMax状态。在处于3rdCoreMax状态中时(或者甚至在过渡到3rdCoreMax状态的同时),第四处理器可以是活动的,并导致过渡到4thCoreMax状态。
过渡到降低状态可能会花费时间。例如,可能使用大约4.5微秒来降低操作频率,然后可能使用大约5微秒来降低电源电压大小。在过渡时间期间,新激活的处理器可以开始执行,这可能导致超过PMU限制,直到确立操作点为止。为防止这种情况,APSC 16/控制电路42可以利用时钟驱动器来降低操作频率(例如,将时钟频率除以二或某个其他整数)。可以比不同操作点中指定的频率间变化快地实现这样的操作频率变化,这可能需要,例如,将锁相环(PLL)重新锁定到新的时钟频率。即,将除数变为当前整数二倍的不同整数不改变时钟信号的相位,于是PLL锁可以不丢失且不需要重新获取。降低的频率可以保持有效,直到完成到降低操作点的过渡。
如果APSC事件是去激活处理器(决策框58,“否”分支),则控制电路42可以更新活动处理器的数量。如果当前操作点是降低操作点之一,则基于更新的活动处理器数量来返回目标操作点或更高操作点之一(例如,3rdCoreMax状态,如果当前操作点为4thCoreMax状态)可能是安全的。如果更新的数量表示可以使用更高操作点(决策框60,“是”分支),则APSC 16/控制电路42可以通过复用器46A-46C选择新的操作点(方框62)。
可能影响当前操作点的另一种APSC事件是选定操作点的变化,如寄存器44A中的TgtSel值所示。控制电路42可以监测寄存器44A以检测变化,或者软件可以更新另一个寄存器以指出操作点的变化,这可能是APSC事件。如果改变TgtSel以指示不同的操作点(决策框64),则不同的操作点可能会导致当前活动处理器超过PMU限制。因此,如果改变TgtSel(决策框64,“是”分支),且结合当前活动处理器的数量的新选择的操作点表示可能不会超过PMU限制(决策框66,“是”分支),则APSC 16/控制电路42可以通过复用器46A-46C选择正确的CoreMax状态,并可以降低操作频率,直到完成过渡,类似于以上论述(方框68和70)。如果新选择的操作点可能不导致当前活动处理器数量超过PMU限制(决策框66,“否”分支),则APSC 16/控制电路42可以选择TgtSel操作点并可以过渡到选择的操作点(方框72)。
如先前所提及的,一些实施例还可以采用DPE电路20,并且此类实施例可以允许将3rdCoreMax和4thCoreMax条目编程成比不包括DPE电路20时许可的更高的操作点(更高电源电压大小和操作频率)。图4是流程图,示出了结合APSC 16使用的DPE电路20的一个实施例的操作。尽管为了容易理解按照特定次序示出了方框,但可以使用其他次序。可以在DPE电路20的组合逻辑部件中并行执行各方框。如果需要,可以在多个时钟周期内流水线化方框、方框组合和/或整体流程图。可以配置DPE电路20以实施图4所示的操作。
DPE电路20可以监测CPU复合体14中的活动处理器,并可以被配置成形成功耗的数字估计(方框80)。可以通过任何方式产生数字估计。例如,DPE电路20可以被配置成监测每个处理器的各方框(例如,管路级、执行单元、其他微架构方框等)。可以配置DPE电路以监测来自每个方框的活动水平、事件或任何其他活动测量,并可以估计由被监测活动消耗的功率。例如,可以利用针对每个被监测活动的数值因子对DPE电路20进行编程控制,DPE电路可以对每个活动的因子求和以形成估计值。在一些实施例中,可以将估计值缩放到当前操作频率和电源电压大小。可以配置DPE电路20以确定活动处理器的功率估计值是否表示可以超过PMU限制(决策框82)。如果是(决策框82,“是”分支),则DPE电路20可以被配置成抑制一个或多个活动处理器(方框84)。
要指出的是,在一些实施例中,还可以配置DPE电路20以确定是否已经将处理器抑制了超过阈值次数。检测到此类操作可以表示CPU复合体14正在经历最坏功耗情况,从而可以表示可能需要进一步降低的操作点以降低抑制。在实施例中,DPE电路20可以向控制电路42产生DPE事件以请求这样的改变。在此类实施例中,DPE电路20还可以检测到DPE电路20未将处理器抑制超过阈值次数,并且如果先前进一步降低了操作点,则可以产生DPE事件以使操作点返回先前水平。以下更为详细地论述一些这样的实施例。
现在转向图5,其示出了CPU复合体14的一部分的一个实施例的方框图。在例示的实施例中,CPU复合体14包括DPE电路20、处理器28和滞后计数器90。DPE电路20耦接到处理器28和滞后计数器90,并耦接来提供DVFM请求。处理器28之一被示为包括方框92A-92D。其他处理器28可以是类似的。DPE电路20可以包括功率阈值寄存器94和一个或多个比较器96。滞后计数器90可以包括增序计数器98、降序计数器100和寄存器102中的一个或多个计数阈值。
方框92A-92D可以实施处理器28的各个子功能。例如,方框92A-92D可以是处理器28的各个流水线级。方框92A-92D可以是处理器28内的执行单元。方框92A-92D可以是除执行单元之外的其他微架构元件(例如,缓存、解码单元、分支预测硬件、重命名硬件、重排序缓存、调度器、保留站等)。根据需要,可以进行任意的方框划分。每个方框92A-92D可以向DPE电路20提供一个或多个活动指示符(AI)。在一些实施例中,并非所有方框92A-92D都可以提供活动指示符。处理器28中方框的数量可以在实施例之间有所不同。
基于活动指示符,DPE电路20可以被配置成为处理器28产生功率估计值。可以配置DPE电路以比较功率估计值与来自寄存器94的功率阈值。如果功率估计值超过功率阈值,则DPE电路20可以被配置成抑制处理器28中的一个或多个处理器28。例如,DPE电路20可以抑制消耗最多功率的一个或多个处理器28。或者,DPE电路20可以均衡地抑制处理器28。发往方框92A-92D的抑制指示可以抑制各个方框。在一些实施例中,并非所有方框92A-92D都可以接收抑制指示。此外,可以配置DPE电路20以信号通知滞后计数器90功率估计值超过功率阈值。如果功率估计值未超过功率阈值,则DPE电路20可以不抑制处理器28,并可以通知滞后计数器90功率估计值未超过功率阈值。或者,功率阈值寄存器94可以存储第二功率阈值,并且比较器96可以将第二功率阈值与功率估计值比较,并通知滞后计数器90功率估计值未超过第二功率阈值。可以将第二功率阈值编程为低于本段中前面提到的其他功率阈值。
可以基于PMU 156的能力对功率阈值进行编程,并且功率阈值可以包括防护带以确保不超过PMU能力。在结合APSC 16使用DPE电路20的实施例中,与单独使用DPE电路20相比,能够以不同方式对功率阈值进行编程(例如,在结合APSC 16使用时,阈值可以更高)。
可以配置滞后计数器以响应于已经超过功率阈值的信号将增序计数器进行增量,并可以响应于未超过功率阈值而将降序计数器进行增量。可以将计数与来自阈值寄存器102的计数阈值对比,可以配置滞后计数器90以通知DPE电路20是否超过阈值。如果增序计数器超过阈值,则可以配置DPE电路20以产生降低操作点的DVFM请求。如果降序计数器超过阈值,则可以配置DPE电路20以产生DVFM请求用于存储先前降低过的操作点。在一些实施例中,对于增序计数器98和降序计数器100,寄存器102中可以有独立的计数阈值。在其它实施例中,可使用相同的阈值。
在一个实施例中,可以配置滞后计数器90以在将增序计数器进行增量时清空降序计数器,反之亦然。因此,增序计数器98可以是超过功率阈值的相继功率估计值数量的计数,而没有介入的不超过功率阈值(或第二功率阈值)的估计值。类似地,降序计数器100可以是不超过功率阈值(或第二功率阈值)的相继功率估计值数量的计数,而没有介入的超过功率阈值的功率估计值。通过这种方式,在导致DVFM过渡之前,功率估计值可能有滞后。可以在为处理器28提供时钟频率的时钟的每个时钟周期获取功率估计值。或者,可以基于整个间隔内的活动,以更短间隔获取功率估计值。
现在转向图6,示出了流程图,例示了与DPE电路20交互的DVFM硬件和/或软件的一个实施例的操作。尽管为了容易理解按照特定次序示出了方框,但可以使用其他次序。对于在硬件中实现的那些特征(例如,各实施例中的APSC 16和/或PMGR 32),可以在DVFM硬件中的组合逻辑部件中并行执行各方框。如果需要,可以在多个时钟周期内流水线化方框、方框组合和/或整体流程图。可以配置DVFM硬件以实施图6所示的操作。对于在软件中实现的那些特征,软件代码可以包括可以(例如,由处理器28之一)执行以实施用于所述特征的操作的指令。
DVFM硬件/软件可以为CPU复合体14选择操作点(方框110)。各种因素都可能影响操作点的选择。例如,要执行的任务安排可能会影响选择。如果有更多要执行的工作,则可能希望有更高操作点(因为更高操作点应当导致更高性能)。另一方面,如果有更少要执行的任务,则可以选择更低操作点以节省功率。系统可用的能量(例如,插入墙壁插座中与电池供电和剩余电池功率可用量相比)可能是影响期望操作点的因素。在一些情况下,热问题可能导致降低的操作点。
DVFM硬件/软件可以判断如果足够多处理器在活动,则在选定的操作点,CPU复合体14是否可能超过PMU限制(决策框112)。如果是这样(决策框112,“是”分支),DVFM硬件/软件可以启用DPE电路20以监测活动处理器(方框114)。在一些实施例中(方框116),DVFM硬件/软件还可以对DPE电路20中的功率阈值和滞后计数器90中的计数阈值进行编程。在一些实施例中,功率阈值和/或计数阈值可能基于选定的操作点而变化,可以在每次启用DPE电路20时对其进行编程。在其他实施例中,阈值可以对于每个操作点都是相同的,并且例如,在SOC 10初始化期间对它们进行一次编程。如果CPU复合体14在选定的操作点不超过PMU限制(决策框112,“否”分支),则DVFM硬件/软件可以禁用DPE电路20,因为不需要监测(方框118)。在任一种情况下,DVFM硬件/软件都可以发起所选操作点的改变(方框119)。
现在转向图7,示出了流程图,例示了DPE电路20和滞后计数器90的一个实施例的操作。尽管为了容易理解而按照特定次序示出了方框,但可以使用其他次序。可以在DPE电路20/滞后计数器90的组合逻辑部件中并行执行各方框。如果需要,可以在多个时钟周期内流水线化方框、方框组合和/或整体流程图。可以配置DPE电路20和/或滞后计数器90以实施图7所示的操作。
可以配置DPE电路20(在启用时)以监测处理器28中的处理器活动并产生功率估计值(方框120)。可以配置DPE电路20以将估计值与高功率阈值(决策框122)和低功率阈值(决策框128)进行对比。高功率阈值可以是这样的功率阈值:在实施两个功率阈值时,DPE电路20将功率估计值相对于其进行对比,以确定是否超过功率阈值。低功率阈值可以是这样的功率阈值:在实施两个功率阈值时,DPE电路20将功率估计值相对于其进行对比,以确定是否许可返回到更高操作点。在一些实施例中,可以仅实施一个阈值,并可以相对于单个阈值进行对比(大于/小于)。
如果功率估计值超过高功率阈值(决策框122,“是”分支),则DPE电路20可以被配置成抑制处理器(方框124)。此外,可以配置DPE电路20以通知滞后计数器90,滞后计数器可以被配置成将增序计数器98进行增量并清空降序计数器100(方框126)。另一方面如果功率估计值小于低阈值(决策框128,“是”分支),则可以配置DPE电路20以通知滞后计数器90,可以配置该滞后计数器以使降序计数器100进行增量并清空增序计数器98(方框130)。
可以配置滞后计数器90以将增序计数器98和降序计数器100中的增序和降序计数与阈值寄存器102中的计数阈值进行对比(或者,如果实施的话,分开用于增序和降序计数器的阈值)。如果增序计数超过计数阈值(决策框132,“是”分支),则滞后计数器90可以通知DPE电路20,DPE电路可以通知DVFM硬件改变成更低的操作点(方框134)。如果降序计数136超过计数阈值(决策框136,“是”分支),指责滞后计数器90可以通知DPE电路20,如果先前基于增序计数降低了操作点,DPE电路可以通知DVFM硬件恢复到更高的操作点(方框138)。在包括APSC16的实施例中,DVFM硬件可以是APSC 16。在其他实施例中,可以不包括APSC 16,并且DVFM硬件可以在PMGR 32中。
随后转向图8,示出了系统150的一个实施例的框图。在所示的实施例中,系统150包括耦接到一个或多个外围设备154和外部储存器12的SOC 10的至少一个实例。提供了PMU156,其向SOC 10供应电源电压以及向存储器12和/或外围设备154供应一个或多个电源电压。在一些实施例中,可以包括SOC 10的不止一个实例(也可包括不止一个存储器12)。
依赖于系统150的类型,外围设备154可包括任意期望的电路。例如,在一个实施例中,系统150可以是移动设备(例如个人数字助理(PDA)、智能电话等),外围设备154可包括用于各种无线通信的设备,例如wifi、蓝牙、蜂窝、全球定位系统等。外围设备154还可包括另外的存储装置,包括RAM存储装置、固态存储装置或磁盘存储装置。外围设备154可包括用户界面设备,例如显示屏,其包括触摸显示屏或多触摸显示屏、键盘或其他输入设备、麦克风、扬声器等。在其他实施例中,系统150可以是任何类型的计算系统(如台式个人计算机、膝上型电脑、工作站、网络机顶盒等)。
外部储存器12可以包括任何类型的存储器。例如,外部存储器12可以是SRAM、动态RAM(DRAM)诸如同步DRAM(SDRAM)、双倍数据率(DDR,DDR2,DDR3等)SDARM、RAMBUS DRAM、DDRDRAM的低功率版本(例如,LPDDR,mDDR等)等。外部存储器12可以包括存储器件安装到其上的一个或多个存储器模块诸如单列直插存储器模块(DIMM)、双列直插存储器模块(DIMM)等。另选地,外部存储器12可以包括芯片上芯片或封装上封装实施方式中的SOC 10上安装的一个或多个存储器件。
一旦充分理解了以上公开,则很多变型和修改对于本领域的技术人员而言将变得显而易见。本发明旨在将以下权利要求书解释为涵盖所有此类变型和修改。

Claims (15)

1.一种用于控制功率的装置,包括:
多个处理器;
耦接到所述多个处理器的功率控制电路,其中能够利用对所述多个处理器的多个操作点进行描述的数据来对所述功率控制电路进行编程,并且其中所述数据还包括针对所述多个操作点中的每个相应操作点的指示,所述指示用于指示在所述相应操作点处对所述多个处理器中的活动处理器的第一数量的限制,其中在所述相应操作点处超过活动处理器的所述限制将超过在活动处理器正在消耗最大功率量时向所述多个处理器提供功率的功率管理单元的能力,并且其中所述功率控制电路被配置成检测到在选定操作点处要处于活动的处理器的第二数量超过针对所述选定操作点的限制并被配置成响应于所述检测利用第二操作点来覆盖所述选定操作点。
2.根据权利要求1所述的装置,其中所述第二操作点相比所述选定操作点为功率更低的操作点。
3.根据权利要求2所述的装置,其中所述第二操作点中用于所述多个处理器的时钟频率低于所述选定操作点中用于所述多个处理器的时钟频率。
4.根据权利要求2所述的装置,其中所述第二操作点中用于所述多个处理器的电源电压大小低于所述选定操作点中用于所述多个处理器的电源电压大小。
5.根据权利要求1所述的装置,其中所述功率控制电路被配置成响应于所述多个处理器中的第一处理器激活而检测到第二数量超过所述限制,并且其中所述选定操作点是所述第一处理器激活时的当前操作点。
6.根据权利要求1所述的装置,其中所述功率控制电路被配置成响应于将所述多个处理器的当前操作点改变成所述选定操作点的请求而检测到第二数量超过所述限制。
7.根据权利要求1所述的装置,其中所述功率控制电路被配置成响应于在所述多个处理器的当前操作点是所述第二操作点时所述多个处理器中的一个处理器去激活而检测到活动处理器的数量小于所述限制,并且其中所述功率控制电路被配置成响应于检测到所述去激活而改变成所述选定操作点。
8.根据权利要求1所述的装置,还包括数字功率估计器,所述数字功率估计器耦接到所述多个处理器并被配置成估计所述多个处理器消耗的功率量,并且其中所述数字功率估计器被配置成响应于所述功率量超过阈值量而抑制所述多个处理器中的一个或多个处理器。
9.一种电子系统,包括:
被配置成向片上系统供应多种电源电压的功率管理单元;和
耦接到所述功率管理单元的所述片上系统,其中所述片上系统包括根据权利要求1所述的装置。
10.根据权利要求9所述的系统,其中所述片上系统包括:
被配置成从所述功率管理单元请求所述多个电源电压的多个电源电压大小的功率管理电路;和
中央处理单元复合体,所述中央处理单元复合体包括多个处理器和耦接到所述多个处理器的功率控制电路,其中所述功率控制电路被配置成响应于所述多个处理器中的活动处理器的数量超过与所述多个处理器的操作点相关联的活动处理器的最大数量而自动降低所述操作点,并且其中所述功率控制电路被配置成响应于所述降低而向所述功率管理电路发送所请求的电源电压大小。
11.一种用于控制功率的方法,包括:
监测系统中多个处理器中的活动处理器的第一数量;
检测到要处于活动的处理器的第二数量超过针对所述多个处理器的当前操作点允许的活动处理器的最大数量,其中所述检测响应于与所述当前操作点相关联的指示,其中在相应操作点处超过活动处理器的所述最大数量将超过在所述活动处理器正在消耗最大功率量时向所述多个处理器提供功率的功率管理单元的能力;以及
响应于检测到所述第二数量超过所述最大数量而覆盖所述当前操作点成为第二操作点。
12.根据权利要求11所述的方法,其中所述检测还响应于激活所述多个处理器中当前不活动的一个处理器的请求。
13.根据权利要求11所述的方法,还包括:
检测到当前活动处理器的第三数量超过针对所述多个处理器的所请求的操作点允许的活动处理器的最大数量;以及
响应于所述检测将所述当前操作点改变成小于所请求的操作点的第二操作点。
14.根据权利要求13所述的方法,还包括:
检测所述活动处理器中的一个活动处理器的去激活,其中所述去激活将活动处理器的第三数量降低到针对所请求的操作点允许的活动处理器的数量;以及
响应于所述检测将所述当前操作点改变成所请求的操作点。
15.根据权利要求11所述的方法,还包括:
检测所述活动处理器中的一个活动处理器的去激活,其中所述去激活将活动处理器的第一数量降低到针对所述当前操作点允许的活动处理器的数量;以及
响应于所述检测恢复所述当前操作点。
CN201480030491.2A 2013-06-21 2014-04-16 基于活动处理器的动态电压和频率管理 Active CN105308571B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/924,164 US9304573B2 (en) 2013-06-21 2013-06-21 Dynamic voltage and frequency management based on active processors
US13/924,164 2013-06-21
PCT/US2014/034386 WO2014204568A1 (en) 2013-06-21 2014-04-16 Dynamic voltage and frequency management based on active processors

Publications (2)

Publication Number Publication Date
CN105308571A CN105308571A (zh) 2016-02-03
CN105308571B true CN105308571B (zh) 2018-09-04

Family

ID=50733432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480030491.2A Active CN105308571B (zh) 2013-06-21 2014-04-16 基于活动处理器的动态电压和频率管理

Country Status (7)

Country Link
US (4) US9304573B2 (zh)
EP (1) EP3011450B1 (zh)
JP (1) JP6154071B2 (zh)
KR (1) KR101703467B1 (zh)
CN (1) CN105308571B (zh)
TW (1) TWI536158B (zh)
WO (1) WO2014204568A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304573B2 (en) 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
TWI653527B (zh) 2014-12-27 2019-03-11 美商英特爾公司 當計算元件運作時致能系統低電力狀態之技術
US9990024B2 (en) * 2015-09-09 2018-06-05 Qualcomm Incorporated Circuits and methods providing voltage adjustment as processor cores become active based on an observed number of ring oscillator clock ticks
US20170185128A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Method and apparatus to control number of cores to transition operational states
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10296067B2 (en) * 2016-04-08 2019-05-21 Qualcomm Incorporated Enhanced dynamic clock and voltage scaling (DCVS) scheme
US10133341B2 (en) * 2016-06-06 2018-11-20 Arm Limited Delegating component power control
US10209726B2 (en) 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10248186B2 (en) 2016-06-10 2019-04-02 Microsoft Technology Licensing, Llc Processor device voltage characterization
US10310572B2 (en) 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
US10338670B2 (en) 2016-06-10 2019-07-02 Microsoft Technology Licensing, Llc Input voltage reduction for processing devices
US10359833B2 (en) * 2016-06-20 2019-07-23 Qualcomm Incorporated Active-core-based performance boost
JP2018106591A (ja) * 2016-12-28 2018-07-05 ルネサスエレクトロニクス株式会社 半導体装置、動作制御方法、及びプログラム
US10649518B2 (en) * 2017-01-26 2020-05-12 Ati Technologies Ulc Adaptive power control loop
US11231769B2 (en) 2017-03-06 2022-01-25 Facebook Technologies, Llc Sequencer-based protocol adapter
WO2018165111A1 (en) * 2017-03-06 2018-09-13 Sonics, Inc. An operating point controller for circuit regions in an integrated circuit
US10599481B2 (en) 2017-06-04 2020-03-24 Apple Inc. Scheduler for amp architecture using a closed loop performance controller and deferred inter-processor interrupts
US10474211B2 (en) * 2017-07-28 2019-11-12 Advanced Micro Devices, Inc. Method for dynamic arbitration of real-time streams in the multi-client systems
CN108158593B (zh) * 2017-12-26 2021-02-26 三诺生物传感股份有限公司 一种动态血糖仪的电源管理设备及电源管理方法
WO2019168528A1 (en) * 2018-02-28 2019-09-06 Intel Corporation Controlling a processing performance level depending on energy expenditure
US11216556B2 (en) * 2018-12-17 2022-01-04 Intel Corporation Side channel attack prevention by maintaining architectural state consistency
US10969858B2 (en) 2019-01-03 2021-04-06 Apple Inc. Operation processing controlled according to difference in current consumption
US10936041B2 (en) 2019-03-29 2021-03-02 Intel Corporation Adjusting a throttling threshold in a processor
US10948957B1 (en) 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
US11635739B1 (en) 2020-04-30 2023-04-25 Marvell Asia Pte Ltd System and method to manage power to a desired power profile
US11340673B1 (en) * 2020-04-30 2022-05-24 Marvell Asia Pte Ltd System and method to manage power throttling
JP2022032339A (ja) * 2020-08-11 2022-02-25 富士通株式会社 電力制御装置、及び、電力制御方法
GB2604981B (en) * 2020-12-18 2023-03-22 Advanced Risc Mach Ltd Balancing high energy events
US20220382353A1 (en) * 2021-05-28 2022-12-01 Hewlett-Packard Development Company, L.P. Power limits based on processor throttling
US20230071427A1 (en) * 2021-09-08 2023-03-09 International Business Machines Corporation Providing deterministic frequency and voltage enhancements for a processor
US11768531B2 (en) * 2021-12-30 2023-09-26 Western Digital Technologies, Inc. Power management for storage controllers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689070A (zh) * 2007-06-25 2010-03-31 惠普开发有限公司 为了高效率操作的动态转换器控制
CN102317886A (zh) * 2009-03-05 2012-01-11 株式会社日立制作所 计算机及计算机的功率管理系统

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US6195750B1 (en) * 1999-03-09 2001-02-27 Amdhal Corporation Method and apparatus for dynamic CPU reconfiguration in a system employing logical processors
US6564328B1 (en) 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US6931559B2 (en) 2001-12-28 2005-08-16 Intel Corporation Multiple mode power throttle mechanism
US7281140B2 (en) 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
GB2387456B (en) * 2002-04-12 2005-12-21 Sun Microsystems Inc Configuring computer systems
US7814350B2 (en) * 2002-10-03 2010-10-12 Via Technologies, Inc. Microprocessor with improved thermal monitoring and protection mechanism
KR100885213B1 (ko) * 2002-10-15 2009-02-24 주식회사 포스코 코일 권취공정의 스트립 용접부위 흠 발생 방지장치
US7290161B2 (en) 2003-03-24 2007-10-30 Intel Corporation Reducing CPU and bus power when running in power-save modes
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
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
US7681054B2 (en) * 2006-10-03 2010-03-16 International Business Machines Corporation Processing performance improvement using activity factor headroom
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7793125B2 (en) 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US8725488B2 (en) 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US7930574B2 (en) 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8010822B2 (en) 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20090271646A1 (en) 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
US20110213950A1 (en) 2008-06-11 2011-09-01 John George Mathieson System and Method for Power Optimization
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
US8127160B2 (en) * 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
US8386816B2 (en) * 2008-10-30 2013-02-26 Nokia Corporation Methods, apparatuses, and computer program products for reducing power consumption in computing devices
US8245070B2 (en) * 2008-12-30 2012-08-14 Intel Corporation Method for optimizing voltage-frequency setup in multi-core processor systems
US8788850B1 (en) 2009-01-22 2014-07-22 Marvell International Ltd. Systems and methods for using a security circuit to monitor a voltage of an integrated circuit to counter security threats to the integrated circuit
US7915910B2 (en) 2009-01-28 2011-03-29 Apple Inc. Dynamic voltage and frequency management
JP5259877B2 (ja) * 2009-03-30 2013-08-07 クアルコム,インコーポレイテッド 適応電圧スケーラ(avs)、電圧レベルをスケーリングする方法、回路、及び、コンピュータ可読媒体
US8190930B2 (en) * 2009-03-30 2012-05-29 Intel Corporation Methods and apparatuses for controlling thread contention
EP2417506A1 (fr) * 2009-04-06 2012-02-15 Commissariat à l'Énergie Atomique et aux Énergies Alternatives Procédé d'optimisation du fonctionnement d'un circuit intégré multiprocesseurs, et circuit intégré correspondant
US8171319B2 (en) * 2009-04-16 2012-05-01 International Business Machines Corporation Managing processor power-performance states
US8078800B2 (en) * 2009-06-05 2011-12-13 Apple Inc. Dynamic operating point modification in an integrated circuit
US8892931B2 (en) 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
KR101620103B1 (ko) 2009-10-21 2016-05-13 삼성전자주식회사 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법
US8364997B2 (en) 2009-12-22 2013-01-29 Intel Corporation Virtual-CPU based frequency and voltage scaling
US8271812B2 (en) 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
US8381006B2 (en) 2010-04-08 2013-02-19 International Business Machines Corporation Reducing power requirements of a multiple core processor
US8381004B2 (en) 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
US8484498B2 (en) * 2010-08-26 2013-07-09 Advanced Micro Devices Method and apparatus for demand-based control of processing node performance
US8510740B2 (en) * 2010-09-16 2013-08-13 Qualcomm Incorporated System and method of performing dynamic voltage and frequency scaling operations on a mobile device
US8943334B2 (en) * 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8793512B2 (en) * 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US9261949B2 (en) * 2010-10-29 2016-02-16 Advanced Micro Devices, Inc. Method for adaptive performance optimization of the soc
US8627128B2 (en) * 2010-11-09 2014-01-07 International Business Machines Corporation Power management for processing capacity upgrade on demand
US9335805B2 (en) * 2010-11-25 2016-05-10 Freescale Semiconductor, Inc. Method and apparatus for managing power in a multi-core processor
US8756442B2 (en) 2010-12-16 2014-06-17 Advanced Micro Devices, Inc. System for processor power limit management
US9176550B2 (en) * 2010-12-23 2015-11-03 Intel Corporation Thermally downward scalable system
US9086883B2 (en) 2011-06-10 2015-07-21 Qualcomm Incorporated System and apparatus for consolidated dynamic frequency/voltage control
US8650428B2 (en) * 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system
US20130097415A1 (en) 2011-10-12 2013-04-18 Qualcomm Incorporated Central Processing Unit Monitoring and Management Based On A busy-Idle Histogram
US9009451B2 (en) * 2011-10-31 2015-04-14 Apple Inc. Instruction type issue throttling upon reaching threshold by adjusting counter increment amount for issued cycle and decrement amount for not issued cycle
US20130117589A1 (en) 2011-11-04 2013-05-09 Anand Satyamoorthy Stability control in a voltage scaling system
US9075610B2 (en) * 2011-12-15 2015-07-07 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system
US9137848B2 (en) * 2012-01-31 2015-09-15 Lg Electronics Inc. Mobile terminal, controlling method thereof and recording medium thereof
US9436245B2 (en) * 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
US9223373B2 (en) 2012-03-21 2015-12-29 Hgst Technologies Santa Ana, Inc. Power arbitration for storage devices
US9075556B2 (en) * 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9223383B2 (en) * 2012-12-21 2015-12-29 Advanced Micro Devices, Inc. Guardband reduction for multi-core data processor
US9335803B2 (en) * 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
US9377841B2 (en) * 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9304573B2 (en) 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
US9195291B2 (en) 2013-06-21 2015-11-24 Apple Inc. Digital power estimator to control processor power consumption
US9772676B2 (en) 2014-02-26 2017-09-26 Advanced Micro Devices, Inc. Adaptive voltage scaling based on stage transitions or ring oscillator revolutions
US9606605B2 (en) 2014-03-07 2017-03-28 Apple Inc. Dynamic voltage margin recovery
US9625984B2 (en) * 2015-03-27 2017-04-18 Intel Corporation Technologies for managing power during an activation cycle

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101689070A (zh) * 2007-06-25 2010-03-31 惠普开发有限公司 为了高效率操作的动态转换器控制
CN102317886A (zh) * 2009-03-05 2012-01-11 株式会社日立制作所 计算机及计算机的功率管理系统

Also Published As

Publication number Publication date
US20170262036A1 (en) 2017-09-14
US10303238B2 (en) 2019-05-28
TWI536158B (zh) 2016-06-01
US9304573B2 (en) 2016-04-05
US20190235601A1 (en) 2019-08-01
EP3011450A1 (en) 2016-04-27
US20140380071A1 (en) 2014-12-25
CN105308571A (zh) 2016-02-03
JP6154071B2 (ja) 2017-06-28
TW201508466A (zh) 2015-03-01
KR101703467B1 (ko) 2017-02-06
WO2014204568A1 (en) 2014-12-24
US20160179169A1 (en) 2016-06-23
US11003233B2 (en) 2021-05-11
EP3011450B1 (en) 2020-05-27
US9703354B2 (en) 2017-07-11
JP2016527609A (ja) 2016-09-08
KR20160003833A (ko) 2016-01-11

Similar Documents

Publication Publication Date Title
CN105308571B (zh) 基于活动处理器的动态电压和频率管理
US9817469B2 (en) Digital power estimator to control processor power consumption
US10585448B2 (en) Low power autonomous peripheral management
CN110109527B (zh) 动态电压裕度恢复
CN106598184B (zh) 在处理器中执行跨域热控制
EP2685632B1 (en) Thermal control apparatus and methodology
KR101748747B1 (ko) 프로세서의 구성가능한 피크 성능 제한들의 제어
TWI569202B (zh) 用於基於網路負載來調整處理器電力使用之設備及方法
US11054882B2 (en) Externally-triggered throttling
CN110573991A (zh) 架构状态保留
US10572183B2 (en) Power efficient retraining of memory accesses
US10401938B1 (en) Single power plane dynamic voltage margin recovery for multiple clock domains
CN117882028A (zh) 基于限制硬件强制的功率控制的功率管理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant