System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于远程直接内存访问报文发送的方法及计算机设备技术_技高网

用于远程直接内存访问报文发送的方法及计算机设备技术

技术编号:40435535 阅读:7 留言:0更新日期:2024-02-22 23:00
本申请涉及计算机技术领域并提供一种用于远程直接内存访问报文发送的方法及计算机设备。方法包括:通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包。如此,有效地降低接口时延,有利于满足高速数据传输要求。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种用于远程直接内存访问报文发送的方法及计算机设备


技术介绍

1、远程直接内存访问是将数据从物理线路直接拷贝到应用程序,或者,从应用程序直接拷贝到物理线路,这样在两台主机之间进行数据传输且不经过系统内核,节省了数据拷贝和内核切换。现有技术中,用于发送远程直接内存访问数据的硬件例如远程直接内存访问网卡一般通过插槽连接本地主机的主板,本地主机通过总线操作来实现与硬件的交互,因此导致操作时延高,难以满足高速数据传输的要求。

2、为此,本申请提供了一种用于远程直接内存访问报文发送的方法及计算机设备,用于应对现有技术的技术难题。


技术实现思路

1、第一方面,本申请提供了一种用于远程直接内存访问报文发送的方法。所述方法包括:通过远程直接内存访问软件,选择性地按照第一下发模式或者第二下发模式来下发第一报文相关联的第一工作队列元素和与所述第一工作队列元素对应的第一载荷;通过远程直接内存访问硬件,获取所述第一工作队列元素和所述第一载荷,然后组装所述第一工作队列元素和所述第一载荷得到与所述第一报文对应的第一远程直接内存访问报文包,其中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于不在所述远程直接内存访问硬件上的第一缓存空间,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件将所述第一工作队列元素和所述第一载荷存储于在所述远程直接内存访问硬件上的第二缓存空间,当连接所述远程直接内存访问软件和所述远程直接内存访问硬件的第一接口的接口时延大于第一预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

2、通过本申请的第一方面,通过比较连接远程直接内存访问软件和远程直接内存访问硬件的第一接口的接口时延与第一预设阈值,可以利用远程直接内存访问硬件提供远程直接内存访问逻辑的中断反馈,通过远程直接内存访问软件选择性地按照第一下发模式或者第二下发模式来下发第一工作队列元素和对应的第一载荷,有效地降低接口时延,有利于满足高速数据传输要求,同时还考虑到了远程直接内存访问硬件上的有限算力资源和有限存储资源。

3、在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间。

4、在本申请的第一方面的一种可能的实现方式中,所述第一接口是快捷外围组件互连接口、通用串行总线接口或者串行器解串器接口。

5、在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。

6、在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。

7、在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。

8、在本申请的第一方面的一种可能的实现方式中,所述方法还包括:通过所述远程直接内存访问软件,按照所述第二下发模式来下发多个工作队列元素和与所述多个工作队列元素一一对应的多个载荷,并且,所述远程直接内存访问软件通过写入组合操作将所述多个工作队列元素和所述多个载荷存储于所述第二缓存空间。

9、在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问硬件检测到链路阻塞程度高于第二预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,并且,当所述远程直接内存访问硬件检测到所述远程直接内存访问硬件的基地址寄存器资源占用率高于第三预设阈值时,所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。

10、在本申请的第一方面的一种可能的实现方式中,所述远程直接内存访问软件用于:基于先前多个批次下发的工作队列元素的数量和载荷的数据长度,选择性地按照所述第一下发模式或者所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

11、在本申请的第一方面的一种可能的实现方式中,当所述先前多个批次下发的工作队列元素的数量和载荷的数据长度各自的变化幅度小于第四预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

12、在本申请的第一方面的一种可能的实现方式中,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例是基于所述第一预设阈值确定。

13、在本申请的第一方面的一种可能的实现方式中,当所述第一报文相关联的应用场景被选择为工业自动化应用场景或者交通监控应用场景时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

14、第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。

15、第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。

16、第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。

本文档来自技高网...

【技术保护点】

1.一种用于远程直接内存访问报文发送的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间。

3.根据权利要求2所述的方法,其特征在于,所述第一接口是快捷外围组件互连接口、通用串行总线接口或者串行器解串器接口。

4.根据权利要求1所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。

5.根据权利要求4所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。

6.根据权利要求4所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求2所述的方法,其特征在于,当所述远程直接内存访问硬件检测到链路阻塞程度高于第二预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷,并且,当所述远程直接内存访问硬件检测到所述远程直接内存访问硬件的基地址寄存器资源占用率高于第三预设阈值时,所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷。

9.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问软件用于:基于先前多个批次下发的工作队列元素的数量和载荷的数据长度,选择性地按照所述第一下发模式或者所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

10.根据权利要求9所述的方法,其特征在于,当所述先前多个批次下发的工作队列元素的数量和载荷的数据长度各自的变化幅度小于第四预设阈值时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

11.根据权利要求1所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述第一工作队列元素的长度相对于所述第二缓存空间中用于存储所述第一工作队列元素和所述第一载荷的物理页的比例是基于所述第一预设阈值确定。

12.根据权利要求1所述的方法,其特征在于,当所述第一报文相关联的应用场景被选择为工业自动化应用场景或者交通监控应用场景时,所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷。

13.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至12中任一项所述的方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至12中任一项所述的方法。

...

【技术特征摘要】

1.一种用于远程直接内存访问报文发送的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述远程直接内存访问软件侧部署在第一主机,所述远程直接内存访问硬件通过所述第一接口连接所述第一主机,所述第一缓存空间是所述第一主机的内存,所述第二缓存空间是所述远程直接内存访问硬件的基地址寄存器空间。

3.根据权利要求2所述的方法,其特征在于,所述第一接口是快捷外围组件互连接口、通用串行总线接口或者串行器解串器接口。

4.根据权利要求1所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件先通过所述第一接口访问所述第一缓存空间来获取所述第一工作队列元素再通过所述第一接口访问所述第一缓存空间来获取所述第一载荷;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件利用对所述第二缓存空间的单次访问且不通过所述第一接口来获取所述第一工作队列元素和所述第一载荷。

5.根据权利要求4所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问软件先将所述第一工作队列元素存储于所述第二缓存空间然后将所述第一载荷附加在位于所述第二缓存空间中的所述第一工作队列元素的尾部。

6.根据权利要求4所述的方法,其特征在于,当所述远程直接内存访问软件按照所述第一下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件通过所述第一接口接收来自所述远程直接内存访问软件的门铃通知;当所述远程直接内存访问软件按照所述第二下发模式来下发所述第一工作队列元素和所述第一载荷时,所述远程直接内存访问硬件接收硬件门铃通知且不通过所述第一接口。

7.根据权利要求1所述的方法,其特征在于,所述方法还包括:

8.根据权利要求2所述的...

【专利技术属性】
技术研发人员:陈雅民
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1