CN106445628A - 一种虚拟化方法、装置和*** - Google Patents
一种虚拟化方法、装置和*** Download PDFInfo
- Publication number
- CN106445628A CN106445628A CN201510489246.4A CN201510489246A CN106445628A CN 106445628 A CN106445628 A CN 106445628A CN 201510489246 A CN201510489246 A CN 201510489246A CN 106445628 A CN106445628 A CN 106445628A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- message
- data
- memory access
- memory
- 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
- 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
Landscapes
- Engineering & Computer Science (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
技术领域
本发明实施例涉及计算机领域,尤其涉及一种虚拟化方法、装置和***。
背景技术
目前数据中心负载多种多样,单一的硬件结构很难高效率、低成本地满足负载多样性的需求。为高效使用数据中心资源,需要实现数据中心服务器的全部硬件资源动态分配最大化。虚拟化技术(Virtualization Technology,VT)是一种可以充分利用硬件资源的主要技术。
虚拟化技术,是指能够在一套完整的计算机硬件平台上,将一组硬件虚拟成多组硬件,并提供给多个独立运行的软件***(通常是操作***,如Windows、Linux、Unix、Mac等)作为独立运行环境,这些独立运行的环境(操作***)通常被称为虚拟机(VirtualMachine,VM)。具备虚拟化技术的计算机装置可以并行地运行多个独立的操作***,这些操作***之间的除了运行过程中分享硬件资源(如内存、I/O、存储和处理器能力)外,互相保持独立,可以看作是多个独立的计算机在运行。通常情况下,采用虚拟化技术的计算机被用作运行执行不同功能的操作***及应用软件***。虚拟化技术要求存在一个用于实现对多个操作***硬件资源及调用的管理软件***,它被称为虚拟机监视器(Virtual Machine Monitor,简称VMM)。VMM是具备VT技术的计算机平台中最先被调用的软件***,它负责VT处理器的VT功能初始化,建立虚拟机环境,硬件的虚拟化,以及运行时的指令过滤、多操作***运行调度等操作。
目前大部分虚拟化技术都是通过软件实现全***虚拟化,造成虚拟机性能不够理想。例如,处理器的虚拟化通过VMM的任务调度来实现,每次虚拟机切换都会带来一定的性能损失;内存的虚拟化通过虚拟内存技术实现,由此带来的大量传输后备缓冲器(TranslationLookaside Buffer,TLB)缺失,导致***性能损失,而且内存控制器无法感知虚拟机,从而难以根据虚拟机来进行访存调度的优化。如果能够减少繁琐的软件管理,从硬件上支持全虚拟化,数据中心的资源利用率将会得到大幅度提高。
发明内容
有鉴于此,本发明实施例提供了一种虚拟化方法、装置和***,通过在计算机装置各部件之间的通讯报文中加入虚拟机标识,从而使处理器与内存,以及处理器与I/O设备之间可以直接通讯。
第一方面,本发明实施例提供了一种虚拟化方法,包括:计算机***的内存控制器获取虚拟机的数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识发出所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
结合第一方面,在第一方面第一种可能的实现方式中,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址,包括:所述内存控制器根据所述虚拟机标识和所述虚拟地址信息查询预设的对应关系,确定所述待访存的数据在内存设备中的物理内存地址,其中,所述对应关系包括所述计算机***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第二种可能的实现方式中,所述内存控制器设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述内存控制器获取所述数据访存报文之后,还包括:所述内存控制器将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,所述计算机***的内存控制器获取虚拟机的数据访存报文,包括:所述内存控制器通过***总线接收携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
结合第一方面或第一方面以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,所述数据访存报文包括数据写报文或数据读报文;如果所述数据访存报文为数据写报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器向所述物理内存地址指示的内存区域写入所述待访存的数据;如果所述数据访存报文为数据读报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器从所述物理内存地址指示的内存区域读取所述待访存的数据。
第二方面,本发明实施例提供了一种虚拟化方法,包括:虚拟机生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识生成所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;所述虚拟机向内存控制器发送所述数据访存报文。
结合第二方面,在第二方面第一种可能的实现方式中,所述虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述虚拟机生成数据访存报文之前,还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
结合第二方面或第二方面以上任一种可能的实现方式,在第二方面第二种可能的实现方式中,还包括:所述虚拟机根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
结合第二方面或第二方面以上任一种可能的实现方式,在第二方面第三种可能的实现方式中,所述虚拟机向内存控制器发送所述数据访存报文包括:所述虚拟机通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
结合第二方面或第二方面以上任一种可能的实现方式,在第二方面第四种可能的实现方式中,所述数据访存报文包括数据写报文或数据读报文;所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
第三方面,本发明实施例提供了一种数据虚拟化方法,其特征在于,包括:计算机***的I/O控制器获取第一虚拟机的第一I/O访问报文,所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机;所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
结合第三方面,在第三方面第一种可能的实现方式中,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
结合第三方面或第三方面以上任一种可能的实现方式,在第三方面第二种可能的实现方式中,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
结合第三方面或第三方面以上任一种可能的实现方式,在第三方面第三种可能的实现方式中,所述I/O控制器将I/O设备分配给所述第一虚拟机使用之后,还包括:锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
结合第三方面或第三方面以上任一种可能的实现方式,在第三方面第四种可能的实现方式中,所述I/O控制器配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述I/O控制器获取第一虚拟机的第一I/O访问报文之后,还包括:所述I/O控制器将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
结合第三方面或第三方面以上任一种可能的实现方式,在第三方面第五种可能的实现方式中,所述I/O控制器获取第一虚拟机的第一I/O访问报文,包括:所述I/O控制器通过***总线接收来自所述第一虚拟机的第一I/O访问报文。
第四方面,本发明实施例提供了一种虚拟化方法,其特征在于,包括:虚拟机生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识生成所述I/O访问报文的所述虚拟机;所述虚拟机向I/O控制器发送所述I/O访问报文,所述I/O控制器用于管理I/O设备。
结合第四方面,在第四方面第一种可能的实现方式中,所述虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述虚拟机生成I/O访问报文之前,还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
结合第四方面或第四方面以上任一种可能的实现方式,在第四方面第二种可能的实现方式中,所述虚拟机向I/O控制器发送所述I/O访问报文,包括:所述虚拟机通过***总线向所述I/O控制器发送携带所述虚拟机标识的所述I/O访问报文。
第五方面,本发明实施例提供了一种虚拟化装置,其特征在于,包括:获取单元,用于获取虚拟机的数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识发出所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;确定单元,用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
结合第五方面,在第五方面第一种可能的实现方式中,所述确定单元用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址,包括:所述确定单元用于根据所述虚拟机标识和所述虚拟地址信息查询预设的对应关系,确定所述待访存的数据在内存设备中的物理内存地址,其中,所述对应关系包括所述计算机***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
结合第五方面或第五方面以上任一种可能的实现方式,在第五方面第二种可能的实现方式中,所述装置设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述获取单元获取所述数据访存报文之后,还用于将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
结合第五方面或第五方面以上任一种可能的实现方式,在第五方面第三种可能的实现方式中,所述获取单元用于获取虚拟机的数据访存报文,包括:所述获取单元用于通过***总线接收携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
结合第五方面或第五方面以上任一种可能的实现方式,在第五方面第四种可能的实现方式中,所述装置还包括处理单元,所述数据访存报文包括数据写报文或数据读报文;如果所述数据访存报文为数据写报文,所述处理单元用于向所述物理内存地址指示的内存区域写入所述待访存的数据;如果所述数据访存报文为数据读报文,所述处理单元用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
第六方面,本发明实施例提供了一种虚拟化装置,其特征在于,包括:生成单元,用于生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识运行在所述装置上的虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;发送单元,用于向内存控制器发送所述数据访存报文。
结合第六方面,在第六方面第一种可能的实现方式中,所述装置配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述生成单元生成数据访存报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
结合第六方面或第六方面以上任一种可能的实现方式,在第六方面第二种可能的实现方式中,所属装置还包含查找单元,所述查找单元用于根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
结合第六方面或第六方面以上任一种可能的实现方式,在第六方面第三种可能的实现方式中,所述发送单元用于向内存控制器发送所述数据访存报文,包括:所述发送单元用于通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
结合第六方面或第六方面以上任一种可能的实现方式,在第六方面第四种可能的实现方式中,所述数据访存报文包括数据写报文或数据读报文;所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
第七方面,本发明实施例提供了一种数据虚拟化装置,其特征在于,包括:获取单元,用于获取第一虚拟机的第一I/O访问报文,所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机;分配单元,用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
结合第七方面,在第七方面第一种可能的实现方式中,在所述获取单元还获取到第二虚拟机的第二I/O访问报文时,所述分配单元用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元用于根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第二种可能的实现方式中,在所述获取单元还获取到第二虚拟机的第二I/O访问报文时,所述分配单元用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元用于根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第三种可能的实现方式中,所述分配单元将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第四种可能的实现方式中,所述装置配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述获取单元获取第一虚拟机的第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
结合第七方面或第七方面以上任一种可能的实现方式,在第七方面第五种可能的实现方式中,所述获取单元用于获取第一虚拟机的第一I/O访问报文,包括:所述获取单元用于通过***总线接收来自所述第一虚拟机的第一I/O访问报文。
第八方面,本发明实施例提供了一种虚拟化装置,其特征在于,包括:生成单元,用于生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识运行在所述装置上的虚拟机;发送单元,用于向I/O控制器发送所述I/O访问报文,所述I/O控制器用于管理I/O设备。
结合第八方面,在第八方面第一种可能的实现方式中,所述装置配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述生成单元生成I/O访问报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
结合第八方面或第八方面以上任一种可能的实现方式,在第八方面第二种可能的实现方式中,所述发送单元用于向I/O控制器发送所述I/O访问报文,包括:所述发送单元用于通过***总线向所述I/O控制器发送携带所述虚拟机标识的所述I/O访问报文。
第九方面,本发明实施例提供了一种虚拟化***,其特征在于,包括处理器集群、内存设备以及内存控制器,所述处理器集群包括至少一个物理处理器,所述处理器集群与所述内存控制器通过***总线相连,所述虚拟化***上运行至少一台虚拟机,每台虚拟机分配有来自所述处理器集群的虚拟机处理器和来自所述内存设备的虚拟机内存,所述至少一个物理处理器中每个物理处理器配置至少一个寄存器,所述每个寄存器用于存储对应的物理处理器上运行的一个虚拟机的标识;所述处理器集群中的第一物理处理器,用于生成数据访存报文以及通过所述***总线向所述内存控制器发送所述数据访存报文,所述数据访存报文携带第一虚拟机标识和第一虚拟地址信息,所述第一虚拟机标识为所述第一物理处理器对应的第一寄存器中存储的虚拟机标识,所述第一虚拟地址信息为待访存的数据在所述第一虚拟机的虚拟地址;所述内存控制器,用于接收所述数据访存报文,并根据所述第一虚拟机标识和第一虚拟地址信息,确定所述待访存的数据在所述内存设备中的物理内存地址。
结合第九方面,在第九方面第一种可能的实现方式中,所述内存控制器用于根据所述第一虚拟机标识和第一虚拟地址信息,确定所述待访存的数据在所述内存设备中的物理内存地址,包括:所述内存控制器用于根据所述第一虚拟机标识和所述第一虚拟地址信息查询预设的对应关系,确定所述待访存的数据在所述内存设备中的物理内存地址,其中,所述对应关系包括所述虚拟化***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第二种可能的实现方式中,所述内存控制器设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述内存控制器接收所述数据访存报文之后,还用于将所述数据访存报文存入所述第一虚拟机标识关联的缓存队列。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第三种可能的实现方式中,所述数据访存报文包括数据写报文或数据读报文;如果所述数据访存报文为数据写报文,所述内存控制器还用于向所述物理内存地址指示的内存区域写入所述待访存的数据;如果所述数据访存报文为数据读报文,所述内存控制器还用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
结合第九方面或第九方面以上任一种可能的实现方式,在第九方面第四种可能的实现方式中,所述第一物理处理器还用于:根据所述第一虚拟机标识和所述第一虚拟地址信息,从缓存中查找所述第一虚拟机标识和所述第一虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
第十方面,本发明实施例提供了一种虚拟化***,其特征在于,包括处理器集群、I/O设备以及I/O控制器,所述处理器集群包括至少一个物理处理器,所述处理器集群与所述I/O控制器通过***总线相连,所述虚拟化***上运行至少一台虚拟机,每台虚拟机分配有来自所述处理器集群的虚拟机处理器和来自所述I/O设备的虚拟机I/O设备,所述至少一个物理处理器中每个物理处理器配置至少一个寄存器,所述每个寄存器用于存储对应的物理处理器上运行的一个虚拟机的标识;所述处理器集群中的第一处理器,用于生成第一I/O访问报文以及通过所述***总线向所述I/O控制器发送所述第一I/O访问报文,所述第一I/O访问报文携带第一虚拟机标识,所述第一虚拟机标识为所述第一物理处理器对应的第一寄存器中存储的虚拟机标识;所述I/O控制器,用于接收所述第一I/O访问报文,并根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
结合第十方面,在第十方面第一种可能的实现方式中,在所述I/O控制器还接收到第二I/O访问报文时,其中,所述第二I/O访问报文携带第二虚拟机标识,所述第二虚拟机标识用于标识第二虚拟机,所述I/O控制器用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器用于根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
结合第十方面或第十方面以上任一种可能的实现方式,在第十方面第二种可能的实现方式中,在所述I/O控制器还接收到第二I/O访问报文时,其中,所述第二I/O访问报文携带第二虚拟机标识,所述第二虚拟机标识用于标识第二虚拟机,所述I/O控制器用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器用于根据接收到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
结合第十方面或第十方面以上任一种可能的实现方式,在第十方面第三种可能的实现方式中,所述I/O控制器将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
结合第十方面或第十方面以上任一种可能的实现方式,在第十方面第四种可能的实现方式中,所述I/O控制器配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述I/O控制器用于接收所述第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述第一虚拟机标识关联的缓存队列。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问内存资源或I/O资源时,通过在报文中增加虚拟机标识,实现了处理器资源对内存资源或I/O资源的直接访问,减小了虚拟化***中软件对内存资源访问和I/O资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种虚拟化***结构示意图;
图2为依据本发明一实施例的虚拟化***硬件架构示意图;
图3为依据本发明一实施例的虚拟化***硬件架构示意图;
图4为依据本发明一实施例的虚拟化方法的示范性流程图;
图5为依据本发明一实施例的虚拟化方法的示范性流程图;
图6为依据本发明一实施例的虚拟化装置的逻辑结构示意图;
图7为依据本发明一实施例的虚拟化装置的逻辑结构示意图;
图8为依据本发明一实施例的虚拟化装置的逻辑结构示意图;
图9为依据本发明一实施例的虚拟化装置的逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为一种虚拟化***100的结构示意图,如图1所示,***100包括:物理硬件106、虚拟机监视器104(Virtual Machine Monitor,VMM)以及多个运行在物理硬件上的虚拟机102。
虚拟机监视器(Virtual Machine Monitor)是介于虚拟机操作***和物理硬件之间的一个软件描述层。它负责在各个虚拟机之间进行处理器调度和内存分配等。VMM不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。
VMM还用于管理虚拟机的创建、销毁、暂停、恢复及迁移,以及虚拟机之间的CPU调度、内存分配及设备访问等。
VMM向虚拟机提供了一个抽象层,其中包含了管理和虚拟硬件的应用程序接口(Application Programming Interface,API)。VMM向虚拟机提供了虚拟中央处理器(VirtualCentral Processing Unit,简称VCPU)、虚拟存储器管理单元(Memory Management Unit,简称MMU)等基本的虚拟硬件,并向虚拟机提供了相应的硬件接口(安全硬件接口),以保证设备访问得以安全进行。
安全硬件接口提供直接内存访问(Direct Memory Access,简称DMA)、输入输出(Input&Output,简称I/O)、驱动程序、虚拟的***组件互联(Peripheral Component Interconnect,简称PCI)地址配置、虚拟硬件中断等硬件虚拟工作。
***100可以支持半虚拟化和全虚拟化,运行在VMM上的半虚拟化(Paravirtualized,简称PV)虚拟机上运行着被修改过内核的操作***,或者上层操作***安装了半虚拟化的驱动程序的***。运行在VMM上的全虚拟化虚拟机上运行着没有修改内核且没有安装半虚拟化驱动程序的操作***。
图2为依据本发明一实施例的虚拟化***200的结构示意图,如图2所示,***200的物理硬件106包括计算资源,内存资源和输入/输出(input/output,I/O)资源,其中,计算资源,内存资源和I/O资源三者解耦合,相互分离,计算资源组成计算资源池202,内存资源组成内存资源池204,I/O资源组成I/O资源池。
计算资源池202中包含多个物理处理器,向运行在虚拟化***200上的虚拟机提供处理器资源,其中物理处理器可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路等,用于执行相关程序,以实现本发明实施例所提供的技术方案。应了解,在本发明实施例中使用CPU示例性表征物理处理器,但本发明实施例并不对此进行限定。
其中,处理器资源可以为处理器核或硬件线程,本发明实施例并不对此进行限定。硬件线程也称之为逻辑内核或逻辑处理器,***将每一个硬件线程识别为一个可调度的逻辑处理器,为了描述方便,下文中一个处理器资源是指一个处理器核或一个硬件线程。
内存资源池204中包含虚拟化***200的内存资源,可以为静态随机存储器(StaticRandom Access Memory,SRAM),动态随机存取存储器(Dynamic Random Access Memory,DRAM)或其他非易失性存储器(Non-Volatile Memory,NVM)等。应了解,在本发明实施例中使用DRAM示例性表征内存资源,但本发明实施例并不对此进行限定。
I/O资源池206中包含虚拟化***200的I/O资源,用以满足虚拟化***200一般用途的扩展,包括但不限于:图形处理器(Graphics Processing Unit,GPU),网络接口卡(NetworkInterface Card,NIC),串行高级技术附件(Serial Advanced Technology Attachment,SATA)和存储设备等各种I/O设备。应了解,在本发明实施例中使用SATA和NIC示例性表征I/O设备,但本发明实施例并不对此进行限定。
在本发明实施例的一种实现方式中,不同的资源池都有自己的云控制器,用于管理资源池的资源,计算资源池202的云控制器为计算控制器208,内存资源池204的云控制器为内存控制器210,I/O资源池的云控制器为I/O控制器212。
应了解,本发明实施例仅仅是示例性说明虚拟化***200的物理硬件106,并不对此进行限定,例如,计算资源池202可以没有计算控制器208。
不同的资源池之间通过***总线214相互通信。
应了解,图2仅仅是本发明实施例的一种具体的实现方式,本发明并不对虚拟化***200的结构,以及虚拟化***200的物理硬件106的硬件架构进行限定,例如,物理硬件106可以部分解耦或者不解偶。
***200上运行着至少一个虚拟机102,当***初始化的时候,VMM给每一个虚拟机都分配一个唯一的虚拟机标识(Virtual Machine Identification,VMID),该虚拟机标识用于表示虚拟机的身份,VMM给虚拟机分配的硬件资源与该虚拟机的VMID相关联。
在本发明实施例的一种实现方式中,VMM可以通过在硬件资源池的控制器上配置一个映射表,该映射表记录了该控制器管理的硬件资源与VMID的对应关系,即用于表征硬件资源被分配到了哪一个虚拟机。例如,VMM在计算控制器208上配置一个计算资源映射表,该映射表记录了处理器资源与VMID的对应关系;VMM在内存控制器210上配置一个内存资源映射表,该映射表记录了内存资源与VMID的对应关系;VMM在I/O控制器212上配置一个I/O资源映射表,该映射表记录了I/O资源与VMID的对应关系。资源映射表可以在创建一个虚拟机,并为该新创建的虚拟机分配硬件资源时,由VMM负责写入。并且在每一次虚拟机资源动态调整的时候,VMM根据调整后的硬件资源分配情况,对资源映射表进行调整或重写。
在本发明实施例的另一种实现方式中,也可以通过给虚拟机的每一个处理器资源分配一个寄存器,寄存中记录该处理器资源被分配到的虚拟机的VMID,如图3所示,当VMM把一个处理器资源分配给一个虚拟机时,VMM会在与该处理器资源对应的寄存器中写入该虚拟机的VMID,从而将处理器资源通过VMID与虚拟机关联起来,该寄存器保存最新虚拟机的VMID,每当虚拟机切换或处理器资源动态调整时,VMM会根据处理器资源的分配情况,对该寄存器记录的VMID进行更新,以确保该寄存器保存最新虚拟机的VMID。当处理器资源或者运行在处理器资源上的虚拟机生成数据访存报文之前或者I/O访问报文之前,会从与该处理器资源关联的寄存器中获取运行在该处理器资源上的虚拟机的虚拟机标识。
当某一个虚拟机或虚拟机的处理器资源要访问数据时,会生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识生成所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址。
虚拟机的处理器资源通过***总线214向内存控制器210发送所述数据访存报文,所述***总线214支持虚拟机标识的传输,所述内存控制器210用于控制对内存资源的访存操作。
在本发明实施例的一种实现方式中,可以对***总线214进行扩展,在地址线上增加VMID(比如8位),处理器资源发出的访存请求需携带VMID。
在本发明实施例的一种实现方式中,在向内存控制器210发送所述数据访存报文之前,处理器资源还根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块Cache line,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
每个缓存块增加VMID字段,分配给某一个虚拟机的Cache line的VMID字段记录该虚拟机的VMID。例如,当某一个Cache line的VMID为0时,可以表明该Cache line可以被多个虚拟机共享;当VMID不为0时,表明该Cache line只能被该VMID标识的虚拟机使用。当缓存进行虚拟地址比较时,连同VMID和虚拟地址一起比较。Cache line中的VMID字段可以由VMM或者处理器资源在为一个虚拟机分配缓存块的时候进行填写,当VMM或者处理器资源将一个Cache line分配给一个虚拟机时,就在该Cache line的虚拟机标识位上填写对应虚拟机的VMID,以此表示Cache line与虚拟机的对应关系。
如果查找到与VMID和地址信息对应的Cache line,则可以直接对该Cache line进行访存操作;在没有在缓存中查找到对应的Cache line或需要缓存与内存进行同步的时候,向内存控制器210发送所述数据访存报文。
在本发明实施例的一种可能的实现方式中,在向内存控制器210发送所述数据访存报文之后,处理器资源还根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,并对缓存块内的数据进行与内存的同步更新。
在具体实现过程中,所述数据访存报文包括数据写报文或数据读报文;所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
内存控制器210接收到数据访存报文后,根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
在本发明实施例的一种实现方式中,内存控制器210支持虚拟多通道,并支持VMID到虚拟多通道之间的转换,即内存控制器210可以连通内存与多个虚拟机。VMID与虚拟通道一一对应,虚拟通道根据VMID实现内存容量和带宽的划分。在一种可能的实现方式中,所述内存控制器210设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述内存控制器210获取所述数据访存报文之后,还用于将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。例如,一个缓存队列可以与一个寄存器相关联,该寄存器中记录该缓存队列对应的虚拟机的VMID。当VMM创建虚拟机,并为该虚拟机分配内存资源时,会在内存控制器210里创建一个与该虚拟机的缓存队列,并将该虚拟机的VMID写入与该虚拟机对应的一个寄存器,以此来指示缓存队列与虚拟机的一一对应关系,当内存控制器210接收到数据访存报文时,会使用与发送该数据访存报文的虚拟机对应的缓存队列来缓存接收到的数据访存报文。
内存控制器210也可以采用先入先出队列(First Input First Output,FIFO)的方式,将接收到的数据访存报文存入该FIFO中,以串行的方式,对数据访存报文进行处理。
内存控制器210支持“VMID+虚拟地址信息”的解析,通过地址翻译部件,将“VMID+虚拟地址信息”转换为内存的实际物理内存地址。因为有VMID的存在,不同虚拟机的内部虚拟地址可以重叠。
当VMM为虚拟机分配内存资源时,会在内存控制器210里建立虚拟机与VMM为该虚拟机分配的内存区域的映射关系,例如,可以采用映射表的形式,记录VMM为一个虚拟机分配的内存地址区间与该虚拟机的VMID的映射关系,“VMID+虚拟机虚拟地址”与物理内存地址一一对应,当内存控制器210接收到数据访存报文后,可以根据VMID和要访存的数据在虚拟机内部的虚拟地址确定数据在内存中的物理地址。
如果所述数据访存报文为数据写报文,所述内存控制器210根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还用于向所述物理内存地址指示的内存区域写入所述待访存的数据;
如果所述数据访存报文为数据读报文,所述内存控制器210根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
可选的,内存控制器210可以基于VMID进行调度,例如:如果所述内存控制器210接收到N个携带相同虚拟机标识的内存访问请求,所述内存控制器210可以将所述N个携带相同虚拟机标识的内存访问请求合并,其中N为大于1的正整数。
当处理器资源或运行在处理器资源上的虚拟机要访问I/O设备时,生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识生成所述I/O访问报文的所述虚拟机,并通过***总线214向所述I/O控制器212发送所述I/O访问报文,所述***总线214支持虚拟机标识的传输,所述I/O控制器212用于管理I/O设备。
计算机***的I/O控制器212获取第一虚拟机的第一I/O访问报文后,根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机。
在本发明实施例的一种可能的实现方式中,在所述I/O控制器212还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器212根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器212根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
在本发明实施例的另一种可能的实现方式中,在所述I/O控制器212还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器212根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器212根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
在本发明实施例的一种可能的实现方式中,所述I/O控制器212配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述I/O控制器212获取第一虚拟机的第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。例如,可以使用一个寄存器与一个缓存队列关联,寄存器中保存标记该缓存队列的VMID,当VMM创建虚拟机,并为该虚拟机分配I/O资源时,会在I/O控制器212里创建一个与该虚拟机关联的缓存队列,并将该虚拟机的VMID写入与该虚拟机对应的寄存器,以此来指示缓存队列与虚拟机的一一对应关系,当I/O控制器212接收到I/O访问报文时,会使用与发送该数据访存报文的虚拟机对应的缓存队列来缓存接收到的I/O访问报文。
在本发明实施例的一种可能的实现方式中,所述I/O控制器212将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
可选的,可以为每一个I/O设备分配一个寄存器,当VMM把某一个I/O设备分配给一个虚拟机时,将该虚拟机的VMID写入与该I/O设备对应的寄存器。
在本发明实施例的一种实现方式中,I/O控制器212支持VMID的解析和转换。从处理器资源的角度只能看到虚拟I/O功能块,多个虚拟I/O功能块可对应一个I/O设备。即一个物理I/O设备可以被多个虚拟机分时共用,多个虚拟机都分别可以看到一个I/O设备,该I/O设备被多个虚拟机共有,可以被多个虚拟机分时复用,I/O资源控制器接收到I/O访问报文以后,会根据报文中携带的VMID,判断出请求访问I/O设备的虚拟机是哪一个虚拟机,并分时将I/O设备分配给不同的虚拟机使用,以此可以满足每个虚拟机分时独占使用I/O设备的要求。从而无需在VMM中运行驱动程序,避免通过软件方法低效的实现I/O虚拟化。
例如:硬件上只有一个网卡,通过该控制器可以虚拟多个网卡,从虚拟机的角度可以看到多个网卡。多个虚拟机实现对一个物理I/O设备或接口的分时复用,但是在某一个虚拟机看来,该虚拟机独占该物理I/O设备。
在本发明实施例的一种实现方式中,I/O设备的直接存储器访问(Direct Memory Access,DMA)控制器也配置有一个VMID寄存器。当初始化DMA控制器时,除了要填写原有的地址寄存器以外,还需要填写VMID寄存器。DMA控制器发出的访存请求包括VMID和虚拟机物理地址。
在本发明实施例的一种实现方式中,同一个虚拟机对应的多个处理器资源也有自己的标识VCPUID,同一个虚拟机的处理器资源的标识可以连续编号。每一个处理器资源对应一个VCPUID寄存器,该寄存器用于保存该处理器资源在虚拟机内部的编号。相同VMID的多个处理器资源,VMM在为该虚拟机分配处理器资源的时候会设置VCPUID寄存器,对该虚拟机的处理器资源进行编号。从虚拟机操作***的角度看到的处理器核可以从0开始编号。该VCPUID寄存器由VMM在将处理器资源分配给某一个虚拟机时填写,并在处理器资源动态分配后,由VMM进行进行更新。
虚拟化***200的中断控制器(图中未示出)对于外设中断和处理器核间中断具有不同的处理机制。
对于外设的中断。中断控制器增加一个中断号IRQ到VMID,虚拟中断号(VIRQ)和CPUID之间的映射表,中断控制器可根据CPUID选择中断到处理器的路由。表1展示了该映射表的结构。映射表可以由VMM负责填写,每个虚拟I/O设备对应一个中断号,每个中断号对应一个VMID和一个虚拟中断号,并指向一个CPUID。当处理器接收到中断请求以后,读取虚拟中断号和VMID值。
处理器读取到虚拟中断号以后,从处理器的角度,此时读取的虚拟中断号就是虚拟机的物理中断号。运行在CPUID所指向的处理器上的虚拟机操作***无需修改,与原有的中断处理流程一样,通过虚拟中断号来索引中断向量表。
表1外设中断向量表
IRQ | VMID | VIRQ | CPUID |
0 | 3 | 0 | 2 |
1 | 2 | 0 | 1 |
2 | 1 | 0 | 3 |
…… | …… | …… | …… |
对于核间中断,中断控制器增加一个VMID和VCPUID到CPUID的映射表,如表2所示。当运行在VMID=1的虚拟机上的一个处理器2(VCPUID=2)需要发送一个核间中断给处理器0(VCPUID=0)时,处理器2(VCPUID=2)会向中断控制器发送请求,请求包含自己的VMID(VMID=1)和被中断的处理器ID(VCPUID=0)。中断控制器根据VMID和VCPUID查询到对应的CPUID,然后向CPUID所指向的处理器发起中断请求。
表2核间中断向量表
VMID | VCPUID | CPUID |
0 | 0 | 2 |
1 | 0 | 1 |
2 | 0 | 3 |
…… | …… | …… |
在本发明实施例的一种具体的实现方式中,***启动时,各部件的VMID都被重置,例如可以重置为0。当VMM启动一个虚拟机时,VMM为其分配一个独立的VMID,并为其分配硬件资源:
为其分配处理器资源,并建立分配的处理器资源与该虚拟机的VMID的关联关系,例如,可以填写与处理器资源关联的寄存器,将VMID写入对应的寄存器;
根据需求为其分配Cache空间,将相应的Cache line的VMID设置为它的VMID;
为其分配相应的虚拟内存通道,设置内存控制器210,建立VMID和内存虚拟通道的对应关系,并为该虚拟机分配内存区域,内存区域的物理内存地址与VMID对应;
为其分配相应的I/O虚功能,并设置该虚功能的VMID;
同时设置中断控制器为该I/O虚功能的中断配置VMID。
接下来启动虚拟机,此后无需VMM的介入,虚拟机的所有硬件资源均可直接被虚拟机独占访问。
当虚拟机需要对资源进行动态调整时,通过VMM来实现,对I/O设备的VMID,内存虚通道的VMID,中断控制器的VMID和Cache line的VMID进行重新分配。
如果需要将某些处理器资源分配给虚拟机,可以修改该处理器资源里的VMID寄存器,表明该处理器核或线程分配给哪个虚拟机。
对于属于同一个虚拟机的处理器资源,VMM设置处理器资源的VCPUID,可以让这些处理器资源从0开始顺序编号。
中断控制器通过VMID将所有的虚拟中断路由到相应VMID指定的处理器资源。
相同VMID的Cache line,内存和I/O资源均被与该VMID对应的处理器资源独享。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问内存资源或I/O资源时,通过在报文中增加虚拟机标识,实现了处理器资源对内存资源或I/O资源的直接访问,减小了虚拟化***中软件对内存资源访问和I/O资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
图4为依据本发明一实施例的虚拟化方法400的示范性流程图,虚拟化方法400为一种虚拟机数据访存方法,用于计算机***上运行的虚拟机对计算机***的内存资源进行访问,当***初始化的时候,VMM给每一个虚拟机都分配一个虚拟机标识,该虚拟机标识用于表示虚拟机的身份,VMM为虚拟机分配的硬件资源与该虚拟机的VMID相关联。如图4所示,方法400包括:
S402:虚拟机生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识生成所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址。
在具体实现过程中,由虚拟机的处理器资源生成该数据访存报文,其中,虚拟机标识用于表示该处理器资源属于哪一个虚拟机。
在本发明实施例的一种可能的实现方式中,每一个处理器资源对应一个VMID,VMID表明该处理器资源被分配给了哪一个虚拟机。例如,可以通过给虚拟机的每一个处理器资源分配一个寄存器,当VMM把一个处理器资源分配给一个虚拟机时,VMM会在与该处理器资源对应的寄存器中写入该虚拟机的VMID,从而将处理器资源通过VMID与虚拟机关联起来,该寄存器保存最新虚拟机的VMID,每当虚拟机切换或处理器资源动态调整时,VMM会根据处理器资源的分配情况,对该寄存器记录的VMID进行更新,以确保该寄存器保存最新虚拟机的VMID。
虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识,当一个虚拟机分配有多个处理器核或者硬件线程时,则该虚拟机的处理器资源对应有多个寄存器,每一个寄存器中均保存有该虚拟机的虚拟机标识。所述虚拟机生成数据访存报文之前,方法400还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
在具体实现过程中,所述数据访存报文包括数据写报文或数据读报文;所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
方法400还包括:所述虚拟机根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
每个缓存块Cache line增加VMID字段。分配给某一个虚拟机的Cache line的VMID字段记录该虚拟机的VMID。当某一个Cache line的VMID为0时,可以表明该Cache line可以被多个虚拟机共享;当VMID不为0时,表明该Cache line只能被该VMID标识的虚拟机使用。当缓存进行虚拟地址比较时,连同VMID和虚拟地址一起比较。Cache line中的VMID字段可以由VMM或者处理器资源在为一个虚拟机分配缓存块的时候进行填写,当VMM或者处理器资源将一个Cache line分配给一个虚拟机时,就在该Cache line的虚拟机标识位上填写对应虚拟机的VMID,以此表示Cache line与虚拟机的对应关系。
如果查找到与VMID和地址信息对应的Cache line,则可以直接对该Cache line进行访存操作,或对缓存块内的数据进行与内存的同步更新。
S404:所述虚拟机向内存控制器发送所述数据访存报文,所述内存控制器用于控制对内存的访存操作。
在本发明实施例的一种实现方式中,所述虚拟机向内存控制器发送所述数据访存报文包括:所述虚拟机通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。所述***总线支持虚拟机标识的传输。
在本发明实施例的一种实现方式中,可以对***总线进行扩展,在地址线上增加VMID(比如8位),处理器资源发出的访存请求需携带VMID。
S406:内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
在本发明实施例的一种实现方式中,内存控制器支持虚拟多通道,并支持VMID到虚拟多通道之间的转换,即内存控制器可以连通内存与多个虚拟机。VMID与虚拟通道一一对应,虚拟通道根据VMID实现内存容量和带宽的划分。
在一种可能的实现方式中,所述内存控制器设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述内存控制器获取所述数据访存报文之后,还包括:所述内存控制器将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
例如,一个缓存队列可以与一个寄存器相关联,该寄存器中记录该缓存队列对应的虚拟机的VMID。当VMM创建虚拟机,并为该虚拟机分配内存资源时,会在内存控制器里创建一个与该虚拟机的缓存队列,并将该虚拟机的VMID写入与该虚拟机对应的一个寄存器,以此来指示缓存队列与虚拟机的一一对应关系,当内存控制器接收到数据访存报文时,会使用与发送该数据访存报文的虚拟机对应的缓存队列来缓存接收到的数据访存报文。
内存控制器也可以采用先入先出队列(First Input First Output,FIFO)的方式,将接收到的数据访存报文存入该FIFO中,以串行的方式,对数据访存报文进行处理。
内存控制器支持“VMID+虚拟地址信息”的解析,通过地址翻译部件,将“VMID+虚拟地址信息”转换为内存的实际物理内存地址。因为有VMID的存在,不同虚拟机的内部虚拟地址可以重叠。
当VMM为虚拟机分配内存资源时,会在内存控制器里建立虚拟机与VMM为该虚拟机分配的内存区域的映射关系,例如,可以采用映射表的形式,记录VMM为一个虚拟机分配的内存地址区间与该虚拟机的VMID的映射关系,“VMID+虚拟机虚拟地址”与物理内存地址一一对应,当内存控制器接收到数据访存报文后,可以根据VMID和要访存的数据在虚拟机内部的虚拟地址确定数据在内存中的物理地址。
如果所述数据访存报文为数据写报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器向所述物理内存地址指示的内存区域写入所述待访存的数据;
如果所述数据访存报文为数据读报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器从所述物理内存地址指示的内存区域读取所述待访存的数据。
可选的,内存控制器可以基于VMID进行调度,方法400还包括:如果所述内存控制器接收到N个携带相同虚拟机标识的内存访问请求,所述内存控制器可以将所述N个携带相同虚拟机标识的内存访问请求合并,其中N为大于1的正整数。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问内存资源时,通过在报文中增加虚拟机标识,实现了处理器资源对内存资源的直接访问,减小了虚拟化***中软件对内存资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
图5为依据本发明一实施例的虚拟化方法500的示范性流程图,虚拟化方法500为一种虚拟机I/O设备访问方法,用于计算机***上运行的虚拟机对计算机***的I/O资源进行访问,当***初始化的时候,VMM给每一个虚拟机都分配一个虚拟机标识,该虚拟机标识用于表示虚拟机的身份,VMM给虚拟机分配的硬件资源与该虚拟机的VMID相关联。如图5所示,方法500包括:
S502:第一虚拟机生成第一I/O访问报文,所述第一I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识生成所述第一I/O访问报文的所述第一虚拟机。
在具体实现过程中,由第一虚拟机的需要访问I/O设备的处理器资源生成该I/O访问报文,其中,第一虚拟机标识用于表示该处理器资源属于第一虚拟机。
在本发明实施例的一种可能的实现方式中,每一个处理器资源对应一个VMID,VMID表明该处理器资源被分配给了哪一个虚拟机。例如,可以通过给虚拟机的每一个处理器资源分配一个寄存器,当VMM把一个处理器资源分配给一个虚拟机时,VMM会在与该处理器资源对应的寄存器中写入该虚拟机的VMID,从而将处理器资源通过VMID与虚拟机关联起来,该寄存器保存最新虚拟机的VMID,每当虚拟机切换或处理器资源动态调整时,VMM会根据处理器资源的分配情况,对该寄存器记录的VMID进行更新,以确保该寄存器保存最新虚拟机的VMID。
虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识,当一个虚拟机分配有多个处理器核或者硬件线程时,则该虚拟机的处理器资源对应有多个寄存器,每一个寄存器中均保存有该虚拟机的虚拟机标识。所述虚拟机生成I/O访问报文之前,方法500还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
S504:所述第一虚拟机向I/O控制器发送所述第一I/O访问报文,所述I/O控制器用于管理I/O设备。
在本发明实施例的一种实现方式中,所述第一虚拟机向I/O控制器发送所述第一I/O访问报文,包括:所述第一虚拟机通过***总线向所述I/O控制器发送携带所述第一虚拟机标识的所述第一I/O访问报文,所述***总线支持虚拟机标识的传输。
在本发明实施例的一种实现方式中,可以对***总线进行扩展,在地址线上增加VMID(比如8位),处理器资源发出的访存请求需携带VMID。
所述I/O设备包括但不限于:图形处理器(Graphics Processing Unit,GPU),网络接口卡(Network Interface Card,NIC),串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)和存储设备等。
S506:所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
可选的,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
可选的,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
在本发明实施例的一种实现方式中,I/O控制器支持VMID的解析和转换。从处理器资源的角度只能看到虚拟I/O功能块,多个虚拟I/O功能块可对应一个I/O设备。即一个物理I/O设备可以被多个虚拟机分时共用,多个虚拟机都分别可以看到一个I/O设备,该I/O设备被多个虚拟机共有,可以被多个虚拟机分时复用,I/O资源控制器接收到I/O访问报文以后,会根据报文中携带的VMID,判断出请求访问I/O设备的虚拟机是哪一个虚拟机,并分时将I/O设备分配给不同的虚拟机使用,以此可以满足每个虚拟机分时独占使用I/O设备的要求。从而无需在VMM中运行驱动程序,避免通过软件方法低效的实现I/O虚拟化。
例如:硬件上只有一个网卡,通过该控制器可以虚拟多个网卡,从虚拟机的角度可以看到多个网卡。多个虚拟机实现对一个物理I/O设备或接口的分时复用,但是在某一个虚拟机看来,该虚拟机独占该物理I/O设备。
在本发明实施例的一种实现方式中,所述I/O控制器将I/O设备分配给所述第一虚拟机使用之后,还包括:锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
可选的,可以为每一个I/O设备分配一个寄存器,当VMM把某一个I/O设备分配给一个虚拟机时,将该虚拟机的VMID写入与该I/O设备对应的寄存器。
在本发明实施例的一种可能的实现方式中,所述I/O控制器配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述I/O控制器获取第一虚拟机的第一I/O访问报文之后,还包括:所述I/O控制器将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
例如,可以使用一个寄存器与一个缓存队列关联,寄存器中保存标记该缓存队列的VMID,当VMM创建虚拟机,并为该虚拟机分配I/O资源时,会在I/O控制器里创建一个与该虚拟机关联的缓存队列,并将该虚拟机的VMID写入与该虚拟机对应的寄存器,以此来指示缓存队列与虚拟机的一一对应关系,当I/O控制器接收到I/O访问报文时,会使用与发送该数据访存报文的虚拟机对应的缓存队列来缓存接收到的I/O访问报文。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问I/O资源时,通过在报文中增加虚拟机标识,实现了处理器资源对I/O资源的直接访问,减小了虚拟化***中软件对I/O资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
图6为依据本发明一实施例的虚拟化装置600的逻辑结构示意图,虚拟化装置600为一种虚拟机数据访存装置,如图6所示,装置600包括生成单元602和发送单元604,
生成单元602用于生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识运行在所述装置上的虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址。
发送单元604用于向内存控制器发送所述数据访存报文,所述内存控制器用于控制对内存的访存操作。
在本发明实施例的一种实现方式中,所述装置600配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述生成单元602生成数据访存报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
在本发明实施例的一种实现方式中,所属装置还包含查找单元,所述查找单元用于根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
所述发送单元604用于向内存控制器发送所述数据访存报文,包括:所述发送单元用于通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
具体的,所述数据访存报文包括数据写报文或数据读报文;所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
本发明实施例与图4的方法实施例相对应,图4实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问内存资源时,通过在报文中增加虚拟机标识,实现了处理器资源对内存资源的直接访问,减小了虚拟化***中软件对内存资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
图7为依据本发明一实施例的虚拟化装置700的逻辑结构示意图,虚拟化装置700为一种虚拟机数据访存装置,如图7所示,装置700包括获取单元702和确定单元704,
获取单元702用于获取虚拟机的数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识发出所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址。
确定单元704用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
在本发明实施例的一种实现方式中,所述确定单元704用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址,包括:所述确定单元704用于根据所述虚拟机标识和所述虚拟地址信息查询预设的对应关系,确定所述待访存的数据在内存设备中的物理内存地址,其中,所述对应关系包括所述计算机***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
可选的,所述装置700设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述获取单元702获取所述数据访存报文之后,还用于将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
可选的,所述获取单元702用于获取虚拟机的数据访存报文,包括:所述获取单元702用于通过***总线接收携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
在本发明实施例的一种实现方式中,所述装置还包括处理单元,所述数据访存报文包括数据写报文或数据读报文;如果所述数据访存报文为数据写报文,所述处理单元用于向所述物理内存地址指示的内存区域写入所述待访存的数据;如果所述数据访存报文为数据读报文,所述处理单元用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
本发明实施例与图4的方法实施例相对应,图4实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问内存资源时,通过在报文中增加虚拟机标识,实现了处理器资源对内存资源的直接访问,减小了虚拟化***中软件对内存资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
图8为依据本发明一实施例的虚拟化装置800的逻辑结构示意图,虚拟化装置800为一种虚拟机I/O设备访问装置,如图8所示,装置800包括生成单元802和发送单元804,
生成单元802用于生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识运行在所述装置上的虚拟机。
发送单元804用于向I/O控制器发送所述I/O访问报文,所述I/O控制器用于管理I/O设备。
在本发明实施例的一种实现方式中,所述装置800配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;所述生成单元802生成I/O访问报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
可选的,所述发送单元804用于向I/O控制器发送所述I/O访问报文,包括:所述发送单元用于通过***总线向所述I/O控制器发送携带所述虚拟机标识的所述I/O访问报文。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问I/O资源时,通过在报文中增加虚拟机标识,实现了处理器资源对I/O资源的直接访问,减小了虚拟化***中软件对I/O资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
本发明实施例与图5的方法实施例相对应,图5实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
图9为依据本发明一实施例的虚拟化装置900的逻辑结构示意图,虚拟化装置900为一种虚拟机I/O设备访问装置,如图9所示,装置900包括获取单元902和分配单元904,
获取单元902用于获取第一虚拟机的第一I/O访问报文,所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机。
分配单元904用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
在本发明实施例的一种实现方式中,在所述获取单元902还获取到第二虚拟机的第二I/O访问报文时,所述分配单元904用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元904用于根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
在本发明实施例的一种实现方式中,在所述获取单元902还获取到第二虚拟机的第二I/O访问报文时,所述分配单元904用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元904用于根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
在本发明实施例的一种实现方式中,所述分配单元904将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
可选的,所述装置配置900有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;所述获取单元902获取第一虚拟机的第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
可选的,所述获取单元902用于获取第一虚拟机的第一I/O访问报文,包括:所述获取单元用于通过***总线接收来自所述第一虚拟机的第一I/O访问报文。
本发明实施例与图5的方法实施例相对应,图5实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
根据本发明实施例公开的技术方案,在计算机***中,虚拟机的处理器资源访问I/O资源时,通过在报文中增加虚拟机标识,实现了处理器资源对I/O资源的直接访问,减小了虚拟化***中软件对I/O资源访问的繁琐管理过程,进一步为虚拟机资源动态分配提供了基础。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (48)
1.一种虚拟化方法,其特征在于,包括:
计算机***的内存控制器获取虚拟机的数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识发出所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;
所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
2.根据权利要求1所述的方法,其特征在于,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址,包括:所述内存控制器根据所述虚拟机标识和所述虚拟地址信息查询预设的对应关系,确定所述待访存的数据在内存设备中的物理内存地址,其中,所述对应关系包括所述计算机***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
3.根据权利要求1所述的方法,其特征在于,所述内存控制器设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述内存控制器获取所述数据访存报文之后,还包括:所述内存控制器将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
4.根据权利要求1所述的方法,其特征在于,所述计算机***的内存控制器获取虚拟机的数据访存报文,包括:所述内存控制器通过***总线接收携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述数据访存报文包括数据写报文或数据读报文;
如果所述数据访存报文为数据写报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器向所述物理内存地址指示的内存区域写入所述待访存的数据;
如果所述数据访存报文为数据读报文,所述内存控制器根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址之后,还包括:所述内存控制器从所述物理内存地址指示的内存区域读取所述待访存的数据。
6.一种虚拟化方法,其特征在于,包括:
虚拟机生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识生成所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;
所述虚拟机向内存控制器发送所述数据访存报文。
7.根据权利要求6所述的方法,其特征在于,所述虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;
所述虚拟机生成数据访存报文之前,还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
8.根据权利要求6所述的方法,其特征在于,还包括:所述虚拟机根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述虚拟机向内存控制器发送所述数据访存报文包括:所述虚拟机通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
10.根据权利要求6-8任一项所述的方法,其特征在于,所述数据访存报文包括数据写报文或数据读报文;
所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;
所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
11.一种数据虚拟化方法,其特征在于,包括:
计算机***的I/O控制器获取第一虚拟机的第一I/O访问报文,所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机;
所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
12.根据权利要求11所述的方法,其特征在于,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
13.根据权利要求11所述的方法,其特征在于,在所述I/O控制器还获取到第二虚拟机的第二I/O访问报文时,所述I/O控制器根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述I/O控制器将I/O设备分配给所述第一虚拟机使用之后,还包括:锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
15.根据权利要求11-13任一项所述的方法,其特征在于,所述I/O控制器配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述I/O控制器获取第一虚拟机的第一I/O访问报文之后,还包括:所述I/O控制器将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
16.根据权利要求11-13任一项所述的方法,其特征在于,所述I/O控制器获取第一虚拟机的第一I/O访问报文,包括:所述I/O控制器通过***总线接收来自所述第一虚拟机的第一I/O访问报文。
17.一种虚拟化方法,其特征在于,包括:
虚拟机生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识生成所述I/O访问报文的所述虚拟机;
所述虚拟机向I/O控制器发送所述I/O访问报文,所述I/O控制器用于管理I/O设备。
18.根据权利要求17所述的方法,其特征在于,所述虚拟机的处理器资源配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;
所述虚拟机生成I/O访问报文之前,还包括:从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
19.根据权利要求17或18所述的方法,其特征在于,所述虚拟机向I/O控制器发送所述I/O访问报文,包括:所述虚拟机通过***总线向所述I/O控制器发送携带所述虚拟机标识的所述I/O访问报文。
20.一种虚拟化装置,其特征在于,包括:
获取单元,用于获取虚拟机的数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识发出所述数据访存报文的所述虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;
确定单元,用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址。
21.根据权利要求20所述的装置,其特征在于,所述确定单元用于根据所述虚拟机标识和所述虚拟地址信息,确定所述待访存的数据在内存设备中的物理内存地址,包括:所述确定单元用于根据所述虚拟机标识和所述虚拟地址信息查询预设的对应关系,确定所述待访存的数据在内存设备中的物理内存地址,其中,所述对应关系包括所述计算机***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
22.根据权利要求20所述的装置,其特征在于,所述装置设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述获取单元获取所述数据访存报文之后,还用于将所述数据访存报文存入所述数据访存报文携带的所述虚拟机标识所关联的缓存队列。
23.根据权利要求20所述的装置,其特征在于,所述获取单元用于获取虚拟机的数据访存报文,包括:所述获取单元用于通过***总线接收携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
24.根据权利要求20-23任一项所述的装置,其特征在于,所述装置还包括处理单元,所述数据访存报文包括数据写报文或数据读报文;
如果所述数据访存报文为数据写报文,所述处理单元用于向所述物理内存地址指示的内存区域写入所述待访存的数据;
如果所述数据访存报文为数据读报文,所述处理单元用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
25.一种虚拟化装置,其特征在于,包括:
生成单元,用于生成数据访存报文,所述数据访存报文携带虚拟机标识和虚拟地址信息,所述虚拟机标识用于标识运行在所述装置上的虚拟机,所述虚拟地址信息为待访存的数据在所述虚拟机的虚拟地址;
发送单元,用于向内存控制器发送所述数据访存报文。
26.根据权利要求25所述的装置,其特征在于,所述装置配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;
所述生成单元生成数据访存报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
27.根据权利要求25所述的装置,其特征在于,所属装置还包含查找单元,所述查找单元用于根据所述虚拟机标识和所述虚拟地址信息,从缓存中查找所述虚拟机标识和所述虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
28.根据权利要求25-27任一项所述的装置,其特征在于,所述发送单元用于向内存控制器发送所述数据访存报文,包括:所述发送单元用于通过***总线向所述内存控制器发送携带所述虚拟机标识和所述虚拟地址信息的所述数据访存报文。
29.根据权利要求25-27任一项所述的装置,其特征在于,所述数据访存报文包括数据写报文或数据读报文;
所述数据写报文用于向所述虚拟机标识和所述虚拟地址信息共同指示的内存区域写入所述待访存的数据;
所述数据读报文用于从所述虚拟机标识和所述虚拟地址信息共同指示的内存区域读取所述待访存的数据。
30.一种数据虚拟化装置,其特征在于,包括:
获取单元,用于获取第一虚拟机的第一I/O访问报文,所述第一I/O访问报文携带虚拟机标识,所述虚拟机标识用于标识发出所述I/O访问报文的第一虚拟机;
分配单元,用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
31.根据权利要求30所述的装置,其特征在于,在所述获取单元还获取到第二虚拟机的第二I/O访问报文时,所述分配单元用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元用于根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
32.根据权利要求30所述的装置,其特征在于,在所述获取单元还获取到第二虚拟机的第二I/O访问报文时,所述分配单元用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述分配单元用于根据获取到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
33.根据权利要求30-32任一项所述的装置,其特征在于,所述分配单元将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
34.根据权利要求30-32任一项所述的装置,其特征在于,所述装置配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述获取单元获取第一虚拟机的第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述I/O访问报文中的虚拟机标识关联的缓存队列。
35.根据权利要求30-32任一项所述的装置,其特征在于,所述获取单元用于获取第一虚拟机的第一I/O访问报文,包括:所述获取单元用于通过***总线接收来自所述第一虚拟机的第一I/O访问报文。
36.一种虚拟化装置,其特征在于,包括:
生成单元,用于生成I/O访问报文,所述I/O访问报文包含虚拟机标识,所述虚拟机标识用于标识运行在所述装置上的虚拟机;
发送单元,用于向I/O控制器发送所述I/O访问报文,所述I/O控制器用于管理I/O设备。
37.根据权利要求36所述的装置,其特征在于,所述装置配置有至少一个寄存器,所述至少一个寄存器用于存储所述虚拟机的虚拟机标识;
所述生成单元生成I/O访问报文之前,还用于从所述至少一个寄存器中获取所述虚拟机的虚拟机标识。
38.根据权利要求36或37所述的装置,其特征在于,所述发送单元用于向I/O控制器发送所述I/O访问报文,包括:所述发送单元用于通过***总线向所述I/O控制器发送携带所述虚拟机标识的所述I/O访问报文。
39.一种虚拟化***,其特征在于,包括处理器集群、内存设备以及内存控制器,所述处理器集群包括至少一个物理处理器,所述处理器集群与所述内存控制器通过***总线相连,所述虚拟化***上运行至少一台虚拟机,每台虚拟机分配有来自所述处理器集群的虚拟机处理器和来自所述内存设备的虚拟机内存,所述至少一个物理处理器中每个物理处理器配置至少一个寄存器,所述每个寄存器用于存储对应的物理处理器上运行的一个虚拟机的标识;
所述处理器集群中的第一物理处理器,用于生成数据访存报文以及通过所述***总线向所述内存控制器发送所述数据访存报文,所述数据访存报文携带第一虚拟机标识和第一虚拟地址信息,所述第一虚拟机标识为所述第一物理处理器对应的第一寄存器中存储的虚拟机标识,所述第一虚拟地址信息为待访存的数据在所述第一虚拟机的虚拟地址;
所述内存控制器,用于接收所述数据访存报文,并根据所述第一虚拟机标识和第一虚拟地址信息,确定所述待访存的数据在所述内存设备中的物理内存地址。
40.根据权利要求39所述的***,其特征在于,所述内存控制器用于根据所述第一虚拟机标识和第一虚拟地址信息,确定所述待访存的数据在所述内存设备中的物理内存地址,包括:所述内存控制器用于根据所述第一虚拟机标识和所述第一虚拟地址信息查询预设的对应关系,确定所述待访存的数据在所述内存设备中的物理内存地址,其中,所述对应关系包括所述虚拟化***运行的每个虚拟机的虚拟机标识与所述每个虚拟机分配的物理内存地址的对应关系。
41.根据权利要求39所述的***,其特征在于,所述内存控制器设置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述内存控制器接收所述数据访存报文之后,还用于将所述数据访存报文存入所述第一虚拟机标识关联的缓存队列。
42.根据权利要求39所述的***,其特征在于,所述数据访存报文包括数据写报文或数据读报文;
如果所述数据访存报文为数据写报文,所述内存控制器还用于向所述物理内存地址指示的内存区域写入所述待访存的数据;
如果所述数据访存报文为数据读报文,所述内存控制器还用于从所述物理内存地址指示的内存区域读取所述待访存的数据。
43.根据权利要求39-42任一项所述的***,其特征在于,所述第一物理处理器还用于:根据所述第一虚拟机标识和所述第一虚拟地址信息,从缓存中查找所述第一虚拟机标识和所述第一虚拟地址信息共同指示的缓存块,所述缓存的缓存块的标识位包含虚拟机标识位和地址信息标识位。
44.一种虚拟化***,其特征在于,包括处理器集群、I/O设备以及I/O控制器,所述处理器集群包括至少一个物理处理器,所述处理器集群与所述I/O控制器通过***总线相连,所述虚拟化***上运行至少一台虚拟机,每台虚拟机分配有来自所述处理器集群的虚拟机处理器和来自所述I/O设备的虚拟机I/O设备,所述至少一个物理处理器中每个物理处理器配置至少一个寄存器,所述每个寄存器用于存储对应的物理处理器上运行的一个虚拟机的标识;
所述处理器集群中的第一处理器,用于生成第一I/O访问报文以及通过所述***总线向所述I/O控制器发送所述第一I/O访问报文,所述第一I/O访问报文携带第一虚拟机标识,所述第一虚拟机标识为所述第一物理处理器对应的第一寄存器中存储的虚拟机标识;
所述I/O控制器,用于接收所述第一I/O访问报文,并根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用。
45.根据权利要求44所述的***,其特征在于,在所述I/O控制器还接收到第二I/O访问报文时,其中,所述第二I/O访问报文携带第二虚拟机标识,所述第二虚拟机标识用于标识第二虚拟机,所述I/O控制器用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器用于根据预设的优先级关系,按照优先级先后顺序将所述I/O设备分配给所述第一虚拟机使用,其中,所述优先级关系用于表示所述第一虚拟机和所述第二虚拟机的优先级大小。
46.根据权利要求44所述的***,其特征在于,在所述I/O控制器还接收到第二I/O访问报文时,其中,所述第二I/O访问报文携带第二虚拟机标识,所述第二虚拟机标识用于标识第二虚拟机,所述I/O控制器用于根据所述第一I/O访问报文,将I/O设备分配给所述第一虚拟机使用,包括:所述I/O控制器用于根据接收到所述第一I/O访问报文和所述第二I/O访问报文的先后顺序将所述I/O设备分配给所述第一虚拟机使用。
47.根据权利要求44-46任一项所述的***,其特征在于,所述I/O控制器将I/O设备分配给所述第一虚拟机使用之后,还用于锁定所述I/O设备,以使得所述I/O设备被所述第一虚拟机独享,并在所述第一虚拟机使用所述I/O设备完成I/O操作之后,解除对所述I/O设备的锁定,以使得所述I/O设备被分配给其他虚拟机使用。
48.根据权利要求44-46任一项所述的***,其特征在于,所述I/O控制器配置有至少一个缓存队列,所述至少一个缓存队列中每一个缓存队列关联一个虚拟机标识;
所述I/O控制器用于接收所述第一I/O访问报文之后,还用于将所述第一I/O访问报文存入所述第一虚拟机标识关联的缓存队列。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510489246.4A CN106445628A (zh) | 2015-08-11 | 2015-08-11 | 一种虚拟化方法、装置和*** |
PCT/CN2016/073860 WO2017024783A1 (zh) | 2015-08-11 | 2016-02-16 | 一种虚拟化方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510489246.4A CN106445628A (zh) | 2015-08-11 | 2015-08-11 | 一种虚拟化方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445628A true CN106445628A (zh) | 2017-02-22 |
Family
ID=57982960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510489246.4A Pending CN106445628A (zh) | 2015-08-11 | 2015-08-11 | 一种虚拟化方法、装置和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106445628A (zh) |
WO (1) | WO2017024783A1 (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
WO2018041075A1 (zh) * | 2016-08-31 | 2018-03-08 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
CN108920252A (zh) * | 2018-06-15 | 2018-11-30 | 西安微电子技术研究所 | 一种基于多队列千兆以太网控制器的io虚拟化装置 |
CN108920269A (zh) * | 2018-07-19 | 2018-11-30 | 中国联合网络通信集团有限公司 | 容器的i/o传输任务的调度方法和装置 |
CN109828827A (zh) * | 2018-11-22 | 2019-05-31 | 海光信息技术有限公司 | 一种检测方法、装置及相关设备 |
CN110532816A (zh) * | 2018-05-25 | 2019-12-03 | 瑞萨电子株式会社 | 存储器保护电路和存储器保护方法 |
CN110618962A (zh) * | 2019-08-16 | 2019-12-27 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Ft-m6678芯片的多核网络并发访问方法、***及介质 |
CN110851371A (zh) * | 2018-08-20 | 2020-02-28 | 华为技术有限公司 | 报文处理方法及相关设备 |
CN111666579A (zh) * | 2020-06-18 | 2020-09-15 | 安谋科技(中国)有限公司 | 计算机设备及其访问控制方法和计算机可读介质 |
CN111782268A (zh) * | 2020-04-10 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 分配硬件资源的方法、装置、设备和计算机可读介质 |
CN111857943A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 数据处理的方法、装置与设备 |
CN112114738A (zh) * | 2019-06-20 | 2020-12-22 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及存储设备 |
CN112416525A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 设备驱动初始化方法、直接存储访问方法及相关装置 |
CN112905304A (zh) * | 2021-03-08 | 2021-06-04 | 深信服科技股份有限公司 | 一种虚拟机间通信方法、装置、物理主机及介质 |
CN115442317A (zh) * | 2021-12-17 | 2022-12-06 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
TWI787741B (zh) * | 2020-11-05 | 2022-12-21 | 美商谷歌有限責任公司 | 記憶體請求優先升級 |
CN115988218A (zh) * | 2023-03-14 | 2023-04-18 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码***、电子设备和存储介质 |
CN116719606A (zh) * | 2023-06-12 | 2023-09-08 | 北京芯素科技有限公司 | 支持硬件虚拟化的加速器及其数据访问方法 |
CN117707994A (zh) * | 2024-02-02 | 2024-03-15 | 北京象帝先计算技术有限公司 | 请求缓冲器、***、组件、设备及传输方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417683B (zh) * | 2019-07-24 | 2022-07-29 | 新华三大数据技术有限公司 | 报文处理方法、装置及服务器 |
CN113691465B (zh) * | 2020-05-19 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 一种数据的传输方法、智能网卡、计算设备及存储介质 |
CN114741214B (zh) * | 2022-04-01 | 2024-02-27 | 新华三技术有限公司 | 一种数据传输方法、装置及设备 |
CN117492932B (zh) * | 2023-12-28 | 2024-04-09 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101171A (zh) * | 1985-04-01 | 1987-02-11 | 株式会社日立制作所 | 虚拟机***及其计算机***的输入/输出执行方法 |
US20060224816A1 (en) * | 2005-03-31 | 2006-10-05 | Koichi Yamada | Method and apparatus for managing virtual addresses |
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN102754076A (zh) * | 2009-12-24 | 2012-10-24 | 英特尔公司 | 用于在虚拟化环境中处理i/o操作的方法和设备 |
CN103530167A (zh) * | 2013-09-30 | 2014-01-22 | 华为技术有限公司 | 一种虚拟机内存数据的迁移方法及相关装置和集群*** |
CN104063281A (zh) * | 2013-03-21 | 2014-09-24 | 华为技术有限公司 | 一种调控虚拟机物理内存的方法和装置 |
WO2014182314A2 (en) * | 2013-05-10 | 2014-11-13 | Empire Technology Development, Llc | Acceleration of memory access |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514043B (zh) * | 2012-06-29 | 2017-09-29 | 华为技术有限公司 | 多处理器***及该***的数据处理方法 |
-
2015
- 2015-08-11 CN CN201510489246.4A patent/CN106445628A/zh active Pending
-
2016
- 2016-02-16 WO PCT/CN2016/073860 patent/WO2017024783A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85101171A (zh) * | 1985-04-01 | 1987-02-11 | 株式会社日立制作所 | 虚拟机***及其计算机***的输入/输出执行方法 |
US20060224816A1 (en) * | 2005-03-31 | 2006-10-05 | Koichi Yamada | Method and apparatus for managing virtual addresses |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN102754076A (zh) * | 2009-12-24 | 2012-10-24 | 英特尔公司 | 用于在虚拟化环境中处理i/o操作的方法和设备 |
CN102306126A (zh) * | 2011-08-24 | 2012-01-04 | 华为技术有限公司 | 内存管理方法、装置和*** |
CN104063281A (zh) * | 2013-03-21 | 2014-09-24 | 华为技术有限公司 | 一种调控虚拟机物理内存的方法和装置 |
WO2014182314A2 (en) * | 2013-05-10 | 2014-11-13 | Empire Technology Development, Llc | Acceleration of memory access |
CN103530167A (zh) * | 2013-09-30 | 2014-01-22 | 华为技术有限公司 | 一种虚拟机内存数据的迁移方法及相关装置和集群*** |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018041075A1 (zh) * | 2016-08-31 | 2018-03-08 | 华为技术有限公司 | 一种应用于计算机的资源访问方法和计算机 |
US10970104B2 (en) | 2016-08-31 | 2021-04-06 | Huawei Technologies Co., Ltd. | Resource access method applied to computer and computer |
CN107085535A (zh) * | 2017-03-30 | 2017-08-22 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107085535B (zh) * | 2017-03-30 | 2020-10-27 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN107562515A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN107562515B (zh) * | 2017-08-04 | 2021-09-07 | 海光信息技术股份有限公司 | 一种在虚拟化技术中管理内存的方法 |
CN110532816A (zh) * | 2018-05-25 | 2019-12-03 | 瑞萨电子株式会社 | 存储器保护电路和存储器保护方法 |
CN110532816B (zh) * | 2018-05-25 | 2024-04-23 | 瑞萨电子株式会社 | 存储器保护电路和存储器保护方法 |
CN108920252A (zh) * | 2018-06-15 | 2018-11-30 | 西安微电子技术研究所 | 一种基于多队列千兆以太网控制器的io虚拟化装置 |
CN108920269B (zh) * | 2018-07-19 | 2021-03-19 | 中国联合网络通信集团有限公司 | 容器的i/o传输任务的调度方法和装置 |
CN108920269A (zh) * | 2018-07-19 | 2018-11-30 | 中国联合网络通信集团有限公司 | 容器的i/o传输任务的调度方法和装置 |
US11616738B2 (en) | 2018-08-20 | 2023-03-28 | Huawei Technologies Co., Ltd. | Packet processing method and related device |
CN110851371A (zh) * | 2018-08-20 | 2020-02-28 | 华为技术有限公司 | 报文处理方法及相关设备 |
CN110851371B (zh) * | 2018-08-20 | 2023-09-26 | 华为技术有限公司 | 报文处理方法及相关设备 |
CN109828827A (zh) * | 2018-11-22 | 2019-05-31 | 海光信息技术有限公司 | 一种检测方法、装置及相关设备 |
CN109828827B (zh) * | 2018-11-22 | 2023-10-27 | 海光信息技术股份有限公司 | 一种检测方法、装置及相关设备 |
CN111857943B (zh) * | 2019-04-30 | 2024-05-17 | 华为技术有限公司 | 数据处理的方法、装置与设备 |
CN111857943A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 数据处理的方法、装置与设备 |
CN112114738A (zh) * | 2019-06-20 | 2020-12-22 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及存储设备 |
CN112114738B (zh) * | 2019-06-20 | 2024-02-20 | 杭州海康威视数字技术股份有限公司 | 一种存储数据的方法及存储设备 |
CN110618962A (zh) * | 2019-08-16 | 2019-12-27 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | Ft-m6678芯片的多核网络并发访问方法、***及介质 |
CN111782268B (zh) * | 2020-04-10 | 2024-05-17 | 北京京东尚科信息技术有限公司 | 分配硬件资源的方法、装置、设备和计算机可读介质 |
CN111782268A (zh) * | 2020-04-10 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 分配硬件资源的方法、装置、设备和计算机可读介质 |
CN111666579A (zh) * | 2020-06-18 | 2020-09-15 | 安谋科技(中国)有限公司 | 计算机设备及其访问控制方法和计算机可读介质 |
CN111666579B (zh) * | 2020-06-18 | 2024-03-08 | 安谋科技(中国)有限公司 | 计算机设备及其访问控制方法和计算机可读介质 |
TWI819900B (zh) * | 2020-11-05 | 2023-10-21 | 美商谷歌有限責任公司 | 記憶體請求優先升級 |
TWI787741B (zh) * | 2020-11-05 | 2022-12-21 | 美商谷歌有限責任公司 | 記憶體請求優先升級 |
CN112416525A (zh) * | 2020-11-27 | 2021-02-26 | 海光信息技术股份有限公司 | 设备驱动初始化方法、直接存储访问方法及相关装置 |
CN112416525B (zh) * | 2020-11-27 | 2022-06-03 | 海光信息技术股份有限公司 | 设备驱动初始化方法、直接存储访问方法及相关装置 |
CN112905304A (zh) * | 2021-03-08 | 2021-06-04 | 深信服科技股份有限公司 | 一种虚拟机间通信方法、装置、物理主机及介质 |
CN115442317B (zh) * | 2021-12-17 | 2023-10-10 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
CN115442317A (zh) * | 2021-12-17 | 2022-12-06 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
CN115988218B (zh) * | 2023-03-14 | 2023-06-09 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码***、电子设备和存储介质 |
CN115988218A (zh) * | 2023-03-14 | 2023-04-18 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码***、电子设备和存储介质 |
CN116719606A (zh) * | 2023-06-12 | 2023-09-08 | 北京芯素科技有限公司 | 支持硬件虚拟化的加速器及其数据访问方法 |
CN117707994A (zh) * | 2024-02-02 | 2024-03-15 | 北京象帝先计算技术有限公司 | 请求缓冲器、***、组件、设备及传输方法 |
CN117707994B (zh) * | 2024-02-02 | 2024-06-21 | 北京象帝先计算技术有限公司 | 请求缓冲器、***、组件、设备及传输方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017024783A1 (zh) | 2017-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445628A (zh) | 一种虚拟化方法、装置和*** | |
US10423435B1 (en) | Page swapping in virtual machine environment | |
JP5735070B2 (ja) | パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換 | |
CN107783913B (zh) | 一种应用于计算机的资源访问方法和计算机 | |
US7376949B2 (en) | Resource allocation and protection in a multi-virtual environment | |
US20210216453A1 (en) | Systems and methods for input/output computing resource control | |
US11132290B2 (en) | Locality domain-based memory pools for virtualized computing environment | |
US20060224816A1 (en) | Method and apparatus for managing virtual addresses | |
US11119942B2 (en) | Facilitating access to memory locality domain information | |
US7925818B1 (en) | Expansion of virtualized physical memory of virtual machine | |
JP2019523920A (ja) | ページ・フォールト解決法 | |
CN101751284A (zh) | 一种分布式虚拟机监控器的i/o资源调度方法 | |
US10713081B2 (en) | Secure and efficient memory sharing for guests | |
CN115456862B (zh) | 一种用于图像处理器的访存处理方法及设备 | |
US10691590B2 (en) | Affinity domain-based garbage collection | |
CN110058946A (zh) | 设备虚拟化方法、装置、设备及存储介质 | |
US7389398B2 (en) | Methods and apparatus for data transfer between partitions in a computer system | |
US7840772B2 (en) | Physical memory control using memory classes | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN115398408A (zh) | 计算设备中的计算机存储器管理 | |
US11314522B2 (en) | Fast boot resource allocation for virtual machines | |
US20230315328A1 (en) | High bandwidth extended memory in a parallel processing system | |
CN117857253A (zh) | 一种基于jailhouse smmu的域间通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |
|
RJ01 | Rejection of invention patent application after publication |