摘要
二进制翻译中本地代码替换是实现消息传递接口(Message Passing Interface,MPI)并行程序跨架构移植的重要手段。通过调用本地代码实现库函数功能,本地代码替换技术保证功能的等价模拟。然而,现有的本地代码替换方法无法识别基于跳转指令实现的函数调用,导致MPI程序翻译运行出错。针对这一问题,提出一种基于地址重用的本地代码替换方法,通过向客户程序中目标函数的地址空间嵌入编码信息,将翻译系统控制流重定向至本地代码替换流程。实验结果表明,该方法能够正确处理基于跳转指令实现的函数调用,且相比于已有方法引入的运行时开销更低。
Native code replacement in binary translation is an important way to implement cross-architecture migration of message passing interface(MPI)parallel programs.By calling native code to implement the functionality of library functions,native code replacement ensures the equivalent simulation of functionality.However,the existing approach of native code replacement cannot identify function calls based on jump instructions,lead to running errors in translating the MPI program.To solve this problem,an approach of native code replacement by reusing address space is proposed.The encoded information is injected into the address space of the target function in guest applications to redirect the control flow of the translation system to native code replacing.Experimental results show that the proposed approach can correctly handle function calls based on jump instructions,and incurs lower runtime overhead compared with existing methods.
作者
李明亮
庞建民
岳峰
LI Mingliang;PANG Jianmin;YUE Feng(State Key Laboratory of Mathematic Engineering and Advanced Computing, Zhengzhou 450001, China)
出处
《信息工程大学学报》
2022年第1期38-44,共7页
Journal of Information Engineering University
基金
国家自然科学基金资助项目(61472447,61802433,61802435)。