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

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


参考下面的附图将可以理解本发明,其中相同的元件由相同的数字表 示。这些附图用来说明本发明经选择的实施例,并不意于限制本发明的范 围。
图l是表示适用于处理器的配电网络的电学模型的电路图。 图2表示图1的配电网络的阶跃响应和脉冲响应。 图3是表示根据本发明的用于仿真集成电路中的电压变化的方法的一 个实施例的流程图。
图4是图3中示出的方法的示意性表示。
图5表示用于执行一批代码的处理器的功率仿真器在约2000个时钟周 期内的输出。
图6表示如根据本发明使用仿真器所确定的,在相同的间隔内在图5 中所仿真的处理器的电源电压。
图7是表示使用Ji^t控制机制的计算机系统的一个实施例的框图。
图8A是根据本发明的控制器的一个实施例的框图。
图8B-8E是图8A的电流至电压计算单元的各种实施例的框图。图9表示在图8A的电流控制单元的控制下运行时,图7的处理器的输 出功率的仿真。
图10表示在相同的间隔内在图8A中所仿真的处理器的电源电压的变化。
图11表示使用縮短的巻积间隔所确定的电源电压变化与功率的关系的 仿真。
图12表示使用縮短的巻积间隔所确定的电源电压变化与性能的关系的 仿真。
具体实施例方式
诸如SimpleScalar或者SMTSIM之类的微体系结构仿真器包括微处理 器的流水线和控制逻辑的模型,以及用于仿真通过微处理器的流水线的指 令流的体系结构仿真器。仿真器确定需要多少个时钟周期来执行给定的基 准检测程序(benchmark),并且产生关于诸如流水线延误、高速缓存未命 中、误预测分支等之类的事件的统计。这样的仿真器是公知的并且在文献 中进行了大量讨论。例如参见D. Burger和T. M. AuStin的"The SimpleScalar Toolset, Version 2.0", Computer Architecture News, Vol 25, N0.3 June 1997, 第13-25页,或者D. M. Tullsen的"Simulation and Modeling of a Simultaneous Multithreading Processor" , 22nd Annual Computer Measurement Group Conference, 1996年1 2月。
这些仿真器和其他的仿真器可以被扩充来估计功率消耗,包括时钟门 控的作用。例如,在每一个时钟间隔,仿真器可以确定哪些单元和流水阶 段是工作的。通过将单元/流水线阶段("块")开启时的工作功率和关断时 的空闲功率相加,仿真器可以计算出这个时钟周期期间总的功率消耗。每 一个块的工作和空闲功率可以以低电平电路仿真、电路设计者提供的估计、 基于实际电路的测量等为基础。
根据本发明的一个实施例,利用用于处理器的配电网络的电学模型并 结合适当的分配网络响应函数,由功率仿真器的输出来模拟输送给这个处 理器的电源电压。
图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的电流阶跃(没有示出)的仿真 响应。持续不变的25 A的电流增加被施加到配电网络IOO,并模拟了由微 处理器所经历的电源电压的响应(阶跃响应210)。例如,可以通过在网络 100上运行Spice或者类似的仿真来确定阶跃响应210。
图2中的水平轴被分成时间间隔序列。所述间隔例如可以与由配电网 络100所驱动的处理器的时钟周期相对应。对于所公开的仿真,每一个间 隔对应于0.3纳秒("ns")的时钟周期,以表示时钟频率为3.3 GHz的处理 器的响应。由于配电网络100的电感和电容,阶跃响应210下降并"降幅 振荡(ring)"。其在电流阶跃开始之后约30个时钟周期处达到局部最小值 220。在被模拟的间隔内在阶跃响应210中可以观察到两个指数衰减正弦信 号。高频的贡献是导致局部最小值220的原因。此贡献可以归因于与片上 部件IIO (a)等相关的RLC共振。低频的贡献是导致第二局部最小值250 的原因。此贡献可以归因于与封装和/或连接器部件110 (b)、 120 (a)、 130 (a)等相关的RLC共振。如果延长模拟的间隔,则与电源部件相关的更低 频的贡献可以变得明显。
在图2中还示出了脉冲响应230。在此,脉冲响应230表示配电网络 100对持续时间为0.3ns的单次25A脉冲的响应。脉冲响应230与阶跃响应 210的一阶导数成比例。通过取阶跃响应210的相邻信号瞬时值之间的差分 可以由阶跃响应210计算出脉冲响应230。或者,可以直接通过模拟网络 100对具有25 A幅值的0.3 ns脉冲的响应来计算。
阶跃响应210和脉冲响应230是响应函数的示例,所述响应函数可用 于表征输电网络对于电激励的行为。本发明的一个实施例提供了一种将处理器所经历的电压确定为随时间
而可变化的活动(activity)函数的机制。所述活动可以表示为电流波形或 者离散的电流脉冲。这些可以由诸如SimpleScalar或者SMTSIM之类的仿 真器提供,所述仿真器己经被改善以模拟功率消耗的效应。如在下面所更 详细地讨论的,所述活动也可以由正运行的处理器提供。在后一情形中, 提供了用于减轻"i/d引起电压变化的效应的机制。
所公开的机制部分地依赖于这样的观测结果,即配电网络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用于估计配电网络对集成电路的活动特性曲线(activityprofile)的电压 响应。根据本发明,确定对于系统的活动特性曲线(步骤310)。如上所述, 活动特性曲线可以是电流波形、电流脉冲序列或者与之相当的仿真器的输 出。如果正在对处理器进行仿真,可以将仿真器在给定的时间段内响应于 特定代码序列的输出作为活动特性曲线。例如,可以按上述方式计算出一 系列的电流脉冲(每个时钟周期一个脉冲),所述电流脉冲表示在一系列的 时钟周期("间隔")内处理器的工作单元和不工作单元所吸取的电流。对 于实际的处理器,可以通过例如在逐个时钟周期的基础上监测其电流消耗 来提供活动特性曲线。表示处理器活动特性曲线的电流波形可以被分解成 一系列的电流脉冲。在这两个情形中,由大小(电流脉冲的幅值)和偏移 (相对于参考时间的间隔时间)来表征选定间隔中的活动特性曲线(步骤
8320)。对于微处理器,选定间隔可以对应于一个或者多个时钟间隔。在下 面的讨论中,在选定间隔中的活动特性曲线是指脉冲。
确定包括有例如微处理器的器件的目标配电网络的脉冲响应(步骤 330)。对于方法300的一个实施例,可以对将具有指定大小和持续时间的 电流阶跃施加到目标网络进行仿真,并且由仿真的电压响应确定脉冲响应。 或者,可以直接对输电网络对电流脉冲响应进行仿真,其中所述电流脉冲 具有对应于选定时钟间隔的持续时间。如果可使用实际系统,则可以直接 测量脉沖响应。
利用网络的脉冲响应和滤波技术,活动特性曲线的电流脉冲随后被变 换为电源网络的电压响应(步骤340)。举例来说,合适的滤波技术包括例 如巻积的有限脉冲响应(FIR)滤波和无限脉冲响应(IIR)滤波。
对于一个实施例,根据每一个电流脉冲的幅值和偏移,FIR滤波器縮放 并平移(shift)这个电流脉冲,以提供相应的已縮放已平移的脉冲响应。然 后将对于在给定的间隔中产生响应的每一个脉冲的已縮放/已平移脉冲响应 进行加和,以提供在所述间隔中电源网络的电压响应。网络对于该时间段 内脉冲序列的已缩放/已平移响应表示活动脉冲与网络响应函数的巻积。
对于另一个实施例,为重现脉冲响应的IIR滤波器确定系数。系数被应 用于电流脉冲,并递归地应用于由电流脉冲所确定的较早的电压,以指示 器件所经历的电压特性曲线。
图4是结合图3所描述的FIR方法的示意性表示。在示出的示例中, 活动特性曲线400包含分别具有幅值A,、 A2、 A3的电流脉冲410、 420、 430。 电流脉冲410、 420、 430例如可以表示在连续的若干时钟周期内由执行代 码序列的处理器所吸取的电流。电流脉冲410、 420、 430幵始于偏移时间 T0, T2,…。
为了进行说明,对于例如25 A的指定电流幅值的基础脉冲响应490被 表示为8个时间间隔(Vt》内的脉冲响应幅值Ro-R7的序列。脉冲响应440、 450和460分别表示经过了按脉冲410、 420、 430的幅值(A。 A2、 A3,...) 縮放和按脉冲410、 420、 430的偏移(To, T,, T2,...)平移的基础脉冲响 应490 (脉冲响应幅值Ro-R7)。在此,Rij表示按电流脉冲幅值Aj縮放后的 脉冲响应490的幅值Rj。假设由基础脉冲响应490表征的输电网络是线性的,贝U R10=c A, Ro, R32=c A3 R2,总而言之R『c A; Rj (按
比例縮放)。对脉冲响应440、 450和460的平移分别反应了其源电流脉冲 410、 420、 430开始的不同时间。在所公开的示例中,To被作为参考时间。 电压波形470表示在相应间隔to, t,, t2,…中脉冲响应440、 450和460的 加和(叠加)。
例如,电压脉冲V。表示在时间间隔t。处脉冲响应440的幅值(R10)。 电压响应V,表示在时间间隔^中脉冲响应幅值Ru和R2Q的加和,电压响应 V2表示在时间间隔12中脉冲响应幅值R12、 R21、 R3o的加和。由偏移T,和 丁2所指的平移相对于脉冲响应460的幅值R1Q-R18,分别对齐脉冲响应440 的脉冲响应幅值R2Q-R28和450的脉冲响应幅值R3()-R38。
一般来说,在间隔tn处的电压是对于在tn处具有非零幅值的所有电流
脉冲的脉冲响应幅值的加和。如图4所示出的,如果电流脉冲开始于时间
Tk,则电流脉冲对于在间隔tn处的电压的贡献与C 'A。ICk成比例。此处,
Rn.k是在间隔n-k中脉冲响应490的幅值,其中所述差值反映电流脉冲相对 于参考时间To的起始时间。
在图5和6中分别示出了对于微处理器的电流仿真和根据本发明从电 流仿真得到的电压响应。图5表示对由加利福尼亚圣克拉拉的Intd⑧公司的 Itanium 处理器所消耗的功率的仿真。将一部分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王作负载不表示较坏情 况的cfiM模式。
在曲线610中明显的电压变化可能对处理器的运行造成严重后果。例 如,构成处理器的逻辑电路要求电源电压处在一定的范围之中,以可靠地 运行。电压漂移到此范围之外可能导致处理器中的计算错误或者灾难性的 电路故障。诸如在图6中示出的仿真允许处理器设计者研究各种功率/性能 折衷对处理器电压的影响。如下面所更详细讨论的,实际系统上的电压特 性曲线的实时确定可以被用来限制电压漂移的程度。
微处理器的功率传输系统通常是针对其可能运行的最坏情况的软件而 设计的。最坏情况的软件常常是具有极高IPC的程序(针对最大的功率消 耗),或者是在极高IPC和极低IPC之间快速交替的程序(针对最大的《i/d)。 这样的程序被称为功率病毒,因为它们与正常的应用软件相比使功率传输 系统受到了大得多的压力。如果针对典型功率消耗而不是最坏情况的功率 消耗所设计的处理器达到了指定的功率阈值,则时钟门控允许处理器限制 其性能。但是,时钟门控也放大了^/"t对电压的影响。
上述方法便于用于处理器和其他指令执行器件的片上功率计算和调控 硬件("电流控制单元")的开发。除了提供对特定代码序列可能对处理器 的电压产生怎样的影响的深入了解之外,这些仿真还允许在硅前 (pre-Silicon)阶段对各种d/d的减轻方案进行测试。参照实现d/rft控制的处理器设计,可认识到上述仿真所带来的深入了解的好处。 一个这样的 实施例将在下面被更详细地描述。
图7是其中实现了 d/d控制的计算机系统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包括单个的CCU 730。其他的实施例可以使用多个CCU730,其中每个CCU730局部地控制 对于一个或者多个单元724的d/d。
当指令被沿着流水线720执行时,其命令各个单元724执行一个或者 多个操作,所述一个或者多个操作合起来实现了所述指令。例如,浮点乘 法累加指令(FMAC)可以导致在指明的资源中发生下面的操作浮点寄存 器文件读出三个操作数;FMAC执行单元将其中两个操作数相乘,并将乘 积和第三个操作数相加;异常单元检查乘积和加和的错误以及如果没有 检测到错误,则退休单元将结果写入浮点寄存器文件。取决于具体的处理 器实施方式,这些资源或者它们的部件可以被分组成一个或者多个单元 724,其中当指令被沿着流水线执行时,所述单元724被开启和关断。
当其被指令激活时,每一个单元724吸取一定量的电流。对于计算机 系统700,电源780提供电流,同时将参考电压水平保持在指定的范围中。
12如果一个或者多个单元724的激活或者去激活引起处理器710所要求的电 流发生明显变化,则CCU730作出响应以减轻所述变化。CCU730的一个 实施例利用在上述的仿真中所示出的行为,来减轻对处理器710所使 用的参考电压的影响。
可以监测选定单元724'的激活/去激活状态,以提供在给定的时钟周 期中由处理器710所消耗的电流的估计。选定单元724'可以是那些当工作 时吸取大电流的单元,因为当它们在工作状态和不工作状态之间切换时, 这些单元可能产生《iM的突然变化。CCU 730监测在连续的时钟周期中一 个或者多个选定单元724'的状态,以估计在选定的时间段内所得到的电流 或者电压水平。将估计的水平与一个或者多个阈值进行比较,以确定处理 器的活动水平是否应该被调节。例如,如果估计的电压水平小于第一阈值, 则可以减小通过流水线720的指令流。如果估计的电压水平大于第二阈值, 则可以使单元724'保持激活以减小电压水平的升高,其中如果所估计的电 压水平不满足大于第二阈值的话,所述单元724'可能被去激活。
CCU 730的一个实施例通过跟踪在n个连续时钟周期中(采样周期) 选定单元724'的工作/不工作状态(例如活动状态=1/0)来估计由处理器所 经历的电压水平。如下面所讨论的,跟踪到的状态可以被加权,以表示处 理器710的活动波形或者特性曲线。可以利用适于系统700的输电网络的 脉冲响应对构成特性曲线的电流脉冲进行分析,以提供处理器所经历的电 压特性曲线。如果电压落在指定范围之外,则CCU730可以改变处理器710 的活动水平,以抵消这种预期的变化。
对于CCU 730的一个实施例,表示n个电流脉冲中的每一个的幅值的 值可以被存储在一系列的存储位置中。能够在每一条目中存储多位的幅值 的值的移位寄存器可以用于此目的。如在下面所更详细讨论的,条目的数 量部分地由所使用的滤波算法以及精度来决定,其中所述精度是将确定处 理器所经历的电压时所用的精度。其中驻有幅值的值的条目表示相应的电 流脉冲从取样窗的起始的偏移。
定期地,例如在每一个时钟周期,由存储在移位寄存器的条目中的电 流幅值(Ai)来估计处理器所经历的电压。对于CCU 730的一个实施例, 在连续的时钟周期中使电流幅值顺序地从条目O到条目n-l (Eo到En.,)逐级通过移位寄存器。移位寄存器的存储信息于是提供了在一 n个时钟周期 的窗上器件的活动水平特性曲线的快照。在给定的时刻,最近的电流脉冲 幅值位于Eq中,其对处理器所经历的电压贡献与其存储的幅值值([Eo]) 和在第一间隔中的网络脉冲响应(Ro)成比例的量。类似地,其次最近的 脉冲位于条目1中,其对电压的贡献与其存储的幅值值([E,])和在第二间 隔中的网络脉冲响应(R。成比例。
一般来说,在特定时刻的电压响应可以估计为
,=0
也就是说,利用在相应间隔中的脉冲响应幅值所提供的权重,在每一时钟 周期计算上一个n个时钟周期的电流幅值的加权和。移位寄存器移位电流 脉冲幅值,以提供相对于结合图4所讨论的脉冲响应的偏移。移位寄存器 的存储信息于是提供一个滑动窗口,通过所述滑动窗口,可以估计由处理 器所经历的电压水平的动态特性曲线。实际上,CCU 730的此实施例对所 测量到的处理器的活动特性曲线与其输电网络的脉冲响应进行巻积,以预 测处理器所经历的电压水平的变化。巻积是有限脉冲响应(FIR)算法的一 个示例。如下面所讨论的,也可以实现基于无限脉冲响应(IIR)的电流控 制电路。
对于使用CCU 730的系统的一个实施例,流水线控制电路(图8A)调 节流水线活动来抵消电压水平的预期变化,如果其落入可接受的范围之外 的话。脉冲响应可以利用类似于图2中的供电网络来进行模拟,其中所述 供电网络具有为反映计算机系统700的电容、电感和电阻性能而设计的部 件。或者,可以测量实际系统的脉冲响应。
图8A是表示CCU 730和其与流水线720的选定单元724'的相互作用 的一个实施例的框图。所公开的CCU730的实施例包括门控单元810 (1) -810 (n)(总称门控单元810)、监测电路820和限制电路830。每一个门控 单元810控制到流水线720中相关单元724'的功率传输。例如,门控单元 810可以是时钟门控电路,所述门控电路根据单元724'的服务是否用来执 行当前位于单元724'运行于其中的流水线阶段中的指令,将时钟信号耦合 或者去耦合到单元724'。在图8A中还示出了流水线控制电路850,所述流水线控制电路850指示门控单元810哪些单元724'正在为当前正在执行的 指令工作。
对于所公开的CCU 730实施例,门控单元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提供在连 续的时钟周期中所消耗的电流的估计。IVCU 814将滤波算法应用于估计电 流,以产生由例如处理器710的器件所经历的电压的估计。TCU816将估 计电压和一个或者多个阈值进行比较,并且如果比较结果指示,限制电路 830调节处理器710的活动水平。
对于所公开的CCU 730实施例,ICU 812包括加权单元804 (1) -804 (n)(总称加权单元804)和加法器822。存在的每一个加权单元804根据 由门控单元810所指明的其相关单元724'的活动状态是不工作的还是工作 的,分别将第一值或者第二值提供给加法器822。第一值表示单元724'没 有被激活时所吸取的电流,而第二值表示单元724'被激活时所吸取的电流。 加法器822将由加权单元804所提供的值进行加和,并输出加和作为在每 一个连续的时钟周期中由处理器710的被监测单元724'所吸取的电流脉冲 的估计。如果CCU730控制单个单元724',则可以删除加法器822和可能 的加权单元804。同样地,如果由被监测单元724'所吸取的电流大致相当, 则可以删除加权单元804。
IVCU 814将滤波算法应用于由ICU 812所提供的电流脉冲,以产生由 处理器710所经历的电压的估计,并且TCU 816将估计的电压与一个或者多个阈值进行比较。如果估计的电压超过所述阈值,则限制电路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)的IVCU 814的实施 例的框图。还示出了TCU816的实施例。所公开的IVCU814实施例包括n 个条目的移位寄存器824,并且加法器826通过13个加权单元850 (0) -850 (n-l)(总称加权单元850)接收其输入信号。移位寄存器824将n个连续 时钟周期的电流幅值(Ao-Aw)存储在其条目中。加权单元850 (0) -850 (n-l)与相关输电系统的脉冲响应的相应间隔的幅值成比例地縮放来自移 位寄存器824的各个输入(Ao-An.,)。所公开的加法器826实施例实现式1 的加权和。也就是说,加法器826将n个活动状态与包括电源780和处理 器710的输电网络的脉冲响应进行有效的巻积。
加法器826的输出表示供电网络784对于处理器710电流活动水平的 估计电压响应VE。在图8B中,VE被提供给阈值比较器816的比较器860 (a)和860 (b),将其分别与上限阈值和下限阈值进行比较。比较器860
16(b)确定VE是否下降到下限电压阈值以下,并且如果VE下降到较低电压
阈值以下,则发信号给限制电路830以减小电流消耗。通过直接关断时钟、 减小指令的读取或者发送的速率、或者起动一些其他的电流节约方案都可 以降低电流消耗。
比较器860 (a)确定VE是否超过了上限电压阈值,并且发信号给限制 电路以增大电流消耗(或者至少将其保持在当前水平)。例如,限制电路可 以强迫否则将被时钟门控关断的单元工作来增大电流消耗,或者其可以通 过防止时钟门控切断另外的单元来保持功率消耗。
在上限阈值和下限阈值之间,例如处理器710的器件可以正常运行。 根据所要求的控制间隔尺寸、可用的计算资源以及其他因素,可以每个时 钟周期或者每m个时钟周期进行一次电压计算、阈值比较和电流调节(如 果必要的话)。假定以合适的速率估计VE所需的计算资源可以被容纳在处 理器管芯上,则电源电压的实时控制被使能。
图8C是适于实现IIR或者递归滤波器的IVCU 814的实施例的框图。 IIR滤波器除了使用输入信号(例如来自ICU816的电流)之外,还使用先 前已计算出的滤波输出(例如来自加法器826的较早的电压估计)来确定 新的滤波输出(例如电流电压估计)。例如在Steven W. Smith的"The Scientists and Engineers Guide to Digital Signal Processing", California Technical Publishing ISBN 0-966176-3-3 (1997)中详细地讨论了 IIR滤波器。 一般来说,IIR或者递归滤波器将输入信号和先前已计算出的输出线性组合 来确定输出,其中先前已计算出的输出提供递归元素。IIR滤波函数可以表
示为
<formula>formula see original document page 17</formula>
在此,ao-a^表示应用于n个电流幅值(A》的系数,b。-bp.,表示应用于p 个在先电压估计(Vi)的系数。 一般来说,如果上一组n个电流值被跟踪, 则n-l个估计电压可用于跟踪,且p^n-l。可以通过对于输电网络的脉冲响 应或者阶跃响应(N-2)的曲线拟和来确定系数(aj和(bj。
所公开的IVCU 814'实施例除了包括n个条目的移位寄存器824、加 法器826和加权单元850 (0) -850 (n-1)之外,还包括第二移位寄存器828和加权单元854 (0) -854 (n-2)。移位寄存器824存储n个电流幅值的序 列,而移位寄存器828存储先前的n-l个估计电压的序列。后者是对于加法 器826的反馈,以为IVCU814提供递归输入。
IVCU 814,适于针对其中阶跃函数210或者脉冲响应230受一个延迟 的正弦贡献所支配的情况,对电流信号进行滤波以提供处理器710所经历 的电压的估计。针对其中存在多个对于输电网络响应的延迟的正弦贡献的 情况,可以使用多个IVCU814来产生电压估计。每一个正弦贡献可以由其 自身的系数组(aj和(bj来表征。图8D示出了IVCU814",其中k个滤波器 的结果被并行组合,以提供由处理器710所经历的电压的估计。图8E示出 了一个IVCU814"',其中k个滤波器的结果被串行组合,以提供处理器710 所经历的电压的估计。两种构造都可以用于组合对于多个共振源的IIR滤波 结果。
如图8A中所示,CCU730包括反馈回路,因为强迫单元724'开启或者 关断的动作影响所计算出的电源电流和电压。这些反过来又影响CCU 730 后续的行为。对于IIR滤波器(图8C-8E),递归部件在IVCU 824中提供另 外的反馈回路。
在图9和图10中分别示出了 CCU 730对电流和电源电压的影响的仿 真。与图5和图6相比,由CCU730所提供的d/d控制将明显的一个时钟 尖峰信号(spike)弓l入到最大以及最小电流水平上。这些尖峰信号是CCU 730响应于落在预定限度之外的计算出的电压值而强迫时钟开启和关断的 结果。尽管存在尖峰信号,但是电源电压的峰至峰变化还是小于未受控的 情形,因为通过设计,CCU730调控了电流,以避免在配电网络中激励RLC 共振。
利用应用于脉冲响应230 (图2)的整个范围的FIR算法,仿真图9和 图10的结果,其中脉冲响应230延续的时钟周期超过300个。对于CCU730, 这相当于使用具有相应尺寸(n>300)的移位寄存器824、加权单元850和 加法器826。即使使用在当今的高性能处理器中可利用的电路密度,实现这 样的监测电路820也是不现实的,其中所述监测电路820能够在一个时钟 周期或者甚至在数个时钟周期内将对于300今时钟周期间隔中的脉冲响应 与电流脉冲进行巻积。仿真结果表明对于提供有用的结果,图2中的300个时钟周期间隔是 不必要的。例如,在图2中,脉冲响应230的最大变化,例如局部最大值 240出现在电流脉冲开始后的大约25个时钟周期。这暗示CCU 730可以对 更短间隔内的电流脉冲和脉冲响应进行巻积,并仍然提供对于输电网络的 电压响应的合理近似。如下面所更详细讨论的,可以实现n小至25或者30 的监测电路820。
本发明的一个实施例允许针对不同的巻积间隔来仿真性能和电压稳定 性之间的平衡。通过改变在其处CCU 730起动d/dt减轻操作的电压阈值, 可以测试到不同的性能水平。例如,如果减小在其处CCU 730起动例如插 入NOP的活动降低操作的下限电压阈值,则处理器710在更宽的电压范围 内以满工作量持续运行,但要付出使其电路遭受更大的电压变化的代价。 提高在其处CCU730起动活动降低操作的下限电压阈值,会縮窄处理器710
在其中被允许以满工作量运行的电压范围。总的来说,性能下降,但是处 理器710经历更稳定的电源电压。
'图11表示针对三个不同的间隔用于系统700的输电网络的峰至峰电压 变化与性能的关系的仿真。从图11可以明显看出,在由对于25个(曲线 1110)、 43个(曲线1120)和350个(曲线1130)时钟周期的仿真所产生 的结果中差别很小。在每一个例子中,峰至峰电压变化可以被限制到约1 mV,同时性能的下降小于5%-。
图12表示针对三个不同巻积间隔用于系统700的输电网络的峰至峰电 压变化与所耗散的功率的关系的仿真。对于这三个间隔,结果是相当的, 表明小至25个时钟周期的间隔对于实际的d/d控制是足够的。
CCU 730的等待时间可能对其控制与摆动相关的电压变化的效率 有明显的影响。例如,从图2可以明显看出,在电流变化的最初数个间隔 中阶跃响应210和脉冲响应230分别发生了更大数字范围的电压变化。因 此,有效的CCU 730设计为以例如1个或者2个周期的低等待时间作出响 应。图13和14表示对于具有1-4个时钟周期的等待时间的CCU,峰至峰 电压变化对性能和功率的依赖关系。从这些图可以明显看出,由于等待时 间大于2个时钟周期,^i/d控制的很多好处消失了。
对于所公开的CCU 730实施例,ICU 812和IVCU 814是等待时间的主要来源。如上面对于基于FIR的滤波器所示出的,减小被监测间隔的大小 是有帮助的。在这点上,对于给定的等待时间,基于IIR的滤波器有可能提 供更好的结果。例如,仿真已经示出了使用第二级IIR滤波器,可以获得器 件所经历的电压的合理估计。第二级滤波器仅仅使用三个电流系数(a。, a,, a2)和两个电压系数(bo, b,),这与FIR滤波器814'使用25个系数相比 是非常有利的。
也可以应用其他的方案来减小等待时间。例如,在较早的阶段,可以 预先计算块稍后在执行流水线中的电流消耗。如果需要的话,可以在早期 阶段进行两次计算,并且随后根据相关单元是工作的还是不工作的,可以 选择一次计算。此外,对于所公开的监测电路820实施例,仅仅是脉冲响 应的第一元件需要以一个周期等待时间进行计算。第二元件可能花费两个 周期,第三元件可能花费三个周期,等等。
等待时间约束还表明例如用于处理器的单个集中式CCU将不会提供与 以分布/局部方式控制d/A相同的好处。例如,可以将局部CCU设置在某 些单元的旁边,其中所述局部CCU控制所述单元的活动,以更快速地响应 其指定单元中的电流变化。集中式CCU必须等待来自分布在整个芯片上的 单元的数据。如果若干局部CCU与处理器中的不同流水线相关联,则流水 线之间的某些通信是必须的,以确保在流水线之间交换的数据不会丢失。 例如,在流水线之间可以加入队列,以缓冲来自一个流水线并注定去往被 其CCU暂停的另一个流水线的数据。
这样,提供了一种用于仿真由在输电网络中的器件所经历的电压的机 制。该机制可以用于研究用于减轻引起的电压变化的各种方案的效率。 对于本发明的一个实施例,确定了输电网络的脉冲响应,并在运行期间监 测了由该网络供电的器件的活动特性曲线。随后,将该活动特性曲线与脉 冲响应进行巻积,以提供器件的电压特性曲线。
已用来说明本发明的各种,特征的本实施例和其他实施例可以用于模 拟电子系统,例如使用时钟门控或者因为其他原因而经受明显的变化 的其他基于处理器的系统和计算机。本领域的技术人员在受益于本公开的 情况下,将认识到所公开的实施例的多种变化和修改,这些变化和修改依 然落入所附权利要求的精神和范围中。
权利要求
1.一种处理器,包括第一寄存器,用于存储多个值,所述多个值表示所述处理器的至少一部分所吸取的多个电流幅值;加法器,用于将输入加权以反映耦合到所述处理器的输电网络的响应函数,所述加法器确定所述多个电流幅值中至少一些电流幅值的加权和;比较器,用于比较所述加权和与阈值;以及限制单元,用于响应于所述加权和超过所述阈值,调节所述处理器的至少一部分的运行。
2. 如权利要求1所述的处理器,还包括 执行流水线,包括用于处理指令的一个或者多个单元; 取指单元,用于将指令传输至所述执行流水线;以及 时钟门控单元,用于响应于当前正在执行的指令对所述一个或者多个单元的使用,控制向所述一个或者多个单元的功率传输。
3. 如权利要求2所述的处理器,其中,所述限制单元响应于所述加权 和超过上限阈值,防止所述时钟门控单元门控关断至所述一个或者多个单 元的功率。
4. 如权利要求2所述的处理器,其中,所述限制单元响应于所述加权 和落在下限阈值以下,向所述取指单元发出信号,以将指令以减小的速率 传输至所述执行流水线。
5. 如权利要求1所述的处理器,其中,所述输电网络的所述响应函数 由n个响应函数幅值来表示,并且所述加法器的所述被加权的输入包含n 个输入,其中与所述n个响应函数幅值成比例地对所述n个输入分别进行 加权。
6. 如权利要求1所述的处理器,其中,所述输电网络的所述响应函数 由递归系数组来表示,并且所述加法器的所述被加权的输入与所述递归系 数成比例地被加权。
7. 如权利要求6所述的处理器,还包括第二寄存器,所述第二寄存器 跟踪由所述加法器所确定的加权和,并将所述加权和反馈给所述加法器的 选定输入。
8. 如权利要求7所述的处理器,其中,所述递归系数包括电流系数组 和电压系数组。
全文摘要
本发明公开了一种用于以指定的电压范围向器件输电的系统。该系统包括向器件输电的输电网络,所述网络由响应函数表征。电流计算单元存储表示在连续的若干时钟周期由器件所吸取的电流幅值的序列的值,并将其提供给电流至电压计算单元。电流至电压计算单元根据从响应函数获得的系数对电流幅值进行滤波,以提供由器件所经历的电压的估计。如果估计电压落到指定范围以外,则器件的运行被调节。
文档编号G06F1/26GK101539795SQ20091012834
公开日2009年9月23日 申请日期2002年12月11日 优先权日2001年12月28日
发明者伊恩·扬, 戴维·塞杰, 戴维·艾尔斯, 爱德华·格罗霍夫斯基, 维韦克·蒂瓦里 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1