CN109542581B - 一种设备共享方法、装置及存储介质 - Google Patents
一种设备共享方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109542581B CN109542581B CN201710867773.3A CN201710867773A CN109542581B CN 109542581 B CN109542581 B CN 109542581B CN 201710867773 A CN201710867773 A CN 201710867773A CN 109542581 B CN109542581 B CN 109542581B
- Authority
- CN
- China
- Prior art keywords
- virtual
- storage
- nth
- read
- sharing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种设备共享方法、装置及存储介质,上述设备共享方法包括:获取共享指令,响应共享指令,注册n个虚拟设备;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。
Description
技术领域
本发明涉及虚拟机共享物理设备技术,尤其涉及一种设备共享方法、装置及存储介质。
背景技术
虚拟机(Virtual Machine,VM)指通过软件模拟的、具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术包括操作系统中内存的虚拟化。通常情况下,虚拟机访问一个物理设备所采用的方式为将该物理设备分配到虚拟机中,让虚拟机可以直接操作,然而采用这种方式进行访问时,该物理设备只能被一个虚拟机使用,不能同时被多个虚拟机访问。为了使多个虚拟机同时共用一个物理设备,常常将支持SRIOV技术的物理设备虚拟成多个VF接口,每个VF接口都有单独的虚拟PCIe快速外设组件互连(Peripheral Component Interconnect Express,PCIe)通道,这些虚拟的PCIe通道共用物理设备的PCIe通道。同时,每个VF都有各自独立的配置空间,每个虚拟机可占用一个或者多个VF接口,并根据对应的配置空间进行读写,从而便可以使多个虚拟机同时共享访问一个物理设备而不互相影响。
虽然基于SRIOV技术的访问方式可以克服一个物理设备只能被一个虚拟机使用的缺陷,可是,对于不支持SRIOV技术的物理设备,例如,大部分现场可编程门阵列(FieldProgRAMmable Gate Array,FPGA)芯片由于资源限制并不支持PCIe的SRIOV技术,现有技术并没有有效的解决方案,也就是说,现有的虚拟机访问物理设备的访问技术,并不能使不支持SRIOV的FPGA设备同时被多个虚拟机访问,使得这类FPGA设备的适配性较低。
发明内容
本发明实施例提供一种设备共享方法、装置及存储介质,能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种设备共享方法,包括:
获取共享指令,响应所述共享指令,注册n个虚拟设备;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,所述n个虚拟设备对应的设备标识为0至n-1;
将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;
获取预存已扩展存储标识域,将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;
获取所述n个虚拟机对应的物理存储地址,并根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;
所述n个虚拟机根据所述映射关系,进行设备共享。
在上述方案中,所述获取共享指令,响应所述共享指令,注册n个虚拟设备之前,所述方法还包括:
开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;
获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域。
在上述方案中,所述响应所述共享指令,注册n个虚拟设备,包括:
根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;
截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;
将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;
根据所述更改后的第一读写响应,注册所述n个虚拟设备。
在上述方案中,所述获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,所述方法还包括:
获取未使用存储区域;
根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;
获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
在上述方案中,所述根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系,包括:
根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;
从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;
根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;
将所述第n存储地址映射至所述第n存储标识域;
依次将全部n个存储地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
在上述方案中,所述n个虚拟机根据所述映射关系,进行设备共享,包括:
向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中,所述至少一个第二读写请求为针对所述n个存储地址中的,与所述至少一个虚拟机对应的至少一个存储地址进行读写的请求;
根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;
根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;
接收所述至少一个虚拟设备发送的至少一个第二读写响应。
本发明实施例提供了一种设备共享装置,所述设备共享装置包括:获取单元,注册单元,建立单元,确定单元,共享单元,
所述获取单元,用于获取共享指令;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数;
所述注册单元,用于响应所述共享指令,注册n个虚拟设备;其中,所述n个虚拟设备对应的设备标识为0至n-1;
所述建立单元,用于将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;
所述获取单元,还用于获取预存已扩展存储标识域;
所述确定单元,用于将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;
所述获取单元,还用于获取所述n个虚拟机对应的物理存储地址;
所述建立单元,还用于根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;
所述共享单元,用于所述n个虚拟机根据所述映射关系,进行设备共享。
在上述方案中,所述设备共享装置还包括:开启单元,
所述开启单元,用于获取共享指令,响应所述共享指令,注册n个虚拟设备之前,开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;
所述获取单元,还用于获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域。
在上述方案中,所述注册单元,具体用于根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;以及截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;以及将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;以及根据所述更改后的第一读写响应,注册所述n个虚拟设备。
在上述方案中,所述获取单元,具体用于获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,获取未使用存储区域;以及根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;以及获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址;
所述建立单元,具体用于根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;以及从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;以及根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;以及将所述第n存储地址映射至所述第n存储标识域;以及依次将全部n个存储第地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
在上述方案中,所述共享单元,具体用于向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中所述至少一个第二读写请求为针对所述n个存储地址中的至少一个存储地址进行读写的请求;以及根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;以及根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;以及接收所述至少一个虚拟设备发送的至少一个第二读写响应。
本发明实施例提供了一种设备共享装置,所述设备共享装置包括处理器、存储有所述处理器可执行指令的存储器、通信接口,和用于连接所述处理器、所述存储器以及所述通信接口的总线,当所述指令被执行时,所述处理器执行如下操作:
获取共享指令,响应所述共享指令,注册n个虚拟设备;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,其中,所述n个虚拟设备对应的设备标识为0至n-1;以及将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;以及获取预存已扩展存储标识域,将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;以及获取所述n个虚拟机对应的物理存储地址,并根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;以及所述n个虚拟机根据所述映射关系,进行设备共享。
在上述方案中,所述处理器,还用于所述获取共享指令,响应所述共享指令,注册n个虚拟设备之前,开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;以及获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域;以及所述获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,获取未使用存储区域;以及根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;以及获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
在上述方案中,所述处理器,具体用于根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;以及截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;以及将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;以及根据所述更改后的第一读写响应,注册所述n个虚拟设备。
在上述方案中,所述处理器,还具体用于根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;以及从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;以及根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;以及将所述第n存储地址映射至所述第n存储标识域;以及依次将全部n个存储地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
在上述方案中,所述设备共享装置还包括接收器,
所述处理器,还具体用于向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中,所述至少一个第二读写请求为针对所述n个存储地址中的,与所述至少一个虚拟机对应的至少一个存储地址进行读写的请求;以及根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;以及根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;
所述接收器,用于接收所述至少一个虚拟设备发送的至少一个第二读写响应。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,应用于系统中,所述程序被处理器执行时实现如权利要求1-6任一项所述的方法。
由此可见,本发明实施例提供了一种设备共享方法、装置及存储介质,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法、装置及存储介质,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性。
附图说明
图1为本发明实施例提出的一种设备共享方法的实现流程示意图一;
图2为本发明实施例提出的一种设备共享方法的实现流程示意图二;
图3为本发明实施例提出的一种设备共享方法的实现流程示意图三;
图4为本发明实施例提出的一种设备共享方法的实现流程示意图四;
图5为本发明实施例提出的一种设备共享方法的实现流程示意图五;
图6为本发明实施例提出的一种设备共享方法的实现流程示意图六;
图7为本发明实施例提出的设备共享装置的组成结构示意图一;
图8为本发明实施例提出的设备共享装置的组成结构示意图二;
图9为本发明实施例提出的设备共享装置的组成结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
图1为本发明实施例提出的一种设备共享方法的实现流程示意图一,如图1所示,在本发明的实施例中,设备共享装置进行设备共享的方法可以包括以下步骤:
步骤101、获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1。
在本发明的实施例中,上述设备共享装置可以先获取共享指令,上述设备共享装置在获取上述共享指令之后,便可以响应上述共享指令,根据上述虚拟机数量n注册n个虚拟设备。
具体地,在本发明的实施例中,上述共享指令用于指示上述设备共享装置被多个虚拟机进行同时共享访问。其中,上述设备共享装置可以为不支持SRIOV技术的物理设备,例如,部分由于资源限制并不支持PCIe的SRIOV技术FPGA芯片。
进一步地,在本发明的实施例中,PCIe规范中对于function指定了3个比特(bit),理论上一个物理设备下面有8个function,每个function对应一个逻辑功能,比如一块PCIe卡可以既做网卡又当声卡,那么在PCIe总线上相当于两个不同的PCIe设备。PCIe规范的Phantom Function字段中,在使能了Extended Tag的情况下,上述设备共享装置可以对Tag字段进行扩展,具体地,在本发明的实施例中,上述设备共享装置可以将未使用的function字段作为扩展的Tag位进行使用。
需要说明的是,在本发明的实施例中,PCIe规范中对于Tag指定了8个bit,因此一个PCIe设备发起内存读写时最多有256个未完成的请求,将不同的请求以不同的Tag号来区分,如果存在PCIe设备的功能需要的Tag号超过256个,那么PCIe设备便可以将未使用的Function号作为扩展的Tag号来使用,这样,8个bit的Tag便可以被扩展为11个bit的Tag,因此一个PCIe设备最多可以同时发起2048个未完成的请求。
需要说明的是,在本发明的实施例中,上述共享指令中携带有需要共享设备的虚拟机的数量n。具体地,由于一个物理设备下面有8个function,因此,可以同时访问上述设备共享装置的虚拟机数量上限为8,也就是说,上述虚拟机的数量n为大于0,且小于或者等于8的整数。
进一步地,在本发明的实施例中,上述设备共享装置在注册n个虚拟设备时,上述注册n个虚拟设备的设备标识可以为0至n-1。例如,如果上述共享指令中携带的虚拟机数量n为8时,上述设备共享装置便可以注册设备标识为0、1、2、3、4、5、6、7的8个虚拟设备。
步骤102、将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系。
在本发明的实施例中,上述设备共享装置在响应共享指令,注册n个虚拟设备之后,便可以将n个虚拟机和n个虚拟设备进行一一配对,从而便可以建立虚拟机和虚拟设备的对应关系。
需要说明的是,在本发明的实施例中,上述设备共享装置可以根据上述共享指令中的虚拟机数量n注册上述虚拟设备,因此,上述设备共享装置注册的虚拟设备数量与上述虚拟机的数量一致,从而上述设备共享装置便可以将上述虚拟装置和虚拟机进行一一配对。例如,上述共享指令中的虚拟机数量n为5,上述设备共享装置便可以注册5个虚拟设备,然后便可以将5个虚拟机和5个虚拟设备进行一一配对,建立虚拟机和虚拟设备的对应关系。
步骤103、获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域。
在本发明的实施例中,上述设备共享装置在将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系之后,可以获取预存已扩展存储标识域,然后将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域。
进一步地,在本发明的实施例中,上述设备共享装置可以预先存储已扩展的存储标识域。具体地,在本发明的实施例中,上述存储标识域可以为Tag位,PCIe规范中对于Tag指定了8个bit,上述设备共享装置可以将未使用的Function号作为扩展的Tag号来使用,这样,8个bit的Tag便可以被扩展为11个bit的Tag。
进一步地,在本发明的实施例中,上述设备共享装置在获取预存已扩展存储标识域之后,可以将上述预存已扩展存储标识域依次分配给上述n个虚拟设备,从而便可以确定上述n个虚拟设备对应的n个存储标识域。
需要说明的是,在本发明的实施例中,上述设备共享装置在确定上述n个虚拟设备对应的n个存储标识域时,可以将第n虚拟设备对应的存储标识设置为第n存储标识域,即第n虚拟设备对应第n存储标识域。
需要说明的是,在本发明的实施例中,上述设备共享装置可以将不同的存储标识域和不同的虚拟设备进行映射,从而可以把一个PCIe功能扩展成多个虚拟设备,以便为每个虚拟设备分配对应的存储区域作为配置空间,从而达到等同于SRIOV的效果,提供给不同的虚拟机使用。
步骤104、获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系。
在本发明的实施例中,上述设备共享装置在获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域之后,上述设备分享装置可以获取上述n个虚拟机对应的物理存储地址,然后根据上述物理存储地址、上述虚拟机和虚拟设备的对应关系、上述n个虚拟设备对应的n个存储标识域,建立上述物理存储地址和上述n个存储标识域的映射关系。
进一步地,在本发明的实施例中,上述设备共享装置可以将上述n个虚拟机对应的物理存储地址与上述n个虚拟装置对应的n个存储标识域进行映射。具体地,在本发明的实施例中,上述设备共享装置可以将虚拟机对应的物理存储地址和虚拟设备对应的存储标识域进行IOMMU映射,从而可以在上述设备共享装置发起DMA内存读写时,将内存读写命令送给对应的虚拟机,也可以得到不同虚拟设备返回的读写请求。
步骤105、n个虚拟机根据映射关系,进行设备共享。
在本发明的实施例中,上述设备共享装置在建立上述n个虚拟机对应的物理存储地址和上述n个虚拟装置对应的n个存储标识域的映射关系之后,上述n个虚拟机便可以根据上述物理存储地址和n个存储标识域的映射关系,共享上述设备共享装置。
需要说明的是,在本发明的实施例中,由于上述设备共享装置建立了上述n个虚拟机对应的物理存储地址和上述n个虚拟装置对应的n个存储标识域的映射关系,从而在上述设备共享装置不具备SRIOV功能的情况下,也可以使不同的虚拟机同时访问上述设备共享装置而不发生冲突。
本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性。
实施例二
图2为本发明实施例提出的一种设备共享方法的实现流程示意图二,如图2所示,基于实施例一,在本发明的实施例中,进一步地,设备共享装置获取共享指令,响应共享指令,注册n个虚拟设备之前,即步骤101之前,上述设备共享装置进行设备共享的方法还可以包括以下步骤:
步骤106、开启扩展功能;其中,扩展功能用于存储标识域的扩展。
在本发明的实施例中,上述设备共享装置在获取上述共享指令,响应上述共享指令,注册n个虚拟设备之前,可以先开启扩展功能,其中,上述扩展功能用于存储标识域的扩展。
需要说明的是,在本发明的实施例中,虚拟设备在PCI Express Capability结构的Device Control寄存器中,设置了一个Phantom Functions Enable位。所以设备分享装置可以先对Phantom Functions Enable位进行使能,表示启用Phantom Function字段,从而便可以开启扩展功能。
步骤107、获取未使用存储标识域,并将未使用存储标识域增加至预存已扩展存储标识域。
在本发明的实施例中,上述设备共享装置在开启扩展功能之后,可以先先获取未使用的存储标识域,然后将上述未使用存储标识域增加至上述预存已扩展存储标识域。
需要说明的是,在本发明的实施例中,PCIe规范中对于function指定了3个比特(bit),理论上一个物理设备下面有8个function,每个function对应一个逻辑功能。PCIe规范的Phantom Function字段中,在使能了Extended Tag的情况下,上述设备共享装置可以对Tag字段进行扩展,具体地,在本发明的实施例中,上述设备共享装置可以将未使用的function字段作为扩展的Tag位进行使用。
本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性。
实施例三
图3为本发明实施例提出的一种设备共享方法的实现流程示意图三,如图3所示,基于实施例一,在本发明的实施例中,进一步地,设备共享装置响应共享指令,注册n个虚拟设备的方法可以包括以下步骤:
步骤201、根据共享指令,发送第一读写请求;其中,第一读写请求用于请求注册n个虚拟设备。
在本发明的实施例中,上述设备共享装置在获取共享指令之后,可以根据上述共享指令,发送用于请求注册上述n个虚拟设备的第一读写请求。
进一步地,在本发明的实施例中,如果上述设备共享装置获取的上述共享指令中,携带有虚拟机的个数为n,那么上述设备共享装置便可以发送一个第一读写请求,其中,上述第一读写请求用于请求注册对应于上述n个虚拟机的n个虚拟设备。
步骤202、截取第一读写请求对应的第一读写响应;其中,第一读写响应中携带有配置初始化信息。
在本发明的实施例中,上述设备共享装置在根据共享指令,发送第一读写请求之后,可以截取上述第一读写请求对应的第一读写响应。具体地,上述第一读写响应中携带有用于注册上述n个虚拟设备的初始化信息。
需要说明的是,在本发明的实施例中,上述设备共享装置在请求注册n个设备标识为0至n的虚拟设备之后,由于设备标识为0的虚拟设备为真实存在的,而虚拟出来的设备标识为1至n的虚拟设备并不存在相应的配置空间,因此上述设备共享装置在注册初始化虚拟设备时会失败。
步骤203、将初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应。
在本发明的实施例中,上述设备共享装置在截取第一读写请求对应的第一读写响应之后,可以更改上述第一读写响应中携带的初始化信息,从而获得更改过初始化信息的更改后第一读写响应。
需要说明的是,在本发明的实施例中,上述设备共享装置虚拟出来的设备标识为1至n的虚拟设备并不存在相应的配置空间,因此,上述设备共享装置在注册初始化虚拟设备时会失败,此时,上述设备共享装置便需要对截取的第一读写响应进行处理,使上述第一读写响应中的初始化信息设置为正确的结果,即将上述第一读写响应中的配置失败信息更改为配置成功信息,从而使上述设备共享装置认为设备标号为1至n的虚拟设备是真实存在的。
步骤204、根据更改后的第一读写响应,注册n个虚拟设备。
在本发明的实施例中,上述设备共享装置在更改初始化信息,获得更改后的第一读写响应之后,可以根据上述更改后的第一读写响应注册上述n个虚拟设备。
本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性。
实施例四
图4为本发明实施例提出的一种设备共享方法的实现流程示意图四,如图4所示,基于实施例一,在本发明的实施例中,进一步地,设备共享装置在获取共享指令,响应上述共享指令,注册n个虚拟设备之后,即步骤101之后,获取n个虚拟机对应的物理存储地址之前,即步骤104之前,上述设备共享装置进行设备共享的方法还可以包括以下步骤:
步骤108、获取未使用存储区域。
在本发明的实施例中,上述设备共享装置在获取上述共享指令之后,可以先获取上述设备共享装置中的未使用存储区域。
需要说明的是,在本发明的实施例中,上述设备共享装置从上述共享指令中确定出待访问的虚拟机的个数n后,便可以获取未使用的存储区域,以便为上述n个虚拟机配置存储区域。
步骤109、根据共享指令,划分未使用存储区域,获得n个存储区域。
在本发明的实施例中,上述设备共享装置在获取上述共享指令,并获取上述可用存储空间之后,可以根据上述共享指令中携带的虚拟机个数n划分上述未使用存储区域,从而可以获得n个存储区域。
需要说明的是,在本发明的实施例中,上述n个存储区域分别对应上述n个虚拟机,也就是说,每一个虚拟机都有与其对应的一个存储区域,且上述n个虚拟机对应的上述n个存储区域的大小相同,也就是说,上述设备共享装置按照虚拟机数量n均等的划分上述未使用存储区域。
步骤1010、获取n个存储区域对应的n个存储地址,并将n个存储地址分配给n个虚拟机,确定n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
在本发明的实施例中,上述设备共享装置在根据共享指令,划分未使用存储区域,获得n个存储区域之后,可以获取上述n个存储区域对应的n个存储地址,然后将上述n个存储地址分配给上述n个虚拟机,从而可以确定上述n个虚拟机对应的上述物理存储地址。
进一步地,在本发明的实施例中,上述设备共享装置在获得上述n个存储区域之后,可以进一步确定上述n个存储区域对应的n个存储地址,然后可以将上述n个存储地址依次分配给上述n个虚拟机,具体地,在本发明的实施例中,上述设备共享装置在将上述n个存储地址依次分配给上述n个虚拟机时,可以将上述第n虚拟机对应的存储地址设定为第n存储地址。
进一步地,在本发明的实施例中,上述设备共享装置在上述n个存储地址依次分配给上述n个虚拟机之后,便可以根据上述n个虚拟机对应的n个存储地址确定出上述n个虚拟机对应的物理存储地址。
本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性;并且,实现起来简单方便,便于普及,适用范围更广。
实施例五
图5为本发明实施例提出的一种设备共享方法的实现流程示意图五,如图5所示,基于实施例四,在本发明的实施例中,进一步地,设备共享装置根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系的方法可以包括以下步骤:
步骤301、根据虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系。
在本发明的实施例中,上述设备共享装置在确定上述虚拟机和虚拟设备的对应关系,以及上述n个虚拟设备对应的n个存储标识域之后,可以根据上述虚拟机和虚拟设备的对应关系、上述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系。例如,上述设备共享装置可以根据上述虚拟机和虚拟设备的对应关系确定虚拟机1与虚拟装置1相对应,同时,上述设备共享装置还可以根据上述n个虚拟设备对应的n个存储标识域,确定虚拟设备1对应存储标识区域1,那么,上述设备共享装置便可以建立虚拟机1和存储区域1的对应关系。
步骤302、从物理存储地址中读取第n虚拟机对应的第n存储地址。
在本发明的实施例中,上述设备共享装置可以从上述物理存储地址中读取上述第n虚拟机对应的第n存储地址,从而获得上述n个虚拟机中的第n虚拟机对应的存储地址。
需要说明的是,在本发明的实施例中,由于上述物理存储地址中包括上述n个虚拟机对应的n个存储地址,因此上述设备共享装置可以从上述物理存储地址中获取第n虚拟机对应的存储地址。
步骤303、根据虚拟机和存储标识域的对应关系、第n虚拟机,确定第n虚拟机对应的第n存储标识域。
在本发明的实施例中,上述设备共享装置在建立上述虚拟机和存储标识域的对应关系之后,可以根据上述虚拟机和存储标识域的对应关系、上述第n虚拟机,确定上述第n虚拟机对应的上述第n存储标识域。例如,当上述设备共享装置根据上述虚拟机和存储标识域的对应关系,确定第1虚拟机对应于第1存储标识域。
步骤304、将第n存储地址映射至第n存储标识域。
在本发明的实施例中,上述设备共享装置在根据虚拟机和存储标识域的对应关系、第n虚拟机,确定第n虚拟机对应的第n存储标识域,以及从物理存储地址中读取第n虚拟机对应的第n存储地址之后,便可以将上述第n存储地址映射值上述第n存储标识域。
需要说明的是,在本发明的实施例中,上述设备共享装置在将上述第n存储地址映射值上述第n存储标识域之后,便可以将上述第n虚拟机对应的第n存储地址与上述第n虚拟装置对应的第n存储标识域进行映射。具体地,在本发明的实施例中,上述设备共享装置可以将第n存储地址和第n存储标识域进行IOMMU映射。
步骤305、依次将全部n个存储第地址映射至全部n个存储标识域,建立物理存储地址和n个存储标识域的映射关系。
在本发明的实施例中,上述设备共享装置可以按照上述步骤105a至105d的方法,依次将全部n个存储第地址映射至全部n个存储标识域,建立物理存储地址和n个存储标识域的映射关系。
需要说明的是,在本发明的实施例中,上述设备共享装置可以将上述n个虚拟机对应的物理存储地址与上述n个虚拟装置对应的n个存储标识域进行映射。具体地,在本发明的实施例中,上述设备共享装置可以将虚拟机对应的物理存储地址和虚拟设备对应的存储标识域进行IOMMU映射,从而可以在上述设备共享装置发起DMA内存读写时,将内存读写命令送给对应的虚拟机,也可以得到不同虚拟设备返回的读写请求。
本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享方法,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性;并且,实现起来简单方便,便于普及,适用范围更广。
实施例六
图6为本发明实施例提出的一种设备共享方法的实现流程示意图六,如图6所示,基于实施例五,在本发明的实施例中,进一步地,上述n个虚拟机根据上述映射关系,进行设备共享的方法可以包括以下步骤:
步骤105a、向n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中,至少一个第二读写请求为针对n个存储地址中的,与至少一个虚拟机对应的至少一个存储地址进行读写的请求。
在本发明的实施例中,上述设备共享装置在依次将全部n个存储第地址映射至全部n个存储标识域,建立物理存储地址和n个存储标识域的映射关系后,可以在同一时刻,向上述n个虚拟机中的至少一个虚拟机,发送至少一个第二读写请求。
具体地,在本发明的实施例中,上述至少一个第二读写请求为针对上述n个存储地址中的,与上述至少一个虚拟机对应的至少一个存储地址进行读写的请求。
步骤105b、根据映射关系,查找至少一个存储地址对应的至少一个存储标识域。
在本发明的实施例中,上述设备共享装置在向上述n个虚拟机中的至少一个虚拟机,发送至少一个第二读写请求之后,可以根据上述映射关系,进一步查找上述至少一个存储地址对应的至少一个存储标识域。
需要说明的是,在发明的是实施例中,由于上述映射关系为上述n个虚拟机对应的物理存储地址与上述n个虚拟装置对应的n个存储标识域之间的映射,因此,在确定上述物理存储地址中的与上述至少一个虚拟机对应的至少一个存储地址之后,上述设备共享装置便可以根据上述映射关系,查找上述至少一个存储标识域。
步骤105c、根据至少一个存储标识域,访问至少一个虚拟设备;其中,至少一个存储标识域与至少一个虚拟设备一一对应。
在本发明的实施例中,上述设备共享装置在根据上述映射关系,进一步查找上述至少一个存储地址对应的至少一个存储标识域之后,可以对上述至少一个存储标识域对应的至少一个虚拟设备进行访问。具体地,在本发明的实施例中,上述至少一个存储标识域与上述至少一个虚拟设备一一对应。
进一步地,在本发明的实施例中,由于上述设备共享装置预先建立有上述n个虚拟设备与上述n个存储标识域的对应关系,因此,上述设备共享装置在确定上述至少一个存储标识域之后,便可以进一步确定上述至少一个存储标识域对应的至少一个虚拟设备,进而对上述至少一个虚拟设备进行访问。
步骤105d、接收至少一个虚拟设备发送的至少一个第二读写响应。
在本发明的实施例中,上述设备共享装置在根据上述至少一个存储标识域,访问上述至少一个虚拟设备之后,便可以接收上述至少一个虚拟设备发送的至少一个第二读写响应。
需要说明的是,在本发明的实施例中,上述设备共享装置可以将虚拟机对应的物理存储地址和虚拟设备对应的存储标识域进行IOMMU映射,从而可以在上述设备共享装置发起DMA内存读写时,将内存读写命令送给对应的虚拟机,也可以得到不同虚拟设备返回的读写响应。从而可以使不同的虚拟机在同一时刻对上述设备共享装置进行访问,并不发生访问冲突。
根据上述的描述可知,通过上述的步骤105a~105d,上述设备共享装置可以向n个虚拟机中的至少一个虚拟机,发送至少一个第二读写请求;其中至少一个第二读写请求为针对n个存储地址中的,与至少一个虚拟机对应的至少一个存储地址进行读写的请求;根据映射关系,查找至少一个存储地址对应的至少一个存储标识域;根据至少一个存储标识域,访问至少一个虚拟设备;其中,至少一个存储标识域与至少一个虚拟设备一一对应;接收至少一个虚拟设备发送的至少一个第二读写响应;可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性;并且,实现起来简单方便,便于普及,适用范围更广。
实施例七
基于实施例一至实施例六的同一发明构思下,图7为本发明实施例提出的设备共享装置的组成结构示意图一,如图7所示,本发明实施例提出的设备共享装置1包括:获取单元11,注册单元12,建立单元13,确定单元14以及共享单元15。
获取单元11,用于获取共享指令;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数。
注册单元12,用于在获取单元11获取共享指令之后,响应共享指令,注册n个虚拟设备;其中,n个虚拟设备对应的设备标识为0至n-1。
建立单元13,用于在注册单元12响应共享指令,注册n个虚拟设备之后,将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系。
获取单元11,还用于在建立单元13将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系之后,获取预存已扩展存储标识域。
确定单元14,用于在获取单元11获取预存已扩展存储标识域之后,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域。
获取单元11,还用于在确定单元14将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域之后,获取n个虚拟机对应的物理存储地址。
建立单元14,还用于在获取单元11获取n个虚拟机对应的物理存储地址之后,根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系。
共享单元15,用于在建立单元14根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系之后,n个虚拟机根据映射关系,进行设备共享。
图8为本发明实施例提出的设备共享装置的组成结构示意图二,如图8所示,本发明实施例提出的设备共享装置1还包括:开启单元16,
开启单元16,用于在获取单元11获取共享指令,注册单元12响应共享指令,注册n个虚拟设备之前,开启扩展功能;其中,扩展功能用于存储标识域的扩展。
获取单元11,还用于在开启单元16开启扩展功能之后,获取未使用存储标识域,并将未使用存储标识域增加至预存已扩展存储标识域。
在本发明的实施例中,进一步地,注册单元12,具体用于根据共享指令,发送第一读写请求;其中,第一读写请求用于请求注册n个虚拟设备;以及截取第一读写请求对应的第一读写响应;其中,第一读写响应中携带有配置初始化信息;以及将初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;以及根据更改后的第一读写响应,注册n个虚拟设备。
在本发明的实施例中,进一步地,获取单元11,具体用于获取共享指令,响应共享指令,注册n个虚拟设备之后,获取n个虚拟机对应的物理存储地址之前,获取未使用存储区域;以及根据共享指令,划分未使用存储区域,获得n个存储区域;以及获取n个存储区域对应的n个存储地址,并将n个存储地址分配给n个虚拟机,确定n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
在本发明的实施例中,进一步地,建立单元13,具体用于根据虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;以及从物理存储地址中读取第n虚拟机对应的第n存储地址;以及根据虚拟机和存储标识域的对应关系、第n虚拟机,确定第n虚拟机对应的第n存储标识域;以及将第n存储地址映射至第n存储标识域;以及依次将全部n个存储第地址映射至全部n个存储标识域,建立物理存储地址和n个存储标识域的映射关系。
在本发明的实施例中,进一步地,共享单元15,具体用于向n个虚拟机中的至少一个虚拟机,发送至少一个第二读写请求;其中至少一个第二读写请求为针对n个存储地址中的至少一个存储地址进行读写的请求;以及根据映射关系,查找至少一个存储地址对应的至少一个存储标识域;以及根据至少一个存储标识域,访问至少一个虚拟设备;其中,至少一个存储标识域与至少一个虚拟设备一一对应;以及接收至少一个虚拟设备发送的至少一个第二读写响应。
图9为本发明实施例提出的设备共享装置的组成结构示意图三,在实际应用中,基于实施例一至实施例六的同一发明构思下,如图9所示,设备共享装置1可以包括处理器17、存储有处理器17可执行指令的存储器18、通信接口19、接收器20,和用于连接处理器17、存储器18、通信接口19以及接收器20的总线21。
在本发明的实施例中,获取单元11,注册单元12,建立单元13,确定单元14、共享单元15以及开启单元16均可由位于设备共享装置1上的处理器17实现,上述处理器17可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal ProcessingDevice,DSPD)、可编程逻辑装置(ProgRAMmable Logic Device,PLD)、现场可编程门阵列(Field ProgRAMmable Gate Array,FPGA)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。该设备共享装置1还可以包括存储器18,该存储器18可以与处理器17连接,其中,存储器18用于存储可执行程序代码,该程序代码包括计算机操作指令,存储器13可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少两个磁盘存储器。
在本发明的实施例中,总线21用于连接通信接口19、处理器17和存储器18以及这些器件之间的相互通信。
在本发明的实施例中,存储器18,用于存储指令和数据。
处理器17,用于获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;以及将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;以及获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;以及获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;以及n个虚拟机根据映射关系,进行设备共享。
在实际应用中,上述存储器18可以是易失性第一存储器(volatile memory),例如随机存取第一存储器(Random-Access Memory,RAM);或者非易失性第一存储器(non-volatile memory),例如只读第一存储器(Read-Only Memory,ROM),快闪第一存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的第一存储器的组合,并向处理器17提供指令和数据。
本发明实施例提供了一种设备共享装置,本发明实施例提供了一种设备共享方法,获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;n个虚拟机根据映射关系,进行设备共享。也就是说,本发明实施例提出的一种设备共享装置,可以在设备共享装置中建立与虚拟机一一对应的虚拟装置,并对虚拟机的物理存储地址与虚拟装置的存储标识域建立映射关系,从而使虚拟机可以根据该映射关系进行设备共享,进而能够使不支持SRIOV的FPGA设备同时被多个虚拟机访问,提高了FPGA设备的适配性;并且,实现起来简单方便,便于普及,适用范围更广。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种计算机可读存储介质,其上存储有程序,应用于设备共享装置中,该程序被处理器执行时实现如实施例一至实施例六的方法。
具体来讲,本实施例中的一种设备共享方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种设备共享方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:
获取共享指令,响应共享指令,注册n个虚拟设备;其中,共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,n个虚拟设备对应的设备标识为0至n-1;;
将n个虚拟机和n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;
获取预存已扩展存储标识域,将预存已扩展存储标识域分配给n个虚拟设备,确定n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;
获取n个虚拟机对应的物理存储地址,并根据物理存储地址、虚拟机和虚拟设备的对应关系、n个虚拟设备对应的n个存储标识域,建立物理存储地址和n个存储标识域的映射关系;
n个虚拟机根据映射关系,进行设备共享。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (17)
1.一种设备共享方法,其特征在于,所述方法包括:
获取共享指令,响应所述共享指令,注册n个虚拟设备;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,所述n个虚拟设备对应的设备标识为0至n-1;
将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;
获取预存已扩展存储标识域,将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;所述已扩展存储标识域包括:标签Tag位和未使用的功能Function号;
获取所述n个虚拟机对应的物理存储地址,并根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;
所述n个虚拟机根据所述映射关系,进行设备共享。
2.根据权利要求1所述的方法,其特征在于,所述获取共享指令,响应所述共享指令,注册n个虚拟设备之前,所述方法还包括:
开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;
获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域。
3.根据权利要求1所述的方法,其特征在于,所述响应所述共享指令,注册n个虚拟设备,包括:
根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;
截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;
将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;
根据所述更改后的第一读写响应,注册所述n个虚拟设备。
4.根据权利要求1所述的方法,其特征在于,所述获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,所述方法还包括:
获取未使用存储区域;
根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;
获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
5.根据权利要求4所述的方法,其特征在于,所述根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系,包括:
根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;
从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;
根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;
将所述第n存储地址映射至所述第n存储标识域;
依次将全部n个存储地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述n个虚拟机根据所述映射关系,进行设备共享,包括:
向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中,所述至少一个第二读写请求为针对所述n个存储地址中的,与所述至少一个虚拟机对应的至少一个存储地址进行读写的请求;
根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;
根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;
接收所述至少一个虚拟设备发送的至少一个第二读写响应。
7.一种设备共享装置,其特征在于,所述设备共享装置包括:获取单元,注册单元,建立单元,确定单元,共享单元,
所述获取单元,用于获取共享指令;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数;
所述注册单元,用于响应所述共享指令,注册n个虚拟设备;其中,所述n个虚拟设备对应的设备标识为0至n-1;
所述建立单元,用于将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;
所述获取单元,还用于获取预存已扩展存储标识域;所述已扩展存储标识域包括:标签Tag位和未使用的功能Function号;
所述确定单元,用于将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;
所述获取单元,还用于获取所述n个虚拟机对应的物理存储地址;
所述建立单元,还用于根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;
所述共享单元,用于所述n个虚拟机根据所述映射关系,进行设备共享。
8.根据权利要求7所述的设备共享装置,其特征在于,所述设备共享装置还包括:开启单元,
所述开启单元,用于获取共享指令,响应所述共享指令,注册n个虚拟设备之前,开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;
所述获取单元,还用于获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域。
9.根据权利要求7所述的设备共享装置,其特征在于,
所述注册单元,具体用于根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;以及截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;以及将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;以及根据所述更改后的第一读写响应,注册所述n个虚拟设备。
10.根据权利要求7所述的设备共享装置,其特征在于,
所述获取单元,具体用于获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,获取未使用存储区域;以及根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;以及获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址;
所述建立单元,具体用于根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;以及从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;以及根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;以及将所述第n存储地址映射至所述第n存储标识域;以及依次将全部n个存储第地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
11.根据权利要求10所述的设备共享装置,其特征在于,
所述共享单元,具体用于向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中所述至少一个第二读写请求为针对所述n个存储地址中的至少一个存储地址进行读写的请求;以及根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;以及根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;以及接收所述至少一个虚拟设备发送的至少一个第二读写响应。
12.一种设备共享装置,其特征在于,所述设备共享装置包括处理器、存储有所述处理器可执行指令的存储器、通信接口,和用于连接所述处理器、所述存储器以及所述通信接口的总线,当所述指令被执行时,所述处理器执行如下操作:
获取共享指令,响应所述共享指令,注册n个虚拟设备;其中,所述共享指令中携带有需要共享设备的虚拟机数量n,n为大于0,且小于或者等于8的整数,其中,所述n个虚拟设备对应的设备标识为0至n-1;以及将n个虚拟机和所述n个虚拟设备一一配对,建立虚拟机和虚拟设备的对应关系;以及获取预存已扩展存储标识域,将所述预存已扩展存储标识域分配给所述n个虚拟设备,确定所述n个虚拟设备对应的n个存储标识域;其中,第n虚拟设备对应第n存储标识域;所述已扩展存储标识域包括:标签Tag位和未使用的功能Function号;以及获取所述n个虚拟机对应的物理存储地址,并根据所述物理存储地址、所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系;以及所述n个虚拟机根据所述映射关系,进行设备共享。
13.根据权利要求12所述的设备共享装置,其特征在于,
所述处理器,还用于所述获取共享指令,响应所述共享指令,注册n个虚拟设备之前,开启扩展功能;其中,所述扩展功能用于存储标识域的扩展;以及获取未使用存储标识域,并将所述未使用存储标识域增加至所述预存已扩展存储标识域;以及所述获取共享指令,响应所述共享指令,注册n个虚拟设备之后,所述获取所述n个虚拟机对应的物理存储地址之前,获取未使用存储区域;以及根据所述共享指令,划分所述未使用存储区域,获得n个存储区域;以及获取所述n个存储区域对应的n个存储地址,并将所述n个存储地址分配给所述n个虚拟机,确定所述n个虚拟机对应的物理存储地址;其中,第n虚拟机对应第n存储地址。
14.根据权利要求12所述的设备共享装置,其特征在于,
所述处理器,具体用于根据所述共享指令,发送第一读写请求;其中,所述第一读写请求用于请求注册所述n个虚拟设备;以及截取所述第一读写请求对应的第一读写响应;其中,所述第一读写响应中携带有配置初始化信息;以及将所述初始化信息中的配置失败信息更改为配置成功信息,获得更改后的第一读写响应;以及根据所述更改后的第一读写响应,注册所述n个虚拟设备。
15.根据权利要求13所述的设备共享装置,其特征在于,
所述处理器,还具体用于根据所述虚拟机和虚拟设备的对应关系、所述n个虚拟设备对应的n个存储标识域,建立虚拟机和存储标识域的对应关系;以及从所述物理存储地址中读取所述第n虚拟机对应的所述第n存储地址;以及根据所述虚拟机和存储标识域的对应关系、所述第n虚拟机,确定所述第n虚拟机对应的所述第n存储标识域;以及将所述第n存储地址映射至所述第n存储标识域;以及依次将全部n个存储地址映射至全部n个存储标识域,建立所述物理存储地址和所述n个存储标识域的映射关系。
16.根据权利要求15所述的设备共享装置,其特征在于,所述设备共享装置还包括接收器,
所述处理器,还具体用于向所述n个虚拟机中的至少一个虚拟机发送至少一个第二读写请求;其中,所述至少一个第二读写请求为针对所述n个存储地址中的,与所述至少一个虚拟机对应的至少一个存储地址进行读写的请求;以及根据所述映射关系,查找所述至少一个存储地址对应的至少一个存储标识域;以及根据所述至少一个存储标识域,访问至少一个虚拟设备;其中,所述至少一个存储标识域与所述至少一个虚拟设备一一对应;
所述接收器,用于接收所述至少一个虚拟设备发送的至少一个第二读写响应。
17.一种计算机可读存储介质,其上存储有程序,应用于系统中,其特征在于,所述程序被处理器执行时实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867773.3A CN109542581B (zh) | 2017-09-22 | 2017-09-22 | 一种设备共享方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867773.3A CN109542581B (zh) | 2017-09-22 | 2017-09-22 | 一种设备共享方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542581A CN109542581A (zh) | 2019-03-29 |
CN109542581B true CN109542581B (zh) | 2020-10-13 |
Family
ID=65828135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710867773.3A Active CN109542581B (zh) | 2017-09-22 | 2017-09-22 | 一种设备共享方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542581B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426557A (zh) * | 2011-10-27 | 2012-04-25 | 中国科学院计算技术研究所 | 虚拟化环境中 pci 设备的分离访问方法及其系统 |
CN102591702A (zh) * | 2011-12-31 | 2012-07-18 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069828A1 (en) * | 2004-06-30 | 2006-03-30 | Goldsmith Michael A | Sharing a physical device among multiple clients |
US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
CN103778018B (zh) * | 2014-01-16 | 2018-05-04 | 深圳艾迪宝智能系统有限公司 | 一种用于pcie虚拟化管理的方法 |
US10223159B2 (en) * | 2015-02-18 | 2019-03-05 | Red Hat Israel, Ltd. | Configuring virtual machine interfaces to provide access to a requested logical network based on virtual function availability and a virtual function capability option |
US10331616B2 (en) * | 2015-08-05 | 2019-06-25 | Futurewei Technologies, Inc. | Integration of network linecard (LC) to host operating system (OS) |
US10216533B2 (en) * | 2015-10-01 | 2019-02-26 | Altera Corporation | Efficient virtual I/O address translation |
US10756961B2 (en) * | 2016-01-27 | 2020-08-25 | Oracle International Corporation | System and method of assigning admin partition membership based on switch connectivity in a high-performance computing environment |
CN106250211A (zh) * | 2016-08-05 | 2016-12-21 | 浪潮(北京)电子信息产业有限公司 | 一种基于sr_iov的虚拟化实现方法 |
CN106844059A (zh) * | 2017-02-28 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种多主机共享pcie设备的方法及其系统 |
-
2017
- 2017-09-22 CN CN201710867773.3A patent/CN109542581B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426557A (zh) * | 2011-10-27 | 2012-04-25 | 中国科学院计算技术研究所 | 虚拟化环境中 pci 设备的分离访问方法及其系统 |
CN102591702A (zh) * | 2011-12-31 | 2012-07-18 | 华为技术有限公司 | 虚拟化处理方法及相关装置和计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109542581A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9824050B2 (en) | Shared PCIe end point system including a PCIe switch and method for initializing the switch | |
US9690739B2 (en) | Method and apparatus for extending PCIe domain | |
US7689755B2 (en) | Apparatus and method for sharing devices between multiple execution domains of a hardware platform | |
EP1399826B1 (en) | Virtual pci device apparatus and method | |
TWI511048B (zh) | 多主機上單根輸入/輸出虛擬化虛擬功能共享的方法及系統 | |
US20170199768A1 (en) | Using hypervisor for pci device memory mapping | |
US20120185632A1 (en) | Implementing pci-express memory domains for single root virtualized devices | |
CN102722458B (zh) | 一种用于多根共享系统的i/o重映射方法和装置 | |
US9531668B2 (en) | Micro server, method of allocating MAC address, and computer readable recording medium | |
US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
CN106776358B (zh) | Dimm ssd寻址性能技术 | |
CN109766199B (zh) | 一种机器人操作系统中的节点通信方法和装置 | |
CN108351829B (zh) | 用于输入/输出计算资源控制的系统和方法 | |
US9015351B1 (en) | Address translation for SR-IOV virtual function apertures | |
US10606659B2 (en) | Acquiring location information for logical partition within virtual machine | |
TW201430572A (zh) | 針對記憶體映射組態分派處理器之技術 | |
US8825981B2 (en) | Allocating addressable memory regions to an adapter | |
US8302110B2 (en) | Method of configuration processing of PCI device on virtualization apparatus and computer system | |
JP2022514234A (ja) | 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) | |
CN110806997B (zh) | 一种片上系统以及存储器 | |
US8949474B1 (en) | Method for inter-chip and intra-chip addressing using port identifiers and address mapping | |
US20150347324A1 (en) | System and Method for Shared Memory for FPGA Based Applications | |
CN109977037B (zh) | 一种dma数据传输方法及系统 | |
CN109542581B (zh) | 一种设备共享方法、装置及存储介质 | |
CN113485791A (zh) | 配置方法和访问方法、装置、虚拟化系统和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |