CN112241310A - 页表管理、信息获取方法、处理器、芯片、设备及介质 - Google Patents
页表管理、信息获取方法、处理器、芯片、设备及介质 Download PDFInfo
- Publication number
- CN112241310A CN112241310A CN202011131346.7A CN202011131346A CN112241310A CN 112241310 A CN112241310 A CN 112241310A CN 202011131346 A CN202011131346 A CN 202011131346A CN 112241310 A CN112241310 A CN 112241310A
- Authority
- CN
- China
- Prior art keywords
- page
- page table
- processor
- memory
- address
- 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
- 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/45566—Nested virtual machines
-
- 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
-
- 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/45587—Isolation 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供页表管理、信息获取方法、处理器、芯片、设备及介质,应用于内存隔离型虚拟机中,安全处理器分配有安全内存,其中存储用于将虚拟机物理地址映射至实际物理地址的嵌套页表;主处理器可访问的非安全内存中存储有主机页表;嵌套页表可以由安全处理器设置指向主机页表项,主处理器可通过设置主机页表项以令对应非安全内存的实际物理内存页只读或可写,以用于实现脏页管理机制。由于主处理器可以直接设置主机页表项,而不必所有的只读/可写设置均通过向安全处理器请求,降低交互量而减少时间、性能开销,提升虚拟机性能。
Description
技术领域
本申请实施例涉及处理器芯片技术领域,尤其涉及页表管理、信息获取方法、处理器、芯片、设备及介质。
背景技术
各大中央处理器(CPU)厂商相继推出硬件辅助的内存虚拟化技术,比如Intel的扩展页表技术(Extended Page Table,EPT)和AMD的嵌套页表技术(Nested Page Table,NPT),内存虚拟化技术可以实现在一台宿主机上运行多个客户机,即虚拟机(VirtualMachine,VM);由此,中央处理器的内存控制单元(MMU)在硬件上支持虚拟机虚拟地址(Virtual Address,GVA)到虚拟机物理地址(Guest Physical Address,GPA),以及GPA到宿主机内存的实际物理地址(Host Physical Address,HPA)的地址映射技术;其中,用于GPA到HPA的页表被称为嵌套页表。
通过嵌套页表,中央处理器的内存控制单元(MMU)可以直接把虚拟机物理地址转换为宿主机的物理地址,从而无需再经宿主机的虚拟地址(Host Virtual Address,HVA)的中间转换,提高虚拟机性能。
然而,在引入安全处理器实现内存隔离的安全虚拟机的情况下,嵌套页表处于安全内存而由安全处理器管理,安全内存相对于CPU是隔离的。虚拟机需要读写内存,需要CPU向安全处理器发出请求;如果沿用现有的虚拟机地址映射的机制,则在某些应用场景下会导致CPU和安全处理器之间大量的交互量,时间、性能开销极大。
在操作系统(比如linux)的内存管理中,会利用虚拟机物理地址对应的内存页为只读,而在虚拟机对其写入时产生缺页异常来获取对应的缺页地址GPA,而缺页地址GPA通过嵌套页表对应于内存中脏页的脏页地址;然而,由于嵌套页表只能由安全处理器管理而对CPU隔离,当需要对其中的嵌套页表项进行“只读”、“可写”的设置时,CPU均需要向安全处理器请求,会产生大量的请求,时间、性能开销非常之大,在实际应用中往往会引起操作系统的运行卡顿,不利于用户体验。
因此,如何减少虚拟机的脏页获取过程中,CPU和安全处理器之间的交互量,从而有效提升运行效率,已成为业界亟待解决的技术问题。
发明内容
有鉴于此,本申请实施例中提供页表管理、信息获取方法、处理器、芯片、设备及介质,解决现有技术中的问题。
本申请实施例提供了一种页表管理方法,应用于运行至少一虚拟机的主处理器,所述主处理器与安全处理器通信,所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述页表管理方法包括:
在所述虚拟机运行中产生相关于嵌套页表的缺页异常时,所述主处理器通过判断缺页异常相关的缺页地址是否在主机页表中具有对应的主机页表项,以确定所述缺页地址所对应内存的内存属性;
若具有对应的主机页表项,确定所述缺页地址对应于非安全内存,则主处理器设置所述主机页表项以令对应的实际物理内存页可写而避免缺页异常;
若不具有对应的主机页表项,则主处理器发送包含所述缺页地址的第一消息至安全处理器以确定其所对应内存的内存属性;并且,在从所述安全处理器获知所述缺页地址对应于非安全内存时,向所述安全处理器传输第二消息;其中,所述第二消息包括:对应所述缺页地址分配的主机页表项的内存存储地址及非安全内存中的实际物理地址,以由安全处理器建立嵌套页表项并设置所述主机页表项对应于该实际物理地址,以用于将所述缺页地址指向所述主机页表项而映射至所述实际物理地址;
主处理器在脏页记录中设置所述缺页地址对应脏页地址地址的标记。
可选的,所述嵌套页表中的嵌套页表项包括:标志位及物理页基地址;其中,所述标志位的值用于标志所述嵌套页表项对应于非安全内存或安全内存,所述物理页基地址相应地指向对应于非安全内存中实际物理地址的主机页表项、或指向安全内存中实际物理地址。
可选的,所述主机页表为影子页表。
本申请实施例提供了一种页表管理方法,应用于安全处理器,所述安全处理器与运行至少一虚拟机的主处理器通信,所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述页表管理方法包括:
从主处理器获取虚拟机的缺页地址;其中,所述缺页地址对应于缺页异常,所述缺页异常相关于嵌套页表;
确定所述缺页地址所对应内存的内存属性;
若确定所述缺页地址对应于非安全内存,则通知所述主处理器;根据主处理器所传输的第二消息中的主机页表项的内存存储地址及其对应的非安全内存中的第一实际物理地址,建立第一嵌套页表项并设置所述主机页表项对应于该第一实际物理地址,以用于将所述缺页地址指向所述主机页表项而映射至所述第一实际物理地址;
若确定所述缺页地址对应于安全内存,则在嵌套页表中已有或需建立与所述缺页地址对应的第二嵌套页表项;在所述第二嵌套页表项已有时,安全处理器设置所述第二嵌套页表项以令对应的实际物理内存页可写而避免缺页异常;在所述第二嵌套页表项需建立时,所述安全处理器根据所述主处理器传输的所述缺页地址,建立用于将所述缺页地址映射至安全内存中第二物理地址的第二嵌套页表项。
可选的,所述嵌套页表中的嵌套页表项包括:标志位及物理页基地址;其中,所述标志位的值用于标志所述嵌套页表项对应于非安全内存或安全内存,所述物理页基地址相应地指向对应于非安全内存中实际物理地址的主机页表项、或指向安全内存中实际物理地址。
本申请实施例提供了一种脏页信息获取方法,应用于运行至少一虚拟机的主处理器,所述主处理器与安全处理器通信;所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述脏页信息获取方法包括:
由所运行的虚拟机的虚拟机管理器读取脏页记录,以获取其中记录的各脏页的脏页信息;
通过判断每个脏页的脏页地址是否具有对应的主机页表项,以确定所述脏页地址所对应内存的内存属性;
若是,则确定所述脏页地址对应于非安全内存,所述主处理器设置所述脏页地址对应的主机页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录;
若否,则确定所述脏页地址对应于安全内存,发送所述脏页地址至安全处理器。
本申请实施例提供了一种脏页信息获取方法,应用于安全处理器,所述安全处理器与运行至少一虚拟机的宿主机的主处理器通信;所述安全处理器分配有隔离于主处理器的安全内存,所述安全处理器管理用于虚拟机物理地址与实际物理地址间转换的位于安全内存的嵌套页表;所述脏页信息获取方法包括:
从主处理器接收对应于安全内存的脏页地址;
设置所述脏页地址对应的嵌套页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录。
本申请实施例提供了一种主处理器,通信连接安全处理器,用于运行存储器中的可执行程序代码,以执行所述的页表管理方法或所述的脏页信息获取方法。
本申请实施例提供了一种安全处理器,通信连接主处理器,用于运行存储器中的可执行程序代码以执行所述的页表管理方法或所述的脏页信息获取方法。
本申请实施例提供了一种处理芯片,包括:
所述的主处理器;
所述的安全处理器,与所述主处理器通信连接。
本申请实施例提供了一种计算机设备,包括:
主处理器,运行有虚拟机;
安全处理器,通信连接于所述主处理器;
内存储器,包括:
能被主处理器访问的非安全内存,存储有主机页表;以及,
分配给安全处理器而隔离于主处理器的安全内存;
其中,所述非安全内存中存储有主机页表,所述主机页表包含对应于非安全内存中实际物理地址的主机页表项;
所述安全内存中存储有嵌套页表,所述嵌套页表包含:第一嵌套页表项,用于将虚拟机物理地址指向主机页表项而对应于非安全内存中的实际物理地址;和/或,第二嵌套页表项,用于将虚拟机物理地址映射至安全内存中的实际物理地址。
可选的,所述主处理器及安全处理器实现于一处理芯片中。
可选的,所述主处理器由前述实施例所述的主处理器实现;所述安全处理器由前述实施例所述的安全处理器实现。
本申请实施例提供了一种计算机可读存储介质,其上存储有可执行程序代码,所述可执行程序代码运行时执行所述的页表管理方法、或者所述的脏页信息获取方法。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
主处理器可以通过在主机页表设置其中的主机页表项的只读、可写,即可管理虚拟机非安全内存的脏页,无需向安全处理器请求,有效提高虚拟机性能,特别是虚拟机显示性能,避免卡顿而提升用户体验;在虚拟机在线迁移场景中也可以提升迁移效率。
附图说明
图1A展示一种示例中虚拟机物理地址映射逻辑的原理示意图。
图1B展示图1示例中虚拟机脏页管理机制的流程示意图。
图2A展示一种示例中内存隔离型虚拟机的虚拟机物理地址映射逻辑的原理示意图。
图2B展示图2A示例中内存隔离型虚拟机的脏页管理机制的流程示意图。
图3展示本申请实施例中内存隔离型虚拟机的虚拟机物理地址映射逻辑的原理示意图。
图4展示本申请实施例中改进的嵌套页表项的数据结构示意图。
图5展示本申请实施例中页表管理方法的流程示意图。
图6展示本申请实施例中相应的脏页信息获取方法的流程示意图。
图7展示本申请实施例中处理芯片的架构示意图。
具体实施方式
如图1A所示,展示一种示例中虚拟机物理地址映射逻辑的原理示意图。
如图可见,宿主机10中的中央处理器(CPU)11运行虚拟机管理器(VirtualMachine Monitor,VMM)12,在虚拟机管理器12的上层可运行有虚拟机(VM)13,嵌套页表由宿主机10的中央处理器11使用,中央处理器11中的内存管理单元(MMU)14根据虚拟机物理地址(GPA)15遍历嵌套页表16以映射到内存储器17中实际物理内存页的实际物理地址。在此示例中,所述嵌套页表示例性地展示为对应64位X86架构CPU的操作系统(如Linux)中的四级页表结构,从上到下级分别是页全局目录(Page Global Directory,PGD)、页上层目录(PageUpper Directory,PUD)、页中间层目录(PageMiddleDirectory,PMD)、及页表项(PageTableEntry,PTE)等,其中,每个嵌套页表项PTE对应于内存中的内存页的实际物理地址。需说明的是,此嵌套页表结构仅为举例,在其它实施例中可以加以变化,例如Linux早期的二级、三级页表等,并非以图1A示例为限。
在此说明获取脏页的方式。在操作系统(比如linux)中,CPU通过虚拟机管理器将其所有GPA对应的PTE中的“只读/可写(R/W)”项标记设置为只读,表示对应的虚拟机内存页为只读,则当虚拟机对其虚拟机内存写入数据时,就会产生缺页异常,相应的虚拟机的缺页地址GPA会被标记到脏页位图(Dirty_Bitmap)中;在一些示例中,由于其虚拟机物理内存页读写需使用的是GVA和GPA,故对虚拟机来讲需要获得脏页的GPA地址,故所述标记可以是将缺页地址GPA作为脏页地址存入到脏页位图中,以标记对应的脏页。
请参阅图1B,展示图1示例中虚拟机脏页管理机制的流程示意图。
S101:虚拟机对其虚拟机物理内存写入数据;
S102:在嵌套页表中,查看所写入的GPA相应的页表项中“R/W”(只读/可写)标志位是否只读。
例如,读取该栏位的值,为0表示对应实际物理内存页设置为只读,为1表示设置为可写。
S103:若是,则虚拟机出现缺页异常,继续S104;若否,则返回S101;
即当虚拟机对GPA对应的虚拟物理内存页写入数据时,会通过GPA到HPA地址转换而实际需对实际物理内存中写入数据;若实际物理内存页设置为只读,就会出现嵌套页表的缺页异常。
S104:获取对应缺页异常的缺页地址。
在一些示例中,所述缺页地址实际上即为脏页地址,都可以是虚拟机物理地址,即GPA。
S105:通过脏页地址更新脏页位图。
即将新出现的脏页地址标记在脏页位图中。
S106:设置脏页地址对应的页表项为可写,即令所述只读的实际机物理内存页变为可写;之后返回步骤S101循环运行,以更新脏页位图。
相应的,当CPU运行的虚拟机的虚拟机管理器需要获得脏页信息时,其执行:
S107:虚拟机管理器从所述脏页位图读取脏页信息。
具体的,在Linux中,脏页位图位于Linux的内核空间,VMM可以将脏页位图从内核空间复制到用户空间以进行读取。
S108:虚拟机管理器设置脏页信息相关的每个脏页地址所对应页表项中的“R/W”标志位为只读,以使每个脏页地址对应的实际物理内存页只读。
S109:虚拟机管理器清空脏页位图;之后,返回步骤S107循环运行,以再读取脏页位图获得脏页信息。
上述过程皆由宿主机上的CPU执行。
为防范CPU可能的漏洞被攻击等而导致的安全问题,如图2A所示,展示内存隔离型虚拟机的虚拟机物理地址映射逻辑的原理示意图。
在此示例中,除了CPU21之外,还增加了安全处理器22,所述安全处理器22和CPU21通信连接。在宿主机的内存储器29中,包括:安全内存23和非安全内存24。
其中,所述安全内存23可分配给所述安全处理器22使用,所述安全内存23隔离于CPU21,例如对CPU21不可见等。所述非安全内存24可包括共享内存,所述共享内存指的是虚拟机和宿主机的操作系统都可以访问的内存。
内存隔离型的虚拟机,指的是嵌套页表25存储在安全内存23而只由安全处理器22管理,CPU 21所运行虚拟机管理器26,其上虚拟机27的虚拟机物理地址GPA 28要转换得到HPA,皆需要CPU21向安全处理器22发起请求才可以实现,如此就能提升虚拟机27的安全性。
在一些示例中,所述安全处理器22中的寄存器可以存储嵌套页表的实际物理地址,以用于从安全内存查找所述嵌套页表。示例性地,在所述安全处理器22是基于X86架构的情况下,所述寄存器可以为CR3控制寄存器,为页目录基址寄存器,保存页表的实际物理地址。
嵌套页表25中的各页表项PTE可能对应于安全内存23的HPA,也可能对应于非安全内存24的HPA。虽然CPU实际上对非安全内存是有访问权限的,但是都需要经过安全处理器22,这样就会导致额外的时间、性能开销。
具体来讲,如图2B所示,展示对应图2A的内存隔离型的虚拟机的脏页管理机制的流程示意图。
为方便看清流程中CPU和安全处理器之间的交互,在图中将执行步骤按执行者进行划分。
S201:虚拟机对其虚拟机物理内存写入数据,即需在对应实际物理内存页写入数据。
S202:如果所写入的实际物理内存页为只读,则进入步骤S203产生缺页异常;否则,即为可写,返回步骤S201;
S204:获取对应缺页异常的缺页地址;其中,缺页地址对应于脏页地址,例如缺页地址和脏页地址为相同的GPA等。
S205:根据脏页地址更新脏页位图;
S206:将所述脏页地址的GPA发送安全处理器;
S207:安全处理器将脏页地址对应的页表项设置为可写;
S208:安全处理器回复CPU,CPU收到后返回步骤S201。
相应的,当CPU运行的虚拟机的虚拟机管理器需要获得脏页信息时,其执行:
S209:虚拟机管理器获取脏页位图,从所述脏页位图读取脏页信息;
S210:CPU将脏页信息相关的每个脏页地址发送给安全处理器。
在一些示例中,所述脏页信息可包含每个脏页地址的GPA。
S211:安全处理器设置每个脏页地址所对应页表项中的“R/W”标志位为只读。
其中,S211可使对应的实际物理内存页只读,而被虚拟机写入数据时,能再形成缺页异常而收集脏页地址来更新所述脏页位图。
S212:安全处理器回复CPU;
S213:CPU收到回复后,由虚拟机管理器清空脏页位图;之后,返回步骤S209循环运行,以再读取脏页位图获得脏页信息。
从中可见,在S206和208以及S210和212,CPU和安全处理器均进行了交互,交互的目的是为了让安全处理器进行页表项“R/W”标志位的标记,产生了额外开销。
为解决此额外开销问题,则需要CPU向安全处理器的请求次数;而非安全内存是CPU可以管理的,则需改进上述脏页管理机制,以实现让CPU可以自行设置对应共享内存的实际物理内存页的“只读”、“可写”权限。
如图3所示,展示本申请实施例中内存隔离型虚拟机的虚拟机物理地址映射逻辑的原理示意图。
在图3中,展示宿主机的主处理器31、安全处理器32、及内存储器39。
所述主处理器31运行有虚拟机管理器33、及对应的虚拟机34。在一些示例中,所述主处理器31可为即前述实施例中的CPU。
所述安全处理器32,通信连接于所述主处理器31。
所述内存储器39,包括:能被主处理器31访问的非安全内存35,存储有主机页表36;以及,分配给安全处理器32而隔离于主处理器31的安全内存37。
所述安全内存37中存储有嵌套页表38,所述嵌套页表38包含:第一嵌套页表项(图中表示为PTE1),用于将虚拟机物理地址即GPA指向主机页表项(图中表示为PTE3)而对应于非安全内存35中的实际物理地址;和/或,第二嵌套页表项(图中表示为PTE2),用于将虚拟机物理地址映射至安全内存37中的实际物理地址。
其中,主处理器31能通过主机页表36直接辨别GPA是映射至非安全内存35的情况下,不必经过安全处理器32,就可以得到该GPA对应于非安全内存35中HPA的关系,即如图中箭头虚线箭头A所示;若在主处理器31不能直接辨别GPA是对应于安全内存37或非安全内存35的情况下,可以通过安全处理器32在嵌套页表38查询对应的第一嵌套页表项(如PTE1),如果有,则回到主机页表中第一嵌套页表项所指向的主机页表项(如PTE3),得到GPA到非安全内存35中HPA的映射关系。
通过增加了对应非安全内存35的主机页表36,在进行虚拟机脏页管理时,主处理器31可以直接设置主机页表36中的主机页表项的“R/W”标志位,以对对应于非安全内存35的实际物理地址的GPA相应的实际物理内存页设置只读或可写权限,就可以不必经过安全处理器32,从而减少开销。
在一些示例中,所述主机页表36可以是影子页表(Shadow Page Table,SPT)。关于影子页表的现有用途,对于虚拟机来说,访问实际物理地址HPA需要两级页表转换,即GVA到GPA,GPA到HPA,而影子页表的原用途是能够一步完成从GVA到HPA的转换。
在一些示例中,可以在虚拟机34的GPA在主机页表36中没有对应主机页表项时,当通过安全处理器32判断出GPA对应于非安全内存35时,由主处理器31对应该GPA建立主机页表项,而通过第一嵌套页表项指向所述主机页表项,以构成GPA到对应的非安全内存35的HPA映射关系。
在一些示例中,所述主处理器31中的寄存器可以存储主机页表的实际物理地址,以用于从查找所述主机页表36。示例性地,在所述主处理器是基于X86架构的情况下,所述寄存器可以为CR3控制寄存器,为页目录基址寄存器,保存页表的实际物理地址。
以下结合附图对具体改进的虚拟机脏页管理机制进行详细说明。
由于增加了主机页表,故为利于分辨指向安全内存和非安全内存的嵌套页表项,如图4所示,对页表项PTE的结构进行改进,图中以64bit长度的页表项为示例,图中从右向左表示为bit0~bit63,当然在其它实施例中也可以加以变化,例如32bit长度等,并非以此示例为限。
其中,P即存在(Present)标志,指明表项对地址转换是否有效;R/W即只读/可写标志,0表示只读,1表示可写;U/S即普通用户/超级用户(User/Supervisor)标志;PWT(PageWrite Through),当数据写入缓存Cache时,标志写入内存的时机;PCD(Page CacheDisable)即页缓存禁止标志,标志是否禁止当前页写入缓存而直接写入内存;A即已访问(Accessed)标志,当处理器访问页表项映射的页面时,页表表项的这个标志就会被置为1;D即脏(Dirty)页标志,表示页面已被修改;AVL(Available for OS Use)字段保留专供程序使用;PAT(PT Attribute Index)标志页属性;G即全局页面(Global)标志;NX表示是否不可执行的标志位。
在图4示例中,所述嵌套页表项中增加了关于是否存在主机页表项的标志位。如图所示,所述标志位表示为S,即PTE.S,其取值用于标志所述嵌套页表项对应于非安全内存或安全内存。例如,若PTE.S=1,则表示存在相关的主机页表项,对应GPA映射于非安全内存;若PTE.S=0,则表示不存在相关的主机页表项,对应的GPA映射至安全内存。在具体实施中,现有PTE页表结构中,bit52到bit62均为空闲位,可以从bit52到bit62中任取1位作为新定义的标志位S,例如可选择bit62作为标志位S。
相应的,所述嵌套页表项中还包含物理页基地址(Physical-Page Base Address)项,当PTE.S=1时,所述所述物理页基地址相应地可指向对应于非安全内存中实际物理地址的主机页表项;当PTE.S=0时,所述所述物理页基地址相应地可指向安全内存中的实际物理地址。
可见,通过标志位S的设置,安全处理器可以管理非安全内存中的主机页表项。
在一些示例中,所述主机页表项和图4中不带有S标志位的嵌套页表项的结构可以相同或相似。
在对嵌套页表项改进后,可在MMU中实现相应的GPA到HPA的映射逻辑如图3中所示。
基于图3实施例的原理,通过图5展示本申请实施例中页表管理方法的流程示意图。
在图5中清楚展示主处理器和安全处理器各自所执行的步骤。所述页表管理方法具体包括:
S501:在所述虚拟机运行中产生相关于嵌套页表的缺页异常时,所述主处理器通过判断缺页异常相关的缺页地址是否在主机页表中具有对应的主机页表项,以确定所述缺页地址所对应内存的内存属性。
在具体实施中,当所述嵌套页表中对应的嵌套页表项的“R/W”标志位标记只读,以表示对应的实际物理内存页只读,从而在写入数据时就会产生所述缺页异常,而所述只读的实际物理内存页对应的GPA即为所述缺页地址。
如前所述,主机页表中的主机页表项是对应到非安全内存的,通过步骤S501的判断,可以直接判断出明显对应非安全内存的GPA。
S502:若具有对应的主机页表项,确定所述缺页地址对应于非安全内存,则主处理器设置所述主机页表项以令对应的实际物理内存页可写而避免缺页异常。
在此,主机页表可表示为SMAP,主机页表项可表示为SMAP_PTE;可以理解的是,当GPA在主机页表SMAP中具有主机页表项SMAP_PTE,则可直接判断出该GPA对应于非安全内存,且已建立映射关系,则主处理器可不必通过安全处理器,自行设置对应的主机页表项的“R/W”标志位为可写,从而有效提高共享内存的脏页处理效率。
之后,跳转S509,在脏页记录中设置所述缺页地址对应脏页地址的标记;在所述脏页记录为脏页位图的情况下,即将所述缺页地址对应的脏页地址标记于脏页位图。
S503:若不具有对应的主机页表项,则主处理器发送包含所述缺页地址的第一消息至安全处理器以确定其所对应内存的内存属性。
在一些示例中,所述第一消息还可包含缺页地址对应的内存页大小(page_size)的信息。
S504:安全处理器从主处理器所传输的第一消息中获取虚拟机的所述缺页地址,确定所述缺页地址所对应内存的内存属性。
S505:若安全处理器确定所述缺页地址对应于非安全内存,则通知所述主处理器。
S506:主处理器在从所述安全处理器获知所述缺页地址对应于非安全内存时,向所述安全处理器传输第二消息;其中,所述第二消息包括:对应所述缺页地址分配的主机页表项的内存存储地址及非安全内存中的第一实际物理地址。
在一些示例中,主处理器在获知缺页地址GPA对应非安全内存,则在主机页表SMAP中分配对应的主机页表项SMAP_PTE,以及得到GPA对应要映射的HPA,通过第二消息发送给安全处理器。
在一些示例中,所述第二消息中还可以包括HPA对应的内存页大小的信息。
S507:安全处理器根据主处理器所传输的第二消息中的主机页表项的内存存储地址及其对应的非安全内存中的第一实际物理地址,建立第一嵌套页表项并设置所述主机页表项对应于该实际物理地址,以用于将所述缺页地址指向所述主机页表项而映射至所述第一实际物理地址。
在具体实施中,设置缺页地址GPA在第一嵌套页表项中的Physical-page baseaddress为缺页地址对应的主机页表项SMAP_PTE的实际物理地址,以能指向该主机页表项;并且,可设置第一嵌套页表项的S标志位即PTE.S=1,表示第一嵌套页表项存在指向的主机页表项;并且,由于安全处理器本身也具有对非安全内存的访问权限,故在此处安全处理器也可设置主机页表项的Physical-Page Base Address,即SMAP_PTE.Physical-Page BaseAddress的值为所述第一实际物理地址,从而将主机页表项对应于第一实际物理地址,形成从缺页地址(GPA形式)到经第一嵌套页表项指向主机页表项,再指向第一实际物理地址(HPA地址)的映射关系。
可以理解的是,由于主处理器对主机页表具有管理权限,可以实现无需经过安全处理器的更灵活的应用。例如,在需要实现例如实际物理内存页移动时,主处理器可以直接修改主机页表项的SMAP_PTE.Physical-Page Base Address中指向的实际物理地址。在虚拟机显示、虚拟机在线迁移等场景中皆能应用而提升显示效果、迁移效率等。
S508:安全处理器发送消息通知主处理器;
S509:主处理器在脏页记录中设置所述缺页地址对应脏页地址的标记。
在具体实施中,所述脏页记录即例如为所述脏页位图。
S510:若确定所述缺页地址对应于安全内存,则安全处理器判断嵌套页表中是否已有与所述缺页地址对应的第二嵌套页表项。
若是,则进入步骤S511;若否,则表示需建立第二嵌套页表项,进入步骤S512。
S511:若所述第二嵌套页表项已有,安全处理器设置所述第二嵌套页表项以令对应的实际物理内存页可写而避免缺页异常。
在具体实施中,可将第二嵌套页表项中“R/W”标志位设置成1,表示对应的缺页地址的实际物理内存页可写,从而消除缺页异常。
S512:若所述第二嵌套页表项需建立时,所述安全处理器根据所述主处理器传输的所述缺页地址,建立用于将所述缺页地址映射至安全内存中第二物理地址的第二嵌套页表项。
在具体实施中,缺页地址在嵌套页表中无映射,则安全处理器为缺页地址分配安全内存,并建立第二嵌套页表项,设置第二嵌套页表项中的标志位S即PTE.S=0,表示无指向的主机页表项。
如同S505和S507是安全处理器的一种情况下的处理流程分支,S511和S512也是安全处理器另两种情况下的处理流程分支,之同样通过S508通知主处理器,而由主处理器执行S509进行脏页标记。
可以看到,在图5流程中,进行脏页信息产生的处理过程中,在一些情况下,由于主处理器可设置主机页表项的只读/可写权限,并能起到设置对应的GPA的实际物理内存页只读/可写,而不必经过安全处理器,达到了节省时间、性能开销的目的。
再请查看图6,展示本申请实施例中相应的脏页信息获取方法的流程示意图。
所述脏页信息获取方法具体包括:
S601:由主处理器所运行的虚拟机的虚拟机管理器读取脏页记录,以获取其中记录的各脏页的脏页信息。
在具体实施中,以Linux为例,VMM将脏页位图从操作系统的内核空间复制到用户空间,逐位读取脏页位图中包含的脏页信息,例如各个脏页地址GPA的线性地址;进一步的,可以根据线性地址转换的脏页地址可经映射到实际物理地址,而能访问对应的实际物理内存页。
S602:主处理器通过判断每个脏页的脏页地址是否具有对应的主机页表项,以确定所述脏页地址所对应内存的内存属性。
S603:若是,则确定所述脏页地址对应于非安全内存,所述主处理器设置所述脏页地址对应的主机页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录。之后,可跳转S607。
在具体实施中,结合图5实施例可知,如果脏页地址GPA具有对应的主机页表项,则可直接判断出脏页地址对应于非安全内存。
在此,在读取了脏页记录之后,还需要回到例如图5实施例的方法流程中再更新脏页位图。然而,获取脏页的方式是需要设置GPA对应的实际物理内存页为只读,进而在写入时产生缺页异常才会形成新的脏页,而能更新脏页记录;因此,在此处将所读取脏页信息对应的各个脏页地址相应的主机页表项中“R/W”标志位设为只读,就能令对应的实际物理内存页为只读,这样就能在后续虚拟机运行而对其虚拟机内存写入数据时达到获取脏页的目的。
可以理解的是,在此处主处理器即可对主机页表项进行设置而达到上述目的,无需经过安全处理器,相比于图2B实施例而言明显减少了时间、性能开销。
S604:若否,则确定所述脏页地址对应于安全内存,主处理器发送所述脏页地址至安全处理器。
在具体实施中,结合前述实施例(例如图5实施例)可知,在脏页记录中的脏页地址GPA,都已建立了到相应的HPA的映射关系,无论是经过嵌套页表中的第二嵌套页表项转换映射到安全内存,还是经嵌套页表中的第一嵌套页表项指向主机页表项再映射到对应的HPA。因此,可以推知,当脏页地址有对应的主机页表项时,即可判断出其对应的是非安全内存;或者,当脏页地址没有对应的主机页表项时,即可判断出其对应的是安全内存。
S605:当安全处理器接收到主处理器的脏页地址,也就表示是对应于安全内存的脏页地址,安全处理器设置所述脏页地址对应的嵌套页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录。
在具体实施中,安全处理器可将嵌套页表项(例如前述第二嵌套页表项)中“R/W”标志位设为只读,使得对应安全内存的脏页地址GPA对应的实际物理内存页只读,以在之后图5流程执行中可以出现缺页异常,并产生对应脏页以更新脏页记录。
之后,可以执行:
S606:安全处理器发送通知消息给主处理器;
S607:主处理器运行的VMM清空已读取的脏页位图,以等待执行下一次S601~S607。
从图6实施例可见,主处理器和安全处理器之间交互仅有S604和S606,相比于图2B实施例而言,减少了主处理器和安全处理器之间的交互,降低时间、性能开销。
可以理解的是,图5实施例中的页表管理方法和图6实施例中的脏页获取方法可以交替执行且相互配合,图6方法流程中读取脏页信息并设置实际物理内存页只读,以引起在图5方法流程中对应形成缺页异常,产生脏页来更新脏页信息;图5方法流程中又通过页表管理实现对脏页地址到实际物理地址的映射关系的建立,并且设置对应的实际物理内存页可写以消除缺页异常,以待图6方法流程执行时再产生缺页异常。
需说明的是,图5和图6实施例中展示的方法流程并不限定必须是实际实施的完整流程;例如,在最初时,主处理器和安全处理器可以通过设置嵌套页表项将所有的实际物理内存页都设置成只读,而后再执行图5、图6的方法流程。
本申请实施例中可以提供主处理器,通信连接安全处理器,用于运行存储器(例如非安全内存)中的可执行程序代码,以执行例如图5中页表管理方法或权利要求6所述的脏页信息获取方法中主处理器所执行的各个步骤。
本申请实施例中可以提供安全处理器,通信连接主处理器,用于运行存储器(例如安全内存、非安全内存、安全处理器内的存储器)中的可执行程序代码(例如固件程序),以执行例如图5中页表管理方法或权利要求6所述的脏页信息获取方法中主处理器所执行的各个步骤。
可选的,主处理器和安全处理器可采用相同架构的处理器,例如均可采用例如32位或64位X86架构的处理器;或者,也可采用不同架构,例如主处理器采用32位或64位X86架构的处理器,而安全处理器可采用ARM架构的处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、或现场可编程门阵列(Field Programmable GateArray,FPGA)等。
所述存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(Non-volatile Memory)。
在一些示例中,所述主处理器和安全处理器可以是实现于不同的芯片中,或者也可以集成在一块芯片中。
如图7所示,展示本申请实施例中处理芯片的架构示意图。
所述处理芯片70包括:前述图3、图5、图6实施例中的主处理器71、以及安全处理器72。所述主处理器71通信连接安全处理器72,所述通信连接可以是电性连接。
在一些示例中,所述处理芯片可以是封装而成的片上系统(System On Chip,SoC)芯片,其中还可以根据需求集成例如存储器、接口控制模块等。
与现有技术相比,本申请实施例的技术方案具有以下有益效果:
主处理器可以通过在主机页表设置其中的主机页表项的只读、可写,即可管理虚拟机非安全内存的脏页,无需向安全处理器请求,有效提高虚拟机性能,特别是虚拟机显示性能,避免卡顿而提升用户体验;在虚拟机在线迁移场景中也可以提升迁移效率。
本申请实施例中还可以提供一种计算机设备,所述计算机设备可以例如为服务器、台式机、笔记本电脑等。所述计算机设备的架构可如图3所示,包括:
主处理器,运行有虚拟机;
安全处理器,通信连接于所述主处理器;
内存储器,包括:能被主处理器访问的非安全内存,存储有主机页表;以及,分配给安全处理器而隔离于主处理器的安全内存;在可选示例中,所述内存储器包括例如随机存取存储器(Random Access Memory,RAM);
其中,所述非安全内存中存储有主机页表,所述主机页表包含对应于非安全内存中实际物理地址的主机页表项;
所述安全内存中存储有嵌套页表,所述嵌套页表包含:第一嵌套页表项,用于将虚拟机物理地址指向主机页表项而对应于非安全内存中的实际物理地址;和/或,第二嵌套页表项,用于将虚拟机物理地址映射至安全内存中的实际物理地址。
本申请实施例中还可提供计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序运行时执行前述实施例(例如图5、6实施例)所述页表管理方法、脏页信息获取方法的步骤。
即,本申请实施例(如图5、6实施例)中的方法流程可被实现为可存储在记录介质(诸如CDROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的页表管理方法、脏页信息获取方法。此外,当通用计算机访问用于实现在此示出方法的代码时,代码的执行将通用计算机转换为用于执行在此示出方法的专用计算机。
在本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本申请中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
另外,前述实施例(例如图5、6实施例)中的流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
虽然本申请实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本申请实施例的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种页表管理方法,其特征在于,应用于运行至少一虚拟机的主处理器,所述主处理器与安全处理器通信,所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述页表管理方法包括:
在所述虚拟机运行中产生相关于嵌套页表的缺页异常时,所述主处理器通过判断缺页异常相关的缺页地址是否在主机页表中具有对应的主机页表项,以确定所述缺页地址所对应内存的内存属性;
若具有对应的主机页表项,确定所述缺页地址对应于非安全内存,则主处理器设置所述主机页表项以令对应的实际物理内存页可写而避免缺页异常;
若不具有对应的主机页表项,则主处理器发送包含所述缺页地址的第一消息至安全处理器以确定其所对应内存的内存属性;并且,在从所述安全处理器获知所述缺页地址对应于非安全内存时,向所述安全处理器传输第二消息;其中,所述第二消息包括:对应所述缺页地址分配的主机页表项的内存存储地址及非安全内存中的实际物理地址,以由安全处理器建立嵌套页表项并设置所述主机页表项对应于该实际物理地址,以用于将所述缺页地址指向所述主机页表项而映射至所述实际物理地址;
主处理器在脏页记录中设置所述缺页地址对应脏页地址的标记。
2.根据权利要求1所述页表管理方法,其特征在于,所述嵌套页表中的嵌套页表项包括:标志位及物理页基地址;其中,所述标志位的值用于标志所述嵌套页表项对应于非安全内存或安全内存,所述物理页基地址相应地指向对应于非安全内存中实际物理地址的主机页表项、或指向安全内存中实际物理地址。
3.根据权利要求1所述页表管理方法,其特征在于,所述主机页表为影子页表。
4.一种页表管理方法,其特征在于,应用于安全处理器,所述安全处理器与运行至少一虚拟机的主处理器通信,所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述页表管理方法包括:
从主处理器获取虚拟机的缺页地址;其中,所述缺页地址对应于缺页异常,所述缺页异常相关于嵌套页表;
确定所述缺页地址所对应内存的内存属性;
若确定所述缺页地址对应于非安全内存,则通知所述主处理器;根据主处理器所传输的第二消息中的主机页表项的内存存储地址及其对应的非安全内存中的第一实际物理地址,建立第一嵌套页表项并设置所述主机页表项对应于该第一实际物理地址,以用于将所述缺页地址指向所述主机页表项而映射至所述第一实际物理地址;
若确定所述缺页地址对应于安全内存,则在嵌套页表中已有或需建立与所述缺页地址对应的第二嵌套页表项;在所述第二嵌套页表项已有时,安全处理器设置所述第二嵌套页表项以令对应的实际物理内存页可写而避免缺页异常;在所述第二嵌套页表项需建立时,所述安全处理器根据所述主处理器传输的所述缺页地址,建立用于将所述缺页地址映射至安全内存中第二物理地址的第二嵌套页表项。
5.根据权利要求4所述页表管理方法,其特征在于,所述嵌套页表中的嵌套页表项包括:标志位及物理页基地址;其中,所述标志位的值用于标志所述嵌套页表项对应于非安全内存或安全内存,所述物理页基地址相应地指向对应于非安全内存中实际物理地址的主机页表项、或指向安全内存中实际物理地址。
6.一种脏页信息获取方法,其特征在于,应用于运行至少一虚拟机的主处理器,所述主处理器与安全处理器通信;所述安全处理器分配有隔离于主处理器的安全内存,所述安全内存中存储有用于将虚拟机物理地址映射至实际物理地址的嵌套页表;所述脏页信息获取方法包括:
由所运行的虚拟机的虚拟机管理器读取脏页记录,以获取其中记录的各脏页的脏页信息;
通过判断每个脏页的脏页地址是否具有对应的主机页表项,以确定所述脏页地址所对应内存的内存属性;
若是,则确定所述脏页地址对应于非安全内存,所述主处理器设置所述脏页地址对应的主机页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录;
若否,则确定所述脏页地址对应于安全内存,发送所述脏页地址至安全处理器。
7.一种脏页信息获取方法,其特征在于,应用于安全处理器,所述安全处理器与运行至少一虚拟机的宿主机的主处理器通信;所述安全处理器分配有隔离于主处理器的安全内存,所述安全处理器管理用于虚拟机物理地址与实际物理地址间转换的位于安全内存的嵌套页表;所述脏页信息获取方法包括:
从主处理器接收对应于安全内存的脏页地址;
设置所述脏页地址对应的嵌套页表项以令对应的实际物理内存页只读,以用于产生缺页异常来更新脏页记录。
8.一种主处理器,其特征在于,通信连接安全处理器,用于运行存储器中的可执行程序代码,以执行权利要求1至3中任一项所述的页表管理方法或权利要求6所述的脏页信息获取方法。
9.一种安全处理器,其特征在于,通信连接主处理器,用于运行存储器中的可执行程序代码以执行权利要求4或5所述的页表管理方法,或权利要求7所述的脏页信息获取方法。
10.一种处理芯片,其特征在于,包括:
如权利要求8所述的主处理器;
如权利要求9所述的安全处理器,与所述主处理器通信连接。
11.一种计算机设备,其特征在于,包括:
主处理器,运行有虚拟机;
安全处理器,通信连接于所述主处理器;
内存储器,包括:
能被主处理器访问的非安全内存,存储有主机页表;以及,
分配给安全处理器而隔离于主处理器的安全内存;
其中,所述非安全内存中存储有主机页表,所述主机页表包含对应于非安全内存中实际物理地址的主机页表项;
所述安全内存中存储有嵌套页表,所述嵌套页表包含:第一嵌套页表项,用于将虚拟机物理地址指向主机页表项而对应于非安全内存中的实际物理地址;和/或,第二嵌套页表项,用于将虚拟机物理地址映射至安全内存中的实际物理地址。
12.根据权利要求11所述计算机设备,其特征在于,所述主处理器及安全处理器实现于一处理芯片中。
13.根据权利要求11所述计算机设备,其特征在于,所述主处理器由权利要求8所述的主处理器实现;所述安全处理器由权利要求9所述的安全处理器实现。
14.一种计算机可读存储介质,其上存储有可执行程序代码,其特征在于,所述可执行程序代码运行时执行权利要求1至5中任一项所述的页表管理方法、或者权利要求6或7所述的脏页信息获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131346.7A CN112241310B (zh) | 2020-10-21 | 2020-10-21 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131346.7A CN112241310B (zh) | 2020-10-21 | 2020-10-21 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241310A true CN112241310A (zh) | 2021-01-19 |
CN112241310B CN112241310B (zh) | 2023-01-31 |
Family
ID=74169430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011131346.7A Active CN112241310B (zh) | 2020-10-21 | 2020-10-21 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241310B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342473A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
CN113342711A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
CN113434371A (zh) * | 2021-08-26 | 2021-09-24 | 阿里云计算有限公司 | 内存访问信息的采集方法、计算设备及存储介质 |
CN114201269A (zh) * | 2022-02-18 | 2022-03-18 | 阿里云计算有限公司 | 内存换页方法、系统及存储介质 |
CN115934587A (zh) * | 2023-03-15 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 内存管理单元和内存管理方法 |
WO2024113996A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及非易失性可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706736A (zh) * | 2009-12-22 | 2010-05-12 | 北京大学 | 一种高效的脏页获取方法 |
CN104573565A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种TrustZone上的内存管理方法及装置 |
CN107220189A (zh) * | 2017-03-14 | 2017-09-29 | 晨星半导体股份有限公司 | 内存空间管理及内存访问控制方法及装置 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN108491716A (zh) * | 2018-01-29 | 2018-09-04 | 中国电子科技网络信息安全有限公司 | 一种基于物理页地址分析的虚拟机内存隔离性检测方法 |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN111324910A (zh) * | 2020-03-20 | 2020-06-23 | 山东大学 | 一种采用TrustZone技术实现内存数据库的方法 |
-
2020
- 2020-10-21 CN CN202011131346.7A patent/CN112241310B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706736A (zh) * | 2009-12-22 | 2010-05-12 | 北京大学 | 一种高效的脏页获取方法 |
CN104573565A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 一种TrustZone上的内存管理方法及装置 |
CN107220189A (zh) * | 2017-03-14 | 2017-09-29 | 晨星半导体股份有限公司 | 内存空间管理及内存访问控制方法及装置 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN108491716A (zh) * | 2018-01-29 | 2018-09-04 | 中国电子科技网络信息安全有限公司 | 一种基于物理页地址分析的虚拟机内存隔离性检测方法 |
CN109766164A (zh) * | 2018-11-22 | 2019-05-17 | 海光信息技术有限公司 | 一种访问控制方法、内存管理方法及相关装置 |
CN111324910A (zh) * | 2020-03-20 | 2020-06-23 | 山东大学 | 一种采用TrustZone技术实现内存数据库的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342473A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
CN113342711A (zh) * | 2021-06-28 | 2021-09-03 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
CN113342473B (zh) * | 2021-06-28 | 2024-01-19 | 海光信息技术股份有限公司 | 数据处理方法、安全虚拟机的迁移方法及相关装置、架构 |
CN113342711B (zh) * | 2021-06-28 | 2024-02-09 | 海光信息技术股份有限公司 | 页表更新方法、装置及相关设备 |
CN113434371A (zh) * | 2021-08-26 | 2021-09-24 | 阿里云计算有限公司 | 内存访问信息的采集方法、计算设备及存储介质 |
CN114201269A (zh) * | 2022-02-18 | 2022-03-18 | 阿里云计算有限公司 | 内存换页方法、系统及存储介质 |
WO2023155694A1 (zh) * | 2022-02-18 | 2023-08-24 | 阿里云计算有限公司 | 内存换页方法、系统及存储介质 |
WO2024113996A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 一种对主机io处理的优化方法、装置、设备及非易失性可读存储介质 |
CN115934587A (zh) * | 2023-03-15 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 内存管理单元和内存管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112241310B (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112241310B (zh) | 页表管理、信息获取方法、处理器、芯片、设备及介质 | |
US11157306B2 (en) | Faster access of virtual machine memory backed by a host computing device's virtual memory | |
US5230069A (en) | Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system | |
US9092359B2 (en) | Identification and consolidation of page table entries | |
US10564997B2 (en) | Computing system for securely executing a secure application in a rich execution environment | |
US9218302B2 (en) | Page table management | |
US10169244B2 (en) | Controlling access to pages in a memory in a computing device | |
CN117708002A (zh) | 存储器系统及非易失性存储器的控制方法 | |
TWI614669B (zh) | 遷移異構處理器之間不同大小的分頁 | |
US10255069B2 (en) | Cleared memory indicator | |
US20100312955A1 (en) | Memory system and method of managing the same | |
JP2006252554A (ja) | 仮想マシン環境内でのゲスト物理アドレスの仮想化の方法およびシステム | |
US11467977B2 (en) | Method and apparatus for monitoring memory access behavior of sample process | |
US9928000B2 (en) | Memory mapping for object-based storage devices | |
US7529906B2 (en) | Sharing memory within an application using scalable hardware resources | |
CN112328354A (zh) | 虚拟机热迁移方法、装置、电子设备及计算机存储介质 | |
US9734089B2 (en) | Memory management unit and method for accessing data | |
US10606759B2 (en) | Firmware or hardware component assist for memory mapped I/O | |
US9158701B2 (en) | Process-specific views of large frame pages with variable granularity | |
US9740628B2 (en) | Page table entry consolidation | |
KR20230133126A (ko) | 사용자 가상 주소를 이용한 메모리 액세스 방법 및 이를 이용한 디바이스 | |
KR20230162100A (ko) | 계층형 메모리 관리를 오프로드하기 위한 방법들 및 장치들 | |
CN116346316A (zh) | 密态计算中进程创建期间的进程对象密钥更新 | |
CN115516438A (zh) | 内存管理装置及方法 | |
KR20130032643A (ko) | 비휘발성 메모리에 영구 보존 데이터를 저장할 수 있는 시스템에서의 데이터 관리 방법 |
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 |