CN110489365A - 交换设备、外围部件互连高速系统及其初始化方法 - Google Patents
交换设备、外围部件互连高速系统及其初始化方法 Download PDFInfo
- Publication number
- CN110489365A CN110489365A CN201910755680.0A CN201910755680A CN110489365A CN 110489365 A CN110489365 A CN 110489365A CN 201910755680 A CN201910755680 A CN 201910755680A CN 110489365 A CN110489365 A CN 110489365A
- Authority
- CN
- China
- Prior art keywords
- pcie
- equipment
- host
- switching equipment
- data message
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/102—Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
申请公开了一种交换设备、PCIe系统及其初始化方法,该交换设备包括:多个PCIe上行端口,用于与至少一个主机连接;至少一个PCIe下行端口,用于与至少一个I/O设备连接;内置的处理装置,通过该交换设备的内部连接线路与该至少一个PCIe下行端口连接;该内置的处理装置用于:通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文;接收该至少一个PCIe下行端口通过该内部连接线路传输的配置读写响应报文,该配置读写响应报文携带完成者标识;根据该配置读写响应报文中携带的完成者标识,确定该交换设备连接有标识为该完成者标识的I/O设备。该交换设备、PCIe系统及其初始化方法具有较高的稳定性和可靠性。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及交换设备、外围部件互连高速系统及其初始化方法。
背景技术
外围部件互连特别兴趣小组(Peripheral Component Interconnect SpecialInterest Group,PCI-SIG)提出的单根输入输出虚拟化(Single-Root Input/OutputVirtualization,SR-IOV)技术应用于一个主机中的多进程共享输入输出(Input/Output,I/O)设备的场景,SR-IOV技术为PCI高速(PCI express,PCIe)设备虚拟出多个虚拟功能(Virtual Function,VF),以供上层主机调用。
多根输入输出虚拟化(Multi-Root Input/Output Virtualization,MR-IOV)技术应用于多个主机共享I/O设备的场景,该技术虚拟出多个PCI总线域(VirtualHierarchies,VH)供多个主机调用。然而,由于该技术修改了PCIe协议中的数据链路层以上的协议,因此需要拓扑结构中的多个节点进行适配,如支持MR-IOV的根节点(Root Port,RP)、交换机(Switch)以及PCIe设备等。由于MR-IOV技术需要产业链适配,兼容性不好,目前还没有支持该标准的产品。
现有技术提出了一种通过SR-IOV设备实现多个主机共享I/O设备的方案。图1示出了现有技术中的一种典型实现方式,该系统100包括:N个主机(主机1至主机N)110、PCIe交换机120、M个I/O设备(I/O设备1至I/O设备M)130以及外置的管理CPU 140和存储器150,1≤M≤N,其中,管理CPU 140负责进行I/O设备侧的设备枚举和发现,以及进行设备配置和管理;PCIe交换机120包括非透明桥的的链路部分(Non-Transparent Link,NT-L)模块、多个PCIe上行端口(Upstream Port,UP)、全局非透明(Non-Transparent,NT)EP模块和多个虚拟PCIe下行端口(Downstream Port,DP),其中,全局NT EP模块用于寄存器的管理和内存地址的映射,实现非透明桥的虚拟部分(Non-Transparent Virtual,NT-V)的功能,其中可以包括多个虚拟层次结构(Virtual Hierarchy,VH)。
该技术方案需要额外设置管理CPU,且需要外置与该管理CPU对应的存储器,需要提供单独的PCIe管理接口,不适合产品布局。此外,图1所示的系统100中仅设置一个管理CPU用于整个系统的管理,管理链路单一,一旦管理链路出现异常,会导致整个网络都瘫痪而无法使用,稳定性和可靠性较低。
发明内容
本发明实施例提供了一种交换设备、PCIe系统以及PCIe系统的初始化方法,具有较高的稳定性和可靠性。
第一方面,提供了一种交换设备,包括:多个PCIe上行端口,用于与至少一个主机连接;至少一个PCIe下行端口,用于与至少一个I/O设备连接;内置的处理装置,通过该交换设备的内部连接线路与该至少一个PCIe下行端口连接;该内置的处理装置用于:
通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文;
接收该至少一个PCIe下行端口通过该内部连接线路传输的配置读写响应报文,该配置读写响应报文携带完成者标识;
根据该配置读写响应报文中携带的完成者标识,确定该交换设备连接有标识为该完成者标识的I/O设备。
该内置的处理装置可以用于枚举与该交换设备连接的物理设备(即真实设备)。可选地,该内置的处理装置可以向该至少一个PCIe下行端口发送多个配置读写报文,该多个配置读写报文携带不同的完成者标识,该至少一个PCIe下行端口用于向与该至少一个PCIe下行端口连接的物理设备转发该多个配置读写报文,并且在接收到连接的物理设备发送的至少一个配置读写响应报文时,向该内置的处理装置转发该至少一个配置读写响应报文,其中,该至少一个配置读写响应报文与该多个配置读写报文中的至少一个配置读写报文一一对应,并且每个配置读写响应报文携带与该配置读写响应报文对应的配置读写报文中的完成者标识;该内置的处理装置可以接收该至少一个PCIe下行端口转发的至少一个配置读写响应报文,并且根据该至少一个配置读写响应报文中每个配置读写响应报文中携带的完成者标识,确定与该至少一个PCIe下行端口(或该交换设备)连接的物理设备,该物理设备可以包括I/O设备,或进一步包括PCIe交换机和/或其它装置。
因此,根据本发明实施例的交换设备,包括用于与该至少一个主机连接的多个PCIe上行端口、用于与该至少一个I/O设备连接的至少一个PCIe下行端口以及内置的处理装置,该处理装置通过内部总线与该至少一个PCIe下行端口连接,用于通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文,接收该至少一个PCIe下行端口通过该内部连接线路传输的配置读写响应报文,以及根据该配置读写响应报文中携带的完成者标识,确定该交换设备连接有标识(例如BDF)为该完成者标识的I/O设备,这样,某一个交换设备发生故障只会影响到与该交换设备连接的至少一个主机和至少一个I/O设备,并不会影响系统中的其余交换设备及其连接的主机和I/O设备,因此与现有技术中外设管理CPU相比,能够提高系统的稳定性和可靠性。
在第一方面的第一种可能的实现方式中,若该至少一个下行PCIe端口连接有单功能I/O设备,该交换设备具体用于透传该单功能I/O设备和该单功能I/O设备对应的主机之间的信息。
此时,该单功能I/O设备的功能仅能供该至少一个主机中的一个主机使用,即该单功能I/O设备与使用该单功能I/O设备的功能的主机对应。
结合上述可能的实现方式,在第一方面的第二种可能的实现方式中,该交换设备还包括:至少一个镜像端点设备模块,用于存储与该至少一个PCIe下行端口连接的至少一个I/O设备的PCIe配置内容;映射模块,用于实现该至少一个主机对应的PCIe域与该至少一个I/O设备对应的PCIe域之间的映射;至少一个虚拟端点设备模块,用于虚拟与该至少一个PCIe下行端口连接的至少一个I/O设备的功能,以供该至少一个主机使用。
可选地,该至少一个镜像端点设备模块的一端与该至少一个下行端口连接,该至少一个虚拟端点设备模块的一端与该多个PCIe上行端口连接,该映射模块分别与该至少一个镜像端点设备模块的另一端以及该至少一个虚拟端点设备模块的另一端连接。
可选地,该映射模块可以具体用于实现该至少一个镜像端点设备模块与该至少一个虚拟端点设备模块之间的映射,例如标识和/或地址等。
结合上述可能的实现方式,在第一方面的第三种可能的实现方式中,该至少一个PCIe下行端口中的第一PCIe下行端口不具有PCIe配置空间,该多个PCIe上行端口中的每个PCIe上行端口具有PCIe配置空间。
结合上述可能的实现方式,在第一方面的第四种可能的实现方式中,该交换设备还包括该至少一个PCIe下行端口中的每个PCIe下行端口对应的至少一个PCIe配置空间,该至少一个虚拟端点设备模块具体通过该至少一个PCIe下行端口对应的至少一个PCIe配置空间与该多个PCIe上行端口连接。
结合上述可能的实现方式,在第一方面的第五种可能的实现方式中,该映射模块存储有:第一映射表,用于存储由该至少一个主机对应的PCIe域中的标识到该至少一个I/O设备对应的PCIe域中的标识的映射关系;第二映射表,用于存储由该至少一个I/O设备对应的PCIe域中的标识到该至少一个主机对应的PCIe域中的标识的映射关系。
可选地,该第一映射表用于存储由该至少一个虚拟端点设备模块的标识到该至少一个镜像端点设备模块的标识的映射关系;该第二映射表具体用于存储由该至少一个镜像端点设备模块的标识到该至少一个虚拟端点设备模块的标识的映射关系。
可选地,该映射模块具体用于根据该第一映射表和该第二映射表实现该至少一个虚拟端点设备模块的标识与该至少一个镜像端点设备模块的标识之间的映射。
结合上述可能的实现方式,在第一方面的第六种可能的实现方式中,该至少一个镜像端点设备模块中的第一镜像端点设备模块具体为第三映射表,该第三映射表用于存储该至少一个I/O设备中的第一I/O设备的虚拟功能的基地址寄存器BAR地址以及该虚拟功能的BAR大小,其中,该第一镜像端点设备模块用于存储该第一I/O设备的PCIe配置内容。
可选地,该映射模块具体用于根据该第三映射表和第一映射表实现由该至少一个虚拟端点设备模块的地址到该至少一个镜像端点设备模块的地址之间的映射。
结合上述可能的实现方式,在第一方面的第七种可能的实现方式中,该至少一个虚拟端点设备模块中的第一虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第二I/O设备的物理功能,以供该至少一个主机中的第一主机使用,其中,该第二I/O设备的物理功能驱动由该第一主机的处理器加载。
结合上述可能的实现方式,在第一方面的第八种可能的实现方式中,该至少一个虚拟端点设备模块中的第二虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第三I/O设备的虚拟功能,以供该至少一个主机中的第二主机使用,其中,该第三I/O设备的物理功能驱动由该至少一个主机中的管理BMC加载。
结合上述可能的实现方式,在第一方面的第九种可能的实现方式中,该至少一个虚拟端点设备模块中的第三虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第四I/O设备的物理功能和虚拟功能,以供该至少一个主机中的第三主机使用,其中,该第四I/O设备的物理功能驱动由该至少一个主机中的管理BMC加载,该第三虚拟端点设备模块的物理功能驱动由该第三主机的处理器加载。
结合上述可能的实现方式,在第一方面的第十种可能的实现方式中,该交换设备具体为主机交换设备和I/O交换设备,该主机交换设备和该I/O交换设备通过以太网接口连接,其中,该主机交换设备包括:该多个PCIe上行端口;该I/O交换设备包括:该内置的处理装置、该至少一个虚拟端点设备模块、该映射模块、该至少一个镜像端点设备模块和该至少一个PCIe下行端口。
结合上述可能的实现方式,在第一方面的第十一种可能的实现方式中,该内置的处理装置用于:接收该至少一个主机中的管理BMC发送的初始化指令;根据该初始化指令,通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文;该内置的处理装置还用于在确定与该交换设备连接的I/O设备之后,向该管理BMC上报与该交换设备连接的I/O设备的信息,该信息包括标识信息。
可选地,该内置的处理装置可以通过内部连接线路与该多个PCIe上行端口连接,并且该内置的处理装置可以具体通过该多个PCIe上行端口接收该管理BMC发送的初始化指令;该内置的处理装置可以根据该初始化指令,向该至少一个PCIe下行端口传输配置读写报文,并且根据接收到的配置读写响应报文,确定与该交换设备连接的I/O设备的信息,以及通过该多个PCIe上行端口向该管理BMC上报与该交换设备连接的I/O设备的信息,其中,该信息可以包括标识信息(例如BDF),或进一步包括拓扑结构(例如PCIe结构树),等等。
结合上述可能的实现方式,在第一方面的第十二种可能的实现方式中,该内置的处理装置还用于:接收该至少一个主机中的管理BMC发送的配置管理信息;根据该配置管理信息,配置该多个PCIe上行端口和该至少一个PCIe下行端口。
结合上述可能的实现方式,在第一方面的第十三种可能的实现方式中,该内置的处理装置还用于异常事件处理和热插拔事件处理。
第二方面,提供了一种PCIe系统,包括至少一个主机、第一方面或第一方面的任一种可能实现方式中的交换设备和至少一个I/O设备,其中,该至少一个主机包括具有配置管理功能的管理BMC。
可选地,该管理BMC可以用于对该交换设备的配置进行管理和控制,例如,该管理BMC可以用于确定下列配置中的至少一种:该至少一个I/O设备的物理功能所对应的虚拟功能、该交换设备中的至少一个PCIe下行端口对应的PCIe配置空间、该至少一个PCIe下行端口对应的PCIe配置空间与PCIe上行端口的连接关系、该至少一个虚拟端设备模块虚拟的功能、该至少一个主机能够使用的功能,等等。
在第二方面的第一种可能的实现方式中,该至少一个I/O设备中的第二I/O设备具有多个物理功能,并且该多个物理功能均不具有对应的虚拟功能;该至少一个虚拟端点设备模块中的第一虚拟端点设备模块具体用于虚拟该第二I/O设备的物理功能,以供该至少一个主机中的第一主机使用;该第一主机的处理器用于加载该第二I/O设备的物理功能驱动。
结合上述可能的实现方式,在第二方面的第二种可能的实现方式中,该至少一个虚拟端点设备模块中的第二虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第三I/O设备的虚拟功能,以供该至少一个主机中的第二主机使用;该管理BMC还用于加载该第三I/O设备的物理功能驱动。
结合上述可能的实现方式,在第二方面的第三种可能的实现方式中,该至少一个虚拟端点设备模块中的第三虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第四I/O设备的物理功能和虚拟功能,以供该至少一个主机中的第三主机使用;该第三主机的处理器用于加载该第三虚拟端点设备模块的物理功能驱动;该管理BMC还用于加载该第四I/O设备的物理功能驱动。
结合上述可能的实现方式,在第二方面的第四种可能的实现方式中,该系统还包括:PCIe交换机,该至少一个PCIe下行端口具体用于通过该PCIe交换机与该至少一个I/O设备连接。
结合上述可能的实现方式,在第二方面的第五种可能的实现方式中,该系统还包括:SMM,该管理BMC还用于向该SMM发送该至少一个主机、该交换设备以及该至少一个I/O设备的组网配置信息。
可选地,该组网配置信息可以包括上述配置管理信息,或者还可以进一步包括其它信息。
第三方面,提供了另一种交换设备,该交换设备包括至少一个PCIe上行端口,用于与至少一个主机连接;至少一个PCIe下行端口,用于与至少一个I/O设备连接;至少一个镜像端点设备模块,与该至少一个PCIe下行端口连接,用于存储与该至少一个PCIe下行端口连接的至少一个I/O设备的PCIe配置内容;至少一个虚拟端点设备模块,与该至少一个PCIe下行端口连接,用于虚拟与该至少一个PCIe下行端口连接的至少一个I/O设备的功能,以供该至少一个主机使用;映射模块,分别与该至少一个虚拟端点设备模块以及该至少一个镜像端点设备模块连接,用于实现该至少一个主机对应的PCIe域与该至少一个I/O设备对应的PCIe域之间的映射,其中,该至少一个PCIe下行端口中的第一PCIe下行端口与其对应的PCIe配置空间在该交换设备中分离设置。
这样,通过将该PCIe下行端口与其对应的PCIe配置空间分离设置,有利于提高向主机呈现的可用端口数目,从而提高资源利用率。
在第三方面的第一种可能的实现方式中,该至少一个虚拟端点设备模块具体通过该第一PCIe下行端口的至少一个PCIe配置空间与该至少一个PCIe上行端口连接。
该交换设备可以包括该第一PCIe下行端口的一个或多个PCIe配置空间,该至少一个虚拟端点设备模块中的部分或全部虚拟端点设备模块通过该第一PCI下行端口的至少一个PCIe配置空间与该至少一个PCIe上行端口的部分或全部PCIe上行端口连接。
这样,通过该至少一个虚拟端点设备模块通过该第一PCIe下行端口对应的至少一个PCIe配置空间与该多个PCIe上行端口连接,有利于扩展每个主机连接的虚拟端点设备模块的个数,从而提高系统性能。
第四方面,提供了另一种交换设备,该交换设备包括至少一个PCIe上行端口,用于与至少一个主机连接;至少一个PCIe下行端口,用于与至少一个I/O设备连接;至少一个镜像端点设备模块,与该至少一个PCIe下行端口连接,用于存储与该至少一个PCIe下行端口连接的至少一个I/O设备的PCIe配置内容;至少一个虚拟端点设备模块,与该至少一个PCIe下行端口连接,用于虚拟与该至少一个PCIe下行端口连接的至少一个I/O设备的功能,以供该至少一个主机使用;映射模块,分别与该至少一个虚拟端点设备模块以及该至少一个镜像端点设备模块连接,用于实现该至少一个主机对应的PCIe域与该至少一个I/O设备对应的PCIe域之间的映射,其中,
该映射模块存储有:第一映射表,用于存储由该至少一个主机对应的PCIe域中的标识到该至少一个I/O设备对应的PCIe域中的标识的映射关系;第二映射表,用于存储由该至少一个I/O设备对应的PCIe域中的标识到该至少一个主机对应的PCIe域中的标识的映射关系。
这样,通过以映射表的形式存储主机对应的PCIe域的标识与I/O设备对应的PCIe域的标识之间的映射关系,与现有技术相比能够降低该映射模块占用的存储空间和复杂度,节省系统存储资源。
第五方面,提供了另一种交换设备,该交换设备包括至少一个PCIe上行端口,用于与至少一个主机连接;至少一个PCIe下行端口,用于与至少一个I/O设备连接;至少一个镜像端点设备模块,与该至少一个PCIe下行端口连接,用于存储与该至少一个PCIe下行端口连接的至少一个I/O设备的PCIe配置内容;至少一个虚拟端点设备模块,与该至少一个PCIe下行端口连接,用于虚拟与该至少一个PCIe下行端口连接的至少一个I/O设备的功能,以供该至少一个主机使用;映射模块,分别与该至少一个虚拟端点设备模块以及该至少一个镜像端点设备模块连接,用于实现该至少一个主机对应的PCIe域与该至少一个I/O设备对应的PCIe域之间的映射,其中,
该至少一个镜像端点设备模块中的第一镜像端点设备模块具体为第三映射表,该第三映射表用于存储该至少一个I/O设备中的第一I/O设备的虚拟功能的基地址寄存器BAR地址以及该虚拟功能的BAR大小,其中,该第一镜像端点设备模块用于存储该第一I/O设备的PCIe配置内容。
这样,这样,通过以映射表的形式存储I/O设备的虚拟功能的地址信息,与现有技术相比能够降低该mEP以及该交换设备占用的存储空间,节省系统存储资源。
第六方面,提供了一种PCIe系统的初始化方法,应用于第二方面或第二方面的任一种可能实现方式中的PCIe系统,该方法包括:管理BMC向交换设备中的内置的处理装置发送初始化指令;该内置的处理装置根据该初始化指令,确定与该交换设备连接的I/O设备,并向该管理BMC上报与该交换设备连接的I/O设备的信息;该至少一个主机获取与该至少一个主机连接的设备的信息;该至少一个主机根据与该至少一个主机连接的设备的信息,加载该至少一个I/O设备的虚拟功能驱动和物理功能驱动。
在第六方面的第一种可能的该至少一个主机根据与该至少一个主机连接的设备的信息,包括:该至少一个主机中的第一主机发送配置读报文,其中,该第一主机与该交换设备的多个PCIe上行端口中的第一PCIe上行端口连接;该交换设备的至少一个目标虚拟端点设备模块通过该第一PCIe上行端口接收该第一主机发送的配置读报文,并根据该配置读报文,向该第一主机发送配置读响应报文,其中,该至少一个虚拟端点设备模块包括该至少一个目标虚拟端点设备模块,并且该至少一个目标虚拟端点设备模块中的每个目标虚拟端点设备模块与该第一PCIe上行端口连接;该第一主机根据接收到的该配置读响应报文,发送配置写报文;该至少一个目标虚拟端点设备模块通过该第一PCIe上行端口接收该第一主机发送的该配置写报文,并通过该至少一个PCIe下行端口中的至少一个第一PCIe下行端口向至少一个目标I/O设备转发该配置写报文,其中,该至少一个I/O设备包括该至少一个目标I/O设备,并且该至少一个目标虚拟端点设备模块用于虚拟该至少一个目标I/O设备的功能;该至少一个目标I/O设备通过该至少一个第一PCIe下行端口接收该至少一个目标虚拟端点设备模块转发的配置写报文,并根据接收到的该配置写报文,向该交换设备发送配置写响应报文;该交换设备接收该至少一个目标I/O设备发送的该配置写响应报文,并通过该第一PCIe上行端口向该第一主机转发该配置写响应报文;该第一主机从接收到的该配置写响应报文中获取与该第一主机连接的该至少一个目标虚拟端点设备模块的信息。
在第六方面的第一种可能的实现方式中,该方法还包括:该交换设备的内置的处理装置从该配置写报文中获取该至少一个目标虚拟端点设备模块的信息,并根据获取到的该至少一个目标虚拟端点设备模块的信息,配置该交换设备的映射模块。
结合上述可能的实现方式,在第六方面的第二种可能的实现方式中,该至少一个主机根据与该至少一个主机连接的设备的信息,加载该至少一个I/O设备的虚拟功能驱动和物理功能驱动,包括:若该至少一个虚拟端点设备模块中的第一虚拟端点设备模块用于虚拟该至少一个I/O设备中的第二I/O设备的虚拟功能,该至少一个主机中的管理BMC加载该第二I/O设备的物理功能驱动。
结合上述可能的实现方式,在第六方面的第三种可能的实现方式中,该至少一个主机根据与该至少一个主机连接的设备的信息,加载该至少一个I/O设备的虚拟功能驱动和物理功能驱动,包括:若该至少一个虚拟端点设备模块中的第二虚拟端点设备模块用于虚拟该至少一个I/O设备中的第三I/O设备的物理功能,该至少一个主机中的第二主机的处理器加载该第三I/O设备的物理功能驱动,其中,该第二虚拟端点设备模块通过该多个PCIe上行端口与该第二主机连接。
附图说明
图1是现有技术中的PCIe系统的示意性框图。
图2是本发明实施例提供的PCIe系统的示意性框图。
图3是本发明实施例提供的PCIe系统的另一示意性框图。
图4是本发明实施例提供的PCIe系统的另一示意性框图。
图5是本发明实施例提供的PCIe系统的另一示意性框图。
图6是本发明实施例提供的PCIe系统的另一示意性框图。
图7是本发明实施例提供的PCIe系统的另一示意性框图。
图8是本发明实施例提供的PCIe系统的另一示意性框图。
图9是本发明实施例提供的PCIe系统的另一示意性框图。
图10是本发明实施例提供的PCIe系统的初始化方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图2是本发明实施例的PCIe系统200的示意性架构图。该PCIe系统200可以用于实现一个主机中的多个进程共享I/O设备或多个主机共享I/O设备。
如图2所示,该PCIe系统200包括:N1个主机210、交换设备220和M1个I/O设备230,N1≥1,M1≥1,其中,I/O设备也可以称为端点(Endpoint,EP)设备。
图2示例性地示出了该PCIe系统200仅包括一个交换设备,并且该交换设备连接有至少一个主机和至少一个I/O设备。但应理解,该PCIe系统200也可以包括多个交换设备,每个交换设备可以连接至少一个主机以及至少一个I/O设备,其中,可以将每个交换设备以及与其连接的至少一个主机和至少一个I/O设备看作一个网络单元,相应地,该PCIe系统200可以包括一个或多个网络单元,但本发明实施例对此不做限定。
可选地,在本发明实施例中,主机可以具体为服务器或个人电脑等设备,该主机也可以为虚拟机,本发明实施例对此不做限定。可选地,该N1个主机中的部分或全部主机可以包括基板管理控制器(Baseboard Management Controller,BMC),即该N1个主机可以包括一个或多个BMC,该一个或多个BMC中的至少一个BMC可以具有配置管理功能,具体用于对由至少一个主机、交换设备以及至少一个I/O设备组成的网络单元进行管理和控制,为了便于描述,以下描述中将具有配置管理功能的BMC称为管理BMC。可选地,该管理BMC可以用于实现现有技术中的管理CPU所具有的配置管理功能,然而,与现有技术中的管理CPU不同的是,该管理BMC可以仅负责该管理BMC所属网络单元中包括的交换设备以及与该交换设备连接的至少一个主机和至少一个I/O设备的配置管理,而不负责网络中可能存在的其它网络单元中的主机、I/O设备以及交换设备的配置管理,本发明实施例对此不做限定。
可选地,I/O设备可以具体为主机总线适配器(Host Bus Adapter,HBA)、固态盘(Solid State disk,SSD)等设备,本发明实施例对此不做限定。
在本发明实施例中,交换设备220可以包括N2个PCIe上行端口221、M2个PCIe下行端口222和内置的处理装置223,N2>1,M2≥1。该N2个PCIe上行端口221用于与该N1个主机210连接。该M2个PCIe下行端口222用于与M1个I/O设备230连接。该内置的处理装置223可以通过该交换设备的内部连接线路与该M2个PCIe下行端口222连接,并且可以通过该交换设备的内部连接线路与该N2个PCIe上行端口221连接。
具体地,该交换设备220可以通过该N2个PCIe上行端口221与该N1个主机210连接,其中,如果N2=N1,即交换设备的PCIe上行端口的数量等于与该交换设备连接的主机的数量,则该N2个PCIe上行端口与该N1个主机可以一一对应地连接;如果N2>N1,即交换设备的PCIe上行端口的数量大于与该交换设备连接的主机的数量,则该N2个PCIe上行端口中的N1个PCIe上行端口与该N1个主机可以一一对应地连接,剩余的(N2-N1)个PCIe上行端口可以空闲,或者将其设置为PCIe下行端口,但本发明实施例不限于此。
类似地,该交换设备220可以通过该M2个PCIe下行端口222与该M1个I/O设备230连接,其中,如果M2=M1,即交换设备的PCIe下行端口的数量等于与该交换设备连接的I/O设备的数量,则该M2个PCIe下行端口与该M1个I/O设备可以一一对应地连接;如果M2>M1,即交换设备的PCIe下行端口的数量大于与该交换设备连接的I/O设备的数量,则该M2个PCIe下行端口中的M1个PCIe下行端口与该N1个I/O设备可以一一对应地连接,剩余的(M2-M1)个PCIe下行端口可以空闲或者将其设置为PCIe上行端口;如果M2<M1,即交换设备的PCIe下行端口的数量小于与该交换设备连接的I/O设备的数量,则PCIe系统200还可以包括一个或多个PCIe交换机,该M2个PCIe下行端口中的部分或全部PCIe下行端口可以通过该PCIe交换机与该M1个I/O设备连接,这样能够扩展该交换设备连接的I/O设备的个数,且不会降低交换性能,但本发明实施例不限于此。
可选地,该PCIe系统200还包括PCIe交换机,该M2个PCIe下行端口通过PCIe交换机与该M1个I/O设备连接。
此外,该交换设备220还包括内置的处理装置223,其中,该内置的处理装置223可以具体为处理模块,例如处理器或/或硬件处理电路,可选地,该内置的处理装置可以由处理器加硬件电路实现,或者该内置的处理装置也可以仅由硬件电路实现,本发明实施例对此不做限定。
在本发明实施例中,该内置的处理装置可以用于枚举该交换设备下挂的物理设备(即真实设备,不包括功能模块),例如,确定通过该M2个PCIe下行端口222与该交换设备连接的物理设备,或者还可以进一步获取与该交换设备连接的多个物理设备的信息,例如标识(BDF)、拓扑结构,等等,并且还可以根据该多个物理设备的信息建立PCIe域结构树,其中,该物理设备可以包括I/O设备和/或PCIe交换机。此时,该内置的处理装置可以看做是虚拟的根端口(Root Port,RP)或根复杂体(Root Complex,RC),但本发明实施例不限于此。
可选地,该内置的处理装置223可以主动进行设备枚举,例如在系统初始化阶段进行设备枚举。或者,该内置的处理装置223可以在接收到其它设备的指示时,根据指示进行设备枚举,例如,该内置的处理装置223可以接收管理BMC发送的初始化指令或枚举指令,并根据该初始化指令或枚举指令进行设备枚举,但本发明实施例对此不做限定。
具体地,该内置的处理装置223在进行设备枚举时,可以向该至少一个PCIe下行端口222发送多个配置读写报文,该配置读写报文携带请求者标识(RequestIdentification,RID)和完成者标识(Completion Identification,CID),其中,RID的值可以设置为该内置的处理装置223的BDF,CID的值可以以某一初始值开始顺序编号。该内置的处理装置223可以接收该多个配置读写报文中的至少一个配置读写报文对应的配置读写响应报文,该配置读写响应报文携带对应的配置读写报文中的RID和CID,这样,该内置的处理装置223通过识别配置读写响应报文(例如识别配置读写响应报文中的CID),来确定该交换设备220是否连接有BDF号为该配置读写响应报文中的CID的物理设备,但本发明实施例不限于此。
在一个可选实施例中,如果该内置的处理装置223由处理器加硬件电路实现,其中,该处理器和硬件电路可以通过内部总线连接,该处理器可以用于接收来自管理BMC的初始化指令(或枚举命令),根据该初始化指令,生成枚举报文的信息,包括类型0(Type0)和类型1(Type1)的配置读写报文所需的信息,并且将生成的信息输出到内部总线上;该硬件电路可以通过内部总线接收该处理器生成的信息,将该信息封装为事务层报文(TransactionLayer Packet,TLP),并通过与该内置的处理装置223连接的下一级模块或电路向该至少一个PCIe下行端口222发送该TLP。此外,该硬件电路还可以用于在接收到该至少一个PCIe下行端口222发送的配置读写响应报文时,并且识别接收到的该配置读写响应报文。例如该硬件电路可以接收该至少一个PCIe下行端口222传输的完成(Completion,CPL)/(CompletionData,CPLD)报文,识别接收到的该CPL/CPLD报文中的ID。经过硬件电路的中断触发,该CPL/CPLD报文可以由内部总线传输至该内置的处理装置223的处理器。具体地,该硬件电路可以将CPL/CPLD报文拆分为符合内部总线的时序的数据格式,并将其发送到内部总线上。该内置的处理装置223的处理器还可以用于解析接收到的报文信息,保存报文信息,并且根据该报文信息,生成PCIe域的结构树。在完成设备枚举之后,该处理器还可以将生成的PCIe结构树的信息通过该多个PCIe上行端口221传输至该管理BMC,但本发明实施例不限于此。
因此,本发明实施例提供的PCIe系统,包括至少一个主机、交换设备和至少一个I/O设备,其中,该交换设备包括用于与该至少一个主机连接的多个PCIe上行端口、用于与该至少一个I/O设备连接的至少一个PCIe下行端口以及内置的处理装置,该处理装置通过内部总线与该至少一个PCIe下行端口连接,用于通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文,接收该至少一个PCIe下行端口通过该内部连接线路传输的配置读写响应报文,以及根据该配置读写响应报文中携带的完成者标识,确定该交换设备连接有标识为该完成者标识的I/O设备,这样,当PCIe系统中的某一个交换设备发生故障时,只有与该交换设备连接的至少一个主机和至少一个I/O设备可能受到影响,并不会影响该PCIe系统中的其余交换设备及与其连接的主机和I/O设备,因此与现有技术中的外设管理CPU相比,能够提高PCIe系统的稳定性和可靠性。
可选地,该内置的处理装置223还可以具有下列功能中的至少一种:热插拔事件处理、异常事件处理以及部件配置(例如寄存器的配置)。
该内置的处理装置223可以用于热插拔事件处理,具体地,该内置的处理装置223可以检测管理BMC触发和/或硬件触发的热插拔事件,并执行相应的热插拔处理流程。该内置的处理装置223还可以用于异常事件处理,具体地,该内置的处理装置223可以执行硬件异常处理,记录异常事件日志,并上报该异常事件日志。此外,该内置的处理装置223还可以用于进行部件配置,具体地,该内置的处理装置223可以在初始化阶段配置寄存器,或者对寄存器的配置进行更改,其中,该内置的处理装置223可以在进行设备枚举的过程中获取进行部件配置所需的信息,或者可以接收管理BMC发送的配置管理信息,并根据该配置管理信息进行部件配置,等等,本发明实施例对此不做限定。
在一个可选实施例中,如果该内置的处理装置223由处理器加硬件电路实现,在实现异常事件处理的功能时,该内置的处理装置223中的硬件电路可以捕获与I/O设备的物理功能相关的异常信息,并通过该内置的处理装置223中的处理器配置的中断信息,触发该处理器。该内置的处理装置223的处理器可以识别异常类型。如果该异常类型具体为可修正或不可修正的非致命错误,该处理器可以自行处理,只输出告警而不上报。如果该异常类型具体为不可修正的致命错误,则该处理器可以将该I/O设备断链,并将该I/O设备的断链上报给管理BMC。管理BMC在获知断链的I/O设备之后,可以卸载其对应的驱动。此外,可选地,管理BMC可以将该组网信息的更新通知机箱管理板(shelf management module,SMM),由SMM对出现异常的I/O设备所对应的主机进行管理和控制,例如进行驱动的卸载、复位初始化处理等等,本发明实施例对此不做限定。
在本发明实施例中,该内置的处理装置223可以用于接收该M1个I/O设备230通过该M2个PCIe下行端口222发送的数据报文,对接收到的数据报文进行处理,例如进行时序转换,等等,并通过内部连接线路向该N2个PCIe上行端口221发送处理后的该数据报文。此外,该内置的处理装置223还可以用于接收该N1个主机210通过该N2个PCIe上行端口221发送的数据报文,对接收到的数据报文进行处理,例如进行时序转换,等等,并通过内部连接线路向该M2个PCIe下行端口222发送处理后的该数据报文。
作为一个可选实施例,如果该内置的处理装置223由处理器加硬件电路实现,则该内置的处理装置中的处理器在接收到主机发送的数据时,可以解析管理BMC接口的总线时序,并以内部总线的时序输出该数据;在该处理器接收到下一级模块或者电路转发的数据时,可以解析内部总线的时序,并将该数据输出至管理BMC接口的总线时序,但本发明实施例不限于此。
可选地,在本发明实施例中,管理BMC可以通过网口将组网信息(或组网配置信息)上报给SMM,SMM可以用于负责管理整个网络。用户可以根据需求,通过SMM的人机交互界面进行主机和I/O设备之间的映射连接的设置。此时,可选地,管理BMC还可以用于接收SMM发送的配置需求信息,并根据该配置需求信息,确定该配置管理信息,但本发明实施例不限于此。
可选地,在本发明实施例中,该N2个PCIe上行端口221中的每个PCIe上行端口具有PCIe配置空间,该M2个PCIe下行端口222中的每个PCIe下行端口不具有PCIe配置空间。在本发明实施例中,该交换设备220中的PCIe上行端口221具有PCIe配置空间,为标准的PCIe端口(即标准的P2P上行桥)。而该交换设备220中的PCIe下行端口222不具有PCIe配置空间,不是标准的PCIe端口(即不是标准的P2P下行桥)。可选地,该交换设备220可以不额外存储该M2个PCIe下行端口222的PCIe配置空间,即该交换设备220内不存在PCIe下行端口222的PCIe配置空间;或者,该交换设备220也可以额外存储该M2个PCIe下行端口222中每个PCIe下行端口的PCIe配置空间,即PCIe下行端口222的PCIe配置空间与该PCIe下行端口222在该交换设备220中分离;或者,该交换设备220可以额外存储该M2个PCIe下行端口222中的部分PCIe下行端口222的PCIe配置空间,而额外不存储另一部分PCIe下行端口222的PCIe配置空间,本发明实施例对此不做限定。
可选地,在本发明实施例中,PCIe下行端口222可以对应至少一个PCIe配置空间,并且PCIe下行端口222对应的至少一个PCIe配置空间与该PCIe下行端口222可以独立地设置在该交换设备220中,即PCIe下行端口222与该PCIe下行端口222对应的至少一个PCIe配置空间可以分离。此外,可选地,PCIe下行端口222对应的至少一个PCIe配置空间可以属于该N1个主机210对应的PCIe域,这样,当该交换设备220存储有某个PCIe下行端口222对应的多个PCIe配置空间时,该PCIe下行端口222可以当作多个端口供主机210使用,从而提高系统资源的利用率。
应理解,上述实施例以该交换设备220中的N2个PCIe上行端口221均具有PCIe配置空间并且M2个PCIe下行端口222均不具有PCIe配置空间为例进行描述,可选地,该M2个PCIe下行端口222中的部分PCIe下行端口222可以具有PCIe配置空间,而另一部分PCIe下行端口222可以不具有PCIe配置空间;或者该M2个PCIe下行端口222中的所有PCIe下行端口222均具有PCIe配置空间。作为另一个可选实施例,该N2个PCIe上行端口221中的部分或全部PCIe上行端口221可以不具有PCIe配置空间,本发明实施例对此不做限定。
可选地,如图3所示,该交换设备220还包括:N3个虚拟端点设备模块(简称为vEP)224、映射模块(MAP)225和M3个镜像端点设备模块(简称为mEP)226,其中,
该N3个vEP 224可以与该N2个PCIe上行端口221连接,用于虚拟与该M2个PCIe下行端口222连接的M1个I/O设备230的功能,以供与该N2个PCIe上行端口221连接的N1个主机221使用,其中,N3≥1;
该M3个mEP 226可以与该M2个PCIe下行端口222连接,用于存储与该M2个PCIe下行端口222连接的M1个I/O设备230的PCIe配置内容,其中,M3≥1;
该映射模块225可以分别与该N3个vEP 224以及该M3个mEP 226连接,用于实现该N1个主机210对应的PCIe域与该M1个I/O设备230对应的PCIe域之间的映射。
在本发明实施例中,可选地,该交换设备220还可以包括一个或多个mEP 226、映射模块225以及一个或多个vEP 224,其中,N3的数值可以由N1个主机210需要或能够使用的功能数量决定,并且N3可以与M3相等或不等。例如,N3和M3可以均等于该M1个I/O设备230具有的总功能数量(例如总VF数量),本发明实施例对此不做限定。
具体地,mEP 226可以为真实EP的镜像,用于存储I/O设备(即端点设备)230的PCIe配置内容。vEP 224可以用于虚拟端点设备230的物理和/或虚拟功能,可以具体为端点设备230的物理或虚拟功能对应的PCIe配置空间。映射模块225可以用于实现N1个主机210对应的PCIe域与至少一个I/O设备230对应的PCIe域的标识和/或地址之间的映射,以确定将接收到的信息和/或数据发送到哪一个模块(或部件)。作为一个可选例子,vEP 224可以属于主机210对应的PCIe域,mEP 226可以属于I/O设备230对应的PCIe域,相应地,该映射模块225可以具体用于实现该M3个mEP 226的标识和/或地址与该N3个vEP 224的标识和/或地址之间的映射(即从vEP映射至mEP或从mEP映射至vEP),从而可以实现对该N1个主机210和M1个I/O设备230之间传输的数据报文的转发处理,但本发明实施例不限于此。
可选地,该N2个PCIe上行端口221、该N3个vEP 224、映射模块225、该M3个mEP 226和该M2个PCIe下行端口222可以依次连接。具体地,该vEP 224的一端可以与PCIe上行端口221连接,另一端可以与映射模块225连接,其中,该N3个vEP 224可以与该N2个PCIe上行端口221中的部分或全部PCIe上行端口直接或间接连接。mEP226的一端可以与PCIe下行端口222连接,另一端可以与映射模块225连接,其中,该M3个mEP226可以与该M2个PCIe下行端口222中的部分或全部PCIe下行端口直接或间接连接,但本发明实施例不限于此。
如果该交换设备220中不额外设置该M2个PCIe下行端口222的PCIe配置空间,则该N3个vEP224可以与该N2个PCIe上行端口221中的部分或全部PCIe上行端口直接连接。可选地,如果该交换设备220还额外存储有一个或多个PCIe下行端口222对应的PCIe配置空间,例如,如图3所示,该交换设备220可以存储有N4个PCIe下行端口配置空间(简称为DP_CFG)227,其中,每个PCIe下行端口222可以对应于零个、一个或多个DP_CFG227。此时,该N3个vEP224可以通过该N4个DP_CFG227与该N2个PCIe上行端口221连接。这样,PCIe上行端口221通过PCIe下行端口222对应的PCIe配置空间与vEP224连接,能够扩展每个主机能够使用的vEP个数,从而增强系统性能。
此外,在本发明实施例中,通过向主机呈现虚拟功能,使得该PCIe系统支持任何Windows版本在主机下使用虚拟功能。
作为一个可选实施例,该映射模块225存储有:
第一映射表,用于存储由该N1个主机210对应的PCIe域中的标识到该M1个I/O设备230对应的PCIe域中的标识的映射关系;
第二映射表,用于存储由该M1个I/O设备230对应的PCIe域中的标识到该N1个主机210对应的PCIe域中的标识的映射关系。
可选地,该第一映射表可以具体用于存储由N3个vEP224的标识到M3个mEP226的标识的映射关系,例如,由至少一个vEP224的BDF号到至少一个mEP226的BDF号的映射关系。该第二映射表可以具体用于存储由该M3个mEP226的标识到该N3个vEP224的标识的映射关系,但本发明实施例不限于此。
可选地,在本发明实施例中,该映射模块225可以由寄存器和硬件处理电路实现。此时,该第一映射表和该第二映射表可以分别由寄存器存储。此外,可选地,该第一映射表中和该第二映射表中的标识可以由BDF表示,或者也可以通过对I/O设备230的功能或vEP224的功能重新编号,例如由1开始顺序编号,以获得各个功能的索引,并且以功能索引的形式存储在映射表中,以节约存储空间。
表1和表2分别示出了第一映射表和第二映射表的可能实现形式。如表1所示,该第一映射表可以包括4列,“功能索引”列中的数值表示I/O设备230对应的PCIe域中的功能的索引,该索引可以通过对各个功能的BDF统一进行编号获得,并且可以占用1个或数个比特;“使能指示”列的数值表示是否存在该功能索引对应的功能,mEP总线号和mEP功能号可以分别表示该功能索引对应的mEP226的总线号和设备功能号,两者合起来即为mEP226的BDF号,其中,mEP226的BDF号可以与该mEP226对应的I/O设备230的BDF号相关联。本发明实施例对该第一映射表包括的行数不做限定,例如该第一映射表可以包括1024个入口(entry),但本发明实施例不限于此。
表1第一映射表的可能实现形式
如表2所示,该第二映射表可以包括5列,“功能索引”列中的数值表示主机210对应的PCIe域(可以是主机210通过枚举发现的虚拟功能模块和/或物理设备)中的功能的索引(例如vEP224的功能索引),该索引可以通过对各个功能的BDF统一进行编号获得,并且可以占用1个或数个比特;“使能指示”列的数值表示是否存在该功能索引对应的功能;eVF总线号和eVF设备功能号分别表示该功能索引对应的eVF224的总线号和设备功能号,其中,eVF的总线号和设备功能号合起来即为该eVF224的BDF;“PE指示”列的数值用于表示该功能索引对应的功能为vF还是PF。本发明实施例对该第二映射表包括的行数不做限定,例如该第二映射表可以包括1024个入口(entry),但本发明实施例不限于此。
表2第二映射表的可能实现形式
这样,通过以映射表的形式存储主机210对应的PCIe域的标识与I/O设备230对应的PCIe域的标识之间的映射关系,与现有技术相比能够降低映射模块225占用的存储空间和复杂度,节省系统存储资源。此外,通过将各个功能的BDF统一编号并在映射表中存储该编号,与存储16bit的BDF相比,能够进一步降低该映射模块225占用的存储空间。
可选地,在本发明实施例中,mEP226中存储的端点设备230的PCIe配置内容可以具体为该端点设备230的PCIe配置空间,也可以为该端点设备230的PCIe配置空间中的部分配置内容。例如,该M3个mEP226中的所有mEP均可以具体为映射表,或者该M3个mEP中的部分mEP可以具体为映射表,本发明实施例对此不做限定。
作为一个可选实施例,该M3个mEP226中的第一mEP具体为第三映射表,该第三映射表用于存储该M1个I/O设备中的第一I/O设备的虚拟功能的基地址寄存器(Base AddressRegister,BAR)地址以及该虚拟功能的BAR大小,其中,该第一mEP用于存储该第一I/O设备的配置内容。
表3示出了第三映射表的可能实现方式,其中,该第三映射表包括mEP的索引以及该mEP索引对应的BAR地址和BAR大小,可选地,每个mEP可以包括六个BAR,但本发明实施例不限于此。
表3第三映射表的可能实现形式
此时,该映射模块225可以结合该第三映射表和该第一映射表实现由主机210的PCIe域中的地址到I/O设备230的PCIe域中的地址的映射,但本发明实施例不限于此。
这样,通过以映射表的形式存储I/O设备的虚拟功能的地址信息,与现有技术相比能够降低该mEP占用的存储空间,节省系统存储资源。
应理解,表1至表3的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的表1至表3的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
可选地,在本发明实施例中,该第一映射表、第二映射表或该第三映射表可以由该交换设备220中内置的处理装置223和主机210共同配置,例如,该内置的处理装置223可以以设备枚举或其它方式获取通过该M1个PCIe下行端口222与该交换设备220连接的物理设备的信息,并根据获取到的信息配置映射表,例如将上述物理设备的信息存储至映射表;而主机210可以将在进行设备枚举(即发现主机210下挂的物理设备和/或功能模块)的过程中或其它方式获取的该主机210对应的PCIe域的配置信息存储至映射表,但本发明实施例不限于此。
此外,上述N3个vEP224、映射模块225和M3个mEP226可以由寄存器或寄存器加上硬件电路实现,使用简单,无需软件编码实现PCIe结构树,并且通过配置写虚拟设备和真实设备的双重操作,避免软件实现过程中的存储转发过程。
在本发明实施例中,该PCIe系统200可以支持多种工作模式,该多种工作模式可以包括下列模式中的至少一种:VF直通模式、VF共享模式、PF共享模式和EP透传模式,其中,VF直通模式、VF共享模式可以应用于支持SRIOV的I/O设备,PF共享模式可以应用于支持多功能的I/O设备,EP透传模式可以应用于单功能I/O设备。
具体地,在VF直通模式中,该N3个vEP224用于虚拟该M1个I/O设备230的虚拟功能。例如,如图4所示,PCIe系统可以包括:两个主机:主机0和主机1、PCIe交换机、两个端点设备:EP0和EP1、以及交换设备,其中,该交换设备包括:分别与主机0和主机1连接的两个PCIe上行端口、通过PCIe交换机分别与EP0和EP1连接的两个PCIe下行端口、该两个PCIe下行端口分别对应的PCIe配置空间:DP_CFG0和DP_CFG1、内置的处理装置、映射模块、以及vEP0和vEP1,其中,vEP0通过DP_CFG0与一个PCIe上行端口连接,vEP1通过DP_CFG1与另一个PCIe上行端口连接。EP0和EP1分别具有一个PF:PF0及其对应的VF:VF0。此时,vEP0可以用于虚拟EP0的VF0,以供主机0使用,具体地,该vEP0可以为该EP0的PF0和VF0的PCIe配置空间的融合;vEP1可以用于虚拟EP0的VF0,以供主机1使用,具体地,该vEP1可以为EP1的PF0和VF0的PCIe配置空间的融合,但本发明实施例不限于此。
可选地,在VF直通模式中,该M1个I/O设备230的PF驱动可以由管理BMC加载,而该M1个I/O设备230的VF驱动可以由该N1个主机210的处理器加载。具体地,每个主机可以加载其枚举到的vEP所虚拟的I/O设备的VF驱动,但本发明实施例不限于此。
在VF共享模式中,该N3个vEP224用于虚拟该M1个I/O设备230的物理功能和虚拟功能。此时,vEP224虚拟的功能中只有VF能够作为业务端口供主机210使用,而PF不能作为业务端口供主机210使用。可选地,vEP224具体可以为虚拟的PF的PCIe配置空间,该PCIe配置空间可以包括SRIOV能力空间,但本发明实施例不限于此。例如,如图5所示,PCIe系统可以包括:两个主机:主机0和主机1、PCIe交换机、一个端点设备:EP0、以及交换设备,其中,该交换设备包括:分别与主机0和主机1连接的两个PCIe上行端口、通过PCIe交换机与EP0连接的PCIe下行端口、该PCIe下行端口对应的两个PCIe配置空间:DP_CFG0和DP_CFG1、内置的处理装置、映射模块、以及vEP0和vEP1。EP0具有一个物理功能(Physical Function,PF):PF0及其对应的两个虚拟功能(Virtual Function,VF):VF0和VF1。此时,vEP0和vEP1具体可以为PF0的带有SRIOV能力空间的PCIe配置空间,以分别虚拟VF0和VF1。可选地,在VF共享模式中,该M1个I/O设备230的PF驱动可以由管理BMC加载,而与VF直通模式不同的是,该N1个主机210的处理器还需要加载该N3个vEP224对应的PF驱动,用于使能该N3个vEP224虚拟的VF,从而使得该N1个主机210可以正常使用VF。
在PF共享模式中,该N3个vEP224可以用于虚拟M1个I/O设备230的物理功能。此时,可选地,该M1个I/O设备230可以仅具有PF而不具有VF,即该M1个I/O设备中的PF不具有与之对应的VF。可选地,vEP224可以具体为其虚拟的PF的PCIe配置空间,而该PCIe配置空间可以不包括SRIOV能力空间。例如,如图6所示,PCIe系统可以包括:两个主机:主机0和主机1、PCIe交换机、一个端点设备:EP0、以及交换设备,其中,该交换设备包括:分别与主机0和主机1连接的两个PCIe上行端口、通过PCIe交换机与EP0连接的PCIe下行端口、该PCIe下行端口对应的两个PCIe配置空间:DP_CFG0和DP_CFG1、内置的处理装置、映射模块、以及vEP0和vEP1。EP0具有两个PF:PF0和PF1,而不具有任何VF。此时,vEP0可以用于虚拟PF0,以供主机1使用,而vEP1可以用于虚拟PF1,以供主机2使用,但本发明实施例不限于此。可选地,在PF共享模式中,该M1个I/O设备230的PF驱动可以由该N1个主机210的处理器加载,具体地,每个主机210的处理器可以加载其枚举到的vEP所虚拟的PF的驱动。
在EP透传模式中,该交换设备220可以透传与其连接M1个I/O设备230和N1个主机210之间传输的信息。此时,该M1个I/O设备230可以为单功能设备,即仅具有一个PF而不具有任何VF。例如,如图7所示,PCIe系统可以包括:两个主机:主机0和主机1、PCIe交换机、三个端点设备:EP0、EP1和EP2、以及交换设备,其中,该交换设备包括:分别与主机0和主机1连接的两个PCIe上行端口、通过PCIe交换机与EP0和EP1连接的PCIe下行端口、以及与EP2直接连接的PCIe下行端口,其中,EP0、EP1和EP2均仅具有一个PF:PF0。该交换设备可以不存储有任何PCIe下行端口的PCIe配置空间。此时,主机0可以使用EP0和EP1的PF,主机1可以使用EP2的PF,该交换设备内的所有模块均为透传,不能实现多个主机共享同一个EP的功能。可选地,在EP透传模式中,无需加载VF驱动和PF驱动。
可选地,该PCIe系统200可以一直工作在上述多个工作模式中的某一个特定工作模式,也可以在上述多个工作模式之间切换。可选地,该PCIe系统200还可以支持其他工作模式,本发明实施例对此不做限定。
应理解,图4至图7的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图4至图7的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
还应理解,上述例子均以PCIe系统包括一个交换设备为例进行描述,可选地,PCIe系统可以包括多个交换设备。如图8所示,该PCIe系统200包括两个交换设备220:交换设备1和交换设备2,每个交换设备可以与两个主机和两个I/O设备连接。具体地,交换设备1可以分别与主机0、主机1、IO0和IO1连接,交换设备2分别与主机2、主机3、IO2和IO3连接,这样,如果一个交换设备出现异常了,例如与IO0和IO1连接的交换设备1出现异常,则可以根据实际情况进行异常处理,如进行复位操作、中断相关业务等,而在与IO2和IO3连接的交换设备2正常运行的情况下,主机2和主机3仍能够正常运行,从而增强系统的可靠性和稳定性。
还应理解,上述实施例均以该交换设备220具体为一个物理设备为例进行描述。可选地,该交换设备220也可以具体为多个物理设备。例如,如图8和图9所示,该交换设备220可以具有AB片形式,即该交换设备220可以具体为主机交换设备220a和I/O交换设备220b,其中,主机交换设备220a和I/O交换设备220b可以通过以太网接口或其它类型的交换接口连接。作为一个可选实施例,主机交换设备220a可以包括:N2个PCIe上行端口221和用于与I/O交换设备220b连接的至少一个第一交换接口,I/O交换设备220b可以包括:用于与主机交换设备220a连接的至少一个第二交换接口、内置的处理装置223和M2个PCIe下行端口222。可选地,如图8所示,该至少一个第一交换接口和该至少一个第二交换接口可以直接连接;或者,如图9所示,该至少一个第一交换接口和该至少一个第二交换接口可以通过以太网交换机或其它类型的内部交换设备连接,其中,该内部交换设备可以提供多个交换接口,用于连接该主机交换设备和I/O交换设备。此时,该至少一个第一交换接口可以用于与该内部交换设备连接,该至少一个第二交换接口可以用于与该内部交换设备连接,本发明实施例不限于此。
作为另一个可选实施例,该内置的处理装置223可以包括位于主机交换设备220a内的处理装置(即第一处理装置)和位于I/O交换设备220b内的处理装置(即第二处理装置)。此时,该内置的第一处理装置可以通过该主机交换设备的内部连接线路分别与该多个PCIe上行端口和该至少一个第一交换接口连接,该内置的第二处理装置可以通过该I/O交换设备的内部连接线路分别与该至少一个PCIe下行端口和该至少一个第二交换接口连接,但本发明实施例不限于此。
此时,可选地,该内置的第一处理装置用于:通过该多个PCIe上行端口接收来自于该至少一个主机的第一数据报文,处理该第一数据报文,得到第一次处理的第一数据报文,并通过该至少一个第一交换接口向该内部交换设备传输该第一次处理的第一数据报文;
该内置的第二处理装置用于:通过该至少一个第二交换接口接收该内部交换设备传输的该第一次处理的第一数据报文,处理该第一次处理的第一数据报文,得到第二次处理的第一数据报文,并通过该至少一个PCIe下行端口向该至少一个I/O设备传输该第二次处理的第一数据报文。
可选地,该内置的第二处理装置还用于:通过该至少一个PCIe下行端口接收来自于该至少一个I/O设备的第二数据报文,处理该第二数据报文,得到第一次处理的第二数据报文,并通过该至少一个第二交换接口向该内部交换设备传输该第一次处理的该第二数据报文;
该内置的第一处理装置还用于:通过该至少一个第一交换接口接收该内部交换设备传输的该第一次处理的第二数据报文,对该第一次处理的第二数据报文进行处理,得到第二次处理的第二数据报文,并通过该多个PCIe上行端口向该至少一个主机传输该第二次处理的第二数据报文。
可选地,I/O交换设备220b还可以进一步包括N3个vEP224、映射模块225和M3个mEP226,该主机交换设备220a还可以包括N4个DP_CFG227和N3个vEP224。
如图8所示,交换设备1可以包括主机交换设备1和I/O交换设备1,交换设备2可以包括主机交换设备2和I/O交换设备2。该主机交换设备和I/O交换设备通过以太网接口(例如媒体接入控制(Media Access Control,MAC)接口)连接。这样,如果连接主机0和主机1的主机交换设备1出现异常,可以根据实际情况替换主机交换设备1,但主机2和主机3还能继续访问I/O设备,业务可以继续运行;如果连接IO0和IO1的I/O交换设备1发生故障,由于连接IO2和IO3的I/O交换设备2正常,因此不仅主机2和主机3能够通过主机交换设备2、以太网交换机和I/O交换设备2使用IO2和IO3,主机0和主机1也能够通过主机交换设备1、以太网交换机和I/O交换设备2使用IO2和IO3,从而使得四个主机均能继续运行业务,从而进一步增强系统的可靠性和稳定性。
具体地,在本发明实施例中,该主机交换设备可以包括多个PCIe上行端口,用于与至少一个主机连接;该I/O交换设备可以包括内置的处理装置和至少一个PCIe下行端口,用于与至少一个I/O设备连接。
作为另一个可选实施例,若该交换设备包括至少一个mEP、映射模块和至少一个vEP,则该至少一个mEP、映射模块和至少一个vEP可以仅部署在I/O交换设备中,或者,如图9所示,该主机交换设备也可以包括至少一个vEP,该主机交换设备中的至少一个vEP与该I/O交换设备中的至少一个vEP一一对应相同,但本发明实施例对此不做限定。
应理解,“主机交换设备”和“I/O交换设备”仅是为了区分不同的交换设备而起的名称,“主机交换设备”也可以称为第一交换设备,“I/O交换设备”也可以称为第二交换设备。上述名称不应构成对本发明实施例保护范围的限定。
因此,本发明实施例提供的PCIe系统,包括至少一个主机、交换设备和至少一个I/O设备,其中,该交换设备包括用于与该至少一个主机连接的多个PCIe上行端口、用于与该至少一个I/O设备连接的至少一个PCIe下行端口以及内置的处理装置,该处理装置通过内部连接线路与该至少一个PCIe下行端口连接,用于通过该内部连接线路向该至少一个PCIe下行端口传输配置读写报文,接收该至少一个PCIe下行端口通过该内部连接线路传输的配置读写响应报文,以及根据该配置读写响应报文中携带的完成者标识,确定该交换设备连接有标识为该完成者标识的I/O设备。这样,当PCIe系统中的某个交换设备发生故障时,只会影响到与该交换设备连接的至少一个主机和至少一个I/O设备,并不会影响系统中的其余交换设备及其连接的主机和I/O设备,因此与现有技术中外设管理CPU相比,能够提高系统的稳定性和可靠性。
此外,现有技术中传统的PCIe技术主要应用于单板内,具有较多的局限,如主机的PCIe端口数量和空间有限,扩展性差等问题。通过将交换设备设置为两个物理设备,并且将PCIe域承载在以太网上传输,这样可以突破空间、距离的限制,灵活的建立PCIe拓扑以及灵活地部署I/O设备,解决现有技术中PCIe域不能拉远的问题。
本发明实施例还提供了一种交换设备,该交换设备可以如上述系统实施例所述,为了简洁,这里不再赘述。
上文结合图2至图9,详细描述了本发明实施例提供的PCIe系统和交换设备,下文将详细描述上述PCIe系统的工作流程。
图10示出了本发明实施例提供的PCIe系统的初始化方法300。该初始化方法300可以应用于上述实施例中的PCIe系统。
S310,管理BMC向交换设备中内置的处理装置发送初始化指令。
该管理BMC可以在上电之后向处理装置发送初始化指令,该初始化指令可以用于指示该处理装置进行系统初始化的相关操作,例如进行设备枚举和/或进行交换设备内的模块(或部件)的初始化配置,等等。
S320,交换设备的处理装置接收到该初始化指令之后,根据该初始化指令,枚举通过该交换设备的至少一个PCIe下行端口与该交换设备连接的物理设备,其中,该物理设备包括至少一个I/O设备。
在本发明实施例中,该管理BMC可以为该交换设备中内置的处理装置分配标识,例如,分配设备标识符,其中,该设备标识符可以包括总线号、设备号和功能号三个字段,总线号字段表示设备所在的总线的编号,设备号字段表示设备的编号,功能号字段表示设备具有的功能的编号,一般地,该设备标识符也可以称为总线设备功能(Bus Device Function,BDF)号。可选地,该管理BMC为该处理装置分配的设备标识符可以是系统唯一的,例如,在X86系统中,该管理BMC可以分配0.0.7作为该处理装置的设备标识符,但本发明实施例不限于此。
该处理装置在进行设备枚举时,该处理装置可以具体检测通过该至少一个PCIe下行端口与该交换设备连接的真实设备。具体地,该内置的处理装置可以通过内部连接总线向该至少一个PCIe下行端口发送多个TLP,该TLP可以具体为配置读写请求,并且该TLP中携带的RID的值可以设置为该处理装置的BDF,CID可以顺序编号,某个PCIe下行端口接收到该配置读写报文,可以向与其连接的物理设备转发接收到的该配置读写请求,该物理设备可以根据接收到的配置读写请求,向与该物理设备连接的PCIe下行端口发送配置读写响应报文,例如CPL报文或CPLD报文,该配置读写响应报文可以携带接收到的配置读写报文中的RID和CID,这样,当该处理装置通过某个PCIe下行端口接收到配置读写响应报文时,可以确定该交换设备连接有BDF号为该配置读写响应报文中的CID的物理设备,并可以进一步获取该配置读写响应报文中携带的该物理设备的信息,但本发明实施例不限于此。
S330,该交换设备向该管理BMC发送该内置的处理装置的设备枚举结果。
具体地,该内置的处理装置可以通过该多个PCIe上行端口向该管理BMC上报设备枚举结果,该枚举结果可以包括通过该至少一个PCIe下行端口与该交换设备连接的物理设备及其拓扑结构,或者可以包括PCIe结构树,本发明实施例对此不做限定。
S340,该至少一个主机中的每个主机枚举与该每个主机连接的设备。
该至少一个主机中每个主机的处理器可以枚举与该处理器连接的设备,该设备可以包括虚拟设备(即功能模块)和/或物理设备,例如与该主机连接的该交换设备的PCIe上行端口、至少一个vEP,该枚举可以在vEP处终结,但本发明实施例不限于此。
具体地,主机的处理器可以发送配置读报文,该配置读报文终结在该交换设备的某个vEP,该交换设备接收到该配置读报文之后,可以通过PCIe上行端口向该主机返回配置读响应报文。该主机的处理器在接收到该配置读响应报文之后,可以向该vEP发送配置写报文,具体地,该配置写报文可以用于访问该vEP的寄存器,可选地,每个配置写报文可以一次访问寄存器的4KB的空间。该配置写报文仍在该交换设备的vEP处终结。该交换设备在的vEP在接收到该配置写报文之后,可以通过PCIe下行端口向该vEP对应的I/O设备(即该vEP用于虚拟该I/O设备的功能)转发该配置写报文。该vEP对应的I/O设备接收到该配置写报文之后,可以通过PCIe下行端口向该交换设备返回配置写响应报文,其中,该配置写响应报文可以携带该I/O设备的BDF号。可选地,该交换设备的映射模块在接收到该配置写响应报文之后,可以根据该配置写响应报文中携带的CID查询第二映射表,以获得该配置写响应报文对应的vEP的BDF号,并且可以将该配置写响应报文的CID替换为该CID对应的vEP的BDF号。然后,该交换设备的映射模块可以根据该配置写响应报文携带的RID,确定将该配置写响应报文发送至该交换设备的某个PCIe上行端口,并将其通过该PCIe上行端口返回至该主机。
可选地,该至少一个主机和/或该交换设备也可以利用自学习机制将在上述进行枚举的过程中获得的信息(例如BDF号等)写入vEP和/或mEP,本发明实施例对此不做限定。
S350,该至少一个主机加载该至少一个I/O设备的VF驱动和PF驱动。
具体地,VF驱动可以由主机的处理器加载,PF驱动可以根据不同工作模式由主机的处理器或管理BMC加载。
具体地,在VF直通模式和VF共享模式下,I/O设备的PF驱动可以由管理BMC加载。此外,在VF共享模式下,主机的处理器还可以加载vEP的PF驱动,即每个主机的处理器可以加载其枚举到的vEP的PF驱动。在PF共享模式下,I/O设备的PF驱动可以由该主机的处理器加载,即每个主机的处理器可以加载其枚举到的vEP对应的I/O设备的PF驱动(或vEP虚拟的PF的PF驱动),但本发明实施例对此不做限定。
作为另一个可选实施例,在S330之后,该方法300还可以包括:
该交换设备中内置的处理装置配置该交换设备中的功能模块。具体地,该功能模块包括:至少一个vEP、映射模块和至少一个mEP,此时,该处理装置可以建立该至少一个mEP与该至少一个vEP之间的映射关系,即建立该至少一个I/O设备的功能与该至少一个主机能够使用的vEP虚拟的功能之间的映射关系。该处理装置可以具体将该交换设备下挂的物理设备的信息存储至该交换设备的功能模块,例如,该处理装置可以根据获取到的设备信息配置上述实施例中的第一映射表、第二映射表和第三映射表。该物理设备的信息可以是该处理装置在进行设备枚举的过程中获得的,例如从配置读写响应报文中获取各个物理设备的信息,例如BDF号等等,或者,该物理设备的信息也可以是该管理BMC下发的。相应地,可选地,在该处理装置配置该交换设备中的功能模块之前,该方法300还可以包括:该管理BMC向该处理装置发送配置管理信息,该配置管理信息可以包括配置该交换设备的功能模块所需要用到的信息,例如,当前采用的工作模式(例如上述任一种工作模式)、PCIe下行端口和PCIe上行端口的配置信息(例如PCIe下行端口对应的PCIe配置空间的数量以及每个PCIe配置空间下挂的vEP的个数、PCIe下行端口与I/O设备的连接关系,每个PCIe端口的MAC地址,等等)、I/O设备的PCIe配置空间信息,等等,但本发明实施例不限于此。该系统在进行了上述初始化流程之后,可以运行业务。此时,对于主机发送的配置报文中的配置写报文,该交换设备(例如交换设备的映射模块)需要修改其CID;对于主机下发的Mem读写报文,需要修改其地址(例如将不同域对应的地址进行基地址替换,偏移不变);对于主机发送的完成报文CPLD/CPL,只需要修改CID。对于I/O设备发送的Mem读写报文,可以修改其RID,不需要修改地址;I/O设备发送的完成报文CPLD/CPL,则只需要修改其CID,但本发明实施例不限于此。
应理解,该初始化方法可以参照上述系统实施例的具体描述,为了简洁,这里不再赘述。此外,本申请各个实施例的描述着重于该实施例与其它实施例之间的不同之处,其相似之处可以相互借鉴。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
此外,本发明实施例还提供了一种交换系统,该交换系统包括:第一交换设备和第二交换设备,其中,该第一交换设备和该第二交换设备通过网络连接。
该第一交换设备可以包括:多个PCIe上行端口,用于与至少一个主机连接。
该第二交换设备可以包括:至少一个PCIe下行端口,用于与至少一个设备连接。
可选地,该交换系统还可以包括位于该网络中的网络交换设备。该网络交换设备可以具有多个交换接口,用于连接该第一交换设备和该第二交换设备。
此时,可选地,该第一交换设备还包括:至少一个第一交换接口,用于与该网络交换设备连接。该第二交换设备还包括:至少一个第二交换接口,用于与该网络交换设备连接。
可选地,该网络交换设备可以具体为图8所示的以太网交换机,但本发明实施例不限于此。
可选地,该第一交换设备可以具体为上述主机交换设备,该第二交换设备可以具体为上述I/O交换设备。如图8和图9所示,主机交换设备220a和I/O交换设备220b可以通过以太网接口或其它类型的交换接口连接。作为一个可选实施例,主机交换设备220a可以包括:N2个PCIe上行端口221和用于与I/O交换设备220b连接的至少一个第一交换接口,I/O交换设备220b可以包括:用于与主机交换设备220a连接的至少一个第二交换接口、内置的处理装置223和M2个PCIe下行端口222。
可选地,如图9所示,该至少一个第一交换接口和该至少一个第二交换接口可以直接连接;或者,如图8所示,该至少一个第一交换接口和该至少一个第二交换接口可以通过以太网交换机或其它类型的网络交换设备连接,其中,该网络交换设备可以提供多个交换接口,用于连接该主机交换设备和I/O交换设备。此时,该至少一个第一交换接口可以用于与该网络交换设备连接,该至少一个第二交换接口可以用于与该网络交换设备连接,本发明实施例不限于此。
作为一个可选实施例,该第二交换设备可以用于接收该第一交换设备通过该网络传输的第一数据报文,将该第一数据报文进行处理,得到符合PCIe协议的第二数据报文,并向该第二数据报文的目的I/O设备传输该第二数据报文。
可选地,该第二交换设备可以用于将该第一数据报文转换为符合PCIe协议的该第二数据报文,其中,可选地,该转换可以包括解析处理、报文格式转换处理或时序转换处理,等等,但本发明实施例不限于此。
可选地,该第一数据报文可以具体为符合该网络的网络协议的数据报文。作为一个可选实施例,如图8所示,该网络可以为以太网。此时,该第二交换设备可以具体用于将符合以太协议的该第一数据报文转换为符合PCIe协议的该第二数据报文,但本发明实施例不限于此。
可选地,该第二交换设备还可以用于根据接收到的数据报文携带的信息或根据用于接收该数据报文的端口,确定该数据报文的目的设备,并根据该数据报文的目的设备,发送该数据报文。例如,该第二交换设备还可以根据该第一数据报文携带的信息,确定该第一数据报文的目的I/O设备,并向该第一数据报文的目的I/O设备发送通过对该第一数据报文进行处理得到的该第二数据报文,但本发明实施例不限于此。
可选地,该第一交换设备可以通过该至少一个第一交换接口接收该网络交换设备传输的上行数据报文,并且可以通过该至少一个第一交换接口向该网络交换设备传输下行数据报文。例如,该第一交换设备可以通过该至少一个交换接口向第二交换设备传输该第一数据报文,但本发明实施例不限于此。
可选地,该第二交换设备可以通过该至少一个第二交换接口接收该网络交换设备传输的下行数据报文,并且可以通过该至少一个第二交换接口向该网络交换设备传输上行数据报文。例如,该第二交换设备可以通过该至少二个交换接口接收该第一交换设备传输的第一数据报文,但本发明实施例不限于此。
可选地,该第二交换设备还包括:内置的第一处理装置,通过该第二交换设备的内部连接线路与该至少一个PCIe下行端口连接。
可选地,该第二交换设备用于将该第一数据报文进行处理,得到符合PCIe协议的第二数据报文,包括:该内置的第一处理装置用于将该第一数据报文进行处理,得到符合PCIe协议的第二数据报文。
可选地,该第二交换设备还可以用于对上行数据报文进行处理。
可选地,该第二交换设备中的第一处理装置用于接收来自于该至少一个I/O设备的第三数据报文,对该第三数据报文进行处理,得到符合该网络的网络协议的第四数据报文,并通过该网络向该第一交换设备传输该第四数据报文。
可选地,该第一处理装置可以对符合PCIe协议的第三数据报文进行转换处理,得到符合该网络的网络协议的第四数据报文。
可选地,该第一交换设备也可以对接收到的上行数据报文和/或下行数据报文进行处理。
作为另一个可选实施例,上述内置的处理装置223可以包括位于主机交换设备220a内的处理装置(即第一处理装置)和位于I/O交换设备220b内的处理装置(即第二处理装置)。此时,该内置的第一处理装置可以通过该主机交换设备的内部连接线路分别与该多个PCIe上行端口和该至少一个第一交换接口连接,该内置的第二处理装置可以通过该I/O交换设备的内部连接线路分别与该至少一个PCIe下行端口和该至少一个第二交换接口连接,但本发明实施例不限于此。
可选地,该第一交换设备还包括:内置的第二处理装置,通过该第一交换设备的内部连接线路与该多个PCIe上行端口连接。
可选地,该内置的第二处理装置可以用于对接收到的上/下行数据报文进行处理。
作为一个可选实施例,该内置的第二处理装置用于:接收来自于该至少一个主机的第五数据报文,对该第五数据报文进行处理,得到符合该网络的网络协议的该第一数据报文,并通过该网络向该第二交换设备传输该第一数据报文。
可选地,该第五数据报文可以符合PCIe协议。该第二处理装置可以具体用于将第五数据报文转换为第一数据报文,其中,该第一数据报文符合该网络的网络协议。
可选地,该第二处理装置还可以根据该第五数据报文中携带的信息和/或接收该第五数据报文的PCIe上行端口,确定该第五数据报文对应的第一交换接口,并通过该对应的第一交换接口向该第二交换设备传输该第一数据报文,但本发明实施例不限于此。
作为另一个可选实施例,该内置的第二处理装置用于:通过该网络接收该第一交换设备传输的该第四数据报文,对该第四数据报文进行处理,得到符合PCIe协议的第六数据报文,并向该第六数据报文的目的主机传输该第六数据报文。
可选地,该第二处理装置也可以通过网络接收该第二交换设备传输的第四数据报文,其中,该第四数据报文可以为符合该网络的网络协议的数据报文,该第二处理装置可以对该第四数据报文进行转换处理,得到符合PCIe协议的第六数据报文。
可选地,该第二处理装置也可以用于根据接收到的数据报文携带的信息或根据用于接收该数据报文的端口,确定该数据报文的目的设备,并根据该数据报文的目的设备,发送该数据报文。例如,该第二处理装置可以根据该第四数据报文中携带的信息,确定该第四数据报文的目的主机,并向该第四数据报文的目的主机传输通过对该第四数据报文进行处理得到的第六数据报文,但本发明实施例不限于此。
可选地,该第一交换设备还包括:至少一个虚拟端点设备模块,与该多个PCIe上行端口连接,用于虚拟该至少一个I/O设备的功能以供该至少一个主机使用。
该第二交换设备还包括:
至少一个镜像端点设备模块,与该至少一个PCIe下行端口连接,用于存储该至少一个I/O设备的PCIe配置内容;
映射模块,用于实现该至少一个主机对应的PCIe域与该至少一个I/O设备对应的PCIe域之间的映射。
可选地,该至少一个PCIe下行端口中的每个PCIe下行端口不具有PCIe配置空间,该多个PCIe上行端口中的每个PCIe上行端口具有PCIe配置空间。
可选地,该第一交换设备还包括该至少一个PCIe下行端口对应的至少一个PCIe配置空间,该至少一个虚拟端点设备模块具体通过该至少一个PCIe下行端口对应的至少一个PCIe配置空间与该多个PCIe上行端口连接。
可选地,该至少一个PCIe下行端口对应的至少一个PCIe配置空间可以具体为上述N4个DP_CFG227,但本发明实施例不限于此。可选地,该至少一个PCIe下行端口中的每个PCIe下行端口可以对应0个、1个或多个PCIe配置空间,本发明实施例对此不做限定。
可选地,该映射模块存储有:
第一映射表,用于存储由该至少一个主机对应的PCIe域中的标识到该至少一个I/O设备对应的PCIe域中的标识的映射关系;
第二映射表,用于存储由该至少一个I/O设备对应的PCIe域中的标识到该至少一个主机对应的PCIe域中的标识的映射关系。
可选地,该至少一个镜像端点设备模块中的第一镜像端点设备模块具体为第三映射表,该第三映射表用于存储该至少一个I/O设备中的第一I/O设备的虚拟功能的基地址寄存器BAR地址以及该虚拟功能的BAR大小,其中,该第一镜像端点设备模块用于存储该第一I/O设备的PCIe配置内容。
可选地,该至少一个虚拟端点设备模块中的第一虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第二I/O设备的物理功能,以供该至少一个主机中的第一主机使用,其中,该第二I/O设备的物理功能驱动由该第一主机的处理器加载。
可选地,该至少一个虚拟端点设备模块中的第二虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第三I/O设备的虚拟功能,以供该至少一个主机中的第二主机使用,其中,该第三I/O设备的物理功能驱动由该至少一个主机中的管理基板管理控制器BMC加载。
可选地,该至少一个虚拟端点设备模块中的第三虚拟端点设备模块具体用于虚拟该至少一个I/O设备中的第四I/O设备的物理功能和虚拟功能,以供该至少一个主机中的第三主机使用,其中,该第四I/O设备的物理功能驱动由该至少一个主机中的管理BMC加载,该第三虚拟端点设备模块的物理功能驱动由该第三主机的处理器加载。
应理解,该至少一个虚拟端点设备模块可以具体为上述N3个vEP224,该至少一个镜像端点设备模块可以具体为上述M3个mEP226,该映射模块可以具体为上述映射模块225。因此,该至少一个虚拟端点设备模块、该至少一个镜像端点设备模块以及该映射模块的具体实现可以参照上文描述,为了简洁,这里不再赘述。
可选地,该第一交换设备可以具体为上述主机交换设备,该第二交换设备可以具体为上述I/O交换设备,其具体实现可以参照上文描述,为了简洁,这里不再赘述。应理解,这里的“主机交换设备”和“I/O交换设备”以及“第一交换设备”和“第二交换设备”仅是为了区分不同的交换设备而起的名称,上述名称不应构成对本发明实施例保护范围的限定。
本发明实施例还提供了一种PCIe系统,包括:至少一个主机、上述实施例中的交换系统和至少一个I/O设备。
应理解,在本发明实施例中,术语“多个”可以表示两个或三个以上,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符/,一般表示前后关联对象是一种或的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种交换系统,其特征在于,包括:第一交换设备和第二交换设备,其中,所述第一交换设备和所述第二交换设备通过网络连接;
所述第一交换设备包括:
多个外围部件互连高速PCIe上行端口,用于与至少一个主机连接;
所述第二交换设备包括:
至少一个PCIe下行端口,用于与至少一个输入输出I/O设备连接;
所述第二交换设备用于:
接收所述第一交换设备通过所述网络传输的第一数据报文,将所述第一数据报文转换为符合PCIe协议的第二数据报文,并向所述第二数据报文的目的I/O设备传输所述第二数据报文。
2.根据权利要求1所述的交换系统,其特征在于,所述第二交换设备还包括:内置的第一处理装置,通过所述第二交换设备的内部连接线路与所述至少一个PCIe下行端口连接;
所述第二交换设备用于将所述第一数据转换为符合PCIe协议的第二数据报文,包括:
所述内置的第一处理装置用于将所述第一数据报文转换为符合PCIe协议的第二数据报文。
3.根据权利要求2所述的交换系统,其特征在于,所述网络为以太网;
所述内置的第一处理装置用于将所述第一数据报文转换为符合PCIe协议的第二数据报文,包括:
所述内置的第一处理装置用于将符合以太协议的所述第一数据报文转换为符合PCIe协议的所述第二数据报文。
4.根据权利要求1所述的交换系统,其特征在于,所述第二交换设备还包括:内置的第一处理装置,通过所述第二交换设备的内部连接线路与所述至少一个PCIe下行端口连接;
所述内置的第一处理装置用于接收所述至少一个I/O设备中的任意I/O设备发送的第三数据报文,对所述第三数据报文进行处理,得到符合所述网络的网络协议的第四数据报文,并通过所述网络向所述第一交换设备传输所述第四数据报文。
5.根据权利要求4所述的交换系统,其特征在于,所述第一交换设备还包括:内置的第二处理装置,通过所述第一交换设备的内部连接线路与所述多个PCIe上行端口连接;
所述内置的第二处理装置用于:
接收所述至少一个主机中的任意主机发送的第五数据报文,对所述第五数据报文进行处理,得到符合所述网络的网络协议的所述第一数据报文,并通过所述网络向所述第二交换设备传输所述第一数据报文;和/或
通过所述网络接收所述第一交换设备传输的所述第四数据报文,对所述第四数据报文进行处理,得到符合PCIe协议的第六数据报文,并向所述第六数据报文的目的主机传输所述第六数据报文。
6.根据权利要求1至5中任一项所述的交换系统,其特征在于,所述交换系统还包括所述网络中的网络交换设备;
所述第一交换设备还包括:
至少一个第一交换接口,用于与所述网络交换设备连接;
所述第二交换设备还包括:
至少一个第二交换接口,用于与所述网络交换设备连接;
所述第二交换设备用于接收所述第一交换设备通过所述网络传输的第一数据报文,包括:
所述第二交换设备用于通过所述至少一个第二交换接口中的任意一个第二交换接口接收所述网络交换设备传输的来自于所述第一交换设备的第一数据报文。
7.根据权利要求1至6中任一项所述的交换系统,其特征在于,所述第一交换设备还包括:至少一个虚拟端点设备模块,与所述多个PCIe上行端口连接,用于虚拟所述至少一个I/O设备的功能以供所述至少一个主机使用;
所述第二交换设备还包括:
至少一个镜像端点设备模块,与所述至少一个PCIe下行端口连接,用于存储所述至少一个I/O设备的PCIe配置内容;
映射模块,用于实现所述至少一个主机对应的PCIe域与所述至少一个I/O设备对应的PCIe域之间的映射。
8.根据权利要求7所述的交换系统,其特征在于,所述至少一个PCIe下行端口中的每个PCIe下行端口不具有PCIe配置空间,所述多个PCIe上行端口中的每个PCIe上行端口具有PCIe配置空间。
9.根据权利要求8所述的交换系统,其特征在于,所述第一交换设备还包括所述至少一个PCIe下行端口中的每个PCIe下行端口对应的至少一个PCIe配置空间,所述至少一个虚拟端点设备模块具体通过所述至少一个PCIe下行端口对应的至少一个PCIe配置空间与所述多个PCIe上行端口连接。
10.根据权利要求7至9中任一项所述的交换系统,其特征在于,所述映射模块存储有:
第一映射表,用于存储由所述至少一个主机对应的PCIe域中的标识到所述至少一个I/O设备对应的PCIe域中的标识的映射关系;
第二映射表,用于存储由所述至少一个I/O设备对应的PCIe域中的标识到所述至少一个主机对应的PCIe域中的标识的映射关系。
11.根据权利要求7至10中任一项所述的交换系统,其特征在于,所述至少一个镜像端点设备模块中的第一镜像端点设备模块具体为第三映射表,所述第三映射表用于存储所述至少一个I/O设备中的第一I/O设备的虚拟功能的基地址寄存器BAR地址以及所述虚拟功能的BAR大小,其中,所述第一镜像端点设备模块用于存储所述第一I/O设备的PCIe配置内容。
12.根据权利要求7至11中任一项所述的交换系统,其特征在于,所述至少一个虚拟端点设备模块中的第一虚拟端点设备模块具体用于虚拟所述至少一个I/O设备中的第二I/O设备的物理功能,以供所述至少一个主机中的第一主机使用,其中,所述第二I/O设备的物理功能驱动由所述第一主机的处理器加载。
13.根据权利要求7至12中任一项所述的交换系统,其特征在于,所述至少一个虚拟端点设备模块中的第二虚拟端点设备模块具体用于虚拟所述至少一个I/O设备中的第三I/O设备的虚拟功能,以供所述至少一个主机中的第二主机使用,其中,所述第三I/O设备的物理功能驱动由所述至少一个主机中的管理基板管理控制器BMC加载。
14.根据权利要求7至13中任一项所述的交换系统,其特征在于,所述至少一个虚拟端点设备模块中的第三虚拟端点设备模块具体用于虚拟所述至少一个I/O设备中的第四I/O设备的物理功能和虚拟功能,以供所述至少一个主机中的第三主机使用,其中,所述第四I/O设备的物理功能驱动由所述至少一个主机中的管理BMC加载,所述第三虚拟端点设备模块的物理功能驱动由所述第三主机的处理器加载。
15.一种外围部件互连高速PCIe系统,其特征在于,包括:
至少一个主机、如权利要求1至14中任一项所述的交换系统和至少一个输入输出I/O设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755680.0A CN110489365B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910755680.0A CN110489365B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
CN201610022697.1A CN105721357B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610022697.1A Division CN105721357B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489365A true CN110489365A (zh) | 2019-11-22 |
CN110489365B CN110489365B (zh) | 2023-09-12 |
Family
ID=56147068
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910755680.0A Active CN110489365B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
CN201610022697.1A Active CN105721357B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610022697.1A Active CN105721357B (zh) | 2016-01-13 | 2016-01-13 | 交换设备、外围部件互连高速系统及其初始化方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10810151B2 (zh) |
EP (2) | EP3276899B1 (zh) |
JP (2) | JP6665207B2 (zh) |
CN (2) | CN110489365B (zh) |
ES (1) | ES2773032T3 (zh) |
SG (2) | SG11201708829YA (zh) |
WO (1) | WO2017121376A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158984A (zh) * | 2019-12-29 | 2020-05-15 | 浪潮商用机器有限公司 | 一种服务器硬件监控方法、装置、设备及存储介质 |
CN112256618A (zh) * | 2020-10-23 | 2021-01-22 | 新华三信息安全技术有限公司 | 一种映射关系确定方法及装置 |
CN113904938A (zh) * | 2021-09-28 | 2022-01-07 | 北京大禹智芯科技有限公司 | 一种动态配置PCIe终端设备的系统和方法 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489365B (zh) * | 2016-01-13 | 2023-09-12 | 华为技术有限公司 | 交换设备、外围部件互连高速系统及其初始化方法 |
US10082957B2 (en) * | 2016-07-20 | 2018-09-25 | Western Digital Technologies, Inc. | Dual-ported PCI express-based storage cartridge including single-ported storage controllers |
CN106648836A (zh) * | 2016-12-28 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种虚拟机配置中设备地址的分配方法和装置 |
CN109428903B (zh) * | 2017-08-22 | 2021-08-13 | 佛山市顺德区顺达电脑厂有限公司 | Pci装置的远程监控系统及其远程监控方法 |
CN108021521B (zh) * | 2017-12-01 | 2021-04-27 | 郑州云海信息技术有限公司 | 一种基于bmc更改系统拓扑配置的系统以及级联配置方法 |
JP7181447B2 (ja) | 2018-03-30 | 2022-12-01 | 株式会社ソシオネクスト | 情報処理システム、情報処理方法及び半導体装置 |
WO2019203331A1 (ja) * | 2018-04-18 | 2019-10-24 | 富士通クライアントコンピューティング株式会社 | 中継装置および情報処理システム |
JP6635209B2 (ja) * | 2018-04-18 | 2020-01-22 | 富士通クライアントコンピューティング株式会社 | 情報処理システム |
CN109522245B (zh) * | 2018-11-15 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种硬件管理的方法及管理装置 |
US11218397B2 (en) * | 2019-01-27 | 2022-01-04 | Mellanox Technologies, Ltd. | Dual purpose NIC/PCIe protocol logic analyzer |
US10585833B1 (en) * | 2019-01-28 | 2020-03-10 | Quanta Computer Inc. | Flexible PCIe topology |
GB2586957A (en) * | 2019-04-18 | 2021-03-17 | Fujitsu Client Computing Ltd | Repeating device and information processing system |
US11256643B2 (en) * | 2019-06-21 | 2022-02-22 | Dell Products L.P. | System and method for high configurability high-speed interconnect |
JP7446167B2 (ja) | 2019-06-24 | 2024-03-08 | 三星電子株式会社 | 軽量ブリッジ、これを含む物品及びこれを用いた方法 |
CN112491672B (zh) * | 2019-09-11 | 2022-05-06 | 杭州海康威视数字技术股份有限公司 | 一种pcie通信系统、通信配置参数备份方法及pcie交换机 |
US11609866B2 (en) * | 2020-01-02 | 2023-03-21 | Texas Instruments Incorporated | PCIe peripheral sharing |
US11132326B1 (en) * | 2020-03-11 | 2021-09-28 | Nvidia Corporation | Techniques to transfer data among hardware devices |
CN113297124B (zh) * | 2020-04-08 | 2022-05-06 | 阿里巴巴集团控股有限公司 | 设备枚举方法、设备、系统及存储介质 |
CN113300984B (zh) * | 2020-04-08 | 2022-09-13 | 阿里巴巴集团控股有限公司 | 通信方法、设备、系统及存储介质 |
CN113297116A (zh) * | 2020-04-08 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 信息配置方法、端口访问方法、设备及存储介质 |
CN111581050B (zh) * | 2020-04-13 | 2023-06-27 | 加弘科技咨询(上海)有限公司 | 机箱、机箱监控系统及监控方法 |
CN111538692B (zh) * | 2020-04-20 | 2022-03-18 | 深圳市汇川技术股份有限公司 | 变频器系统及其控制方法 |
TWI759772B (zh) * | 2020-06-19 | 2022-04-01 | 英業達股份有限公司 | 快速周邊組件互連資料傳輸控制系統 |
US11392325B2 (en) * | 2020-09-28 | 2022-07-19 | Quanta Computer Inc. | Method and system for parallel flash memory programming |
US11354259B1 (en) * | 2020-12-08 | 2022-06-07 | Hewlett Packard Enterprise Development Lp | Computer system configurations based on accessing data elements presented by baseboard management controllers |
US20220206879A1 (en) * | 2020-12-30 | 2022-06-30 | Heena Bhatia | PCIe Race Condition secure by Trait Claims and Address Space by using Portable Stimulus |
CN113132199B (zh) * | 2021-04-21 | 2022-07-01 | 无锡众星微系统技术有限公司 | 一种PCIe NTB的系统实现管理方法 |
US11714775B2 (en) | 2021-05-10 | 2023-08-01 | Zenlayer Innovation LLC | Peripheral component interconnect (PCI) hosting device |
WO2022246614A1 (zh) * | 2021-05-24 | 2022-12-01 | 华为技术有限公司 | 一种数据传输的方法及装置 |
CN113709066B (zh) * | 2021-07-31 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 一种PCIe通信装置及BMC |
CN115811446A (zh) * | 2021-09-14 | 2023-03-17 | 华为技术有限公司 | 一种总线系统、通信方法及相关设备 |
CN114125902A (zh) * | 2021-11-30 | 2022-03-01 | 上海移远通信技术股份有限公司 | Wwan设备及其配置方法、装置、存储介质 |
CN114584411B (zh) * | 2022-02-25 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | PCIe多播验证方法、装置、电子设备及存储介质 |
CN114389947B (zh) * | 2022-03-24 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 数据传输方法、系统及计算机可读存储介质 |
CN115277407B (zh) * | 2022-07-25 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 网口配置处理方法、装置、电子设备和存储介质 |
CN117591449B (zh) * | 2024-01-17 | 2024-04-23 | 苏州元脑智能科技有限公司 | 一种基板的可编程逻辑器件系统及其应用设备 |
CN117743240B (zh) * | 2024-02-19 | 2024-04-19 | 井芯微电子技术(天津)有限公司 | 一种具备透明和非透明双模式的PCIe桥设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110233A1 (en) * | 2009-07-06 | 2012-05-03 | Junichi Higuchi | I/o system, downstream pci express bridge, interface sharing method, and program |
CN102707991A (zh) * | 2012-05-17 | 2012-10-03 | 中国科学院计算技术研究所 | 多根i/o 虚拟化共享方法和系统 |
CN102722414A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 用于多根i/o 虚拟化共享系统的i/o 资源管理方法 |
US20130268713A1 (en) * | 2012-04-05 | 2013-10-10 | Electronics And Telecommunications Research Institute | Pcie switch apparatus and method of controlling connection thereof |
US20130332634A1 (en) * | 2012-06-08 | 2013-12-12 | Advanced Micro Devices, Inc. | Tunnel suitable for multi-segment communication links and method therefor |
US20150334017A1 (en) * | 2014-05-14 | 2015-11-19 | International Business Machines Corporation | FIBRE CHANNEL OVER ETHERNET (FCoE) ZONING IN A DISTRIBUTED ETHERNET SWITCH |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0123410D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
US7188209B2 (en) * | 2003-04-18 | 2007-03-06 | Nextio, Inc. | Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets |
US7729284B2 (en) * | 2005-01-19 | 2010-06-01 | Emulex Design & Manufacturing Corporation | Discovery and configuration of devices across an Ethernet interface |
WO2009025381A1 (ja) * | 2007-08-23 | 2009-02-26 | Nec Corporation | I/oシステムおよびi/o制御方法 |
KR101324844B1 (ko) * | 2008-03-25 | 2013-11-01 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 기능 변환 시스템 및 방법과 변환 수행 시스템 |
JP5272265B2 (ja) | 2008-09-29 | 2013-08-28 | 株式会社日立製作所 | Pciデバイス共有方法 |
JP5266590B2 (ja) * | 2009-09-18 | 2013-08-21 | 株式会社日立製作所 | 計算機システムの管理方法、計算機システム及びプログラム |
US8463934B2 (en) * | 2009-11-05 | 2013-06-11 | Rj Intellectual Properties, Llc | Unified system area network and switch |
US8732349B2 (en) * | 2009-11-18 | 2014-05-20 | Fusion-Io, Inc. | Assignment of resources in an input/output (I/O) virtualization system |
JP5598148B2 (ja) * | 2010-08-05 | 2014-10-01 | 富士通株式会社 | スイッチング装置、情報処理装置、及びスイッチング装置の制御方法 |
JP5541021B2 (ja) | 2010-09-09 | 2014-07-09 | 富士通株式会社 | スイッチ装置 |
CN102075401B (zh) * | 2011-01-28 | 2013-08-07 | 华为技术有限公司 | 在pcie总线上传输报文的方法、设备和系统 |
JP5794011B2 (ja) * | 2011-07-19 | 2015-10-14 | 富士通株式会社 | ネットワーク管理装置及びネットワーク管理方法 |
CN103023824B (zh) * | 2012-12-11 | 2015-08-26 | 华为技术有限公司 | 基于周边组件接口快速通道PCIe的数据传输系统及方法 |
CN103117929B (zh) * | 2013-01-31 | 2015-12-23 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
US9734096B2 (en) * | 2013-05-06 | 2017-08-15 | Industrial Technology Research Institute | Method and system for single root input/output virtualization virtual functions sharing on multi-hosts |
US9336173B1 (en) * | 2013-12-20 | 2016-05-10 | Microsemi Storage Solutions (U.S.), Inc. | Method and switch for transferring transactions between switch domains |
CN103701710B (zh) * | 2013-12-20 | 2017-01-11 | 杭州华为数字技术有限公司 | 一种数据传输方法、核心转发设备以及端点转发设备 |
US9563591B2 (en) * | 2014-03-06 | 2017-02-07 | International Business Machines Corporation | Peripheral component interconnect express (PCIe) ping in a switch-based environment |
CN110489365B (zh) * | 2016-01-13 | 2023-09-12 | 华为技术有限公司 | 交换设备、外围部件互连高速系统及其初始化方法 |
-
2016
- 2016-01-13 CN CN201910755680.0A patent/CN110489365B/zh active Active
- 2016-01-13 CN CN201610022697.1A patent/CN105721357B/zh active Active
-
2017
- 2017-01-13 EP EP17738189.4A patent/EP3276899B1/en active Active
- 2017-01-13 WO PCT/CN2017/071081 patent/WO2017121376A1/zh active Application Filing
- 2017-01-13 SG SG11201708829YA patent/SG11201708829YA/en unknown
- 2017-01-13 ES ES17738189T patent/ES2773032T3/es active Active
- 2017-01-13 JP JP2017563323A patent/JP6665207B2/ja active Active
- 2017-01-13 EP EP19195772.9A patent/EP3661141A1/en active Pending
- 2017-01-13 SG SG10202005939TA patent/SG10202005939TA/en unknown
- 2017-10-31 US US15/799,399 patent/US10810151B2/en active Active
-
2019
- 2019-04-22 JP JP2019081171A patent/JP7118922B2/ja active Active
-
2020
- 2020-09-17 US US17/024,181 patent/US11080221B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110233A1 (en) * | 2009-07-06 | 2012-05-03 | Junichi Higuchi | I/o system, downstream pci express bridge, interface sharing method, and program |
US20130268713A1 (en) * | 2012-04-05 | 2013-10-10 | Electronics And Telecommunications Research Institute | Pcie switch apparatus and method of controlling connection thereof |
CN102707991A (zh) * | 2012-05-17 | 2012-10-03 | 中国科学院计算技术研究所 | 多根i/o 虚拟化共享方法和系统 |
CN102722414A (zh) * | 2012-05-22 | 2012-10-10 | 中国科学院计算技术研究所 | 用于多根i/o 虚拟化共享系统的i/o 资源管理方法 |
US20130332634A1 (en) * | 2012-06-08 | 2013-12-12 | Advanced Micro Devices, Inc. | Tunnel suitable for multi-segment communication links and method therefor |
US20150334017A1 (en) * | 2014-05-14 | 2015-11-19 | International Business Machines Corporation | FIBRE CHANNEL OVER ETHERNET (FCoE) ZONING IN A DISTRIBUTED ETHERNET SWITCH |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158984A (zh) * | 2019-12-29 | 2020-05-15 | 浪潮商用机器有限公司 | 一种服务器硬件监控方法、装置、设备及存储介质 |
CN111158984B (zh) * | 2019-12-29 | 2023-08-18 | 浪潮商用机器有限公司 | 一种服务器硬件监控方法、装置、设备及存储介质 |
CN112256618A (zh) * | 2020-10-23 | 2021-01-22 | 新华三信息安全技术有限公司 | 一种映射关系确定方法及装置 |
CN113904938A (zh) * | 2021-09-28 | 2022-01-07 | 北京大禹智芯科技有限公司 | 一种动态配置PCIe终端设备的系统和方法 |
CN113904938B (zh) * | 2021-09-28 | 2022-04-29 | 北京大禹智芯科技有限公司 | 一种动态配置PCIe终端设备的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180052793A1 (en) | 2018-02-22 |
EP3276899A1 (en) | 2018-01-31 |
EP3276899A4 (en) | 2018-10-10 |
EP3661141A1 (en) | 2020-06-03 |
JP2019145153A (ja) | 2019-08-29 |
ES2773032T3 (es) | 2020-07-09 |
CN105721357B (zh) | 2019-09-03 |
JP2018521402A (ja) | 2018-08-02 |
US20210004343A1 (en) | 2021-01-07 |
SG11201708829YA (en) | 2017-11-29 |
EP3276899B1 (en) | 2019-11-13 |
JP7118922B2 (ja) | 2022-08-16 |
US10810151B2 (en) | 2020-10-20 |
SG10202005939TA (en) | 2020-07-29 |
CN110489365B (zh) | 2023-09-12 |
JP6665207B2 (ja) | 2020-03-13 |
WO2017121376A1 (zh) | 2017-07-20 |
US11080221B2 (en) | 2021-08-03 |
CN105721357A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721357B (zh) | 交换设备、外围部件互连高速系统及其初始化方法 | |
CN101242371B (zh) | 基于PCIe交换架构路由器堆叠的方法、系统和装置 | |
US8407367B2 (en) | Unified connector architecture | |
CN104536940B (zh) | 发送/接收具有扩展头部的分组的互连装置以及相关联的片上系统与计算机可读存储介质 | |
CN101710314B (zh) | 高速外围部件互连交换控制器及其实现方法 | |
CN104641360B (zh) | 对存储器及对等设备的双播PCIe入站写入 | |
US20160283428A1 (en) | Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch | |
US7353315B2 (en) | Bus controller with virtual bridge | |
CN116501681B (zh) | Cxl数据传输板卡及控制数据传输的方法 | |
CN106817249B (zh) | Fc-ae-1553仿真通信演示系统及数据发送方法 | |
JP2014067433A (ja) | 統合マルチ転送媒体コネクタ・アーキテクチャ | |
JP2007219873A (ja) | スイッチ及びネットワークブリッジ装置 | |
JP2011065685A (ja) | 開放形コアプロトコルを基盤とするバスシステム | |
CN101140556A (zh) | 用可编程器件实现访问多个i2c从器件的方法及装置 | |
CN106575283B (zh) | 使用元胞自动机的群集服务器配置 | |
CN101889263B (zh) | 控制路径i/o虚拟化 | |
JP2010237839A (ja) | PCI−Express通信システム、及びPCI−Express通信方法 | |
CN104899170A (zh) | 分布式智能平台管理总线ipmb连接方法及atca机框 | |
KR20140078161A (ko) | Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템 | |
CN105763488A (zh) | 数据中心汇聚核心交换机及其背板 | |
CN201369046Y (zh) | 快速外部设备互联总线数据通信系统 | |
CN113688091B (zh) | 基于Tsi721的RapidIO动态枚举过程的实现方法及系统 | |
US8732331B2 (en) | Managing latencies in a multiprocessor interconnect | |
CN104394100A (zh) | 信用分配方法和交换机 | |
WO2024102915A1 (en) | Pcie retimer providing failover to redundant endpoint using inter-die data interface |
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 |