刘魁-Skyeye中的动态优化技术研究


摘  要

        动态二进制翻译解决了软件的跨平台问题,使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了软硬件的适用范围,打破了处理器和支持软件之间互相依赖的局面,因此在近年来得到了越来越广泛的关注和研究。

        动态二进制翻译边翻译边执行,并在翻译的过程中进行动态优化。动态优化技术就是根据运行时收集的信息对频繁执行的代码块进行相关优化,优化主要针对由频繁执行的代码块构成的热路径进行。热路径的识别是进行热路径优化的前提。

        基于热路径的动态优化技术是动态二进制翻译器中提高软件运行效率的一种有效方法,如何利用基本块中已有的有限历史运行信息(Profile)来识别热路径,并提高它的预测命中率,同时保持计算开销没有增加是研究的重点。已有的热路径识别算法中基于模型进行预测的方法非常少,并且算法实现比较复杂。本文基于隐马尔科夫模型提出了改进的热路径预测方法,由于状态转移序列唯一,该算法实现简单。该方法的主要步骤有:

        1.基于基本块的程序图解。以基本块为基础,用流程图的方式表示程序的流转,更方便于对程序执行路径的研究。

        2.基于隐马尔科夫模型对程序图解进行扩展。使得程序的图解满足隐马尔科夫性质,从中研究基于隐马尔科夫模型的热路径预测模型。

        3.基于隐马尔科夫模型进行建模,提出改进的热路径识别算法。经过对算法复杂度的分析,该算法实现简单。

        4.最后,本文基于Skyeye对该算法进行了验证,实验结果证明了算法的有效性。该算法在保持预测延迟没有增加的情况下,能提高热路径预测的命中率,改善了动态二进制翻译器的性能。

        本文同时对实验平台Skyeye的动态二进制翻译系统(DBCT)中的跳转技术进行了研究。动态二进制翻译系统在翻译执行过程中需要不断的在翻译引擎与执行引擎之间切换,产生了大量的调度开销。翻译块的轮换与指令跳转是产生切换的主要原因。因此,若能减少引擎切换的次数,则能大大减少翻译执行开销。

        因此,本文最后结合DynamoRIO系统中对分支跳转处理的方法,对DBCT中的条件分支跳转进行了相应的处理。最后的实验表明,条件分支跳转优化的运用改进了Skyeye的运行效率。

论文报告


下一条:章竞竞-一类加密算法的功耗分析及其防御研究

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2018 湖南大学