一种远程直接存储器存取的方法及装置的制造方法_2

文档序号:9711590阅读:来源:国知局
标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,对第一 RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
[0034]反馈模块,用于利用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二 RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
[0035]结合第二方面,在第一种可能的实现方式中,所述装置还包括:
[0036]标志地址获取模块,用于当第一电子设备和第二电子设备协商建立RDMA连接时,接收到第二电子设备发起的RDMA建链请求报文,在响应报文中携带第一电子设备的属性标志;其中,该属性标志用于标示所述第一电子设备对于接收到的RDMA写请求报文直接处理不进行缓存;接收第二电子设备反馈的所述标志地址;其中,所述标志地址是所述第二电子设备根据所述响应报文中的属性标志构造的地址;将所述标志地址记录在建立地RDMA连接对应的上下文信息中。
[0037]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括:
[0038]标识地址获取模块,用于从所述第一RDMA写请求报文中获取所述RDMA连接对应的连接号;利用所属连接号查询所述RDMA连接对应的上下文信息,从所述上下文信息中获取所述标志地址。
[0039]上述技术方案中的一个或两个,至少具有如下技术效果:
[0040]本发明实施例所提供的方法和装置中,第一电子设备可以是全硬件构造,接收RDMA写请求报文后可以直接进行处理,不需要按照标准的RDMA协议进行缓存,所以第一电子设备端并不需要传递存储RDMA写请求报文的地址给第二电子设备。进而第二电子设备在将RDMA写请求报文发送给第一电子设备的时候,可以构造第一电子设备端存储RDMA写请求报文的一个虚假地址。同时由于报文都是由第二电子设备发送到第一电子设备再到第二电子设备的交互,所以第二电子设备可以在将报文净荷传递给第一电子设备的同时,将自身空闲地址一起传给第一电子设备,作为第一电子设备返回报文给第二电子设备时的存储地址,通过上述方法节省了两次地址传递的交互流程。省去了不必要的地址传输,降低了主机和设备之间报文交互的延时和节省了传输带宽。
【附图说明】
[0041]图1为现有技术中主机之间建立一个队列对进行通信的示意图;
[0042]图2为现有技术中标准的RDMA写请求操作流程的示意图;
[0043]图3为本发明实施例提供一种远程直接存储器存取的方法示意图;
[0044]图4为本发明实施例所提供方法应用到实际场景中的流程示意图;
[0045]图5为本发明实施例提供一种远程直接存储器存取的装置的结构示意图;
[0046]图6为本发明实施例提供的另一种远程直接存储器存取的装置的结构示意图;
[0047]图7为本发明实施例提供的另一种远程直接存储器存取的装置的结构示意图。
【具体实施方式】
[0048]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]下面结合说明书附图对本发明实施例作进一步详细描述。
[0050]如图3所示,本发明实施例提供一种远程直接存储器存取的方法,该方法应用于第一电子设备中,第一电子设备与第二电子设备之间建立有远程直接存储器存取RDMA连接,该方法包括:
[0051]本实施例所提供的方法主要应用于第一电子设备和第二电子设备之间通信的应用场景,其中报文交互都是有第二电子设备发给第一电子设备进行处理,并且第一电子设备处理完成后直接返回给第二电子设备的通信场景中。
[0052]步骤301,第一电子设备通过所述RDMA连接接收到第二电子设备发送的第一 RDMA写请求报文后,从该第一 RDMA写请求报文的RDMA协议头中获取第一地址;
[0053]在现有技术的方案中,第一地址的作用是标示第一RDMA写请求报文写入第一电子设备时的存储地址,但是在本发明实施例中,因为第一RDMA写请求报文是直接进行处理的报文并不需要第一电子设备对其进行缓存,所以在实现第一 RDMA写请求报文的处理时,并不需要缓存地址;在该情况下,为了减少处理流程,本发明实施例中提供的第一地址是第二电子设备构造的虚假地址,该第一地址的作用是用于标示第一电子设备接收到第一 RDMA写请求报文后直接进行处理,并不需要进行缓存。
[0054]步骤302,将所述第一地址与预存的标志地址进行比较,如果第一地址与所述标志地址相同,则从所述第一RDMA写请求报文的协议扩展头中获取第二地址,并对第一RDMA写请求报文的净荷进行处理得到处理后得到的结果数据;
[0055]在该实施例中,在RDMA协议头中解析出的第一地址如果与第一电子设备本地存储的标志地址相同,则说明该第一地址是虚假地址,第一电子设备则不需要对第一RDMA写请求报文进行缓存;进一步,在处理完第一 RDMA写请求报文后,也不需要再与第二电子设备交互获取反馈结果数据的存储地址,因为第二电子设备在发送第一 RDMA写请求报文之前,就已经申请了存储结果数据的地址并携带在第一RDMA写请求报文中,所以第一电子设备检测到与标志地址相同的第一地址后,还可以从第一 RDMA写请求报文的扩展协议头中获取到第二电子设备存储结果数据的第二地址。
[0056]步骤303,用所述第二地址和所述结果数据构造第二RDMA写请求报文,并利用所述第二地址将所述第二 RDMA写请求报文写到所述第二电子设备中所述第二地址对应的存储区域中。
[0057]因为第二地址是携带在第一RDMA写请求报文中的,所以第一电子设备在反馈结果数据的时候,可以直接将第二地址和所述结果数据构造第二 RDMA写请求报文,并利用第二地址将第二 RDMA写请求报文写入第二电子设备。
[0058]本发明实施例中,第一电子设备可以是全硬件构造,接收RDMA写请求报文后可以直接进行处理,不需要按照标准的RDMA协议进行缓存,所以第一电子设备端并不需要传递存储RDMA写请求报文的地址给第二电子设备。进而第二电子设备在将RDMA写请求报文发送给第一电子设备的时候,可以构造第一电子设备端存储RDMA写请求报文的一个虚假地址。同时由于报文都是由第二电子设备发送到第一电子设备再到第二电子设备的交互,所以第二电子设备可以在将报文净荷传递给第一电子设备的同时,将自身空闲地址一起传给第一电子设备,作为第一电子设备返回报文给第二电子设备时的存储地址,通过上述方法节省了两次地址传递的交互流程。省去了不必要的地址传输,降低了主机和设备之间报文交互的延时和节省了传输带宽。
[0059]在本发明实施例中,第一电子设备和第二电子设备可以通过协商的方式实现标志地址的识别,则
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1