论文部分内容阅读
二进制翻译技术可以在无需源码的情况下,将一种指令集架构上的可执行程序移植到另一种指令集架构上执行,其在解决新老系统兼容、异构型CPU兼容、系统安全以及遗产代码移植等方面具有重要的意义。二进制翻译技术,早已成为现代程序编译技术的热点研究之一,其对二进制代码的分析,可对程序代码的优化起到重要的指导作用。在目前众多的二进制翻译研究中,工作的热点大多聚焦于如何提高翻译的性能,针对高性能计算领域中并行程序翻译的研究较少。而高性能计算应用程序的匮乏恰恰又是限制我国国产处理器发展的非常重要的因素。本文在分析并行程序的执行特点后,结合之前二进制翻译的研究成果,提出了一种新的静态二进制翻译框架以更好地支持并行程序的翻译;与此同时,改进了并行程序的翻译过程,实现了并行应用程序的等价翻译,并通过对寄存器分配方式的改进有效提高了翻译后目标程序的执行效率。围绕如何解决并行程序的翻译以及如何有效提高翻译后本地程序执行效率的问题,本文的主要研究内容和创新点如下:1)提出并实现了反馈式静态二进制翻译框架,借助二级地址映射表,有效解决了静态二进制翻译面临的代码发现和代码定位问题,更好的支撑了并行程序的翻译;2)针对并行程序的执行方式,结合库函数本地化技术,改进了并行程序翻译方式,以较高效率解决了MPI和Pthreads并行程序的翻译问题;3)引入全局寄存器静态映射和局部寄存器动态分配的思想,提出了基于优先级的动静结合寄存器分配优化方法。使用新的寄存器分配方法,在寄存器分配时有效地减少了不必要的寄存器溢出,进而减少了部分冗余访存指令,提高了目标程序的执行效率。通过实验,借助本文设计并实现的反馈式静态二进制翻译器FD-SQEMU,采用库函数本地化技术,结合基于优先级的动静结合寄存器分配优化算法,能以较高效率解决并行程序的跨架构翻译问题,验证了框架和优化方法的正确性和有效性。