论文部分内容阅读
如今,虚拟化技术已经成为计算机领域的一个重要分支,X86架构作为目前应用最为广泛的一种体系架构,也同样衍生出了很多虚拟机。但是对于成都某研究所,目前的X86架构虚拟机在测试平台的兼容性和移植性方面,并不能符合他们的要求,除此之外,现有的基于QEMU的X86架构数字模型的指令集并没有完全得到实现。于是,本论文针对这些问题,在前人研究的基础上,对基于QEMU虚拟平台的X86架构虚拟机进行了多方面的改进与功能的完善,主要包括X86架构指令集的完善和实现以及其它外围设备的建模实现。论文的主要研究工作如下:首先,基于X86CPU的整体结构,研究分析了多个虚拟平台的优缺点,鉴于QEMU开源,指令级的开发和网卡可虚拟化等原因,最终选择其作为本论文的虚拟平台,在前人对X86架构数字模型的研究基础上,为了适应本课题的需要,对该设计进行了改进和完善,完成了对X86架构处理器的设计。并对本论文使用到的关键技术作出了相应的概括。其次,根据X86架构数字模型的各个模块的需求,提出相应的设计方案并提出了本论文的设计难点,由于X86架构的部分指令并没有得到正确和全面的实现,需要利用QEMU的动态二进制翻译技术对X86的指令进行建模。而X86架构数字模型的内存管理模块也是本论文的一个设计难点,虚拟内存管理单元的作用是完成目标机与宿主机之间的地址的转换,为了完成它的虚拟化建模,就必须对X86架构下的内存分页与地址转换关系进行深入的研究。接着,针对各个模块的设计要求,依据X86架构数字模型的硬件手册,对指令集、内存管理、网卡、时钟模块以及中断控制器进行了虚拟化建模实现。最后,针对不同的模块,研究相应的合适的方法,对每个模块分别进行了测试与验证。其中,由于X86架构指令集是非精简指令集,因此针对它的所有指令进行的逐条测试,其工作量是庞大的。而且由于时钟模块的0计数通道的工作机制是产生中断信号,因此时钟模块和中断控制器模块的测试验证可以用同一方法进行测试。在完成各个模块的测试之后,对其结果进行相应的分析研究,对比它们的需求,最终证实各个模块都在到了设计要求,之后,将QEMU虚拟机自带的指令统计数值使用共享内存的方式导出,并使用c++builder编写小工具读取该数值,统计虚拟机的指令运行速度,对整个数字模型的性能进行了测试,并验证整个数字模型的性能基本达到真实机器的性能。综上所述,本论文对X86架构数字模型的设计与实现在功能与性能等各方面均达到了设计要求。可以用来进行不同测试平台的移植与应用。