CN115361255B - 外设组件互连(pci)主机设备 - Google Patents
外设组件互连(pci)主机设备 Download PDFInfo
- Publication number
- CN115361255B CN115361255B CN202210488860.9A CN202210488860A CN115361255B CN 115361255 B CN115361255 B CN 115361255B CN 202210488860 A CN202210488860 A CN 202210488860A CN 115361255 B CN115361255 B CN 115361255B
- Authority
- CN
- China
- Prior art keywords
- pci
- host device
- server device
- server
- pci host
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000008878 coupling Effects 0.000 claims abstract description 8
- 238000010168 coupling process Methods 0.000 claims abstract description 8
- 238000005859 coupling reaction Methods 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 41
- 230000004931 aggregating effect Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 13
- 238000002955 isolation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000004606 Fillers/Extenders Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000003863 physical function Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/0024—Peripheral component interconnect [PCI]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Power Sources (AREA)
Abstract
本文公开了通过外围组件互连(PCI)主机设备集合来自多个服务器设备的流量的方法和系统。在一个实施例中,PCI主机设备包括将PCI主机设备耦合到网络上的网络接口、多个PCI接口、用于转发分组的处理电路、以及独立于多个服务器设备向PCI接口供电的电源。每个PCI接口被设计成可耦合PCI主机设备的一个服务器设备,该PCI主机设备将通过第一PCI接口注册为第一服务器设备的第一PCI板,通过第二PCI接口注册为第二服务器设备的第二PCI板,并且,PCI主机设备还被设计成可在网络接口和第一服务器设备之间以及网络接口和第二服务器设备之间转发分组。
Description
技术领域
本发明涉及计算领域;更具体地来说,本发明涉及通过外设组件互连(PCI)主机设备聚合来自多个服务器设备的流量。
背景技术
云计算和虚拟计算环境在各种应用中提供远程计算资源和远程数据存储资源。云服务提供商可以安装多个服务器机箱,每个服务器机箱包含许多服务器设备,以向其客户端提供云计算和虚拟计算环境。这些服务器设备可以连接到网络交换机,然后由网络交换机为服务器设备提供到通信网络(例如,互联网)的连接。
在一些实施方式中,在服务器机架中统一安装刀锋服务器。为提高机架空间使用效率,可以将多个服务器设备包括在一个机柜中。为了处理机柜内的刀锋服务器和通信网络之间的网络流量,许多网络设备供应商在机柜内配备了板载网络交换机。但是,板载网络交换机可能无法提供客户端或云服务提供商偏好的期望功能(例如,服务质量监控或流量加密)。此外,云服务提供商可能不希望局限于特定的供应商来同时提供刀锋服务器和网络交换机。
发明内容
图1显示了一种绕过板载网络交换机将服务器设备连接到通信网络的方法。服务器设备102和112是刀锋服务器,可以安装在机柜内(例如,服务器机箱155),机柜内还可以配备板载网络交换机(未示出),当服务器设备102和112连接到通信网络190时,云服务提供商倾向于绕过该网络交换机。服务器设备102连接到相关的网络接口控制器(NIC)卡150(NIC也可以表示网络接口卡,并且术语网络接口控制器和网络接口卡可以互换使用),网络接口控制器(NIC)卡150又连接到服务器机箱155外部的网络交换机172。类似地,服务器设备112连接到其相关的NIC卡152,NIC卡152又连接到网络交换机174。然后网络交换机172和174均连接到通信网络190。位于服务器机箱155外部的网络交换机172和174可称为架顶式交换机或现货型交换机。
服务器设备102、112和相关NIC卡150、152之间的连接可以使用外设组件互连(PCI)架构。PCI express(PCIe或PCI-e)是PCI架构的一种变体,本发明实施该架构来连接服务器设备102/112和NIC卡150/152。
PCIe使用点对点链路,其中根复合体将服务器设备的处理器(例如,中央处理单元(CPU)或图形处理单元(GPU))和存储器连接到PCI Express结构。根复合体可以具有多个端口(例如,以太网端口),每个端口连接到PCIe交换机或终端(也称为终端设备,并且术语“PCIe终端”、“终端”和“终端设备”等可以互换使用)。
每个PCIe交换机可以进一步连接到一个或多个终端,以形成PCIe连接层级。根复合体代表处理器生成事务请求。根复合体响应处理器的命令,生成配置、存储器和输入/输出(I/O)请求。根复合体将PCI数据包从其端口传输到终端或PCIe交换机,并接收PCI数据包,然后将其转发到相应的存储器或处理器。注意,本专利说明书中的数据包指的是PCI数据包,并且除非另有说明,一般这两个术语可互换使用,并且PCI数据包是指通过PCI协议传输的数据包。例如,PCI数据包可以是PCIe协议内的事务层数据包。
如图1所示,服务器设备102包括根复合体104和PCIe交换机106,服务器设备112包括根复合体114和PCIe交换机116,但因服务器设备的处理器、存储器和其他组件与网络连接性讨论无关,所以没有示出。每个NIC卡充当其各自服务器设备的PCIe终端。NIC卡150具有连接到服务器设备102的接口,因此其充当PCIe终端132,PCIe终端132连接到服务器设备102的PCIe交换机106。NIC卡150还具有网络接口154,因此可以通过NIC卡150的网络接口154在服务器设备102和网络交换机172之间转发数据包。
NIC卡152可以设计成与NIC卡150类似,并且通过PCIe终端136和网络接口156在服务器设备112和网络交换机174之间转发数据包。注意,NIC卡150和152不具有自用电源,不能独立于服务器设备102和112提供电力。
由于NIC卡150和152依赖于服务器设备102和112来供电,因此在一个实施例中,基于诸如PCI Express卡机电规范的PCIe标准,NIC卡150和152受限于PCI板卡的功耗限制。注意,NIC卡150和152不仅提供到服务器设备102和112的连接,而且可以对从/向服务器设备102和112传输的数据包实施网络流量处理(例如,加密、防火墙、传输控制协议和互联网协议(TCP/IP)以及超文本传输协议(HTTP)处理),并且由于其数据包处理能力,NIC卡150和152可以被称为智能NIC卡。
每个NIC卡在服务器设备和网络交换机之间建立独立的网络连接,云服务器提供商可以绕过板载网络交换机,灵活管理服务器设备的连接。但通常会将多个服务器设备部署在一个服务器机箱中,为每个服务器设备添加一个专用的NIC卡将快速增加部署成本,占用宝贵的机箱/机架空间,并且不便于管理庞杂的NIC卡。最好使用更好的方法来管理聚合中多个服务器设备的网络连接。
附图简要说明
随附图纸通过示例(而非限制)方式示出了本发明,其中相同的附图标记表示相似元件,同时:
图1显示了一种绕过板载网络交换机将服务器设备连接到通信网络的方法。
图2示出了托管多个GPU的图形处理单元(GPU)主板的示例性配置。
图3是根据一些实施例实现托管多个服务器设备的PCI主机设备的设备图示。
图4示出了根据一些实施例基于PCIe协议托管多个服务器设备的PCI主机设备。
图5示出了根据一些实施例的PCI主机设备的动态资源分配。
图6示出了根据一些实施例向服务器设备提供服务的PCI主机设备。
图7是示出根据一些实施例使用PCI主机设备来托管多个服务设备的方法的流程图。
详细说明
本发明的实施例提供了一种外设组件互连(PCI)主机设备,其包括:多个PCI接口,用于托管多个服务器设备;网络接口,用于将PCI主机设备耦合到网络;处理电路,用于转发数据包;以及电源,用于独立于多个服务器设备向多个PCI接口供电。每个PCI接口被设计为将一个服务器设备耦合到PCI主机设备。第一和第二服务器设备耦合到PCI主机设备后,PCI主机设备通过第一PCI接口注册为第一服务器设备的PCI板卡,并通过第二PCI接口注册为第二服务器设备的PCI板卡。PCI主机设备被设计为在网络接口和第一服务器设备之间以及网络接口和第二服务器设备之间转发数据包。
以下对本发明实施例的详细描述参考了附图,其中相似的附图标记指代类似的元件,通过图示的方式示出了实施本发明的具体实施例。对这些实施例的描述足够详细,以使本领域技术人员能够实施本发明。本领域技术人员理解,可以利用其他实施例,并且在不脱离本发明的范围的情况下,可以进行逻辑、机械、电气、功能以及其他方面的变更。因此,以下详细描述不应在限制意义上进行理解,并且本发明的范围仅由所附权利要求限定。
本专利说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例不一定包括特定的特征、结构或特性。此外,这些表述不一定指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,应认为,在本领域技术人员的知识范围内,结合其他实施例描述时会影响这样的特征、结构或特性,无论这些实施例是否明确描述。
说明书和权利要求可以使用术语“耦合”和“连接”,以及相关派生词。这些术语不作为彼此的同义词。“耦合”用于表示两个或多个元件相互合作或相互作用,这些元件可以相互直接物理接触或电接触,也可以不直接物理接触或电接触。“连接”用于表示在相互耦合的两个或多个元件之间建立无线或有线通信。本文中使用的一“组”是指包括一项在内的任何正整数个项。
使用专用NIC卡(例如,智能NIC卡)为多服务器机箱中的每个服务器设备建立网络连接的做法会造成浪费,且极不方便。优选的是让单个设备为多个服务器设备建立网络连接。本系统利用PCI主机设备来实现这一点。
图2显示了托管多个GPU的图形处理单元(GPU)主板。
GPU主板250包括中央处理单元(CPU)252、网络接口254、根复合体253、PCIe交换机232和234以及电源258。与图1中的NIC卡不同,GPU主板250是有源器件,电源258向主板250上的实体供电。与网络接口154/156类似,网络接口254耦合到网络交换机272,网络交换机272转发网络接口254和通信网络290之间的流量。
根复合体253连接到PCIe交换机232和234,GPU 202和212通电并插入对应于PCIe交换机232和234的PCIe插槽(也称为插座)后,PCIe交换机232和234分别连接到GPU 202和212。GPU 202和212插入到GPU主板250的PCIe插槽后,GPU 202和212均可以注册为GPU主板250的PCI板卡,并且成为与根复合体253连接的PCIe终端(分别为PCIe终端203和213)。这些GPU可以作为CPU 252的协处理器运行,以执行CPU 252分配的任务。
诸如GPU主板250之类的GPU主板已被用于在加密货币应用中构建矿机。由于计算目标比较单一,并且可以由充当主处理器并使用GPU 202和212作为协处理器的CPU 252有效地管理,这些GPU主板在加密货币挖矿中的应用是有效的。CPU 252作为主处理器执行以下功能:确定要执行的任务,执行某些任务,并在需要时将其他任务分配给作为协处理器的GPU 202和212(该分配可被称为负载共享/平衡)。GPU 202和212专用于执行所分配的任务,并将执行结果传输给主处理器。
然而,GPU主板250配置不适用于其他功能,例如在服务器机箱中托管服务器设备,因为在该配置中,服务器设备需要执行各种任务。例如,对于托管服务,由于云服务提供商的客户端租用服务器设备的计算资源,服务器设备需要为该客户端执行各种任务。由于GPU202和212作为CPU 252的协处理器(而不是提供服务的主处理器)运行,其功能会受到限制。此外,出于安全目的,在不了解机箱中任何其他设备的情况下,一些操作最好在隔离的服务器设备上运行,例如GPU主板250配置中的CPU。在CPU 252作为主处理器运行的情况下,不可能将GPU 202和212上的数据包处理与GPU主板250上的处理隔离,并且也不可能将GPU 202和212上的数据包处理保持在云服务提供商(其将控制诸如GPU主板250之类的主机设备)的权限之外。
换句话说,对于云计算,服务器设备最好是客户端的主处理器。此外,具有隔离服务器的能力非常有利。图2中的配置将GPU 202和212作为GPU主板250的协处理器,该配置在聚合来自多个服务器设备的用于云计算的流量时效果不佳。
图3是根据一些实施例实现托管多个服务器设备的PCI主机设备的设备图示。可以使用机柜355。机柜355内可以包括PCI主机设备350、一个或多个服务器设备302以及一个或多个可选总线扩展器342(例如,总线扩展卡/装置)。
例如,机柜355可以是服务器机箱或服务器机柜。
每个服务器设备302均可以是刀锋服务器(也称为服务器刀锋或服务器单元),其模块化设计经过优化以最大限度地减少物理空间和能量的使用。在替代实施例中,服务器设备302也可以是机柜355外部的机架式服务器或塔式服务器(例如,服务器设备302可以单独封装,或者安装在没有机柜(封装多个服务器设备302)的服务器机架上)。
每个服务器设备302可以包括:一个或多个专用处理器或处理单元、一个或多个存储器、一个或多个输入/输出设备和/或一般计算设备的其他组件。每个服务器设备包括一个或多个边沿连接器,以将服务器设备302耦合到PCI主机设备350。PCI主机设备350可以将来自多个服务器设备302的流量聚合到网络交换机372,网络交换机372又将流量转发到通信网络,类似于上述网络交换机172/174。
PCI主机设备350包括处理电路352、网络接口354、多个PCI接口332、电源358和存储器359,在一些实施例中,以上这些元件都可以集成到主板上。在一些实施例中,PCI主机设备350可以具有与服务器设备相同或相似的架构。PCI主机设备也可以称为PCI主机板卡,并且当实施特定PCI协议时,可以使用该协议来引用它,例如PCIe主机设备/板卡。
在一些实施例中,多个PCI接口332中的一些或全部包括主板上的PCI插槽。PCI接口的数量可以是2的倍数,例如4、8、16或32。网络接口354可以包括多个物理接口,每个物理接口提供一些带宽,并且在一些实施例中,每个物理接口提供10、25、100Gbps的带宽或其他带宽。每个物理接口可以耦合到网络交换机374的不同网络交换机插槽或另一个网络交换机(未示出)。
网络接口354可以通过一个或多个连接器362连接到网络交换机374或另一个网络交换机。每个连接器362可以是小型可插拔式(SFP)收发器、四通道SFP收发器(QSFP)、八通道SFP(OSFP)收发器或其他类型的收发器。这组连接器362中的每一个都可以通过光缆或同轴电缆连接到网络交换机372。
虽然将网络交换机372用作服务器设备302通过其连接到通信网络的设备的示例,但是诸如一个或多个网络路由器之类的其他网络设备也可以被替换地或附加地用于向或从服务器设备302转发数据包。
在一些实施例中,多个PCI接口332中的一些或全部彼此隔离,以便对来自一个服务器设备的数据包与来自另一个服务器设备的数据包分开处理。因此,在这些实施例中,服务器设备302中的一个服务器设备无权访问由另一个服务器设备生成的数据包。可以在PCI主机设备350处处理数据包,但是服务器设备可以对数据包添加加密,使得PCI主机设备350不能读取数据包的内容。
在一个实施例中,来自服务器设备302的每个服务器设备将PCI主机设备350作为专用于该服务器设备的PCI板卡,并且该服务器设备不知道可能存在其他服务器设备也将PCI主机设备350作为它们的专用PCI板卡。
在PCI主机设备350处对来自不同服务器设备的数据包进行隔离,提供了对云服务提供商客户端的隐私/安全保护,并且该隔离可以通过隔离主板上的PCI插槽来实现。另外,PCI主机设备350可以配置PCI插槽,使得耦合到一个PCI插槽的服务器设备不能通过PCI主机设备350上的PCI总线访问来自耦合到另一个PCI插槽的服务器设备的数据包。
多个PCI接口332中的每个PCI接口被设计成将服务器设备302中的一个服务器设备耦合到PCI主机设备350。例如,第一和第二服务器设备耦合到PCI主机设备后,通过第一PCI接口将PCI主机设备注册为第一服务器设备的第一PCI板卡,并且通过第二PCI接口将PCI主机设备注册为第二服务器设备的第二PCI板卡。关于注册过程实施例的更多细节将在下文中进行讨论。在一个实施例中,当服务器设备302耦合到PCI主机设备350的PCI接口332时,PCI接口被激活,并且PCI主机设备350被注册为服务器设备的PCI终端。
PCI主机设备350被设计成在网络接口354和第一服务器设备之间以及网络接口354和第二服务器设备之间转发数据包。
可以通过将服务器设备直接插入PCI主机设备350的PCIe插槽中来进行服务器设备到PCI主机设备350的耦合,或者当服务器设备离PCI主机设备350太远时,可以将服务器设备连接到总线扩展器342,然后将总线扩展器342连接到PCI主机设备350的PCIe插槽。可以将总线扩展器342连接到多个服务器设备302中的一个服务器设备的PCIe插槽。在一些实施例中,可能会使用PCIe适配器来连接服务器设备和PCI主机设备350,以解决服务器设备和PCI主机设备350之间的物理接口兼容性问题。
PCI主机设备350被注册为服务器设备的PCI板卡后,多个PCI接口332中的每个PCI接口均可以仿真服务器设备302中的一个服务器设备上的一个或多个虚拟PCI接口。因为PCI接口实际上并不在服务器设备上,所以虚拟接口是虚拟的,但是服务器设备将PCI主机设备350上的PCI接口作为服务器设备上的一个或多个以太网端口(每个虚拟接口对应于一个以太网端口),并且PCI主机设备350被作为每个服务器设备上的一个或多个终端(每个终端对应于一个虚拟接口)。基于单个PCI接口的多个虚拟接口的仿真可以通过在PCI主机设备350上执行软件以将来自服务器设备的数据包分发到多个虚拟接口来实现。在一个实施例中,通过单个PCI接口对多个虚拟接口的仿真可以使用由单个PCI接口提供的一个或多个虚拟缓冲区或一个或多个虚拟功能(VF)或物理功能(PF)来进行。
在一个实施例中,PCI主机设备350通过处理电路352在网络接口354和第一/第二服务器设备之间转发数据包。处理电路352可以是中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他类型的处理单元。
处理电路352可以提供基本的数据包转发以及增强的数据包处理功能/服务。增强的数据包处理功能/服务可能包括以下一个或多个功能/服务:防火墙、网络访问控制列表(ACL)、直接存储器访问(DMA)和远程DMA(RDMA)、计量、非易失性内存主机控制器接口规范(NVMe)、加密和/或服务质量(QoS)控制。在一些实施例中,增强的数据包处理功能可以是可用的,并且可以基于每个PCI接口来执行。
处理电路352可以在向服务器设备呈现虚拟接口之前启动PCI主机设备350上的PCI接口资源。要启动的PCI接口资源包括以下部分或全部:
·用于存储数据包/处理信息:多个数据包缓冲区、多个队列、存储器(例如RAM)大小或高速缓存大小;
·用于数据包处理:多个处理核心/集群/线程;和
·用于管理:与PCI接口相关的命名空间。
当PCI接口被激活时,处理电路352可以跨PCI接口处理数据包,并且可以将PCI主机设备350的物理或逻辑资源(例如,所述PCI接口资源和PCI主机设备的输入/输出设备)分配给耦合到服务器设备的每个PCI接口。
例如,处理电路352可以将存储器359的部分区域分配给第一服务器设备,将存储器359的部分独立区域分配给第二服务器设备,并且两个服务器设备都不被授权访问分配给另一服务器设备的存储器区域。在一个实施例中,处理电路352可以实施服务器设备302之间的隔离。
注意,存储器359仅仅是PCI主机设备350上的存储设备示例,并且PCI主机设备350可以包括其他存储设备,这些存储设备可以包括任何设备可读介质,例如机器可读存储介质(例如,磁盘、光盘、固态硬盘、只读存储器(ROM)、闪存设备、相变存储器)和机器可读传输介质(也称为载体)(例如,电、光、无线电、声或其他形式的传播信号,例如载波、红外信号)。PCI主机设备350可以包括非易失性(非暂时性)存储器,其中包含用于PCI主机设备350执行任务的代码(其由软件指令组成,并且有时被称为计算机程序代码或计算机程序),因为即使在PCI主机设备350关闭时(当电源断开时),代码/数据也可以保存在非易失性存储器中。开启PCI主机设备350后,将由处理电路352执行的那部分代码通常从较慢的非易失性存储器复制到PCI主机设备350的易失性存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))。机器可读存储介质可以包括执行此处所述操作的指令。
本发明的实施例不限于PCI协议的特定变体,本专利说明书中使用PCIe作为示例来解释实现细节。诸如PCI extended(PCI-X)之类的其他PCI协议变体也可以与诸如PCI主机设备350之类的PCI主机设备一起使用,以聚合来自多个服务器设备的流量。此外,在行业内有多个PCIe使用版本,包括PCIe版本1.0到6.0,并且本发明的实施例可以使用标准的当前和/或未来版本来实现。此外,可以使用现在已知或之后引入的替代标准。
注意,与图2相比,GPU 202和212被注册为GPU主板250的PCI板卡,并且CPU 252将任务(例如,数据包处理)委派给GPU 202和212,PCI主机设备350是服务器设备302的PCI板卡,并且处理电路352为服务器设备302处理数据包。通过这种配置,服务器设备302可以为客户端执行各种任务。在一个实施例中,服务器设备302可以将任务委派给处理电路352。因此,图3中的配置克服了上述GPU主板250配置的不足。
与图1中的NIC卡150/152相比,PCI主机设备350可以为多个服务器设备转发数据包(而不是每个NIC卡只能为一个服务器设备转发数据包)。此外,凭借处理电路352提供增强的数据包处理功能,PCI主机设备350可以提供更好的管理能力来支持一组独立的服务器设备302。这对云服务提供商尤其有用。
此外,PCI主机设备350是一个具有自带电源358的有源器件,它独立于服务器设备302向PCI接口332供电。因此,PCI主机设备350上PCI接口332的功耗可能超过PCI标准的限制。
图4示出了根据一些实施例托管多个服务器设备的PCI主机设备。在一个实施例中,所用协议基于一些实施例中的PCIe协议。系统400包括PCI主机设备(PHD)450、网络交换机472和通信网络490。PCI主机设备(PHD)450包括处理电路452、网络接口454和电源458。网络接口454耦合到网络交换机472,网络交换机472又耦合到通信网络490。
如上所述,PCIe协议使用点对点链路进行通信,根联合体则通过PCIe交换机和端点协调处理器和相应存储器的事务。在一些实施例中,一旦PCI主机设备450耦合到服务器设备上,PCI主机设备450上的每个PCI接口或PCIe端点432、434、436、439就可注册为服务器设备402、412、422的PCIe端点,而服务器设备402、412、422可耦合到PCI主机设备450上。该耦合使得PCI主机设备450可启动服务器设备中的驱动程序软件,然后执行该驱动程序软件,以激活作为服务器设备PCIe端点的PCI主机设备450。
在图4所示的示例中,服务器设备402包括根联合体404和PCIe交换机406,并且PCI主机设备450上的PCI接口可注册为服务器设备402的端点。
PCIe端点432向服务器设备402提供虚拟接口,并且服务器设备402将PCI主机设备450视为专用PCI板。服务器设备402和PCIe端点432将纳入隔离域462中,该隔离域462与其他服务器设备及其相应端点分离。隔离域462中的分组对于隔离域之外的其他服务器设备而言是不可用的(例如,用于访问/检查)。在一些实施例中,单个隔离域中可含有一个以上的PCIe端点(例如,参见隔离域464),并且PCI主机设备450还可以在多个隔离域之间交换分组。请注意,在一个实施例中,每个PCIe端点会被默认设置为隔离域,该隔离域与另一个PCIe端点分离,但是,PCI主机设备450可以将多个PCIe端点配置在同一隔离域内。
在一个实施例中,PCI主机设备可以为单个服务器设备模拟两个或更多个端点。例如,如图5所示,PCI主机设备450可以将其自身注册为服务器设备412的两个PCIe端点434和436。在该示例中,两个PCIe端点434和436分别耦合到服务器设备412中的PCIe交换机416和418上。在一个实施例中,服务器设备412和相应的PCIe端点434/436将纳入隔离域464中。
PCI主机设备可以通过总线扩展器或PCIe适配器耦合到服务器设备上。例如,一旦PCI主机设备450通过总线扩展器442耦合到服务器设备422上,PCI主机设备450就可将其自身注册为服务器设备422上的PCIe端点439。在一个实施例中,服务器设备422、相应的总线扩展器442和PCIe端点439将纳入隔离域466中。
请注意,多个总线扩展器可使服务器设备耦合到PCIe主机设备上。例如,一个总线扩展器可以将服务器设备412耦合到第一PCIe插槽(PCIe端点434)上,而另一个总线扩展器可以将服务器设备412耦合到另一个PCIe插槽(PCIe端点436)上。
PCI主机设备450还包括存储器459和电源458。可选地,PCI主机设备450包括独立的硬件电路和/或软件模块,PCI主机设备(PHD)服务模块456,以便向处理电路452提供一个或多个服务,从而处理往返于多个服务器设备402、412和422的分组。在一个实施例中,可将模块456纳入处理电路452内。附加地或替代地,服务模块456可置于处理单元外部的独立系统中。在一些实施例中,存储器459可以耦合到处理电路452,并且处理电路452可以将存储器459的不同区域分配给不同的服务器设备。电源458将独立于服务器设备402、412和422向PCIe端点432至439供电。
在一个实施例中,当服务器设备耦合到PCI主机设备450上并与之解耦时,PCI主机设备450可以动态地将资源分配给服务器设备。例如,一旦PCI主机设备耦合到服务器设备并注册为服务器设备上的PCI板,PCI主机设备就可以将其物理和/或逻辑资源分配给服务器设备。然后,物理或逻辑资源可用于处理往返于服务器设备的分组。当从服务器设备上移除PCI主机设备时,即可释放所分配的物理或逻辑资源。
另一个服务器设备可以通过PCI接口耦合到PCI主机设备上,并且一旦PCI主机设备在新的服务器设备中被注册为PCI板,PCI主机设备就可以向PCI接口分配相同或不同的物理或逻辑资源,以处理往返于新服务器设备的分组。
图5示出了根据一些实施例的PCI主机设备的动态资源分配。图5类似于图4,相同的附图标号表示具有相同或相似功能的元件或组件。如图5中标号502所示,将服务器设备402从PCI主机设备450之上移除(例如,服务器设备402与PCI主机设备450的PCIe端点432断开连接)。
一旦服务器设备402被移除,PCI主机设备450上分配给服务器设备402使用的PCIe端点432的物理/逻辑资源即被释放。其他服务器设备可通过对应于PCIe端点432的PCI接口耦合到PCI主机设备450上。在该示例中,服务器设备412耦合到PCI接口,然后PCI主机设备450被注册为服务器设备412的PCIe端点432。PCI主机设备450为端点432分配PCI主机设备450上的物理/逻辑资源,端点432当前归属于服务器设备412的已更新隔离域,该隔离域当前可称为隔离域564。
例如,当PCIe端点432位于隔离域462之内时,可以将PCI主机设备450中的专用存储器区域分配给服务器设备402,并且将服务器设备402从PCI主机设备450之上移除后,该专用存储器区域即被释放。
随后,当向服务器设备412注册PCIe端点432并令其成为隔离域462的一部分时,可将已释放的存储器区域分配给服务器设备412。
请注意,PCIe端点432和434均连接到同一个PCIe交换机416上。也就是说,PCI主机设备450可以模拟服务器设备的两个或更多个PCIe端点。在一个实施例中,服务器设备消耗/接管PCI主机设备450上的两个或多个相应的PCI接口(例如,运行一个或多个PCI接口扩展器,分别用于PCI接口)。
当从PCI主机设备之上移除服务器设备时,其资源即被释放(例如,释放到资源池),并且可将该存储器和其他非物理资源分配给剩余的其中一个服务器设备,而不需要将额外的PCIe端点耦合到剩余的服务器设备上。
图6示出了向服务器设备提供服务的PCI主机设备其中一个实施例的信号图。在一些实施例中,PCI主机设备(PHD)包括PCI主机设备350或450。图6中示出了PCI主机设备的几个功能组件,包括PCI主机设备处理电路652、PCI主机设备服务656(例如,虚拟可扩展局域网(VxLAN))、PCI主机设备服务657(例如,加密)和PCI主机设备服务网络接口654。这些组件的功能与具有相似标号的组件相同或相似,如PCI主机设备处理电路352/452、PCI主机设备服务456和网络接口454。
在一些实施例中,该系统可以包括附加服务,例如防火墙、DMA和ACL(如上所述),以及可选的其他服务。
在标号602处,可耦合服务器设备642和PCI主机设备。该耦合可通过使服务器设备642通电并将其插入到PCI主机设备的插槽中来执行。然后,由PCI主机设备处理电路652检测到服务器设备642。在标号604处,PCI主机设备处理电路652为服务器设备642分配PCI主机设备的物理和逻辑资源。在将这些资源分配给服务器设备642之前,可以优先根据服务器设备642,通过其耦合的对应PCI接口(例如,PCI插槽)来启动这些资源。该资源可包括存储器和其他资源。在一个实施例中,标号604处的PHD处理电路还为服务器设备642创建了隔离域。
接着,在标号606处,PCI主机设备处理电路652可在服务器设备642处注册PCI主机设备。注册期间,PCI主机设备处理电路652可以识别服务器设备上的驱动软件,并开始执行驱动软件,以激活作为服务器设备642的PCIe端点的PCI主机设备。
一旦将PCI主机设备注册为PCIe端点,即可模拟服务器设备642上的PCI接口(虚拟接口),并且在标号608处,可在服务器设备642和PCI主机设备之间传输分组。PCI主机设备处理电路652为PCI主机设备处理往返于服务器设备642的分组。
类似地,在标号622处,可以耦合服务器设备644和PCI主机设备,在标号626处,可在服务器设备644处注册PCIe端点,并且在标号628处,可以在服务器设备644和PCI主机设备之间传输分组。在一些实施例中,每个服务器设备均可分配一个独立的隔离域,使得一个服务器设备(在PCI级别上)的分组不会暴露于另一个服务器设备。
PCI主机设备处理电路652可以为服务器设备的分组提供一个或多个服务。每个服务均可使用单独的硬件电路和/或软件模块(例如,服务模块456/656/657)进行实现。在标号609处,来自服务器设备642的分组被转发给服务模块656。
在标号629处,来自服务器设备644的分组被转发给同一服务模块656。在标号625处,服务656可处理来自不同服务器设备的分组。例如,当通过服务模块656提供VxLAN服务时,VxLAN分组报头将基于源服务器设备被封装在已接收的分组上——可将不同的服务器设备分配给不同的VxLAN网络标识符(VNIs)。可将来自服务器设备的分组(例如,事务层分组(TLP))封装为带有VNI(已分配给服务器设备)的VxLAN分组,并转发给网络接口654。因为来自不同服务器设备的分组具有标识其源服务器设备的VNI,所以,这些分组可以在标号660处集合并转发至网络接口654,并且可以基于不同服务器设备的需求单独处理这些分组。
类似地,可以通过服务模块657进行加密,并且可以使用不同的加密机制和/或密钥(对称密钥、非对称密钥对或其他类型的加密)来加密来自不同服务器设备的分组。不同的加密机制使得每个服务器设备均能保持自身的隐私,这些隐私将与PCI主机设备托管的其他服务器设备分开。
可以通过所示的服务或其他服务(例如,诸如ACL、DMA、计量、NVMe、QoS控制等高级分组处理特征/服务)来处理来自服务器设备642和644的分组。在标号662处,已处理的分组随后会通过网络接口654转发给通信网络。尽管未示出,但由网络接口654接收的分组可通过服务656/657进行处理,然后转发给适当的目标服务器设备,其中,在一个实施例中,PCI主机设备的适当部分基于分组报头(例如,上面讨论的VNI)、加密密钥或其他信息来识别每个分组的目标服务器设备。
图7是一张流程图表,它示出了根据一些实施例由PCI主机设备托管多个服务器设备的方法操作。方法700可由PCI主机设备(比如PCI主机设备350或450)来执行。在一些实施例中,该方法可由处理电路(比如PCI主机设备上的处理电路352或452)来执行。
在标号702处,PCI主机设备的多个组件互连(PCI)接口可耦合到多个服务器设备上。在一个实施例中,每个PCI接口均可耦合到服务器设备上,因此,PCI主机设备可耦合到多个服务器设备上。
如上所述,在一些实施例中,单个服务器设备可以耦合到多个PCI接口上。上面讨论了PCI接口耦合到多个服务器设备的情况。
在标号704处,一旦第一和第二服务器设备耦合到PCI主机设备上,PCI主机设备就可通过第一PCI接口注册为第一服务器设备的第一PCI板,并且通过第二PCI接口注册为第二服务器设备的第二PCI板。请注意,尽管这里讨论了两个服务器设备,但是,在一个实施例中,真正实操时可以应用一到十个服务器设备,并且这些服务器设备可耦合到具有两到十五个PCIe端点的单个PCI主机设备上。
在标号706处,可以独立于相关联的服务器设备,向已被占用的PCI接口供电。在一些实施例中,电源(比如电源358和458)可以向PCI接口供电。请注意,电源也可以不向未被占用的PCI接口(例如,未使用的PCIe插槽)供电,以节省电力。
在标号708处,在网络接口和第一服务器设备之间以及网络接口和第二服务器设备之间转发分组。上面讨论了分组转发的一个实施例。
在一些实施例中,第一和第二PCI板中的每个PCI板均是PCI express(PCIe)板,并且PCI主机设备将其自身注册为第一服务器设备和第二服务器设备的端点。
在一些实施例中,当第一服务器设备耦合到PCI主机设备上时,PCI主机设备中的第一专用存储器区域将被分配给第一服务器设备,并且当第二服务器设备耦合到PCI主机设备上时,PCI主机设备中的第二专用存储器区域将被分配给第二服务器设备。
在一些实施例中,多个PCI接口还包括第三PCI接口,其中,PCI主机设备被注册为第二服务器设备的附加端点,如图4所示。在一些实施例中,该端点将耦合到第二服务器设备的独立PCIe交换机之上,如图5所示。
在一些实施例中,在第一服务器设备中执行相应的驱动软件时,PCI主机设备被激活为第一服务器设备的端点,如上所述。
在一些实施例中,当第一服务器设备耦合到PCI主机设备上时,PCI主机设备中的第一专用存储器区域将被分配给第一服务器设备,并且当第二服务器设备耦合到PCI主机设备上时,PCI主机设备中的第二专用存储器区域将被分配给第二服务器设备。将第一服务器设备从PCI主机设备之上移除时,PCI主机设备中的第一专用存储器区域被释放。在一个实施例中,该存储器区域可被分配给另一个服务器设备,如上所述。
在一些实施例中,PCI主机设备包括主板,并且多个PCI接口中的每个接口均有主板上的PCI插槽。在一些实施例中,每个PCI插槽与主板上的另一个PCI插槽物理隔离。
在一些实施例中,PCI主机设备包括总线扩展器,该总线扩展器可耦合PCI主机设备中的第三PCI接口,其中,总线扩展器被设计成与服务器设备连接。PCI主机设备被注册为第三服务器设备的第三PCI板。在一些实施例中,总线扩展器是指总线扩展器342或442。
在一些实施例中,PCI主机设备通过第一PCI接口模拟第一服务器设备的第一以太网端口,并通过第二PCI接口模拟第二服务器设备的第二以太网端口。
在一些实施例中,第一和第二服务器设备中的每个服务器设备均为刀片服务器或机架式服务器,如上所述。
在一些实施例中,转发分组包括使用分配给第一服务器设备的第一虚拟可扩展局域网(VxLAN)分组报头封装来自第一服务器设备的分组,以及使用分配给第二服务器设备的第二VxLAN分组报头封装来自第二服务器设备的分组。在一些实施例中,转发分组包括使用分配给第一服务器设备的第一加密密钥加密来自第一服务器设备的分组,以及使用分配给第二服务器设备的第二加密密钥加密来自第二服务器设备的分组。对于当前已知或以后发明的其他类型的分组处理,可在分组被转发至网络之前应用于来自其他服务器的分组,以及应用于来自网络并去往该服务器的分组。上面讨论了一些分组处理过程。
对于本领域的普通技术人员来说,显而易见的是,这里描述的系统、方法和过程可以作为存储于PCI主机设备上存储器(比如存储器359或459)中的软件来实现。该控制逻辑或软件也可置于带有计算机可读介质的产品上,该计算机可读介质具有内嵌的计算机可读程序代码,并且可由存储器读取,其处理电路(比如PCI主机设备上的处理电路352或452)可根据这里的教学方法进行操作。
本领域普通技术人员将理解,根据特定的实现情况,可以使用作为计算机系统来实现的特定机器的任何配置,例如PCI主机设备。用于实现本发明的控制逻辑或软件可以存储在任何机器可读介质上,该介质可由处理电路(比如PCI主机设备上的处理电路352或452)本地或远程访问。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存或可用于临时或永久数据存储的其他存储介质。在一个实施例中,控制逻辑可作为可传输数据来实现,例如电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)。
在上述技术规范中,已参照本发明的具体示例性实施例对本发明作出了描述。很明显,在不脱离所附权利要求中阐述的本发明的更广泛的精神和范围内,可以进行各种修改和变更。因此,说明书和附图仅用于说明,不具有强制性。
Claims (20)
1.一种外围组件互连(PCI)主机设备,包括:网络接口,用于将PCI主机设备耦合到网络上;
多个PCI接口,
每个PCI接口均被设计成可耦合到多个服务器设备的其中一个服务器设备上,以及一旦第一和第二服务器设备耦合到PCI主机设备上,PCI主机设备就可通过第一PCI接口注册为第一服务器设备的第一PCI板,并且通过第二PCI接口注册为第二服务器设备的第二PCI板,并且
PCI主机设备被设计成可在网络接口和第一服务器设备之间以及网络接口和第二服务器设备之间转发分组;
一个处理电路,用于转发分组;和
一个电源,该电源将独立于多个服务器设备向多个PCI接口供电。
2.根据权利要求1所述的PCI主机设备,其中第一和第二PCI板中的每个PCI板均是PCIexpress(PCIe)板,并且PCI主机设备被注册作为第一服务器设备和第二服务器设备的端点。
3.根据权利要求2所述的PCI主机设备,其中多个PCI接口还包括第三PCI接口,其中PCI主机设备被注册作为第二服务器设备的附加端点。
4.根据权利要求3所述的PCI主机设备,其中端点将耦合到第二服务器设备的独立PCIe交换机上。
5.根据权利要求2所述的PCI主机设备,其中,当在第一服务器设备上执行相应的驱动软件时,PCI主机设备将被激活作为第一服务器设备的端点。
6.根据权利要求1所述的PCI主机设备,其中,当第一服务器设备耦合到PCI主机设备上时,PCI主机设备中的第一专用存储区域将被分配给第一服务器设备,并且当第二服务器设备耦合到PCI主机设备上时,PCI主机设备中的第二专用存储区域将被分配给第二服务器设备。
7.根据权利要求6所述的PCI主机设备,其中,当第一服务器设备从PCI主机设备解耦合时,PCI主机设备中的第一专用存储器区域将被释放,随后被分配给另一服务器设备。
8.根据权利要求1所述的PCI主机设备,其中,转发分组包括使用分配给第一服务器设备的第一虚拟可扩展局域网(VxLAN)分组报头封装来自第一服务器设备的分组,以及使用分配给第二服务器设备的第二VxLAN分组报头封装来自第二服务器设备的分组。
9.根据权利要求1所述的PCI主机设备,其中,转发分组包括使用分配给第一服务器设备的第一加密密钥加密来自第一服务器设备的分组,并使用分配给第二服务器设备的第二加密密钥加密来自第二服务器设备的分组。
10.根据权利要求1所述的PCI主机设备,其中,网络接口包括一个端口,该端口被设计成可连接小型可插拔(SFP)收发器、四通道SFP收发器(QSFP)或八通道SFP(OSFP)收发器。
11.根据权利要求1所述的PCI主机设备,其中PCI主机设备包括一个主板,并且,多个PCI接口中的每个PCI接口均包括主板上的PCI插槽。
12.根据权利要求11所述的PCI主机设备,其中,每个PCI插槽与主板上的另一个PCI插槽隔离。
13.权利要求1所述的PCI主机设备还包括:
一个总线扩展器,用于耦合PCI主机设备中的第三PCI接口,其中,总线扩展器被设计成可连接第三服务器设备,并且,其中所述PCI主机设备被注册为第三服务器设备的第三PCI板。
14.根据权利要求1所述的PCI主机设备,其中PCI主机设备通过第一PCI接口模拟第一服务器设备的第一以太网端口,并通过第二PCI接口模拟第二服务器设备的第二以太网端口。
15.根据权利要求1所述的PCI主机设备,其中第一和第二服务器设备中的每个服务器设备均是刀片服务器或机架式服务器。
16.一种托管多个服务器设备的方法,包括:
将PCI主机设备的多个组件互连(PCI)接口耦合到多个服务器设备上,每个PCI接口被设计成可耦合多个服务器设备中的一个服务器设备;
一旦第一和第二服务器设备耦合到PCI主机设备上,PCI主机设备就可通过第一PCI接口注册为第一服务器设备的第一PCI板,并且通过第二PCI接口注册为第二服务器设备的第二PCI板;
独立于多个服务器设备向多个PCI接口供电;和
所述PCI主机设备在网络接口和第一服务器设备之间以及网络接口和第二服务器设备之间转发分组。
17.根据权利要求16所述的方法,其中所述第一和第二PCI板中的每个PCI板均是PCIexpress(PCIe)板,并且PCI主机设备将其自身注册为第一服务器设备和第二服务器设备的端点。
18.根据权利要求16所述的方法,其中,当第一服务器设备耦合到PCI主机设备上时,PCI主机设备中的第一专用存储器区域将被分配给第一服务器设备,并且当第二服务器设备耦合到PCI主机设备上时,PCI主机设备中的第二专用存储器区域将被分配给第二服务器设备。
19.根据权利要求16所述的方法,其中,转发分组包括使用分配给第一服务器设备的第一虚拟可扩展局域网(VxLAN)分组报头封装来自第一服务器设备的分组,以及使用分配给第二服务器设备的第二VxLAN分组报头封装来自第二服务器设备的分组。
20.根据权利要求16所述的方法,其中,转发分组包括使用分配给第一服务器设备的第一加密密钥加密来自第一服务器设备的分组,并使用分配给第二服务器设备的第二加密密钥加密来自第二服务器设备的分组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/316,710 | 2021-05-10 | ||
US17/316,710 US11714775B2 (en) | 2021-05-10 | 2021-05-10 | Peripheral component interconnect (PCI) hosting device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115361255A CN115361255A (zh) | 2022-11-18 |
CN115361255B true CN115361255B (zh) | 2024-01-23 |
Family
ID=83900420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210488860.9A Active CN115361255B (zh) | 2021-05-10 | 2022-05-06 | 外设组件互连(pci)主机设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11714775B2 (zh) |
CN (1) | CN115361255B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103703B1 (en) * | 2004-06-14 | 2006-09-05 | Advanced Micro Devices, Inc. | Back to back connection of PCI host bridges on a single PCI bus |
CN110941576A (zh) * | 2018-09-21 | 2020-03-31 | 苏州库瀚信息科技有限公司 | 具有多模pcie功能的存储控制器的系统、方法和设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9264384B1 (en) * | 2004-07-22 | 2016-02-16 | Oracle International Corporation | Resource virtualization mechanism including virtual host bus adapters |
US7480303B1 (en) * | 2005-05-16 | 2009-01-20 | Pericom Semiconductor Corp. | Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports |
US7525957B2 (en) * | 2005-09-01 | 2009-04-28 | Emulex Design & Manufacturing Corporation | Input/output router for storage networks |
JP5272265B2 (ja) * | 2008-09-29 | 2013-08-28 | 株式会社日立製作所 | Pciデバイス共有方法 |
US20120005392A1 (en) * | 2009-01-23 | 2012-01-05 | Hitachi, Ltd. | Information processing system |
RU2584449C2 (ru) * | 2011-03-23 | 2016-05-20 | Нек Корпорейшн | Система управления связью, коммутационный узел и способ управления связью |
CN104054309A (zh) * | 2011-11-04 | 2014-09-17 | 派克设计公司 | 在网络边缘有效使用数据包缓冲和带宽资源的设备 |
CN104580011B (zh) * | 2013-10-23 | 2017-12-15 | 新华三技术有限公司 | 一种数据转发装置和方法 |
US9223734B2 (en) * | 2013-12-13 | 2015-12-29 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Switch with synthetic device capability |
US9842075B1 (en) | 2014-09-12 | 2017-12-12 | Amazon Technologies, Inc. | Presenting multiple endpoints from an enhanced PCI express endpoint device |
US9710421B2 (en) | 2014-12-12 | 2017-07-18 | Intel Corporation | Peripheral component interconnect express (PCIe) card having multiple PCIe connectors |
US10055379B2 (en) * | 2015-07-10 | 2018-08-21 | SK Hynix Inc. | Peripheral component interconnect express card |
US10467165B2 (en) * | 2016-01-11 | 2019-11-05 | Hewlett-Packard Development Company, L.P. | USB-C port connections based on multi-level straps |
CN105721357B (zh) | 2016-01-13 | 2019-09-03 | 华为技术有限公司 | 交换设备、外围部件互连高速系统及其初始化方法 |
US10140238B2 (en) | 2016-03-14 | 2018-11-27 | Dell Products L.P. | Open compute project network card converted to PCIe riser |
US10089028B2 (en) * | 2016-05-27 | 2018-10-02 | Dell Products L.P. | Remote secure drive discovery and access |
CN110088732B (zh) * | 2016-12-19 | 2021-08-20 | 华为技术有限公司 | 一种数据包处理方法、主机和系统 |
US20190068466A1 (en) | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US11249779B2 (en) | 2017-09-01 | 2022-02-15 | Intel Corporation | Accelerator interconnect assignments for virtual environments |
US11726835B2 (en) * | 2019-05-12 | 2023-08-15 | Apple Inc. | Systems and methods for PCI load balancing |
CN211062041U (zh) | 2020-02-27 | 2020-07-21 | 山东超越数控电子股份有限公司 | 一种基于pcie交换的多单元服务器 |
-
2021
- 2021-05-10 US US17/316,710 patent/US11714775B2/en active Active
-
2022
- 2022-05-06 CN CN202210488860.9A patent/CN115361255B/zh active Active
-
2023
- 2023-06-12 US US18/333,293 patent/US20230409507A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103703B1 (en) * | 2004-06-14 | 2006-09-05 | Advanced Micro Devices, Inc. | Back to back connection of PCI host bridges on a single PCI bus |
CN110941576A (zh) * | 2018-09-21 | 2020-03-31 | 苏州库瀚信息科技有限公司 | 具有多模pcie功能的存储控制器的系统、方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US20220358073A1 (en) | 2022-11-10 |
US11714775B2 (en) | 2023-08-01 |
CN115361255A (zh) | 2022-11-18 |
US20230409507A1 (en) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3556081B1 (en) | Reconfigurable server | |
US10997106B1 (en) | Inter-smartNIC virtual-link for control and datapath connectivity | |
US11372802B2 (en) | Virtual RDMA switching for containerized applications | |
US10521273B2 (en) | Physical partitioning of computing resources for server virtualization | |
CN109076029B (zh) | 用于非统一网络输入/输出访问加速的方法和装置 | |
US10333865B2 (en) | Transformation of peripheral component interconnect express compliant virtual devices in a network environment | |
US8271604B2 (en) | Initializing shared memories for sharing endpoints across a plurality of root complexes | |
US7991839B2 (en) | Communication between host systems using a socket connection and shared memories | |
US7860930B2 (en) | Communication between host systems using a transaction protocol and shared memories | |
US9934057B2 (en) | Shadow VNICs for the control and observability of IO virtual functions | |
US9154451B2 (en) | Systems and methods for sharing devices in a virtualization environment | |
US11372787B2 (en) | Unified address space for multiple links | |
US9864606B2 (en) | Methods for configurable hardware logic device reloading and devices thereof | |
CN114077478A (zh) | 管理虚拟化环境中的网络端口 | |
US10911405B1 (en) | Secure environment on a server | |
CN106557444B (zh) | 实现sr-iov网卡的方法和装置、实现动态迁移的方法和装置 | |
CN114745341A (zh) | 应用级网络排队 | |
CA3167334C (en) | Zero packet loss upgrade of an io device | |
CN112416737A (zh) | 一种容器的测试方法、装置、设备和存储介质 | |
WO2020000401A1 (en) | Transparent Encryption | |
CN104219061B (zh) | 请求功耗状态变化的方法及装置 | |
US11561916B2 (en) | Processing task deployment in adapter devices and accelerators | |
CN115361255B (zh) | 外设组件互连(pci)主机设备 | |
WO2023141418A1 (en) | Local instantiation of remote peripheral devices | |
US8555368B2 (en) | Firewall filtering using network controller circuitry |
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 |