动态二进制翻译优化研究

动态二进制翻译优化研究

论文摘要

二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,不仅在遗产代码移植而且在程序性能提高等其它方面都有重要的意义。本文首先综述了二进制翻译的研究现状以及基本原理和方法。针对动态二进制翻译,本文提出了若干种优化方案:提高在目标机器上模拟源机器标志位效率的EfLA算法;处理应用级主动异常和被动异常的两个算法;翻译制导的寄存器优化算法。本文介绍了我所在二进制翻译研究组设计并实现的两个应用程序级的二进制翻译器:Digital Bridge和Digital Bridge V2。两个系统都是在linux下,把elf格式的x86文件翻译到GODSON(类MIPS)指令集并在GODSON服务器上运行。前者是纯动态的翻译器,后者是以前者为基础的动静结合的翻译器。本文的主要贡献如下:1.提出了动态二进制翻译标志位处理优化算法,简化了基本块间的标志位分析,采取分析后继的方法减小了算法开销。尤其对于每条算术指令都能对标志位定值的x86这类CISC体系结构,基本能把标志位冗余计算消除,提升了翻译代码的质量。统计结果表明,这种简化是切实可行、并具有普遍适用性的,可以在二进制翻译或者模拟器中有效加快运行速度。2.异常处理是二进制翻译中一个十分重要的问题,本文提出了两个针对应用级程序二进制翻译的异常处理方法。绝大部分的应用程序不会使用异常之前的机器状态或者也有可能不发生异常,所以我们在保证正确性的前提下,放弃了对机器状态副本的维护,使效率得到了保障,同时正确翻译执行了异常的处理函数,以最小的代价,把信号异常处理机制加入到了翻译系统中。为了在库函数包装这个层面上快速处理c++中的异常抛出以及重新抛出的问题,我们提出了动态栈展开的思想,从而得到本该静态编译阶段才可以得到的函数调用关系,分析得到caller调用callee的准确地址,用于异常区间的检查。3.寄存器的使用效率是决定程序性能的关键因素之一,本文提出了适用于动态二进制翻译的翻译制导寄存器分配方法。相比于静态编译器所使用的图着色算法,以及动态系统所使用的线性扫描寄存器分配算法,开销都小得多,但翻译器的寄存器使用效率很好,完全充分利用了各个寄存器,避免了寄存器相关而导致的指令延时。4.作者参与设计并实现了两个二进制翻译系统,并把上述优化都分别运用到了这两个系统中。在DB V2系统中还采用了一系列优化技术提高翻译效率,例如库

论文目录

  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 二进制翻译技术的产生背景
  • 1.2 二进制翻译概述
  • 1.2.1 实现方法分类
  • 1.2.2 翻译对象分类
  • 1.3 二进制翻译面临的挑战和机遇
  • 1.3.1 存储器相关问题
  • 1.3.2 体系结构相关问题
  • 1.3.3 代码挖掘问题
  • 1.3.4 二进制翻译的相关法律问题
  • 1.3.5 本文研究契机
  • 1.3.6 本文研究内容
  • 1.4 文章组织
  • 第二章 二进制翻译现况综述
  • 2.1 二进制翻译技术发展历史概述
  • 2.2 单一源和目标的二进制翻译系统
  • 2.2.1 FX!32 系统
  • 2.2.2 Aries 系统
  • 2.2.3 Daisy 系统
  • 2.2.4 BOA 系统
  • 2.2.5 Code Morphing 软件
  • 2.2.6 IA32 EL 软件
  • 2.3 可变源和目标的二进制翻译系统
  • 2.3.1 UQBT 和UQDBT 系统
  • 2.3.2 Bintran 系统
  • 2.3.3 QuickTransit 软件
  • 2.4 动态优化系统
  • 2.4.1 Dynamo 系统
  • 2.4.2 Java 的JIT
  • 2.5 本章小结
  • 第三章 动态二进制翻译标志位处理优化
  • 3.1 引言
  • 3.2 标志位处理对性能的影响
  • 3.3 相关工作
  • 3.4 EfLA 算法
  • 3.4.1 概述
  • 3.4.2 标志位线性分析算法
  • 3.4.3 基于动态反馈的EfLA 算法
  • 3.4.4 算法应用实例
  • 3.4.5 算法效果比较
  • 3.5 实验数据分析
  • 3.5.1 基于动态反馈的EfLA 试验数据
  • 3.5.2 EfLA 算法试验数据
  • 3.6 总结
  • 第四章 二进制翻译应用级程序的异常优化处理
  • 4.1 引言
  • 4.2 背景介绍
  • 4.2.1 二进制翻译中异常处理介绍
  • 4.2.2 相关工作
  • 4.3 应用程序级异常处理方法
  • 4.3.1 应用程序级二进制翻译中的异常
  • 4.3.2 信号Signal 异常的处理
  • 4.3.3 try catch 异常的处理
  • 4.4 实验数据
  • 4.4.1 Digital Bridge 系统简介
  • 4.4.2 try …catch 异常测试用例
  • 4.4.3 spec2000 int 测试用例
  • 4.5 结论
  • 第五章 适应动态二进制翻译的寄存器分配优化技术
  • 5.1 引言
  • 5.2 相关工作
  • 5.3 翻译制导的二进制翻译寄存器分配算法
  • 5.3.1 翻译制导
  • 5.3.2 算法流程
  • 5.3.3 算法复杂度、效果分析
  • 5.4 实验数据
  • 5.5 结论
  • 第六章 二进制翻译器的设计实现
  • 6.1 动态翻译器Digital Bridge
  • 6.1.1 系统框架
  • 6.1.2 实验结果及分析
  • 6.2 动静结合翻译器 Digital Bridge V2
  • 6.2.1 系统框架
  • 6.2.2 优化技术
  • 6.2.3 实验数据分析
  • 第七章 总结和将来的工作
  • 7.1 本文工作总结
  • 7.2 下一步研究方向
  • 参考文献
  • 致谢
  • 作者简历
  • 相关论文文献

    • [1].二进制翻译中标志位的模式化翻译方法[J]. 计算机研究与发展 2014(10)
    • [2].浅析8086CPU的进位标志位、溢出标志位[J]. 科技资讯 2011(20)
    • [3].动态二进制翻译中的标志位优化算法[J]. 浙江大学学报(工学版) 2014(01)
    • [4].标志位频谱感知方法研究[J]. 物理学报 2011(11)
    • [5].《可编程控制器》课程中错误和算术标志位的理解与教学[J]. 企业科技与发展 2008(16)
    • [6].试分析FLAGS中各状态标志位的状态[J]. 电脑知识与技术 2008(09)
    • [7].“微机原理”课程中溢出标志位的讲授方法[J]. 计算机教育 2008(04)
    • [8].面向ARM平台的二进制翻译系统标志位优化[J]. 计算机工程 2014(10)
    • [9].基于激活标志位的改进RFID密钥无线生成算法[J]. 计算机应用研究 2019(11)
    • [10].X86系统仿真中软硬协同标志位处理优化方法[J]. 计算机工程与设计 2014(07)
    • [11].TD-SCDMA中CRC的DSP实现[J]. 电子产品世界 2013(08)
    • [12].算术运算指令对条件标志位的影响[J]. 福建电脑 2012(04)
    • [13].浅析汇编语言中数大小的比较[J]. 电脑知识与技术 2010(21)
    • [14].一种支持视频检索的对象标志位编码算法[J]. 计算机工程 2014(12)
    • [15].C51编程中的自定义“位”及其保存方案[J]. 单片机与嵌入式系统应用 2010(06)
    • [16].基于多个连续数据复制的幂次划分数据压缩方法[J]. 安庆师范学院学报(自然科学版) 2015(03)
    • [17].浅析PLC程序的串口通讯模块化开发[J]. 机电工程技术 2016(02)
    • [18].一种适用于FPGA系统中的变速箱电路设计[J]. 电子与封装 2016(10)
    • [19].密文数据库查询优化技术[J]. 计算机系统应用 2010(08)
    • [20].氡析出率测量仪的人机交互程序设计[J]. 南华大学学报(自然科学版) 2013(01)
    • [21].一种大容量的信息隐藏方法[J]. 计算机工程与应用 2010(23)
    • [22].基于导航雷达记录回放仪接口板的设计与实现[J]. 信息技术 2011(11)
    • [23].ZigBee协议在工控组态软件中变量交换的实现[J]. 沈阳工程学院学报(自然科学版) 2013(02)
    • [24].三菱N∶N网络在自动生产线的应用[J]. 设备管理与维修 2013(09)
    • [25].带标志位的均匀性特征检测SIFT配准算法研究[J]. 计算机工程与应用 2012(34)
    • [26].QR码信息加密的研究与实现[J]. 铁路计算机应用 2012(11)

    标签:;  ;  ;  ;  ;  ;  

    动态二进制翻译优化研究
    下载Doc文档

    猜你喜欢