CN105389120A - 支持通过活动消息的rma api - Google Patents
支持通过活动消息的rma api Download PDFInfo
- Publication number
- CN105389120A CN105389120A CN201510463491.8A CN201510463491A CN105389120A CN 105389120 A CN105389120 A CN 105389120A CN 201510463491 A CN201510463491 A CN 201510463491A CN 105389120 A CN105389120 A CN 105389120A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- rma
- remote
- write
- 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/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]
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
用于通过活动消息(AM)实现RMA应用程序接口(API)的方法、装置和软件。AM写请求和AM读请求从本地节点被发送到远程节点以使用远程存储器访问(RMA)技术将数据写入所述远程节点上的存储器或者从所述远程节点上的存储器读取数据。所述AM请求由相对应的AM处理机来处理,所述AM处理机自动地执行与所述请求相关联的操作。例如,对于AM写请求,AM写请求处理机可以将包含在AM写请求中的数据写入所述远程节点上的存储器中的远程地址空间,或者生成相对应的RMA写请求,所述相对应的RMA写请求被入队到根据加标签的消息传递方案所使用的RMA队列中。类似的操作由AM读请求处理器执行。通过使用相关联的读、写、以及RMA进度模块,进一步促进了使用AM的RMA读和写。
Description
背景技术
在具有分布式存储器配置(例如,集群)的计算机系统中,每一个计算节点直接访问其自身附接的本地存储器。附接到其他节点的存储器被称为远程存储器。通常,远程存储器是不可直接访问的,而使用消息传递机制在节点之间进行通信。
远程存储器访问(RMA)指给出远程存储器能够被直接访问的这一印象的软件接口。存在很多形式的RMA操作,但是最终可以将其概括为两种:读和写。读操作将数据从远程存储器地址范围复制到本地缓冲区。写操作将数据从本地缓冲区复制到远程存储器地址范围。
现有的远程存储器访问(RMA)实现方式通常分为两种类别。与第一类别相对应的实现方式利用在计算机节点之间的底层互联结构的远程直接存储器访问(RDMA)能力。无线带宽(InfiniBand,IB)主机控制器适配器(HCA)(诸如来自Mellanox的那些)支持在硬件中的RDMA功能。该能力经由被称为IBVerbs的软件接口被暴露于应用。利用IBVerbs,为了执行RMA操作,用户创建工作请求并且将其登记(post)到工作队列。然后HCA处理该队列并且执行硬件中的RDMA。第二类别所使用的方法是模拟通过常规的消息传递接口(MPI)的RMA功能。一个示例是在MPICH/MPICH2(高性能MPI)中实现单向操作。这通常以请求-应答方式完成。由于RMA操作的异步特性,通常需要单独的线程来确保请求得到处理。
现有的RMA实现有许多缺点。在基于RDMA的实现中,要求专门的硬件。在基于消息传递的实现中,与相关联的消息有关的额外的业务必须通过互联结构来被传送,因此减小了该结构的有效带宽。
附图说明
当结合附图通过参考下面的具体实施方式,本发明的上述方面和很多伴随优势将变得容易意识到并且更好地理解,其中遍及各种视图的类似的附图标记指代类似的部分,除非另外指定:
图1a是示出了根据一个实施例的其中通过使用AM写请求处理机来将数据块写入远程节点的地址空间的RMA写的示意图;
图1b是示出了根据一个实施例的其中通过使用AM读请求处理机和AM读应答处理机来从远程节点的地址空间读取数据块的RMA读的示意图;
图2a是示出了根据一个实施例的其中使用图1a中所示的方案经由多个分组来传送数据的RMA写实现的示意图;
图2b是示出了根据一个实施例的其中使用图1b中所示的方案经由多个分组来传送数据的RMA读实现的示意图;
图3a是示出了根据一个实施例的其中通过使用AM请求随后是发送操作来将数据块写入远程节点的地址空间的带标记的消息RMA写的示意图;
图3b是示出了根据一个实施例的其中通过使用AM读请求处理机、RMA进度模块、以及RMA读模块来从远程节点的地址空间读取数据块的带标记的消息RMA读的示意图;
图4是示出了与访问密钥交换和存储器注册操作相对应的本地节点与远程节点之间的消息交换的时间流图;以及
图5是根据本文所公开的实施例的被配置为便于本地节点操作和远程节点操作的方面的节点架构的方框示意图。
具体实施方式
本文描述了用于实现通过活动消息(AM)的RMA应用程序接口(API)的方法、装置和软件的实施例。在下文的描述中,阐述了许多特定细节以提供对本文所公开和示出的实施例的透彻的理解。然而,相关领域的技术人员将会意识到本发明可以在没有特定细节中的一个或多个的情况下或者使用其他方法、部件、材料等来实施。在其他实例中,没有对公知的结构、材料或操作进行详细示出或描述以避免使本发明的方面难以理解。
为了清楚起见,在本文中附图的各个部件也可以由附图中它们的标记所指代,而不是由特定的附图标记所指代。另外,指代特定类型的部件(与特定部件不同)的附图标记可以利用跟随有“(typ)”的附图标记示出,其中“(typ)”意思是“代表性的”。将会理解的是,这些部件的配置将是可以存在但为了简洁和清楚未在附图中示出的类似部件或者另外没有利用单独的附图标记标注的类似部件的代表。相反地,“(typ)”不应被解释为意指该部件、元件等典型地被用于其所公开的功能、实现、目标等。
根据本文所公开的实施例的方面,实现了活动消息技术以便于RMA写操作和RMA读操作,在所述RMA写操作和RMA读操作中使用RMA将数据写入远程节点中的存储器或从远程节点中的存储器中读出数据。AM的基本思想是当消息到达时允许在目标端自动地执行一段代码。该段代码被称为AM处理机。利用AM机制能够预先注册多个AM处理机,并且AM消息可以通过指定针对AM处理机的相对应的标识符,来指代多个AM处理机中的任何。AM消息可以是或者请求或者应答,二者都能承载数据加一些额外的控制信息,并且能够引发所指定的处理机的执行。AM请求可以被发布在除了AM处理机内之外的任何地方;而AM应答只能够在AM处理机内发布,并且针对每一个AM请求最多可以发布一个应答。
根据本文所公开的实施例的方面,当相对应的AM请求或应答到达其目标时自动地执行活动消息处理机。这提供了RMA操作所需要的必要的异步处理机制。基本上,RMA写操作能够被实现为:承载来自源缓冲区的数据的AM请求以及将该数据复制到目标地址的AM处理机。RMA读操作能够被实现为:承载目标地址信息的AM请求,经由AM应答将数据送回的AM处理机,以及将该数据复制到目的缓冲区的另一AM处理机。
图1a和图1b示出了根据一个实施例的用于在本地节点100和远程节点102之间传送数据块的写和读AM机制。如图1a所示,本地节点100包括源缓冲区(src_buf)104、RMA写(rma_write())模块106、以及AM写应答处理机108。远程节点102包括AM写请求处理机110和RMA地址空间112。本地节点100经由互联114通信地耦合到远程节点102。
从源缓冲区104到RMA地址空间112的元数据块116的RMA写进行如下。源数据116经由RMA写模块106从源缓冲区104中读取,RMA写模块106生成AM写请求118,AM写请求118通过互联114被发送到AM处理机110。AM写请求118包括源数据116,以及关于源数据116要被写入的远程存储器范围的信息。这包括数据116的开始将被写入的RMA地址空间112中的起始地址(rma_addr),并且可以可选地包括尺寸(长度)、访问密钥和/或消息标签。AM写请求处理机然后在目标端(AM写请求处理机110)经由DMA或存储器复制操作120,将源数据116复制到开始于地址rma_addr的RMA地址空间112。在一个实施例中,如果完成事件是期望的,则当AM写请求处理机110已经完成将源数据116复制到RMA地址空间112时,可以将可选的AM写应答122发送回到启动器(本地节点100)。如所示出的,AM写应答122指向AM写应答处理机108,AM写应答处理机108被配置为处处理所述完成事件。
图1b进一步示出了本地节点100和远程节点102结合RMA读操作所采用的资源和AM。这些可以包括目的缓冲区(dest_buf)124、RMA读(rma_read())模块126和针对本地节点100的AM读应答处理机128、以及针对远程节点102的AM读请求处理机130。在一个实施例中,AM写应答处理机108和AM读应答处理机128与相同的AM处理机相对应。类似地,在一个实施例中,AM写请求处理机110和AM读请求处理机130与相同的AM处理机相对应。
RMA读操作的操作进行如下。RMA读API126将AM读请求132发送到AM读请求处理机130,AM读请求132标识了要被读取的数据(例如,远程数据134)被存储的开始于rma_addr的远程地址范围。在一个实施例中,AM读请求132包括起始地址(rma_addr)、长度,并且可以包括访问密钥和/或消息标签。响应于接收到AM读请求132,AM读请求处理机130经由指向AM读应答处理机128的AM读应答136将远程数据134的拷贝从远程节点102发送到本地节点100。在接收到AM读应答136之后,AM读应答处理机128提取该远程数据134的拷贝,并且执行DMA或存储器拷贝138以将远程数据134的拷贝写入目的缓冲区124,完成RMA读操作。
通常,AM机制可能具有能够经由单个AM消息传送的数据量的限制。为了克服这样的限制,比针对单个AM消息的限制更大的数据量可以被分为较小的数据单元(例如,分组),并且以流水线的方式被传送。在图2a和2b中示出了RMA读和RMA写操作的示例,所述RMA读和RMA写操作使得使用该技术通过互联204在本地节点200和远程节点202之间进行数据传送。
如图2a中所示,本地节点200包括具有多个槽208的源缓冲区206、RMA读模块210和AM写应答处理机212。远程节点202包括AM写请求处理机214、以及被划分为多个槽218的RMA存储器空间216。
流水线式的RMA写进行如下。存储在源缓冲区206中的相应的槽中的数据经由RMA写模块210被访问并且经由相应的AM写请求222被传送作为多个分组220。与上面类似,在一个实施例中,每一个AM写请求222包括起始地址(rma_addr)、以及可选的长度、访问密钥和/或消息标签。每一个AM请求222在由AM处理机214接收之后被处理,使得生成相应的存储器拷贝224,所述相应的存储器拷贝224将数据写入在RMA地址空间216中开始于rma_addr的相对应的地址范围。在采用完成事件的实施例中,一个或多个AM写应答226被返回到AM处理机212。例如,可以针对每一个完成的分组写来返回AM写应答,或者AM写应答可以确认多个分组写的完成,诸如针对给定源数据传送提供单个AM写应答226,而不管被发送的分组的数量。
为了说明性的目的,针对每一个分组220的源数据的部分被描绘为存储在源缓冲区206中相应的槽208中,并且被写入RMA地址空间216中相应的槽218;然而,将会认识到,源缓冲区206和/或RMA地址空间216不需要被划分为多个槽,而是可以通常被配置为其中可以存储数据的一个或多个地址空间。另外,每一个分组220的尺寸可以是相同的,或者可以使用不同的尺寸。例如,在一个实施例中,使用了采用可适用于由互联204使用的底层传输协议的最大传送单元(MTU)的分组(注意最后一个分组可以具有小于MTU的尺寸)。同时,分组中所包含的数据应当以对要经由多个分组被传送的源数据的块进行复制的方式被写入RMA地址空间216。在一个实施例中,按顺序写入分组数据,而在其他实施例中允许乱序写入,只要在完成时被写入的数据块包括源数据块的副本。
如图2b中所示,本地节点200还包括具有多个槽230的目的缓冲区228、RMA读模块232和AM读应答处理机234。远程节点202还包括AM读请求处理机236。与多分组RMA写一样,使用多个分组经由RMA读模块232来传送数据。每一个分组传送与针对图1b的RMA读的数据块传送类似,并且进行如下。RMA读模块232发送目标为由AM读请求处理机236处理的AM读请求240。每一个AM读请求240标识要被读取的远程数据被存储在的开始于rma_addr的远程地址范围。与上面类似,在一个实施例中AM读请求240包括起始地址(rma_addr)、长度和可选的访问密钥和/或消息标签。
响应于接受到每一个AM读请求240,AM读请求处理机236经由指向AM读应答处理机234的AM读应答242将包括分组241的远程数据的部分的拷贝从远程节点202发送到本地节点200。在接收到每一个AM读应答242之后,AM读应答处理机234提取分组241中的远程数据的拷贝,并且执行DMA或存储器复制244以将经由分组241传送的远程数据的拷贝写到目的缓冲区228中相对应的槽230,完成针对该分组的RMA读操作。与上面所讨论的以及图2a中描绘的多分组读操作一样,使用针对目的缓冲区228的槽和RM地址空间216是出于举例说明的目的,这是因为分组的尺寸在各种实施例中可以不同。
分组尺寸可以是经由流水线实现可达到的最大带宽的限制因素。然而,针对大型数据传送的额外的性能增强可以通过利用加标签的消息传递机制来完成,如果这样的机制是可用的。加标签的消息传递在以下方面是与普通的消息传递是类似的:它们二者都被执行为在一端发送而在另一端接收。然而,加标签的消息传递还将标签附连到每一个消息,使得接收机可以选择接收何消息。这有效地将单通信信道变为多信道。在一个实施例中,使用标签来标识不同的RMA操作,以便确保成对的发送操作和接收操作之间的一对一匹配。
使用加标签的消息的读操作和写操作的示例在图3a和3b中示出。如图3a的加标签的消息写操作中所示,源数据块经由互联304从本地节点300被传送到远程节点302。更详细地,本地节点300包括在其中存储源数据的源缓冲区306以及RMA写模块308,而远程节点302包括AM写请求处理机310、RMA进度模块312和RMA地址空间314。
加标签的消息写操作进行如下。RMA写包括AM写请求316,随后是发送操作318。AM写请求316只承载关于远程地址范围的信息,而没有任何数据负载;而发送数据320经由随后的发送操作318被传送。在接收到AM写请求316之后,AM处理机310生成相对应的RMA写请求,并且经由入队操作322将RMA写请求放置到RMA队列324中。当入队的RMA写请求随后由RMA进度模块312处理时跟随出队操作326,发布接收操作328,使用由AM写请求316所提供的远程地址范围作为RMA地址空间314中的接收缓冲区。该接收操作应当与在启动器端(即,本地节点300)登记的发送320相匹配,并且使源数据进入RMA地址空间314中预期的远程地址范围。通常,发送AM写请求以及发送相对应的数据可以是异步的,尽管优选地AM写请求应当先于其相关联的数据发送。在一个实施例中,接收操作328可以在成块的发送数据320被写入RMA地址空间314之前暂时地对所述成块的发送数据320进行缓存。
如图3b所示,本地节点300还包括目的缓冲区330和RMA读模块332,其被配置为便于加标签的消息读操作进行如下。与加标签的消息写操作一样,RMA读由接收操作以及随后的AM读请求所构成,并且AM读请求处理机将使得发送操作在目标端被发布。在目标端的RMA队列是需要的,这是因为消息传递操作通常不能在AM处理机内部发布。
如图3b所示出的,RMA读模块332发布AM读请求334,AM读请求334指向远程节点302上的AM读请求处理机336,并且由AM读请求处理机336所接收。AM读请求处理机336生成相对应的RMA读请求,并且将该读请求入队在RMA读请求队列338中,而RMA进度模块312中的发送块340从RMA读请求队列338中将读请求出队,从RMA地址空间314中取回相对应的数据,并且经由发送操作342将数据发送到RMA读模块332中的接收操作344。接收操作344然后将数据写入目的缓冲区330,完成该远程读操作。
取决于所使用的特定方法,根据上述实施例要被用于RMA写操作和读操作的存储器地址空间可以要求或可以不要求预先注册。例如,一些实施例采用PSM(性能缩放消息传递,PerformanceScaledMessaging),其不需要存储器注册。PSM定义了被设计专用于HPC的API。其定义了加标签的消息传递API,所述加标签的消息传递API处理高级性能并且能够高效地支持消息传递接口(MPI)标准的实现。与此同时,PSM的内部实现能够集中于与数据移动策略和调试以及诸如QoS(服务质量)、分散例程、弹性等高级特征相关的互联特定细节。活动消息也可以被提供为实验性特征。
PSM被设计为被实现为用户空间库。用于使用PSM来执行RMA数据传送的细节在由PSM的开发者QLogic所出版的PSM程序员手册的版本中或者在OpenFabics联盟所出版的各种PSM相关文档中被提供。PSM包括在作为版本1.5.2的OFED(OpenFabrics企业发行版)中,并且与IBVerbs对等。尽管目标是在无线带宽(InfiniBand)中使用,但是本文在采用PSM的实施例中,类似PSM的功能可以针对非无线带宽硬件(诸如,以太网适配器)来实现。
如上所提及的,PSM不需要存储器注册。可选地,可以实现轻量级的存储器注册机制以提供访问确认。该实现考虑可以包括要被访问的存储器区域控制结构,诸如,连续的地址空间或被分类的地址范围的杂乱列表。在一个实施例中,控制结构地址可以被用作访问密钥。
图4示出了通过经由网络链路404连接的本地节点400与远程节点402执行的操作和消息传递时间流。尽管网络链路404被描述为直接连接,但应当理解的是,网络链路404可以穿过一个或多个另外的网络元件,诸如交换机等。时间流开始于本地节点400对本地节点400的本地存储器中的一个或多个地址空间内的一个或多个地址范围406进行注册。本地节点400然后经由密钥发布消息410发布访问密钥408,其被发送到一个或多个远程节点,诸如远程节点402。在一个实施例中,访问密钥408被编码以标识由本地节点400所注册的已注册的地址范围/空间。
随后,访问密钥408被用于确认由远程节点402发布的RMA写和RMA读请求以访问由本地节点400注册的地址范围/空间内的存储器。如图4的较低部分所描绘的,与AM写请求或AM读请求相对应的消息412从远程节点402被发送到本地节点400。消息412包括访问密钥408。在接收之后,AM写或AM读由本地节点400使用访问密钥408来进行确认。该确认操作也可以确认由起始地址和请求的显式尺寸或被检测的尺寸所指定的地址范围以验证其是否为所注册的地址范围/空间。如果确认成功,则允许对所注册的存储器的访问;否则不允许。在一个实施例中,如果远程节点402的AM写和AM读请求确认失败,则访问错误消息416被返回到远程节点402。
图5是被配置用于被实现作为(本地)节点500的示例性装置的方框示意图,节点500可以用于实现本文所公开的实施例的方面。(应当认识到,“本地”或“远程”节点的上下文是来自节点的视点,并且本文所描述的操作和功能可以由在RMA写操作或读操作的上下文中操作作为本地节点或者远程节点的单个节点来实现。)在一个实施例中,节点500包括被配置为安装在服务器机箱中的服务器刀片或服务器模块。该服务器刀片/模块包括在其上装配有各种部件的主板502,所述各种部件包括处理器504、存储器506、存储装置508和网络接口510。主板502一般包括用于从服务器机箱接收电力以及用于与机箱中的其他部件进行通信的一个或多个连接器。例如,普通刀片服务器或模块架构采用包括多个连接器的底板等,在所述底板中安装了相应的服务器刀片或模块的配套连接器。
处理器504包括CPU512,CPU512包括一个或多个核。CPU和/或核耦合到互联514,互联514是在处理器中实现的一个或多个互联的举例示出(并且为了简洁被示出为单个互联)。互联514也耦合到存储器接口(I/F)516和PCIe(快速外围部件互联)接口518。存储器接口516耦合到存储器506,而PCIe接口518提供了用于将处理器504耦合到各种输入/输出(I/O)设备的接口,各种输入/输出(I/O)设备包括存储装置508和网络接口510。通常,存储装置508是一个或多个非易失性存储设备的举例示出,例如但不限于磁盘驱动或光盘驱动、固态驱动器(SSD)、闪速存储器芯片或模块等。
网络接口510是可以在服务器节点中实现的各种类型的网络接口的举例示出,诸如,以太网适配器或NIC。网络接口510包括PCIe接口520、直接存储器访问(DMA)引擎522、发射缓冲区524、接收缓冲区526、MAC模块530和分组处理引擎或NPU(网络处理器单元)532。网络接口510还包括PHY电路534,PHY电路534包括用于实现以太网物理层的电路和逻辑。也描绘了可选的协调层536。
PHY电路534包括PHY子层538a-d的集合、串行器/串并转换器(SERDES)540、包括发射缓冲区544和一个或多个发射机546的发射端口542,以及包括接收缓冲区550和一个或多个接收机552的接收端口548。节点500还被示出为经由有线或光链路560被链接在与包括接收端口556和发射端口558的远程节点554进行的通信中。取决于所实现的特定的以太网PHY,可以采用PHY子层的不同组合,以及不同的发射机和接收机配置。例如,10GEPHY将采用与40GE或100GEPHY不同的PHY电路。
各种软件部件在CPU512的一个或多个核上执行以实现本实施例的基于软件的方面,诸如上文参考图1a、1b、2a、2b、3a和3b所描述的那样。图5中描绘的示例性软件部件包括主机操作系统562、应用564、以及用于实现各种AM处理机566和RMA模块568的软件指令。这些软件部件的全部或部分通常将会存储在节点板上,如存储装置508所描绘的那样。另外,根据一些实施例,所述部件中的一个或多个可以通过网络下载并且被载入到存储器506和/或存储装置508中。
在节点500的操作期间,主机操作系统562的部分将与在OS用户空间中执行的一个或应用564一起被载入到存储器506中。AM处理机566和RMA模块558通常可以使用OS驱动器等来实现,或者可以被实现为在OS用户空间中执行的软件部件。在一些实施例中,AM处理机566和/或RMA模块558中的全部或部分可以被实现为在网络接口510中实现的一个或多个处理元件上执行的嵌入式软件,诸如,分组处理引擎/NPU532。作为另一选项,AM处理机操作和/或RMA模块操作中的全部或部分可以经由托管在节点502上的一个或多个虚拟机(未示出)来实现。
在图5中所示的实施例中,MAC模块530被描绘为包括硬件部件的网络接口510的部分。用于实现由网络接口510所支持的各种操作的逻辑可以经由运行在分组处理引擎/NPU532或一个或多个其他处理器元件上的嵌入式逻辑和/或嵌入式软件来实现。作为示例,嵌入式逻辑可以被采用用于针对从发射端口542向外传送来准备上层分组。这包括在以太网分组中的上层分组(例如,TCP/IP、UDP、其他协议等)的封装以及其后以太网分组的成帧,其中以太网分组用于生成以太网帧的流。
通常,由分组处理引擎/NPU532执行的分组处理操作可以经由嵌入式逻辑和/或嵌入式软件来实现。分组处理被实施用于管理网络接口510内的以及还有网络接口510和存储器506之间的数据的转发。这包括DMA引擎522的使用,DMA引擎522被配置为使用DMA写将数据从接收缓冲区526转发到存储器506,使得以不涉及CPU512的方式经由PCIe接口520和518来将数据转发到存储器506。在一些实施例中,发射缓冲区524和接收缓冲区526包括存储器映射IO(MMIO)地址空间,其被配置为便于使用网络领域已知的技术在这些缓冲区和存储器506之间进行DMA数据传送。
MAC层操作可以不被实现在运行在主处理器504上的软件中、或者MAC层操作的全部或部分可以被实现在运行在主处理器504上的软件中。在使用分离MAC架构的一个实施例中,以太网分组封装和解封装操作在软件中实现,而以太网成帧和去帧经由硬件(例如,经由运行在网络接口510上的分组处理引擎/NPU532上的嵌入式逻辑或嵌入式软件)来实现。
RMA写和采用AM请求、AM应答和相关联的AM处理机的RMA方案提供了超越现有RMA技术的优势。例如,由于这些方案可以经由在主机上执行的软件来实现,所以先前要求的专门配置的硬件(例如,无线带宽HCA)的RMA数据传送可以被扩展为使用其他协议,诸如但不限于以太网。该方案可以与现有技术组合,诸如使用PSM或加标签的消息API以进一步增强功能和性能。
本文所描述的主题的进一步的方面,在以下编号的条款中进行陈述:
1、一种用于执行在远程节点和本地节点之间的远程存储器访问(RMA)数据传送的方法,所述方法包括:
执行RMA写,通过以下来在所述RMA写中将数据从所述本地节点写入所述远程节点:
从所述本地节点上的源缓冲区中读取要被写入的数据;
将第一活动消息(AM)写请求从所述本地节点发送到所述远程节点上的AM处理机,所述第一AM写请求包含要被写入的数据以及所述数据要被写入的在所述远程节点上的远程存储器地址空间中的起始地址;以及
利用所述远程节点上的AM处理机,通过从所述第一AM写请求提取所述数据并且将所述数据写入所述远程存储器地址空间中的开始于所述起始地址的地址范围,来操作所述第一AM写请求。
2、根据条款1所述的方法,还包括:
将AM写应答从所述远程节点发送到所述本地节点,所述AM写应答指示所述数据已经被成功地写入所述远程存储器地址空间;以及
采用所述本地节点上的AM处理机来处理所述AM写应答消息。
3、根据条款1或2所述的方法,还包括:
将要被写入的所述数据划分为多个分组;
对于所述多个分组中的每一个,
从所述本地节点上的源缓冲区读取与所述分组相对应的分组数据;
将相应的AM请求从所述本地节点发送到所述远程节点上的AM处理机,所述相应的AM请求包含所述分组数据和所述分组数据要被写入的所述远程节点上的远程存储器地址空间中的起始地址;以及
利用所述远程节点上的AM处理机,通过从所述相应的AM请求提取所述分组数据,并且将所述数据写入所述远程存储器地址空间中的开始于所述起始地址的地址范围,来操作所述相应的AM,
其中所述第一AM写请求与用于传送所述多个分组的第一分组的数据的AM写请求相对应。
4、根据条款3所述的方法,还包括:
检测到所述分组数据的全部已经被成功地写入所述远程存储器地址空间;
将AM应答从所述远程节点发送到所述本地节点,所述AM应答指示所述分组数据已经被成功地写入所述远程存储器地址空间;以及
采用所述本地节点上的AM处理机来处理所述AM应答消息。
5、根据前述条款中的任何所述的方法,还包括:
执行RMA读,在所述RMA读中,通过以下来将数据从所述远程节点读取并且传送到所述本地节点:
将AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的数据在所述远程地址空间中的地址范围;
响应于接收到所述AM读请求消息,经由所述远程节点上的AM处理机取回要从所述远程地址空间被读取的所述数据,并且经由AM读应答消息将所取回的数据发送到所述本地节点;以及
利用所述本地节点上的AM处理机,通过从所述AM读应答中提取所述数据,并且将所述数据写入所述本地节点上的目的缓冲区,来处理所述AM读应答。
6、根据前述条款中的任何所述的方法,还包括:
执行RMA读,在所述RMA读中使用多个分组,数据从所述远程节点被读取并且被传送到所述本地节点,其中通过以下来将所述多个分组中的每一个分组的数据进行传送:
将相应的AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的分组数据在所述远程地址空间中的地址范围;
响应于接收到所述AM读请求消息,经由所述远程节点上的AM处理机取回要从所述远程地址空间被读取的所述分组数据,并且经由AM读应答消息将所取回的分组数据发送到所述本地节点;以及
利用所述本地节点上的AM处理机,通过从所述AM读应答中提取所述分组数据,并且将所述分组数据写入所述本地节点上的目的缓冲区,来处理所述AM读应答。
7、根据前述条款中的任何所述的方法,还包括:
使用加标签的消息传递方案,来采用加标签的消息用于所述第一AM写请求;以及
采用所述远程节点上的AM处理机来检查所述加标签的消息,以验证所述远程节点是所述第一AM写请求的预期的接收者。
8、根据前述条款中的任何所述的方法,还包括:在所述本地节点处,对在所述远程节点上的远程存储器地址空间中的至少一个地址范围进行注册,使用从所述远程节点发送的一个或多个AM写请求,数据可以被写入所述至少一个地址范围。
9、根据条款8所述的方法,还包括:
将访问密钥发布到与在所述本地节点注册的至少一个地址范围相对应的远程节点;
将所述访问密钥包括在所述第一AM写请求中;以及
经由所述远程节点上的AM处理机来检查所述访问密钥,以确认所述第一AM写请求是否被允许。
10、一种其上存储有指令的第一集合和指令的第二集合的非暂时性机器可读介质,所述指令的第一集合和指令的第二集合被配置为分别在本地节点和远程节点上执行以实现前述条款中的任何所述的方法。
11、一种用于执行在远程节点和本地节点之间的远程存储器访问(RMA)数据传送的方法,所述方法包括:
执行RMA写,在所述RMA写中通过以下将数据从所述本地节点写入所述远程节点,
将第一活动消息(AM)写请求从所述本地节点发送到所述远程节点上的AM处理机,所述第一AM写请求标识所述数据要被写入的所述远程节点上的远程存储器地址空间中的地址范围;以及
从所述本地节点上的源缓冲区中读取要被写入的数据,并且将所述数据发送到所述远程节点;
处理由所述远程节点接收到的所述数据,以使得所述数据被写入所述远程存储器地址空间以占用在所述第一AM写请求中标识的所述地址范围。
12、根据条款11所述的方法,还包括:
接收多个AM写请求,每一个AM写请求标识与随后要被发送的所述AM写请求相关联的数据块要被写入的所述远程节点上的远程存储器地址空间中的地址范围,每一个AM写请求包括标识相关联的数据的块的标记;
经由所述远程节点上的AM处理机,将每一个AM写请求入队到所述远程节点上的RMA写队列;
从所述远程节点接收多个数据块,每一个数据块与先前接收的AM写请求相关联并且包含标记,根据所述标记能够识别出先前接收到的AM写请求;
将所述AM写请求从所述RMA写队列中出队;以及
处理每一个出队的AM写请求以确定所接收的与所述AM写请求相关联的数据块被写入所述远程存储器地址空间中的何处。
13、根据条款11或12所述的方法,还包括执行RMA读,在所述RMA读中通过以下将数据从所述远程节点读取并且传送到所述本地节点,
将AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的数据在所述远程地址空间中的地址范围;
响应于接收到所述AM读请求消息,经由所述远程节点上的AM处理机,生成与标识要被读取的数据在所述远程地址空间中的地址范围的AM读请求相对应的RMA读请求;
在所述远程节点上处理所述RMA读请求,使得要从由所述RMA读请求中的所述地址范围定义的所述远程地址空间中读取的所述数据从所述远程地址空间中被取回,并且被发送到所述本地节点;以及
将从所述远程节点发送的所取回的数据写入所述本地节点的目的缓冲区。
14、根据条款13所述的方法,还包括:
响应于接受到所述AM读请求消息,经由所述远程节点上的AM处理机,生成与AM读请求相对应的RMA读请求并且将所述RMA读请求入队到所述远程节点上的RMA读请求队列,所述RMA读请求标识要被读取的数据在所述远程地址空间中的地址范围;
将所述RMA读请求从所述RMA读请求队列中出队;以及
从由所述RMA读请求中的所述地址范围定义的所述远程地址空间取回要被读取的所述数据并且将所取回的数据发送到所述本地节点。
15、根据条款14所述的方法,其中,所述出队操作、数据取回和发送操作由与所述远程节点上的AM处理机分离的所述远程节点上的RMA读功能来执行。
16、根据条款11-15中的任何所述的方法,还包括:在所述本地节点处对在所述远程节点上的远程存储器地址空间中的至少一个地址范围进行注册,使用从所述远程节点发送的一个或多个AM写请求,数据可以被写入所述至少一个地址范围。
17、根据条款16所述的方法,还包括:
将访问密钥公布到所述远程节点,所述访问密钥与在所述本地节点注册的至少一个地址范围相对应;
将所述访问密钥包括在所述第一AM写请求中;以及
经由所述远程节点上的AM处理机来检查所述访问密钥以确认所述第一AM写请求是否被允许。
18、一种其上存储有指令的第一集合和指令的第二集合的非暂时性机器可读介质,所述指令的第一集合和指令的第二集合被配置为分别在本地节点和远程节点上执行以实现条款11-17中的任何所述的方法。
19、一种装置,包括:
网络接口;
存储器,其包括本地存储器地址空间;
写请求活动消息(AM)处理器,其被配置为,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的第一AM写请求,所述第一AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应,并且包含要被写入所述存储器中的本地存储器地址空间中的起始地址处的第一数据,其中所述数据要被写入所述存储器中的本地存储器地址空间中的起始地址处;
通过从所述第一AM写请求提取所述数据并且将所述数据写入所述远程存储器地址空间中的开始于所述起始地址的地址范围,来处理所述第一AM写请求;以及
将AM写应答发送到所述远程装置,所述AM写应答指示所述数据已经被成功地写入所述远程存储器地址空间。
20、根据条款19所述的装置,还包括:
RMA写模块,其被配置为执行AM写操作,在所述AM写操作中,与针对所述远程装置的存储器中的远程存储器地址空间的RMA写相对应的第二AM写请求被生成并且被发送到所述远程装置,所述第二AM写请求包含要被写入所述远程存储器地址空间中的起始地址的第二数据,其中所述数据要被写入所述远程存储器地址空间中的起始地址;以及
写应答AM处理机,其被配置为在成功地将所述第二数据写入所述远程存储器地址空间之后来对从所述远程装置发送的AM写应答进行处理。
21、根据条款20所述的装置,还包括源缓冲区,并且其中所述RMA写模块进一步被配置为:
将要被写入所述远程存储器地址空间的第三数据划分为多个分组;
对于所述多个分组中的每一个,
从所述源缓冲区读取与所述分组相对应的分组数据;以及
将相应的AM写请求发送到所述远程装置上的写请求AM处理机,所述相应的AM写请求包含所述分组数据和所述分组数据要被写入的所述远程装置上的远程存储器地址空间中的相应的起始地址。
22、根据条款19-21中的任何所述的装置,其中,所述写请求AM处理机还被配置为:
从所述远程装置接收多个AM写请求,所述多个AM写请求中的每一个包含与第三数据的远程写相对应的相应的分组数据,所述第三数据被划分为多个分组并且被写入在所述本地存储器地址空间的相应的起始地址处的本地存储器地址空间中;
针对所述多个AM写请求中的每一个提取所述分组数据,并且将所述数据写入开始于由所述AM写请求标识的起始地址的所述本地存储器地址空间中;
检测到所述第三数据的全部已经被写入所述本地存储器地址空间;以及
将AM写应答发送到所述远程装置,所述AM写应答指示所述第三数据已经被成功地写入所述本地存储器地址空间。
23、根据条款19-22中的任何所述的装置,还包括:
在所述本地存储器中的目的缓冲区;
读应答AM处理机;以及
RMA读模块,其被配置为,
生成AM读请求并且将所述AM读请求发送到所述远程装置上的读请求AM处理机,所述AM读请求标识要被读取的所述远程装置的数据在所述远程地址空间中的地址范围;
响应于所述AM读请求,从所述远程装置接收包含从所述远程地址空间读取的数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述数据并且将所述数据写入所述目的缓冲区,来处理所述AM读应答。
24、根据条款19-23中的任何所述的装置,其中,所述RMA读模块进一步被配置为执行RMA读,在所述RMA读中,使用多个分组,数据从所述远程装置中被读取并且被传送,其中通过以下来远程地读取所述多个分组中的每一个分组的数据:
将相应的AM读请求发送到所述远程装置上的AM读请求处理机,所述AM读请求标识要被读取的分组数据在所述远程地址空间中的地址范围;
响应于每一个相应的AM读请求,从所述远程装置接收包含从所述远程地址空间读取的分组数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述分组数据并且将所述分组数据写入所述目的缓冲区,来处理所述AM读应答。
25、根据条款19-24中的任何所述的装置,还包括:
读请求AM处理机,其被配置为,
从所述远程装置接收AM读请求,所述AM读请求标识包含要被读取的数据在内的数据的本地地址空间中的地址范围;
从在所述AM读请求中标识的所述地址范围中取回所述数据;以及
将AM应答发送到所述远程装置,所述AM应答包含被取回的所述数据。
26、一种装置,包括:
网络接口;
存储器,其包括本地存储器地址空间;
写请求活动消息(AM)处理器,其被配置为,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的多个AM写请求,每一个AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应并且包含要被写入所述本地存储器地址空间的相应的数据,以及所述相应的数据的开始要被写入的起始地址;以及
生成RMA写请求并且将所述RMA写请求入队到RMA写队列;以及
RMA进度模块,其被配置为:
从所述远程装置接收多个数据块,每一个数据块与先前接收的AM写请求相关联并且包含标记,根据所述标记能够识别出相对应的RMA写请求;
将所述RMA写请求从所述RMA写队列中出队;以及
处理每一个出队的RMA写请求以确定与所述RMA写请求相关联的所接收的数据块被写入所述本地存储器地址空间中的何处。
27、根据条款26所述的装置,还包括:
在所述存储器中的源缓冲区;以及
RMA写模块,其被配置为,
将AM写请求发送到所述远程装置,所述AM写请求标识所述数据要被写入的所述远程装置上的存储器中的远程存储器地址空间中的地址范围;
从所述源缓冲区中读取要被写入的数据;以及
将所述数据发送到所述远程装置,其中所述数据在发送所述AM写请求之后被发送,并且所述数据与标记一起被发送,所述标记被配置为用于与被发送到所述AM写请求的数据相匹配。
28、根据条款26或27所述的装置,还包括:
RMA读请求队列;
读请求AM处理机,其被配置为
从所述远程装置接收AM读请求,所述AM读请求标识要被读取的数据在所述本地地址空间中的地址范围;
响应于接收到所述AM读请求消息,生成相对应的RMA读请求,所述RMA读请求标识要被读取的数据在所述本地地址空间中的地址范围;以及
将所述RMA读请求入队到所述RMA读请求队列;以及
RMA进度模块,其被配置为,
将所述RMA读请求从所述RMA读请求队列中出队;
从由在所述RMA读请求中的地址范围定义的本地地址空间中读取数据;以及
将被读取的数据发送到所述远程装置。
29、根据条款28所述的装置,还包括:
占用所述存储器的一部分的目的缓冲区;以及
RMA读模块,其被配置为,
将AM读请求发送到所述远程装置,所述AM读请求标识要被读取的所述远程装置上的存储器中的远程地址空间中的地址范围;
从所述远程装置接收已经从所述远程地址空间中读取的数据;以及
将所接收的数据写入所述目的缓冲区。
30、一种其上存储有指令的非暂时性机器可读介质,所述指令被配置为在节点上执行,所述节点包括网络接口以及包括本地地址空间的存储器,所述指令包括:
写请求活动消息(AM)处理机,其被配置为,当被执行时,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的第一AM写请求,所述第一AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应并且包含要被写入在所述存储器中的本地存储器地址空间中的起始地址处的第一数据,其中所述数据要被写入在所述存储器中的本地存储器地址空间中的起始地址处;
通过从所述第一AM写请求提取所述数据并且将所述数据写入所述远程存储器地址空间中的开始于所述起始地址的地址范围,来处理所述第一AM写请求;以及
将AM写应答发送到所述远程装置,所述AM写应答指示所述数据已经被成功地写入所述远程存储器地址空间。
31、根据条款30所述的非暂时性机器可读介质,还包括指令,所述指令包括:
RMA写模块,其被配置为执行AM写操作,在所述AM写操作中,与针对所述远程装置的存储器中的远程存储器地址空间的RMA写相对应的第二AM写请求被生成并且被发送到所述远程装置,所述第二AM写请求包含要被写入在所述远程存储器地址空间中的起始地址的第二数据,其中所述数据要被写入在所述本地存储器地址空间中的起始地址;以及
写应答AM处理机,其被配置为在成功地将所述第二数据写入所述远程存储器地址空间之后对从所述远程装置发送的AM写应答进行处理。
32、根据条款31所述的非暂时性机器可读介质,其中,所述节点还包括源缓冲区,并且其中所述RMA写模块进一步被配置为:
将要被写入所述远程存储器地址空间的第三数据划分为多个分组;
对于所述多个分组中的每一个,
从所述源缓冲区读取与所述分组相对应的分组数据;以及
将相应的AM写请求发送到所述远程装置上的写请求AM处理机,所述相应的AM写请求包含所述分组数据和所述分组数据要被写入的所述远程装置上的远程存储器地址空间中的相应的起始地址。
33、根据条款30-32中的任何所述的非暂时性机器可读介质,其中,所述写请求AM处理机还被配置为:
从所述远程装置接收多个AM写请求,所述多个AM写请求中的每一个包含与第三数据的远程写相对应的相应的分组数据,所述第三数据被划分为多个分组并且被写入在所述本地存储器地址空间中相应的起始地址处本地存储器地址空间中;
针对所述多个AM写请求中的每一个提取所述分组数据,并且将所述数据写入开始于由所述AM写请求所标识的起始地址的所述本地存储器地址空间;
检测到所述第三数据的全部已经被写入所述本地存储器地址空间;以及
将AM写应答发送到所述远程装置,所述AM写应答指示所述第三数据已经被成功地写入所述本地存储器地址空间。
34、根据条款30-33中的任何所述的非暂时性机器可读介质,其中,所述节点还包括在所述本地存储器中的目的缓冲区,并且所述指令还包括:
读应答AM处理机;以及
RMA读模块,其被配置为,在执行时
生成AM读请求并且将所述AM读请求发送到所述远程装置上的读请求AM处理机,所述AM读请求标识要被读取的所述远程装置的数据在所述远程地址空间中的地址范围;
响应于所述AM读请求,从所述远程装置接收包含从所述远程地址空间读取的所述数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述数据并且将所述数据写入所述目的缓冲区,来处理所述AM读应答。
35、根据条款30-34中的任何所述的非暂时性机器可读介质,其中,所述RMA读模块进一步被配置为执行RMA读,在所述RMA读中,使用多个分组数据,从所述远程装置中被读取并且被传送,其中通过以下来远程地读取所述多个分组中的每一个分组的数据:
将相应的AM读请求发送到所述远程装置上的AM读请求处理机,所述AM读请求标识要被读取的分组数据在所述远程地址空间中的地址范围;
响应于每一个相应的AM读请求,从所述远程装置接收包含从所述远程地址空间读取的分组数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述分组数据并且将所述分组数据写入所述目的缓冲区,来处理所述AM读应答。
36、根据条款30-35中的任何所述的非暂时性机器可读介质,其中,所述指令还包括:
读请求AM处理机,其被配置为,
从所述远程装置接收AM读请求,所述AM读请求标识包含要被读取数据在内的数据在本地地址空间中的地址范围;
从在所述AM读请求中标识的所述地址范围,取回所述数据;以及
将AM应答发送到包含被取回的数据在内的所述远程装置。
37、一种其上存储有指令的非暂时性机器可读介质,所述指令被配置为在节点上执行,所述节点包括网络接口和包括本地地址空间的存储器,所述指令包括:
写请求活动消息(AM)处理器,其被配置为,在执行时,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的多个AM写请求,每一个AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应,并且包含要被写入所述本地存储器地址空间的相应的数据,以及所述相应的数据的开始要被写入的起始地址;以及
生成RMA写请求并且将所述RMA写请求入队到RMA写队列;以及
RMA进度模块,其被配置为,在执行时:
从所述远程装置接收多个数据块,每一个数据块与先前接收的AM写请求相关联并且包含标记,根据所述标记能够识别出相对应的RMA写请求;
将所述RMA写请求从所述RMA写队列中出队;以及
处理每一个出队的RMA写请求以确定与所述RMA写请求相关联的所接收的数据块被写入所述本地存储器地址空间中的何处。
38、根据条款37所述的非暂时性机器可读介质,其中,所述节点还包所述存储器中的源缓冲区,以及其中所述指令还包括:
RMA写模块,其被配置为,在执行时
将AM写请求发送到所述远程装置,所述AM写请求标识所述数据要被写入的所述远程装置上的存储器中的远程存储器地址空间中的地址范围;
从所述源缓冲区中读取要被写入的数据;以及
将所述数据发送到所述远程装置,其中在发送所述AM写请求之后所述数据被发送,并且所述数据与标记一起被发送,所述标记被配置为用于与被发送到所述AM写请求的所述数据相匹配。
39、根据条款37或38所述的非暂时性机器可读介质,其中,所述节点还包括RMA读请求队列,以及其中所述指令还包括:
读请求AM处理机,其被配置为,在执行时,
从所述远程装置接收AM读请求,所述AM读请求标识要被读取的数据在所述本地地址空间中的地址范围;
响应于接收到所述AM读请求消息,生成相对应的RMA读请求,所述RMA读请求标识要被读取的数据在所述本地地址空间中的地址范围;以及
将所述RMA读请求入队到所述RMA读请求队列;以及
RMA进度模块,其被配置为,
将所述RMA读请求从所述RMA读请求队列中出队;
从由所述RMA读请求中的地址范围定义的本地地址空间中读取数据;以及
将所读取的数据发送到所述远程装置。
40、根据条款39所述的非暂时性机器可读介质,其中,所述节点还包括占用所述存储器的一部分的目的缓冲区,以及其中所述指令还包括:
RMA读模块,其被配置为,在执行时
将AM读请求发送到所述远程装置,所述AM读请求标识要被读取的所述远程装置上的存储器中的远程地址空间中的地址范围;
从所述远程装置接收已经从所述远程地址空间读取的数据;以及
将所接收的数据写入所述目的缓冲区。
尽管参考特定实现方式描述了一些实施例,但根据一些实施例其他实现方式是可能的。另外,本文所描述的和/或在附图中示出的元件或其他特征的布置和/或顺序不必以所示出和描述的特定方式来布置。根据一些实施例,很多其他布置是可能的。
在附图中所示的每一个系统中,在一些情况下每一个元件可以具有相同的附图标记或不同的附图标记以表明所表示的元件是不同的和/或相似的。然而,元件可以足够灵活以具有不同的实现方式,并且与本文所示出或描述的一些或全部系统一起工作。附图中所示的各种元件可以是相同的或不同的。哪一个元件被称为第一元件和哪一个元件被称为第二元件是任意的。
在说明书和权利要求中,可以使用术语“耦合”和“连接”及其衍生物。应当理解的是,这些术语不是要作为彼此的同义词。而是,在特定实施例中,“连接”可以被用于指示两个或更多个元件彼此直接物理或电气接触。“耦合”可以表示两个或更多个元件直接物理或电气接触。然而,“耦合”也可以指两个或更多个元件不是彼此直接接触,而是仍彼此协作或相互作用。
算法在这里并且通常被认为是引起期望的结果的行动或操作的自相容的序列。这些包括对物理量的物理处理。通常,尽管不必要,这些量是以电或磁信号的形式,能够被存储、传送、组合、比较或者另外处理。主要由于共同使用的原因,有时被证明为方便的是,将这些信号称为位、值、元素、符号、字符、项、数等。然而,应当理解的是,所有这些和类似的术语与适当的物理量相关联,并且仅为被应用到这些量的方便的标注。
实施例是本发明的示例或实现方式。在说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用指的是:结合该实施例描述的特定特征、结构或特点包括在至少一些实施例中,而不必包括在本发明的所有实施例中。“实施例”、“一个实施例”、“一些实施例”的各种出现不一定全部指代相同的实施例。
不是本文所示出和描述的所有部件、特征、结构、特点等需要被包括在特定实施例或实施例中。例如,如果说明书陈述部件、特征、结构或特点“可以”、“可能”、“能”或“能够”被包括,则该特定部件、特征、结构或特点不要求被包括。如果说明书或权利要求书涉及“一个”或“一”元件,这并不意味着只有一个该元件。如果说明书或权利要求书涉及“另外的”元件,则这并不排除存在多于一个另外的元件。
如上所讨论的,本文实施例的各种方面可以通过相对应的软件和/或嵌入式部件和应用来促进,所述相对应的软件和/或嵌入式部件和应用诸如运行在服务器上或者设备处理器的软件或者由嵌入式处理器等执行的软件和/或固件。因此,本发明的实施例可以被用作或者支持软件程序、软件模块、固件、和/或在某些形式的处理核(诸如计算机的CPU、多核处理器的一个或多个核)上执行的分布式软件、运行在处理器或核上的虚拟机或者另外在计算机可读或机器可读非暂时性存储介质上或内被实现或实行的虚拟机。计算机可读或机器可读非暂时性存储介质包括用于以机器(例如,计算机)可读的形式存储或发送信息的任意机制。例如,计算机可读或机器可读非暂时性存储介质包括以计算机或计算机器(例如,计算设备、电子系统等)可访问的形式提供(例如,存储和/或发送)信息的任意机制,例如,可记录/非可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光盘存储介质、闪速存储器设备等)。内容可以是直接可执行的(“对象”或“可执行”形式)、源代码、或不同代码(“增量”或“插入”码)。计算机可读或机器可读非暂时性存储介质也可以包括可以从其中下载内容的存储装置或数据库。计算机可读或机器可读非暂时性存储介质也可以包括在出售或交付时其上存储有内容的设备或产品。因此,交付具有存储内容的设备,或者提供通过通信介质下载的内容可以被理解为提供包括具有上文所描述的那样的内容的计算机可读或机器可读非暂时性存储介质的制品。
被称为本文所描述的上面的处理器、服务器或工具的各种部件可以是用于执行本文所描述的功能的单元。由本文所描述的各种部件所执行的操作和功能可以通过运行在处理元件上的软件经由嵌入式硬件等、或硬件和软件的任意组合来实现。这样的部件可以被实现为软件模块、硬件模块、专用硬件(例如,专用硬件、ASIC、DSP等)、嵌入式控制器、硬连线电路、硬件逻辑等。软件内容(例如,数据、指令、配置信息等)可以经由包括计算机可读或机器可读非暂时性存储介质的制品来提供,其提供表示可以被执行的指令的内容。该内容可以使得计算机执行本文所描述的各种功能/操作。
如本文所使用的,由术语“中的至少一个”连接的项目的列表可以指所列出的术语的任意组合。例如,短语“A、B或C中的至少一个”可以表示A;B;C;A和B;A和C;B和C;或A、B和C。
包括摘要中所描述的内容的所示出的本发明的实施例的上述描述,不是要详尽地列出或者将本发明限制为所公开的准确形式。尽管本文出于示例性目的描述了本发明的特定实施例和针对本发明的示例,但如相关领域那些技术人员将会意识到的,在本发明范围内的各种等价修改是可能的。
鉴于上文的具体实施方式可以对本发明做出这些修改。在下述权利要求书中所使用的术语不应当被理解为将本发明限制在说明书和附图中所公开的特定实施例。而是,本发明的范围全部由下文的权利要求书来确定,其将根据权利要求的已建立的条款来进行解释。
Claims (25)
1.一种用于执行在远程节点和本地节点之间的远程存储器访问(RMA)数据传送的方法,所述方法包括:
执行RMA写,在所述RMA写中,通过以下来将数据从所述本地节点写入所述远程节点:
从所述本地节点上的源缓冲区读取要被写入的数据;
将第一活动消息(AM)写请求从所述本地节点发送到所述远程节点上的AM处理机,所述第一AM写请求包含要被写入的数据以及所述数据要被写入的在所述远程节点上的远程存储器地址空间中的起始地址;以及
利用所述远程节点上的AM处理机,通过从所述第一AM写请求提取所述数据并且将所述数据写入所述远程存储器地址空间中开始于所述起始地址的地址范围,来处理所述第一AM写请求。
2.根据权利要求1所述的方法,还包括:
将AM写应答从所述远程节点发送到所述本地节点,所述AM写应答指示所述数据已经被成功地写入所述远程存储器地址空间;以及
采用所述本地节点上的AM处理机来处理AM写应答消息。
3.根据权利要求1所述的方法,还包括:
将要被写入的所述数据划分为多个分组;
对于所述多个分组中的每一个,
从所述本地节点上的源缓冲区读取与所述分组相对应的分组数据;
将相应的AM请求从所述本地节点发送到所述远程节点上的AM处理机,所述相应的AM请求包含所述分组数据和所述分组数据要被写入的所述远程节点上的远程存储器地址空间中的起始地址;以及
利用所述远程节点上的AM处理机,通过从所述相应的AM请求提取所述分组数据并且将所述数据写入所述远程存储器地址空间中开始于所述起始地址的地址范围,来处理所述相应的AM请求,
其中,所述第一AM写请求与用于传送所述多个分组中的第一分组的数据的AM写请求相对应。
4.根据权利要求3所述的方法,还包括:
检测到所述分组数据全部已经被成功地写入所述远程存储器地址空间;
将AM应答从所述远程节点发送到所述本地节点,所述AM应答指示所述分组数据已经被成功地写入所述远程存储器地址空间;以及
采用所述本地节点上的AM处理机来处理AM应答消息。
5.根据权利要求1所述的方法,还包括:
执行RMA读,在所述RMA读中,通过以下来将数据从所述远程节点读取并且传送到所述本地节点:
将AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的数据在远程地址空间中的地址范围;
响应于接收到AM读请求消息,经由所述远程节点上的AM处理机从所述远程地址空间取回要被读取的所述数据,并且经由AM读应答消息来将所取回的数据发送到所述本地节点;以及
利用所述本地节点上的AM处理机,通过从AM读应答中提取所述数据并且将所述数据写入所述本地节点上的目的缓冲区,来处理所述AM读应答。
6.根据权利要求1所述的方法,还包括:
执行RMA读,在所述RMA读中,使用多个分组来将数据从所述远程节点读取并且传送到所述本地节点,其中,通过以下来传送所述多个分组中的每一个分组的数据:
将相应的AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的分组数据在远程地址空间中的地址范围;
响应于接收到AM读请求消息,经由所述远程节点上的AM处理机从所述远程地址空间取回要被读取的所述分组数据,并且经由AM读应答消息将所取回的分组数据发送到所述本地节点;以及
利用所述本地节点上的AM处理机,通过从AM读应答中提取所述分组数据并且将所述分组数据写入所述本地节点上的目的缓冲区,来处理所述AM读应答。
7.根据权利要求1所述的方法,还包括:
使用加标签的消息传递方案,采用加标签的消息用于所述第一AM写请求;以及
采用所述远程节点上的AM处理机来检查所述加标签的消息,以验证所述远程节点是所述第一AM写请求的预期的接收者。
8.根据权利要求1所述的方法,还包括:
在所述本地节点处,对在所述远程节点上的远程存储器地址空间中的至少一个地址范围进行注册,其中,使用从所述远程节点发送的一个或多个AM写请求,数据能够被写入所述至少一个地址范围;
将访问密钥公布到所述远程节点,所述访问密钥与在所述本地节点注册的至少一个地址范围相对应;
将所述访问密钥包括在所述第一AM写请求中;以及
经由所述远程节点上的AM处理机来检查所述访问密钥以确认所述第一AM写请求是否被允许。
9.一种用于执行远程节点和本地节点之间的远程存储器访问(RMA)数据传送的方法,所述方法包括:
执行RMA写,在所述RMA写中,通过以下来将数据从所述本地节点写入所述远程节点:
将第一活动消息(AM)写请求从所述本地节点发送到所述远程节点上的AM处理机,所述第一AM写请求标识所述数据要被写入的所述远程节点上的远程存储器地址空间中的地址范围;
从所述本地节点上的源缓冲区中读取要被写入的数据,并且将所述数据发送到所述远程节点;
对由所述远程节点接收到的所述数据进行处理以使得所述数据被写入所述远程存储器地址空间,以占用所述第一AM写请求中所标识的地址范围。
10.根据权利要求9所述的方法,还包括:
接收多个AM写请求,每一个AM写请求标识所述远程节点上的远程存储器地址空间中的地址范围,其中,与随后要被发送的所述AM写请求相关联的数据块要被写入该地址范围,每一个AM写请求包括标识所述相关联的数据块的标记;
经由所述远程节点上的AM处理机,将每一个AM写请求入队到所述远程节点上的RMA写队列中;
从所述本地节点接收多个数据块,每一个数据块与先前接收的AM写请求相关联并且包含标记,根据所述标记能够识别出所述先前接收的AM写请求;
将所述AM写请求从所述RMA写队列中出队;以及
对每一个出队的AM写请求进行处理以确定与所述AM写请求相关联的所接收的数据块被写入所述远程存储器地址空间中的何处。
11.根据权利要求9所述的方法,还包括执行RMA读,在所述RMA读中,通过以下来将数据从所述远程节点读取并且传送到所述本地节点:
将AM读请求发送到所述远程节点上的AM处理机,所述AM读请求标识要被读取的数据在远程地址空间中的地址范围;
响应于接收到AM读请求消息,经由所述远程节点上的AM处理机,生成与所述AM读请求相对应的RMA读请求,所述RMA读请求标识要被读取的数据在所述远程地址空间中的地址范围;
在所述远程节点上处理所述RMA读请求,使得要从由所述RMA读请求中的地址范围定义的远程地址空间中被读取的所述数据从所述远程地址空间中被取回,并且被发送到所述本地节点;以及
将从所述远程节点发送的所取回的数据写入所述本地节点的目的缓冲区。
12.根据权利要求11所述的方法,还包括:
响应于接收到所述AM读请求消息,经由所述远程节点上的AM处理机,生成与AM读请求相对应的RMA读请求并且将所述RMA读请求入队到所述远程节点上的RMA读请求队列,所述RMA读请求标识要被读取的数据在所述远程地址空间中的地址范围;
将所述RMA读请求从所述RMA读请求队列中出队;以及
从由所述RMA读请求中的地址范围定义的远程地址空间中取回要被读取的所述数据并且将所取回的数据发送到所述本地节点。
13.根据权利要求12所述的方法,其中,出队操作、数据取回和发送操作由与所述远程节点上的AM处理机分离的所述远程节点上的RMA读功能来执行。
14.根据权利要求9所述的方法,还包括:在所述本地节点,对在所述远程节点上的远程存储器地址空间中的至少一个地址范围进行注册,其中,使用从所述本地节点发送的一个或多个AM写请求,数据能够被写入所述至少一个地址范围。
15.一种装置,包括:
网络接口;
存储器,包括本地存储器地址空间;
写请求活动消息(AM)处理机,其被配置为,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的第一AM写请求,所述第一AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应,并且包含要被写入在所述存储器中的本地存储器地址空间中的起始地址处的第一数据,所述数据要被写入在所述存储器中的所述本地存储器地址空间中的起始地址处;
通过从所述第一AM写请求提取所述数据并且将所述数据写入所述远程存储器地址空间中开始于所述起始地址的地址范围,来处理所述第一AM写请求;以及
将AM写应答发送到所述远程装置,所述AM写应答指示所述数据已经被成功地写入所述远程存储器地址空间。
16.根据权利要求15所述的装置,还包括:
RMA写模块,其被配置为执行AM写操作,在所述AM写操作中,与针对所述远程装置上的存储器中的远程存储器地址空间的RMA写相对应的第二AM写请求被生成并且被发送到所述远程装置,所述第二AM写请求包含要被写入在所述远程存储器地址空间中的起始地址处的第二数据,所述数据要被写入所述远程存储器地址空间中的起始地址处;以及
写应答AM处理机,其被配置为在成功地将所述第二数据写入所述远程存储器地址空间之后对从所述远程装置发送的AM写应答进行处理。
17.根据权利要求16所述的装置,还包括源缓冲区,并且其中,所述RMA写模块进一步被配置为:
将要被写入所述远程存储器地址空间的第三数据划分为多个分组;
对于所述多个分组中的每一个,
从所述源缓冲区读取与该分组相对应的分组数据;以及
将相应的AM写请求发送到所述远程装置上的写请求AM处理机,所述AM写请求包含所述分组数据和所述分组数据要被写入的所述远程装置上的远程存储器地址空间中的相应的起始地址。
18.根据权利要求15所述的装置,其中,所述写请求AM处理机还被配置为:
从所述远程装置接收多个AM写请求,所述多个AM写请求中的每一个包含与被划分为多个分组的第三数据的远程写相对应的相应的分组数据,并且其中,所述第三数据将被在所述本地存储器地址空间中相应的起始地址处写入所述本地存储器地址空间;
提取所述多个AM写请求中的每一个的分组数据,并且将所述分组数据写入开始于由所述AM写请求标识的起始地址的所述本地存储器地址空间;
检测到所述第三数据的全部已经被写入所述本地存储器地址空间;并且
将AM写应答发送到所述远程装置,所述AM写应答指示所述第三数据已经被成功地写入所述本地存储器地址空间。
19.根据权利要求15所述的装置,还包括:
在本地存储器中的目的缓冲区;
读应答AM处理机;以及
RMA读模块,其被配置为,
生成AM读请求,并且将所述AM读请求发送到所述远程装置上的读请求AM处理机,所述AM读请求标识要被读取的所述远程装置的数据在远程地址空间中的地址范围;
响应于所述AM读请求,从所述远程装置接收包含从所述远程地址空间读取的数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述数据并且将所述数据写入所述目的缓冲区,来处理所述AM读应答。
20.根据权利要求19所述的装置,其中,所述RMA读模块进一步被配置为执行RMA读,在所述RMA读中,使用多个分组,数据从所述远程装置中被读取并且被传送,其中,通过以下来远程地读取所述多个分组中的每一个分组的数据:
将相应的AM读请求发送到所述远程装置上的AM读请求处理机,所述AM读请求标识要被读取的分组数据在所述远程地址空间中的地址范围;
响应于每一个相应的AM读请求,从所述远程装置接收包含从所述远程地址空间读取的所述分组数据在内的AM读应答;以及
利用所述读应答AM处理机,通过从所述AM读应答中提取所述分组数据并且将所述分组数据写入所述目的缓冲区,来处理所述AM读应答。
21.根据权利要求15所述的装置,还包括:
读请求AM处理机,其被配置为:
从所述远程装置接收AM读请求,所述AM读请求标识包含要被读取的数据在内的数据在本地地址空间中的地址范围;
从在所述AM读请求中标识的地址范围取回所述数据;以及
将AM应答发送到所述远程装置,所述AM应答包含被取回的数据。
22.一种装置,包括:
网络接口;
存储器,其包括本地存储器地址空间;
写请求活动消息(AM)处理机,其被配置为,
经由所述网络接口,接收通过耦合到所述网络接口的通信链路从远程装置发送的多个AM写请求,每一个AM写请求与由所述远程装置发布的远程存储器访问(RMA)写相对应并且包含要被写入所述本地存储器地址空间的相应的数据、以及所述相应的数据的开始要被写入的起始地址;以及
生成RMA写请求并且将所述RMA写请求入队到RMA写队列;以及
RMA进度模块,其被配置为:
从所述远程装置接收多个数据块,每一个数据块与先前接收的AM写请求相关联并且包含标记,根据所述标记能够识别出相对应的RMA写请求;
将所述RMA写请求从所述RMA写队列中出队;以及
对每一个出队的RMA写请求进行处理以确定与所述RMA写请求相关联的所接收的数据块被写入所述本地存储器地址空间中的何处。
23.根据权利要求22所述的装置,还包括:
在所述存储器中的源缓冲区;以及
RMA写模块,其被配置为,
将AM写请求发送到所述远程装置,所述AM写请求标识所述数据要被写入的所述远程装置上的存储器中的远程存储器地址空间中的地址范围;
从所述源缓冲区中读取要被写入的所述数据;以及
将所述数据发送到所述远程装置,其中,所述数据在发送所述AM写请求之后被发送,并且所述数据与标记一起被发送,所述标记被配置为用于与被发送到所述AM写请求的数据相匹配。
24.根据权利要求22所述的装置,还包括:
RMA读请求队列;
读请求AM处理机,其被配置为
从所述远程装置接收AM读请求,所述AM读请求标识要被读取的数据在本地地址空间中的地址范围;
响应于接收到AM读请求消息,生成相对应的RMA读请求,所述RMA读请求标识要被读取的数据在所述本地地址空间中的地址范围;以及
将所述RMA读请求入队到所述RMA读请求队列;以及
RMA进度模块,其被配置为,
将所述RMA读请求从所述RMA读请求队列中出队;
从所述RMA读请求中的地址范围定义的本地地址空间中读取数据;以及
将所读取的数据发送到所述远程装置。
25.根据权利要求24所述的装置,还包括:
占用所述存储器的一部分的目的缓冲区;以及
RMA读模块,其被配置为,
将AM读请求发送到所述远程装置,所述AM读请求标识要被读取的所述远程装置上的存储器中的远程地址空间中的地址范围;
从所述远程装置接收已经从所述远程地址空间读取的数据;以及
将所接收的数据写入所述目的缓冲区。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/475,337 | 2014-09-02 | ||
US14/475,337 US9632973B2 (en) | 2014-09-02 | 2014-09-02 | Supporting RMA API over active message |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105389120A true CN105389120A (zh) | 2016-03-09 |
CN105389120B CN105389120B (zh) | 2018-09-21 |
Family
ID=54062991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510463491.8A Active CN105389120B (zh) | 2014-09-02 | 2015-07-31 | 支持通过活动消息的rma api |
Country Status (8)
Country | Link |
---|---|
US (1) | US9632973B2 (zh) |
JP (1) | JP6189898B2 (zh) |
KR (1) | KR101752964B1 (zh) |
CN (1) | CN105389120B (zh) |
DE (1) | DE102015112634A1 (zh) |
FR (1) | FR3025331A1 (zh) |
GB (1) | GB2531864B (zh) |
TW (1) | TWI582609B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704343A (zh) * | 2019-09-10 | 2020-01-17 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
WO2023044861A1 (en) * | 2021-09-26 | 2023-03-30 | Intel Corporation | Concept for providing access to remote memory |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448901B1 (en) * | 2015-12-15 | 2016-09-20 | International Business Machines Corporation | Remote direct memory access for high availability nodes using a coherent accelerator processor interface |
US11061851B2 (en) | 2016-07-28 | 2021-07-13 | Hitachi, Ltd. | Computer system, processing method, and driver program |
US20180089044A1 (en) * | 2016-09-27 | 2018-03-29 | Francesc Guim Bernat | Technologies for providing network interface support for remote memory and storage failover protection |
US11763351B2 (en) * | 2017-03-29 | 2023-09-19 | Oklahoma Blood Institute | Fundraising platform |
TWI761846B (zh) * | 2020-06-01 | 2022-04-21 | 鴻海精密工業股份有限公司 | 自動資料傳輸方法、裝置及存儲介質 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309252A (ja) * | 1993-04-05 | 1994-11-04 | Hewlett Packard Co <Hp> | 相互接続インタフェース |
JPH08241293A (ja) * | 1995-03-06 | 1996-09-17 | Gijutsu Kenkyu Kumiai Shinjoho Shiyori Kaihatsu Kiko | 遠隔メモリアクセス制御装置 |
JPH10124461A (ja) * | 1996-09-27 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | コンピュータ及び実行方法 |
US5790804A (en) * | 1994-04-12 | 1998-08-04 | Mitsubishi Electric Information Technology Center America, Inc. | Computer network interface and network protocol with direct deposit messaging |
US20060069788A1 (en) * | 2004-06-24 | 2006-03-30 | International Business Machines Corporation | Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol |
CN102306115A (zh) * | 2011-05-20 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 异步远程复制方法、系统及设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050080869A1 (en) * | 2003-10-14 | 2005-04-14 | International Business Machines Corporation | Transferring message packets from a first node to a plurality of nodes in broadcast fashion via direct memory to memory transfer |
US7636813B2 (en) | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7694310B2 (en) | 2006-08-29 | 2010-04-06 | International Business Machines Corporation | Method for implementing MPI-2 one sided communication |
US7979645B2 (en) | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
US7925842B2 (en) | 2007-12-18 | 2011-04-12 | International Business Machines Corporation | Allocating a global shared memory |
US8452888B2 (en) | 2010-07-22 | 2013-05-28 | International Business Machines Corporation | Flow control for reliable message passing |
-
2014
- 2014-09-02 US US14/475,337 patent/US9632973B2/en active Active
-
2015
- 2015-07-24 FR FR1557115A patent/FR3025331A1/fr active Pending
- 2015-07-27 TW TW104124258A patent/TWI582609B/zh not_active IP Right Cessation
- 2015-07-28 JP JP2015148205A patent/JP6189898B2/ja active Active
- 2015-07-31 KR KR1020150108653A patent/KR101752964B1/ko active Active
- 2015-07-31 GB GB1513562.7A patent/GB2531864B/en active Active
- 2015-07-31 CN CN201510463491.8A patent/CN105389120B/zh active Active
- 2015-07-31 DE DE102015112634.6A patent/DE102015112634A1/de active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06309252A (ja) * | 1993-04-05 | 1994-11-04 | Hewlett Packard Co <Hp> | 相互接続インタフェース |
US5448698A (en) * | 1993-04-05 | 1995-09-05 | Hewlett-Packard Company | Inter-processor communication system in which messages are stored at locations specified by the sender |
US5790804A (en) * | 1994-04-12 | 1998-08-04 | Mitsubishi Electric Information Technology Center America, Inc. | Computer network interface and network protocol with direct deposit messaging |
JPH08241293A (ja) * | 1995-03-06 | 1996-09-17 | Gijutsu Kenkyu Kumiai Shinjoho Shiyori Kaihatsu Kiko | 遠隔メモリアクセス制御装置 |
JPH10124461A (ja) * | 1996-09-27 | 1998-05-15 | Internatl Business Mach Corp <Ibm> | コンピュータ及び実行方法 |
US20060069788A1 (en) * | 2004-06-24 | 2006-03-30 | International Business Machines Corporation | Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol |
CN102306115A (zh) * | 2011-05-20 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 异步远程复制方法、系统及设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704343A (zh) * | 2019-09-10 | 2020-01-17 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
CN110704343B (zh) * | 2019-09-10 | 2021-01-05 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
WO2023044861A1 (en) * | 2021-09-26 | 2023-03-30 | Intel Corporation | Concept for providing access to remote memory |
Also Published As
Publication number | Publication date |
---|---|
GB2531864A (en) | 2016-05-04 |
KR20160027902A (ko) | 2016-03-10 |
GB2531864B (en) | 2019-04-24 |
CN105389120B (zh) | 2018-09-21 |
KR101752964B1 (ko) | 2017-07-03 |
DE102015112634A1 (de) | 2016-03-03 |
US9632973B2 (en) | 2017-04-25 |
TWI582609B (zh) | 2017-05-11 |
JP6189898B2 (ja) | 2017-08-30 |
JP2016053946A (ja) | 2016-04-14 |
FR3025331A1 (zh) | 2016-03-04 |
TW201621699A (zh) | 2016-06-16 |
GB201513562D0 (en) | 2015-09-16 |
US20160062944A1 (en) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105389120A (zh) | 支持通过活动消息的rma api | |
US11016911B2 (en) | Non-volatile memory express over fabric messages between a host and a target using a burst mode | |
JP2019075109A (ja) | データ記憶装置及びブリッジ装置 | |
JP4347247B2 (ja) | データ転送要求を実行するための方法、システム、およびプログラム | |
WO2015139470A1 (zh) | Rdma下数据读写的方法、装置和网络系统 | |
WO2019042312A1 (zh) | 分布式计算系统,分布式计算系统中数据传输方法和装置 | |
CN108055202A (zh) | 一种报文处理设备和方法 | |
WO2023103301A1 (zh) | 一种分布式异构加速平台通信方法、系统、设备及介质 | |
CN111343148A (zh) | 一种fgpa通信数据的处理方法、系统及装置 | |
WO2017032112A1 (zh) | 一种与无中央处理器单板通讯的方法及通讯设备 | |
KR102210289B1 (ko) | 하드웨어 관리 통신 프로토콜 | |
CN1987798A (zh) | 数据平面与控制平面之间的通讯方法 | |
CN115237500A (zh) | 一种池化平台的数据处理方法、装置、设备和介质 | |
WO2019190859A1 (en) | Efficient and reliable message channel between a host system and an integrated circuit acceleration system | |
CN115080479B (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
CN114500114B (zh) | 一种网络操作系统中应用的拟态数据库交互方法和装置 | |
CN108182119A (zh) | 读写分离控制方法和装置、存储介质及电子装置 | |
US20070255738A1 (en) | System, Method, and Computer-Readable Medium for Performing Data Structure Updates in a Multi-Processor System | |
CN105573801A (zh) | 堆叠系统中实现软件升级的方法、装置及系统 | |
CN116303149B (zh) | 基于bmc芯片实现控制器接口拓展的方法及系统 | |
CN118012351A (zh) | 基于远程存储协议的数据读写保序方法、装置、电子设备及存储介质 | |
US12174765B2 (en) | Interrupt emulation on network devices | |
TWI555367B (zh) | 用以至少部分地允許至少一個網路相關物件之至少部分的分配及/或組態之至少一個機構 | |
US20140337456A1 (en) | Systems and methods for enabling rdma between diverse endpoints | |
US20250123980A1 (en) | Interrupt emulation on network devices |
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 |