论文部分内容阅读
二进制翻译技术可以将一种体系结构的二进制代码翻译成另一种体系结构的二进制代码,很好地解决代码兼容性问题,缓解软硬件之间的矛盾,从而推动计算机技术的发展。根据翻译时机的不同,二进制翻译可分为静态二进制翻译和动态二进制翻译。静态二进制翻译有天生的局限性,需要用户参与,缺乏透明性。
动态二进制翻译能够突破静态二进制翻译的局限性,所以得到了越来越多研究者的青睐。但是动态二进制翻译在运行代码的同时,宿主机还要做翻译的工作并协调两者的进度。性能较低往往是动态二进制翻译的瓶颈所在。所幸的是动态二进制翻译可以窥探代码行为,收集动态运行信息,有非常广阔的优化空间。论文在借鉴当前二进制翻译系统所采用的优化技术基础上,提出并实现了一些创新的优化方法,并可根据实际应用选择最佳的优化策略。本论文不仅提出了低开销的动态二进制翻译系统框架设计方案,还对具体的翻译机制做了一些改进。系统框架设计方面包括翻译单元的选择,地址空间的设计,基本块的连接和T-Cache的管理等优化技术。设计优良的系统可以尽量避免翻译程序和执行程序之间的切换开销,充分利用T-Cache空间,并为后端编译器提供更多的优化机会。具体翻译机制方面包括了标志位的计算,寄存器的映射,全局变量的处理等实际问题,优秀的翻译机制在屏蔽不同体系结构之间的差异的同时还必须能充分发挥宿主机的优势,生成更加高效的代码。此外我们还发现按照二进制翻译系统对基本块的处理方法,将出现较大比例的相互覆盖基本块,消除这些覆盖可以避免重复翻译。实验统计数据和性能评测结果都表明我们的优化方法能够显著的提高原有动态二进制翻译系统的性能。
由于众多研究人员的努力,动态二进制翻译技术已趋向成熟,其性能也基本上能达到实际运用要求。该技术在很多领域都起到非常重要的作用,其中包括代码的移植、Virtual IT Shop、虚拟机、计算机安全和硬件开发等等。