动态二进制翻译优化研究

来源 :中国科学院研究生院(计算技术研究所) | 被引量 : 8次 | 上传用户:jingjing2011
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
二进制翻译技术是用软件方法解决代码移植问题的重要手段。二进制翻译及相关优化技术的研究,不仅在遗产代码移植而且在程序性能提高等其它方面都有重要的意义。本文首先综述了二进制翻译的研究现状以及基本原理和方法。针对动态二进制翻译,本文提出了若干种优化方案:提高在目标机器上模拟源机器标志位效率的EfLA算法;处理应用级主动异常和被动异常的两个算法;翻译制导的寄存器优化算法。本文介绍了我所在二进制翻译研究组设计并实现的两个应用程序级的二进制翻译器:Digital Bridge和Digital Bridge V2。两个系统都是在linux下,把elf格式的x86文件翻译到GODSON(类MIPS)指令集并在GODSON服务器上运行。前者是纯动态的翻译器,后者是以前者为基础的动静结合的翻译器。本文的主要贡献如下:1.提出了动态二进制翻译标志位处理优化算法,简化了基本块间的标志位分析,采取分析后继的方法减小了算法开销。尤其对于每条算术指令都能对标志位定值的x86这类CISC体系结构,基本能把标志位冗余计算消除,提升了翻译代码的质量。统计结果表明,这种简化是切实可行、并具有普遍适用性的,可以在二进制翻译或者模拟器中有效加快运行速度。2.异常处理是二进制翻译中一个十分重要的问题,本文提出了两个针对应用级程序二进制翻译的异常处理方法。绝大部分的应用程序不会使用异常之前的机器状态或者也有可能不发生异常,所以我们在保证正确性的前提下,放弃了对机器状态副本的维护,使效率得到了保障,同时正确翻译执行了异常的处理函数,以最小的代价,把信号异常处理机制加入到了翻译系统中。为了在库函数包装这个层面上快速处理c++中的异常抛出以及重新抛出的问题,我们提出了动态栈展开的思想,从而得到本该静态编译阶段才可以得到的函数调用关系,分析得到caller调用callee的准确地址,用于异常区间的检查。3.寄存器的使用效率是决定程序性能的关键因素之一,本文提出了适用于动态二进制翻译的翻译制导寄存器分配方法。相比于静态编译器所使用的图着色算法,以及动态系统所使用的线性扫描寄存器分配算法,开销都小得多,但翻译器的寄存器使用效率很好,完全充分利用了各个寄存器,避免了寄存器相关而导致的指令延时。4.作者参与设计并实现了两个二进制翻译系统,并把上述优化都分别运用到了这两个系统中。在DB V2系统中还采用了一系列优化技术提高翻译效率,例如库
其他文献
探讨生产阻燃粘胶/阻燃腈纶/莱赛尔/芳纶1414 40/30/20/10 20.5tex×2阻燃耐高温混纺纱的工艺要点及技术措施。将阻燃粘胶用和毛机开松两遍,在芳纶1414纤维中加入自制的防静
针对煤层钻孔抽放瓦斯后煤层孔隙裂隙发育致使瓦斯浓度下降,钻孔有效抽放期缩短的技术难题,首次提出二次封孔方法.阐述了二次封孔方法的基本原理,建立了微细膨胀粉料颗粒在孔
随着社会经济的发展,区域内部和区域之间的各种社会经济现象的联系更加密切与复杂。地理学对于区域特性和差异的研究已经非常深入,而对区域之间经济联系的实证研究还相对薄弱
通过乳液共聚反应,研制了一种粘度稳定,成膜性、退浆性能良好的乳液共聚浆料TP,对它进行生产应用的结果表明:该浆料在细号涤棉织物的经纱上浆中,与淀粉类浆料配合使用,可以大幅度减少
昆明市地处云贵高原的中东部,扬子地台西南缘。历年来受地形地貌、地层岩性、地质构造、河流切割以及人为工程活动等的影响,地质灾害频繁发生,威胁到人民生命财产安全,制约社
在小学语文教学过程中,识字写字作为初级语文教学内容之一,是语文教学中的重要组成部分,同时识字写字也是学生将来阅读与写作的基础,小学语文教师应该意识到识字写字教学的重
絮凝沉降法是废水处理中应用最为广泛的一种方法。絮凝剂的性质直接影响絮凝效果。为寻求一种“绿色”环保絮凝剂,本文在分析和总结已有的有机高分子絮凝剂的制备和絮凝性能
工具理性批判是现代性批判的重要组成部分,在某种意义上现代性批判就是对启蒙理性的批判。许多极具创造力的思想家对这个问题给予了特别的关注。法兰克福学派早期经典之一《
提出用浆液对被浆纤维的粘附性、浆液的成膜性以及浆膜本身的拉伸强度、初始模量、回弹率、磨损率、吸湿率和水溶速率等指标作为浆料上浆性能的评价指标。并就淀粉、PVA、丙烯类
论文着重于多核多线程处理器上的任务调度相关的研究。首先是从理论角度提出了3种与基于复制的任务调度相关的算法,这3种算法都表现出了较好性能。然后结合一种实际的多核多