论文部分内容阅读
随着计算机运算速度和网络带宽的快速提高,通过互联网向用户交付硬件资源的云计算模式成为趋势。数据中心服务器的部署和管理是制约云计算模式发展的主要问题。系统虚拟机技术能够将物理资源虚拟化为多个可伸缩、互相隔离的逻辑资源,是降低服务器部署和管理复杂度,提高硬件资源利用率的重要途径。系统虚拟机技术能够融合不同架构的硬件平台,因此对以龙芯为代表的国产高性能处理器完善云计算软件环境具有重要意义。 系统虚拟机技术研究硬件资源虚拟化的方法。本文以MIPS兼容的龙芯高性能国产处理器为研究平台,实现了处理器虚拟化、内存虚拟化和I/O虚拟化,并研究了处理器虚拟化和内存虚拟化中限制系统虚拟机性能的主要因素,提出了提高性能的方法和措施。 本文的主要工作如下: 1.实现了支持MIPS架构处理器的系统虚拟机KVM-LOONGSON。本文分析了MIPS的体系结构和指令集,通过类虚拟化方法弥补了MIPS处理器的虚拟化缺陷,并使用软件模拟实现了处理器虚拟化、内存虚拟化和I/O虚拟化,成功运行基于Linux的客户机操作系统(guest operating system,Guest OS)。在龙芯处理器硬件平台上,以开源虚拟机KVM为基础设计的系统虚拟机可以稳定运行,并且性能达到一定水平,为本文提供了良好的研究平台。 2.提出并实现了一种软硬件协同降低虚拟机退出(virtual machine exit,VM Exit)开销的优化方法。VM Exit以及异常处理过程是影响系统虚拟机性能的重要因素。本文分析了造成VM Exit的原因,在此基础上提出了代码替换和硬件加速两种方法,消除了部分导致VM Exit的指令。另外,本文基于硬件加速部件CAM(content associated memory)实现了软硬件协同的取指译码算法,通过异常指令缓存和动态函数生成的方法提高了异常处理速度。以上方法较大幅度地提高了系统虚拟机的性能。 3.提出并实现了异构内存虚拟化方法。本文基于MIPS处理器分析了同构内存虚拟化方法的性能瓶颈,发现TLB(translate lookaside buffer)模拟的开销巨大。本文提出异构内存虚拟化方法,通过对Guest OS隐藏结构化TLB,加快了客户机的TLB缺失处理速度,显著提高了系统虚拟机的内存虚拟化性能。 4.提出了一种MIPS处理器的硬件虚拟化规范,并在模拟器上实现了类虚拟化虚拟机的最简硬件支持。该设计基于MIPS64硬件虚拟化规范,但是该规范的实现会带来较大的硬件设计复杂度。本文根据VM Exit的原因,分析软件方法在性能、兼容性和安全性上的局限,提出相应的硬件虚拟化解决方法。在QEMU模拟器上针对MIPS架构实现了提出的硬件虚拟化支持,并成功运行 KVM-LOONGSON。实验结果证明提出的硬件虚拟化支持能够有效减少VMExit的次数,达到提高系统虚拟机性能的目的。 本文工作提出了一系列软硬件协同的虚拟机优化方法,有效解决了服务器系统虚拟机的效率、兼容性和硬件设计验证复杂度等问题,并应用于我国首款四核通用处理器龙芯3号芯片,对国产龙芯平台在大型数据中心的应用具有重要意义。