CN112817756B - 计算机可读取存储介质、内存管理单元的虚拟化方法和装置 - Google Patents
计算机可读取存储介质、内存管理单元的虚拟化方法和装置 Download PDFInfo
- Publication number
- CN112817756B CN112817756B CN202110094661.5A CN202110094661A CN112817756B CN 112817756 B CN112817756 B CN 112817756B CN 202110094661 A CN202110094661 A CN 202110094661A CN 112817756 B CN112817756 B CN 112817756B
- Authority
- CN
- China
- Prior art keywords
- page table
- request
- management unit
- memory management
- virtual
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000013519 translation Methods 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 10
- 239000012634 fragment Substances 0.000 abstract description 6
- 238000007726 management method Methods 0.000 description 19
- 238000002955 isolation Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000010409 thin film Substances 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
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
本发明涉及一种计算机可读取存储介质、内存管理单元的虚拟化方法和装置。该方法包括:在初始化时,将内存管理单元中的多个页表上下文块中的每一个分配给多个虚拟机或者多个虚拟设备中的一个,使得每个虚拟机或者每个虚拟设备只能使用所属的一个或者多个页表上下文块来进行地址转换。其中,每个页表上下文块关联到页表中不重叠的页表项局部,用于将虚拟地址映射到内存中的物理页面编号。本发明通过如上所述的内存管理单元的分片虚拟化,实现了物理上的资源划分,保证多个虚拟机能同时独占内存管理单元的物理资源,不需要等待其他虚拟机的执行,提高了虚拟机的执行效率,并行性和性能。
Description
技术领域
本发明涉及计算机虚拟化,尤指一种计算机可读取存储介质、内存管理单元的虚拟化方法和装置。
背景技术
随着现在物理设备的能力越来越强,虚拟化应用的案例也随之越来越普遍,为当前云计算机平台提供了丰富的资源类型和基础设施。在虚拟化技术中,通常会将一个物理上的资源(例如,中央处理单元或者其他外设设备)虚拟成多个虚拟的物理组件,以便提高物理设备的利用率以及在云端上的设备部署密度。
为了将内存有效率地提供给多个虚拟机使用,一些实施方式会以分时复用内存管理单元(Memory Management Unit,MMU)的方式,让每个虚拟设备按照时间片来独占MMU资源。例如,虚拟机用户1(VM1)在时间点t1开始占用MMU,执行T个单位时间后退出MMU的独占模式;虚拟机用户2(VM2)在时间点t2开始占用MMU,执行T个单位时间后退出MMU的独占模式;以此类推。通过交替独占MMU,让虚拟机用户以为自己拥有专用的物理MMU。然而,其缺点是多个虚拟实例不能同时访问MMU,MMU只能被串行使用,降低***的效能。
在另一些实施方式中,MMU由虚拟机监控器(VMM,virtual machine monitor)控制:用户客户机的页表都必须由虚拟机监控器来建立和修改,这需要主机侧(host)的完全参与。然而,其缺点是虚拟实例的任何页表的建立和修改都需要进入到主机侧,并由虚拟机监视器来进行控制管理,这样每次修改都需要从客户机模式切换到主机模式,然后修改完成之后再从主机模式切换回客户机模式,开销不小。
为了解决如上所述的问题,本发明针对MMU提出了一种分片虚拟化的设计方案,用于将一个物理内存管理单元虚拟成多个虚拟的内存管理单元,然后能供多个虚拟机用户使用。因此,本发明提出一种计算机可读取存储介质、内存管理单元的虚拟化方法和装置。
发明内容
本发明涉及一种内存管理单元的虚拟化方法,由处理器于加载并执行计算机代码时实施,包括:在初始化时,将内存管理单元中的多个页表上下文块中的每一个分配给多个虚拟机或者多个虚拟设备中的一个,使得每个虚拟机或者每个虚拟设备只能使用所属的一个或者多个页表上下文块来进行地址转换。
本发明还涉及一种计算机可读取存储介质,用于存储能够被处理器执行的计算机代码,并且当计算机代码被处理器执行时实现如上所述的内存管理单元的虚拟化方法。
本发明还涉及一种内存管理单元的虚拟化装置,包括:处理器,耦接内存管理单元,在初始化时,将内存管理单元中的多个页表上下文块中的每一个分配给多个虚拟机或者多个虚拟设备中的一个,使得每个虚拟机或者每个虚拟设备只能使用所属的一个或者多个页表上下文块来进行地址转换。
其中,每个页表上下文块关联到页表中不重叠的局部,用于将虚拟地址映射到内存中的物理页面编号。
上述实施例的优点之一,通过以上所述的内存管理单元的分片虚拟化,实现了物理上的资源划分,保证多个虚拟机能同时独占内存管理单元的物理资源,不需要等待其他虚拟机的执行,提高了虚拟机的执行效率,并行性和性能。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用于提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的电子装置的框图。
图2为依据本发明实施例的实现内存管理单元的分片虚拟化的框图。
图3为依据本发明实施例的页表上下文块切分模块的执行示例。
图4为依据本发明实施例的请求源统一编码模块的执行示例。
图5为依据本发明实施例的页表上下文块隔离模块的执行示例。
图6为依据本发明实施例的软件和硬件模块间的信息交换示例。
图7为依据本发明实施例的内存管理单元的虚拟化方法流程图。
其中,附图中符号的简单说明如下:
10:电子装置;110:处理器;120:内存管理单元;121~124:页表上下文块;130:内存;132:内存芯片;134:内存控制器;140:直接内存访问传输单元;150:视频单元;160:显示单元;170:存储单元;190:总线架构;210、220、230、240:虚拟机;212、222、232、242:操作***;250:页表上下文块切分模块;260:请求源统一编码模块;270:页表上下文块隔离模块;S710~S760:方法步骤。
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用于修饰权利要求中的组件,并非用于表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用于区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。用于描述组件之间关系的其他词语也可以类似方式解读,例如“介于”相对于“直接介于”,或者“邻接”相对于“直接邻接”等等。
参考图1。电子装置10可实施在大型主机、工作站、个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品之中。电子装置10可包含处理器110、内存130、直接内存访问传输单元140、视频单元150、显示单元160和存储单元170,并且通过总线架构190相互连接,例如快速外设组件互联(Peripheral ComponentInterconnect Express,PCI-E),以传递数据、地址、控制信号等。处理器110可为中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、通用图形处理器(General-Purpose computing on Graphics Processing Unit,GPGPU)等,用于加载并执行相应于不同虚拟机的计算机代码来执行各式各样的操作,例如,整数、浮点数的加法和乘法计算、比较操作、布尔(Boolean)运算、比特位移、代数函数(如平面插值、三角函数、指数函数、对数函数)等。处理器110在执行的过程中,可为不同虚拟机从内存130读取数据,和写入数据到内存130,包含变量、数据表、各式各样的数字文件等。内存130可实施为动态随机存取存储器(Dynamic Random Access Memory,DRAM),包含内存芯片132和内存控制器134。内存控制器134可根据其他组件发送的命令和地址,将数据写入内存芯片132中的特定物理位置,或者从内存芯片132中的特定物理位置读取数据。
直接内存访问传输单元140可依据命令通过总线架构190在内存130和其他组件间迁移数据,例如,将内存130中的视频串(video stream)搬到视频单元150以进行解码,或者将内存130中的画面搬到显示单元160,用于将这些画面显示在显示屏上等等。视频单元150可提供视频编码器和/或视频解码器,用于将原始的视频序列(video sequence)编码成为视频串,和/或将编码后的视频串解码成为一连串的重构画面。显示单元160可驱动显示器,例如薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display,TFT-LCDDisplay)、有机发光二极管显示器(Organic Light-Emitting Diode,OLED Display)等,用于显示画面。存储单元170可提供大量的非易失性的存储空间,通常是数百个千兆字节(Gigabytes,GB),甚至是数个兆兆字节(Terabytes,TB),用于存储大量的数据,例如高分辨率图片、影片等。
电子装置10还包含内存管理单元(Memory Management Unit,MMU)120,是一种将应用程序的虚拟地址转成物理内存上的物理地址的转换单元,也就是一种地址翻译控制模块,可包含寄存器,用于存储页表(page table)。页表包含多个页表项(page-tableentry),用于将虚拟地址映射到内存130中的物理页面编号。MMU 120还包含多个页表上下文块(page-table context bank),每个页表上下文块关联到页表中不重叠的页表项局部。每个页表上下文块只能分配给一个虚拟机或者一个虚拟设备,而每个虚拟机可分配到一个或者更多的页表上下文块而形成虚拟页表上下文块(virtual page-table contextbank)。虚拟页表上下文块的功能可使用硬件、软件、或者以上两者实现。例如,每个虚拟页表上下文块可以寄存器组(register set)实现,用于存储不重叠的局部页表项。举例来说,当电子装置10中运行4个虚拟机时,MMU 120包含虚拟页表上下文块121至124,并且每个虚拟机只能使用相应的虚拟页表上下文块中的页表项来进行地址翻译。虽然图1所示的MMU120置于处理器110之外,所属技术领域人员可改变设计将MMU 120置于处理器110之内。此外,虽然图1所示的虚拟页表上下文块121至124置于MMU 120之内,所属技术领域人员可改变设计将虚拟页表上下文块121至124置于MMU 120之外,本发明并不因此受限制。
参考图2。举例来说,电子装置10上实现四个虚拟机210至240。虚拟机是通过软件模拟的计算机***,具有完整硬件功能,运行在一个与其他虚拟机完全隔离的环境中。不同的虚拟机可运行不同的操作***,例如,虚拟机210的操作***212为Linux、虚拟机220的操作***222为红帽(Redhat)、虚拟机230的操作***232为Ubuntu、虚拟机240的操作***242为Fedora,并且不同的虚拟机之间相互物理性的隔离,也就是说,一个虚拟机中的数据、数据表、变量和执行结果等信息,不能够被任何一个其他的虚拟机访问。一个虚拟机可提供相应于多种物理组件的虚拟设备的功能,例如,数据计算、地址翻译、视频处理、音频处理、组件间的数据搬移、画面显示、数据存储等。针对每个内存访问请求,一个虚拟机的操作***只能通过所属的虚拟页表上下文块进行地址翻译,接着从内存130的物理页面编号读取数据,或者写入数据到内存130的物理页面编号。例如,操作***212只能通过虚拟页表上下文块121进行地址翻译;操作***222只能通过虚拟页表上下文块122进行地址翻译;以此类推。虽然图1和图2的示例描述了针对不同虚拟机进行页表上下文块的分片虚拟化,但是所属技术领域人员也可以将页表上下文块的分片虚拟化应用到不同虚拟设备或者不同虚拟设备中的不同功能模块的层次,本发明并不因此受到局限。
为了达成分片虚拟化的设计,本发明实施例提出页表上下文块切分模块250、请求源统一编码模块260和页表上下文块隔离模块270,包含可被处理110加载并执行的计算机代码,用于完成如下所述的功能。其技术细节说明如下:
在电子装置开机而进行初始化操作时,页表上下文块切分模块250可将MMU 120中的页表上下文块按照虚拟机或者虚拟设备的个数进行物理上的等分或者不等分划分,生成虚拟机个数的虚拟页面上下文块。页表上下文块切分模块250可为每个虚拟机或者虚拟设备分配一个或者多个专属的页面上下文块,使得此虚拟机中执行的操作只能通过配置的虚拟页面上下文来进行地址转换并据以访问内存130。在一些实施例中,页表上下文块切分模块250可公平地分配页面上下文块给不同的虚拟机或者虚拟设备,让每个虚拟机或者虚拟设备配置的虚拟页面上下文块中包含相同数目的页面上下文块。在另一些实施例中,页表上下文块切分模块250可根据***的需要动态地分配不同数目的页面上下文块给不同的虚拟机或者虚拟设备,让每个虚拟机或者虚拟设备配置的虚拟页面上下文块中包含不同数目的页面上下文块,提高资源分配的弹性。参考图3,例如,页表上下文块切分模块250将页表上下文块121、122、123、124分别配置给虚拟机210、220、230、240。页表上下文块切分模块250可将如上所述的分配信息存储在内存130或者存储单元170中的指定位置,供请求源统一编码模块260和页表上下文块隔离模块270参考。在这里需要注意的是,经配置后,虚拟机210、220、230或240只能看见自己所属的页表上下文块所关联的页表项,而不能看见属于其他虚拟机的页表上下文块中的内容。举例来说,虚拟机210能够看见页表上下文块121所关联的页表项,但是页表上下文块122、123和124对虚拟机210来说是不可视的,使得页表上下文块122、123和124所关联的页表项对虚拟机210来说也是不可视的。需要注意的是,虽然图3中显示每个虚拟机中包含一个虚拟页表上下文块,但这只是表示一个虚拟机能够看见其所属的页表上下文块的内容,并且能够通过其所属的页表上下文块进行地址翻译,并不是用于表示特定的物理设置。
参考图4,每个虚拟机中执行的程序、服务或操作都需要请求物理组件(如处理器110、直接内存访问传输单元140、视频单元150、显示单元160、存储单元170等)完成特定工作,而这些物理组件在运作时可能需要访问内存130。请求源统一编码模块260将不同虚拟机中不同物理单元在运行时所发出的MMU 120的访问请求Req进行统一处理,依据请求源信息生成唯一的编码号。请求源统一编码模块260可依据***的需要定义编码号的长度,以及编码号中不同位段(bit segment)的定义。以15位的长度为例:在一些实施例中,由于每个虚拟机中可执行不同的进程来使用各种物理组件完成任务,编码号可包含:4比特的虚拟机编号,用于指出特定虚拟机;8比特的进程编号,用于指出此虚拟机中执行的特定进程;和3比特的物理组件编号,用于指出此进程执行时需要的物理组件。在另一些实施例中,如果对于每个物理组件类型,每个虚拟机都可以分到一定的物理组件个数,则编码号可包含:5比特的虚拟机编号,用于指出特定虚拟机;和10比特的物理组件编号,用于指出此虚拟机运行时需要的物理组件。此外,请求源统一编码模块260还根据生成的唯一的编码号获取相应的一个或者多个页表上下文块Ctxt_bank,然后将获取的页表上下文块Ctxt_bank连同MMU120的访问请求Req传送到页表上下文块隔离模块270以进行后续的判断。在另一些实施例中,这些物理组件在运作时可同时将MMU 120的访问请求Req发送到请求源统一编码模块260和页表上下文块隔离模块270,而不需要通过请求源统一编码模块260转传MMU 120的访问请求Req给页表上下文块隔离模块270。
参考图5。页表上下文块隔离模块270用于保证虚拟机之间在使用页表上下文块时的隔离性,确保每个虚拟机只能访问自己所属的页表上下文块。当接收到任何虚拟机发出的MMU 120的访问请求时,页表上下文块隔离模块270检查请求访问的页表上下文块是否属于分配给该虚拟机的。例如,该请求可携带欲访问的虚拟地址,页表上下文块隔离模块270检查该请求中的虚拟地址是否存在于或者关联于从请求源统一编码模块260接受到的页表上下文块。如果不是,则页表上下文块隔离模块270认为这是非法访问,从而拒绝该虚拟机访问内存130。如果是,则页表上下文块隔离模块270认为这是合法访问,允许该虚拟机访问内存130。
搭配参考如图6所示的软件和硬件模块间的信息交换示例,和如图7所示的内存管理单元的虚拟化方法。此方法由处理器110加载并执行模块250至270的计算机代码时实施,包含以下步骤:
步骤S710:电子装置10初始化时,页表上下文块切分模块250将MMU 120中多个页表上下文块中的每一个配给一个虚拟机或者虚拟设备,让每个虚拟机或者虚拟设备具有使用一个或者多个页表上下文块的权利,形成一个虚拟页表上下文块。例如,页表上下文块切分模块250将虚拟页表上下文块121分配给虚拟机210,将虚拟页表上下文块122分配给虚拟机220。
电子装置10初始化完成后,此方法于电子装置10实际运行时反复执行一个循环(步骤S720至S760),用于处理每个从不同虚拟机发送的访问MMU 120的请求。
步骤S720:请求源统一编码模块260接受到从虚拟机、虚拟设备或者虚拟设备中的功能模块(如各种引擎等)发送的访问MMU 120的请求Req,请求Req中可包含请求类型、虚拟地址等的信息。
步骤S730:请求源统一编码模块260根据发出请求Req的物理组件的请求源的信息生成编码号并获取相应的一个或者多个页表上下文块Ctxt_bank或者其索引Ctxt_bank_idx,并且将获取的页表上下文块Ctxt_bank或者其索引Ctxt_bank_idx传送到页表上下文块隔离模块270。请求源的信息例如但不限于包含用户编号、虚拟机编号、进程编号和物理组件编号,以及编码号例如但不限于是唯一的编码号(Unique ID,UID)。
步骤S740:页表上下文块隔离模270块依据接受到的页表上下文块Ctxt_bank或者页表上下文块的索引Ctxt_bank_idx和请求Req中携带的信息判断该请求Req是否允许。如果是,则代表这是合法访问,流程继续进行步骤S760的处理。否则,代表这是非法访问,流程继续进行步骤S750的处理。于步骤S740,如果页表上下文块隔离模270接受到的是页表上下文块的索引Ctxt_bank_idx,则还需要根据此索引从MMU 120获取指定的页表上下文块Ctxt_bank。
步骤S750:页表上下文块隔离模块270拒绝该请求Req。
步骤S760:页表上下文块隔离模块270将该请求Req发送给MMU 120,从而使得MMU120通过搜索该虚拟机、该虚拟设备或者该虚拟设备中的该功能模块所属的虚拟页表上下文块所关联的页表项,用于获取相应于虚拟地址的物理页面编号。接着,发出请求的物理组件或者MMU 120可请求内存控制器134从内存芯片132的物理地址读取数据,或者写入数据到内存芯片132的物理地址。
上述实施例的优点之一,通过以上所述MMU 120的分片虚拟化,实现了物理上的资源划分,保证多个虚拟机能同时独占MMU 120的物理资源,不需要等待其他虚拟机的执行,提高了虚拟机的执行效率,并行性和性能。
上述实施例的另一个优点是虚拟机在客户机模式就能直接编辑内存130的页表,不需要虚拟机监视器或类似软硬件组件的参与,减少了整体环境的复杂度,便于***的实现,同时也减少了对主机***的依赖,从而虚拟机用户的性能也得到了相应的提高。
上述实施例的另一个优点是减少了主机***的参与,从而使主机***有更多资源去处理其他事务,提高了整个***的性能。
本发明所述的方法中的全部或部分步骤可以由计算机程序实现,例如应用程序、驱动程序、操作***等任意组合。此外,也可实现于如上所示的其他类型程序。所属技术领域中的技术人员可将本发明实施例的方法撰写成计算机代码,为求简明不再加以描述。依据本发明实施例方法实施的计算机程序可存储于适当的计算机可读取存储介质,例如DVD、CD-ROM、U盘、硬盘,也可置于可通过网络(例如,互联网,或其他适当介质)存取的网络服务器。
虽然图1、图2中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,以达成更佳的技术效果。此外,虽然图7的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤之间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或并行地执行更多步骤,本发明也不应因此而局限。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (13)
1.一种内存管理单元的虚拟化方法,由处理器于加载并执行计算机代码时实施,包括:
在初始化时,将内存管理单元中的多个页表上下文块中的每一个仅分配给多个虚拟机或者多个虚拟设备中的一个,并且配置每个所述虚拟机或者每个所述虚拟设备只能看见和使用所属的一个或者多个所述页表上下文块来进行地址转换,
其中,每个所述页表上下文块关联到页表中不重叠的页表项局部,用于将虚拟地址映射到内存中的物理页面编号。
2.如权利要求1所述的内存管理单元的虚拟化方法,其特征在于,多个所述页表上下文块对多个所述虚拟机或者多个所述虚拟设备的划分为物理上的等分或者不等分划分。
3.如权利要求1所述的内存管理单元的虚拟化方法,其特征在于,包括:
将多个所述页表上下文块的分配信息存储于所述内存或者存储单元中的指定位置。
4.如权利要求1所述的内存管理单元的虚拟化方法,其特征在于,包括:
在初始化完成后,接受到访问所述内存管理单元的请求,所述请求中包含欲访问的虚拟地址的信息;
根据发出所述请求的请求源的信息获取多个所述页表上下文块中相应的一个或者多个;
依据获取的一个或者多个所述页表上下文块和所述请求中携带的信息判断所述请求是否允许;
当所述请求允许时,将所述请求发送给所述内存管理单元,使得所述内存管理单元搜索关联于获取的一个或者多个所述页表上下文块的页表项,用于获取相应于所述虚拟地址的所述物理页面编号;以及
当所述请求不允许时,拒绝所述请求。
5.如权利要求4所述的内存管理单元的虚拟化方法,其特征在于,所述请求源的信息包含虚拟机编号、进程编号和物理组件编号。
6.如权利要求4所述的内存管理单元的虚拟化方法,其特征在于,包括:
检查所述请求中的所述虚拟地址是否存在于或者关联于获取的一个或者多个所述页表上下文块;
如果是,则代表所述请求是个合法访问;以及
如果不是,则代表所述请求是个非法访问。
7.一种计算机可读取存储介质,用于存储能够被处理器执行的计算机代码,其特征在于,所述计算机代码被所述处理器执行时实现如权利要求1至权利要求6中任一项所述的内存管理单元的虚拟化方法。
8.一种内存管理单元的虚拟化装置,其特征在于,包括:
处理器,耦接内存管理单元,在初始化时,将所述内存管理单元中的多个页表上下文块中的每一个分配给多个虚拟机或者多个虚拟设备中的一个,使得每个所述虚拟机或者每个所述虚拟设备只能使用所属的一个或者多个所述页表上下文块来进行地址转换,
其中,每个所述页表上下文块关联到页表中不重叠的页表项局部,用于将虚拟地址映射到内存中的物理页面编号。
9.如权利要求8所述的内存管理单元的虚拟化装置,其特征在于,多个所述页表上下文块对多个所述虚拟机或者多个所述虚拟设备的划分为物理上的等分或者不等分划分。
10.如权利要求8所述的内存管理单元的虚拟化装置,其特征在于,所述处理器将多个所述页表上下文块的分配信息存储于所述内存或者存储单元中的指定位置。
11.如权利要求8所述的内存管理单元的虚拟化装置,其特征在于,所述处理器在初始化完成后,接受到访问所述内存管理单元的请求,所述请求中包含欲访问的虚拟地址的信息;根据发出所述请求的请求源的信息获取多个所述页表上下文块中相应的一个或者多个;依据获取的一个或者多个所述页表上下文块和所述请求中携带的信息判断所述请求是否允许;当所述请求允许时,将所述请求发送给所述内存管理单元,使得所述内存管理单元搜索关联于获取的一个或者多个所述页表上下文块的页表项,用于获取相应于所述虚拟地址的所述物理页面编号;以及当所述请求不允许时,拒绝所述请求。
12.如权利要求11所述的内存管理单元的虚拟化装置,其特征在于,所述请求源的信息包含虚拟机编号、进程编号和物理组件编号。
13.如权利要求11所述的内存管理单元的虚拟化装置,其特征在于,所述处理器检查所述请求中的所述虚拟地址是否存在于或者关联于获取的一个或者多个所述页表上下文块;如果是,则代表所述请求是个合法访问;以及如果不是,则代表所述请求是个非法访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110094661.5A CN112817756B (zh) | 2021-01-25 | 2021-01-25 | 计算机可读取存储介质、内存管理单元的虚拟化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110094661.5A CN112817756B (zh) | 2021-01-25 | 2021-01-25 | 计算机可读取存储介质、内存管理单元的虚拟化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817756A CN112817756A (zh) | 2021-05-18 |
CN112817756B true CN112817756B (zh) | 2022-05-27 |
Family
ID=75859118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110094661.5A Active CN112817756B (zh) | 2021-01-25 | 2021-01-25 | 计算机可读取存储介质、内存管理单元的虚拟化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817756B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116194A (zh) * | 2021-09-03 | 2022-03-01 | 济南外部指针科技有限公司 | 一种内存的分配方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN104063281A (zh) * | 2013-03-21 | 2014-09-24 | 华为技术有限公司 | 一种调控虚拟机物理内存的方法和装置 |
US9153211B1 (en) * | 2007-12-03 | 2015-10-06 | Nvidia Corporation | Method and system for tracking accesses to virtual addresses in graphics contexts |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107193759A (zh) * | 2017-04-18 | 2017-09-22 | 上海交通大学 | 设备内存管理单元的虚拟化方法 |
WO2017185864A1 (zh) * | 2016-04-25 | 2017-11-02 | 中兴通讯股份有限公司 | 一种表项替换方法、装置及终端 |
CN112099903A (zh) * | 2020-08-18 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
-
2021
- 2021-01-25 CN CN202110094661.5A patent/CN112817756B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9153211B1 (en) * | 2007-12-03 | 2015-10-06 | Nvidia Corporation | Method and system for tracking accesses to virtual addresses in graphics contexts |
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN104063281A (zh) * | 2013-03-21 | 2014-09-24 | 华为技术有限公司 | 一种调控虚拟机物理内存的方法和装置 |
WO2017185864A1 (zh) * | 2016-04-25 | 2017-11-02 | 中兴通讯股份有限公司 | 一种表项替换方法、装置及终端 |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107193759A (zh) * | 2017-04-18 | 2017-09-22 | 上海交通大学 | 设备内存管理单元的虚拟化方法 |
CN112099903A (zh) * | 2020-08-18 | 2020-12-18 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN112817756A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10248468B2 (en) | Using hypervisor for PCI device memory mapping | |
US7757034B1 (en) | Expansion of virtualized physical memory of virtual machine | |
US9563458B2 (en) | Offloading and parallelizing translation table operations | |
JP4143616B2 (ja) | ホールをもつメモリアドレスをサポートするための方法及びコンピュータプログラム | |
CN109074316B (zh) | 页面错误解决方案 | |
US11132290B2 (en) | Locality domain-based memory pools for virtualized computing environment | |
US20110138147A1 (en) | Dynamic reallocation of physical memory responsive to virtual machine events | |
US11119942B2 (en) | Facilitating access to memory locality domain information | |
US20120239850A1 (en) | Method for creating virtual machine, a virtual machine monitor, and a virtual machine system | |
US10061701B2 (en) | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility | |
US20060069878A1 (en) | System and method for virtualization of processor resources | |
US10209889B2 (en) | Invalidation of shared memory in a virtual environment | |
JP2014235501A (ja) | ストレージ装置の制御方法、ストレージ装置及び情報処理装置 | |
US10691590B2 (en) | Affinity domain-based garbage collection | |
CN112817756B (zh) | 计算机可读取存储介质、内存管理单元的虚拟化方法和装置 | |
US20140304703A1 (en) | System and method for expediting virtual i/o server (vios) boot time in a virtual computing environment | |
US20220382672A1 (en) | Paging in thin-provisioned disaggregated memory | |
US10176115B2 (en) | Shared memory in a virtual environment | |
US10228859B2 (en) | Efficiency in active memory sharing | |
US10223284B2 (en) | Flexible I/O DMA address allocation in virtualized systems | |
US11481255B2 (en) | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator | |
US20210326253A1 (en) | Computer memory management in computing devices | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
US11914527B2 (en) | Providing a dynamic random-access memory cache as second type memory per application process | |
CN116755843B (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 | ||
CP03 | Change of name, title or address |
Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |