CN114327751A - 一种面向多域隔离通信的虚拟pci设备及其实现方法 - Google Patents

一种面向多域隔离通信的虚拟pci设备及其实现方法 Download PDF

Info

Publication number
CN114327751A
CN114327751A CN202111502518.1A CN202111502518A CN114327751A CN 114327751 A CN114327751 A CN 114327751A CN 202111502518 A CN202111502518 A CN 202111502518A CN 114327751 A CN114327751 A CN 114327751A
Authority
CN
China
Prior art keywords
data path
configuring
type
register
tunnel
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
Application number
CN202111502518.1A
Other languages
English (en)
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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202111502518.1A priority Critical patent/CN114327751A/zh
Publication of CN114327751A publication Critical patent/CN114327751A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种面向多域隔离通信的虚拟PCI设备及其实现方法,包括:将虚拟PCI设备的内存映射IO地址空间分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。能够突破虚拟PCI设备的协议限制,通过一个虚拟PCI设备服务多个数据通路。

Description

一种面向多域隔离通信的虚拟PCI设备及其实现方法
技术领域
本申请涉及虚拟PCI设备技术领域,尤其涉及一种面向多域隔离通信的虚拟PCI设备及其实现方法。
背景技术
当前已有的半虚拟化技术方案中,虚拟机和宿主环境的数据传递依赖QEMU实现的PCI虚拟设备,设备使用特定的MMIO端口(内存映射的IO(输入输出)地址空间)和虚拟机协商共享内存的地址。在多域隔离的应用场景中,每一个分区需要的功能数量具有以下特点:1、动态增减,在系统运行过程中,无论是新用户的接入,还是新的用户数据需要共享和传输,都需要构建多条新的通信渠道。因此通信渠道的建立必须能够支持数量的动态调整。2、内容和形式多变,不同的通信渠道承担了不同的交互任务,需要通信的两端进行不同的初始化过程,传递不同类型的数据格式。因此通信渠道应能够适应不同的应用场景,支持足够丰富的配置类型以及数据类型。
传统的虚拟PCI设备受限于PCI总线的限制,设备数量受限,对运行时增减设备支持受内核和平台影响较大。
在现有的虚拟机数据通路实现中,一般是通过共享内存的方式来加速虚拟机和宿主机之间的数据交换过程,共享内存的构建方式如下所示:
1、虚拟机分配一段连续的物理内存;
2、虚拟机将内存地址和长度写入到虚拟PCI设备的配置空间;
3、QEMU中虚拟PCI设备的处理程序将得到的内存地址和长度转换为宿主机能够直接处理的地址;
4、在之后若需要进行数据传递,虚拟机只需要将数据写入到上述分配的虚拟机内的物理内存,然后通知虚拟PCI设备即可。
在上述的传统实现方案中,一个虚拟PCI设备只能拥有一段共享内存,服务一条数据通路。若虚拟机需要多条数据通路,仅能通过模拟出多个虚拟PCI设备来完成,在运行时动态增减数据通路的数量也依赖于虚拟PCI设备的热插拔,受限较大。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种面向多域隔离通信的虚拟PCI设备及其实现方法,能够突破虚拟PCI设备的协议限制,通过一个虚拟PCI设备服务多个数据通路。
本发明一方面提出一种面向多域隔离通信的虚拟PCI设备实现方法,包括:
将虚拟PCI设备的内存映射IO地址空间分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
可选地,还包括:
设置私有配置空间的数量,其中,每个私有配置空间均设有对单个数据通路进行专用配置的第二类寄存器;
为每一个数据通路分配唯一编号,第一类寄存器对当前激活的数据通路进行通用配置,然后根据当前激活的数据通路分配的编号切换到所述私有配置空间内的第二类寄存器,对当前激活的数据通路进行专用配置。
可选地,第一类寄存器对当前激活的数据通路进行通用配置包括:
向分区提供当前激活的数据通路的基本属性的读写入口;
向分区提供当前正发生中断的数据通路的编号,分区通过查询中断相关的其他字段获悉中断发生的原因,并通过重置中断状态完成中断处理。
可选地,所述第一类寄存器包括:
cur_index,用于配置当前激活的数据通路编号;
tunnel_count,用于配置私有配置空间的数量;
tunnel_state,用于配置当前激活数据通路的构建状态;
tunnel_error,用于配置当前激活数据通路的错误状态;
irq_index,用于配置当前发生中断的数据通路的编号;
irq_status,用于配置当前发生中断的原因;
tunnel_function,用于配置当前激活数据通路的类型编号;
tunnel_consume,用于通知当前激活数据通路有新的事件。
可选地,所述第二类寄存器包括:
Avail_ring_size,用于配置Avail_ring的大小;
Used_ring_size,用于配置Used_ring的大小;
Desc_size,用于配置Ring_desc_table的大小;
Addr,用于配置共享内存首地址;
Len,用于配置共享内存长度。
本发明二方面提出一种面向多域隔离通信的虚拟PCI设备,虚拟PCI设备的内存映射IO地址空间被分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
可选地,所述第一类寄存器包括:
cur_index,用于配置当前激活的数据通路编号;
tunnel_count,用于配置私有配置空间的数量;
tunnel_state,用于配置当前激活数据通路的构建状态;
tunnel_error,用于配置当前激活数据通路的错误状态;
irq_index,用于配置当前发生中断的数据通路的编号;
irq_status,用于配置当前发生中断的原因;
tunnel_function,用于配置当前激活数据通路的类型编号;
tunnel_consume,用于通知当前激活数据通路有新的事件。
可选地,所述第二类寄存器包括:
Avail_ring_size,用于配置Avail_ring的大小;
Used_ring_size,用于配置Used_ring的大小;
Desc_size,用于配置Ring_desc_table的大小;
Addr,用于配置共享内存首地址;
Len,用于配置共享内存长度。
可选地,所述第一类寄存器和所述第二类寄存器的宽度均为32位。
从以上技术方案可以看出,本发明的技术方案具有以下优点:
1、以往的实现中,若要支持多条数据通路,就必须向虚拟机中创建对应数量的虚拟PCI设备;但本专利中的设计中,可通过在一个虚拟PCI设备设置多个私有配置空间实现多个数据通路创建处理,无论有多少数据通路,仅需要一个虚拟PCI设备即可,简化了虚拟机看到的虚拟PCI设备的信息;
2、数据通路完全通过虚拟PCI设备暴露给虚拟机,因此可以在运行时调整虚拟PCI设备的寄存器内容,动态调整数据通路的数量;
3、数据通路的数量通过通用配置空间的寄存器tunnel_count暴露给虚拟机,因此它的数量上限由tunnel_count的寄存器大小决定,能够突破虚拟PCI设备的协议限制,在较小性能代价的前提下,实现多个数据通路。
附图说明
为了更清楚地表达说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的MMIO设计示意图;
图2为本发明实施例提供的虚拟机系统的初始化流程示意图;
图3为本发明实施例提供的数据通路的构建示意图;
图4为基于PCI总线的处理器系统结构。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明实施例的一种面向多域隔离通信的虚拟PCI设备实现方法,包括:
将虚拟PCI设备的内存映射IO地址空间分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
其中,虚拟PCI设备为qemu虚拟的pci设备,参见图1,本实施例通过将PCI设备的MMIO(内存映射的IO(输入输出)地址空间)分割为通用和私有两大部分实现了一个虚拟PCI设备服务多个数据通路的设计目的。
为了对所有字段统一管理和转发,所有配置空间中的寄存器宽度都强制设置成32位,避免长度宽度不一致产生的解析复杂性。通用配置空间中的第一类寄存器设置如下表所示。
Figure BDA0003402289860000051
虚拟PCI设备通用配置空间的工作过程包括:
虚拟PCI设备为每一个数据通路分配了一个唯一编号,并使用tunnel_count向分区提供了数据通路数量。这种设计使得分区可以通过读写通用配置空间中的cur_index字段切换当前需要配置和使用的数据通路。下文将当前使用的数据通路成为被激活通路。通用配置空间中向分区提供了被激活数据通路的一些基本属性的读写入口,比如数据通路的功能类型function、当前的工作状态等。为了支持数据通路向分区传递处理请求,虚拟PCI设备通过中断的形式向分区发送请求。因此,虚拟PCI设备并行地提供了中断相关的字段,并通过irq_index向分区提供当前正发生中断的数据通路编号。分区可以查询中断相关的其他字段获悉中断发生的具体原因,并通过重置中断状态完成中断处理。
需要说明的是,通用配置空间是多条数据通路共享的配置空间内容,对通用配置空间中寄存器内容的改变会影响所有的数据通路;而私有配置空间是各个数据通路私有的,因此一个私有配置空间的内容改变仅会影响它所属的数据通路。
下面结合一个具体实施例说明私有配置空间的实现手段。
在一个简单的多域隔离系统中,需要在分区中集成以下三个数据通路:
1、用于获取和设置多域隔离系统的分区信息和相关配置的数据通路;
2、用于分区之间传输文件的数据通路;
3、用于向宿主机传递分区行为进行动态验证的数据通路;
上述三个数据通路都可以通过构建在共享内存上的环形队列实现数据传输。环形队列由以下三个结构组成:
1、ring_desc_table:以ring_desc结构体数组为ring_desc结构池,维护了共享内存中可用的ring_desc结构;
2、avail_ring:环形队列,分区作为写端,QEMU作为读端,其中每一个元素都是ring_desc_table中的编号,指向了被使用的ring_desc结构体,用于分区向QEMU传递承载数据的ring_desc;
3、used_ring:环形队列,QEMU作为写端,分区作为读端,每一个元素都是ring_desc_table的编号以及相关的处理结构反馈值。其中的编号指向了由avail_ring传递过来的ring_desc对应的编号,用于传递已被QEMU处理完成的ring_desc。
在这样的结构组织下,每一条数据通路各自需要以下的私有配置空间的第二类寄存器:
Figure BDA0003402289860000061
Figure BDA0003402289860000071
在上述三个数据通路的场景下,各个数据通路的私有配置空间内容都如上表所示,各个数据通路的私有配置空间相互独立。通用配置空间中tunnel_count=3。
参见图2,使用本发明实施例的虚拟PCI设备实现方法的虚拟机系统的初始化过程如下:
在图2中,pguest_mm是本专利中提出的配置空间对应的虚拟PCI设备驱动,partition_mm是该虚拟PCI设备对应的模拟程序,pguest_tunnel_state是虚拟机为每一个数据通路创建的状态描述结构体,该结构体的内容不在本专利的描述范围内。
当虚拟机初始化以后,虚拟PCI设备驱动首先读取tunnel_count寄存器内容,然后循tunnel_count次。在每一次循环中都创建了一个pguest_tunnel_state结构体并初始化该结构体内容,并设置通用配置空间中的cur_index为当前的循环编号,用来切换虚拟PCI设备的私有配置空间为对应的数据通路配置空间,然后读取该私有配置空间的内容(在本案例中为avail_ring_size,used_ring_size,desc_size这三个寄存器内容),根据这些寄存器内容计算共享内存的大小并分配连续的物理内存。然后通过写入addr,len这两个私有配置空间的寄存器,将物理内存传递给虚拟PCI设备的模拟程序partition-mm,完成数据通路的创建。
当需要传递数据时,虚拟机仅需要将数据写入到对应的共享内存物理内存上,然后写入cur_index切换私有配置空间,最后写入tunnel_consume寄存器,通知对应数据通路有新的数据。
当数据处理完毕后,虚拟PCI设备模拟程序通过修改irq_index和irq_status这两个寄存器内容,向虚拟机报告哪条数据通路已经将数据处理完毕。
本发明实施例还提出一种面向多域隔离通信的虚拟PCI设备,虚拟PCI设备的内存映射IO地址空间被分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
进一步,所述第一类寄存器包括:
cur_index,用于配置当前激活的数据通路编号;
tunnel_count,用于配置私有配置空间的数量;
tunnel_state,用于配置当前激活数据通路的构建状态;
tunnel_error,用于配置当前激活数据通路的错误状态;
irq_index,用于配置当前发生中断的数据通路的编号;
irq_status,用于配置当前发生中断的原因;
tunnel_function,用于配置当前激活数据通路的类型编号;
tunnel_consume,用于通知当前激活数据通路有新的事件。
进一步,所述第二类寄存器包括:
Avail_ring_size,用于配置Avail_ring的大小;
Used_ring_size,用于配置Used_ring的大小;
Desc_size,用于配置Ring_desc_table的大小;
Addr,用于配置共享内存首地址;
Len,用于配置共享内存长度。
进一步,所述第一类寄存器和所述第二类寄存器的宽度均为32位。
本发明实施例具有以下优点:
1、在现有技术中,若要支持多条数据通路,就必须向虚拟机中创建对应数量的虚拟PCI设备;但本发明实施例的设计中,无论有多少数据通路,仅需要一个虚拟PCI设备即可,简化了虚拟机看到的虚拟PCI设备的信息。
2、数据通路完全通过虚拟PCI设备暴露给虚拟机,因此可以在运行时调整虚拟PCI设备的寄存器内容,动态调整数据通路的数量。
3、数据通路的数量通过通用配置空间的寄存器tunnel_count暴露给虚拟机,因此它的数量上限由tunnel_count的寄存器大小决定,本专利中tunnel_count的大小限制在了32位,因此数据通路的数量就限制在2^32个。
本发明中涉及的技术用语和相关技术解释如下:
数据通路:一条数据通路就是为了完成虚拟机中的某一任务而构建出的数据传递的消息通路,在本发明中,数据通路的构建依赖于共享内存。参见图3,一条数据通路需要由分区、QEMU、宿主内核共同配合构建,在分区中pguest_tunnelN是数据通路的前端处理程序,负责在分区中生产和消费数据;partition_tunnelN是内存的翻译程序,将分区中传递下来的数据所在内存翻译成宿主机能够直接处理的内存地址;phost_tunnelN是宿主内核中的数据处理程序,完成数据的转发和验证工作。这三个组件都通过共享内存连接在一起。本专利具体针对的部分就是QEMU中通过对虚拟PCI设备配置空间的改造来管理partition_tunnelN这些数据通路的翻译服务程序,以及将数据通路的状态信息通过配置空间呈现给分区的方式。
分区:在多域隔离的架构中,一个分区物理意义上就是一个利用QEMU模拟出来的一个虚拟机,但和一般虚拟机不同的是,虚拟机中集成了多域隔离的相关服务模块,例如数据通路的处理模块等。
PCI协议:PCI总线是Intel在1992年提出的外设组件互联标准,并成立了PCI特殊兴趣小组(PCI-SIG)对该总线协议进行维护。PCI设备的提出解决了以下几个问题:一是速度问题,二是可扩展性问题,三是可配置性问题。PCI总线作为CPU的扩展总线,最初的版本提供了133MB/s的带宽,远远满足了当时计算机的运行性能要求。另外,PCI总线通过HOST主桥设备连接到CPU,并可以通过树形结构进行扩展,使用PCI桥设备挂载另一条PCI总线,这样极大提高了系统中PCI设备的支持数量。PCI总线定义了每一个PCI设备的配置空间格式,操作系统可以通过读写PCI配置空间实现对PCI设备的配置工作。基于PCI总线的处理器系统结构如图4所示。
MMIO:即内存映射的IO(输入输出)地址空间,是PCI配置空间结构中BaseAddress0指向的内存地址空间。
QEMU:QEMU是一套由法布里斯·贝拉(FabriceBellard)所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,相反,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。

Claims (9)

1.一种面向多域隔离通信的虚拟PCI设备实现方法,其特征在于,包括:
将虚拟PCI设备的内存映射IO地址空间分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
2.根据权利要求1所述的一种面向多域隔离通信的虚拟PCI设备实现方法,其特征在于,还包括:
设置私有配置空间的数量,其中,每个私有配置空间均设有对单个数据通路进行专用配置的第二类寄存器;
为每一个数据通路分配唯一编号,第一类寄存器对当前激活的数据通路进行通用配置,然后根据当前激活的数据通路分配的编号切换到所述私有配置空间内的第二类寄存器,对当前激活的数据通路进行专用配置。
3.根据权利要求2所述的一种面向多域隔离通信的虚拟PCI设备实现方法,其特征在于,第一类寄存器对当前激活的数据通路进行通用配置包括:
向分区提供当前激活的数据通路的基本属性的读写入口;
向分区提供当前正发生中断的数据通路的编号,分区通过查询中断相关的其他字段获悉中断发生的原因,并通过重置中断状态完成中断处理。
4.根据权利要求2所述的一种面向多域隔离通信的虚拟PCI设备实现方法,其特征在于,所述第一类寄存器包括:
cur_index,用于配置当前激活的数据通路编号;
tunnel_count,用于配置私有配置空间的数量;
tunnel_state,用于配置当前激活数据通路的构建状态;
tunnel_error,用于配置当前激活数据通路的错误状态;
irq_index,用于配置当前发生中断的数据通路的编号;
irq_status,用于配置当前发生中断的原因;
tunnel_function,用于配置当前激活数据通路的类型编号;
tunnel_consume,用于通知当前激活数据通路有新的事件。
5.根据权利要求2所述的一种面向多域隔离通信的虚拟PCI设备实现方法,其特征在于,所述第二类寄存器包括:
Avail_ring_size,用于配置Avail_ring的大小;
Used_ring_size,用于配置Used_ring的大小;
Desc_size,用于配置Ring_desc_table的大小;
Addr,用于配置共享内存首地址;
Len,用于配置共享内存长度。
6.一种面向多域隔离通信的虚拟PCI设备,其特征在于,虚拟PCI设备的内存映射IO地址空间被分割为通用配置空间和私有配置空间,所述通用配置空间内储存有对多个数据通路进行通用配置的第一类寄存器,所述私有配置空间内储存有对单个数据通路进行专用配置的第二类寄存器。
7.根据权利要求6所述的一种面向多域隔离通信的虚拟PCI设备,其特征在于,所述第一类寄存器包括:
cur_index,用于配置当前激活的数据通路编号;
tunnel_count,用于配置私有配置空间的数量;
tunnel_state,用于配置当前激活数据通路的构建状态;
tunnel_error,用于配置当前激活数据通路的错误状态;
irq_index,用于配置当前发生中断的数据通路的编号;
irq_status,用于配置当前发生中断的原因;
tunnel_function,用于配置当前激活数据通路的类型编号;
tunnel_consume,用于通知当前激活数据通路有新的事件。
8.根据权利要求6所述的一种面向多域隔离通信的虚拟PCI设备,其特征在于,所述第二类寄存器包括:
Avail_ring_size,用于配置Avail_ring的大小;
Used_ring_size,用于配置Used_ring的大小;
Desc_size,用于配置Ring_desc_table的大小;
Addr,用于配置共享内存首地址;
Len,用于配置共享内存长度。
9.根据权利要求6所述的一种面向多域隔离通信的虚拟PCI设备,其特征在于,所述第一类寄存器和所述第二类寄存器的宽度均为32位。
CN202111502518.1A 2021-12-09 2021-12-09 一种面向多域隔离通信的虚拟pci设备及其实现方法 Pending CN114327751A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111502518.1A CN114327751A (zh) 2021-12-09 2021-12-09 一种面向多域隔离通信的虚拟pci设备及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111502518.1A CN114327751A (zh) 2021-12-09 2021-12-09 一种面向多域隔离通信的虚拟pci设备及其实现方法

Publications (1)

Publication Number Publication Date
CN114327751A true CN114327751A (zh) 2022-04-12

Family

ID=81051322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111502518.1A Pending CN114327751A (zh) 2021-12-09 2021-12-09 一种面向多域隔离通信的虚拟pci设备及其实现方法

Country Status (1)

Country Link
CN (1) CN114327751A (zh)

Similar Documents

Publication Publication Date Title
EP3798835B1 (en) Method, device, and system for implementing hardware acceleration processing
CN102081556B (zh) 与不同种类的资源通信的基于指令系统结构的内定序器
US10445018B2 (en) Switch and memory device
US9842075B1 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
US9996484B1 (en) Hardware acceleration for software emulation of PCI express compliant devices
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
CN112540941B (zh) 一种数据转发芯片及服务器
JP4128956B2 (ja) デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート
KR101035832B1 (ko) 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템
CN110659245A (zh) 具有可编程多上下文加速器电路的系统
US7783822B2 (en) Systems and methods for improving performance of a routable fabric
US20050235083A1 (en) Computer system
US11086703B2 (en) Distributed input/output virtualization
CN116521596B (zh) 一种基于Qemu虚拟环境的PCIe Switch模拟器的实现方法和装置
US11500802B1 (en) Data replication for accelerator
CN115203095A (zh) PCIe装置及其操作方法
Shim et al. Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing
EP3398067A1 (en) Method and system for shared direct access storage
US9330024B1 (en) Processing device and method thereof
CN116501666B (zh) 一种PCIe Switch仿真器的实现方法
US8612662B2 (en) Queue sharing and reconfiguration in PCI express links
CN114327751A (zh) 一种面向多域隔离通信的虚拟pci设备及其实现方法
US10481951B2 (en) Multi-queue device assignment for application groups
CN109542840B (zh) 一种SoC系统
US20160026567A1 (en) Direct memory access method, system and host module for virtual machine

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