指令解析的方法及装置的制作方法

文档序号:6385924阅读:134来源:国知局
专利名称:指令解析的方法及装置的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种指令解析的方法及装置。
背景技术
为了提高计算机的工作效率,通常采用虚拟机技术,在物理主机中虚拟出多个虚拟机,同时运行多个独立的操作系统。虚拟机由于需要通过VMM (Virtual MachineMonitor,虚拟机监视器)访问实际的物理资源,因此具有一定的局限性,不能直接执行如访问 APIC (Advanced Programmable Interrupt Controller,高级可编程中断控制)寄存器等敏感指令,而是通过虚拟机vCPU (virtual Central Processing Unit,虚拟中央处理器单元)陷入(Exit)的方法,将敏感指令交由VMM来模拟执行。VMM为了实现模拟执行敏感指令,需要先进行指令解析。现有技术中进行指令解析的方法是VMM服务于虚拟机,在虚拟机由于敏感指令而发生虚拟机vCPU陷入后,VMM直接对敏感指令进行指令解析,根据敏感指令的不同,指令解析的过程稍有不同,但至少包括计算指令的操作码的长度,获取操作码,解码源操作数,以及解码目的操作数等多个步骤。在实现本发明的过程中,发明人发现现有技术至少存在以下问题现有技术在指令解析的过程中,由于直接解析指令的过程复杂,解析指令的耗时较长,甚至长于指令模拟操作的耗时,导致系统开销较大,虚拟机的性能降低。

发明内容
为了解决现有技术的问题,本发明实施例提供了一种指令解析的方法及装置。所述技术方案如下第一方面,提供了一种指令解析的方法,所述方法包括获取所服务的虚拟机发生虚拟机vCPU陷入的信息;根据所述信息解析所述虚拟机的IP (Instruction Pointer,指令指针)寄存器,得到引起所述虚拟机vCPU陷入的敏感指令的IP ;确定所述敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数。结合第一方面,在第一方面的第一种可能的实现方式中,所述确定所述敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,包括将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP ;在预先设置的IP与指令信息的对应关系中确定所述相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型;
相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将所述敏感指令的IP与预先保存的IP列表中的IP进行比对之后,还包括如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。结合第一方面和第一方面的第一种可能的实现方式至第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括 根据所述解析结果,模拟执行所述敏感指令。结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,其特征在于,所述根据所述解析结果,模拟执行所述敏感指令之后,还包括更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。第二方面,提供了一种指令解析的装置,所述装置包括第一获取模块,用于获取所服务的虚拟机发生虚拟机vCPU陷入的信息;第一解析模块,用于根据所述第一获取模块获取到的信息解析所述虚拟机的IP寄存器,得到引起所述虚拟机vCPU陷入的敏感指令的IP ;确定模块,用于确定所述第一解析模块解析得到的敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数。结合第二方面,在第二方面的第一种可能的实现方式中,所述确定模块,包括比对单元,用于将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP ;确定单元,用于在预先设置的IP与指令信息的对应关系中确定所述比对单元比对得到的相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型;相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括第二解析模块,用于如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述装置还包括添加模块,用于将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。结合第二方面和第二方面的第一种可能的实现方式至第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括执行模块,用于根据所述解析结果,模拟执行所述敏感指令。结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括更新模块,用于更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。本发明实施例提供的技术方案带来的有益效果是通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的一种指令解析的方法流程图;图2是本发明实施例二提供的一种指令解析的方法流程图;图3是本发明实施例三提供的第一种指令解析的装置结构示意图;图4是本发明实施例三提供的第二种指令解析的装置结构示意图;图5是本发明实施例三提供的第三种指令解析的装置结构示意图;图6是本发明实施例三提供的第四种指令解析的装置结构示意图;图7是本发明实施例三提供的第五种指令解析的装置结构示意图;图8是本发明实施例三提供的第六种指令解析的装置结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例一本发明实施例提供了一种指令解析的方法,参见图1,方法流程包括101 :获取所服务的虚拟机发生虚拟机vCPU陷入的信息。
102 :根据信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IPo103 :确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,指令信息至少包括操作码、源操作数和目的操作数。具体地,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,包括但不限于将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP ;在预先设置的IP与指令信息的对应关系中确定相匹配的IP对应的指令信息,并将对应的指令信息作为敏感指令的解析结果。进一步地,虚拟机为多个,每个虚拟机对应各自的操作系统的类型;相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。进一步地,将敏感指令的IP与预先保存的IP列表中的IP进行比对之后,还包括如果未得到与敏感指令的IP相匹配的IP,则直接解析敏感指令,得到指令信息,并将指令信息作为敏感指令的解析结果。进一步地,将指令信息作为敏感指令的解析结果之后,还包括将敏感指令的IP添加到预先保存的IP列表中,并将敏感指令的IP与指令信息的对应关系添加到预先设置的IP与指令信息的对应关系中。进一步地,将指令信息作为敏感指令的解析结果之后,还包括根据解析结果,模拟执行敏感指令。进一步地,将指令信息作为敏感指令的解析结果之后,还包括更新虚拟机的IP寄存器的IP,使得IP寄存器中的IP指向虚拟机的下一条指令。综上所述,本发明实施例的方法,通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。实施例二由于虚拟机不能直接执行敏感指令,而是通过虚拟机vCPU陷入的方法,将敏感指令交由VMM模拟执行。在模拟执行敏感指令时,需要进行指令解析。为了降低进行指令解析时的系统开销,本发明实施例提供了一种指令解析的方法,结合上述实施例一的内容,参见图2,方法流程包括201 =VMM获取虚拟机发生虚拟机vCPU陷入的信息。其中,VMM为用于模拟执行虚拟机vCPU陷入的敏感指令的一种设备,除了 VMM之夕卜,还可以选用其他设备。对于具体选用哪种设备,本发明实施例在此不进行具体限定。虚拟机为VMM所服务的虚拟机,为了便于说明,本实施例及后续实施例中提到的虚拟机均为VMM所服务的虚拟机。敏感指令是指虚拟机不能直接执行,而需要VMM模拟执行的指令,例如访问APIC寄存器,访问I/O (Input/Output)接口的指令、访问特定寄存器的指令等。除此之外,敏感指令还可以是其他指令,本发明实施例在此不对敏感指令进行具体限定。
具体地,VMM从 VMCS (Virtual Machine Control Structure,虚拟机控制结构)中获取VMCS保存的虚拟机发生虚拟机vCPU陷入的信息。除了上述方法之外,VMM还可以通过其他方式获取虚拟机发生虚拟机vCPU陷入的信息。对于VMM具体采用哪种方获取虚拟机发生虚拟机vCPU陷入的信息,本发明实施例在此不进行限定。202 =VMM根据虚拟机发生虚拟机vCPU陷入的信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP。其中,在虚拟机的IP寄存器中保存有当前正在执行的指令的IP。具体地,VMM根据该虚拟机发生虚拟机vCPU陷入的信息可以得知虚拟机由于执行敏感指令而发生虚拟机vCPU陷入,从而解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP。举例来说,在虚拟机中有两个vCPU (Virtual Central Processing Unit,虚拟中央处理单元),即vCPUl和vCPU2。vCPUl与vCPU2进行通信时,需要通过发送IPI(Inter-processor Interrupt,处理器之间中断)中断来完成的,完成每个IPI中断需要执行三条指令读ICR (Interrupt Controller Register,中断控制寄存器)寄存器,写ICR2寄存器和写ICR寄存器。由于这三条指令的都是敏感指令,在虚拟机需要完成vCPUl发送IPI中断给vCPU2时,会引发三次虚拟机vCPU陷入。在执行“读ICR寄存器”敏感指令时,VMCS发送虚拟机发生虚拟机vCPU陷入的信息给VMM,VMM在获取到该信息后,根据该信息访问虚拟机的IP寄存器,得到敏感指令“读ICR寄存器”的IP。当虚拟机执行其余两个敏感指令时,VMCS也会发送虚拟机发生虚拟机vCPU陷入的信息给VMM,VMM根据该信息也会分别得到敏感指令“写ICR2寄存器”的IP和敏感指令“写ICR寄存器”的IP。203 :VMM将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP,则执行204,未得到与敏感指令的IP相匹配的ID,则执行205。针对该步骤,在同一类型的虚拟机的操作系统中,同一敏感指令在内存中的地址保持不变,由于IP对应于保存当前指令在内存中的地址,同一敏感指令对应的IP也保持不变。因此,可以将该虚拟机中已知的敏感指令的IP预先保存到IP列表中,并预先设置敏感指令的IP与该敏感指令的指令信息之间的对应关系。举例来说,将敏感指令的“读ICR寄存器”的IP在预先保存的IP列表中的IP进行比对,得到与敏感指令“读ICR寄存器”的IP相匹配的IP1 ;将敏感指令“写ICR2寄存器”的IP在预先保存的IP列表中得到与敏感指令“写ICR2寄存器”的IP相匹配的IP2 ;将敏感指令“写ICR寄存器”的IP在预先保存的IP列表中的IP进行比对,无法得到与敏感指令“写ICR寄存器”相匹配的IP。除了上述方法之外,还可以采用其他方式将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP。对于具体采用哪种方式将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP,本发明实施例在此不进行具体限定。需要说明的是,VMM自身所服务的虚拟机为多个,每个虚拟机对应各自的操作系统的类型;相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。如果有多个不同的IP列表,在进行比对的时候,将敏感指令的IP与多个不同的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP。204 VMM在预先设置的IP与指令信息的对应关系中确定相匹配的IP对应的指令信息,并将对应的指令信息作为敏感指令的解析结果。其中,指令信息至少包括操作码,源操作数和目的操作数。举例来说,VMM在预先设置的IP与指令信息的对应关系中确定于敏感指令“读ICR寄存器”相匹配的IP1对应的指令信息A,并将指令信息A作为敏感指令“读ICR寄存器”的解析结果。相应的,还可以确定与敏感指令“写ICR2寄存器”相匹配的IP2对应的指令信息B,将指令信息B作为敏感指令“写ICR2寄存器”的解析结果。除了上述方法之外,还可以采用其他方式在预先设置的IP与指令信息的对应关系中确定相匹配的IP对应的指令信息。对于具体采用哪种方式在预先设置的IP与指令信息的对应关系中确定相匹配的IP对应的指令信息,本发明实施例在此不进行具体限定。205 =VMM直接解析敏感指令,得到指令信息,并将指令信息作为敏感指令的解析结果。具体地,直接解析敏感指令的具体方式为读取VMCS中保存的虚拟机vCPU陷入的原因,解析虚拟机vCPU陷入的类型,从而根据虚拟机vCPU陷入的类型直接解析敏感指令。根据虚拟机vCPU陷入的原因的不同,解析得到的虚拟机vCPU陷入的类型不同,从而使得直接解析敏感指令的方式也不同。举例来说,VMM在预先保存的IP列表中未得到与敏感指令“写ICR寄存器”的IP相匹配的IP,则读取VMCS中保存的由于敏感指令“写ICR寄存器”引发的虚拟机vCPU陷入的原因,解析虚拟机vCPU陷入的类型,从而根据虚拟机vCPU陷入的类型直接解析敏感指令“写ICR寄存器”,得到敏感指令“写ICR寄存器”的指令信息C,并将指令信息C作为敏感指令“写ICR寄存器”的解析结果。除了上述方法之外,还可以采用其他方式直接解析敏感指令,得到指令信息。对于具体采用哪种方式直接解析敏感指令,得到指令信息,本发明实施例在此不进行具体限定。针对该步骤,在将指令信息作为敏感指令的解析结果之后,还可以将敏感指令的IP添加到预先保存的IP列表中,并将敏感指令的IP与指令信息的对应关系添加到预先设置的IP与指令信息的对应关系中。此外,当VMM所服务的虚拟机对应的操作系统的类型为多种时,在将指令信息作为敏感指令的解析结果之后,还可以将敏感指令的IP添加到操作系统的类型对应的预先保存的IP列表中,并将敏感指令的IP与指令信息的对应关系添加到操作系统的类型对应的预先设置的IP与指令信息的对应关系中。通过上述添加操作,使得当VMM再次需要解析该敏感指令时,可以在预先保存的IP列表中得到与该敏感指令的IP相匹配的IP。进一步地,在步骤204或步骤205中将指令信息作为敏感指令的解析结果之后,VMM还可以包括根据解析结果,模拟执行敏感指令的操作;还可以包括更新虚拟机的IP寄存器的IP,使得IP寄存器中的IP指向虚拟机的下一条指令。并且,在更新IP寄存器的IP,将IP指向虚拟机的下一条指令之后,还可以通过虚拟机进入(Entry)的方法,将执行指令的操作切换给虚拟机,从而使得虚拟机可以保持执行指令的连续性。除此之外,VMM在将指令信息作为敏感指令的解析结果之后,还可以执行其他的操作,本发明实施例在此不对将指令信息作为敏感指令的解析结果之后的进一步操作进行具体限定。综上所述,本发明实施例的方法,通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。实施例三本发明实施例提供了一种指令解析的装置,该装置用于执行上述实施例一或实施例二提供的指令解析的方法。参见图3,该装置包括第一获取模块301,用于获取所服务的虚拟机发生虚拟机vCPU陷入的信息;第一解析模块302,用于根据第一获取模块301获取到的信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP ;确定模块303,用于确定第一解析模块302解析得到的敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,指令信息至少包括操作码、源操作数和目的操作数。具体地,参见图4,确定模块303,包括比对单元3031,用于将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP ;确定单元3032,用于在预先设置的IP与指令信息的对应关系中确定比对单元3031比对得到的相匹配的IP对应的指令信息,并将对应的指令信息作为敏感指令的解析结果。进一步地,虚拟机为多个,每个虚拟机对应各自的操作系统的类型;相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。进一步地,参见图5,该装置还包括第二解析模块304,用于如果未得到与敏感指令的IP相匹配的IP,则直接解析敏感指令,得到指令信息,并将指令信息作为敏感指令的解析结果。进一步地,参见图6,该装置还包括添加模块305,用于将敏感指令的IP添加到预先保存的IP列表中,并将敏感指令的IP与指令信息的对应关系添加到预先设置的IP与指令信息的对应关系中。进一步地,参见图7,该装置还包括执行模块306,用于根据解析结果,模拟执行敏感指令。进一步地,参见图8,该装置还包括更新模块307,用于更新虚拟机的IP寄存器的IP,使得IP寄存器中的IP指向虚拟机的下一条指令。综上所述,本发明实施例提供的指令解析的装置,通过获取虚拟机发生虚拟机VCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。
实施例四本发明实施例提供了一种指令解析的装置,该装置包括至少一个存储器和至少一个处理器,例如CPU (Central Processing Unit,中央处理器单元)等,处理器通过总线与多个存储节点耦合,以执行指令解析的功能。处理器,用于获取所服务的虚拟机发生虚拟机vCPU陷入的信息;根据信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP ;确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,指令信息至少包括操作码、源操作数和目的操作数。具体地,处理器,还用于将敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与敏感指令的IP相匹配的IP ;在预先设置的IP与指令信息的对应关系中确定相匹配的IP对应的指令信息,并将对应的指令信息作为敏感指令的解析结果。进一步地,虚拟机为多个,每个虚拟机对应各自的操作系统的类型;相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。进一步地,处理器还用于如果未得到与敏感指令的IP相匹配的IP,则直接解析敏感指令,得到指令信息,并将指令信息作为敏感指令的解析结果。进一步地,处理器还用于将敏感指令的IP添加到预先保存的IP列表中,并将敏感指令的IP与指令信息的对应关系添加到预先设置的IP与指令信息的对应关系中。进一步地,处理器还用于根据解析结果,模拟执行敏感指令。进一步地,处理器还用于更新虚拟机的IP寄存器的IP,使得IP寄存器中的IP指向虚拟机的下一条指令。综上所述,本发明实施例的指令解析的装置,通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。需要说明的是上述实施例提供的指令解析的装置在指令解析时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将指令解析的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的指令解析的装置与指令解析的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种指令解析的方法,其特征在于,所述方法包括: 获取所服务的虚拟机发生虚拟机虚拟中央处理单元VCPU陷入的信息; 根据所述信息解析所述虚拟机的指令指针IP寄存器,得到引起所述虚拟机VCPU陷入的敏感指令的IP ; 确定所述敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数。
2.根据权利要求1所述的方法,其特 征在于,所述确定所述敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,包括: 将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP ; 在预先设置的IP与指令信息的对应关系中确定所述相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果。
3.根据权利要求2所述的方法,其特征在于,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型; 相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述敏感指令的IP与预先保存的IP列表中的IP进行比对之后,还包括: 如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。
5.根据权利要求4所述的方法,其特征在于,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括: 将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。
6.根据权利要求1至5任一所述的方法,其特征在于,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括: 根据所述解析结果,模拟执行所述敏感指令。
7.根据权利要求6所述的方法,其特征在于,所述根据所述解析结果,模拟执行所述敏感指令之后,还包括: 更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。
8.一种指令解析的装置,其特征在于,所述装置包括: 第一获取模块,用于获取所服务的虚拟机发生虚拟机虚拟中央处理器单元VCPU陷入的信息; 第一解析模块,用于根据所述第一获取模块获取到的信息解析所述虚拟机的指令指针IP寄存器,得到引起所述虚拟机VCPU陷入的敏感指令的IP ; 确定模块,用于确定所述第一解析模块解析得到的敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,包括: 比对单元,用于将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP ; 确定单元,用于在预先设置的IP与指令信息的对应关系中确定所述比对单元比对得到的相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果O
10.根据权利要求9所述的装置,其特征在于,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型; 相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。
11.根据权利要求9或10所述的装置,其特征在于,所述装置还包括: 第二解析模块,用于如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括: 添加模块,用于将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。
13.根据权利 要求8至12任一所述的装置,其特征在于,所述装置还包括: 执行模块,用于根据所述解析结果,模拟执行所述敏感指令。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括: 更新模块,用于更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。
全文摘要
本发明公开了一种指令解析的方法及装置,属于计算机领域。所述方法包括获取所服务的虚拟机发生虚拟机vCPU陷入的信息;根据信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP;确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,指令信息至少包括操作码、源操作数和目的操作数。本发明通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。
文档编号G06F9/455GK103077069SQ201210585519
公开日2013年5月1日 申请日期2012年12月28日 优先权日2012年12月28日
发明者郑寒 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1