基于CXL共享内存的数据传输方法及相关设备与流程

文档序号:37943603发布日期:2024-05-11 00:24阅读:13来源:国知局
基于CXL共享内存的数据传输方法及相关设备与流程

本技术涉及通信,具体涉及一种基于cxl共享内存的数据传输方法及相关设备。


背景技术:

1、在传统的计算系统架构中,计算系统中的多个计算设备之间需要通过通信链路进行数据传输,在待传输数据较大时,需要占用较多的通信资源,从而可能导致计算设备的其他业务运行受到影响。在计算设备的业务数量多、数据传输需求大的场景下,该方案无法同时满足计算设备的数据传输需求和业务开展需求。


技术实现思路

1、本技术实施例提供一种基于cxl共享内存的数据传输方法及相关设备,能够同时满足计算系统中计算设备的数据传输需求和业务开展需求。

2、第一方面本技术实施例提供了一种基于计算快速链路(compute express link,cxl)共享内存的数据传输方法,该方法应用于第一计算设备;该方法包括:

3、向第二计算设备发送数据传输通知;在收到第二计算设备的响应消息的情况下,向第二计算设备发送数据读取通知;基于该共享内存的地址信息向该共享内存写入待传输数据。

4、其中,该数据传输通知包括共享内存的地址信息,且该数据传输通知用于指示在该第一计算设备和该第二计算设备之间建立通信链路;该共享内存为该第一计算设备和该第二计算设备基于cxl协议共享的内存空间。

5、其中,该响应消息用于指示该第二计算设备与该第一设备之间已经建立通信链路;该数据读取通知用于指示该第二计算设备从该共享内存读取待传输数据。

6、本技术实施例中,第一计算设备和第二计算设备通过共享内存实现数据传输,可以将通信链路和数据链路解耦,数据传输无需占用通信资源,可以同时满足二者的数据传输需求和业务开展需求;同时,第一计算设备可以先向第二计算设备发送数据读取通知,再将待传输数据写入共享内存,这样相比在数据写入完成后再发送通知的方式,可以减少由于网络时延导致的数据传输耗时。

7、在一种可能的实现中,该共享内存包括应答标志区;在该向该第二计算设备发送数据读取通知之后,该方法还包括:在预设时长内确定该应答标志区是否具有第一预设标识;其中,该第一预设标识用于指示该第二计算设备已接收到该数据读取通知;若在该预设时长内该应答标志区不具有该第一预设标识,则重新向该第二计算设备发送该数据读取通知。

8、本技术实施例中,通过设置应答标志区,可以确保第二计算设备接收到数据读取通知,提高了数据传输的可靠性。

9、在一种可能的实现中,该共享内存包括完成标志区;在该基于该共享内存的地址信息向该共享内存写入待传输数据之后,该方法还包括:确定该待传输数据是否全部写入该共享内存;若该待传输数据全部写入该共享内存,则在该完成标志区写入第二预设标识;其中,该第二预设标识用于指示该待传输数据已全部写入该共享内存。

10、在另一种可能的实现中,数据传输通知还用于指示写入开始标志和写入完成标志;第一计算设备可以在写入该待传输数据时,在该待传输数据的写入首地址之前加入该写入开始标志,在该待传输地址的写入尾地址之后加入该写入完成标志;当第二计算设备在该共享内存检测到该写入开始标志和该写入完成标志时,可以读取该二者之间的待传输数据。

11、本技术实施例中,在第一计算设备将待传输数据全部写入该共享内存的情况下,通过在共享内存中添加代表待传输数据写入完成的标志,可以避免第二计算设备在待传输数据写入完成前就读取数据,导致接收的数据不完整的情况,提高了数据传输的可靠性。

12、在一种可能的实现中,该待传输数据包括多个数据切片;该共享内存包括切片计数区、每个该数据切片对应的切片数据区以及每个该数据切片对应的切片完成标志区;该切片计数区用于指示已写入该共享内存的数据切片的数量;每个该切片数据区用于写入对应的数据切片;该基于该共享内存的地址信息向该共享内存写入待传输数据,包括:确定是否存在待写入的数据切片;若存在待写入的数据切片,则向对应的切片数据区写入该待写入的数据切片;在与该待写入的数据切片对应的切片完成标志区写入第三预设标识,并更新该切片计数区中已写入该共享内存的数据切片的计数;其中,该第三预设标识用于指示该数据切片已经全部写入该切片数据区。

13、本技术实施例中,第一计算设备将待传输数据以数据切片的方式写入共享内存,第二计算设备在检测到对应的切片完成标志区包括第三预设标识时读取该完整的数据切片,可以提高数据传输时的读写并发能力,从而提高传输性能;另外,通过共享内存实现分片传输,相比通过通信链路进行分片传输的方式,能够节省大量的通信资源。

14、在一种可能的实现中,该共享内存包括应答标志区和/或完成标志区;在该向该第二计算设备发送数据读取通知之前,该方法还包括:清空该应答标志区和/或该完成标志区。

15、本技术实施例中,通过清空功能区域的数据,可以在第一计算设备或第二计算设备需要基于这些功能区域的数据进行判断时,避免由于这些功能区域原本存在的数据导致误判的情况。

16、第二方面,本技术实施例提供了一种基于cxl共享内存的数据传输方法,该方法应用于第二计算设备;该方法包括:

17、接收第一计算设备发送的数据传输通知;其中,该数据传输通知包括共享内存的地址信息,且该数据传输通知用于指示在该第一计算设备和该第二计算设备之间建立通信链路;该共享内存为该第一计算设备和该第二计算设备基于cxl协议共享的内存空间;基于该数据传输通知向该第一计算设备发送响应消息;其中,该响应消息用于指示该第二计算设备与该第一设备之间已经建立通信链路;接收该第一计算设备发送的数据读取通知;基于该数据读取通知和该共享内存的地址信息,从该共享内存读取待传输数据。

18、在一种可能的实现中,该共享内存包括应答标志区;在该接收该第一计算设备发送的数据读取通知之后,该方法还包括:响应于该数据读取通知,在该应答标志区写入第一预设标识;其中,该第一预设标识用于指示该第二计算设备已接收到该数据读取通知。

19、在一种可能的实现中,该共享内存包括完成标志区;该从该共享内存读取待传输数据,包括:确定该完成标志区是否具有第二预设标识;该第二预设标识用于指示待传输数据全部写入该共享内存;若该完成标志区具有该第二预设标识,则从该共享内存读取该待传输数据。

20、在一种可能的实现中,该待传输数据包括多个数据切片;该共享内存包括切片计数区、每个该数据切片对应的切片数据区以及每个该数据切片对应的切片完成标志区;该切片计数区用于指示已写入该共享内存的数据切片的数量;每个该切片数据区用于写入对应的数据切片;该从该共享内存读取待传输数据,包括:确定待读取的该数据切片对应的切片完成标志区是否具有第三预设标识;其中,该第三预设标识用于指示该数据切片已经全部写入该切片数据区;若该待读取的数据切片对应的切片完成标志区具有该第三预设标识,则读取该待读取的数据切片,并更新已读取的数据切片的计数。

21、其中,该已读取的数据切片的计数为第二计算设备维护的计数,每完成一个数据切片的读取接收,第二计算设备将该计数加一。

22、在一种可能的实现中,该共享内存还包括完成标志区;在该更新已读取的数据切片的计数之后,该方法还包括:获取该切片计数区的计数;若该切片计数区的计数和该已读取的数据切片的计数相同,且该完成标志区具有第二预设标识,则确定该待传输数据接收完成。

23、本技术实施例中,通过以第一计算设备负责写入的第二预设标识和切片计数区的计数,以及第二计算设备自身负责维护的已读取数据切片的计数,确定数据传输流程是否结束,可以保障第二计算设备所接收数据的完整性。

24、第三方面,本技术实施例提供了一种第一计算设备,该第一计算设备包括:第一存储器和第一处理器,该第一处理器与第一存储器耦合;该第一存储器中存储计算机程序指令;该计算机程序指令由该第一处理器加载并执行,以使该第一计算设备实现第一方面中任一可能实现所述的方法。

25、第四方面,本技术实施例提供了一种第二计算设备,该第二计算设备包括:第二存储器和第二处理器;该第二处理器与第二存储器耦合;该第二存储器中存储计算机程序指令;该计算机程序指令由该第二处理器加载并执行,以使该第二计算设备实现第二方面中任一可能实现所述的方法。

26、第五方面,本技术实施例提供了一种计算系统,该计算系统包括如第三方面所述的第一计算设备、如第四方面所述的第二计算设备,以及共享内存;该第一计算设备和该第二计算设备用于通过cxl协议读写该共享内存。

27、第六方面,在本技术实施例提供一种第一计算机可读存储介质,该第一计算机可读存储介质中存储有计算机执行指令,该计算机执行指令由第一计算设备执行,实现如第一方面及其各可能实现方式中所涉及的基于cxl共享内存的数据传输方法。

28、第七方面,在本技术实施例提供一种第二计算机可读存储介质,该第二计算机可读存储介质中存储有计算机执行指令,该计算机执行指令由第二计算设备执行,实现如第二方面及其各可能实现方式中所涉及的基于cxl共享内存的数据传输方法。

29、第八方面,本技术实施例提供一种第一计算机可读存储介质,该第一计算机可读存储介质中存储有计算机执行指令,该计算机执行指令由第一计算设备执行,实现如第一方面及其各可能实现方式中所涉及的基于cxl共享内存的数据传输方法。

30、第九方面,本技术实施例提供一种第二计算机可读存储介质,该第二计算机可读存储介质中存储有计算机执行指令,该计算机执行指令由第二计算设备执行,实现如第二方面及其各可能实现方式中所涉及的基于cxl共享内存的数据传输方法。应理解的是,上述各个方面的有益效果可以相互参考。

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