MIPS64动态模拟器的研究与开发
发布时间:2020-10-15 09:39
指令集模拟器用来在宿主机上模拟目标机上程序运行过程的软件工具。经过长久以来的发展之后,在现在嵌入式系统开发中,指令集模拟器已经成为了十分重要的组成部分。按照实现方法指令集仿真器可分为两大类:解释型指令集模拟器和编译型指令集模拟器。 编译型指令集模拟器的原理是把目标机的指令直接翻译为能实现相应功能的宿主机上的指令,编译型指令集模拟器包含静态编译和动态编译两类,其中动态编译又可以分为两种模式:未细化的动态编译模式和可细化的动态编译模式。未细化的动态编译模式和可细化的动态编译模式都是把指令翻译成高级语言的函数,区别就在于一旦指令的执行条件发生了变化,未细化的动态编译模式就需要重新翻译,而后者就通过细化不同的执行条件,不用重新翻译。 本论文的主要工作有四部分:第一部分,实现了MIPS64(兼容MIPS32)除浮点指令以外的所有MIPS指令的语义函数,这些指令主要包括算术运算、分支指令、加载存储指令、协处理器0的相关指令。由于MIPS指令可细化的条件不多,就把指令格式相同的指令进行组合,从而实现相应的语义函数。第二部分,实现了可细化的动态模式的流程,主要用到的是取指函数和执行函数。第三部分,对可细化的动态模式进行了改进,可以清楚了解缓存中代码被调用的次数,以便于更高级的优化。第四部分,通过使用嵌入式汇编语言语言来编写每条指令的验证程序,从而检验指令集的精确性,同时通过运行一些通用的测试程序来检验可细化动态模拟指令集的性能。 本文采用基于伪指令的动态翻译技术,基本思路是在编译阶段把指令翻译成伪指令,伪指令有指向语义函数的指针和语义函数所用到的参数共同组成。改进的动态翻译技术的思路是以是否出现分支指令为依据,把分支指令本身以及之前的所有代码存储到vector容器内,然后把vector容器存放到Cache中。这样,虽然在编译阶段花费时间较多一些,但使得译码阶段消耗的时间大量减少,从而提高了实际运行的模拟速度。采用这种技术,无论是机器结构还是操作系统都不依赖于宿主机器,只要宿主机器支持C++语言即可。最后通过实验证明,本论文所提出的基于可细化的编译型指令集模拟技术所实现的MIPS64的指令集模拟器,不仅能够精确实现所有指令的功能,并且跟采用未细化的编译型指令集模拟技术相比,性能大大提高。
【学位单位】:广西工学院
【学位级别】:硕士
【学位年份】:2011
【中图分类】:TP368.1
【部分图文】:
从而降低了模拟速度,另外这种模拟器由于没有对指令执行的求,就使得这种直接把硬件行为映射到软件的方法使得模拟性能言,解释型模拟器灵活简单,并能很好的控制应用程序的执行,方解释型模拟技术的典型代表有 Simplescalar[10]模拟器,它有独特所能生成的代码也是符合这个体系结构的,Simplescalar 之间的SystemC 的,能够支持软硬件的多核协调模拟。解释释型模拟的运行1 所示[15]
图 2-1 解释型模拟流程Figure 2-1 Interpreted Simulation Procedure2. 静态编译型模拟器为了改善解释型模拟器模拟速度低的这一问题,就出现了静态编译型模拟,它最大特点是将耗时的操作从模拟器的运行时移至模拟之前,即在编译阶段。种技术的模拟速度有很明显的提高,但缺点是在运行程序不能被修改,从而不模拟自修改代码。另外,静态编译模拟器在译码过程中要保存译码后的代码,而会消耗不少存储空间,这也是它的一大缺点。采用该静态编译方法的典型代有:PSIM,静态编译模拟的过程如图 2.2 所示[20]。
图 2-5 LLVM 编译过程Figure 2-5 LLVM Compile Procedure2.2.2 常用的指令集模拟技术目前,市场中的模拟器品种繁多,不同的模拟器分别采用不同的指令集模拟技术,来提高模拟的速度以及完善模拟的性能,以便更好的满足市场的需求。QEMU[16]是比较常见的代表之一,它能够在 x86 等宿主机上运行,它采用的是动态翻译技术,可以模拟 MIPS 等体系结构。动态翻译方面,QEMU 把执行路径上的目标指令化以一个个基本块,并通过按需方式进行翻译。另外 QEMU 的另一特点是将动态翻译器是和主体分开的,以便在不同体系结构间容易的进行移植。SimIt的翻译思想是把 C 代码作为中间的桥梁把目标二进制代码和宿主机二进制代码联系起来,SimIt 采用多处理器把翻译操作和执行操作分别在不同的处理器上运行,以便提高性能。在当今较为广泛应用的模拟技术方面,JIT-CCS 和 IS-CS 是两个较突出的代表。JIT-CCS 想把解释型模拟器和编译型模拟器各自的优点结合到一起,既具有
【参考文献】
本文编号:2842007
【学位单位】:广西工学院
【学位级别】:硕士
【学位年份】:2011
【中图分类】:TP368.1
【部分图文】:
从而降低了模拟速度,另外这种模拟器由于没有对指令执行的求,就使得这种直接把硬件行为映射到软件的方法使得模拟性能言,解释型模拟器灵活简单,并能很好的控制应用程序的执行,方解释型模拟技术的典型代表有 Simplescalar[10]模拟器,它有独特所能生成的代码也是符合这个体系结构的,Simplescalar 之间的SystemC 的,能够支持软硬件的多核协调模拟。解释释型模拟的运行1 所示[15]
图 2-1 解释型模拟流程Figure 2-1 Interpreted Simulation Procedure2. 静态编译型模拟器为了改善解释型模拟器模拟速度低的这一问题,就出现了静态编译型模拟,它最大特点是将耗时的操作从模拟器的运行时移至模拟之前,即在编译阶段。种技术的模拟速度有很明显的提高,但缺点是在运行程序不能被修改,从而不模拟自修改代码。另外,静态编译模拟器在译码过程中要保存译码后的代码,而会消耗不少存储空间,这也是它的一大缺点。采用该静态编译方法的典型代有:PSIM,静态编译模拟的过程如图 2.2 所示[20]。
图 2-5 LLVM 编译过程Figure 2-5 LLVM Compile Procedure2.2.2 常用的指令集模拟技术目前,市场中的模拟器品种繁多,不同的模拟器分别采用不同的指令集模拟技术,来提高模拟的速度以及完善模拟的性能,以便更好的满足市场的需求。QEMU[16]是比较常见的代表之一,它能够在 x86 等宿主机上运行,它采用的是动态翻译技术,可以模拟 MIPS 等体系结构。动态翻译方面,QEMU 把执行路径上的目标指令化以一个个基本块,并通过按需方式进行翻译。另外 QEMU 的另一特点是将动态翻译器是和主体分开的,以便在不同体系结构间容易的进行移植。SimIt的翻译思想是把 C 代码作为中间的桥梁把目标二进制代码和宿主机二进制代码联系起来,SimIt 采用多处理器把翻译操作和执行操作分别在不同的处理器上运行,以便提高性能。在当今较为广泛应用的模拟技术方面,JIT-CCS 和 IS-CS 是两个较突出的代表。JIT-CCS 想把解释型模拟器和编译型模拟器各自的优点结合到一起,既具有
【参考文献】
相关期刊论文 前6条
1 蔡启先;刘明;余祖峰;;MIPS64指令集模拟器的建模与实现方法[J];计算机工程;2010年18期
2 吴清平,刘明业;VHDL编译型事件驱动模拟算法[J];计算机学报;2002年01期
3 张福新;章隆兵;胡伟武;;基于SimpleScalar的龙芯CPU模拟器Sim-Godson[J];计算机学报;2007年01期
4 潘新祥;胡习霜;韩立宏;;软硬件协同设计分析[J];指挥控制与仿真;2008年03期
5 邵作之;曹晓龙;刘莉娟;;在SystemC中用ISS构造处理器模型方法分析[J];微处理机;2006年03期
6 武杰,乔崇,张俊杰,杜学峰,唐世悦,张万生,王砚方;MIPS系统中北桥的FPGA设计[J];小型微型计算机系统;2004年11期
相关硕士学位论文 前1条
1 刘明;基于64位MIPS嵌入式系统的动态模拟与仿真技术的研究[D];广西工学院;2010年
本文编号:2842007
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2842007.html