CN117667306A - 内存分配方法、装置、处理器系统和计算机可读存储介质 - Google Patents
内存分配方法、装置、处理器系统和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117667306A CN117667306A CN202311641518.9A CN202311641518A CN117667306A CN 117667306 A CN117667306 A CN 117667306A CN 202311641518 A CN202311641518 A CN 202311641518A CN 117667306 A CN117667306 A CN 117667306A
- Authority
- CN
- China
- Prior art keywords
- memory
- dynamic
- static
- space
- application request
- 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.)
- Pending
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请提供一种内存分配方法、装置、处理器系统和计算机可读存储介质,所述方法包括:在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;所述静态内存申请请求包括所述VF设备在初始化阶段需要的内存资源大小;在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间;所述动态内存申请请求包括所述VF设备在运行阶段需要增加的内存资源大小。通过上述方式,改善当前VF设备存在内存资源浪费的问题。
Description
技术领域
本申请涉及芯片领域,具体而言,涉及一种内存分配方法、装置、处理器系统和计算机可读存储介质。
背景技术
单根输入/输出虚拟化(Single Root I/O Virtualization,SR-IOV)技术一种IO虚拟化标准规范,为虚拟机提供独立的内存空间,中断,DMA(Direct Memory Access,直接存储器存取)数据流。在SR-IOV虚拟化方案中,将一个快速外设组件互连(PeripheralComponent Interconnect Express,PCIe)设备虚拟成多个VF设备,每个VF设备都有独立的设备标识ID,将VF设备分别透传给不同的虚拟机,做到数据通路,控制通路的隔离。虚拟机中操作系统可以通过VF设备直接访问硬件相关的资源,相比软件虚拟机化方案提升了性能,同时减少了硬件需求。
在现有的SR-IOV虚拟化方案中,在创建VF设备时,为VF设备分配固定的内存资源。在VF设备的整个生命周期内,VF设备的内存资源不会改变。然而,由于虚拟机在不同时刻的计算任务量不同,对VF设备内存资源大小的需求也不一样,采用上述固定分配内存资源的方式会导致内存资源无法充分利用,从而造成内存资源浪费的问题。
发明内容
本申请实施例的目的在于提供一种内存分配方法、装置、处理器系统和计算机可读存储介质,用以改善当前VF设备存在内存资源浪费的问题。
第一方面,本申请提供一种内存分配方法,包括:在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;所述静态内存申请请求包括所述VF设备在初始化阶段需要的内存资源大小;在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间;所述动态内存申请请求包括所述VF设备在运行阶段需要增加的内存资源大小。
在本申请实施例中,在VF设备的初始化阶段,为VF设备分配VF设备在初始化时需要的内存资源(即第一内存空间);在VF设备的运行阶段,接收到表征VF设备需要增加内存资源的动态内存申请请求后,再次为VF设备分配第二内存空间,以使VF设备有足够的内存资源进行正常工作。相较于在VF设备整个生命周期中仅进行一次内存资源分配,分配较多的内存资源以保证VF设备的正常工作,通过上述内存分配方法,根据VF设备对内存资源的需求灵活多次为VF设备进行设备内存分配,从而减少内存资源浪费。
在可选的实施方式中,在所述根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间之前,所述方法还包括:将所述设备内存划分为静态内存区域和动态内存区域;相应地,所述根据静态内存申请请求从设备内存区域中为所述VF设备分配第一内存空间,包括:根据静态内存申请请求从所述静态内存区域中为所述VF设备分配第一内存空间;相应地,所述根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间,包括:根据动态内存申请请求从所述动态内存区域中为所述VF设备分配第二内存空间。
在本申请实施例中,将设备内存划分为静态内存区域和动态内存区域,在分配设备内存时,从静态内存区域中为VF设备分配第一内存空间,从动态内存区域中为VF设备分配第二内存空间,从而方便对内存资源进行管理,还可以实现设备内存的资源隔离。
在可选的实施方式中,处理器中设置有静态内存区域寄存器和动态内存区域寄存器,所述将所述设备内存划分为静态内存区域和动态内存区域,包括:将所述静态内存区域在所述设备内存中的位置信息存储在所述静态内存区域寄存器中;将所述动态内存区域在所述设备内存中的位置信息存储在所述动态内存区域寄存器中。
在可选的实施方式中,处理器中设置有多个静态内存寄存器,每个所述静态内存寄存器对应一个VF设备,所述根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间,包括:根据所述静态内存申请请求,确定所述第一内存空间在设备内存中的位置信息;将所述位置信息保存在所述VF设备对应的静态内存寄存器中。
在可选的实施方式中,所述根据所述静态内存申请请求,确定所述第一内存空间在内存中的位置信息,包括:判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在初始化阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第一内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第一内存空间在设备内存中的基地址和大小。
在可选的实施方式中,处理器中设置有多个动态内存寄存器,所述根据动态内存申请请求从设备内存中为所述VF设备分配第二内存空间,包括:根据所述动态内存申请请求,确定所述第二内存空间在设备内存中的位置信息;从所述多个动态内存寄存器中选择一个动态内存寄存器作为所述VF设备的动态内存寄存器;将所述位置信息保存在所述VF设备对应的动态内存寄存器中。
在可选的实施方式中,所述根据所述动态内存申请请求,确定所述第一内存空间在内存中的位置信息,包括:判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在运行阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第二内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第二内存空间在设备内存中的基地址和大小。
在可选的实施方式中,在所述根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间之后,所述方法还包括:接收所述VF设备发送的内存释放请求;根据所述内存释放请求释放分配给所述VF设备的第二内存空间。
在本申请实施例中,VF设备执行完计算任务后,将VF设备申请的第二内存空间及时释放,一方面可以避免一个VF设备中的第二内存空间对应的内存资源出现闲置,从而造成内存资源浪费的问题。另一方面可以使得其他VF设备在出现内存资源不够时,可以从设备内存中为其他VF设备分配内存资源,提高内存资源的利用率。
在可选的实施方式中,所述内存分配方法应用于虚拟化管理模块,所述虚拟化管理模块根据单根输入/输出虚拟化协议创建VF设备,并对所述VF设备进行设备内存分配。
第二方面,本申请提供一种内存分配装置,包括:第一分配模块,用于在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;所述静态内存申请请求包括所述VF设备在初始化阶段需要的内存资源大小;第二分配模块,用于在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间;所述动态内存申请请求包括所述VF设备在运行阶段需要增加的内存资源大小。
在可选的实施方式中,所述内存分配装置还包括内存划分模块,用于将所述设备内存划分为静态内存区域和动态内存区域;相应地,所述第一分配模块用于根据静态内存申请请求从所述静态内存区域中为所述VF设备分配第一内存空间;相应地,所述第二分配模块用于根据动态内存申请请求从所述动态内存区域中为所述VF设备分配第二内存空间。
在可选的实施方式中,处理器中设置有静态内存区域寄存器和动态内存区域寄存器,所述内存划分模块具体用于将所述静态内存区域在所述设备内存中的位置信息存储在所述静态内存区域寄存器中;将所述动态内存区域在所述设备内存中的位置信息存储在所述动态内存区域寄存器中。
在可选的实施方式中,处理器中设置有多个静态内存寄存器,每个所述静态内存寄存器对应一个VF设备,所述第一分配模块具体用于根据所述静态内存申请请求,确定所述第一内存空间在设备内存中的位置信息;将所述位置信息保存在所述VF设备对应的静态内存寄存器中。
在可选的实施方式中,所述第一分配模块具体用于判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在初始化阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第一内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第一内存空间在设备内存中的基地址和大小。
在可选的实施方式中,处理器中设置有多个动态内存寄存器,所述第二分配模块具体用于根据所述动态内存申请请求,确定所述第二内存空间在设备内存中的位置信息;从所述多个动态内存寄存器中选择一个动态内存寄存器作为所述VF设备的动态内存寄存器;将所述位置信息保存在所述VF设备对应的动态内存寄存器中。
在可选的实施方式中,所述第二分配模块具体用于判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在运行阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第二内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第二内存空间在设备内存中的基地址和大小。
在可选的实施方式中,所述第二分配模块还用于接收所述VF设备发送的内存释放请求;根据所述内存释放请求释放分配给所述VF设备的第二内存空间。
第三方面,本申请提供一种处理器系统,包括:设备内存;多个静态内存寄存器,每个所述静态内存寄存器与一个VF设备对应,所述静态内存寄存器用于存储其对应的VF设备所分配到的第一内存空间在所述设备内存中的位置信息;多个动态内存寄存器,用于存储VF设备所分配到的第二内存空间在所述设备内存中的位置信息。
在可选的实施方式中,所述内存包括静态内存区域和动态内存区域,所述静态内存区域用于为VF设备提供第一内存空间,所述动态内存区域用于为VF设备提供第二内存空间。
在可选的实施方式中,所述处理器系统还包括:静态内存区域寄存器,用于存储所述静态内存区域在所述设备内存中的位置信息;动态内存区域寄存器,用于存储所述动态内存区域在所述设备内存中的位置信息。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如前述实施方式中任一项所述的内存分配方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种内存分配方法的流程图;
图2为本申请实施例提供的一种内存分配方法的应用场景示意图;
图3为本申请实施例提供的一种内存的结构示意图;
图4为本申请实施例提供的一种分配第一内存空间的流程图;
图5为本申请实施例提供的一种分配第二内存空间的流程图;
图6为本申请实施例提供的一种内存分配装置的结构框图;
图7为本申请实施例提供的一种处理器系统的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了方便理解本申请,对本申请涉及的专业名词进行说明。
SR-IOV:单根输入/输出虚拟化,英文全称Single Root I/O Virtualization,一种硬件加速的虚拟化技术,允许多个虚拟机同时访问物理设备,从而提高虚拟机的性能和可靠性。
PF设备:物理功能设备,英文全称Physical Function。一个包含SR-IOV功能的物理PCIe设备,用于管理SR-IOV功能。可通过PF设备完成对VF设备的创建,销毁等。
VF设备:虚拟功能设备,英文全称Virtual Functions。一种跟PF设备相关联的轻量级PCIe设备,由PF设备进行创建,每个VF设备都可以作为单独的设备透传给虚拟机使用。一个或者多个VF设备共享一个PF设备,其驱动装在虚拟机上,当VF设备分配给虚拟机以后,虚拟机就能像使用普通PCIe设备一样初始化和配置VF设备。
GPGPU:通用图形处理器,英文全称General-Purpose Graphics ProcessingUnit,在GPGPU的架构设计中,去掉了GPU中的图形处理的硬件设计,保留了非图形计算的相关功能,主要是为CPU提供非图形方面的计算,应用于科学计算,AI训练,推理任务等通用计算类型。
Hypervisor:一种虚拟机管理器,运行在物理硬件和操作系统之间的中间层软件,允许多个操作系统和应用共享一套基础物理硬件。
鉴于当前VF设备存在内存资源浪费的问题,究其原因,是因为现有的SR-IOV虚拟化方案中,在创建VF设备时,为VF设备分配固定的内存资源。若在创建VF设备时为其分配较小的内存资源,当VF设备对应的虚拟机中的计算任务量较大时,VF设备中的内存资源不足以完成计算任务,从而导致计算任务无法执行。因此,为了使得计算任务能正常执行,在创建VF设备时通常会为其分配较大的内存资源。然而,由于VF设备对应的虚拟机中的计算任务量在不同时间段存在差异,当计算任务量较小时,VF设备中存在较多的空间内存资源,从而造成内存资源浪费。
为了解决上述问题,本申请实施例提供一种内存分配方法,下面结合图1,对本申请实施例提供的内存分配方法进行说明。
S1:在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为VF设备分配第一内存空间。
S2:在VF设备的运行阶段,根据动态内存申请请求从设备内存中为VF设备分配第二内存空间。
本申请实施例提供的内存分配方法可以应用于在通用图像处理器GPGPU、图像处理器GPU等处理器进行虚拟化的场景中,对创建的VF设备进行内存资源管理。在对GPGPU或GPU进行内存分配时,分配的内存资源为显存。本申请实施例提供的内存分配方法可以由虚拟化管理模块执行,虚拟化管理模块可以为Hypervisor或VMM(Virtual Machine Monitor,虚拟机管理器)。在进行虚拟化时,启动运行在设备的主机HOST端的虚拟化管理模块,虚拟化管理模块根据SR-IOV协议通过PF设备创建VF设备,并对VF设备进行状态监控、资源划分、调度管理等。
以下结合图2,对本申请提供的内存分配方法的应用场景进行介绍,以方便理解。
如图2所示,在主机HOST端操作系统(Operating System,OS)内核空间中,虚拟化管理模块Hypervisor通过PF设备创建多个VF设备,即图2中的VF0设备、VF1设备、VFn设备等。Hypervisor将PF设备中的设备内存通过本申请提供的内存分配方法为各个VF设备设备内存。每个VF设备作为单独的设备透传给虚拟机使用。举例来说,VF0设备透传给虚拟机VM-0,VFn设备透传给虚拟机VM-N。VF设备的驱动程序(即图2中的VF驱动)安装在虚拟机的OS内核空间中,当VF设备分配给虚拟机以后,虚拟机通过VF驱动初始化和配置VF设备。用户程序运行在虚拟机的OS用户空间中,用户程序可以调用分配给该虚拟机对应的VF设备的设备内存。
在VF设备初始化阶段,VF设备向虚拟化管理模块发送静态内存申请请求,静态内存申请请求包括VF设备在初始化阶段需要的内存资源大小。虚拟化管理模块根据静态内存请求从设备内存中为VF设备分配第一内存空间。第一内存空间主要用于满足VF设备基本运算的需求。为一个VF设备分配第一内存空间后,在该VF设备的整个生命周期中,其对应的第一内存空间不会被释放。
在VF设备的运行阶段,VF设备向虚拟化管理模块发送动态内存申请请求,动态内存申请请求包括VF设备在运行阶段需要增加的内存资源大小。VF设备的运行阶段是指VF设备经过初始化阶段,将VF设备成功创建后,与VF设备关联的虚拟机根据计算任务向VF设备请求内存资源的阶段。当VF设备的当前空闲内存资源小于计算任务需要的内存资源时,VF设备会根据需要增加的内存资源大小生成动态内存申请请求,并发送给虚拟化管理模块,虚拟化管理模块根据动态内存请求从设备内存中为VF设备分配第二内存空间,以使VF设备有足够的内存资源进行正常工作。
VF设备在运行阶段,根据计算任务对设备内存的需求,可以生成多个动态内存申请请求。虚拟化管理模块根据多个动态内存申请请求分配给该VF设备的所有内存空间统称为第二内存空间。
在本申请实施例中,在VF设备的初始化阶段,为VF设备分配VF设备在初始化时需要的内存资源(即第一内存空间);在VF设备的运行阶段,接收到表征VF设备需要增加内存资源的动态内存申请请求后,再次为VF设备分配第二内存空间,以使VF设备有足够的内存资源进行正常工作。相较于在VF设备整个生命周期中仅进行一次内存资源分配,分配较多的内存资源以保证VF设备的正常工作,通过上述内存分配方法,根据VF设备对内存资源的需求灵活多次为VF设备进行内存分配,从而减少内存资源浪费。
为方便理解本申请实施例提供的内存分配方法,以下以虚拟化管理模块为Hypervisor为例,对本申请实施例提供的内存方法进行详细说明。
进一步地,作为一种可选的实施方式,在上述步骤S1之前,本申请实施例提供的内存分配方法还包括:将设备内存划分为静态内存区域和动态内存区域。相应地,上述步骤S1可以包括以下内容:根据静态内存申请请求从静态内存区域中为VF设备分配第一内存空间;上述步骤S2可以包括以下内容:根据动态内存申请请求从动态内存区域中为VF设备分配第二内存空间。
为了方便对内存进行管理,HOST端上的Hypervisor启动后,将设备内存区域划分为静态内存区域和动态内存区域。设备内存的具体划分方式有多种。
例如,根据用户输入的设备内存划分比例,按照划分比例将设备内存划分为静态内存区域和动态内存区域。
又例如,根据VF设备的数量和业务需求,将设备内存区域划分为静态内存区域和动态内存区域。当VF设备的数量较多,且各个VF设备的常态业务需求较大(常态业务需求指VF设备在大部分时间段的业务需求),则静态内存区域越大;当VF设备的数量较少,且各个VF设备的业务常态业务需求较小,则静态内存区域越小。
上述设备内存的划分方式仅为本申请实施例提供的示例,本申请实施例对设备内存的划分方式不做具体限定。
将设备内存划分为静态内存区域和动态内存区域后,Hypervisor接收VF设备发送的静态内存申请请求,根据静态内存申请请求从静态内存区域中为VF设备分配第一内存空间;Hypervisor接收VF设备发送的动态内存申请请求,根据动态内存申请请求从动态内存区域中为VF设备分配第二内存空间。
通过上述方式,将设备内存划分为静态内存区域和动态内存区域,在分配设备内存时,从静态内存区域中为VF设备分配第一内存空间,从动态内存区域中为VF设备分配第二内存空间,从而方便对内存资源进行管理,还可以实现设备内存的资源隔离。
进一步地,作为一种可选的实施方式,处理器中设置有静态内存区域寄存器和动态内存区域寄存器,将设备内存划分为静态内存区域和动态内存区域包括:将静态内存区域在内存中的位置信息存储在静态内存区域寄存器中;将动态内存区域在内存中的位置信息存储在动态内存区域寄存器中。
本申请实施例中,如图3所示,为了实现对设备内存进行划分,对处理器的硬件进行改进,在处理器中设置两个寄存器,静态内存区域寄存器和动态内存区域寄存器。静态内存区域寄存器用于存储静态内存区域在设备内存中的位置信息,动态内存区域寄存器用于存储动态内存区域在设备内存中的位置信息。
对设备内存进行划分后,将静态内存区域在设备内存中的位置信息存储在静态内存区域寄存器中,将动态内存区域在设备内存中的位置信息存储在动态内存区域寄存器中。
在静态内存区域寄存器中存储静态内存区域的位置信息的形式有多种。
在一种实施例中,静态内存区域的位置信息包括静态内存区域的基地址和大小。静态内存区域在设备内存中是一块连续的内存区域,静态内存区域的基地址为该连续内存区域的起始地址,静态内存区域的大小为该连续区域在设备内存中所占的大小。
在另一种实施例中,静态内存区域的位置信息包括静态内存区域的基地址和结束地址的形式组成。静态内存区域在设备内存中是一块连续的内存区域,静态内存区域的基地址为该连续内存区域的起始地址,静态内存区域的结束地址为该连续内存区域的结束地址。
相应地,动态内存区域寄存器中存储动态内存区域的位置信息的形式与静态内存区域寄存器中存储静态内存区域的位置信息的形式类似,为使说明书简洁,在此不再赘述。
进一步地,作为一种可选的实施方式,处理器中设置有多个静态内存寄存器,每个静态内存寄存器对应一个VF设备,根据静态内存申请请求从设备内存中为VF设备分配第一内存空间,包括:根据静态内存申请请求,确定第一内存空间在设备内存中的位置信息;将位置信息保存在VF设备对应的静态内存寄存器中。
本申请实施例中,如图2所示,处理器中还设置有多个静态内存寄存器,静态内存寄存器的数量与设备支持虚拟化的最大VF设备的数量相同,静态寄存内存器与VF设备一一对应。当接收到一个VF设备发送的静态内存申请请求后,判断当前设备内存中的空闲资源的大小是否大于VF设备在初始化阶段需要的内存资源大小。若大于,则从设备内存中确定分配给VF设备作为第一内存空间的位置信息,并将位置信息保存在该VF设备对应的静态内存寄存器中。
若设备内存划分为静态内存区域和动态内存区域,在为VF设备分配第一内存空间时,判断静态内存区域中空闲资源的大小是否大于VF设备在初始化阶段需要的内存资源大小。若大于,则从静态内存区域中确定一个内存区域作为第一内存空间,确定出的内存区域的内存资源大小与VF设备在初始化阶段需要的内存资源大小相同,并将确定出的内存区域的位置信息存储在该VF设备对应的静态内存寄存器中。
举例来说,设备支持虚拟化的最大VF设备为10个,VF设备1至VF设备10。处理器中设置10个静态内存寄存器,静态内存寄存器1至静态内存寄存器10。静态内存寄存器1对应VF设备1,静态内存寄存器2对应VF设备2,以此类推。
当接收到VF设备1发送的静态内存申请请求后,从静态内存区域中确定出一块内存大小与VF设备1在初始化阶段需要的内存资源大小相同的内存区域作为VF设备1的第一内存空间,并将该内存区域的位置信息存储在VF设备1对应的静态内存寄存器1中。
进一步地,在一实施例中,静态内存寄存器中存储第一内存空间的位置信息包括第一内存空间在设备内存中的基地址和大小。在另一实施例中,静态内存寄存器中存储第一内存空间的位置信息包括第一内存空间在设备内存中的基地址和结束地址。
静态内存寄存器中存储第一内存空间的位置信息的形式与静态内存区域寄存器中存储静态内存区域的位置信息的形式类似,为使说明书简洁,在此不再赘述。
进一步地,作为一种可选的实施方式,处理器中设置有多个动态内存寄存器,根据动态内存申请请求从设备内存中为VF设备分配第二内存空间,包括:根据动态内存申请请求,确定第二内存空间在设备内存中的位置信息;从多个动态内存寄存器中选择一个动态内存寄存器作为VF设备的动态内存寄存器;将位置信息保存在VF设备对应的动态内存寄存器中将位置信息保存在VF设备对应的静态内存寄存器中。
本申请实施例中,如图2所示,处理器中还设置有多个动态内存寄存器。当接收到一个VF设备发送的动态内存申请请求后,判断当前设备内存中的空闲资源的大小是否大于VF设备在运行阶段需要增加的内存资源大小。若大于,从设备内存中确定分配给VF设备作为第二内存空间的位置信息。然后从多个动态内存寄存器中选择一个空闲的动态内存寄存器(空闲的动态内存寄存器为没有存储任何位置信息的动态内存寄存器)作为该VF设备的动态内存寄存器,并将第二内存空间的位置信息保存在该VF设备对应的动态内存寄存器中。
若设备内存划分为静态内存区域和动态内存区域,在为VF设备分配第二内存空间时,判断动态内存区域中空闲资源的大小是否大于VF设备在运行阶段需要增加的内存资源大小。若大于,则从设备内存中确定第二内存空间的位置信息。然后从多个动态内存寄存器中选择一个空闲的动态内存寄存器作为该VF设备的动态内存寄存器,并将第二内存空间的位置信息保存在该VF设备对应的动态内存寄存器中。
举例来说,处理器中设置10个动态内存寄存器,动态内存寄存器1至动态内存寄存器10,动态内存寄存器3-5为空闲的动态内存寄存器。
当接收到VF设备1发送的动态内存申请请求后,从动态内存区域中确定出一块内存大小与VF设备1在运行阶段需要增加的内存资源大小相同的内存区域作为VF设备1的第二内存空间。然后选择动态内存寄存器3作为VF设备1的动态内存寄存器,并将该内存区域的位置信息存储在动态内存寄存器3中。
进一步地,在一实施例中,动态内存寄存器中存储第二内存空间的位置信息包括第二内存空间在设备内存中的基地址和大小。在另一实施例中,动态内存寄存器中存储第二内存空间的位置信息包括第二内存空间在设备内存中的基地址和结束地址。
动态内存寄存器中存储第二内存空间的位置信息的形式与静态内存区域寄存器中存储静态内存区域的位置信息的形式类似,为使说明书简洁,在此不再赘述。
进一步地,考虑到动态内存区域中可能没有连续的一块内存区域满足一个VF设备在运行阶段需要增加的内存资源大小,在确定第二内存空间时,第二内存空间可以由多块不连续的内存区域组成。相应地,需要多个动态内存寄存器保存多个不连续的内存区域的位置信息。
举例来说,Hypervisor根据VF设备1的动态内存申请请求中确定出两块内存区域,这两块内存区域的内存大小之和等于VF设备在运行阶段需要增加的内存资源大小。选择两个空闲的动态内存寄存器分别保存这两块内存区域的位置信息。
进一步地,作为一种可选的实施方式,在步骤S2之后,本申请实施例提供的内存分配方法还包括:接收VF设备发送的内存释放请求;根据内存释放请求释放分配给VF设备的第二内存空间。
本申请实施例中,当VF设备利用第二内存空间完成计算任务后,VF设备向Hypervisor发送内存释放请求。Hypervisor接收到内存释放请求后,释放分配给VF设备的第二内存空间。在VF设备执行完计算任务后,将VF设备申请的第二内存空间及时释放,一方面可以避免一个VF设备中的第二内存空间对应的内存资源出现闲置,从而造成内存资源浪费的问题。另一方面可以使得其他VF设备在出现内存资源不够时,Hypervisor可以从设备内存中为其他VF设备分配内存资源,提高内存资源的利用率。
作为一种可选的实施方式,以下结合图4,对上述步骤S1进行说明。
VF设备上运行有VF驱动,VF驱动运行在虚拟机内核态中,VF驱动实现与HOST端的Hypervisor进行数据交互,向Hypervisor申请内存资源。
VF设备初始化阶段,VF驱动根据VF设备在初始化阶段需要的内存资源大小生成静态内存申请请求,将静态内存申请请求发送给Hypervisor。Hypervisor查找内存的静态内存区域,判断静态内存区域中空闲区域的大小是否满足VF设备申请的内存资源大小。若满足,从静态内存区域中确定出分配给VF设备作为第一内存空间的内存区域的基地址和大小,将确定出的基地址和大小存储在VF设备对应的静态内存寄存器中。然后向VF驱动返回配置成功信息。若不满足,向VF驱动返回配置失败信息。
若VF驱动接收到配置成功信息,继续VF设备的初始化流程。若VF驱动接收到配置失败信息,则VF设备初始化失败。若一个VF设备初始化失败,则需要等待其他VF设备释放内存资源后,再次为该VF设备分配内存资源以完成该VF设备的初始化。
作为一种可选的实施方式,以下结合图5,对上述步骤S2进行说明。
在VF设备运行阶段,与VF设备关联的虚拟机的计算任务对内存需求增加的情况下,虚拟机用户态启动用户程序,该程序根据计算任务大小向VF驱动申请设备内存。VF驱动接收到虚拟机用户态发送的内存申请请求后,判断VF设备中空闲的内存资源是否满足虚拟机用户态的需求。VF设备中空闲的内存资源是指已经分配给该VF设备的内存资源中没有被占用的内存资源。若该VF设备之前没有发出过动态内存申请请求,VF设备中空闲的内存资源指VF设备的第一内存空间中没有被占用的内存资源。若VF设备已经发出过动态内存申请请求,VF设备中空闲的内存资源指VF设备的第一内存空间和通过之前发出的动态内存申请请求获得的内存空间中没有被占用的内存资源。若满足,则VF驱动根据SR-IOV规范为虚拟机用户态分配内存,建立物理地址和虚拟地址的映射,并向虚拟机用户态的用户程序发送分配成功信息。若不满足,根据需要增加的内存资源大小生成动态内存申请请求,将动态内存申请请求发送给Hypervisor。
Hypervisor查找内存的动态内存区域,判断动态内存区域中空闲区域的大小是否满足VF设备申请的内存资源大小。若满足,从动态内存区域中确定出分配给VF设备作为第二内存空间的内存区域的基地址和大小,选择空闲的动态内存寄存器作为VF设备的动态内存寄存器,将确定出的基地址和大小存储在VF设备对应的动态内存寄存器中。然后向VF驱动返回配置成功信息。若不满足,向VF驱动返回配置失败信息。
若VF驱动接收到配置失败信息,则VF驱动向虚拟机用户态的用户程序发送分配失败信息。虚拟机用户态的用户程序的计算任务执行失败。若VF驱动接收到配置成功信息,VF驱动创建用于管理第二内存空间的内存管理器,将第二内存空间的物理地址和大小添加到内存管理器中。然后VF驱动根据SR-IOV规范为虚拟机用户态分配内存,建立物理地址和虚拟地址的映射,并向虚拟机用户态的用户程序发送分配成功信息。
虚拟机用户态的用户程序接收到分配成功信息,启动计算任务。在计算任务完成后,释放这部分内存。VF驱动在确定虚拟机用户态的用户程序的计算任务结束后,释放第二内存空间。
基于同一发明构思,本申请实施例中还提供一种内存分配装置600,内存分配装置600可以为上述虚拟化管理模块,如图6所示,该内存分配装置600包括:
第一分配模块601,用于在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;所述静态内存申请请求包括所述VF设备在初始化阶段需要的内存资源大小;
第二分配模块602,用于在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间;所述动态内存申请请求包括所述VF设备在运行阶段需要增加的内存资源大小。
在可选的实施方式中,所述内存分配装置还包括内存划分模块603,用于将所述设备内存划分为静态内存区域和动态内存区域;
相应地,所述第一分配模块601用于根据静态内存申请请求从所述静态内存区域中为所述VF设备分配第一内存空间;
相应地,所述第二分配模块602用于根据动态内存申请请求从所述动态内存区域中为所述VF设备分配第二内存空间。
在可选的实施方式中,处理器中设置有静态内存区域寄存器和动态内存区域寄存器,所述内存划分模块603具体用于将所述静态内存区域在所述设备内存中的位置信息存储在所述静态内存区域寄存器中;将所述动态内存区域在所述设备内存中的位置信息存储在所述动态内存区域寄存器中。
在可选的实施方式中,处理器中设置有多个静态内存寄存器,每个所述静态内存寄存器对应一个VF设备,所述第一分配模块601具体用于根据所述静态内存申请请求,确定所述第一内存空间在设备内存中的位置信息;将所述位置信息保存在所述VF设备对应的静态内存寄存器中。
在可选的实施方式中,所述第一分配模块601具体用于判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在初始化阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第一内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第一内存空间在设备内存中的基地址和大小。
在可选的实施方式中,处理器中设置有多个动态内存寄存器,所述第二分配模块602具体用于根据所述动态内存申请请求,确定所述第二内存空间在设备内存中的位置信息;从所述多个动态内存寄存器中选择一个动态内存寄存器作为所述VF设备的动态内存寄存器;将所述位置信息保存在所述VF设备对应的动态内存寄存器中。
在可选的实施方式中,所述第二分配模块602具体用于判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在运行阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第二内存空间的位置信息。
在可选的实施方式中,所述位置信息包括所述第二内存空间在设备内存中的基地址和大小。
在可选的实施方式中,所述第二分配模块602还用于接收所述VF设备发送的内存释放请求;根据所述内存释放请求释放分配给所述VF设备的第二内存空间。
此外,本申请实施例还提供一种处理器系统,如图7所示,该处理器系统700包括:
内存701;
多个静态内存寄存器702,每个所述静态内存寄存器与一个VF设备对应,所述静态内存寄存器用于存储其对应的VF设备所分配到的第一内存空间在所述内存中的位置信息;
多个动态内存寄存器703,用于存储VF设备所分配到的第二内存空间在所述内存中的位置信息。
在可选的实施方式中,所述内存701包括静态内存区域7011和动态内存区域7012,所述静态内存区域7011用于为VF设备提供第一内存空间,所述动态内存区域7012用于为VF设备提供第二内存空间。
在可选的实施方式中,所述处理器系统700还包括:
静态内存区域寄存器704,用于存储所述静态内存区域在所述内存中的位置信息;
动态内存区域寄存器705,用于存储所述动态内存区域在所述内存中的位置信息。
本申请实施例中,处理器系统700可以为GPGPU芯片或GPU芯片等处理器芯片。处理器系统700与计算机、平板电脑等电子设备连接后,电子设备上配置有虚拟化管理模块,虚拟化管理模块根据前述内存分配方法对VF设备进行内存分配。
本申请实施例还提供了一种非易失性的计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机,执行上述所示的内存分配方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种内存分配方法,其特征在于,包括:
在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;所述静态内存申请请求包括所述VF设备在初始化阶段需要的内存资源大小;
在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间;所述动态内存申请请求包括所述VF设备在运行阶段需要增加的内存资源大小。
2.根据权利要求1所述的内存分配方法,其特征在于,在所述根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间之前,所述方法还包括:
将所述设备内存划分为静态内存区域和动态内存区域;
相应地,所述根据静态内存申请请求从设备内存区域中为所述VF设备分配第一内存空间,包括:
根据静态内存申请请求从所述静态内存区域中为所述VF设备分配第一内存空间;
相应地,所述根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间,包括:
根据动态内存申请请求从所述动态内存区域中为所述VF设备分配第二内存空间。
3.根据权利要求2所述的内存分配方法,其特征在于,处理器中设置有静态内存区域寄存器和动态内存区域寄存器,所述将所述设备内存划分为静态内存区域和动态内存区域,包括:
将所述静态内存区域在所述设备内存中的位置信息存储在所述静态内存区域寄存器中;
将所述动态内存区域在所述设备内存中的位置信息存储在所述动态内存区域寄存器中。
4.根据权利要求1-3任一项所述的内存分配方法,其特征在于,处理器中设置有多个静态内存寄存器,每个所述静态内存寄存器对应一个VF设备,所述根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间,包括:
根据所述静态内存申请请求,确定所述第一内存空间在设备内存中的位置信息;
将所述位置信息保存在所述VF设备对应的静态内存寄存器中。
5.根据权利要求4所述的内存分配方法,其特征在于,所述根据所述静态内存申请请求,确定所述第一内存空间在内存中的位置信息,包括:
判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在初始化阶段需要的内存资源大小;若大于,从所述设备内存中确定分配给所述VF设备作为所述第一内存空间的位置信息。
6.根据权利要求5所述的内存分配方法,其特征在于,所述位置信息包括所述第一内存空间在设备内存中的基地址和大小。
7.根据权利要求1-3任一项所述的内存分配方法,其特征在于,处理器中设置有多个动态内存寄存器,所述根据动态内存申请请求从设备内存中为所述VF设备分配第二内存空间,包括:
根据所述动态内存申请请求,确定所述第二内存空间在设备内存中的位置信息;
从所述多个动态内存寄存器中选择一个动态内存寄存器作为所述VF设备的动态内存寄存器;
将所述位置信息保存在所述VF设备对应的动态内存寄存器中。
8.根据权利要求7所述的内存分配方法,其特征在于,所述根据所述动态内存申请请求,确定所述第一内存空间在内存中的位置信息,包括:
判断当前设备内存中的空闲内存资源大小是否大于所述VF设备在运行阶段需要的内存资源大小;
若大于,从所述设备内存中确定分配给所述VF设备作为所述第二内存空间的位置信息。
9.根据权利要求8所述的内存分配方法,其特征在于,所述位置信息包括所述第二内存空间在设备内存中的基地址和大小。
10.根据权利要求1所述的内存分配方法,其特征在于,在所述根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间之后,所述方法还包括:
接收所述VF设备发送的内存释放请求;
根据所述内存释放请求释放分配给所述VF设备的第二内存空间。
11.根据权利要求1所述的内存分配方法,其特征在于,所述内存分配方法应用于虚拟化管理模块,所述虚拟化管理模块根据单根输入/输出虚拟化协议创建VF设备,并对所述VF设备进行设备内存分配。
12.一种内存分配装置,其特征在于,包括:
第一分配模块,用于在VF设备的初始化阶段,根据静态内存申请请求从设备内存中为所述VF设备分配第一内存空间;
第二分配模块,用于在所述VF设备的运行阶段,根据动态内存申请请求从所述设备内存中为所述VF设备分配第二内存空间。
13.一种处理器系统,其特征在于,包括:
设备内存;
多个静态内存寄存器,每个所述静态内存寄存器与一个VF设备对应,所述静态内存寄存器用于存储其对应的VF设备所分配到的第一内存空间在所述设备内存中的位置信息;
多个动态内存寄存器,用于存储VF设备所分配到的第二内存空间在所述设备内存中的位置信息。
14.根据权利要求3所述的处理器系统,其特征在于,所述内存包括静态内存区域和动态内存区域,所述静态内存区域用于为VF设备提供第一内存空间,所述动态内存区域用于为VF设备提供第二内存空间。
15.根据权利要求14所述的处理器系统,其特征在于,所述处理器系统还包括:
静态内存区域寄存器,用于存储所述静态内存区域在所述设备内存中的位置信息;
动态内存区域寄存器,用于存储所述动态内存区域在所述设备内存中的位置信息。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如权利要求1-11中任一项所述的内存分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641518.9A CN117667306A (zh) | 2023-12-01 | 2023-12-01 | 内存分配方法、装置、处理器系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641518.9A CN117667306A (zh) | 2023-12-01 | 2023-12-01 | 内存分配方法、装置、处理器系统和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667306A true CN117667306A (zh) | 2024-03-08 |
Family
ID=90063575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311641518.9A Pending CN117667306A (zh) | 2023-12-01 | 2023-12-01 | 内存分配方法、装置、处理器系统和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667306A (zh) |
-
2023
- 2023-12-01 CN CN202311641518.9A patent/CN117667306A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7971203B2 (en) | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another | |
US8291430B2 (en) | Optimizing system performance using spare cores in a virtualized environment | |
US8286178B2 (en) | Allocation and regulation of CPU entitlement for virtual processors in logical partitioned platform | |
US7428485B2 (en) | System for yielding to a processor | |
US8281082B2 (en) | Hypervisor page fault processing in a shared memory partition data processing system | |
KR102140730B1 (ko) | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 | |
US8312201B2 (en) | Managing memory allocations loans | |
US9183061B2 (en) | Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor | |
US8201167B2 (en) | On-demand allocation of virtual asynchronous services interfaces | |
US20060184938A1 (en) | Method, apparatus and system for dynamically reassigning memory from one virtual machine to another | |
CN100568182C (zh) | 在逻辑地分区的数据处理系统内分布工作的方法和系统 | |
US20170017511A1 (en) | Method for memory management in virtual machines, and corresponding system and computer program product | |
US9483782B2 (en) | Automating capacity upgrade on demand | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
WO2006103687A1 (en) | Partitioned resource reallocation system and method | |
US9720722B2 (en) | Hypervisor driven gradual balloon inflation | |
US8214837B2 (en) | Method, apparatus and system for dynamically allocating sequestered computing resources | |
CN106383747A (zh) | 一种计算资源调度方法及装置 | |
US20060168214A1 (en) | System for managing logical partition preemption | |
CN109558210B (zh) | 一种虚拟机应用主机gpu设备的方法及系统 | |
CN117667306A (zh) | 内存分配方法、装置、处理器系统和计算机可读存储介质 | |
CN114064200A (zh) | 两级嵌入式虚拟机管理程序架构及嵌入式系统 | |
US20120284711A1 (en) | Method and Arrangement for Configuring a Resource for a Virtual Runtime Environment | |
US20230067658A1 (en) | System and operation method of hybrid virtual machine managers | |
US20120226834A1 (en) | Method for enabling several virtual processing units to directly and concurrently access a peripheral unit |
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 |