一种处理敏感指令的方法、装置以及物理机制造方法及图纸

技术编号:8906962 阅读:189 留言:0更新日期:2013-07-11 04:36
本发明专利技术实施例涉及计算机虚拟化领域,通过本发明专利技术实施例通过在虚拟机处理待处理的敏感指令导致陷入之后,获取所述待处理的敏感指令对应的内存地址;当所述待处理的敏感指令对应的内存地址与保存的任意一个敏感指令集中起始指令对应的内存地址相同时,获取与所述待处理的敏感指令对应的内存地址相同的起始指令所属的敏感指令集;根据获取的所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集,可以实现减少虚拟机陷入的次数,提高虚拟机的性能。

【技术实现步骤摘要】

本专利技术涉及计算机虚拟化领域,尤其涉及一种处理敏感指令的方法、装置以及物理机
技术介绍
在虚拟化领域中,虚拟化技术扩大了硬件的容量,简化了软件的重新配置过程,实现了在一台物理主机上虚拟多个虚拟机,并且同时在各个虚拟机上运行一个独立的操作系统,从而显著提高计算机的工作效率,其中,这些独立的操作系统称为客户机操作系统(Guest Operating System, Guest OS)。在现有技术中,通常采用硬件虚拟化技术访问处理器。在Xen构架下的虚拟机系统中,Xen为虚拟机监视器,虚拟机不能处理敏感指令,如中央处理器(Central ProcessingUnit, CPU)指令中一部分指令为敏感指令。此时虚拟机陷入(Virtual Machine Exit, VMExit)Xen中,由Xen来处理敏感指令。在敏感指令处理完成之后,通过虚拟机进入(VirtualMachine Entry, VM Entry)操作返回虚拟机内部继续处理下一条指令。当下一条指令为敏感指令时,采用上述方法处理敏感指令;当下一条指令为非敏感指令时,虚拟机直接处理该非敏感指令。然而,在现有技术中,每当虚拟机执行一条敏感指令时,就需要在一次虚拟机陷入中处理一条敏感指令。当出现连续的敏感指令访问时,虚拟机在短期内需要执行大量敏感指令,导致大量的虚拟机陷入,使得虚拟机性能下降。
技术实现思路
本专利技术提供的一种处理敏感指令的方法、装置以及物理机,可以实现减少虚拟机陷入的次数,提高虚拟机的性能。第一方面,本专利技术提供一种处理敏感指令的方法,包括:在虚拟机处理待处理的敏感指令导致陷入之后,获取所述待处理的敏感指令对应的内存地址当所述待处理的敏感指令对应的内存地址与保存的任意一个敏感指令集中起始指令对应的内存地址相同时,获取与所述待处理的敏感指令对应的内存地址相同的起始指令所属的敏感指令集,其中,所述敏感指令集包括至少两条敏感指令,且所述敏感指令集的起始指令和结尾指令均为敏感指令;根据获取的所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集。结合第一方面,在第一种可能的实施例中,所述敏感指令集包括至少两条敏感指令和至少一条非敏感指令。结合第一方面中的第一种可能的实施例,在第二种可能的实施例中,所述根据所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集,包括:按照所述指令的执行顺序,处理所述敏感指令集中的第一指令;在处理第一指令之后,获取所述第一指令的长度;根据所述第一指令的长度,修改指令指针IP寄存器指向的地址为所述敏感指令集中的第二指令对应的内存地址,以便根据上述处理所述第一指令的方法处理所述第二指令。结合第一方面中的第二种可能的实施例,在第三种可能的实施例中,所述根据所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集,包括:按照所述指令的执行顺序,处理所述敏感指令集;在处理所述敏感指令集之后,获取所述敏感指令集的长度;根据所述敏感指令集的长度,修改IP寄存器指向的地址为下一条待处理指令对应的内存地址,以便处理所述待处理指令。结合第一方面中的前述任一种可能的实施例,在第四种可能的实施例中,所述方法还包括:当所述待处理敏感指令对应的内存地址与保存的每个敏感指令集中起始指令对应的内存地址均不相同时,直接处理所述待处理的敏感指令。第二方面,本专利技术提供一种处理敏感指令的装置,包括:第一获取模块,用于在虚拟机处理待处理的敏感指令导致陷入之后,获取所述待处理的敏感指令对应的内存地址,并将所述处理的敏感指令对应的内存地址发送给第二获取模块;所述第二获取模块用于接收所述第一获取模块发送的所述待处理的敏感指令,当所述待处理的敏感指令对应的内存地址与保存的任意一个敏感指令集中起始指令对应的内存地址相同时,获取与所述待处理的敏感指令对应的内存地址相同的起始指令所属的敏感指令集,并将所述敏感指令集发送给处理模块;其中,所述敏感指令集包括至少两条敏感指令,且所述敏感指令集的起始指令和结尾指令均为敏感指令;所述处理模块用于根据所述第二获取模块获取的所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集。结合第二方面,在第一种可能的实施例中,所述处理模块,包括:第一处理单元,用于按照所述指令的执行顺序,处理所述敏感指令集中的第一指令;第一获取单元,用于在所述第一处理单元处理完第一指令之后,获取所述第一指令的长度,并将所述第一指令的长度发送给第一修改单元;所述第一修改单元,用于根据接收的所述第一获取单元获取的所述第一指令的长度,修改IP寄存器指向的地址为所述敏感指令集中的第二指令对应的内存地址。结合第二方面的第一种可能的实施例,在第二种可能的实施例中,所述处理模块,包括:第二处理单元,用于按照所述指令的执行顺序,处理所述敏感指令集;第二获取单元,用于在所述第二处理单元处理完所述敏感指令集之后,获取所述敏感指令集的长度,并将所述敏感指令集的长度发送给第二修改单元;所述第二修改单元,用于根据接收的所述第二获取单元获取的所述敏感指令集的长度,修改IP寄存器指向的地址为下一条待处理指令对应的内存地址。结合第二方面的前述任一种可能的实施例,在第四种可能的实施例中,所述处理模块,还用于当所述待处理敏感指令对应的内存地址与保存的每个敏感指令集中起始指令对应的内存地址均不相同时,直接处理所述待处理的敏感指令。第三方面,本专利技术实施例还提供一种物理机,所述物理机包括硬件层、运行在硬件层之上的虚拟机监视器和运行在虚拟机监视器上的一个或多个虚拟机,所述虚拟机监视器包括如前述任一项实施例所述的处理敏感指令的装置。可见,本专利技术实施例提供一种处理敏感指令的方法、装置以及物理机,通过在虚拟机执行待处理的敏感指令导致陷入之后,获取待处理的敏感指令对应的内存地址;当待处理的敏感指令对应的内存地址与保存的任意一个敏感指令集中起始指令对应的内存地址相同时,获取与待处理的敏感指令对应的内存地址相同的起始指令所属的敏感指令集;根据敏感指令集记录的指令及指令的执行顺序处理敏感指令集,与现有技术中每当虚拟机执行一条敏感指令时,就需要在一次虚拟机陷入中模拟一条敏感指令,当出现连续的敏感指令访问时,虚拟机在短期内需要执行大量敏感指令,导致大量的虚拟机陷入,使得虚拟机性能下降相比,本专利技术实施例可以实现减少虚拟机陷入的次数,提高虚拟机的性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种处理敏感指令的方法的流程示意图;图2为本专利技术实施例提供的另一种处理敏感指令的方法的流程示意图;图3为本专利技术实施例提供的一种处理器之间的中断IPI中包含的指令的示意图;图4为本专利技术实施例提供的一种处理敏感指令的方法的流程示意图;图5为本专利技术实施例提供的另一种处理敏感指令的方法的流程示意图;图6为本专利技术实施例提供的一种处理敏感指令的装置的逻辑结构示意图;图7为本专利技术实施例提供的另一种处理敏感指令的装置的逻辑结构示意图;图8为本专利技术实施例提供的再一种处理敏感本文档来自技高网...

【技术保护点】
一种处理敏感指令的方法,其特征在于,包括:在虚拟机处理待处理的敏感指令导致陷入之后,获取所述待处理的敏感指令对应的内存地址;当所述待处理的敏感指令对应的内存地址与保存的任意一个敏感指令集中起始指令对应的内存地址相同时,获取与所述待处理的敏感指令对应的内存地址相同的起始指令所属的敏感指令集,其中,所述敏感指令集包括至少两条敏感指令,且所述敏感指令集的起始指令和结尾指令均为敏感指令;根据获取的所述敏感指令集记录的指令及所述指令的执行顺序处理所述敏感指令集。

【技术特征摘要】

【专利技术属性】
技术研发人员:严晓丹
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1