数据传输方法、交换芯片、装置及电子设备与流程

摘要: 本技术涉及数据传输,具体涉及数据传输方法、交换芯片、装置及电子设备。背景技术:1、pcie(peripheralcomponentinterconnectexp...
数据传输方法、交换芯片、装置及电子设备与流程

本技术涉及数据传输,具体涉及数据传输方法、交换芯片、装置及电子设备。

背景技术:

1、pcie(peripheral component interconnect express,外围设备高速互连)总线是一种高速串行计算机扩展总线标准,被广泛应用于计算机的显卡、网络适配器和存储等硬件设备的连接中。随着云计算、人工智能、大数据等技术的快速发展,对大规模异构并行计算和大吞吐量存储的需求不断提高,pcie交换芯片作为实现多个pcie设备之间互联的核心器件,其性能直接影响整个系统的数据传输效率。pcie交换芯片的crossbar(交叉开关)是一种实现多个端口之间任意直连的硬件交换架构,其对接收到的pcie报文进行数据流控、数据缓存、报文解析,通过路由表项匹配得到出端口信息后将报文转发至对应的输出端口。

2、在现有的pcie交换芯片中,crossbar向下游pcie发送tlp(transaction layerpacket,事务层数据包)报文时,head(报文头)和payload(有效载荷)各自使用一个独立的通道进行传输。然而,短包、长包的尾拍以及无payload的tlp报文在传输时,有效数据量远小于一个时钟周期所能承载的传输容量,却仍然需要占据一拍发送给下游pcie,导致带宽被浪费。此外,tlp报文的head和payload各自限制在仅有一个通道发送,通道分配方式固定死板,无法在不同报文间灵活穿插传输,限制了传输效率的进一步提升。

技术实现思路

1、有鉴于此,本技术提供了一种数据传输方法、交换芯片、装置及电子设备,以解决报文传输效率不高的问题。

2、第一方面,本技术提供了一种数据传输方法,所述方法包括:

3、获取传输队列中相邻的第一报文和第二报文;

4、在所述第一报文传输至尾拍时刻,判断所述第二报文的载荷数据长度是否小于或等于第一阈值;

5、若所述第二报文的载荷数据长度小于或等于所述第一阈值,则在所述尾拍时刻,在所述第一报文的尾拍时刻所在周期,将所述第二报文的载荷数据放置于报文头通道组;

6、在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文。

7、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为奇数且所述分片数量大于或等于第三阈值,所述第二报文的载荷数据长度大于0;所述在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文,包括:

8、在所述尾拍时刻,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第一通道,将所述第二报文的载荷数据分配至有效载荷通道组的第二通道;

9、在同一周期内,通过所述有效载荷通道组的第一通道输出所述第一报文的尾拍载荷的末尾分片,并通过所述有效载荷通道组的第二通道输出所述第二报文的载荷数据;

10、其中,所述第一报文的报文头位于报文头通道组的第一通道。

11、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为奇数且所述分片数量大于或等于第三阈值,所述第二报文的载荷数据长度大于0,且所述第一报文存在上一报文且所述上一报文与所述第一报文拼包,所述在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文,还包括:

12、在所述尾拍时刻,将所述第一报文的尾拍载荷的第一分片分配至有效载荷通道组的第一通道,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第二通道,并将所述第二报文的载荷数据分配至有效载荷通道组的第一通道;所述第一分片与所述末尾分片相邻;

13、在第一周期通过所述有效载荷通道组的第一通道输出所述第一报文的尾拍载荷的第一分片和末尾分片,并在第二周期通过所述有效载荷通道组的第一通道输出所述第二报文的载荷数据,所述第二周期与所述第一周期相邻且所述第二周期在所述第一周期之后。

14、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为偶数,且所述第二报文的载荷数据长度大于0,则所述在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文,包括:

15、在所述尾拍时刻,将所述第一报文的尾拍载荷的第一分片分配至有效载荷通道组的第一通道,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第二通道,并将所述第二报文的载荷数据分配至有效载荷通道组的第一通道;所述第一分片与所述末尾分片相邻;

16、在第一周期通过所述有效载荷通道组的第一通道输出所述第一报文的尾拍载荷的第一分片和末尾分片,并在第二周期通过所述有效载荷通道组的第一通道输出所述第二报文的载荷数据,所述第二周期与所述第一周期相邻且所述第二周期在所述第一周期之后。

17、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为偶数,且所述第二报文的载荷数据长度大于0,且所述第一报文存在上一报文且所述上一报文与所述第一报文拼包,则所述在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文,还包括:

18、在所述尾拍时刻,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第一通道,将所述第二报文的载荷数据分配至有效载荷通道组的第二通道;

19、在同一周期内,通过所述有效载荷通道组的第一通道输出所述第一报文的尾拍载荷的末尾分片,并通过所述有效载荷通道组的第二通道输出所述第二报文的载荷数据;

20、其中,所述第一报文的报文头位于报文头通道组的第一通道。

21、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为奇数且所述分片数量大于或等于第四阈值,且不存在与所述第一报文拼包的第二报文,所述方法还包括:

22、在所述尾拍时刻,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第一通道,且所述第一报文的报文头位于报文头通道组的第一通道;

23、在所述尾拍时刻,将所述第一报文的尾拍载荷的末尾分片从所述报文头通道组切换至有效载荷通道组的第一通道输出。

24、在一种可选的实施方式中,若所述第一报文的载荷长度大于或等于第二阈值、所述第一报文的分片数量为奇数且所述分片数量大于或等于第四阈值,且存在上一报文与所述第一报文拼包,所述方法还包括:

25、在所述尾拍时刻,将所述第一报文的尾拍载荷的第一分片分配至有效载荷通道组的第一通道,将所述第一报文的尾拍载荷的末尾分片分配至有效载荷通道组的第二通道;

26、在同一周期内,通过所述有效载荷通道组的第一通道输出所述第一分片,并通过所述有效载荷通道组的第二通道输出所述末尾分片;

27、其中,若所述上一报文的尾拍数据位于有效载荷通道组的第二通道,所述第一报文的报文头位于所述报文头通道组的第一通道;若所述上一报文的尾拍数据位于有效载荷通道组的第一通道,所述第一报文的报文头位于所述报文头通道组的第二通道。

28、本实施例提供的数据传输方法,包括获取传输队列中相邻的第一报文和第二报文;在第一报文传输至尾拍时刻,判断第二报文的载荷数据长度是否小于或等于第一阈值;若第二报文的载荷数据长度小于或等于第一阈值,则在尾拍时刻,在第一报文的尾拍时刻所在周期,将第二报文的载荷数据放置于报文头通道组;在将第一报文和第二报文发送至接收端之前,将第二报文的载荷数据从报文头通道组切换至有效载荷通道组,以传输第一报文和第二报文。

29、本方法利用了尾拍时刻的空闲传输资源,实现第一报文尾拍与第二报文在同一时钟周期内的并行发送,在不增加额外传输带宽的情况下提升数据传输效率。此外,拼包过程主要通过数据路径的选择和切换实现,无需增加大容量缓存或复杂运算单元,硬件实现简单,占用芯片资源和功耗较低,具有良好的可扩展性和适用性,可广泛应用于pcie交换芯片及各类基于pcie总线的高速数据传输系统中。

30、第二方面,本技术提供了一种交换芯片,所述交换芯片包括交叉开关出口逻辑单元,所述交叉开关出口逻辑单元包括:

31、报文缓存逻辑单元,用于暂存传输队列中相邻的第一报文和第二报文;

32、报文调度逻辑单元,与所述报文缓存逻辑单元连接,用于从所述报文缓存逻辑单元调度出描述符并产生读信号;

33、报文拼包逻辑单元,与所述报文调度逻辑单元连接,用于执行在所述第一报文传输至尾拍时刻,判断所述第二报文的载荷数据长度是否小于或等于第一阈值;若所述第二报文的载荷数据长度小于或等于所述第一阈值,则在所述尾拍时刻,将所述第二报文的载荷数据放置于与所述第一报文的尾拍数据同一周期的报文头通道组;在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文;

34、报文出口逻辑单元,与所述报文拼包逻辑单元连接,用于将所述第一报文和所述第二报文发送至接收端。

35、第三方面,本技术提供了一种数据传输装置,所述装置包括:

36、报文获取模块,用于获取传输队列中相邻的第一报文和第二报文;

37、判断模块,用于在所述第一报文传输至尾拍时刻,判断所述第二报文的载荷数据长度是否小于或等于第一阈值;

38、报文放置模块,用于若所述第二报文的载荷数据长度小于或等于所述第一阈值,则在所述尾拍时刻,在所述第一报文的尾拍时刻所在周期,将所述第二报文的载荷数据放置于报文头通道组;

39、报文传输模块,用于在将所述第一报文和所述第二报文发送至接收端之前,将所述第二报文的载荷数据从所述报文头通道组切换至有效载荷通道组,以传输所述第一报文和所述第二报文。

40、第四方面,本技术提供了一种电子设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据传输方法。