[发明专利]指令解析的方法及装置有效
申请号: | 201210585519.1 | 申请日: | 2012-12-28 |
公开(公告)号: | CN103077069A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 郑寒 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 解析 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种指令解析的方法及装置。
背景技术
为了提高计算机的工作效率,通常采用虚拟机技术,在物理主机中虚拟出多个虚拟机,同时运行多个独立的操作系统。虚拟机由于需要通过VMM(Virtual Machine Monitor,虚拟机监视器)访问实际的物理资源,因此具有一定的局限性,不能直接执行如访问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;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210585519.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种Outlook删除邮件的恢复方法
- 下一篇:履带拧紧机用拨叉限位装置