论文部分内容阅读
二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,在遗产代码移植、硬件设计、程序性能提高、网络应用、系统安全等方面都有重要的意义,已经成为是现代编译技术研究的热点之一。本文首先综述了二进制翻译的研究现状以及基本原理和方法。然后介绍了我们设计实现的静态二进制翻译系统Bitran和动态二进制翻译系统DigitalBridge,深入研究了动态二进制翻译系统设计中的若干关键优化技术。本文提出了提高二进制翻译系统效率的两种优化手段:提高在目标机器上模拟源机器标志位效率的优化;以及充分利用目标机器寄存器提高翻译生成代码效率的优化。最后本文还对比了Bitran和DigitalBridge系统的性能,对动静结合的二进制翻译框架进行了初步探讨。本文的主要贡献如下:1、设计并实现了两个二进制翻译系统:Bitran静态二进制翻译系统和DigitalBridge动态翻译结合解释执行的二进制翻译系统,对二进制翻译的三种基本方法进行了全面的探索,为进一步研究二进制翻译技术搭建了有用的实验平台;2、提出动态二进制翻译系统设计中的若干关键优化技术,包括翻译系统的信息传递优化、上下文切换、代码连接、本地码Cache管理等技术。这些技术的应用保证了DigitalBridge动态翻译系统的整体效率,使该系统与同类系统性能相当;3、对解释执行和动态翻译分别提出了标志位模拟优化算法: (1)即时计算与延迟计算相结合的算法,优化解释执行中的标志位处理; (2)数据流分析和延迟计算相结合的算法,优化动态翻译时的标志位处理;这两个算法在DigitalBridge翻译系统中实现并验证了可以有效减少标志位模拟指令数目,提高系统的效率。4、提出了基于DAG图指导的寄存器分配优化算法,该优化算法经过了DigitalBridge系统的正确性和有效性验证,证明可以有效地利用目标机器充足的寄存器,将源机器代码中由于自身寄存器不足而产生的冗余访存指令删除,从而减少了翻译生成代码的数量,提高了翻译生成代码的执行效率。5、对Bitran静态翻译系统和DigitalBridge解释执行结合动态翻译系统进行了进一步实验和分析,并从中总结了关于静态翻译、动态翻译、和解释执行的若干有用结论,促进了动静结合二进制翻译框架的研究。6、给出了二进制翻译系统的效率模型。本文总结了当前二进制翻译系统的翻译运行模式,探讨了在设计二进制翻译系统时选用不同的翻译方法应该考虑包括解释执行的速度、动态翻译的速度、动态翻译生成的代码效率、动态优化的速