共查询到20条相似文献,搜索用时 15 毫秒
1.
二进制翻译中的库函数处理 总被引:1,自引:1,他引:0
在二进制翻译技术中,快速有效地处理系统库函数调用是一个值得研究的课题.基于动静结合二进制翻译技术,提出一种对系统库函数进行分类处理的算法,能够很好地利用动静结合二进制翻译的技术特点和目标机本地的函数调用约定,减少不必要的内存操作,提高源二进制代码在目标机上的执行效率.该算法能够在系统库函数和系统调用之间灵活地切换,并且对于系统库函数有较强的适用性.经过大量的测试验证,在应用该算法后,Digital Bridge Version2系统不仅能够正确有效地处理系统库函数调用,并且性能有了很大的改善. 相似文献
2.
动态二进制翻译是解决一款指令集面临生态系统壁垒问题的主流技术,通过将二进制程序从源指令集翻译成目标指令集,可以在目标指令集的处理器上运行源指令集的应用程序. 动态二进制翻译技术的一大挑战是如何生成高质量的目标指令序列,尤其当源指令集和目标指令集存在差异时. 为探究该问题,以RISC-V64指令集为目标指令集,分析了当RISC-V64,RISC-V32,MIPS32,x86分别作为源指令集时,影响动态二进制翻译技术翻译质量的因素. 针对这些因素,分别提出相应优化方法,并借助RISC-V B扩展和RISC-V P扩展中的部分指令提升翻译质量. 最后,提出一个新的动态二进制翻译程序DBT-FEMU实现优化. 在模拟器和FPGA中的评估数据显示,运行SPEC CPU2006的整数基准程序时,优化方法可使目标程序所执行的动态指令数平均减少57%,平均性能达QEMU-i386的4.12倍.
相似文献3.
4.
库函数包装是在动态二进制翻译过程中将源二进制程序的库函数调用直接转嫁到目标机上的库函数调用,以此提高动态二进制翻译系统的性能。针对目前动主流的库函数手动包装技术,提出一种基于GCC的动态二进制翻译中库函数的自动包装技术,无需对库函数分别进行人工包装,节省了大量的工作,同时也降低了包装过程中出错的可能性。实验结果表明,通过库函数自动包装技术,动态二进制翻译器qemu的性能有了3%~5%的提升。 相似文献
5.
动态二进制翻译与优化技术研究 总被引:2,自引:1,他引:2
动态二进制翻译技术是一种即时编译技术,它将针对源体系结构编译生成的二进制代码(源机器码)动态翻译为可以在目的体系结构上运行的代码(翻译码).动态优化技术是指在运行时获取动态信息并进行代码优化的技术.动态二进制翻译及优化系统使得源软件无需重编译就可以直接在目标体系结构上高效地运行.目前几种比较有影响的动态二进制翻译及优化系统有Intel公司的IA-32 Execution Layer,IBM公司的DAISY,Transmeta的CMS及HP的Dynamo等.这些系统对动态二进制翻译系统关键技术有不同的实现.对动态二进制翻译和优化技术的研究是计算机领域的研究热点,具有深远的现实意义和应用前景. 相似文献
6.
提出动态二进制翻译的两种优化方案:基本块和热路径;分析了从代码中抽取值得优化部分的详细过程;同时也给出针对这两种方案的一些优化方法.最后简单介绍了当前一些动态二进制翻译系统所采用的优化技术. 相似文献
7.
在二进制翻译中,库函数本地化处理是指不直接翻译源文件中的库函数而是使用本地目标机的库函数进行替换,以此提高翻译性能。针对国产平台二进制翻译中库函数处理翻译模式的相关特性,提出一种库函数解析处理机制,借助helper函数实现库函数替换操作。通过修改基本块划分规则,将库函数替换部分翻译的基本块进行合并,构建超级块,减少源程序中基本块划分数量与程序执行跳转次数,在保证翻译正确性基础上有效提高翻译效率。在动态二进制翻译器QEMU上进行的实验结果表明,与未优化的库函数处理翻译方式相比,翻译后程序加速比平均提升9%,有效提高了翻译效率。 相似文献
8.
9.
10.
依据对系统级程序行为特性的观察,提出了一种基于热例程的动态二进制翻译优化方法。该方法以频繁执行的例程作为优化单位,通过块内和块间优化算法消除动态二进制翻译引入的冗余。相比基于踪迹的优化方法,该方法具有优化单位发现开销更小、代码区域更大、无重复翻译等优点,更适用于系统虚拟机中操作系统代码的优化。在跨平台系统虚拟机监控器ARCH-BRIDGE上的测试表明,通过对内核代码实施该优化方法,SPEC CPUINT 2006程序的效率提升了3.5%~14.4%,相比基于踪迹的优化,性能最大提升了5.1%。 相似文献
11.
12.
传统的静态编译器优化存在着各种限制,为此,提出了一种运行期动态优化的对策。在程序的执行过程中,持续检测程序运行的profile信息,并根据这些信息对程序代码进行优化变换,创建并运行程序代码的优化版本。这种运行期动态优化操作是直接针对程序的二进制代码的,不针对程序语言或编译器。这不仅带来优化的透明性,还使得老版本的源代码即遗留代码也可以从优化技术中获得性能提升。 相似文献
13.
动态二进制翻译系统是根据程序的动态执行信息来将源机器上的可执行代码翻译成目标机器上的可执行代码.在翻译成中间表示的过程中会产生一些冗余的LOAD指令,为提高代码的执行效率,提出对这些LOAD指令进行冗余删除优化.该优化技术可以使优化效果超过其自身的开销,达到优化的目的. 相似文献
14.
二进制翻译应用级异常处理 总被引:2,自引:2,他引:0
二进制翻译可以用于解决遗产代码的迁移问题,也可以实现不同硬件平台之间软件的通用.异常处理是二进制翻译的一个重要方面,如何解决异常处理和二进制翻译效率的矛盾是问题的关键.提出了在库函数包装层面处理主动异常和被动异常的方法,一个算法可以高效处理信号异常,另一个算法使用栈展开技术,得到调用地址用于处理try catch异常.实验结果表明,上述方法能够正确处理异常函数,同时对于普通应用程序加入异常处理机制之后性能并不受影响. 相似文献
15.
静态二进制翻译的入口点通常为main函数,所以main函数执行之前的动态地址解析部分就无法在目标机上恢复。通过分析基于ELF文件的动态地址解析机制,提出了在目标代码中插入代码模拟动态地址解析的方法来解决该问题。该方法已在静态二进制翻译项目中实现,测试结果表明该方法是有效的。 相似文献
16.
体系结构设计经常要在代码兼容和结构创新之间进行折衷。保证代码兼容的体系结构难以引入创新性的体系结构技术,或者导致最终结构变得相当复杂。本文提出一种基于动态二进制翻译优化的可扩展处理器结构VISA。VISA在实现兼容的前提下拓展了体系结构设计的空间。模拟结果显示,VISA性能优于现有的动态二进制翻译优化框架,并有更高
高的性能潜力和扩展空间。 相似文献
高的性能潜力和扩展空间。 相似文献
17.
动态优化是动态二进制翻译研究中一个十分重要的课题,数据预取优化能提高现代处理器体系结构应用程序性能。基于超级块(Superblock)的动态数据预取优化采用软件插桩方式收集应用程序的load访存延迟信息并构造Superblock;然后根据延迟信息以及Superblock数据流分析得出的寄存器定值引用关系,对延迟load指令进行预取优化。通过在龙芯DigitalBridge动态二进制翻译系统上实验验证,数据预取优化可以提高翻译后SPEC2000浮点测试程序代码的平均性能3.3%,开销远小于0.5%。 相似文献
18.
19.
20.
复杂指令集计算机体系结构向精简指令集计算机体系结构的动态二进制翻译过程中经常出现地址不对界的问题。本文以I386到Alpha平台的动态二进制翻译为例,研究了内存映射时的不对界和数据存取时的不对界问题,提出了一种改进的内存映射方法以及在中间表示层处理不对界地址访存问题的方案,有效地解决了此类问题。经实验验证,该方法正确并有较高效率。 相似文献