论文部分内容阅读
动态二进制翻译技术能够把一种处理器上的二进制程序翻译到另一种指令集的处理器上执行,在软件移植或设计研发以及漏洞挖掘等方面具有重大意义,特别是在处理X86应用程序向国产处理器平台的软件移植等方面技术优势明显,对于提升国产某型处理器的市场推广和发展具有无可替代的作用。由于传统的动态二进制翻译平台属于串行程序结构,优化技术带来的优化效果由于受到优化开销的限制,不能充分发挥优化效果。随着多核多线程技术的成熟和发展,如何利用多线程并行化手段为动态二进制翻译性能优化服务,成为近年来二进制翻译领域的一个热点研究方向。 为解决目前传统动态二进制翻译平台优化效率低下的现状,提升动态二进制翻译效率,本文通过对传统动态二进制翻译平台的工作原理及存在的缺陷与多线程关键技术的深入探究,设计并实现了一种基于多线程技术的动态二进制翻译系统(MDOS)。本文的具体工作和创新点为: 1.在对传统动态二进制翻译平台的性能制约因素进行了细致的理论研究和实验分析的基础上,针对串行程序不能充分利用多核资源的问题,设计了TEXE-HPOP并行模型,实现了基于该模型的翻译执行主线程和热路径优化子线程组成的多线程动态二进制翻译系统MDOS(Multi-threaded Dynamic binary translation Optimization System),实现了翻译执行和热路径优化并行执行。 2.针对传统动态二进制翻译中对源平台寄存器采用的寄存器内存虚拟策略的低效问题,提出寄存器全映射的分配策略,并在此基础上定义等价语义变换规则,完成中间代码冗余指令的删除和优化,解决了目前国产平台寄存器利用率低的问题,实现了对本地寄存器的高效管理利用,提升了翻译效率。 3.针对热路径优化问题,提出热路径识别局部预测算法,实现对热路径的高效预测识别,并对热路径进行超级块封装和跳转优化,较好地解决了热路径识别和优化问题,同时,针对主线程翻译执行与子线程热路径优化的多线程结构,提出适应多线程框架的T-cache分层管理策略,解决平台缓存管理与多线程框架不匹配的问题。 通过利用SPEC2006测试集对系统整体性能和部分模块的测试表明,MDOS总体动态翻译效率相比于串行翻译平台提升了9.45%,基于寄存器全映射策略的中间代码等价语义变化使代码膨胀率缩减了32.86%,热路径识别和优化关键技术使得基本快跳出率平均缩减了6.7%。测试结果验证了MDOS多线程结构及关键优化技术在动态二进制翻译性能优化中的有效性。