CN110928646A - 一种访问共享内存的方法、装置、处理器和计算机系统 - Google Patents
一种访问共享内存的方法、装置、处理器和计算机系统 Download PDFInfo
- Publication number
- CN110928646A CN110928646A CN201911152288.3A CN201911152288A CN110928646A CN 110928646 A CN110928646 A CN 110928646A CN 201911152288 A CN201911152288 A CN 201911152288A CN 110928646 A CN110928646 A CN 110928646A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- secure
- processor
- page table
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种访问共享内存的方法、装置、处理器和计算机系统。该方法包括:接收虚拟机管理器发送的配置请求;其中,配置请求包括第一虚拟机的身份认证信息和第一虚拟机待访问的目标内存空间;若目标内存空间为第二虚拟机的共享内存,则对身份认证信息进行验证;第二虚拟机的共享内存用于供安全处理器、第二虚拟机和第二虚拟机授权的虚拟机访问;若身份验证通过,则在第一虚拟机的安全页表中增加指向目标内存空间的映射关系,以使第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。本申请通过将虚拟机的内存划分为共享内存和安全内存,使得第一虚拟机能够与第二虚拟机共享该目标内存空间中的数据,提高了内存的使用效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种访问共享内存的方法、装置、处理器和计算机系统。
背景技术
虚拟化技术广泛应用于云计算环境中,租户向云服务厂商购买虚拟机实例用于运行租户的程序,云服务厂商在相同的硬件平台上运行不同租户的程序,通过共享提高硬件使用效率。租户通常只能完全信任云服务厂商提供的运行环境,而由于软/硬件漏洞、人员管理上的缺陷等原因,具备权限的服务器运维人员、黑客可能对租户的程序及数据进行窃取或破坏。
基于安全内存技术,租户的程序及数据被妥善保存于安全内存,使其与普通数据或其它租户的数据隔离,达到在不被信任的执行环境中安全地执行租户的程序的目标。但由于内存隔离的存在,导致多个虚拟机对应的安全内存中存储有相同的程序代码,从而对于主机来说,在内存中存储了多份相同的程序代码,造成内存浪费,降低了对内存的使用效率。
发明内容
本申请实施例的目的在于提供一种访问共享内存的方法、装置、处理器和计算机系统,用以解决现有技术中内存使用效率低的问题。
第一方面,本申请实施例提供一种访问共享内存的方法,应用于安全处理器,包括:接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间;若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供所述安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问;若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
本申请实施例通过将虚拟机的内存划分为共享内存和安全内存,在共享内存中存放供授权虚拟机访问的共享数据,在安全内存中存放供本虚拟机访问的安全数据。因此,当第一虚拟机需要访问第二虚拟机中的共享内存时,安全处理器进行安全验证之后,在第一虚拟机的安全页表中增加指向目标内存空间的映射关系,使得第一虚拟机能够与第二虚拟机共享该目标内存空间中的数据,而不需要在第一虚拟机的内存中存储该数据,提高了内存的使用效率。
进一步地,所述方法还包括:在创建虚拟机或启动虚拟机时,获取并存储所述虚拟机的可共享数据的信息和可共享的租户身份信息;所述可共享数据的信息包括可共享数据对应的主机内存的物理地址;根据所述请求创建对应的虚拟机。
本申请实施例在创建虚拟机或启动虚拟机时,安全处理器可以接收用户指定的可共享数据的信息以及可共享的租户身份信息,并存储可共享数据的信息以及可共享的租户身份信息。只有被虚拟机授权的租户才能访问其共享内存,而不是普通的虚拟机都能访问其共享内存,保证了共享内存中数据的安全性。
进一步地,所述身份认证信息包括所述第一虚拟机对应的租户身份信息;所述对所述身份认证信息进行验证,包括:判断可共享的租户身份信息中是否包括所述第一虚拟机对应的租户身份信息,若包括,则验证通过。
本申请实施例中对要访问第二虚拟机的共享内存的第一虚拟机的身份进行验证,在验证通过的情况下才允许其访问,保证了共享内存中数据的安全性。
进一步地,所述请求还包括可共享的租户公钥,所述身份认证信息还包括签名信息;所述对所述身份认证信息进行验证包括:利用所述可共享的租户公钥对所述签名信息进行验证,以获得验证结果。
本申请实施例利用租户公钥对签名信息进行验证,以实现对租户的身份的认证,从而保证了共享内存中数据的安全性。
进一步地,所述方法还包括:若所述目标内存空间为所述第二虚拟机的安全内存,则拒绝响应所述配置请求;其中,所述第二虚拟机的安全内存用于供所述安全处理器和所述第二虚拟机访问。
本申请实施例中由于第一虚拟机没有权限访问第二虚拟机的安全内存,因此,如果第一虚拟机要访问第二虚拟机的安全内存,则安全处理器拒绝响应配置请求,以保证第二虚拟机的安全内存中数据的安全性。
进一步地,所述方法还包括:若身份验证不通过,则拒绝响应所述配置请求。如果租户身份验证不通过,则拒绝响应配置请求,以保证第二虚拟机的安全内存中数据的安全性。
进一步地,所述第一虚拟机的安全页表存储于所述第一虚拟机对应的安全内存中,且所述安全页表包括第一页表和第二页表;其中:所述第一页表用于维护所述第一虚拟机的虚拟地址到所述第一虚拟机的物理地址的映射关系;所述第二页表用于维护所述第一虚拟机的物理地址到主机内存的物理地址的映射关系。
本申请实施例通过二级嵌套页表完成从虚拟机的物理地址到主机内存的物理地址的映射,从而不同虚拟机通过二级嵌套页表指向相同的内存空间。
第二方面,本申请实施例提供一种访问共享内存的装置,包括:
接收模块,用于接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间;验证模块,用于若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问;映射模块,用于若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
第三方面,本申请实施例提供一种处理器,包括:安全处理器、处理器核心、内存控制器和总线;其中:所述内存控制器通过总线与所述安全处理器和所述处理器核心通信连接;所述安全处理器用于执行第一方面所述的方法。
进一步地,所述处理器核心包括虚拟机管理器和至少一个虚拟机;所述虚拟机管理器分别与所述虚拟机和所述安全处理器通信连接;所述虚拟机管理器用于接收所述虚拟机发送的配置请求,并将所述配置请求发送给所述安全处理器。
第四方面,本申请实施例提供一种计算机系统,包括:通信连接的第三方面所述的处理器和内存。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种访问共享内存的方法流程示意图;
图2为本申请实施例提供的第一页表映射关系图;
图3为本申请实施例提供的第二页表映射示意图;
图4为本申请实施例提供的装置结构示意图;
图5为本申请实施例提供的一种处理器结构示意图;
图6为本申请实施例提供的一种计算机系统结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
介绍本申请实施例中涉及的相关概念:
安全处理器为内嵌于处理器SoC的硬件安全处理器芯片,可提供独立于通用处理器之外的安全功能。
安全虚拟化,利用安全处理器作为可信基,提供在不可信主机上安全运行租户程序的环境。
安全内存是由硬件提供隔离保护的,通常由处理器SoC提供。安全内存用来保护一些核心内存数据,使其免于不可信代码的访问以及修改。
计算机程序通常基于虚拟地址运行,而硬件访问使用物理地址,因此需要一种硬件机制完成地址转换。因此处理器提供一种利用存放于物理内存的多级数据结构指示地址映射关系,在发生内存访问时自动完成地址翻译,这种多级数据结构称为页表。页表入口通常使用寄存器保存,供硬件在遍历页表时进行查询,该寄存器在x86平台上称为CR3。
在本申请之前,安全内存虽然提高了各个租户数据的安全性,但是也导致了一些本来能够共享的数据,无法共享,需要将这些数据分别存入到各个租户虚拟机对应的安全内存中,从而造成了存储浪费,降低对内存的使用效率。
为改善该问题,本申请实施例提供一种访问共享内存的方法,如图1所示,该方法应用于安全处理器,且该方法包括:
步骤101:接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间。
在具体的实施过程中,虚拟机管理器通常负责虚拟机的内存管理,例如,通过安全页表维护虚拟机物理地址到主机物理地址的映射关系,但是,虚拟机管理器无法修改安全页表中的映射关系,因此,能够保证虚拟机的安全。本申请实施例将虚拟机使用的内存按照物理地址划分为共享内存和安全内存;虚拟机在创建时,可以指定允许访问共享内存的设备有哪些,例如,可以指定安全处理器、主机、指定的虚拟机等。一般情况下,安全内存通常只允许安全处理器和自身虚拟机访问。为了描述方便,本申请实施例将访问共享内存的虚拟机生成第一虚拟机,被访问的虚拟机称为第二虚拟机,可以理解的是,第一虚拟机和第二虚拟机在功能结构上可以没有区别。
虚拟机管理器发送的配置请求可以是由第一虚拟机向虚拟机管理器发送的,也可以是虚拟机管理器恶意发送的。
针对第一种情况:由于虚拟机无法直接与安全处理器通信,因此,若第一虚拟机要访问第二虚拟机的共享内存,且第一虚拟机对应的安全页表中没有指向到第二虚拟机的共享内存的映射关系,第一虚拟机会向虚拟机管理器发出缺页异常,此处称为配置请求,虚拟机管理器将该配置请求转发给安全处理器。
针对第二种情况:并没有第一虚拟机产生缺页异常,而是虚拟机管理器由于黑客攻击或其他原因要恶意访问第二虚拟机的共享内存。这种情况下,虚拟机管理器发送的配置请求中的身份认证信息是不正确的,安全处理器通过对身份认证信息的验证来保证第二虚拟机的共享内存中数据的安全性。
第一虚拟机的身份认证信息为用来标识第一虚拟机对应的租户身份的信息,例如,可以是租户的ID、租户的签名等。第一虚拟机要访问的数据所在的内存空间称为目标内存空间。应当说明的是,配置请求中还可以包括其他信息,例如请求发送的时间等。
步骤102:若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供所述安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问。
在具体的实施过程中,安全处理器在接收到配置请求后,从配置请求中获得第一虚拟机要访问的目标内存空间,在目标内存空间为第二虚拟机的共享内存的情况下,对第一虚拟机的身份认证信息进行验证,判断第一虚拟机对应的租户是否为第二虚拟机允许访问其共享内存租户。
步骤103:若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
在具体的实施过程中,如果验证通过,则说明第一虚拟机能够访问第二虚拟机的共享内存。安全处理器在第一虚拟机的安全页表中增加指向目标内存空间的映射关系。
应当说明的是,无论哪个虚拟机,如果需要访问处于其他虚拟机的共享内存中的数据,均需要通过安全页表来解析共享内存的所在线形地址,才能查找到对应的主机中的物理地址。因此,为了保证共享内存中数据的安全性,避免被没有权限访问的虚拟机随意访问,可以将安全页表存储在第一虚拟机的安全内存中,这样,虚拟机管理器便没有权限对安全页表进行修改,提高了共享内存和安全内存中数据的安全性。
例如:第二虚拟机的0-1G为共享内存,第一虚拟机发起请求,要访问第二虚拟机的内存为0-512M中的数据,在安全处理器验证通过后,在安全页表中增加了指向第二虚拟机共享内存中0-512M的映射关系,第一虚拟机通过安全页表完成地址翻译,以访问第二虚拟机的0-512M中的数据。
另外,在第一虚拟机的安全页表中,除了有指向第二虚拟机的共享内存的映射关系以外,还包括了执行第一虚拟机对应的安全内存的映射关系。同理,每个虚拟机对应的安全页表中也都包括到自身安全内存的映射关系。
在本申请之前,现有的虚拟机管理器用来维护各个虚拟机对应的页表,若虚拟机管理器受到了攻击,那么该虚拟机管理器可以恶意修改虚拟机的页表。而本申请实施例中,为了防止虚拟机管理器的权限过大,以提高虚拟机的数据安全,将虚拟机的页表存入安全内存中,并且将维护虚拟机的页表的权限虚拟机管理器转移到安全处理器上。因此,本申请实施例中的虚拟机管理器没有权限修改虚拟机的页表,而安全处理器作为可信根来管理虚拟机的安全页表。
另外,本申请实施例通过将虚拟机的内存划分为共享内存和安全内存,在共享内存中存放供授权虚拟机访问的共享数据,在安全内存中存放供本虚拟机访问的安全数据。因此,当第一虚拟机需要访问第二虚拟机中的共享内存时,安全处理器进行安全验证之后,在第一虚拟机的安全页表中增加指向目标内存空间的映射关系,使得第一虚拟机能够与第二虚拟机共享该目标内存空间中的数据,而不需要在第一虚拟机的内存中存储该数据,提高了内存的使用效率。
在上述实施例的基础上,所述方法还包括:
在创建虚拟机或启动虚拟机时,获取并存储所述虚拟机的可共享数据的信息和可共享的租户身份信息;所述可共享数据的信息包括可共享数据对应的主机内存的物理地址。
在具体的实施过程中,安全处理器在创建虚拟机或对虚拟机进行启动时,获取用户指定的可共享数据的信息和可共享的租户身份信息。其中,可共享数据的信息可以包括文件内偏移、大小等信息;可共享的租户身份信息可以包括租户ID、公钥、证书等。在虚拟机在初始化时,安全处理器记录租户的信息与初始配置。其中,初始配置包括该虚拟机所需的虚拟处理器(VCPU)的数量、所需内存大小、有哪些虚拟外设等。应当说明的是,安全处理器在创建虚拟机的过程中,还为该虚拟机分配对应大小的内存,以及创建对应的安全页表。其中,该内存中包括共享内存和安全内存,在创建虚拟机的请求中,可以指定共享内存的大小和安全内存的大小。
本申请实施例在创建虚拟机时,指定可共享数据的信息以及可共享的租户身份信息,只有被虚拟机授权的租户才能访问其共享内存,而不是普通的虚拟机都能访问其共享内存,保证了共享内存中数据的安全性。
在上述实施例的基础上,所述身份认证信息包括所述第一虚拟机对应的租户身份信息;所述对所述身份认证信息进行验证,包括:
判断可共享的租户身份信息中是否包括所述第一虚拟机对应的租户身份信息,若包括,则验证通过。
在具体的实施过程中,每个虚拟机都对应一个租户,一个租户可以有一个或多个虚拟机,租户的身份信息用来表示租户身份的唯一性,可以为租户ID,也可以为租户的注册名等信息。由于第二虚拟机在构建时指定了哪些虚拟机能够访问其共享内存中的数据,并且在安全处理器中记录有第二虚拟机指定能够访问共享内存的虚拟机的租户身份信息;因此,可以判断第二虚拟机指定的租户身份信息中是否包括第一虚拟机对应的租户身份信息,如果包括,则说明第一虚拟机有权限访问第二虚拟机的共享内存,验证通过;否则说明第一虚拟机没有权限访问第二虚拟机的共享内存,验证不通过。
本申请实施例中对要访问第二虚拟机的共享内存的第一虚拟机的身份进行验证,在验证通过的情况下才允许其访问,保证了共享内存中数据的安全性。
在上述实施例的基础上,所述请求还包括可共享的租户公钥,所述身份认证信息还包括签名信息;
所述对所述身份认证信息进行验证包括:
利用所述可共享的租户公钥对所述签名信息进行验证,以获得验证结果。
在具体的实施过程中,第二虚拟机在创建时,其创建虚拟机的请求中还包括可共享的租户的公钥,安全处理器接收到的配置请求中的身份认证信息中还包括签名信息,该签名信息为通过第一虚拟机的私钥对配置请求中的数据进行加密获得;签名信息也可以是获取配置请求对应的散列值,利用第一虚拟机的私钥对散列值进行加密获得。
安全处理器在进行验证时,利用第二虚拟机指定的可共享租户的租户公钥对该数字签名进行解密,若能够成功解密,则说明第一虚拟机对应的租户为可共享租户,验证通过;若无法解密,则说明第一虚拟机对应的租户为不可共享租户,验证失败。可以理解的是,第二虚拟机可以指定多个租户有权共享其共享内存中的数据,因此,安全处理器在验证时,需要分别使用每个公钥对该签名信息进行解密,判断是否有公钥能够成功解密。
本申请实施例利用租户公钥对签名信息进行验证,以实现对租户的身份的认证,从而保证了共享内存中数据的安全性。
在另一实施例中,由于虚拟机的安全内存供安全处理器和虚拟机本身访问,因此,如果目标内存空间为第二虚拟机的安全内存,则安全处理器拒绝响应该配置请求。例如:第二虚拟机的0-1G为共享内存,1-3G为安全内存,如果第一虚拟机配置请求中的目标内存空间为2-3G的数据,那么安全处理器拒绝响应该配置请求。
另外,如果第一虚拟机要访问的目标内存空间为第二虚拟机的共享内存,但是安全处理器在验证第一虚拟机的身份时,得知第一虚拟机对应的租户不是第二虚拟机授权可共享的虚拟机,因此,安全处理器拒绝响应该配置请求。
应当说明的是,安全处理器可以向虚拟机管理器发送拒绝响应的消息,虚拟机管理器在接收到该消息后反馈给第一虚拟机。
本申请实施例中由于第一虚拟机没有权限访问第二虚拟机的安全内存,因此,如果第一虚拟机要访问第二虚拟机的安全内存,则安全处理器拒绝响应配置请求,以保证第二虚拟机的安全内存中数据的安全性。
在上述实施例的基础上,所述第一虚拟机的安全页表存储于所述第一虚拟机对应的安全内存中,且所述安全页表包括第一页表和第二页表;其中:
所述第一页表用于维护所述第一虚拟机的虚拟地址到所述第一虚拟机的物理地址的映射关系;
所述第二页表用于维护所述第一虚拟机的物理地址到主机内存的物理地址的映射关系。
在具体的实施过程中,由于计算机程序通常基于虚拟地址运行,而硬件访问使用物理地址,因此需要一种硬件机制完成地址转换。虚拟化通常使用二维页表遍历(Two-Dimensional Page Walks)的方式来加速虚拟机内存映射转换过程,本申请实施例中的安全页表包括第一页表和第二页表,这两个页表都是二维页表。
分页转换功能由驻留在内存中的表来描述,该表称为页表(page table),存放在物理地址空间中。页表可看作简单的220个物理地址数组。线性到物理地址的映射功能可以简单地看作进行数组查找。线性地址的高20位构成这个数组的索引值,用于选择对应页面的物理(基)地址。线性地址的低12位给出了页面中的偏移量,加上页面的基地址最终形成对应的物理地址。由于页面基地址对齐在4K边界上,因此页面基地址的低12位是0。这意味着高20位的页面基地址和12位偏移量连接组合在一起就能得到对应的物理地址。
页表中每个页表项的大小为32位。由于只需要其中的20位来存放页面的物理基地址,因此剩下的12位可用于存放诸如页面是否存在等的属性信息。如果线性地址索引的页表项被标注为存在的,则表示该项有效,我们可以从中取得页面的物理地址。如果页表项中信息表明(说明、指明)页面不存在,那么当访问对应物理页面时就会产生一个异常。
图2为本申请实施例提供的第一页表映射关系图,如图2所示,在安全处理器在第一虚拟机的安全页表中添加了指向第二虚拟机共享内存的映射关系之后,第一虚拟机先利用第一页表,将第一虚拟机的虚拟地址映射为第一虚拟机的物理地址。
第一页表含有2^20(1M)个表项,而每项占用4B。如果作为一个表来存放的话,它们最多将占用4MB的内存。因此为了减少内存占用量,本申请使用了两级表。由此,高20位线性地址到物理地址的转换也被分成两步来进行,每步使用(转换)其中的10bit。
第一级表称为页目录(page directory)。它被存放在1页4K页面中,具有2^10(1K)个4B长度的表项。这些表项指向对应的二级表。线性地址的最高10位(位31~22)用作一级表(页目录)中的索引值来选择210个二级表之一。
第二级表称为页表(page table),它的长度也是1个页面,最多含有1K个4B的表项。每个4B表项含有相关页面的20位物理基地址。二级页表使用线性地址中间10位(位21~12)作为表项索引值,以获取含有页面20位物理基地址的表项。该20位页面物理基地址和线性地址中的低12位(页内偏移)组合在一起就得到了分页转换过程的输出值,即对应的第一虚拟机的物理地址。
其中,CR3寄存器指定页目录表的基地址。线性地址的高10位用于索引这个页目录表,以获得指向相关第二级页表的指针。线性地址中间10位用于索引二级页表,以获得物理地址的高20位。线性地址的低12位直接作为物理地址低12位,从而组成一个完整的32位物理地址。
图3为本申请实施例提供的第二页表映射示意图,如图3所示,第二页表将第一虚拟机的物理地址映射到主机内存的物理地址。第二页表也称为嵌套页表,其工作原理与第一页表类似,此处不再赘述。从图3中可以看出,虚拟机A和虚拟机B通过各自的安全页表可以指向主机中相同的内存页面,从而达到共享内存的目的。
应当说明的是,每个虚拟机都有对应的安全页表,第二虚拟机以及其他有权限与第二虚拟机共享内存的虚拟机在访问主机的物理地址时,都通过自己的安全页表实现访问。
本申请实施例通过二级嵌套页表完成从虚拟机的物理地址到主机内存的物理地址的映射,从而不同虚拟机通过二级嵌套页表指向相同的内存空间。
图4为本申请实施例提供的装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括:接收模块401、验证模块402和映射模块403,其中:
接收模块401用于接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间;验证模块402用于若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问;映射模块403用于若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
在上述实施例的基础上,该装置还包括信息存储模块,用于:
在创建虚拟机或启动虚拟机时,获取并存储所述虚拟机的可共享数据的信息和可共享的租户身份信息;所述可共享数据的信息包括可共享数据对应的主机内存的物理地址。
在上述实施例的基础上,所述身份认证信息包括所述第一虚拟机对应的租户身份信息;验证模块402具体用于:
判断可共享的租户身份信息中是否包括所述第一虚拟机对应的租户身份信息,若包括,则验证通过。
在上述实施例的基础上,所述请求还包括可共享的租户公钥,所述身份认证信息还包括签名信息;验证模块402具体用于:
所述对所述身份认证信息进行验证包括:
利用所述可共享的租户公钥对所述签名信息进行验证,以获得验证结果。
在上述实施例的基础上,该装置还包括拒绝响应模块,用于:
若所述目标内存空间为所述第二虚拟机的安全内存,则拒绝响应所述配置请求;其中,所述第二虚拟机的安全内存用于供所述安全处理器和所述第二虚拟机访问。
在上述实施例的基础上,拒绝响应模块,还用于:
若身份验证不通过,则拒绝响应所述配置请求。
在上述实施例的基础上,所述第一虚拟机的安全页表存储于所述第一虚拟机对应的安全内存中,且所述安全页表包括第一页表和第二页表;其中:
所述第一页表用于维护所述第一虚拟机的虚拟地址到所述第一虚拟机的物理地址的映射关系;
所述第二页表用于维护所述第一虚拟机的物理地址到主机内存的物理地址的映射关系。
图5为本申请实施例提供的一种处理器结构示意图,如图5所示,该处理器包括:安全处理器501、处理器核心502、内存控制器503和总线504,其中:
内存控制器503通过总线504分别与安全处理器501和处理器核心502通信连接;
安全处理器501专门负责处理虚拟机的安全相关的操作的处理器,除了用于执行上述各个方法实施例中的方法外,还可以进行内存加解密等操作,例如:可以对虚拟机的初始配置进行加密。内存控制器503中可以包括加密引擎,在加密引擎中存储有密钥,安全处理器501可通过加密引擎存储的密钥为部分或者全部虚拟机的内存进行加密。应当说明的是,不同虚拟机的内存使用不同的密钥进行加密。
从图5中可以看出,可以将安全处理器501、处理器核心502、内存控制器503集成在一个SoC(System on Chip,片上系统)上以构成处理器。应当说明的是,处理器的集成形式不局限于上述方法。
在一个实施例中,处理器核心502包括虚拟机管理器和至少一个虚拟机,其中,虚拟机管理器分别与至少一个虚拟机和安全处理器通信连接。且虚拟机管理器可配置与安全处理器通信的应用程序编程接口(Application Programming Interface,API),实现虚拟机管理器与安全处理器之间的数据交互。应当说明的是,虚拟机管理器无法访问安全处理器加密的内存。
虚拟机管理器用于接收虚拟机发送的配置请求,其中,配置请求可以为要访问另一虚拟机的共享内存的请求,虚拟机管理器由于没有权限修改安全页表,因此,将该配置请求转发给安全处理器,安全处理器根据上述方法实施例中的方法处理该配置请求。
综上所述,本申请实施例通过将虚拟机的内存划分为共享内存和安全内存,在共享内存中存放供授权虚拟机访问的共享数据,在安全内存中存放供本虚拟机访问的安全数据。因此,当第一虚拟机需要访问第二虚拟机中的共享内存时,安全处理器进行安全验证之后,在第一虚拟机的安全页表中增加指向目标内存空间的映射关系,使得第一虚拟机能够与第二虚拟机共享该目标内存空间中的数据,而不需要在第一虚拟机的内存中存储该数据,提高了内存的使用效率。
图6为本申请实施例提供的一种计算机系统结构示意图,如图6所示,该计算机系统包括上述实施例提供的处理器601和内存602,处理器601中的内存控制器与内存602通信连接。内存控制器实现对内存的控制,例如,对每个虚拟机对应的内存进行加密等。本申请实施例可以在内存602中划分广义安全内存和普通内存,其中,广义安全内存可以通过加密、硬件隔离等机制来实现。另外,又可以将广义安全内存划分为共享内存和安全内存。普通内存中的数据可以允许任意一个虚拟机访问,共享内存中的数据允许被授权的虚拟机访问,安全内存中的数据允许该安全内存对应的虚拟机以及安全处理器访问。由此可知,上述三种内存按照保密程度从高到低依次为:安全内存、共享内存和普通内存。
另外,该计算机系统还可以包括外设603,外设603通过总线与内存控制器进行通信连接,若外设603需要访问内存中的数据,则需要通过内存控制器实现。
综上所述,本申请实施例提供的计算机系统,通过将内存划分为共享内存和安全内存,由于共享内存和安全内存均设置有访问权限,从而保证了虚拟机的数据安全。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种访问共享内存的方法,其特征在于,应用于安全处理器,包括:
接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间;
若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供所述安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问;
若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在创建虚拟机或启动虚拟机时,获取并存储所述虚拟机的可共享数据的信息和可共享的租户身份信息;所述可共享数据的信息包括可共享数据对应的主机内存的物理地址。
3.根据权利要求2所述的方法,其特征在于,所述身份认证信息包括所述第一虚拟机对应的租户身份信息;所述对所述身份认证信息进行验证,包括:
判断可共享的租户身份信息中是否包括所述第一虚拟机对应的租户身份信息,若包括,则验证通过。
4.根据权利要求2所述的方法,其特征在于,所述请求还包括可共享的租户公钥,所述身份认证信息还包括签名信息;
所述对所述身份认证信息进行验证包括:
利用所述可共享的租户公钥对所述签名信息进行验证,以获得验证结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标内存空间为所述第二虚拟机的安全内存,则拒绝响应所述配置请求;其中,所述第二虚拟机的安全内存用于供所述安全处理器和所述第二虚拟机访问。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若身份验证不通过,则拒绝响应所述配置请求。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一虚拟机的安全页表存储于所述第一虚拟机对应的安全内存中,且所述安全页表包括第一页表和第二页表;其中:
所述第一页表用于维护所述第一虚拟机的虚拟地址到所述第一虚拟机的物理地址的映射关系;
所述第二页表用于维护所述第一虚拟机的物理地址到主机内存的物理地址的映射关系。
8.一种访问共享内存的装置,其特征在于,包括:
接收模块,用于接收虚拟机管理器发送的配置请求;其中,所述配置请求包括第一虚拟机的身份认证信息和所述第一虚拟机待访问的目标内存空间;
验证模块,用于若所述目标内存空间为第二虚拟机的共享内存,则对所述身份认证信息进行验证;其中,所述第二虚拟机的共享内存用于供安全处理器、所述第二虚拟机和所述第二虚拟机授权的虚拟机访问;
映射模块,用于若身份验证通过,则在所述第一虚拟机的安全页表中增加指向所述目标内存空间的映射关系,以使所述第一虚拟机能够根据所述安全页表中的映射关系访问所述目标内存空间。
9.一种处理器,其特征在于,包括:安全处理器、处理器核心、内存控制器和总线;其中:
所述内存控制器通过总线与所述安全处理器和所述处理器核心通信连接;
所述安全处理器用于执行如权利要求1-7任一项所述的方法。
10.根据权利要求9所述的处理器,其特征在于,所述处理器核心包括虚拟机管理器和至少一个虚拟机;所述虚拟机管理器分别与所述虚拟机和所述安全处理器通信连接;
所述虚拟机管理器用于接收所述虚拟机发送的配置请求,并将所述配置请求发送给所述安全处理器。
11.一种计算机系统,其特征在于,包括:通信连接的如权利要求9所述的处理器和内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911152288.3A CN110928646B (zh) | 2019-11-22 | 2019-11-22 | 一种访问共享内存的方法、装置、处理器和计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911152288.3A CN110928646B (zh) | 2019-11-22 | 2019-11-22 | 一种访问共享内存的方法、装置、处理器和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110928646A true CN110928646A (zh) | 2020-03-27 |
CN110928646B CN110928646B (zh) | 2023-02-17 |
Family
ID=69851562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911152288.3A Active CN110928646B (zh) | 2019-11-22 | 2019-11-22 | 一种访问共享内存的方法、装置、处理器和计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928646B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813584A (zh) * | 2020-08-05 | 2020-10-23 | Oppo广东移动通信有限公司 | 内存共享方法、装置、电子设备及存储介质 |
CN111857947A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 内存隔离方法、隔离检查电路和cpu芯片 |
CN111966468A (zh) * | 2020-08-28 | 2020-11-20 | 海光信息技术有限公司 | 用于直通设备的方法、系统、安全处理器和存储介质 |
CN112099903A (zh) * | 2020-08-18 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
CN112099979A (zh) * | 2020-11-18 | 2020-12-18 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112241307A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 一种虚拟机创建方法、装置及相关设备 |
CN112241306A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 固件数据加载方法、装置、安全处理器、芯片及电子设备 |
CN112256394A (zh) * | 2020-10-23 | 2021-01-22 | 海光信息技术股份有限公司 | 一种进程安全方法、装置、cpu、芯片及计算机设备 |
CN112416526A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 一种直接存储访问方法、装置及相关设备 |
CN113268353A (zh) * | 2021-06-11 | 2021-08-17 | 海光信息技术股份有限公司 | 一种提供可信内存的方法、装置、处理器芯片和电子设备 |
CN114661497A (zh) * | 2022-03-31 | 2022-06-24 | 慧之安信息技术股份有限公司 | 操作系统分区共享内存方法和系统 |
CN114936064A (zh) * | 2022-04-08 | 2022-08-23 | 科东(广州)软件科技有限公司 | 一种共享内存的访问方法、装置、设备和存储介质 |
GB2606523A (en) * | 2021-05-10 | 2022-11-16 | Advanced Risc Mach Ltd | Technique for handling request transfers from a peripheral device in a communication network |
CN117369951A (zh) * | 2023-12-06 | 2024-01-09 | 北京趋动智能科技有限公司 | 虚拟机通信方法、装置、存储介质及电子设备 |
WO2024120014A1 (zh) * | 2022-12-09 | 2024-06-13 | 华为技术有限公司 | 内存访问控制方法、装置、计算设备和计算设备集群 |
WO2024140543A1 (zh) * | 2022-12-27 | 2024-07-04 | 华为技术有限公司 | Cc-numa服务器、锁请求的处理方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983003A (en) * | 1996-11-15 | 1999-11-09 | International Business Machines Corp. | Interactive station indicator and user qualifier for virtual worlds |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN104852840A (zh) * | 2015-05-28 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种控制虚拟机之间互访的方法及装置 |
US20170147376A1 (en) * | 2015-11-25 | 2017-05-25 | Red Hat Israel, Ltd. | Input ouput memory management unit based zero copy virtual machine to virtual machine communication |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN107562514A (zh) * | 2017-08-03 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种物理内存访问控制与隔离方法 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
-
2019
- 2019-11-22 CN CN201911152288.3A patent/CN110928646B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983003A (en) * | 1996-11-15 | 1999-11-09 | International Business Machines Corp. | Interactive station indicator and user qualifier for virtual worlds |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN104852840A (zh) * | 2015-05-28 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种控制虚拟机之间互访的方法及装置 |
US20170147376A1 (en) * | 2015-11-25 | 2017-05-25 | Red Hat Israel, Ltd. | Input ouput memory management unit based zero copy virtual machine to virtual machine communication |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107368354A (zh) * | 2017-08-03 | 2017-11-21 | 致象尔微电子科技(上海)有限公司 | 一种虚拟机安全隔离方法 |
CN107562514A (zh) * | 2017-08-03 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种物理内存访问控制与隔离方法 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
Non-Patent Citations (1)
Title |
---|
池亚平等: "基于BLP的虚拟机多级安全强制访问控制系统设计与实现", 《信息网络安全》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857947A (zh) * | 2020-06-11 | 2020-10-30 | 海光信息技术有限公司 | 内存隔离方法、隔离检查电路和cpu芯片 |
CN111857947B (zh) * | 2020-06-11 | 2023-08-08 | 海光信息技术股份有限公司 | 内存隔离方法、隔离检查电路和cpu芯片 |
CN111813584A (zh) * | 2020-08-05 | 2020-10-23 | Oppo广东移动通信有限公司 | 内存共享方法、装置、电子设备及存储介质 |
CN112099903A (zh) * | 2020-08-18 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
CN112099903B (zh) * | 2020-08-18 | 2023-01-31 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
CN111966468B (zh) * | 2020-08-28 | 2021-10-26 | 海光信息技术股份有限公司 | 用于直通设备的方法、系统、安全处理器和存储介质 |
CN111966468A (zh) * | 2020-08-28 | 2020-11-20 | 海光信息技术有限公司 | 用于直通设备的方法、系统、安全处理器和存储介质 |
CN112241307A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 一种虚拟机创建方法、装置及相关设备 |
CN112241306A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 固件数据加载方法、装置、安全处理器、芯片及电子设备 |
CN112241306B (zh) * | 2020-10-21 | 2023-06-09 | 海光信息技术股份有限公司 | 固件数据加载方法、装置、安全处理器、芯片及电子设备 |
CN112256394A (zh) * | 2020-10-23 | 2021-01-22 | 海光信息技术股份有限公司 | 一种进程安全方法、装置、cpu、芯片及计算机设备 |
CN112256394B (zh) * | 2020-10-23 | 2022-11-18 | 海光信息技术股份有限公司 | 一种进程安全方法、装置、cpu、芯片及计算机设备 |
CN112099979A (zh) * | 2020-11-18 | 2020-12-18 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112099979B (zh) * | 2020-11-18 | 2021-03-05 | 数字广东网络建设有限公司 | 一种访问控制方法、装置、计算机设备和存储介质 |
CN112416526B (zh) * | 2020-11-27 | 2023-02-17 | 海光信息技术股份有限公司 | 一种直接存储访问方法、装置及相关设备 |
CN112416526A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 一种直接存储访问方法、装置及相关设备 |
GB2606523B (en) * | 2021-05-10 | 2023-06-28 | Advanced Risc Mach Ltd | Technique for handling request transfers from a peripheral device in a communication network |
GB2606523A (en) * | 2021-05-10 | 2022-11-16 | Advanced Risc Mach Ltd | Technique for handling request transfers from a peripheral device in a communication network |
WO2022238670A1 (en) * | 2021-05-10 | 2022-11-17 | Arm Limited | Technique for handling request transfers from a peripheral device in a communication network |
CN113268353A (zh) * | 2021-06-11 | 2021-08-17 | 海光信息技术股份有限公司 | 一种提供可信内存的方法、装置、处理器芯片和电子设备 |
CN114661497B (zh) * | 2022-03-31 | 2023-01-10 | 慧之安信息技术股份有限公司 | 操作系统分区共享内存方法和系统 |
CN114661497A (zh) * | 2022-03-31 | 2022-06-24 | 慧之安信息技术股份有限公司 | 操作系统分区共享内存方法和系统 |
CN114936064A (zh) * | 2022-04-08 | 2022-08-23 | 科东(广州)软件科技有限公司 | 一种共享内存的访问方法、装置、设备和存储介质 |
CN114936064B (zh) * | 2022-04-08 | 2023-03-31 | 科东(广州)软件科技有限公司 | 一种共享内存的访问方法、装置、设备和存储介质 |
WO2024120014A1 (zh) * | 2022-12-09 | 2024-06-13 | 华为技术有限公司 | 内存访问控制方法、装置、计算设备和计算设备集群 |
WO2024140543A1 (zh) * | 2022-12-27 | 2024-07-04 | 华为技术有限公司 | Cc-numa服务器、锁请求的处理方法及相关装置 |
CN117369951A (zh) * | 2023-12-06 | 2024-01-09 | 北京趋动智能科技有限公司 | 虚拟机通信方法、装置、存储介质及电子设备 |
CN117369951B (zh) * | 2023-12-06 | 2024-03-15 | 北京趋动智能科技有限公司 | 虚拟机通信方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110928646B (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928646B (zh) | 一种访问共享内存的方法、装置、处理器和计算机系统 | |
JP7428770B2 (ja) | コンピュータプログラム、コンピュータ可読記憶媒体及び装置 | |
US20230128711A1 (en) | Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine | |
CN109558740B (zh) | 用于页面粒度、软件控制的多密钥存储器加密的系统、装置和方法 | |
US9529735B2 (en) | Secure data encryption in shared storage using namespaces | |
KR101268767B1 (ko) | 정보 흐름 추적 및 보호 | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及系统 | |
CN110348204B (zh) | 一种代码保护系统、认证方法、装置、芯片及电子设备 | |
EP3047375B1 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
CN109766164B (zh) | 一种访问控制方法、内存管理方法及相关装置 | |
US11625275B2 (en) | Technologies for controlling memory access transactions received from one or more I/O devices | |
CN106716435B (zh) | 设备与安全处理环境之间的接口 | |
CN107169375B (zh) | 系统数据安全增强方法 | |
CN116126463A (zh) | 内存访问方法、配置方法、计算机系统及相关器件 | |
CN112363800B (zh) | 一种网卡的内存访问方法、安全处理器、网卡及电子设备 | |
CN107087003B (zh) | 基于网络的系统防攻击方法 | |
US11783095B2 (en) | System and method for managing secure files in memory | |
US20240220298A1 (en) | Life cycle management for device input/output interfaces in virtualized environments | |
US7925801B2 (en) | Method and system for protection and security of IO devices using credentials | |
CN116823585A (zh) | Gpu可信执行环境的构建方法、gpu可信计算执行方法及装置 | |
CN117321594A (zh) | 用于处理储藏事务的装置和方法 | |
CN118467107A (zh) | 共享数据的方法、装置、处理器、电子设备及可读存储介质 | |
CN118363887A (zh) | 一种基于内存地址翻译的内存保护方法及装置 | |
CN117194284A (zh) | 一种内存访问方法、初始化方法及其相关装置 | |
CN107103257A (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 | ||
CB02 | Change of applicant information |
Address after: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8 Applicant after: Haiguang Information Technology Co.,Ltd. Address before: 1809-1810, block B, blue talent port, No.1, Intelligent Island Road, high tech Zone, Qingdao, Shandong Province Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |