功率管理器和用于管理功率的方法

文档序号:6594193阅读:152来源:国知局
专利名称:功率管理器和用于管理功率的方法
技术领域
本发明涉及 一种功率管理器。本发明还涉及一种包括电子装置的电子系统。本发明还涉及一种用于管理供给电子装置的功率的方法。本发明还涉及一种计算机程序产品。
背景技术
在现代的电子装置中,功率管理变得越来越重要。例如,依靠电池操作的装置要求 更多的计算强化特征,诸如播放视频片段。这样的计算强化特征需要更多的功率。但是,同 时存在对更长的待机和操作时间的要求。此外,由于环境的原因,没有不必要地消耗功率很重要。为了减少能量使用(即,功耗),在诸如集成电路(IC)的电子装置中,使用了动态 功率管理(DPM)。DPM是一种这样的技术动态地将输送至电子装置的功率调整到使其符合 使用该电子装置的应用程序所需的变化性能水平的电平。在应用程序正在使用电子装置时,该电子装置的工作负荷动态地改变。为了调整 输送至电子装置的功率,需要预测未来所需的功率量。由于更加精确地预测了电子装置的 未来功率需求,因此,可以节约更多的功率。一种针对在操作系统(OS)上运行应用程序的计算机进行功率控制的方式基于过 去在特定任务中所花费的处理器时钟周期的数量。在特定任务中花费的时钟周期的数量由 OS确定。问题在于当切换任务时或者当OS计时器滴答(tick)出现时,确定任务中所花费 的周期数量仅例如由一些OS相关事件触发。由于OS以软件运行,因此,不能更频繁地确定 任务中所花费的周期数量。结果,由OS产生的数据的分辨率太低而不能在时标上以比诸如 OS的软件程序所允许的粒度更细的粒度标识功耗的图案。

发明内容
现有技术的问题在于,用于电源控制的工作负荷监控太不精确。本发明的目的在于改进对供给电子装置的功率的控制。该目的通过根据本发明的功率管理器来实现。该功率管理器可操作用于在监控时 间周期期间监控硬件监控器。硬件监控器连接至电子装置。电子装置在操作使用期间具有 工作负荷。硬件监控器可操作用于指示电子装置的工作负荷。功率管理器可操作用于根据 该监控来控制供给电子装置的功率。当电子装置工作时,有时其工作负荷高,而有时其工作负荷低。如果可以对其工作 负荷进行更好的预测,则可以改进电子装置的功率管理。在这种情况下,可以在工作负荷低 时减少对电子装置的功率供给。为了预测电子装置的未来工作负荷,必须收集精确数据以作为预测的基础。可以 从硬件监控器获得这样的精确数据。通过使功率控制基于工作负荷的精确数据,实现了更好的电源控制。结果,将减小供给该装置的功率,从而节省功率。在装置依靠电池工作的情 况下,电池将更缓慢地耗尽。工作负载可以被监控的电子装置的实施例包括例如集成电路(IC)、或者诸如步进 电动机的电子机械装置。电子装置的实例还包括计算装置或者数据处理装置,诸如移动电 话中的视频处理单元等。具体地,可操作用于执行计算机程序(即,软件)的中央处理单元(CPU)是电子装 置。此外,当CPU执行应用程序(诸如,音乐应用程序或视频应用程序)时,CPU的工作负 荷有时会很高,而有时工作负荷会很低。工作负荷是在一个时间段内由电子装置执行的工作量的直接表示。例如,工作负 荷可以是一个时间段内生产周期的数量与周期总数的商。在操作期间,电子装置需要功率。该电子装置所需要的功率量取决于电子装置正 执行的操作。在正常操作下,改变供给该电子装置的功率仅影响该电子装置操作的速度。改 变供给该电子装置操作的功率本身不影响由该电子装置执行的操作。硬件监控器可操作用于以细粒度的分辨率指示电子装置的工作负荷。例如,对于 时钟控制的电子装置,分辨率可以以每个周期为单位。如果电子装置是CPU,则硬件监控器例如指示CPU当前是否正执行无操作(NOP) 指令,CPU是处于休眠模式还是空闲模式。CPU的一些模型可以通过中断(block)其输出缓 冲器来进入空闲模式。硬件监控器可以监控输出缓冲器的中断。硬件监控器的典型实例是所谓的硬件事件计数器,还称为硬件性能计数器,还称 为性能监控单元。硬件事件计数器典型地包括在处理器中,并且在现有技术中是已知的。大多 数现代处理器提供用于监控与应用程序和处理器的特定子单元的交互相关的性能事件 的硬件事件计数器。例如,参见IntelCorporation. Intel Architecture Software Developer' s Manual. Volume3 :System Programming Guide,2004 ;SGI.Topics In Irix Programming, Chapter 4 ;A.Singhal and A. J. Goldberg. Achitectural Support forPerformance Tuning :A Case Study on the SPARCcenter 2000.ACMSIGARCH Computer Architecture News, Proc.Fo the 21st AnnualInternational Symposium on Computer Architecture(ISCA 94),22(2), April 1994 ;L. Smolders. PowerPC Hardware Performance Monitoring. Technical report, AIX Performance, IBM Server Group, November 2001 ;L.Smolders. System and Kernel Thread Performance Monitor APIReference Guide. IBM, RS/6000 Divison,2001。 可以通过将状态机移动至某些状态来对功率进行控制。特别地,可以通过关掉空 闲的电子装置来控制功率。可以通过改变电源的传送来控制功率。还可以通过指示其他单元(例如,功率控 制器)减小或增加传送至电子装置的功率量来控制功率。在本发明的实际实施例中,功率管理器可操作用于通过控制连接至电子装置的时 钟线上的时钟频率来控制功率。在本发明的实际实施例中,功率管理器可操作用于通过控制电子装置的电源电压 来控制功率。
本发明在工作负荷实质上是周期性的情况下是特别有利的。如果工作负荷是周期性的,则简化了未来工作负荷的预测。对于周期性的工作负 荷,过去是对未来很好的一种指示。如果可以检测到应用程序是周期性的,或当前是周期性 的,则可以改善对工作负荷的预测。使用OS获得工作负荷数量所带来的问题在于,其仅以例如百分比给出CPU工作负 荷数量。功率管理器既不能使用该数量来确定新的高工作负荷周期何时开始,功率管理器 也不能确定工作负荷重复的频率或时间周期是多少。使用基于OS的数量来检测精确的时 间周期或精确的周期相位是不可能的。功率管理器可以如下进行操作检测周期性工作负荷的工作负荷频率,例如检测 在第一工作负荷周期与第二工作负荷周期之间经过的时间;检测周期性工作负荷中的工作 负荷相位,例如,找出周期性工作负荷中负荷开始的点。在本发明的优选实施例中,功率管理器可操作用于检测被监控的所指示的工作负 荷中的上升沿,并且根据所检测到的上升沿来对功率进行控制。通过以信号表明电子装置的工作负荷中的骤升(即,上升沿),可以检测到高工作 负荷周期的开始。为了检测边沿,边沿检测必须基于精确的数据。例如,如下检测以信号表明骤升由硬件监控器指示的值在预定的时间长度内上 升了至少预定百分比;硬件监控器的值在预定的时间长度内上升了至少预定量;硬件监控 器指示在某值之上的值的时间的分数在预定时间周期内增大。以信号表明骤升还可以通过首先计算硬件监控器的测量结果的运行平均值、其次 检测运行平均值的骤升来完成。在硬件监控器报告二进制值的情况下,后一种技术尤其有用。在本发明的实际实施例中,功率管理器可操作用于检测被监控的所指示的工作负 荷的下降沿;根据所检测到的下降沿来对功率进行控制。通过以信号表明电子装置的工作负荷中的骤降(即,下降沿),可以检测高工作负 荷的周期的结束。为了检测边沿,边沿检测必须基于精确的数据。在本发明的实际实施例中,功率管理器可操作用于检测被监控的所指示的工作负 荷中的另一上升沿;功率管理器可操作用于根据所述上升沿与所述另一上升沿之间的差来 预测未来边沿;根据所预测的未来边沿来对功率进行控制。当已确定了至少两个上升沿时,可以通过推断(extrapolating,外推)未来边沿 将何时出现来进行预测。例如,可以针对另一上升沿的时间加上该另一上升沿出现与所述 上升沿出现之间的时间差,来预测未来边沿。可以通过将供给功率的电平设置为在刚过去的边沿之后的时间间隔内所需的电 平,来根据所预测的未边沿对功率进行控制。在本发明的实际实施例中,功率管理器可操作用于检测被监控的所指示的工作负 荷中的另一下降沿;功率管理器可操作用于根据所述下降沿与所述另一下降沿之间的差来 预测未来边沿;根据所预测的未来边沿来对功率进行控制。 当已确定了至少两个下降沿时, 通过推断未来边沿将何时出现来进行预测。例如, 可以针对另一下降沿的时间加上该另一下降沿出现与所述下降沿出现之间的时间差来预 测未来边沿。
可以通过将供给功率的电平减小至在刚过去的下降沿之后的时间间隔内所需的 电平,来根据所预测的该未来边沿对功率进行控制。在本发明的优选实施例中,功率管理器可操作用于选择调节到所预测的未来边沿 附近的下一监控时间周期;功率管理器可操作用于在该下一监控时间周期期间对硬件监控 器进行监控。一旦功率管理器可以预测未来的下降沿或上升沿,功率管理器就可以决定停止进 行持续监控。通过选择下一监控时间周期(其中,所预测的边沿下降),功率管理器可以验 证其预测是否正确。下一监控时间周期不必包含紧随其后的预测边沿,而是功率管理器可 以在再次进行监控前跳过一个或多个预测边沿。时常进行测量可能对于校正边沿出现的偏 移是有益的。在本发明的实际实施例中,功率管理器可操作用于产生用于追踪硬件监控器的监 控轨迹;功率管理器可操作用于基于监控轨迹并相对于基准时间点来确定工作负荷的工作 负荷频率以及工作负荷相位;功率管理器可操作用于基于工作负荷频率和工作负荷相位预 测工作负荷;根据所预测的工作负荷来对功率进行控制。监控轨迹是由硬件监控器指示的值在时间周期内的历史的记录表示。功率管理器可以通过临时存储由硬件管理器产生的多个值来创建轨迹。还可以通 过例如检测边沿来针对周期性图案(pattern)对轨迹进行分析。这种周期性图案具有频 率,即,工作负荷频率。可以相对于基准点来确定高工作负荷的周期开始的点,即,工作负荷 相位。一旦已知高工作负荷的周期何时开始以及周期每隔多久重复一次,就可以预测未来 工作负荷。在本发明的实际实施例中,硬件监控器被集成在功率管理器中。根据本发明的电子系统包括根据本发明的功率管理器和在操作使用期间具有工 作负荷的电子装置;以及连接至电子装置并可操作用于指示电子装置的工作负荷的硬件监 控器。在根据本发明的系统的优选实施例中,电子系统被配置用于使工作负荷基本上是 周期性的。可以将根据本发明的电子系统容纳在电子移动数据处理装置中。存在电子移动数据处理装置的操作使用受其功率需求限制的问题。降低电子移动 数据处理装置的功耗是特别有利的。降低装置的功耗将给予该装置例如更长的待机时间和 /或更长的播放时间。电子移动数据处理装置的实施例包括移动电话、个人数字助理(PDA)、mp3播放 器、可移动视频播放装置、个人导航装置等。用于管理供给电子装置的功率的方法包括以下步骤在监控时间周期期间监控硬 件监控器;根据该监控来控制供给电子装置的功率。在用于管理供给电子装置的功率的方法的优选实施例中,以监控轨迹的形式存储 监控的表示。该方法还包括以下的其他步骤检测监控轨迹中的至少两个边沿;基于监控 轨迹并相对于基准时间点来确定工作负荷频率和工作相位;基于工作负荷频率和工作负荷 相位预测工作负荷。根据该预测执行控制。用于管理供给电子装置的功率的方法的优选实施例包括以下步骤预测未来边沿;选择调节到所预测的未来边沿附近的下一监控时间周期;在该下一监控时间周期期间 对硬件监控器进行监控。计算机程序产品包括用于执行根据本发明的方法的计算机代码。应该注意,Christos D. Antonopoulos 禾口 Dimitrios S. Nikolopoulos 的论文 "Using Hardware Event Counters for Continous,Online SystemOptimization :Lessons and Chanllenges”公开了一种用于使用硬件事件计数器来修改操作系统(OS)的调度程序 的方法。应该注意,通过引用结合于此的第4,823,292号美国专利“Dataprocessing apparatus with energy saving clocking device,,公开了一禾中数据处理设备,其包括具有 操作模式和停止模式的数据处理元件。可以通过在这两种模式之间进行切换来降低该装置 的能量消耗。第4,823,292号美国专利没有利用硬件监控器。


通过实例并参照附图来对本发明进行更详细地说明,在附图中

图1是示出根据本发明的电子系统的实施例的框图。图2是示出周期性应用程序的工作负荷轨迹的曲线图。图3是示出确定正确的工作负荷相位的重要性的曲线图。图4是示出功率管理器的实施例的框图。图5是示出根据本发明的电子系统的另一实施例的框图。图6是示出根据本发明的方法的流程图。在全部附图中,相同附图标记表示类似或对应的特征。附图标记列表100 电子系统102 电子装置104 硬件监控器106 功率管理器200 功率管理单元(PMU)202 工作负荷频率和工作负荷相位检测器204 工作负荷预测器206 工作负荷频率传送208 工作负荷相位传送210 工作负荷传送500 轨迹生成器502 功率管理器逻辑电路508 功率控制器510 动态电压和频率调节(DVFS)驱动器512 应用程序存储器1002 在监控时间周期期间检测硬件监控器(104)并以监控轨迹的形式进行存 储;
1004检测监控轨迹中的至少两个边沿;1006基于监控轨迹并相对于基准时间点来确定工作负荷频率和工作负荷相 位;1008基于工作负荷频率和工作负荷相位预测工作负荷;1010根据该预测控制供给电子装置的功率。
具体实施例方式尽管本发明能容许多种不同形式的实施例,但是附图中示出并且本文中将详细描 述一个或多个具体实施例,应该理解,本公开被认为是本发明的原理的示例,并不旨在将本 发明限制为所示出并描述的具体实施例。在图1中,示出了根据本发明的电子系统(100)的实施例的框图。该系统(100)包括电子装置(102)、硬件监控器(104)和功率管理器(106)。在该 实施 例中,电子装置(102)包括硬件监控器(104),尽管这不是必需的。硬件监控器(104)被配置为指示电子装置(102)的工作负荷。功率管理器(106) 被布置成能够经由连接对硬件监控器(104)进行读取。功率管理器(106)被布置成控制供 给电子装置(102)的功率。在操作期间,硬件监控器(104)指示表示电子装置(102)的工作负荷的值。例如, 硬件监控器(104)可以是一位寄存器,其指示电子装置(102)当前是活动的还是空闲的。功 率管理器(106)读取硬件监控器(104)的内容,并且利用其来预测电子装置(102)的未来 工作负荷。基于该装置(102)的未来工作负荷,功率管理器(106)决定电子装置(102)所 需要的功率量。例如,功率管理器(106)可以计算处理器按时完成工作负荷所需的时钟频 率;功率管理器(106)可以计算刚好足以维持时钟频率的电源电压。电子装置(102)具有周期性工作负荷。硬件监控器(104)连接至电子装置(102), 并且指示电子装置(102)的工作负荷。功率管理器(106)监控硬件监控器(104)。功率管 理器(106)对未来工作负荷进行预测,并且基于该预测,调整供给电子装置(102)的功率。功率管理器(106)通过检测边沿来进行工作负荷周期预测。功率管理器(106)使 其操作与所检测到的工作负荷周期同步。功率管理器(106)确定上升沿的开始、以及上升 沿的频率。理想地,还计算工作负荷周期的长度。功率管理器(106)不必连续地监控硬件监控器(104)。一旦功率管理器(106)已 预测到边沿,功率管理器(106)就将仅在所预测到的边沿出现时刻附近的时间间隔内进行 监控,以检查其预测,并且如果需要,进行校准(即,重新调节)。在有偏移的情况下,重新调 节会是必需的。可以使用专用硬件(诸如,被配置为执行控制和监控的电子电路)来构成功率管 理器(106),或者可以由使用专用软件控制的通用硬件来构成功率管理器(106),或者功率 管理器(106)可以包括专用硬件和通用硬件的结合。典型地,功率管理器(106)将通过中介(功率管理单元(200)(图1中未示出))来 控制功率,例如,通过将关于时钟频率和/或电源电压的信息发送至功率管理单元(200)。代替报告每个周期的工作负荷,硬件监控器(104)可以报告转化(combine)为单 个数量的短时间周期内的工作负荷,例如平均或总工作负荷。例如,硬件监控器(104)可以报告CPU在短时间周期内的活动周期的数量。如果所得到的由硬件监控器(104)给出的转 化值对于观察工作负荷的周期性给出了足够的分辨率,则时间周期较短。在 图2a中,是出了周期性应用程序的工作负荷轨迹的曲线图。该曲线图示出了对 于在嵌入式ARM9 CPU上运行的周期性应用程序(即,视频解码)的示例性工作负荷轨迹。为了利用变化的工作负荷(即,变化的每个周期所需的有效CPU周期的数量)来 预测周期性应用程序的处理器工作负荷,必须对当前周期的工作负荷进行正确测量。以足够的时间分辨率在软件或(例如)操作系统中在正确的时间帧(例如,一 个周期)期间测量该工作负荷是不可能的。当使用按照非常细的粒度测量CPU占用期 (occupation)的硬件事件寄存器或轨迹寄存器时,更精确的同步是可能的。在本发明中,通 过独立的观察器来测量应用程序工作负荷。理想地,测量的周期等于工作负载周期,并且测 量周期的开始与工作负荷周期的开始同步。对于非CPU绑定的应用程序(即,其不需要约100%的恒定CPU工作负荷),可以通 过以刚好足以按时执行所请求的计算的时钟频率和电压运行CPU来降低功耗。可以将CPU 工作负荷作为CPU忙于执行指令的时间的百分率(fraction)来计算,或者可选地,作为用 于计算的时钟周期的数量与在所限定的周期内可用的时钟周期的总数之比来计算。可以例如通过控制时钟频率和/或电压来控制供给CPU的功率。例如,可以通过 使用可由软件和/或由硬件控制的动态电压和频率调节(DVFS)来控制功率。对于周期性应用程序,如视频回放,可以通过观察并预测CPU的工作负荷来控制 供给CPU的功率。在诸如Linux的操作系统中,由OS测量CPU工作负荷。在Linux中,这是通过计 时器滴答中断来完成的在每次计时器滴答,典型地为每隔1、4或10毫秒(msec),使CPU中 断并对所中断的代码分类。代码类别是以下类型之一User、System、Nice或Idle。类型 “User”代表运行应用程序,System是指执行系统调用。类型“Nice”代表正在处理批量作 业。以及类型“Idle”是指CPU没有执行任何有用指令,例如,CPU可能停机。在每次计时 器滴答,将一个单位值与由对应类别计数器计数得到的值相加。为了确定在由几个计时器 滴答组成的某周期内的工作负荷,必须将在“USer”、“NiCe”和“System”中花费的滴答的总 和除以在该周期内的滴答的总数,以得到在该周期内的CPU工作负荷。典型地,计时器滴答 频率在IOOHz到1000Hz之间。由于与CPU速度相比,计时器滴答频率相当低,所以测量工 作负荷是在定时与值精确度之间的折衷,例如,在10个滴答期间进行测量则每10个计时器 滴答产生10%精确值;对于精确度,测量周期应该是若干100个计时器滴答,这意味着 远远比例如用于视频回放的帧速率长的100、250或1000msec的测量周期。结果,由操作系 统软件报告的这些工作负荷数量对于细粒度的功率控制而言是不够的。大多数现代微处理器配备有专用的片上硬件(例如硬件事件计数器),其可以监 控与处理器的特定子单元和应用程序的交互相关的性能事件。性能监控的结果被写入允许 分析CPU内核的各部分性能的寄存器。这些硬件事件计数器以比在软件中可能的精确度和/或采样分辨率大的精确度 和/或采样分辨率,对处理器工作负荷给出基于硬件的测量。这些计数器在约为几纳秒的 CPU时钟频域内进行操作,而不是在OS计时器滴答域内进行操作。由于工作负荷频率必 须小于CPU时钟频率,因此,可以将硬件监控器的采样频率保持足够高,以检测工作负荷周期。可以将寄存器编程为高度自治地进行操作,这给予了可以以更大的定时精确性来测量 处理器工作负荷、而不会对CPU造成显著的性能影响的优势。例如,Intel Pentium4处理器具有用于测量的44个轨迹(事件)寄存器,可以选 择其中的18个轨迹寄存器来提供实时性能数据。例如,寄存器可以监控高速缓存命中、转 移预测逻辑电路效率、和处理器非空闲的时间。处理器非空闲的时间是处理器工作负荷的 直接等同,并且以比操作系统可以达到的分辨率更高的时间分辨率测量该时间。与OS的毫 秒范围相比,硬件事件计数器的分辨率为大约几纳秒。CPU可以自治地将轨迹数据值输出至 主存储器,并且当某些事件(诸如,计数器溢出)发生时产生中断。在附图3中,示出了示出确定正确的工作负荷相位的重要性的曲线图。为了正确地预测CPU工作负荷,必须知道当前CPU工作负荷。对于精确的工作负 荷测量,需要应用程序的两种特征。第一特征关于工作负荷变化的频率,即,工作负荷频率。 代替工作负荷频率,可以使用代表工作负荷频率的值,例如,周期的长度。例如,视频回放应 用程序的工作负荷频率取决于帧速率。第二特征关于工作负荷的工作负荷相位,即,应用程 序的高工作负荷的重复周期的开始时间。例如,对于视频回放应用程序,工作负荷相位典型 地对应于视频帧的处理开始。可以通过观察CPU的工作负荷来推导出这些特征。为此,必须测量CPU工作负荷。

图3的曲线图是周期性应用程序的工作负荷曲线图的详情。在试图控制功率(例 如,通过利用分立的独立功率管理器(106)来预测应用程序的工作负荷)中所涉及的问题 在于,预先不知道应用程序工作负荷的工作负荷频率(即,应用程序的周期性的频率)和工 作相位(其是周期的开始时间)。即使找到了工作负荷频率,检测工作负荷相位对于工作负荷的正确测量而言也是 重要的。图3中所示的曲线图示出了测量周期与工作负荷周期同步的重要性。首先,在持续了 25个周期(从5到30)的正确周期期间(即,在‘A’与‘B’之间), 测量工作负荷。所测量出的工作负荷值为10个周期,或者10/25*100%= 40%。接下来,假设测量与工作负荷周期不严格地同步。例如,在也持续25个周期(从 13到38)的‘C’和‘D’之间进行测量。这导致工作负荷的不正确的值,S卩,8或8/25*100% =32%,其比较小。使用从错误周期获得的测量结果,导致向CPU供给太小的功率。结果,系统(100) 可能发生故障。通过足够快速地检测工作负荷的激增,工作负荷预测器(204)可以使其对工作负 荷进行的预测与应用程序的实际工作负荷周期同步。在图4中,示出了功率管理器(106)的实施例的框图。功率管理器(106)包括工作频率和工作相位检测器(202)以及工作负荷预测器 (204)。工作负荷频率和工作负荷相位检测器(202)连接至硬件监控器(104),以监控硬件 监控器(104)。经由工作负荷传送(210)将代表工作负荷的信号从硬件监控器(104)传送 至检测器(202)。检测器(202)估计工作负荷的工作负荷频率和工作负荷相位。如果检测 器(202)发现不能充分预测工作负荷,则检测器(202)禁止通过功率管理器(106)对功率 进行控制。工作负荷预测器(204)还可以经由传送(210)使用经由硬件监控器(104)获得的值。检测器(202)经由工作负荷频率传送连接至工作负荷预测器(204)。检测器(202) 经由工作负荷相位传送(208)连接至工作负荷预测器(204)。工作负荷预测器(204)被配 置用于基于工作负荷频率和工作负荷相位来预测电子装置(102)的工作负荷。工作负荷预测器(204)基于其预测来确定电子装置(102)所需要的功率。工作负荷预测器(204)设置电源电压的频率和电平,并且将这些值转发至功率管理单元(PMU) (200)。该单元(200)被配置用于根据由工作负荷预测器(204)转发至其的信息来控制供 给电子装置(102)的功率。功率管理单元(PMU) (200)基于低压差线性(LDO)稳压器、DC/DC电感稳压器、或任 意其他适当的稳压器来设置电源电压。该单元(200)还包括时钟产生单元(CGU)。CGU基 于PLL、DDS或分压器方法、或者其他适合的时钟产生方法来产生时钟。为了使工作负荷预测器(204)独立于引起工作负荷的应用程序,并且使工作负荷 测量周期等于工作负荷周期并使这两个周期同相,使工作负荷频率和工作负荷相位检测作 为预测时的中间步骤是有利的。可以通过检测硬件监控器(104)所报告的工作负荷值中的边沿来完成工作负荷 频率和工作负荷相位检测。这取决于包括硬件监控器(104)的工作负荷监控机构的细粒度 (即,高频采样)。可以使用例如用于以高分辨率测量工作负荷的硬件性能计数器来获得细 粒度。细粒度对于精确确定工作负荷周期、工作负荷频率计算、以及检测工作负荷相位 而言是重要的。工作负荷相位对于使测量周期与工作负荷周期同步而言也是重要的。硬件监控器(104)对工作负荷进行采样的频率应该比工作负荷周期的频率高,优 选地,高很多。具体地,工作负荷的采样应该频繁得足以检测所测量出的工作负荷的上升 沿。可以使用任意适当的边沿检测机构来对工作负荷周期、工作负荷频率和工作负荷 相位进行确定。理想地,通过同步机构使工作负荷测量周期与工作负荷周期同步。可以软件应用程序实现功率管理器(106)。功率管理器(106)可以并行于以及独 立于装置(102)上的其他应用程序而运行。在附图5中,示出了根据本发明的电子系统(100)的另一实施例的框图。系统(100)包括电子装置(102)。电子装置(102)包括硬件监控器(104)。该装 置(102)连接至应用程序存储器(512)。电子装置(102)可操作用于执行存在于应用程序 存储器(512)中的应用程序(即,软件)。该系统(100)包括功率管理器(106)。功率管理 器(106)部分以功率管理器逻辑电路(502)实现以及部分以轨迹生成器(500)实现。功率管理器逻辑电路(502)包括工作负荷频率和工作负荷相位检测器(202)、工 作负荷预测器(204)和功率控制器(508)。轨迹生成器(500)连接至硬件监控器(104)。轨迹生成器(500)被配置用于将硬 件监控器(104)所报告的值以轨迹的形式传送至检测器(202)。轨迹可以表示为一组值。 轨迹生成器(500)可以包括缓冲器,诸如先进先出(FIFO)缓冲器或循环缓冲器。可以通过 使缓冲器的内容可用于检测器(202)和/或预测器(204)来将轨迹传送至检测器(202)和/或预测器(204)。检测器(202)基于在轨迹中检测到的边沿来确定工作负荷频率和工作负荷相位。 将工作负荷频率和工作负荷相位传送至工作负荷预测器(204)。工作负荷预测器(204)预 测电子装置(102)的未来工作负荷。向功率控制器(508)报告所预测的工作负荷。功率 控制器(508)通过确定时钟频率和电源电压电平,来确定在下一周期内需要供给电子装置 (102)的功率量。时钟频率和电源电压被转发至动态电压和频率调节(DVFS)驱动器(510)。 该驱动器(510)能够设置功率管理单元(PMU) (200)中的时钟频率和电源电压。该单元 (200)能够设置电子装置(102)的时钟频率和电源电压。在该实施例中,驱动器(510)是可选的,功率控制器(508)也可以直接设置功率管 理单元(PMU) (200)中的时钟频率和电源电压。该实施例尤其适合于至少部分地以功率逻辑软实现。具体地,可以以软件实现功 率管理逻辑电路(502)及其部件。该软件可以在CPU上运行。电子装置(102)可以是CPU, 在其他任务之中该CPU可以运行功率逻辑软件。功率逻辑软件还可以运行在独立于电子装 置(102)的CPU上。功率逻辑软件可以存在于诸如应用程序存储器(512)的存储器中,或 存在于不同的存储器中。可选地,可以硬件(诸如,以例如CMOS电路的IC)、或任意其他适合的电子电路来 实现功率管理器逻辑电路(502)。电子系统(100)的实例是具有运行Linux的Pentium 4处理器的机器。轨迹生成 器(500)对 CPU(102)的事件和/或轨迹寄存器(104)进行读取,并且生成轨迹。工作负荷 频率和工作负荷相位检测器(202)检测工作负荷中的上升沿,如图3中的边沿A和B。优选 地,将轨迹寄存器设置成例如通过定期地(on a regular basis)监控轨迹寄存器‘global_ power.events'中的轨迹,来测量处理器占用。对于该监控,可以使用应用程序perfmon2, 其是用于Linux的基于硬件的性能监控接口。功率管理器(106)被配置为最初与所检测到的工作负荷边沿同步。当功率管理器 (106)与所检测到的工作负荷边沿同步时,功率管理器(106)可以在再次测量前跳过一个 或多个工作负荷周期。所测量出的工作负荷值被转发至边沿检测器。当都以硬件实现硬件监控器(104) 和边沿检测器(202)这两者时,边沿检测器(202)可以根据所检测到的上升沿来使CPU中 断。然后,预测器(204)可以精确地确定工作负荷周期何时开始。在这种情况下,可以以软 件实现预测器(204)。这可以用于同步第一工作负荷测量的工作负荷相位。工作负荷周期 持续时间可以用于同步测量周期。还可以时常进行重复以避免测量周期与工作负荷周期之 间的偏移。另一方面,可以在每个工作负荷周期来同步工作负荷相位。后者在工作负荷周 期高波动的情况下尤其有用。本发明可应用于使用至少偶尔运行周期性应用程序或者至少运行可预测的应用 程序的微处理器的任何系统(100)中。在图6中,示出了根据本发明的方法的流程图。该方法包括以下步骤。在第一步骤(1002)中,硬件监控器(104)在监控时间周期期间进行监控,并且以 监控轨迹的形式存储结果。在下一步骤(1004)中,检测监控轨迹中的至少两个边沿。在下 一步骤(1006)中,相对于基准时间点并基于监控轨迹来检测工作负荷频率和工作负荷相位。在下一步骤(1008)中,基于工作负荷频率和工作负荷相位预测工作负荷。在下一步骤 (1010)中,根据该预测控制供给电子装置(102)的功率。可以使用执行以上以流程图形式广义描述的、可以存储在任何适当的电子存储介 质上的编程指令的可编程处理器来实现如本文实施例中所描述的本发明。然而,本领域的 技术人员应理解,在不背离本发明的情况下,可以任何数量的变化以及多种适当的编程语 言来实现上述处理。例如,在不背离本发明的情况下,通常可以改变所执行的某些操作的顺 序,可以添加其他操作或者可以删除一些操作。在不背离本发明的情况下,可以添加捕错、 增强和变化。这样的变化是可预期并被看作是等同的。可以使用特定用途硬件和/或专用处理器来实现本发明。类似地,可以使用通用 计算机、基于微处理器的计算机、数字信号处理器、微控制器、专用处理器、定制电路、ASIC 和/或专用硬接线逻辑电路来构造本发明的可选等同实施例。本领域的技术人员应理解,在不背离本发明的情况下,可以使用磁盘存储器以及 其他形式的存储器(诸如,只读存储器(ROM)装置、随机存取存储器(RAM)装置、光学存储 元件、磁性存储元件、磁光存储元件、闪存和/或其他等他存储技术)来实现用于实施上述 实施例的程序步骤和关联数据。应该认为这样的可选存储装置是等同的。 尽管结合具体实施例描述了本发明,但是显然,根据前面的描述,多种替换、修改、 置换和变化对于本领域的技术人员是显而易见的。因此,本发明旨在包括落入所附权利要 求范围内的所有这种替换、修改和变化。
权利要求
1.一种功率管理器(106),可操作用于在监控时间周期期间监控硬件监控器(104); 所述硬件监控器(104)连接至电子装置(102);所述电子装置(102)在操作使用期间具有工作负荷;所述硬件监控器可操作用于指示所述电子装置(102)的工作负荷;所述功率管理器可操作用于根据所述监控来控制供给所述电子装置(102)的功率。
2.根据权利要求1所述的功率管理器(106),其中,所述功率管理器(106)可操作用于检测所监控的所指示的工作负荷中的上升沿;以及 根据所检测到的上升沿来控制所述功率。
3.根据前述权利要求中任一项所述的功率管理器(106),其中,所述功率管理器(106)可操作用于检测所监控的所指示的工作负荷中的下降沿;以及 根据所检测到的下降沿来控制所述功率。
4.根据权利要求2所述的功率管理器(106),其中所述功率管理器(106)可操作用于检测所监控的所指示的工作负荷中的另一上升沿; 所述功率管理器(106)可操作用于根据所述上升沿与所述另一上升沿之间的时间差 来预测未来边沿;以及根据所预测的未来边沿来控制所述功率。
5.根据权利要求3所述的功率管理器(106),其中所述功率管理器(106)可操作用于检测所监控的所指示的工作负荷中的另一下降沿; 所述功率管理器(106)可操作用于根据所述下降沿与所述另一下降沿之间的时间差 来预测所述未来边沿;以及根据所预测的未来边沿来控制所述功率。
6.根据权利要求4或5所述的功率管理器(106),其中所述功率管理器(106)可操作用于选择调节到所预测的未来边沿附近的下一监控时 间周期;以及所述功率管理器(106)可操作用于在所述下一监控时间周期期间监控所述硬件监控 器(104)。
7.根据权利要求1所述的功率管理器(106),其中所述功率管理器(106)可操作用于产生用于追踪所述硬件监控器(104)的监控轨迹; 所述功率管理器(106)可操作用于基于所述监控轨迹并相对于基准时间点来确定工 作负荷频率和工作负荷相位;所述功率管理器(106)可操作用于基于所述工作负荷频率和所述工作负荷相位来预 测所述工作负荷;以及根据所预测的工作负荷来控制所述功率。
8.根据前述权利要求中任一项所述的功率管理器(106),其中,所述硬件监控器集成 在所述功率管理器(106)中。
9.一种电子系统(100),其包括根据前述权利要求中任一项所述的功率管理器(106); 所述系统还包括电子装置(102),其在操作使用期间具有工作负荷;以及硬件监控器(104),其连接至所述电子装置,并且可操作用于指示所述电子装置(102)的工作负荷。
10.根据权利要求9所述的电子系统(100),其被配置用于使所述工作负荷基本上是周 期性的。
11.根据权利要求8、9和10中任一项所述的电子系统(100),其容纳于电子移动数据处理装置中。
12.一种用于管理供给电子装置的功率的方法,包括以下步骤 在监控时间周期期间监控硬件监控器(104);以及根据所述监控来控制供给所述电子装置的功率。
13.根据权利要求12所述的方法,其中,以监控轨迹的形式来存储所述监控的表示;所 述方法还包括以下附加步骤检测所述监控轨迹中的至少两个边沿;基于所述监控轨迹并相对于基准时间点来确定工作负荷频率和工作负荷相位; 基于所述工作负荷频率和所述工作负荷相位来预测所述工作负荷,其中,根据所述预 测来进行所述控制。
14.根据权利要求12或13所述的方法,包括以下步骤 预测未来边沿;选择调节到所预测的未来边沿附近的下一监控时间周期; 在所述下一监控时间周期期间监控所述硬件监控器(104)。
15.一种计算机程序产品,包括用于执行根据权利要求12、13和14中任一项所述的方 法的步骤的计算机代码。
全文摘要
本发明提供了一种功率管理器(106)和用于管理供给电子装置的功率的方法。此外,提供了一种管理供给电子装置的功率的系统。功率管理器(106)可操作用于在监控周期期间监控硬件监控器(104)。硬件监控器(104)连接至电子装置(102)。电子装置(102)在操作使用期间具有工作负荷。硬件监控器可操作用于指示电子装置(102)的工作负荷。功率管理器可操作用于根据该监控来控制供给电子装置(102)的功率。
文档编号G06F1/32GK102084318SQ200980126357
公开日2011年6月1日 申请日期2009年5月12日 优先权日2008年5月13日
发明者亚历山大·米卢蒂诺维奇, 伊丽莎白·弗朗西斯卡·玛丽亚·斯特芬斯, 凯斯·赫拉德·威廉·古森斯, 安卡·玛丽安娜·莫尔诺什, 盖尔·克斯滕, 阿图尔·塔德乌什·伯查德 申请人:维尔基逻辑公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1