论文部分内容阅读
当前计算机技术发展受制于软硬件之间的冲突,为改变这种局面研究人员提出了代码移植技术,二进制翻译技术就是实现代码移植的一种方法。由于二进制翻译技术在代码的移植、Virtual IT Shop、虚拟机、计算机安全和硬件开发等方面的重要作用,已经成为现代计算机研究领域的热点之一。本文首先综述了二进制翻译技术的基本原理和方法以及研究现状,然后介绍了我们试验使用的动态二进制翻译系统平台QEMU,最后深入研究了其中的若干关键优化技术。本文提出了三种提高二进制翻译系统运行效率的优化技术:跳转优化、寄存器映射优化和基本块覆盖优化。本文的主要贡献为研究了目前二进制翻译领域的典型翻译系统,详细研究了动态二进制翻译系统QEMU的翻译机制、运行方式、翻译策略,并使用其用户级系统作为我们的实验平台。QEMU动态二进制翻译系统实验平台上,针对翻译过程中每个基本块运行结束之后过于频繁的状态切换和判断提出跳转控制优化方案。即在明确跳转目标时判断目标基本块是否已经被翻译过,如果当系统发现跳转目标基本块已经被翻译时,可以直接把跳转的源基本块和跳转目标基本块在T-Cache中连接起来,从而降低了动态翻译系统自身的开销。针对QEMU动态二进制翻译系统中将中间变量映射到宿主机寄存器上的翻译机制,对寄存器的不同映射方案进行了性能测试。发现了在目前翻译机制下,中间变量的确是使用最为频繁,最有价值映射的部分。最后提出了取消中间变量的新翻译机制设想。针对QEMU动态二进制翻译系统中每个基本块以头指令pc作为唯一标识的方式,发现了基本块覆盖的存在。即基本块可能是某个基本块的一部分,也有可能包括一些基本块。对此提出了减少基本块覆盖现象的方案,并且将其实现。实验数据表明优化方案的确可以提高系统的整体性能。