[发明专利]内存访问方法、设备和系统有效
申请号: | 201310101248.2 | 申请日: | 2013-03-26 |
公开(公告)号: | CN103227778A | 公开(公告)日: | 2013-07-31 |
发明(设计)人: | 程广卫;李健 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;G06F13/28 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 黄厚刚 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 访问 方法 设备 系统 | ||
技术领域
本发明涉及网络技术领域,特别涉及一种内存访问方法、设备和系统。
背景技术
RDMA(Remote Direct Memory Access,远程直接内存访问)技术,允许跨主机之间的直接内存访问,减少了数据在内存中复制的次数,并且在发送数据时不需要CPU的参与,从而减少了数据传输过程中的延迟。
RDMA操作包括RDMA写操作、RDMA读操作和RDMA发送操作。其中,RDMA写操作和RDMA读操作在执行之前需要交换通信双方的内存地址,以便RDMA写操作和RDMA读操作可以直接从对方内存中写入数据或者读取数据;而RDMA发送操作在执行之前则不需要交换通信双方的内存地址。具体来讲,执行RDMA发送操作时,接收方可以将接收到的数据存放在指定缓冲区,该缓冲区地址不需要发送方知道,所以RDMA发送操作比RDMA写操作和RDMA读操作简单,但是RDMA写操作和RDMA读操作比RDMA发送操作效率高。
现有技术中,通信双方的主机可以直接通过RDMA发送操作进行直接内存访问。此时,发送方通过RDMA发送操作将请求发送给接收方,接收方接收到请求之后再通过RDMA发送操作将请求内容和请求结果反馈给发送方。在另一种实现方式下,通信双方的主机还可以通过RDMA发送操作和RDMA写操作两者的结合进行直接内存访问。也即,接收方通过RDMA发送操作将请求发送给发送方,发送方收到请求之后通过RDMA写操作将请求内容发送给接收方,但由于接收方的应用层并不会感知发送方的RDMA写操作,所以发送方还需要通过RDMA发送操作将请求结果反馈给接收方,以便接收方获知其请求的数据已经被发送方写入了接收方的内存中,从而触发接收方对该数据进行处理。
在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:由于RDMA发送操作效率低下,在前一种实现方式下,通信双方均通过RDMA发送操作将请求或者请求结果发送给对方,在一次通信过程中采用两次RDMA发送操作,导致通信延迟大;而另一种实现方式下,发送方采用RDMA写操作虽然提高了效率,但是却增加了一次将请求结果发送给接收方的RDMA发送操作,这也增加了通信延迟。
发明内容
为了减少通信双方远程直接内存访问过程中的通信延迟,本发明实施例提供了一种不需要采用RDMA发送操作就能够实现直接内存方法的内存访问方法、设备和系统。所述技术方案如下:
第一方面,本发明实施例提供了一种内存访问方法,所述方法包括:
发送节点从预先存储的令牌集中选择当前使用令牌,所述令牌集包括至少一个令牌,且每个令牌都分别指向接收节点的接收内存中的一块区域;
所述发送节点向接收节点发送远程直接内存访问RDMA写操作指令,所述RDMA写操作指令携带有待发送的数据、所述当前使用令牌所指向的所述接收节点的接收内存中的区域的位置信息和所述当前使用令牌的令牌号,以便所述接收节点接收所述RDMA写操作指令,根据所述位置信息将所述待发送的数据写入所述当前使用令牌所指向的所述接收节点的接收内存中的区域中,并根据所述当前使用令牌的令牌号处理所述数据。
在第一方面的第一种可能的实施方式中,所述在所述发送节点从预先存储的令牌集中分配当前使用令牌之前,还包括:
所述发送节点接收并存储所述接收节点发送的令牌信息,所述令牌信息包括至少一个令牌的令牌号、每个令牌所指向的所述接收节点的接收内存中的区域的位置信息和每个令牌在所述接收节点中的使用状态,所述使用状态包括可用、已使用和已使用完毕三种状态;
所述发送节点将每个令牌在所述发送节点中的使用状态初始化,以使每个令牌在所述发送节点中的使用状态与所述令牌在所述接收节点中的使用状态一致;
所述发送节点从预先存储的令牌集中选择当前使用令牌,包括:
所述发送节点根据所述待发送的数据的属性从在所述发送节点中的使用状态为可用的令牌中选择当前使用令牌。
结合第一方面的第一种可能的实施方式,在第二种可能的实施方式中,在所述发送节点从预先存储的令牌集中选择当前使用令牌之后,还包括:
所述发送节点将所述当前使用令牌在所述发送节点中的使用状态由可用标记为已使用;
所述发送节点检测在所述发送节点中的使用状态为已使用的令牌中是否存在可回收令牌,所述可回收令牌是在所述发送节点中的使用状态为已使用,在所述接收节点中的使用状态为已使用完毕的令牌;
若检测结果为存在可回收令牌,则所述发送节点回收所述可回收令牌。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310101248.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种网站登录信息填入方法及装置
- 下一篇:控制报文传输的方法、装置和系统