论文部分内容阅读
指令集架构(ISA)是计算机软硬件设计的接口。相对稳定的ISA为软件开发者提供了固定的使用计算机硬件资源的接口,促进了软件产品的高效开发。然而,一方面软件开发者常发现移植传统软件到新的体系结构平台上非常困难;另一方面,尽管传统ISA因不能适应软硬件技术迅速发展而饱受非议,传统处理器生产厂商因为惧怕失去已有商业优势仍然固守几十年前的指令集架构。上述事实极大阻碍了处理器设计的革新,限制了处理器新技术的应用和推广。
虚拟机技术在不同层次建立与传统系统一致的软件接口、屏蔽底层实现,为解决上述矛盾提供了一条行之有效的途径。目前虚拟机实现有基于软件和软硬件协同设计两种基本方法。纯粹基于软件的实现方法往往导致较低的执行效率,而现有的软硬件协同设计方法需要对已有处理器微结构进行根本性改造,具有较大的设计、实现和验证开销。
基于上述事实,适当改进处理器微结构,并配合高效的软件实现算法是提高虚拟机性能,减小硬件设计复杂度的一条行之有效的途径。本文以此为思路,以龙芯高性能国产处理器为研究平台,实现了符合进程级、操作系统库级和系统级三个层次兼容性要求的虚拟机系统,研究了各个层次下限制虚拟机性能的主要因素,并提出了提高虚拟机性能的方法和措施。本文的主要工作如下:
1.以龙芯处理器和QEMU为基础设计、实现了二进制翻译和优化系统。该系统充分利用了龙芯3号提供的虚拟机硬件加速支持,并在软件上增加了超级块划分、统计和基本的动态优化功能。该平台以x86系统为模拟目标,达到了高效、稳定的目的,为本文提供了良好的研究平台。
2.研究了进程级二进制翻译和优化系统中因为控制转移而带来的性能瓶颈,并提出了一种软硬件结合的优化算法。控制转移,特别是间接跳转的翻译和执行效率是各类二进制翻译和优化系统性能的重要因素。本文分析和研究了控制转移的类型以及它们造成性能下降的原因,并在此基础上提出了一种软硬件结合的混合控制转移优化算法。该算法有效的降低了CAM缺失率,较大幅度提高了系统性能。
3.实现了在Linux MIPS平台上运行Windows应用程序的操作系统库级兼容系统,并在此基础上,优化了地址空间转换和映射的算法,提高了系统的性能。此外,本文还对已实现系统的性能进行了评估。
4.提出并实现了一种虚拟化MIPS处理器TLB的方法。该方法充分挖掘了不同处理器架构间地址转换的相同点,通过加速虚拟地址转换过程优化了跨平台系统级虚拟机系统的访存性能。实验结果表明该方法能有效提高系统级虚拟机性能。
本文工作以具有二进制兼容支持的龙芯3号多核处理器设计等为研究背景,对龙芯平台进一步的虚拟机支持、产品化虚拟机实现等方面做了有意义的探索工作。