动态电压裕度恢复的制作方法

文档序号:10598336阅读:330来源:国知局
动态电压裕度恢复的制作方法
【专利摘要】在一个实施方案中,集成电路包括部件(例如,处理器)和控制电路的多个实例。该实例可被配置为在各种模式中操作。该模式中的一些模式无法呈现电源上的最坏情况负荷。该控制电路可被配置为监测实例并检测实例正在其中操作的模式。基于该监测,该控制电路可请求恢复针对该实例中的最坏情况状况所创建的电压裕度的一部分。如果该实例要改变模式,则其可被配置为从控制电路请求模式变化。如果模式变化使得当前供电电压幅值增大(例如,使所恢复的电压裕度中的一些电压裕度复原),则控制电路可导致复原并允许其在准许模式变化之前完成。
【专利说明】
动态电压裕度恢复
技术领域
[0001 ]本发明涉及集成电路中的电源管理领域。
【背景技术】
[0002]给定集成电路可包括多种部件,并且在某些情况下可包括相同部件的多个实例。例如,片上系统(SOC)可包括形成SOC的中央处理单元(CPU)的一个或多个处理器、一个或多个存储器控制器、各种外围电路(诸如图形设备、显示控制器、图像处理部件、音频处理部件、联网部件、外围接口控制器等)。每个部件被设计成以指定时钟频率(或简单地说频率)和对应的供电电压幅值进行操作。不同的部件可具有不同的操作点(频率/供电电压幅值对),并且如果电压幅值在使用期间不同,则在集成电路中可能存在不同的供电电压层。
[0003]在使用期间提供给部件的实际供电电压幅值大于设计该部件所针对的供电电压幅值。差值的显著的一部分(被称为电压裕度,或简称为裕度)考虑到可能的电压损耗(被称为电压降或下降)。具体地在使用期间供电电压变动的重要来源是由于向集成电路提供电力的电源管理单元和集成电路内的负载之间的电阻所导致的电流-电阻(IR)下降。电阻可包括电路板上的导体中的电阻、集成电路封装的引脚和集成电路内的负载(例如,集成电路的部件)之间的导体中的电阻等。部件消耗的电流越大,IR降越高。另外,电流的显著变化使得瞬态电压下降(被称为L*di/dt电压下降,由于系统中的电感和瞬态电流改变的组合导致压降)。为了确保部件在所有情况下适当地操作,假设针对部件的最坏情况的电流和di/dt状况并增大所需供电电压幅值以确保即使最坏情况的状况发生,部件所经受的供电电压幅值也足以正确操作。在包括部件的多个实例(例如,多个处理器)的情况下,假设所有实例同时在最坏情况下操作并且确定对应的电压裕度。
[0004]保持比本来所需值更高的供电电压幅值消耗电力和高端性能。IR降和L*di/dt下降高度依赖于工作负荷,其随活动态实例的数量以及工作负荷是否正利用大多数耗电量大的实例而变化。因此,在实例不呈现电源的最坏情况负荷时,电压裕度大于所需值并且功率消耗高于必要值。

【发明内容】

[0005]在一个实施方案中,集成电路包括部件和控制电路的多个实例。该实例可被配置为在各种模式中操作,其中一些模式无法呈现电源上的最坏情况负荷。该控制电路可被配置为监测实例并检测实例正在其中操作的模式。基于该监测,该控制电路可请求恢复针对该实例中的最坏情况状况所创建的电压裕度的一部分。如果该实例要改变模式,则其可被配置为从控制电路请求模式变化。如果模式变化使得当前供电电压幅值增大(例如,使所恢复的电压裕度中的一些电压裕度复原),则控制电路可导致复原并允许其在准许模式变化之前完成。在各种实施方案中,该电压裕度恢复可通过减小供电电压幅值或在相同供电电压幅值下增大频率而发生。在一些实施方案中,有效功率/性能比可更优化并且可随条件动态变化。
[0006]在一个实施方案中,该部件可为SOC的处理器(CPU)。该处理器可包括用于执行各种类型的指令操作的指令执行管道。在某些模式中,该指令执行管道中的一个或多个指令执行管道可被禁用,这可确保最坏情况供电负荷被阻止。为了启用或禁用管道,该处理器可被配置为请求控制电路的许可,该控制电路可被配置为监测每个处理器实例的模式,以确定电压裕度恢复是否被复原(部分地或全部地),并且在准许该请求之前之前使所恢复的电压裕度复原。
【附图说明】
[0007]现在对附图进行简要说明,下面的具体说明将参照附图进行描述。
[0008]图1为示出电压和可能电压裕度恢复的图示。
[0009]图2为片上系统(SOC)的一个实施方案的框图。
[0010]图3为图2所示的自动功率状态控制器(APSC)的一个实施方案的框图。
[0011 ]图4为示出APSC执行电压裕度恢复的一个实施方案的操作的流程图。
[0012]图5为示出APSC执行频率恢复的一个实施方案的操作的流程图。
[0013]图6为在图2中所示的处理器的一个实施方案的框图。
[0014]图7为示出在图6中所示的操作监视器和管道控制电路的一个实施方案的操作的框图。
[0015]图8为系统的一个实施方案的框图。
[0016]图9为在图3中所示的电压调节电路的一个实施方案的框图。
[0017]尽管本发明易受各种修改形式和替代形式的影响,但附图中以举例的方式示出了其具体实施方案并将在本文详细描述。然而,应当理解,附图及对附图的详细描述并非旨在将本发明限制于所公开的特定形式,而正相反,其目的在于覆盖落在由所附权利要求所限定的本发明的实质和范围内的所有修改形式、等同形式和替代形式。本文所使用的标题仅用于组织的目的,并非意在用于限制说明书的范围。如在整个专利申请中所使用的那样,以允许的意义(即,意味着具有可能性)而不是强制的意义(即,意味着必须)来使用字词“可能”。类似地,字词“包括” (“include”,“including”,和“includes”)是指包括但不限于。
[0018]各种单元、电路或其他部件可被描述为“被配置为”执行一项或多项任务。在此类上下文中,“被配置为”是对通常意味着“具有”在操作期间执行这一项或多项任务的“电路”的结构的宽泛表述。因此,单元/电路/部件可被配置为即使在单元/电路/部件当前未接通时也执行该任务。通常,形成与“被配置为”对应的结构的电路可包括硬件电路。类似地,为了描述中方便,可将各种单元/电路/部件描述为执行一项或多项任务。此类描述应被解释成包括短语“被配置为”。表述被配置为执行一个或多个任务的单元/电路/部件意在明确地不援引35U.S.C.§112,第六段对该单元/电路/部件的解释。
[0019]本说明书包括参考“一个实施方案”(“one embodiment”或“an embodiment”)。短语“在一个实施方案中”或“在实施方案中”的出现不一定指相同的实施方案,尽管通常设想包括特征的任何组合的实施方案,除非在此明确地否认。特定特征、结构或特性可以与本公开一致的任何适当的方式结合。
【具体实施方式】
[0020]现在转向图1,其示出描述了将安全用于SOC中的处理器的不同操作模式的最小供电电压幅值,诸如图2所示并在下文详细论述的。线2表示最小供电电压幅值,该处理器在该最小供电电压幅值处被设计为正确地操作。即,在不存在由IR降、L*di/dt电压下降以及其他此类因素所导致的供电电压变动的情况下,由线2所表示的供电电压幅值将足以确保处理器的正确操作。以另一种方式来看,线2为针对理想电源(无阻抗和无穷大载流量)的足以向处理器直接提供电力的供电电压幅值。
[0021]线6表示在所有处理器处于活动态、在高性能模式中执行的情况下的最小安全供电电压幅值,该高性能模式允许来自每个处理器的最坏情况供电负荷。由线6所表示的供电电压幅值包括超过理想供电最小值的裕度(由线7表示),以确保在由“实际”因素诸如供电分布层中阻抗(例如,电阻和电感)、互连至封装引脚、L*di/dt瞬态效应等引起的任何供电电压变动下正确操作。
[0022]线4表示中间供电电压幅值。在无法从处理器(或至少一些处理器)得到最坏情况的供电负荷的情况下,中间水平使用起来将是安全的。例如,可执行少于所有的处理器(例如,可对一些处理器进行时钟门控或功率门控)。如果并非所有处理器在执行,则即使所执行的处理器处于高性能模式中,电源上的总负荷也可能小于在所有处理器在高性能模式中执行的情况下的最坏情况的可能负荷。除此之外或另选地,处理器中的一个或多个处理器可在低性能状态下执行,该低性能状态不允许那些处理器呈现供电负荷上的最坏情况负荷。非活动态处理器和低性能状态处理器可为安全供电电压降低的因素。由于这些因素,可支持较低裕度(由图1中线5所表示)。
[0023]因此,如果处理器的模式为外部可控的,则使得模式之间的转换可不发生(除非外部控制器允许转换),则已被内置于供电电压幅值的电压裕度的一部分(由图1中线3所表示)可被恢复。由于执行供电电压幅值变化花费一定时间,因此实际上恢复可用裕度可基于外部控制处理器转换到较高性能(和可能较高的供电负荷)模式的能力。由于电源是外部控的,则功率门控的处理器需要接通电源以转换到较高功率模式(例如,任何“接通”模式),因此可外部控制该转换。对于时钟门控的情况和处理器的状态为较低性能但仍在执行的情况,可通过添加处理器和外部控制逻辑部件(例如,下述自动功率状态控制器)之间的连通来控制模式。处理器可检测到转换到不同性能状态是期望的,并且可从自动功率状态控制器请求转换。该自动功率状态控制器可确保不需要供电电压幅值增加来允许转换,或者可使供电电压增大,然后可允许转换发生。可允许转换到较低性能模式,并且在适用的情况下可创建较低供电电压幅值。该较低供电电压幅值无需在允许转换之前创建,因为处理器将以较高电压幅值适当地操作。
[0024]利用有处理器和自动功率状态控制器之间的接口所提供的可控性,电压裕度(或其一部分)可基于处理器操作的模式安全、动态地恢复。在这种情况下,电压裕度可改变而处理器频率保持不变。在另一个实施方案中,在处理器模式指示小于最坏情况负荷的情况下,可增大处理器频率。在另一个实施方案中,可实现供电电压减小和频率增大的组合。例如,对于少数处理器正在执行而它们正在高性能模式中执行的情况,可实现升压状态。在升压状态下,可使用较高频率。该自动功率状态控制器可监测来自其他处理器的模式转换,并且可在模式的组合呈现出大于升压状态的供电负荷的电势可安全承受的情况下转换到不同的状态。在其他模式中,电压裕度恢复可通过减小供电电压幅度来执行。如果需要,其他实施方案可包括更多升压状态。通过减小供电电压幅度来恢复裕度在本文中可被称为动态电压裕度恢复-电压(DVMR-V)。通过增大频率来恢复裕度可被称为DVMR-频率(DVMR-F)。
[0025]尽管以上论述和以下各种实施方案描述了针对处理器的电压裕度的恢复,但DVMR也可适用于集成电路的其他部件。通常,支持多于一种模式并且至少一种模式确保部件将不呈现最坏情况供电负荷的任何部件可采用DVMR。如上所述,模式之间的转换可使用部件和自动功率状态控制器之间的接口而为可控的。这样,类似于多个处理器的以上论述和以下描述,多个部件可为可控的。通常,部件可以是在总体集成电路中执行所限定的一组功能的任何独立定义的电路。可能存在部件的多个实例(例如,多个处理器)。该实例可大体上相同,但可存在一些差异。例如,该处理器的实例可包括识别处理器为哪个实例的CPU ID。针对每个处理器的CPU ID可为不同的。
[0026]现转向图2,其示出耦接至存储器12和电源管理单元(PMU)156的SOC 10的一个实施方案的框图。如名称所暗指的,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和自动功率状态控制器(APSC) 16。
[0027]CPU处理器28可用作SOC 10的CPU。系统的CPU包括执行系统(诸如,操作系统)的主控软件的一个或多个处理器。一般来讲,在使用期间由CPU执行的软件可控制系统的其他部件,以实现系统的期望功能。处理器28还可执行其他软件诸如应用程序。应用程序可提供用户功能,并且可依赖针对较低级别设备控制的操作系统。因此,处理器28也可被称为应用处理器。CPU复合体14还可包括其他硬件诸如L2高速缓存30和/或至系统的其他部件的接口(例如,至通信结构27的接口 )。
[0028]APSC 16可被配置为监测活动态处理器28和活动态处理器28的模式。如果电压裕度或其一部分可基于所监测的活动收回,则APSC 16可执行DVMR-V或DVMR-F以恢复可用裕度。
[0029]在一个实施方案中,最坏情况功率消耗可能在处理器28中发生,例如在包含最高功率消耗指令的代码重复执行于处理器28中的情况下。哪些指令为最高功率消耗指令可随处理器28的具体实施不同而不同。在一些情况下,最高功率消耗指令可为特定类型的指令(例如,浮点指令可比媒体或整数指令消耗更高的功率,或者媒体指令可消耗功率最高,等等)。这些类型中的特定指令可比其他消耗更高的功率(例如,乘加浮点指令可比其他浮点指令消耗更高的功率)。
[0030]在该上下文中,指令类型可涉及指令的一般性操作和/或指令所操作的操作数类型。例如,指令类型可包括从存储器读取数据并将数据写入到存储器中的加载/存储指令。指令类型还可包括对特定操作数类型(例如,浮点、向量、整数等)进行操作的算术/逻辑指令。
[0031]对于最高功率消耗指令类型,每个处理器28可包括执行该类型的指令操作(op)的多个执行管道。处理器28可被配置为启用/禁用管道的子组。因此,由APSC 16所跟踪的处理器模式(处理器28被配置为请求允许在其之间进行转换)可包括被启用的管道的数量。如果启用多条管道,则处理器28的最坏情况功率消耗可较高。如果启用较少管道,则最坏情况功率消耗可较低。
[0032]该处理器28可被配置为监测被执行的混合指令。如果较高功率消耗操作在频率上增加并且一个或多个执行管道被禁用,则处理器28可确定一个或多个执行管道应被启用。处理器28可使用至APSC 16的接口来请求对管道的启用,并且可在被准许时启用管道。类似地,如果较高功率消耗操作在频率上减少,则处理器28可确定一个或多个执行管道应被禁用并且可从APSC 16请求对管道的禁用。通过使管道的启用/禁用连通到APSC16,该处理器28可允许APSC 16控制处理器28的最大供电负荷(从而可允许电压裕度得以收回)。
[0033]操作点可涉及CPU复合体14的供电电压幅值和操作频率。操作频率可为对处理器28记时的时钟的频率。在一些情况下,CPU复合体14中的其他电路可在源于操作频率的较低时钟频率下进行操作(例如,L2高速缓存30可以较低时钟频率进行操作)。操作频率也可称为时钟频率或被简称为频率。操作点也可被称为操作状态或功率状态。
[0034]通常,处理器在其通电的情况下可为活动的。处理器可几乎无延时地可用于指令执行(例如,其可被时钟门控,但在指令准备执行的情况下不被门控)。处理器在其断电或在执行指令之前处于可经受显著延时的另一低功率状态下的情况下可为非活动的。例如,如果处理器需要锁相环(PLL)重置或重新锁定,则即使其保持通电的情况下也可为非活动的。
[0035]通常,处理器可包括被配置为执行在由处理器实施的指令集架构中定义的指令的任何电路和/或微码。处理器可涵盖在具有作为片上系统(S0C10)或其他集成水平的集成电路的其他部件上实施的处理器内核。处理器还可包括分立的微处理器、处理器内核和/或集成到多芯片模块具体实施中的微处理器、被实施为多个集成电路的处理器等等。
[0036]存储器控制器22通常可包括用于接收来自SOC10的其他部件的存储器操作并用于访问存储器12以完成存储器操作的电路。存储器控制器22可被配置为访问任何类型的存储器12。例如,存储器12可以是静态随机存取存储器(SRAM)、动态RAM(DRAM)诸如同步的DRAM(SDRAM),包括双倍数据率(DDR、DDR2、DDR3、DDR4等)DRAM。可支持低功率/移动型式的DDR DRAM(例如,LPDDR、mDDR等)。存储器控制器22可包括存储器操作队列,以用于对这些操作进行排序(并且可能重新排序),并将这些操作呈现至存储器12。存储器控制器22还可包括用于存储等待写到存储器的写数据并且用于读取等待返回至存储器操作的源的数据的数据缓冲器。在一些实施方案中,存储器控制器22可包括用于存储最近访问的存储器数据的存储器高速缓存。例如,在SOC具体实施中,存储器高速缓存可通过在预期很快要再次访问的情况下避免从存储器12重新访问数据来降低SOC中的功率消耗。在一些情况下,存储器缓存也可被称为与私有高速缓存(诸如L2高速缓存30或处理器28中的高速缓存)不同的系统高速缓存,该私有高速缓存只服务于某些部件。另外,在一些实施方案中,系统高速缓存无需位于存储器控制器22内。
[0037]外围设备18A-18B可为被包括在SOC1中的附加硬件功能的任何集合。例如,外围设备18A-18B可包括视频外围设备,诸如被配置为处理来自相机或其他图像传感器的图像捕获数据的图像信号处理器、被配置为在一个或多个显示设备上显示视频数据的显示控制器、图形处理器单元(GPU)、视频编码器/解码器、缩放器、旋转器、混合器等。外围设备可包括音频外围设备,诸如麦克风、扬声器、至麦克风和扬声器的接口、音频处理器、数字信号处理器、混音器等。该外围设备可包括用于SOC 10外部(例如,外围设备18B)的各种接口的接口控制器,包括诸如通用串行总线(USB)、外围部件互连(PCI)(包括PCI Express(PCIe))、串行口和并行口等的接口。该外围设备可包括网络外围设备,诸如媒体访问控制器(MAC)。可包括任何一组硬件。
[0038]通信结构27可以是用于在SOC 10的部件之间进行通信的任何通信互连和协议。通信结构27可为基于总线的,包括共享总线配置、交叉开关配置、和具有桥的分层总线。通信结构27也可为基于分组的,并且可以是具有桥的分层、交叉开关、点到点、或其他互连器。
[0039]PMGR 32可被配置为控制从PMU 156请求的供电电压幅值。可存在由PMU 156所产生的用于SOC 10的多个供电电压。例如,图2所不的是Vcpu和Vsodpu可为用于CPU复合体14的供电电压。Vsoc通常可为用于在CPU复合体14之外的SOC 10其余部分的供电电压。在一些实施方案中,可存在用于SOC 10的其余部分的多个供电电压。在一些实施方案中,还可存在用于CHJ复合体14和/SSOC 10中的各种存储器阵列的存储器供电电压。该存储器供电电压可用于供应给逻辑电路(例如,Vcpu或Vsqc)的电压,其可具有比确保稳健存储操作所需的电压幅值低的电压幅值。在一些实施方案中,各种部件局部的逻辑部件(例如,APSC 16)可控制部件的功率状态,包括通电和断电以及用于支持多于一个操作点的这些部件的各种其他操作点。在其他实施方案中,PMGR 32可控制SOC 10的其他部件的通电和断电,或者一些部件的局部控制和其他部件的PMGR控制的组合可得到支持。PMGR 32可在软件直接控制下(例如,软件可直接请求部件的通电和/或断电)和/或可被配置为监测SOC 10并确定何时使各种部件通电或断电。
[0040]PMU 156通常可包括用于生成供电电压并用于将这些供电电压提供至系统的其他部件诸如SOC 10、存储器12、各种片外外围部件(图2中未示出),诸如显示设备、图像传感器、用户接口设备等的电路。因此,PMU156可包括可编程调压器、接口连接至SOC 10的逻辑部件、并且更具体地用于接收电压请求的PMGR 32等。
[0041]需注意,SOC10的部件的数量(以及图2所示部件,诸如CPU复合体14内的子部件的数量)可根据不同实施例而不同。可存在比图2所示数量更多或更少的每个部件/子部件。
[0042]图3是APSC16的一个实施方案的框图。在例示的实施方案中,APSC 16包括动态电压和频率管理(DVFM)表40、控制电路42、寄存器44A-44D和电压调节电路46 AVFM表40耦接至寄存器44B和44D、控制电路42和电压调节电路46。该电压调节电路46耦接至寄存器44C。控制电路42耦接至用于接收CPU请求事件、用于提供CPU确认事件,并用于提供对电压调节电路46的区域选择的寄存器44A-44B。寄存器44C和44D的输出分别传送至PMGR 32和时钟控制(ClkCtI)单元(未示出)。
[0043]DVFM表40包括可利用用于描述各种操作点或状态(图3中的DVFM状态列所指示的)的数据进行编程的多个条目。寄存器44A可利用来自软件的目标操作点选择(TgtSel)进行编程,从而识别CPU复合体14的期望操作点。该目标操作点可用作在实现DVFM-F的情况下的上限。DVFM-V可通过基于所选择的条目中的数据动态地改变所请求的供电电压幅值来实现。因此,该控制电路42可被配置为将目标操作点选择或基于DVFM-F生成的选择写入当前配置寄存器44B ο寄存器44B可耦接至表40上的读端口,并且来自对应条目的数据可由表40输出。
[0044]DVFM表40的每个条目中的数据可描述操作点。该数据可包括对供电电压幅值(图3中的电压列)和操作频率(图3中的频率列)的指示。该供电电压幅值可为针对对应频率的“安全”电压。即,如果CPU复合体14以安全电压供电,则即便在所有处理器28呈现电源上的最坏情况负荷的情况下也可实现正确操作。该数据还可包括可由DVFM-V施加的安全供电电压幅值的减小指示。具体地,在例示的实施方案中,每个操作点可支持三个减小值:VrO^Vrl和Vr2。每个电压减小值可对应于处理器28的模式的“区域”,其表示处理器28作为整体当前实际可呈现在处理器中模式的组合的不同的最大负荷的。可以任何期望方式来测量区域。可将针对区域的对应一组阈值(to、tdPt2)编程为状态条目并且可将其与当前区域测量值进行比较,以确定区域(从而选择正确电压减少值)。
[0045]在本实施方案中,该区域可根据处理器“权重”来测量。该权重可表示处理器的模式,其中较大权重指示较高可能负荷并且较低权重表示较低可能负荷。非活动处理器28可具有的权重为零。在可禁用执行高功率消耗操作的执行管道的实施方案中,更多数量的启用高功率消耗执行管道导致较高权重。例如,在一个实施方案中,活动的处理器28可具有启用一个高功率执行管道的模式。此类配置可具有的权重为一。活动的处理器28可具有启用所有执行管道的另一模式。此类配置可具有的权重为2(或3,或4,取决于相对功率消耗差异和/或执行管道的数量)。该控制电路42可被配置为保持当前处理器权重的累加值(例如,处理器28的权重的和)。在处理器28请求模式转换时,该控制电路42可被配置为调节累加总权重。该控制电路42可被配置为将总权重与阈值进行比较以确定当前区域,并且该控制电路42可生成电压调节电路46的区域选择信号以指示当前区域。
[0046]响应于区域选择信号,该电压调节电路可被配置为选择对应的电压调节(在区域3中的情况下,VrQ、Vrl、Vr2或0),以从安全供电电压幅值(从条目的电压域)将其减去来产生当前所请求供电电压幅值。当前所请求幅值可被存储在寄存器44C中并传输至PMGR 32。在一个实施方案中,DVFM的电压调节可与基于操作温度的热电压调节同时实现。来自所有来源的总调节可被限制于最大值,该最大值可被编程到APSC 16中。例如,图9为电压调节电路46的一个实施方案的框图。在例示的实施方案中,耦接多路复用(mux) 160以接收来自表40的电压调节(在区域3中的情况下,VrQ、Vr1、Vr2或O)和来自控制电路42的区域选择。该mux 160可响应于区域选择来选择电压调节并将所选择的电压调节输出至加法器162,该加法器还可接收由温度引起的电压调节(Vtemp)13Vtemp可由温度补偿逻辑部件(未示出)来提供。一般来讲,在各种实施方案中,可存在任何数量的电压调节来源,并且来自这些其他来源的调节可被添加至来自表40的调节以达成总调节。如上所述,总调节可被限制于最大值(图9中的最大调节值),该最大值可通过最小值选择电路164来实现,该最小值选择电路被親接以接收加法器162的输出最大值调节。在一个实施方案中,最大值调节还可存储于表40中,或者在其他实施方案中,可被编程于寄存器中或以其他方式提供。从最小值选择电路164所得的调节可耦接至加法器166的输入,该输入可从表40所提供的电压幅值减去所得的调节,以生成当前所请求的电压幅值(图9中的CurVoI)。
[0047]也可将最大权重提供在条目中(图3中的最大权重域)。该控制电路可被配置为将处理器的总累加权重限制为最大权重。在一个实施方案中,最大权重可用作DVFM-F具体实施的一部分。如果条目为升高频率条目,则控制电路42可被配置为使用最大权重来确定有待作出至较低DVFM状态的变化使得可在处理器28中作出期望转换。即,不再使用升高频率,因为处理器中的活动增多,这需要减小升高频率。在这种情况下,该控制电路42可被配置为减少寄存器44B中所指示的状态,从而引起供电电压和/或频率变化。
[0048]现在转向图4,其示出描述APSC16实现DVMR-V的一个实施方案的操作的流程图。尽管为了便于理解以特定顺序示出各框,但也可使用其他顺序。可在APSC 16中的组合逻辑电路中并行地执行各个框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。APSC 16可被配置为实现图4所示的操作。
[0049]图4的操作可响应于对来自处理器28中的一个处理器的在模式之间转换的请求而实现。对转换的请求还可包括使处理器通电或断电的请求。通电/断电请求可由PMGR 32或管理唤醒和关闭处理器28的其他电路来传输。断电可使得权重减小并且通电可使得权重增大。如果所请求的转换使得权重减小(决策框50,“是”分支),则控制电路42可被配置为确定减小的权重是否引起区域变化(决策框52) ο即,该控制电路42可被配置为将减小的权重与来自当前DVFM状态条目的区域阈值进行比较,以确定区域是否变化。如果是(决策框52,“是”分支),则控制电路42可被配置为将新区域选择传输至电压调节电路46(框54)。在任一种情况下,该控制电路42可被配置为准许来自处理器28的请求(框56),因为当前配置对操作减小负荷来说是安全的。即,在准许请求之前,转换到减小电压无需发生。
[0050]如果请求使得权重增大(决策框58,“是”分支),则该控制电路42可被配置为将增大的权重与最大权重和区域阈值进行比较(决策框60和64)。如果增大的权重不小于或等于最大权重(决策框60,“否”分支),则该控制电路42可被配置为拒绝所请求的变化(框62)。拒绝所请求的变化可包括使权重保持在当前设置处。在一个实施方案中,可期望最大权重不被设定为低于最大可能权重。如果增大的权重小于或等于最大权重(决策框60,“是”分支)并且最大的权重不使区域变化(决策框64,“否”分支),则该控制电路42可被配置为准许请求(框66)。如果增大的权重小于或等于最大权重(决策框60,“是”分支)并且最大的权重使得区域变化(决策框64,“是”分支),则该控制电路42可被配置为传输新区域选择(框68)。在这种情况下,该控制电路42可被配置为在准许请求(框66)之前等待至新供电电压幅值的改变完成,因为安全地管理可能的较高供电负荷可能需要较高供电电压幅值。
[0051 ]然后转到图5,其示出描述APSC 16实现DVMR-F的一个实施方案的操作的流程图。图5所示操作可与图4所示的操作并行地和/或相结合地实现。然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。在APSC 16中的组合逻辑电路中可并行地执行各框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。APSC 16可被配置为实现图5所示的操作。
[0052]图5的操作可响应于来自处理器28中一个处理器的在模式之间转换的请求(和/或处理器通电/断电请求)而实现。如果所请求转换使得权重减小(决策框70,“是”分支),则该控制电路42可被配置为确定减小的权重是否将允许CPU复合体14在较高DVFM状态(例如,具有在相同供电电压幅值下具有较高操作频率的较高性能操作点、较高供电电压幅值和较高频率等的状态)下操作。在例示的实施方案中,该控制电路42可被配置为通过比较准许请求之后的总权重与较高状态的最大权重(决策框72)来确定较高状态是否可能。如果是(决策框72,“是”分支)并且较高状态小于或等于寄存器44A中所指示的目标状态(决策框74,“是”分支),则该控制电路42可被配置为发起到较高状态的转换(框76)。例如,该控制电路42可被配置为更新寄存器44B以选择较高状态。对应频率和电压可被传输至PMGR 32和时钟控制单元以使得转换到新操作点。在一个实施方案中,该控制电路42可被配置为传输使得供电电压幅值零减小直到转换完成并稳定的区域选择。在任一种情况下,该控制电路42可被配置为准许来自处理器28的请求(框78),因为当前配置对操作减小负荷来说是安全的。
[0053]如果请求使得权重增大(决策框80,“是”分支),则该控制电路42可被配置为将增大的权重与当前状态的最大权重进行比较(决策框82)。如果增大的权重不小于或等于最大权重(决策框82,“否”分支),则该控制电路42可被配置为发起到较低状态的转换(框84)。发起到较低状态的转换还可包括检查增大的权重是否小于或等于较低状态的最大权重。如果不是,则可选择更低状态。控制电路42可被配置为等待转换完成(决策框86)并且可准许请求(框88)。如果增大的权重小于或等于最大权重(决策框82,“是”分支),则该控制电路42可被配置为准许请求(框88)。
[0054]然后转到图6,其示出了处理器28中的一个处理器的一个实施方案的的一部分的框图。在图6的实施方案中,该处理器28包括含有指令高速缓存92的前端90、包括操作监测电路96和浮点(FP)管道控制电路98的调度器电路94、一组执行管道诸如管道100A-100E和数据高速缓存102。前端90可耦接至调度器92,该调度器可耦接至执行管道100A-100E。该执行管道100E可耦接至数据高速缓存102。该操作监测器96可耦接至FP管道控制电路98,该FP管道控制电路可耦接至APSC 16的CPU请求/确认接口。
[0055]该前端90可被配置为从指令高速缓存92获取指令。该前端90可包括各种分支预测机制、下步获取预测器和/或允许沿推测指令路径获取以提供用于执行的指令的其他推测指令流机制。在一些实施方案中,该前端90也可包括解码电路以对指令进行解码。指令流通常可为被布置用于执行,用于以实现总体任务的一组指令。在处理器28实施无序处理的情况下,该指令流可无序执行。该指令流可能未必存储在存储器中的连续地址,因为各分支等可使获取在与下一连续地址不同的地址处继续。该前端90还可包括用于将所获取的指令编码成操作的解码电路和/或微码,如下所述。在执行寄存器重命名的实施方案中,前端90可被配置为执行寄存器重命名。
[0056]指令可为在由处理器28执行的指令集架构中定义的可执行实体。存在现有的多种指令集架构(例如,由Intel研发的x86架构原型、来自ARM Holdings的ARM、来自IBM/Motorola的Power和PowerPC等)。在指令集架构中定义每个指令,包括其在存储器中的编码、其操作及其对寄存器、存储位置和/或其他处理器状态的影响。指令集架构的给定具体实施可直接执行每个指令,但其方式可通过编码和处理器硬件中的其他操作而改变。另一个具体实施可由处理器28中的执行单元将至少一些指令编码成多个指令操作以用于执行。在一些实施方案中,一些指令可被微编码。因此,术语“指令操作”在本文中可用于指代处理器28中的执行管道被配置为作为单个实体执行的操作。指令可具有与指令操作的一对一通信,并且在一些情况下,指令操作可为指令(可能以处理器28内部的方式进行修改)。该指令还可具有与指令操作的一个至多于一个(一个到多个)通信。在本文中可将指令操作更简单地称之为“操作”。
[0057]调度器电路94(或更简单地,调度器94)可被耦接以接收来自前端90的操作并且可被配置为调度由执行管道100A-100E执行的操作。通常,该调度器94可被配置为监测由调度器94所进行的操作,将输入操作数识别为其“做好准备”的操作并且调度已准备好的最早操作,执行资源(例如,执行管道)对该最早操作可用以执行操作。具体地,基于给定操作的执行延迟,该调度器94可确定取决于给定操作的输出寄存器的操作何时准备好(至少相对于对给定操作的依赖性)O依赖性操作可被尽快调度,使得它们在输入操作数可被转发时到达执行阶段或其他数据转发阶段处。在发出和执行/转发之间可存在一个或多个管道阶段(例如,寄存器文件读取阶段)并且操作可基于管道延迟以及提供操作数的操作的执行延迟来调度。
[0058]该调度器94可进一步被配置为监测高功率消耗操作的执行。在本实施方案中,浮点(FP)操作可被视为高功率消耗操作。其他实施方案可将其他操作或操作的子集定义为高功率消耗操作。因此,该处理器28可包括针对执行FP操作的模式。其他操作诸如整数操作或存储器(加载/存储)操作可以不是高功率消耗操作,从而可不为限制供电负荷而调控。该FP控制电路98可被配置为实现模式。在一个实施方案中,可存在三种模式:断电、通电并启用一个FP执行管道,以及通电并启用所有FP执行管道。在其他实施方案中,可存在启用附加数量的管道(但少于所有管道)的附加模式。通常,该FP管道控制电路98可被配置为限制向启用的FP执行管道100C-100D发出FP操作。另外,该FP管道控制电路98可被配置为传送模式变化请求(增大的权重或减小的权重)并响应于模式变化准许而启用/禁用FP执行管道。
[0059]该操作监测电路96可被配置为检测是否应提升或降低该模式。例如,该操作监测电路96可保持总的操作发出计数和FP操作发出计数(例如,图6中的寄存器104和106)。一旦总的操作发出计数达到某一值,该操作监测器便可将FP操作计数与指示应增加所启用FP执行管道的数量的一个或多个阈值进行比较。例如,如果FP操作的数量大于指定阈值,则应增加所启用的FP执行管道的数量以提高性能。如果FP操作的数量小于指定阈值,则通过禁用一个或多个FP执行管道,该性能可能不显著降低。该操作监测电路96可将可能模式变化传送至FP管道控制电路98,并且可重置寄存器104和106中的计数。在一个实施方案中,在操作监测电路96中,该阈值也可为可编程的。可实现用于启用多个FP执行管道和禁用FP执行管道的独立阈值,以提供模式变化请求中的迟滞。
[0060]由于在总的计数达到某一水平时将FP操作发出计数与阈值进行比较,因此该比较可有效地确定执行的指令流中的FP操作的相对数量。其他实施方案可以其他方式相对于总数量比较发出计数或确定FP操作的相对数量。
[0061]该执行管道100A-100E可包括被配置为执行由调度器94所发出的操作的电路。因此,电路可包括操作数获取(例如,从一个或多个寄存器文件,未示出)、执行针对每次操作所指定的操作,以及转发结果以供存储。在各种实施方案中,该执行管道100A-100E可执行用于相关联类型的操作数的计算操作诸如逻辑运算、数学运算或逐位运算。更具体地,该整数执行管道100A-100B可执行涉及整数操作数的计算操作,该浮点执行管道可执行涉及浮点操作数的计算操作,并且该向量执行管道可执行涉及向量操作数的计算操作。根据控制特定处理器设计的结构和性能参数的特定配置,可将任何合适的配置用于执行单元。另外,执行管道可包括用于执行存储器操作(例如,加载操作和/或存储操作)的管道,诸如执行管道100E。该执行管道100E可被配置为访问数据高速缓存102以执行存储操作。因此,操作类型可基于待执行的操作(例如,存储器与算术/逻辑)和/或操作数的类型(整数、浮点等)。
[0062]针对每个操作类型所提供的执行管道的数量可从一个到多个变化,并且可随具体实施的不同而不同。因此,在各种实施方案中,可存在一个或多个整数执行管道、一个或多个浮点执行管道、一个或多个向量执行管道、一个或多个加载/存储执行管道等。
[0063]通常,调度器可为被配置为接收操作并调度操作以供执行的任何电路。调度器可为集中式的(例如,集中式调度器或集中式保留站)以调度操作,以供在所有执行管道中执行。调度器也可为分散式的(例如,保留站)以接收并调度特定类型的操作和/或用于特定执行管道的操作。在各种实施方案中,可实现任何调度器。
[0064]该指令高速缓存92和数据高速缓存102可说明任何高速缓存结构。例如,所示出的高速缓存92和102可为哈佛结构(独立的指令高速缓存用于获取指令,并且数据高速缓存用于存储器引用操作的数据读/写)。在其他实施方案中,该高速缓存92和102可合并为共享指令和数据高速缓存。可使用任何容量和配置(例如,组相联、直接映射、全相联等)。
[0065]现在转向图7,其示出描述操作监测电路96和FP管道控制电路98的一个实施方案的操作的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。可在操作监测电路96和/或FP管道控制电路98中的组合逻辑电路中并行地执行各框。框、框的组合和/或流程图作为一个整体可在多个时钟周期内为管线式的。操作监测电路96和/或FP管道控制电路98可被配置为实现图7所示的操作。
[0066]该操作监测电路96可被配置为分别基于发出操作的数量和发出FP操作的数量来更新操作计数器(框110)。如果发出操作的总数与用于在其中评估FP操作发出计数的窗口相匹配(决策框112,“是”分支),则该操作监测电路96可被配置为将FP操作发出计数与高性能阈值和低性能阈值进行比较(决策框114和116)。如果FP操作发出计数大于高性能阈值(决策框114,“是”分支),则该操作监测电路96可向FP管道控制电路98指示出模式可被提升为高性能模式。如果处理器28的当前模式为低性能模式(例如,仅一个FP执行管道被启用)(决策框118,“是”分支),则该FP管道控制电路98可被配置为传输请求以增加处理器28的权重,这样模式可变为高性能模式(框120)。在任一种情况下,该操作监测电路96可被配置为清除发出操作计数(框122) ο如果FP管道控制电路98已传输权重增加请求,则该FP管道控制电路98可被配置为等待来自APSC 16的准许(框124),并且响应于准许可启用一个或多个附加的FP执行管道(框126)。
[0067]如果FP操作发出计数小于低性能阈值(决策框116,“是”分支),则该操作监测电路96可向FP管道控制电路98指示出模式可被降为低性能模式。如果处理器28的当前模式为高性能模式(例如,所有FP执行管道被启用)(决策框128,“是”分支),则该FP管道控制电路98可被配置为禁用附加的FP执行管道(框130)。该FP管道控制电路98可被配置为请求减小处理器28的权重(框132)并等待来自APSC 16的准许(框134)。在任一种情况下,该操作监测电路96可被配置为清除发出操作计数(框122)。
[0068]接下来转向图8,其示出了系统150的一个实施方案的框图。在所示的实施例中,系统150包括耦接到一个或多个外围设备154和外部储存器12的SOC 10的至少一个实例。提供了向SOC 10提供供电电压并向存储器12和/或外围设备154提供一个或多个供电电压的PMU156。在一些实施方案中,可包括SOC 10的多于一个实例(也可包括多于一个存储器12)。
[0069]根据系统150的类型,该外围设备154可包括任何期望的电路。例如,在一个实施方案中,该系统150可以是移动设备(例如个人数字助理(PDA)、智能电话等),并且外围设备154可包括用于各种类型的无线通信的设备,诸如wif1、蓝牙、蜂窝、全球定位系统等。外围设备154还可包括附加存储装置,该附加存储装置包括RAM存储装置、固态存储装置或磁盘存储装置。该外围设备154可包括用户界面设备(诸如包括触摸显示屏或多点触摸显示屏的显示屏)、键盘或其他输入设备、麦克风、扬声器等。在其他实施方案中,该系统150可以是任何类型的计算系统(例如台式个人计算机、膝上型电脑、工作站、网络机顶盒等)。
[0070]该外部储存器12可以包括任何类型的存储器。例如,该外部存储器12可以是SRAM、动态RAM(DRAM)(诸如同步DRAM(SDRAM))、双倍数据速率(DDR、DDR2、DDR3等)SDRAM、RAMBUSDRAM、低功率版本的DDR DRAM(例如LPDDR、mDDR等)等等。该外部存储器12可包括存储器设备可被安装到的一个或多个存储器模块,诸如单列存储器模块(SIMM)、双列存储器模块(DMM)等。另选地,该外部存储器12可包括以芯片上芯片配置或封装上封装具体实施被安装在SOC 10上的一个或多个存储器设备。
[0071]一旦充分理解了以上公开,则很多变型和修改对于本领域的技术人员而言将变得显而易见。本发明旨在将以下权利要求书解释为涵盖所有此类变型和修改。
【主权项】
1.一种系统,包括: 部件的多个实例,其中每个实例能够在多种模式中操作; 控制电路,所述控制电路耦接至所述多个实例,其中所述控制电路被配置为检测所述多个实例中的一个或多个实例正在所述多种模式中的第一模式中操作,其中所述第一模式排除最坏情况供电负荷,针对所述最坏情况供电负荷在编程到所述系统中的用于向所述多个实例供电的供电电压幅值中创建电压裕度,并且其中所述控制电路被配置为响应于检测到所述多个实例中的所述一个或多个实例正在所述第一模式中操作而请求减小的供电电压幅值。2.根据权利要求1所述的系统,其中所述部件为处理器,并且其中所述处理器包括被配置为执行第一类型的操作的多个执行管道,并且其中所述第一模式包括禁用所述多个执行管道中的一个或多个执行管道。3.根据权利要求1所述的系统,其中所述部件的第一实例被配置为请求转换到第二模式,在所述第二模式中,所述最坏情况供电负荷被允许,并且其中所述控制电路被配置为在准许该请求之前增大所述供电电压幅值。4.根据权利要求3所述的系统,其中所述第一实例被配置为请求转换到所述第一模式,并且其中所述控制电路被配置为准许该请求,并且其中控制单元被配置为确定转换到所述第一模式允许所述供电电压幅值减小,并且其中所述控制电路被配置为响应于所述确定而减小所述供电电压幅值。5.根据权利要求1所述的系统,其中所述控制电路包括针对所述多个部件可允许的供电电压幅值和频率设置的表,并且其中所述表的每个条目进一步包括基于所述多个实例的模式可允许的一个或多个电压幅值减小,并且其中所述控制电路被配置为响应于所述供电电压幅值和来自所述表的当前选择的条目的所述一个或多个电压幅值减小而确定所述减小的供电电压幅值。6.根据权利要求5所述的系统,其中所述控制电路被配置为保持用于表示所述多个实例正在其中操作的所述多种模式的组合的值,其中所述多个实例中的不同实例能够在所述多种模式中的不同模式中同时操作,并且其中所述值控制所述一个或多个电压幅值减小中的哪一个电压幅值减小被选择以生成所请求的供电电压幅值。7.根据权利要求6所述的系统,其中所述表中的每个条目进一步包括针对所述值的最大值,并且其中所述控制电路被配置为响应于所述值达到所述最大值而不允许转换到所述多种模式中的一种或多种模式。8.根据权利要求7所述的系统,其中所述表的第一条目包括超过可允许极限的供电电压幅值和频率组合,其中所述控制电路被配置为响应于对于所述多个实例中的一个实例的所述多种模式之间的请求的变化所述最大值超出而从所述第一条目转换到另一条目。9.一种方法,包括: 创建用于部件的多个实例的第一供电电压幅值以在第一频率下操作,其中所述第一供电电压幅值包括用于假设最坏情况供电负荷来自所述多个实例的裕度; 监测所述多个实例以确定所述多个实例中的至少第一实例正在不允许针对所述第一实例的所述最坏情况供电负荷的模式中操作;以及 响应于所述监测而收回所述裕度的一部分。10.根据权利要求9所述的方法,其中所述收回包括在相同频率下操作时减小所述供电电压幅值。11.根据权利要求9所述的方法,其中所述收回包括在相同供电电压幅值下操作时增大所述第一频率。12.根据权利要求9所述的方法,还包括: 所述第一实例请求所述模式的变化;以及 所述监测包括: 接收对所述模式的变化的请求; 响应于所述模式的变化而确定所述收回将减少;以及 通过增大所请求的供电电压幅值来使所述收回减少。13.根据权利要求12所述的方法,其中所述监测进一步包括: 检测所述供电电压幅值增大已完成;以及 准许对所述模式的变化的所述请求。14.根据权利要求9所述的方法,其中所述监测包括: 从所述多个实例接收对模式的变化的请求; 准许所述请求中的至少一些请求;以及 累加用于指示所述多个实例中的所述模式的净效应的值。15.根据权利要求14所述的方法,其中所述值被限制于针对所述第一供电电压幅值和所述第一频率的最大数值,其中所述准许包括不准许所述请求中的至少一个请求,因为所述值将超过所述最大数值。16.根据权利要求14所述的方法,还包括在准许第一请求之前改变所述第一频率和所述第一供电电压幅值中的一者或两者。17.根据权利要求14所述的方法,还包括准许对改变为使所述值减小的模式的请求,而无需要求供电电压幅值或频率的先前变化。18.—种处理器,包括: 多个执行管道,所述多个执行管道被配置为执行第一类型的操作;和控制电路,所述控制电路被配置为阻止向所述多个执行管道中的至少第一执行管道发出操作,其中所述控制电路被配置为传输对允许向所述第一执行管道发出操作的请求并且在允许向所述第一执行管道发出操作之前接收准许。19.根据权利要求18所述的处理器,还包括第二多个执行管道,所述第二多个执行管道被配置为执行不同于第一次的其他类型的操作,其中所述控制电路不阻止向所述第二多个执行管道发出操作。20.根据权利要求19所述的处理器,还包括耦接至所述控制电路的监测电路,其中所述监测电路被配置为监测向所述多个执行管道发出的第一多个操作和向所述第二多个执行管道发出的第二多个操作,其中所述控制电路被配置为响应于所述第二多个操作超出与所述第一多个操作对应的阈值而传输所述请求。
【文档编号】G06F1/32GK105960620SQ201580006847
【公开日】2016年9月21日
【申请日】2015年2月13日
【发明人】J·H·米里尔斯, C·H·齐格勒, D·C·穆雷, J-S·李, R·库马
【申请人】苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1