CN105025070A - 用于优化约束系统内的网络数据流的方法 - Google Patents
用于优化约束系统内的网络数据流的方法 Download PDFInfo
- Publication number
- CN105025070A CN105025070A CN201510137037.3A CN201510137037A CN105025070A CN 105025070 A CN105025070 A CN 105025070A CN 201510137037 A CN201510137037 A CN 201510137037A CN 105025070 A CN105025070 A CN 105025070A
- Authority
- CN
- China
- Prior art keywords
- pcie
- data
- hca
- processor
- slot
- 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
- 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/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
-
- 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/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4278—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
-
- 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
用于优化受限的系统中的网络数据流的方法、装置、以及软件。所述方法使数据能够在多插槽服务器平台中的PCIe卡之间进行传送,每一个平台包括具有InfiniBand(IB)HCA的本地插槽和远程插槽。从平台向外发送的数据经由代理的数据路径从PCIe卡被传送到平台的IB?HCA。如果目的地PCIe卡被安装在本地插槽中,或经由代理的数据路径如果目的地PCIe卡被安装在远程插槽中,则在平台处接收的数据可以采用直连PCIe对等(P2P)传送。从在本地插槽中的PCIe卡向外传送到平台的IB?HCA可以可选择地使用用于更大数据传送的代理的数据路径或用于更小的数据传送的直连P2P数据路径来进行传送。所述软件被配置为以某种方式来支持本地到本地、远程到本地、本地到远程、以及远程到远程数据传送中的每一个,所述方式对于生成和接收数据的软件应用是透明的。
Description
背景技术
近年来,“基于云”的服务、高性能计算(HPC)、以及应用数据中心的其它活动等的实现已经被广泛采用。在典型的数据中心安装情况中,安装在服务器类和服务器机架中的大量服务器在使用网络连接(例如,以太网或InfiniBand)和各种开关机构(例如,开关闸刀/模块和“架顶式”(ToR)开关)进行的通信中互连。
在HPC的方面中,实现非常大量的计算节点以并行或实质上并行的方式来解决各种任务。本质上,每一个计算节点执行更大型、更复杂任务中的一部分。为了实现所述机制,存在输入数据和输出数据必须在计算节点之中进行交换的需要。所述数据使用一个或多个互连进行通信。
使用各种类型的互连来使互连层次结构中的计算节点互连。例如,在所述层次结构的顶端的是在同一处理器中的计算核心之间的互连。下一级是同一平台(例如,服务器刀片或模块)中的处理器之间的互连。下一级是平台之间的互连,例如,刀片服务器中的底板。紧接着是服务器机箱和/或ToR开关之间的互连、服务器机架之间的互连、并且最终是数据中心之间的互连。通常,当一个节点移动到层次结构中的更下层时,节点之间的通信带宽减少。
除了与通过互连链路本身的传送相对应的延迟(其随着链路带宽以及长度以及切换速度而改变)之外,明显的延迟由在接口处对互连和/或附加处理所执行的操作和/或需要准备通过互连层次结构中的各种互连链路传送的数据造成。这些数据传送延迟共同减少了通信性能,以及因此减少了整体HPC实现的性能,并且可能呈现出计算节点的总体延迟(处理和数据传送)的重要部分。
HPC的另一重要方面是软件架构。以并行的方式实现使用数十万的计算节点的软件需要与常规应用所使用的相比显著不同的软件架构。另外,特定的软件模块已经被开发以使用相对应类型的互连,例如,用于通过Infiniband进行通信的软件模块。
附图说明
前述的方面和本发明的许多附随的优点将通过对下面的具体实施方式的提及同时结合所附的附图而变得显而易见同时变得更容易理解,其中,在各种视图中,类似的附图标记指代类似的部分,除非特殊指出:
图1是包括本地插槽和远程插槽的2-插槽服务器平台的示意图;
图2是被配置为使用代理数据路径来实现数据传送的2-插槽服务器的示意图;
图3是根据一个实施例的示出了在主机和MIC中实现的用于实现代理数据传送的软件部件的示意图;
图4是根据一个实施例的示出了用于实现代理数据传送的部件和队列对的图;
图5是根据一个实施例的示出了在用于使用多个数据段来实现代理RDMA数据传送的传送的来源侧上的部件之间的互连;
图6是示出了被执行以实现图5的RDMA数据传送的操作的流程图;
图7a和图7b是根据一个实施例的示出了一对2-插槽服务器平台之间的本地到本地数据传送的实现的示意图;
图8a和图8b是根据一个实施例的示出了一对2-插槽服务器平台之间的本地到远程数据传送的实现的示意图;
图9a和图9b是根据一个实施例的示出了一对2-插槽服务器平台之间的远程到远程数据传送的实现的示意图;
图10是示出了单独的平台上的各种端点之间的数据传送的数据传送路径的表;
图11是根据一个实施例的示出了用于实现通过SCIF和InfiniBand的RDMA的软件架构的图;以及
图12是根据一个实施例的示出了用于实现MPI双核DAPL的操作和逻辑的流程图。
具体实施方式
本文描述了用于优化约束系统内的网络数据流的方法和装置的实施例。在下面的描述中,阐述了各种具体细节来提供对本发明的实施例的透彻的理解。然而,相关领域的技术人员将认识到,本发明可以在没有所述具体细节的一个和多个或在具有其他方法、部件、材料等的情况下来进行实施。在其它实例中,公知的结构、材料、或操作没有被示出或详细描述,以避免使本发明的方面难以理解。
在整个说明书中对“一个实施例”或“实施例”的提及意味着结合所述实施例所描述的特定的特征、结构、或特性被包括在本发明的至少一个实施例中。由此,在本说明书的各个位置中短语“在一个实施例中”或“在实施例中”的出现并不一定全部指代同一实施例。此外,所述特定的特征、结构、或特性可以以任何合适的方式被组合在一个或更多个实施例中。
为了清楚起见,在本文中附图中单独的部件还可以由附图中它们的标签而不是由特定的附图标记所指代。此外,指代特定类型的部件(与特定的部件相对)的附图标记还可以利用跟随有“(typ)”的附图标记示出,其中“(typ)”表示“典型的”。应当理解,这些部件的配置将是类似部件的典型部件,所述类似的部件出于简洁和清晰可以存在但没有在附图中示出;或者另外没有被标记单独的附图标记的类似部件。相反,“(typ)”不应被解释为表示部件、元件等通常被用于其所公开的功能、实现、目的等。
图1示出了具有架构的服务器平台100,其示出了约束系统的示例。服务器包括两个处理器(亦称CPU)102和104,每一个都与单独的插槽相关联,所述单独的插槽被描绘为远程插槽106和本地插槽108。每一个插槽包括共同被操作为服务器平台100的单独的服务器子系统的部件的集合。对于远程插槽106,所示出的部件包括主机存储器110、输入-输出集线器(IOH)112、PCIe(快速外围部件互连)互连114、以及一对PCIe卡116和118。类似地,对于本地插槽108,所示出的部件包括主机存储器120、输入-输出集线器(IOH)122、PCIe互连124、以及一对PCIe卡126和128。如图1所进一步示出的,处理器102和104经由快速路径互连(QPI)链路130进行连接。
指出的是,图1和本文中的其他图所示出的架构是示例性的,并且具体的部件仅仅是更通用部件的类型的表示,所述更通用部件可以被实现用于特定的功能、功能的集合、或实现。例如,处理器和IOH是通用CPU和IO子系统的表示。
PCIe互连结构包括多个基于串行的互连,所述基于串行的互连通常被实现为多通路物理链路;通路宽度由PCIe nx进行标识,其中,n为1、2、4、8、16、或32。由更早期的PCI标准发展而来的PCIe被实现为并行总线结构。在一些情况下,平台上的PCIe互连结构可以被称为PCIe总线,注意,实际的互连结构本身包括点对点(多通路)链路。出于历史原因,PCIe互连结构的逻辑层次结构被描绘为类似于总线的结构,因为PCIe操作的各个方面(例如,PCIe设备列举)是继承自PCI的类似操作的。
正如PCI一样,PCIe根联合体位于PCIe互连层次结构的顶部。取决于所述架构,一个或多个PCIe根联合体可以存在于IOH和/或采用片上系统(SoC)架构的处理器中。在图1所示出的配置中,IOH 112和122中的每一个都包括耦合到PCIe接口(I/F)134的PCIe根联合体132。
PCIe根联合体用作连接到其物理互连结构的设备的管理器,以及用作这样的设备和主机CPU之间的接口。大部分现代的计算机和服务器包括一个或多个PCIe槽,其中,相对应的PCIe卡能够安装在所述一个或多个PCIe槽中。在某些设计中,每一个PCI槽具有相同数量的PCIe通路,同时,在其他设计中,槽的PCIe通路的数量可以不同,例如,针对更高速度的外围设备(例如,图形卡和网络适配器)使用更宽的互连。
在启动期间,每一个PCIe根联合体将执行测试来查看哪些设备出现在其相关联的PCIe槽中,并且列举这些设备。通常,PCIe互连层次结构可以支持到除PCIe卡之外的其他设备的连接,所述其他设备例如,安装到服务器主板的各种芯片和接口或耦合到主板的另一板。这些设备也被列举出。在图1中,PCIe卡116和118被列举作为PCIe设备1和2,其中所附的“r”用于指示它们是远程插槽106上的PCIe设备1和2。类似地,PCIe卡126和128被列举作为本地插槽108上的设备1和2(并且由此被标记为11和21)。
通常,通过PCIe互连的大部分通信都与CPU和PCI设备(例如,PCIe卡和外围部件)之间的数据传送相关。例如,假设应用希望将数据(例如,存储器块)经由计算机网络发送到另一服务器平台,并且假设PCIe卡128是网路适配器卡,例如,以太网卡。通常,该应用结合运行在处理器104上的可适用的网络栈软件将生成包含有文件数据并且被缓存在主机存储器120的数据分组流,并且将经由PCIe写将数据分组发送到PCIe卡128,PCIe卡128然后经由网络将所述分组传输到其它服务器平台。更高级的网络适配器还可以被实现用于支持直接存储器访问(DMA)读和写,其涉及更少的处理器开销并且促成甚至更高的数据传送率。
在前述的CPU到PCIe端点(例如,PCIe卡128)传送中,传送率通常被限制为PCIe互连124的带宽,所述PCIe互连124的带宽受到由于互连上的PCIe事务的竞争的延迟而减小。在PCIe 3.0的情况下,最大带宽是985MB/s每通路,而8通路(8x)互连支持大约8GB/s的带宽,以及16通路(16x)互连支持大约16GB/s的带宽。
PCIe的另一特征支持对等(P2P)通信,所述对等(P2P)通信允许PCIe设备之间的以及由PCIe根联合体促成的直连通信,而不涉及CPU的处理器核心。例如,P2P PCIe数据传送可以被应用以能够实现相同PCIe互连层次结构内的PCIe卡/设备之间(例如,本地插槽108上的PCIe卡126和128之间以及远程插槽106上的PCIe卡116和118之间)的读和写数据传送。
对IOH的使用源自于公知的北桥/南桥计算机系统架构,IOH与南桥相对应。因为P2P数据传送历史以来不常见,所以不存在修改现存IOH设计以促成更高的P2P传送率的动机。结果,PCIe设备之间的P2P读被限制为大约1GB/s,而PCIe写未被限制。使用P2P技术的单独的插槽上的PCIe设备之间的数据传送针对PCIe读和写二者被限制为大约300MB/s。这些限制导致由PCIe根联合体架构而不是PCIe互连和PCIe接口提供的处理能力的缺乏。
最近,引入了Xeon PhiTM协处理器系列,其包括具有在PCIe卡上实现的许多集成核心的处理器。设备的种类在本文中被称为多集成核心设备或简称为MIC。在一个实施例中,MIC包括大约60个核心,未来一代的Xeon PhiTM协处理器被计划为包括多达100个核心以及更多。
MIC架构能够使单个服务器平台支持大量的计算处理核心,尤其是当多个MIC被安装在同一平台中时。这对于HPC环境而言是极其有利的,特别是处理任务涉及高度本地性和并行性的场合。如上文所指示的,具有最小延迟的互连是在处理器中的互连,因为它们将非常高的带宽和非常小的长度相组合。结果,MIC中的计算核心之间的通信涉及非常低的延迟,这对于HPC是理想的。
然而,在托管MIC的服务器平台的内部以及外部两种情况下,仍然存在在MIC的计算核心和其他计算节点之间传送数据的需要。用于在单独的平台中的计算节点之间传送数据的技术可用的硬件和花销考虑而通常被良好地优化。例如,具有相对应的DMA传送设施的网络适配器被普遍用于HPC和其它服务器环境中。对基于PCIe的协处理器(GPGPU和MIC)的使用增加了一些复杂性,因为计算节点包括在MIC处理器中的核心而不是插槽CPU。因此,MIC包括供应与平台上的网络设备(例如,以太网适配器和InfiniBand主机控制器适配器(HCA))的连接。显著地,缺少的是用于在同一平台内的PCIe设备(例如,MIC)之间交换数据的PCIe架构中的最佳化。如上所讨论的,常规的PCIe P2P数据传送设施具有明显的性能不足。这呈现了对于实现多个PCIe卡(例如,MIC和IB HCA)的HCA服务器平台的严重性能打击,从而导致对约束系统的严重性能打击。
根据本文所述的实施例,所公开的技术和原理用于优化约束系统内的数据流,例如,同一服务器平台中的基于PCIe的MIC之间的数据流。虽然技术(例如,PCI对等通信)支持进入和外出PCIe卡的存储器(例如,在PCIe所附连的MIC中使用的)的直连通信,但是有时存在通过平台可用的更高的带宽路径。实施例提供了可选择地利用每队列对或每连接基础上的更高带宽的路径的动态模块。对替换的路径的使用传递更高的应用性能,而不会增加应用开发者选择具体数据路径的细节的负担。
对替换的路径的选择和使用以对应用软件透明的方式来完成,给出了在多个客户端上的实施例的广泛利用,所述客户端包括各种消息传递接口实现(包括但不限于Intel的MPI库、OpenMPI、以及MV APICH2)。在替换的路径提供与P2P相比实质上更高性能的情况下,实施例实际上还产生更高的应用级性能。
图2示出了服务器平台200,所述服务器平台200示出了前述部件可以被实现在其中的示例性环境。通用架构类似于图1的服务器平台100,其中,在两个附图中具有类似的附图标记的部件以类似的方式进行配置。在服务器平台200中,PCIe卡现在包括三个MIC 202、204、以及206,以及被耦合到InfiniBand(IB)结构的InfiniBand HCA 208。这些PCIe卡相应地被列举为MIC 1、2、3和IB HCA 1,如所示出的。所述列举与用于上文所述的远程和本地插槽106和108中的每一个的PCIe互连列举相独立;相反,所述列举由系统代理所应用来识别MIC实例和IB HCA实例或多个实例(在采用多个IB HCA的服务器平台中)。这些MIC中的每一个包括存储器210和MIC软件302,所述MIC软件302在MIC多核心处理器的一个或多个核心(未示出)上被执行。处理器102和104中的每一个执行包括用户级直连存取提供库(uDAPL)委托代理304的主机软件300的实例,所述实例被分别加载到存储器110和120的用户空间中。
图3示出了根据一个实施例的主机软件300和MIC软件302的进一步细节。MIC软件302包括消息传递接口(MPI)双核模式接口306,其中,包括MIC连接管理器(uDAPL-mcm)提供者客户端308和用户连接管理器(uDAPL-ucm)提供者客户端310的开放结构企业分发(OFED)uDAPL提供者客户端被连接到消息传递接口(MPI)双核模式接口306。uDAPL-mcm提供者客户端308通过使用对称通信接口(SCIF)连接311将数据发送到uDAPL代理304,从而将数据从MIC利用管道传送到主机存储器,这是通过MIC软件302中的SCIF 312接口和主机软件300中的相对应的SCIF 314接口促成的。MIC软件302还包括IB动词库316和用于支持MIC之间的直连协处理器通信链路(CCL-直连)通信的CCL-直连模块318。主机软件300还包括MPI应用320、uDAPL-MCM/UCM模块322、以及IB动词库324。如进一步所示出的,IB动词库324和CCL-直连模块318中的每一个都支持通过PCIe互连328与RDMA设备326进行通信。
实施例的核心方面包括“阴影”队列对的集合和使用相关联的代理来连接和使用平台内部和外部的多跳数据路径的新的有线协议。这些新的部件以一种方式相互作用,所述方式使得网络操作的源可以被动态地选择,而这些操作的接收器不能够区分各种源。以类似的方式,网络操作(一般为RDMA发送或写入)的请求者请求特殊的源队列,同时所述实现可以选择选定替换的源队列以完成请求。
在一个实施例中,所述系统由下面的部件组成:
两个通信处理端点之间的队列对(QP)或其他连接。至少一个队列存在于PCIe卡(例如,MIC)上。
阴影队列对,对于存在于PCIe卡上的每一个队列,其中一个队列存在于相对应的主机上,而另一个队列与远程队列共存。基于主机的队列被认为是阴影队列。
命令、连接、以及数据代理的对,它们与每一个阴影队列对的两个端点共存。
当上面的QP(1)中的队列的客户端提出RDMA写工作队列项WQE时,本地代理将请求与规则列表进行比较,并且确定向本地队列提出WQE还是将其发送到管理阴影队列(2)的其对等代理(3)。在后面的情况中,本地代理经由新命令信道(3)将WQE传递到对等代理,继而传递到对等数据行动代理(委托代理)。对等代理使用预存在的通信信道(例如,基于RDMA的或其他的)来将消息载荷的一部分传送到基于主机的临时缓冲区。然后它向本地阴影队列提出修改的WQE,本地阴影队列启动对该消息片段的传送。然后对等代理可替换地将消息片段从PCIe卡存储器传送到主机临时缓冲区,并且提出适当的WQE以实现传送。对等代理可以使用双缓冲机制来提高整体吞吐量,同时隐藏PCIe卡到主机的延迟。当在最初的WQE中指定的最初消息载荷被完整地传送时,基于主机的对等代理将通知基于PCIe卡的代理,基于PCIe卡的代理将向QP完成队列(CQE)提出适当的项。
建立和使用具有多个位置的端点的分离的通信信道的应用提供了优于现有方法的优势。在本文的实施例中,发送和接收信道基于源和接收方的能力利用针对最佳数据流唯一定位的端点来选取不同路径。这通过选择和利用通过服务器的多个高性能路径而不是单个、更慢的路径来实现。另外,每一个路径能够将委托代理引入到信道中,以便有助于数据率。例如,所代理的数据传送不具有主机到MIC或主机到HCA的P2P限制,因此能够使传送率接近IB QDR(四倍数据率)/FDR(十四倍数据率)有线速度。在标准通信信道(在一个实施例中的SCIF)中并且以对于通信客户端透明的方式对单个更大的有效载荷进行缓冲的、分段的传输呈现了实际上比现有方法的性能更具优势的新颖的方法。
还提供了用于多方向和多位置端点二者的连接机制。在一些实施例中,这经由使用新的连接管理(CM)有线协议(通过IB结构)来处理对信道的发现、建立、以及对端点和委托代理的放置来实现。另外,存在将代理客户端提供给委托服务器代理以支持管理、CM、和RDMA写操作的新操作信道协议(在一个实施例中的SCIF)。在这种情况下,P2P平台读问题将数据速率限制为1GB/s,所以优选避免从源侧上的MIC进行HCA读,并且使用委托代理用于RDMA写操作。对于接收方侧,HCA正在向MIC进行P2P写,并且它不被限制,所以委托代理不在信道的接收侧设置。
图4示出了在相应的服务器平台200-1和200-2上的两个本地MIC端点MIC 1和MIC 2之间的数据流的基础结构。如在本文中的附图中所使用的,物理队列对(QP)利用白色背景示出,而阴影QP利用灰色背景示出。同样,队列对的接收方被标记为QPrx,而队列对的发送方被标记为QPtx。
在建立过程期间,阴影QP的缓冲空间如下所示的进行分配。对于从MIC 1到MIC 2的传送,发送阴影队列400被分配在本地主机(主机1)中,同时阴影队列QP接收队列402被配置用于由远程MIC中的软件托管的uDAPL MCM提供者客户端308-2。类似地,对于从MIC 2到MIC 1的传送,发送阴影队列404被分配在本地主机(主机2)中,而阴影QP接收队列406被分配用于uDAPL MCM提供者客户端308-1。
从MIC 1到MIC 2的数据流如下所述地进行。uDAPL MCM提供者客户端308-1经由SCIF链路312-1将数据传送到委托代理3041-1,其中,它被缓冲到被用作输出队列使用的阴影发送队列400中。如下所述的,在一个实施例中,数据传送被分段,在这种情况下,给定的数据传送包括对一个或多个数据分段的传送。所述数据从阴影发送队列400被传送到HCA208-1。数据被封装在IB分组中、被向外发送到IB结构中、并且在平台200-2上的HCA 208-2上被接收。在这一点上,使用PCIe P2P写实现了直连HCA到MIC传送,而数据在阴影QP接收队列402处的MCM提供者308-2处被接收。
在相反方向的数据传送(从MIC 2到MIC 1)以类似的方式执行。MCM提供者客户端308-2经由SCIF链路321-2将数据传送到委托代理3041-2,其中数据被缓冲在阴影发送队列404中。接下来,数据从阴影发送队列402被传送到HCA 208-2。所述数据然后被封装在IB分组中、向外发送到IB结构、并且在平台200-1上的HCA 208-1处被接收。然后使用PCIe P2P写来实现直连的HCA到MIC传送,而数据在阴影QP接收队列406处的MCM提供者客户端308-2处被接收。
图5是示出了数据是如何经由用于标准RDMA写命令的委托代理被分段和移动的示例(仅来源侧)的图。在所述阶段,新的CM协议已经被发现,并且利用源端上的MIC-主机委托代理和到接收侧上的MIC的直连信道来建立最佳的分离数据信道;所述操作由CM&事件线程500促成。在标准设备开放和随后的QP创建调用期间,代理缓冲区502以及阴影QP资源被分配,并且向SCIF和IB二者进行预注册。存在流控制机制,其内置在用于代理缓冲区和QPtx资源二者的实施例的操作协议内。
进一步参考图6的流程图600,数据传送过程如下继续。这些操作部分地经由Op线程504促成。首先,在块602中,对于RDMA写,在MIC上的标准post_send调用经由在SCIF信道的mcm_send操作被转发到主机的QPtx阴影队列(在代理缓冲区502中实现的)。基于数据传送的大小,这将建立正确的段大小,并且使用最佳的操作信道DMA机制。还将建立相对应的段工作请求,所述段工作请求被添加到发送阴影队列WR 506。接下来,在块604中,主机执行从MIC的用户存储器508的SCIF_readfrom,以将数据的段复制到主机上的代理缓冲区502中。在完成第一段时,主机使用来自应用的原来的地址和关键参数(rkey)将该段直连发送到接收方缓冲区510。在块606中,主机将SCIF_fence_signal发送到接收方缓冲区508中的QPtx发送队列512。然后在块608中,ibv_post_send从IB_send线程被发出,并且相对应的DMA数据传送被执行,用于将数据段从QPtx发送队列512传送到IB HCA 208。在块612中,当到远程接收方的数据传送针对每一个WRE完成时,完成队列(CQ)事件可以被宣告(如果信号被发送)。响应于检测到CQ,相对应的代理缓冲区和WR资源被释放。类似地,在一个实施例中,当数据从MIC被传送到代理时,MIC可以被发送信号,使得应用重新使用发送缓冲区。
图7a示出了从平台200-1上的MIC 206-1到平台200-2上的MIC 206-2的数据传送的示意描述。MIC 206-1和206-2二者位于它们相应的IB HCA卡208-1和208-2,并且被附连到与IB HCA卡相同的PCI总线。因此,这是本地-本地传送,在本文中也被称为KL-KL传送。KL-KL传送的缓冲区和相关联的软件客户端和代理的相对应的细节在图7b中示出。
如所示出的级别,从MIC 206-1到MIC 206-2的数据传送涉及四个传送。然而,本领域中的技术人员将认识到所示出的传送可以涉及附加的缓冲,出于清晰和容易理解未示出所述附加的缓冲。每一个传送都是由被环绕的编号(例如,图7a和图7b中的1、2、3、和4)所识别的。传送‘1’描绘了从MIC 206-1上的存储器缓冲区到本地插槽108-1(主机1)上的主机存储器120-1的传送。如上面参考图4和图5所讨论的,其是数据代理操作,所述数据代理操作将数据从MCM提供者308-1中的发送缓冲区700复制到与委托代理3041-1相关联的主机存储器120-1中的阴影发送队列400。在所示出的实施例中,其是从MIC 206-1上的MMIO地址空间到主机存储器120-1到主机存储器120-1的DMA写,所述DMA写经由IOH 122-1并且使用SCIF通过PCIe互连124-1进行传送。这也被描绘为从源端点(MIC206-1)到QP1阴影发送队列400的代理数据传输704。
传送‘2’包括从主机存储器120-1到IB HCA 208-1的另一DMA传送。在进一步的细节中,数据被从阴影传送队列400传送到IB HCA卡208-1中的发送缓冲区中。DMA传送包括存储器读,以及然后向IB HCA卡208上的MMIO的PCI写。因此,物理数据路径是从主机存储器120-1经由处理器104-1到IOH 122-1的,并且然后经由PCIe互连124-1到IB HCA卡208-1。
传送‘3’是连接到IB结构210的两个IB端点(IB HCA卡208-1和208-2)之间的常规InfiniBand数据传送。一个或多个数据段在发送IB端点(IB HCA卡208-1)处被缓冲,并且相对应的数据经由一个或多个IB分组被传送到接收IB端点(IB HCA卡208-2)处。
从MIC 206-1到MIC 206-2的数据传送经由P2P传送通过从IB HCA卡208-2到MIC 206-2的PCIe互连124-2完成,如由传送‘4’所描绘的。取决于传送的大小,这可以由一个或多个PCIe P2P写完成。在一个实施例中,直连P2P传送使用CCL-直连传送。如图7b所示出的,数据从IB HCA卡208-1被传送到阴影接收队列702,阴影发送队列400的对等队列。
图8a和图8b示出了从MIC 206-1到MIC 202-2的本地到远程数据传送(KL-KR)的示例。前三个传送是与图7a和图7b所示出的以及如上所述相同的,在这一点上所传送的数据是由IB HCA 208-2所接收的。在这一点处,存在从IB HCA 208-2到存储器110-2中的QP2接收队列802的非一致性存储器存取(NUMA)数据传送,所传送‘4’所描绘的。这还被描绘为代理到代理的传送804。在NUMA架构(例如,由2插槽平台200-1和200-2所应用的)的情况下,每一个插槽能够使用两个不同的(以及由此非一致的)存储器访问机制来访问自己的本地存储器以及访问另一插槽上的远程存储器。
在一个实施例中,从IB HCA 208-2到存储器110-2的NUMA数据传送如下进行。在平台初始化期间或另外在经由IB HCA进行数据传送之前,各种存储器映射IO(MMIO)地址空间被分配用于IB HCA以及其他PCIe设备(例如,MIC)。对于NUMA配置,存在从两个插槽分配的MMIO地址空间。数据传送是PCIe事务,其包括传送经由相对应的MMIO地址来识别器目的地端点的一个或多个PCIe分组,所述相对应的MMIO地址在本实例中是存储器110-2中的MIMO地址。当PCIe分组经由本地PCIe互连被转发到本地PCIe根联合体时,目的地地址是由PCIe代理等进行检查的,并且被识别为在本地不可访问的另一个插槽上。在所示出的实施例的情况下,存在用于平台200-2的QPI插槽到插槽互连130-2。QPI使用具有源和目的地QPI端点的多层QPI协议来采用基于分组的事务。PCIe分组的转发被传递到与处理器140-2相关联的QPI代理等,QPI代理将PCIe分组或多个PCIe分组封装在一个或多个QPI分组中,所述一个或多个QPI分组经由处理器140-2经由QPI互连130-2被传送到处理器102-2。在QPI目的地接收到时,另一QPI代理将PCIe分组解封装,并且然后PCIe分组被转发到与处理器102-2相关联的PCIe代理,所述PCIe代理生成一个或多个存储器写事务,用于将所传送的数据写到存储器110-2的由PCIe事务识别的MMIO地址处。以图4示出的类似的方式,在一个实施例中,所述数据传送可以使用一个或多个段执行。
上述内容的结果是数据从IB HCA 208-2被传送到存储器110-2中的QP2接收队列802,如上所讨论的。数据在内部由委托代理304r-2从QP2接收队列802被传送到QP2发送队列806。根据传送‘5’,数据然后从QP2传送队列806经由DMA传送被转发到MIC 202-2上的存储器。这也被描绘为代理端点接收传送804到目的地端点(MIC 202-2)中的QP1阴影接收队列702。
图9a和图9b示出了远程MIC到远程MIC传送也被称为KR-KR的示例。在该示例中,所述传送从MIC 204-1到MIC 202-2,MIC 204-1和MIC202-2二者都是远程PCIe设备(与平台200-1和200-2上的本地IB HCA相关)。传送‘2’到传送‘5’与图8a和图8b的KL-KR传送示例相同。与第一传送‘1’协力,MIC 204-1将数据传送到存储器120-1中的QP2阴影发送队列810。如以前,这经由NUMA存储器写到被分配给MIC 204-1的存储器120-1中的MMIO地址空间而被执行。传送‘2’、传送‘3’和传送‘4’共同促成数据的代理到代理传送,所述数据从QP2阴影发送队列810被传送到QP2阴影发送队列810到存储器110-2中的QP2接收队列。数据传送在传送‘5’中完成,这类似于图8a和图8b的KL-KR传送中的传送‘5’。
图10示出了表1000,表1000列出了由平台上的IB HCA之间的IB结构传送促成的不同平台上的端点之间的各种传送组合(由此导致位于服务器盒外部的传送)。除了转发路径,表1000还列出了每一个类型的传送的反向路径,其中,反向路径是从右到左的,而不是从左到右的。
图11根据一个实施例示出了用于通过SCIF和InfiniBand实现RDMA的软件架构1100。在图11中,用粗轮廓示出的部件是新部件,而其余的部件与现有的部件相对应。用户空间部件包括MPI应用1102、uDAPL模块1104、IV动词库1106、以及新的IB-SCIF库1108。内核模式部件包括IBuverbs模块1100、IB核心1112、新IB-SCIF驱动器1114、以及新SCIF模块1116。
在一个实施例中,通过SCIF/IB的RDMA采用来自开放结构联盟的核心OFA软件模块,所述核心OFA软件模块包括IB动词库1106、IB uverbs模块1110、以及IB核心模块1112。IB-SCIF驱动器1114是插入到OFED核心中间层的新的特定硬件驱动器和库。SCIF是PCIe设备和处理器之间(例如,MIC和处理器之间)的最低级的通信驱动器。架构1100在平台内提供了标准RDMA动词接口。如上所讨论的,本文所讨论的各种代理操作以一种方式执行,所述方式对于运行在数据传送端点上的软件应用是透明的;从软件应用的观点来看,所代理的数据传送看上去是从源端点到目的地端点的直连数据传送。
一些实施例的另一特征被称为MPI双核DAPL。在这一特征中,在传送源端点中操作的软件智能地选择使用直连PCIe CCL P2P数据路径还是使用代理传送来传送数据。在一个实施例中,小消息使用CCL直连路径进行发送,而大消息使用CCL代理路径进行传送。所述双核模式传送特征使得MPI应用能够利用低延迟和高带宽二者来执行传送。
图12示出了流程图1200,流程图1200根据一个实施例示出了用于实现MPI双核DAPL的操作和逻辑。所述过程响应于MPI应用检测到它存在要传送的数据而开始,如在块1202中所示出的。在决策块1204中,确定所代理的传送路径是否是可用的,或者是否只有直连P2P路径是可用的。如果只有直连P2P路径是可用的,则逻辑进行到块1206,在块1206中传送使用直连路径(例如,使用CCL直连)实现。
如果所代理的路径和直连路径二者都是可用的,则确定在决策块1208中,数据传送的大小是否超过了阈值。例如,阈值大小可以通过使用在直连路径和代理的路径二者上不同的大小传送来执行比较的数据传送性能测试被确定。对于具有的大小大于阈值的数据传送,所述传送使用代理路径来进行,如在块1210中所描绘的。对于小于阈值的传送,对决策块1208的答案是否,这导致逻辑前进到块1206,以使使用直连路径的传送实现。
对于本文描述的主题的另一方面在下面带序号的语句中进行展示。
语句1。一种方法包括:
实现代理,所述代理用于将第一数据从耦合到第一PCIe互连的第一快速外围部件互连(PCIe)卡传送到耦合到PCIe互连和IB结构的PCIeInfiniBand(IB)主机信道适配器(HCA),所述第一数据经由IB HCA从第一PCIe卡被发送到经由IB结构可访问的目的地;
从PCIe IB HCA处的IB结构接收目的地为第一PCIe卡的第二数据;以及
将第二数据经由第一PCIe对等(P2P)数据传送从IB HCA直接传送到第一PCIe卡,
其中,第一PCIe互连被通信地耦合到具有第一主机存储器的第一主机处理器,并且与第一数据的代理传送相对应的数据路径包括从第一PCIe卡到第一主机存储器的第一数据传送,以及从第一主机存储器到IB HCA的第二数据传送。
语句2。根据语句1的方法,还包括实现第一主机存储器中的第一发送阴影队列,并且实现第一PCIe卡上的存储器中的第二接收阴影队列,其中,所述发送阴影队列与第一阴影队列对的发送方相对应,并且第二接收阴影队列与第二阴影队列对的接收方相对应。
语句3。根据语句1或语句2的方法,还包括将第三数据经由第二PCIeP2P传送从第一PCIe卡直接传送到IB HCA。
语句4。根据语句3的方法,还包括实现数据传送阈值来确定从第一PCIe卡到IB HCA的数据的传送是经由代理的路径还是经由直连P2P路径进行转发的。
语句5。根据前述语句的任何的方法,其中,第一PCIe卡包括具有许多集成核心(MIC)的处理器。
语句6。根据前述语句的任何的方法,其中,第一PCIe卡和IB HCA耦合到在多插槽服务器平台中的本地插槽中实现的第一PCIe互连,所述方法还包括实现代理,所述代理用于将第三数据从第二PCIe卡传送到IBHCA,其中,所述第二PCIe卡被连接到多插槽服务器平台的远程插槽中实现的第二PCIe互连。
语句7。根据语句6的方法,其中,多插槽服务器平台被配置在非一致存储器访问(NUMA)架构中,在所述架构中每一个插槽包括耦合到主机存储器的相应的主机处理器和通信地耦合到主机处理器的PCIe互连,其中,第一PCIe互连驻存在包括第一主机处理器和第一主机存储器的本地插槽中,其中,第二PCIe互连驻存在包括第二主机处理器的远程插槽中,其中,多插槽服务器平台还包括将第一和第二主机处理器通信地耦合的插槽到插槽互连,并且其中,实现用于将第三数据从第二PCIe卡传送到IB HCA的代理包括执行从第二PCIe卡上的存储器到第一主机存储器的NUMA直接存储器访问(DMA)传送。
语句8。根据前述语句1中的任何的方法,其中,第一PCIe卡和IB HCA耦合到在多插槽服务器平台中的本地插槽中实现的第一PCIe互连,所述方法还包括实现代理,所述代理用于将从来自IB HCA的IB HCA处的IB结构处接收的第三数据传送到第二PCIe卡,其中,所述第二PCIe卡被连接到多插槽服务器平台的远程插槽中实现的第二PCIe互连。
语句9。根据语句8的方法,其中,多插槽服务器平台被配置在非一致存储器访问(NUMA)架构中,在所述架构中每一个插槽包括耦合到主机存储器的相应的主机处理器和通信地耦合到主机处理器的PCIe互连,其中,第一PCIe互连驻存在包括第一主机处理器和第一主机存储器的本地插槽中,其中,第二PCIe互连驻存在包括第二主机处理器的远程插槽中,其中,多插槽服务器平台还包括将第一和第二主机处理器通信地耦合的插槽到插槽互连,并且其中,实现用于将第三数据从IB HCA传送到第二PCIe卡的代理包括执行从IB HCA到第二主机存储器的NUMA直接存储器访问(DMA)传送。
语句10。一种具有存储于其上的软件指令的有形、非暂时性机器可读介质,所述软件指令被配置为在至少一个处理器上执行,以完成前述语句中的任何的方法。
语句11。一种快速外围部件互连(PCIe)装置,其被配置为被安装在多插槽服务器平台上,所述多插槽服务器平台包括具有耦合到第一主机存储器的第一主机处理器和第一PCIe互连的本地插槽,以及具有耦合到第二主机存储器的第二主机处理器和第二PCIe互连的远程插槽,所述多插槽服务器平台还包括耦合到第一PCIe互连的InfiniBand(IB)主机信道适配器(HCA),所述PCIe装置包括:
处理器;以及
存储器,其耦合到处理器,具有存储于其上的软件指令,所述软件指令当由处理器执行时,完成操作,使得所述装置能够用于,
在存储器中分配第一发送队列;
使第一数据编入在第一发送队列中,所述第一数据经由IB HCA从多插槽服务器平台向外传送;
将第一数据从第一发送队列传送到由第一主机处理器托管的第一委托代理,所述第一数据由第一委托代理转发到IB HCA;以及
接收从IB HCA发送的第二数据,
其中,第一数据和第二数据沿着不同路径在PCIe装置和IB HCA之间进行传送,并且,其中,PCIe装置被配置为安装在耦合到第一PCIe互连的第一PCIe槽和耦合到第二PCIe互连的第二PCIe槽中的每一个上,一次一个。
语句12。根据语句11的PCIe装置,其中,所述第二数据经由直连PCIe对等(P2P)数据传送从IB HCA接收。
语句13。根据语句11或语句12的PCIe装置,其中,所述软件指令还用于:
连接运行在第一主机处理器上的软件,以分配发送阴影队列;以及
执行直接存储器访问(DMA)数据传送,以将第一数据传送到发送阴影队列。
语句14。根据语句11到语句13中的任何的PCIe装置,其中,所述软件指令还用于:
连接运行在多插槽服务器平台外部的装置上的软件,所述第二数据从其被发送,以分配接收阴影队列;以及
当从IB HCA接收到第二数据时,将所述第二数据缓存在接收阴影队列中。
语句15。根据语句11到语句14的任何的PCIe装置,其中,所述软件指令还用于建立与第一委托代理的对称通信接口(SCIF)连接,并且将第一数据经由SCIF连接传送到第一委托代理。
语句16。根据语句11到语句15中的任何的PCIe装置,其中,所述软件指令还用于:
在存储器中分配第二发送队列;
使第三数据编入在第二发送队列中,所述第三数据经由IB HCA从多插槽服务器平台向外传送;以及
经由第二直连PCIe P2P传送将第三数据从第二发送队列直接传送到IBHCA。
语句17。根据语句16的PCIe装置,其中,软件指令还用于实现数据传送阈值来确定从第一PCIe装置到IB HCA的数据的传送是经由代理的路径使用第一委托代理还是经由直连P2P路径进行转发的。
语句18。根据语句11到语句17的PCIe装置,其中,本地插槽和远程插槽中的每一个都被配置在非一致存储器访问(NUMA)架构中,并且第一处理器和第二处理器经由插槽到插槽互连被通信地耦合,并且其中,当PCIe装置被安装在第二PCIe槽中时,第一数据经由NUMA数据传送从第一发送队列被传送到第一委托代理,所述NUMA数据传送包括通过插槽到插槽互连的路径。
语句19。根据语句11到语句18的PCIe装置,其中,本地插槽和远程插槽中的每一个都被配置在非一致存储器访问(NUMA)架构中,并且第一处理器和第二处理器经由插槽到插槽互连被通信地耦合,并且其中,当PCIe装置被安装在第二PCIe槽中时,第二数据从IB HCA被传送到由第二处理器托管的第二代理,所述第二代理将第二数据转发到PCIe装置。
语句20。根据语句11到语句19的任何的PCIe装置,其中,PCIe装置包括许多集成核心(MIC)装置,并且所述处理器包括许多集成核心。
语句21。根据语句11到语句20中的任何的PCIe装置,其中,所述软件指令还用于实现可访问生成第一数据并且接收第二数据的软件应用的数据传送接口,所述数据传送接口是兼容开放结构企业分发(OFED)的接口并且支持使用IB动词。
语句22。一种具有存储于其上的软件指令的有形、非暂时性机器可读介质,所述软件指令被配置为以分布式的方式被安装在多插槽服务器平台中的部件上,所述多插槽服务器平台包括具有耦合到第一主机存储器的第一主机处理器和第一快速外围部件互连(PCIe)互连的本地插槽以及具有耦合到第二主机存储器第二主机处理器和第二PCIe互连的的远程插槽,所述多插槽服务器平台还包括耦合到第一PCIe互连的InfiniBand(IB)主机信道适配器(HCA),所述本地插槽包括本地插槽,以及所述远程插槽包括远程插槽,所述软件指令包括:
第一软件指令,其被配置为运行在第一主机处理器和第二主机处理器上的每一个上,所述第一软件指令包括用于在第一处理器和第二处理器上植入相应的委托代理的指令;以及
第二软件指令,其被配置为在耦合到第一PCIe互连和第二PCIe互连的相应的PCIe卡上运行,
其中,所述第一软件指令和第二软件指令被配置为促成数据传送,所述数据传送包括,
从第一PCIe卡到IB HCA的第一数据的第一数据传送,所述第一数据从第一PCIe卡被传送到第一委托代理,并且然后从第一委托代理被转发到IB HCA;以及
从IB HCA到第二PCIe卡的第二数据的第二数据传送,所述第二数据从第一PCIe卡被传送到第二委托代理,并且然后从第二委托代理被转发到IB HCA。
语句23。根据语句22的有形、非暂时性机器可读介质,其中,所述软件指令还包括用于实现第一PCIe卡和第一委托代理之间的对称通信接口(SCIF)连接的指令。
语句24。根据语句22或语句23的有形、非暂时性机器可读介质,其中,所述多插槽服务器平台包括第一平台,所述第一平台包含具有第一IBHCA的第一本地插槽和第一远程插槽,并且所述软件指令还被配置为在包括第二平台的第二多插槽服务器平台上实现,所述第二平台包含具有第二IB HCA的第二本地插槽和第二远程插槽,以经由将数据从第一PCIe卡传送到第一IB HCA的代理的数据路径以及从第二IB HCA到第二PCIe卡的直连数据路径促成在第一平台中的第一PCIe卡到第二平台中的第二PCIe卡之间的数据传送。
语句25。根据语句24的有形、非暂时性机器可读介质,其中,第一PCIe卡被安装在第一平台的第一远程插槽中的PCIe槽中,并且,其中,第二PCIe卡被安装在第二平台的第二本地插槽中的PCIe槽中。
语句26。根据语句22到语句25中的任何的有形、非暂时性机器可读介质,其中,所述多插槽服务器平台包括第一平台,所述第一平台包含具有第一IB HCA的第一本地插槽和第一远程插槽,并且所述软件指令还被配置为在包括第二平台的第二多插槽服务器平台上实现,其中,所述第二平台包含具有第二IB HCA的第二本地插槽和第二远程插槽,以经由用于将数据从第一PCIe卡传送到第一IB HCA的第一代理数据路径以及用于将数据从第二IB HCA传送到第二PCIe卡的第二代理数据路径促成在第一平台中的第一PCIe卡到第二平台中的第二PCIe卡之间的数据传送。
语句27。根据语句26的有形、非暂时性机器可读介质,其中,第一PCIe卡被安装在第一平台的第一远程插槽中的PCIe槽中,并且,其中,第二PCIe卡被安装在第二平台的第二本地插槽中的PCIe槽中。
语句28。根据语句26的有形、非暂时性机器可读介质,其中,第一PCIe卡被安装在第一平台的第一本地插槽中的PCIe槽中,并且,其中,第二PCIe卡被安装在第二平台的第二远程插槽中的PCIe槽中。
语句29。根据语句22到语句28中的任何的有形、非暂时性机器可读介质,其中,所述第二软件指令包括用于实现双核模式传送接口的指令,在双核模式传送接口中可以可选择地使用代理数据路径或包含PCIe对等(P2P)数据传送的直连数据路径将数据从PCIe卡被传送到耦合到公共PCIe互连的IB HCA。
语句30。根据语句22到语句19中的任何的有形、非暂时机器可读介质,其中,所述软件指令被配置为安装在第一和第二多插槽服务器平台上,所述第一和第二多插槽服务器平台的每一个包括具有本地IB适配器的本地插槽和远程插槽,并且所述软件指令进一步被配置为促成安装在第一和第二多插槽服务器平台中的PCIe卡之间的下面类型的传送中的每一个:本地插槽到本地插槽;本地插槽到远程插槽;远程插槽到本地插槽;以及远程插槽到远程插槽。
语句31。一种多插槽服务器平台包括:
本地插槽,其具有耦合到第一主机存储器的第一主机处理器和具有至少两个本地插槽PCIe槽的第一快速外围部件互连(PCIe)互连;
远程插槽,其具有耦合到第二主机存储器的第二主机处理器和具有至少两个远程插槽PCIe槽的第二PCIe互连;
将第一主机处理器耦合与第二主机处理器进行通信耦合的插槽到插槽互连;
安装在本地插槽PCIe槽的第一槽中的InfiniBand(IB)主机信道适配器(HCA);
安装在本地插槽PCIe槽的第二槽中的第一PCIe卡;
安装在远程插槽PCIe槽的第一槽中的第二PCIe卡;
其中,所述多插槽服务器平台被配置为,
经由由第一主机处理器托管的第一委托代理来代理从第一PCIe卡到PCIe IB HCA的第一数据的传送;
从PCIe IB HCA处的IB结构接收目的地为第一PCIe卡的第二数据;以及
经由第一PCIe对等(P2P)数据传送将第二数据从PCIe IB HCA直接传送到第一PCIe卡。
语句32。根据语句31的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为经由第一委托代理来代理从第二PCIe卡到PCIe IBHCA的第三数据的传送。
语句33。根据语句31或语句32的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为:
从PCIe IB HCA处的IB结构接收目的地为第二PCIe卡的第四数据;以及
经由由第二主机处理器托管的第二委托代理将第四数据从PCIe IBHCA传送到第二PCIe卡。
语句34。根据语句31到语句33中的任何的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为:
确定从第一PCIe卡被传送到PCIe IB HCA的数据量是否超出了阈值;以及
如果要被传送的数据量超出了阈值,则将数据从第一PCIe卡经由第一委托代理转发到PCIe IB HCA;否则
如果要被传送的数据量没有超出阈值,则将数据从第一PCIe卡经由第二PCIe P2P数据传送来传送到PCIe IB HCA;
语句35。根据语句31到语句34中的任何的多插槽服务器平台,其中,第一和第二PCIe卡中的每一个都包括具有至少一个处理器的MIC卡,所述至少一个处理器具有许多集成核心。
语句36。一种多插槽服务器平台包括:
本地插槽,其具有耦合到第一主机存储器的第一主机处理器和第一快速外围部件互连(PCIe)互连和具有耦合到第二主机存储器和第二PCIe互连的第二主机处理器的远程插槽;
插槽到插槽的互连;
耦合到第一PCIe互连的InfiniBand(IB)主机信道适配器(HCA);以及
耦合到第一和第二PCIe互连中的一个的PCIe卡,其包括耦合到存储器的处理器,
其中,所述多插槽服务器平台还包括用于以下的模块,
在PCIe卡的存储器中分配第一发送队列;
使第一数据编入在第一发送队列中,所述第一数据经由IB HCA从多插槽服务器平台向外传送;
将第一数据从第一发送队列传送到由第一主机处理器托管的第一委托代理,所述第一数据由第一委托代理转发到IB HCA;以及
接收从IB HCA发送的第二数据,
其中,第一和第二数据在PCIe卡和IB HCA之间沿着不同的路径进行传送,
语句37。根据语句36的多插槽服务器平台,其中,所述第二数据经由直连PCIe对等(P2P)数据传送从IB HCA接收。
语句38。根据语句36或语句37的多插槽服务器平台还包括用于以下的模块,
分配发送阴影队列;以及
执行直接存储器访问(DMA)数据传送,以将第一数据传送到发送阴影队列。
语句39。根据语句36到语句38中的任何的多插槽服务器平台,还包括用于以下的模块:
连接运行在多插槽服务器平台外部的装置上的软件,所述第二数据从其被发送,以分配接收阴影队列;以及
当从IB HCA接收到第二数据时,将所述第二数据缓存在接收阴影队列中。
语句40。根据语句36到语句39中的任何的多插槽服务器平台,包括用于以下的模块:
在存储器中分配第二发送队列;
使第三数据编入在第二发送队列中,所述第三数据经由IB HCA从多插槽服务器平台向外传送;以及
经由第二直连PCIe P2P传送将第三数据从第二发送队列直接传送到IBHCA。
语句41。根据语句40的多插槽服务器平台,还包括用于实现数据传送阈值来确定从PCIe装置到IB HCA的数据的传送是经由使用第一委托代理的代理路径还是经由直连P2P路径进行转发的模块。
如上文所描述的和在本文的附图中所示出的,各种软件部件被安装在主机处理器和MIC中,以促成使用本地到本地、本地到远程、远程到本地、以及远程到远程数据传送的在多插槽服务器平台中的MIC之间的数据传送。在一个实施例中,软件被存储在有形的、非暂时性的机器可读介质中,并且被加载在平台主机处理器中的至少一个上。可适用的软件部件然后被分布到MIC,其中,在主机和MIC上的软件部件被配置为促成针对给定的传送进行优化的代理数据传送和直接数据传送。
由此,本发明的实施例可以被用作或用于支持在一些形式的处理核心(例如,MIC处理器中的主机CUP或核心)上执行的或另外在机器可读介质上或在机器可读介质中实现或实行的软件指令。机器可读介质包括用于以由机器(例如,计算机)可读的形式存储或发送信息的任何有形、非暂时性机构。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光盘存储介质;以及闪速存储设备等。
虽然参考特定的实现描述了一些实施例,但是根据一些实施例,其他实现是可能的。此外,在附图中示出的和/或在本文中所描述的布置和/或元件的顺序或其他特征未必以所示出的和所描述的特定的方式进行布置。根据一些实施例,许多其他布置是可能的。
在附图中示出的每一个系统中,在一些情况中,每一个元件都可以具有相同的附图标记或不同的附图标记来表明所表示的元件可能是不同的和/或类似的。然而,元件可以具有足够的灵活性,以具有不同的实现,并且与本文中所示出的或所描述的系统中的一些或所有共同工作。在附图中所示出的各种元件可以是相同的或不同的。哪一个被称为第一元件以及哪个被叫做第二元件是任意的。
在描述和权利要求中,可以使用术语“耦合”和“连接”以及其衍生物。应当理解,这些术语不是要作为彼此的同义词。相反,在特定的实施例中,“连接”可以用于指示两个或更多个元件彼此直接的物理或电气接触。“耦合”可以表示两个或更多个元件彼此直接的物理或电气接触。然而,“耦合”还可以表示两个或更多个元件彼此不直接接触,但是彼此仍然共同操作或交互。
实施例是本发明的实现或示例。在说明书中对“实施例”、“一个实施例”、“一些实施例”、或“其它实施例”的提及是指结合实施例描述的特定的特征、结构、或特性被包括在至少一些实施例中,但是未必被包括在本发明的所有实施例中。“实施例”、“一个实施例”、或“一些实施例”的各种出现未必全部指代相同的实施例。
不是在本文中描述和示出的所有部件、特征、结构、特性等都需要被包括在特定的实施例或多个特定的实施例中。例如,如果说明书中陈述部件、特征、结构、或特性“可以”、“可能”、“能够”或“或许”被包括,则特定的部件、特征、结构、或特性不需要被包括。如果说明书或权利要求指出“一”或“一个”元件并不是表示只存在一个所述元件。如果说明书或权利要求指出“附加的”元件,则并不排除存在比一个更多的附加的元件。
包括在摘要中所描述的内容的本发明的所示出的实施例的上述描述并不是毫无遗漏的,也不是要将本发明限制为所公开的精确的形式。虽然本文出于举例示出的目的描述了本发明的具体实施例和示例,但是,各种等效的修改在本发明的范围内是可能的,正如相关领域的技术人员将意识到的。
根据上面的具体实施方式,可以做出对本发明的一些修改。在下面的权利要求中使用的术语不应被解释为将本发明限制为在说明书和附图中所公开的具体的实施例。相反,本发明的范围是要全部由下面的权利要求所确定,下面的权利要求根据已建立的权利要求说明的原则来进行解释。
Claims (25)
1.一种用于在平台中传送数据的方法,所述平台包括耦合到第一快速外围部件互连(PCIe)互连的第一PCIe卡和耦合到所述第一PCIe互连和InfiniBand(IB)结构的PCIe IB主机信道适配器(HCA),其中,所述第一PCIe互连被通信地耦合到具有第一主机存储器的第一主机处理器,所述方法包括:
实现用于将第一数据从所述第一PCIe传送到PCIe IB HCA的代理,所述第一数据从所述第一PCIe卡经由IB HCA被发送到经由所述IB结构能够访问的目的地,其中,与所述第一数据的代理传送相对应的数据路径包括从所述第一PCIe卡到所述第一主机存储器的第一数据传送,以及从所述第一主机存储器到所述IB HCA的第二数据传送;
从所述PCIe IB HCA处的所述IB结构接收目的地为所述第一PCIe卡的第二数据;以及
经由第一PCIe对等(P2P)数据传送将所述第二数据从所述IB HCA直接传送到所述第一PCIe卡。
2.根据权利要求1所述的方法,还包括在所述第一主机存储器中实现第一发送阴影队列,并且在所述第一PCIe卡上的存储器中实现第二接收阴影队列,
其中,所述发送阴影队列与第一阴影队列对的发送方相对应,并且所述第二接收阴影队列与第二阴影队列对的接收方相对应。
3.根据权利要求1或2所述的方法,还包括经由第二PCIe P2P传送将第三数据从所述第一PCIe卡直接传送到所述IB HCA。
4.根据权利要求3所述的方法,还包括:
实现数据传送阈值来确定从所述第一PCIe卡到所述IB HCA的数据的传送是经由代理路径还是经由直连P2P路径转发的。
5.根据前述权利要求中的任何一项所述的方法,其中,所述第一PCIe卡包括具有许多集成核心(MIC)的处理器。
6.根据前述权利要求中的任何一项所述的方法,其中,所述第一PCIe卡和所述IB HCA被耦合到第一PCIe互连,所述第一PCIe互连在多插槽服务器平台中的本地插槽中实现,所述方法还包括:
实现用于将第三数据从第二PCIe卡传送到所述IB HCA的代理,所述第二PCIe卡被连接到在所述多插槽服务器平台的远程插槽中实现的第二PCIe互连。
7.根据权利要求6所述的方法,其中,所述多插槽服务器平台被配置在非一致存储器访问(NUMA)架构中,其中,每一个插槽包括耦合到主机存储器的相应的主机处理器和通信地耦合到所述主机处理器的PCIe互连,其中,所述第一PCIe互连驻存在包括第一主机处理器和第一主机存储器的本地插槽中,其中,所述第二PCIe互连驻存在包括第二主机处理器的远程插槽中,其中,所述多插槽服务器平台还包括将所述第一主机处理器和第二主机处理器通信地耦合的插槽到插槽互连,并且其中,实现用于将所述第三数据从所述第二PCIe卡传送到所述IB HCA的代理包括执行从所述第二PCIe卡上的存储器到所述第一主机存储器的NUMA直接存储器访问(DMA)传送。
8.根据前述权利要求1中的任何一项所述的方法,其中,所述第一PCIe卡和所述IB HCA耦合到第一PCIe互连,所述第一PCIe互连在多插槽服务器平台中的本地插槽中实现,所述方法还包括:
实现用于将从所述IB HCA处的所述IB结构接收的第三数据从所述IBHCA传送到第二PCIe卡的代理,所述第二PCIe卡被连接到在所述多插槽服务器平台中的远程插槽中实现的第二PCIe互连。
9.根据权利要求8所述的方法,其中,所述多插槽服务器平台被配置在非一致存储器访问(NUMA)架构中,其中,每一个插槽包括耦合到主机存储器的相应的主机处理器和通信地耦合到所述主机处理器的PCIe互连,其中,所述第一PCIe互连驻存在包括第一主机处理器和第一主机存储器的本地插槽中,其中,所述第二PCIe互连驻存在包括第二主机处理器的远程插槽中,其中,所述多插槽服务器平台还包括将所述第一主机处理器和第二主机处理器通信地耦合的插槽到插槽互连,并且其中,实现用于将所述第三数据从所述IB HCA传送到所述第二PCIe卡的代理包括执行从所述IB HCA到所述第二主机存储器的NUMA直接存储器访问(DMA)传送。
10.一种具有存储于其上的软件指令的有形、非暂时性机器可读介质,所述软件指令被配置为在至少一个处理器上被执行,以完成前述权利要求中的任何一项所述的方法。
11.一种快速外围部件互连(PCIe)装置,其被配置为被安装在多插槽服务器平台上,所述多插槽服务器平台包括具有耦合到第一主机存储器的第一主机处理器和第一PCIe互连的本地插槽,以及具有耦合到第二主机存储器的第二主机处理器和第二PCIe互连的远程插槽,所述多插槽服务器平台还包括耦合到所述第一PCIe互连的InfiniBand(IB)主机信道适配器(HCA),所述PCIe装置包括:
处理器;以及
存储器,其耦合到所述处理器,具有存储于其上的软件指令,所述软件指令当由所述处理器执行时实施操作,使得所述装置用于,
在所述存储器中分配第一发送队列;
使第一数据编入所述第一发送队列中,所述第一数据经由所述IB HCA从所述多插槽服务器平台向外传送;
将所述第一数据从所述第一发送队列传送到由所述第一主机处理器托管的第一委托代理,所述第一数据由所述第一委托代理转发到所述IBHCA;以及
接收从所述IB HCA发送的第二数据,
其中,所述第一数据和第二数据沿着不同的路径在所述PCIe装置和所述IB HCA之间被传送,并且其中,所述PCIe装置被配置为安装在耦合到所述第一PCIe互连的第一PCIe槽和耦合到所述第二PCIe互连的第二PCIe槽中的每一个上,一次一个。
12.根据权利要求11所述的PCIe装置,其中,所述第二数据经由直连PCIe对等(P2P)数据传送从所述IB HCA被接收。
13.根据权利要求11或12所述的PCIe装置,其中,所述软件指令还用于:
连接运行在所述第一主机处理器上的软件,以分配发送阴影队列;以及
执行直接存储器访问(DMA)数据传送,以将所述第一数据传送到所述发送阴影队列。
14.根据权利要求11到13中的任何一项所述的PCIe装置,其中,所述软件指令还用于:
连接运行在所述多插槽服务器平台外部的装置上的软件,其中,所述第二数据从其被发送,以分配接收阴影队列;以及
当从所述IB HCA接收到所述第二数据时,将所述第二数据缓存在所述接收阴影队列中。
15.根据权利要求11到14中的任何一项所述的PCIe装置,其中,所述软件指令还用于建立与所述第一委托代理进行的对称通信接口(SCIF)连接,并且将所述第一数据经由SCIF连接传送到所述第一委托代理。
16.根据权利要求11到15中的任何一项所述的PCIe装置,其中,所述软件指令还用于:
在所述存储器中分配第二发送队列;
使第三数据编入所述第二发送队列中,所述第三数据经由所述IB HCA从所述多插槽服务器平台被向外传送;以及
经由第二直连PCIe P2P传送将所述第三数据从所述第二发送队列直接传送到所述IB HCA。
17.根据权利要求16所述的PCIe装置,其中,所述软件指令还用于:
实现数据传送阈值来确定从所述PCIe装置到所述IB HCA的数据的传送是经由使用所述第一委托代理的代理路径还是经由直连P2P路径进行转发的。
18.根据权利要求11到17中的任何一项所述的PCIe装置,其中,所述本地插槽和远程插槽中的每一个都被配置在非一致存储器访问(NUMA)架构中,并且所述第一处理器和第二处理器经由插槽到插槽互连被通信地耦合,并且其中,当所述PCIe装置被安装在所述第二PCIe槽中时,所述第一数据经由NUMA数据传送从所述第一发送队列被传送到所述第一委托代理,所述NUMA数据传送包括通过所述插槽到插槽互连的路径。
19.根据权利要求11到18中的任何一项所述的PCIe装置,其中,所述本地插槽和远程插槽中的每一个都被配置在非一致存储器访问(NUMA)架构中,并且所述第一处理器和第二处理器经由插槽到插槽互连被通信地耦合,并且其中,当所述PCIe装置被安装在所述第二PCIe槽中时,所述第二数据从所述IB HCA被传送到由所述第二处理器托管的第二代理,所述第二代理将所述第二数据转发到所述PCIe装置。
20.根据权利要求11到19中的任何一项所述的PCIe装置,其中,所述PCIe装置包括许多集成核心(MIC)装置,并且所述处理器包括许多集成核心。
21.根据权利要求11到20中的任何一项所述的PCIe装置,其中,所述软件指令还用于实现生成所述第一数据并且接收所述第二数据的软件应用能够访问的数据传送接口,所述数据传送接口是兼容开放结构企业分发(OFED)的接口,并且支持使用IB动词。
22.一种多插槽服务器平台,包括:
本地插槽,其具有耦合到第一主机存储器的第一主机处理器和具有至少两个本地插槽PCIe槽的第一快速外围部件互连(PCIe)互连;
远程插槽,其具有耦合到第二主机存储器的第二主机处理器和具有至少两个远程插槽PCIe槽的第二PCIe互连;
将所述第一主机处理器与所述第二主机处理器通信地耦合的插槽到插槽互连;
安装在所述本地插槽PCIe槽的第一槽中的InfiniBand(IB)主机信道适配器(HCA);
安装在所述本地插槽PCIe槽的第二槽中的第一PCIe卡;
安装在所述远程插槽PCIe槽的第一槽中的第二PCIe卡;
其中,所述多插槽服务器平台被配置为,
经由由所述第一主机处理器托管的第一委托代理来代理从所述第一PCIe卡到所述PCIe IB HCA的第一数据的传送;
从所述PCIe IB HCA处的IB结构接收目的地为所述第一PCIe卡的第二数据;以及
经由第一PCIe对等(P2P)数据传送将所述第二数据从所述PCIe IBHCA直接传送到所述第一PCIe卡。
23.根据权利要求22所述的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为经由所述第一委托代理来代理从所述第二PCIe卡到所述PCIe IB HCA的第三数据的传送。
24.根据权利要求22或23所述的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为:
从所述PCIe IB HCA处的所述IB结构接收目的地为所述第二PCIe卡的第四数据;以及
经由由所述第二主机处理器托管的第二委托代理将所述第四数据从所述PCIe IB HCA传送到所述第二PCIe卡。
25.根据权利要求22到24中的任何一项所述的多插槽服务器平台,其中,所述多插槽服务器平台被进一步配置为:
确定从所述第一PCIe卡被传送到所述PCIe IB HCA的数据的量是否超出了阈值;以及
如果要被传送的数据的所述量超出了所述阈值,则将所述数据从所述第一PCIe卡经由所述第一委托代理转发到所述PCIe IB HCA;否则
如果要被传送的数据的所述量没有超出所述阈值,则经由第二PCIeP2P数据传送将所述数据从所述第一PCIe卡传送到所述PCIe IB HCA。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/266,241 US9558148B2 (en) | 2014-04-30 | 2014-04-30 | Method to optimize network data flows within a constrained system |
US14/266,241 | 2014-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105025070A true CN105025070A (zh) | 2015-11-04 |
CN105025070B CN105025070B (zh) | 2018-08-10 |
Family
ID=54326122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510137037.3A Active CN105025070B (zh) | 2014-04-30 | 2015-03-26 | 用于优化约束系统内的网络数据流的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9558148B2 (zh) |
KR (1) | KR101713405B1 (zh) |
CN (1) | CN105025070B (zh) |
DE (1) | DE102015102692A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592361A (zh) * | 2017-09-20 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于双ib网络的数据传输方法、装置、设备 |
WO2019140556A1 (zh) * | 2018-01-16 | 2019-07-25 | 华为技术有限公司 | 一种报文传输的方法及装置 |
WO2020177437A1 (zh) * | 2019-03-01 | 2020-09-10 | 华为技术有限公司 | 数据处理的方法、网卡和服务器 |
CN113709066A (zh) * | 2021-07-31 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种PCIe通信装置及BMC |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701710B (zh) * | 2013-12-20 | 2017-01-11 | 杭州华为数字技术有限公司 | 一种数据传输方法、核心转发设备以及端点转发设备 |
US10331595B2 (en) * | 2014-10-23 | 2019-06-25 | Mellanox Technologies, Ltd. | Collaborative hardware interaction by multiple entities using a shared queue |
US9928093B2 (en) | 2015-02-24 | 2018-03-27 | Red Hat Israel, Ltd. | Methods and systems for establishing connections associated with virtual machine migrations |
US10437747B2 (en) | 2015-04-10 | 2019-10-08 | Rambus Inc. | Memory appliance couplings and operations |
US10891253B2 (en) * | 2016-09-08 | 2021-01-12 | Microsoft Technology Licensing, Llc | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks |
US11023258B2 (en) * | 2016-12-30 | 2021-06-01 | Intel Corporation | Self-morphing server platforms |
KR101980190B1 (ko) | 2017-09-25 | 2019-05-21 | 서울대학교산학협력단 | 입출력 디바이스 제어 장치, 그것의 동작 방법 및 입출력 디바이스 제어 장치 드라이버의 동작 방법 |
WO2019169556A1 (zh) * | 2018-03-06 | 2019-09-12 | 华为技术有限公司 | 一种报文发送的方法、装置和存储设备 |
US10909066B2 (en) * | 2018-04-03 | 2021-02-02 | Microsoft Technology Licensing, Llc | Virtual RDMA switching for containerized applications |
CN112506676B (zh) * | 2020-12-02 | 2024-04-05 | 深圳市广和通无线股份有限公司 | 进程间的数据传输方法、计算机设备和存储介质 |
CN112597094B (zh) * | 2020-12-24 | 2024-05-31 | 联想长风科技(北京)有限公司 | 一种提高rdma传输效率的装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266083B2 (en) * | 2003-02-26 | 2007-09-04 | International Business Machines Corporation | Method and apparatus for implementing queue pair connection protection over infiniband |
CN101252583A (zh) * | 2007-02-23 | 2008-08-27 | 国际商业机器公司 | 启用InfiniBand网络自举的方法以及InfiniBand主机设备 |
CN101286883A (zh) * | 2008-05-04 | 2008-10-15 | 杭州华三通信技术有限公司 | 分布式设备中设备板卡的集中调试系统及集中调试方法 |
US20140115223A1 (en) * | 2012-10-19 | 2014-04-24 | Jayakrishna Guddeti | Dual casting pcie inbound writes to memory and peer devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732236B2 (en) * | 2008-12-05 | 2014-05-20 | Social Communications Company | Managing network communications between network nodes and stream transport protocol |
US8144582B2 (en) * | 2008-12-30 | 2012-03-27 | International Business Machines Corporation | Differentiating blade destination and traffic types in a multi-root PCIe environment |
JP5869135B2 (ja) * | 2011-09-30 | 2016-02-24 | インテル コーポレイション | コプロセッサのためのダイレクトi/oアクセス |
US9977482B2 (en) * | 2011-12-21 | 2018-05-22 | Intel Corporation | Method and apparatus for setting an I/O bandwidth-based processor frequency floor |
EP3008880A4 (en) * | 2013-06-13 | 2017-01-11 | TSX Inc. | Apparatus and method for failover of device interconnect using remote memory access with segmented queue |
-
2014
- 2014-04-30 US US14/266,241 patent/US9558148B2/en active Active
-
2015
- 2015-02-25 DE DE102015102692.9A patent/DE102015102692A1/de active Pending
- 2015-03-26 CN CN201510137037.3A patent/CN105025070B/zh active Active
- 2015-03-27 KR KR1020150043268A patent/KR101713405B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266083B2 (en) * | 2003-02-26 | 2007-09-04 | International Business Machines Corporation | Method and apparatus for implementing queue pair connection protection over infiniband |
CN101252583A (zh) * | 2007-02-23 | 2008-08-27 | 国际商业机器公司 | 启用InfiniBand网络自举的方法以及InfiniBand主机设备 |
CN101286883A (zh) * | 2008-05-04 | 2008-10-15 | 杭州华三通信技术有限公司 | 分布式设备中设备板卡的集中调试系统及集中调试方法 |
US20140115223A1 (en) * | 2012-10-19 | 2014-04-24 | Jayakrishna Guddeti | Dual casting pcie inbound writes to memory and peer devices |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592361A (zh) * | 2017-09-20 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于双ib网络的数据传输方法、装置、设备 |
CN107592361B (zh) * | 2017-09-20 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种基于双ib网络的数据传输方法、装置、设备 |
WO2019140556A1 (zh) * | 2018-01-16 | 2019-07-25 | 华为技术有限公司 | 一种报文传输的方法及装置 |
US11716409B2 (en) | 2018-01-16 | 2023-08-01 | Huawei Technologies Co., Ltd. | Packet transmission method and apparatus |
WO2020177437A1 (zh) * | 2019-03-01 | 2020-09-10 | 华为技术有限公司 | 数据处理的方法、网卡和服务器 |
US11620227B2 (en) | 2019-03-01 | 2023-04-04 | Huawei Technologies Co., Ltd. | Data processing method, network interface card, and server |
CN113709066A (zh) * | 2021-07-31 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种PCIe通信装置及BMC |
CN113709066B (zh) * | 2021-07-31 | 2023-04-07 | 浪潮电子信息产业股份有限公司 | 一种PCIe通信装置及BMC |
Also Published As
Publication number | Publication date |
---|---|
US9558148B2 (en) | 2017-01-31 |
US20150317280A1 (en) | 2015-11-05 |
DE102015102692A1 (de) | 2015-11-05 |
CN105025070B (zh) | 2018-08-10 |
KR101713405B1 (ko) | 2017-03-22 |
KR20150125563A (ko) | 2015-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105025070A (zh) | 用于优化约束系统内的网络数据流的方法 | |
US20220263913A1 (en) | Data center cluster architecture | |
US7404190B2 (en) | Method and apparatus for providing notification via multiple completion queue handlers | |
US11593291B2 (en) | Methods and apparatus for high-speed data bus connection and fabric management | |
KR101686360B1 (ko) | 다중슬롯 링크 계층 플릿에서의 제어 메시징 | |
US10210120B2 (en) | Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch | |
TWI570563B (zh) | 後置中斷架構 | |
EP3267322B1 (en) | Scalable direct inter-node communication over peripheral component interconnect-express (pcie) | |
US8473567B2 (en) | Generating a packet including multiple operation codes | |
US11372787B2 (en) | Unified address space for multiple links | |
CN117336381A (zh) | 多个上行链路端口设备 | |
US20100064070A1 (en) | Data transfer unit for computer | |
US7783822B2 (en) | Systems and methods for improving performance of a routable fabric | |
US11693804B2 (en) | Cross bus memory mapping | |
CN103905426A (zh) | 用于使PCIe构造上的主机到主机消息收发安全和分离的方法和装置 | |
US20210075745A1 (en) | Methods and apparatus for improved polling efficiency in network interface fabrics | |
CN102375789A (zh) | 一种通用网卡非缓存的零拷贝方法及零拷贝系统 | |
US20230325265A1 (en) | Hardware acceleration in a network interface device | |
US20240241847A1 (en) | Acceleration of network interface device transactions using compute express link | |
US20230036751A1 (en) | Sparse memory handling in pooled memory | |
US20240104045A1 (en) | System and method for ghost bridging | |
Pickartz et al. | Swift: A transparent and flexible communication layer for pcie-coupled accelerators and (co-) processors | |
WO2024073864A1 (en) | Distributed address translation services | |
Grant | Improving High Performance Networking Technologies for Data Center Clusters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |