论文部分内容阅读
过去的三十多年来,无论是在商用领域还是个人家用领域,基于Intelx86[7]架构的服务器和个人主机都具有很高的市场份额[8]。不过近些年来,随着消费者对智能手机和平板电脑等移动计算设备的需求越来越大,以ARM[4]为领头羊的RISC[1]芯片因为其省电、开发周期短、芯片尺寸小等优势,对x86芯片发起了挑战。另一方面,出于对国家安全和科技发展的战略角度考虑,中国也自主研发出了“龙芯”[26]和“众志Unicore-2"[27]等一批RISC处理器。倘若ARM、“龙芯”和“众志Unicore-2"等RISC处理器能够兼容流行架构x86的操作系统和应用程序的话,则能够更容易地获得终端用户的接受。为了使得异体系架构处理器对x86上运行的软件可兼容,x86模拟器是个理想的解决方案。它可以运行在非x86体系架构的平台上,模拟出符合x86标准的虚拟硬件环境,使得专门针对x86架构编写的软件可以通过模拟器建立的虚拟x86环境,运行在异体系架构的处理器上。口前,支持多种微处理器架构宿主硬件平台的x86模拟器都是运行在用户态的,而可运行在系统态的x86模拟器都是专门针对特定宿主硬件平台开发的。因此,针对中国自主研发的微处理器架构的系统态x86模拟器需要专门研发。本文章要介绍一个高可移植性的x86模拟器PEX86 (Portable Emulator for x86)的动态二进制指令翻译方法和该模拟器在系统态实现的软件框架。PEX86的解释型动态二进制指令翻译技术具有较好的可移植性。它运行在计算机的系统态,即PEX86无需操作系统的支持,直接管理所有的系统硬件资源。由于要模拟整个x86硬件平台的工作量较大,PEX86现阶段仅支持x86硬件平台工作在实模式下的模拟。不过,这为今后进一步支持x86硬件平台工作在保护模式下的模拟打下了坚实基础。本文的主要贡献如下:1、探索了针对中国自主研发的微处理器面向x86操作系统和应用程序的可兼容问题的解决方法。2、使用了具有较好可移植性的动态二进制指令翻译技术和模拟器在系统态的实现框架,令运行在系统态的模拟器可较容易地支持不同微处理器架构的宿主硬件平台。3、使用按功能分层和抽象化、模块化的系统态实现框架,使得虚拟外设和宿主平台外设之间的映射关系灵活、可配置,也使得在模拟器中增加和修改一个虚拟外设的工作变得简单。