CN102650976A - 一种支持单根io虚拟化用户级接口控制装置及其方法 - Google Patents

一种支持单根io虚拟化用户级接口控制装置及其方法 Download PDF

Info

Publication number
CN102650976A
CN102650976A CN2012100964544A CN201210096454A CN102650976A CN 102650976 A CN102650976 A CN 102650976A CN 2012100964544 A CN2012100964544 A CN 2012100964544A CN 201210096454 A CN201210096454 A CN 201210096454A CN 102650976 A CN102650976 A CN 102650976A
Authority
CN
China
Prior art keywords
dma
doorbell
register
virtual
data
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.)
Granted
Application number
CN2012100964544A
Other languages
English (en)
Other versions
CN102650976B (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.)
Institute of Computing Technology of CAS
Original Assignee
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201210096454.4A priority Critical patent/CN102650976B/zh
Publication of CN102650976A publication Critical patent/CN102650976A/zh
Application granted granted Critical
Publication of CN102650976B publication Critical patent/CN102650976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开一种支持单根IO虚拟化用户级接口控制装置及方法,所述装置包括:系统总线接口模块,用于对所述装置与处理器之间的数据传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;操作模块,用于实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;DMA模块,用于根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;网络包分发仲裁模块,用于接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。

Description

一种支持单根IO虚拟化用户级接口控制装置及其方法
技术领域
本发明涉及I/O虚拟化技术,尤其涉及计算机互联中的用户级通信接口技术,涉及服务器系统中的网络接口控制器技术。
背景技术
服务器系统的性能由其计算能力和通信能力两部分共同决定。随着服务器系统中处理器数量的不断增加,以及单个处理器性能的不断提高,对其通信的性能提出了更高的要求。通信性能的提高与网络接口控制器的设计紧密相关。网络接口控制器是指用于连接处理器到互连网络并具有一定网络处理能力的硬件设备。由于网络接口控制器位于处理器和互连网络之间,它的性能决定了处理器和互连网络之间的连接效率。
实现用户级通信接口是提高网络接口控制器性能的重要途径之一。通过用户级通信接口,应用程序可以实现对网络接口控制器硬件的直接访问,从而消除操作系统转发引入的通信开销,大大提高通信的效率。
然而随着云计算的快速发展,虚拟化技术得到了广泛的使用。单台服务器上需要承载若干虚拟机的运行,相应的,网络接口控制器被若干虚拟机共享使用。但是虚拟机运行的客户操作系统(Guest OS)之间拥有不同的地址空间,使得传统网络接口控制器无法被各个客户操作系统直接共享访问。其提供的通信接口必须需要虚拟控制器层(Hypervisor)的仲裁和地址重新映射,最终导致用户级通信的效率无法发挥。
因此,新型网络接口控制器需要实现用户级通信接口技术与虚拟化技术的有效结合,才能适应云计算中对高性能网络通信的需求。
发明内容
为解决上述问题,本发明提供了一种支持单根IO虚拟化用户级接口控制装置及方法,目的是本发明在实现被多个虚拟机直接访问的同时,还为虚拟机上运行的应用程序提供灵活高效的用户级通信接口;若干虚拟机对网络进行共享访问时,本发明的网络接口控制器可以满足虚拟机对网络访问的服务质量(QoS)要求。
本发明公开一种支持单根IO虚拟化用户级接口控制装置,包括:
系统总线接口模块,用于对所述装置与处理器之间的数据传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
操作模块,用于实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
DMA模块,用于根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
网络包分发仲裁模块,用于接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
所述的支持单根IO虚拟化用户级接口控制装置,所述操作模块还包括:
操作队列映射模块,用于对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
操作队列模块,用于将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
所述的支持单根IO虚拟化用户级接口控制装置,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
所述的支持单根IO虚拟化用户级接口控制装置,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
所述的支持单根IO虚拟化用户级接口控制装置,所述操作队列映射模块还包括:
设备配置空间子模块,用于物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
映射子模块,用于将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
所述的支持单根IO虚拟化用户级接口控制装置,所述设备配置空间子模块还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
门铃地址寄存器,只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
流控更新寄存器,只写,1位,通信进程每写一次该寄存器,表示增加S个门铃,其中S是该用户级接口控制装置与上层驱动软件协定的、每次增加的门铃数目,S的具体取值在虚功能VF基址寄存器对应的系统控制页面信息控制页面中的流控粒度寄存器获得;
接收数据地址寄存器,可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
发送完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
接收完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
所述的支持单根IO虚拟化用户级接口控制装置,所述设备配置空间子模块还包括:
所述虚功能VF基址寄存器对应的系统控制页面信息,将存储虚功能VF中通信队列QP公有相关配置,其中,
接收完成事件缓冲区深度,32位,可读可写,配置接收完成事件缓冲区深度;
发送完成事件缓冲区深度,32位,可读可写,配置发送完成事件缓冲区深度;
流控粒度寄存器,32位,可读可写,配置每次更新的门铃数量;
VF优先级寄存器,32位,可读可写,配置当前虚功能DMA请求的优先级;
QP状态寄存器,Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
所述的支持单根IO虚拟化用户级接口控制装置,所述映射子模块还包括:
根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
所述的支持单根IO虚拟化用户级接口控制装置,所述DMA模块还包括:
DMA引擎映射模块,用于根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配,其中P是DMA引擎模块中实现的DMA引擎的数目;
DMA引擎模块,用于将P个DMA引擎对DMA门铃进行并行处理,对数据进行发送和接收。
所述的支持单根IO虚拟化用户级接口控制装置,所述DMA引擎模块还包括:
DMA下传模块,用于数据发送过程,根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件;
DMA上传模块,用于数据接收过程,根据网络包携带的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
本发明公开一种支持单根IO虚拟化用户级接口控制方法,包括:
步骤1,对支持单根IO虚拟化用户级接口控制装置与处理器之间数据进行传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
步骤2,实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
步骤3,根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
步骤4,接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤2还包括:
步骤21,对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
步骤22,将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
所述的支持单根IO虚拟化用户级接口控制方法,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
所述的支持单根IO虚拟化用户级接口控制方法,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤21还包括:
步骤23,物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
步骤24,将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤23还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
门铃地址寄存器,只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
流控更新寄存器,只写,1位,通信进程每写一次该寄存器,表示增加S个门铃,其中S是该用户级接口控制装置与上层驱动软件协定的、每次增加的门铃数目,S的具体取值在虚功能VF基址寄存器对应的系统控制页面信息控制页面中的流控粒度寄存器获得;
接收数据地址寄存器,可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
发送完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
接收完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤23还包括:
所述虚功能VF基址寄存器对应的系统控制页面信息,将存储虚功能VF中通信队列QP公有相关配置,其中,
接收完成事件缓冲区深度,32位,可读可写,配置接收完成事件缓冲区深度;
发送完成事件缓冲区深度,32位,可读可写,配置发送完成事件缓冲区深度;
流控粒度寄存器,32位,可读可写,配置每次更新的门铃数量;
VF优先级寄存器,32位,可读可写,配置当前虚功能DMA请求的优先级;
QP状态寄存器,Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤24还包括:
根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤3还包括:
步骤31,根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配,其中P是DMA引擎模块中实现的DMA引擎的数目;
步骤32,将P个DMA引擎对DMA门铃进行并行处理,对数据进行发送和接收。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤32还包括:
步骤33,数据发送过程,所述数据是指从主机内存读取并发往网络的数据,根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件;
步骤34,数据接收过程,所述数据是指从网络中获取并写入主机内存的数据,根据网络包携带的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
本发明的有益效果为:
本发明提出的网络接口控制器,实现用户级通信接口和单根虚拟化技术的融合,可为每个虚拟机提供高效的用户级通信接口,满足服务器系统中对高速网络通信的需求。
本发明首先提出了一种高效的用户级通信接口设计,为通信效率提供保障。然后在该接口的基础上,实现了基于硬件的单根虚拟化技术(SR-IOV:SingRoot IO Virtualization),客户虚拟机可以直通方式(Pass-through IO)访问设备,减少了虚拟控制器层(Hypervisor)的转发,使得每个客户操作系统(Guest OS)都能直接使用其独占的用户级通信接口,充分发挥了用户级通信接口的性能。
附图说明
图1为本发明的设备结构图;
图2为本发明操作队列映射模块结构;
图3为本发明门铃结构;
图4为本发明设备配置空间子模块;
图5为本发明用户控制页面结构;
图6为本发明系统控制页面结构;
图7为本发明初始化流程图;
图8为本发明发送流程图;
图9为本发明接收流程图;
图10为本发明支持单根IO虚拟化用户级接口控制方法流程图。
具体实施方式
下面给出本发明的具体实施方式,结合附图对本发明做出了详细描述。
本发明提供了一种支持单根IO虚拟化(SR-IOV:Single Root IOVirtualization),且提供用户级通信接口的网络接口控制器,并给出其使用方法。本发明的网络接口控制器在实现被多个虚拟机直接访问的同时,还为虚拟机上运行的应用程序提供灵活高效的用户级通信接口;若干虚拟机对网络进行共享访问时,本发明的网络接口控制器可以满足虚拟机对网络访问的服务质量(QoS)要求。
为了达到客户虚拟机对于设备的直通方式(Pass-through IO)访问,在设备物理功能PF(Physical Function)的基础上,实现了多个虚功能VF(Virtual Function),每个虚功能都包含必要的硬件资源,以支持虚拟机对设备的直接访问和使用。实现网络接口控制器虚功能VF与用户级通信接口间的灵活映射,是本发明的核心内容之一。本发明中涉及的物理功能PF和虚功能VF功能均符合PCI-SIG(PCI特别兴趣组织)的SR-IOV标准。
所述设备由以下几个模块组成:PCIe系统总线接口模块,操作模块,DMA模块,网络包分发仲裁模块。如图1所示。
所述系统总线接口模块,负责网络接口控制器与处理器间的数据传输,除不包含设备配置空间(Configuration Space)外,完整实现了符合PCI Express协议的事务层(Transaction Layer),数据链路层(Data link Layer),和物理层(Physical Layer)。
操作模块,用于实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
DMA模块,用于根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
所述操作队列映射模块,实现设备配置空间,包括1个物理功能PF配置空间和N个虚功能配置空间;实现虚功能中的通信接口(QP:Queue Pair)与网络接口控制器中操作队列(OQ:Operation Queue)资源之间的映射。其结构如图2所示,由设备配置空间子模块和映射子模块组成。
所述操作队列映射模块中的通信接口QP,是网络接口控制器与通信进程间的接口,用于实现用户级通信。每个虚功能均包含Q(Q为通信接口QP的总数目)个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向网络接口控制器发起DMA操作请求(无需操作系统参与)。
所述门铃机制,如图3所示,门铃由DMA(直接内存访问:Direct MemoryAccess)描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入QP用户控制页面中的门铃地址寄存器,本发明的网络接口控制器收到门铃写入动作后,即从门铃携带的内存地址中读取完整的DMA描述符,启动相应的DMA操作。
所述操作队列映射模块中的设备配置空间子模块,包括1个PCIeEndpoint(PCIe端点设备)物理功能PF配置空间和N个虚功能的配置空间。设备配置空间子模块结构如图4所示,物理功能配置空间和虚功能配置空间结构均符合标准PCI-Express协议。在虚功能VF基址寄存器(BAR:Basic AddressRegister)的功能定义上:BAR 0对应的存储空间包含Q个QP所需的用户控制页面信息;BAR 1对应的存储空间包含Q个QP所需的系统控制页面信息。
所述虚功能VF BAR 0对应的用户控制页面结构如图5所示,用于存储虚功能中QP私有的配置信息,包括:
1、门铃地址寄存器:只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
2、流控更新寄存器:只写,1位,通信进程每写一次该寄存器,表示增加S个“门铃”,S在BAR 1系统控制页面中的流控粒度寄存器获得;
3、接收数据地址寄存器:可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
4、发送完成事件地址寄存器:可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
5、接收完成事件地址寄存器:可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
所述虚功能VF BAR 1对应的系统控制页面结构如图6所示,用于存储虚功能中所有QP公用的配置信息,包括:
1、接收完成事件缓冲区深度:32位,可读可写,配置接收完成事件缓冲区深度;
2、发送完成事件缓冲区深度:32位,可读可写,配置发送完成事件缓冲区深度;
3、流控粒度寄存器:32位,可读可写,配置每次更新的“门铃”数量;
4、VF优先级寄存器:32位,可读可写,配置当前虚功能DMA请求的优先级;
5、QP状态寄存器:Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
所述操作队列映射模块中的映射子模块,将收到的DMA门铃机制、VF号和QP号,写入到合适的操作队列中。映射子模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用,因此映射子模块根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
所述操作队列模块,共包含M个操作队列,操作队列缓存来自各个虚功能QP的DMA门铃,并供DMA引擎映射模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
所述DMA引擎映射模块,根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配。
所述DMA引擎模块,共包含P个DMA引擎,P个DMA引擎对DMA门铃进行并行处理。每个DMA引擎由DMA下传模块和DMA上传模块组成,本发明不限定DMA引擎的实现类型(如Scatter-Gather DMA)。
所述DMA下传模块,负责数据发送过程,DMA下传模块根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的VF号和QP号,在设备配置空间中读取对应QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件。
所述DMA上传模块,负责数据接收过程,DMA上传模块根据网络包携带的VF号和QP号,在设备配置空间中读取对应QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
所述网络包分发仲裁模块,负责接收DMA引擎发出的网络包,将来自不同DMA引擎的网络包进行仲裁选择发送,同时也负责接收网络上的网络包,发送至合适的DMA引擎进行处理。
本发明的实施过程将分解为初始化流程、发送流程和接收流程进行阐述。
初始化流程如图7所示,包括进行数据传输之前,由BIOS和驱动配置网络接口控制器、以及由通信进程初始化QP的过程,具体过程是:
S701.系统的BIOS启动标准PCIe设备搜索过程,获取本发明的网络接口控制器相关信息;
S702.虚拟机控制器层(Hypervisor)的系统域Domain 0启动对网络接口控制器物理功能PF和虚拟功能VF的配置;
S703.Hypervisor的Domain 0将一系列虚功能VF分配给各个虚拟机(Guest OS);
S704.随着对虚功能的配置过程,南北桥芯片的IO内存管理单元(IOMMU:Input/output Memory Management Unit)建立宿主机物理地址与虚拟机物理地址的映射表;
S705.基于步骤4建立的地址映射表,Guest OS对QP系统控制页面进行初始化,具体设计对QP系统控制页面中可写寄存器的配置;
S706.用户进程建立,申请使用QP进行通信;
S707.通过步骤4建立的IOMMU地址映射表,将用户进程发出的虚拟机物理地址转换为宿主机物理地址,对QP用户控制页面进行初始化,具体涉及对QP用户控制页面中可写寄存器的配置。
步骤8.整个初始化流程结束,可以接收DMA请求。
发送流程如图8所示,具体过程是:
S801.通信进程生成DMA描述符;
S802.通信进程根据DMA描述符所在虚拟机物理地址和DMA描述符长度,构造门铃,并写入对应QP用户控制页面的门铃地址寄存器。在此步骤中,通信进程发出的门铃地址寄存器是虚拟机(Guest OS)物理地址,因此需要IOMMU将其转换为宿主机物理地址;
S803.网络接口控制器将收到的门铃,以及虚功能VF号和QP号,写入合适的操作队列中缓存;
S804.网络接口控制器将门铃、虚功能VF号和QP号从操作队列中取出,并提交给合适的DMA引擎处理;
S805.DMA下传模块根据门铃的内容,从内存中读取DMA描述符。在此步骤中,由于门铃中携带的是虚拟机物理地址,因此在从内存中读取DMA描述符的过程中,需要IOMMU将虚拟机物理地址转换为宿主机物理地址;
S806.DMA下传模块根据DMA描述符中的内容,从内存中读取要发送的数据和相关控制信息。在此步骤中,由于DMA描述符中携带的是虚拟机物理地址,因此在从内存中读取数据和控制信息的过程中,需要IOMMU将虚拟机物理地址转换为宿主机物理地址;
S807.DMA下载模块将要发送的数据,连同控制信息(如目的VF号和QP号),构造成网络包和发送完成事件;
S808.将网络包发送至网络;
S809.根据虚功能VF号和QP号,读取发送完成事件地址寄存器,将发送完成事件写入对应的内存地址中,此步骤不涉及虚拟机物理地址和宿主机物理地址间的转换。
接收流程如图9所示,具体过程是:
S901.接收到网络包;
S902.将网络包分发至合适的DMA引擎处理;
S903.DMA上传模块从网络包中解析出目的VF号和QP号;
S904.DMA上传模块根据目的VF号和QP号,从设备配置空间模块中读取接收数据地址寄存器和接收完成事件地址寄存器的值;
S905.DMA上传模块将网络包中的数据上传至接收数据缓冲区;
S906.DMA上传模块在数据上传完成后,构造接收完成事件,并将其上传至接收完成事件缓冲区,接收流程结束。
如图10所示,本发明公开一种支持单根IO虚拟化用户级接口控制方法,包括:
步骤1,对支持单根IO虚拟化用户级接口控制装置与处理器之间数据进行传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
步骤2,实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
步骤3,根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
步骤4,接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤2还包括:
步骤21,对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
步骤22,将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
所述的支持单根IO虚拟化用户级接口控制方法,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
所述的支持单根IO虚拟化用户级接口控制方法,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤21还包括:
步骤23,物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
步骤24,将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤23还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
门铃地址寄存器,只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
流控更新寄存器,只写,1位,通信进程每写一次该寄存器,表示增加S个门铃,其中S是该用户级接口控制装置与上层驱动软件协定的、每次增加的门铃数目,S的具体取值在虚功能VF基址寄存器对应的系统控制页面信息控制页面中的流控粒度寄存器获得;
接收数据地址寄存器,可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
发送完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
接收完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤23还包括:
所述虚功能VF基址寄存器对应的系统控制页面信息,将存储虚功能VF中通信队列QP公有相关配置,其中,
接收完成事件缓冲区深度,32位,可读可写,配置接收完成事件缓冲区深度;
发送完成事件缓冲区深度,32位,可读可写,配置发送完成事件缓冲区深度;
流控粒度寄存器,32位,可读可写,配置每次更新的门铃数量;
VF优先级寄存器,32位,可读可写,配置当前虚功能DMA请求的优先级;
QP状态寄存器,Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤24还包括:
根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤3还包括:
步骤31,根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配,其中P是DMA引擎模块中实现的DMA引擎的数目;
步骤32,将P个DMA引擎对DMA门铃进行并行处理,对数据进行发送和接收。
所述的支持单根IO虚拟化用户级接口控制方法,所述步骤32还包括:
步骤33,数据发送过程,所述数据是指从主机内存读取并发往网络的数据,根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件;
步骤34,数据接收过程,所述数据是指从网络中获取并写入主机内存的数据,根据网络包携带的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (20)

1.一种支持单根IO虚拟化用户级接口控制装置,其特征在于,包括:
系统总线接口模块,用于对所述装置与处理器之间的数据传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
操作模块,用于实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
DMA模块,用于根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
网络包分发仲裁模块,用于接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
2.如权利要求1所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述操作模块还包括:
操作队列映射模块,用于对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
操作队列模块,用于将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
3.如权利要求1、2任一所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
4.如权利要求1所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
5.如权利要求2所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述操作队列映射模块还包括:
设备配置空间子模块,用于物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
映射子模块,用于将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
6.如权利要求5所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述设备配置空间子模块还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
门铃地址寄存器,只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
流控更新寄存器,只写,1位,通信进程每写一次该寄存器,表示增加S个门铃,其中S是该用户级接口控制装置与上层驱动软件协定的、每次增加的门铃数目,S的具体取值在虚功能VF基址寄存器对应的系统控制页面信息控制页面中的流控粒度寄存器获得;
接收数据地址寄存器,可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
发送完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
接收完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
7.如权利要求5所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述设备配置空间子模块还包括:
所述虚功能VF基址寄存器对应的系统控制页面信息,将存储虚功能VF中通信队列QP公有相关配置,其中,
接收完成事件缓冲区深度,32位,可读可写,配置接收完成事件缓冲区深度;
发送完成事件缓冲区深度,32位,可读可写,配置发送完成事件缓冲区深度;
流控粒度寄存器,32位,可读可写,配置每次更新的门铃数量;
VF优先级寄存器,32位,可读可写,配置当前虚功能DMA请求的优先级;
QP状态寄存器,Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
8.如权利要求7所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述映射子模块还包括:
根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
9.如权利要求7、8任一所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述DMA模块还包括:
DMA引擎映射模块,用于根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配,其中P是DMA引擎模块中实现的DMA引擎的数目;
DMA引擎模块,用于将P个DMA引擎对DMA门铃进行并行处理,对数据进行发送和接收。
10.如权利要求9所述的支持单根IO虚拟化用户级接口控制装置,其特征在于,所述DMA引擎模块还包括:
DMA下传模块,用于数据发送过程,根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件;
DMA上传模块,用于数据接收过程,根据网络包携带的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
11.一种支持单根IO虚拟化用户级接口控制方法,其特征在于,包括:
步骤1,对支持单根IO虚拟化用户级接口控制装置与处理器之间数据进行传输,实现符合PCI Express协议的事务层,数据链路层,和物理层功能;
步骤2,实现设备配置空间,以及虚功能VF的通信接口QP与操作队列OQ资源之间的映射,使用门铃机制对QP进行直接访问,其包含M个操作队列,所述M≥1;
步骤3,根据DMA引擎的空闲情况,对DMA引擎进行映射,所述DMA引擎进行数据的发送与接收;
步骤4,接收DMA引擎发出的网络包,将不同的DMA引擎的网络包进行仲裁选择发送,同时接收网络中的网络包,发送至DMA引擎进行处理。
12.如权利要求1所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤2还包括:
步骤21,对所述设备配置空间中的一个物理功能PF配置空间和N个虚功能VF配置空间,实现虚功能VF的通信接口QP与操作队列OQ资源之间的映射;
步骤22,将M个操作队列缓存每个虚功能VF的通信接口QP的DMA门铃,并且供DMA模块读取后分配给DMA引擎使用,每个操作队列由一个FIFO组成。
13.如权利要求11、12任一所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,包括:
所述通信接口QP,为所述装置与通信进程之间的接口,用于实现用户级通信,每个虚功能均包含Q个QP,每个通信进程独占一个QP,并使用门铃机制对QP的直接访问,向所述装置发起DMA操作请求。
14.如权利要求11所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,包括:
所述门铃机制,门铃由DMA描述符的内存首地址和DMA描述符的长度组成;通信进程将门铃写入通信接口QP用户控制页面中的门铃地址寄存器,收到门铃写入动作后,从门铃携带的DMA地址中读取完整的DMA描述符,启动相应的DMA操作。
15.如权利要求12所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤21还包括:
步骤23,物理功能PF配置空间和虚功能VF配置空间,在虚功能VF基址寄存器对应的存储空间包含Q个通信接口QP所需的用户控制页面和系统控制页面信息,所述Q≥1;
步骤24,将收到的DMA门铃、虚功能VF和通信接口QP,写入到操作队列中,该模块使用的仲裁算法,在满足上层软件对QoS需求的同时,还要实现对M个操作队列的公平使用。
16.如权利要求15所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤23还包括:
所述虚功能VF基址寄存器对应的用户控制页面信息,将存储虚功能中通信队列QP私有相关配置,其中,
门铃地址寄存器,只写,64位,通信进程通过将DMA描述符所在的内存地址写入该寄存器,来启动一次DMA操作;
流控更新寄存器,只写,1位,通信进程每写一次该寄存器,表示增加S个门铃,其中S是该用户级接口控制装置与上层驱动软件协定的、每次增加的门铃数目,S的具体取值在虚功能VF基址寄存器对应的系统控制页面信息控制页面中的流控粒度寄存器获得;
接收数据地址寄存器,可读可写,64位,通信进程在内存中开辟的接收数据缓冲区首地址;
发送完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的发送完成事件缓冲区首地址;
接收完成事件地址寄存器,可读可写,64位,通信进程在内存中开辟的接收完成事件缓冲区首地址。
17.如权利要求15所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤23还包括:
所述虚功能VF基址寄存器对应的系统控制页面信息,将存储虚功能VF中通信队列QP公有相关配置,其中,
接收完成事件缓冲区深度,32位,可读可写,配置接收完成事件缓冲区深度;
发送完成事件缓冲区深度,32位,可读可写,配置发送完成事件缓冲区深度;
流控粒度寄存器,32位,可读可写,配置每次更新的门铃数量;
VF优先级寄存器,32位,可读可写,配置当前虚功能DMA请求的优先级;
QP状态寄存器,Q位,只读,每个QP对应1位,用来表示对应QP的状态,0为未初始化,1为已初始化。
18.如权利要求17所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤24还包括:
根据VF优先级寄存器中记录的优先级进行仲裁,将获得仲裁的DMA请求写入存储DMA请求数目最少的操作队列。
19.如权利要求17、18任一所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤3还包括:
步骤31,根据DMA引擎的空闲情况,将M个操作队列中的DMA门铃分配给P个DMA引擎,具有较高优先级的门铃将被优先分配,其中P是DMA引擎模块中实现的DMA引擎的数目;
步骤32,将P个DMA引擎对DMA门铃进行并行处理,对数据进行发送和接收。
20.如权利要求19所述的支持单根IO虚拟化用户级接口控制方法,其特征在于,所述步骤32还包括:
步骤33,数据发送过程,所述数据是指从主机内存读取并发往网络的数据,根据门铃机制读取DMA描述符,进而根据DMA描述符的内容,读取需要传输的数据和控制信息,再将数据打包成网络包发出,网络包发送完成后,再根据操作队列中存储的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的发送完成事件地址寄存器,向发送完成事件缓冲区中写入发送完成事件;
步骤34,数据接收过程,所述数据是指从网络中获取并写入主机内存的数据,根据网络包携带的虚功能VF和通信接口QP,在设备配置空间中读取对应通信接口QP的接收数据地址寄存器和接收完成事件地址寄存器,将数据写入接收数据缓冲区中,待数据均写入缓冲区后,再将接收完成事件写入接收完成事件缓冲区中。
CN201210096454.4A 2012-04-01 2012-04-01 一种支持单根io虚拟化用户级接口控制装置及其方法 Active CN102650976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210096454.4A CN102650976B (zh) 2012-04-01 2012-04-01 一种支持单根io虚拟化用户级接口控制装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210096454.4A CN102650976B (zh) 2012-04-01 2012-04-01 一种支持单根io虚拟化用户级接口控制装置及其方法

Publications (2)

Publication Number Publication Date
CN102650976A true CN102650976A (zh) 2012-08-29
CN102650976B CN102650976B (zh) 2014-07-09

Family

ID=46692984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210096454.4A Active CN102650976B (zh) 2012-04-01 2012-04-01 一种支持单根io虚拟化用户级接口控制装置及其方法

Country Status (1)

Country Link
CN (1) CN102650976B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678235A (zh) * 2013-12-09 2014-03-26 无锡市同威科技有限公司 基于并行流水线网络数据处理装置及方法
CN104123173A (zh) * 2014-07-22 2014-10-29 华为技术有限公司 一种实现虚拟机间通信的方法及装置
CN104539541A (zh) * 2015-01-22 2015-04-22 网神信息技术(北京)股份有限公司 数据传输方法及装置
WO2015070539A1 (zh) * 2013-11-14 2015-05-21 浪潮电子信息产业股份有限公司 一种基于dma的数据压缩芯片结构及其实现方法
CN106200448A (zh) * 2015-05-09 2016-12-07 精航伟泰测控仪器(北京)有限公司 一种工业接口实施远程映射系统
CN106560791A (zh) * 2015-10-01 2017-04-12 阿尔特拉公司 高效虚拟i/o地址转换
CN107894913A (zh) * 2016-09-30 2018-04-10 华为技术有限公司 一种计算机系统和存储访问装置
CN108388528A (zh) * 2017-02-03 2018-08-10 英特尔公司 基于硬件的虚拟机通信
CN109062671A (zh) * 2018-08-15 2018-12-21 无锡江南计算技术研究所 一种轻量级的高性能互连网络软件虚拟化方法
CN110389711A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 帮助端点设备实现sr-iov功能的方法、设备和计算机程序产品
CN110532063A (zh) * 2019-08-13 2019-12-03 南京芯驰半导体科技有限公司 一种同时支持总线虚拟化和功能安全的系统及方法
CN110825485A (zh) * 2018-08-07 2020-02-21 华为技术有限公司 数据处理的方法、设备和服务器
CN111737176A (zh) * 2020-05-11 2020-10-02 福州瑞芯微电子股份有限公司 一种基于pcie数据的同步装置及驱动方法
CN112749112A (zh) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 一种硬件流水结构
CN113778328A (zh) * 2020-06-09 2021-12-10 慧与发展有限责任合伙企业 在半导体封装之间引导控制数据

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979592B1 (en) * 2007-02-09 2011-07-12 Emulex Design And Manufacturing Corporation Virtualization bridge device
WO2011084257A2 (en) * 2009-12-17 2011-07-14 Microsoft Corporation Virtual storage target offload techniques

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979592B1 (en) * 2007-02-09 2011-07-12 Emulex Design And Manufacturing Corporation Virtualization bridge device
WO2011084257A2 (en) * 2009-12-17 2011-07-14 Microsoft Corporation Virtual storage target offload techniques

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李超: "SR-IOV虚拟化技术的研究与优化", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *
李超等: "基于SR-IOV的IO虚拟化技术", 《电脑与信息技术》 *

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015070539A1 (zh) * 2013-11-14 2015-05-21 浪潮电子信息产业股份有限公司 一种基于dma的数据压缩芯片结构及其实现方法
CN103678235A (zh) * 2013-12-09 2014-03-26 无锡市同威科技有限公司 基于并行流水线网络数据处理装置及方法
CN103678235B (zh) * 2013-12-09 2016-06-08 无锡市同威科技有限公司 基于并行流水线网络数据处理装置及方法
CN104123173A (zh) * 2014-07-22 2014-10-29 华为技术有限公司 一种实现虚拟机间通信的方法及装置
CN104123173B (zh) * 2014-07-22 2017-08-25 华为技术有限公司 一种实现虚拟机间通信的方法及装置
CN104539541B (zh) * 2015-01-22 2020-01-17 网神信息技术(北京)股份有限公司 数据传输方法及装置
CN104539541A (zh) * 2015-01-22 2015-04-22 网神信息技术(北京)股份有限公司 数据传输方法及装置
CN106200448A (zh) * 2015-05-09 2016-12-07 精航伟泰测控仪器(北京)有限公司 一种工业接口实施远程映射系统
CN106560791A (zh) * 2015-10-01 2017-04-12 阿尔特拉公司 高效虚拟i/o地址转换
US10713083B2 (en) 2015-10-01 2020-07-14 Altera Corporation Efficient virtual I/O address translation
CN107894913A (zh) * 2016-09-30 2018-04-10 华为技术有限公司 一种计算机系统和存储访问装置
CN107894913B (zh) * 2016-09-30 2022-05-13 超聚变数字技术有限公司 一种计算机系统和存储访问装置
CN108388528B (zh) * 2017-02-03 2024-03-08 英特尔公司 基于硬件的虚拟机通信
CN108388528A (zh) * 2017-02-03 2018-08-10 英特尔公司 基于硬件的虚拟机通信
CN110389711B (zh) * 2018-04-20 2023-04-04 伊姆西Ip控股有限责任公司 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质
CN110389711A (zh) * 2018-04-20 2019-10-29 伊姆西Ip控股有限责任公司 帮助端点设备实现sr-iov功能的方法、设备和计算机程序产品
CN110825485A (zh) * 2018-08-07 2020-02-21 华为技术有限公司 数据处理的方法、设备和服务器
US11636062B2 (en) 2018-08-07 2023-04-25 Huawei Technologies Co., Ltd. Data processing method and device, and server
CN109062671A (zh) * 2018-08-15 2018-12-21 无锡江南计算技术研究所 一种轻量级的高性能互连网络软件虚拟化方法
CN110532063A (zh) * 2019-08-13 2019-12-03 南京芯驰半导体科技有限公司 一种同时支持总线虚拟化和功能安全的系统及方法
CN110532063B (zh) * 2019-08-13 2022-04-01 南京芯驰半导体科技有限公司 一种同时支持总线虚拟化和功能安全的系统及方法
CN111737176A (zh) * 2020-05-11 2020-10-02 福州瑞芯微电子股份有限公司 一种基于pcie数据的同步装置及驱动方法
CN113778328A (zh) * 2020-06-09 2021-12-10 慧与发展有限责任合伙企业 在半导体封装之间引导控制数据
CN112749112B (zh) * 2020-12-31 2021-12-24 无锡众星微系统技术有限公司 一种硬件流水结构
CN112749112A (zh) * 2020-12-31 2021-05-04 无锡众星微系统技术有限公司 一种硬件流水结构

Also Published As

Publication number Publication date
CN102650976B (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN102650976B (zh) 一种支持单根io虚拟化用户级接口控制装置及其方法
US10241951B1 (en) Device full memory access through standard PCI express bus
CN106933775B (zh) 数据处理系统和数据处理的方法
CN105993009B (zh) 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置
US9940123B1 (en) Updating device code through a bus
EP3264280B1 (en) Method and apparatus for extending pcie domain
US8972611B2 (en) Multi-server consolidated input/output (IO) device
WO2017066944A1 (zh) 一种存储设备访问方法、装置和系统
US9652182B2 (en) Shareable virtual non-volatile storage device for a server
CN111427808A (zh) 用于管理存储设备和主机单元之间的通信的系统和方法
CN105320628B (zh) 使能单根i/o设备多根共享的适配装置、系统及方法
US10846254B2 (en) Management controller including virtual USB host controller
US9910693B2 (en) Virtual machine to host device bridging
CN102707991A (zh) 多根i/o 虚拟化共享方法和系统
US11940933B2 (en) Cross address-space bridging
US10467179B2 (en) Method and device for sharing PCIe I/O device, and interconnection system
TWI825327B (zh) 輕量橋接器電路以及用於多實體功能模擬的方法及物品
CN102388357A (zh) 访问存储设备的方法及系统
Bielski et al. Survey on memory and devices disaggregation solutions for HPC systems
US11249934B2 (en) Data access method and apparatus
Shim et al. Design and implementation of initial OpenSHMEM on PCIe NTB based cloud computing
CN110362523B (zh) 一种基于virtio协议的接口及数据处理方法
CN117555832A (zh) 虚拟机直通PCIe设备的DMA中断配置方法、设备、产品和介质
Homölle et al. Multi root i/o virtualization (mr-iov)
CN116048658A (zh) 数据访问模块的部署方法、数据访问方法及板卡

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant