CN103077069B - 指令解析的方法及装置 - Google Patents
指令解析的方法及装置 Download PDFInfo
- Publication number
- CN103077069B CN103077069B CN201210585519.1A CN201210585519A CN103077069B CN 103077069 B CN103077069 B CN 103077069B CN 201210585519 A CN201210585519 A CN 201210585519A CN 103077069 B CN103077069 B CN 103077069B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- sensitive instructions
- command information
- instructions
- analysis result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种指令解析的方法及装置,属于计算机领域。所述方法包括:获取所服务的虚拟机发生虚拟机vCPU陷入的信息;根据信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP;确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,指令信息至少包括操作码、源操作数和目的操作数。本发明通过获取虚拟机发生虚拟机vCPU陷入的信息,并根据信息解析虚拟机的IP寄存器得到敏感指令的IP,得到敏感指令的IP后,确定敏感指令的IP所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。
Description
技术领域
本发明涉及计算机领域,特别涉及一种指令解析的方法及装置。
背景技术
为了提高计算机的工作效率,通常采用虚拟机技术,在物理主机中虚拟出多个虚拟机,同时运行多个独立的操作系统。虚拟机由于需要通过VMM(VirtualMachineMonitor,虚拟机监视器)访问实际的物理资源,因此具有一定的局限性,不能直接执行如访问APIC(AdvancedProgrammableInterruptController,高级可编程中断控制)寄存器等敏感指令,而是通过虚拟机vCPU(virtualCentralProcessingUnit,虚拟中央处理器单元)陷入(Exit)的方法,将敏感指令交由VMM来模拟执行。VMM为了实现模拟执行敏感指令,需要先进行指令解析。
现有技术中进行指令解析的方法是VMM服务于虚拟机,在虚拟机由于敏感指令而发生虚拟机vCPU陷入后,VMM直接对敏感指令进行指令解析,根据敏感指令的不同,指令解析的过程稍有不同,但至少包括计算指令的操作码的长度,获取操作码,解码源操作数,以及解码目的操作数等多个步骤。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术在指令解析的过程中,由于直接解析指令的过程复杂,解析指令的耗时较长,甚至长于指令模拟操作的耗时,导致系统开销较大,虚拟机的性能降低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种指令解析的方法及装置。所述技术方案如下:
第一方面,提供了一种指令解析的方法,所述方法包括:
获取所服务的虚拟机发生虚拟机vCPU陷入的信息;
根据所述信息解析所述虚拟机的IP(InstructionPointer,指令指针)寄存器,得到引起所述虚拟机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陷入的敏感指令的IP。
103:确定敏感指令的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(VirtualMachineControlStructure,虚拟机控制结构)中获取VMCS保存的虚拟机发生虚拟机vCPU陷入的信息。
除了上述方法之外,VMM还可以通过其他方式获取虚拟机发生虚拟机vCPU陷入的信息。对于VMM具体采用哪种方获取虚拟机发生虚拟机vCPU陷入的信息,本发明实施例在此不进行限定。
202:VMM根据虚拟机发生虚拟机vCPU陷入的信息解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP。
其中,在虚拟机的IP寄存器中保存有当前正在执行的指令的IP。
具体地,VMM根据该虚拟机发生虚拟机vCPU陷入的信息可以得知虚拟机由于执行敏感指令而发生虚拟机vCPU陷入,从而解析虚拟机的IP寄存器,得到引起虚拟机vCPU陷入的敏感指令的IP。
举例来说,在虚拟机中有两个vCPU(VirtualCentralProcessingUnit,虚拟中央处理单元),即vCPU1和vCPU2。vCPU1与vCPU2进行通信时,需要通过发送IPI(Inter-processorInterrupt,处理器之间中断)中断来完成的,完成每个IPI中断需要执行三条指令:读ICR(InterruptControllerRegister,中断控制寄存器)寄存器,写ICR2寄存器和写ICR寄存器。由于这三条指令的都是敏感指令,在虚拟机需要完成vCPU1发送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(CentralProcessingUnit,中央处理器单元)等,处理器通过总线与多个存储节点耦合,以执行指令解析的功能。
处理器,用于获取所服务的虚拟机发生虚拟机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所对应的指令信息,并将指令信息作为敏感指令的解析结果,从而避免了直接解析指令的冗杂过程,使得解析指令的耗时较短,从而降低了系统开销,提高了虚拟机的性能。
需要说明的是:上述实施例提供的指令解析的装置在指令解析时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将指令解析的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的指令解析的装置与指令解析的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种指令解析的方法,其特征在于,所述方法包括:
获取所服务的虚拟机发生虚拟机虚拟中央处理单元vCPU陷入的信息;
根据所述信息解析所述虚拟机的指令指针IP寄存器,得到引起所述虚拟机vCPU陷入的敏感指令的IP;
将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP;
在预先设置的IP与指令信息的对应关系中确定所述相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型;
相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。
3.根据权利要求1所述的方法,其特征在于,所述将所述敏感指令的IP与预先保存的IP列表中的IP进行比对之后,还包括:
如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。
4.根据权利要求3所述的方法,其特征在于,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括:
将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。
5.根据权利要求1至4任一所述的方法,其特征在于,所述将所述指令信息作为所述敏感指令的解析结果之后,还包括:
根据所述解析结果,模拟执行所述敏感指令。
6.根据权利要求5所述的方法,其特征在于,所述根据所述解析结果,模拟执行所述敏感指令之后,还包括:
更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。
7.一种指令解析的装置,其特征在于,所述装置包括:
第一获取模块,用于获取所服务的虚拟机发生虚拟机虚拟中央处理器单元vCPU陷入的信息;
第一解析模块,用于根据所述第一获取模块获取到的信息解析所述虚拟机的指令指针IP寄存器,得到引起所述虚拟机vCPU陷入的敏感指令的IP;
确定模块,用于确定所述第一解析模块解析得到的敏感指令的IP所对应的指令信息,并将所述指令信息作为所述敏感指令的解析结果,所述指令信息至少包括操作码、源操作数和目的操作数;
其中,所述确定模块,包括:
比对单元,用于将所述敏感指令的IP与预先保存的IP列表中的IP进行比对,得到与所述敏感指令的IP相匹配的IP;
确定单元,用于在预先设置的IP与指令信息的对应关系中确定所述比对单元比对得到的相匹配的IP对应的指令信息,并将所述对应的指令信息作为所述敏感指令的解析结果。
8.根据权利要求7所述的装置,其特征在于,所述虚拟机为多个,每个虚拟机对应各自的操作系统的类型;
相同类型的操作系统的类型对应相同的IP列表,不同类型的操作系统的类型对应不同的IP列表。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二解析模块,用于如果未得到与所述敏感指令的IP相匹配的IP,则直接解析所述敏感指令,得到指令信息,并将所述指令信息作为所述敏感指令的解析结果。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
添加模块,用于将所述敏感指令的IP添加到所述预先保存的IP列表中,并将所述敏感指令的IP与所述指令信息的对应关系添加到所述预先设置的IP与指令信息的对应关系中。
11.根据权利要求7至10任一所述的装置,其特征在于,所述装置还包括:
执行模块,用于根据所述解析结果,模拟执行所述敏感指令。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
更新模块,用于更新所述虚拟机的IP寄存器的IP,使得所述IP寄存器中的IP指向所述虚拟机的下一条指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210585519.1A CN103077069B (zh) | 2012-12-28 | 2012-12-28 | 指令解析的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210585519.1A CN103077069B (zh) | 2012-12-28 | 2012-12-28 | 指令解析的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103077069A CN103077069A (zh) | 2013-05-01 |
CN103077069B true CN103077069B (zh) | 2016-08-03 |
Family
ID=48153606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210585519.1A Expired - Fee Related CN103077069B (zh) | 2012-12-28 | 2012-12-28 | 指令解析的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077069B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843808B (zh) * | 2017-01-06 | 2019-06-21 | 福建升腾资讯有限公司 | 一种兼容不同格式类型的指令解析方法 |
CN113703660B (zh) * | 2020-05-22 | 2024-03-19 | 超聚变数字技术有限公司 | 数据预取方法和数据预取装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944041A (zh) * | 2010-09-26 | 2011-01-12 | 中国科学院计算技术研究所 | 一种使用陷阱指令优化条件转移代码性能的方法及其系统 |
-
2012
- 2012-12-28 CN CN201210585519.1A patent/CN103077069B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944041A (zh) * | 2010-09-26 | 2011-01-12 | 中国科学院计算技术研究所 | 一种使用陷阱指令优化条件转移代码性能的方法及其系统 |
Non-Patent Citations (2)
Title |
---|
基于指令表自驱动的指令解析模型实现方法研究;宋铮等;《微电子学与计算机》;20071130;第24卷(第11期);第175-177,180页 * |
虚拟机陷出的检测及分析;汪小林等;《计算机科学与探索》;20110630;第5卷(第6期);第493-500页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103077069A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877793B2 (en) | Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system | |
WO2013099414A1 (ja) | レジスタ・マッピング方法 | |
WO2013123405A1 (en) | Profiling and sequencing operators executable in an emulated computing system | |
US20150121377A1 (en) | Method for implementing inter-virtual processor interrupt, related apparatus, and system | |
CN111183411B (zh) | 用于虚拟机的动态地址转换 | |
JP7088897B2 (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
CN105630524A (zh) | 网页文本解析方法、装置和移动终端 | |
CN105210037A (zh) | 存储器访问的加快 | |
US20160110209A1 (en) | Apparatus and method for performing multi-core emulation based on multi-threading | |
EP3846036B1 (en) | Matrix storage method, matrix access method, apparatus and electronic device | |
KR20200034572A (ko) | 요청 처리 방법 및 장치 | |
US11467946B1 (en) | Breakpoints in neural network accelerator | |
CN103077069B (zh) | 指令解析的方法及装置 | |
US9535713B2 (en) | Manipulating rules for adding new devices | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
CN113849277B (zh) | 网卡测试方法、装置、计算机设备及计算机可读存储介质 | |
CN115587026A (zh) | 芯片测试方法、装置、存储介质及芯片 | |
CN111258950A (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
KR102471553B1 (ko) | 컴퓨팅 기기에 의해 수행되는 방법, 장치, 기기 및 컴퓨터 판독가능 저장 매체 | |
CN115080113A (zh) | 项目代码检测方法和装置、可读存储介质、电子设备 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
WO2015047289A1 (en) | Infrastructure migration tool | |
CN103197915B (zh) | 一种处理敏感指令的方法、装置以及物理机 | |
CN108228239B (zh) | 基于快速模拟器qemu的分支指令抓取方法和装置 | |
CN107621970B (zh) | 一种异构cpu的虚拟机迁移方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160803 Termination date: 20181228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |