[发明专利]间接分支指令处理方法和装置有效
申请号: | 201210069463.4 | 申请日: | 2012-03-15 |
公开(公告)号: | CN102662631A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 廖银;靳国杰;高翔 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/34 | 分类号: | G06F9/34;G06F9/45 |
代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明;江舟 |
地址: | 100190 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 间接 分支 指令 处理 方法 装置 | ||
技术领域
本发明涉及动态二进制翻译领域,具体而言,涉及一种间接分支指令处理方法和装置。
背景技术
二进制翻译技术指的是将一个体系结构上执行的二进制代码转换为能被另一个体系结构所执行的二进制代码。在动态二进制翻译技术中,性能是最为关注的话题。许多研究工作表明间接指令的处理是影响性能的关键因素。在源程序代码序列中,以跳转指令为标志截取一系列代码段,称为基本块,动态二进制翻译以基本块(或称代码块)为基本翻译和执行单位,一般应用程序平均每4-7条指令就有一个跳转指令。跳转指令包括两种:确定性跳转和非确定性跳转。确定性跳转包括直接跳转和条件跳转。对于确定性跳转,目标地址在编译时就已经确定,可以将目标基本块(或称代码块)的地址和直接跳转的目标进行挂接,每当运行到该直接跳转指令或者跳转时直接跳转到目标基本块,减少查找次数和上下文切换。对于非确定性跳转,例如间接跳转指令,它们的目标地址只有在运行的时候才能确定,因此通用的方法是返回翻译模块进行查找,这样不可避免地要进行上下文切换和执行现场的保持和恢复,增加了动态二进制翻译的开销。
现有的对于二进制翻译中间接分支指令的处理方法分为硬件方法和软件方法。硬件方法主要是影子栈(shadow stack),用影子栈(视为一种硬件栈)维护翻译程序的跳转关系,间接分支指令只要查询硬件栈就可以得到返回地址。软件方法分为三种:数据缓存哈希(data cache hashing),指令缓存哈希(instruction cache hashing),和内嵌指令缓存哈希(inline instruction cache handing)。这三个方法都使用一个全局哈希数组来查找间接分支指令的目标地址,这样就使得在二进制翻译中要进行上下文切换和执行现场的保存和恢复。图1示出了相关技术中二进制翻译的一种流程图,从图中可以看出,现有的二进制翻译过程中包括如下步骤:
S102,首先在EIP(32位机的指令寄存器)中查找判断当前基本块(或称代码块)是否在全局哈希数据组中,若不存在,则执行S104-S106,若存在,则直接执行S106。
S104,翻译基本块;
S106,执行基本块代码;
S108,当遇到间接分支指令时,保存现场,切换上下文,返回S102。
从上述流程的描述中可以看出,现有的二进制翻译过程中,当遇到间接分支指令时,需要保存现场,然后切换上下文返回翻译模块,这明显降低了动态二进制翻译器的效率。要提高动态二进制翻译器的效率必须减少上下文切换的次数。
针对相关技术中二进制翻译的过程中上下文切换的次数过多导致翻译系统效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种间接分支指令处理方法和装置,以至少解决相关技术中二进制翻译过程中上下文切换的次数过多导致翻译效率低的问题。
根据本发明的一个方面,提供了一种间接分支指令处理方法,包括:加载与当前执行的间接分支指令所在的当前基本块对应的缓存数组,其中,缓存数组中的记录项用于记录当前基本块中已执行过的间接分支指令的目标地址;判断当前执行的间接分支指令的目标地址是否与缓存数组中对应的记录项中记录的目标地址相同;若当前执行的间接分支指令的目标地址与缓存数组中对应的记录项中记录的目标地址相同,则跳转到当前执行的间接分支指令的目标地址,并从当前执行的间接分支指令的目标地址开始执行代码。
优选的,在判断当前执行的间接分支指令的目标地址是否与缓存数组中对应的记录项中记录的目标地址相同之后,还包括:若判断当前执行的间接分支指令的目标地址与缓存数组中对应的记录项中记录的目标地址不同,则将当前执行的间接分支指令的目标地址记录在缓存数组中对应的记录项中。
优选的,将当前执行的间接分支指令的目标地址记录在缓存数组中对应的记录项中的步骤包括:将当前执行的间接分支指令的目标地址对缓存数组中的记录项的个数取模,得到余数i;将当前执行的间接分支指令的目标地址记录在缓存数组中第i个记录项中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210069463.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种非晶合金变压器的安装结构
- 下一篇:地道桥下积水快速排水潜水气压泵