一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

众核的片上网络数据传输方法、装置、设备及介质与流程

2022-04-16 13:13:59 来源:中国专利 TAG:


1.本发明实施例涉及人工智能领域、通用处理器领域或高性能计算领域等,尤其涉及一种众核的片上网络数据传输方法、装置、设备及介质。


背景技术:

2.近年来,随着(artificial intelligence,ai)算法相关应用和技术的飞速发展,对计算能力和功耗效率的要求日益提高。通常采用众核(multi-core)运行ai算法,以提高ai算法的计算速度。
3.其中,众核是由大量(未来将会是成千上万个)以及多种类的核心,以预设方式连接在一起,具备高性能并行处理能力的核心集合。目前,在众核中,采用片上网络(networkon chip,noc)通信方式实现核与核之间通信。
4.而现有的片上网络中,节点通过在数据包的包头中添加多播标志位,将数据包发送给多播标识位匹配的节点。现有的多播方式中,数据包需要增加包头位数来增加多播目的地址。每一个核都可能将数据多播给其他任何核,那么包头将增加除自己以外的其他所有核的标志位,增加包头的位数,增加传输资源消耗。


技术实现要素:

5.本发明实施例提供一种众核的片上网络数据传输方法、装置、设备及介质,可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
6.第一方面,本发明实施例提供了一种众核的片上网络数据传输方法,应用在第一网络节点中,包括:
7.接收数据包;
8.如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元;
9.根据所述多播包头数据,对所述数据包进行处理。
10.第二方面,本发明实施例还提供了一种众核的片上网络数据传输方法,应用在第二网络节点中,包括:
11.接收匹配的第一处理单元发送的数据包,数据包包括多播包头数据;
12.根据所述多播包头数据,确定至少一个发送方向,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;
13.将各所述发送方向匹配的数据包分别发送至与各所述发送方向匹配的第一网络节点,以使各所述第一网络节点在接收到数据包时,将所述数据包发送给匹配的第二处理单元,并根据所述多播包头数据,对所述数据包进行处理。
14.第三方面,本发明实施例还提供了一种众核的片上网络数据传输装置,配置于第一网络节点中,包括:
15.数据包接收模块,用于接收数据包;
16.数据包接收模块.,用于如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元;
17.多播数据包处理模块,用于根据所述多播包头数据,对所述数据包进行处理。
18.第四方面,本发明实施例还提供了一种众核的片上网络数据传输装置,配置于第二网络节点中,包括:
19.数据包接收模块,用于接收匹配的第一处理单元发送的数据包,数据包包括多播包头数据;
20.接收处理单元确定模块,用于根据所述多播包头数据,确定至少一个发送方向,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;
21.数据包发送模块,用于将各所述发送方向匹配的数据包分别发送至与各所述发送方向匹配的第一网络节点,以使各所述第一网络节点在接收到数据包时,将所述数据包发送给匹配的第二处理单元,并根据所述多播包头数据,对所述数据包进行处理。
22.第五方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的众核的片上网络数据传输方法。
23.第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的众核的片上网络数据传输方法。
24.本发明实施例通过在检测到数据包包括多播包头数据时,将该数据包发送至匹配的处理单元进行相应处理,实现将包括的多播包头数据的数据包多播给网络节点,解决了现有技术中在多播发送数据包时,需要添加全部网络节点的标志位,大大增加包头的位数,导致增加传输资源消耗的问题,直接在检测到存在多播包头数据时接收该数据包进行处理,可以减少多播过程中网络节点配置包头的位数,以及无需节点中存储全部节点对应的地址,减少存储器访问次数,并且减少功耗,同时可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
附图说明
25.图1a是本发明实施例一中的一种众核的片上网络数据传输方法的流程图;
26.图1b是本发明实施例一中的一种片上网络拓扑结构的示意图;
27.图2a是本发明实施例二中的一种众核的片上网络数据传输方法的流程图;
28.图2b是本发明实施例二中的一种数据传输的应用场景的示意图;
29.图3a是本发明实施例三中的一种众核的片上网络数据传输方法的流程图;
30.图3b是本发明实施例三中的一种数据传输的应用场景的示意图;
31.图4是本发明实施例四中的一种众核的片上网络数据传输方法的流程图;
32.图5是本发明实施例五中的一种众核的片上网络数据传输装置的结构示意图;
33.图6是本发明实施例六中的一种众核的片上网络数据传输装置的结构示意图;
34.图7是本发明实施例七中的一种计算机设备的结构示意图。
具体实施方式
35.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
36.实施例一
37.图1a为本发明实施例一中的一种众核的片上网络数据传输方法的流程图,本实施例可适用于使用片上网络进行数据传输的情况,该方法可以由本发明实施例提供的众核的片上网络数据传输装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,例如是应用在片上网络的第一网络节点中,第一网络节点可以是片上网络中的任意一节点。如图1a所示,本实施例的方法包括:
38.s110,接收数据包。
39.数据包包括用于在片上网络中的节点间进行传输的数据。数据包为传输的数据单位,数据包包括包头和包体,其中,包头用于包括控制信息,用于提供传输协议和数据标识信息等信息,以指示数据包准确发送到接收方,并由接收方获取数据,包体可以是包括网络节点需要获取的数据。
40.s120,如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元。
41.s130,根据所述多播包头数据,对所述数据包进行处理。
42.本公开实施例的数据传输方法,解决了相关技术中在多播发送数据包时,需要在数据包包头内添加多个目的节点的标志位所导致的传输消耗大的问题,可以减少多播过程中数据包包头的位数,从而减少传输数据量,提高传输效率,降低传输成本。
43.其中,片上网络是由多个节点构成。每个节点分别与匹配的处理单元相连。处理单元可以是指核心(core)。节点接收到的数据可以发送给处理单元进行处理。每个节点还可以与至少一个节点相连,节点可以向相连的至少一个节点传输数据包。
44.多播包头数据用于确定该数据包为多播模式下发送的数据包。其中,多播模式可以理解为将同一数据包通过多个网络节点分别发送给多个处理单元,以使各处理单元根据数据包进行各类处理,例如,运算处理等。其中,多播包头数据可以具有各种形式,举例来说,多播包头数据可以配置于数据包的包头中,例如,可以是数据包的包头配置信息中的一个标志位。可选的,当存在该标志位或者该标志位为1时,可以理解为数据包包括多播包头数据,不存在该标志位或者该标志位为0时,可以理解为数据包不包括多播包头数据。
45.第一网络节点为接收数据包的网络节点。第一网络节点匹配的处理单元可以是与第一网络节点连接的处理单元,如果第一网络节点确定其接收到的数据包包括多播包头数据,则可以将接收到的数据包发送至与其相连的处理单元。
46.本公开实施例的数据传输方法,第一网络节点在接收到的数据包包括多播包头数据时,确定发送模式信息为多播模式,从而确定数据包需要发送给多个节点,并查询并获取多播包头数据,可以减少在非多播模式下,查询多播包头数据,能够提高多播包头数据的获取效率,减少功耗。
47.其中,根据所述多播包头数据,对所述数据包进行处理,可以理解为包括丢弃数据包,或者转发数据包。
48.可选的,所述根据所述多播包头数据,对所述数据包进行处理,包括:根据所述多播包头数据,确定所述数据包的转发检测结果;如果确定所述转发检测结果为转发,则转发所述数据包;如果确定所述转发检测结果为不转发,则停止转发所述数据包。
49.可选的,在根据多播包头数据,确定需要将数据包沿某一传播方向发送至其他网络节点时,可以确定转发检测结果为转发,否则,可以确定转发检测结果为停止转发。应理解,片上网络的网络节点可以包括至少一个传播方向,各网络节点的传播方向的个数与其所在片上网络的拓扑结构以及片上网络的位置相关。同一片上网络上各网络节点的传播方向的数量也可以不完全相同。
50.其中,片上网络的拓扑结构是指网络节点与链路通道的排列形式,决定片上网络中节点的端口结构。其中,拓扑结构可以为二维拓扑结构,例如,可以包括环形、网格(mesh)或树形等。
51.可选的,所述片上网络呈二维网络结构,所述发送方向包括第一方向和第二方向,所述第一方向和所述第二方向相互垂直。
52.其中,第一方向可以是水平线(与地面平行的线),以及第二方向可以是竖直线。或者第一方向和第二方向均不是水平线和竖直线中的任意一种。具体可以根据实际情况进行设定,对此,本发明实施例不作具体限制。
53.示例性的,二维网格如图1b所示,片上网络包括多个节点(n),各节点连接对应的核(c)。在二维网格拓扑结构中,节点和在二维平面内依次沿x方向与y方向呈二维网格状进行排布,每个节点通过x方向与y方向上的链路通道与相邻节点相连。其中,可以基于二维网格建立二维坐标系,节点的地址为二维网格中的二维坐标,二维坐标包括第一方向坐标x和第二方向坐标y。其中,x和y的绝对值分别大于等于0,x和y的绝对值代表的是传播的距离,符号代表的是传播方向,数据包的传输过程就是x和y的绝对值减小或者不变(一直保持0)的过程。x和y根据在片上网络中的相对位置,可以任意设置,本发明实施例对此不做限定。
54.通过配置片上网络的拓扑结构为二维网格,可以简化片上网络的结构,便于编译器映射,简化片上网络中通信路径的算法,以及减少片上网络的芯片面积,从而降低众核的成本。
55.在一些可选的实施例中,确定转发数据包可以理解为该第一网络节点中的多个传播方向中存在至少一个发送方向,该第一网络节点需要沿发送方向将数据包发送至该发送方向上相邻的其他网络节点。
56.多播包头数据可以用于确定是否继续转发数据包。在第一网络节点的处理单元接收数据包的情况下,判断是否继续转发数据包,可以实现在一条多播路线上向多个网络节点匹配的处理单元发送数据包,还可以实现任意节点转发数据包,可以减少每个网络节点都需要规划多播路线,导致数据包重复经过同一个节点的情况,从而可以减少数据传输的步数,提高数据传输效率。
57.可选的,所述转发所述数据包,包括:从所述多播包头数据中,获取至少一个发送方向,所述发送方向用于确定所述数据包匹配的网络节点,所述第一网络节点与所述网络节点呈所述发送方向排列;对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;将各所述发送方向匹配的数据包发送至与所述发送方向匹配的网络节点。
58.其中,发送方向用于确定接收数据包的网络节点。发送方向可以是指传输数据包
的方向。第一网络节点与网络节点呈所述发送方向排列,表明根据第一网络节点在片上网络中的位置与网络节点在片上网络中的位置。
59.其中,可以将具有相对位移的传播方向确定为发送方向。所述相对位移用于表征所述数据包在所述传播方向上的传播距离。在包括多个发送方向时,可以修改多播包头数据,分别生成各发送方向匹配的数据包,并分别传输至各发送方向上相邻的网络节点。举例来说,第一网络节点根据多播包头数据中,获取发送方向为x、y以及z轴,x轴、y轴以及z轴的相对位移均为1,则可以修改多播包头数据,第一网络节点将该数据包分别转发送给三个发送方向的相邻的网络节点,相邻的网络节点接收到数据包后,根据多播包头数据,确定分别发送给各自匹配的处理单元,相邻的网络节点无需再转发。
60.通过从多播包头数据中提取发送方向,确定转发数据包的网络节点,可以准确将数据包向至少一个网络节点发送,实现数据包在一条多播路线上同时发送给多个网络节点,可以减少每个网络节点都需要规划多播路线,导致数据包重复经过同一个节点的情况,从而可以减少数据传输的步数,提高数据传输效率。
61.本发明实施例通过在检测到数据包包括多播包头数据时,将该数据包发送至匹配的处理单元进行相应处理,实现将包括的多播包头数据的数据包多播给网络节点,解决了相关技术中在多播发送数据包时,需要添加全部网络节点的标志位,大大增加包头的位数,导致增加传输资源消耗的问题,本发明实施例直接在检测到存在多播包头数据时接收该数据包进行处理,可以减少多播过程中网络节点配置包头的位数,以及可以无需再节点中存储全部节点对应的地址,能够减少存储器访问次数,并且减少功耗,同时可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
62.实施例二
63.图2a为本发明实施例二中的一种众核的片上网络数据传输方法的流程图,本实施例以上述实施例为基础进行具体化。本实施例的方法包括:
64.s210,接收数据包。
65.本发明实施例中未详尽的描述可以参考前述实施例。
66.s220,如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元。
67.s230,根据所述多播包头数据,确定所述数据包的转发检测结果。
68.s240,如果确定所述转发检测结果为转发,则根据所述多播包头数据,确定存在相对位移的传播方向,并将所述传播方向确定为所述发送方向,其中,所述相对位移用于表征所述数据包在所述传播方向上的传播距离,所述发送方向用于确定所述数据包匹配的网络节点,所述第一网络节点与所述网络节点呈所述发送方向排列。
69.其中,存在相对位移的传播方向,可以理解为需要继续向其他网络节点转发数据包的方向。相对位移用于表征数据包在所述传播方向上的传播距离。传播距离可以用传播的网络节点的数量表示。示例性的,x传播方向的相对位移为2,可以理解为数据包需要沿着x方向上继续转发两个网络节点,由两个网络节点分别将该数据包转发给各自匹配的处理单元。
70.其中,多播包头数据可以包括对应各传播方向的标志位,例如,标志位不为0的传播方向为存在相对位移的传播方向,并根据多播包头数据确定相对位移。多播包头数据中
的多个传播方向可以具有不同的优先级,例如,包括第一优先级和第二优先级,其中,第一优先级可以对应一个传播方向,第二优先级可以对应多个传播方向,不同优先级的传播方向,判断是否存在相对位移的方式可以不同,本公开对此不做限制。
71.可选的,所述多播包头数据包括方向次序信息,所述方向次序信息用于确定传播方向的优先级,例如,可用于确定向多个传播方向发送所述数据包的次序;其中,根据所述多播包头数据,确定存在相对位移的传播方向,并将所述传播方向确定为所述发送方向,包括:根据所述方向次序信息,确定优先级最高的第一传播方向;如果确定所述第一传播方向存在相对位移,则将所述第一传播方向确定为第一发送方向。
72.方向次序信息用于确定传播方向的优先级,例如先x方向,再y方向;或者先y方向,再x方向。方向次序信息可以是用户预先配置的信息,或者片上网络中默认的信息等,可以根据需要进行调整。方向次序信息包括多个传播方向。由此,可以根据方向次序信息,获取全部传播方向,并从中将优先级最高的传播方向确定第一传播方向。
73.举例来说,方向次序信息包括全部传播方向,以及各所述传播方向的优先级。方向次序信息表示的次序,可以通过优先级表示,优先级越高,次序越靠前面;优先级越低,次序越靠后面。
74.示例性的,如果方向次序信息为先第一方向(x方向)后第二方向(y方向),即第一方向优先级最高,第二方向的优先级最低,则第一传播方向为第一方向;如果方向次序信息为先第二方向后第一方向,即第二方向优先级最高,第一方向的优先级最低,则第一传播方向为第二方向。
75.示例性的,x方向为优先级最高的第一传播方向,该方向上的相对位移为0,y方向和z方向分别具有相对位移,其中,z方向的优先级较高,则可以将z方向确定为第一网络节点的第一传播方向。
76.相对位移用于确定数据包未移动完成的方向,也即确定数据包需要继续传输的方向。相对位移不为0,也即非0相对位移。数据包未移动完成的方向,表明数据包需要继续向该方向传输。
77.如果第一传播方向存在相对位移,则表明需要沿着第一传播方向继续发送数据包,从而可以将第一传播方向确定为第一发送方向。
78.如前例,片上网络的拓扑结构为二维网格。在基于二维网格建立二维坐标系中,节点的地址为二维网格中的二维坐标,二维坐标包括第一方向坐标x和第二方向坐标y。以第一网络节点为坐标原点,此时x和y的绝对值代表的是相对位移,符号代表的是发送方向。对于每个节点来说,存在两个传播方向。示例性的,如果方向次序信息为先第一方向(x方向)后第二方向(y方向),则方向次序信息关联的相对位移为第一方向的相对位移;如果方向次序信息为先第二方向后第一方向,则方向次序信息关联的相对位移为第二方向的相对位移。
79.通过配置方向次序信息,并确定个第一传播方向,在第一传播方向存在相对位移时,确定第一发送方向,可以在存在多个传播方向时,准确确定第一发送方向,提高数据包传输的准确率。
80.s250,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包。
81.多播包头数据中包括当前第一网络节点的发送方向。当第一网络节点将待传输数
据发送至网络节点时,网络节点变为新的第一网络节点,此时,新的第一网络节点的发送方向与前一第一网络节点的发送方向不同,从而,需要对多播包头数据进行修改,将前一第一网络节点的发送方向替换为新的第一网络节点的发送方向,以提高新的第一网络节点的发送方向准确性。
82.在多播模式中,第一网络节点需要向多个网络节点传输数据包,且每个网络节点对应的发送方向可以不同,由此,可以按照每个网络节点对应的发送方向,分别重新确定网络节点对应的发送方向,也即分别重新确定每个发送方向对应的多播包头数据。
83.示例性的,可以将多播包头数据复制为多个,多播包头数据的数量与发送方向的数量相同。针对每个发送方向,分别对应生成与发送方向匹配的多播包头数据。应理解,不同发送方向,修改多播包头数据的方式可不相同。
84.可选的,所述对所述多播包头数据进行修改,生成与所述发送方向匹配的数据包,包括:在所述多播包头数据中,计算第一发送方向匹配的相对位移与设定步长之差,所述网络节点与第一网络节点之间的距离和所述设定步长匹配;在所述多播包头数据中,将所述第一发送方向匹配相对位移替换为差值,生成与所述第一发送方向匹配的数据包。
85.多播包头数据中第一发送方向匹配的相对位移与设定步长之差,作为第一发送方向匹配的新的相对位移。步长为数据包每次传输的距离,例如是以节点为单位,即步长表示数据包一次移动的节点的数量。可选的,设定步长为1,具体可以根据需要进行设定。第一发送方向匹配相对位移替换为差值,表明,数据包已经沿着第一发送方向传播了设定步长的距离。
86.例如,第一发送方向匹配的相对位移为2,设定步长为1,则新的相对位移为2-1=1。示例性的,相对位移为x=3。如果方向次序信息为先x方向后y方向,则第一网络节点将数据包向x方向上相邻的节点发送,且相对位移修改为x=3-1=2。
87.其中,在多播模式中,可以将任意需要接收数据的节点作为目的节点,例如,可以选择将与主数据第一网络节点相对距离最远的节点作为目的节点。此外,在片上网络中,节点的位置可以进行调整,可选的,将两个节点存储的数据进行交换,以实现节点的位置调整。从而,在多播模式下,可以将分散的网络节点集中在设定区域中,可以在一条传输线路上,并行向多个方向进行传输,便于编译器的映射,从而便于数据包的传输,减少数据包的传输步数,提高传输效率。
88.在一个可选的例子中,片上网络的拓扑结构为二维网格,设定步长为1,如图2b所示,数据包的传输线路为一条仅有x方向的传输线路。数据包由核c0发送给核c1、核c2和核c3,过程可以为:核c0将数据发送给节点n0,节点n0发送给节点n1、节点n2以及节点n3,相应节点n将数据发送给核c。
89.节点n0的包头如下表1所示:
90.表1
[0091][0092]
其中,发送模式信息用于标识多播模式。示例性的,发送模式信息可以采用预先配
置的字符串进行表示,对此,本发明实施例不作具体限制。例如,在发送模式信息为1时,即数据包包括多播包头数据,表示发送模式为多播模式;在发送模型信息为0时,即数据包不包括多播包头数据,表示发送模式为非多播模式,例如单播模式或广播模式等。并行方向信息用判断是否在第一发送方向的基础上,同时并行向其他第二传播方向传输数据包。d1、d2、d3
……
dn等,表示第i-1(i等于0小于等于n)步在并行方向上的相对位移。
[0093]
方向次序信息用于确定传播方向的优先级。可以根据片上网络的全部方向,预先配置各方向的先后顺序与方向次序信息之间的对应关系。例如,片上网络为二维网格,方向包括x方向和y方向;在方向次序信息为1时,表示先x方向后y方向;在方向次序信息为0时,表示表示先y方向后x方向。又如,片上网络为三维网格,方向包括x方向、y方向和z方向。在方向次序信息为0时,表示方向先后顺序依次为x方向、y方向和z方向;在方向次序信息为1时,表示方向先后顺序依次为x方向、z方向和y方向;在方向次序信息为2时,表示方向先后顺序依次为y方向、x方向和z方向;在方向次序信息为3时,表示方向先后顺序依次为y方向、z方向和x方向;在方向次序信息为4时,表示方向先后顺序依次为z方向、x方向和y方向;在方向次序信息为5时,表示方向先后顺序依次为z方向、y方向和x方向。此外,还有其他形式的拓扑结果,对应配置不同的对应关系,可以根据实际情况进行设定,对此,本发明实施例不作具体限制。
[0094]
dx表示x方向匹配的相对位移;dy表示y方向匹配的相对位移。dx和dy形成相对位移、或相对位移向量等。其中,dx和dy中可以有一个非零常数,可以用于表示相应方向存在相对位移。
[0095]
多播包头数据中方向次序信息为1,相对位移为dx=3,dy=0。其中,相对位移还可以表示为30,同时相对位移中30与方向的对应关系,与方向次序信息匹配,即3表示方向次序信息中次序最前的方向所对应的相对位移,0表示方向次序信息中次序最后的方向所对应的相对位移,此外,还有其他表示方法,对此,本发明实施例不作具体限制。
[0096]
在核c0发送数据包时,数据包的包头中携带核c3相对于核c0的相对位移:(3,0),并将数据包发送给主数据第一网络节点n0。节点n0收到数据包时,方向次序信息为1,非0相对位移匹配的方向为x方向,确定第一发送方向为x方向。根据步长为1,将包头的多播包头数据中相对位移由(3,0)修改为(2,0),然后发送给节点n1。节点n1收到数据包后,会把数据包发送给核c1,此时,第一发送方向为x方向,将包头的多播包头数据中相对位移由(2,0)改为(1,0),然后发送给节点n2。节点n2收到数据包,会把数据包发送给核c2,此时,第一发送方向为x方向,将包头的多播包头数据中相对位移由(1,0)改为(0,0),然后发送给节点n3。节点n3收到数据包,把数据包发送给核c3,并发现相对位移为(0,0),表明不存在第一发送方向,多播结束。
[0097]
通过修改多播包头数据的相对位移中第一发送方向匹配的相对位移,以指示网络节点,根据更新的相对位移重新确定传播距离,实现多播包头数据不断根据数据包的传输过程进行调整,以确保每个第一网络节点可以准确将数据包传输至下一网络节点,提高数据包的传输准确率。
[0098]
s260,将各所述发送方向匹配的数据包发送至与所述发送方向匹配的网络节点。
[0099]
将数据包中多播包头数据进行更新,形成与发送方向匹配的新的数据包,并以发送方向发送至匹配的网络节点中。举例来说,数据包复制为多个,每个数据包中多播包头数
据均更新为发送方向匹配的多播包头数据,形成该发送方向匹配的数据包,并发送至与该发送方向匹配的网络节点中,以使该网络节点在接收到数据包时,将该数据包发送给匹配的处理单元。
[0100]
在相关技术的多播过程中,主数据节点在其需要发送的数据包的包头中添加标志位的信息,其中,主数据节点实际为首个网络节点,该标志位用于表示该数据包需要发送至给哪些特定的目的节点,然后主数据节点将数据包发送给与自己相连的中间节点,中间节点将数据包直接或者通过其他中间节点发送给目的节点。或者主数据节点将数据包通过中间节点,发送给多播节点,多播节点收到数据包后,根据数据包包头中的标志位的信息在多播节点的存储区中查找各目的节点的地址,确定目的节点的个数,然后多播节点按照目的节点的个数将数据包中的数据进行复制,每份复制的数据按照与查找到的各目的节点的地址其中任意一个进行打包,将多个打包好的数据包并行多播给其对应的目的节点,例如,可以直接将打包好的数据包发送给目的节点,也可以通过中间节点发送给目的地。
[0101]
在相关技术的多播过程中,首先,数据包需要增加额外的包头位数,目的节点的数量与增加标志位的数量相同。例如由一千个核组成的众核芯片中,每一个核都可能将数据多播给其他任何核,那么包头将增加除自己以外的其他所有核的标志位,包头传输成本以及包头生成所消耗的资源较大;其次,多播节点配置有存储区,用于存储此多播节点所有可能多播到的目的节点的地址。例如由一千个核组成的众核中,某一个多播节点将接收的包多播给一百个目的核,该多播节点需要存储一百个核分别对应的目的节点的地址,导致多播节点的存储成本高和存储资源消耗巨大;而整个众核芯片中,存在多个多播节点,相应的,存储资源更加庞大;再次,多播节点需要传输额外的包头信息,会带来额外的传输效率损失,同时,多播节点需要根据接收到的数据包的多播标志位,去查询多播到的目的节点的地地址,然后将地址与数据重新打包发送出去,从而增加了额外的查询和打包功耗;最后,多播节点是数据包多播发送到某些目的地时,需要走的因多播而带来的额外的路径,这必将大大降低路由的效率,增加数据送达的时间,增加数据传输所消耗的功耗。
[0102]
为了解决上述问题,通过配置数据包的多播包头数据,以及通过多播包头数据包括的发送方向用于指示数据发送的网络节点,并将多播包头数据分别修改为与各发送方向匹配的多播包头数据,并更新数据包,以及发送到与发送方向匹配的网络节点中,可以无需在包头中配置全部目的节点的标志位,可以减少包头传输成本以及包头生成所消耗的资源,减少节点地址的存储资源消耗,减少传输效率损失,同时,减少了多播节点的查询功耗和打包功耗,减少传输步数,提高路由的效率,减少数据送达的时间,减少数据传输所消耗的功耗。
[0103]
s270,如果确定所述转发检测结果为不转发,则停止转发所述数据包。
[0104]
可选的,如果确定所述转发检测结果为不转发,则停止转发所述数据包,包括:如果确定各所述传播方向均不存在相对位移,则确定所述转发检测结果为不转发,并停止转发所述数据包。
[0105]
各传播方向均不存在相对位移,无需继续传输,此时可以停止转发。
[0106]
通过根据相对位移判断是否转发数据包,可以快速准确确定数据包是否需要进行转发,减少验证数据包的转发地址的查询成本,提高数据包的转发检测的效率。
[0107]
本发明实施例通过将存在相对位移的传播方向确定为发送方向,可以准确确定发
送方向,提高片上网络数据传输的准确率,并无需在包头中配置全部目的节点的标志位,可以减少包头传输成本以及包头生成所消耗的资源,减少节点地址的存储资源消耗,减少传输效率损失,同时,减少了多播节点的查询功耗和打包功耗,减少传输步数,提高路由的效率,减少数据送达的时间,减少数据传输所消耗的功耗。
[0108]
实施例三
[0109]
图3a为本发明实施例三中的一种众核的片上网络数据传输方法的流程图,本实施例以上述实施例为基础进行具体化。本实施例的方法包括:
[0110]
s310,接收数据包。
[0111]
本发明实施例中未详尽的描述可以参考前述实施例。
[0112]
s320,如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元。
[0113]
s330,根据所述多播包头数据,确定所述数据包的转发检测结果。
[0114]
s340,如果确定所述转发检测结果为转发,则根据所述方向次序信息,确定优先级最高的第一传播方向,如果确定所述第一传播方向存在相对位移,则将所述第一传播方向确定为第一发送方向。
[0115]
s350,根据并行方向信息,确定所述第一网络节点的并发标识信息,如果确定所并发标识信息为第一标识信息,则将所述第二传播方向作为第二发送方向,所述并行方向信息用于判断是否在第二传播方向上发送所述数据包,所述第二传播方向是除所述第一传播方向外的传播方向。
[0116]
其中,所述相对位移用于表征所述数据包在所述传播方向上的传播距离,所述发送方向用于确定所述数据包匹配的网络节点,所述第一网络节点与所述网络节点呈所述发送方向排列,所述多播包头数据包括并行方向信息,所述并行方向信息用于判断是否在多个传播方向上同时发送所述数据包。
[0117]
其中,并行方向信息用于确定第一网络节点在第一发送方向之外是否存在其他发送方向。并行方向信息可以包括每个节点的针对除了第一发送方向之外需要并行传输数据包的信息。
[0118]
并行方向信息与方向对应,片上网络中配置的全部方向的数量中,在方向次序信息确定的第一发送方向之外,剩余的方向均可以配置有并行方向信息,并行方向信息与除了第一发送方向之外的一个方向对应,不同并行方向信息对应不同方向。
[0119]
并发标识信息用于判断第一网络节点是否需要将数据包并行传输到与并行方向信息对应的传播方向上。并行方向信息包括多个并发标识信息,各并发标识信息可以与不同的网络节点对应。并发标识信息用于第一网络节点判断是否需要将数据包并行传输到与并行方向信息对应的方向上。其中,并发标识信息与网络节点的对应规则可灵活设置。例如,并行方向信息中各并发标识信息按顺序分别对应于第一发送方向上的各网络节点。
[0120]
并发标识信息包括第一标识信息和第二标识信息。如果并发标识信息为第一标识信息,则表明并发标识信息对应的方向上需要传输数据包。如果并发标识信息为第二标识信息,则表明并发标识信息对应的方向上不需要传输数据包。
[0121]
示例性的,并行方向信息为y方向的字符串0,并发标识信息为0。第一标识信息为1,第二标识信息为0。从而,并发标识信息为第二标识信息,网络节点不需要在y方向并行传
输数据包。
[0122]
在一些可选的实施例中,并行方向信息中各并发标识信息按照顺序分别对应具有节点编号的各网络节点。
[0123]
示例性的,并行方向信息为y方向的字符串01100可以理解为网络节点1、4、5无需沿y方向传输数据包、网络节点2、3需要沿y方向传输数据包。只要能根据并行方向信息确定网络节点是否在第二传播方向传输数据包即可。
[0124]
在一些可选的实施例中,可以配置并发标识累计值,确定第一网络节点对应的并发标识信息。每个并行方向信息均配置有匹配的并发标识累计值,同时,该并发标识累计值随着数据包的传输的节点的数量进行累计。同时还配置有步长值,可以是指并发标识累计值每次累加的数值。获取与并行方向信息匹配的并发标识累计值,并在并行方向信息中查询与该并发标识累计值匹配的并发标识信息,确定为第一网络节点在并行方向信息匹配的方向上的并发标识信息。在修改多播包头数据时,计算一个并行方向信息匹配的并发标识累计值,与步长值之和,并对原并发标识累计值进行替换,生成与该并行方向信息匹配的多播包头数据。
[0125]
并发标识累计值用于在并行方向信息中确定并发标识信息,是确定并发标识信息的次序,从而确定并发标识信息。
[0126]
示例性的,并行方向信息为y方向的字符串01100,并发标识累计值为1,当前并发标识信息为第一个字符,即0。步长值为1,在网络节点1向网络节点2传输数据包时,并发标识累计值更新为1 1=2,网络节点2接收到的多播包头数据中,并发标识累计值为2,该网络节点2匹配的并发标识信息为第二个字符,即1。其中,并发标识累计值的初始值可以是1,例如,主数据节点的并发标识累计值为1。
[0127]
通过配置并发标识累计值,以确定第一网络节点的并发标识信息,并通过在并发标识累计值上累加设定步长值,不断更新并发标识累计值,从而不断更新并发标识信息,可以准确指示数据包途径的网络节点,向正确的发送方向传输数据包,提高并行传输数据包的准确率。
[0128]
存在并发标识信息为第一标识信息,表明,第一网络节点需要并行传输数据包。并发标识信息匹配的并行方向信息,用于确定第一网络节点并行传输的方向,将并行方向信息匹配的方向作为第二发送方向。
[0129]
第二发送方向与第一发送方向不同,第二发送方向用于并行传输数据包。第二发送方向的数量大于等于0,第二发送方向可以为多个。第一发送方向的数量和第二发送方向的数量之和小于等于片上网络中全部方向的数量。
[0130]
其中,第二发送方向可以与第一发送方向并行确定。例如,第一发送方向确定之后,判断多播包头数据是否包括并行方向信息,并根据并行方向信息判断是否存在第二发送方向。又如,第一发送方向的确定方式与第二发送方向的确定方式相互独立,互不影响。可以根据实际情况进行设定,对此,本发明实施例不作具体限制。第一发送方向的确定方式可以参考前述实施例的描述。
[0131]
在一种可能的实现方式中,方向次序信息确定优先级最高的方向,即第一发送方向,并行方向信息确定除了第一发送方向之外的方向。并行方向信息与第二发送方向对应,并行方向信息的数量与第二发送方向的数量相等。如果不存在并行方向信息,则确定仅有
一个第一发送方向,如果第一发送方向的相对位移为0,则结束转发数据包。
[0132]
在一些可选的实施例中,第一网络节点存在至少一个第二发送方向,不存在第一发送方向。例如,x方向为优先级最高的第一传播方向,该方向上的相对位移为0,y方向和z方向为第二传播方向,分别具有相对位移,则可以确定第一网络节点存在两个第二发送方向。
[0133]
s360,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包。
[0134]
可选的,所述对所述多播包头数据进行修改,生成与所述发送方向匹配的数据包,包括:在所述多播包头数据中,计算第二发送方向匹配的相对位移与设定步长之差,所述网络节点与第一网络节点之间的距离和所述设定步长匹配,所述发送方向为第二发送方向;在所述多播包头数据中,将所述第一发送方向匹配的相对位移置零,将所述第二发送方向确定为优先级最高的传播方向,并将所述第二发送方向匹配相对位移替换为差值,生成与所述第二发送方向匹配的数据包。
[0135]
相对位移包括多个发送方向分别匹配的相对位移。相对位移的修改方式可以参考前述实施例。
[0136]
将第一发送方向匹配的相对位移删除,或者置位为0,避免重复将数据传输至同一节点中。相应的,将所述第二发送方向确定为优先级最高的传播方向,将第二发送方向匹配的相对位移更新为第二发送方向匹配的相对位移与设定步长的差值。除了第一发送方向和该第二发送方向的其他方向匹配的相对位移更新为目标第二相对位移队列中对应的方向匹配的相对位移。
[0137]
向第二发送方向传输数据包,相当于是在第一发送方向的相对位移为0,需要转换方向继续传输数据包。如果存在至少两个第二发送方向,可以依次,针对每个第二发送方向修改多播包头数据。
[0138]
通过并行方向信息以及匹配的相对位移,对多播包头数据中相对位移进行修改,将数据包向第二发送方向进行传输,可以向第二发送方向的相邻网络节点发送更新的多播包头数据,指示相邻网络节点准确在第二发送方向上继续传输数据包,可以避免重复发送至同一节点,提高数据包在第二发送发向上的传输准确率。应理解,第二发送方向上的相邻网络节点接收到数据包,根据多播包头数据确定第二发送方向为最高优先级的第一传播方向,相邻网络节点可以根据多播包头数据确定是否需要向其他的第二传播方向转发数据包。
[0139]
在一个可选的例子中,片上网络的拓扑结构为二维网格,设定步长为1,如图3b所示,数据包由核c0发送给核c1、核c2、核c3、核c5、核c6和核c9,过程为:核c0将数据发送给节点n0,节点n0发送给节点n1、节点n2、节点n3、节点n5、节点n6和节点n9,相应节点n将数据发送给核c。其中,节点n0为主数据第一网络节点,节点n1、节点n2、节点n3、节点n5、节点n6和节点n9可以是前述目的节点。
[0140]
节点n0的包头如下表2所示:
[0141]
表2
[0142][0143]
多播包头数据中方向次序信息为1,相对位移为dx=3,dy=0。
[0144]
在核c0发送数据包时,数据包的包头中携带核c3相对于核c0的相对位移:(3,0),并发标识累计值为1以及并行方向信息,并将数据包发送给主数据第一网络节点n0。节点n0收到数据包时,方向次序信息为1,可以理解为先x轴再y轴方向,非0相对位移匹配的方向为x方向,确定第一发送方向为x方向。同时,并发标识累计值为1或节点编号为0,从而确定并行方向信息中当前并发标识信息为第一位(并发标识信息为节点编号 1位),即为0,表明节点n0不需要并行传输数据包,即第二发送方向为空。根据步长为1,将包头的多播包头数据中相对位移由(3,0)修改为(2,0),同时并发标识累计值累加1修改为2,更新多播包头数据,并将修改后的多播包头数据作为x方向匹配的多播包头数据,然后发送给节点n1。
[0145]
节点n1收到数据包后,会把数据包发送给核c1,此时,第一发送方向为x方向,同时,当前并发标识累计值为2或节点编号为1,从而确定并行方向信息中当前并发标识信息为第二位,即为1,表明节点n1需要向y方向同时并行传输数据包,即第二发送方向为y方向。将包头的多播包头数据中相对位移由(2,0)改为(1,0),同时并发标识累计值累加1修改为3,更新多播包头数据,并将修改后的多播包头数据作为x方向匹配的多播包头数据,然后发送给节点n2。相应的,当前并发标识信息对应的第二相对位移队列为d2,即为2。先将包头的多播包头数据中相对位移由(2,0)改为(0,0),再计算d2的值与步长1的差值,即为1,并确定为相对位移中的y方向的相对位移,从而相对位移由(2,0)改为(0,1)更新多播包头数据,并且,不存在非x方向和非y方向的对应的并行方向信息,可以将并行方向信息和并发标识累计值重置为空,并将修改后的多播包头数据作为y方向匹配的多播包头数据,然后发送给节点n5。
[0146]
节点n2收到数据包后,会把数据包发送给核c2,此时,第一发送方向为x方向,同时,当前并发标识累计值为3或节点编号为2,从而确定并行方向信息中当前并发标识信息为第三位,即为1,表明节点n2需要向y方向同时并行传输数据包,即第二发送方向为y方向。将包头的多播包头数据中相对位移由(1,0)改为(0,0),同时并发标识累计值累加1修改为4,更新多播包头数据,并将修改后的多播包头数据作为x方向匹配的多播包头数据,然后发送给节点n3。相应的,当前并发标识信息对应的第二相对位移队列为d3,即为1。先将包头的多播包头数据中相对位移由(1,0)改为(0,0),再计算d2的值与步长1的差值,即为0,并确定为相对位移中的y方向的相对位移,从而相对位移由(1,0)改为(0,0)更新多播包头数据,并且,不存在非x方向和非y方向的对应的并行方向信息,可以将并行方向信息和并发标识累计值重置为空,并将修改后的多播包头数据作为y方向匹配的多播包头数据,然后发送给节点n6。
[0147]
节点n3收到数据包后,会把数据包发送给核c3,节点n3发现相对位移为(0,0),表明不存在第一发送方向。同时,当前并发标识累计值为4或节点编号为3,从而确定并行方向信息中当前并发标识信息为第四位,即为0,表明节点n3不需要向y方向同时并行传输数据包,即第二发送方向为空。第一发送方向和第二发送方向都为空,节点n3停止继续传输数
据。
[0148]
节点n5收到数据包后,会把数据包发送给核c5,此时,相对位移为(0,1),第一发送方向为y方向。包头中并行方向信息为空,以及并发标识累计值为空,不存在第二发送方向。将包头的多播包头数据中相对位移由(0,1)改为(0,0),将修改后的多播包头数据作为y方向匹配的多播包头数据,然后发送给节点n9。
[0149]
节点n9收到数据包后,会把数据包发送给核c9,此时,相对位移为(0,0),表明不存在第一发送方向。同时包头中并行方向信息为空,不存在第二发送方向。第一发送方向和第二发送方向都为空,节点n9停止继续传输数据。
[0150]
节点n6收到数据包后,会把数据包发送给核c6,此时,相对位移为(0,0),表明不存在第一发送方向。同时包头中并行方向信息为空,不存在第二发送方向。第一发送方向和第二发送方向都为空,节点n9停止继续传输数据。多播结束。
[0151]
需要说明的是,在发生传输方向转变时,此时不存在其他方向,可以仅将并行方向信息重置为空,同时不再累加并发标识累计值。
[0152]
在一些可选的实施例中,各节点存在对应的编号,并行方向信息可以包括与各节点对应的数值,例如,并行方向信息中第6位对应于节点n6,节点n6在接收到数据包时,可以查询并行方向信息中第6位的数值,并根据查询到的数值确定是否存在第二发送方向。这样,能够以较简单的方式实现确定节点是否存在第二发送方向。如前所述,可能存在多个传播方向,例如包括m个传播方向,可以设置m-1个并行方向信息用来分别确定是否为第二发送方向。
[0153]
s370,将各所述发送方向匹配的数据包发送至与所述发送方向匹配的网络节点。
[0154]
s380,如果确定所述转发检测结果为不转发,则停止转发所述数据包。
[0155]
本发明实施例通过获取并行方向信息,可以确定数据包当前需要发送的第二发送方向,从而可以准确确定多个发送方向,提高片上网络数据传输的准确率,同时并行传输数据,提高多播模式的传输效率。
[0156]
实施例四
[0157]
图4为本发明实施例四中的一种众核的片上网络数据传输方法的流程图,本实施例可适用于使用片上网络进行数据传输的情况,该方法可以由本发明实施例提供的众核的片上网络数据传输装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体是应用在片上网络的第二网络节点中。如图4所示,本实施例的方法包括:
[0158]
s410,接收匹配的第一处理单元发送的数据包,数据包包括多播包头数据。
[0159]
第二网络节点为主数据节点。第二网络节点从处理单元中获取数据包,并转发至其他网络节点中。处理单元用于获取源数据,并作为包体,以及生成多播包头数据,形成数据包,发送给网络节点。
[0160]
第二网络节点将数据包发送给前述实施例中的第一网络节点。
[0161]
s420,根据所述多播包头数据,确定至少一个发送方向,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包。
[0162]
s430,各所述发送方向匹配的数据包发送至与所述发送方向匹配的第一网络节点,以使所述第一网络节点在接收到数据包时,将所述数据包发送给匹配的第二处理单元,并根据所述多播包头数据,对所述数据包进行处理。
[0163]
如前所述,在此不再赘述。
[0164]
本发明实施例通过在接收到第一处理单元发送的数据包,并根据数据包中的多播包头数据,确定待接收数据包的第一网络节点,并发送,以使第一网络节点将数据包发送给第二处理单元,实现将包括的多播包头数据的数据包多播给网络节点,解决了现有技术中在多播发送数据包时,需要添加全部网络节点的标志位,大大增加包头的位数,导致增加传输资源消耗的问题,将数量较少的多播包头数据传输给第一网络节点,可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
[0165]
实施例五
[0166]
图5为本发明实施例五中的一种众核的片上网络数据传输装置的示意图。实施例五是实现本发明上述实施例提供的众核的片上网络数据传输方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,是配置于第一网络节点中。
[0167]
数据包接收模块510,用于接收数据包;
[0168]
数据包接收模块.520,用于如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元;
[0169]
多播数据包处理模块530,用于根据所述多播包头数据,对所述数据包进行处理。
[0170]
本发明实施例通过在检测到数据包包括多播包头数据时,将该数据包发送至匹配的处理单元进行相应处理,实现将包括的多播包头数据的数据包多播给网络节点,解决了现有技术中在多播发送数据包时,需要添加全部网络节点的标志位,大大增加包头的位数,导致增加传输资源消耗的问题,直接在检测到存在多播包头数据时接收该数据包进行处理,可以减少多播过程中网络节点配置包头的位数,以及可以避免节点中存储全部节点对应的地址,减少存储器访问次数,并且减少功耗,同时可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
[0171]
进一步的,所述多播数据包处理模块530,用于:根据所述多播包头数据,确定所述数据包的转发检测结果;如果确定所述转发检测结果为转发,则转发所述数据包;如果确定所述转发检测结果为不转发,则停止转发所述数据包。
[0172]
进一步的,所述多播数据包处理模块530,用于:从所述多播包头数据中,获取至少一个发送方向,所述发送方向用于确定所述数据包匹配的网络节点,所述第一网络节点与所述网络节点呈所述发送方向排列;对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;将各所述发送方向匹配的数据包发送至与所述发送方向匹配的网络节点。
[0173]
进一步的,所述多播数据包处理模块530,用于:根据所述多播包头数据,确定存在相对位移的传播方向,并将所述传播方向确定为所述发送方向,其中,所述相对位移用于表征所述数据包在所述传播方向上的传播距离。
[0174]
进一步的,所述多播包头数据包括方向次序信息,所述方向次序信息用于确定传播方向的优先级;所述多播数据包处理模块530,用于:根据所述方向次序信息,确定第一传播方向;如果确定所述第一传播方向存在相对位移,则将所述第一传播方向确定为第一发送方向。
[0175]
进一步的,所述多播包头数据包括并行方向信息,所述并行方向信息用于判断是否在第二传播方向上发送所述数据包,所述第二传播方向是根据所述方向次序信息确定的
除所述第一传播方向外的传播方向;所述多播数据包处理模块530,用于:根据所述并行方向信息,确定所述第一网络节点的并发标识信息;如果确定所并发标识信息为第一标识信息,则将所述第二传播方向作为第二发送方向。
[0176]
进一步的,所述多播数据包处理模块530,用于:在所述多播包头数据中,计算第一发送方向匹配的相对位移与设定步长之差,所述网络节点与第一网络节点之间的距离和所述设定步长匹配;在所述多播包头数据中,将所述第一发送方向匹配相对位移替换为差值,生成与所述第一发送方向匹配的数据包。
[0177]
进一步的,所述多播数据包处理模块530,用于:在所述多播包头数据中,计算第二发送方向匹配的相对位移与设定步长之差,所述网络节点与第一网络节点之间的距离和所述设定步长匹配,所述发送方向为第二发送方向;在所述多播包头数据中,将所述第一发送方向匹配的相对位移置零,将所述第二发送方向确定为优先级最高的传播方向,并将所述第二发送方向匹配相对位移替换为差值,生成与所述第二发送方向匹配的数据包。
[0178]
进一步的,所述多播数据包处理模块530,用于:如果确定各所述传播方向均不存在相对位移,则确定所述转发检测结果为不转发,并停止转发所述数据包。
[0179]
上述众核的片上网络数据传输装置可执行本发明实施例任一所提供的众核的片上网络数据传输方法,具备执行的众核的片上网络数据传输方法相应的功能模块和有益效果。
[0180]
实施例六
[0181]
图6为本发明实施例六中的一种众核的片上网络数据传输装置的示意图。实施例六是实现本发明上述实施例提供的众核的片上网络数据传输方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,是配置于第二网络节点中。
[0182]
数据包接收模块610,用于接收匹配的第一处理单元发送的数据包,数据包包括多播包头数据;
[0183]
接收处理单元确定模块620,用于根据所述多播包头数据,确定至少一个发送方向,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;
[0184]
数据包发送模块630,用于将各所述发送方向匹配的数据包分别发送至与各所述发送方向匹配的第一网络节点,以使各所述第一网络节点在接收到数据包时,将所述数据包发送给匹配的第二处理单元,并根据所述多播包头数据,对所述数据包进行处理。
[0185]
本发明实施例通过在接收到第一处理单元发送的数据包,并根据数据包中的多播包头数据,确定待接收数据包的第一网络节点,并发送,以使第一网络节点将数据包发送给第二处理单元,实现将包括的多播包头数据的数据包多播给网络节点,解决了现有技术中在多播发送数据包时,需要添加全部网络节点的标志位,大大增加包头的位数,导致增加传输资源消耗的问题,将数量较少的多播包头数据传输给第一网络节点,可以减少多播所需的传输数据量,提高传输效率,降低传输成本。
[0186]
上述众核的片上网络数据传输装置可执行本发明实施例任一所提供的众核的片上网络数据传输方法,具备执行的众核的片上网络数据传输方法相应的功能模块和有益效果。
[0187]
实施例七
[0188]
图7为本发明实施例七提供的一种计算机设备的结构示意图。如图7所示,该计算
机设备包括处理器71、存储器72、输入装置73和输出装置74;计算机设备中处理器71的数量可以是一个或多个,图7中以一个处理器71为例;计算机设备中的处理器71、存储器72、输入装置73和输出装置74可以通过总线或其他方式连接,图7中以通过总线连接为例。
[0189]
存储器72作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的众核的片上网络数据传输方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的众核的片上网络数据传输方法。
[0190]
存储器72可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器72可进一步包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0191]
输入装置73可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等输出设备。
[0192]
实施例八
[0193]
本发明实施例八提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术所有发明实施例提供的众核的片上网络数据传输方法:
[0194]
也即,该程序被处理器执行时实现:接收数据包;如果确定所述数据包包括多播包头数据,将所述数据包发送至与所述第一网络节点匹配的处理单元;根据所述多播包头数据,对所述数据包进行处理。
[0195]
又如,该程序被处理器执行时实现:接收匹配的第一处理单元发送的数据包,数据包包括多播包头数据;根据所述多播包头数据,确定至少一个发送方向,对所述多播包头数据进行修改,分别生成与各所述发送方向匹配的数据包;将各所述发送方向匹配的数据包分别发送至与各所述发送方向匹配的第一网络节点,以使各所述第一网络节点在接收到数据包时,将所述数据包发送给匹配的第二处理单元,并根据所述多播包头数据,对所述数据包进行处理。
[0196]
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、ram、只读存储器(read only memory,rom)、可擦式可编程只读存储器(erasable programmable readonly memory,eprom)、闪存、光纤、便携式cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0197]
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是
计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0198]
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(radiofrequency,rf)等等,或者上述的任意合适的组合。
[0199]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括lan或wan——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0200]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献