[发明专利]一种基于队列的通信方法及装置有效
| 申请号: | 201310378798.9 | 申请日: | 2013-08-27 |
| 公开(公告)号: | CN104426797B | 公开(公告)日: | 2018-03-13 |
| 发明(设计)人: | 张广飞;张柳航;常轶松;侯锐 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
| 主分类号: | H04L12/861 | 分类号: | H04L12/861 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙)44285 | 代理人: | 唐华明 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 队列 通信 方法 装置 | ||
技术领域
本发明涉及通信技术领域,具体涉及一种基于队列的通信方法及装置。
背景技术
在节点利用基于队列的通信机制QP(Queue Pair)进行数据传输时,会先为该QP在内存建立三个队列:发送队列SQ(Send Queue)、接收队列RQ(Receive Queue)、完成队列CQ(Completion Queue),然后再通过节点连接的适配器adapter进行数据传输。
下面结合图1所示的adapter的发送场景示意图对数据发送过程进行简单介绍。
首先,仲裁器arbiter确定当前处理的QP的身份标识,并由发送引擎send queue process engine判断高速缓冲存储器cache中是否保存有该QP的上下文,如果有,则直接从cache内读取;如果没有,则暂停当前的处理过程,先进行cache替换,即通过访问内存的方式获取当前处理的QP的上下文。
需要说明的是,QP的上下文中保存有该QP对应的三个队列在内存的位置、工作队列元素WQE(Work Queue Element)的个数等信息,占用的存储量较大(一个上下文大概512字节),适配器中无法保存所有QP的上下文。一般情况下,QP的上下文被保存在内存,但为了提高适配器对QP上下文的访问速度,可将常用QP上下文保存在适配器的cache内。
其次,在发送引擎获取到QP的上下文之后,即能获知该QP的发送队列SQ在内存中的位置,进而可读取出SQ队列的首个WQE,并将其对应的数据发送至接收节点。
对于接收节点来说,可结合图2所示的adapter的接收场景示意图对数据接收过程进行简单介绍。
首先,接收引擎receive queue process engine接收到发送节点发送的数据之后,判断cache中是否保存有该数据对应的QP的上下文,如果有,则直接从cache内读取;如果没有,同样要暂停当前的处理过程,进行cache替换,从内存中获取QP的上下文。
其次,在接收引擎获取到QP的上下文之后,即能获知该QP的接收队列RQ在内存中的位置,进而可读取出RQ队列的首个WQE,将接收到的数据保存到WQE指示的缓冲区,完成数据接收过程。
由上述发送和接收过程的介绍可知,因为cache中只保存了一些常用QP的上下文,这就可能出现无法在cache中找到QP上下文的情况,而一旦cache不命中,就需要花费较大的代价进行cache替换,就会降低利用QP通信的节点的数据传输性能。
发明内容
本发明实施例的基于队列的通信方法及装置,通过预处理的方式提高利用QP通信的节点的数据传输性能。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种基于队列的通信方法,与发送节点相连的适配器包括仲裁器、预取器、高速缓冲存储器和发送引擎,所述方法包括:
所述预取器接收所述仲裁器发送的待处理队列的身份标识,所述待处理队列的身份标识由所述仲裁器在获取当前处理队列的身份标识时获取;
所述预取器判断所述高速缓冲存储器中是否保存有所述待处理队列的上下文,如果未保存,则从所述发送节点的内存中读取所述待处理队列的上下文,并保存至所述高速缓冲存储器中,供所述发送引擎发送所述待处理队列的数据时使用。
在第一方面的第一种可能的实现方式中,所述方法还包括:
在所述从所述发送节点的内存中读取所述待处理队列的上下文之后,
所述预取器从所述待处理队列的上下文中提取该待处理队列对应的配对队列的身份标识,并将所述配对队列的身份标识通过所述发送引擎发送给接收节点。
第二方面,本发明实施例提供了一种基于队列的通信方法,与接收节点相连的适配器包括预取器、高速缓冲存储器和接收引擎,所述方法包括:
所述预取器接收所述接收引擎转发的配对队列的身份标识;
所述预取器判断所述高速缓冲存储器中是否保存有所述配对队列的上下文,如果未保存,则从所述接收节点的内存中读取所述配对队列的上下文,并保存至所述高速缓冲存储器中,供所述接收引擎接收所述配对队列的数据时使用。
在第二方面的第一种可能的实现方式中,如果所述接收节点接收到至少两个发送节点发送的配对队列的身份标识,则
所述预取器接收所述接收引擎转发的配对队列的身份标识,包括:
所述预取器接收至少两个配对队列的身份标识,并按接收顺序将所述至少两个配对队列的身份标识保存到等候队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310378798.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据处理方法和电子设备
- 下一篇:一种报文转发的方法及装置





