首页> 中文学位 >基于动态二进制翻译的龙芯虚拟机中数据预取优化研究
【6h】

基于动态二进制翻译的龙芯虚拟机中数据预取优化研究

代理获取

目录

文摘

英文文摘

论文说明:图表目录

声明

第1章绪论

1.1研究意义

1.2研究背景

1.2.1二进制翻译技术简介

1.2.2动态优化技术简介

1.3研究内容及文章组织

第2章 论文实验测试平台-龙芯3号虚拟机介绍

2.1虚拟机技术概述

2.2龙芯3号体系结构

2.3龙芯3号虚拟机

2.4论文实验测试框架介绍

第3章超级块构造及性能分析

3.1基本块、Trace及超级块介绍

3.2动态优化系统中Trace构造相关工作

3.3超级块构造方案

3.3.1基本块及访存指令插桩

3.3.2代码缓存管理及本地码链接

3.3.3间接跳转处理

3.4实验数据及分析

3.5小结

第4章基本数据预取方案

4.1数据预取相关工作

4.2延迟访存指令识别及分类

4.3基本数据预取优化策略

4.3.1循环超级块迭代预取

4.3.2非循环超级块提前预取

4.4实验数据及分析

4.5小 结

第5章基于数据流分析的预取方案

5.1数据流分析及寄存器定值引用图构造

5.2循环预取方案中冗余指令消除

5.3数据预取策略

5.3.1依赖预取

5.3.2相关性预取

5.3.3整合预取

5.4实验数据及分析

5.5小 结

结论

参考文献

致谢

附录A 攻读学位期间发表的论文及参与的科研项目

展开▼

摘要

二进制翻译作为实现代码移植的一种软件手段,能将某一体系结构下的可执行二进制程序在没有其源代码的情况下翻译转换成能在其它体系结构下运行的二进制代码。动态二进制翻译就是边翻译边执行,并在翻译的过程中进行动态优化。随着微处理器技术、编译技术的发展,二进制翻译逐渐成为研究的一个热点方向,在虚拟化技术、分布式计算及信息安全等方面得到了广泛重视。当前,微处理器频率不断提高,而内存频率的提升进展缓慢,其性能差距越来越大,对内存的访问早成为制约程序性能的瓶颈。作为访存优化的一种重要方法,数据预取可以将随后使用的数据提前读进高速缓存,这样能有效隐藏访存延迟,提高程序性能。 本文在动态二进制翻译系统中对数据预取优化进行研究。首先结合龙芯处理器的硬件特性,采用软件插桩方式收集应用程序的访存指令其执行周期及步长变化信息来识别发生Cache缺失的延迟指令,并依此进行分类,接着对程序中的热代码构造数据预取优化单元--超级块(SuperBlock),在此基础上实现了SuperBlock基本数据预取方案。最后,通过对SuperBlock进行数据流分析得出的寄存器定值引用关系,提出了基于访存指令地址计算分量列表等不同预取优化策略。 通过在龙芯3号虚拟机上实验验证,SuperBlock构造在开销小于1%的情况下能够提高翻译后SPEC2000整点测试程序的平均性能达10%。虽然数据预取对于整点测试集没有明显的优化效果,但可以对翻译后浮点测试程序达到3.3%的性能加速比,而其SuperBlock构造及预取分析开销远小于0.5%。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号