CN114840299A - 一种申威架构下的改进嵌套页表内存虚拟化方法与系统 - Google Patents
一种申威架构下的改进嵌套页表内存虚拟化方法与系统 Download PDFInfo
- Publication number
- CN114840299A CN114840299A CN202110144319.1A CN202110144319A CN114840299A CN 114840299 A CN114840299 A CN 114840299A CN 202110144319 A CN202110144319 A CN 202110144319A CN 114840299 A CN114840299 A CN 114840299A
- Authority
- CN
- China
- Prior art keywords
- page table
- nested
- host
- nested page
- page
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims abstract description 16
- 238000013519 translation Methods 0.000 claims description 27
- 230000008901 benefit Effects 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/4555—Para-virtualisation, i.e. guest operating system has to be modified
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种申威架构下的改进嵌套页表内存虚拟化方法与系统。该方法包括:在查询TLB发生TLB未命中时,MMU访问四级客户机进程页表进行页表查询,在每一级的访问中,都需要首先访问NPT MMU进行嵌套页表查询,通过平滑嵌套页表将客户机物理地址转换为宿主机物理地址;在嵌套页表查询出现映射缺失时,CPU切换客户机上下文到宿主机上下文中以进行嵌套页表缺页中断处理。本发明所提出的方案基于申威架构特点尤其是可编程接口的特性,继承了传统嵌套页表模型复杂度低、页表同步开销小的优势并且消除了传统嵌套页表模型因多次页表查询而产生的访存开销;不需要复杂的硬件支持,也不会和影子页表模型一样引入额外的页表同步开销。
Description
技术领域
本发明涉及申威架构虚拟化领域,尤其涉及一种申威架构下的改进嵌套页表内存虚拟化方法与系统。
背景技术
申威家族处理器作为我国具有完全自主知识产权的处理器系列,其发展十分受到国家重视,超级计算机神威太湖之光的巨大成功也奠定了其在国产处理器领域的地位。尤其是安全性、自主可控性要求较高的部门,申威架构服务器备受青睐。第一代申威指令集架构源自Alpha指令集,后经不断完善与发展,已经发展成为独立自主的申威指令集。
随着信息化技术的不断发展,申威处理器需要也应当面向更广阔的云服务系统。虚拟化是云计算服务的主要支撑技术之一,指将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统(虚拟机)。通过虚拟化的硬件(如CPU、内存等),每台虚拟机都对外提供一个独立且完整的计算机执行环境。虚拟化技术分为三个主要方面:CPU虚拟化,内存虚拟化和I/O虚拟化。申威在CPU虚拟化和I/O虚拟化已经有了较为完善的解决方案,但就内存方面,申威虚拟机仍采用固定大小的预留段式内存进行直接映射,并不具有真正意义上的内存虚拟化。
从操作系统的角度讲,它对物理内存有两个基本认识:物理地址从零开始、内存地址空间连续。虚拟机作为一个独立进程运行在宿主机之上,难以满足上述两个基本条件。因此,虚拟化引入了称为虚拟机监控程序(或虚拟机监视器,Virtual Machine Monitor,VMM)的系统软件层,用以控制客户机操作系统对宿主机物理资源的访问。为了满足上述两个基本条件,虚拟机监控程序引入了一个称为客户机物理地址空间的新地址空间。在一般计算机中,CPU访问内存分为两个步骤:虚实地址转换和根据物理地址访问内存数据。其中,虚实地址转换是指将程序操作的虚拟地址转化成实际的物理地址。在这一过程中,地址转换开销主要分为三部分:旁路转换缓存(translation lookaside buffer,TLB)查询、页表查询以及缺页处理。
在非虚拟化环境下,地址转换只需要一维,即虚拟地址到物理地址的转换。作为最为复杂的虚拟化技术,内存虚拟化需要完成二维地址转换,即客户机虚拟地址(guestvirtual address,gVA)到客户机物理地址(guest physical address,gPA)再到宿主机物理地址(host physical address,hPA)的转换。内存虚拟化的任务就是如何高效完成上述二维地址转换。
主流架构上现有的内存虚拟化解决方案主要包括两类:以影子页表为代表的软件内存虚拟化和以嵌套页表(Nested Page Table,NPT)为代表的硬件辅助虚拟化。较早问世的影子页表模型属于软件内存虚拟化,不需要硬件支持。该模型的主要思想是采用一个页表(即影子页表)来直接保存客户机虚拟地址到宿主机物理地址的映射。在虚拟机进行地址转换过程中,内存管理单元(memory manage unit,MMU)直接加载当前进程的影子页表,加速两级地址转换。由于客户机修改自己的页表在宿主机的VMM中不可见,影子页表依赖写保护的机制同步客户机页表和影子页表,这种频繁触发写保护错误的模式造成了严重的虚拟机退出(VM Exit)开销。因此,当前主流服务器上基本采用嵌套页表模型的内存虚拟化解决方案。
嵌套页表保存了虚拟机物理地址到宿主机物理地址的映射关系。嵌套页表模型的核心思想是MMU加载虚拟机进程页表,在页表查询的过程中,从客户机进程页表中获取虚拟机物理地址,然后立即访问嵌套页表,转换成宿主机物理地址,再进内存访问。嵌套页表模型采用硬件辅助的方式实现了地址转换过程中的两级页表代换,消除了影子页表因写保护同步产生的开销。然而,由于4级页表结构的普遍应用,嵌套页表模型可能导致一次地址转换中存在远超非虚拟化环境下的多次内存访问,因此必须使用必要的硬件进行辅助加速,特别是使用嵌套旁路转换缓存(nested transaction lookaside buffer,NTLB)直接缓存客户机物理地址到宿主机物理地址的映射来跳过4级嵌套页表的查询。
相较于x86架构,申威架构缺乏嵌套页表所需的硬件辅助,因此难以实现传统意义上的嵌套页表模型。然而,申威架构拥有一些独特的虚拟化优势。申威架构具有独特的特权程序可编程接口(hardware mode code,HMcode),这一软件接口运行在硬件模式之上,拥有最高的系统权限可以直接访问寄存器、内存以及其他设备如TLB等。申威架构下的宿主机和客户机可以具有正交的三级特权,即用户模式、内核模式和一种具有最高特权的模式,称为硬件模式。这类似于Intel VMX操作模式。HMcode即是内核模式和硬件之间的可编程接口,在硬件模式运行以执行特权指令。HMcode接口对用户模式甚至内核模式都是透明的,并且可以使用物理地址直接访问寄存器和内存。操作系统可以通过系统调用陷入硬件模式。通过这一特性,申威架构拥有极高的底层软件灵活性,可以为虚拟化提供丰富多样的支持。
发明内容
本发明的目的是在申威服务器上,充分结合申威架构优势,实现基于改进嵌套页表的内存虚拟化系统。具体来讲,本发明参考其他架构上的硬件辅助嵌套页表内存虚拟化模型,充分利用申威软件可编程接口HMcode等特性,实现了申威1621服务器上的首个平滑嵌套页表内存虚拟化解决方案。本发明的核心思想是采用一级的平滑嵌套页表结构,在虚拟机发生TLB缺失后进入页表查询阶段,通过平滑的软件嵌套页表辅助虚拟机完成虚拟地址到宿主机物理地址的转换,最终完成四级页表的访问,为虚拟化系统的访存提供高性能的软件结构。
本发明采用的技术方案如下:
一种申威架构下的改进嵌套页表内存虚拟化方法,包括以下步骤:
当系统发生TLB缺失时,陷入硬件模式的TLB缺失处理入口进行处理;
MMU加载客户机进程页表准备进行页表查询;客户机进程页表保存了客户机虚拟地址到客户机物理地址的映射关系,每一级页表的页表项都保存了一个客户机物理页帧号和对应的权限位信息。客户机中的进程页表基地址是客户机物理地址;
MMU访问NPT MMU(嵌套页表内存管理单元),向NPT MMU发出地址转换请求,即请求将进程页表基地址(客户机物理地址)转换成宿主机物理地址;
NPT MMU收到地址转换请求,访问平滑嵌套页表进行一级地址转换,即将客户机物理地址转换到宿主机物理地址,并返回进程页表基址的宿主机物理地址,放入页表基址寄存器。
进一步地,MMU进行四级进程页表查询。每一次查询都需要访问一次NPT MMU将客户机物理地址转换到宿主机物理地址,用以进行下一级页表或者最终物理地址的寻址;
查询结束后,MMU将客户机虚拟地址到宿主机物理地址的映射用软件填充TLB,至此从客户机虚拟地址到宿主机物理地址的一次地址转换完成。
进一步地,当NPT MMU发现嵌套页表项对应有效位为0时,触发一次嵌套页表缺页,CPU发生一次虚拟机退出(VM Exit),进行上下文切换,进入VMM进行嵌套页表缺页处理。嵌套页表缺页处理结束后,VMM调用虚拟机进入(VM Entry)接口切换上下文,重新陷入虚拟机,CPU再次执行产生TLB缺失的指令,重新开始地址转换。
进一步地,所述嵌套页表缺页处理流程如下:
VMM将客户机物理页帧号转换为宿主机虚拟页号,这一过程由于虚拟机的物理地址空间和虚拟机管理进程的虚拟地址空间都是连续的,因此可以通过“基地址+偏移”的方式直接转换;
查询宿主机进程页表,通过宿主机MMU将宿主机虚拟地址转换为物理地址,并提取宿主机物理页帧号;
VMM将客户机物理页帧号到宿主机物理页帧号的映射写入嵌套页表,处理完成。
一种采用上述方法的申威架构下的改进嵌套页表内存虚拟化系统,包括:
嵌套页表查询模块,用于当查询TLB发生未命中时,利用申威架构可编程接口HMcode的特性,MMU访问NPT MMU获取宿主机页表基地址,并在每一级客户机页表查询时由NPT MMU完成从客户机物理地址到宿主机物理地址的转换;
嵌套页表缺页处理模块,用于当嵌套页表查询中出现映射缺失时,CPU切换客户机上下文到宿主机上下文中以进行嵌套页表缺页中断处理。
一种基于申威架构的虚拟机,所述虚拟机采用本发明的上述方法进行内存虚拟化。
本发明所提出的一种申威架构下的改进嵌套页表内存虚拟化方法与系统基于申威架构特点,尤其是可编程接口的特性。一方面本发明以嵌套页表为基础,继承了传统嵌套页表模型复杂度低、页表同步开销小的优势并且消除了传统嵌套页表模型因多次页表查询而产生的访存开销;另一方面本发明不需要复杂的硬件支持,也不会和影子页表模型一样引入额外的页表同步开销。
附图说明
图1是申威架构平滑嵌套页表内存虚拟化框架图,其中miss表示缺失,即未命中。
图2是采用平滑嵌套页表的申威虚拟机SPEC CPU2006执行时间测试结果图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
本发明所述的“可编程接口”是指架构在最高特权级的硬件模式下运行的特权程序接口,是一种可以用物理地址直接访问全局地址空间和所有寄存器的固件层程序,英文名HMcode。
本发明所述的“嵌套页表”是指虚拟化环境下用于缓存客户机物理地址到宿主机物理地址映射关系的页表。这是用来加速两层地址转换效率的重要方法。
本发明所述的“平滑”是指采用一级嵌套页表代替传统的4级嵌套页表。在申威架构下,页的大小为8KB,假设以64位存储宿主机物理页帧号,则一台物理内存为x GB的虚拟机所需嵌套页表大小为x MB,是可以接受的。采用一级“平滑”页表可以将每次访问嵌套页表的遍历次数从4降至1,一次TLB缺失产生的总页表访问次数从最高24次降低到9次,大大减少页表查询开销。
KVM是Linux内核中的一个开源、高效的虚拟化解决方案模块。它的组成包括一个提供核心虚拟化基础架构的可加载内核模块,和一个用于体系结构仿真和中断处理的处理器专用模块。本发明在申威1621服务器上实现了基于KVM的平滑嵌套页表内存虚拟化模型。图1显示了申威架构上平滑嵌套页表内存虚拟化框架。其中,I-TLB表示指令TLB,D-TLB表示数据TLB。本发明中,平滑嵌套页表主要保证的工作是高效完成客户机物理地址到宿主机物理地址的地址转换,提供虚拟化环境下的地址转换解决方案。
1.地址转换流程:
内存虚拟化的任务就是完成客户机虚拟地址到宿主机物理地址的转换。
1)TLB查询。CPU访问TLB,根据客户机虚拟地址查询其映射,如果TLB命中,那么地址转换完成;否则产生TLB缺失,陷入TLB缺失处理入口(图1中的TLB MISS接口)进行处理,进入页表查询。
2)页表查询。本发明设计了一个位于VMM中的嵌套页表结构,并在MMU同层中设计了与之配套使用管理的NPT MMU。利用申威架构可编程接口HMcode的灵活性,在客户机页表查询之前,MMU访问NPT MMU尝试将进程页表基地址(客户机物理地址)转换为宿主机物理地址。本发明采用1级平滑嵌套页表结构,NPT MMU访问嵌套页表进行客户机物理地址到宿主机物理地址的转换。如果嵌套页表查询成功,那么返回从对应物理地址得到的下一级客户机虚拟页号再次查询,或最终的宿主机物理地址进行访存操作。其中任意一级页表遍历查询时,客户机页表缺失会导致客户机系统缺页中断,由客户机自行处理;嵌套页表映射缺失则会导致嵌套页表缺页中断。
3)嵌套页表缺页中断处理。一旦页表查询中出现嵌套页表的映射缺失,CPU将会切换客户机上下文到宿主机上下文中以处理缺页中断。这个切换过程又称为虚拟机退出。传入缺页中断处理程序的参数中包括客户机物理地址和错误信息等。缺页中断处理主要包括3部分:客户机物理页帧号转换,宿主机进程页表查询以及嵌套页表构建与填充。
a)CPU首先根据传入的客户机物理页帧号调用函数接口将其转化为对应的宿主机虚拟页号。由于虚拟机物理地址空间和VMM虚拟地址空间都是连续的,因此两者之间通过“基地址+偏移”的方式直接转换。
b)得到宿主机虚拟页号后,查询宿主机进程页表,将宿主机虚拟地址转换为宿主机物理地址。如果宿主机页表查询中产生缺页,则由宿主机MMU自行完成缺页处理。
c)根据上述两步查询,系统获取了客户机物理地址到宿主机物理地址的映射。系统根据嵌套页表结构,填充对应的页表项,至此缺页中断处理结束。
本实施例中,当NPT MMU发现嵌套页表项对应有效位为0时,触发一次嵌套页表缺页,CPU发生一次虚拟机退出(VM Exit),由图1所示的NPT缺页处理模块进行上下文切换,进入VMM进行嵌套页表缺页处理。嵌套页表缺页处理结束后,VMM调用虚拟机进入(VM Entry)接口切换上下文,重新陷入虚拟机,CPU再次执行产生TLB缺失的指令,重新开始地址转换。图1中的NPT初始化模块用于进行嵌套页表的初始化。
2.实验测评:
为了验证本发明的高效性,标准性能评估公司(Standard PerformanceEvaluation Corporation)推出的测试工具SPEC CPU 2006。SPEC CPU 2006是行业标准化的计算机系统性能测试基准套件,重点测试系统的处理器、内存子系统和编译器,包括SPECint基准和SPECfp基准。SPEC CPU 2006测试程序具有多个测试子程序和测试集,不同的测试程序具有不同的访存特征,例如429.mcf具有显著的局部性不友好特性,该程序会相较于其他程序具有更高的TLB缺失率;不同测试集具有不同的工作集大小,本文采用最大工作集(ref集)进行测试,保证测试结果能够更全面反应虚拟化性能。
图2是采用平滑嵌套页表的申威虚拟机SPEC CPU2006执行时间测试结果。实验结果表明具有内存虚拟化的申威虚拟机整体性能良好,SPEC CPU2006全集平均性能开销仅为4.00%。嵌套页表的主要优点是消除了影子页表模型页表同步的开销。这一优点展现在具有频繁修改页表特性的测试程序(如403.gcc)。403.gcc程序执行开销仅为2.40%。为了进行对比,我们在x86架构Intel(R)Xeon(R)Silver 4216服务器进行了相同的测试。影子页表模型作为内存虚拟化解决方案时,403.gcc程序执行开销7.34%。
实验结果表明,本发明的平滑嵌套页表模型在大多数应用程序上表现良好,诸如400.perlbench,等18个程序虚拟化开销均低于3%,特别地,401.zip,435.gromacs等程序的虚拟化开销低于1%。面对429.mcf等局部性较差的程序虚拟化开销较大,这受限于嵌套模型本身的特性以及申威架构硬件上的不足。
基于同一发明构思,本发明的另一实施例提供一种采用上述方法的申威架构下的改进嵌套页表内存虚拟化系统,其包括:
嵌套页表查询模块,用于当查询TLB发生TLB未命中时,MMU访问客户机进程页表与嵌套页表进行二维页表查询,其中通过平滑嵌套页表将客户机物理地址转换为宿主机物理地址;
嵌套页表缺页处理模块,用于当嵌套页表查询中出现映射缺失时,CPU切换客户机上下文到宿主机上下文中以进行缺页中断处理。
基于同一发明构思,本发明的另一实施例提供一种基于申威架构的虚拟机,所述虚拟机采用本发明的上述方法进行内存虚拟化。
以上公开的本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例和附图所公开的内容,本发明的保护范围以权利要求书界定的范围为准。
Claims (10)
1.一种申威架构下的改进嵌套页表内存虚拟化方法,其特征在于,包括以下步骤:
在查询TLB发生TLB未命中时,MMU访问客户机进程页表与嵌套页表进行二维页表查询,其中通过平滑嵌套页表将客户机物理地址转换为宿主机物理地址;
在嵌套页表查询出现映射缺失时,CPU切换客户机上下文到宿主机上下文中以进行嵌套页表缺页中断处理。
2.根据权利要求1所述的方法,其特征在于,MMU进行四级进程页表查询,每一次查询都访问一次NPT MMU将客户机物理地址转换到宿主机物理地址,用以进行下一级页表或者最终物理地址的寻址。
3.根据权利要求2所述的方法,其特征在于,嵌套页表查询结束后,MMU将客户机虚拟地址到宿主机物理地址的映射用软件填充TLB。
4.根据权利要求1所述的方法,其特征在于,当NPT MMU发现嵌套页表项对应有效位为0时,触发一次嵌套页表缺页,CPU发生一次虚拟机退出,进行上下文切换,进入VMM进行嵌套页表缺页中断处理。
5.根据权利要求4所述的方法,其特征在于,嵌套页表缺页中断处理结束后,VMM调用虚拟机进入接口切换上下文,重新陷入虚拟机,CPU再次执行产生TLB缺失的指令,重新开始地址转换。
6.根据权利要求1所述的方法,其特征在于,所述嵌套页表缺页中断处理,包括:
将客户机物理页帧号转换为宿主机虚拟页号;
利用宿主机虚拟页号,通过查询宿主机进程页表,将宿主机虚拟地址转换为宿主机物理地址;
将客户机物理地址到宿主机物理地址的映射写入嵌套页表。
7.根据权利要求1所述的方法,其特征在于,所述将客户机物理页帧号转换为宿主机虚拟页号,是通过“基地址+偏移”的方式直接进行转换。
8.根据权利要求1所述的方法,其特征在于,所述平滑嵌套页表是一级嵌套页表。
9.一种采用权利要求1~8中任一权利要求所述方法的申威架构下的改进嵌套页表内存虚拟化系统,其特征在于,包括:
嵌套页表查询模块,用于在查询TLB发生TLB未命中时,MMU访问客户机进程页表与嵌套页表进行二维页表查询,其中通过平滑嵌套页表将客户机物理地址转换为宿主机物理地址;
嵌套页表缺页处理模块,用于在嵌套页表查询出现映射缺失时,CPU切换客户机上下文到宿主机上下文中以进行嵌套页表缺页中断处理。
10.一种基于申威架构的虚拟机,其特征在于,所述虚拟机采用权利要求1~8中任一权利要求所述的方法进行内存虚拟化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110144319.1A CN114840299B (zh) | 2021-02-02 | 2021-02-02 | 一种申威架构下的改进嵌套页表内存虚拟化方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110144319.1A CN114840299B (zh) | 2021-02-02 | 2021-02-02 | 一种申威架构下的改进嵌套页表内存虚拟化方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840299A true CN114840299A (zh) | 2022-08-02 |
CN114840299B CN114840299B (zh) | 2024-08-06 |
Family
ID=82562761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110144319.1A Active CN114840299B (zh) | 2021-02-02 | 2021-02-02 | 一种申威架构下的改进嵌套页表内存虚拟化方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840299B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995733A (zh) * | 2014-05-27 | 2014-08-20 | 西安交通大学 | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
US10447728B1 (en) * | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
CN112099904A (zh) * | 2020-08-25 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器 |
-
2021
- 2021-02-02 CN CN202110144319.1A patent/CN114840299B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995733A (zh) * | 2014-05-27 | 2014-08-20 | 西安交通大学 | 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法 |
US10447728B1 (en) * | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN112099904A (zh) * | 2020-08-25 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的嵌套页表管理方法、装置、处理器芯片及服务器 |
Non-Patent Citations (2)
Title |
---|
JEONGSEOB AHN等: "Revisiting Hardware-Assisted PageWalks for Virtualized Systems", 《ACM》, 9 June 2012 (2012-06-09) * |
沙赛等: "申威架构下的软件平滑嵌套页表", 《计算机研究与发展》, 26 August 2021 (2021-08-26) * |
Also Published As
Publication number | Publication date |
---|---|
CN114840299B (zh) | 2024-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8661181B2 (en) | Memory protection unit in a virtual processing environment | |
US8688953B2 (en) | Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities | |
US7783838B1 (en) | Maintaining coherency of derived data in a computer system | |
US9335943B2 (en) | Method and apparatus for fine grain memory protection | |
US9304915B2 (en) | Virtualization system using hardware assistance for page table coherence | |
US9104594B2 (en) | Operational efficiency of virtual TLBs | |
EP0067344B1 (en) | Data processing system with guest architectural support | |
US8060722B2 (en) | Hardware assistance for shadow page table coherence with guest page mappings | |
US20060224815A1 (en) | Virtualizing memory management unit resources | |
US20060224816A1 (en) | Method and apparatus for managing virtual addresses | |
US20140108701A1 (en) | Memory protection unit in a virtual processing environment | |
CN112363824B (zh) | 一种申威架构下的内存虚拟化方法与系统 | |
EP2955634B1 (en) | Paravirtualization-based interface for memory management in virtual machines | |
US20140379956A1 (en) | Managing a translation lookaside buffer | |
US20160092371A1 (en) | Method and Apparatus For Deterministic Translation Lookaside Buffer (TLB) Miss Handling | |
US10255196B2 (en) | Method and apparatus for sub-page write protection | |
BR112012032854B1 (pt) | método e equipamento para controle de acesso a adaptadores num ambiente computacional | |
US10642751B2 (en) | Hardware-assisted guest address space scanning in a virtualized computing system | |
US20200409585A1 (en) | System and method to track physical address accesses by a cpu or device | |
US20160077981A1 (en) | Method and Apparatus for Efficient User-Level IO in a Virtualized System | |
US20220214909A1 (en) | Hypervisor-managed linear address translation and memory integrity | |
CN114840299B (zh) | 一种申威架构下的改进嵌套页表内存虚拟化方法与系统 | |
US20240020241A1 (en) | Apparatus and method for address pre-translation to enhance direct memory access by hardware subsystems | |
Tai et al. | Comparisons of memory virtualization solutions for architectures with software-managed tlbs |
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 |