数据传输方法、装置、设备及存储介质与流程

文档序号:38035372发布日期:2024-05-17 13:20阅读:10来源:国知局
数据传输方法、装置、设备及存储介质与流程

本公开涉及计算机,特别涉及一种数据传输方法、装置、设备及存储介质。


背景技术:

1、目前,对于高速率、大数据量的数据处理,单个fpga(field-programmable gatearray,现场可编程门阵列)已经无法满足运算需求,需要多个fpga共同对数据进行运算,多个fpga之间需要进行高速、可靠的数据传输,才能保证数据处理的效率。

2、相关技术中,fpga之间的数据传输方法包括:第一fpga接收来自第二fpga的数据,并将接收到的数据存储至第一fpga的存储器中,当第一fpga的存储器将要存满时(还未存满,相当于预留了一部分存储空间),第一fpga向第二fpga发送提示信息,以使第二fpga停止发送数据。提示信息发送到第二fpga需要一定的时间,这段时间内第一fpga仍然会接收到来自第二fpga的数据,由于第一fpga预留了一部分存储空间,故这段时间内接收到的数据就可以存储在存储器中预留的存储空间中。

3、然而,上述方式中涉及到的预留的存储空间一般较小,仅仅适用于传输过程中涉及到的数据量小的流模式传输。对于包模式传输,由于单个数据包的数据量较大,且数据包的大小是不固定的,这个预留的存储空间往往不能存储接收到的数据包,从而导致丢包现象。


技术实现思路

1、本公开提供了一种数据传输方法、装置、设备及存储介质,能够减少丢包现象,提高fpga间数据传输过程的稳定性。所述技术方案至少包括如下方案:

2、第一方面,提供了一种数据传输方法,用于在第一fpga和第二fpga之间传输数据,所述第一fpga包括第一缓存单元,所述第一缓存单元包括多个缓存子单元,每个所述缓存子单元用于存储一个数据包,所述多个缓存子单元的大小相同,所述方法包括:所述第一fpga接收来自所述第二fpga的第一数据包;将所述第一数据包存储至所述第一缓存单元中的一个缓存子单元;响应于所述第一缓存单元中未存储数据的缓存子单元的数量等于裕量阈值,向所述第二fpga发送第一提示信息,所述第一提示信息用于指示所述第一缓存单元中所述未存储数据的缓存子单元的数量等于所述裕量阈值,所述裕量阈值根据所述第一fpga和所述第二fpga之间能够传输的最大数据包和最小数据包的大小确定。

3、可选地,所述方法还包括:根据所述最小数据包的大小和所述第二fpga发送数据的速率确定第一时长;根据所述最大数据包的大小和所述第一fpga读取数据的速率确定第二时长;将所述第二时长与所述第一时长的比值,作为所述裕量阈值。

4、可选地,所述第一缓存单元为先进先出缓存单元,所述第一fpga还包括第一运算程序,所述第一运算程序用于从所述第一缓存单元中读取数据包,所述方法还包括:按时间先后顺序将接收到的所述数据包依次存储在所述第一缓存单元的所述多个缓存子单元中;通过所述第一运算程序从所述第一缓存单元中的一个存储了所述数据包的所述缓存子单元中读取数据;在所述缓存子单元中存储的所述数据包被读取完毕后,通过所述第一运算程序从下一个所述缓存子单元中读取所述数据包。

5、可选地,所述方法还包括:接收来自所述第二fpga的第二数据包,所述第二数据包是所述第一fpga发送所述第一提示信息后,所述第二fpga发送的;将所述第二数据包存储至所述第一缓存单元中所述未存储数据的缓存子单元中。

6、可选地,所述方法还包括:响应于所述第一缓存单元中所述多个缓存子单元均存储了数据包,向所述第二fpga发送第二提示信息,所述第二提示信息用于指示所述第一缓存单元已满。

7、第二方面,提供了另一种数据传输方法,用于在第一fpga和第二fpga之间传输数据,所述第一fpga包括第一缓存单元,所述第一缓存单元包括多个缓存子单元,每个所述缓存子单元用于存储一个数据包,所述多个缓存子单元的大小相同,所述方法包括:所述第二fpga向所述第一fpga发送第一数据包;接收所述第一fpga发送的第一提示信息,所述第一提示信息用于指示所述第一缓存单元中未存储数据的缓存子单元的数量等于裕量阈值,所述裕量阈值根据所述第一fpga和所述第二fpga之间能够传输的最大数据包和最小数据包的大小确定,所述第一提示信息是所述第一fpga确定所述第一缓存单元中所述未存储数据的缓存子单元的数量等于所述裕量阈值后发送的;根据所述第一提示信息,停止向所述第一fpga发送数据包。

8、第三方面,还提供了一种数据传输装置,用于在第一fpga和第二fpga之间传输数据,所述第一fpga包括第一缓存单元,所述第一缓存单元包括多个缓存子单元,每个所述缓存子单元用于存储一个数据包,所述多个缓存子单元的大小相同,所述装置包括:接收模块,用于接收来自所述第二fpga的第一数据包;存储模块,用于将所述第一数据包存储至所述第一缓存单元中的一个缓存子单元;发送模块,用于响应于所述第一缓存单元中未存储数据的缓存子单元的数量等于裕量阈值,向所述第二fpga发送第一提示信息,所述第一提示信息用于指示所述第一缓存单元中所述未存储数据的缓存子单元的数量等于所述裕量阈值,所述裕量阈值根据所述第一fpga和所述第二fpga之间能够传输的最大数据包和最小数据包的大小确定。

9、可选地,所述裕量阈值根据所述第一fpga和所述第二fpga之间能够传输的最大数据包和最小数据包的大小确定,包括:根据所述最小数据包的大小和所述第二fpga发送数据的速率确定第一时长;根据所述最大数据包的大小和所述第一fpga读取数据的速率确定第二时长;将所述第二时长与所述第一时长的比值,作为所述裕量阈值。

10、可选地,所述存储模块还用于按时间先后顺序将接收到的所述数据包依次存储在所述第一缓存单元的多个缓存子单元中。

11、可选地,所述装置还包括:读取模块,用于通过所述第一运算程序从所述第一缓存单元中的一个存储了所述数据包的所述缓存子单元中读取数据;在所述缓存子单元中存储的所述数据包被读取完毕后,通过所述第一运算程序从下一个所述缓存子单元中读取所述数据包。

12、可选地,所述接收模块还用于接收来自所述第二fpga的第二数据包,所述第二数据包是所述第一fpga发送所述第一提示信息后,所述第二fpga发送的;所述存储模块还用于将所述第二数据包存储至所述第一缓存单元中所述未存储数据的缓存子单元中。

13、可选地,所述发送模块还用于响应于所述第一缓存单元中所述多个缓存子单元均存储了数据包,向所述第二fpga发送第二提示信息,所述第二提示信息用于指示所述第一缓存单元已满。

14、第四方面,还提供了一种数据传输装置,用于在第一fpga和第二fpga之间传输数据,所述第一fpga包括第一缓存单元,所述第一缓存单元包括多个缓存子单元,每个所述缓存子单元用于存储一个数据包,所述多个缓存子单元的大小相同,所述装置包括:发送模块和接收模块;所述发送模块,用于向所述第一fpga发送第一数据包;所述接收模块,用于接收所述第一fpga发送的第一提示信息,所述第一提示信息用于指示所述第一缓存单元中未存储数据的缓存子单元的数量等于裕量阈值,所述裕量阈值根据所述第一fpga和所述第二fpga之间能够传输的最大数据包和最小数据包的大小确定,所述第一提示信息是所述第一fpga确定所述第一缓存单元中所述未存储数据的缓存子单元的数量等于所述裕量阈值后发送的;所述发送模块还用于根据所述第一提示信息,停止向所述第一fpga发送数据包。

15、第五方面,还提供了一种计算机设备,包括:存储器和处理器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,从而执行上述实施例中所述的第一方面或者第二方面的方法。

16、第六方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,从而执行上述实施例中所述的第一方面或者第二方面的方法。

17、本公开实施例提供的技术方案带来的有益效果至少包括:

18、在第一提示信息发送后,送达第二fpga之前的过程中,第一fpga仍然会接收到来自第二fpga的第二数据包,由于第一提示信息用于指示第一缓存单元中未存储数据的缓存子单元的数量等于裕量阈值,而裕量阈值是根据最大数据包和最小数据包的大小确定的,因此第一缓存单元中未存储数据的缓存子单元的数量足以存储这个过程中接收到的第二数据包,有效减少了导致丢包现象的产生,进而提高了fpga间数据传输过程的稳定性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1