CN107783913B - 一种应用于计算机的资源访问方法和计算机 - Google Patents

一种应用于计算机的资源访问方法和计算机 Download PDF

Info

Publication number
CN107783913B
CN107783913B CN201610797862.0A CN201610797862A CN107783913B CN 107783913 B CN107783913 B CN 107783913B CN 201610797862 A CN201610797862 A CN 201610797862A CN 107783913 B CN107783913 B CN 107783913B
Authority
CN
China
Prior art keywords
resource
address
virtual
memory
physical
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
Application number
CN201610797862.0A
Other languages
English (en)
Other versions
CN107783913A (zh
Inventor
余子濠
马久跃
包云岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201610797862.0A priority Critical patent/CN107783913B/zh
Priority to EP17845377.5A priority patent/EP3467663A4/en
Priority to PCT/CN2017/099337 priority patent/WO2018041075A1/zh
Publication of CN107783913A publication Critical patent/CN107783913A/zh
Priority to US16/251,883 priority patent/US10970104B2/en
Application granted granted Critical
Publication of CN107783913B publication Critical patent/CN107783913B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Abstract

本发明实施例公开了一种应用计算机的资源访问方法以及计算机,其中,资源访问方法包括:资源控制器接收虚拟机针对资源发送的资源访问请求,资源访问请求携带资源虚拟地址,以及虚拟机的标识;利用虚拟机的标识,根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址;利用资源物理地址更新资源访问请求中的资源虚拟地址;将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。采用本发明,利用计算机中的资源控制器实现资源虚拟化,提高虚拟机的运行性能。

Description

一种应用于计算机的资源访问方法和计算机
技术领域
本发明涉及计算机领域,尤其涉及一种应用于计算机的资源访问方法和计算机。
背景技术
在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,它是将计算机的各种实体资源(如处理器、内存、网络IO及存储等)予以抽象、转换后呈现出来,打破实体资源之间的不可切割的障碍,使用户可以比原本的配置更好的方式来应用这些资源。利用虚拟化技术可以在单硬件平台模拟多个独立运行的硬件环境,从而使得一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的区间内运行而互不影响,从而显著提高计算机的工作效率。
在目前的虚拟化技术中,虚拟化功能都是由VMM(Virtual Machine Monitor,虚拟机监视器,简称VMM)提供,VMM可以为Hypervisor,Hypervisor是一种在虚拟环境中的元操作系统,可以访问服务器上包括磁盘和内存在内的所有硬件资源。Hypervisor不但协调硬件资源的访问,也同时在各个VM(Virtual Machine,虚拟机,简称VM)之间施加防护,以提供CPU虚拟化、内存虚拟化和网络IO(Input Output,输入输出,简称IO)虚拟化等功能。当服务器启动并执行Hypervisor时,它会加载所有VM的操作系统,同时会给每台VM分配适量的内存、CPU、网卡和磁盘等硬件资源。
虚拟化技术的解决方案主要有两种:第一种是纯软件虚拟化解决方案。客户操作系统很多情况下通过VMM来与硬件进行通信,由VMM来决定其对系统上所有VM的访问。在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。这种额外的VMM通信层需要进行二进制转换,来提供到物理资源(如处理器、内存、存储器和网卡等)的接口,以及模拟硬件环境等功能。但这种转换必然会增加系统的复性。此外,客户操作系统的支持受到虚拟机环境的能力限制,部署客户操作系统会存在诸多限制,例如:VM中不支持64位客户操作系统。在纯软件解决方案中,软件堆栈增加的复杂性意味着,这些环境难于管理,因而会加大确保系统可靠性和安全性的困难。
第二种解决方案是硬件辅助的虚拟化。支持虚拟化技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。但是,近期的一些研究表明,即使采用硬件辅助VMM的解决方案,在VM中运行程序和在真机上运行程序相比,性能还是会有所下降。例如性能不错的VMware ESXI也会给程序带来平均5.4%的性能下降,性能下降最严重的Encryptionbenchmark甚至有18%的性能下降;Xen和KVM平均也分别有8.8%和19.8%的性能下降。因此,使用虚拟化技术虽然节省了基础设施的开销,但却带来了额外的软件费用与性能下降,使得单位负载开销反而不如真机上直接部署相应的Web应用。
另外,由于目前的VMM是通过软件来编写的,VMM运行需要占用一定的硬件资源,同时还可能导致Cache和TLB(Translation Lookaside Buffer,传输后备缓冲器,简称TLB)频繁的被访问,从而影响应用运行的性能,导致与物理机上的程序性能相比有所下降,如何提高在VM中运行性能是目前研究的热点。
发明内容
本发明实施例所要解决的技术问题在于,提供一种应用于计算机的资源访问方法和计算机。可直接利用资源控制器实现虚拟机对资源的访问,提高虚拟机的运行性能。
第一方面,本申请提供了一种应用于计算机的资源访问方法,计算机可以是包括大量资源的计算设备,例如:计算设备为数据中心服务器、网络服务器、视频服务器、工作站或个人电脑等。资源的类型包括但不限于处理器、内存和IO设备。计算机包括资源和资源控制器,资源控制器为计算机中的硬件实体,本身具有一定的计算能力,例如资源控制器为内存控制器、IO设备控制器等。计算设备中运行有1个虚拟机,虚拟机具分配有一个标识,用来标识虚拟机的身份。资源访问方法包括:资源控制器接收虚拟机针对资源的资源访问请求,资源访问请求携带资源虚拟地址和虚拟机的标识。资源虚拟地址表示资源在虚拟机中的地址,资源物理地址表示资源在计算机中的实际地址。资源信息映射关系表示虚拟机的标识与分配给该虚拟机的资源的属性信息的对应关系,例如:虚拟机的标识与内存的内存物理地址区间以及内存物理地址区间基地址的对应关系,虚拟机的标识与IO设备的IO设备物理地址区间以及IO设备物理地址区间基地址的对应关系,虚拟机的标识与分配给虚拟机的至少一个IO设备的设备号的对应关系等。资源控制器利用虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。资源控制器利用资源物理地址更新资源访问请求中的资源虚拟机地址,更新后的资源访问请求携带资源物理地址。资源控制器将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。例如,资源访问请求为内存访问请求,待访问资源为内存,对内存执行读操作或写操作;资源访问请求为IO设备访问请求,待访问资源为IO设备,对IO设备执行读操作或写操作。
上述实施例,资源控制器接收虚拟机发送的资源访问请求,利用资源访问请求中携带的虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。这样利用资源控制器自身的计算能力实现资源虚拟化的功能,与现有的由软件方式实现资源虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
在一种可能的实现方式中,资源信息映射关系包括处理单元信息信息,处理单元映射关系表示处理单元与虚拟机的映射关系,一个处理单元唯一映射一个虚拟机,可以将处理单元的标识和虚拟机的标识进行绑定来表示其映射关系。资源控制器接收虚拟机发送的针对资源的资源访问请求之前,还包括:虚拟机中应用程序执行操作时,需要调用资源来执行相应的操作,对于虚拟机而言,调用的资源为虚拟资源,与虚拟机绑定的处理单元由此生成携带资源虚拟地址的资源访问请求,处理单元根据预设的处理单元映射关系,获取与处理单元的标识关联的虚拟机的标识。处理单元给资源访问请求增加虚拟机的标识,此时资源访问请求中携带虚拟机的标识和资源虚拟地址,处理单元将增加虚拟机标识后的资源访问请求发送给资源控制器。其中,在资源控制器包括多个控制器的情况下,多个控制器中每个控制器对应的一个地址区间,处理单元可根据资源访问请求中的资源虚拟地址所在的地址区间确定资源访问请求发送给哪个控制器。
上述实施例,处理单元根据预设的处理单元映射关系为资源访问请求增加虚拟机的标识,然后将资源访问请求发送给资源控制器,便于资源控制器根据虚拟机的标识为资源访问请求确定待访问资源。
在一种可能的实现方式中,资源控制器为内存控制器,资源虚拟地址为内存虚拟地址,资源物理地址为内存物理地址,待访问资源为内存,资源信息映射关系包括内存地址映射关系,内存地址映射关系表示虚拟机的内存虚拟地址与内存物理地址之间的对应关系。资源控制器利用虚拟机的标识,根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址的步骤包括:内存控制器根据预设的内存地址映射关系查询与虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址,内存虚拟地址区间基地址表示虚拟机的虚拟内存的内存虚拟地址区间的偏移地址,内存物理地址区间基地址表示分配给虚拟机的物理内存的内存物理区间的偏移地址。内存控制器根据内存虚拟地址、内存虚拟地址空间基地址和内存物理地址空间基地址得到内存物理地址。
上述实施例,内存控制器根据内存虚拟地址空间基地址和内存物理地址空间基地址将内存虚拟地址转换为内存物理地址,提升转换的效率,减少存储空间的占用。
结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,根据内存虚拟地址、内存虚拟地址空间基地址和内存物理地址空间基地址得到内存物理地址包括:根据公式paddr=vaddr-base+rebase将内存虚拟地址转换为内存物理地址,paddr为内存物理地址,vaddr为虚拟内存地址,base为内存虚拟地址区间基地址,rebase为内存物理地址区间基地址。
上述实施例,内存控制器根据上述的运算关系将内存虚拟地址转换为内存物理地址,有利于提升运算的效率。
在一种可能的实施方式中,内存控制器接收到处理单元发送的内存访问请求,内存访问请求携带内存虚拟地址,内存控制器获取虚拟机的内存虚拟地址区间,内存虚拟地址区间表示虚拟机的虚拟内存的地址范围,内存控制器判断虚拟内存地址是否位于内存虚拟地址区间内,若为是,内存控制器根据预设的内存地址映射关系将内存虚拟地址转换为内存物理地址,根据内存物理地址更新内存访问请求中的内存虚拟地址,将更新后的内存访问请发送给内存。
其中,控制器获取虚拟机的内存虚拟地址区间的方法可以是:内存控制器根据预设的内存地址映射关系查询与虚拟机的标识关联的内存虚拟地址空间基地址和内存虚拟地址区间长度,内存虚拟地址区间长度表示虚拟机的虚拟内存的地址区间的长度。例如,base为内存虚拟地址空间基地址,len为内存虚拟地址空间长度,base表示内存虚拟地址空间的最小地址,base+len表示内存虚拟地址空间的最大地址,虚拟机的虚拟内存区间可表示为[base,base+len]。
上述实施例,通过对内存访问请求中的内存虚拟地址的判断,防止内存访问请求中的内存虚拟地址访问超过虚拟机的内存虚拟地址区间,避免非法越界访问,节省访问资源。
在一种可能的实现方式中,资源控制器为IO设备控制器,资源虚拟地址为IO设备虚拟地址,资源物理地址为IO设备物理地址,待访问资源为IO设备,资源信息映射关系包括IO设备映射关系和IO设备地址映射关系,IO设备映射关系表示虚拟机与分配给虚拟机的至少一个IO设备的映射关系,可以用虚拟机的标识与至少一个IO设备的设备号进行关联。IO设备地址映射关系表示虚拟机的IO设备虚拟地址与IO设备物理地址的关联关系。资源控制器利用虚拟机的标识,根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址的步骤包括:IO设备控制器根据预设的设备映射关系,查询与虚拟机的标识关联的至少一个IO设备的设备号,至少一个IO设备为分配给虚拟机的IO资源,设备号用于表示设备的身份,至少一个IO设备中每个IO设备的设备号不相同;至少一个IO设备中每个IO设备对虚拟机而言具有不同的IO设备虚拟地址区间,IO设备控制器获取至少一个IO设备各自关联的IO设备虚拟地址区间,IO设备控制器确定IO设备虚拟地址位于哪个IO设备虚拟地址区间内,将IO设备虚拟地址所在的IO设备虚拟地址区间作为目标IO设备虚拟地址区间,将目标IO设备虚拟地址区间关联的设备号设定为目标设备号;IO设备控制器根据预设的IO设备地址映射关系,查询与目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址,根据IO设备虚拟地址区间基地址和IO设备物理地址区间基地址将IO设备虚拟地址转换为IO设备物理地址。
上述实施例,IO设备控制接收到处理单元发送的资源访问请求,将资源访问请求中携带的IO设备虚拟地址和虚拟标识确定目标IO设备和IO设备地址转换规则,根据IO设备地址转换,这样直接通过IO设备控制器可利用自身的计算能力实现IO设备虚拟化的功能,与现有的软件方式实现IO设备虚拟化相比,减少中间层的参与,提高虚拟机的运行效率。同时,减少物理资源的占用,能将更多的物理资源分配给虚拟机。
在一种可能的实现方式中,获取至少一个IO设备的设备号各自关联的IO设备虚拟地址区间包括:在预设的IO设备地址映射关系中,IO设备控制器查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度,根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间。以一个IO设备为例来说明IO设备虚拟地址区间的计算方法:IO设备的设备号关联的IO设备虚拟地址区间基地址为base,IO设备虚拟地址区间长度为len,base为该IO设备的IO设备虚拟地址区间的最小地址,bese+len为该IO设备的IO设备虚拟地址区间的最大地址,该IO设备的设备号关联的IO设备虚拟地址区间可表示为[base,base+len]。
在一种可能的实现方式中,根据IO设备虚拟地址区间基地址和IO设备物理地址区间基地址,将IO设备虚拟地址转换为IO设备物理地址包括:根据公式paddr=vaddr-base+rebase将IO设备虚拟地址转换为IO设备物理地址,paddr为IO设备物理地址,vaddr为IO设备虚拟地址,base为IO设备虚拟地址区间基地址,rebase为IO设备物理地址区间基地址。
在一种可能的实现方式中,资源信息映射关系包括中断映射关系,中断映射关系表示虚拟机的虚拟中断与分配给虚拟机的IO设备的物理中断之间的对应关系。IO设备控制器接收分配给虚拟机的至少一个IO设备中任意一个IO设备发送的物理中断请求,中断号表示物理中断的身份,网卡中断、磁盘中断和串口中断。物理中断请求携带物理中断号和设备号,IO设备控制器根据预设的IO设备映射关系,查询与设备号关联的虚拟机的标识,IO设备控制器根据预设的中断映射关系,查询与所述物理中断号关联的虚拟中断号,根据虚拟中断号更新物理中断请求中的物理中断号,将更新后的物理中断发送给虚拟机。
上述实施例,IO设备控制器实现了中断路由功能,不限于借助软件方式实现中断虚拟化,减少中间层的处理损耗,有利于提升虚拟机的运行性能。
在一种可能的实现方式中,计算机还包括资源管理器,资源管理器主要用于创建虚拟机和配置资源信息映射关系。资源管理器从计算机的物理资源池中选取物理资源,选取的物理资源包括但不限于处理单元、内存和IO设备,资源管理器根据选取的物理资源创建虚拟机,选取的物理资源在虚拟机内的地址为资源虚拟地址,选取的物理资源在计算机中的地址为资源物理地址。资源管理器为虚拟机分配标识,该标识用于唯一表示虚拟机的身份,其中在虚拟机移除时,资源管理器可回收该虚拟机的标识。其中,不同的虚拟机分配的物理资源可以不存在共享关系,即各个虚拟机分配的物理资源为相互隔离的。资源管理器根据虚拟机的标识与分配给该虚拟机的物理资源的属性信息生成资源信息映射关系,物理资源的属性信息包括但不限于:资源物理地址区间、资源物理地址区间基地址、资源的标识、资源的物理地址区间长度中的一种或多种。
上述实施例,由资源管理器根据选取的物理资源创建虚拟机,以及根据虚拟机的标识与分配给虚拟机的物理资源的属性信息生成资源信息映射关系,将资源信息映射关系通知给资源控制器,可替代现有的软件方式创建和分配虚拟机资源的方式,利用资源管理器自身的计算能力执行上述操作,不需要占用计算机设备的资源。
在一种可能的实现方式中,物理资源包括处理单元,物理资源的属性信息包括处理单元的标识,处理单元的标识用于唯一表示处理单元的身份。资源管理器根据虚拟机的标识与物理资源的属性信息生成资源信息映射关系包括:资源管理器将虚拟机的标识与处理单元的标识进行关联,关联后生成处理单元映射关系,其中一个虚拟机唯一绑定一个处理单元。
在一种可能的实现方式中,物理资源包括内存,物理资源的属性信息包括内存物理地址区间的内存物理地址区间基地址,资源信息映射关系包括内存地址映射关系。内存物理区间表示分配给虚拟机的某段内存的地址范围,内存物理地址区间基地址表内存物理地址区间的偏移地址。根据虚拟机的标识与物理资源的属性信息生成资源信息映射关系包括:获取分配给虚拟机的至少一个IO设备的物理中断号,每个IO设备具有不同的物理中断号,资源管理器获取虚拟机的标识和虚拟中断号,虚拟中断号表示分配给虚拟机的IO设备在虚拟机中的中断号,每个虚拟中断号唯一对应一个物理中断号。资源管理器将虚拟机的标识、虚拟机的虚拟中断号与至少一个IO设备的物理中断号进行绑定,绑定后生成中断映射关系。
在一种可能的实现方式中,资源映射关系包括IO设备地址映射关系,IO设备地址映射关系表示分配给虚拟机的IO设备在虚拟机中的IO设备虚拟地址与IO设备在计算机中的物理地址的映射关系。资源管理器根据虚拟机的标识与资源的属性信息生成资源信息映射关系包括:获取分配给虚拟机的至少一个IO设备各自对应的设备号,将虚拟机的标识与至少一个IO设备的设备号进行绑定后生成IO设备映射关系。资源管理器获取分配给虚拟机的至少一个IO设备各自对应的IO设备物理地址区间基地址,至少一个IO设备在虚拟机中呈现相等数量的IO设备虚拟地址区间基地址,获取虚拟机的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度,将虚拟机的标识、虚拟机的IO设备虚拟地址区间,虚拟机的IO设备虚拟地址区间长度与至少一个IO设备各自对应的物理地址区间基地址进行绑定,绑定后生成IO设备地址映射关系。
第二方面,本申请提供了一种计算机,计算机包括资源管理器、资源以及资源控制器;资源管理器,用于从资源中选取物理资源,根据选取的物理资源创建虚拟机;为虚拟机分配标识,根据虚拟机的标识和选取的物理资源的属性信息生成资源信息映射关系,并将资源信息映射关系发送给资源控制器;资源控制器,用于接收虚拟机针对资源的资源访问请求,资源访问请求携带资源虚拟地址以及虚拟机的标识;利用虚拟机的标识,根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址;利用资源物理地址更新资源访问请求中的资源虚拟地址;以及将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。
上述实施例,资源控制器接收处理单元发送的资源访问请求,利用资源访问请求中携带的虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。这样利用资源控制器自身的计算能力实现资源虚拟化的功能,与现有的由软件方式实现资源虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
在本申请的一种可能的实施方式中,资源管理器包括第一处理器、第一存储器和第一收发器,资源控制器包括第二处理器、第二存储器、第二收发器和缓冲器;资源包括处理单元、内存和IO设备;
第一处理器,用于从资源中选取物理资源,并根据选取的物理资源创建虚拟机;为虚拟机分配标识;根据虚拟机的标识与资源的属性信息生成资源信息映射关系,将资源信息映射关系存储至第一存储器中;资源信息映射关系表示虚拟机的标识与分配给虚拟机的物理资源的属性信息之间的映射关系,虚拟机的标识用于表示虚拟机的身份,资源的属性信息包括但不限于内存虚拟地址区间、内存虚拟地址区间基地址、IO设备虚拟地址区间、IO设备虚拟地址区间基地址中的一种或多种。
第一收发器,用于将资源信息映射关系发送给缓冲器。
第二处理器,用于从缓冲器中取出资源信息映射关系,将资源信息映射关系存储至第二存储器。
缓冲器,用于接收处理单元发送的资源访问请求,资源访问请求携带资源虚拟地址,以及虚拟机的标识;
第二处理器,用于从缓冲器中取出资源访问请求,利用虚拟机的标识,根据存储器中存放的资源信息映射关系,将资源虚拟地址转换为资源物理地址;利用资源物理地址更新资源访问请求中的资源虚拟地址;
第二收发器,用于将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。
在一种可能的实现方式中,资源信息映射关系包括处理单元映射关系,处理单元包括寄存器组,寄存器组中存放处理单元映射关系,处理单元映射关系表示虚拟机的标识与处理单元的标识之间的映射关系,处理单元表示多核处理器中的一个具有运算功能的核,处理单元用于:
根据虚拟机的请求生成资源访问请求,资源访问请求携带资源虚拟地址;根据寄存器组中存储的处理单元映射关系,获取与处理单元的标识关联的虚拟机的标识;给资源访问请求增加虚拟机的标识;将增加虚拟机的标识后的资源访问请求发送给缓冲器。
在一种可能的实现方式中,资源控制器为内存控制器,资源虚拟地址为内存虚拟地址,资源物理地址为内存物理地址,待访问资源为内存,资源信息映射关系包括内存地址映射关系;内存地址映射关系表示虚拟机的标识与分配给虚拟机的内存的地址信息之间的对应关系,内存的地址信息包括内存的虚拟地址和物理地址,例如内存虚拟地址区间、内存物理地址区间、内存虚拟地址区间基地址、内存物理地址区间基地址、内存虚拟地址区间长度等。
第二处理器包括:
第一控制器用于根据第二存储器中存放的内存地址映射关系查询与虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址;
第一运算器,用于根据内存虚拟地址、内存虚拟地址区间基地址和内存物理地址区间基地址得到内存物理地址。
在一种可能的实现方式中,运算器具体用于根据公式paddr=vaddr-base+rebase将内存虚拟地址转换为内存物理地址;其中,paddr为内存物理地址,vaddr为虚拟内存地址,base为内存虚拟地址区间基地址,rebase为内存物理地址区间基地址。
在一种可能的实现方式中,资源控制器为IO设备控制器,资源虚拟地址为IO设备虚拟地址,资源物理地址为IO设备物理地址,待访问资源包括至少一个IO设备,资源信息映射关系包括IO设备映射关系和IO设备地址映射关系;IO设备地址映射关系表示虚拟机的标识与分配给虚拟机的IO设备的地址信息之间的对应关系,IO设备的地址信息包括虚拟地址和物理地址,例如:IO设备虚拟地址区间、IO设备物理地址区间、IO设备虚拟地址区间基地址、IO设备物理地址区间基地址等。
第二控制器包括:
第二控制器,用于根据所述第二存储器中存放的IO设备映射关系,查询与虚拟机的标识关联的至少一个IO设备的设备号;在第二存储器中存放的IO设备地址映射关系中,IO设备控制器查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度;根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间;确定IO设备虚拟地址所在的IO设备虚拟地址区间,并将该IO设备虚拟地址区间关联的设备号设定为目标设备号;根据预设的IO设备地址映射关系,查询与目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址;
第二运算器,用于根据IO设备虚拟地址区间基地址和IO设备物理地址区间基地址将IO设备虚拟地址转换为IO设备物理地址。
在一种可能的实现方式中,第二运算器具体用于:
根据公式paddr=vaddr-base+rebase将IO设备虚拟地址转换为IO设备物理地址;其中,paddr为IO设备物理地址,vaddr为IO设备虚拟地址,base为IO设备虚拟地址区间基地址,rebase为IO设备物理地址区间基地址。
在一种可能的实现方式中,资源信息映射关系包括中断映射关系,中断映射关系表示虚拟机的标识与分配给虚拟机的IO设备的中断请求之间的对应关系,中断请求包括虚拟中断请求和物理中断请求,IO设备控制器还包括:中断控制器:
缓冲器,用于接收至少一个IO设备中任意一个IO设备发送的物理中断请求,其中,物理中断请求携带该IO设备的设备号和物理中断号;
中断控制器,用于根据预设的IO设备映射关系,查询与设备号关联的虚拟机的标识;根据预设的中断映射关系,查询与物理中断号关联的虚拟中断号;根据虚拟中断号,更新物理中断请求中的物理中断号;将更新后的物理中断请求发送给虚拟机。
在一种可能的实现方式中,物理资源包括处理单元,物理资源的属性信息包括处理单元的标识;
第一处理器用于:
根据虚拟机的标识与处理单元的标识生成处理单元映射关系,并将处理单元映射关系存储至处理单元的寄存器组。
在一种可能的实现方式中,资源包括内存,资源的属性信息包括:内存物理地址区间的内存物理地址区间基地址,资源信息映射关系包括内存地址映射关系;
第一处理器用于获取分配给虚拟机的内存物理地址区间基地址,以及获取虚拟机的内存虚拟地址区间基地址;根据虚拟机的标识、以及内存虚拟地址区间基地址与物理地址区间基地址生成内存地址映射关系,将内存地址映射关系存储至第一存储器。
在一种可能的实现方式中,物理资源为包括至少一个IO设备,资源的属性信息包括至少一个IO设备的物理中断号,资源信息映射关系包括中断映射关系;
第一处理器用于:
获取分配给虚拟机的至少一个IO设备的物理中断号,以及获取虚拟机的标识和虚拟中断号;根据虚拟机的标识、以及虚拟机的虚拟中断号与至少一个IO设备的物理中断号生成中断映射关系;
将中断映射关系存储至第一存储器。
在一种可能的实现方式中,资源信息映射关系包括IO设备地址映射关系;
第一处理器还用于:
获取至少一个IO设备各自对应的设备号,将虚拟机的标识与至少一个IO设备各自对应的设备号进行绑定后生成IO设备映射关系;
获取至少一个IO设备各自对应的物理地址区间基地址,根据虚拟机的标识、虚拟机的IO设备虚拟地址区间基地址、虚拟机的IO设备虚拟地址区间长度、以及至少一个IO设备各自对应的IO设备物理地址区间基地址生成IO设备地址映射关系;
将IO设备地址映射关系存储至第一存储器。
附图说明
下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本发明实施例提供的一种计算机的结构示意图;
图2是本发明提供的一种资源访问方法的流程示意图;
图3是本发明实施例提供的一种资源访问方法的另一流程示意图;
图4是本发明实施例提供的一种资源访问方法的另一流程示意图;
图5是本发明实施例提供的一种计算机的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提出了一种资源访问方法和计算机,可移除计算机的虚拟监视器,通过资源控制器自身的计算能力来实现资源虚拟机化,使虚拟机直接运行在物理资源上,提高虚拟机的运行性能。
参见图1,为本发明实施例提供的一种计算机的结构示意图,在本发明实施例中,计算机包括资源控制器15、资源和资源管理器14。计算机内可部署多个虚拟机111~11n,每个虚拟机占用一定的资源,且每个虚拟机与1个处理单元进行绑定。资源可以包括多个处理单元121~12n、多个内存161~16k和多个IO设备171~17m,m、n和k的数量本实施例不作限制。
处理单元表示多核CPU(Central Processing Unit,中央处理器,简称CPU)中的一个处理器核(Core),用于执行读操作、写操作等各种操作命令,每个处理单元可以设置有缓存13,缓存13可以是多级缓存,例如:一级缓存、二级缓存或三级缓存。
IO设备用于执行基本的输入输出操作,IO设备的类型可以是磁盘、网卡、打印机、扫描仪等。
资源控制器15可以通过缓存13分别与处理单元121~12n分别进行连接,同时资源控制器15可分别与内存161~16k和IO设备171~17m连接,其中,多个IO设备可通过IO互联网络(又称南桥)进行连接;资源控制器15为硬件实体,本身具有一定的计算能力,资源控制器15可以整合到处理单元中,也可以是独立的硬件实体,本实施例不作限制。资源控制器15用于控制虚拟机与分配给虚拟机的资源之间的处理过程,例如:资源控制器15可包括内存控制器和IO设备控制器,内存控制器用于对资源中的内存进行控制,IO设备控制器用于对资源中的IO设备进行控制。
资源管理器14分别与处理单元121~12n连接,同时资源管理器14与资源控制器15进行连接,资源管理器14用于从资源中选取部分的物理资源创建虚拟机,以及配置虚拟机与分配给虚拟机的物理资源之间的资源信息映射关系。
下面就一个虚拟机111的生命周期为例来说明计算机的工作过程:
资源管理器14从资源16中选取物理资源,选取的物理资源包括处理单元121、内存161、IO设备171和IO设备172,其中,资源管理器14选取的处理单元的数量可以为1个,资源管理器14选取的内存可以是多个内存,也可是某个内存中的部分内存空间,资源管理器14选取的IO设备的数量为至少1个,资源管理器14在选取的物理资源未被其他虚拟机占用的空闲的物理资源。资源管理器14根据选取的物理资源创建虚拟机111,资源管理器给虚拟机111分配一个标识,标识用于唯一表示虚拟机的身份,资源管理器14获取虚拟机111的属性信息和分配给虚拟机111的资源的属性信息,虚拟机111的属性信息包括但不限于虚拟机111的标识、虚拟机111的内存虚拟地址区间、虚拟机111的内存虚拟地址区间长度、内存虚拟地址区间基地址、虚拟机111的IO设备虚拟地址区间、虚拟机111的IO设备虚拟地址区间长度、虚拟机111的IO设备虚拟地址区间基地址、虚拟机111的虚拟中断号中的一种或多种,资源的属性信息包括但不限于内存物理地址区间、内存物理地址区间基地址、内存物理地址区间长度、IO设备物理地址区间、IO设备物理地址区间基地址、IO设备物理地址区间长度、IO设备的设备号、IO设备的物理中断号、处理单元的标识中的一种或多种,资源管理器14将虚拟机111的属性信息和分配给虚拟机111的资源的属性信息进行绑定后生成资源信息映射关系,资源管理器14将资源信息映射关系发送给资源管理器15和处理单元121,处理单元121和资源控制器15接收资源信息映射关系,可以将资源信息映射关系存放在高速存储器中,例如:存放在寄存器组。虚拟机111中应用发起应用请求时,与虚拟机111绑定的处理单元121相应的生成资源访问请求,资源访问请求中携带待访问资源的资源虚拟地址,处理单元121读取高速存储器中的资源信息映射关系,获取虚拟机111的标识,给资源访问请求中增加虚拟机111的标识,此时资源访问请求中携带资源虚拟地址和虚拟机111的标识,处理单元121将增加虚拟机111的标识后的资源访问请求发送给资源控制器15。需要说明的是,如果资源控制器15中包括多个资源控制器时,处理单元121的高速存储器中可存储有多个资源控制器中每个资源控制器的地址段,处理单元121可根据资源虚拟地址所在的地址段确定资源访问请求发送给哪个资源控制器。
资源控制器15接收携带资源虚拟地址和虚拟机的标识的资源访问请求,资源控制器可读取高速存储器中存放的资源信息映射关系,利用虚拟机的标识将资源虚拟地址转换为计算机中实际的资源物理地址,资源控制器15利用资源物理地址更新资源访问请求中的资源虚拟地址,资源控制器15将更新后的资源访问请求发送给待访问资源,以访问待访问资源。例如:待访问资源可以为IO设备,或内存。
实施上述实施例,资源控制器接收虚拟机针对资源发送的资源访问请求,利用资源访问请求中携带的虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。这样利用资源控制器自身的计算能力实现资源虚拟化的功能,与现有的由软件方式实现资源虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
下面介绍本发明实施例通过在计算机内设置控制设备来实现数据处理的流程,本发明实施例中的资源访问方法可以在图1所示的计算机中实施,如图2所示,所述方法包括:
S201、资源控制器接收虚拟机针对资源的资源访问请求,资源访问请求携带资源虚拟地址,以及虚拟机的标识。
具体的,计算机包括资源控制器和资源,计算机上运行有一个虚拟机系。资源控制器为计算机中的硬件实体,资源控制器具有一定的计算能力,资源控制器可以整合于处理器中,或者整合于南桥芯片等其他装置中,资源控制器可以包括多个不同类型的资源控制器,每种类型的资源控制器负责控制相应的资源,例如,资源控制器包括内存控制器和IO设备控制器,内存控制器用于控制内存的处理过程,IO设备控制器用于控制IO设备的处理过程。计算机可以是包括大量资源的计算设备,计算机包括的资源包括但不限于处理器、内存和IO设备。处理单元为多核处理器中的一个处理器核。虚拟机中安装的应用程序发起应用请求时需要访问分配给虚拟机的资源,此时与虚拟机绑定的处理单元给资源控制器发送资源访问请求,资源访问请求携带资源虚拟地址和虚拟机的标识,资源虚拟地址表示资源在虚拟机中呈现的地址,虚拟机的标识表示虚拟机的身份。
S202、资源控制器利用虚拟机的标识、根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址。
具体的,资源信息映射信息表示资源在虚拟机中的属性信息与资源在计算机中的属性信息的对应关系,虚拟机中资源的属性信息包括虚拟机的标识、资源虚拟地址区间、资源虚拟地址区间长度、资源虚拟地址区间基地址,资源在计算机中的属性信息包括:资源标识、资源物理地址区间、资源物理地址区间基地址。资源控制器根据预设的资源信息映射信息将资源访问请求中的资源虚拟地址转换为资源物理地址。
S203、资源控制器利用资源物理地址更新资源访问请求中的资源虚拟地址。
具体的,资源控制器根据S202转换得到的资源物理地址,更新资源访问请求中的资源虚拟地址,此时资源访问请求中携带资源物理地址。
S204、资源控制器将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。
具体的,资源控制器将携带资源物理地址的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。例如:资源控制器向内存发送内存访问请求,对内存物理地址对应的内存单元进行读或写操作;资源控制器向IO设备发送IO设备访问请求,对IO设备物理地址对应的IO设备进行输出或输出操作。
可选的,资源信息映射关系包括处理单元映射关系,资源控制器接收处理单元发送的资源访问请求之前,还包括:处理单元根据虚拟机的请求生成资源访问请求,资源访问请求携带资源虚拟地址,处理单元根据预设的处理单元映射关系,获取与所述处理单元的标识关联的虚拟机的标识;处理单元给资源访问请求增加虚拟机的标识;处理单元将增加虚拟机的标识后的资源访问请求发送给资源控制器。
具体的,处理单元映射关系表示运行在计算机中的虚拟机与处理单元的映射关系,1个虚拟机与1个处理单元进行绑定,处理单元映射关系可以存储在高速存储器中,例如处理单元映射关系可存放在处理器的寄存器组中。处理单元映射关系可以采用映射表、二维数组或其他形式表示。处理单元接收到虚拟机中的应用程序发送的应用请求时,处理单元生成资源访问请求,资源访问请求携带资源虚拟地址,处理单元根据处理单元映射关系查询与处理单元的标识关联的虚拟机的标识,在资源访问请求中增加虚拟机的标识,处理单元向资源控制器发送增加虚拟机的标识后的资源访问请求。
举例说明:处理单元映射关系如表1所示:
虚拟机的标识 处理单元的标识
1 1
2 2
3 3
表1
需要说明的是,虚拟机与处理单元的映射关系并不限于表1所示,可以根据需要进行配置。处理单元接收到虚拟机发送的资源访问请求,处理单元的标识为1,处理单元根据表1的处理单元映射关系,确定虚拟机的标识为1,将虚拟机的标识1增加到资源访问请求中,然后发送给资源控制器。
可选的,计算机还包括资源管理器,资源控制器接收处理单元发送的资源访问请求之前,所述方法还包括:资源管理器从资源中选取物理资源,并根据选取的物理资源创建虚拟机,资源管理器为虚拟机分配标识,资源管理器根据虚拟机的标识与资源的属性信息生成资源信息映射关系。
具体的,资源管理器为一个硬件实体,本身具有一定的计算能力,资源管理器可以是SOC(System on Chip,系统级芯片)、嵌入式板卡或可编程逻辑器件等,本发明不作限制;其中资源管理器不需要占用计算机的资源。在计算机需要部署1个虚拟机的情况下,资源管理器从计算机的资源中选取物理资源,物理资源包括但不限于处理单元、内存和IO设备,资源管理器根据选取的物理资源创建虚拟机,虚拟机运行在分配的物理资源上。资源管理器给创建的虚拟机分配1个标识,标识用于唯一表示虚拟机的身份;资源管理器获取物理资源在计算机中的属性信息,该属性信息为物理属性信息,包括但不限于:物理资源的标识、物理地址区间、物理地址区间基地址、物理地址区间长度;资源管理器获取物理资源在虚拟机中的属性信息,该属性信息为虚拟属性信息,包括但不限于虚拟机的标识、虚拟地址区间、虚拟地址区间基地址、虚拟地址区间长度。资源管理器根据虚拟机的标识与资源的属性信息生成资源信息映射关系,资源管理器将资源信息映射关系发送给资源控制器。
上述实施例,资源控制器接收处理单元发送的资源访问请求,利用资源访问请求中携带的虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。这样利用资源控制器自身的计算能力实现资源虚拟化的功能,与现有的由软件方式实现资源虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
参见图3,为本发明实施例提供的一种应用于计算机的资源访问方法的另一流程示意图,在本发明实施例中,资源信息映射关系包括处理单元映射关系和内存地址映射关系,资源控制器包括内存控制器,所述方法包括:
S301、处理单元根据虚拟机的请求生成内存访问请求,内存访问请求携带内存虚拟地址。
具体的,虚拟机中的应用程序需要访问内存的情况下,处理单元生成内存访问请求,内存访问请求携带内存虚拟地址,内存虚拟地址表示待访问的内存单元在虚拟机中呈现的地址。
S302、处理单元根据预设的处理单元映射关系,获取与处理单元的标识关联的虚拟机的标识。
具体的,处理单元映射关系表示计算机中运行的虚拟机的标识与处理单元的标识之间的映射关系,每个虚拟机与1个处理单元进行绑定,处理单元映射关系的表示形式可以是映射表、二维数组或其他形式。处理单元根据预设的处理单元映射关系,获取处理单元的标识关联的虚拟机的标识。
S303、处理单元给内存访问请求增加虚拟机的标识。
S304、处理单元将增加虚拟机的标识后的内存访问请求发送给内存控制器。
具体的,增加虚拟机的标识后,内存访问请求中携带虚拟机的标识和内存虚拟地址。
S305、内存控制器接收处理单元发送的内存访问请求。
具体的,内存控制器为计算机中的硬件实体,本身具有一定的计算能力,内存控制器可以内置于处理器中。
S306、内存控制器根据预设的内存地址映射关系查询与虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址。
具体的,内存地址映射关系表示虚拟机的标识与分配给虚拟机的内存的属性信息之间的映射关系,内存的属性信息包括但不限于内存虚拟地址区间基地址和内存物理地址区间基地址。内存虚拟地址区间基地址表示分配给虚拟机的内存的虚拟地址区间的偏移地址,内存虚拟地址区间表示分配给虚拟机的虚拟内存的地址范围;内存物理地址区间基地址表示分配给虚拟机的内存在计算机中的物理地址区间的偏移地址,内存物理地址区间表示分配给虚拟机的内存在计算机中的物理地址范围。
举例说明:内存地址映射关系如表2所示:
Figure BDA0001107558440000181
表2
假设:内存控制器接收内存访问请求,内存访问请求中携带的虚拟机的标识为ds-id1,内存虚拟地址为vaddr,内存控制器根据表2的内存地址映射关系查询到虚拟机的标识关联的内存虚拟地址区间基地址为base1,内存物理地址区间基地址为rebase1
可选的,在本发明的一种可能的实现方式中,内存控制器获取虚拟机的虚拟地址区间,虚拟机的内存虚拟地址区间表示分配给虚拟机的内存在虚拟机中呈现的内存地址范围,内存控制器判断内存访问请求中携带的内存虚拟地址是否位于内存虚拟地址区间中,如果是,内存控制器才能继续执行后续的内存虚拟地址到内存物理地址的转换。
进一步可选的,内存控制器获取虚拟机的虚拟内存地址区间包括:内存控制器根据预设的内存地址映射关系,查询与虚拟机的标识关联的内存虚拟地址区间基地址和内存虚拟地址区间长度,内存控制器根据内存虚拟地址区间基地址和虚拟内存地址区间长度得到虚拟机的虚拟内存地址区间。
具体的,控制器将内存虚拟地址区间基地址作为虚拟内存地址区间的最小值,控制器将虚拟地址区间基地址和内存虚拟地址区间长度进行求和得到虚拟内存地址区间的最大值。
举例说明,参见图2所示的内存地址映射关系,内存访问请求中携带的虚拟机的标识为ds-id2,内存控制器查询表2得到关联的内存虚拟地址区间基地址为base2,虚拟地址区间长度为len2,则虚拟机的内存虚拟地址区间可以表示为[base2,base2+len2]。
S307、内存控制器根据内存虚拟地址、内存虚拟地址区间基地址和内存物理地址区间基地址得到内存物理地址。
具体的,内存控制器可以将内存虚拟地址减去内存虚拟地址区间基地址得到一个差值,将该差值与内存物理地址区间基地址进行求和得到内存物理地址。
举例说明:虚拟机的标识ds-idn,内存虚拟地址为vaddr,控制器根据表2的内存地址映射关系查询到虚拟机的标识关联的内存虚拟地址区间基地址为basen,关联的内存物理地址区间基地址为rebasen,则内存物理地址paddr=vaddr-basen+rebasen
S308、内存控制器利用内存物理地址更新内存访问请求中的内存虚拟地址。
S309、内存控制器将更新后的资源访问请求发送给内存物理地址对应的内存,以访问内存。
下面就一个具体的实施例对本发明的应用于计算机的资源访问方法进行说明,内存地址映射关系如表3所示:
Figure BDA0001107558440000201
表3
内存控制器接收内存访问请求,内存访问请求中携带的虚拟机的标识为2,携带的内存虚拟地址为vaddr=0x80001234,内存控制器根据虚拟机的标识2在表3中查找到关联的内存虚拟地址空间基地址base=0x80000000,虚拟地址区间基地址长度len=0x200000000,物理地址空间基地址rebase=0x00000000,控制器判断虚拟内存地址是否位于虚拟机的内存虚拟地址区间内[0x80000000,0x80000000+0x20000000],判断结果为是,内存控制器得到内存物理地址paddr=0x80001234 0x80000000+0x00000000=0x00001234,内存控制器得到转换后的内存物理地址后,可以将内存访问请求中的内存虚拟地址更新后内存物理地址,内存控制器将更新后的内存访问请求发送给内存。
可选的,待访问资源包括内存,待访问资源的属性信息包括内存物理地址区间基地址和虚拟内存物理地址空间基地址,资源信息映射关系包括内存地址映射关系,内存地址映射关系表示虚拟机的标识与分配给虚拟机的内存的属性信息之间的映射关系。内存控制器接收处理单元发送的内存访问请求之前,还包括:资源管理器获取虚拟机的内存物理地址区间基地址,以及获取虚拟机的虚拟地址区间基地址,资源管理器根据虚拟机的标识、内存虚拟地址区间基地址和内存物理地址区间基地址生成内存地址映射关系。
上述实施例,内存控制器接收处理单元发送的内存访问请求,利用内存访问请求中携带的虚拟机的标识,根据内存地址映射关系将内存虚拟地址转换为内存物理地址。这样利用内存控制器自身的计算能力实现内存虚拟化的功能,与现有的由软件方式实现内存虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
参见图4,为本发明实施例提供的一种应用于计算机的资源访问方法的又一流程示意图,在本发明实施例中,所述方法包括:
S401、处理单元根据虚拟机的请求生成IO设备访问请求,IO设备访问请求携带IO设备虚拟地址。
具体的,虚拟机中的应用程序需要访问IO设备的情况下,处理单元生成IO设备访问请求,IO设备访问请求携带IO设备虚拟地址,IO设备虚拟地址表示待访问的IO设备在虚拟机中呈现的地址。
S402、处理单元根据预设的处理单元映射关系,获取与处理单元的标识关联的虚拟机的标识。
此步骤与S302相同。
S403、处理单元给IO设备访问请求增加虚拟机的标识。
此步骤与S303相同。
S404、处理单元将增加虚拟机的标识后的IO设备访问请求发送给IO设备控制器。
可参照S304的描述。
S405、IO设备控制器接收处理单元发送的IO设备访问请求。
具体的,IO设备为计算机中的硬件实体,本身具有一定的计算能力,IO设备可以内置与处理器中。
S406、IO设备控制器根据预设的IO设备映射关系,查询与虚拟机的标识关联的至少一个IO设备的设备号。
具体的,IO设备映射关系表示虚拟机的标识与分配给虚拟机的至少一个IO设备的设备号,设备号表示IO设备的身份标识,每个IO设备具有不同的设备号,设备映射关系可以用映射表、二维数组或其他形式表示。例如:IO设备映射关系如表4所示:
Figure BDA0001107558440000211
表4
根据表4的IO设备映射关系,可以得知表示为ds-id1的虚拟机分配有两个IO设备,其IO设备的设备号为1和2。ds-id2的虚拟机分配有两个IO设备,其IO设备的设备号为3和4。
S407、IO设备控制器获取至少一个IO设备的设备号各自关联的IO设备虚拟地址区间。
具体的,IO设备虚拟地址区间表示IO设备在虚拟机中呈现的地址范围,不同的IO设备具有不同的IO设备虚拟地址区间。如果1个虚拟机分配有多个IO设备,则该虚拟机对应多个IO设备虚拟地址区间。
可选的,IO设备控制器获取至少一个IO设备的设备号各自关联的IO设备虚拟地址区间包括:在预设的IO设备地址映射关系中,IO设备控制器查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度;根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间。
具体的,对于分配给虚拟机的至少一个IO设备中的每个IO设备,将对应的IO设备虚拟地址区间基地址作为IO设备虚拟地址区间的最小值,将IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度进行求和得到IO设备虚拟地址区间的最大值。
举例说明:IO设备地址映射关系如表5所示。
Figure BDA0001107558440000221
表5
对于设备号为n的IO设备来说,控制器查询表5得到设备号n关联的IO设备虚拟地址区间基地址为basen,关联的IO设备虚拟地址区间长度为lenn,则该IO设备的IO设备虚拟地址区间为[basen,basen+lenn]。
S408、IO设备控制器确定IO设备虚拟地址所在的IO设备虚拟地址区间,并将该IO设备虚拟地址区间关联的设备号设定为目标设备号。
具体的,由于虚拟机关联有至少一个IO设备,因此虚拟机对应多个IO设备虚拟地址区间,控制器根据IO设备访问请求中携带的IO设备虚拟地址,判断IO设备虚拟地址位于多个IO设备虚拟地址中的哪个,将IO设备虚拟地址所在的IO设备虚拟地址区间关联的设备号作为目标设备号。
S409、IO设备控制器根据预设的IO设备地址映射关系,查询与目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址。
S410、IO设备控制器根据IO设备虚拟地址区间基地址和IO设备物理地址区间基地址将IO设备虚拟地址转换为IO设备物理地址。
具体的,IO设备控制器将IO设备虚拟地址与IO设备虚拟地址区间基地址进行想减得到差值,将差值与IO设备物理区间基地址进行求和得到转换后的IO设备物理地址。
举例说明,IO设备地址映射关系如表5所示,假设S408中确定的目标设备号为1,IO设备访问请求中携带的IO设备虚拟地址为vaddr,IO设备控制器根据表5查询到关联的IO设备虚拟地址区间基地址为base1,关联的IO设备物理地址区间基地址为rebase1,则转换后的IO设备物理地址paddr=vaddr-base1+rebase1
S411、IO设备控制器利用IO设备物理地址更新IO设备访问请求中的IO设备虚拟地址。
S412、IO设备控制器将更新后的IO设备访问请求发送给IO设备物理地址对应的IO设备,以访问IO设备。其中,IO设备物理地址对应的IO设备为S408中目标设备号对应的IO设备。
下面就1个具体的实施例对本发明的应用于计算机的资源访问方法进行说明,IO设备映射关系如表6所示:
Figure BDA0001107558440000231
表6
IO设备地址映射关系如表7所示:
Figure BDA0001107558440000241
表7
假设IO设备访问请求中携带的IO设备虚拟地址vaddr为0x40000234,携带的虚拟机的标识为2,IO设备控制器根据虚拟机的标识,在表5中查询得到分配给虚拟机的IO设备的数量为2个,设备号分别为0和2,IO设备控制器在表7中查询设备号0和设备号2分别对应的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址,由此得到设备号0对应的IO设备的IO设备虚拟地址区间为[0x40000000,0x40000000+0x1000],设备号2对应的IO设备的IO设备虚拟地址区间为[0x40000000,0x40000000+0x2000],IO设备控制器判断出IO设备虚拟地址位于设备号为0的IO设备虚拟地址区间内,则设备号0为目标设备号,IO设备控制器根据表7中的设备号0关联的IO设备虚拟地址区间基地址为0x40000000,关联的IO设备物理地址区间基地址为0x40000000,则IO设备物理地址paddr=0x40000234-0x40000000+0x40000000=0x40000234,IO设备将得到的IO设备物理地址更新到IO设备访问请求中,将更新后的IO设备访问请求发送给设备号0对应的IO设备。
可选的,资源映射信息包括中断映射信息,所述方法还包括:接收分配给虚拟机的至少一个IO设备中任意一个IO设备发送的物理中断请求,其中,物理中断请求携带所述该IO设备的设备号和物理中断号,根据预设的IO设备映射关系,查询与所述设备号关联的虚拟机的标识;根据预设的中断映射关系,查询与所述物理中断号关联的虚拟中断号;根据所述虚拟中断号,更新所述物理中断请求中的所述物理中断号;将更新后的物理中断请求发送给所述虚拟机。
具体的,中断映射信息表示虚拟机的虚拟中断号与分配给虚拟机的IO设备的物理中断号的映射关系,中断映射关系可以采用映射表、二维数字获取其他形式表示。例如,中断映射关系如表8所示。
Figure BDA0001107558440000251
表8
假设某个IO设备发出了一个中断号为0的物理中断请求,IO设备控制器接收该物理中的请求,IO设备控制器根据IO设备映射关系,发现该IO设备绑定的虚拟机的标识为2,IO设备控制器根据表8的中的映射关系发现与物理中断号0绑定的虚拟中断号为1,IO设备控制器向虚拟机的标识为2的虚拟机发送虚拟中断号为0的物理中断请求。
可选的,所述资源为包括至少一个IO设备,所述资源的属性信息包括所述至少一个IO设备的物理中断号,所述资源信息映射关系包括中断映射关系;
IO设备控制器在接收处理单元发送的IO设备访问请求之前,所述根据所述虚拟机的标识与所述资源的属性信息生成资源信息映射关系包括:
资源管理器获取分配给所述虚拟机的至少一个IO设备的物理中断号,以及获取所述虚拟机的标识和虚拟中断号;根据所述虚拟机的标识、以及所述虚拟机的虚拟中断号与所述至少一个IO设备的物理中断号生成所述中断映射关系。
具体的,资源管理器预先给虚拟机分配至少一个IO设备,至少一个IO设备在虚拟机中呈现的中断号为虚拟中断号,至少一个IO设备在计算机中呈现的中断号为物理中断号,资源管理器将虚拟机的标识、虚拟机的物理中断号、至少一个IO设备的物理中断号进行绑定生成中断映射信息,中断映射信息的形式可参照表8所示。
可选的,所述资源信息映射关系包括IO设备地址映射关系,所述资源管理器根据所述虚拟机的标识与所述资源的属性信息生成资源信息映射关系的步骤,还包括:
资源管理器获取所述至少一个IO设备各自对应的设备号,将所述虚拟机的标识与所述至少一个IO设备各自对应的设备号进行绑定后生成IO设备映射关系;
资源管理器获取所述至少一个IO设备各自对应的物理地址区间基地址,根据所述虚拟机的标识、所述虚拟机的IO设备虚拟地址区间基地址、所述虚拟机的IO设备虚拟地址区间长度、以及所述至少一个IO设备各自对应的IO设备物理地址区间基地址生成所述IO设备地址映射关系。
IO设备映射关系可参照表6所示,IO设备地址映射关系可参照表7所示,此处不再赘述。
参见图5,为本发明实施例提供的一种计算机的另一结构示意图,在本发明实施例中,该计算机包括资源管理器15、资源控制器14和资源,资源包括一个或多个内存161~16k、一个或多个处理单元121~12n以及一个或多个IO设备171~17m,m、n和k为大于0的整数。
资源管理器15从资源中选取物理资源,根据选取的物理资源创建虚拟机111;为虚拟机111分配标识,根据虚拟机111的标识和选取的物理资源的属性信息生成资源信息映射关系,并将资源信息映射关系发送给资源控制器15;
资源控制器15用于接收111虚拟机针对资源的资源访问请求,资源访问请求携带资源虚拟地址以及虚拟机111的标识;利用虚拟机111的标识,根据预设的资源信息映射关系,将资源虚拟地址转换为资源物理地址;利用资源物理地址更新资源访问请求中的资源虚拟地址;以及将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。
进一步的,资源管理器14包括第一处理器141、第一收发器143和第一存储器142。资源管理器14中的第一处理器141的数量可以是一个或多个。本发明的一些实施例中,第一处理器141、第一存储器142和第一收发器143可通过总线系统或其他方式连接,第一处理器141、第一存储器142和第一收发器143之间可通过有线方式连接,也可以通过无线传输等其他手段实现通信。其中,第一收发器143用接收外部设备发送的指令或数据,以及向外部设备发送指令或数据。第一存储器142中存储程序代码。资源控制器15包括第二处理器151、第二收发器153、第二存储器152和缓冲器154。资源控制器15中的第二处理器151的数量可以是一个或多个。本发明的一些实施例中,第二处理器151、第二存储器152、第二收发器153和缓冲器154可通过总线系统或其他方式连接,第二处理器151、第二存储器152、第一收发器153和缓冲器154之间可通过有线方式连接,也可以通过无线传输等其他手段实现通信。其中,第二收发器153用接收外部设备发送的指令或数据,以及向外部设备发送指令或数据,缓冲器154起缓冲作用。第二存储器153中存储程序代码。
本实施例与图2至图4的方法实施例基于同一构思,具体过程和相关技术术语可参照图2至图4的描述,此处不再赘述。
需要说明的是,第一处理器141和第二处理器151可以通过专用集成电路(英文:Application-Specific Integrated Circuit,缩写:ASIC)实现,或可编程逻辑器件(英文:Programmable Logic Device,缩写:PLD)实现。上述PLD可以是复杂可编程逻辑器件(英文:Complex Programmable Logic Device,缩写:CPLD),FPGA,通用阵列逻辑(英文:GenericArray Logic,缩写:GAL)或其任意组合。
其中,第一处理器141调用第一存储器142中存放的程序代码,第一处理器141用于从资源中选取物理资源,其中物理资源包括处理单元121,并根据选取的物理资源创建虚拟机111,处理单元121和虚拟机111具有绑定关系;为所虚拟机111分配标识;根据虚拟机111的标识与物理资源的属性信息生成资源信息映射关系,将资源信息映射关系存储至第一存储器142中;
第一收发器143用于将资源信息映射关系发送给资源控制器15的缓冲器154,资源控制器15可以将资源信息映射关系发送给处理单元121,资源管理器14可可以直接向资源信息映射关系发送给处理单元121,本发明不作限制。
第二处理器151调用第二存储器152中存放的程序代码,第二处理器151用于从缓冲器154中取出资源信息映射关系,将资源信息映射关系存储至第二存储器152;
缓冲器154接收处理单元121发送的资源访问请求,资源访问请求携带资源虚拟地址,以及虚拟机111的标识;
第二处理器151还用于从缓冲器154中取出资源访问请求,利用虚拟机111的标识,根据第二存储器152中存放的资源信息映射关系,将资源虚拟地址转换为资源物理地址;利用资源物理地址更新资源访问请求中的资源虚拟地址;
第二收发器153将更新后的资源访问请求发送给资源物理地址对应的待访问资源,以访问待访问资源。
在一种可能的实施方式中,第一处理器141将资源信息映射关系中包括的处理单元映射关系发送给处理单元121,处理单元121将处理单元映射关系存放到内部的寄存器组1211中,处理单元121根据虚拟机的请求生成资源访问请求,资源访问请求携带资源虚拟地址;根据寄存器组1211中存储的处理单元映射关系,获取与处理单元121的标识关联的虚拟机111的标识;给资源访问请求增加虚拟机111的标识;将增加虚拟机111的标识后的资源访问请求发送给缓冲器154。
在一种可能的实施方式中,资源控制器15为内存控制器,资源虚拟地址为内存虚拟地址,资源物理地址为内存物理地址,待访问资源为内存,资源信息映射关系包括内存地址映射关系;
第二处理器151包括:第一控制器和第一运算器;
第一控制器根据第二存储器152中存放的内存地址映射关系查询与虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址;
第一运算器根据内存虚拟地址、内存虚拟地址区间基地址和内存物理地址区间基地址得到内存物理地址。
在一种可能的实现方式中,第一运算器具体用于根据公式paddr=vaddr-base+rebase将内存虚拟地址转换为内存物理地址;其中,paddr为内存物理地址,vaddr为虚拟内存地址,base为内存虚拟地址区间基地址,rebase为内存物理地址区间基地址。
在一种可能的实现方式中,资源控制器15为IO设备控制器,资源虚拟地址为IO设备虚拟地址,资源物理地址为IO设备物理地址,待访问资源为IO设备,资源信息映射关系包括IO设备映射关系和IO设备地址映射关系;
第二处理器531包括:第二控制器和第二运算器
第二控制器根据第二存储器152中存放的IO设备映射关系,查询与虚拟机111的标识关联的至少一个IO设备的设备号;在第二存储器152中存放的IO设备地址映射关系中,IO设备控制器查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度;根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间;确定IO设备虚拟地址所在的IO设备虚拟地址区间,并将该IO设备虚拟地址区间关联的设备号设定为目标设备号;根据预设的IO设备地址映射关系,查询与目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址;
第二运算器根据IO设备虚拟地址区间基地址和IO设备物理地址区间基地址将IO设备虚拟地址转换为IO设备物理地址。
在一种可能的实现方式中,第二运算器具体用于:
根据公式paddr=vaddr-base+rebase将IO设备虚拟地址转换为IO设备物理地址;其中,paddr为IO设备物理地址,vaddr为IO设备虚拟地址,base为IO设备虚拟地址区间基地址,rebase为IO设备物理地址区间基地址。
在一种可能的实现方式中,资源信息映射关系包括中断映射关系,IO设备控制器还包括:中断控制器:
缓冲器154接收至少一个IO设备中任意一个IO设备发送的物理中断请求,其中,物理中断请求携带该IO设备的设备号和物理中断号;
中断控制器根据第二存储器152中存放的IO设备映射关系,查询与设备号关联的虚拟机的标识;根据第二存储器532中存放的中断映射关系,查询与物理中断号关联的虚拟中断号;根据虚拟中断号,更新物理中断请求中的物理中断号;将更新后的物理中断请求发送给虚拟机111。
在一种可能的实现方式中,物理资源包括处理单元121,物理资源的属性信息包括处理单元121的标识;
第一处理器141用于根据虚拟机111的标识与处理单元121的标识生成处理单元映射关系,并将处理单元映射关系存储至处理单元121的寄存器组1211。
在一种可能的实现方式中,物理资源包括内存,物理资源的属性信息包括:内存物理地址区间的内存物理地址区间基地址,资源信息映射关系包括内存地址映射关系;
第一处理器141还用于获取分配给虚拟机111的内存物理地址区间基地址,以及获取虚拟机111的内存虚拟地址区间基地址;根据虚拟机111的标识、以及内存虚拟地址区间基地址与物理地址区间基地址生成内存地址映射关系,将内存地址映射关系存储至第一存储器142。
在一种可能的实现方式中,物理资源为包括至少一个IO设备,物理资源的属性信息包括至少一个IO设备的物理中断号,资源信息映射关系包括中断映射关系;
第一处理器141还用于:
获取分配给虚拟机111的至少一个IO设备的物理中断号,以及获取虚拟机111的标识和虚拟中断号;根据虚拟机111的标识、以及虚拟机111的虚拟中断号与至少一个IO设备的物理中断号生成中断映射关系;将中断映射关系存储至第一存储器142。
在一种可能的实现方式中,资源信息映射关系包括IO设备地址映射关系;
第一处理器141还用于:获取至少一个IO设备各自对应的设备号,将虚拟机的标识与至少一个IO设备各自对应的设备号进行绑定后生成IO设备映射关系;获取至少一个IO设备各自对应的物理地址区间基地址,根据虚拟机111的标识、虚拟机111的IO设备虚拟地址区间基地址、虚拟机111的IO设备虚拟地址区间长度、以及至少一个IO设备各自对应的IO设备物理地址区间基地址生成IO设备地址映射关系;将IO设备地址映射关系存储至第一存储器142。
上述实施例,资源控制器接收虚拟机针对资源的资源访问请求,利用资源访问请求中携带的虚拟机的标识,根据资源信息映射关系将资源虚拟地址转换为资源物理地址。这样利用资源控制器自身的计算能力实现资源虚拟化的功能,与现有的由软件方式实现资源虚拟化相比,减少了中间层的处理,提供虚拟机的运行性能,同时减少物理资源的占用,能将更多的物理资源分配给虚拟机。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (22)

1.一种应用于计算机的资源访问方法,其特征在于,所述计算机包括资源,资源管理器,以及多个资源控制器,所述资源包括至少一个处理单元;在所述计算机中运行一个虚拟机;
所述资源管理器从所述资源中选取物理资源,根据所述选取的物理资源创建所述虚拟机;
所述资源管理器为所述虚拟机分配标识;
所述资源管理器根据所述虚拟机的标识和所述选取的物理资源的属性信息生成资源信息映射关系,并将所述资源信息映射关系发送给所述资源控制器,其中所述属性信息包括所述选取的物理资源对应的第一处理单元的标识,所述资源信息映射关系包括所述第一处理单元的映射关系;
所述处理单元根据各个资源控制器的地址段选择目标资源控制器;
所述目标资源控制器接收所述虚拟机针对所述资源的资源访问请求,所述资源访问请求携带资源虚拟地址以及所述虚拟机的标识;
所述目标资源控制器利用所述虚拟机的标识,根据预设的资源信息映射关系,将所述资源虚拟地址转换为资源物理地址;
所述目标资源控制器利用所述资源物理地址更新资源访问请求中的所述资源虚拟地址;
所述目标资源控制器将更新后的资源访问请求发送给所述资源物理地址对应的待访问资源,以访问所述待访问资源。
2.如权利要求1所述的方法,其特征在于,所述资源信息映射关系包括处理单元映射关系,所述处理单元映射关系包括所述虚拟机的标识和1个处理单元标识的对应关系,在所述目标资源控制器接收针对所述资源的资源访问请求之前,还包括:
所述处理单元根据所述虚拟机的请求生成资源访问请求,所述资源访问请求携带所述资源虚拟地址;
根据所述处理单元映射关系,所述处理单元获取与所述处理单元的标识关联的所述虚拟机的标识;
所述处理单元给所述资源访问请求增加所述虚拟机的标识;
所述处理单元将增加所述虚拟机的标识后的资源访问请求发送给所述目标资源控制器。
3.如权利要求1或2所述的方法,其特征在于,所述目标资源控制器为内存控制器,所述资源虚拟地址为内存虚拟地址,所述资源物理地址为内存物理地址,所述待访问资源为内存,所述资源信息映射关系包括内存地址映射关系;
所述资源物理地址的转换步骤包括:
根据所述内存地址映射关系,查询与所述虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址;
根据所述内存虚拟地址、所述内存虚拟地址区间基地址和所述内存物理地址区间基地址获取所述内存物理地址。
4.如权利要求3所述的方法,其特征在于,所述内存物理地址的获取步骤包括:
根据公式paddr=vaddr-base+rebase将所述内存虚拟地址转换为所述内存物理地址;其中,paddr为所述内存物理地址,vaddr为所述虚拟内存地址,base为所述内存虚拟地址区间基地址,rebase为所述内存物理地址区间基地址。
5.如权利要求1或2所述的方法,其特征在于,所述目标资源控制器为IO设备控制器,所述资源虚拟地址为输入输出IO设备虚拟地址,所述资源物理地址为IO设备物理地址,所述待访问资源为IO设备,所述资源信息映射关系包括IO设备映射关系和IO设备地址映射关系;
所述资源物理地址的转换步骤包括:
根据所述IO设备映射关系,查询与所述虚拟机的标识关联的至少一个IO设备的设备号;
获取所述至少一个IO设备的设备号各自关联的IO设备虚拟地址区间;
确定所述IO设备虚拟地址所在的IO设备虚拟地址区间,并将该IO设备虚拟地址区间关联的设备号设定为目标设备号;
根据所述IO设备地址映射关系,查询与所述目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址;
根据所述IO设备虚拟地址区间基地址和所述IO设备物理地址区间基地址将所述IO设备虚拟地址转换为所述IO设备物理地址。
6.如权利要求5所述的方法,其特征在于,所述获取所述至少一个IO设备的设备号各自关联的IO设备虚拟地址区间包括:
在所述IO设备地址映射关系中,所述IO设备控制器查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度;
根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定所述至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间。
7.如权利要求5所述的方法,其特征在于,所述IO设备物理地址的转换步骤包括:
根据公式paddr=vaddr-base+rebase将IO设备虚拟地址转换为IO设备物理地址;其中,paddr为所述IO设备物理地址,vaddr为所述IO设备虚拟地址,base为所述IO设备虚拟地址区间基地址,rebase为所述IO设备物理地址区间基地址。
8.如权利要求5所述的方法,其特征在于,所述资源信息映射关系包括中断映射关系,所述方法还包括:
接收所述至少一个IO设备中任意一个IO设备发送的物理中断请求,其中,所述物理中断请求携带所述该IO设备的设备号和物理中断号;
根据所述IO设备映射关系,查询与所述设备号关联的虚拟机的标识;
根据所述中断映射关系,查询与所述物理中断号关联的虚拟中断号;
根据所述虚拟中断号,更新所述物理中断请求中的所述物理中断号;
将更新后的物理中断请求发送给所述虚拟机。
9.如权利要求1所述的方法,其特征在于,所述物理资源包括分配给所述虚拟机的内存,所述资源的属性信息包括:所述内存物理地址区间的内存物理地址区间基地址,所述资源信息映射关系包括内存地址映射关系;
所述资源管理器根据所述虚拟机的标识与所述选取的物理资源的属性信息生成所述资源信息映射关系包括:
获取分配给所述虚拟机的内存物理地址区间基地址,以及获取所述虚拟机的内存虚拟地址区间基地址;
根据所述虚拟机的标识、以及内存虚拟地址区间基地址与所述物理地址区间基地址生成所述内存地址映射关系。
10.如权利要求1所述的方法,其特征在于,所述物理资源包括至少一个分配给所述虚拟机的IO设备,所述资源的属性信息包括所述至少一个IO设备的物理中断号,所述资源信息映射关系包括中断映射关系;
所述资源管理器根据所述虚拟机的标识与所述选取的物理资源的属性信息生成所述资源信息映射关系包括:
获取分配给所述虚拟机的至少一个IO设备的物理中断号,以及获取所述虚拟机的标识和虚拟中断号;
根据所述虚拟机的标识、以及所述虚拟机的虚拟中断号与所述至少一个IO设备的物理中断号生成所述中断映射关系。
11.如权利要求10所述的方法,其特征在于,所述资源信息映射关系包括IO设备地址映射关系;
所述资源管理器根据所述虚拟机的标识与所述选取的物理资源的属性信息生成所述资源信息映射关系包括:
获取所述至少一个IO设备各自对应的设备号,将所述虚拟机的标识与所述至少一个IO设备各自对应的设备号进行绑定后生成IO设备映射关系;
获取所述至少一个IO设备各自对应的物理地址区间基地址,根据所述虚拟机的标识、所述虚拟机的IO设备虚拟地址区间基地址、所述虚拟机的IO设备虚拟地址区间长度、以及所述至少一个IO设备各自对应的IO设备物理地址区间基地址生成所述IO设备地址映射关系。
12.一种计算机,其特征在于,包括资源管理器、资源以及多个资源控制器,所述资源包括至少一个处理单元,
所述资源管理器,用于从所述资源中选取物理资源,根据所述选取的物理资源创建虚拟机;为所述虚拟机分配标识,根据所述虚拟机的标识和所述选取的物理资源的属性信息生成资源信息映射关系,并将所述资源信息映射关系发送给所述资源控制器,其中所述属性信息包括所述选取的物理资源对应的第一处理单元的标识,所述资源信息映射关系包括所述第一处理单元的映射关系;
所述处理单元用于根据各个资源控制器的地址段选择目标资源控制器;
所述目标资源控制器,用于接收所述虚拟机针对所述资源的资源访问请求,所述资源访问请求携带资源虚拟地址以及所述虚拟机的标识;利用所述虚拟机的标识,根据预设的资源信息映射关系,将所述资源虚拟地址转换为资源物理地址;利用所述资源物理地址更新资源访问请求中的所述资源虚拟地址;以及将更新后的资源访问请求发送给所述资源物理地址对应的待访问资源,以访问所述待访问资源。
13.根据权利要求12所述的计算机,其特征在于,所述资源管理器包括第一处理器、第一存储器和第一收发器;所述目标资源控制器包括第二处理器、第二存储器、第二收发器和缓冲器;所述资源还包括内存和IO设备;
所述第一处理器,用于从所述资源中选取物理资源,并根据所述选取的物理资源创建所述虚拟机;为所述虚拟机分配标识;根据所述虚拟机的标识与所述物理资源的属性信息生成资源信息映射关系,以及将所述资源信息映射关系存储至所述第一存储器中;
所述第一收发器,用于将所述资源信息映射关系发送给所述缓冲器;
所述第二处理器,用于从所述缓冲器中取出所述资源信息映射关系,将所述资源信息映射关系存储至所述第二存储器;
所述缓冲器,用于接收所述虚拟机针对所述资源发送的资源访问请求,所述资源访问请求携带资源虚拟地址,以及所述虚拟机的标识;
所述第二处理器,用于从所述缓冲器中取出所述资源访问请求,利用所述虚拟机的标识,根据所述第二存储器中存放的资源信息映射关系,将所述资源虚拟地址转换为资源物理地址;利用所述资源物理地址更新资源访问请求中的所述资源虚拟地址;
第二收发器,用于将更新后的资源访问请求发送给所述资源物理地址对应的待访问资源,以访问所述待访问资源。
14.如权利要求13所述的计算机,其特征在于,所述处理单元包括寄存器组,所述寄存器组中存放处理单元映射关系,所述处理单元映射关系包括所述虚拟机的标识和1个处理单元标识的对应关系,所述处理单元用于:
根据所述虚拟机的请求生成资源访问请求,所述资源访问请求携带所述资源虚拟地址;根据所述寄存器组中存储的处理单元映射关系,获取与所述处理单元的标识关联的所述虚拟机的标识;给所述资源访问请求增加所述虚拟机的标识;将增加所述虚拟机的标识后的资源访问请求发送给所述缓冲器。
15.如权利要求13或14所述的计算机,其特征在于,所述目标资源控制器为内存控制器,所述资源虚拟地址为内存虚拟地址,所述资源物理地址为内存物理地址,所述待访问资源为内存,所述资源信息映射关系包括内存地址映射关系;
所述第二处理器包括:
第一控制器,用于根据所述第二存储器中存放的所述内存地址映射关系查询与所述虚拟机的标识关联的内存虚拟地址区间基地址和内存物理地址区间基地址;
第一运算器,用于根据所述内存虚拟地址、所述内存虚拟地址区间基地址和所述内存物理地址区间基地址得到所述内存物理地址。
16.如权利要求15所述的计算机,其特征在于,所述第一运算器具体用于根据公式paddr=vaddr-base+rebase将所述内存虚拟地址转换为所述内存物理地址;其中,paddr为所述内存物理地址,vaddr为所述虚拟内存地址,base为所述内存虚拟地址区间基地址,rebase为所述内存物理地址区间基地址。
17.如权利要求13或14所述的计算机,其特征在于,所述目标资源控制器为IO设备控制器,所述资源虚拟地址为IO设备虚拟地址,所述资源物理地址为IO设备物理地址,所述待访问资源为IO设备,所述资源信息映射关系包括IO设备映射关系和IO设备地址映射关系;
所述第二处理器包括:
第二控制器,用于根据所述第二存储器中存放的所述IO设备映射关系,查询与所述虚拟机的标识关联的至少一个IO设备的设备号;在所述第二存储器中存放的所述IO设备地址映射关系中,查询与至少一个IO设备的设备号各自关联的IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度;根据IO设备虚拟地址区间基地址和IO设备虚拟地址区间长度确定所述至少一个IO设备的设备号中每个设备号关联的IO设备虚拟地址区间;确定所述IO设备虚拟地址所在的IO设备虚拟地址区间,并将该IO设备虚拟地址区间关联的设备号设定为目标设备号;根据预设的IO设备地址映射关系,查询与所述目标设备号关联的IO设备虚拟地址区间基地址和IO设备物理地址区间基地址;
第二运算器,用于根据所述IO设备虚拟地址区间基地址和所述IO设备物理地址区间基地址将所述IO设备虚拟地址转换为所述IO设备物理地址。
18.如权利要求17所述的计算机,其特征在于,所述第二运算器具体用于:
根据公式paddr=vaddr-base+rebase将IO设备虚拟地址转换为IO设备物理地址;其中,paddr为所述IO设备物理地址,vaddr为所述IO设备虚拟地址,base为所述IO设备虚拟地址区间基地址,rebase为所述IO设备物理地址区间基地址。
19.如权利要求17所述的计算机,其特征在于,所述资源信息映射关系包括中断映射关系,所述IO设备控制器还包括:中断控制器:
所述缓冲器,用于接收所述至少一个IO设备中任意一个IO设备发送的物理中断请求,其中,所述物理中断请求携带所述该IO设备的设备号和物理中断号;
所述中断控制器,用于根据所述第二存储器中存放的所述IO设备映射关系,查询与所述设备号关联的虚拟机的标识;根据所述第二存储器中存放的所述中断映射关系,查询与所述物理中断号关联的虚拟中断号;根据所述虚拟中断号,更新所述物理中断请求中的所述物理中断号;将更新后的物理中断请求发送给所述虚拟机。
20.如权利要求15或16所述的计算机,其特征在于,所述物理资源包括分配给所述虚拟机的内存,所述物理资源的属性信息包括:所述内存物理地址区间的内存物理地址区间基地址,所述资源信息映射关系包括内存地址映射关系;
所述第一处理器用于获取分配给所述虚拟机的内存物理地址区间基地址,以及获取所述虚拟机的内存虚拟地址区间基地址;根据所述虚拟机的标识、以及内存虚拟地址区间基地址与所述物理地址区间基地址生成所述内存地址映射关系,将所述内存地址映射关系存储至所述第一存储器。
21.如权利要求19所述的计算机,其特征在于,所述物理资源包括分配给所述虚拟机的至少一个IO设备,所述物理资源的属性信息包括所述至少一个IO设备的物理中断号,所述资源信息映射关系包括中断映射关系;
所述第一处理器用于:
获取分配给所述虚拟机的至少一个IO设备的物理中断号,以及获取所述虚拟机的标识和虚拟中断号;根据所述虚拟机的标识、以及所述虚拟机的虚拟中断号与所述至少一个IO设备的物理中断号生成所述中断映射关系;
将所述中断映射关系存储至所述第一存储器。
22.如权利要求17所述的计算机,其特征在于,所述资源信息映射关系包括IO设备地址映射关系;
所述第一处理器还用于:
获取所述至少一个IO设备各自对应的设备号,将所述虚拟机的标识与所述至少一个IO设备各自对应的设备号进行绑定后生成IO设备映射关系;
获取所述至少一个IO设备各自对应的物理地址区间基地址,根据所述虚拟机的标识、所述虚拟机的IO设备虚拟地址区间基地址、所述虚拟机的IO设备虚拟地址区间长度、以及所述至少一个IO设备各自对应的IO设备物理地址区间基地址生成所述IO设备地址映射关系;
将所述IO设备地址映射关系存储至第一存储器。
CN201610797862.0A 2016-08-31 2016-08-31 一种应用于计算机的资源访问方法和计算机 Active CN107783913B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610797862.0A CN107783913B (zh) 2016-08-31 2016-08-31 一种应用于计算机的资源访问方法和计算机
EP17845377.5A EP3467663A4 (en) 2016-08-31 2017-08-28 RESOURCE ACCESS PROCEDURE FOR A COMPUTER AND COMPUTER
PCT/CN2017/099337 WO2018041075A1 (zh) 2016-08-31 2017-08-28 一种应用于计算机的资源访问方法和计算机
US16/251,883 US10970104B2 (en) 2016-08-31 2019-01-18 Resource access method applied to computer and computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610797862.0A CN107783913B (zh) 2016-08-31 2016-08-31 一种应用于计算机的资源访问方法和计算机

Publications (2)

Publication Number Publication Date
CN107783913A CN107783913A (zh) 2018-03-09
CN107783913B true CN107783913B (zh) 2021-12-03

Family

ID=61300020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610797862.0A Active CN107783913B (zh) 2016-08-31 2016-08-31 一种应用于计算机的资源访问方法和计算机

Country Status (4)

Country Link
US (1) US10970104B2 (zh)
EP (1) EP3467663A4 (zh)
CN (1) CN107783913B (zh)
WO (1) WO2018041075A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107085535B (zh) * 2017-03-30 2020-10-27 联想(北京)有限公司 一种信息处理方法及电子设备
CN110392084B (zh) * 2018-04-20 2022-02-15 伊姆西Ip控股有限责任公司 在分布式系统中管理地址的方法、设备和计算机程序产品
CN109766165B (zh) * 2018-11-22 2022-07-08 海光信息技术股份有限公司 一种内存访问控制方法、装置、内存控制器及计算机系统
CN109684031B (zh) * 2018-11-22 2021-07-06 海光信息技术股份有限公司 一种访问虚拟机控制块的方法和装置以及cpu核
JP7306964B2 (ja) * 2019-11-05 2023-07-11 ルネサスエレクトロニクス株式会社 仮想化システムおよび動作管理方法
US11550482B2 (en) * 2020-04-09 2023-01-10 Synaptics Incorporated Page-based memory access control
CN111666579B (zh) * 2020-06-18 2024-03-08 安谋科技(中国)有限公司 计算机设备及其访问控制方法和计算机可读介质
CN112330229B (zh) * 2020-12-02 2023-09-22 北京元心科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质
CN113111012B (zh) * 2021-04-14 2023-07-25 景德镇市明泰精工瓷业有限公司 一种应用数据定位器生成方法及应用数据定位方法
CN113347239B (zh) * 2021-05-27 2023-01-10 北京奇艺世纪科技有限公司 通信请求处理方法、装置、系统、电子设备及存储介质
CN113254160B (zh) * 2021-06-28 2022-04-08 北京大禹智芯科技有限公司 一种io资源请求方法和装置
CN114356812B (zh) * 2021-12-31 2022-08-26 元心信息科技集团有限公司 中断处理方法、装置、电子设备及计算机可读存储介质
CN117170854A (zh) * 2022-05-26 2023-12-05 华为技术有限公司 一种内存访问方法及相关设备
CN115460172B (zh) * 2022-08-22 2023-12-05 曙光信息产业股份有限公司 设备地址分配方法、装置、计算机设备、介质及程序产品
CN115840618B (zh) * 2022-12-23 2023-08-11 科东(广州)软件科技有限公司 一种hypervisor中虚拟机模拟设备寄存器的访问方法及装置
CN115904634B (zh) * 2023-01-17 2023-08-15 北京象帝先计算技术有限公司 资源管理方法、系统级芯片、电子组件及电子设备
CN116431293B (zh) * 2023-06-14 2023-09-26 麒麟软件有限公司 一种在jailhouse实现PCIE设备隔离的方法
CN117785493A (zh) * 2024-02-28 2024-03-29 苏州元脑智能科技有限公司 嵌入式系统的硬件资源访问方法、装置及服务器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751284A (zh) * 2009-12-25 2010-06-23 北京航空航天大学 一种分布式虚拟机监控器的i/o资源调度方法
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
CN104375890A (zh) * 2008-12-31 2015-02-25 英特尔公司 用于执行安全嵌入式容器的处理器扩展
CN105159753A (zh) * 2015-09-25 2015-12-16 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器
CN105210037A (zh) * 2013-05-10 2015-12-30 英派尔科技开发有限公司 存储器访问的加快
CN105874764A (zh) * 2014-12-10 2016-08-17 华为技术有限公司 计算机及设备访问方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383374B2 (en) * 2005-03-31 2008-06-03 Intel Corporation Method and apparatus for managing virtual addresses
CN100472451C (zh) * 2006-04-20 2009-03-25 联想(北京)有限公司 一种虚拟机系统及其硬件设备访问方法
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
JP5737050B2 (ja) * 2011-08-15 2015-06-17 富士通株式会社 情報処理装置、割込み制御方法および割込み制御プログラム
CN102306126B (zh) * 2011-08-24 2014-06-04 华为技术有限公司 内存管理方法、装置和系统
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US20160179580A1 (en) * 2013-07-30 2016-06-23 Hewlett Packard Enterprise Development L.P. Resource management based on a process identifier
US9519596B2 (en) * 2014-03-06 2016-12-13 Stmicroelectronics (Grenoble 2) Sas Resource access control in a system-on-chip
US20150277949A1 (en) * 2014-03-27 2015-10-01 Thiam Wah Loh Securing shared interconnect for virtual machine
US9665309B2 (en) * 2014-06-27 2017-05-30 International Business Machines Corporation Extending existing storage devices in virtualized environments
CN106445628A (zh) * 2015-08-11 2017-02-22 华为技术有限公司 一种虚拟化方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375890A (zh) * 2008-12-31 2015-02-25 英特尔公司 用于执行安全嵌入式容器的处理器扩展
CN101751284A (zh) * 2009-12-25 2010-06-23 北京航空航天大学 一种分布式虚拟机监控器的i/o资源调度方法
CN102792286A (zh) * 2010-03-16 2012-11-21 超威半导体公司 虚拟化处理系统中的地址映射
CN105210037A (zh) * 2013-05-10 2015-12-30 英派尔科技开发有限公司 存储器访问的加快
CN105874764A (zh) * 2014-12-10 2016-08-17 华为技术有限公司 计算机及设备访问方法
CN105159753A (zh) * 2015-09-25 2015-12-16 华为技术有限公司 加速器虚拟化的方法、装置及集中资源管理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Differentiated services in computers via programmable architecture for resourcing-on-demand(PARD)";Jiuyue Ma,xiufeng Sui,etal.;《ACM SIGPLAN Notices》;20150331;第50卷;第131-143页 *

Also Published As

Publication number Publication date
WO2018041075A1 (zh) 2018-03-08
US20190155637A1 (en) 2019-05-23
EP3467663A1 (en) 2019-04-10
US10970104B2 (en) 2021-04-06
EP3467663A4 (en) 2019-07-24
CN107783913A (zh) 2018-03-09
WO2018041075A9 (zh) 2018-12-06

Similar Documents

Publication Publication Date Title
CN107783913B (zh) 一种应用于计算机的资源访问方法和计算机
WO2017024783A1 (zh) 一种虚拟化方法、装置和系统
JP5735070B2 (ja) パーティション分割されたシステムにおいて、デバイスがメモリにアクセスするための、ゲスト・アドレスからホスト・アドレスへの変換
US11256445B2 (en) Virtual disk file format conversion method and apparatus
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
US10146463B2 (en) Method and apparatus for a virtual system on chip
US20160239333A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US10019276B2 (en) Dynamic non-uniform memory architecture (NUMA) locality for remote direct memory access (RDMA) applications
US8135899B1 (en) Expansion of virtualized physical memory of virtual machine
CN101088078A (zh) 虚拟化中图形地址的一步地址转换
JP2013515983A (ja) 仮想化環境においてi/o処理を行う方法および装置
CN110058946B (zh) 设备虚拟化方法、装置、设备及存储介质
CN113032103B (zh) 基于高速网卡sr-iov功能的vf资源动态调度方法
US11048644B1 (en) Memory mapping in an access device for non-volatile memory
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
US11042394B2 (en) Method for processing input and output on multi kernel system and apparatus for the same
US20070136550A1 (en) Methods and apparatus for data transfer between partitions in a computer system
US9766918B2 (en) Virtual system device identification using GPU to host bridge mapping
CN112330229B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
US20230185593A1 (en) Virtual device translation for nested virtual machines
KR20120070326A (ko) 메모리 가상화 장치 및 방법
US20220318040A1 (en) System and method for providing page migration
US11429412B2 (en) Guest protection from application code execution in kernel mode
CN115904634B (zh) 资源管理方法、系统级芯片、电子组件及电子设备
US20210081335A1 (en) Managing memory in an electronic device

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