基于系统级功率管理的性能分析的制作方法

文档序号:6570577阅读:160来源:国知局
专利名称:基于系统级功率管理的性能分析的制作方法
基于系统级功率管理的性能分析
本发明涉及包含单个或多个处理器的片上系统实施方式中的动态自
适应功率(power)管理,更具体地,涉及利用有助于准确判断高度数据 相关的多媒体应用需求的运行时间性能计数器,优化系统级功耗。
因为许多现代设备具有严格的热量和电池电量限制,所以需要节电技 术。处理器时钟频率及其操作电压很大程度上确定了其功耗和热量产生。 在电池供电的移动/手持设备中使用的微处理器对电源尤其敏感,因而尝试 使用仍可以产生必要性能的最低供电电压。
在便携式平台上日益复杂的多媒体应用程序需要更大的计算能力和 操作功率。现在用于使功率需求最小化的特殊硬件电路仍不能满足要求。 在另一个方面,仅通过观察应用程序、SoC、或调度以及映射算法,不能 预测针对不同SoC组件的最优功率电平。因而需要动态地遵循软件应用程 序的需求以及运行时间中系统硬件结构的主动功率管理方案。
在准确度方面,尤其是多媒体应用程序中,使性能估计比较困难的原 因在于这些多媒体应用程序是数据相关(data dependent)的。需要对新的 应用程序进行与预安装以及预特征化的程序一样有效地电源管理。 一些设 备具有不断引入新应用程序的下载能力。不能将静态定义的电源管理通用 方式应用到新的应用程序,因为它们在行为上不同,并且不能有效地连接 所有不同的映射以及调度隐含操作(implication)。以及在任何应用程序中,
映射和/或调度可以是动态的。
现有技术、基于状态的应用-行为预测策略不是十分的准确。多媒体应 用程序性能行为是数据相关的。使用应用程序按钮来定义电源电平的基于 路径的策略不能遵循应用程序的数据相关行为。也不提供针对功率最优化 的完全系统视图。需要应用程序性能需求的运行时间摘录(nm-time extmction)。这可以通过使用硬件性能计数器来实现。这有助于测量准确 的性能以及测量应用程序实际功率需求。
传统的性能监视使用当执行程序执行时其可以反馈的某种硬件计数 器或寄存器。累积的计数指示程序活动,以及它们每单位时间增加的计数 可以指示程序在其上执行的硬件/资源的程序利用。当处理器的执行速率可 以改变时,知道处理器是否运行太快和费电、或处理器是否运行太慢和过 速十分重要。
硬件性能计数器可以监视诸如处理器、存储器以及网络的系统物理组 件的利用。当与应用程序一起使用时,性能计数器可以捕获关于该应用程 序的性能相关的数据。捕获所公布的计数器信息,并且可以将该信息与可 接受的性能标准相比较。硬件性能计数器设置为许多现代处理器和核心
(core)的内在部分。
针对每个工作电压,基于静态CMOS的处理器具有相对应的最大工作 频率。降低频率将按比例地减少功耗。但是减少电压将按平方减少功耗, 因为AP =乎。降低工作频率和电源电压将导致功耗以立方减少。
动态频率调整(DFS)以及动态电压调整(DVS)是可以利用可编程 的时钟生成器以及可编程的、可变电压DC/DC转换器实现的传统技术。
许多现有技术商业处理器使用DVS来保存功率,例如,Transmeta Crusoe,因特尔XScale,以及飞利浦Trimedia TM3260处理器。飞利浦 NEXPERIAPNX1500使用V2F动态功率管理,使设备能够通过提供改变 频率和核心电压的能力来保存功率。当使用外部的、可编程的核心电压调 整器配置PNX1500时,其软件可编程时钟使CPU能够以较低的速度运行, 从而减少较少的耗周期任务期间的功耗。例如,对MP3音频流解码需要 少于30MHz的CPU周期。当服务于较低的周期需求时,可以通过调整时 钟速度以及外部电压保存功率。
需要开发在设备中动态采用DFS和DVS、以及系统级功率管理技术 的智能。ARM智能能量管理器(IEM)的目标是相同的,但只限于处理 器核心。Flautner等在2005年5月5日公布的美国专利申请 US2005/0097228 Al中描述了该思想。然而,因为缺少静态分析阶段,所 以他们的方法不具有良好的开端。许多多媒体应用程序具有不稳定的初始 阶段,并且缘于此,正M方法将需要很长时间来进行调整。
将所监视的性能数据用于电源管理的动态电压和频率调整控制。
Murthi Nanja描述了在2005年6月16日公布的美国专利申请 US2005/0132238 Al '(Performance monitoring based dynamic voltage and frequency scaling"。典型地,在传统操作系统中使用的动态技术使用基于 时间间隔的调度器来预测将来的工作量。这种方案使用30-100毫秒的统一
时间间隔来间检查前一时间间隔的处理器使用。然后将所收集的数据用于 设置下一时间间隔的电压电平。基于时间间隔的调度算法简单,并且容易 实现,但是它们假设将来是过去的重复。所以当应用程序工作量改变时, 它们不能准确地预测将来的工作量,正如针对数据相关的事件的情况。基 于时间间隔的调度器做出与将来的工作量不相关的预测。不存在使利用因 素准确地预测将来工作量的机制。因而,基于执行应用程序的实际使用模 型,基于时间间隔的调度器不能在运行时间调整处理器的电压和频率。
因而,功率管理的解决方案必须是动态的、自适应的、以及准确的。 需要动态的和自适应的方法,用于基于SoC上的多媒体应用程序的动态性 能需求确定最优功率需求,以及使用动态预测的性能需求,集成自适应功 率管理器。
在一个示例性实施例中,用于执行数据相关的应用程序的、使用动态
自适应功率管理的多处理器片上系统包括策略性放置的性能计数器,用 于收集任务的实际运行时间性能。功率管理器对正被监视的各种系统资源
采用DVS、 DFS、超时(time-out)、以及其它控制之一。当在运行时间期 间任务执行时,分析任务和所调度的资源之间的匹配的质量。更精确的性 能需求以及相应的功率电平,以及由此的控制和调度然后可用并存储在性 能需求表中。因此,功率管理是自适应的和动态的。在静态分析阶段,将 可以针对其性能需求而预特征化的应用程序和任务简档化,并预加载为初 始起点,用于运行时间内的校正。
本发明的优点是提供一种通用方法,足以捕获针对用于执行数据相关 的应用程序实际的任何SoC平台的系统级性能需求,以及最优地管理系统 级功耗。
本发明的上述总结不意在代表本发明的每个公开的实施例,或每个方 面。在接下来的图示以及详细描述中提供其它方面以及示例性实施例。 结合附图,本发明更易于从以下对本发明各种实施例的描述中得以理
解,其中


图1是使用分布在多处理器系统的片上系统实施方式的性能计数器的 本发明的自适应动态功率管理实施例的功能框图;以及
图2是使用性能计数器在多处理器系统的片上系统实施方式中提供自
适应动态功率管理的方法实施例的流程图。
具体实施例方式
尽管本发明可以有各种修改和可选形式,但是在附图中通过示例示出 了其细节并详细描述。然而,可以理解,该意图不将本发明限于所描述的 特定实施例。相反,本发明覆盖落入所附权利要求所限定的本发明的精神 和范围内所有的修改、等同物和可选项。
图1是本发明的自适应动态功率管理系统实施例,并于此由一般参考
号100来指示。系统100包括具有多处理器系统的片上系统(SoC) 102, 其中以第一处理器核心(CPUO 104、第二处理器核心(CPU2) 106、外 围核心108、内部系统总线110、以及存储器112实现该多处理器系统。 通过收集来自策略性放置的性能计数器114、 116、 118和120的统计量, 测量系统级处的SoC 102的运行时间性能。可以实现这种性能计数器来在 预加载数量递减到零之后产生中断。可以通过执行任务来控制每次递减, 并且任务可以将计数递减至中断的迅速程度是运行时间内真实硬件性能
、、、^以在多个公开中发现实现性能计数器的细节。所以这种构造细节不 需要包括于此。Gilberto Contreras等在2005年8月8-10日CA, San Diego 的ISLPED ,05所发表的论文中,描述了 "Power Prediction for Intel XScale Processors Using Performance Monitoring Unit Events" 。 Flautner等在2005 年5月5日公开的美国专利申请US 2005/0097228 Al中;MurthiNanja在 2005年6月16日公开的美国专利申请US 2005/0132238 Al中;Morrie Altmejd等在2005年5月17日发表的美国专利US 6,895,520 Bl中;David Albonesi在2001年3月20日发表的美国专利US 6,205,537 Bl中描述了性 能计数器以及在市场上包括该性能计数器的各种商业处理器的使用。将这 些材料一并引入作为参考。本发明实施例的独特方面是在运行时间内使用
了策略性放置在多处理器系统中的多个性能计数器,以自适应地以及动态 地管理系统级的功率。这里所引的公开只是在于此描述的独特组合中所使 用的描述组成部分。
再参照图l,操作系统(OS) 122从存储器112中执行,并且可以主 控包括一系列任务(每个都具有它们自己的性能需求)的应用软件。如在 流动多媒体应用程序中,这种需求是高度数据相关的。
已经将一些应用程序和它们的任务简档化(profiled),以及可以将关 于它们的性能需求124的在先数据传送到资源映射表126中。在这里,将 各个任务性能需求进行制表,功率电平(power level)和处理器核心104 和106可以根据该表供给这些需求。实时地将这种调度128转发至功率管 理器130,用于功率控制DVS 132、 DFS 134、超时136等的运行时间动态 适配。这些功率控制可以以使整体系统级功率效率最大化的组合方式来单 独地以及独立地影响CPU1 104、 CPU 2 106、外设108以及总线110。虽 然这样针对多处理器系统任何一个功率可控部分不必都是最有效的,但是 它将对整个SoC 102是最有效的。
在应用程序及其任务的运行时间执行期间,性能计数器114、 116、 118、 以及120通过运行时间简述器(profiler) 140提供关于各种任务执行统计 的信息。性能预测模块144标识执行阶段,并且计算松弛时间测量142, 从而更新在资源映射表126中所需的性能电平。该过程产生新性能需求列 表146。这些甩于填入表126中,并且与可用电压频率电平相匹配。
优选地,图1中所描述的全部完全位于SoC 102中。图1剖析了一些 嵌入的部分,从而在这里更好地描述它们。
图2代表使用性能计数器在多处理器系统的片上系统实施方式中提供 自适应动态功率管理的本发明的功率管理方法实施例。在这里,通过一般 参考号200来指示这种方法。该方法200利用可以是包括具有变化的性能 需求的任务的流动多媒体应用程序的软件应用程序202进行操作。软件应 用程序202的性质在于这些任务先前可以是未知以及未特征化的,并且只 有当在调度这些任务的情况下通过分配的处理器核心实际执行这些任务 时,才可以说明它们确切的性能需求。有时性能需求将很大程度上依据正 在处理的数据,所以预测很困难。
利用针对若干程序计数器(PC)的预加载,将任务列表204发送到过
程206,其中应用程序和/或使用情况己知。这启动了静态分析阶段。过程 208针对每个任务计算松弛时间。这种松弛时间指示使用DVS、 DFS控制 可以使处理器核心慢下多少以节约功率,并仍能完成工作。处理器210以 可选最优功率电平将应用程序/任务需求映射到可用处理器核心。将初始表 值212预加载至资源需求表214,该资源需求表214也具有每个核心可以 运行的各种电压电平的详情,以及各种核心的当前运行电压电平。
这种资源需求表214将应用程序列表中的任务需求映射到可以通过多 处理器系统处理器核心获得的最优功率电平。静态分析阶段使表214初始 化。调度器将确切地决定将特定任务发送到哪一个处理器核心。在运行时 间内,资源需求表214将以更精确的任务性能需求进行动态地更新。将任 务列表216以软件应用程序202需要它们由任何处理器核心资源执行的顺 序发送到调度器218。这种调度器218参考资源需求表214以观察该任务 适合何种功率电平。调度器可以调度已经以适合的功率电平工作的处理器 核心,或它可以调用过程220动态地给所调度的处理器核心发出自适应功 率管理器控制,来改变电压电平/频率级。加载下一个任务222,以及过程 224在所选的处理器核心上执行所调度的任务。
在执行期间,过程228从策略性放置在SoC中的几个点处的性能计数 器处收集统计量。这种性能计数器可以预加载将在零计数处产生中断的倒 计数值。这种事件可以与系统时间相比较,来测量任务的进行中性能,以 及调度器218是否做出了精确的功率管理分配。过程230实时地提取在运 行时间内实际出现的动态性能,以及将数据更新232载入表214中。如果 这次有必要,或者针对下次任务执行时,过程218和220可以校正功率管 理器控制。
性能计数器提供关于系统或应用程序的某一性能方面的单一度量,例 如,过程中活跃线程数或在执行指示的过程中过程的线程所用的逝去时间 的百分比、或任务的上下文转换数量、或任务激活数量等。可以将性能计 数器组织并分组为各种性能计数器类别。例如,处理器类别包括与诸如处 理器时间、空闲时间、中断时间之类的处理器操作相关的所有计数器。 Windows OS提供许多可以编程检索或使用性能监视器显示的预定性能计
数器。使用这些性能计数器来件事操作系统资源的使用。典型地,传统实 施方式只配备该系统的一部分(例如处理器)。在这里,系统级功率管理 基于应用程序的性能需求,用于在系统级优化整体功耗。
性能分析和动态功率管理在这里结合,以获得有效的功率管理方案。 性能计数器处理与工作量相关的应用程序,以及帮助适配于在SoC上运行 的任何新的应用程序。在最优功率策略模型的初始训练之后,针对整个系
统收集功率测量,以及将信息反馈回功率策略模型。与ARMIEM所示例 的OS所获得的执行的历史观察相比较,这样使用硬件性能计数器导致了 更精确的预测。本发明的方法足以通用于获取任何平台的系统级性能需 求。
用于将流应用程序特征化的实验验证了可以以变化的工作量来标识 多处理器平台上多媒体应用程序的执行阶段以及使用动态调度。在应用程 序在系统上执行的期间,在初始、稳定和最终阶段收集针对执行次数、激 活次数的性能数量,以及上下文转换数量。 一旦将这三个阶段特征化,则 有效地使用功率管理技术来使系统级功耗最小化。
本功率最优化方法包括静态和动态分析部分。针对功率最优化的动态 电压调整需要获知松弛时间,即,任务的当前执行时间和相对应的任务最 终期限之差。在静态分析期间可以确定任务最终期限。不能精确预测当前 执行时间。所以在这里,它基于从硬件性能计数器收集数据的动态预测模 型。这样确定应用程序的实际任务执行阶段。
静态分析使用具有针对诸如任务最终期限的实时需求的参数的高级 分析模型。在设计对间完成系统的行为以及可以在运行时间之前分析的性 能参数。
在运行期间,利用多个性能计数器监视执行周期、上下文转换(context switch)改变以及激活次数。执行周期计数测量了应用程序的执行需求。 激活次数和上下文转换数据性能计数限定了与这些活动相关联的开销。如 果任务在短时间内做出太多的上下文转换,则尝试使用电压调整是没有优 势的,因为转换本身使处理器空闲少量的时间。典型地,改变电源电压需 要100-200毫秒用于在之后稳定。
使用性能计数器,预测模型144估计应用程序任务的动态性能,并且
将适合的功率需求分配给应用程序任务。功率管理器130动态地使用该信 息用于运行时间功率管理。功率管理随意地适配于不同的输入数据和新应 用程序,同时满足性能需求。
静态分析收集针对已知的应用程序和使用情况的性能计数器。使用这 些数字的离线分析来寻找松弛时间,即,应用程序的性能需求和处理器上 应用程序的实际计算时间之间的时间差。资源需求和电压电平映射表将应 用程序需求映射到最优功率电平。电压管理器使用该表在应用程序的各种阶段动态地应用诸如DVS、 DFS、超时等的适合的功率策略,用于最优的系统级功耗。静态分析是针对功率管理的起始点,因为它将已知数据集的 基准应用程序简档化。
通过将动态分析嵌入SoC 102,针对功率管理新的使用情况、以及甚 至全新的应用程序。在动态分析阶段,利用统计性能预测模型,捕获从应 用程序的执行阶段或性能需求提取的动态行为。动态预测需要运行时间简 档化能力来从硬件性能计数器中收集数字并进行分析。预测模型的输出用 于更新列表,该列表映射在运行时间内的需求比最优功率电平。功率管理 器使用该表有效地应用功率管理策略。
可以在系统中的多个点处集成功率管理。可以在硬件级、固件级、用 户级、或应用程序级上结合功率管理。在硬件级的电源管理不能看到或使 用应用程序的动态行为需求。系统的全球状态在硬件级未知。用户不知道 组件特性,并且不能做出针对精确电源管理所需的经常的决定。在不知道 应用程序的动态行为的情况下,必须使用针对功率管理的应用程序级控 制。必须在编译时间或设计时间内插入这种控制。在运行时间内,当针对 应用程序控制太晚时,应用程序的行为将会是数据相关的。针对在相同平 台上运行的多个应用程序,在每个应用程序中的各个功率控制在系统级不 能最优化。只有每个构成应用程序的控制流可以进行功率最优化。
在功率管理中的重要机会在于应用程序特定性能需求。因而,需要应
用程序行为的捕获以及性能的预测。本发明解决了捕获性能需求以及预测 应用程序的性能的问题,用于使系统级功率最优化。在OS的帮助下,系 统动态适配功率管理考虑了硬件和应用程序二者。
尽管结合几个特定示例性实施例描述了本发明,但是本领域技术人员
将承认可以在不偏离下列所附权利要求所限定的本发明的精神和范围内 做出许多变化。
权利要求
1. 一种多处理器片上系统中的动态自适应功率管理的方法,包括根据任务的性能需求以及在使用功率管理控制的多处理器系统中可用的资源功率电平、以及不同核心的各种工作电压和核心的当前运行电压电平,构建将应用程序202中的任务204制成表的资源需求表214;在静态阶段,将资源需求上载到所述表214中;在动态阶段,从多个策略性放置的性能计数器收集信息228,提取动态性能需求230,以及更新所述表中的相应条目232;参考所述表和使用功率管理器来给针对相应任务而调度的系统资源设定相对应的功率电平。
2. 如权利要求1所述的方法,其中所述参考所述表和使用功率管理 器包括选择在所需功率电平上工作的核心之一,或使用分别独立地应用于所述系统资源之一的DVS、 DFS和超时中的至少一个。
3. 如权利要求l所述的方法,其中所述从策略性放置的性能计数器 收集信息228包括将性能计数器与每个处理器核心、每个外设、以及内部系统总线相关联,以提供性能数据。
4. 如权利要求l所述的方法,其中所述将资源需求214上载到所述表214包括使得所述性能计数器发出中断,并针对已知的应用程序和使用预加载所述性能计数器206,并且计算208每个应用程序和使用的松 弛时间来预估计资源需求。
5. —种使用动态自适应功率管理的多处理器片上系统(SoC) 102, 用于数据相关的应用程序的执行,其特征在于多个性能计数器114、 116、 118、 120,其中各个性能计数器114、 116、 118、 120放置在以片上系统 102实现的多处理器系统的每个处理器114、 116、每个外设108、以及互 连内部系统总线110中;资源需求表126,用于映射在应用程序中的任务 的所调度资源所需的性能等级;功率管理器130,用于控制针对与性能计 数器114、 116、 118、 120中的每一个相关联的相应系统资源的DVS 132、 DFS 134以及超时136中的至少一个,并在运行时间内,为了适合的功率 管理设置而参考资源需求表;静态进程,用于使用针对已知应用程序和使 用的列表的性能需求,预加载资源需求表126;以及动态进程,用于使用在运行期间已从多个性能计数器114、 116、 118、 120中收集的数据中提 取的性能需求,更新资源需求表126中的条目;其中,功率管理器130发 出优化系统级功率所必需的控制,以及这种控制是动态的并自适应于在运 行时间之前无法预测的应用程序中的变化条件。
6. 如权利要求5所述的SoC102,还包括运行时间简述器140,用 于从性能计数器114、 116、 118、 120中捕获性能数据,并在运行时间内 将所述性能数据提供给性能预测模型144。
7. 如权利要求6所述的SoC102,还包括性能需求预测模型144, 用于使用来自运行时间简述器140的数据,并预测任务的性能需求。
8. 如权利要求5所述的SoC 102,还包括功率管理器130,用于针对各个系统资源,采用DVS 132、 DFS 134以及超时136控制中的至少一 个。
9. 一种用于预测应用程序任务的动态性能的预测模型144,所述预测 模型144使用性能计数器114、 116、 118、 120,并将适合的功率需求制成 表,以及使用功率管理器130,以将这种制成表的信息动态地用于在运行 时间进行的在线功率管理,从而使所述功率管理在满足每个任务的性能需 求的同时,适应不同的输入数据和新的应用程序。
全文摘要
使用针对执行数据相关应用程序的动态自适应功率管理的多处理器片上系统102包括策略性放置的性能计数器,用于收集任务的运行时间性能需求。功率管理器130对正被监视的各种系统资源发出DVS 132、DFS134、超时136、以及其它控制。当在运行时间期间执行任务时,分析任务和所调度的资源之间的匹配的质量。然后使更精确的功率控制和调度可用并存储在性能需求表中。因此,功率管理是自适应的和动态的。在静态分析阶段,将可以针对其性能需求而预特征化的应用程序和任务简档化,并预加载为初始起点,用于运行时间内的校正。
文档编号G06F1/32GK101395558SQ200680053248
公开日2009年3月25日 申请日期2006年12月21日 优先权日2005年12月23日
发明者哈什·德汉德, 斯瑞尼瓦桑·巴拉克瑞南, 纳加拉杰·布萨 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1