[发明专利]一种基于模拟器的关键路径分析方法有效
申请号: | 201310504546.6 | 申请日: | 2013-10-23 |
公开(公告)号: | CN103530471B | 公开(公告)日: | 2017-03-08 |
发明(设计)人: | 朱浩;王东辉;洪缨 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京亿腾知识产权代理事务所11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模拟器 关键 路径 分析 方法 | ||
1.一种基于模拟器的关键路径分析方法,其特征在于:
通过模拟器统计、计算每一个分支节点在不同分支路径上的执行概率,其中分支节点对应访问链上的各节点,以及各函数发生函数调用的分支概率;
记录一条访问链中上一节点到下一节点的执行时间;
依次叠加执行时间到出口函数为止;
根据分支概率、执行时间的长度,选择关键路径。
2.根据权利要求1所述的方法,其特征在于,所述访问链是目标源代码中,由函数之间逐层调用关系构成的链状结构,代表了从入口函数到出口函数或叶子函数的一条完整访问路径。
3.根据权利要求2所述的方法,其特征在于,所述叶子函数通过第一条伪指令和第二伪指令的插桩方式来判断,所述第一伪指令在每个函数的入口基本块内添加,所述第二伪指令在函数内每条函数调用指令之后添加。
4.根据权利要求2所述的方法,其特征在于,所述完整访问路径是通过第三条伪指令的插桩方式来判断,所述第三条伪指令在每个函数的返回处添加。
5.根据权利要求1所述的方法,其特征在于,所述记录一条访问链中上一节点到下一节点的执行时间步骤包括:
建立全局时钟,所述全局时钟用于根据每个指令并行包中指令的最大执行周期数计算当前时间点;
当函数被调用时,将所述当前时间点压入栈结构中,当目标函数执行完成后,则返回,所述栈结构执行一次出栈操作并将结果赋值给所述全局时钟。
6.根据权利要求1所述的方法,其特征在于,所述依次叠加执行时间到出口函数为止步骤包括:
建立函数时间戳步骤,通过时间戳保留当前时间点,当调用其它函数时可恢复到当前时间。
7.根据权利要求1所述的方法,其特征在于,在所述根据分支概率、执行时间的长度,选择关键路径步骤之前还包括统计程序中分支跳转发生的概率步骤,该步骤为:
建立分支跳转表,将源程序中的每条分支指令与跳转表内的跳转指令一一对应;
为跳转表内的跳转指令分配独立的计数器,并统计它们被执行的概率;
分支概率的统计等价于对跳转表内的跳转指令执行概率的统计。
8.根据权利要求1所述的方法,其特征在,所述根据分支概率、执行时间的长度,选择关键路径步骤包括:
当程序运行到叶子函数或出口函数时,计算沿路径输出路径中的各个节点的执行时间;
根据所述各路径的执行时间长度,确定关键路径。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310504546.6/1.html,转载请声明来源钻瓜专利网。