首页> 中国专利> 一种提高非敏感特权指令执行效率的系统虚拟机及方法

一种提高非敏感特权指令执行效率的系统虚拟机及方法

摘要

本发明提供了一种提高非敏感特权指令执行效率的系统虚拟机及方法。该提高非敏感特权指令执行效率的系统虚拟机,包括宿主机和至少一个虚拟机,所述宿主机和虚拟机运行在CPU上,所述CPU包括寄存器,其特征在于,所述寄存器额外设置控制位,用于控制非敏感特权指令能否在虚拟机中直接执行;其中,宿主机在陷入虚拟机之前,判断虚拟机的状态,根据判断结果,设置所述控制位。本发明通过对硬件的简单修改使用软件进行控制,有效的提高的非敏感特权指令在虚拟机中的执行效率,并且保证了其执行时的正确性及安全性。

著录项

  • 公开/公告号CN102855154A

    专利类型发明专利

  • 公开/公告日2013-01-02

    原文格式PDF

  • 申请/专利权人 龙芯中科技术有限公司;

    申请/专利号CN201210271838.5

  • 发明设计人 台运方;蔡万伟;

    申请日2012-08-01

  • 分类号G06F9/455(20060101);G06F21/50(20130101);

  • 代理机构11309 北京亿腾知识产权代理事务所;

  • 代理人陈霁

  • 地址 100190 北京市海淀区中关村科学院南路10号

  • 入库时间 2024-02-19 17:04:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-26

    授权

    授权

  • 2013-02-20

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20120801

    实质审查的生效

  • 2013-01-02

    公开

    公开

说明书

技术领域

本发明涉及计算机硬件体系结构和系统虚拟化领域,尤其是涉及一种提 高非敏感特权指令执行效率的系统虚拟机及方法。

背景技术

虚拟机指令分为两类:敏感指令和非敏感指令(无害指令)。敏感指令指 的是任何改变或依赖系统资源的指令,敏感指令不可以在物理CPU上直接执 行;反之,非敏感指令可以在物理机器上直接执行,因此敏感指令执行需要 产生异常。同时,由于虚拟机需要运行于非特权态下,虚拟机的特权指令执 行时也会产生异常,敏感指令和特权指令的关系如图1所示。因为会产生异 常,所以CPU虚拟化的瓶颈在于特权指令和敏感指令。

在现有技术中,加速敏感指令和特权指令的方式分为两种:一种是在CPU 中增加额外的操作模式;另一种是软件方式(例如:修改操作系统代码方式、 二进制翻译等)。

在CPU中增加额外的操作模式后,敏感指令影响不了宿主机的特权资源, 而且在这种操作模式下也分特权态和非特权态,因此绝大部分敏感指令和特 权指令不会产生异常,对于没有这种硬件辅助虚拟化设计的架构,无法使用 这种方式。

软件方式针对的是没有硬件辅助虚拟化设计支持的CPU,用一系列非特权 非敏感指令替代特权指令和敏感指令;然而,该方法的修改范围有限制,可 扩展性较差。

因此,目前需要一种解决软件替代方法不能处理某些非敏感的特权指令 的缺陷的方法,能使得非敏感的特权指令在系统虚拟机中高效安全的执行。

发明内容

为解决上述问题,本发明提供了一种提高非敏感特权指令执行效率的系 统虚拟机及方法。

在第一方面,本发明提供了一种提高非敏感特权指令执行效率的系统 虚拟机。该系统虚拟机包括宿主机和至少一个虚拟机,所述宿主机和虚拟 机运行在CPU上,所述CPU包括寄存器,其特征在于,所述寄存器额外设 置控制位,用于控制非敏感特权指令能否在虚拟机中直接执行;其中,宿 主机在陷入虚拟机之前,判断虚拟机的状态,根据判断结果,设置所述控 制位。

进一步的,所述虚拟机执行虚拟机操作系统时,设置控制位为打开, 则允许非敏感特权指令在虚拟机上直接运行;所述虚拟机退出虚拟机操作 系统时,设置控制位为关闭,则禁止非敏感特权指令在虚拟机上直接运行。

进一步的,所述宿主机包括虚拟机监视器VMM,通过设置所述虚拟机 监视器VMM,使得在宿主机进入虚拟机之前,判断虚拟机的状态。

在第二方面,本发明提供了一种提高非敏感特权指令执行效率的方 法。该方法实现于上述系统虚拟机,宿主机和虚拟机运行在CPU上,所述 CPU包括寄存器,所述寄存器上有控制非敏感特权指令能否在虚拟机中直 接执行的控制位。该方法步骤具体包括:宿主机在陷入虚拟机之前,判断 虚拟机的状态,根据判断结果,设置所述控制位。

进一步的,所述虚拟机执行虚拟机操作系统时,设置所述控制位为打 开,则允许非敏感特权指令在虚拟机上直接运行;所述虚拟机退出虚拟机 操作系统时,设置控制位为关闭,则禁止非敏感特权指令在虚拟机上直接 运行。

进一步的,设置虚拟机监视器VMM,使得在宿主机陷入虚拟机之前, 判断虚拟机的状态。

进一步的,判断虚拟机的状态根据操作系统的地址和用户程序的地址 判断的。

进一步的,通过编译虚拟机操作系统区分操作系统的地址和用户程序 的地址。

本发明解决了软件替代方法不能处理某些非敏感特权指令的缺陷,并且 本发明提供的系统虚拟机和方法相较于在多增加一个新的操作模式的CPU在 实现上要简单很多。本发明提供的方法有效的提高的非敏感特权指令的执行 效率,并且保证了其执行时的正确性及安全性。

附图说明

图1为敏感指令、非敏感指令和特权指令之间的关系的示意图;

图2为本发明一个实施例中的软硬件协同设计方法步骤的流程图。

具体实施方式

非敏感特权指令的特点是在没有增加额外操作模式时,虚拟机一般执行 在CPU的非特权态下,因此若在虚拟机中执行特权指令会造成异常。然而对 于这些非敏感特权指令是属于非敏感指令的,如果将其在虚拟机中直接执行, 理论上是可以执行的,但是有产生异常的可能性,造成虚拟机的安全性问题。

为了提高这类指令在虚拟机中的执行效率,同时保证虚拟机的安全性, 提出了一种系统虚拟机及一种软硬件协同设计的方法。通过硬件设计保证非 敏感特权指令在虚拟机中执行的可行性,通过软件设计来保证非敏感特权指 令在虚拟机中运行时的安全性。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本实施例以一种基于MIPS架构的龙芯CPU上实现本发明提供系统虚拟机 及方法为例进行说明。该CPU具有两种非特权态(即管理态和用户态)。

cache指令是MIPS架构中的非敏感特权指令。由于MIPS访问CACHE只能 通过cache指令,因此无法通过软件方式提高cache指令在虚拟机中的执行 速度,然而在虚拟机操作系统执行过程中会多次执行cache指令,非常影响 操作系统性能。因此,通过对软硬件设计结合的方式提高cache指令在虚拟 机中的执行效率,并保证其在虚拟机中的安全性。下面分别从硬件设计和软 件设计上介绍其实现方式。图2为软硬件协同设计的方法步骤流程图。

硬件设计上:

系统虚拟机包括宿主机及至少一个虚拟机,本实施例中,宿主机和虚拟 机都运行在基于MIPS架构的龙芯CPU上。在龙芯CPU内部协处理器0中22 号寄存器新增一位控制位,用于控制cache指令能否在宿主机上直接执行。

具体的,在增加控制位之前,宿主机在陷入虚拟机时,虚拟机运行于 非特权状态,协处理器不可用,cache指令产生异常,所以cache指令不 能安全的在虚拟机上直接执行。

为了解决上述问题,在增加控制位之后,宿主机在陷入虚拟机时,执 行cache指令需查看CPU内部的协处理器0中的22号寄存器。通过22号 寄存器上的控制位状态来判断是否允许cache指令在虚拟机中直接执行。

其中,设置控制位的状态是通过软件设计实现的,该设计保证了cache 指令在虚拟机上直接运行时的安全性。

软件设计上:

首先,编译虚拟机操作系统,将虚拟机操作系统地址和虚拟机用户程序 地址完全分开,使CPU在执行虚拟机时,不会有地址冲突,以保证cache指 令运行时的安全性。

一个具体的实施例中,通过修改操作系统的编译地址和使用地址,使得 操作系统运行和访问的地址均位于管理态下;此外,用户程序是运行在用户 态的。

具体的,编译虚拟机操作系统,包括两方面:一方面是修改虚拟机操作 系统的编译地址,另一方面是修改虚拟机操作系统的使用地址。通过这两方 面既保证了虚拟机操作系统代码运行在管理态下,又保证了虚拟机操作系统 中数据的访问地址全部位于管理态下,所以虚拟机运行虚拟机操作系统时, 虚拟机运行于管理态,虚拟机运行用户程序时,虚拟机运行于用户态,使虚 拟机处于不同状态时运行的地址完全分开,不产生冲突。

其次,修改虚拟机监视器VMM的设置,使得在宿主机陷入虚拟机之前, 判断虚拟机的状态。通过判断结果来设置控制位的状态。

具体的,当虚拟机运行操作系统时,因为CPU执行虚拟机操作系统,在 上述过程中已经将虚拟机操作系统进行重新编译,所以cache指令在虚拟机 中直接执行不会产生异常,所以此时设置控制位为打开,允许cache指令能 够在虚拟机中直接执行。当虚拟机退出操作系统时,设置控制位为关闭,禁 止cache指令在虚拟机中直接执行。

根据上述实施例可以看出,本发明提供系统虚拟机及方法,通过硬件设 计增加控制位,保证了非敏感特权指令在虚拟机中直接执行的可行性,并通 过软件设计保证非敏感特权指令在虚拟机中直接执行时的安全性。因为非敏 感特权指令能够直接并且安全的在虚拟机中执行,所以提高非敏感特权指令 在虚拟机中的执行效率。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而 已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做 的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号