根据能量消耗来控制处理性能水平

文档序号:1367255 发布日期:2020-08-11 浏览:39次 >En<

阅读说明:本技术 根据能量消耗来控制处理性能水平 (Controlling a processing performance level based on energy consumption ) 是由 贾扬斯·M·德瓦拉朱 维韦克·德 斯利拉姆·万戈尔 于 2018-02-28 设计创作,主要内容包括:提供了一种电路,该电路用于根据处理器件的两个或更多个工作点来控制处理器件的性能水平。工作点具有相应频率和相应电压。性能水平控制电路被布置为执行以下操作:对与处理器件的第一工作点和不同的第二工作点相对应的参数进行交叉乘法。基于交叉乘法来确定第一工作点和第二工作点的相对能量消耗。根据所确定的相对能量消耗来选择处理器件的工作点。还提供了一种具有性能水平控制电路的装置、用于实现性能水平控制的机器可读指令以及相应的方法。(A circuit is provided for controlling a performance level of a processing device based on two or more operating points of the processing device. The operating points have respective frequencies and respective voltages. The performance level control circuit is arranged to perform the following operations: parameters corresponding to a first operating point and a different second operating point of the processing device are cross-multiplied. The relative energy consumption of the first and second operating points is determined based on a cross multiplication. An operating point of the processing device is selected based on the determined relative energy consumption. An apparatus having a performance level control circuit, machine readable instructions for implementing performance level control, and corresponding methods are also provided.)

具体实施方式

本公开的说明性实施例包括但不限于用于集成电路器件中的峰值功率确定的方法、系统和装置以及机器可读指令。

图1示意性地示出了根据一个示例性实现方式的能量管理系统。电压调节器(VR)110可以接收模拟输入电压V(in)并将其转换为可变模拟输出电压V(out),该可变模拟输出电压V(out)可以用于向数字数据处理器件120提供能量。数据处理器件120可以包括微处理器122,并且可选地包括例如一个或多个传感器124,例如温度传感器。在其他示例中,传感器可以位于其他系统组件中,例如位于时钟生成器130中。在一些示例中,VR 110还可以用于向PMU 140和时钟生成器130中的至少一个提供能量。当以这种方式连接时,在确定系统100的最小能耗时也可以包括这些组件。

在该文档中,术语“V(in)”和“V(out)”中使用的括号表示这些是模拟电压值。图1中的其余信号项(例如,Vin和Iin)(没有这种括号)可以是适于由数字电路处理的数字值。在一些示例中,图1的块110、120、130和140可以被认为是功能块而不是物理块,并且两个或更多个块的电路可以被集成在一起以组合至少一些功能以用于在硬件处理电路单元中实现。

在一些示例中,VR 110可以是开关电容器电压调节器(SCVR),但是其他示例可以使用其他类型的VR,例如但不限于基于电感器的降压或线性压降(LDO)实现方式。V(in)可以来自任何合适的源,例如但不限于电池、交流到直流(AC-DC)能量供应、DC-DC转换器等。V(out)的电压电平可以根据需要进行调整,以试图减少整体能耗。时钟生成器130可以输出具有可变频率的时钟信号Fclk,以操作数字电路,例如处理器件120中的微处理器122。在一些示例中,时钟生成器130可以包括锁相环(PLL)。微处理器122可以被布置为在多个不同工作点中的任何一个工作点下操作,每个工作点具有特征频率Fclk和电压V。微处理器122可以由PMU 140控制,以便通过以下方式在不同的性能水平下操作:例如首先增加工作电压,并且然后将工作频率增加到适合于新电压的最大值。或者,可以将频率降低到较低工作点,并且然后可以相应地降低电压。

PMU 140被布置为从VR 110接收输入Vin,从VR 110接收表示I(in)的数字值的输入Iin,其中I(in)是VR中对应于V(in)的输入电流。PMU 140还被布置为从时钟生成器130接收指示微处理器122的当前时钟频率的输入Tclk。PMU 140可以使用这些值来根据公式(1)确定由装置100消耗的每个操作能量(Eper op):

(1)

其中Vin可以表示V(in)的数字值,ncycles可以表示与“操作”相对应的一个或多个时钟周期的预定数量,Iin_avg可以表示在多个操作(不一定是与ncycles相对应的相同数量的操作)期间进入VR 110的平均电流的数字值,Tclk可以表示与时钟频率(Fclk)的倒数相对应的时间段,并且P可以表示与Vin和Iin_avg的同时期的值相对应的功率消耗。Iin_avg的值可以由VR110经由电流遥测提供给PMU 140。在本说明书的上下文中,“操作”可以被定义为与当前设置的时钟频率Fclk相对应的单个时钟周期,或者可以替代地对应于两个或更多个这样的时钟周期,典型地是用于完成任务单元所花费的时钟周期的数量,或者是另一定义的时间段,该时间段在针对不同工作点确定操作能量的过程中是一致的。Vin、Iin_avg、ncycles、Fclk和Tclk的值都可以是数字格式,从而可以数字地计算公式(1)。在等式(1)中,Vin和Iin_avg的值可以被Vout和Iout_avg替换,以针对处理器件120确定每个操作的能量,但是排除类似电压调节器110之类的其他组件。根据先前已知的确定MEP的方法,将执行倒数计算以从Fclk确定Tclk。然而,根据本技术,可以去除倒数计算,使得可以用简单的频率计数来代替Tclk。这意味着可以从电路中去除昂贵的倒数计算单元或查找表,并且反之,可以由一个或多个便宜且易于实现的频率计数器来代替。频率计数器(参见图2)可以被提供在时钟生成器130、PMU 140或处理器件120中。如下面将解释的,根据本技术,Eper op的特定值不需要被明确地计算,但是它们可以被间接地计算以确定针对不同工作点对的每个操作的相对能量。

Vin和Iin的乘积表示进入VR 110的功率,并且因此在一些示例中,公式(1)可以自动地包括VR 110自身消耗的能量加上由VR 110供电的任何组件消耗的能量,该任何组件可以包括时钟生成器130和PMU 140中的至少一个。因此,当寻求针对系统的最小能耗时,VR110的效率的任何变化都可以被自动考虑。对公式(1)中的值Eper op的计算涉及对倒数(1/Fclk)的计算,其中Fclk通常是一个大的数,例如MHz的数,因此公式(1)中的这个分母比分子、P和ncycles大多个数量级。在一些示例中,倒数计算可以使用64位浮点数。这种倒数计算可能引入多个处理周期的等待时间,并且因此可能代表了确定MEP时的瓶颈。根据本技术,不是为每个处理器件工作点(Vcc,Fclk)计算Eper op,而是使用工作点对来确定针对该点对的Eper op的相对幅度,并且该相对幅度可以用于选择新的工作点以减少(或增加)能耗。代替对每个Fclk执行倒数计算,频率计数器被用于在给定参考时钟周期(针对Fclk的不同值,相同的参考时钟周期)中对多个计数进行积分。

通过考虑以下值的交叉乘法来确定Eper op的相对幅度:与由非零整数i=1,2索引的两个不同工作点相对应的值。

(2)

(3)因此P1*N2>P2*N1

其中,如针对等式(1)而言,Ni是Fclki下的参考间隔中的频率计数,并且其中Pi=Vin*Iin_avg。基于每个操作的能量Eper op或其他方面,可以通过以下方式来调整到处理器件120的功率:向VR 110发送Vadj信号142以改变V(out)。如果N1和N2相同或彼此非常接近,则可以通过仅比较P1和P2来进一步简化计算。可以通过以下方式来替代地或附加地调整功率:向时钟生成器发送Fadj信号144以调整时钟频率。工作频率的选择可以考虑所选择的工作电压以避免处理器件故障。存在给定电源电压可以可靠地支持的最大工作频率。以此方式,通过调整电压和/或频率,可以递增地或以其他方式改变能耗。例如,可以增加工作频率和电压以适应工作负荷的增加,或者可以在处理器件120的晶体管的阈值电压的范围内递增地调整Vout以探测当前工作负荷的MEP。通过改变工作点参数而引起的能耗改变又可以被检查,以基于使用公式(3)间接地计算出的Eper op来确定这些改变是增加还是减少了整体能耗,公式(3)经由在两个不同的频率和电压工作点(Fclk1、Vout1;Fclk2、Vout2)处的功率和频率计数值的交叉乘法来确定每个操作的相对能量消耗,而无需实际计算在单个点处的Eper op的值。

处理器件的传感器124可以用于测量温度、电压、电流、频率等,以及可选地进行可能与控制能耗不直接相关的其他测量,并且可以将这些测量提供给PMU 140以用于MEP的计算。取决于由传感器124检测到的工作条件的任何变化,MEP的动态调整可以由MEP和相关联的最佳工作点的重新评估触发。一个示例是测量V(out)或I(out)何时下降到可接受电平以下,并向PMU 140发送信号以调整其跟踪方法并快速增加功率,以确保处理器件120的持续可靠操作。传感器124可以感测处理器件120的管芯上温度,并且任何检测到的温度变化或者超过阈值量或高于或低于阈值的变化可以触发PMU 140来重新扫描参数空间并且重新锁定到与新的MEP相对应的新的Vopt值。这些传感器124可以以未示出的方式耦合到其他组件。在一些实施例中,图1中示出的所有组件可以被集成到单个半导体管芯中,而不需要额外的外部组件。

图2示意性地示出了根据本技术的用于执行双点步幅MEP计算的示例电路。该电路包括第一乘法器210、第二乘法器212、第三乘法器222、第四乘法器224、第一计数器214、第二计数器220和比较器250。包括第一乘法器210、第二乘法器212和第一计数器214的组合的第一电路子集计算等式(3)的两个交叉乘积之一(包括P1*N2)。包括第三乘法器222和第四乘法器224和第二计数器220的组合的第二电路子集被布置为计算等式(3)的另一交叉乘积P2*N1。第一电路子集和第二电路子集各自包括相同的组件,并且因此在一个替代示例中,可以去除两个电路子集之一,并且可以执行串行计算以依次确定P1*N2和P2*N1,并且随后对计算出的两个交叉乘积进行比较。进一步的示例可以实现与图2中所示的电路组件不同的电路组件,并且仍然能够执行等式(3)的计算。例如,乘法器210可以由多个逻辑加法器来实现。

当为包括电压调节器110、功率管理单元140、时钟生成器130和处理器件120的整个系统100确定功耗以及可能的MEP时,第一乘法器210计算与第一工作点相对应的乘积Vin(1)*Iin_avg(1)=P1,而第三乘法器222计算与第二工作点相对应的乘积Vin(2)*Iin_avg(2)=P2。这具有考虑了整个操作范围上的电压调节器110效率的益处,并且是全系统优化。然而,在替代实例中,当单独确定处理器件120的功耗时,第一乘法器210计算与第一工作点相对应的乘积Vout(1)*Iout_avg(1)=P1,而第三乘法器222计算与第二工作点相对应的乘积Vout(2)*Iout_avg(2)=P2。这没有考虑到很多电压调节器的非线性(或非单调)效率。因此,值Vin和Iin可以用于系统功率和MEP确定,而值Vout和Iout可以用于处理器件功率和MEP确定。两个不同的工作点对应于两个不同的时间点。因此,为了执行等式(3)的双步幅MEP计算,与最早被捕获的工作点相对应的值被缓冲或延迟直到第二工作点值可用是适当的。当计数和功率的集合都可用时,可以进行相对功率的比较。第一计数器214是频率计数器,其在预定参考时钟周期内对第二工作点的Fclk(2)信号的数量进行计数,并因此确定等式(3)中的值N2。第二计数器220是频率计数器,其在预定参考时钟周期内对第一工作点的Fclk(1)信号的数量进行计数,并因此确定等式(3)中的值N1。

第二乘法器212接收与值Vin或out(1)*Iin或out_avg(1)=P1相对应的第一输入211(作为第一乘法器210的输出而供给),并且还接收计数值N2作为第二输入215,并因此计算出交叉乘积P1*N2。第四乘法器224接收与值Vin或out(2)*Iin或out_avg(2)=P2相对应的一个输入223(作为第三乘法器222的输出而供给),并接收由第二频率计数器220确定的计数值N1作为另一输入221,并因此计算出交叉乘积P2*N1。

比较器250被布置为从第四乘法器224的输出接收第一输入252(对应于P2*N1),并且从第二乘法器212的输出接收第二输入254(对应于值P1*N2)。比较器250的输出与P1*N2>P2*N1是否成立的判定相对应,相当于Eper op(1)>Eper op(2)是否成立的判定。寻找Eper op的最低值允许通过如图6所示的迭代过程来确定MEP。

在计算倒数频率的先前已知的实现方式中,图2的计数器214、220将不存在,而是替代地使用更复杂的倒数计算电路。

图3示意性地示出了相对于先前已知的技术,图2的示例电路如何能够减少计算时间,该先前已知的技术包括具体地计算针对每个数据点的每个操作值的能量,并且需要倒数计算以根据时钟频率来确定操作周期。图3中第一事件与时间序列的关系360示出了在使用上述等式(1)的公式执行两个处理器件工作点的比较时执行的事件序列。这可以与图3中第二事件与时间序列的关系380形成对比,该关系380示出了在根据本技术的双点步幅方法来计算处理器件的两个工作点之间的能量消耗差时执行的事件序列。

考虑图3的第一事件序列360,在事件362处,为处理器件设置第一电压和频率(F1,V1),并且然后在事件364处,执行倒数计算(1/F1)以根据当前设置的处理频率来确定周期T1。接下来,在事件366处,执行第一乘法以根据第一工作点处的输入电压和平均输入电流来计算第一功率值P1,并且然后在事件368处,执行第二乘法以将在事件364处确定的周期(1/F1)乘以在事件366处确定的第一功率值P1,并因此计算出针对第一工作点的Eper op(1)。接下来,在事件370处,将第二处理器电压和工作频率(V2,F2)设置为与在事件362处设置的值V1和F1不同。则在事件372处,计算第二频率的倒数(1/F2)以确定与第二处理器工作点相关的周期。然后在事件374处,执行第三乘法以计算第二功率值P2,并且随后在事件376处,执行第四乘法以计算P2与在事件372处计算出的倒数(1/F2)的乘积从而确定Eper op(2)。最后,在378处,对Eper op(1)和Eper op(2)执行比较,以确定哪个工作点对应于最低能量消耗,以便于MEP的识别。

现在考虑图3的第二时间序列380,其开始于事件382,处理器的第一频率和电压被设置,并且然后在事件384处,在参考时钟周期内执行对Fclk的频率计数。然后在事件386处,执行第一乘法以计算第一功率值P1,并且然后在事件388处,改变处理器件的工作点以设置新的工作电压和新的工作频率。接下来,在事件390处,针对新的Fclk,在与事件384相同的参考时钟内执行频率计数。在事件392处,执行第二乘法以计算第二工作点处的功率P2,并且然后在事件394处,执行第三乘法以计算P1和N2的乘积,并且然后在事件396处,执行第四乘法以计算等式(3)的另一交叉乘积(包括P2*N1)。最后,在事件398处,执行对两个交叉乘积P1*N2和P2*N1的比较,以根据上述等式(3)来确定第一工作点和第二工作点中的哪个工作点具有每个操作的最低能量。

尽管在事件序列360和事件序列380中操作的总数是相同的,但是通过用基于参考时钟的简单频率计数384、390来代替计算上昂贵的倒数计算364和372,计算的总持续时间可以显著地减少,例如,减少超过10个处理周期。此外,倒数计算硬件的消除简化了执行每个操作的能量的比较所需的电路和任何相关联的MEP确定。

在时间序列380的示例中,通过执行与处理器件的两个不同工作点相对应的频率计数和功率值的交叉乘法,消除了倒数计算。这种交叉乘法技术可以扩展到多于两个工作点,出于交叉乘法的目的,成对地处理它们。例如,可以针对功率和频率计数来评估相对于当前选择的工作点处于较高电压的一个工作点和处于较低电压的另一工作点,以识别在选择的工作点附近的能量与工作电压的关系的曲线的分布(例如,正或负梯度)。

图4是示意性地示出针对特定工作负荷的数字微处理器的每个操作的能耗(以皮焦耳(pJ)为单位)与核心电压的关系的曲线图。图4的曲线图中绘制的每个数据点均对应于微处理器的特定工作电压和时钟频率。针对绘制的每个数据点,将频率设置为相应核心电压设置下的最大允许频率,并且针对第j个数据点(j=1,…,n)的频率Fclk(j)和电压Vout(j)值可以通过例如图1的PMU 140来设置。因此,时钟频率和核心电压两者对于不同的单个数据点而言可以不同。在一些示例中,对Fclk和Vout的设置可以取决于从预先表征的硅数据中导出的查找表。在其他示例中,可以使用管芯上电压和频率传感器(例如,通过使用关键路径复制电路)来适应性地生成对Fclk和Vout的设置。从图4的示例可以看出,Eper op是核心电压的非线性函数,并且具有特征性的“J”形(以一定角度)。

在该示例中,与最佳电压Vopt相对应并因此与MEP相对应的一个数据点是核心电压为0.37V的数据点410。这对应于能量与电压的关系的曲线的最小值。在高于Vopt的电压下,曲线具有正斜率,而在低于Vopt的电压下,曲线具有负斜率。从理论上讲,Eper op的曲线是核心电压的非线性函数,并且在通过微分并使其等于0的核心电压处该函数可以被最小化。因此,可以导出最小能量工作电压的解析解。特定电路的最小能量工作电压的解析解表明,Vop并非处于固定电压,而是MEP可以根据温度、工作负荷以及可能的其他因素而变化。

从图4可以看出,在与约0.99V的高核心电压相对应的点420处,每个周期消耗的能量是在0.37V的电压下的、与Vop相对应的每个周期的能量的4.8倍左右。在图4的每个操作的能量曲线的负梯度区域430中,总能量很可能由泄漏能量所控制,而在正梯度区域(高于与最佳电压数据点410相对应的电压)中,每个操作的能量可能由与处理工作负荷相关联的有效能量所控制。最佳电压点Vopt 410可能处于或接近数字电路的晶体管的阈值电压区域。

图5是示意性地示出了每个周期的能量与核心电压的关系的曲线图,该图示出了最佳电压点可以如何根据处理单元的工作负荷活动和休眠模式中的至少一个而移位的。图5中绘制出了结果的不同处理模式是非限制性示例。实际上,可以以多种不同的方式来实现处理器件的功率和休眠模式。例如,以下所述的“S1”和“S2”模式具有不同的时钟速度,以使处理器在休眠模式中保持活动(未完全掉电),而“S3”模式不允许处理器的休眠状态。在不同的模式中,处理器件的不同部分可能会掉电,从而导致作为核心电压的函数的每个周期的能耗相对不同。图5的特征在于四条不同的曲线,示出了针对不同的处理参数集合,每个周期的能量如何随核心电压变化。类似于图4的示例曲线图,处理器频率的设置取决于相应数据点的电压可以支持的最大频率。第一曲线510(数据点由菱形表示)对应于处理器不被允许进入休眠状态,并因此对应于四条绘制曲线的最大处理器活动。第一曲线510具有相关联的最佳电压点512(对应于约0.37V)。第二曲线520(数据点被绘制为正方形)对应于在工作负荷允许时处理器被允许以“S2模式”进入3ms的短休眠。第二曲线在数据点522(对应于)处具有相应最佳电压。第三曲线530(数据用三角形绘制)被用于也以S2模式进入30ms的短休眠模式,并且该曲线530在数据点532(对应于)处具有相应最佳电压。第四曲线540(数据被绘制为圆圈)对应于以以下模式运行处理器:在S1模式下允许30ms的长休眠,该模式使用比S2模式更慢的时钟来使系统保持处于休眠模式,并因此,与30ms的短休眠(S2)曲线530相比,对应于整体较低的活动性。第四曲线540具有相应最佳电压点542(对应于)。理论上,查看每个操作的能量等式的组成泄漏电流和有效能量分量得出结论,由于工作负荷的增加而引起的数字电路的有效能量分量的任何相对增加可能降低最小能量工作电压。然而,由于在操作过程中温度或泄漏持续时间的增加而引起的泄漏能量分量的任何相对增加可能会使最小能量工作电压升高。

因此,正如人们可能期望的那样,图5中绘制的数据表明,针对没有休眠状态并因此具有最大工作负荷活动的处理器模式Vop最大,并且Vopt的值随着处理器核心的工作负荷活动的增加而逐渐减小,使得按照Vopt减小的顺序,处理器状态为:(i)与曲线540相对应的在S1模式下的30ms的长休眠,(ii)与曲线530相对应的在S2模式下的30ms的短休眠,(iii)与曲线520相对应的在S2模式下的3ms短休眠,以及(iv)与曲线510相对应的没有休眠, 四条不同的曲线510、520、530、540及其相应最佳核心电压值512、522、532、542的变化表明,相对于不使MEP估计动态地适应于主要的处理条件而言,根据主要的执行工作负荷和其他条件(例如,处理器温度)对MEP进行定期跟踪和调整,可能提供相当可观的能量节省。请注意,图5的曲线的趋势是,随着处理器工作负荷的减少,在高于最佳核心电压的电压下,曲线的正梯度部分呈梯度减小。例如,即使在远低于最佳电压点542的电压下,第四曲线540也具有近似零的梯度。在图5的示例中,每个能量曲线510、520、530、540具有与最佳电压相对应的单个最小值。确定全局最小值(两条或更多条曲线的集合的整体最小值)也可能很有用。在该示例中,全局最小值是与最低整体活动状态相对应的点540。

图6是示意性地示出为处理器件确定具有估计的最佳Vop和Fop的最终MEP点所采取的路径的流程图。图6的流程图的功能可以以硬件、软件或硬件和软件的组合来实现。在610处,MEP确定被初始化以设置初始处理器电压和处理器频率。可以将初始电压选择为在数字电路的晶体管的阈值电压附近。然后在620处,将最佳电压Vop暂时地设置为初始化电压,并且根据上述等式(1)的分子中的功率计算来计算相应功率的值。在一些示例中,定义操作的时钟周期的数量将是单个周期,但是示例不限于此。为简单起见,对于图6的示例,我们将假设ncycles=1。除了在620处计算Pop=V*I之外,还在当前时钟频率Fclk下在给定参考周期中执行对频率的计数以计算Nop。当电压被初始化时,在元素610处设置由电压支持的相应最大频率,并且该值在620处被存储为“频率更新值”。频率更新值可以被用于向片上振荡器或类似电路组件提供信号,以将工作频率更新为在由功率管理单元(参见图1)当前选择的特定电源电压下支持的最大频率值。在该示例中,处理器件的不同工作点具有参数对,该参数对包括电压值和相应最大频率值,它们可以彼此以锁步方式设置和改变。然而,工作点之间的变化不限于此。

接下来,在630处,递增核心电压VCC,并设置相应新的试验工作频率,并存储与该递增的频率相对应的新的频率更新值。在替代示例中,630可以改为涉及递减初始核心电压以确定新的试验电压。递增或递减的选择可以是随机的,也可以取决于核心电压的初始化方式。然后在元素640处进行确定,由此根据等式(3)执行双步交叉乘法以确定当前为Pop和Nop设置的值是否实际上低于在630处的新的递增值设置Pnew和Nnew。具体而言,如果(Pop/Nop)<(Pnew/Nnew),则得出Pop*Nnew<Pnew*Nop,这在640处进行评估。如果在640处满足该条件,则过程进行到662,在662中递减Vcc以定义另一新的功率值,并且将工作频率相应地调整为由更新的功率值支持的最大频率,该最大频率作为新的频率更新值而存储。在662处计算新的功率Pnew,并且还执行与递减的频率相对应的相应新的频率计数Nnew,并且可以存储计数值。如果过程遵循从过程元素640到过程元素662的分支,则很可能(参见图4的能量曲线)被探测的核心电压在能量与电压的关系的曲线的正斜率上,即在高于阈值电压的区域中,在该区域中,有效能量占主导地位。这就是为什么核心电压在662处递减而不是递增,以移向而不是远离曲线最小值的原因。

另一方面,如果在640处确定先前设置的最佳功率Pop导致比在620处设置的新值更大的能量消耗,则过程进行到元素652而不是662。这可能对应于图4的能量斜率上的一点,该点对应于梯度为负的区域430并且对应于低于阈值电压的电压。为此,在654处,核心电压Vcc递增,以试图探测区域430的右侧中朝向最小能量点的区域。然而,在递增核心电压之前,在步骤652处,电压和功率以及频率计数的最佳值在652处被更新为对应于在630处设置的新值,以反映以下事实:那些新值在640处被确定为具有比在620处分配的暂时设置的最佳值更低的计算出的每次操作的能量。

现在返回到过程元素662,一旦电压已经相对于在过程元素620处设置的Vcc递减,则在664处确定当前设置的最佳功率Pop是否导致比新的递减的功率Pnew更低的能耗。如果在664处确定Pop确实实际上涉及比Pnew低的Eper op,则该过程进行到670,在670中在该周期中最终确定当前设置的最佳电压为MEP点。另一方面,如果在元素664处确定Pnew实际上导致比当前设置的Pop更低的每次操作的能量,则在元素666处,将最佳电压、最佳功率和最佳频率计数设置为在662处分配的新值。随后,过程循环回到步骤662以执行核心电压的进一步递减和对核心频率的相应调整,直到MEP被定位。

返回到图6的右手分支上的处理元素656,在654处参数已经递增之后,处理进行到656,以确定当前设置的最佳功率是否导致比在654处设置的新递增的功率Pnew更低的每个操作的能量。如果在656处确定新递增的核心频率和电压值确实导致了每个操作的较低能量,则最佳值(Vop等)被设置为在递增过程654期间设置的那些值,并且然后过程继续进一步递增核心电压并遵循右手侧上的循环656、658、654,直到检测到能量曲线的最小电压。

如果在656处确定先前设置的Pop具有比新的递增值低的能量,则过程进行到670,在670中,在652处设置的Pop的值被最终确定为对应于MEP点,并且在652设置的相应Vop被分配为处理器最佳电压。一旦在670处已经建立了MEP点和相应最佳电压,则图1的VR 140被设置为输出与MEP相对应的确定的最佳电压,并且时钟生成器130被设置为提供相应核心频率以实现最小能量操作(或至少其最佳估计)。

在图6的流程图中,在610、620和630处的初始化期间,代替在630处递增核心电压,Vcc可改为递减且后续步骤可以被相应地调整,从而考虑到关于当前正在探索关于图4的特征能量曲线上的Vcc点,每个操作的相对能量值所建议的内容。MEP确定的结果可以根据例如在630和654处的电压递增的幅度和在662处的电压递减的幅度而变化。在一些示例中,递增和递减值相对于核心电压本身的幅度在幅度上较小。在一些示例中,图6的跟踪算法所使用的电压阶跃可以是约25mV到50mV,但是可以使用其他值。在一些示例中,电压递增或递减的幅度在确定MEP的整个过程中是相同的。然而,在其他示例中,可以在图6的过程期间改变核心电压递增或递减的幅度以改进MEP确定的准确性或效率。例如,可以使用大的幅度递增或递减来缩小MEP的位置,而随后可以使用较小的幅度递增或递减来获得对MEP的位置的更精确估计。

如果电压阶跃太大,则可能导致MEP的粗略跟踪,并且可能丢失MEP,而如果电压阶跃太小,则由于在640、664和656处计算每个操作的相对能量时涉及的潜在误差,可能导致MEP确定循环稳定在非最小电压上。然而,相对于计算表示每个操作的能量的每个单独点的实际值的情况,由于特别小的电压阶跃而引起的这些误差很可能被减小。因此,用频率计数代替倒数计算可以提高计算的精度。

图6中所示的最小能量跟踪算法示例实际上是斜率跟踪算法,其利用了如图4和图5中所示的每个操作的能量与核心电压的关系的曲线的单个最小和凹形性质。

MEP的更新值的确定可以被周期性地或间歇性地计算,或者响应于检测到的温度或工作负荷或两者的变化,或者响应于任何其他环境因素的变化,或者在处理器件上电时,或者以任何其他方式或适于增加处理器件的能量效率的方式的组合来计算。MEP的跟踪可以由图1的功率管理单元140控制,使得图6的算法可以被重新运行多次。MEP的重新评估可以由一个或多个管芯上或管芯外传感器(例如,传感器124(参见图1))触发,以随着图1的示例布置的系统100或处理器件120中的至少一个的工作条件的变化而动态地重新调整所感知的最佳电压和频率。根据所确定的MEP来触发对MEP的重新评估以及对处理器件的最佳工作点的动态调整可以取决于一个或多个工作参数的预定变化,例如大于阈值幅度的工作温度的变化。至少当该设备处于节能操作模式时,该处理器件可以被设置为以与最佳工作点相对应的频率和电压进行操作。在620处初始设置的电压值可以取决于由PMU 140设置的与当前处理工作负荷相对应的工作点。例如,当核心电压被PMU 140改变超过最小幅度时,或者当发生了到所实现的休眠模式的改变时,可以重新确定MEP。在一些示例中,MEP确定可以取决于VR 110被设置为操作的模式。

本说明书中描述的功能和操作可以在系统的各个部分中执行。例如,在一些实施例中,图6的MEP确定计算可以在一个或多个处理器(在图1的处理器件120中)中执行,而PMU140仅发送由(一个或多个)处理器导出的控制信号。在其他实施例中,PMU 140可以执行所有计算。在其他实施例中,该功能可以在负载120中的(一个或多个)处理器和PMU 140之间共享。在一些实施例中,PMU 140和时钟生成器130可以由V(out)供电,并且因此它们的能耗包括在公式(1)的计算中。这是图1中所示的配置。在其他实施例中,PMU 140和/或时钟生成器130可以不由V(out)供电,并且它们的能耗将不包括在计算中,这可能导致用于最小化能耗的非最佳结果。

MEP跟踪(以及具有Vopt和Fopt的处理器工作点的驻留)可能有用的一个示例是对于当处理器件处于“常开常感测(always-on always sensing,AOAS)”模式时的模式中的超低压操作。任何“物联网”设备可以使用根据本技术的MEP跟踪来提高能量效率。MEP跟踪方法可以作为PMU 140(参见图1)的一部分来实现,或者可以与PMU 140一起工作,以设置最佳电压和相应频率,并且利用来自交叉乘法中的两个不同工作点的参数来执行运行时间MEP跟踪,以确定每个操作的相对能量。

在本说明书中,短语“A或B中的至少一个”和短语“A和B中的至少一个”应当被解释为表示所列举的多个项A、B等中的任何一个或多个,它们以任何和所有排列方式共同地和分别地采用。

在已经将功能单元描述为电路的情况下,该电路可以是由程序代码配置为执行特定处理功能的通用处理器电路。该电路还可以通过对处理硬件进行修改来配置。用于执行特定功能的电路的配置可以完全在硬件中,完全在软件中或使用硬件修改和软件执行的组合。程序指令可以用于配置通用或专用处理器电路的逻辑门以执行处理功能。

可以将电路实现为例如硬件电路,其包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。

处理器可以包括通用处理器、网络处理器(处理通过计算机网络传送的数据)、或其他类型的处理器(包括简化的指令集计算机RISC或复杂的指令集计算机CISC)。处理器可以具有单核心或多核心设计。多核心处理器可以在同一集成电路管芯上集成不同的处理器核心类型。

可以将机器可读程序指令(软件)提供在暂态介质(例如,传输介质)上,或者非暂态介质(例如,存储介质)上。这样的机器可读指令(计算机程序代码)可以以高级程序或面向对象的编程语言来实现。然而,如果需要的话,可以以汇编或机器语言来实现(一个或多个)程序。在任何情况下,该语言都可以是编译的或解释的语言,并且可以与硬件实现方式组合。

本技术的实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等。在一些实施例中,本文描述的组件中的一个或多个可以被实现为片上系统(SOC)设备。SOC可以包括例如一个或多个中央处理单元(CPU)核心、一个或多个图形处理单元(GPU)核心、输入/输出接口以及存储器控制器。在一些实施例中,SOC及其组件可以被提供在一个或多个集成电路管芯上,例如被封装在单个半导体器件中。

示例

以下示例涉及进一步的实施例。

1.一种电路,该电路用于根据处理器件的两个或更多个工作点来控制处理器件的性能水平,其中,工作点具有相应频率和相应电压,性能水平控制电路被布置为:

对与处理器件的第一工作点和不同的第二工作点相对应的参数进行交叉乘法;

基于交叉乘法来确定第一工作点和第二工作点的相对能量消耗;以及

根据所确定的相对能量消耗来选择处理器件的工作点。

2.根据示例1所述的电路,其中,第一工作点和第二工作点的相对能量消耗是处理器件的每个操作的相对能量。

3.根据示例2所述的电路,其中,操作包括以下各项中的一项:与该频率相对应的单个处理周期或用于完成处理任务单元的预定数量的处理周期。

4.根据示例1至3中任一项所述的电路,其中,性能水平控制电路包括至少一个频率计数器,用于在预定参考周期中在相应工作点处累积多个计数,并且其中,所累积的计数为交叉乘法中的被乘数。

5.根据示例4所述的电路,其中,交叉乘法中的另一被乘数是用于在相应工作点处执行操作的功率消耗。

6.根据示例5所述的电路,其中,根据在确定相对能量消耗的操作持续时间内向处理器件供电时消耗的平均电流来计算功率消耗。

7.根据示例5所述的电路,其中,根据在确定相对能量消耗的操作持续时间内输入到电压调节器的平均电流来计算功率消耗,该电压调节器至少向处理器件供电。

8.根据示例6或示例7所述的电路,其中,所消耗的平均功率由电压调节器来确定,并且根据由电压调节器测量的电压和由电压调节器测量的平均电流的乘积来计算,该电压调节器向处理器件供电。

9.根据示例1至8中任一项所述的电路,其中,基于相对能量消耗来确定处理器件的最佳工作点,其中,最佳工作点对应于最小能量点MEP的估计位置。

10.根据示例9所述的电路,其中,为了确定最佳工作点,将针对相对能量确定的第一工作点和第二工作点选择为具有在处理器件的晶体管的阈值电压附近的电压值。

11.根据示例10所述的电路,其中,最佳工作点最初被分配为第一工作点和第二工作点中具有较低相对能量消耗的一个工作点。

12.根据示例11所述的电路,其中,在初始选择了最佳工作点之后,通过以下方式中的一种来微调工作点选择:递增或递减处理器件的工作点并且使用新的工作点和先前分配的最佳工作点来执行进一步的交叉乘法,以确定新的工作点和先前分配的最佳工作点之间的最小相对能量。

13.根据示例12所述的电路,其中,如果确定了新的工作点具有比先前分配的最佳工作点更低的能量,则将最佳工作点更新为新的工作点。

14.根据示例12或示例13所述的电路,其中,如果递增或递减工作点的微调方向导致新的工作点具有比初始选择的最佳工作点更低的相对能量消耗,则在相同的微调方向上迭代地执行进一步的微调,以确定最终的最佳工作点。

15.根据示例12或示例13所述的电路,其中,如果递增或递减工作点的微调方向导致新的工作点具有比初始选择的最佳工作点更高的相对能量消耗,则在相反的微调方向上迭代地执行进一步的微调,以确定最终的最佳工作点。

16.根据示例8至14中任一项所述的电路,其中,根据MEP来确定最佳工作点是由处理器件的功率管理单元触发的。

17.根据示例16所述的电路,其中,功率管理单元响应于由一个或多个传感器检测到的处理器件的工作条件的改变来触发对最佳工作点的确定。

18.一种集成电路,包括根据示例1至14中任一项所述的电路。

19.一种装置,包括:

处理器件;

功率管理单元,用于管理提供给处理器件的功率;

电压调节器,由功率管理单元控制,以将工作电压提供给处理器件;以及

根据示例1至17中任一项所述的性能水平控制电路。

20.根据示例19所述的装置,其中,基于相对能量消耗来确定处理器件的最佳工作点,其中,最佳工作点对应于最小能量点MEP的估计位置,并且其中,功率管理单元被布置为将处理器件的工作点设置为最佳工作点。

21.根据示例19所述的装置,其中,性能水平控制电路至少部分地实现在电压调节器和处理器件中的一个中。

22.根据示例19至21中任一项所述的装置,该装置提供在单个集成电路管芯上。

23.根据示例20所述的装置,包括至少一个传感器,其中,功率管理单元响应于由至少一个传感器检测到的处理器件的工作条件的改变来触发对最佳工作点的确定。

24.一种机器可读指令,该机器可读指令提供在有形或无形存储介质上,用于在一个或多个处理器上执行,以使一个或多个处理器执行以下操作:

对与处理器件的第一工作点和不同的第二工作点相对应的参数进行交叉乘法,其中,工作点具有相应频率和相应电压;

基于交叉乘法来确定第一工作点和第二工作点的相对能量消耗;以及

根据所确定的相对能量消耗来选择处理器件的工作点。

25.根据示例24所述的机器可读指令,其中,基于相对能量消耗来确定最佳工作点,最佳工作点对应于针对处理器件的最小能量点MEP的估计位置。

26.根据示例25所述的机器可读指令,其中,响应于处理器件的工作条件的改变来触发对最佳工作点的确定。

27.一种控制处理器件的性能水平的方法,包括:

对与处理器件的第一工作点和不同的第二工作点相对应的参数进行交叉乘法,其中,工作点具有相应频率和相应电压;

基于交叉乘法来确定第一工作点和第二工作点的相对能量消耗;以及

根据所确定的相对能量消耗来选择处理器件的工作点。

28.根据示例27所述的方法,其中,第一工作点和第二工作点的相对能量消耗是处理器件的每个操作的相对能量。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:针对数据密集型工作负载进行跨云资源放置的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!