摘要
动态二进制翻译是解决一款指令集面临生态系统壁垒问题的主流技术,通过将二进制程序从源指令集翻译成目标指令集,可以在目标指令集的处理器上运行源指令集的应用程序.动态二进制翻译技术的一大挑战是如何生成高质量的目标指令序列,尤其当源指令集和目标指令集存在差异时.为探究该问题,以RISC-V64指令集为目标指令集,分析了当RISC-V64,RISC-V32,MIPS32,x86分别作为源指令集时,影响动态二进制翻译技术翻译质量的因素.针对这些因素,分别提出相应优化方法,并借助RISC-V B扩展和RISC-V P扩展中的部分指令提升翻译质量.最后,提出一个新的动态二进制翻译程序DBT-FEMU实现优化.在模拟器和FPGA中的评估数据显示,运行SPEC CPU2006的整数基准程序时,优化方法可使目标程序所执行的动态指令数平均减少57%,平均性能达QEMU-i386的4.12倍.
基金项目
中国科学院战略性先导科技专项(C类)(XDC05030100)
国家自然科学基金重大项目(62090022)
北京市科技计划(Z221100003422003)
中国科学院青年创新促进会项目(2013073)