The present invention provides a method and system for processing the indirect transfer instruction in dynamic binary translation system; method includes: save for indirect transfer instruction redirection table in dynamic binary translation system; when receiving the indirect transfer instruction, according to the indirect transfer instruction address source in the table stored in the redirection table to find the corresponding source address; the redirection table to the source address for indexing; if find the table is empty, the table is filled with the redirection information destination address program control flow redirection to the source address; if you include the redirection information to find the table in executing the program control flow redirection information, will be redirected to the corresponding destination address. The invention can improve the performance of a dynamic binary translation system.
【技术实现步骤摘要】
在动态二进制翻译系统中处理间接转移指令的方法和装置
本专利技术涉及计算机应用领域,尤其涉及一种在动态二进制翻译系统中处理间接转移指令的方法和装置。
技术介绍
动态二进制翻译技术(dynamictranslation)广泛应用于指令系统模拟,二进制插桩,动态优化,程序行为分析等领域。在大多数应用场景下,性能是翻译系统需考虑的重要指标。其中,控制转移指令的处理方法是影响动态翻译系统性能的重要因素。控制转移指令一般可分为条件转移,直接跳转与间接转移。对于转移目标固定的条件转移指令与直接跳转指令,翻译系统可使用代码块链接技术来降低开销。而间接转移指令(IB:IndirectBranch)的转移目标在运行时才可以确定,且转移目标不固定,因此每次执行时均需进行一次源程序计数器地址(SPC:SourceProgramCounteraddress,简称源地址)到目标程序计数器地址(TPC:TargetProgramCounteraddress,简称目标地址)的地址转换操作,导致了巨大的性能开销,使得间接转移指令的处理过程成为系统性能开销的主要来源。图1为现有技术中动态翻译系统处理间接转移指令的流程示意图。在获取到转移目标的源地址(SPC)时,翻译系统会进入一个PC分发器(Dispatcher),将源地址转换为目标地址(TPC)。翻译系统一般会维护一个SPC-TPC的映射表,在源地址产生后,运行一个Hash查表例程来进行地址转换,然后再跳转至相应的目标地址。但进行一次Hash查表需要10条以上指令,导致较大的开销。软件预测法可以一定程度上避免Hash查表开销,即在转移目标的 ...
【技术保护点】
一种在动态二进制翻译系统中处理间接转移指令的方法,其特征在于,包括:保存用于在动态二进制翻译系统中处理间接转移指令的重定向表;当接收到间接转移指令时,根据间接转移指令中的源地址在所保存的重定向表中查找该源地址对应的表项;所述重定向表以源地址为索引建立;如果查找到的表项为空,则在该表项中填入将程序控制流重定向至所述源地址对应的目标地址处的重定向信息;如果查找到的表项中包含重定向信息,则执行所述重定向信息,将程序控制流重定向至相应的目标地址处。
【技术特征摘要】
1.一种在动态二进制翻译系统中处理间接转移指令的方法,其特征在于,包括:保存用于在动态二进制翻译系统中处理间接转移指令的重定向表;当接收到间接转移指令时,根据间接转移指令中的源地址在所保存的重定向表中查找该源地址对应的表项;所述重定向表以源地址为索引建立;如果查找到的表项为空,则在该表项中填入将程序控制流重定向至所述源地址对应的目标地址处的重定向信息;如果查找到的表项中包含重定向信息,则执行所述重定向信息,将程序控制流重定向至相应的目标地址处。2.根据权利要求1所述的方法,其特征在于:所述重定向表复用源二进制代码空间存储,或单独存储在一块与源二进制代码空间具有一个固定偏移量的影子空间中;所述在重定向表中查找该源地址对应的表项的步骤包括:若重定向表存储在源二进制代码空间中,则直接查找所述源地址所代表的存储位置中的表项;若重定向表存储在影子空间中,则在所述影子空间中,查找所述源地址加上所述的固定偏移量的结果所代表的存储位置中的表项。3.根据权利要求1所述的方法,其特征在于:如果所述动态二进制翻译系统的源平台是变长指令系统平台,则所述重定向表中的表项为链式表项,所述重定向信息为短跳转指令;如果所述动态二进制翻译系统的源平台是定长指令系统平台,则所述重定向信息包括源地址相对应的目标地址。4.根据权利要求1~3中任一项所述的方法,其特征在于,还包括:当所述动态二进制翻译系统启动后,将源二进制代码空间或影子空间的页面标记为不可运行;当在页面填入一个表项后,在该页面其他位置填入软件中断指令;所述如果查找到的表项为空,则在该表项中填入将程序控制流重定向至所述源地址对应的目标地址处的重定向信息的步骤包括:当页面中不包含表项且空白表项被执行时,触发页面权限异常,调用页面异常处理函数在表项中填入将程序控制流重定向至所述源地址对应的目标地址处的重定向信息;当页面已包含一个表项且空白表项被执行时,触发软件中断异常,调用软件中断异常处理函数在表项中填入将程序控制流重定向至所述源地址对应的目标地址处的重定向信息。5.一种在动态二进制翻译系统中处理间接转移指令的装置,其特征在于,包...
【专利技术属性】
技术研发人员:程旭,贾宁,杨春,
申请(专利权)人:北京北大众志微系统科技有限责任公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。