一种访问虚拟机控制块的方法和装置以及CPU核与流程

文档序号:17535773发布日期:2019-04-29 13:58阅读:152来源:国知局
一种访问虚拟机控制块的方法和装置以及CPU核与流程

本发明涉及虚拟化技术领域,具体而言,涉及一种访问虚拟机控制块的方法和装置以及cpu核。



背景技术:

在虚拟化技术中虚拟机监视器(virtualmachinemonitor,vmm)负责启动虚拟机(virtualmachine,vm),并根据设置对虚拟机的某些行为进行截获与协助。这些设置保存在名为虚拟机控制块(virtualmachinecontrolblock,vmcb)的物理内存中,虚拟机监视器在启动虚拟机时需要提供该虚拟机的虚拟机控制块。

发明人在研究中发现,虚拟机控制块内存存在于虚拟机监视器的地址空间,可以直接被虚拟机监视器访问,而不能直接被虚拟机访问。虚拟机控制块如果能够被虚拟机访问,虚拟机就可以根据虚拟机控制块对某些关键代码进行优化,并且方便虚拟机监视器与虚拟机之间交换数据。现有的采用共享内存等软件协议的方式可以实现虚拟机访问虚拟机控制块,但是会大大增加代码逻辑的复杂性,影响代码执行效率。

有鉴于此,如何提供一种虚拟化方案,以提高在虚拟机中访问虚拟机控制块的效率,成为亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种访问虚拟机控制块的方法和装置以及cpu核,能提高在虚拟机中访问虚拟机控制块的效率。

第一方面,本发明实施例提供了一种访问虚拟机控制块的方法,具体在虚拟机中访问虚拟机控制块,包括:

从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,其中,所述寄存器用于存储所述待访问的虚拟机控制块的虚拟机物理地址;

根据所述系统物理地址访问所述待访问的虚拟机控制块。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,在所述从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址之前,还包括:

在所述待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面,将所述第一物理页面的虚拟机物理地址存储在所述寄存器中;

读取所述第一物理页面产生缺页异常,进入监视器中执行缺页处理函数并将所述寄存器的值存储在所述待访问的虚拟机控制块的地址项中,在所述缺页处理函数执行完后,回到所述虚拟机中运行,其中,所述地址项为所述待访问的虚拟机控制块中新增的项,所述缺页处理函数执行时,若判断获知所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述缺页处理函数执行时,若判断获知所述缺页异常的缺页地址与所述地址项中的虚拟机物理地址相同,则确定所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,否则,则确定所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起的。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址,还包括:

对所述第一物理页面的属性进行设置,其中,所述属性包括只读和读写。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,则分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

第二方面,本发明实施例还提供了一种访问虚拟机控制块的装置,所述装置用于在虚拟机中访问虚拟机控制块,包括:

获取单元,用于从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,其中,所述寄存器用于存储所述待访问的虚拟机控制块的虚拟机物理地址;

访问单元,用于根据所述系统物理地址访问所述待访问的虚拟机控制块。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:

存储单元,用于在所述获取单元工作之前,在所述待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面,将所述第一物理页面的虚拟机物理地址存储在所述寄存器中;

切换单元,用于读取所述第一物理页面产生缺页异常,进入监视器中执行缺页处理函数并将所述寄存器的值存储在所述待访问的虚拟机控制块的地址项中,在所述缺页处理函数执行完后,回到所述虚拟机中运行,其中,所述地址项为所述待访问的虚拟机控制块中新增的项,所述缺页处理函数执行时,若判断获知所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述缺页处理函数执行时,若判断获知所述缺页异常的缺页地址与所述地址项中的虚拟机物理地址相同,则确定所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,否则,则确定所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起的。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述切换单元,还用于:

对所述第一物理页面的属性进行设置,其中,所述属性包括只读和读写。

结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,则分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

第三方面,本发明实施例还提供了一种cpu核,包括:寄存器和硬件电路,其中,所述寄存器用于存储待访问的虚拟机控制块的虚拟机物理地址,所述硬件电路在cpu从所述待访问的虚拟机控制块对应的虚拟机切换到监视器运行时,将所述寄存器的值存储在所述待访问的虚拟机控制块新增的地址项中,以使所述虚拟机从所述寄存器中获取所述待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,根据所述系统物理地址访问所述待访问的虚拟机控制块,以及监视器从所述地址项中获取所述待访问的虚拟机控制块的虚拟机物理地址,将所述虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

本发明实施例提供的访问虚拟机控制块的方法和装置以及cpu核,通过在cpu核中新增用于存储待访问的虚拟机控制块的虚拟机物理地址的寄存器,使得虚拟机从该寄存器中即可获得所述待访问的虚拟机控制块的虚拟机物理地址,并根据所述待访问的虚拟机控制块的虚拟机物理地址获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,从所述系统物理地址即可获得所述待访问的虚拟机控制块的内容,即虚拟机通过虚拟机控制块的虚拟机物理地址可直接访问虚拟机控制块,与采用软件协议方式的现有技术相比,本方案不需要借助于协议方式即可实现在虚拟机中访问虚拟机控制块,从而能够简化在虚拟机中访问虚拟机控制块的流程,提高访问的效率。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例所提供的一种访问虚拟机控制块的方法的流程图;

图2示出了本发明实施例所提供的另一种访问虚拟机控制块的方法的流程图;

图3示出了本发明实施例所提供的又一种访问虚拟机控制块的方法的流程图;

图4示出了本发明实施例所提供的一种访问虚拟机控制块的装置的结构示意图;

图5示出了本发明实施例所提供的另一种访问虚拟机控制块的装置的结构示意图;

图6示出了本发明实施例所提供的一种cpu核的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到现有技术无法在在虚拟机中直接访问虚拟机控制块,基于此,本发明实施例提供了一种能够实现在虚拟机中访问虚拟机控制块的方法和装置,下面通过实施例进行描述。

首先需要说明的是,本发明实施例应用于需要在虚拟机中访问虚拟机控制块的场景。

实施例1

参看图1,本发明公开一种访问虚拟机控制块的方法,具体在虚拟机中访问虚拟机控制块,包括:

s10、从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,其中,所述寄存器用于存储所述待访问的虚拟机控制块的虚拟机物理地址;

本实施例中,可以理解的是,所述待访问的虚拟机控制块的虚拟机物理地址与所述待访问的虚拟机控制块的系统物理地址之间预先设置有映射关系,所述映射关系可以通过嵌套页表技术实现,具体地,监视器维护一个嵌套页表,嵌套页表将虚拟机物理地址映射为系统物理地址。虚拟机访问其对应的虚拟机控制块时,可以从所述寄存器中获取所述虚拟机控制块的虚拟机物理地址,利用所述嵌套页表获取所述虚拟机物理地址对应的系统物理地址。

s11、根据所述系统物理地址访问所述待访问的虚拟机控制块。

本发明实施例提供的访问虚拟机控制块的方法,通过在cpu核中新增用于存储待访问的虚拟机控制块的虚拟机物理地址的寄存器,使得虚拟机从该寄存器中即可获得所述待访问的虚拟机控制块的虚拟机物理地址,并根据所述待访问的虚拟机控制块的虚拟机物理地址获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,从所述系统物理地址即可获得所述待访问的虚拟机控制块的内容,即虚拟机通过虚拟机控制块的虚拟机物理地址可直接访问虚拟机控制块,与采用软件协议方式的现有技术相比,本方案不需要借助于协议方式即可实现在虚拟机中访问虚拟机控制块,从而能够简化在虚拟机中访问虚拟机控制块的流程,提高访问的效率。

实施例2

图2示出了本发明实施例所提供的另一种访问虚拟机控制块的方法的流程图,参看图2,在实施例1的基础上,在所述从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址之前,还可以包括:

s20、在所述待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面,将所述第一物理页面的虚拟机物理地址存储在所述寄存器中;

s21、读取所述第一物理页面产生缺页异常,进入监视器中执行缺页处理函数并将所述寄存器的值存储在所述待访问的虚拟机控制块的地址项中,在所述缺页处理函数执行完后,回到所述虚拟机中运行,其中,所述地址项为所述待访问的虚拟机控制块中新增的项,所述缺页处理函数执行时,若判断获知所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

本实施例中,步骤s22和s23分别与实施例1中的步骤s20和s21一致,此处不再赘述。可以理解的是,步骤s20在待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面。该第一物理页面由虚拟机分配,此时并没有分配系统物理地址。因此步骤s21中在读取该第一物理页面时会产生缺页异常,进入到监视器运行,并执行缺页处理函数。此时缺页处理函数的处理逻辑为将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。缺页异常可能不是因为访问所述地址项中的虚拟机物理地址引起的,因而,缺页处理函数本身的处理逻辑为判断所述缺页异常是否是因为访问所述地址项中的虚拟机物理地址引起的,若是,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

需要说明的是,cpu核中新增的寄存器用于存储为所述待访问的虚拟机控制块分配的第一物理页面的虚拟机物理地址,在分配所述第一物理页面后,虚拟机会将所述第一物理页面的虚拟机物理地址存储在所述寄存器中。

在cpu从虚拟机运行切换到监视器运行时,虚拟机会通过cpu核的硬件电路将所述寄存器中存储的虚拟机物理地址存储在所述地址项中。

可见,本实施例中,只需要在虚拟机控制块中增加地址项,在cpu核中新增寄存器,同时对cpu电路逻辑、虚拟机运行逻辑和监视器中缺页处理函数的逻辑进行极小的改动以适应虚拟机控制块和cpu核的修改,即可形成一套在虚拟机中访问虚拟机控制块的标准化处理流程。

实施例3

图3示出了本发明实施例所提供的又一种访问虚拟机控制块的方法的流程图,参看图3,在实施例2的基础上,所述缺页处理函数执行时,若判断获知所述缺页异常的缺页地址与所述地址项中的虚拟机物理地址相同,则确定所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,否则,则确定所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起的。

本实施例中,可以理解的是,虚拟机监视器使用vmrun指令(虚拟机运行指令)启动虚拟机,其中,虚拟机控制块作为参数传递给vmrun。虚拟机开始运行后为虚拟机控制块分配第一物理页面,将第一物理页面的虚拟机物理地址写入到cpu核中新增的寄存器,从第一物理页面读数据,产生缺页异常,并进入到监视器的缺页处理函数。cpu在由虚拟机运行切换为监视器运行时,虚拟机通过cpu核的硬件电路读取cpu核新增的寄存器的值存储在虚拟机控制块的地址项中。

在监视器缺页处理函数中监视器从虚拟机控制块中读取虚拟机控制块的地址项的值,并与当前的缺页地址进行比较,如果二者相同,则说明是由于访问虚拟机控制块的地址项的地址所引起的缺页,为虚拟机建立映射关系,将虚拟机控制块的地址项的地址映射到虚拟机控制块,然后调用vmrun指令重新返回到虚拟机运行,此时虚拟机可以直接通过所述寄存器的地址访问虚拟机控制块的内容,或者,如果二者不相同,则分配第二物理页面,将当前缺页异常的地址映射到第二物理页面的系统物理地址。

实施例4

在实施例2的基础上,所述将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址,还可以包括:

对所述第一物理页面的属性进行设置,其中,所述属性包括只读和读写。

本实施例中,在进行地址映射时,根据需要可以对所述第一物理页面的属性进行设置。比如,如果需要后续虚拟机在访问所述第一物理页面时,只能读取其中存储的虚拟机控制块的内容,而不能对该虚拟机控制块的内容进行修改,则可以设置所述第一物理页面的属性为只读。当然,如果允许对该虚拟机控制块的内容进行修改,则可以设置所述第一物理页面的属性为读写。

实施例5

在实施例2的基础上,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,则分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

本实施例中,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,即所述地址项的值与当前缺页异常的地址不相同,则按照一般的缺页异常的处理流程进行处理,即分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

实施例6

参看图4,本发明公开一种访问虚拟机控制块的装置,所述装置用于在虚拟机中访问虚拟机控制块,包括:

获取单元40,用于从cpu核中新增的寄存器中获取待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,其中,所述寄存器用于存储所述待访问的虚拟机控制块的虚拟机物理地址;

本实施例中,可以理解的是,所述待访问的虚拟机控制块的虚拟机物理地址与所述待访问的虚拟机控制块的系统物理地址之间预先设置有映射关系,所述映射关系可以通过嵌套页表技术实现,具体地,监视器维护一个嵌套页表,嵌套页表将虚拟机物理地址映射为系统物理地址。虚拟机访问其对应的虚拟机控制块时,可以从所述寄存器中获取所述虚拟机控制块的虚拟机物理地址,利用所述嵌套页表获取所述虚拟机物理地址对应的系统物理地址。

访问单元41,用于根据所述系统物理地址访问所述待访问的虚拟机控制块。

本发明实施例提供的访问虚拟机控制块的装置,通过在cpu核中新增用于存储待访问的虚拟机控制块的虚拟机物理地址的寄存器,使得虚拟机从该寄存器中即可获得所述待访问的虚拟机控制块的虚拟机物理地址,并根据所述待访问的虚拟机控制块的虚拟机物理地址获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,从所述系统物理地址即可获得所述待访问的虚拟机控制块的内容,即虚拟机通过虚拟机控制块的虚拟机物理地址可直接访问虚拟机控制块,与采用软件协议方式的现有技术相比,本方案不需要借助于协议方式即可实现在虚拟机中访问虚拟机控制块,从而能够简化在虚拟机中访问虚拟机控制块的流程,提高访问的效率。

实施例7

图5示出了本发明实施例所提供的另一种访问虚拟机控制块的装置的流程图,参看图5,所述装置还可以包括:

存储单元50,用于在所述获取单元工作之前,在所述待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面,将所述第一物理页面的虚拟机物理地址存储在所述寄存器中;

切换单元51,用于读取所述第一物理页面产生缺页异常,进入监视器中执行缺页处理函数并将所述寄存器的值存储在所述待访问的虚拟机控制块的地址项中,在所述缺页处理函数执行完后,回到所述虚拟机中运行,其中,所述地址项为所述待访问的虚拟机控制块中新增的项,所述缺页处理函数执行时,若判断获知所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

本实施例中,可以理解的是,存储单元50在待访问的虚拟机控制块对应的虚拟机启动后,为所述待访问的虚拟机控制块分配第一物理页面。该第一物理页面由虚拟机分配,此时并没有分配系统物理地址。因此切换单元51在读取该第一物理页面时会产生缺页异常,进入到监视器运行,并执行缺页处理函数。此时缺页处理函数的处理逻辑为将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。缺页异常可能不是因为访问所述地址项中的虚拟机物理地址引起的,因而,缺页处理函数本身的处理逻辑为判断所述缺页异常是否是因为访问所述地址项中的虚拟机物理地址引起的,若是,则将所述地址项中的虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

需要说明的是,cpu核中新增的寄存器用于存储为所述待访问的虚拟机控制块分配的第一物理页面的虚拟机物理地址,在分配所述第一物理页面后,虚拟机会将所述第一物理页面的虚拟机物理地址存储在所述寄存器中。

在cpu从虚拟机运行切换到监视器运行时,虚拟机会通过cpu核的硬件电路将所述寄存器中存储的虚拟机物理地址存储在所述地址项中。

可见,本实施例中,只需要在虚拟机控制块中增加地址项,在cpu核中新增寄存器,同时对cpu电路逻辑、虚拟机运行逻辑和监视器中缺页处理函数的逻辑进行极小的改动以适应虚拟机控制块和cpu核的修改,即可形成一套在虚拟机中访问虚拟机控制块的标准化处理流程。

实施例8

在实施例7的基础上,所述缺页处理函数执行时,若判断获知所述缺页异常的缺页地址与所述地址项中的虚拟机物理地址相同,则确定所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,否则,则确定所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起的。

本实施例中,所述缺页处理函数执行时,会判断所述缺页异常是不是因为访问所述地址项中的虚拟机物理地址引起的,具体判断过程为:判断所述缺页异常的缺页地址与所述地址项中的虚拟机物理地址是否相同,若相同,则确定所述缺页异常是因为访问所述地址项中的虚拟机物理地址引起的,否则,则确定所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起的。

实施例9

在实施例7的基础上,所述切换单元,还可以用于:

对所述第一物理页面的属性进行设置,其中,所述属性包括只读和读写。

本实施例中,在进行地址映射时,根据需要可以对所述第一物理页面的属性进行设置。比如,如果需要后续虚拟机在访问所述第一物理页面时,只能读取其中存储的虚拟机控制块的内容,而不能对该虚拟机控制块的内容进行修改,则可以设置所述第一物理页面的属性为只读。当然,如果允许对该虚拟机控制块的内容进行修改,则可以设置所述第一物理页面的属性为读写。

实施例10

在实施例7的基础上,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,则分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

本实施例中,所述缺页处理函数执行时,若判断获知所述缺页异常不是因为访问所述地址项中的虚拟机物理地址引起,即所述地址项的值与当前缺页异常的地址不相同,则按照一般的缺页异常的处理流程进行处理,即分配第二物理页面,将所述缺页异常的缺页地址映射到所述第二物理页面的系统物理地址。

实施例11

参看图6,本发明公开一种cpu核,包括:寄存器60和硬件电路61,其中,所述寄存器60用于存储待访问的虚拟机控制块的虚拟机物理地址,所述硬件电路61在cpu从所述待访问的虚拟机控制块对应的虚拟机切换到监视器运行时,将所述寄存器60的值存储在所述待访问的虚拟机控制块新增的地址项中,以使所述虚拟机从所述寄存器中获取所述待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,根据所述系统物理地址访问所述待访问的虚拟机控制块,以及监视器从所述地址项中获取所述待访问的虚拟机控制块的虚拟机物理地址,将所述虚拟机物理地址映射到所述待访问的虚拟机控制块的系统物理地址。

本发明实施例提供的cpu,通过在cpu核中新增用于存储待访问的虚拟机控制块的虚拟机物理地址的寄存器,并设置电路逻辑为在cpu从所述待访问的虚拟机控制块对应的虚拟机切换到监视器运行时,由硬件电路将所述寄存器的值存储在所述待访问的虚拟机控制块新增的地址项中,使得监视器能够从所述地址项中获取所述待访问的虚拟机控制块的虚拟机物理地址,并建立所述虚拟机物理地址与所述待访问的虚拟机控制块的系统物理地址之间的映射,使得所述虚拟机能够从所述寄存器中获取所述待访问的虚拟机控制块的虚拟机物理地址,获取所述虚拟机物理地址映射的所述待访问的虚拟机控制块的系统物理地址,根据所述系统物理地址访问所述待访问的虚拟机控制块,即便于所述虚拟机直接根据所述待访问的虚拟机控制块的虚拟机物理地址访问所述待访问的虚拟机控制块。

基于上述分析可知,本发明实施例提供的访问虚拟机控制块的方法与装置以及cpu核,通过构建虚拟机控制块的虚拟机物理地址与系统物理地址之间的映射,使得虚拟机通过虚拟机物理地址能够直接访问虚拟机控制块。

本发明实施例所提供的进行访问虚拟机控制块的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的访问虚拟机控制块的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1