用于估计和控制电流变化率引起的电源电压变化的机制的制作方法

文档序号:6434151阅读:179来源:国知局
专利名称:用于估计和控制电流变化率引起的电源电压变化的机制的制作方法
技术领域
本发明涉及供电,更具体地说,本发明涉及用于模拟电源电压响应于集成电路的电流需求而变化的速率的机制。
背景技术
在过去的25年中,诸如微处理器之类的集成电路的功率消耗已经从不足1瓦增长到了超过100瓦。功率的极大增大是晶体管按比例缩小的结果,这已经导致在以更高的频率运行的芯片上出现更多的晶体管。在传统上,已经利用电压缩放(voltage scaling)来将功率降低到可应付的水平。但是,随着电源电压接近1伏,电压的进一步大幅度减小不可能再提供额外的功率减小。虽然下面的讨论将集中于微处理器,但是人们将认识到,任何在高频下运行并且工作载荷发生变化的集成电路都将面临类似的问题。
消耗100W的微处理器需要电源、调压器和能够供应100W的配电网络,以及能够消散所产生的热的热解决方案(封装、散热器和风扇)。这样的部件很昂贵,并且不可能期望这些部件随晶体管尺寸的缩小而按比例增大到更高的功率水平。
除了绝对的功率水平以外,功率水平的变化也存在问题。具体地,与功率水平的快速变化相关联的电流波动可能导致器件所经历的电压超出规定范围。在1.0V下运行的100W的理想微处理器吸取(draw)100A。为了保证正常的电路运行,调压器和配电网络必须将电源电压保持在±5%之中。这意味着不论微处理器(或者它正在运行的软件)做什么,也仅仅可以允许100mV的峰至峰波动。理想的配电网络具有足够的电容以及足够小的电感和电阻,以将电源电压保持在100mV之中,即使微处理器的电源电流可能在数纳秒之内发生急剧地变化。在感应系数定义之后,此后面的一个问题被称为是di/dt问题,V=L·di/dt。V是值为L的感应器当经历di/dt的电流变化时其两端的电压。实际的配电网络目前还不能提供这些理想的特性。
随着在微处理器设计中采用类似时钟门控的电源管理技术,减轻di/dt对电压水平的影响变得越来越困难。例如,诸如浮点执行单元之类的高功耗单元可以装配这样的电路,其中所述电路在该单元工作时开启时钟,而在该单元不工作时关断时钟。可以利用极精细的间隔尺寸—逐单元和逐流水线阶段(pipestage)来实现时钟门控,这导致大量的时钟门控信号。虽然这样的技术使不工作的单元中的功率消耗最小化,但是其导致依赖于正在运行的软件的总功率水平的大幅度变化。
本发明就是解决与输电网络相关的这些问题和其他问题。


参考下面的附图将可以理解本发明,其中相同的元件由相同的数字表示。这些附图用来说明本发明经选择的实施例,并不意于限制本发明的范围。
图1是表示适用于处理器的配电网络的电学模型的电路图。
图2表示图1的配电网络的阶跃响应和脉冲响应。
图3是表示根据本发明的用于仿真集成电路中的电压变化的方法的一个实施例的流程图。
图4是图3中示出的方法的示意性表示。
图5表示用于执行一批代码的处理器的功率仿真器在约2000个时钟周期内的输出。
图6表示如根据本发明使用仿真器所确定的,在相同的间隔内在图5中所仿真的处理器的电源电压。
图7是表示使用di/dt控制机制的计算机系统的一个实施例的框图。
图8A是根据本发明的di/dt控制器的一个实施例的框图。
图8B-8E是图8A的电流至电压计算单元的各种实施例的框图。
图9表示在图8A的电流控制单元的控制下运行时,图7的处理器的输出功率的仿真。
图10表示在相同的间隔内在图8A中所仿真的处理器的电源电压的变化。
图11表示使用缩短的卷积间隔所确定的电源电压变化与功率的关系的仿真。
图12表示使用缩短的卷积间隔所确定的电源电压变化与性能的关系的仿真。
具体实施例方式
诸如SimpleScalar或者SMTSIM之类的微体系结构仿真器包括微处理器的流水线和控制逻辑的模型,以及用于仿真通过微处理器的流水线的指令流的体系结构仿真器。仿真器确定需要多少个时钟周期来执行给定的基准检测程序(benchmark),并且产生关于诸如流水线延误、高速缓存未命中、误预测分支等之类的事件的统计。这样的仿真器是公知的并且在文献中进行了大量讨论。例如参见D.Burger和T.M.Austin的“TheSimpleScalar Toolset,Version 2.0”,Computer Architecture News,Vol 25,No.3 June 1997,第13-25页,或者D.M.Tullsen的“Simulation andModeling of a Simultaneous Multithreading Processor”,22ndAnnualComputer Measurement Group Conference,1996年12月。
这些仿真器和其他的仿真器可以被扩充来估计功率消耗,包括时钟门控的作用。例如,在每一个时钟间隔,仿真器可以确定哪些单元和流水阶段是工作的。通过将单元/流水线阶段(“块”)开启时的工作功率和关断时的空闲功率相加,仿真器可以计算出这个时钟周期期间总的功率消耗。每一个块的工作和空闲功率可以以低电平电路仿真、电路设计者提供的估计、基于实际电路的测量等为基础。
根据本发明的一个实施例,利用用于处理器的配电网络的电学模型并结合适当的分配网络响应函数,由功率仿真器的输出来模拟输送给这个处理器的电源电压。
图1示出了用于高性能微处理器的配电网络100的电学模型。该模型包括分别位于管芯上、封装中和调压器中的去耦电容器110(a)-110(c)。还示出了与封装、插槽、印刷电路板和调压器中的器件相关联的寄生电感120(a)-120(d)和电阻130(a)-130(d)。微处理器被模拟成可变电流槽140,调压器的余部被模拟成理想电压源150。选择部件的值以代表被模拟的特定系统的部件的值。在D.J.Herrell,B.beker的“Modeling of Power Distribution Systems for High-Performance Microprocessors”,IEEE Transactions on Advance Packaging,Vol.22,Issue 3,1999年8月,第240-248页中讨论了这样的模型的构造。
图2表示配电网络100对于施加25A的电流阶跃(没有示出)的仿真响应。持续不变的25A的电流增加被施加到配电网络100,并模拟了由微处理器所经历的电源电压的响应(阶跃响应210)。例如,可以通过在网络100上运行Spice或者类似的仿真来确定阶跃响应210。
图2中的水平轴被分成时间间隔序列。所述间隔例如可以与由配电网络100所驱动的处理器的时钟周期相对应。对于所公开的仿真,每一个间隔对应于0.3纳秒(“ns”)的时钟周期,以表示时钟频率为3.3GHz的处理器的响应。由于配电网络100的电感和电容,阶跃响应210下降并“降幅振荡(ring)”。其在电流阶跃开始之后约30个时钟周期处达到局部最小值220。在被模拟的间隔内在阶跃响应210中可以观察到两个指数衰减正弦信号。高频的贡献是导致局部最小值220的原因。此贡献可以归因于与片上部件110(a)等相关的RLC共振。低频的贡献是导致第二局部最小值250的原因。此贡献可以归因于与封装和/或连接器部件110(b)、120(a)、130(a)等相关的RLC共振。如果延长模拟的间隔,则与电源部件相关的更低频的贡献可以变得明显。
在图2中还示出了脉冲响应230。在此,脉冲响应230表示配电网络100对持续时间为0.3ns的单次25A脉冲的响应。脉冲响应230与阶跃响应210的一阶导数成比例。通过取阶跃响应210的相邻信号瞬时值之间的差分可以由阶跃响应210计算出脉冲响应230。或者,可以直接通过模拟网络100对具有25A幅值的0.3ns脉冲的响应来计算。
阶跃响应210和脉冲响应230是响应函数的示例,所述响应函数可用于表征输电网络对于电激励的行为。
本发明的一个实施例提供了一种将处理器所经历的电压确定为随时间而可变化的活动(acitivity)函数的机制。所述活动可以表示为电流波形或者离散的电流脉冲。这些可以由诸如SimpleScalar或者SMTSIM之类的仿真器提供,所述仿真器已经被改善以模拟功率消耗的效应。如在下面所更详细地讨论的,所述活动也可以由正运行的处理器提供。在后一情形中,提供了用于减轻di/dt引起电压变化的效应的机制。
所公开的机制部分地依赖于这样的观测结果,即配电网络100大致近似为线性网络。线性系统可用两个性质来表征(1)将对系统的输入(电流阶跃或者脉冲幅值)按比例缩放一定的大小会导致输出按比例缩放;和(2)将两个输入的线性组合施加到系统所产生的输出与由系统单独地响应每一个输入所产生的输出的线性组合(叠加)相同。这种按比例缩放的性质用数学表示为f(c*x)=c*f(x),其中c是常数。例如,将图2中的输入电流阶跃的幅值增大一倍到50A会导致局部最小值220的深度大致增大一倍。叠加可以用数学表示为f(x+y)=f(x)+f(y)。在图2的示例中,这意味着分配网络100对第一电流脉冲和第二电流脉冲的响应可以由分配网络100对第一电流脉冲的响应和其对一定间隔之后的第二电流脉冲的响应的加和来合理地近似,其中所述间隔表示在第一和第二电流脉冲的施加之间的延迟。
图3是表示根据本发明的方法300的一个实施例的流程图,所述方法300用于估计配电网络对集成电路的活动特性曲线(activity profile)的电压响应。根据本发明,确定对于系统的活动特性曲线(步骤310)。如上所述,活动特性曲线可以是电流波形、电流脉冲序列或者与之相当的仿真器的输出。如果正在对处理器进行仿真,可以将仿真器在给定的时间段内响应于特定代码序列的输出作为活动特性曲线。例如,可以按上述方式计算出一系列的电流脉冲(每个时钟周期一个脉冲),所述电流脉冲表示在一系列的时钟周期(“间隔”)内处理器的工作单元和不工作单元所吸取的电流。对于实际的处理器,可以通过例如在逐个时钟周期的基础上监测其电流消耗来提供活动特性曲线。表示处理器活动特性曲线的电流波形可以被分解成一系列的电流脉冲。在这两个情形中,由大小(电流脉冲的幅值)和偏移(相对于参考时间的间隔时间)来表征选定间隔中的活动特性曲线(步骤320)。对于微处理器,选定间隔可以对应于一个或者多个时钟间隔。在下面的讨论中,在选定间隔中的活动特性曲线是指脉冲。
确定包括有例如微处理器的器件的目标配电网络的脉冲响应(步骤330)。对于方法300的一个实施例,可以对将具有指定大小和持续时间的电流阶跃施加到目标网络进行仿真,并且由仿真的电压响应确定脉冲响应。或者,可以直接对输电网络对电流脉冲响应进行仿真,其中所述电流脉冲具有对应于选定时钟间隔的持续时间。如果可使用实际系统,则可以直接测量脉冲响应。
利用网络的脉冲响应和滤波技术,活动特性曲线的电流脉冲随后被变换为电源网络的电压响应(步骤340)。举例来说,合适的滤波技术包括例如卷积的有限脉冲响应(FIR)滤波和无限脉冲响应(IIR)滤波。
对于一个实施例,根据每一个电流脉冲的幅值和偏移,FIR滤波器缩放并平移(shift)这个电流脉冲,以提供相应的已缩放已平移的脉冲响应。然后将对于在给定的间隔中产生响应的每一个脉冲的已缩放/已平移脉冲响应进行加和,以提供在所述间隔中电源网络的电压响应。网络对于该时间段内脉冲序列的已缩放/已平移响应表示活动脉冲与网络响应函数的卷积。
对于另一个实施例,为重现脉冲响应的IIR滤波器确定系数。系数被应用于电流脉冲,并递归地应用于由电流脉冲所确定的较早的电压,以指示器件所经历的电压特性曲线。
图4是结合图3所描述的FIR方法的示意性表示。在示出的示例中,活动特性曲线400包含分别具有幅值A1、A2、A3的电流脉冲410、420、430。电流脉冲410、420、430例如可以表示在连续的若干时钟周期内由执行代码序列的处理器所吸取的电流。电流脉冲410、420、430开始于偏移时间T0,T1,T2,…。
为了进行说明,对于例如25A的指定电流幅值的基础脉冲响应490被表示为8个时间间隔(t0-t7)内的脉冲响应幅值R0-R7的序列。脉冲响应440、450和460分别表示经过了按脉冲410、420、430的幅值(A1、A2、A3,…)缩放和按脉冲410、420、430的偏移(T0,T1,T2,…)平移的基础脉冲响应490(脉冲响应幅值R0-R7)。在此,Rij表示按电流脉冲幅值Ai缩放后的脉冲响应490的幅值Rj。假设由基础脉冲响应490表征的输电网络是线性的,则R10=c·A1·R0,R32=c·A3·R2,总而言之Rij=c·Ai·Rj(按比例缩放)。对脉冲响应440、450和460的平移分别反应了其源电流脉冲410、420、430开始的不同时间。在所公开的示例中,T0被作为参考时间。电压波形470表示在相应间隔t0,t1,t2,…中脉冲响应440、450和460的加和(叠加)。
例如,电压脉冲V0表示在时间间隔t0处脉冲响应440的幅值(R10)。电压响应V1表示在时间间隔t1中脉冲响应幅值R11和R20的加和,电压响应V2表示在时间间隔t2中脉冲响应幅值R12、R21、R30的加和。由偏移T1和T2所指的平移相对于脉冲响应460的幅值R10-R18,分别对齐脉冲响应440的脉冲响应幅值R20-R28和450的脉冲响应幅值R30-R38。
一般来说,在间隔tn处的电压是对于在tn处具有非零幅值的所有电流脉冲的脉冲响应幅值的加和。如图4所示出的,如果电流脉冲开始于时间Tk,则电流脉冲对于在间隔tn处的电压的贡献与c·Ak·Rn-k成比例。此处,Rn-k是在间隔n-k中脉冲响应490的幅值,其中所述差值反映电流脉冲相对于参考时间T0的起始时间。
在图5和6中分别示出了对于微处理器的电流仿真和根据本发明从电流仿真得到的电压响应。图5表示对由加利福尼亚圣克拉拉的Intel公司的ItaniumTM处理器所消耗的功率的仿真。将一部分Apache网络服务器和gzip文件压缩程序的运行2000个时钟周期来对处理器进行仿真。电流曲线510示出了程序执行的不同阶段,每一个阶段用例如每个时钟周期执行的指令(IPC)的效率和电流水平来表征。一般来说,其中并行执行更大数量的指令(高IPC)的那些时钟周期由相应更高的电流消耗来指明,因为处理器中更多的单元被开启了。相反地,其中并行执行较少指令(低IPC)的时钟周期使较少的单元被激活,电流消耗相应较低。在进行仿真的间隔内,处理器的电源电流从52A变化到72A。
其中电流水平在较高和较低功率水平之间快速并重复地振荡的阶段520、530、540与代码循环有关。代码循环反复地以较大或者较小的IPC水平执行相同指令。这些阶段与阶段524、534、544交错,在所述阶段524、534、544中,可以观察到很少的循环活动,并且电流水平更加随机地变化。在阶段524、534、544中峰至峰电流变化明显地大于与循环阶段520、530、540相关的峰至峰电流变化。在大约时钟周期1200处开始,存在一个延长的间隔,其中代码段仅仅包含少量短的循环片断。在此区域,电流消耗变化很大并且不可预测。
图6表示与在图5中所反映的处理器电流消耗相对应的电源电压变化610的根据本发明的仿真。电压曲线610近似地反映了在图5的曲线510中所指明的事件。例如,阶段620、630、640分别对应于循环阶段520、530、540,在所述循环阶段520、530、540中峰至峰电流规则地变化。对于被模拟的代码序列和处理器,循环阶段表征为相对高的IPC和高的电流消耗。电源电压水平在阶段620、630、640中下降,反映了处理器所消耗的电流增大。时钟周期900以下的电压变化相对缓和。但是,过了时钟周期1152,即功率消耗更加不稳定的时候,电压的摆幅明显变大。虽然这些电压变化仍然落在处理器允许的范围之中,但是Apache/gzip工作负载不表示较坏情况的di/dt模式。
在曲线610中明显的电压变化可能对处理器的运行造成严重后果。例如,构成处理器的逻辑电路要求电源电压处在一定的范围之中,以可靠地运行。电压漂移到此范围之外可能导致处理器中的计算错误或者灾难性的电路故障。诸如在图6中示出的仿真允许处理器设计者研究各种功率/性能折衷对处理器电压的影响。如下面所更详细讨论的,实际系统上的电压特性曲线的实时确定可以被用来限制电压漂移的程度。
微处理器的功率传输系统通常是针对其可能运行的最坏情况的软件而设计的。最坏情况的软件常常是具有极高IPC的程序(针对最大的功率消耗),或者是在极高IPC和极低IPC之间快速交替的程序(针对最大的di/dt)。这样的程序被称为功率病毒,因为它们与正常的应用软件相比使功率传输系统受到了大得多的压力。如果针对典型功率消耗而不是最坏情况的功率消耗所设计的处理器达到了指定的功率阈值,则时钟门控允许处理器限制其性能。但是,时钟门控也放大了di/dt对电压的影响。
上述方法便于用于处理器和其他指令执行器件的片上功率计算和调控硬件(“电流控制单元”)的开发。除了提供对特定代码序列可能对处理器的电压产生怎样的影响的深入了解之外,这些仿真还允许在硅前(pre-silicon)阶段对各种di/dt的减轻方案进行测试。参照实现di/dt控制的处理器设计,可认识到上述仿真所带来的深入了解的好处。一个这样的实施例将在下面被更详细地描述。
图7是其中实现了di/dt控制的计算机系统700的一个实施例的框图。作为示例,计算机系统700包括处理器710、主存储器740、非易失性存储器750、各种外围设备760、系统逻辑770以及电源780。系统逻辑770控制数据在处理器710、主存储器740、非易失性存储器750和外围设备760之间传输。电源780为处理器710中的逻辑器件提供参考电压下的功率。计算机系统700用来说明本发明的各种特征。所示出的具体构造对于实现本发明不是必须的。例如,系统700可以包括多个处理器710或者其他的指令执行器件,并且所示出的各种部件可以被全体或者部分组合或者删除。诸如个人数字助理(PDA)、智能电话等之类的系统可以被认为包括没有在所公开的实施例中示出的器件和连接。
处理器710包括多个单元724,所述多个单元724形成指令执行流水线720。指令可以从主存储器740、非易失性存储器750或者其他的存储器件(没有示出)提供给处理器710。处理器710所消耗的电流量由在流水线720中的指令(或者没有指令)在各种单元724中所产生的活动水平确定。电流控制单元(CCU)730监测选定单元724响应于被处理指令的电流使用,并相应地调节处理器710的活动水平。所示出的系统700包括单个的CCU730。其他的实施例可以使用多个CCU730,其中每个CCU730局部地控制对于一个或者多个单元724的di/dt。
当指令被沿着流水线720执行时,其命令各个单元724执行一个或者多个操作,所述一个或者多个操作合起来实现了所述指令。例如,浮点乘法累加指令(FMAC)可以导致在指明的资源中发生下面的操作浮点寄存器文件读出三个操作数;FMAC执行单元将其中两个操作数相乘,并将乘积和第三个操作数相加;异常单元检查乘积和加和的错误;以及如果没有检测到错误,则退休单元将结果写入浮点寄存器文件。取决于具体的处理器实施方式,这些资源或者它们的部件可以被分组成一个或者多个单元724,其中当指令被沿着流水线执行时,所述单元724被开启和关断。
当其被指令激活时,每一个单元724吸取一定量的电流。对于计算机系统700,电源780提供电流,同时将参考电压水平保持在指定的范围中。如果一个或者多个单元724的激活或者去激活引起处理器710所要求的电流发生明显变化,则CCU730作出响应以减轻所述变化。CCU730的一个实施例利用在上述的仿真中所示出的行为,来减轻di/dt对处理器710所使用的参考电压的影响。
可以监测选定单元724′的激活/去激活状态,以提供在给定的时钟周期中由处理器710所消耗的电流的估计。选定单元724′可以是那些当工作时吸取大电流的单元,因为当它们在工作状态和不工作状态之间切换时,这些单元可能产生di/dt的突然变化。CCU730监测在连续的时钟周期中一个或者多个选定单元724′的状态,以估计在选定的时间段内所得到的电流或者电压水平。将估计的水平与一个或者多个阈值进行比较,以确定处理器的活动水平是否应该被调节。例如,如果估计的电压水平小于第一阈值,则可以减小通过流水线720的指令流。如果估计的电压水平大于第二阈值,则可以使单元724′保持激活以减小电压水平的升高,其中如果所估计的电压水平不满足大于第二阈值的话,所述单元724′可能被去激活。
CCU730的一个实施例通过跟踪在n个连续时钟周期中(采样周期)选定单元724′的工作/不工作状态(例如活动状态=1/0)来估计由处理器所经历的电压水平。如下面所讨论的,跟踪到的状态可以被加权,以表示处理器710的活动波形或者特性曲线。可以利用适于系统700的输电网络的脉冲响应对构成特性曲线的电流脉冲进行分析,以提供处理器所经历的电压特性曲线。如果电压落在指定范围之外,则CCU730可以改变处理器710的活动水平,以抵消这种预期的变化。
对于CCU730的一个实施例,表示n个电流脉冲中的每一个的幅值的值可以被存储在一系列的存储位置中。能够在每一条目中存储多位的幅值的值的移位寄存器可以用于此目的。如在下面所更详细讨论的,条目的数量部分地由所使用的滤波算法以及精度来决定,其中所述精度是将确定处理器所经历的电压时所用的精度。其中驻有幅值的值的条目表示相应的电流脉冲从取样窗的起始的偏移。
定期地,例如在每一个时钟周期,由存储在移位寄存器的条目中的电流幅值(Ai)来估计处理器所经历的电压。对于CCU730的一个实施例,在连续的时钟周期中使电流幅值顺序地从条目0到条目n-1(E0到En-1)逐级通过移位寄存器。移位寄存器的存储信息于是提供了在一n个时钟周期的窗上器件的活动水平特性曲线的快照。在给定的时刻,最近的电流脉冲幅值位于E0中,其对处理器所经历的电压贡献与其存储的幅值值([E0])和在第一间隔中的网络脉冲响应(R0)成比例的量。类似地,其次最近的脉冲位于条目1中,其对电压的贡献与其存储的幅值值([E1])和在第二间隔中的网络脉冲响应(R1)成比例。
一般来说,在特定时刻的电压响应可以估计为V=cΣi=0n-1Ei·Ri]]>也就是说,利用在相应间隔中的脉冲响应幅值所提供的权重,在每一时钟周期计算上一个n个时钟周期的电流幅值的加权和。移位寄存器移位电流脉冲幅值,以提供相对于结合图4所讨论的脉冲响应的偏移。移位寄存器的存储信息于是提供一个滑动窗口,通过所述滑动窗口,可以估计由处理器所经历的电压水平的动态特性曲线。实际上,CCU730的此实施例对所测量到的处理器的活动特性曲线与其输电网络的脉冲响应进行卷积,以预测处理器所经历的电压水平的变化。卷积是有限脉冲响应(FIR)算法的一个示例。如下面所讨论的,也可以实现基于无限脉冲响应(IIR)的电流控制电路。
对于使用CCU730的系统的一个实施例,流水线控制电路(图8A)调节流水线活动来抵消电压水平的预期变化,如果其落入可接受的范围之外的话。脉冲响应可以利用类似于图2中的供电网络来进行模拟,其中所述供电网络具有为反映计算机系统700的电容、电感和电阻性能而设计的部件。或者,可以测量实际系统的脉冲响应。
图8A是表示CCU730和其与流水线720的选定单元724′的相互作用的一个实施例的框图。所公开的CCU730的实施例包括门控单元810(1)-810(n)(总称门控单元810)、监测电路820和限制电路830。每一个门控单元810控制到流水线720中相关单元724′的功率传输。例如,门控单元810可以是时钟门控电路,所述门控电路根据单元724′的服务是否用来执行当前位于单元724′运行于其中的流水线阶段中的指令,将时钟信号耦合或者去耦合到单元724′。在图8A中还示出了流水线控制电路850,所述流水线控制电路850指示门控单元810哪些单元724′正在为当前正在执行的指令工作。
对于所公开的CCU730实施例,门控单元810将信号提供给监测电路820,以指明其相关的单元724′是否在工作。信号可以是单元724′的活动状态,其中当单元724′被开启时,所述信号被断言,而当单元724′被关断时,所述信号被解断言。一般的处理器可以包括10-20个门控单元810,以控制到10-20个单元724′的功率传输。可以监测所有单元的电流变化,或者可以监测单元的子集。例如,可以仅仅监测那些消耗大量电流的单元,例如单元724′。如上所述的,可以使用多个CCU730来监测多个单元或者单元组。
监测电路820在取样窗口上收集来自门控单元810的信号,并基于所收集到的信号估计处理器710所经历的电压。所公开的监测电路820实施例包括电流计算单元(ICU)812、电流至电压计算单元(IVCU)814和阈值比较器单元(TCU)816。如在下面所更详细讨论的,ICU812提供在连续的时钟周期中所消耗的电流的估计。IVCU814将滤波算法应用于估计电流,以产生由例如处理器710的器件所经历的电压的估计。TCU816将估计电压和一个或者多个阈值进行比较,并且如果比较结果指示,限制电路830调节处理器710的活动水平。
对于所公开的CCU730实施例,ICU812包括加权单元814(1)-814(n)(总称加权单元814)和加法器822。存在的每一个加权单元814根据由门控单元810所指明的其相关单元724′的活动状态是不工作的还是工作的,分别将第一值或者第二值提供给加法器822。第一值表示单元724′没有被激活时所吸取的电流,而第二值表示单元724′被激活时所吸取的电流。加法器822将由加权单元814所提供的值进行加和,并输出加和作为在每一个连续的时钟周期中由处理器710的被监测单元724′所吸取的电流脉冲的估计。如果CCU730控制单个单元724′,则可以删除加法器822和可能的加权单元814。同样地,如果由被监测单元724′所吸取的电流大致相当,则可以删除加权单元814。
IVCU814将滤波算法应用于由ICU812所提供的电流脉冲,以产生由处理器710所经历的电压的估计,并且TCU816将估计的电压与一个或者多个阈值进行比较。如果估计的电压超过所述阈值,则限制电路830调节处理器710的活动水平,以消除这种与阈值的相交(threshold crossing)。
对于监测电路820的一个实施例,落入下限电压阈值以下的估计电压值表明处理器710可能正在吸取大于输电网络可以提供而同时保持在允许的电压范围之中的电流。在这种条件下,限制电路830可以将否则将被激活的一些单元去激活。例如,限制电路830可以使得处理器710中的取指单元(没有示出)将无操作(NOP)插入流水线720中。NOP是需要激活即使有的话也是很少的单元的基本空白指令。在这样的条件下,因为当NOP(非生产性指令,unproductive instructions)通过流水线720时,生产性指令(productive instructions)被延迟,所以性能下降。因为NOP激活即使有的话也是很少的单元,所以功率消耗也被降低。
另一方面,当处理器710使用不足并且很少的单元被激活时,估计的电压可能超出上限电压阈值。对于这样的情况,限制电路830可以激活(例如提供驱动电流给)否则将不被当前在流水线720中的指令占用的单元724′。举例来说,它可以持续将时钟信号传输至没有被使用的单元724′,使得尽管没有相应的指令仍促使它们的电路充电和放电。这增大了处理器710所消耗的功率,其中所述功率超过了当前正在执行的指令所必须的功率。但是,这对处理器的性能没有直接的影响。
图8B是适于实现上述加权和电压估计算法(FIR)的IVCU814的实施例的框图。还示出了TCU816的实施例。所公开的IVCU814实施例包括n个条目的移位寄存器824,并且加法器826通过n个加权单元850(0)-850(n-1)(总称加权单元850)接收其输入信号。移位寄存器824将n个连续时钟周期的电流幅值(A0-An-1)存储在其条目中。加权单元850(0)-850(n-1)与相关输电系统的脉冲响应的相应间隔的幅值成比例地缩放来自移位寄存器824的各个输入(A0-An-1)。所公开的加法器826实施例实现式1的加权和。也就是说,加法器826将n个活动状态与包括电源780和处理器710的输电网络的脉冲响应进行有效的卷积。
加法器826的输出表示供电网络784对于处理器710电流活动水平的估计电压响应VE。在图8B中,VE被提供给阈值比较器816的比较器860(a)和860(b),将其分别与上限阈值和下限阈值进行比较。比较器860(b)确定VE是否下降到下限电压阈值以下,并且如果VE下降到较低电压阈值以下,则发信号给限制电路830以减小电流消耗。通过直接关断时钟、减小指令的读取或者发送的速率、或者起动一些其他的电流节约方案都可以降低电流消耗。
比较器860(a)确定VE是否超过了上限电压阈值,并且发信号给限制电路以增大电流消耗(或者至少将其保持在当前水平)。例如,限制电路可以强迫否则将被时钟门控关断的单元工作来增大电流消耗,或者其可以通过防止时钟门控切断另外的单元来保持功率消耗。
在上限阈值和下限阈值之间,例如处理器710的器件可以正常运行。根据所要求的控制间隔尺寸、可用的计算资源以及其他因素,可以每个时钟周期或者每m个时钟周期进行一次电压计算、阈值比较和电流调节(如果必要的话)。假定以合适的速率估计VE所需的计算资源可以被容纳在处理器管芯上,则电源电压的实时控制被使能。
图8C是适于实现IIR或者递归滤波器的IVCU814的实施例的框图。IIR滤波器除了使用输入信号(例如来自ICU816的电流)之外,还使用先前已计算出的滤波输出(例如来自加法器826的较早的电压估计)来确定新的滤波输出(例如电流电压估计)。例如在Steven W.Smith的“TheScientists and Engineers Guide to Digital Signal Processing”,CaliforniaTechnical Publishing ISBN 0-966176-3-3(1997)中更详细地讨论了IIR滤波器。一般来说,IIR或者递归滤波器将输入信号和先前已计算出的输出线性组合来确定输出,其中先前已计算出的输出提供递归元素。IIR滤波函数可以表示为Rp=Σi=0pAi·αi+Σi=0mVi·bi]]>在此,ao-ap表示应用于p个电流幅值(Ai)的系数,bo-bm表示应用于m个在先电压估计(Vi)的系数。一般来说,如果上一组p个电流值被跟踪,则p-1个估计电压可用于跟踪,且m=p-1。可以通过对于输电网络的脉冲响应或者阶跃响应(图2)的曲线拟和来确定系数{ai}和{bi}。
所公开的IVCU814’实施例除了包括p个条目的移位寄存器824、加法器826和加权单元850(1)-850(p)之外,还包括第二移位寄存器828和加权单元854(1)-854(p-1)。移位寄存器824存储p个电流幅值的序列,而移位寄存器828存储先前的p-1个估计电压的序列。后者是对于加法器826的反馈,以为IVCU814提供递归输入。
IVCU814’适于针对其中阶跃函数210或者脉冲响应230受一个延迟的正弦贡献所支配的情况,对电流信号进行滤波以提供处理器710所经历的电压的估计。针对其中存在多个对于输电网络响应的延迟的正弦贡献的情况,可以使用多个IVCU 814来产生电压估计。每一个正弦贡献可以由其自身的系数组{ai}和{bi}来表征。图8D示出了一个IVCU814”,其中k个滤波器的结果被并行组合,以提供由处理器710所经历的电压的估计。图8E示出了一个IVCU814”’,其中k个滤波器的结果被串行组合,以提供处理器710所经历的电压的估计。两种构造都可以用于组合对于多个共振源的IIR滤波结果。
如图8A中所示,CCU730包括反馈回路,因为强迫单元724′开启或者关断的动作影响所计算出的电源电流和电压。这些反过来又影响CCU730后续的行为。对于IIR滤波器(图8C-8E),递归部件在IVCU824中提供另外的反馈回路。
在图9和图10中分别示出了CCU730对电流和电源电压的影响的仿真。与图5和图6相比,由CCU730所提供的di/dt控制将明显的一个时钟尖峰信号(spike)引入到最大以及最小电流水平上。这些尖峰信号是CCU730响应于落在预定限度之外的计算出的电压值而强迫时钟开启和关断的结果。尽管存在尖峰信号,但是电源电压的峰至峰变化还是小于未受控的情形,因为通过设计,CCU730调控了电流,以避免在配电网络中激励RLC共振。
利用应用于脉冲响应230(图2)的整个范围的FIR算法,仿真图9和图10的结果,其中脉冲响应230延续的时钟周期超过300个。对于CCU730,这相当于使用具有相应尺寸(n>300)的移位寄存器824、加权单元850和加法器826。即使使用在当今的高性能处理器中可利用的电路密度,实现这样的监测电路820也是不现实的,其中所述监测电路820能够在一个时钟周期或者甚至在数个时钟周期内将对于300个时钟周期间隔中的脉冲响应与电流脉冲进行卷积。
仿真结果表明对于提供有用的结果,图2中的300个时钟周期间隔是不必要的。例如,在图2中,脉冲响应230的最大变化,例如局部最大值240出现在电流脉冲开始后的大约25个时钟周期。这暗示CCU730可以对更短间隔内的电流脉冲和脉冲响应进行卷积,并仍然提供对于输电网络的电压响应的合理近似。如下面所更详细讨论的,可以实现n小至25或者30的监测电路820。
本发明的一个实施例允许针对不同的卷积间隔来仿真性能和电压稳定性之间的平衡。通过改变在其处CCU730起动di/dt减轻操作的电压阈值,可以测试到不同的性能水平。例如,如果减小在其处CCU730起动例如插入NOP的活动降低操作的下限电压阈值,则处理器710在更宽的电压范围内以满工作量持续运行,但要付出使其电路遭受更大的电压变化的代价。提高在其处CCU730起动活动降低操作的下限电压阈值,会缩窄处理器710在其中被允许以满工作量运行的电压范围。总的来说,性能下降,但是处理器710经历更稳定的电源电压。
图11表示针对三个不同的间隔用于系统700的输电网络的峰至峰电压变化与性能的关系的仿真。从图11可以明显看出,在由对于25个(曲线1110)、43个(曲线1120)和350个(曲线1130)时钟周期的仿真所产生的结果中差别很小。在每一个例子中,峰至峰电压变化可以被限制到约1mV,同时性能的下降小于5%。
图12表示针对三个不同卷积间隔用于系统700的输电网络的峰至峰电压变化与所耗散的功率的关系的仿真。对于这三个间隔,结果是相当的,表明小至25个时钟周期的间隔对于实际的di/dt控制是足够的。
CCU730的等待时间可能对其控制与di/dt摆动相关的电压变化的效率有明显的影响。例如,从图2可以明显看出,在电流变化的最初数个间隔中阶跃响应210和脉冲响应230分别发生了更大数字范围的电压变化。因此,有效的CCU730设计为以例如1个或者2个周期的低等待时间作出响应。图13和14表示对于具有1-4个时钟周期的等待时间的CCU,峰至峰电压变化对性能和功率的依赖关系。从这些图可以明显看出,由于等待时间大于2个时钟周期,di/dt控制的很多好处消失了。
对于所公开的CCU730实施例,ICU812和IVCU814是等待时间的主要来源。如上面对于基于FIR的滤波器所示出的,减小被监测间隔的大小是有帮助的。在这点上,对于给定的等待时间,基于IIR的滤波器有可能提供更好的结果。例如,仿真已经示出了使用第二级IIR滤波器,可以获得器件所经历的电压的合理估计。第二级滤波器仅仅使用三个电流系数(a0,a1,a2)和两个电压系数(b0,b1),这与FIR滤波器814’使用25个系数相比是非常有利的。
也可以应用其他的方案来减小等待时间。例如,在较早的阶段,可以预先计算块稍后在执行流水线中的电流消耗。如果需要的话,可以在早期阶段进行两次计算,并且随后根据相关单元是工作的还是不工作的,可以选择一次计算。此外,对于所公开的监测电路820实施例,仅仅是脉冲响应的第一元件需要以一个周期等待时间进行计算。第二元件可能花费两个周期,第三元件可能花费三个周期,等等。
等待时间约束还表明例如用于处理器的单个集中式CCU将不会提供与以分布/局部方式控制di/dt相同的好处。例如,可以将局部CCU设置在某些单元的旁边,其中所述局部CCU控制所述单元的活动,以更快速地响应其指定单元中的电流变化。集中式CCU必须等待来自分布在整个芯片上的单元的数据。如果若干局部CCU与处理器中的不同流水线相关联,则流水线之间的某些通信是必须的,以确保在流水线之间交换的数据不会丢失。例如,在流水线之间可以加入队列,以缓冲来自一个流水线并注定去往被其CCU暂停的另一个流水线的数据。
这样,提供了一种用于仿真由在输电网络中的器件所经历的电压的机制。该机制可以用于研究用于减轻di/dt引起的电压变化的各种方案的效率。对于本发明的一个实施例,确定了输电网络的脉冲响应,并在运行期间监测了由该网络供电的器件的活动特性曲线。随后,将该活动特性曲线与脉冲响应进行卷积,以提供器件的电压特性曲线。
已用来说明本发明的各种特征的本实施例和其他实施例可以用于模拟电子系统,例如使用时钟门控或者因为其他原因而经受明显的di/dt变化的其他基于处理器的系统和计算机。本领域的技术人员在受益于本公开的情况下,将认识到所公开的实施例的多种变化和修改,这些变化和修改依然落入所附权利要求的精神和范围中。
权利要求
1.一种系统,包括用于以指定电压范围提供功率的输电网络,所述网络由响应函数表征;和从所述网络吸取功率的器件,所述器件包括第一移位寄存器,用于存储若干的值,所述的值表示在若干连续的时钟周期中所述器件所吸取的电流幅值序列;加法器,所述加法器将输入加权以反映所述输电网络的所述响应函数,所述加法器确定所述电流幅值序列的加权加和,以估计提供给所述器件的电压。
2.如权利要求1所述的系统,其中所述器件还包括电压比较器,所述电压比较器用于比较所述估计电压与电压阈值。
3.如权利要求2所述的系统,还包括限制单元,所述限制单元对所述估计电压达到所述电压阈值作出响应,调节所述器件的运行。
4.如权利要求3所述的系统,其中所述器件是处理器,所述处理器还包括执行流水线,所述执行流水线包括用于处理指令的一个或者多个单元;取指单元,所述取指单元将指令传输至所述执行流水线;和时钟门控单元,所述时钟门控单元响应于当前正在执行的指令对所述一个或者多个单元的使用,控制至所述单元的所述功率传输。
5.如权利要求4所述的系统,其中所述限制单元响应于所述估计电压超出所述上限电压阈值,防止所述时钟门控单元门控关断至所述一个或者多个单元的功率。
6.如权利要求4所述的系统,其中所述限制单元响应于所述估计电压落入所述下限电压阈值以下,向所述取指单元发出信号,以将指令以减小的速率传输至所述执行流水线。
7.如权利要求1所述的系统,其中所述输电网络的所述响应函数由n个响应函数幅值来表示,并且所述加法器的所述加权输入包含n个输入,所述n个输入分别被与所述n个响应函数幅值成比例地进行加权。
8.如权利要求1所述的系统,其中所述输电网络的所述响应函数由递归系数组来表示,并且所述加法器的所述加权输入被与所述递归系数成比例地加权。
9.如权利要求8所述的系统,其中所述器件还包括第二移位寄存器,所述第二移位寄存器跟踪由所述加法器所提供的估计电压的序列,并将所述估计电压的序列反馈给所述加法器的选定输入。
10.如权利要求9所述的系统,其中所述递归系数包括电流系数组和电压系数组。
11.如权利要求1所述的系统,其中加法器输入包括耦合到所述第一移位寄存器和第二移位寄存器的输出的第一组输入和第二组输入,所述第一组输入被与所述电流系数成比例地加权,所述第二组输入被与电压系数成比例地加权。
12.一种系统,包括用于以指定电压范围提供功率的输电网络,所述网络由响应函数表征;和用于执行指令的处理器核,所述处理器核响应于其执行的所述指令,从所述网络吸取功率;用于估计所述处理器核所经历的电压的监测单元,所述监测单元包括电流计算单元,所述电流计算单元跟踪在若干连续的时钟周期中由所述处理器核所吸取的电流值的序列;和电流至电压计算单元,所述电流至电压计算单元根据所述响应函数对所述电流值的序列进行滤波,以提供由所述处理器核所经历的估计电压。
13.如权利要求12所述的系统,其中所述监测单元还包括阈值比较器,用于确定所述估计电压是否处于指定的范围之中;和限制单元,所述限制单元响应于不在所述指定范围之中的所述估计电压,调节所述处理器核的运行。
14.如权利要求13所述的系统,其中所述处理器核包括多个流水线单元,所述多个流水线单元响应于一个或者多个所述指令而被选择性地激活,所述多个流水线单元中的每一个具有相关的门控单元,如果在给定时钟周期所述流水线单元被激活,则所述相关的门控单元将电流信号提供给所述流水线单元。
15.如权利要求14所述的系统,其中所述电流计算单元包括移位寄存器,所述移位寄存器具有条目序列以存储一个序列的若干时钟周期的电流值,所述被存储的电流值表示在所述时钟周期的序列中的每一个中提供给所述流水线单元的电流信号的加和。
16.如权利要求12所述的系统,其中所述电流计算单元包括加法器和m个条目的移位寄存器,所述加法器估计在一m个间隔的序列上所述处理器核所吸取的电流幅值,所述m个条目的移位寄存器存储所述估计的电流幅值。
17.如权利要求16所述的系统,其中所述电流至电压计算单元包括具有m个输入的加法器,根据所述输电网络的所述响应函数对每一个输入进行加权,所述加法器根据由所述第一移位寄存器所提供的所述m个电流幅值的加权和,估计由所述处理器核所经历的所述电压。
18.如权利要求17所述的系统,其中所述响应函数是所述输电网络的脉冲函数,并且所述加法器的所述m个输入被与在m个间隔中的所述脉冲函数的幅值成比例地加权。
19.如权利要求17所述的系统,还包括第二移位寄存器,所述第二移位寄存器存储由所述加法器所提供的p个估计电压的序列,并且将所述p个估计电压反馈至所述加法器的输入。
20.如权利要求19所述的系统,其中耦合到所述m个条目的移位寄存器的所述加法器输入被与从所述输电网络的所述响应函数获得的第一组递归系数成比例地加权,耦合到所述p个条目的移位寄存器的所述加法器输入被与从所述响应函数获得的第二组递归系数成比例地加权。
21.一种装置,包括移位寄存器,所述移位寄存器具有n个条目,以存储表示在n个连续间隔中的电流幅值的多个值;n个加权单元,每一个加权单元按比例缩放来自所述移位寄存器的相应条目的电流幅值的值;加法器,所述加法器将来自所述加权单元的所述已缩放的电流幅值进行加和,以提供估计电压。
22.如权利要求21所述的装置,还包括第二加法器,所述第二加法器响应于时钟信号,对来自一个或者多个电路的电流幅值进行加和,并将所述加和提供给所述移位寄存器的第一条目。
23.如权利要求22所述的装置,其中所述加权单元中的每一个存储表示系统的响应函数的值,所述装置将运行于所述系统中。
24.如权利要求23所述的装置,其中所述n个输入的加法器包括p个附加的输入,并且所述装置还包括第二移位寄存器,所述第二移位寄存器具有p个条目,以存储由所述n+p个输入的加法器所提供的估计电压的序列,并将所述估计电压反馈至所述加法器的p个加权的输入。
25.如权利要求23所述的装置,其中所述加法器的所述附加的n个和p个输入根据从所述响应函数获得的电流和电压递归系数进行加权。
全文摘要
本发明公开了一种用于以指定的电压范围向器件输电的系统。该系统包括向器件输电的输电网络,所述网络由响应函数表征。电流计算单元存储表示在连续的若干时钟周期由器件所吸取的电流幅值的序列的值,并将其提供给电流至电压计算单元。电流至电压计算单元根据从响应函数获得的系数对电流幅值进行滤波,以提供由器件所经历的电压的估计。如果估计电压落到指定范围以外,则器件的运行被调节。
文档编号G06F17/50GK1739079SQ02826326
公开日2006年2月22日 申请日期2002年12月11日 优先权日2001年12月28日
发明者爱德华·格罗霍夫斯基, 戴维·塞杰, 维韦克·蒂瓦里, 伊恩·扬, 戴维·艾尔斯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1