首页> 中国专利> 基于活动处理器的动态电压和频率管理

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

摘要

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

著录项

  • 公开/公告号CN105308571A

    专利类型发明专利

  • 公开/公告日2016-02-03

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN201480030491.2

  • 发明设计人 J-S·李;D·C·穆雷;练维汉;

    申请日2014-04-16

  • 分类号G06F9/50;G06F1/32;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人吴信刚

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 14:06:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-04

    授权

    授权

  • 2016-03-02

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20140416

    实质审查的生效

  • 2016-02-03

    公开

    公开

说明书

技术领域

本发明涉及处理器中的功率管理。

背景技术

能够结合在给定半导体衬底上以形成集成电路的晶体管的数量一直在 增大。同时,操作集成电路的时钟频率(“操作频率”)也持续增大。尽 管电源电压大小随着时间在降低,但集成电路的功耗一直在增大。在将集 成电路用于能量存储有限的设备中时(例如,依靠电池操作的移动设 备),功耗是必须对设备重新充电之前设备能够使用多长时间的一个因 素。此外,功耗产生的热量可能是移动设备和非移动设备中都有的问题。

包括处理器以执行软件的设备能够管理处理器中的功耗。典型地,如 果当前需要在处理器上执行软件,可以停止给定的处理器。停止处理器可 以包括时钟门控和功率门控,在时钟门控中停止时钟,但处理器保持加电 并准备好在重新启动时钟时执行指令,在功率门控中,使处理器断电,并 在执行指令之前加电重置。

很多设备包括多个处理器,包括移动设备。处理器还可能是大功率消 耗者,尤其是在特定工作负荷下。因此,可能有一些这样的操作点(电源 电压大小和操作频率的组合),在这些操作点处,如果所有处理器都活动 地执行,则设备处于超过设备中功率源容量的风险。亦即,电源能够输出 最大量的电流。如果所有处理器都在某些操作点活动地执行功率密集型工 作负荷,则造成的电流消耗可能超过功率源能够提供的电流量。超过功率 源容量可能导致错误的操作(例如,电源电压大小可能下降到集成电路在 该操作频率下不再正常工作的点)。

发明内容

在实施例中,一种系统可以包括多个处理器和被配置成在各操作点之 间切换处理器的自动功率状态控制器(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”)是指包括但不限于。

各种单元、电路或其他部件可被描述为“被配置成”执行一项或多项 任务。在此类情境中,“被配置成”是对一般意味着“具有”在操作期间 执行这一项或多项任务的“电路”的结构的宽泛表述。如此,单元/电路/部 件可被配置成即使在单元/电路/部件当前未接通时也执行所述任务。一般来 讲,形成对应于“被配置成”的结构的电路可包括硬件电路和/或存储可执 行以实现该操作的程序指令的存储器。存储器可包括易失性存储器(诸如 静态随机存取存储器或动态随机存取存储器)和/或非易失性存储器(诸如 光学存储装置或磁盘存储装置、闪存存储器、可编程只读存储器等)。类 似地,为了描述中的方便,可将各种单元/电路/部件描述为执行一项或多项 任务。此类描述应当被解释成包括短语“被配置成”。表述被配置成执行 一项或多项任务的单元/电路/部件明确地旨在对该单元/电路/部件不援引35 U.S.C.§112,第六段的解释。

该说明书包括参考“一个实施例”或“实施例”。出现短语“在一个 实施例中”或“在实施例中”未必是指同一个实施例,尽管除非本文明确 声明,一般会想到包括特征的任意组合的实施例。特定特征、结构或特性 能够以任何与本公开相容的适当方式结合。

具体实施方式

现在转向图1,示出了SOC10的一个实施例的框图,该SOC10耦接 到存储器12和功率管理单元(PMU)156。顾名思义,可以将SOC10的部 件集成到单个半导体衬底上作为集成电路“芯片”。在一些实施例中,可 以在系统中的两个或更多个芯片上实现各个部件。然而,在本文中将把 SOC10用作实例。在例示的实施例中,SOC10的部件包括中央处理单元 (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可以包括用作SOC10的CPU的一个或多个CPU处理器 28。系统的CPU包括执行系统的主要控制软件诸如操作系统的处理器。通 常,在使用期间由CPU执行的软件可以控制系统的其他部件以实现系统的 期望功能。处理器28也可以执行其他软件诸如应用程序。应用程序可以提 供用户功能,并可以依赖于用于低级设备控制的操作系统。因此,处理器28 也可以被称为应用处理器。CPU复合体14还可以包括其他硬件,例如L2高 速缓存30和/或与系统其他部件的接口(例如,与通信结构27的接口)。

APSC16可被配置成监测活动处理器28,并可被配置成基于当前操作 点和活动处理器的数量动态地修改CPU复合体14的操作点。具体而言, 在一些操作点处,如果超过最大数量的处理器在活动,则消耗的总功率可 能超过在每个处理器中最坏情况功耗下PMU156能够提供的功率能力。 APSC16可被配置成监测何时有超过最大数量的处理器活动,并可被配置 成降低操作点以防止消耗的功率超过PMU156的能力。降低的操作点可以 是即使所有活动处理器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的实施方式之间有所 不同。在一些情况下,最高功耗指令可以是特定类型的指令(例如,浮点 指令可能比媒体或整数指令消耗更多功率,或者媒体指令可以是最高功耗 的,等等)。该类型指令内的特定指令可以比其他指令功耗更高(例如, 乘-加浮点指令可能比其他浮点指令消耗更高功率)。

每个活动内核中同时发生最坏功耗的可能性可能非常低。不过,由于 如果确实发生最坏情况可能会出现故障,所以可以配置APSC16以防止这 个可能性。如果不防止这种可能性,那么包括SOC10的系统会容易受到所 谓的“功率病毒”攻击,其中坏人会通过让最坏情形发生来尝试造成故障。

在一些实施例中,还可以包括DPE电路20,其可以与APSC16协同 工作,以防止最坏功耗导致故障,但可以允许将降低的操作点设置在比单 独使用APSC16更高的点。例如,可以基于执行代表系统中普通工作负荷 的各种基准程序时处理器28的功耗来设置降低的操作点。可以选择最高功 耗基准,并可以设置降低的操作点,使得可以在每个活动处理器28中执行 最高功耗基准而不超过PMU156的能力。DPE电路20可以被配置以监测 处理器28来检测功耗超过阈值的情况,并可以被配置对一个或多个处理器 28进行抑制以降低功耗。于是,如果处理器28正在执行导致功耗超过最高 功耗基准的代码,则DPE电路20可以防止超过PMU156的能力,而不是 可能短时间内超过(例如,一个或几个时钟周期)。

操作点可以指CPU复合体14的电源电压大小和操作频率的组合。操作 频率可以是为处理器28提供计时的时钟频率。在一些情况下,CPU复合体 14中的其他电路可以在从操作频率导出的更低时钟频率下操作(例如,L2 高速缓存可以在更低时钟频率下操作)。电源电压大小和操作频率可以相 关。例如,电源电压大小可以至少高到足以令处理器28在操作频率下合适 地操作。在实施例中,电源电压大小可以是处理器28针对对应操作频率合 适地操作的最小电源电压大小。操作点也可以称为操作状态或功率状态。

随着电源电压大小和操作频率增大,CPU复合体14消耗的功率一般可 能增大。因此,在更低操作点下(更低电源电压大小和操作点),处理器28 可以消耗更少功率,可以在任何给定时间允许更多处理器活动。通常,如果 处理器加电,它就可以活动。处理器可用于几乎无延迟地执行指令(例如, 可以对其进行时钟门控,但如果指令已经准备好执行,则可以不进行门 控)。如果处理器断电或处于另一种可以执行指令之前可能发生显著延迟的 低功率状态中,则处理器可以是不活动的。例如,如果处理器需要重置或重 新锁定锁相环(PLL),则即使其保持加电,也可以是不活动的。

DPE20对处理器28进行抑制一般是指限制处理器28执行指令而没有 去激活处理器或改变其当前操作点。抑制可以包括限制指令(或特定指 令,诸如高功耗指令)的发出速率,限制指令的执行速率等。

通常,处理器可以包括被配置成执行由处理器实现的指令集架构中定 义的指令的任何电路和/或微码。处理器可以涵盖与其他部件一起在集成电 路上实现的处理器内核,作为片上系统(SOC10)或其他层级的集成。处 理器还可以涵盖分立的微处理器、处理器内核和/或集成到多芯片模块实施 方式中的微处理器、实现为多个集成电路的处理器等。

存储器控制器22一般可以包括用于从SOC10的其他部件接收存储操 作并访问存储器12以完成存储操作的电路。存储器控制器22可以被配置 成访问任何类型的存储器12。例如,储存器12可以是静态随机存取存储器 (SRAM)、诸如同步的DRAM(SDRAM)的动态RAM(DRAM),包括双 倍数据率(DDR、DDR2、DDR3等)DRAM。可以支持低功率/移动版本 的DDRDRAM(例如,LPDDR、mDDR等)。存储器控制器22可以包括 用于存储操作的队列,用于对操作进行排序(并可能重新排序)以及向存 储器12提供操作。存储器控制器22还可以包括数据缓存,以存储等候写 入存储器的写入数据,并读取要返回存储操作源的数据。在一些实施例 中,存储器控制器22可以包括存储器缓存,以存储最近访问的存储器数 据。在SOC实施中,例如,如果预计很快要再次存取,则存储器缓存可以 通过避免重新从存储器12存取数据来降低SOC中的功耗。在一些情况 下,存储器缓存也可以称为系统缓存,与诸如L2缓存30的私有缓存或处 理器28中的缓存相反,它们仅用于特定部件。此外,在一些实施例中,系 统缓存不需要位于存储器控制器22中。

外围设备18A-18B可以是SOC10中包括的任何一组附加的硬件功 能。例如,外围设备18A-18B可以包括视频外围设备,诸如:被配置成处 理来自相机或其他图像传感器的图像拍摄数据的图像信号处理器,被配置 成在一个或多个显示设备上显示视频数据的显示控制器,图形处理单元 (GPU)、视频编码器/解码器、缩放器、旋转器、混合器等。外围设备可 以包括音频外围设备,例如麦克风、扬声器、与麦克风和扬声器的接口、 音频处理器、数字信号处理器、混频器等。外围设备可以包括用于各种 SOC10外部的接口(例如,外围设备18B)的接口控制器,包括诸如通用 串行总线(USB)的接口、包括PCIExpress(PCIe)的外围部件互连 (PCI)、串行和并行端口等。外围设备可以包括联网外围设备诸如介质访 问控制器(MAC)。可以包括任何一组硬件。

通信结构27可以是用于在SOC10的部件之间进行通信的任何通信互 连和协议。通信结构27可以基于总线,包括共享总线配置、十字条配置和 具有桥接器的分级总线。通信结构27也可以基于分组,并可以是具有桥接 器、十字条、点对点或其他互连的分级体系。

PMGR32可以被配置成控制从PMU156请求的电源电压大小。可以有 由用于SOC10的PMU156产生的多个电源电压。例如,图1中示出的是 VCPU和VSOC。VCPU可以是用于CPU复合体14的电源电压。VSOC一般可以 是用于CPU复合体14外部的SOC10其余部分的电源电压。在一些实施例 中,可以有用于SOC10其余部分的多个电源电压。在一些实施例中,还可 以有用于CPU复合体14和/或SOC10中的各个存储器阵列的存储器电源电 压。可与用于供应给逻辑电路的电压(例如,VCPU或VSOC)一起使用的存 储器电源电压,可以具有比确保稳健存储器操作所需电压低的电压。在一 些实施例中,各个部件(例如,APSC16)的本地的逻辑部件可以控制部件 的功率状态,包括功率上升和功率下降,以及用于支持超过一个操作点的 那些部件的各个其他操作点。在其他实施例中,PMGR32可以控制SOC10 其他部件的功率上升和功率下降,或者可以支持针对一些部件的本地控制 以及针对其他部件的PMGR控制的组合。PMGR32可以在软件的直接控制 下(例如,软件可以直接请求部件功率上升和/或功率下降)和/或可以被配 置成来监测SOC10并判断各个部件何时要功率上升或功率下降。

PMU156一般可以包括产生电源电压并向系统的其他部件诸如SOC 10、存储器12、诸如显示设备、图像传感器、用户接口设备等各种芯片外 外围部件(图1中未示出)提供那些电源电压的电路。PMU156从而可以 包括可编程调压器、接口连接到SOC10、更具体而言连接到PMGR32以 接收电压请求的逻辑部件,等等。

要指出的是,SOC10的部件数量(以及图1中所示那些的子部件数 量,例如在CPU复合体14之内)可以在实施例之间有所不同。每种部件/ 子部件可以比图1中所示的数量多或少。

图2为APSC16的一个实施例的框图。在例示的实施例中,APSC16 包括动态电压和频率管理(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的输出分别被传输到PMGR32和时钟控制 (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中,都可以有任意数量的处理器是活动的,而不 导致超过PMU156的能力的功耗。因此,对于表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以向PMU156传送。类 似地,可以从寄存器44D向时钟控制电路提供当前请求的操作频率的指 示,以为CPU复合体14设定操作频率。在各实施例中,时钟控制电路可以 是PMGR32的部分、CPU复合体14的部分或在SOC10内任何地方。

现在转向图3,示出了流程图,其例示了APSC16(尤其是包括与门 48A-48B的控制电路42)的一个实施例的操作。尽管为了容易理解按照特 定次序示出了方框,但可以使用其他次序。可以在APSC16/控制电路42的 组合逻辑中并行执行各方框。如果需要,可以在多个时钟周期内流水线化 方框、方框组合和/或整体流程图。可以配置APSC16和/或控制电路42以 实施图3所示的操作。

如先前所提及的,APSC16/控制电路42可以接收CPU复合体14中的 各种APSC事件。APSC事件可以包括处理器激活事件和处理器去激活事 件。如果发生处理器激活事件(决策框50,“是”分支),APSC16/控制 电路42可以更新其活动处理器的计数。如果更新的活动处理器的数量可能 超过PMU限制(决策框52,“是”分支),APSC16/控制电路42可以通 过复用器46A-46C选择正确的CoreMax功率状态(或操作点)以降低当前 操作点,来防止可能超过PMU限制(方框54)。在本实施例中,如果设 定了来自当前选定目标条目中比特矢量的对应限制比特,则更新的活动处 理器的数量可能超过PMU限制。在一些实施例中,可以发生超过一个这样 的过渡。例如,如果目标操作点是图2中的DVFM状态3,并且一开始两 个处理器是活动的,则可以确立目标操作点。随后,激活第三个处理器可 以导致将操作点降低到3rdCoreMax状态。在处于3rdCoreMax状态中时 (或者甚至在过渡到3rdCoreMax状态的同时),第四处理器可以是活动 的,并导致过渡到4thCoreMax状态。

过渡到降低状态可能会花费时间。例如,可能使用大约4.5微秒来降低 操作频率,然后可能使用大约5微秒来降低电源电压大小。在过渡时间期 间,新激活的处理器可以开始执行,这可能导致超过PMU限制,直到确立 操作点为止。为防止这种情况,APSC16/控制电路42可以利用时钟驱动器 来降低操作频率(例如,将时钟频率除以二或某个其他整数)。可以比不同 操作点中指定的频率间变化快地实现这样的操作频率变化,这可能需要,例 如,将锁相环(PLL)重新锁定到新的时钟频率。即,将除数变为当前整数 二倍的不同整数不改变时钟信号的相位,于是PLL锁可以不丢失且不需要 重新获取。降低的频率可以保持有效,直到完成到降低操作点的过渡。

如果APSC事件是去激活处理器(决策框58,“否”分支),则控制 电路42可以更新活动处理器的数量。如果当前操作点是降低操作点之一, 则基于更新的活动处理器数量来返回目标操作点或更高操作点之一(例 如,3rdCoreMax状态,如果当前操作点为4thCoreMax状态)可能是安全 的。如果更新的数量表示可以使用更高操作点(决策框60,“是”分 支),则APSC16/控制电路42可以通过复用器46A-46C选择新的操作点 (方框62)。

可能影响当前操作点的另一种APSC事件是选定操作点的变化,如寄 存器44A中的TgtSel值所示。控制电路42可以监测寄存器44A以检测变 化,或者软件可以更新另一个寄存器以指出操作点的变化,这可能是APSC 事件。如果改变TgtSel以指示不同的操作点(决策框64),则不同的操作 点可能会导致当前活动处理器超过PMU限制。因此,如果改变TgtSel(决 策框64,“是”分支),且结合当前活动处理器的数量的新选择的操作点 表示可能不会超过PMU限制(决策框66,“是”分支),则APSC16/控 制电路42可以通过复用器46A-46C选择正确的CoreMax状态,并可以降 低操作频率,直到完成过渡,类似于以上论述(方框68和70)。如果新选 择的操作点可能不导致当前活动处理器数量超过PMU限制(决策框66, “否”分支),则APSC16/控制电路42可以选择TgtSel操作点并可以过 渡到选择的操作点(方框72)。

如先前所提及的,一些实施例还可以采用DPE电路20,并且此类实施 例可以允许将3rdCoreMax和4thCoreMax条目编程成比不包括DPE电路20 时许可的更高的操作点(更高电源电压大小和操作频率)。图4是流程 图,示出了结合APSC16使用的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功率估计值未超过第二功率阈值。可以将第二功率阈值编程为 低于本段中前面提到的其他功率阈值。

可以基于PMU156的能力对功率阈值进行编程,并且功率阈值可以包 括防护带以确保不超过PMU能力。在结合APSC16使用DPE电路20的实 施例中,与单独使用DPE电路20相比,能够以不同方式对功率阈值进行编 程(例如,在结合APSC16使用时,阈值可以更高)。

可以配置滞后计数器以响应于已经超过功率阈值的信号将增序计数器 进行增量,并可以响应于未超过功率阈值而将降序计数器进行增量。可以 将计数与来自阈值寄存器102的计数阈值对比,可以配置滞后计数器90以 通知DPE电路20是否超过阈值。如果增序计数器超过阈值,则可以配置 DPE电路20以产生降低操作点的DVFM请求。如果降序计数器超过阈 值,则可以配置DPE电路20以产生DVFM请求用于存储先前降低过的操 作点。在一些实施例中,对于增序计数器98和降序计数器100,寄存器 102中可以有独立的计数阈值。在其它实施例中,可使用相同的阈值。

在一个实施例中,可以配置滞后计数器90以在将增序计数器进行增量 时清空降序计数器,反之亦然。因此,增序计数器98可以是超过功率阈值 的相继功率估计值数量的计数,而没有介入的不超过功率阈值(或第二功率 阈值)的估计值。类似地,降序计数器100可以是不超过功率阈值(或第二 功率阈值)的相继功率估计值数量的计数,而没有介入的超过功率阈值的功 率估计值。通过这种方式,在导致DVFM过渡之前,功率估计值可能有滞 后。可以在为处理器28提供时钟频率的时钟的每个时钟周期获取功率估计 值。或者,可以基于整个间隔内的活动,以更短间隔获取功率估计值。

现在转向图6,示出了流程图,例示了与DPE电路20交互的DVFM 硬件和/或软件的一个实施例的操作。尽管为了容易理解按照特定次序示出 了方框,但可以使用其他次序。对于在硬件中实现的那些特征(例如,各 实施例中的APSC16和/或PMGR32),可以在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时对其进行编程。在其他实施例中, 阈值可以对于每个操作点都是相同的,并且例如,在SOC10初始化期间对 它们进行一次编程。如果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)。在包括APSC 16的实施例中,DVFM硬件可以是APSC16。在其他实施例中,可以不包 括APSC16,并且DVFM硬件可以在PMGR32中。

随后转向图8,示出了系统150的一个实施例的框图。在所示的实施 例中,系统150包括耦接到一个或多个外围设备154和外部储存器12的 SOC10的至少一个实例。提供了PMU156,其向SOC10供应电源电压以 及向存储器12和/或外围设备154供应一个或多个电源电压。在一些实施例 中,可以包括SOC10的不止一个实例(也可包括不止一个存储器12)。

依赖于系统150的类型,外围设备154可包括任意期望的电路。例 如,在一个实施例中,系统150可以是移动设备(例如个人数字助理 (PDA)、智能电话等),外围设备154可包括用于各种无线通信的设 备,例如wifi、蓝牙、蜂窝、全球定位系统等。外围设备154还可包括另 外的存储装置,包括RAM存储装置、固态存储装置或磁盘存储装置。外围 设备154可包括用户界面设备,例如显示屏,其包括触摸显示屏或多触摸 显示屏、键盘或其他输入设备、麦克风、扬声器等。在其他实施例中,系 统150可以是任何类型的计算系统(如台式个人计算机、膝上型电脑、工 作站、网络机顶盒等)。

外部储存器12可以包括任何类型的存储器。例如,外部存储器12可 以是SRAM、动态RAM(DRAM)诸如同步DRAM(SDRAM)、双倍数 据率(DDR,DDR2,DDR3等)SDARM、RAMBUSDRAM、DDR DRAM的低功率版本(例如,LPDDR,mDDR等)等。外部存储器12可 以包括存储器件安装到其上的一个或多个存储器模块诸如单列直插存储器 模块(DIMM)、双列直插存储器模块(DIMM)等。另选地,外部存储器 12可以包括芯片上芯片或封装上封装实施方式中的SOC10上安装的一个 或多个存储器件。

一旦充分理解了以上公开,则很多变型和修改对于本领域的技术人员 而言将变得显而易见。本发明旨在将以下权利要求书解释为涵盖所有此类 变型和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号