首页> 中文学位 >改进QEMU的多模式指令解码研究
【6h】

改进QEMU的多模式指令解码研究

代理获取

摘要

二进制翻译是一种代码移植技术,它可以有效地解决软硬件冲突问题。QEMU是一款非常受欢迎的动态二进制翻译工具,它支持多源到多目标的翻译。但QEMU在翻译过程中只采用一种解码策略,即:将源代码翻译成中间代码,再根据这些中间代码拷贝已经编译好的二进制目标代码。这种单模式的解码对于指令循环较少的应用程序来说效率低下。在解码过程中,QEMU引入中间变量来减少微操作的数量,进而简化翻译过程,但中间变量的使用会引入一些冗余的内存加载操作。QEMU使用C语言编写微操作代码,这种做法虽然简化了系统实现,但由于微操作代码使用频率很高,使用C语言编写微操作使系统性能不高。
   针对QEMU单模式解码的问题,多模式解码方式能针对不同的指令块采用不同的模式进行翻译,从而达到加快翻译速度的目的。多模式解码采用两种模式:对于程序里执行次数比较少的指令块,对其进行解释执行,不生成基本块;对于执行次数更高的程序块,采用更费时但优化效果更好的解码方式,生成执行效率比较高的目标代码。多模式解码更加灵活,翻译速度也更快。
   虚拟寄存器冗余加载去除算法记录中间变量当前储存的是哪个虚拟寄存器的值,并识别下一条指令要加载的是哪个虚拟寄存器。如果下一条指令要加载的虚拟寄存器值已经加载到中间变量,那么定义下一条加载操作为冗余操作,并将其去除。冗余加载去除算法去除了程序里的冗余加载指令,提高了二进制翻译的速度。
   微操作在二进制翻译中被执行的频率相当高,因此微操作的执行效率非常重要。对微操作使用汇编语言重新实现,提高了微操作的代码执行效率,从而加快了整个二进制翻译过程。通过SPEC2000测试,多模式解码平均运行时间比QEMU原系统降低了30.5%。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号