[发明专利]一种基于直写窗口模式的非透明桥读写方法及装置有效
申请号: | 201710165959.4 | 申请日: | 2017-03-20 |
公开(公告)号: | CN106951378B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 王洋 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F13/12 | 分类号: | G06F13/12;G06F9/448 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 窗口 模式 透明 读写 方法 装置 | ||
本发明公开了一种基于直写窗口模式的非透明桥读写方法及装置,该方法包括:搭建控制器间非透明桥映射关系,初始化发送处理线程和接收处理线程;通过发送处理线程发送数据,并更新接收端的tail指针;通过接收处理线程接收数据,并更新发送端的head指。该方法实现降低代码复杂度的同时也提高了读写性能。
技术领域
本发明涉及数据读写技术领域,特别是涉及一种基于直写窗口模式的非透明桥读写方法及装置。
背景技术
目前,非透明桥(NTB)在OS下识别为常规PCIE设备,即具备通用基址寄存器BAR,OS初始化阶段会为非透明桥BAR分配有效地址空间,且将有效地址空间的首地址存储至BARx(x=0~5)。非透明桥广泛应用于控制器间cache同步与镜像,目前常规设计将非透明桥设备虚拟为模拟网卡方式进行读写操作,封装为网络设备进行工作,代码复杂度高且涉及到复杂的Linux网络协议栈,数据读写需要经过繁杂的网络协议栈流程,降低了读写性能。
发明内容
本发明的目的是提供一种基于直写窗口模式的非透明桥读写方法及装置,以实现降低代码复杂度的同时也提高了读写性能。
为解决上述技术问题,本发明提供一种基于直写窗口模式的非透明桥读写方法,该方法包括:
搭建控制器间非透明桥映射关系,初始化发送处理线程和接收处理线程;
通过发送处理线程发送数据,并更新接收端的tail指针;
通过接收处理线程接收数据,并更新发送端的head指针。
优选的,所述搭建控制器间非透明桥映射关系,初始化发送处理线程和接收处理线程之后,还包括:
在基址寄存器空间构建缓冲队列。
优选的,所述在基址寄存器空间构建缓冲队列,包括:
通过dma_alloc接口分配连续缓冲buf作为缓冲队列。
优选的,所述通过接收处理线程接收数据,并更新发送端的head指针之后,还包括:
依据数据中的magic信息校验数据有效性。
本发明还提供一种基于直写窗口模式的非透明桥读写装置,用于实现上述基于直写窗口模式的非透明桥读写方法,包括:
初始化模块,用于搭建控制器间非透明桥映射关系,初始化发送处理线程和接收处理线程;
发送线程模块,用于通过发送处理线程发送数据,并更新接收端的tail指针;
接收线程模块,用于通过接收处理线程接收数据,并更新发送端的head指针。
优选的,所述初始化模块还包括:
构建单元,用于在基址寄存器空间构建缓冲队列。
优选的,所述构建单元具体用于在基址寄存器空间,通过dma_alloc接口分配连续缓冲buf作为缓冲队列。
优选的,所述接收线程模块还包括:
校验单元,用于依据数据中的magic信息校验数据有效性。
本发明所提供的一种基于直写窗口模式的非透明桥读写方法及装置,搭建控制器间非透明桥映射关系,初始化发送处理线程和接收处理线程;通过发送处理线程发送数据,并更新接收端的tail指针;通过接收处理线程接收数据,并更新发送端的head指针。可见,对非透明桥设备映射内存进行直接读写方式进行读写请求操作,摒弃虚拟网卡设计模式,降低了代码复杂度,直写窗口方式直接操作设备内存提高了设备读写性能,提高了请求执行效率,且减少了代码设计复杂度,因此降低代码复杂度的同时也提高了读写性能。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710165959.4/2.html,转载请声明来源钻瓜专利网。