当前位置: 首页 > 专利查询>浙江大学专利>正文

使用动态编译器控制程序运行时处理器频率的方法技术

技术编号:3860169 阅读:145 留言:0更新日期:2012-04-11 18:40
一种使用动态编译器调整程序运行时处理器频率的方法,包括以下步骤: (1)插入分析代码 使用动态编译器注入运行中的程序进程,通过对其二进制代码的分析,并以函数和循环体为单位将程序划分成代码段,对划分好的代码段,动态编译器在其入口以及出口处插入分析代码以其被执行的次数,一旦超过一定值,则认定相应的函数或循环为程序热点; (2)动态确定程序运行时的程序热点 在程序中插入的分析代码记录程序每个函数和循环执行的次数,一旦其超过设定值,则认为相应的函数或循环为程序热点;对确定后的程序热点,分析代码将进一步采集其性能;否则,动态编译器移除插入的分析代码,以减小程序运行的负担; (3)采集程序热点的性能 程序通过指令对硬件平台的硬件性能监视计数器PMC进行设置,要求PMC记录处理器运行的指令数和处理器二级缓存缺失数; 动态编译器插入的分析代码按如下过程采集程序热点的性能:一旦程序执行到一个程序热点,其入口处的分析代码将PMC的值清零;当该程序热点执行完后,其出口处的分析代码读取当前PMC的值,即该程序热点本次执行的处理器运行的指令数和处理器二级缓存缺失数;最后,这两个值将被记录到该程序热点的性能历史记录中; (4)根据程序热点的性能调整处理器频率 利用采集到的程序热点的数据,通过如下映射公式确定程序热点的最节能频率: f=P(f↓[max],m) 其中: m是当前处理器的二级缓存缺失比,m=处理器二级缓存缺失数/处理器运行的指令数; f为当前处理器最节能频率; f↓[max]为处理器的最高运行频率; P(f↓[max],m)为m,f↓[max]到f的一个映射,该映射将根据当前m参数和处理器的最高运行频率f↓[max]为当前程序热定确定最节能频率; 确认程序热点的最节能频率后,将该频率与处理器的最高运行频率进行比较,如果两者一样,则意味着在运行时没有必要调整该程序热点的频率,插入的分析代码会被移除;如果最节能频率比处理器的最高运行频率要低,则分析代码在该程序热点的入口处记录之前的处理器频率,并调节处理器频率为该程序热点的最节能频率;之后,当该程序热点运行完成后,分析代码将当前的处理器的频率恢复到之前记录下的频率。

【技术实现步骤摘要】

本专利技术涉及基于系统软件节能
,特别是涉及一种。
技术介绍
随着IT产品功能日益强大,消耗的功率也随之逐渐增高。如今,由十亿个晶体管构成的芯片,额外漏电已经达到60 70瓦。功耗的提高,同时也带来了散热量的增加,对散热设备的要求也变得越来越大。一而在计算机系统,特别是各种嵌入式设备中,CPU是消耗电力的主要部件之一。在便携式嵌入式设备电源管理领域,目前的困难在于既要满足便携式终端对电源供电的要求,又要做到占用空间小、重量轻和供电时间更长。下一代消费类电子产品的电源解决方案重点应该集中在硬件和软件两方面技术,包括(l)在小巧外形尺寸下,如何实现所需电源性能的工艺和技术,涉及热管理、降噪、电池管理和功能整合等技术;(2)动态功率管理技术,它取决于CPU性能、软件、中间件以及用户对更换电池的时间间隔等要求;(3)动态功率管理技术对操作系统内核和驱动器,以及应用编程接口(API)对驱动器、中间件和应用本身的影响。现在嵌入式设备的功能变得越来越强大,功能也越来越丰富。随着嵌入式设备功能越来越多,用户对嵌入式设备电池的能量需求也越来越高,现有的锂离子电池己经越来越难以满足消费者对正常使用时间的要求。对此,业界主要采取两种方法, 一是开发具备更高能量密度的新型电池技术,如燃料电池,在可以预见的5年内,电池技术不可能有很大的突破;二是在电池的能量转换效率和节能方面下功夫。在目前新的高能电池技术(如燃料电池)仍不成熟的情况下,下一代手持设备的电源管理只能从提高电源利用率和降低功耗这二个方面着手。如何延长电池的使用寿命,以及尽量减少电池能量的消耗已经成为计算机领域的一个研究热点。现在主要集中在硬件设计和软件优化两方面。其中软件优化方面现在主要包括系统软件和应用软件两方面。系统软件主要集中在编译器和操作系统内核两块。在操作系统领域,现在主要的电源管理方法是利用操作系统内核,动态的调整系统处理器和总线的频率,降低系统的整体能耗。在编译器方面,传统的手段主要通过编译器在编译应用程序阶段,对代码进行优化,使代码尽量的紧凑以及访问设备尽量集中,以达到节能的目的。动态编译器作为一种特别的编译器,是指在程序运行阶段编译、修改和优化程序代码的系统软件,它运行于操作系统和应用程序二进制代码之间。其运行时编译程序的特性决定了它能比传统的编译器更好地了解程序在真实环境下的运行状态,由于动态编译器既了解程序内部结构,又能获得程序的实时运行状况,应此动态编译器也可用来驱动节能。
技术实现思路
本专利技术的目的在于克服现有技术中的不足,提供一种。本专利技术解决其技术问题采用的技术方案如下-提供一种使用动态编译器调整程序运行时处理器频率的方法,包括以下步骤-(1) 插入分析代码使用动态编译器注入运行中的程序进程,通过对其二进制代码的分析,并以函数和循环体为单位将程序划分成代码段,对划分好的代码段,动态编译器在其入口以及出口处插入分析代码以其被执行的次数, 一旦超过一定值,则认定相应的函数或循环为程序热点;(2) 动态确定程序运行时的程序热点在程序中插入的分析代码记录程序每个函数和循环执行的次数, 一旦其超过设定值,则认为相应的函数或循环为程序热点;对确定后的程序热点,分析代码将进一步釆集其性能;否则,动态编译器移除插入的分析代码,以减小程序运行的负担;(3) 采集程序热点的性能程序通过指令对硬件平台的硬件性能监视计数器PMC进行设置,要求PMC记录处理器运行的指令数和处理器二级缓存缺失数;动态编译器插入的分析代码按如下过程采集程序热点的性能 一旦程序执行到一个程序热点,其入口处的分析代码将PMC的值清零;当该程序热点执行完后,其出口处的分析代码读取当前PMC的值,即该程序热点本次执行的处理器运行的指令数和处理器二级缓存缺失数;最后,这两个值将被记录到该程序热点的性能历史记录中;(4) 根据程序热点的性能调整处理器频率利用采集到的程序热点的数据,通过如下映射公式确定程序热点的最节能频率f^P(f,,m) 其中m是当前处理器的二级缓存缺失比,111=处理器二级缓存缺失数/处理器运行的指令数;f为当前处理器最节能频率;4f,为处理器的最高运行频率;P(f皿,m)为m, f,到f的一个映射,该映射将根据当前m参数和处理器的最高运行频率 f,为当前程序热定确定最节能频率;确认程序热点的最节能频率后,将该频率与处理器的最高运行频率进行比较,如果两者 一样,则意味着在运行时没有必要调整该程序热点的频率,插入的分析代码会被移除;如果 最节能频率比处理器的最高运行频率要低,则分析代码在该程序热点的入口处记录之前的处 理器频率,并调节处理器频率为该程序热点的最节能频率;之后,当该程序热点运行完成后, 分析代码将当前的处理器的频率恢复到之前记录下的频率。本专利技术与
技术介绍
相比,具有的有益的效果是本专利技术通过在程序运行时,动态分析程序的性能,并利用处理器的频率调节功能将程序 理论处理器最节能频率映射到实际可调节电压,以达到节能的目的,同时保证系统的性能要 求。该专利技术基于一个处理器频率映射模型,通过映射模型将理论处理器最节能频率映射到实 际可调整的处理器频率。操作系统在执行过程中,动态调频调压技术,根据性能要求和处理 器运行情况确定处理器在当前性能要求下的理论最节能运行频率,然后通过映射模型映射到 实际处理器频率,以达到节能地目的。(1) 透明性。动态编译器在程序运行过程中注入程序的线程,在工作过程中不需要借助 程序的源代码,也不会修改程序本身的功能,因此具有较强的透明性。(2) 稳定性。动态编译器将调整系统状态的权利掌握在自己手中,而不是下放给应用程 序,这样就能在兼顾全局的情况下动态调整系统的状态,保证系统的稳定。(3) 实用性。本专利技术不需要修改操作系统和程序的源代码,也不需要重新编译程序即可 达到节能目的,方法十分简单,易于实现,且移植性高。经过反复的验证,这个方法可有效 减少程序员的工作量,代价小,十分实用。附图说明图l为本专利技术的实现流程图。具体实施例方式在实施时,动态编译器在调度过程 中,考虑了性能和节能两个约束,以尽可能低的频率运行程序同时保证其性能。 1)插入分析代码在本专利技术中,动态编译器注入运行中的程序,以函数和循环为基本单位对程序的二进制 代码进行分析和划分,对划分好的代码段,动态编译器判断其函数体和循环体的大小,对超5过IO条指令的函数体和循环体,动态编译器在函数体的入口以及出口,在循环体的前后各插入分析代码。分析代码的作用包括确定程序热点,采集程序热点性能,计算程序热点最 节能频率并调整处理器在程序热点运行时的频率。2) 确定程序热点程序热点是指程序运行过程中,被执行次数超过一定值的函数或循环。在本专利技术,该值设置为8,即一个函数或循环被执行过8次以上,则称其为程序热点。在程序中插入的分析 代码使用表来记录所有受监视代码段的执行次数,改表使用代码段的第一条指令的地址来索 引代码段的执行信息,若一个函数或循环执行的次数超过8,则将该函数或循环加入程序热 点列表。对于加入程序热点列表的程序段,分析代码将进一步采集其性能;否则,动态编译 器移除插入的分析代码,以减小程序运行的负担。3) 采集程序热点性能硬件平台都具有硬件性能监视计数器PMC。 PMC可在计算本文档来自技高网
...

【技术保护点】
一种使用动态编译器调整程序运行时处理器频率的方法,包括以下步骤: (1)插入分析代码 使用动态编译器注入运行中的程序进程,通过对其二进制代码的分析,并以函数和循环体为单位将程序划分成代码段,对划分好的代码段,动态编译器在其入口以及出口处插入分析代码以其被执行的次数,一旦超过一定值,则认定相应的函数或循环为程序热点; (2)动态确定程序运行时的程序热点 在程序中插入的分析代码记录程序每个函数和循环执行的次数,一旦其超过设定值,则认为相应的函数或循环为程序热点;对确定后的程序热点,分析代码将进一步采集其性能;否则,动态编译器移除插入的分析代码,以减小程序运行的负担; (3)采集程序热点的性能 程序通过指令对硬件平台的硬件性能监视计数器PMC进行设置,要求PMC记录处理器运行的指令数和处理器二级缓存缺失数; 动态编译器插入的分析代码按如下过程采集程序热点的性能:一旦程序执行到一个程序热点,其入口处的分析代码将PMC的值清零;当该程序热点执行完后,其出口处的分析代码读取当前PMC的值,即该程序热点本次执行的处理器运行的指令数和处理器二级缓存缺失数;最后,这两个值将被记录到该程序热点的性能历史记录中; (4)根据程序热点的性能调整处理器频率 利用采集到的程序热点的数据,通过如下映射公式确定程序热点的最节能频率: f=P(f↓[max],m) 其中: m是当前处理器的二级缓存缺失比,m=处理器二级缓存缺失数/处理器运行的指令数; f为当前处理器最节能频率; f↓[max]为处理器的最高运行频率; P(f↓[max],m)为m,f↓[max]到f的一个映射,该映射将根据当前m参数和处理器的最高运行频率f↓[max]为当前程序热定确定最节能频率; 确认程序热点的最节能频率后,将该频率与处理器的最高运行频率进行比较,如果两者一样,则意味着在运行时没有必要调整该程序热点的频率,插入的分析代码会被移除;如果最节能频率比处理器的最高运行频率要低,则分析代码在该程序热点的入口处记录之前的处理器频率,并调节处理器频率为该程序热点的最节能频率;之后,当该程序热点运行完成后,分析代码将当前的处理器的频率恢复到之前记录下的频率。...

【技术特征摘要】
1、一种使用动态编译器调整程序运行时处理器频率的方法,包括以下步骤(1)插入分析代码使用动态编译器注入运行中的程序进程,通过对其二进制代码的分析,并以函数和循环体为单位将程序划分成代码段,对划分好的代码段,动态编译器在其入口以及出口处插入分析代码以其被执行的次数,一旦超过一定值,则认定相应的函数或循环为程序热点;(2)动态确定程序运行时的程序热点在程序中插入的分析代码记录程序每个函数和循环执行的次数,一旦其超过设定值,则认为相应的函数或循环为程序热点;对确定后的程序热点,分析代码将进一步采集其性能;否则,动态编译器移除插入的分析代码,以减小程序运行的负担;(3)采集程序热点的性能程序通过指令对硬件平台的硬件性能监视计数器PMC进行设置,要求PMC记录处理器运行的指令数和处理器二级缓存缺失数;动态编译器插入的分析代码按如下过程采集程序热点的性能一旦程序执行到一个程序热点,其入口处的分析代码将PMC的值清零;当该程序热点执行完后,其出口处的分析代码读取当前PMC的值,即该程...

【专利技术属性】
技术研发人员:陈天洲项凌翔马建良曹满章铁飞乔福明王春昊陈剑缪良华蒋冠军
申请(专利权)人:浙江大学
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1