论文摘要
二进制翻译技术是解决软件移植问题的重要手段,为不同的指令集体系结构(ISA)间转换架起了桥梁,对促进软硬件之间的协调发展有着重要的意义,二进制翻译技术的研究已成为一个热点研究领域并且取得了很多研究成果。目前国内外的大部分二进制翻译系统都是针对源机器为32位机设计和开发的,64位体系结构为二进制翻译技术研究带来了新的挑战。本论文首先对基于IA-64平台的二进制代码翻译理论和实现技术做了充分研究,提出了二进制翻译模型的形式化描述以及描述语言驱动的方法。然后介绍了我们设计并实现的二进制翻译系统ITA及其关键技术。本文结合IA-64的二进制代码特性研究了如何提高静态翻译代码覆盖率的问题,重点讨论了跳转表和switch语句目标地址的恢复方法。最后深入研究了IA-64结构特性优化代码翻译技术:二进制代码中的谓词执行和投机代码消除技术。 本文的主要贡献如下: 1.建立二进制翻译的形式化描述,提出了使用机器描述语言驱动二进制翻译系统实现的方法,并结合可变源和目标的二进制翻译框架,分析了描述语言的应用对二进制翻译系统效率和能力的影响; 2.设计并实现了ITA静态二进制翻译系统,在实现这个系统的过程中,针对IA-64体系结构特性,提出了一些比较实用的技术,包括ELF64文件解码、指令束特性消除、复杂参数识别、语义映射、系统库函数恢复、结构特性优化代码消除等,这些技术的应用保证了ITA二进制翻译系统的正确性和翻译效率。 3.提出了静态恢复跳转表的算法,解决了含有跳转表的IA-64二进制代码的翻译问题。通过ITA翻译系统的有效性和正确性验证,表明该算法可以有效的识别IA-64在不同编译环境下产生的跳转表,恢复跳转目标地址,提高了静态翻译的代码覆盖率。 4.提出了基于谓词分析的谓词代码消除技术,解决了IA-64体系结构中谓词执行特性代码的翻译问题。提出了谓词分析算法,并依据谓词分析的结果实现了指令的反调度、谓词代码消除以及控制流图的优化,这些技术经过验证能显著降低生成代码的结构复杂度,提高了二进制翻译的代码质量。 5.提出并实现了针对IA-64控制投机代码的投机消除算法,解决了投机执行特性给二进制代码翻译以及程序理解带来的问题。该算法将投机代码下沉,消除具有投机形态的指令,并通过恢复代码的验证以及内存二义性消除,从而保证了程序变换前后语义的等价性。经过性能测试,表明该算法可以将带有投机特性的IA-64代码正确翻译到目标机代码,同时有效地提高了翻译生成的代码质量,显著提高了生成代码的执行效率。 ITA二进制翻译系统的正确性和有效性为本文取得的研究成果提供了保证,目前该系统已经通过了800多个C语言程序(约40多万行源代码编译生成的上百万条IA-64指令)
论文目录
相关论文文献
- [1].IA-64微处理器系统级验证平台的设计与实现[J]. 微电子学 2008(03)
- [2].IA-64的并行架构及其寄存器文件[J]. 计算机工程 2008(12)
- [3].IA-64二进制翻译中旋转寄存器的处理方法[J]. 计算机工程 2009(13)
- [4].IA-64二进制翻译中软件流水代码消除技术[J]. 计算机工程 2008(16)
- [5].IA-64软件流水中旋转寄存器逆向分析技术[J]. 计算机工程 2009(02)
- [6].IA-64二进制翻译的软件流水消除技术[J]. 计算机工程 2010(11)
- [7].IA-64平台可扩展固件接口设计与开发[J]. 计算机应用与软件 2011(01)