二进制翻译中基于数据流和控制流分析的代码优化方法

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:lxbyftk
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
二进制翻译技术通过将已完成编译的客户机指令翻译为宿主机指令,实现既有软件的跨体系结构运行,以解决不同体系结构之间的软件兼容问题。执行效率较低是制约二进制翻译发展的主要问题,性能优化始终是该领域的研究热点之一。本文基于数据流和控制流分析,提出了二进制翻译优化的新方法。  首先,本文提出在原有翻译结构中增加基于数据流图的中间表示,并通过轻量级的数据流分析实现翻译后代码的优化。该中间表示包含宿主机指令信息,能够实现与宿主机体系结构相关的优化。基于数据流分析,本文提出通过对数据流节点进行分类、消除、合并,以优化翻译代码中的冗余指令。该方法成功消除了冗余数据迁移、冗余访存地址运算、冗余常量生成和部分冗余访存等操作。进一步地,针对翻译代码中大量存在的热点访存,本文提出为最常被访问的内存数据分配专用的寄存器。该方法基于对访存指令的数据流分析,能够消除大量针对客户机模拟寄存器的热点访存操作。  其次,本文提出了基于控制流分析的适用于二进制翻译的动态优化改进方法。一方面,基于控制流分析能够消除冗余的条件码设置操作,而分析过程不局限于执行热点,而是包括所有翻译后代码段,这有别于传统动态优化。另一方面,本文针对控制调度过程中的函数调用过程,结合数据流分析提出了改进的控制调度方法。优化方法以宿主机返回地址代替客户机返回地址存入客户机堆栈,从而在无需地址转换和生成客户机返回地址的条件下实现返回型间接跳转。该项优化取得了比专用硬件优化更好的优化效果。  最后,本文在多核处理器上通过执行线程和优化线程的并行化,提高采用动态优化时的程序响应速度,并改进了并行框架中针对共享数据的读写策略。  本文研究工作在龙芯处理器平台上实现了上述优化方法。实验表明,上述优化显著提高了二进制翻译的模拟执行效率,平均提高到原有效率的1.8倍,最高达到3.1倍。其中,定点测试达到平均2.3倍,浮点测试达到平均1.3倍。优化后,定点测试的模拟执行效率平均达到宿主机本地静态编译执行效率的52%,浮点测试达到27%,整体平均达到40%。其中,部分测试的模拟执行效率接近甚至超过本地执行效率,最高达到110%。
其他文献
人体动作的分割和识别一直是计算机视觉领域一个重要的课题。在人机交互、视频监控自动化、游戏控制系统等应用场景下,准确的动作识别都是整个系统中至关重要的一环。相较于
在人类的思维和学习过程中,类比推理是一种重要的方法和手段.实际上,设计师在进行大多数工程项目的设计时,都有意识或无意识地运用了类比推理.基于类比的工程智能CAD技术能够
学位
句法分析任务是自然语言处理中的基本任务之一,是很多其他自然语言处理任务的基础。但是在近年来的研究工作中,句法分析任务变得越来越困难。其中一个主要的难点就在于自然语
该文的研究重点是探索总线型网络的附网存储系统的实现方法,建立系统分析模型,同时对系统进行实验测试及性能分析。主要研究内容包括:局域网环境下的附网存储系统的结构选择;附
该文简述了国内外应用广泛的三类得要的自动机与一类著名的布尔函数的主要研究成果.对布尔代数上的自动机进行了研究,同时根据线性内动结构特征破译了一种基于阵列变换的密码
云计算的发展是信息技术快速进步和大数据时代的必然产物。云计算整合了网格计算,并发式计算和虚拟化技术,成为目前主流的一种研究方向。云计算技术的不断发展和深入给信息时
伴随着信息时代的到来以及通信技术和计算机技术的迅猛发展,无线寻呼通信也必将发生革命性的变革.目前无线寻呼正将朝着大信息量、多种服务功能的方向发展.该文所描述的综合
随着计算机网络技术的快速发展,特别是Internet的广泛应用,网络信息系统的安全问题日益严重,网络入侵检测系统(Network Intrusion Detection System,NIDS)在计算机网络安全领域的
学位