运行虚拟机的控制方法和装置制造方法及图纸

技术编号:10438361 阅读:109 留言:0更新日期:2014-09-17 14:35
本发明专利技术实施例提供一种运行虚拟机的控制方法和装置,该方法包括:在第一虚拟机的本次运行过程中,当所述第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值;当根据所述宿主机的状态值确定所述宿主机处于宿主机非核心态时,则读取所述第一虚拟机的状态位,获得所述第一虚拟机的状态值;当根据所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态时,则控制所述第一虚拟机访问所述第一寄存器;通过该运行虚拟机的控制方法和装置,优化了虚拟机访问控制寄存器的过程,减小了虚拟机访问控制寄存器引起的关闭重启次数,降低了宿主机的性能开销。

【技术实现步骤摘要】
运行虚拟机的控制方法和装置
本专利技术实施例涉及计算机
,尤其涉及一种运行虚拟机的控制方法和装置。
技术介绍
随着云计算的流行,系统虚拟化得到了越来越快的发展,越来越多的架构推出了虚拟化的解决方案,例如MIPS架构通常采用半虚拟化硬件规范或全虚拟化硬件规范。其中,全虚拟化硬件规范中,基于已有的精简指令集架构(Micropr-ocessorwithoutinterlockedpipedstages,简称MIPS),增加了额外的操作模式及相关寄存器,并且增加了双地址翻译及相关寄存器;而半虚拟化硬件规范中,相比与全虚拟硬件规范,只增加了额外的操作模式及相关寄存器。具体的,虚拟机在宿主机(也称物理机)上运行时,需要虚拟机的虚拟地址与宿主机的物理地址之间的翻译做以运行支持,从而在全虚拟化的硬件规范中,通过使用TLB(TranslationLookasideBuffer,翻译为转换旁视缓冲器)来实现虚拟机的虚拟地址与宿主机的物理地址之间的翻译,因此全虚拟化的硬件规范中,基于已有的MIPS架构下的TLB的基础上,设置了额外的TLB,以供虚拟机使用,相应的,也设置了额外的用于控制该额外的TLB的寄存器。但半虚拟化硬件规范是为了减少MIPS架构下全虚拟化硬件规范实现的复杂度而提出的一种折中方案,相比于全虚拟化方案,不具有额外的TLB,因此也不具有专门供虚拟机使用的用于控制上述额外TLB的寄存器。因此当虚拟机基于已有的MIPS架构,通过访问控制TLB寄存器以使用TLB时,该虚拟机则被迫关闭,需要通过宿主机上的VMM(VirtualMachineMonitor,虚拟机管理器)访问控制TLB寄存器,从而通过TLB以实现虚拟机的虚拟地址与宿主机的物理地址之间的翻译,随后上述被迫关闭的虚拟机再次启动继续运行。可以理解的,虚拟机的运行会多次需要进行虚拟机的虚拟地址与宿主机的物理地址之间的翻译,由此导致多次使用控制TLB寄存器以访问TLB的事件,因此在现有技术中,虚拟机需要多次被迫关闭,随后再重启,而虚拟机的多次关闭重启,增大了宿主机的性能开销。
技术实现思路
本专利技术实施例提供一种运行虚拟机的控制方法和装置,用于优化虚拟机访问控制寄存器的过程,减小虚拟机访问控制寄存器引起的关闭重启次数,降低性能开销。第一方面,本专利技术实施例提供一种运行虚拟机的控制方法,包括:在第一虚拟机的本次运行过程中,当所述第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值;当根据所述宿主机的状态值确定所述宿主机处于宿主机非核心态时,则读取所述第一虚拟机的状态位,获得所述第一虚拟机的状态值;当根据所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态时,则控制所述第一虚拟机访问所述第一寄存器。结合第一方面,在第一实施方式中,所述根据所述宿主机的状态值确定所述宿主机处于宿主机非核心态,包括:判断所述宿主机的状态值是否标识为非核心状态,当所述宿主机的状态值标识为非核心状态,确定所述宿主机处于宿主机非核心状态;所述,根据所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态,包括:判断所述虚拟机的状态值是否标识为核心状态,当所述虚拟机的状态值标识为核心状态,确定所述宿主机处于宿主机非核心状态。结合第一方面第一实施方式,在第二实施方式中,所述控制方法应用于处理器,且所述处理器中新增有判断逻辑,所述判断逻辑,在执行访问控制寄存器指令时触发,用于判断所述宿主机的状态值是否标识为非核心状态,还用于判断所述虚拟机的状态值是否标识为核心状态。结合第一方面至第一方面第二实施方式中的任一种实施方式,在第三实施方式中,当所述第一虚拟机本次运行过程开始之前,所述控制方法还包括:将所述第一虚拟机对应的暂存空间所存储的前次现场数据恢复至所述控制寄存器,以使所述第一虚拟机开始本次运行过程;所述现场数据用于在虚拟机第一次运行结束之后保证该虚拟机正确进行第二次运行。结合第一方面第三实施方式,在第四实施方式中,当所述第一虚拟机本次运行过程结束时,所述控制方法还包括:将所述第一虚拟机的本次现场数据存储至所述第一虚拟机对应的暂存空间。结合第一方面第四实施方式中的任一种实施方式,在第四实施方式中,所述第一寄存器为用于控制转换旁视缓冲器TLB的寄存器。第二方面,本专利技术实施例提供一种运行虚拟机的控制装置,包括:获取模块,用于在第一虚拟机的本次运行过程中,当所述第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值;确定模块,用于根据所述获取模块获得的所述宿主机的状态值确定所述宿主机处于宿主机非核心态,则所述确定模块触发所述获取模块读取所述第一虚拟机的状态位,获得所述第一虚拟机的状态值;当所述确定模块根据所述获取模块获得的所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态时,则所述确定模块触发控制模块,所述控制模块用于控制所述第一虚拟机访问所述第一寄存器。结合第二方面,在第一实施方式中,所述确定模块,包括:第一判断单元,用于判断所述获取模块获得的宿主机的状态值是否标识为非核心状态,当所述宿主机的状态值标识为非核心状态,确定所述宿主机处于宿主机非核心状态;第二判断单元,用于判断所述获取单元获取的虚拟机的状态值是否标识为核心状态,当所述虚拟机的状态值标识为核心状态,确定所述宿主机处于宿主机非核心状态。结合第二方面第一或第二实施方式,在第三实施方式中,所述控制装置还包括:存储模块,用于将所述第一虚拟机对应的暂存空间所存储的前次现场数据恢复至所述控制寄存器,以使所述第一虚拟机开始本次运行过程;所述现场数据用于在虚拟机第一次运行结束之后保证该虚拟机正确进行第二次运行。结合第二方面第三实施方式,在第四实施方式中,所述存储模块还用于将所述第一虚拟机的本次现场数据存储至所述第一虚拟机对应的暂存空间。结合第二方面第四实施方式,在第五实施方式中,所述第一寄存器为用于控制转换旁视缓冲器TLB的寄存器。在本专利技术实施例提供的运行虚拟机的控制方法和装置,当第一虚拟机访问控制寄存器中的第一寄存器时,即使宿主机处于非核心态,但根据第一虚拟机的状态位获知第一虚拟机处于核心态,便可控制该第一虚拟机访问第一寄存器,不需要使第一虚拟机重启,便可完成对第一寄存器的访问,从而减小了宿主机上虚拟机发生重启的次数,进而可减小宿主机用于重启虚拟机的开销。附图说明图1为本专利技术运行虚拟机的控制方法实施例一的流程图;图2为本专利技术运行虚拟机的控制方法实施例二的流程图;图3为本专利技术运行虚拟机的控制装置实施例一的结构图;图4为本专利技术运行虚拟机的控制装置实施例二的结构图。具体实施方式图1为本专利技术运行虚拟机的控制方法实施例一的流程图。如图1所示,本实施例的执行主体为运行虚拟机的控制装置,该控制装置可以采用软件和/或硬件的方式实现,优选的,该控制装置可以设置在承载虚拟机的宿主机(也称宿主机)上,具体的,该控制方法包括:S101、在第一虚拟机的本次运行过程中,当第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值。上述第一虚拟机为宿主机当前运行的虚拟机,可以理解的,虚拟机的运行需要宿主机作为承载的载体,因此可以将虚拟机看作宿主机上的一种进程,则虚拟机作为进程是按照进程内的指令在宿主机本文档来自技高网
...
运行虚拟机的控制方法和装置

【技术保护点】
一种运行虚拟机的控制方法,其特征在于,包括: 在第一虚拟机的本次运行过程中,当所述第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值; 当根据所述宿主机的状态值确定所述宿主机处于宿主机非核心态时,则读取所述第一虚拟机的状态位,获得所述第一虚拟机的状态值; 当根据所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态时,则控制所述第一虚拟机访问所述第一寄存器。

【技术特征摘要】
1.一种运行虚拟机的控制方法,其特征在于,包括:在第一虚拟机的本次运行过程中,当所述第一虚拟机需访问控制寄存器中的第一寄存器时,读取宿主机的状态位,获得宿主机的状态值;判断所述宿主机的状态值是否标识为非核心状态,当所述宿主机的状态值标识为非核心状态,确定所述宿主机处于宿主机非核心状态;当根据所述宿主机的状态值确定所述宿主机处于宿主机非核心态时,则读取所述第一虚拟机的状态位,获得所述第一虚拟机的状态值;判断所述虚拟机的状态值是否标识为核心状态,当所述虚拟机的状态值标识为核心状态,确定所述宿主机处于宿主机非核心状态;当根据所述虚拟机的状态值确定所述第一虚拟机处于虚拟机核心态时,则控制所述第一虚拟机访问所述第一寄存器。2.根据权利要求1所述的控制方法,其特征在于,所述控制方法应用于处理器,且所述处理器中新增有判断逻辑,所述判断逻辑,在执行访问控制寄存器指令时触发,用于判断所述宿主机的状态值是否标识为非核心状态,还用于判断所述虚拟机的状态值是否标识为核心状态。3.根据权利要求1或2所述的控制方法,其特征在于,当所述第一虚拟机本次运行过程开始之前,所述控制方法还包括:将所述第一虚拟机对应的暂存空间所存储的前次现场数据恢复至所述控制寄存器,以使所述第一虚拟机开始本次运行过程;所述现场数据用于在虚拟机第一次运行结束之后保证该虚拟机正确进行第二次运行。4.根据权利要求3所述的控制方法,其特征在于,当所述第一虚拟机本次运行过程结束时,所述控制方法还包括:将所述第一虚拟机的本次现场数据存储至所述第一虚拟机对应的暂存空间。5.根据权利要求4所述的控制方法,其特征在于,所述第一寄存...

【专利技术属性】
技术研发人员:台运方蔡万伟刘奇张戈
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1