CN112099903B - 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 - Google Patents

一种虚拟机的内存管理方法、装置、cpu芯片及服务器 Download PDF

Info

Publication number
CN112099903B
CN112099903B CN202010834270.8A CN202010834270A CN112099903B CN 112099903 B CN112099903 B CN 112099903B CN 202010834270 A CN202010834270 A CN 202010834270A CN 112099903 B CN112099903 B CN 112099903B
Authority
CN
China
Prior art keywords
virtual machine
memory block
physical address
memory
mapping
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.)
Active
Application number
CN202010834270.8A
Other languages
English (en)
Other versions
CN112099903A (zh
Inventor
刘子行
应志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202010834270.8A priority Critical patent/CN112099903B/zh
Publication of CN112099903A publication Critical patent/CN112099903A/zh
Application granted granted Critical
Publication of CN112099903B publication Critical patent/CN112099903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开一种虚拟机的内存管理方法、装置、处理器芯片及服务器,涉及计算机技术领域,能够有效提高虚拟机内存的安全性。所述方法包括:分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。本发明适用于虚拟机相关技术中。

Description

一种虚拟机的内存管理方法、装置、CPU芯片及服务器
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存数据的加密方法、装置、CPU芯片及服务器。
背景技术
虚拟机技术是云计算的基础架构技术,云计算是以虚拟机为基本单位实施的。虚拟机有资源隔离,部署快速等优点,但是传统虚拟机在安全方面存在严重缺陷。
传统虚拟机的内存完全由虚拟机管理器(VMM,Virtual Machine Monitor)分配和释放,虚拟机管理器能够查看和篡改虚拟机的任意内存。因此,如何提高虚拟机内存的安全性是业界亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种虚拟机的内存管理方法、装置、处理器芯片及服务器,能够有效提高虚拟机内存的安全性。
第一方面,本发明实施例提供一种虚拟机的内存管理方法,包括:
分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
可选的,所述通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表包括:
所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
可选的,所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址包括:
所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
可选的,所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系包括:
所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
可选的,所述通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互包括:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
可选的,所述通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互包括:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
第二方面,本发明的实施例还提供一种虚拟机的内存管理装置,包括:
权限设置单元,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
页表生成单元,用于通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
数据交互单元,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
可选的,所述页表生成单元包括:
传递模块,用于所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
第一建立模块,用于所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
第二建立模块,用于所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
可选的,所述传递模块包括:
写入子模块,用于所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
读取子模块,用于所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
可选的,所述第一建立模块包括:
接收子模块,用于所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定子模块,用于所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
建立子模块,用于在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
可选的,所述数据交互单元包括:
输入数据写模块,用于所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
输入数据读模块,用于所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
可选的,所述数据交互单元包括:
输出数据写模块,用于所述虚拟机将输出数据写入所述第二内存块的第二虚拟机物理地址;
地址映射模块,用于所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
输出数据读模块,用于所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
第三方面,本发明的实施例还提供一种处理器芯片,包括:
内存控制器,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;其中,所述虚拟机和所述虚拟机管理器运行在处理器核心中;
所述安全处理器,用于配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
所述处理器核心,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
可选的,所述安全处理器用于:
接收所述虚拟机传递的所述第二内存块的虚拟机物理地址;
根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
可选的,所述安全处理器具体用于:从预设存储器件中读取所述第二内存块的虚拟机物理地址,其中,所述第二内存块的虚拟机物理地址由所述虚拟机向所述预设存储器件写入,所述预设存储器件禁止所述虚拟机管理器进行读写操作。
可选的,所述安全处理器具体用于:
接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
可选的,所述处理器核心具体用于:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
可选的,所述处理器核心具体用于:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
第四方面,本发明的实施例还提供一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行为本发明实施例提供的任一种虚拟机的内存管理方法。
本发明的实施例提供的虚拟机的内存管理方法、装置、处理器芯片及服务器,能够分别设置系统内存中第一内存块和第二内存块的访问权限,通过安全处理器配置第一内存块的虚拟机物理地址、第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将映射页表存储在第一内存块中。通过第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。由于第一内存块允许虚拟机和安全处理器访问但禁止虚拟机管理器访问,因此第一内存块和其中的映射页表是虚拟机专用的,虚拟机管理器无法访问,从而有效保证了虚拟机内存的安全,又由于映射页表中也包括第二内存块的虚拟机物理地址与系统物理地址的映射关系,因此虚拟机也可以通过映射页表的地址映射访问第二内存块,同时,第二内存块也允许虚拟机管理器访问,从而以第二内存块为媒介使虚拟机与虚拟机管理器进行数据交互,在保证虚拟机输入输出性能的情况下,有效提高了虚拟机内存的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的虚拟机的内存管理方法的一种流程图;
图2为本发明的实施例提供的虚拟机的内存管理方法中第一内存块的访问权限的一种示意图;
图3为本发明的实施例提供的虚拟机的内存管理方法中安全处理器与通用处理器的一种关系示意图;
图4为本发明的实施例提供的虚拟机的内存管理方法中映射关系的建立过程示意图;
图5为本发明的实施例提供的虚拟机的内存管理方法中虚拟机与安全处理器的一种数据传递示意图;
图6为本发明的实施例提供的虚拟机的内存管理装置的一种结构示意图;
图7为本发明的实施例提供的处理器芯片的一种结构示意图;
图8为本发明的实施例提供的服务器的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如背景技术所述,传统虚拟机的内存完全由虚拟机管理器VMM分配和释放,虚拟机管理器能够查看和篡改虚拟机的任意内存。因此,虚拟机内存安全存在隐患。
为了避免虚拟机内存被查看或篡改,发明人在研究中发现,可以对虚拟机使用的内存进行隔离,即,从系统内存中划分出一块或多块内存,作为安全隔离内存。通过设置硬件属性可以保证安全隔离内存只能由安全处理器和虚拟机本身才能访问,使用安全隔离内存的虚拟机就是安全隔离虚拟机。安全隔离内存由安全处理器管理和分配,由安全隔离虚拟机使用。虚拟机管理器VMM无法访问安全隔离内存,因此提升了虚拟机的安全性。
然而,由于安全隔离虚拟机的I/O部分仍然是由VMM模拟完成的,而VMM只能访问普通内存,无权访问安全隔离虚拟机内存,因此,VMM无法向安全隔离虚拟机输入数据,也无法获取到安全隔离虚拟机的输出数据。
为解决安全隔离虚拟机输入和输出数据的问题,发明人在进一步的研究和实践中发现,可以在系统内存中设置一块共享内存,VMM和安全隔离虚拟机对该共享内存都有权限访问。当VMM向安全隔离虚拟机输入数据时,VMM可以将数据放入共享内存中,通知安全隔离虚拟机读取。当安全隔离虚拟机向VMM输出数据时,安全隔离虚拟机可以将数据放入共享内存中,通知VMM读取,从而使虚拟机能够进行有效的数据输入输出。
为此,本发明的实施例提供了一种虚拟机的内存管理方法,能够通过虚拟机专用的安全隔离内存,以及在虚拟机和虚拟机管理器之间共用的共享内存,使虚拟机在保证输入输出功能的条件下,有效提高虚拟机内存的安全性。
为使本领域技术人员更好地理解本发明的实施例的技术构思、实施方案和有益技术效果,以下通过具体实施例进行详细说明。
如图1所示,本发明的实施例提供一种虚拟机的内存管理方法,包括:
S11,分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
第一内存块和第二内存块都是从系统内存中划分出的一部分内存,其中,第一内存块只能由虚拟机和安全处理器访问,而禁止虚拟机管理器访问,是虚拟机专用内存,从而保证第一内存块中的数据不会被虚拟机管理器获知和修改。示例性的,第一内存块的访问权限可以如图2所示。第二内存块则是虚拟机和虚拟机管理器都可以访问的共享内存,可以用于虚拟机和虚拟机管理器进行数据交互。
在本发明的实施例中,内存访问的权限可以通过内存控制器完成。内存控制器可以检查发起内存访问的主体的身份标识(ID),若对第一内存块发起访问的主体为虚拟机或安全处理器则允许访问,否则拒绝访问。对内存控制器的配置可以由安全处理器完成。
安全处理器位于处理器内部,不做通用数据处理,只做安全管理和安全配置。重要的安全任务,硬件只允许安全处理器执行,拒绝通用处理器执行,提升了安全性。如图3所示,在本发明的一个实施例中,在完整的处理器封装内部,多个处理器以核心的形式存在,安全处理器是和通用处理器同构或异构的CPU核心,与通用处理器之间存在有限的交互通道。安全处理器具有和通用处理器不同的身份标识,硬件(例如内存控制器)能够区分出来自不同类型处理器的访问。
可选的,在本发明的实施例中,系统中可以设置有一个或多个虚拟机,每个虚拟机可以有一个或多个第一内存块,这多个第一内存块之间的逻辑地址可以连续且系统物理地址可以不连续。每个虚拟机与虚拟机管理器之间可以设置有一个或多个第二内存块,这多个第二内存块之间的逻辑地址可以连续且系统物理地址可以不连续。不同的虚拟机之间不共用同一个第一内存块和同一个第二内存块,也即是说,每个第一内存块只允许一个虚拟机访问而不允许多个虚拟机访问,第二内存块同样只允许一个虚拟机访问而不允许多个虚拟机访问,从而实现虚拟机之间的隔离。由于各个虚拟机之间、虚拟机与虚拟机管理器之间彼此相互隔离,大大提升了虚拟机内存的安全性,因此各虚拟机也可以成为安全隔离虚拟机。
S12,通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
当前主流的CPU都支持硬件虚拟化,硬件虚拟化可以通过嵌套页表(Nested PageTable)实现内存虚拟化。通常,嵌套页表由VMM构建,用于实现虚拟机物理地址到系统物理地址(即宿主机物理地址)的映射。该嵌套页表可以由硬件直接使用,能够快速实现虚拟机的内存访问。
然而,对于本发明的实施例中具有安全隔离特性的虚拟机而言,地址映射页表页的配置和使用过程都必须要保证虚拟机内存的安全,而避免虚拟机管理器的干预和篡改。为此,在本发明的实施例中,安全隔离虚拟机的映射页表由安全处理器配置,而不是由虚拟机管理器配置,且配置好的映射页表存放于第一内存块中(否则虚拟机管理器VMM就会有权限篡改嵌套页表,存在安全漏洞),从而有效避免虚拟机管理器对映射页表的配置和使用。
本发明的实施例中,安全处理器可以分别配置第一内存块的虚拟机物理地址与其系统物理地址的映射关系,以及第二内存块的虚拟机物理地址与其系统物理地址的映射关系,并生成相应的映射页表。映射页表中的一部分页表项指向第一内存块,一部分页表项指向第二内存块,但指向第二内存块的页表本身仍然位于第一内存块中。
S13,通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
由于虚拟机可以访问第一内存块,并通过第一内存块中的映射页表访问第二内存块,虚拟机管理器可以直接访问第二内存块,因此,第二内存块可以作为虚拟机与虚拟机管理器之间的通讯媒介。例如,当虚拟机管理器VMM需要向安全隔离虚拟机输入数据时,VMM可以将数据放入共享内存中,通知安全隔离虚拟机读取。当安全隔离虚拟机需要向VMM输出数据时,安全隔离虚拟机可以将数据放入共享内存中,通知VMM读取。
本发明的实施例提供的虚拟机的内存管理方法,能够分别设置系统内存中第一内存块和第二内存块的访问权限,通过安全处理器配置第一内存块的虚拟机物理地址、第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将映射页表存储在第一内存块中。通过第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。由于第一内存块允许虚拟机和安全处理器访问但禁止虚拟机管理器访问,因此第一内存块和其中的映射页表是虚拟机专用的,虚拟机管理器无法访问,从而有效保证了虚拟机内存的安全,又由于映射页表中也包括第二内存块的虚拟机物理地址与系统物理地址的映射关系,因此虚拟机也可以通过映射页表的地址映射访问第二内存块,同时,第二内存块也允许虚拟机管理器访问,从而以第二内存块为媒介使虚拟机与虚拟机管理器进行数据交互,在保证虚拟机输入输出性能的情况下,有效提高了虚拟机内存的安全性。
在步骤S12中,为了保证虚拟机的内存安全,配置映射关系的过程中,也要保证对虚拟机管理器的有效隔离。
为此,在本发明的一个实施例中,可以通过安全处理器配置映射页表。具体的,步骤S12中通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表具体可以包括:
所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
具体而言,在本发明的一个实施例中,虚拟机设立时可以向系统申请预定大小的虚拟机内存空间,然后通知安全处理器将要把该内存空间中的哪部分虚拟机内存作为第二内存块,用来与虚拟机管理器共享,并将第二内存块的虚拟机物理地址传递给安全处理器。虚拟机管理器中设置有内存的系统物理地址信息,虚拟机管理器可以向安全处理器发送映射指示,并告知安全处理器系统物理地址信息,以使安全管理器配置第二内存块的虚拟机物理地址与系统物理地址的映射关系。
第二内存块的虚拟机物理地址和系统物理地址映射完毕后,虚拟机申请的内存空间中剩余空间都可以作为虚拟机私有的第一内存块,安全管理器可以进一步对第一内存块的虚拟机物理地址和系统物理地址建立映射关系。
示例性的,映射关系的建立过程示意图可以如图4所示。如图4所示,安全隔离虚拟机的映射页表既包含指向第一内存块(即安全隔离内存)的页表项,又包含指向第二内存块(即非安全内存,共享内存)的页表项,因此安全隔离虚拟机既能够访问安全隔离内存也能够访问共享内存,而VMM只能够访问共享内存。通过共享内存做桥梁,安全隔离虚拟机实现了I/O数据的输入输出。由于VMM无权修改嵌套页表,无法将共享内存替换为安全内存,系统安全性不受影响。
上述实施例中,在进行映射页表配置时,虚拟机需要向安全处理器传递第二内存块的虚拟机物理地址,而如何实现这一数据传递的安全,也会影响虚拟机的内存安全。现有技术中,通常由虚拟机管理器VMM负责转发虚拟机数据到安全处理器,然而,这样VMM就有可能修改源数据而不被虚拟机发现。这对普通虚拟机不是问题,但是在安全隔离虚拟机的方案中,则要防止VMM修改虚拟机传递给安全处理器的共享内存虚拟机物理地址。一旦VMM将虚拟机传递出的第二内存块的虚拟机物理地址修改为第一内存块中的虚拟机物理地址,则在虚拟机看来是虚拟机专用的内存,实际上却被映射成了共享内存的物理空间,可以允许虚拟机管理器访问,从而无法保证虚拟机的内存安全。
有鉴于此,为了保证虚拟机传递给安全处理器的数据安全,在本发明的一个实施例中,虚拟机可以通过安全存储媒介向所述安全处理器传递第二内存块的虚拟机物理地址。具体而言,虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址可以包括:
所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
也即是说,可以通过预设存储器件作为中间媒介,传递虚拟机发送给安全处理器的数据。而该预设存储器件可以通过硬件或软件的方式禁止虚拟机管理器进行读操作和写操作。例如,在本发明的一个实施例中,虚拟机可以提供一种机制来保证虚拟机传递给安全处理器的数据不可更改,一旦数据被修改,将被硬件发现,并强制退出虚拟机。可选的,该预设存储器件可以为能够实现上述功能的任意存储器件,例如寄存器等。
示例性的,本实施例中第二内存块的虚拟机物理地址传递方法与现有技术中的数据传递方法的对比示意图可以如图5所示。如图5所示,在现有技术中,虚拟机与安全处理器之间的通信,需要通过虚拟机管理器转发,虚拟机管理器有可能趁机进行数据篡改,因此存在较大的安全隐患。而本发明的实施例提供的虚拟机的内存管理方法中,虚拟机和安全处理器之间通过预设存储器件传递数据,绕开了虚拟机管理器,且虚拟机管理器没有对该预设存储器件的访问权限,没有机会进行数据篡改,从而有效提高了虚拟机的安全性。
安全处理器获知了第二内存块的虚拟机物理地址后,即可以根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
具体实施中,安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系可以包括:
所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
例如,在本发明的一个实施例中,如果虚拟机传递给安全处理器的虚拟机物理地址为X00FF,而虚拟机管理器的指示中携带的待映射的虚拟机物理地址为X10FF,二者不一致,则说明第二内存块的虚拟机物理地址可能被虚拟机管理器篡改过,安全处理器拒绝对X10FF与第二内存块的系统物理地址建立映射关系。反之,如果虚拟机管理器的指示中携带的待映射的虚拟机物理地址也为X00FF,则安全处理器对X00FF与第二内存块的系统物理地址建立映射关系。
安全处理器建立了第一内存块的虚拟机物理地址、第二内存块的虚拟机物理地址各自与系统物理地址之间的映射关系后,可以形成映射页表,并将该映射页表存入第一内存块中。虚拟机可以通过第二内存块及映射页表,与虚拟机管理器进行数据交互。
具体实施中,对于向虚拟机写入数据而言,步骤S13中通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互可以包括:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
对于从虚拟机输出数据而言,步骤S13中所述通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互可以包括:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
举例而言,在本发明到的一个实施例中,虚拟机管理器向第二内存块中的系统物理地址X00FF写入了一个数据a,并通知虚拟机。虚拟机可以利用映射页表将系统物理地址X00FF映射到对应的虚拟机物理地址,以便虚拟机通过该虚拟机物理地址读取数据a。在本发明的另一个实施例中,虚拟机向第二内存块中的虚拟机物理地址X0100写入数据b,虚拟机可以通过映射页表将虚拟机物理地址X0100映射到对应的系统物理地址,并通知虚拟机管理器,以便虚拟机管理器通过该系统物理地址读取b。
相应的,本发明的实施例还提供一种虚拟机的内存管理装置,能够使虚拟机在保证输入输出功能的条件下,有效提高虚拟机内存的安全性。
如图6所示,本发明的实施例提供的虚拟机的内存管理装置,可以包括:
权限设置单元31,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
页表生成单元32,用于通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
数据交互单元33,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
本发明的实施例提供的虚拟机的内存管理装置,能够分别设置系统内存中第一内存块和第二内存块的访问权限,通过安全处理器配置第一内存块的虚拟机物理地址、第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将映射页表存储在第一内存块中。通过第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。由于第一内存块允许虚拟机和安全处理器访问但禁止虚拟机管理器访问,因此第一内存块和其中的映射页表是虚拟机专用的,虚拟机管理器无法访问,从而有效保证了虚拟机内存的安全,又由于映射页表中也包括第二内存块的虚拟机物理地址与系统物理地址的映射关系,因此虚拟机也可以通过映射页表的地址映射访问第二内存块,同时,第二内存块也允许虚拟机管理器访问,从而以第二内存块为媒介使虚拟机与虚拟机管理器进行数据交互,在保证虚拟机输入输出性能的情况下,有效提高了虚拟机内存的安全性。
可选的,页表生成单元32可以包括:
传递模块,用于所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
第一建立模块,用于所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
第二建立模块,用于所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
可选的,所述传递模块可以包括:
写入子模块,用于所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
读取子模块,用于所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
可选的,所述第一建立模块可以包括:
接收子模块,用于所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定子模块,用于所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
建立子模块,用于在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
可选的,数据交互单元33可以包括:
输入数据写模块,用于所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
输入数据读模块,用于所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
可选的,数据交互单元33可以包括:
输出数据写模块,用于所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
地址映射模块,用于所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
输出数据读模块,用于所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
相应的,本发明的实施例还提供一种处理器芯片,能够有效保证虚拟机内存的安全性和数据输入输出的便捷性。
如图7所示,本发明的实施例提供的处理器芯片,可以包括:
内存控制器41,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器42访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;其中,所述虚拟机和所述虚拟机管理器运行在处理器核心43中;
安全处理器42,用于配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
处理器核心43,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
本发明的实施例提供的处理器芯片,能够分别设置系统内存中第一内存块和第二内存块的访问权限,通过安全处理器配置第一内存块的虚拟机物理地址、第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将映射页表存储在第一内存块中。通过第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。由于第一内存块允许虚拟机和安全处理器访问但禁止虚拟机管理器访问,因此第一内存块和其中的映射页表是虚拟机专用的,虚拟机管理器无法访问,从而有效保证了虚拟机内存的安全,又由于映射页表中也包括第二内存块的虚拟机物理地址与系统物理地址的映射关系,因此虚拟机也可以通过映射页表的地址映射访问第二内存块,同时,第二内存块也允许虚拟机管理器访问,从而以第二内存块为媒介使虚拟机与虚拟机管理器进行数据交互,在保证虚拟机输入输出性能的情况下,有效提高了虚拟机内存的安全性。
可选的,安全处理器42可以用于:
接收所述虚拟机传递的所述第二内存块的虚拟机物理地址;
根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
可选的,安全处理器42具体可以用于:从预设存储器件中读取所述第二内存块的虚拟机物理地址,其中,所述第二内存块的虚拟机物理地址由所述虚拟机向所述预设存储器件写入,所述预设存储器件禁止所述虚拟机管理器进行读写操作。
可选的,安全处理器42具体可以用于:
接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
可选的,处理器核心43具体可以用于:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
可选的,处理器核心43具体可以用于:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
相应的,如图8所示,本发明的实施例提供的服务器,可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述电子设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种虚拟机的内存管理方法,因此也能实现相应的有益技术效果,前文已经进行了详细说明,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (19)

1.一种虚拟机的内存管理方法,其特征在于,包括:
分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
2.根据权利要求1所述的内存管理方法,其特征在于,所述通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表包括:
所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
3.根据权利要求2所述的内存管理方法,其特征在于,所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址包括:
所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
4.根据权利要求2所述的内存管理方法,其特征在于,所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系包括:
所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
5.根据权利要求1至4中任一项所述的内存管理方法,其特征在于,所述通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互包括:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
6.根据权利要求1至4中任一项所述的内存管理方法,其特征在于,所述通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互包括:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
7.一种虚拟机的内存管理装置,其特征在于,包括:
权限设置单元,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;
页表生成单元,用于通过安全处理器配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
数据交互单元,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
8.根据权利要求7所述的内存管理装置,其特征在于,所述页表生成单元包括:
传递模块,用于所述虚拟机向所述安全处理器传递所述第二内存块的虚拟机物理地址;
第一建立模块,用于所述安全处理器根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
第二建立模块,用于所述安全处理器建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
9.根据权利要求8所述的内存管理装置,其特征在于,所述传递模块包括:
写入子模块,用于所述虚拟机向预设存储器件写入所述第二内存块的虚拟机物理地址,所述预设存储器件禁止所述虚拟机管理器进行读写操作;
读取子模块,用于所述安全处理器从所述预设存储器件中读取所述第二内存块的虚拟机物理地址。
10.根据权利要求8所述的内存管理装置,其特征在于,所述第一建立模块包括:
接收子模块,用于所述安全处理器接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定子模块,用于所述安全处理器确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
建立子模块,用于在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
11.根据权利要求7至10中任一项所述的内存管理装置,其特征在于,所述数据交互单元包括:
输入数据写模块,用于所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
输入数据读模块,用于所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
12.根据权利要求7至10中任一项所述的内存管理装置,其特征在于,所述数据交互单元包括:
输出数据写模块,用于所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
地址映射模块,用于所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
输出数据读模块,用于所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
13.一种处理器芯片,其特征在于,包括:
内存控制器,用于分别设置系统内存中第一内存块和第二内存块的访问权限,其中,所述第一内存块允许虚拟机和安全处理器访问,且禁止虚拟机管理器访问;所述第二内存块允许所述虚拟机和所述虚拟机管理器访问;其中,所述虚拟机和所述虚拟机管理器运行在处理器核心中;
所述安全处理器,用于配置所述第一内存块的虚拟机物理地址、所述第二内存块的虚拟机物理地址各自与系统物理地址的映射关系,生成映射页表,并将所述映射页表存储在所述第一内存块中;
所述处理器核心,用于通过所述第二内存块及所述映射页表,在所述虚拟机管理器与所述虚拟机之间进行数据交互。
14.根据权利要求13所述的处理器芯片,其特征在于,所述安全处理器用于:
接收所述虚拟机传递的所述第二内存块的虚拟机物理地址;
根据所述虚拟机管理器的指示,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系;
建立所述第一内存块的虚拟机物理地址与所述第一内存块的系统物理地址之间的映射关系。
15.根据权利要求14所述的处理器芯片,其特征在于,所述安全处理器具体用于:从预设存储器件中读取所述第二内存块的虚拟机物理地址,其中,所述第二内存块的虚拟机物理地址由所述虚拟机向所述预设存储器件写入,所述预设存储器件禁止所述虚拟机管理器进行读写操作。
16.根据权利要求14所述的处理器芯片,其特征在于,所述安全处理器具体用于:
接收所述虚拟机管理器的指示,所述指示携带待映射的虚拟机物理地址;
确定所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址是否一致;
在所述待映射的虚拟机物理地址与所述第二内存块的虚拟机物理地址一致的情况下,建立所述第二内存块的虚拟机物理地址与所述第二内存块的系统物理地址之间的映射关系。
17.根据权利要求13至16中任一项所述的处理器芯片,其特征在于,所述处理器核心具体用于:
所述虚拟机管理器将输入数据写入所述第二内存块中的第一系统物理地址,并通知所述虚拟机读取;
所述虚拟机利用所述映射页表将所述第一系统物理地址映射为对应的第一虚拟机物理地址,并读取所述输入数据。
18.根据权利要求13至16中任一项所述的处理器芯片,其特征在于,所述处理器核心具体用于:
所述虚拟机将输出数据写入所述第二内存块中的第二虚拟机物理地址;
所述虚拟机利用所述映射页表将所述第二虚拟机物理地址映射为对应的第二系统物理地址并通知所述虚拟机管理器读取;
所述虚拟机管理器从所述第二系统物理地址中读取所述输出数据。
19.一种服务器,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;所述处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-6任一项所述的方法。
CN202010834270.8A 2020-08-18 2020-08-18 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 Active CN112099903B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010834270.8A CN112099903B (zh) 2020-08-18 2020-08-18 一种虚拟机的内存管理方法、装置、cpu芯片及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010834270.8A CN112099903B (zh) 2020-08-18 2020-08-18 一种虚拟机的内存管理方法、装置、cpu芯片及服务器

Publications (2)

Publication Number Publication Date
CN112099903A CN112099903A (zh) 2020-12-18
CN112099903B true CN112099903B (zh) 2023-01-31

Family

ID=73754593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010834270.8A Active CN112099903B (zh) 2020-08-18 2020-08-18 一种虚拟机的内存管理方法、装置、cpu芯片及服务器

Country Status (1)

Country Link
CN (1) CN112099903B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112817756B (zh) * 2021-01-25 2022-05-27 上海壁仞智能科技有限公司 计算机可读取存储介质、内存管理单元的虚拟化方法和装置
CN112860381B (zh) * 2021-03-09 2022-04-26 上海交通大学 基于申威处理器的虚拟机内存扩容方法及系统
CN113312620B (zh) * 2021-06-01 2022-12-09 海光信息技术股份有限公司 一种程序安全检测方法及装置、处理器芯片、服务器
CN114201752B (zh) * 2021-11-29 2022-10-18 海光信息技术股份有限公司 一种安全隔离虚拟机的页表管理方法、装置及相关设备
CN114564724A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 虚拟机内存完整性保护方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016082191A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 访问文件的方法和装置
CN107368354A (zh) * 2017-08-03 2017-11-21 致象尔微电子科技(上海)有限公司 一种虚拟机安全隔离方法
CN107783812A (zh) * 2016-08-24 2018-03-09 阿里巴巴集团控股有限公司 虚拟机内存管理方法及装置
CN109725983A (zh) * 2018-11-22 2019-05-07 海光信息技术有限公司 一种数据交换方法、装置、相关设备及系统
CN109739613A (zh) * 2018-11-22 2019-05-10 海光信息技术有限公司 嵌套页表的维护方法、访问控制方法及相关装置
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN110928646A (zh) * 2019-11-22 2020-03-27 海光信息技术有限公司 一种访问共享内存的方法、装置、处理器和计算机系统
CN111190752A (zh) * 2019-12-30 2020-05-22 海光信息技术有限公司 虚拟机共享内核内存的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005447A1 (en) * 2006-06-30 2008-01-03 Sebastian Schoenberg Dynamic mapping of guest addresses by a virtual machine monitor

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016082191A1 (zh) * 2014-11-28 2016-06-02 华为技术有限公司 访问文件的方法和装置
CN107783812A (zh) * 2016-08-24 2018-03-09 阿里巴巴集团控股有限公司 虚拟机内存管理方法及装置
CN107368354A (zh) * 2017-08-03 2017-11-21 致象尔微电子科技(上海)有限公司 一种虚拟机安全隔离方法
CN109725983A (zh) * 2018-11-22 2019-05-07 海光信息技术有限公司 一种数据交换方法、装置、相关设备及系统
CN109739613A (zh) * 2018-11-22 2019-05-10 海光信息技术有限公司 嵌套页表的维护方法、访问控制方法及相关装置
CN109766164A (zh) * 2018-11-22 2019-05-17 海光信息技术有限公司 一种访问控制方法、内存管理方法及相关装置
CN110928646A (zh) * 2019-11-22 2020-03-27 海光信息技术有限公司 一种访问共享内存的方法、装置、处理器和计算机系统
CN111190752A (zh) * 2019-12-30 2020-05-22 海光信息技术有限公司 虚拟机共享内核内存的方法及装置

Also Published As

Publication number Publication date
CN112099903A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112099903B (zh) 一种虚拟机的内存管理方法、装置、cpu芯片及服务器
US10157146B2 (en) Local access DMA with shared memory pool
RU2602793C2 (ru) Способ модификации разрешений на доступ к памяти в защищенной процессорной среде
KR101782398B1 (ko) 보안된 가상 머신간 공유된 메모리 통신을 위한 기술
KR101177971B1 (ko) 보호 영역 경계들에서의 오브젝트 호출 방법, 시스템 및 장치
US4858117A (en) Apparatus and method for preventing computer access by unauthorized personnel
US10831889B2 (en) Secure memory implementation for secure execution of virtual machines
US7886098B2 (en) Memory access security management
US8689349B2 (en) Information flow tracking and protection
US10255088B2 (en) Modification of write-protected memory using code patching
CN111090869B (zh) 一种数据加密方法、处理器及计算机设备
US10664304B2 (en) Application memory protection using an extended page table switching virtual machine function
US20170147376A1 (en) Input ouput memory management unit based zero copy virtual machine to virtual machine communication
WO2010097925A1 (ja) 情報処理装置
CN112541166A (zh) 一种方法、系统和计算机可读存储介质
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
US20190228159A1 (en) Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link
CN106845174B (zh) 一种安全系统下的应用权限管理方法及系统
CN112330229B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN115017497A (zh) 信息处理方法、装置及存储介质
KR101460451B1 (ko) 프로세스 주소 공간을 제어하는 장치 및 방법
CN111666579B (zh) 计算机设备及其访问控制方法和计算机可读介质
CN108932205B (zh) 一种防御RowHammer攻击的方法及设备
US20240113875A1 (en) Method and apparatus for storing keys
CN116894275A (zh) 页表的更新方法、服务器、图形处理器、芯片及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant