[发明专利]基于执行树深度的二进制翻译方法和装置在审
申请号: | 201410688378.5 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104375879A | 公开(公告)日: | 2015-02-25 |
发明(设计)人: | 康烁 | 申请(专利权)人: | 康烁 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/32 |
代理公司: | 北京恒都律师事务所 11395 | 代理人: | 李向东 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 执行 深度 二进制 翻译 方法 装置 | ||
1.一种基于执行树深度的二进制翻译方法,其特征在于,包括:
步骤S0:开始构造超级块,将执行树深度初始化为0,并获取预设的执行树深度阈值,从预设的起始地址所在的基本块开始翻译;
步骤S1:翻译获取到的基本块;
步骤S2:若翻译的基本块的当前指令为直接跳转指令,则获取所述直接跳转指令进入的基本块,并返回至步骤S1;
步骤S3:若翻译的基本块的当前指令为条件跳转指令,则获取所述条件跳转指令跳转后的基本块和所述条件跳转指令的下一个基本块,并且将执行树深度加1,返回至步骤S1;
步骤S4:若翻译的基本块的当前指令为函数调用指令,则获取所述函数调用指令对应的函数作为基本块,并且将执行树深度加1,返回至步骤S1,
其中,在每次执行树深度加1之后,判断当前的执行树深度是否达到所述执行树深度阈值,若所述执行树深度达到所述执行树深度阈值,则翻译结束,翻译的所有基本块构成一个超级块。
2.根据权利要求1所述的基于执行树深度的二进制翻译方法,其特征在于,还包括:
步骤S5:在执行步骤S1之后,存储所述基本块的第一条指令的地址。
3.根据权利要求1或2所述的基于执行树深度的二进制翻译方法,其特征在于,还包括:
步骤S6:在获取预设的执行树深度阈值的同时,获取预设的翻译时间阈值,并且在开始翻译时计时,
其中,在每次执行树深度加1之后,判断当前计时的翻译时间是否达到所述翻译时间阈值,若所述当前计时的翻译时间达到所述翻译时间阈值,则翻译结束。
4.一种基于执行树深度的二进制翻译装置,其特征在于,包括:
初始化模块,用于开始构造超级块时,将执行树深度初始化为0,并获取预设的执行树深度阈值,从预设的起始地址所在的基本块开始翻译;
翻译模块,用于翻译获取到的基本块;
第一获取模块,用于当翻译的基本块的当前指令为直接跳转指令,获取所述直接跳转指令进入的新基本块,并由所述翻译模块进行翻译;
第二获取模块,用于当翻译的基本块的当前指令为条件跳转指令,获取所述条件跳转指令跳转后的基本块和所述条件跳转指令的下一个基本块,由所述翻译模块进行翻译,并且将执行树深度加1;
第三获取模块,当翻译的基本块的当前指令为函数调用指令,则获取所述函数调用指令对应的函数作为基本块,由所述翻译模块进行翻译,并且将执行树深度加1;
判断模块,用于在每次执行树深度加1之后,判断当前的执行树深度是否达到所述执行树深度阈值,若所述执行树深度达到所述执行树深度阈值,则翻译结束,翻译的所有基本块构成一个超级块。
5.根据权利要求4所述的基于执行树深度的二进制翻译装置,其特征在于,还包括:
存储模块,用于在所述翻译模块翻译一个基本块之后,存储该基本块的第一条指令的地址。
6.根据权利要求4或5所述的基于执行树深度的二进制翻译装置,其特征在于,
所述初始化模块还用于在获取预设的执行树深度阈值的同时,获取预设的翻译时间阈值,并且在开始翻译时计时;
所述判断模块还用于在每次执行树深度加1之后,判断当前计时的翻译时间是否达到所述翻译时间阈值,若所述当前计时的翻译时间达到所述翻译时间阈值,则翻译结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于康烁,未经康烁许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410688378.5/1.html,转载请声明来源钻瓜专利网。