动态二进制翻译的静态优化架构研究

动态二进制翻译的静态优化架构研究

论文摘要

二进制翻译(Binary Translation)是指在不需要可执行程序源代码的情况下,将源机器平台上的二进制程序经过一定的转换之后运行在目标机器平台上的过程。动态二进制翻译是二进制翻译技术的重要分支,通常的过程是边翻译边执行,并在执行期对目标代码进行动态优化。动态二进制翻译为解决代码遗留,代码移植以及构建分布式虚拟计算环境等问题提供了一个良好的解决方法,因此在近年来得到了越来越广泛的关注和研究。如何提高动态二进制翻译系统的性能,是每个动态二进制翻译系统亟需解决的问题之一。传统的动态二进制翻译系统大量采用基于Profile信息的动态优化技术。然而,动态优化过程的所有工作都是在运行时完成,在获取Profile信息和进行目标代码优化时,自身付出的性能损耗是不得不考虑的问题。同时,Profile所获得信息的丰富程度又直接影响着后续优化算法的效果。因此,如何在动态优化的性能开销和优化效果中找到平衡是二进制翻译的研究者和开发者面临的巨大难题。为解决优化过程的开销和效果之间的矛盾,本文的研究目的是通过提出一种适用于动态二进制翻译的静态优化架构(Sinof),既有效的屏蔽Profiling过程和优化算法的性能开销,同时又对目标代码进行深入的优化,由此得到大约30%-50%的执行性能提升。其原理是通过在源代码首次翻译执行时,收集丰富的Profile信息,并将这些信息和目标代码保存。在静态环境下,根据这些信息对目标代码进行深入的优化。在之后的翻译执行中,复用这些优化后的目标代码,从而得到较大的性能提升。本文的主要创新点和意义有:1)开发出一种适合于动态二进制翻译的静态优化架构,有效的屏蔽Profiling技术和优化策略的性能开销;2)设计了一种基于边之间关系的Profiling技术,为后续的优化方案作充足的信息准备;3)实现了在静态环境下利用Profile信息识别热路径,调整代码块相对位置;4)利用Profile信息在静态环境下实现链接,进一步减少了上下文切换次数和系统开销;5)记录可重定位信息,使目标代码拥有可重定向性,使之在以后程序执行时可被复用。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景
  • 1.2 研究目标
  • 1.3 本文的主要工作
  • 1.4 本文结构
  • 第二章 二进制翻译技术介绍
  • 2.1 二进制翻译系统的组成
  • 2.2 二进制翻译技术的分类
  • 2.2.1 代码解释执行
  • 2.2.2 静态二进制翻译
  • 2.2.3 动态二进制翻译
  • 2.2.4 三种翻译技术比较
  • 2.3 常见二进制翻译系统介绍
  • 2.4 Crossbit简介
  • 2.4.1 Crossbit的系统框架
  • 2.4.2 Crossbit的内存布局
  • 2.4.3 Crossbit的中间指令
  • 2.4.4 Crossbit的工作流程
  • 2.4.5 Crossbit的性能评测
  • 2.5 二进制翻译技术面临的挑战
  • 2.6 本章小结
  • 第三章 动态二进制翻译中的优化技术
  • 3.1 动态二进制翻译中的Profiling
  • 3.2 热路径识别策略
  • 3.2.1 基于基本块Profile信息的热路径识别
  • 3.2.2 基于跳转边Profile信息的热路径识别
  • 3.2.3 基于路径Profile信息的热路径识别
  • 3.2.4 NET动态热路径预测策略
  • 3.3 超级块的生成策略
  • 3.4 基于硬件采样的动态优化
  • 3.5 中间语言优化
  • 3.5.1 基本块内优化
  • 3.5.2 基本块间优化
  • 3.6 动态优化技术的不足
  • 3.7 本章小结
  • 第四章 动态二进制翻译的静态优化架构实现
  • 4.1 编译技术中的动静结合
  • 4.2 二进制翻译中的动静结合
  • 4.2.1 DigitalBridge系统简介
  • 4.2.2 FX!32 系统介绍
  • 4.3 静态优化架构设计与实现
  • 4.3.1 信息收集阶段
  • 4.3.2 静态分析阶段
  • 4.3.3 代码加载阶段
  • 4.4 动静结合的优化方法设计与实现
  • 4.4.1 热路径的识别
  • 4.4.2 目标代码调整
  • 4.4.3 静态实现链接
  • 4.4.4 相对地址回填
  • 4.5 本章小结
  • 第五章 动态二进制翻译的静态优化架构性能评测
  • 5.1 评测范畴
  • 5.2 性能测试
  • 5.3 量化分析
  • 5.4 本章小结
  • 第六章 总结与展望
  • 6.1 全文总结
  • 6.2 未来展望
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文目录
  • 相关论文文献

    • [1].单相桥式逆变器SPWM目标代码自动生成研究[J]. 电力电子技术 2009(11)
    • [2].基于Matlab/RTW的单相桥式逆变器SPWM目标代码自动生成研究[J]. 华东交通大学学报 2009(04)
    • [3].基于RTW的2H桥逆变器SPWM目标代码自动生成[J]. 电力电子技术 2009(11)
    • [4].基于Matlab的2H级联逆变桥目标代码自动生成[J]. 电力电子技术 2013(07)
    • [5].嵌入式软PLC系统的研究和实现[J]. 计算机工程 2009(10)
    • [6].如何实现C语言编程输出空心菱形[J]. 电脑编程技巧与维护 2011(01)
    • [7].前言[J]. 计算机研究与发展 2012(09)
    • [8].编译原理的优化系统研究[J]. 科技创新导报 2008(22)
    • [9].目标代码静态反汇编技术研究与实现[J]. 现代计算机(专业版) 2010(03)
    • [10].基于XML的办公自动化系统可视化生成平台[J]. 福建电脑 2008(08)
    • [11].一种改进算法的低功耗嵌入式系统代码压缩设计[J]. 微电子学与计算机 2016(05)
    • [12].对计算机程序保护中“同一作品”原则的质疑——兼评《著作权法(修订草案送审稿)》第5条第15项[J]. 知识产权 2016(06)
    • [13].系统级动态二进制翻译器的中断处理策略[J]. 计算机工程 2008(22)
    • [14].论计算机软件还原工程的合法性及其立法完善[J]. 法制与社会 2009(08)
    • [15].二进制翻译中代码生成的子图覆盖算法[J]. 计算机科学与探索 2011(07)
    • [16].基于STC89C51制作的具有记录天亮天黑时间功能的时钟[J]. 电子世界 2011(14)
    • [17].鉴定木马程序来源的两种方法[J]. 中国司法鉴定 2009(03)
    • [18].ZSP400目标代码优化算法的设计[J]. 重庆邮电大学学报(自然科学版) 2011(04)
    • [19].使用梯形图编程进行单片机应用系统开发[J]. 电世界 2016(09)
    • [20].一种改进的TIC6xDSP系统的快速自举方式[J]. 兵工自动化 2014(08)
    • [21].单片机的PLC编译程序设计[J]. 计算机应用与软件 2008(08)
    • [22].《C程序设计》教学经验初探[J]. 中小企业管理与科技(下旬刊) 2016(05)
    • [23].嵌入式软PLC开发系统研究[J]. 科学技术与工程 2011(03)

    标签:;  ;  ;  

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

    猜你喜欢