二进制翻译系统中间接转移指令优化技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:Green__lucky
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
二进制翻译技术指将运行在源指令系统上的二进制程序翻译为可运行在目标指令系统上的二进制程序的技术。该技术在发展初期主要被用于实现不同指令系统二进制程序的兼容,进而被广泛用于程序行为分析、动态优化、异构多核计算等领域,成为构建高性能软件系统的重要基础技术。  本文针对二进制翻译技术的应用领域及优化技术进行了总结,发现对间接转移指令的处理开销是二进制翻译系统性能损失的主要原因。在二进制翻译系统中,控制转移指令获取到的转移目标为源二进制程序计数器(SourcebinaryProgramCounter,SPC)地址,必须将其转换为翻译后的目标代码程序计数器(TargetProgramCounter,TPC)地址才可正常执行。间接转移指令的转移目标在运行时才可确定,且转移目标不固定,因此每次执行时均需进行SPC至TPC的地址转换操作,导致巨大的性能开销。  本文所做研究致力于改进二进制翻译系统的性能,首先通过结合并改进现有技术,设计实现了一套称为UniTrans的二进制翻译系统,进而针对翻译系统中的间接转移处理过程提出4种优化技术,可在不同场景下降低间接转移指令的处理开销。主要研究内容与创新点可概括如下:  (1)提出一种基于SPC索引的重定向表的二进制翻译系统间接转移指令优化技术(SPc-indexedIndirectbranchREdirecting,SPIRE)。SPIRE技术可通过复用源二进制文件代码空间构建一个间接转移重定向表。在处理间接转移指令时,无需进行地址转换,可直接跳转至SPC地址,由预先放置在SPC地址处的重定向表表项将控制流重定向至相应的TPC地址处。SPIRE技术仅需2-6条指令即可处理1次间接转移指令的执行。实验数据表明,与哈希查找技术与软件预测技术相比,SPIRE技术分别可改进系统性能13.7%与6.4%。  (2)提出一种源程序结构制导的基于直接TPC表的二进制翻译系统间接转移指令优化技术(DirectTPCTable,DTT)。通过深入分析间接转移的处理过程及转移目标特征,本文发现大多数间接转移指令的转移目标在指令运行前便以某种表的形式存储在内存中,称为“目标地址表”。DTT技术可以在程序的运行过程中挖掘出间接转移指令对应的目标地址表,并将其转换为相应的TPC表。翻译后的间接转移指令可通过复用源指令的目标选择规则,从TPC表中直接获取到转移目标的TPC值,无需每次执行时均执行地址转换。实验数据表明,与哈希查找技术与软件预测技术相比,DTT技术分别可改进系统性能16.6%与9.1%。  (3)提出一种面向二进制翻译系统中间接转移指令的低开销关联软件预测技术(LowOverheadCorrelatedSoftwarePrediction,LOCSP)。LOCSP技术通过基于路径历史的关联预测技术来改进软件预测的准确率,从而改进系统性能。该技术通过代码复制策略,使处于不同转移场景的间接转移指令进入到不同的代码副本,利用静态路径信息表达了关联预测所需的动态路径历史信息,在不增加动态指令数目的前提下实现了关联软件预测。实验数据表明,LOCSP技术可将软件预测技术的预测准确率从58.3%提升至86.2%。与哈希查找技术与软件预测技术相比,LOCSP技术分别可改进系统性能12.4%与5.2%。  (4)提出一种基于转移目标阶段更新策略的高性能软件预测技术(SoftwarePredictionwithTargetUpdating,SPTU)。由于软件预测的目标更新过程开销较大,难以频繁执行,导致不活跃的预测目标不能被及时换出,影响预测准确率。SPTU技术分析了转移目标的阶段特性,并基于此特性提出一种粗粒度的目标更新策略,仅在转移目标阶段发生变化时触发目标更新操作。在显著提高软件预测的预测准确率的同时,通过降低目标更新频率减少了平均更新开销。SPTU可将软件预测技术的预测准确率从58.3%提升至84.2%,实验数据表明,与哈希查找技术与软件预测技术相比,SPTU技术分别可改进系统性能12.8%与5.6%。SPTU技术还可与LOCSP技术相结合,获取更高的预测准确率与性能改进。  以上4种二进制翻译系统中的间接转移指令处理技术互为补充,本文针对不同场景下的组合优化策略进行了讨论,从而获取更好的性能改进。实验数据表明,与哈希查找法相比,最佳的优化策略可改进系统性能21.6%。基于上述技术,本文实现了一个高性能二进制翻译系统,为未来工作中的动态优化、异构多核计算等研究提供了基础平台。本文提出的优化技术均无需修改硬件设计,可广泛用于其他已有的二进制翻译系统。
其他文献
SIP代理服务器主要负责对呼叫的路由功能,即对SIP消息的检查、翻译和转发,以及对SIPUA的认证和计费数据的生成.SIP代理服务器与其他SIP服务器协同工作,从而完成IP话音的交互.
该文依托于863缩小数字鸿沟—西部行动公共信息平台项目"基于国产Linux农牧林业科技综合信息服务系统平台共性技术的研究",讨论基于Web资源管理系统的设计和实现.通过基于Web
如何针对敏捷供应链的动态异构的特点,根据实际情况,构建敏捷供应链管理系统,实现供应链内的信息共享和交互,是一个亟待解决的热点问题.Web服务是Internet发展到一定阶段的产
该课题的来源,摩托罗拉公司的无线下载系统正是具有这样的需求:分布式,要求具备良好的可扩展性和安全性.因此,我们引入基于构件的软件开发技术并将其应用于该课题.该文首先阐
该文主要讨论如何提高数据挖掘技术中关联规则挖掘算法的执行效率即算法执行有效性的问题.重点对关联规则挖掘算法中目前常见的AIS算法、SETM算法、Apriori算法和AprioriTid
现代高性能处理器普遍采用超标量结构,通常使用独立的处理部件对浮点数据进行处理。在浮点处理部件设计和验证过程中,需兼顾时钟频率、面积等设计目标,同时权衡设计复杂度与开发
该文详细阐述和透彻分析了我们提出的扩展加权模糊逻辑及其推理机制,并对我们开发的基于扩展加权模糊逻辑的推理机系统设计与实现中的关键性技术进行了具体介绍.该文首先根据
传统病历以手写的文字记载病人的病史,在时间、空间及内容上均受到很大的限制,明显与现代医学技术的发展不相适应。电子病历能图文并茂记录病史,跨越时间及空间的限制。电子病历
随着Internet的迅速发展,“信息过载”己成为一个日益严重的问题,如何快速、准确的从浩瀚的网络信息资源中寻找所需要的信息已成为困扰网络用户的一大难题。传统的信息搜索工具
该文的主要内容是设计和实现ABC方法的部署和维护支持工具,目前主要针对基于软件体系结构的J2EE应用的部署和维护,把软件体系结构引入到J2EE应用的部署和维护阶段,以软件体系