首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到15条相似文献,搜索用时 82 毫秒
1.
二进制翻译中的标志位优化技术   总被引:2,自引:0,他引:2  
在二进制翻译技术中,如何有效降低对源指令集体系结构标志位的模拟开销是一个值得研究的课题.分别针对二进制翻译中的解释执行和动态翻译,提出了相应的标志位模拟优化算法,能够有效地减少翻译生成的目标代码数量,提高目标代码性能.经过大量测试验证,在应用该标志位模拟优化算法后,Digital Bridge系统翻译生成的目标代码量是源体系结构目标代码量的120%,而没有应用该优化算法时该比例是250%,作为对比系统UQDBT系统的比例是150%.  相似文献   

2.
二进制翻译系统是不同平台之间代码移植的桥梁,而系统性能是制约其应用的主要因素。在二进制翻译中,翻译经过标志位分析处理后的非冗余标志位需要较多的指令,极大影响了系统的性能。针对该问题,提出一种标志位的模式优化方法,在标志位分析处理基础上,将定值标志位和使用标志位的ARM指令组成固定模式,根据不同的模式用MIPS指令组合翻译达到相同的语义。实验结果表明,利用标志位的模式优化方法可使翻译产生的MIPS代码量减少14%,系统性能平均提高13.7%。  相似文献   

3.
针对二进制翻译器QEMU(quick emulator)在寄存器映射时未考虑基本块之间以及循环体之间对寄存器需求的差异,造成不必要的寄存器溢出而导致的冗余访存开销问题,引入全局寄存器静态映射和局部寄存器动态分配思想,提出高效的基于优先级的动静结合寄存器映射优化算法.该算法首先基于源平台不同寄存器使用的统计特征和各变量的生命周期,静态进行全局寄存器映射;然后依据中间表示与源平台寄存器之间的映射关系,获取基本块中间指令需求寄存器次数并排序确定寄存器分配的优先级;之后依据优先级顺序动态进行寄存器分配,从而减少寄存器溢出次数,降低生成的本地代码的膨胀率以及访存次数,提高目标程序性能.对NBENCH、典型的递归程序和SPEC2006的测试表明:该算法有效地减少了本地代码的访存次数,提高了程序性能,平均比优化前性能分别提升了8.67%, 825%, 8.10%.  相似文献   

4.
二进制翻译是不同体系结构之间软件移植的重要手段。体系结构和硬件环境上的差别,可以通过二进制翻译系统来弥补,在翻译过程中往往使用多条本地指令模拟一条目标指令,翻译代码规模随之显著增加,从而导致被翻译程序的执行效率下降。寄存器作为处理器和内存交换信息的重要存储部件,寄存器的模拟器方式对于程序的性能有着至关重要的影响。为了提高特定平台翻译后代码的执行效率,提出了在动态二进制翻译机制中使用全部寄存器直接映射方法,详细分析了二进制翻译中的上下文切换原理和寄存器访问范围,为异构平台之间寄存器直接映射提供方法指导。利用QEMU模拟器,把x86架构的8个通用寄存器全部的直接映射到MIPS架构的对应寄存器,在此基础上,进行大量的指令翻译规则的简化。实验数据表明,该方法可以有效简化指令翻译,降低代码膨胀率,使得SPEC CINT 2000测试程序在龙芯CPU上翻译后代码运行时间下降了30%-40%。  相似文献   

5.
如何进行异构机之间可执行程序的高效移植是二进制翻译面对的难点问题.从寄存器映射的角度分析了这一问题,提出了分段映射和特殊寄存器功能剪裁相结合的方法,以trend系统为平台进行了实验和测试.NPB-serail测试包和SPEC2000测试包的测试结果显示:使用该方法,可以简化指令翻译,减少代码膨胀,有效提高翻译后代码的执行效率.  相似文献   

6.
提出动态二进制翻译的两种优化方案:基本块和热路径;分析了从代码中抽取值得优化部分的详细过程;同时也给出针对这两种方案的一些优化方法.最后简单介绍了当前一些动态二进制翻译系统所采用的优化技术.  相似文献   

7.
讨论动态二进制翻译器DigitalBridge的动态优化设计与实现,给出了基于edge profile的热路径选择算法FHFS,在热路径上实施了基于模式匹配的指令组合优化翻译和标志位延迟计算的优化。实验结果表明,优化后动态翻译的性能平均提高40%。  相似文献   

8.
唐锋  武成岗  冯晓兵  张兆庆 《软件学报》2007,18(7):1603-1611
二进制翻译可以用于解决遗产代码的迁移问题,也可以实现不同硬件平台之间软件的通用.如果源平台通过标志位进行条件跳转,那么如何处理标志位就成为翻译中的一个重要问题,对翻译的代码质量起着决定性作用.提出标志位线性分析算法,复杂度为线性,基本上能够消除所有的标志位冗余计算,提高了动态执行的效率.基于动态profiling技术,消除了间接跳转的基本块标志位冗余计算.分析了spec 2000中的大部分整点测试例子,实验结果表明,EfLA(Eflag linear analysis)算法对于大运算量的程序是非常有效的.  相似文献   

9.
动态二进制翻译提供了无需重新编译源代码就能将源机器生成的可执行代码自动转换到目标机器的方法,很好地解决了代码兼容性问题.其核心思想是根据程序的动态运行信息找到反复执行的代码序列,对代码序列进行翻译和优化,并将结果多次重用.指令调度作为一种有效的编译优化手段,也适用于动态二进制翻译.在对gcc的指令调度器分析研究的基础上,结合动态二进制翻译的实时性特点,提出了适合动态二进制翻译的效率高、开销小的指令调度算法.  相似文献   

10.
通过对比分析静态与动态二进制翻译系统,描述了基于机器状态的二进制翻译形式化模型。该形式化模型在实践上对于二进制翻译工程具有理论指导作用,并且可为保证翻译过程及结果的正确性提供理论基础。  相似文献   

11.
动态二进制翻译与优化技术研究   总被引:2,自引:1,他引:2  
动态二进制翻译技术是一种即时编译技术,它将针对源体系结构编译生成的二进制代码(源机器码)动态翻译为可以在目的体系结构上运行的代码(翻译码).动态优化技术是指在运行时获取动态信息并进行代码优化的技术.动态二进制翻译及优化系统使得源软件无需重编译就可以直接在目标体系结构上高效地运行.目前几种比较有影响的动态二进制翻译及优化系统有Intel公司的IA-32 Execution Layer,IBM公司的DAISY,Transmeta的CMS及HP的Dynamo等.这些系统对动态二进制翻译系统关键技术有不同的实现.对动态二进制翻译和优化技术的研究是计算机领域的研究热点,具有深远的现实意义和应用前景.  相似文献   

12.
寄存器旋转技术为每一个循环迭代都提供一组专用的寄存器,从而减少对循环展开的需求。针对如何在IA-64二进制翻译中处理旋转寄存器的问题,提出一种在二进制翻译器的后端直接模拟寄存器旋转特性的解决方案,实验结果证明了该方法在二进制翻译中处理软件流水操作代码的有效性。  相似文献   

13.
机器码翻译是把机器码转换成汇编代码的过程, 常用于反汇编、程序调试、病毒分析等领域. 机器码翻译依赖于描述指令集的一系列表格, 包括指令格式表、操作码表、寻址方式表等. 传统的机器码翻译方法, 通过逐步查询这些表格, 找到对应机器码的汇编码, 从而实现翻译. 由于传统方法查表过程复杂, 导致其翻译速度较慢. 本文提出了基于模式匹配的方法, 通过简化机器码翻译的查表过程, 从而在一定程度上提高机器码翻译速度. 同时, 采用该方法实现的程序开发时间更短、后期维护更容易.  相似文献   

14.
提出一种二进制翻译中代码Cache管理的LRC(Level-Region-Chunk)策略.其兼具全清空策略、FIFO策略和多级Cache的优点,并且考虑了程序的时间空间局部性、执行特性和替换开销,具有较好的性能,实现了代码Cache的高效管理.  相似文献   

15.
二进制翻译中解析多目标分支语句的图匹配方法   总被引:1,自引:0,他引:1  
二进制翻译技术现已成为实现软件移植的重要手段.在二进制翻译系统中,如何有效地挖掘程序的代码并对其进行高效翻译是影响系统性能的关键,而二进制代码中间接跳转语句的存在,使得静态时难以得到它的跳转目标,影响了代码的发掘率和最终的翻译效果.在通常的应用程序中,间接跳转指令经常用来实现多目标分支语义,分支目标存放在跳转表中.提出了一种解析多目标分支语句及其跳转表的方法,能够挖掘出间接跳转的目标,进而对其进行有效翻译并提高二进制翻译系统的性能.该方法提出使用语义图来对预期语义进行刻画和表达.语义图能够对考察的指令序列进行语义提取,识别出与预期语义相匹配的指令流,还可以应对编译器在不同优化选项下生成的指令,并能有效滤除不相关指令带来的干扰.实验结果表明,对于SPEC CINT2000中的部分测试用例,代码翻译的覆盖率可以提高9.85%~22.13%,相应带来的性能提升可达到8.30%~17.71%,而使用的算法时间复杂度仅为O(1).  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号