本公开涉及数据处理,尤其涉及一种数据传输系统、方法、装置和存储介质。
背景技术:
1、pcie(peripheral component interconnect express)总线是一种高速串行通信总线标准,用于连接计算机主板上的各种外部设备,如图形处理器、网络适配器、存储控制器等。pcie提供了高带宽和低延迟的数据传输,使得设备能够快速地与主机进行通信。在当前的技术方案中,host(主机侧)和device(设备侧)之间的通信主要依赖于直接跨pcie总线进行内存读写操作,然而,跨pcie进行内存读写操作非常耗时,导致当前的跨总线数据传输方案中的数据传输性能不佳。
技术实现思路
1、有鉴于此,本公开提出了一种数据传输系统、方法、装置和存储介质。
2、根据本公开的一方面,提供了一种数据传输系统。该系统包括第一侧和第二侧,第一侧和第二侧通过总线连接,第一侧和第二侧分别为系统侧和设备侧中的任一侧且两侧不同,第一侧用于:
3、响应于存在写操作,将数据写入共享队列中,共享队列配置于第二侧;
4、更新第一侧和第二侧上的第一控制信息,第一控制信息表示共享队列的队尾位置;
5、第二侧用于:
6、从共享队列中读取数据。
7、在一种可能的实现方式中,第二侧还用于:
8、在第二侧上的第一控制信息和第二控制信息指示共享队列非空的情况下,从共享队列中读取数据;
9、在读出数据后更新第一侧和第二侧上的第二控制信息,第二控制信息表示共享队列的队首位置。
10、在一种可能的实现方式中,在第二侧上的第一控制信息指示的队尾位置不等于第二控制信息指示的队首位置时,确定共享队列非空。
11、在一种可能的实现方式中,响应于存在写操作,将数据写入共享队列中,包括:
12、响应于存在写操作,将数据写入至共享队列的队尾;
13、从共享队列中读取数据,包括:
14、从共享队列的队首读取数据。
15、在一种可能的实现方式中,共享队列为定长无锁队列或者非定长无锁队列,在共享队列为非定长无锁队列的情况下,第一侧还用于:
16、在向共享队列写入数据时,将数据对应的数据头写入共享队列,数据头用于确定数据的长度;
17、第二侧还用于:
18、在从共享队列中读取数据之前,读取数据对应的数据头。
19、在一种可能的实现方式中,第二侧为数据传输方向中接收数据的一侧,共享队列为在第二侧中预先申请的预设大小的内存,或者为在第一侧与第二侧之间基于中断请求进行协商,以在第二侧中申请的预设大小的内存。
20、根据本公开的另一方面,提供了一种数据传输系统。该系统用于第一侧,第一侧用于:
21、响应于存在写操作,将数据写入共享队列中,共享队列配置于第二侧,第一侧和第二侧分别为系统侧和设备侧中的任一侧且两侧不同;
22、更新第一侧和第二侧上的第一控制信息,第一控制信息表示共享队列的队尾位置;
23、数据用于由第二侧从共享队列中读取。
24、在一种可能的实现方式中,由第二侧从共享队列中读取,包括:
25、在第二侧上的第一控制信息和第二控制信息指示共享队列非空的情况下,由第二侧从共享队列中读取;
26、第二控制信息表示共享队列的队首位置,第一侧和第二侧上的第二控制信息由第二侧在读出数据后更新。
27、在一种可能的实现方式中,在第二侧上的第一控制信息指示的队尾位置不等于第二控制信息指示的队首位置时,确定共享队列非空。
28、在一种可能的实现方式中,响应于存在写操作,将数据写入共享队列中,包括:
29、响应于存在写操作,将数据写入至共享队列的队尾;
30、数据用于由第二侧从共享队列的队首读取。
31、在一种可能的实现方式中,共享队列为定长无锁队列或者非定长无锁队列,在共享队列为非定长无锁队列的情况下,第一侧还用于:
32、在向共享队列写入数据时,将数据对应的数据头写入共享队列,数据头用于确定数据的长度;
33、数据对应的数据头由第二侧在从共享队列中读取数据之前读取。
34、在一种可能的实现方式中,第二侧为数据传输方向中接收数据的一侧,共享队列为在第二侧中预先申请的预设大小的内存,或者为在第一侧与第二侧之间基于中断请求进行协商,以在第二侧中申请的预设大小的内存。
35、根据本公开的另一方面,提供了一种数据传输方法。该方法用于第一侧,该方法包括:
36、响应于存在写操作,将数据写入共享队列中,共享队列配置于第二侧,第一侧和第二侧分别为系统侧和设备侧中的任一侧且两侧不同;
37、更新第一侧和第二侧上的第一控制信息,第一控制信息表示共享队列的队尾位置;
38、数据用于由第二侧从共享队列中读取。
39、在一种可能的实现方式中,由第二侧从共享队列中读取,包括:
40、在第二侧上的第一控制信息和第二控制信息指示共享队列非空的情况下,由第二侧从共享队列中读取;
41、第二控制信息表示共享队列的队首位置,第一侧和第二侧上的第二控制信息由第二侧在读出数据后更新。
42、在一种可能的实现方式中,在第二侧上的第一控制信息指示的队尾位置不等于第二控制信息指示的队首位置时,确定共享队列非空。
43、在一种可能的实现方式中,响应于存在写操作,将数据写入共享队列中,包括:
44、响应于存在写操作,将数据写入至共享队列的队尾;
45、数据用于由第二侧从共享队列的队首读取。
46、在一种可能的实现方式中,共享队列为定长无锁队列或者非定长无锁队列,在共享队列为非定长无锁队列的情况下,该方法还包括:
47、在向共享队列写入数据时,将数据对应的数据头写入共享队列,数据头用于确定数据的长度;
48、数据对应的数据头由第二侧在从共享队列中读取数据之前读取。
49、在一种可能的实现方式中,第二侧为数据传输方向中接收数据的一侧,共享队列为在第二侧中预先申请的预设大小的内存,或者为在第一侧与第二侧之间基于中断请求进行协商,以在第二侧中申请的预设大小的内存。
50、根据本公开的另一方面,提供了一种数据传输装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
51、根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
52、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
53、根据本技术实施例,通过使共享队列配置于第二侧,第一侧响应于存在写操作将数据写入共享队列中,更新第一侧和第二侧上的第一控制信息,第二侧从共享队列中读取数据,设计了对称的数据传输方案,使第一侧和第二侧为系统侧和设备侧中的任一侧且两侧不同,从而可以通过在对称方案中分别将共享队列配置在不同侧,使主机侧或设备侧都只会对本端发起读操作,对远端只会发起写操作,以避免跨总线对远端内存发起读操作,节约数据传输的时间,提高数据跨总线传输的效率。
54、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
1.一种数据传输系统,其特征在于,所述系统包括第一侧和第二侧,所述第一侧和所述第二侧通过总线连接,所述第一侧和所述第二侧分别为系统侧和设备侧中的任一侧且两侧不同,所述第一侧用于:
2.根据权利要求1所述的系统,其特征在于,所述第二侧还用于:
3.根据权利要求2所述的系统,其特征在于,在第二侧上的第一控制信息指示的队尾位置不等于第二控制信息指示的队首位置时,确定所述共享队列非空。
4.根据权利要求1所述的系统,其特征在于,所述响应于存在写操作,将数据写入所述共享队列中,包括:
5.根据权利要求1所述的系统,其特征在于,所述共享队列为定长无锁队列或者非定长无锁队列,在所述共享队列为非定长无锁队列的情况下,所述第一侧还用于:
6.根据权利要求1所述的系统,其特征在于,所述第二侧为数据传输方向中接收数据的一侧,所述共享队列为在第二侧中预先申请的预设大小的内存,或者为在第一侧与第二侧之间基于中断请求进行协商,以在第二侧中申请的预设大小的内存。
7.一种数据传输系统,其特征在于,所述系统用于第一侧,所述第一侧用于:
8.根据权利要求7所述的系统,其特征在于,所述由第二侧从共享队列中读取,包括:
9.根据权利要求8所述的系统,其特征在于,在第二侧上的第一控制信息指示的队尾位置不等于第二控制信息指示的队首位置时,确定所述共享队列非空。
10.根据权利要求7所述的系统,其特征在于,所述响应于存在写操作,将数据写入所述共享队列中,包括:
11.根据权利要求7所述的系统,其特征在于,所述共享队列为定长无锁队列或者非定长无锁队列,在所述共享队列为非定长无锁队列的情况下,所述第一侧还用于:
12.根据权利要求7所述的系统,其特征在于,所述第二侧为数据传输方向中接收数据的一侧,所述共享队列为在第二侧中预先申请的预设大小的内存,或者为在第一侧与第二侧之间基于中断请求进行协商,以在第二侧中申请的预设大小的内存。
13.一种数据传输方法,其特征在于,所述方法用于第一侧,所述方法包括:
14.一种数据传输装置,其特征在于,包括:
15.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求13所述的方法。