收藏本站
收藏 | 手机打开
二维码
手机客户端打开本文

动态二进制翻译优化研究

唐锋  
【摘要】: 二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,不仅在遗产代码移植而且在程序性能提高等其它方面都有重要的意义。本文首先综述了二进制翻译的研究现状以及基本原理和方法。针对动态二进制翻译,本文提出了若干种优化方案:提高在目标机器上模拟源机器标志位效率的EfLA算法;处理应用级主动异常和被动异常的两个算法;翻译制导的寄存器优化算法。本文介绍了我所在二进制翻译研究组设计并实现的两个应用程序级的二进制翻译器:Digital Bridge和Digital Bridge V2。两个系统都是在linux下,把elf格式的x86文件翻译到GODSON(类MIPS)指令集并在GODSON服务器上运行。前者是纯动态的翻译器,后者是以前者为基础的动静结合的翻译器。 本文的主要贡献如下: 1.提出了动态二进制翻译标志位处理优化算法,简化了基本块间的标志位分析,采取分析后继的方法减小了算法开销。尤其对于每条算术指令都能对标志位定值的x86这类CISC体系结构,基本能把标志位冗余计算消除,提升了翻译代码的质量。统计结果表明,这种简化是切实可行、并具有普遍适用性的,可以在二进制翻译或者模拟器中有效加快运行速度。 2.异常处理是二进制翻译中一个十分重要的问题,本文提出了两个针对应用级程序二进制翻译的异常处理方法。绝大部分的应用程序不会使用异常之前的机器状态或者也有可能不发生异常,所以我们在保证正确性的前提下,放弃了对机器状态副本的维护,使效率得到了保障,同时正确翻译执行了异常的处理函数,以最小的代价,把信号异常处理机制加入到了翻译系统中。为了在库函数包装这个层面上快速处理c++中的异常抛出以及重新抛出的问题,我们提出了动态栈展开的思想,从而得到本该静态编译阶段才可以得到的函数调用关系,分析得到caller调用callee的准确地址,用于异常区间的检查。 3.寄存器的使用效率是决定程序性能的关键因素之一,本文提出了适用于动态二进制翻译的翻译制导寄存器分配方法。相比于静态编译器所使用的图着色算法,以及动态系统所使用的线性扫描寄存器分配算法,开销都小得多,但翻译器的寄存器使用效率很好,完全充分利用了各个寄存器,避免了寄存器相关而导致的指令延时。 4.作者参与设计并实现了两个二进制翻译系统,并把上述优化都分别运用到了这两个系统中。在DB V2系统中还采用了一系列优化技术提高翻译效率,例如库


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 孙光辉;王丽娟;;动态二进制翻译中动态优化的成本与收益分析[J];计算机时代;2010年02期
2 蓝雯飞;C++的异常处理技术探讨[J];微计算机应用;2002年06期
3 孙瑞志,史美林,杨武勇;工作流管理系统异常处理的方法与层次[J];计算机工程与应用;2001年21期
4 侯捷;刘永丹;;JAVA语言的异常处理——《Practical Java》中文版精彩选读[J];程序员;2003年09期
5 吴珍发;VB.NET中的异常处理技术研究[J];莆田学院学报;2004年03期
6 李东来,韩燕波,王建武,喻坚;面向服务应用中服务可用性及其引发的异常处理研究[J];计算机研究与发展;2004年12期
7 王力翔,冀力强,茆邦琴,时龙兴;嵌入式CPU异常处理的设计及其硬件实现[J];半导体技术;2001年08期
8 王婉湘;基于案例推理的工作流异常处理研究[J];计算机与数字工程;2005年06期
9 孟大伟;;浅析JAVA编程中异常处理的方法与技巧[J];硅谷;2009年23期
10 郭涛,张东英,高曙;关于变电站异常处理专家系统设计的几点思考[J];电力系统及其自动化学报;2002年06期
11 刘洪文;;DELPHI中异常处理方法[J];黑龙江科技信息;2003年09期
12 赵海东,蔡东齐 ,郭治国;Windows2000、XP下异常捕获及处理[J];电脑学习;2005年05期
13 余建军,方智敏,濮阳槟;C++编译器中的C++异常处理机制[J];计算机应用;2004年S2期
14 卢丹;小林良岳;中山健;前川守;;Java字节码异常处理中信息流的分析[J];应用科技;2007年02期
15 高德龙;;Java程序设计中异常处理技术浅析[J];电脑知识与技术;2009年11期
16 张卫民,黄瑞芳,卢宇彤;Java: Internet的面向对象语言[J];计算机工程与科学;1997年02期
17 张大伟,张其善;JCVM异常处理机制[J];计算机工程;2003年14期
18 刘会然,潘文林;云南民族大学科技处经费管理系统设计[J];云南民族大学学报(自然科学版);2004年01期
19 秦东,文登敏,金松河;AOP在异常处理中的应用研究[J];唐山学院学报;2004年01期
20 陈少强;VB.NET中的异常处理技术[J];三明高等专科学校学报;2004年02期
中国重要会议论文全文数据库 前10条
1 赵天磊;唐遇星;齐树波;付桂涛;贾小敏;张民选;;一种高准确率的应用程序行为分析方法[A];第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集(B辑)[C];2011年
2 周新祥;马宝丽;;阻抗复合消声器的动态优化及特性分析[A];第八届全国振动理论及应用学术会议论文集摘要[C];2003年
3 舒真;林建一;;工艺路径动态优化在宝信冶金工业MES中的实现方法[A];冶金企业MES和ERP技术实践论文集[C];2005年
4 周德廉;毛海军;;基于人工神经网络的机床部件筋板位置动态优化方法[A];振动工程学报(工程应用专辑)[C];2001年
5 顾丽娜;陶卓彬;宋炎淼;;.NET异常机制分析[A];计算机技术与应用进展·2007——全国第18届计算机技术与应用(CACIS)学术会议论文集[C];2007年
6 胡念武;陈南;李文威;钱进;沙晓明;;胶印机动力学建模与结构优化[A];第五届中国CAE工程分析技术年会论文集[C];2009年
7 谢志华;郑应平;;基于再励学习的排队系统优化控制[A];1995年中国控制会议论文集(下)[C];1995年
8 王鹏飞;张大方;缪力;;包含异常处理的Java程序切片[A];第三届中国测试学术会议论文集[C];2004年
9 郭广军;羊四清;戴经国;贺文华;;Java异常处理技术及EJB中的应用[A];促进企业信息化进程——第九届中国Java技术及应用交流大会文集[C];2006年
10 吴明江;宋文英;;自动气象站异常数据分析及处理实例[A];第五届长三角气象科技论坛论文集[C];2008年
中国博士学位论文全文数据库 前10条
1 唐锋;动态二进制翻译优化研究[D];中国科学院研究生院(计算技术研究所);2006年
2 姜海涛;内核级二进制翻译系统设计及性能优化[D];中国科学技术大学;2013年
3 廖银;动态二进制翻译建模及其并行化研究[D];中国科学技术大学;2013年
4 曹宏嘉;面向微处理器设计的动态二进制翻译技术研究[D];国防科学技术大学;2005年
5 王志强;微分代数方程动态优化问题的快速求解策略研究[D];浙江大学;2012年
6 杨彪;露天矿开采境界动态优化研究及应用[D];中南大学;2011年
7 孙帆;基于智能计算的系统动态优化方法及应用[D];华东理工大学;2013年
8 张兵;化工动态优化方法的研究与应用[D];浙江大学;2005年
9 郑文杰;最优协调电压控制的直接动态优化算法研究[D];华南理工大学;2010年
10 费正顺;基于PLS框架的动态优化方法研究[D];浙江大学;2012年
中国硕士学位论文全文数据库 前10条
1 徐帆;软硬协同动态二进制翻译系统设计与实现[D];国防科学技术大学;2010年
2 石鹏飞;J2EE企业门户网站技术研究[D];浙江大学;2006年
3 董婷;成都电信实时计费系统中的话单分析及处理[D];电子科技大学;2008年
4 孙廷韬;动态二进制翻译中跳转分析与优化[D];上海交通大学;2010年
5 韩琴;ERP系统开发中基于缺省工作流模型的研究和应用[D];华东师范大学;2005年
6 李晓慧;魔力平台中工作流异常处理的研究与实现[D];哈尔滨工程大学;2010年
7 杨晓丽;工作流异常处理研究及其在职业技能鉴定系统中的应用[D];大连理工大学;2004年
8 乔梁;基于J2EE的分布式多引擎工作流系统设计[D];吉林大学;2004年
9 李安志;流程系统中的签字管理相关技术研究[D];西南交通大学;2005年
10 张廷萍;基于关系数据库的轻量级工作流引擎研究与设计[D];重庆大学;2007年
中国重要报纸全文数据库 前10条
1 南京邮电学院 李建忠;异常处理[N];计算机世界;2002年
2 Warton;Java的异常处理[N];电脑报;2004年
3 张学东;如何处理Web服务异常[N];计算机世界;2007年
4 福建尤溪供电有限公司总经理 李锦福;动态优化规划推动发展新跨越[N];中国电力报;2011年
5 夷琦;三星发布211万像素DVM2100S[N];国际商报;2005年
6 胥小红;摆脱磁带的束缚 感受数码生活的真谛[N];大众科技报;2005年
7 赵立新高宇辉;提高治理动态优化能力[N];证券时报;2006年
8 广东省广州科唯仪器有限公司 张杰;我的“质管经”[N];中国质量报;2007年
9 本报记者胡永生;从龙芯到一条龙[N];科技日报;2002年
10 瞿滨 徐云翔;江苏国税增值税管理跃上新台阶[N];中国税务报;2006年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978