处理器操作点的基于简档的最优化的制作方法

文档序号:6478052阅读:164来源:国知局
专利名称:处理器操作点的基于简档的最优化的制作方法
技术领域
本发明涉及可编程数据处理设备,具体地,涉及这种设备的程序执行的控制。
背景技术
可以通过简档分析(profiling)来使计算机硬件和程序最优化。如在现有技术中 使用的“简档分析”指的是对于硬件使用或程序执行有关的统计数据(如,对来自程序的指 令或指令块进行执行的次数的计数)进行聚集。所述统计数据称作“简档”。EP 1331565描 述了一种对目标机器上的JAVA程序的执行进行简档分析并使用得到的简档来使程序最优 化以供后续使用的方法。美国专利申请No 2006/75286描述了一种在已经为最终用户提供计算机之后“收 获”简档的方法。该方法包括本地产生在计算机上的硬件使用的简档,如,计算机开启和 关闭的次数的计数等等;以及将本地产生的简档上载到中央数据库。如在该文献中描述的, 所收获的简档可以用于实现对未来计算机的改进的设计,或者用于适应例如电池等组件的 保证。然而,已知的简档分析方法除了通过提供新的程序发布之外没有提供在已经将程 序供应给最终用户之后的程序改进。已知的简档分析限于分发前(pre-distribution)改进。

发明内容
其中,一个目的是在向最终用户的可编程设备分发之后提供计算机程序的改进的 性能。提供了根据权利要求1所述的方法。这里,多个设备从程序执行中聚集统计数据。 将所述统计数据从所述多个设备上载到公共简档分析装置,在所述公共简档分析装置中收 集所述统计数据。从多个可编程设备收集的统计数据用于将操作点分派给程序的不同执行 状态。在实施例中,操作点可以定义将在不同状态下使用的可编程设备的电源电压和/或 时钟频率。例如,操作点的分派可以在公共简档分析装置中集中地执行并下载到可编程设 备,或者在下载所收集的数据之后在可编程设备中执行。在实施例中,在由用户开始和/或控制的程序执行期间,在已经将可编程设备提 供给不同用户之后收集数据。这样,可以使用大范围的特征操作条件来收集简档数据。可 以以这种方式来操纵可由可编程设备执行的多个程序,当在不同时间在独立的处理设备处 执行特定不同程序时收集针对所述特定不同程序的统计数据,以及聚集与所述不同程序相 关联的统计数据。


根据示例实施例的描述,本发明的这些和其他目的和优点方面将变得显而易见。图1示出了具有多个可编程计算机的系统。
图2示出了程序控制的流程图。
具体实施例方式图1示出了系统,在该系统中,使用来自多个可编程设备的简档数据来控制程序 执行期间的功耗。该系统包括多个可编程设备10、网络12、简档分析装置14、以及程序供应 系统16。可编程设备10经由网络12耦合至简档分析装置14和程序供应系统16。每个可编程设备10包括电源电路100、时钟电路102以及处理电路104,其中处理 电路104具有耦合至电源电路100的电源输入、耦合至时钟电路102的时钟输入、以及与电 源电路的100和时钟电路102的控制输入相耦合的控制输出。可选地,每个可编程设备10 包括耦合至处理电路104的用户接口 106,如按钮组、或触摸屏接口等。应意识到,这种布 置仅仅是以示例的方式示出的。实际上,每个可编程设备10可以同时使用多个电源电压并 且可以使用多个时钟信号。此外,可编程设备10可以包括多个处理电路,所述处理电路耦 合用于接收互不相同的电源电压和时钟信号、或多个电源电压和时钟信号的互不相同的组
1=1 o提供给可编程设备10的一个或更多个组件的电源电压V和频率f的组合(V,f) 称作可编程设备10的操作点。处理能力和功耗均依赖于操作点。降低时钟频率和/或电 源电压减小了功耗。降低电源电压减小了最大可用时钟频率。降低时钟频率减小了可以以 给定持续时间的时间间隔来执行的计算的量。操作点的设置包括在实现足够的处理速度以 在指定的时间内执行所需的任务与最小化功耗之间进行权衡。在操作中,将新程序从程序供应系统16分发至可编程设备10。这是可以经由网 络12或经由其他路由来进行的。在程序执行期间,可编程设备10改变操作点,以便减小功 耗。执行包括连续地转换至多个执行状态。如这里所使用的,可以利用所执行的程序中的 指令块、为了在该块中使用而供应的数据参数的参数值、以及(可选地)可编程设备10的 影响操作的任何其他设置,来表征执行状态。此外,先前执行的指令块的历史可以是状态的 一部分。为了使功耗最小化,根据可编程设备的执行状态来设置可编程设备10的操作 点。为了根据执行状态来选择操作点,可编程设备10需要具有将状态与操作点相关联的 信息。根据该信息得出的操作点应当使功耗最小化,同时确保程序在预定持续时间的时间 间隔内执行任务。对于精细的功耗控制,针对许多状态甚至针对状态的准连续区(quasi continuum)而言需要该信息,状态的定义包括一个或更多个准连续参数。需要大量信息来 实现最优控制。使用多个可编程设备10来聚集该信息。在该实施例中,处理电路104控制其自身的操作。备选地,可以提供分立的控制电 路,该控制电路具有存储器,包含将操作点链接至状态的信息;输入,耦合至处理电路,用 于监控处理电路104的状态;以及输出,耦合至时钟控制电路102和电源控制电路10,用于 根据检测到的处理电路104的状态以及在存储器中定义的链接来控制操作点。图2示出了选择操作点所包括的步骤。在第一步骤21中,可编程设备10执行程 序,并聚集该程序的执行的简档数据。不同的可编程设备10不需要同时执行该步骤。实际 上,通常每个可编程设备10可以实际上根据来自用户接口 106的用户命令在不同的时间执 行不同的程序。开始执行的时间点以及执行程序的方式可以依赖于具体使用可编程设备10
5的动作。因此,例如,当程序使设备播放视频信息时,视频信息、播放模式(正常播放、技巧 播放)、分辨率等的选择可以依赖赖于来自用户接口 106的用户命令。可编程设备10可以在程序执行的任何时刻聚集该程序的执行的简档数据。可以 针对所有执行来进行该操作,或者针对所述执行的一部分仅仅基于采样来执行该操作。可 以在软件控制下(例如,利用在所执行的程序本身中的命令)来执行数据的聚集。备选地, 可编程设备可以包含应用程序接口,当程序或者有时向程序的一部分传递控制的操作系统 调用该应用程序接口时,该应用程序接口收集数据。在所收集的简档数据是统计数据,因为 它包括在程序执行期间发生过的事件的计数和/或在执行期间检测到的值的统计量(均 值、方差和/或直方图等)。在第二步骤22中,可编程设备10向简档分析装置14发送记录,所述记录包含程 序的标识和相关状态以及在该状态下程序的简档数据。不同的可编程设备10不需要同时 执行该步骤。可以在执行程序之后立即发送与该程序的执行有关的信息,或者可以在传输 之前聚集多个执行实例的数据。简档数据可以包括对以下内容的指示已经达到所述状态, 或者在指定的时间间隔内达到该状态多少次的计数,或者在该状态下完成指令块的执行所 需的指令循环数,或者在离开该状态之后选择的后继状态,或者先前状态的历史,等等。在第三步骤23中,简档分析装置14针对程序及其状态从多个可编程设备10收集 简档数据。收集可以包括收集针对不同状态的统计量,如,访问该状态的频率、在离开该状 态之前平均或最大的指令循环次数、后续转变到不同状态的概率等等。收集还可以包括对 这些量与准连续参数之间的关系(例如,线性关系的系数)进行估计,其中所述准连续参数 的值区分了不同的状态。在第四步骤24中,简档分析装置14根据所收集的信息计算所述程序的状态与操 作点之间的关系。从简档数据中选择操作点的方法本质上是已知的,从而将不对其作详细 描述。在示例实施例中,操作点选择包括最优化标准(预期的功耗)和限制(如,从第二状 态达到第一状态所需的最长时间)。为状态集合选择在满足所述限制的同时使最优化标准 的值最优化(使预期的功耗最小化)的操作点集合。这里,最优化标准的值和/或所限制 的值以简档数据(例如通过访问状态的频率、或可编程设备10保持在各个状态所经历的时 间间隔的平均持续时间、或状态序列发生的频率等等)所确定的方式依赖于操作点集合。在第五步骤25中,简档分析装置14将程序的状态与操作点之间的所计算的关系 传输回可编程设备10。随后,在第六步骤26中,可编程设备10根据所传输的关系基于它们 的状态来设置它们的操作点。不同的可编程设备10不需要同时执行该步骤。可编程设备 10可以例如通过执行相应的指令来设置操作点,以输出控制信号从而控制电源电路100和 与时钟电路102相耦合的时钟输入。此后,可以从第一步骤开始重复该过程,以实现进一步 的改进。如将意识到的,使用多个可编程设备10来聚集与程序相关联的简档数据的效果 是与仅从一个可编程设备10收集简档数据时相比,与所有状态或几乎所有状态相关联的 数据更快地变得可用。此外,可以使在制造了可编程设备10之后变得可用的程序的功耗最 优化。应意识到,仅以示例的方式示出了图4的流程图。许多变体是可能的。例如,可编程 设备10自身可以根据从简档分析装置14接收到的简档数据来计算状态与操作点之间的关 系。此外,尽管示意了由电源电压和时钟频率来确定的操作点的示例,然而应意识到操作点中可以包含其他方面,如,对可以用于执行特定功能的备选操作电路的选择。此外,尽管描 述了用于最小化功耗的应用,然而类似的技术可以应用于其他参数的其他最小化,如,诸如 机械设备、闪存存储器之类的部件的磨损。简档分析装置14自身可以是另一个设备,该另 一个设备自身还执行程序并收集与所述执行有关的信息。 根据附图、公开以及所附权利要求的教义,本领域普通技术人员可以在实施要求 保护的本发明的过程中理解并实现所公开的实施例的其他变体。在权利要求中,词语“包 括”不排除其他元件或步骤,不定冠词“一个”或“一种”不排除多个。单个处理器或其他单 元可以实现权利要求中所记载的若干项目的功能。在互不相同的从属权利要求中记载特定 手段并不表示不能有利地使用这些手段的组合。一种计算机程序可以存储于/分布在合适 的介质上,如,光学存储介质或与其他硬件一起或作为其他硬件的一部分而提供的固态介 质,然而该计算机程序还可以以其他形式来分发,如,经由互联网或其他有限或无线电信系 统。权利要求中的任何参考标记不应被解释为限制本发明的范围。
权利要求
一种利用多个可编程设备(10)中的第一可编程设备(10)来执行程序的方法,所述方法包括-识别所述程序的多个执行状态;-在所述多个可编程设备(10)中的每个可编程设备(10)上执行计算机程序;-收集与在所述多个可编程设备(10)的执行期间经历的执行状态相关联的统计数据,所述收集是由所述多个可编程设备(10)中的每个可编程设备(10)来执行的;-将从所述多个可编程设备(10)收集的统计数据上载(23)到公共的简档分析装置(14);-使用最优化来向所述执行状态中的相应执行状态分派设备操作点,所述最优化依赖于来自所述多个可编程设备(10)的组合的统计数据;-在所述第一可编程设备(10)后续执行程序期间,将相应执行状态下的第一可编程设备(10)的设备操作点设置成所分派的针对执行状态的设备操作点。
2.根据权利要求1所述的方法,其中,所述操作点至少定义了在所述执行状态中的相 应执行状态下第一可编程设备(10)的时钟频率。
3.根据权利要求1所述的方法,其中,所述操作点至少定义了在所述执行状态中的相 应执行状态下第一可编程设备(10)的电源电压。
4.根据权利要求1所述的方法,所述方法包括在所述简档分析装置(14)中执行所述 分派;以及将定义所分派的设备操作点的信息传输至第一可编程设备(10)以控制操作点 的设置。
5.根据权利要求1所述的方法,所述方法包括从所述多个可编程设备(10)的用户接 口接收用户命令,根据接收到的用户命令来选择、开始和/或控制所述计算机程序的执行, 以及针对根据接收到的命令而选择、开始和/或控制的执行来执行所述收集,其中将响应 于不同用户命令而获得的统计数据进行组合以分派操作点。
6.根据权利要求1所述的方法,包括使用所述多个可编程设备(10)中的每个可编程设 备来执行多个不同程序,所述方法包括与出现执行状态的程序的标识相结合,将从所述多 个可编程设备(10)收集的统计数据上载到针对相应程序的简档分析装置。
7.一种系统,包括_简档分析装置(14);-多个可编程设备(10),每个可编程设备配置用于执行程序,以及收集与所述程序的 执行期间经历的相应执行状态相关联的统计数据,以及将从所述多个可编程设备(10)收 集的统计数据上载到简档分析装置(14);-所述可编程设备(10)中的至少一个可编程设备配置用于根据所述可编程设备(10) 中的所述至少一个可编程设备所经历的执行状态,将至执行状态的程序执行期间的操作点 设置为针对所述执行状态的所分派的操作点,其中,所述简档分析装置(14)和/或所述 可编程设备(10)中的至少一个可编程设备配置用于使用最优化来选择所分派的设备操作 点,所述最优化依赖于来自所述多个可编程设备(10)的组合的统计数据。
8.根据权利要求7所述的系统,其中,所述可编程设备(10)中的至少一个可编程设备 包括处理电路(104),用于执行程序;以及可控时钟源(102),具有与所述处理电路(104) 的时钟输入相耦合的输出,其中所述操作点定义了由所述可控时钟源(102)提供的时钟信号的时钟频率的控制。
9.根据权利要求7所述的系统,其中,所述可编程设备(10)中的至少一个可编程设 备包括处理电路(104),用于执行程序;以及可控电源电路(100),具有与所述处理电路 (104)的电源输入相耦合的输出,所述操作点定义了由所述电源电路(100)提供的电源电 压的控制。
10.根据权利要求7所述的系统,其中,所述多个可编程设备(10)中的每个可编程设备 包括用户接(106),所述用户接口(106)用于根据从所述用户接口(106)接收到的用户命令 来选择、开始和/或控制计算机程序的执行,所述可编程设备(10)配置用于针对根据接收 到的用户命令而选择、开始和/或控制的执行来执行所述收集。
11.一种可编程设备,包括-操作点控制电路(100,102);-处理电路(104),耦合至所述操作点控制电路(100,102),使得所述处理电路(104)将 在所述操作点控制电路(100,102)中设置的操作点处进行操作,以及根据在程序执行期间 经历的执行状态来对所述操作点的设置加以控制,-外部接口,用于接收定义了所述操作点对所述执行状态的依赖性的信息;-所述处理电路(104)配置用于收集与在程序执行期间经历的相应执行状态相关联的 统计数据,以及将所收集的统计数据上载到所述可编程设备外部的简档分析装置(14)。
12.根据权利要求11所述的可编程设备,包括可控电源电路,所述可控电源电路包括 可控时钟源(102),所述可控时钟源具有与所述处理电路(104)的时钟输入相耦合的输出, 所述操作点定义了由所述可控时钟源(102)提供的时钟频率的控制。
13.根据权利要求11所述的可编程设备,包括可控电源电路(100),所述可控电源电路 (100)具有与所述处理电路(104)的电源输入相耦合的输出,所述操作点定义了由所述电 源电路(100)提供的电源电压的控制。
全文摘要
利用第一可编程设备(10)执行程序。根据执行期间设备达到的状态调整诸如电源电压和/或时钟频率等设备操作点。通过在诸如第一可编程设备的多个可编程设备(10)中的每个上执行计算机程序,和收集与多个可编程设备(10)在执行期间所经历的执行状态相关联的统计数据,使得可能在已经将设备提供给用户之后已销售的程序的操作最优化。多个可编程设备(10)中的每个收集自己的统计数据并将所收集的信息上载到公共简档分析装置(14)。简档分析装置使用最优化将设备操作点分派给相应的执行状态,其中最优化依赖于来自多个可编程设备(10)的组合的统计数据。随后,在相应的执行状态下将第一可编程设备(10)的设备操作点设置到所分派的设备操作点。
文档编号G06F1/32GK101855621SQ200880102865
公开日2010年10月6日 申请日期2008年8月13日 优先权日2007年8月15日
发明者彼得·库尔赞诺夫, 赫尔·克斯滕, 阿特尔·T·伯查德 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1