CN105450588B - 一种基于rdma的数据传输方法及rdma网卡 - Google Patents

一种基于rdma的数据传输方法及rdma网卡 Download PDF

Info

Publication number
CN105450588B
CN105450588B CN201410373324.XA CN201410373324A CN105450588B CN 105450588 B CN105450588 B CN 105450588B CN 201410373324 A CN201410373324 A CN 201410373324A CN 105450588 B CN105450588 B CN 105450588B
Authority
CN
China
Prior art keywords
rdma
node
ace
request
network interface
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
Application number
CN201410373324.XA
Other languages
English (en)
Other versions
CN105450588A (zh
Inventor
陈昊
赵献明
刘建根
俞柏峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410373324.XA priority Critical patent/CN105450588B/zh
Publication of CN105450588A publication Critical patent/CN105450588A/zh
Application granted granted Critical
Publication of CN105450588B publication Critical patent/CN105450588B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)

Abstract

本发明的实施例提供了一种基于RDMA的数据传输方法及RDMA网卡,涉及通信领域,能够简化RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,提高了RDMA网卡与处理器之间传输报文的效率,该方法包括:第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求;该RDMA读请求包括RDMA读请求请求读取的数据在第一节点的内存中的存储地址;对RDMA读请求进行解析,得到存储地址,生成ACE读请求;将ACE读请求发送至第二节点的处理器;接收第一节点的处理器返回的第一ACE响应消息;解析第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息;将RDMA响应消息发送至第二节点的RDMA网卡。本发明应用于节点间的数据传输。

Description

一种基于RDMA的数据传输方法及RDMA网卡
技术领域
本发明涉及通信领域,尤其涉及一种基于RDMA的数据传输方法及RDMA网卡。
背景技术
远端直接内存访问(Remote Direct Memory Access,简称RDMA)是一种直接进行远程内存存取的技术,即可以直接将数据从一个系统快速迁移到另一个远程系统存储器中,而不对操作系统造成任何影响,减少了中央处理器参与数据传输过程的消耗,解放了内存带宽和处理器(Central Processing Unit,简称CPU)周期,进而提升了系统处理业务的性能,具有高带宽、低时延及低CPU占用率的特点。
由于目前市场上的具有RDMA功能的网卡(简称RDMA网卡)的总线接口一般都是采用PCIE(PCI-Express)标准的接口,而PCIE通常属于系统的二级总线,即无法直接访问CPU或内存,因此,当利用该RDMA网卡进行数据迁移时,系统需要在RDMA网卡与CPU之间添加一个具有CPIE接口的根组件(PCI Express Root Complex,简称PCIE RC),即RDMA网卡与PCIERC进行连接,再将PCIE RC与CPU进行连接,使得RDMA网卡可以将支持RDMA协议的请求报文转化为支持PCIE协议的请求报文,然后将支持PCIE协议的请求报文转化为该PCIE RC与CPU间所支持的总线协议的请求报文,这样通过上述一系列的PCIE协议转换过程,使得该RDMA网卡可以直接访问该CPU内存,将该CPU内存中需要的数据迁移至另一远程系统存储器中。
但是,在实现上述的数据迁移过程中,发明人发现:由于采用PCIE接口的RDMA网卡是不能直接访问内存的,因此,需要将该请求进行相关的协议转换和组件传递后,才能使CPU或内存产生响应,即将支持该RDMA协议的请求报文转换为支持PCIE协议的请求报文,然后再将该支持PCIE协议的请求报文转换为总线事务报文,即支持直接访问CPU或内存的协议的请求报文,这样使得整个数据迁移过程过于复杂,增加了系统的时延。同时,由于RDMA网卡并不负责协议转换前后数据一致性的问题,需要CPU进行处理,从而增加了CPU的工作量。
发明内容
本发明的实施例提供一种基于RDMA的数据传输方法及RDMA网卡,能够简化RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,提高了RDMA网卡与处理器之间传输报文的效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种基于远程直接内存访问RDMA的数据传输方法,包括:
第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求;所述RDMA读请求包括所述RDMA读请求请求读取的数据在所述第一节点的内存中的存储地址;
对所述RDMA读请求进行解析,得到所述存储地址,生成第一ACE读请求,所述第一ACE读请求中包含所述存储地址;
将所述第一ACE读请求发送至所述第一节点的处理器;
接收所述第一节点的处理器返回的第一ACE响应消息;其中所述第一ACE响应消息中包含所述RDMA读请求请求读取的数据;
解析所述第一ACE响应消息,得到所述RDMA读请求请求读取的数据,并生成RDMA响应消息,所述RDMA响应消息中包含所述RDMA读请求请求读取的数据;
将所述RDMA响应消息发送至所述第二节点的RDMA网卡。
在第一方面的第一种可能的实现方式中,所述方法还包括:
所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,并生成ACE写请求;所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
将所述ACE写请求发送至所述第一节点的处理器。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
第二节点的RDMA网卡将第二ACE读请求发送至所述第二节点的处理器;所述第二ACE读请求包括所述第二ACE读请求请求读取的数据在所述第二节点内存中的存储地址;
接收所述第二节点的处理器反馈的第二ACE响应消息;其中所述第二ACE响应消息包括所述第二ACE读请求请求读取的数据;
解析所述第二ACE响应消息,得到所述第二ACE读请求请求读取的数据,并生成所述RDMA写请求;
将所述RDMA写请求发送至所述第一节点的RDMA网卡。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,在所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA读请求之前,所述方法还包括:
所述第一节点的RDMA网卡与所述第二节点的RDMA网卡相互交换系统参数。
结合第一方面或第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
所述第二节点的RDMA网卡对接收到的所述第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息;
将所述第三ACE响应消息发送给所述第二节点的处理器。
第二方面,提供一种基于远程直接内存访问RDMA的数据传输方法,包括:
第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,生成ACE写请求,所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
将所述ACE写请求发送至所述第一节点的处理器。
在第二方面的第一种可能的实现方式中,所述方法还包括:
第二节点的RDMA网卡将ACE读请求发送至所述第二节点的处理器;所述ACE读请求包括所述ACE读请求请求读取的数据在所述第二节点内存中的存储地址;
接收所述第二节点的处理器反馈的ACE响应消息;其中所述ACE响应消息包括述ACE读请求请求读取的数据;
解析所述ACE响应消息,得到述ACE读请求请求读取的数据,并生成所述RDMA写请求发送至所述第一节点的RDMA网卡。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA读请求之前,所述方法还包括:
所述第一节点的RDMA网卡与所述第二节点的RDMA网卡相互交换系统参数。
第三方面,提供一种RDMA网卡,位于第一节点中,所述RDMA网卡通过ACE总线与处理器相连,所述RDMA网卡包括:ACE接口、网络接口、RDMA处理器和协议转换器,所述RDMA处理器和所述协议转换器通过所述ACE接口与所述处理器进行通信,所述网络接口用于与外部设备进行通信,其中:
所述RDMA处理器,用于通过所述网络接口接收第二节点的RDMA网卡发送的RDMA读请求;所述RDMA读请求包括所述RDMA读请求请求读取的数据在所述第一节点的内存中的存储地址;
所述协议转换器,用于对所述RDMA读请求进行解析,得到所述存储地址,生成第一ACE读请求,所述第一ACE读请求中包含所述存储地址;
所述RDMA处理器,还用于通过所述ACE接口将所述第一ACE读请求发送至所述第一节点的处理器;
所述RDMA处理器,还用于通过所述ACE接口接收所述第一节点的处理器返回的第一ACE响应消息;其中所述第一ACE响应消息中包含所述RDMA读请求请求读取的数据;
所述协议转换器,还用于解析所述第一ACE响应消息,得到所述RDMA读请求请求读取的数据,并生成RDMA响应消息,所述RDMA响应消息中包含所述RDMA读请求请求读取的数据;
所述RDMA处理器,用于通过所述网络接口将所述RDMA响应消息发送至所述第二节点的RDMA网卡。
在第三方面的第一种可能的实现方式中:
所述RDMA处理器,还用于通过所述网络接口接收所述第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
所述协议转换器,还用于解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,生成ACE写请求,所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
所述RDMA处理器,还用于通过所述ACE接口将所述ACE写请求发送至所述第一节点的处理器。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中:
所述第二节点的RDMA处理器,用于通过所述第二节点的ACE接口将第二ACE读请求发送至所述第二节点的处理器;所述第二ACE读请求包括所述第二ACE读请求请求读取的数据在所述第二节点内存中的存储地址;及用于通过所述第二节点的ACE接口接收所述第二节点的处理器反馈的第二ACE响应消息;其中所述第二ACE响应消息包括所述第二ACE读请求请求读取的数据;
所述第二节点的协议转换器,用于解析所述第二ACE响应消息,得到所述第二ACE读请求请求读取的数据,并生成所述RDMA写请求;
所述第二节点的RDMA处理器,还用于通过所述第二节点的网络接口将所述RDMA写请求发送至所述第一节点的RDMA网卡。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中:
所述RDMA处理器,还用于通过所述网络接口与所述第二节点的RDMA网卡相互交换系统参数。
结合第三方方面或第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中:
所述第二节点的协议转换器,还用于对接收到的所述第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息;
所述第二节点的RDMA处理器,还用于通过所述第二节点的ACE接口将所述第三ACE响应消息发送给所述第二节点的处理器。
第四方面,提供一种RDMA网卡,位于第一节点中,所述RDMA网卡通过ACE总线与处理器相连,所述RDMA网卡包括:ACE接口、网络接口、RDMA处理器和协议转换器,所述RDMA处理器和所述协议转换器通过所述ACE接口与所述处理器进行通信,所述网络接口用于与外部设备进行通信,其中:
所述RDMA处理器,还用于通过所述网络接口接收所述第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
所述协议转换器,还用于解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据ACE写请求,所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
所述RDMA处理器,还用于通过所述ACE接口将所述ACE写请求发送至所述第一节点的处理器。
在第四方面的第一种可能的实现方式中,所述方法还包括:
所述第二节点的RDMA处理器,用于通过所述第二节点的ACE接口将ACE读请求发送至所述第二节点的处理器;所述ACE读请求包括所述ACE读请求请求读取的数据在所述第二节点内存中的存储地址;及用于通过所述第二节点的ACE接口接收所述第二节点的处理器反馈的ACE响应消息;其中所述ACE响应消息包括所述ACE读请求请求读取的数据;
所述第二节点的协议转换器,用于解析所述ACE响应消息,得到所述ACE读请求请求读取的数据,并生成所述RDMA写请求;
所述第二节点的RDMA处理器,还用于通过所述第二节点的网络接口将所述RDMA写请求发送至所述第一节点的RDMA网卡。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中:
所述RDMA处理器,还用于通过所述网络接口与所述第二节点的RDMA网卡相互交换系统参数。
本发明的实施例提供的基于RDMA的数据传输方法及RDMA网卡,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求,对该RDMA读请求进行解析,得到该RDMA读请求请求读取的数据在第一节点的内存中的存储地址,生成包含该存储地址的第一ACE读请求,并将该第一ACE读请求发送至第一节点的处理器;接收第一节点的处理器返回第一ACE响应消息,解析该第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,将该RDMA响应消息发送至第二节点的RDMA网卡,使得第二节点的RDMA网卡将该RDMA响应消息封装为ACE响应消息发送至第二节点的处理器,从而高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例提供的一种通信系统的结构示意图;
图2为本发明的实施例提供的一种基于RDMA的数据传输方法的流程示意图;
图3为本发明的实施例提供的另一种基于RDMA的数据传输方法的流程示意图;
图4为本发明的实施例提供的又一种基于RDMA的数据传输方法的交互示意图;
图5为本发明的另一实施例提供的一种基于RDMA的数据传输方法的交互示意图;
图6为本发明的实施例提供的一种RDMA网卡的结构示意图;
图7为本发明的实施例提供的另一种RDMA网卡的结构示意图;
图8为本发明的实施例提供的另一种RDMA网卡的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例所应用的通信系统的结构示意图,如图1所示,该通信系统由两个通信节点组成,这两个通信节点可以分别表示为第一通信节点(简称第一节点)和第二通信节点(简称第二节点),这两个节点可以是服务器、客户端、手机终端等终端设备。上述的两个节点中均至少包括:具有远端直接内存访问(Remote Direct MemoryAccess,简称RDMA)功能的以太网网卡(简称RDMA网卡)11、处理器12(Central Processing Unit,简称CPU)及ACE(AXI CoherencyExtension,AXI总线内存一致性扩展)总线13。其中,每个节点的RDMA网卡11是通过ACE总线13与该节点的CPU12进行通讯的。而该RDMA网卡主要用于执行RDMA读操作或RDMA写操作,从而不执行任何数据复制.在不需要任何内核内存参与的条件下,进行数据的交换。
图2为本发明的实施例提供的基于远程直接内存访问RDMA的数据传输方法,应用于图1所示的通信系统中,本实施例主要针对RDMA读流程,如图1所示,该基于RDMA的数据传输方法具体包括如下步骤:
101、第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求。
其中,上述的RDMA读请求包括RDMA读请求请求读取的数据在该第一节点的内存中的存储地址。
示例性的,第二节点的RDMA网卡在向第一节点的RDMA网卡发送RDMA读请求时,需要从该第二节点的指定内存区域中获取命令描述符,并根据该命令描述符的指示进行RDMA读操作,即根据该指示获取第二节点请求读取的数据在该第一节点的内存中的存储地址,并根据该存储地址生成RDMA读请求,然后将上述生成的RDMA读请求通过网络接口发送至第一节点的RDMA网卡。
102、第一节点的RDMA网卡对RDMA读请求进行解析,得到存储地址,生成第一ACE读请求。
其中,上述的第一ACE读请求中包含该RDMA读请求请求读取的数据在该第一节点的内存中的存储地址。
103、第一节点的RDMA网卡将第一ACE读请求发送至第二节点的处理器。
104、第一节点的RDMA网卡接收第一节点的处理器返回的第一ACE响应消息。
其中,上述的第一ACE响应消息中包含该RDMA读请求请求读取的数据。
示例性的,第一节点的RDMA网卡通过网络接口接收到第二节点的RDMA网卡发送的RDMA读请求后,会对该RDMA读请求进行解析,并将解析后获取的RDMA数据封装为第一ACE读请求,并通过ACE接口将该第一ACE读请求发送至第一节点的处理器。而第一节点的处理器在通过ACE接口接收到该ACE读请求后,会对该第一ACE读请求进行解析,得到该第一ACE读请求中封装的存储地址,然后读取该存储地址在该第一节点对应的内存区域中的数据,并将读取的数据封装成第一ACE响应消息通过ACE接口发送至第一节点的RDMA网卡。需要说明的是,由于基于RDMA协议的RDMA读请求中封装的RDMA数据过长,因此,第一节点的RDMA网卡再将解析后获取的RDMA数据封装为第一ACE读请求时,会将该RDMA数据进行分段,并将分段后的每段RDMA数据基于ACE协议依次进行封装。
105、第一节点的RDMA网卡解析第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息。
其中,上述的RDMA响应消息中包含该RDMA读请求请求读取的数据。
106、第一节点的RDMA网卡将所述RDMA响应消息发送至第二节点的RDMA网卡。
可选的,第二节点的RDMA网卡在接收到第一节点的RDMA网卡发送的RDMA响应消息后,具体会执行下述步骤:
a1、第二节点的RDMA网卡对接收到的第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息。
a2、第二节点的RDMA网卡将第三ACE响应消息发送给第二节点的处理器。
示例性的,第一节点的RDMA网卡通过ACE接口接收到第一节点的处理器发送的第一ACE响应消息后,会对该第一ACE响应消息进行解析,并将解析后获取的数据封装为RDMA响应消息通过网络接口发送至第二节点的RDMA网卡。而该第二节点的RDMA网卡通过网络接口接收到该RDMA响应消息后,会对该RDMA响应消息进行解析,并将解析后的数据封装为第三ACE响应消息通过ACE接口发送至第二节点的处理器,以便第二节点的处理器将第三ACE响应消息中的数据写入自身的内存之中。
需要说明的是,在实施本发明的实施例中提到的基于RDMA的数据传输方法之前,第一节点的RDMA网卡与第二节点的RDMA网卡之间,需进行初始化过程。该初始化过程具体如下:首先,第一节点和第二节点各自配置自身RDMA网卡的寄存器;其次,建立第二节点与第一节点间的网络连接;再次,第一节点的RDMA网卡与第二节点的RDMA网卡相互交换系统参数,该系统参数包括该第一节点与第二节点相互进行互联时的配置信息,以及第一节点与第二节点能够被访问的数据对应的存储地址范围;最后,第二节点的上层应用软件通过驱动通知第二节点的RDMA系统开始进行RDMA操作,即第二节点的RDMA网卡从指定区域获取命令描述符。在本实施例中,第二节点的RDMA网卡所获取的命令描述符用于指示该第二节点的RDMA网卡进行RDMA读操作。
本发明的实施例提供的基于RDMA的数据传输方法,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求,对该RDMA读请求进行解析,得到该RDMA读请求请求读取的数据在第一节点的内存中的存储地址,生成包含该存储地址的第一ACE读请求,并将该第一ACE读请求发送至第一节点的处理器;接收第一节点的处理器返回第一ACE响应消息,解析该第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,将该RDMA响应消息发送至第二节点的RDMA网卡,从而高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
本发明的实施例提供一种基于远程直接内存访问RDMA的数据传输方法,应用于图1所示的通信系统中,本实施例主要针对的RDMA写流程,如图3所示,该方法具体包括如下步骤:
201、第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求。
其中,上述的RDMA写请求包括第二节点请求写入第一节点的数据。
示例性的,第二节点的RDMA网卡从第二节点的指定内存区域中获取命令描述符,并根据该命令描述符的指示进行RDMA写操作,即该第二节点的RDMA网卡根据该命令描述符的指示获取需要写入第一节点中的数据,并根据该数据封装生成RDMA写请求,然后通过网络接口将该RDMA写请求发送至第一节点的RDMA网卡。
202、第一节点的RDMA网卡解析RDMA写请求,得到第二节点请求写入第一节点的数据,并生成ACE写请求。
203、第一节点的RDMA网卡将ACE写请求发送至第一节点的处理器。
示例性的,第一节点的RDMA网卡通过网络接口接收到第二节点的RDMA网卡发送的RDMA写请求后,会对该RDMA写请求进行解析,并将解析获得的数据封装为ACE写请求通过ACE接口发送至第一节点的处理器。第一节点的处理器接收并解析该ACE写请求,并将解析后获取的数据写入自身的内存之中。需要说明的是,由于基于RDMA协议的RDMA写请求中封装的RDMA数据过长,因此,第一节点的RDMA网卡再将解析后获取的RDMA数据封装为ACE写请求时,会将该RDMA数据进行分段,并将分段后的每段RDMA数据基于ACE协议依次进行封装。
具体的,第二节点根据该命令描述符的指示进行RDMA写操作,即该第二节点的RDMA网卡根据该命令描述符的指示获取需要写入第一节点中的数据,并根据该数据封装生成RDMA写请求的过程,详见以下步骤:
b1、第二节点的RDMA网卡将第二ACE读请求发送至第二节点的处理器。
其中,上述的第二ACE读请求包括第二ACE读请求请求读取的数据在第二节点内存中的存储地址。
b2、第二节点的RDMA网卡接收第二节点的处理器反馈的第二ACE响应消息。
其中,上述的第二ACE响应消息包括第二ACE读请求请求读取的数据。
示例性的,第二节点的RDMA网卡将第二ACE读请求通过ACE接口发送至第二节点的处理器。第二节点的处理器通过ACE接口接收到第二ACE读请求后,会对该第二ACE读请求进行解析,并从解析后获得的数据中获取第二ACE读请求请求读取的数据在第二节点内存中的存储地址,第二节点的处理器会根据该存储地址从自身的内存中读取该存储地址对应的内存区域中的数据,并将读取的数据封装成ACE响应消息返回至第二节点的RDMA网卡。
b3、第二节点的RDMA网卡解析第二ACE响应消息,得到第二ACE读请求请求读取的数据,并生成RDMA写请求发送至第一节点的RDMA网卡。
需要说明的是,在实施本发明的实施例中提到的基于RDMA的数据传输方法之前,第一节点的RDMA网卡与第二节点的RDMA网卡之间,需进行初始化过程。该初始化过程具体如下:首先,第一节点和第二节点各自配置自身RDMA网卡的寄存器;其次,建立第二节点与第一节点间的网络连接;再次,第一节点的RDMA网卡与第二节点的RDMA网卡相互交换系统参数,该系统参数包括该第一节点与第二节点相互进行互联时的配置信息,以及第一节点与第二节点能够被访问的数据对应的存储地址范围;最后,第二节点的上层应用软件通过驱动通知第二节点的RDMA系统开始进行RDMA操作,即第二节点的RDMA网卡从指定区域获取命令描述符。在本实施例中,第二节点的RDMA网卡所获取的命令描述符用于指示该第二节点的RDMA网卡进行RDMA写操作。
本发明的实施例提供的基于RDMA的数据传输方法,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求,并将RDMA写请求中包含的数据封装为ACE写请求发送至第一节点的处理器,从而高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
本发明的实施例提供一种基于远程直接内存访问RDMA的数据传输方法,其中,该方法可以根据节点获取的命令描述符类型分为读操作和写操作两种方式,而对于任一节点来说,读操作和写操作即可以并行执行,也可以按照获取命令描述符的先后顺序依次执行,再此不做限定。
具体的,如图4所示,当第一节点与第二节点执行读操作时,该基于RDMA的数据传输方法具体包括如下步骤:
301a、第二节点的RDMA网卡向第一节点的RDMA网卡发送RDMA读请求。
其中,上述的RDMA读请求包括RDMA读请求请求读取的数据在该第一节点的内存中的存储地址。
示例性的,第二节点的RDMA网卡从该第二节点的指定内存区域中获取命令描述符,并根据该命令描述符的指示进行RDMA读操作,即根据该指示获取第二节点请求读取的数据在该第一节点的内存中的存储地址,并根据该存储地址生成RDMA读请求,然后将上述生成的RDMA读请求通过网络接口发送至第一节点的RDMA网卡。
302a、第一节点的RDMA网卡对RDMA读请求进行解析,得到存储地址,生成第一ACE读请求。
其中,上述的第二ACE读请求中包含该RDMA读请求请求读取的数据在该第一节点的内存中的存储地址。
303a第一节点的RDMA网卡将第二ACE读请求发送至第二节点的处理器。
304a、第一节点的RDMA网卡接收第一节点的处理器返回的第一ACE响应消息。
305a、第一节点的RDMA网卡解析第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息。
其中,上述的RDMA响应消息中包含该RDMA读请求请求读取的数据。
306a、第一节点的RDMA网卡将RDMA响应消息发送至第二节点的RDMA网卡。
307a、第二节点的RDMA网卡对接收到的第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息。
308a、第二节点的RDMA网卡将第三ACE响应消息发送给第二节点的处理器。
可选的,当第一节点将RDMA读请求所请求的数据全部反馈至第二节点的处理器后,第二节点的处理器会生成一个ACE中断报文,通知第二节点RDMA网卡RDMA读请求全部完成。
具体的,如图5所示,当第一节点与第二节点执行写操作时,该方法具体包括如下步骤:
301b、第二节点的RDMA网卡将第二ACE读请求发送至第二节点的处理器。
其中,上述的第二ACE读请求包括ACE读请求请求读取的数据在第二节点内存中的存储地址。
示例性的,第二节点的RDMA网卡从该第二节点的指定内存区域中获取命令描述符,并根据该命令描述符的指示进行RDMA写操作,即该第二节点的RDMA网卡根据该命令描述符的指示获取第二节点请求写入第一节点中的数据在该第二节点内存中的存储地址,并根据该存储地址生成第二ACE读请求发送至第二节点的处理器,以便第二节点的处理器根据该第二ACE读请求获取第二节点请求写入第一节点中的数据302b、第二节点的RDMA网卡接收第二节点的处理器反馈的第二ACE响应消息。
其中,上述的第二ACE响应消息包括第二ACE读请求请求读取的数据。
303b、第二节点的RDMA网卡解析第二ACE响应消息,得到第二ACE读请求请求读取的数据,并生成RDMA写请求发送至第一节点的RDMA网卡。
304b、第一节点的RDMA网卡解析RDMA写请求,得到第二节点请求写入第一节点的数据,并生成ACE写请求。
305b、第一节点的RDMA网卡将ACE写请求发送至第一节点的处理器。
可选的,当第二节点将RDMA写请求所请求的数据全部反馈至第一节点的处理器后,第一节点的处理器会生成一个ACE中断报文,通知第一节点RDMA网卡RDMA写请求全部完成。
需要说明的是,在实施本发明的实施例中提到的基于RDMA的数据传输方法之前,第一节点的RDMA网卡与第二节点的RDMA网卡之间,需进行初始化过程。该初始化过程具体如下:首先,第一节点和第二节点各自配置自身RDMA网卡的寄存器;其次,建立第二节点与第一节点间的网络连接;再次,当第一节点与第二节点建立相互连接后,第一节点与第二节点会将各自的系统参数通过网络发送给对方,实现第一节点与第二节点之间的系统参数的交换,该系统参数包括该第一节点与第二节点相互进行互联时的配置信息,以及第一节点与第二节点能够被访问的数据对应的存储地址范围;最后,第二节点上层应用软件通过驱动向本节点的RDMA系统发送一个启动指令,来通知第二节点的RDMA系统开始进行RDMA操作,即指示第二节点的RDMA网卡从指定区域获取命令描述符。在本实施例中,第二节点的RDMA网卡所获取的命令描述符可以包括两种指示,以指示该第二节点的RDMA网卡进行RDMA写操作和RDMA读操作。
本发明的实施例提供的基于RDMA的数据传输方法,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求,对该RDMA读请求进行解析,得到该RDMA读请求请求读取的数据在第一节点的内存中的存储地址,生成包含该存储地址的第一ACE读请求,并将该第一ACE读请求发送至第一节点的处理器;接收第一节点的处理器返回第一ACE响应消息,解析该第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,将该RDMA响应消息发送至第二节点的RDMA网卡;和/或,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求,并将RDMA写请求中包含的数据封装为ACE写请求发送至第一节点的处理器,高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
本发明的实施例提供一种RDMA网卡,如图6所示,该RDMA网卡41通过ACE总线42与处理器43相连,该RDMA网卡41通过网络接口与外部设备相连,该RDMA网卡41包括:ACE接口411、网络接口412、RDMA处理器413和协议转换器414,该RDMA处理器413和该协议转换器414通过ACE接口411与处理器43进行通信,该网络接口412用于与外部设备进行通信,具体的,该网络接口412可以是任意的并行串行的高速接口,如以太网口,IB接口,光纤,serdes等,其中:
RDMA处理器413,用于通过网络接口412接收第二节点的RDMA网卡发送的RDMA读请求;该RDMA读请求包括该RDMA读请求请求读取的数据在第一节点的内存中的存储地址。
协议转换器414,用于对RDMA读请求进行解析,得到存储地址,生成第一ACE读请求,该第一ACE读请求中包含存储地址。
RDMA处理器413,还用于通过ACE接口411将第一ACE读请求发送至第二节点的处理器。
RDMA处理器413,用于通过ACE接口411接收第一节点的处理器返回的第一ACE响应消息;其中该第一ACE响应消息中包含RDMA读请求请求读取的数据。
协议转换器414,还用于解析第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,该RDMA响应消息中包含RDMA读请求请求读取的数据。
RDMA处理器413,用于通过网络接口412将RDMA响应消息发送至第二节点的RDMA网卡。
可选的,RDMA处理器414,还用于通过网络接口412与第二节点的RDMA网卡相互交换系统参数。
可选的,第二节点的协议转换器,还用于对接收到的第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息。
第二节点的RDMA处理器,还用于通过第二节点的ACE接口将第三ACE响应消息发送给第二节点的处理器。
本发明的实施例提供的RDMA网卡,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求,对该RDMA读请求进行解析,得到该RDMA读请求请求读取的数据在第一节点的内存中的存储地址,生成包含该存储地址的第一ACE读请求,并将该第一ACE读请求发送至第一节点的处理器;接收第一节点的处理器返回第一ACE响应消息,解析该第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,将该RDMA响应消息发送至第二节点的RDMA网卡,从而高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
本发明的实施例提供一种RDMA网卡,如图7所示,该RDMA网卡51通过ACE总线52与处理器53相连,该RDMA网卡51通过网络接口与外部设备相连,该RDMA网卡51包括:ACE接口511、网络接口512、RDMA处理器513和协议转换器514,该RDMA处理器513和该协议转换器514通过ACE接口511与处理器53进行通信,该网络接口512用于与外部设备进行通信,具体的,该网络接口512可以是任意的并行串行的高速接口,如以太网口,IB接口,光纤,serdes等,其中:
RDMA处理器513,还用于通过网络接口512接收第二节点的RDMA网卡发送的RDMA写请求;其中该RDMA写请求中包括第二节点请求写入第一节点的数据。
协议转换器514,还用于解析RDMA写请求,得到第二节点请求写入第一节点的数据,生成ACE写请求,该ACE写请求中包含第二节点请求写入第一节点的数据。
RDMA处理器513,还用于通过ACE接口511将ACE写请求发送至第一节点的处理器。
可选的,第二节点的RDMA处理器,用于通过第二节点的ACE接口将第二ACE读请求发送至第二节点的处理器53;该第二ACE读请求包括ACE读请求请求读取的数据在第二节点内存中的存储地址;及用于通过第二节点的ACE接口接收第二节点的处理器反馈的第二ACE响应消息;其中该第二ACE响应消息包括所述第二ACE读请求请求读取的数据。
第二节点的协议转换器,用于解析第二ACE响应消息,得到第二ACE读请求请求读取的数据,并生成RDMA写请求。
第二节点的RDMA处理器,还用于通过第二节点的网络接口将RDMA写请求发送至第一节点的RDMA网卡。
可选的,RDMA处理器513,还用于通过网络接口512与第二节点的RDMA网卡相互交换系统参数。
本发明的实施例提供的RDMA网卡,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求,并将RDMA写请求中包含的数据封装为ACE写请求发送至第一节点的处理器,从而高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
本发明的实施例提供一种RDMA网卡,如图8所示,该RDMA网卡61通过ACE总线62与处理器63相连,该RDMA网卡61通过网络接口与外部设备相连,该RDMA网卡61包括:ACE接口611、网络接口612、RDMA处理器613和协议转换器614,该RDMA处理器613和该协议转换器614通过ACE接口611与处理器63进行通信,该网络接口612用于与外部设备进行通信,具体的,该网络接口612可以是任意的并行串行的高速接口,如以太网口,IB接口,光纤,serdes等,其中:
当第一节点的RDMA网卡执行RDMA读操作时,RDMA处理器613和该协议转换器614具体实现下述功能:
RDMA处理器613,用于通过网络接口612接收第二节点的RDMA网卡发送的RDMA读请求;该RDMA读请求包括该RDMA读请求请求读取的数据在第一节点的内存中的存储地址。
协议转换器614,用于对RDMA读请求进行解析,得到存储地址,生成第一ACE读请求,该第一ACE读请求中包含存储地址。
RDMA处理器613,还用于通过ACE接口611将第一ACE读请求发送至第二节点的处理器。
RDMA处理器613,用于通过ACE接口611接收第一节点的处理器返回的第一ACE响应消息;其中该第一ACE响应消息中包含RDMA读请求请求读取的数据。
协议转换器614,还用于解析第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,该RDMA响应消息中包含RDMA读请求请求读取的数据。
RDMA处理器613,用于通过网络接口612将RDMA响应消息发送至第二节点的RDMA网卡。
可选的,RDMA处理器614,还用于通过网络接口612与第二节点的RDMA网卡相互交换系统参数。
可选的,第二节点的协议转换器,还用于对接收到的第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息。
第二节点的RDMA处理器,还用于通过第二节点的ACE接口将第三ACE响应消息发送给第二节点的处理器。
而当第一节点的RDMA网卡还需要执行RDMA写操作时,RDMA处理器613和该协议转换器614还用于实现下述功能:
RDMA处理器613,还用于通过网络接口612接收第二节点的RDMA网卡发送的RDMA写请求;其中该RDMA写请求中包括第二节点请求写入第一节点的数据。
协议转换器614,还用于解析RDMA写请求,得到第二节点请求写入第一节点的数据,生成ACE写请求,该ACE写请求中包含第二节点请求写入第一节点的数据。
RDMA处理器613,还用于通过ACE接口611将ACE写请求发送至第一节点的处理器。
可选的,第二节点的RDMA处理器,用于通过第二节点的ACE接口将第二ACE读请求发送至第二节点的处理器63;该第二ACE读请求包括第二ACE读请求请求读取的数据在第二节点内存中的存储地址;及用于通过第二节点的ACE接口接收第二节点的处理器反馈的第二ACE响应消息;其中该第二ACE响应消息包括所述第二ACE读请求请求读取的数据。
第二节点的协议转换器,用于解析第二ACE响应消息,得第二到ACE读请求请求读取的数据,并生成RDMA写请求。
第二节点的RDMA处理器,还用于通过第二节点的网络接口将RDMA写请求发送至第一节点的RDMA网卡。
本发明的实施例提供的RDMA网卡,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求,对该RDMA读请求进行解析,得到该RDMA读请求请求读取的数据在第一节点的内存中的存储地址,生成包含该存储地址的第一ACE读请求,并将该第一ACE读请求发送至第一节点的处理器;接收第一节点的处理器返回第一ACE响应消息,解析该第一ACE响应消息,得到RDMA读请求请求读取的数据,并生成RDMA响应消息,将该RDMA响应消息发送至第二节点的RDMA网卡;和/或,第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求,并将RDMA写请求中包含的数据封装为ACE写请求发送至第一节点的处理器,高效率的实现了两节点间的数据传输。此外,由于每个节点中的RDMA网卡与处理器间可以直接通过ACE接口进行互联,因此,当两节点间进行数据传输时,只需进行ACE协议与RDMA协议间的转换,从而简化了RDMA网卡向处理器传输报文的过程中繁复的总线转化和多级组件的传递过程,进而提高了RDMA网卡与处理器之间传输报文的效率,同时由于该协议转换过程是由RDMA网卡完成的,因此不会占用处理器,从而降低了处理器的使用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种基于远程直接内存访问RDMA的数据传输方法,所述方法应用于通信系统,所述通信系统包括第一节点和第二节点,每个节点中包括RDMA网卡和处理器,所述RDMA网卡和处理器通过高级可扩展接口总线内存一致性扩展ACE通信,其特征在于,包括:
第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA读请求;所述RDMA读请求包括所述RDMA读请求请求读取的数据在所述第一节点的内存中的存储地址;
对所述RDMA读请求进行解析,得到所述存储地址,生成第一ACE读请求,所述第一ACE读请求中包含所述存储地址;
将所述第一ACE读请求发送至所述第一节点的处理器;
接收所述第一节点的处理器返回的第一ACE响应消息;其中所述第一ACE响应消息中包含所述RDMA读请求请求读取的数据;
解析所述第一ACE响应消息,得到所述RDMA读请求请求读取的数据,并生成RDMA响应消息,所述RDMA响应消息中包含所述RDMA读请求请求读取的数据;
将所述RDMA响应消息发送至所述第二节点的RDMA网卡。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,并生成ACE写请求;所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
将所述ACE写请求发送至所述第一节点的处理器。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
第二节点的RDMA网卡将第二ACE读请求发送至所述第二节点的处理器;所述第二ACE读请求包括所述第二ACE读请求请求读取的数据在所述第二节点内存中的存储地址;
接收所述第二节点的处理器反馈的第二ACE响应消息;其中所述第二ACE响应消息包括所述第二ACE读请求请求读取的数据;
解析所述第二ACE响应消息,得到所述第二ACE读请求请求读取的数据,并生成所述RDMA写请求;
将所述RDMA写请求发送至所述第一节点的RDMA网卡。
4.根据权利要求1或2所述的方法,其特征在于,在所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA读请求之前,所述方法还包括:
所述第一节点的RDMA网卡与所述第二节点的RDMA网卡相互交换系统参数。
5.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
所述第二节点的RDMA网卡对接收到的所述第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息;
将所述第三ACE响应消息发送给所述第二节点的处理器。
6.一种基于远程直接内存访问RDMA的数据传输方法,其特征在于,所述方法应用于通信系统,所述通信系统包括第一节点和第二节点,每个节点中包括RDMA网卡和处理器,所述RDMA网卡和处理器通过高级可扩展接口总线内存一致性扩展ACE通信,包括:
第一节点的RDMA网卡接收第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,并生成ACE写请求;所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
将所述ACE写请求发送至所述第一节点的处理器。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
第二节点的RDMA网卡将ACE读请求发送至所述第二节点的处理器;所述ACE读请求包括所述ACE读请求请求读取的数据在所述第二节点内存中的存储地址;
接收所述第二节点的处理器反馈的ACE响应消息;其中所述ACE响应消息包括所述ACE读请求请求读取的数据;
解析所述ACE响应消息,得到所述ACE读请求请求读取的数据,并生成所述RDMA写请求发送至所述第一节点的RDMA网卡。
8.根据权利要求6所述的方法,其特征在于,在所述第一节点的RDMA网卡接收所述第二节点的RDMA网卡发送的RDMA写请求之前,所述方法还包括:
所述第一节点的RDMA网卡与所述第二节点的RDMA网卡相互交换系统参数。
9.一种基于远程直接内存访问RDMA网卡,位于第一节点中,其特征在于,所述RDMA网卡通过ACE总线与所述第一节点的处理器相连,所述RDMA网卡包括:ACE接口、网络接口、RDMA处理器和协议转换器,所述RDMA处理器和所述协议转换器通过所述ACE接口与所述第一节点的处理器进行通信,所述网络接口用于与外部设备进行通信,其中:
所述RDMA处理器,用于通过所述网络接口接收第二节点的RDMA网卡发送的RDMA读请求;所述RDMA读请求包括所述RDMA读请求请求读取的数据在所述第一节点的内存中的存储地址;
所述协议转换器,用于对所述RDMA读请求进行解析,得到所述存储地址,生成第一ACE读请求,所述第一ACE读请求中包含所述存储地址;
所述RDMA处理器,还用于通过所述ACE接口将所述第一ACE读请求发送至所述第一节点的处理器;
所述RDMA处理器,还用于通过所述ACE接口接收所述第一节点的处理器返回的第一ACE响应消息;其中所述第一ACE响应消息中包含所述RDMA读请求请求读取的数据;
所述协议转换器,还用于解析所述第一ACE响应消息,得到所述RDMA读请求请求读取的数据,并生成RDMA响应消息,所述RDMA响应消息中包含所述RDMA读请求请求读取的数据;
所述RDMA处理器,用于通过所述网络接口将所述RDMA响应消息发送至所述第二节点的RDMA网卡。
10.根据权利要求9所述的RDMA网卡,其特征在于:
所述RDMA处理器,还用于通过所述网络接口接收所述第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
所述协议转换器,还用于解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,生成ACE写请求,所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
所述RDMA处理器,还用于通过所述ACE接口将所述ACE写请求发送至所述第一节点的处理器。
11.根据权利要求10所述的RDMA网卡,其特征在于:
所述第二节点的RDMA处理器,用于通过所述第二节点的ACE接口将第二ACE读请求发送至所述第二节点的处理器;所述第二ACE读请求包括所述第二ACE读请求请求读取的数据在所述第二节点内存中的存储地址;及用于通过所述第二节点的ACE接口接收所述第二节点的处理器反馈的第二ACE响应消息;其中所述第二ACE响应消息包括所述第二ACE读请求请求读取的数据;
所述第二节点的协议转换器,用于解析所述第二ACE响应消息,得到所述第二ACE读请求请求读取的数据,并生成所述RDMA写请求;
所述第二节点的RDMA处理器,还用于通过所述第二节点的网络接口将所述RDMA写请求发送至所述第一节点的RDMA网卡。
12.根据权利要求9或10所述的RDMA网卡,其特征在于:
所述RDMA处理器,还用于通过所述网络接口与所述第二节点的RDMA网卡相互交换系统参数。
13.根据权利要求9或11所述的RDMA网卡,其特征在于:
所述第二节点的协议转换器,还用于对接收到的所述第一节点的RDMA网卡发送的RDMA响应消息进行解析,生成第三ACE响应消息;
所述第二节点的RDMA处理器,还用于通过所述第二节点的ACE接口将所述第三ACE响应消息发送给所述第二节点的处理器。
14.一种基于远程直接内存访问RDMA网卡,位于第一节点中,其特征在于,所述RDMA网卡通过ACE总线与所述第一节点的处理器相连,所述RDMA网卡包括:ACE接口、网络接口、RDMA处理器和协议转换器,所述RDMA处理器和所述协议转换器通过所述ACE接口与所述第一节点的处理器进行通信,所述网络接口用于与外部设备进行通信,其中:
所述RDMA处理器,还用于通过所述网络接口接收第二节点的RDMA网卡发送的RDMA写请求;其中所述RDMA写请求中包括所述第二节点请求写入所述第一节点的数据;
所述协议转换器,还用于解析所述RDMA写请求,得到所述第二节点请求写入所述第一节点的数据,生成ACE写请求,所述ACE写请求中包含所述第二节点请求写入所述第一节点的数据;
所述RDMA处理器,还用于通过所述ACE接口将所述ACE写请求发送至所述第一节点的处理器。
15.根据权利要求14所述的RDMA网卡,其特征在于:
所述第二节点的RDMA处理器,用于通过所述第二节点的ACE接口将ACE读请求发送至所述第二节点的处理器;所述ACE读请求包括所述ACE读请求请求读取的数据在所述第二节点内存中的存储地址;及用于通过所述第二节点的ACE接口接收所述第二节点的处理器反馈的ACE响应消息;其中所述ACE响应消息包括所述ACE读请求请求读取的数据;
所述第二节点的协议转换器,用于解析所述ACE响应消息,得到所述ACE读请求请求读取的数据,并生成所述RDMA写请求;
所述第二节点的RDMA处理器,还用于通过所述第二节点的网络接口将所述RDMA写请求发送至所述第一节点的RDMA网卡。
16.根据权利要求14或15所述的RDMA网卡,其特征在于:
所述RDMA处理器,还用于通过所述网络接口与所述第二节点的RDMA网卡相互交换系统参数。
CN201410373324.XA 2014-07-31 2014-07-31 一种基于rdma的数据传输方法及rdma网卡 Active CN105450588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410373324.XA CN105450588B (zh) 2014-07-31 2014-07-31 一种基于rdma的数据传输方法及rdma网卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410373324.XA CN105450588B (zh) 2014-07-31 2014-07-31 一种基于rdma的数据传输方法及rdma网卡

Publications (2)

Publication Number Publication Date
CN105450588A CN105450588A (zh) 2016-03-30
CN105450588B true CN105450588B (zh) 2019-02-12

Family

ID=55560372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410373324.XA Active CN105450588B (zh) 2014-07-31 2014-07-31 一种基于rdma的数据传输方法及rdma网卡

Country Status (1)

Country Link
CN (1) CN105450588B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107547623B (zh) * 2017-06-28 2021-02-05 新华三云计算技术有限公司 应用数据传输方法、装置、应用服务器和应用代理服务器
WO2019000423A1 (zh) * 2017-06-30 2019-01-03 华为技术有限公司 一种数据存储方法及设备
CN107249008B (zh) * 2017-07-28 2020-09-22 苏州浪潮智能科技有限公司 一种远端数据直接存取的通道互联装置及方法
CN109426632B (zh) * 2018-02-01 2021-09-21 新华三技术有限公司 内存访问方法和装置
CN110888827B (zh) * 2018-09-10 2021-04-09 华为技术有限公司 数据传输方法、装置、设备及存储介质
CN109597713A (zh) * 2018-11-29 2019-04-09 阿里巴巴集团控股有限公司 数据备份方法及装置
CN111858418B (zh) * 2019-04-30 2023-04-07 华为技术有限公司 一种基于远程直接内存访问rdma的内存通信方法及装置
CN112788079A (zh) * 2019-11-07 2021-05-11 华为技术有限公司 一种数据传输方法、网络设备、网络系统及芯片
CN113517991A (zh) * 2020-04-09 2021-10-19 深圳致星科技有限公司 一种加速分布式ai训练云平台的部署方法及相关平台
CN113778320A (zh) * 2020-06-09 2021-12-10 华为技术有限公司 网卡以及网卡处理数据的方法
CN113778319A (zh) 2020-06-09 2021-12-10 华为技术有限公司 网卡的数据处理方法以及网卡
CN113852656B (zh) * 2020-06-28 2023-02-10 华为技术有限公司 一种数据传输方法、处理器系统及内存访问系统
CN113422669B (zh) * 2020-07-09 2023-09-08 阿里巴巴集团控股有限公司 数据传输方法、装置和系统、电子设备以及存储介质
CN114610678A (zh) * 2020-12-08 2022-06-10 华为技术有限公司 一种文件访问方法、存储节点以及网卡
CN113422792B (zh) * 2021-02-05 2024-06-25 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机存储介质
EP4276638A4 (en) * 2021-02-09 2024-02-21 Huawei Technologies Co., Ltd. SYSTEM AND METHOD FOR ACCESSING A REMOTE RESOURCE
CN114285676B (zh) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 智能网卡、智能网卡的网络存储方法和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103636181A (zh) * 2011-06-29 2014-03-12 微软公司 通过远程直接存储器访问的任意大小的传输操作
CN103679249A (zh) * 2012-09-20 2014-03-26 苏州简约纳电子有限公司 一种射频芯片接口电路
CN103902486A (zh) * 2014-04-08 2014-07-02 华为技术有限公司 一种远端直接内存访问实现方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484396B2 (en) * 2011-08-23 2013-07-09 Oracle International Corporation Method and system for conditional interrupts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103636181A (zh) * 2011-06-29 2014-03-12 微软公司 通过远程直接存储器访问的任意大小的传输操作
CN103679249A (zh) * 2012-09-20 2014-03-26 苏州简约纳电子有限公司 一种射频芯片接口电路
CN103902486A (zh) * 2014-04-08 2014-07-02 华为技术有限公司 一种远端直接内存访问实现方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《龙芯3号互联系统的设计与实现》;王焕东、高翔等;《计算机研究与发展》;20081215;正文第2001-2009页及图2

Also Published As

Publication number Publication date
CN105450588A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105450588B (zh) 一种基于rdma的数据传输方法及rdma网卡
CN103902486B (zh) 一种远端直接内存访问实现方法、装置及系统
CN105516191B (zh) 基于fpga实现的万兆网tcp协议卸载引擎toe的系统
CN106648896B (zh) 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法
CN109710548A (zh) 一种dma控制数据传输方法、系统及设备
CN114546913B (zh) 一种基于pcie接口的多主机之间数据高速交互的方法和装置
CN103338217A (zh) 基于低等待时间接口的连网
CN103180817A (zh) 存储扩展装置及服务器
CN108768667B (zh) 一种用于多核处理器片内核间网络通信的方法
CN106610789B (zh) 一种数据处理方法、装置及系统
CN107210924A (zh) 用于配置通信系统的方法和设备
CN110321319A (zh) 片上系统
CN109787981A (zh) 协议转换系统、方法、装置、设备和存储介质
CN108494652A (zh) 一种EtherCAT高速以太网协议转换融合方法
EP2699030B1 (en) Route switching device, network switching system and route switching method
EP3631639B1 (en) Communications for field programmable gate array device
CN108768851B (zh) 一种基于Linux系统实现的路由器环回口方法和装置
CN106411588B (zh) 一种网络设备管理方法、主设备及管理服务器
KR20170102717A (ko) 패브릭 연결망 기반의 마이크로 서버
CN103558995B (zh) 一种存储控制芯片及磁盘报文传输方法
CN113300984B (zh) 通信方法、设备、系统及存储介质
CN103634277B (zh) 一种共享内存的方法、服务器及系统
CN110688237B (zh) 转发报文的方法、中间设备和计算机设备
CN109358820B (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN110209358A (zh) 一种基于FPGA的NVMe设备存储速度提升方法

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