发明名称 使用动态编译器控制程序运行时处理器频率的方法
摘要 本发明涉及基于系统软件节能技术领域,旨在提供一种使用动态编译器控制程序运行时处理器频率的方法。该方法包括以下步骤:插入分析代码、动态确定程序运行时的程序热点、采集程序热点的性能、根据程序热点的性能调整处理器频率。本发明通过在程序运行时,动态分析程序的性能,并利用处理器的频率调节功能将程序理论处理器最节能频率映射到实际可调节电压,以达到节能的目的,同时保证系统的性能要求。本发明具有透明性、稳定性和实用性等特点。
申请公布号 CN101510115A 申请公布日期 2009.08.19
申请号 CN200910096961.6 申请日期 2009.03.26
申请人 浙江大学 发明人 陈天洲;项凌翔;马建良;曹满;章铁飞;乔福明;王春昊;陈剑;缪良华;蒋冠军
分类号 G06F1/32(2006.01)I;G06F9/45(2006.01)I 主分类号 G06F1/32(2006.01)I
代理机构 杭州中成专利事务所有限公司 代理人 唐银益
主权项 1、一种使用动态编译器调整程序运行时处理器频率的方法,包括以下步骤:(1)插入分析代码使用动态编译器注入运行中的程序进程,通过对其二进制代码的分析,并以函数和循环体为单位将程序划分成代码段,对划分好的代码段,动态编译器在其入口以及出口处插入分析代码以其被执行的次数,一旦超过一定值,则认定相应的函数或循环为程序热点;(2)动态确定程序运行时的程序热点在程序中插入的分析代码记录程序每个函数和循环执行的次数,一旦其超过设定值,则认为相应的函数或循环为程序热点;对确定后的程序热点,分析代码将进一步采集其性能;否则,动态编译器移除插入的分析代码,以减小程序运行的负担;(3)采集程序热点的性能程序通过指令对硬件平台的硬件性能监视计数器PMC进行设置,要求PMC记录处理器运行的指令数和处理器二级缓存缺失数;动态编译器插入的分析代码按如下过程采集程序热点的性能:一旦程序执行到一个程序热点,其入口处的分析代码将PMC的值清零;当该程序热点执行完后,其出口处的分析代码读取当前PMC的值,即该程序热点本次执行的处理器运行的指令数和处理器二级缓存缺失数;最后,这两个值将被记录到该程序热点的性能历史记录中;(4)根据程序热点的性能调整处理器频率利用采集到的程序热点的数据,通过如下映射公式确定程序热点的最节能频率:f=P(fmax,m) 其中:m是当前处理器的二级缓存缺失比,m=处理器二级缓存缺失数/处理器运行的指令数;f为当前处理器最节能频率;fmax为处理器的最高运行频率;P(fmax,m)为m,fmax到f的一个映射,该映射将根据当前m参数和处理器的最高运行频率fmax为当前程序热定确定最节能频率;确认程序热点的最节能频率后,将该频率与处理器的最高运行频率进行比较,如果两者一样,则意味着在运行时没有必要调整该程序热点的频率,插入的分析代码会被移除;如果最节能频率比处理器的最高运行频率要低,则分析代码在该程序热点的入口处记录之前的处理器频率,并调节处理器频率为该程序热点的最节能频率;之后,当该程序热点运行完成后,分析代码将当前的处理器的频率恢复到之前记录下的频率。
地址 310027浙江省杭州市西湖区浙大路38号