通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法技术

技术编号:15529581 阅读:123 留言:0更新日期:2017-06-04 16:54
一种用于从次要快速外围组件互连(PCIe)域访问主要PCIe域中设备的方法,包括:确定使主要PCIe域中设备的哪一个或多个虚拟功能对于次要PCIe域可用。在与所述一个或多个虚拟功能相关联的主要PCIe域中安装虚拟功能驱动程序。将与所述一个或多个虚拟功能对应的信息提供给所述次要PCIe域。根据所述信息,在所述次要PCIe域中安装与所述一个或多个虚拟功能相关联的虚拟功能驱动程序。所述次要PCIe域中的虚拟功能驱动程序与所述主要PCIe域中的虚拟功能驱动程序的性质相同。根据所述次要PCIe域中的虚拟功能驱动程序访问所述主要PCIe域中的设备。

Method for using PCIe device resources using a commodity type PCI switch using an unmodified PCIe device driver on an CPU in a PCIe structure

A method for accessing devices in a major PCIe domain from a secondary fast peripheral component interconnect (PCIe) domain, including determining which one or more virtual functions of a device in the main PCIe domain are available for a secondary PCIe domain. A virtual function driver is installed in the main PCIe domain associated with one or more virtual functions. Information corresponding to one or more virtual functions is provided to the secondary PCIe domain. According to the information, a virtual function driver associated with one or more virtual functions is installed in the secondary PCIe domain. The virtual function driver in the secondary PCIe domain is the same as the virtual function driver in the main PCIe domain. The device in the main PCIe domain is accessed according to the virtual function driver in the secondary PCIe domain.

【技术实现步骤摘要】
【国外来华专利技术】通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法
本专利技术一般地涉及快速外围组件互连(PCie)交换机,其中央处理单元(CPU)连接在PCIe交换机的非透明网桥(NTB)之后,尤其涉及一种用于从次要PCIe域访问主要PCIe域中的设备的方法与装置。
技术介绍
传统的单CPU和端点设备图1示出了PCIe交换机域中传统的单CPU网络100。最上层的PCIe设备为CPU网络100的PCIe控制器102,可以直接存储访问CPU存储器104。这种传统布局的最上层设备(PCIe控制器)称为“根联合体”(树的根级)。从“根级”向下还示出了PCIe交换机106,并且终端处为PCIe设备端点108。CPU网络100采用通信目的的共享并行总线架构103,其中,所有设备共享地址、数据和控制线的通用集合。CPU主机110通常执行通过“枚举”来确定CPU网络100的配置的操作系统。所述枚举查找交换机106和端点108,并要求对CPU网络100中所有资源的总所有权。1型和2型配置读写命令用于发现交换机106、设备端点108以及设备端点108和交换机106所拥有的内存资源。将PCIe地址空间中的内存地址分配给交换机106和设备端点108的所有资源。为所有交换机106配置基础和限位交换机寄存器,以使CPU网络100中的任何点均理解如何将周围的内存事务从设备端点到设备端点进行路由。CPU主机110和设备端点108可以读取并写入CPU网络100中任何地方的内存资源。因此,CPU主机110可以配置设备端点108以便进行使用,并且一旦将设备端点108设置用来执行功能和从CPU存储器104读取以及向CPU存储器104写入,则设备端点108可以独立行动。例如,设备端点108的一种类型为以太网控制器108a,可以对其进行设置以访问来自CPU存储器104的发送和接收描述符,这些描述符指向CPU主机110管理的缓冲区。以太网控制器108a可以与一个或多个PCIe设备(例如,以太网设备)相关联。每个以太网设备可以在其发送描述符环(TX环)中独立发送由发送描述符描述的缓冲区内容,并且以太网控制器108a可以接收数据并经由CPU存储器104中的接收描述符环(RX环)通过其DMA功能直接发送这些数据至接收缓冲区。根据以太网设备编程和PCIe标准,以太网控制器108a可以经由称为MSI/MSI-x消息的PCIe内存事务向CPU主机110发送中断。这是在映射到PCIe的CPU内存空间中击中CPU主机110设备/中断寄存器是一种内存事务。用于此目的的交换机被广泛使用,并且成本相对较低。CPU网络100被称为实现单个PCIe域的透明PCIe网络。然而,从另一个网络域访问该PCIe域需要使用专门的设备驱动程序或专门的硬件。
技术实现思路
由前述可知,本领域技术人员可以理解,在不需要专门的设备驱动程序或硬件的情况下,已经出现了从一个PCIe域访问另一PCIe域中的设备的技术需求。根据本公开,提供了一种通过利用商品型PCIe交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来从次要PCIe域访问主要快速外围组件互连(PCIe)域中的设备的方法与装置,从而大大降低或基本消除与传统PCIe结构实现方式相关联的问题和缺点。一种用于从次要PCIe域访问主要PCIe域中的设备的方法,包括:确定使主要PCIe域中的设备的哪一个或多个虚拟功能对于所述次要PCIe域可用。在与所述一个或多个虚拟功能相关联的主要PCIe域中安装虚拟功能驱动程序。将与所述一个或多个虚拟功能对应的信息提供给所述次要PCIe域。根据所述信息,在所述次要PCIe域中安装与所述一个或多个虚拟功能相关联的虚拟功能驱动程序。所述次要PCIe域中的虚拟功能驱动程序具有与所述主要PCIe域中的虚拟功能驱动程序相同的性质。根据所述次要PCIe域中的虚拟功能驱动程序访问所述主要PCIe域中的设备。本专利技术描述了相比于常规PCIe结构实现方式的许多技术优势。例如,一个技术优点在于,在不使用专门的设备驱动程序和硬件的情况下,使次要PCIe域访问主要PCIe域中的设备。另一个技术优点在于,从主要PCIe域提供信息,以使次要PCIe域安装设备驱动程序,其中,所述设备驱动程序具有与主要PCIe域中相应设备驱动程序相同的性质。通过以下附图、说明书和权利要求书,其它技术优点对于本领域技术人员来说可以是显而易见的且可以认识到。附图说明为了更全面的理解本专利技术及其优点,现结合附图参考以下描述,相同的附图标记表示相同的部件,其中:图1示出了PCIe交换机域中传统的单CPU系统;图2示出了图1所示的主要PCIe域通过非透明网桥(NTB)主要和次要端点与次要PCIe域互连;图3示出了主要PCIe域与次要PCIe域之间的转换方案;以及图4示出了从次要域访问主要域中设备的方法。具体实施方式以下进行讨论的图1至图4以及用于描述本专利文档中本专利技术原理的各实施例仅示意性说明,而不应解释为对本专利技术范围的限制。本领域技术人员应理解,本专利技术原理可以在任何类型的适当设置的设备或系统中进行实现。一幅图中所示出并讨论的特征可以是当地在一个或多个其它附图中实现。本专利技术描述了一种使正常写入的PCIe设备驱动程序在PCIe结构的根联合体上运行的系统,即使其不在这种根联合体上并且实际上位于NTB之后,其中,所述NTB仅仅能够向所述设备实际存在于其中的PCIe结构进行内存转换,也能够犹如该系统在能够访问所述设备的CPU根联合体上运行一样。所述系统通过对于操作系统可用的软件允许访问通常用于独立虚拟机或CPU的对称多处理(SMP)内核的虚拟功能、物理功能或设备队列。所述系统避免了对设备驱动程序进行复杂变化,并且避免了为此目的需要新型PCIe交换机硬件。通过非透明网桥连接的CPU的PCIe网络图2示出了CPU网络200,其中,图1所示的主要PCIe域220与次要PCIe域222通过称为非透明网桥(NTB)主要端点207的新型端点耦合在一起。主要PCIe域220中的NTB主要端点207紧邻NTB次要端点208a,所述NTB次要端点208a是次要PCIe域222的设备端点208。次要PCIe域222包括与主要PCIe域220类似的结构,其中具有CPU主机210、CPU存储器204、建立根联合体的PCIe控制器202、PCIe交换机206以及PCIe设备端点208,比如,NTB次要端点208a,所有组件均通过高速内部总线203相互连接。起初构想PCIe网络只具有一个根联合体,在本专利技术中也是这样认为的,因为主要根联合体和次要根联合体是不同域(例如,主要PCIe域220和次要PCIe域222,如图所示)的一部分。“非透明桥接”允许多个根联合体通过它们各自的独立域在共同的PCIe网络中运行。NTB主要端点207和NTB次要端点208a是允许对许可内存事务从NTB的一侧穿到另一侧的性质进行编程的PCIe设备。在本专利技术的上下文中,这类特征允许NTB主要端点207之后的次要PCIe域222中的次要根联合体访问主要PCIe域220中PCIe设备的设备寄存器或存储。这些类型的网桥已由不同供应商开发有一段时间,并且被广泛使用而且本文档来自技高网
...
通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法

【技术保护点】
一种用于从次要快速外围组件互连(PCIe)域访问主要PCIe域中的设备的方法,所述方法包括:中央处理单元确定使所述主要PCIe域中的设备的哪一个或多个虚拟功能对于所述次要PCIe域可用;所述中央处理单元在与所述一个或多个虚拟功能相关联的主要PCIe域中安装第一虚拟功能驱动程序;所述中央处理单元将与所述一个或多个虚拟功能对应的信息提供给所述次要PCIe域,所述信息用于在与所述一个或多个虚拟功能相关联的次要PCIe域中安装第二虚拟功能驱动程序,所述次要PCIe域中的第二虚拟功能驱动程序具有与所述主要PCIe域中的第一虚拟功能驱动程序相同的性质;以及所述中央处理单元根据所述次要PCIe域中的第二虚拟功能驱动程序的请求访问所述主要PCIe域中的设备。

【技术特征摘要】
【国外来华专利技术】2014.10.03 US 62/059,6771.一种用于从次要快速外围组件互连(PCIe)域访问主要PCIe域中的设备的方法,所述方法包括:中央处理单元确定使所述主要PCIe域中的设备的哪一个或多个虚拟功能对于所述次要PCIe域可用;所述中央处理单元在与所述一个或多个虚拟功能相关联的主要PCIe域中安装第一虚拟功能驱动程序;所述中央处理单元将与所述一个或多个虚拟功能对应的信息提供给所述次要PCIe域,所述信息用于在与所述一个或多个虚拟功能相关联的次要PCIe域中安装第二虚拟功能驱动程序,所述次要PCIe域中的第二虚拟功能驱动程序具有与所述主要PCIe域中的第一虚拟功能驱动程序相同的性质;以及所述中央处理单元根据所述次要PCIe域中的第二虚拟功能驱动程序的请求访问所述主要PCIe域中的设备。2.根据权利要求1所述的方法,其中,提供给所述次要PCIe域的与所述一个或多个虚拟功能对应的信息包括基址寄存器。3.根据权利要求1所述的方法,其中,提供给所述次要PCIe域的与所述一个或多个虚拟功能对应的信息包括基址寄存器的一部分。4.根据权利要求1所述的方法,其中,提供给所述次要PCIe域的与所述一个或多个虚拟功能对应的信息包括与所述主要PCIe域中的设备相关联的物理功能。5.根据权利要求1所述的方法,还包括:枚举所述次要PCIe域的配置,其中,所述枚举发生在所述确定使所述主要PCIe域中的设备的哪一个或多个虚拟功能对于所述次要PCIe域可用之后。6.根据权利要求1所述的方法,还包括:在所述主要PCIe域和所述次要PCIe域之间建立地址转换以便访问所述主要PCIe域中的设备。7.一种用于访问单独域中设备的装置,所述装置包括:第一快速外围组件互连(PCIe)域,包括中央处理单元(CPU)主机、存储器和第一网桥设备,所述第一网桥设备与第二PCIe域的第二网桥设备耦合,所述CPU主机配置用于:接收与所述第二PCIe域中的端点设备的一个或多个虚拟功能对应的信息,其中,使所述第二PCIe域中设备端点的一个或多个虚拟功能对于所述第一PCIe域可用;安装与所述一个或多个虚拟功能相关联的虚拟功能驱动程序,所述第一PCIe域中的虚拟功能驱动程序具有与所述第二PCIe域中的虚拟功能驱动程序相同的性质;根据所述第一PCIe域中的虚拟功能驱动程序访问所述第二PCIe域中的端点设备。8.根据权利要求7所述的装置,其中,所述CPU主机接收的与所述一个或多个虚拟功能对应的信息包括基址寄存器。9.根据权利要求7所述的...

【专利技术属性】
技术研发人员:托马斯·博伊尔于昌卫斯理·邵陈立钢
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1