动态翻译和优化若干关键技术研究

动态翻译和优化若干关键技术研究

论文摘要

动态翻译技术是一种即时编译技术,它将针对源体系结构编译生成的源机器码动态翻译为可以在目的体系结构上运行的翻译码。动态优化技术是指在软件运行时获取动态信息并进行代码优化的技术。动态翻译及优化技术在动态二进制翻译系统、动态二进制优化系统和高级语言虚拟机中得到了广泛的应用和研究。这些技术对遗产代码移植、硬件设计、程序性能提高、网络应用、系统安全、并行编程模型等方面都有重要的意义。动态翻译及优化技术已经成为现代编译技术研究的热点之一。本论文着重研究提高动态翻译和优化系统性能的一系列技术。首先,本文在深入探讨了动态二进制翻译系统中影响性能的主要因素的基础上,提出了注解信息制导的翻译及优化方法,来结合传统编译器和动态二进制翻译和优化系统以提高二进制代码在计算机系统上的运行性能。然后,本文针对源体系结构中的SIMD指令集,分析了翻译SIMD指令集的技术难点,并提出了翻译SIMD指令的优化翻译方法。再后,本文转向对动态翻译实用程序的研究,并针对模块化实用桌面程序中的“热”模块频繁装卸载问题提出了模块翻译复用方法,以降低反复翻译“热”模块引起的开销。最后,本文研究了高性能计算领域中Java程序内的数组边界检查问题,提出了利用自适应动态翻译方法来优化外提循环内的数组边界检查。本文的贡献在于:1.本文在比较分析动态二进制翻译生成的翻译码性能偏低原因的基础上,指出传统编译器在生成二进制代码的同时需要生成注解信息来指导该二进制代码的动态翻译及优化。本文给出了注解信息制导的动态二进制翻译及优化的整体框架,以及一种可扩展的注解信息参考格式。2.本文提出的SIMD数据类型分析算法可以在Itanium体系结构上高效地模拟IA-32 SIMD指令。该算法利用三个Itanium浮点寄存器和两个Itanium整数寄存器来映射一个XMM寄存器,并有效地解决这些映射寄存器之间的数据同步问题。该算法可以被扩展使用于任何多映射寄存器之间数据同步的场合。3.本文提出了针对SIMD指令翻译的一系列优化方法,以进一步提高SIMD代码的翻译质量。本文对SIMD指令优化翻译设计了三个算法:SIMD数据类型重分配算法,翻译时块间类型冲突消除算法及运行时块间类型冲突消除算法。它们通过消除块间类型冲突和降低翻译码块的执行代价来进一步提高翻译码的性能。4.本文提出了一种针对可装载软件模块的翻译重用引擎和内存管理机制以提高实用桌面程序的整体运行性能。实用桌面程序的动态翻译开销远远高于CPU2000标准程序。一部分实用桌面程序的一次运行通常多次装载卸载软件模块,且被多次反复装载与卸载的软件模块通常集中在一部分“热”软件模块。对这些软件模块的反复翻译非常费时,同时反复的翻译会带来大量的内存浪费。针对可装载软件模块的翻译重用引擎和内存管理机制解决了这些问题。5.本文利用自适应动态翻译方法解决了高性能计算中Java程序内的数组边界检查的循环外提问题。在高性能计算领域程序通常使用大量数组进行计算,而在Java语言中数组操作会引起数组边界检查。消除数组边界检查的一种有效手段为边界检查循环外提。现有的边界检查循环外提主要采用多版本方法:它将迭代空间划分为安全和非安全区域,然后在安全区域执行完全优化的代码而非安全区域执行非优化的代码。本文提出的自适应循环翻译算法从动态优化的角度更优化地解决这些问题。首先,在第一次编译循环时该算法仅产生优化版本,直到运行时边界检查失败后才生成非安全区的版本。其次,在产生非安全区的版本时,它利用动态信息使得区域划分和翻译码生成更加优化。

论文目录

  • 目录
  • 摘要
  • Abstract
  • 第一章 引言
  • 1.1 动态翻译与优化系统分类
  • 1.2 动态二进制翻译系统
  • 1.2.1 动态二进制翻译系统的基本框架
  • 1.2.2 有代表性的动态二进制翻译系统
  • 1.2.3 动态二进制翻译和优化带来的挑战
  • 1.3 动态二进制优化系统
  • 1.3.1 有代表性的动态二进制优化系统
  • 1.3.2 动态二进制优化系统的特点
  • 1.4 高级语言虚拟机
  • 1.4.1 有代表性的高级语言虚拟机
  • 1.4.2 高级语言虚拟机的特点
  • 1.5 研究热点
  • 1.6 论文贡献
  • 1.7 文章组织
  • 第二章 注解信息制导的翻译及优化
  • 2.1 引言
  • 2.2 利用注解信息提高翻译码效率
  • 2.2.1 弥补高级语言信息的缺失
  • 2.2.2 优化在体系结构差异时的翻译码质量
  • 2.2.3 保证程序级的兼容性
  • 2.3 注解信息制导二进制翻译及优化
  • 2.3.1 注解信息格式
  • 2.3.2 注解信息的采集和生成
  • 2.3.3 注解信息的读取和利用
  • 2.4 实验结果
  • 2.4.1 注解信息
  • 2.4.2 实验结果
  • 2.5 相关工作
  • 2.6 本章小结
  • 第三章 SIMD指令的优化编译
  • 3.1 引言
  • 3.2 SIMD扩展
  • 3.2.1 支持多媒体计算的SIMD扩展
  • 3.2.2 SIMD扩展指令简介
  • 3.2.3 Intel SSE/SSE2/SSE3指令集简介
  • 3.2.4 Itanium体系结构上的SIMD操作
  • 3.3 SIMD指令优化翻译的挑战和机遇
  • 3.4 翻译SIMD扩展指令的基本方法
  • 3.4.1 将XMM寄存器映射至Itanium寄存器
  • 3.4.2 类型冲突情况下的翻译码
  • 3.4.3 不同映射之间的数据同步指令
  • 3.4.4 SIMD格式寄存器
  • 3.4.5 最简单的SIMD指令翻译
  • 3.5 SIMD数据类型分析算法
  • 3.5.1 SIMD输入格式和输出格式
  • 3.5.2 SIMD输入式和输出式的计算
  • 3.5.3 检测及解决块内冲突
  • 3.5.4 类型分析算法
  • 3.5.5 检测和解决块间类型冲突
  • 3.5.6 将算法扩展适用于超块
  • 3.6 SIMD指令的优化翻译
  • 3.6.1 类型重分配算法
  • 3.6.2 翻译时消除算法
  • 3.6.3 运行时消除算法
  • 3.7 性能评估
  • 3.7.1 统计方法
  • 3.7.2 降低块间冲突引起数据同步开销
  • 3.7.3 类型重分配算法带来的好处
  • 3.7.4 总加速比
  • 3.8 相关工作
  • 3.9 本章小结
  • 第四章 针对实用桌面程序中可装载模块的动态二进制翻译方法
  • 4.1 引言
  • 4.2 动态装载模块的运行特征
  • 4.3 模块翻译重用引擎
  • 4.3.1 框架
  • 4.3.2 源机器码一致性检查
  • 4.3.3 实现上的考虑
  • 4.4 针对模块优化的内存管理机制
  • 4.5 性能评估
  • 4.5.1 实用桌面操作程序的运行负载
  • 4.5.2 数据和分析
  • 4.6 相关工作
  • 4.7 本章小结
  • 第五章 循环内数组边界检查的推测式外提
  • 5.1 引言
  • 5.2.推测式外提机制
  • 5.2.1 检查外提时的精确异常要求
  • 5.2.2 推测式外提机制
  • 5.3 自适应循环翻译算法
  • 5.3.1 自适应循环翻译算法描述
  • 5.3.2 多次应用自适应循环翻译算法的例子
  • 5.3.3 对多重循环的处理
  • 5.4 实验结果
  • 5.5 相关工作
  • 5.6 下一步工作
  • 5.7 本章小节
  • 第六章 总结与展望
  • 6.1 总结
  • 6.2 展望
  • 参考文献
  • 发表文章目录
  • 致谢
  • 相关论文文献

    • [1].二进制翻译中动静结合的寄存器分配优化方法[J]. 计算机研究与发展 2019(04)
    • [2].一种局部寄存器分配的优化策略[J]. 计算机应用与软件 2013(12)
    • [3].基于寄存器簇恢复的追踪信号选择方法[J]. 计算机学报 2018(10)
    • [4].基于优先级动态二进制翻译寄存器分配算法[J]. 浙江大学学报(工学版) 2016(07)
    • [5].降低寄存器软错误的静态寄存器重分配方法[J]. 计算机应用 2014(09)
    • [6].一种基于动态迁移技术的寄存器保护方法[J]. 计算机工程 2010(17)
    • [7].基于脉冲寄存器的高性能低功耗电路设计实现[J]. 微电子学与计算机 2009(06)
    • [8].结合的指令调度与寄存器分配技术[J]. 计算机应用研究 2008(04)
    • [9].用于安全集成电路的三相单轨脉冲寄存器[J]. 华中科技大学学报(自然科学版) 2020(04)
    • [10].数字信号处理器分布式寄存器的写回设计[J]. 微电子学与计算机 2013(07)
    • [11].适用于多核处理器的扩展寄存器文件设计[J]. 计算机工程 2012(15)
    • [12].基于寄存器窗口互相重叠的多核间数据交换方法[J]. 中国集成电路 2012(08)
    • [13].基于数据流分析的寄存器参数恢复方法[J]. 计算机工程 2009(22)
    • [14].C程序映射到FPGA的寄存器快速评估技术[J]. 小型微型计算机系统 2015(02)
    • [15].一种低功耗的多端口寄存器文件结构设计[J]. 中南大学学报(自然科学版) 2015(08)
    • [16].基于冗余寄存器分类的时序网络面积优化算法[J]. 微电子学与计算机 2012(07)
    • [17].一种应用加权相容图的可测性寄存器分配算法[J]. 小型微型计算机系统 2008(05)
    • [18].一种抗能量分析攻击的复合寄存器系统[J]. 密码学报 2014(05)
    • [19].基于映射表的寄存器文件设计以及编译器优化[J]. 电子学报 2008(02)
    • [20].基于网的寄存器分配冲突图研究[J]. 计算机工程 2010(11)
    • [21].寄存器插入环带宽性能及公平策略分析[J]. 计算机应用与软件 2010(10)
    • [22].一种寄存器压力敏感的指令投机调度技术[J]. 计算机研究与发展 2009(03)
    • [23].轻量级现场纠正的错误消除寄存器设计[J]. 浙江大学学报(工学版) 2017(03)
    • [24].一种基于分区域优先级的寄存器分配算法[J]. 电子与信息学报 2013(12)
    • [25].一种可重构线性反馈移位寄存器设计[J]. 通信技术 2010(08)
    • [26].元数据展开的动态二进制翻译寄存器化优化[J]. 小型微型计算机系统 2008(10)
    • [27].PLC保存型寄存器数量不足问题的探讨[J]. 电子测试 2018(07)
    • [28].增强型虚拟寄存器轮转算法[J]. 网络与信息安全学报 2018(05)
    • [29].高速5端口寄存器文件的设计与实现[J]. 微电子学与计算机 2009(01)
    • [30].基于三层防护的CAN寄存器翻转恢复方法[J]. 国外电子测量技术 2016(12)

    标签:;  ;  ;  ;  ;  ;  

    动态翻译和优化若干关键技术研究
    下载Doc文档

    猜你喜欢