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

数据传输装置和方法与流程

2022-02-24 17:38:33 来源:中国专利 TAG:


1.本技术涉及数据传输技术领域,尤其涉及数据传输装置和方法。


背景技术:

2.近年来,神经网络(neural network)技术迅速发展,已经在模式识别、预测估计、图像处理等众多领域取得了广泛的成功,随着越来越复杂的计算任务,神经网络的处理节点的规模逐步扩大,如何实现各个节点之间的高效通信成为急需解决的重要任务。
3.卷积神经网络是一种更适合进行图像处理、模式识别的网络结构。随着卷积神经网络研究热潮的兴起,卷积神经网络的模型深度不断被加深用以获得更高的算法性能。但与此同时,卷积神经网络的局部数据量大、数据传输密集等问题也开始逐渐的浮现。该情况下,如何快速、高效地进行数据传输,以提升卷积神经网络的计算速度成为亟待解决的技术问题。


技术实现要素:

4.本技术实施例提供了一种数据传输装置和方法,有助于提高数据传输效率。该技术方案应用于神经网络系统时,有助于提升神经网络系统的数据传输效率和计算速度。这里的神经网络系统例如可以是卷积神经网络。
5.为了达到上述目的,本技术实施例提供了以下技术方案:
6.第一方面,提供了一种数据传输装置,该数据传输装置包括:路由器,用于向第一网络接口发送数据包,该数据包中包括多个目的网络接口的标识。第一网络接口,用于:接收路由器发送的数据包,并在第一子网中广播该数据包,其中,第一子网包括第一网络接口和多个第二网络接口,该多个第二网络接口包括多个目的网络接口。该多个第二网络接口,用于接收第一网络接口发送的数据包,其中,该多个目的网络接口还用于根据数据包中的目的网络接口的标识,将该数据包转发给对应的处理节点,该多个第二网络接口中除该多个目的网络接口之外的其他网络接口还用于根据该多个目的网络接口的标识丢弃数据包。
7.该技术方案中,以广播方式发送数据包,以多播方式处理接收到的数据包。由于以广播方式发送数据包,在数据包由发送端传输到目的端的过程中,不需要进行路径选择,因此,有助于节省数据包传输过程中的数据处理复杂度,从而节省数据传输时间。而以多播方式处理该数据包,可以使该数据包发往可选择的目的端(即上述多个目的网络接口),而非广播方式下的所有目的端(即上述第一子网中的所有第二网络接口)。因此,结合广播方式和多播方式各自的特点,在传输多播数据包的场景下,以广播方式发送数据包,以多播方式处理接收到的数据包,有助于在保证数据包传输到正确的目的端的前提下,提高数据传输效率。这里的正确的目的端(即上述目的网络接口)可以基于网络拓扑预先配置。当本技术方案应用于神经网络系统时,有助于提升神经网络系统的数据传输效率以及计算速度。
8.在一种可能的设计中,第一网络接口用于根据多个目的网络接口的标识,向第一子网中的多个第二网络接口广播数据包。例如,如果第一网络接口201解析数据包的包头部
分后,确定该数据包中包含多个目的网络接口的标识,则向第一子网广播该数据包。
9.在一种可能的设计中,第一网络接口用于根据数据包中包括的广播标识,向第一子网中的多个第二网络接口广播数据包。例如,如果第一网络接口201解析数据包的包头部分后,确定该数据包中包含广播标识,则向第一子网广播该数据包。
10.在一种可能的设计中,数据包还包括第一子网的标识。路由器用于根据第一子网标识向第一网络接口发送数据包。这为“路由器连接多个子网,并在多个子网之间传输数据包”创造了条件。也就是说,该路由器还可以连接其他子网,从而基于其他子网标识向其他子网发送数据包。
11.在一种可能的设计中,数据传输装置还包括第三网络接口,路由器还用于与第三网络接口通信,其中,第三网络接口为第二子网中的网络接口,第二子网包括第三网络接口以及多个第四网络接口。该可能的设计,提供了一个路由器连接多个子网的具体实现方式。其中,第三网络接口的功能可以参考第一子网中的第一网络接口的功能。第四网络接口的功能可以参考第一子网中的第二网络接口的功能。此处不再赘述。
12.在一种可能的设计中,第一子网中的部分网络接口也属于第二子网。
13.在一种可能的设计中,数据传输装置还包括多个配置交换器。该多个配置交换器中的第一配置交换器连接第一网络接口,并用于接收第一网络接口发送的数据包,并向第一子网内连接多个第二网络接口的其他配置交换器发送数据包。
14.在一种可能的设计中,多个配置交换器中的每个配置交换器包括多个端口,该多个端口中的第一端口用于连接一个网络接口,多个端口中的其他网络接口用于连接其他配置交换器。该多个配置交换器中的每个配置交换器,还用于基于配置信息,控制自身的多个端口之间的连通或断开状态。
15.通过设置配置交换器,有助于通过控制配置交换器控制子网中的网络接口之间的连通或断开状态以及数据传输方向。类似的,在不同子网中均设置配置交换器,有助于通过控制配置交换器控制子网之间的网络接口之间的联通或断开状态,从而实现数据传输装置中的子网是可配置的,以及子网中的网络接口之间的数据传输方向是可配置的。这样,使用数据传输装置的一套硬件系统,可以支持多种网络拓扑。
16.在一种可能的设计中,数据传输装置是神经网络芯片,处理节点是神经网络中的处理节点。
17.在一种可能的设计中,第一子网中的网络接口包括:连接神经网路芯片中第一神经网络层的第一处理节点的网络接口以及连接第二神经网络层的多个第二处理节点的网络接口,其中,第一处理节点用于向多个第二处理节点传输数据。例如,第一网络接口包括连接神经网路芯片中第一神经网络层的第一处理节点的网络接口,多个第二网络接口包括连接第二神经网络层的多个第二处理节点的网络接口。该可选的实现方式提供了基于神经网络的网络拓扑,确定子网中的网络接口的方法。这有助于提高神经网络层之间的数据传输效率。
18.在一种可能的设计中,第一子网中的网络接口之间传输的数据包的数据量大于第一阈值。该可选的实现方式提供了将传输的数据包的数据量较大的网络接口作为一个子网的方式。这样,有助于提高数据传输效率。
19.第二方面,提供了一种数据传输方法,该方法包括:第一网络接口接收路由器发送
的数据包,该数据包中包括多个目的网络接口的标识。然后,第一网络接口在第一子网中广播数据包,其中,第一子网包括第一网络接口和多个第二网络接口,该多个第二网络接口包括多个目的网络接口。该多个目的网络接口根据该数据包中的目的网络接口的标识,将该数据包转发给对应的处理节点;该多个第二网络接口中除多个目的网络接口之外的其他网络接口根据该数据包中的目的网络接口的标识丢弃该数据包。
20.在一种可能的设计中,第一网络接口向第一子网中广播数据包,包括:第一网络接口根据多个目的网络接口的标识,向第一子网中的多个第二网络接口广播数据包。
21.在一种可能的设计中,第一网络接口向第一子网中广播数据包,包括:第一网络接口根据数据包中的广播标识向第一子网中的多个第二网络接口广播数据包。
22.第三方面,提供了一种数据传输方法,该方法包括:第二网络接口接收第一网络接口广播的数据包,该数据包中包括多个目的网络接口的标识;然后,第二网络接口在确定该数据包中的目的网络接口的标识包括第二网络接口的标识时,将该数据包转发给对应的处理节点;或第二网络接口在确定该数据包中的目的网络接口的标识不包括第二网络接口的标识时,丢弃该数据包。
23.第四方面,提供了一种网络接口,包括:接收单元,用于接收第一网络接口广播的数据包,该数据包中包括多个目的网络接口的标识。处理单元,用于在确定该数据包中的目的网络接口的标识包括第二网络接口的标识时,将该数据包转发给对应的处理节点;或在确定该数据包中的目的网络接口的标识不包括第二网络接口的标识时,丢弃该数据包。
24.第五方面,提供了一种网络接口。
25.在一种可能的设计中,该网络接口包括:存储器和一个或多个处理器,该存储器用于存储计算机指令,该处理器用于调用所述计算机指令,以执行第四方面提供的方法。
26.在另一种可能的设计中,该网络接口包括:用于实现上述第四方面提供的方法的控制电路,以及一个或多个端口。
27.第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行第四方面提供的方法。
28.第七方面,提供了一种计算机程序产品,当其在计算机上运行时,使得第四方面提供的方法被执行。
29.可以理解的是,上述提供的任一种数据传输方法、网络接口、计算机存储介质、计算机程序产品或芯片系统等均可以应用于上文所提供的对应的数据传输装置,因此,其所能达到的有益效果可参考对应的数据传输装置中的有益效果,此处不再赘述。
30.在本技术中,上述数据传输装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本技术类似,属于本技术权利要求及其等同技术的范围之内。
31.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
32.图1为本技术实施例提供的一种神经网络系统的结构示意图;
33.图2为本技术实施例提供的一种神经网络芯片中的计算节点的结构示意图;
34.图3为本技术实施例提供的一种数据传输装置的结构示意图;
35.图4为本技术实施例提供的另一种数据传输装置的结构示意图;
36.图5为本技术实施例提供的又一种数据传输装置的结构示意图;
37.图6为本技术实施例提供的一种数据传输方法的交互示意图;
38.图7为本技术实施例提供的一种数据包的格式示意图;
39.图8为本技术实施例提供的一种数据传输装置中所涉及的节点及其之间的连接关系示意图;
40.图9为本技术实施例提供的一种数据传输装置的基本单元的结构示意图;
41.图10为本技术实施例基于图9所示的基本单元提供的一种数据传输装置的结构示意图;
42.图11为本技术实施例提供的一种配置交换器的结构示意图;
43.图12为本技术实施例提供的一种配置交换器中的配置寄存器存储的配置信息的结构示意图;
44.图13为本技术实施例提供的另一种配置交换器中的配置寄存器所存储的配置信息的结构示意图;
45.图14为本技术实施例提供的一种配置交换器的状态总线的数据传输方法的流程示意图;
46.图15为本技术实施例提供的一种配置交换器的数据总线的数据传输方法的流程示意图;
47.图16为本技术实施例提供的一种网络接口的结构示意图;
48.图17为本技术实施例提供的一种网络接口中的配置寄存器存储的配置信息的格式的示意图;
49.图18为本技术实施例提供的一种网络接口的工作流程的方法示意图;
50.图19为本技术实施例提供的另一种数据传输装置的结构示意图;
51.图20为本技术实施例提供的一种配置交换器的配置结果示意图;
52.图21为本技术实施例提供的一种数据包的结构示意图;
53.图22为本技术实施例提供的一种网络接口中的配置寄存器中存储的配置信息的示意图;
54.图23为本技术实施例提供的一种网络接口的结构示意图。
具体实施方式
55.本技术实施例提供的技术方案可以应用于人工神经网络(artificial neural network,ann)。人工神经网络,简称为神经网络(neural network,nn)或类神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(如动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。人工神经网络可以包括卷积神经网络(convolutional neural network,cnn)、深度神经网络(deep neural network,dnn)、时延神经网络(time delay neural network,tdnn)和多层感知器(multilayer perceptron,mlp)等神经网络。
56.图1为本技术实施例提供的一种神经网络系统的结构示意图。如图1所示,神经网络系统100可以包括主机105以及神经网络电路110。神经网络电路110通过主机接口与主机
105连接。主机接口可以包括标准的主机接口以及网络接口(network interface)。例如,主机接口可以包括快捷外设互联标准(peripheral component interconnect express,pcie)接口。如图1所示,神经网络电路110可以通过pcie总线106与主机105连接。因此,数据可以通过pcie总线106输入至神经网络电路110中,并通过pcie总线106接收神经网络电路110处理完成后的数据。并且,主机105也可以通过主机接口监测神经网络电路110的工作状态。
57.主机105可以包括处理器1052以及内存1054。需要说明的是,除了图1所示的器件外,主机105还可以包括通信接口以及作为外存的磁盘等其他器件,在此不做限制。
58.处理器(processor)1052是主机105的运算核心和控制核心(control unit)。处理器1052中可以包括多个处理器核(core)。处理器1052可以是一块超大规模的集成电路。在处理器1052中安装有操作系统和其他软件程序,从而处理器1052能够实现对内存1054、缓存、磁盘及外设设备(如图1中的神经网络电路)的访问。可以理解的是,在本发明实施例中,处理器1052中的core例如可以是中央处理器(central processing unit,cpu),还可以是其他特定集成电路(application specific integrated circuit,asic)。
59.内存1054是主机105的主存。内存1054通过双倍速率(double data rate,ddr)总线和处理器1052相连。内存1054通常用来存放操作系统中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。为了提高处理器1052的访问速度,内存1054需要具备访问速度快的优点。在传统的计算机系统架构中,通常采用动态随机存取存储器(dynamic random access memory,dram)作为内存1054。处理器1052能够通过内存控制器(图1中未示出)高速访问内存1054,对内存1054中的任意一个存储单元进行读操作和写操作。
60.神经网络电路110是由多个神经网络芯片(chip)组成的芯片阵列。例如,如图1所示,神经网络电路110包括多个进行数据处理的神经网络芯片115和多个路由器120。为了描述方便,本发明实施例将申请中的神经网络芯片115简称为芯片115。在一个示例中,所述多个芯片115可以通过路由器120相互连接。例如,一个芯片115可以与一个或多个路由器120连接。多个路由器120可以组成一种或多种网络拓扑。芯片115之间可以通过所述多种网络拓扑进行数据传输。在另一个示例中,所述多个芯片115之间可以通过pcie总线相互连接。
61.图2为本技术实施例提供的一种神经网络芯片中的计算节点的结构示意图。如图2所示,芯片115中包括多个路由器120,每个路由器可以连接一个tile(瓦片)125。实际应用中,一个路由器120还可以连接多个tile 125,其中,每个tile125中可以包括一个或多个用于对数据进行神经网络计算的计算单元。为描述方便,在本技术实施例中,也可以将芯片115或tile 125称为计算节点。
62.片上系统(system-on-a-chip,soc)是指在单个芯片上集成一个完整的系统,对所有或部分必要的电子电路进行包分组的技术。应用于本技术实施例时,soc是芯片115上的系统。
63.图3、图4和图5为本技术实施例提供的数据传输装置20的结构示意图。数据传输装置20可以包括路由器200和至少一个子网。子网是网络接口构成的集合。
64.如图3所示,至少一个子网包括第一子网,第一子网包括第一网络接口201和多个第二网络接口202。第一网络接口201是第一子网中广播数据包的网络接口。一个第一网络接口201可以连接至少一个处理节点205。第二网络接口202是第一子网中接收广播的数据
包的网络接口。一个第二网络接口202可以连接至少一个处理节点205。
65.可选的,数据传输装置20可以是神经网络芯片(如图1中的芯片115),在该情况下,可以将如图2中的tile125称为神经网络中的处理节点。在另一种情况下,数据传输装置20也可以是指包括多个神经网络芯片的神经网络电路(如图1中的神经网络电路110),在这种情况下,可以将神经网络芯片115作为神经网络中的处理节点。
66.路由器200,用于向第一网络接口201发送数据包,该数据包中包括多个目的网络接口的标识。可选的,该数据包还包括第一子网标识。路由器200用于根据第一子网标识向第一网络接口201发送该数据包。
67.第一网络接口201,用于:接收路由器200发送的该数据包,并在第一子网中广播该数据包,其中,第一子网包括第一网络接口201和多个第二网络接口202,多个第二网络接口202包括该多个目的网络接口。其中,该多个网络接口可以是部分或全部第二网络接口202,具体是哪些网络接口是基于网络拓扑确定的。
68.在一种实现方式中,第一网络接口201用于根据该多个目的网络接口的标识,向第一子网中的多个第二网络接口202广播数据包。例如,如果第一网络接口201解析数据包的包头部分后,确定该数据包中包含多个目的网络接口的标识,则向第一子网广播该数据包。
69.在另一种实现方式中,第一网络接口201用于根据该数据包中包括的广播标识,向第一子网中的多个第二网络接口202广播该数据包。例如,如果第一网络接口201解析数据包的包头部分后,确定该数据包中包含广播标识,则向第一子网广播该数据包。另外,如果第一网络接口201确定该数据包中不包含广播标识,或者包含另一标识(如非广播标识等),则将该数据包发往与第一网络接口201连接的处理节点。
70.多个第二网络接口202,用于接收第一网络接口201发送的该数据包。其中,该多个目的网络接口还用于根据该数据包中的目的网络接口的标识,将该数据包转发给对应的处理节点205,该多个第二网络接口中除该多个目的网络接口之外的其他网络接口还用于根据该多个目的网络接口的标识丢弃该数据包。
71.具体的,对于任一个第二网络接口202来说,在接收到第一网络接口201发送的数据包之后,可以解析该数据包的包头部分,以得到该数据包中包括的目的网络接口的标识。如果确定自身的标识包含在该数据包中的目的网络接口的标识中,说明该第二网络接口202是目的网络接口,则将该数据包转发给自身连接的一个或多个处理节点。其中,可以通过进一步解析该数据包(如该数据包的包头部分)获知将数据包转发给哪些处理节点。对于任一个第二网络接口来说,如果确定自身的标识没有包含在该数据包中的目的网络接口的标识中,说明该第二网络接口202不是目的网络接口,则丢弃该数据包。
72.本实施例提供的数据传输装置20中,以广播方式发送数据包,以多播方式处理接收到的数据包。需要说明的是,传统广播方式下,数据包中不会携带目的端的标识,而本技术实施例提供的技术方案中,广播方式下传输的数据包中携带目的端的标识,这样,接收到该数据包的第二网络接口可以以多播方式对数据包进行处理。
73.由于以广播方式发送数据包,在数据包由发送端传输到目的端的过程中,不需要进行路径选择,因此,有助于节省数据包传输过程中的数据处理复杂度,从而节省数据传输时间。而以多播方式处理该数据包,可以使该数据包发往可选择的目的端(即上述多个目的网络接口),而非广播方式下的所有目的端(即上述第一子网中的所有第二网络接口)。因
此,结合广播方式和多播方式各自的特点,在传输多播数据包的场景下,以广播方式发送数据包,以多播方式处理接收到的数据包,有助于在保证数据包传输到正确的目的端的前提下,提高数据传输效率。这里的正确的目的端(即上述目的网络接口)可以基于网络拓扑预先配置。
74.对于神经网络芯片来说,多播流量较多,因此,上述技术方案尤其适用于神经网络芯片。
75.一个子网中用于广播数据包的网络接口可以认为是该子网的入口,由外界(如主机或其他子网)传输给该子网的数据包,均由与该网络接口连接的路由器发送给该网络接口。例如,第一网络接口可以认为是第一子网的入口,由主机或其他子网传输给第一子网的数据,首先由与第一网络接口连接的路由器发送给第一网络接口。
76.一个子网中的其中一个网络接口可以作为该子网的出口,由该子网传输给外界(如主机或其他子网)的数据包,均由该网络接口发送给与该网路接口连接的路由器,并由该路由器直接或间接发往主机或其他子网。例如,第一网络接口或任意一个第二网络接口可以作为第一子网的出口,由第一子网传输给主机或其他子网的数据包,均由第一网络接口发送给与第一网络接口连接的路由器,并由该路由器直接或间接发往主机或其他子网。具体哪个网络接口作为第一子网的出口可以是基于网络拓扑确定的。
77.可选的,每个网路接口(包括第一网络接口201和第二网络接口202)均可以与同一路由器连接,或者可以与不同路由器连接,该不同路由器之间直接或间接连接。这样,有助于支持每个网络接口均可以作为子网的入口或出口,从而使得数据传输装置20支持多种网络拓扑,或支持多种神经网络业务。
78.如图4所示,数据传输装置20的至少一个子网包括第一子网和第二子网。图4是基于图3进行绘制的。第二子网可以包含一个第三网络接口203和多个第四网络接口204。第三网络接口203是第二子网中广播数据包的网络接口。一个第三网络接口203可以连接至少一个处理节点205。第四网络接口204是第二子网中接收广播的数据包的网络接口。一个第四网络接口204可以连接至少一个处理节点205。其中,第三网络接口203的功能与第一网络接口201的功能相同或类似,第四网络接口204的功能与第二网络接口202的功能相同或类似,此处不再赘述。
79.不同子网之间通过路由器传输数据。不同子网中用于广播数据包的网路接口之间可以连接同一路由器或者不同路由器。例如,第一网络接口201与第三网络接口203连接同一个路由器200,如图4所示。又如,第一网络接口201与第三网络接口203分别连接不同的路由器,且二者所连接的路由器之间直接连接,或者通过其他路由器间接连接。
80.不同网络接口连接的处理节点的个数可以相同,也可以不同。
81.数据传输装置20中的哪些网络接口构成一个子网,一个子网中的哪个网络接口作为用于广播数据包的网络接口,哪个或哪些网络接口作为用于接收广播的数据包的网络接口等,均可以是预配置的,下文中进行具体说明。
82.以下,说明本技术实施例提供的几种第一子网中的网络接口的具体实现方式:
83.在一种实现方式中,第一子网中的网络接口包括:连接神经网路芯片中第一神经网络层的第一处理节点的网络接口以及连接第二神经网络层的多个第二处理节点的网络接口,其中,第一处理节点用于向该多个第二处理节点传输数据。例如,所述第一网络接口
包括连接所述神经网路芯片中第一神经网络层的第一处理节点的网络接口,所述多个第二网络接口包括连接第二神经网络层的多个第二处理节点的网络接口。该可选的实现方式提供了基于神经网络的网络拓扑,确定子网中的网络接口的方法。这有助于提高神经网络层之间的数据传输效率。
84.例如,假设第一神经网络层包括处理节点11、12、13,第二神经网络层包括处理节点21、22、23、24,且处理节点13用于向处理节点21、22和23分别传输数据,则分别用于连接处理节点13、21、22和23的网络接口作为一个子网中的网络接口。
85.在另一种实现方式中,第一子网中的网络接口之间传输的数据包的数据量大于第一阈值。该可选的实现方式提供了将传输的数据包的数据量较大的网络接口作为一个子网的方式。这样,有助于提高数据传输效率。
86.需要说明的是,具体实现时,上述两种实现方式可以结合使用,从而得到新的技术方案。具体的,如果第一处理节点和该多个第二处理节点之间传输的数据包的数据量大于第一阈值,则将上述第一处理节点和该多个第二处理节点作为第一子网中的网络接口。
87.如图5所示,数据传输装置20还可以包括多个配置交换器206。该多个配置交换器206中的第一配置交换器连接第一网络接口201,并用于接收第一网络接口201发送的数据包,并向第一子网内连接多个第二网络接口202的其他配置交换器206发送该数据包。
88.通过在数据传输装置20中设置配置交换器,有助于通过控制配置交换器控制子网中的网络接口之间的连通或断开状态以及数据传输方向。类似的,在不同子网中均设置配置交换器,有助于通过控制配置交换器控制子网之间的网络接口之间的联通或断开状态,从而实现数据传输装置20中的子网是可配置的,以及子网中的网络接口之间的数据传输方向是可配置的。这样,使用数据传输装置20的一套硬件系统,可以支持多种网络拓扑。应用于神经网络系统时,该网络拓扑是指神经网络拓扑。也就是说,本技术实施例提供的技术数据传输装置20支持处理不同的神经网络业务。
89.对于神经网络芯片来说,通过配置配置交换器中的配置信息,可以实现将局部流量密集的神经网络节点所连接的网络接口构成一个子网,从而在该子网中使用广播方式传输多播数据包,以提高数据传输效率。由于配置交换器中的配置信息可以预先配置,该预先配置的信息已经设定了数据包在网络接口之间的传输路径,因此,在实际应用的过程中,网络接口之间不需要进行链路的重新构建,也不需要进行对数据包的仲裁及多种消息的解析,其中,对多种消息的解析和对数据包的仲裁,用于网络接口确定该数据包是否是发往自身的数据包。如此,有利于降低数据处理的复杂度,从而提高数据传输效率。
90.可选的,第一网络接口201和每个第二网络接口202分别连接一个配置交换器。不同配置交换器206之间直接或间接连接。如图5所示。
91.可选的,每个配置交换器206包括多个端口,该多个端口中的第一端口用于连接一个网络接口,该多个端口中的其他网络接口用于连接其他配置交换器。如图4所示。每个配置交换器206,还用于基于配置信息,控制自身的多个端口之间的连通或断开状态。以及,每个配置交换器206,还用于基于配置信息,控制自身的多个端口之间的数据传输方向。具体实现方式可以参考下文。
92.可选的,一个子网中的部分网络接口可以属于其他子网,例如,第一子网中的部分网络接口属于第二子网。
93.需要说明的是,如果一个网络接口属于多个子网,则该网路接口在其中一个子网中作为第二网络节点,在其他子网中均作为中间网络接口。其中,如果一个网络接口在一个子网中是中间网络接口,则在该子网中,该中间网络接口不会接收到其所连接的配置交换器发送的数据包,因此不会向与自身连接的处理节点发送数据包。而第一网络接口和第二网络接口可以向与自身连接的处理节点发送数据包。具体实现时,通过配置与中间网络接口连接的配置交换器的端口的连通和关断,从而控制该配置交换器不向该中间网络接口发送数据包。关于中间网络接口的具体示例可以参考下文,此处不再赘述。
94.可选的,配置交换器中包括一个或多个配置寄存器,一个配置寄存器可以对应一个子网,用于配置该子网中的数据传输通路。具体示例可以参考下文,此处不再赘述。
95.如图6所示,为本技术实施例提供的一种数据传输方法的交互示意图。图6所示的方法可以基于图3至图5中的任一附图提供的数据传输装置20。图6所示的方法包括以下步骤:
96.s101:路由器向第一网络接口发送数据包。
97.执行s101之后,执行s102和/或s106。
98.s102:第一网络接口如果确定该数据包中包含第一网络接口的标识,则将该数据包发往与第一网络接口连接的处理节点。
99.s103:与第一网络接口连接的处理节点处理完该数据包之后,生成新的数据包,并将该新的数据包发往第一网络接口。该新的数据包可以包含目标子网的标识或者主机的标识。其中,目标子网包括第一子网和/或其他子网。
100.执行s103之后,执行s104或s105。
101.s104:第一网络接口如果确定该新的数据包包含第一子网的标识,则在第一子网中广播该新的数据包。执行s104之后,本次数据传输过程结束。
102.s105:第一网络接口如果确定该新的数据包包含其他子网的标识,则通过与第一网络接口连接的路由器发往其他子网中的用于广播数据包的网络接口。如果确定该新的数据包包含主机的标识,则通过与第一网络接口连接的路由器发往主机。执行s105之后,本次数据传输过程结束。
103.s106:第一网络接口如果确定该数据包中包含其他网络接口的标识,则在第一子网中广播该数据包。
104.s107:第一子网中的第二网络接口接收到该数据包之后,如果确定自身的标识包含在目的网络接口的标识中,则将该数据包转发给自身连接的一个或多个处理节点。如果确定自身的标识没有包含在目的网络接口的标识中,则丢弃该数据包。
105.s108:与第二网络接口连接的处理节点处理完该数据包之后,生成新的数据包,并将该新的数据包发往该第二网络接口。其中,该数据包可以包含其他子网的标识(如第二子网的标识),或者可以包含第一子网中的新的目的网络接口的标识。
106.执行s108之后,执行s109和/或s110。
107.s109:第二网络接口将该新的数据包发往与该第二网络接口连接的路由器。
108.后续,如果该路由确定该数据包包含其他子网的标识,则由该路由器将该新的数据包直接发往其他子网中的用于广播数据包的网络接口,或者,由该路由器通过路由器之间的连接关系,间接将该新的数据包发往其他子网中的用于广播数据包的网络接口。如果
该路由器确定该数据包包含第一子网中的新的目的网络接口的标识,则由该路由器直接将该新的数据包发往第一网络接口,或者,由与该第二网络接口连接的路由器通过路由器之间的连接关系,间接将该新的数据包发往第一网络接口。
109.本实施例所能达到的有益效果的描述可以参考上文,此处不再赘述。
110.以下,对本技术实施例提供的数据包进行说明:
111.如图7所示,为本技术实施例提供的一种数据包的格式示意图。图7所示的数据包包括:包头部分和数据部分。包头部分用于承载数据包的控制信息,数据部分用于携带有效数据。
112.其中,包头部分可以包括以下标志位/字段:
113.字段1:目的网络接口标志位,用于携带目的网络接口的标识。
114.在上文中描述的实施例中,目的网络接口是第二网络接口的部分或全部网络接口,此处,为了方便描述,将目的网络接口定义为该数据包被发往的目的地。基于此,具体实现时,以当前子网是第一子网为例,目的网络接口可以包括当前子网中的任意多个网络接口,其中,该网络接口可以均是第二网络接口,或者包含第一网络接口和多个第二网络接口。
115.在一个示例中,由于当前子网中的每个网络接口均可以作为目的网络接口,因此,可以设置目的网络接口标志位包含n个比特,其中,n表示当前子网包括的网络接口的个数,每个比特表示一个网络接口是否是目的网络接口。例如,如果一个网络接口是目的网络接口,则将目的网络接口标志位中的与该网络接口对应的比特位标记为1,如果该网络接口不是目的网络接口,则将目的网络接口标志位中的与该网络接口对应的比特位标记为0。
116.在另一个示例中,如果数据传输装置包括多个子网,该多个子网包含的网络接口的数量不同,则为了使得数据包能够在不同子网之间传输和被各子网中的节点识别,可选的,目标网路接口的标志位包含n个比特,其中,n表示目标子网包含的网络接口的数量,目标子网是数据传输装置中的所包含的网络接口的数量最大的子网。
117.字段2:数据包类型标志位,用于携带数据包的类型的标识。该类型可以是广播类型或非广播类型。
118.可选的,包头部分还可以包括:
119.字段3:子网标志位,用于携带该数据包所属子网的标识。例如,如果该数据包需要被发往第一子网,则该数据包的子网标志位携带第一子网的标识。任意一个路由器接收到该数据包之后,均可以直接或间接将该数据包发往第一子网中的第一网络接口。
120.另外,包头部分还可以包含其他标志位/其他字段。
121.数据部分可以包括若干字段,具体的字段名以及字段所表示的含义等,均可以参考现有技术,此处不再赘述。
122.上文中是以一个或多个子网的角度对数据传输装置20进行说明的。以下,从另一个角度对数据传输装置20的结构进行说明:
123.在一个示例中,如图8所示,为数据传输装置20中所涉及的节点及其之间的连接关系示意图。其中,这些节点包括路由器(r)、配置交换器(s)、网络接口(n)和处理节点(t)。网络接口(n)分别连接路由器(r)、配置交换器(s)和处理节点(t)。
124.其中,路由器(r)和配置交换器(s)均可以是多端口的。一个路由器(r)可以连接一
个或多个网络接口(n),不同配置交换器(s)之间可以按照一定的方式连接,如图9所示。图9所示的结构可以认为是一种数据传输装置20的基本单元的结构。
125.图9仅为一个示例,其不对本技术实施例提供的数据传输装置20的基本单元的结构构成限定。例如,实际实现时,一个路由器(r)连接的网络接口(n)的数量、一个网络接口(n)连接的处理节点(t)的数量,以及,一个配置交换器(s)连接的其他配置交换器(s)的数量等均可以根据需要进行设置。
126.不同路由器(r)之间可以按照一定的方式连接,如图10所示。图10是基于图9所示的基本单元提供的一种数据传输装置20的结构示意图。图10仅为一个示例,其不对本技术实施例提供的数据传输装置20的结构构成限定。例如,一个路由器(r)可连接的其他路由器(r)的数量等均可以根据需要进行配置。
127.作为示例,在图10中,路由器(r)之间通过一定的方式连接,构成第一层网络,用于子网之间传输数据包,以及子网内“用于接收广播的数据包”的网络接口(如上述第二网络接口)向本子网内的“用于广播数据包的”的网络接口(如上述第一网络接口)传输数据包。配置交换器(s)之间通过一定的方式连接,构成第二层网络,用于区分子网以及控制子网内的网络接口之间的数据传输方向。
128.图10中的路由器(r)是8端口路由器,其中的4端口用于与其他路由器相互连接成为网络状,其余4端口用于连接不同的网络接口。示例的,8端口路由器可以由经典的路由器结构进行端口扩展得到,例如将经典的5端口路由器扩展出3个端口变成8端口路由器。
129.图10中的配置交换器(s)是5端口的,其中的1个端口是用于与网络接口连接,该接口可以被称为网络接口端口,其余4端口:东、西、南、北端口用于与其他配置交换器相互连接成为网格形状。
130.以下,对本技术实施例提供的配置交换器进行说明:
131.如图11所示,为本技术实施例提供的一种配置交换器的结构示意图。图11所示的配置交换器包括东、西、南、北端口和网络接口端口。需要说明的是,这里的东、西、南、北端口仅为示例,实际实现时,可以替换为其他名字。另外,配置交换的用于与其他配置交换器进行连接的端口的个数不限于是4个,还可以是其他任意数量。
132.配置交换器(s)的每个端口与其他节点之间连接的信号线均是双向接口,该信号线可以作为输入信号线,也可以作为输出信号线,但同一时刻只能作为输入信号线或者输出信号线。
133.可选的,配置交换器(s)的每个端口连接的信号线包含数据总线、数据控制总线及状态总线。其中:
134.数据总线是传输数据的信号线。
135.数据控制总线是表示数据总线上数据是否有效的信号线。
136.状态总线是表示与该配置交换器连接的网络接口的状态(如忙碌状态或者空闲状态),以及该配置交换器接收到的其他配置交换器发送的网络接口的状态的信号线。
137.例如,在第一子网中,配置交换器1连接第一网络接口,配置交换器2、3分别连接第二网络接口,并且,配置交换器3经配置交换器2向配置交换器1发送自身的状态信息。该情况下,配置交换器3发往配置交换器2的状态信息,表示:与配置交换器3连接的网络接口是忙碌状态或空闲状态。配置交换器2发往配置交换器1的状态信息,表示:与配置交换器3连
接的网络接口以及与配置交换器2连接的网络接口,是忙碌状态或空闲状态。
138.其中,如果与一个配置交换器连接的网络接口具有空闲的缓存空间来接收数据包,则该配置交换器处于空闲状态,否则,该配置寄存器处于忙碌状态。例如,当与该配置交换器连接的网络接口中用于缓存来自该配置交换器的数据的剩余缓存空间(或者剩余缓存空间占缓存总空间)大于等于一定阈值,则该网络接口具有空间的缓存空间。
139.可以理解的是,数据总线与数据控制总线上的数据传输方向相同。例如,均是“发送”方向,或者均是“接收方向”。
140.可以理解的是,数据总线与状态总线上的数据传输方向相反。具体的:
141.如果一个配置交换器连接的网络接口是用于广播数据包的网络接口(如上述第一网络接口),则该配置交换器用于向本子网内的其他网络接口连接的其他配置交换器发送数据,因此,该配置交换器需要接收其他配置交换器的状态信息(即忙碌状态或空闲状态),从而在确定其他配置交换器均为空闲状态时,向其他配置交换器发送数据。也就是说,如果数据总线上的数据传输方向是“发送”,则状态总线上的数据传输方向是“接收”。
142.相应的,如果一个配置交换器连接的网络接口是用于接收广播的数据包的网络接口(如上述第二网络接口),则配置交换器用于直接或间接接收本子网内的与“广播数据包的网络接口”连接的配置交换器发送的数据,因此,该配置交换器需要向与“广播数据包的网络接口”连接的配置交换器上报自身的状态信息。也就是说,如果数据总线上的数据传输方向是“接收”,则状态总线上的数据传输方向是“发送”。
143.每个配置交换器内部均可以包含配置寄存器,该配置寄存器用于存储配置信息,该配置信息用于该配置交换器控制自身每个端口的连通或关断,以及数据传输方向。
144.可选的,一个配置交换器中配置的配置寄存器的个数,与该配置交换器同时需要为几个子网传输数据相关。一个配置交换器同时需要为几个子网传输数据是基于配置信息和该配置交换器同时最多可支持为几个子网传输数据确定的。一个配置交换器同时最多可支持为几个子网传输数据,是基于该配置交换器的端口数确定的。
145.以配置交换器是如图11所示的配置交换器为例,由于该配置交换器包含5个端口,并且,不同子网之间的数据传输不能共用配置交换器的端口,因此,该配置交换器最多可支持为2个子网传输数据,例如,东端口和南端口作为一个子网的数据传输通路的输入端口和输出端口,西端口和北端口作为另一个子网的数据传输通路的输入端口和输出端口。该情况下,该配置交换器中可以包含2个配置寄存器,其中一个配置寄存器用于存储一个子网的配置信息,另一个配置寄存器用于存储另一个子网的配置信息。
146.可选的,配置交换器中的配置寄存器中存储的配置信息的格式主要包括以下标志位/字段,如图12所示:
147.字段1:数据总线输入端口标志位和/或状态总线输出端口标志位,用于携带数据总线输入端口的标识和/或状态总线输出端口的标识。
148.字段2:数据总线输出端口标志位,用于携带数据总线输出端口的标识。
149.字段3:状态总线输入端口标志位,用于携带状态总线输入端口的标识。
150.需要说明的是,由于数据总线与状态总线上的数据传输方向是相反的,因此,数据总线输入端口标志位与状态总线输出端口标志位相同,因此,二者可以共用一个字段。
151.另外需要说明的是,由于数据总线与数据控制总线上的数据传输方向是相同的,
因此,配置交换器中的配置寄存器的格式中,没有包含数据控制总线的输入端口标志位和输出端口标志位,其具体标志位可以分别参考数据总线输入端口标志位和数据总线输出端口标志位。
152.如图13所示,为本技术实施例提供的一种配置交换器中的配置寄存器所存储的配置信息的结构示意图。图13所示的配置信息的格式包括:
153.字段1:第0-2位,既用来表示数据输入端口标志位,又用来表示状态总线的输出端口标志位。
154.字段2:第3-7位,表示数据总线输出端口标志位。在一个示例中,第3位表示北端口,第4位表示西端口,第5位表示南端口,第6位表示东端口,第7位表示网络接口端口(ni)。当某个比特位为高电平时,表示该比特对应的数据总线输出端口有效,即该比特对应的端口是数据总线输出端口。当某个比特位为低电平时,表示该比特位对应的数据总线输出端口无效,即该比特对应的端口不是数据总线输出端口。
155.字段3:第8-12位,表示状态总线输入端口标志位。在一个示例中,第8位表示北端口,第9位表示西端口,第10位表示南端口,第11位表示东端口,第12位表示网络接口端口。当某个比特位为高电平时,表示该比特对应的状态总线输入端口有效,即该比特对应的端口是状态总线输入端口。当某个比特位为低电平时,表示该比特位对应的状态总线输入端口无效,即该比特对应的端口不是状态总线输入端口。
156.如图14所示,为本技术实施例提供的一种配置交换器的状态总线的数据传输方法的流程示意图。图14所示的方法包括以下步骤:
157.s201:配置交换器初始化自身包含的配置寄存器。其中,配置寄存器中存储的配置信息的格式可以如图13所示。
158.s202:配置交换器基于配置信息,判断状态总线的输出端口标志位(如图13中的第0-2比特)是否有效。
159.若无效,则执行s203。若有效,则执行s204。
160.s203:配置交换器确定当前不输出状态信号。执行该步骤之后,本次过程结束。
161.s204:配置交换器记录状态总线输入端口标志位(如图13中的第8-12比特)携带的有效端口的标识。
162.s205:配置交换器将所记录的有效端口的状态信息进行“或”操作。
163.其中,该步骤是以状态信息是忙碌状态表示为“1”,状态信息是空闲状态表示为“0”为例进行说明的。如果配置交换器记录的任意一个或多个有效端口的状态信息是“1”,则s205中“或”操作的结果是1,表示忙碌。如果配置交换器记录的所有有效端口的状态信息均是“0”,则s205中“或”操作的结果是0,表示空闲。
164.s206:配置交换器将“或”操作的结果值赋值给状态总线的输出端口。
165.每个配置交换器将输入状态信息“或”操作后,赋值给输出状态信息线。对于第一子网来说,各配置交换器都只能将自己的输入状态信息进行或操作赋值给自己的输出端口,从而通过一个接一个配置交换器的传递,将第一子网内的所有第二网络接口的连接的网络接口的状态信息,传递给第一网络接口。
166.如图15所示,为本技术实施例提供的一种配置交换器的数据总线的数据传输方法的流程示意图。图15所示的方法包括以下步骤:
167.s301:配置交换器初始化自身包含的配置寄存器。其中,配置寄存器中存储的配置信息的格式可以如图13所示。
168.s302:配置交换器基于配置信息,判断数据总线的输入端口标志位(如图13中的第0-2比特)是否有效。
169.若无效,则执行s303;若有效,则执行s304。
170.s303:配置交换器确定当前没有数据输入。执行该步骤之后,本次过程结束。
171.s304:配置交换器记录数据总线输出端口标志位(如图13中的第3-7比特)中有效的端口号,该端口号所指示的端口即为有效的数据总线输出端口。
172.s305:配置交换器将数据总线的输入端口的数据分别赋值给有效的数据总线输出端口。这样,可以实现将数据总线的输入端口的数据经有效的数据总线输出端口输出。
173.以下,对本技术实施例提供的网络接口进行说明:
174.如图16所示,为本技术实施例提供的一种网络接口30的结构示意图。为了方便说明,图13中还示意出了与网络接口30连接的路由器、配置交换器和处理节点。图13所示的网络接口30包括:
175.第一缓存块31,用于缓存路由器发送给网络接口30的数据包。
176.第二缓存块32,用于缓存与网络接口30连接的配置交换器发送给网络接口30的数据包。
177.配置寄存器(reg)33,用于存储配置信息,该配置信息可以是预定义的,预定义之后是可以更改的。
178.控制器34,用于选择第一缓存块31和第二缓存块32内的数据包输出至合适的端口,这里的合适的端口可以是连接处理节点的端口和/或连接配置交换器的端口。以及,根据reg341中存储的配置信息,与配置交换器和第二缓存块32进行信息交互。
179.第三缓存块35,用于缓存与网络接口30连接的处理节点发往路由器的数据包。
180.如图17所示,为本技术实施例提供的一种网络接口中的配置寄存器存储的配置信息的格式的示意图。具体的,该配置信息包括以下字段:
181.字段1:主从工作模式标志位,用于携带该网络接口的控制总线的工作模式的标识,该工作模式是主工作模式或从工作模式,主工作模式表示该网络接口是用于广播数据包的网络接口,如上述第一网络接口,从工作模式表示该网络接口是用于接收广播的数据包的网络接口,如上述第二网络接口。
182.字段2:网络接口在本子网的标志位,用于携带网络接口在本子网中的标识。
183.需要说明的是,一个网络接口可以属于不同子网,其在不同子网中的标识可能不同,因此,这里的标志位具体是指该网络接口在本子网中的标识。
184.可选的,该配置信息的格式还可以包括其他标志位/字段。
185.如图18所示,为本技术实施例提供的一种网络接口的工作流程的方法示意图。图18可以应用于如图16所示的网络接口,以及应用于如图7所示的数据包。图18所示的方法可以包括以下步骤:
186.s401:初始化当前网络接口内部的配置寄存器。
187.s402:当前网络接口中的控制器基于配置寄存器中存储的配置信息,判断该当前网络接口的工作模式是主节点工作模式还是从节点工作模式。
188.如果被配置为主节点工作模式,则执行s403。
189.如果被配置为从节点工作模式,则执行s409。
190.s403:当前网络接口中的控制器检测第一缓存块是否有数据。
191.若是,则执行s404。若否,则本次数据传输过程结束。
192.s404:当前网络接口中的控制器读取第一缓存块中的数据包,并判断数据包的“数据包类型标志位”是广播标识还是非广播标识。
193.如果数据包类型标志位是非广播类型,则执行s405。
194.如果数据包类型标志位是广播类型,则执行s406。
195.s405:当前网络接口中的控制器将所读取的数据包传输至处理节点。
196.执行s405之后,本次数据传输过程结束。
197.s406:当前网络接口中的控制器基于数据包的“目的网络接口标志位”判断当前网络接口是否有效。
198.如果有效,说明当前网络接口是该数据包的一个目的网络接口(或者说,当前网络接口是有效的目的网络接口),则执行s407。
199.如果无效,说明当前网络接口不是该数据包的目的网络接口(或者说,当前网络接口不是有效的目的网络接口),则执行s408。
200.需要说明的是,这里的目的网络端口,可以包括用于广播数据包的网络接口,也可以包括用于接收广播的数据包的网络接口。
201.例如,以当前网络接口是网络接口n为例,其中,如果一个子网包括n个网络接口,该子网内的各网络接口的编号依次为1-n,n是大于等于3的整数,则网络接口n是指本子网内编号为n的网络接口,1≤n≤n,n是整数。网络接口n的控制器如果确定数据包的“目的网络接口标志位”的第n位有效,则确定该网络接口有效。
202.s407:当前网络接口中的控制器将所读取的数据包传输至与当前网络接口连接的处理节点,以及,在与当前网络接口连接的配置交换器传输给该当前网络接口的状态总线有效时,当前网络接口中的控制器将所读取的数据包传输至与当前网络接口连接的配置交换器。
203.执行s407的当前网络接口是用于广播数据包的网络接口,因此,与当前网络接口连接的配置交换器传输给(即输出给)该当前网络接口的状态总线有效,说明:本子网内的所有“用于接收广播的数据包”的网络接口均处于空闲状态,此时,当前网络接口可以在子网内广播数据包,因此,将所读取的数据包传输至与当前网络接口连接的配置交换器。后续,该配置交换器可以将该数据包发送给与其所连接的配置交换器,接收到数据包的配置交换器可以执行如图14和图15所示的方法,从而实现当前网络接口在子网中广播数据包的目的。
204.执行s407之后,本次数据传输过程结束。
205.s408:在与当前网络接口连接的配置交换器传输给该当前网络接口的状态总线有效时,当前网络接口中的控制器将所读取的数据包传输至与当前网络接口连接的配置交换器。
206.执行s408之后,本次数据传输过程结束。
207.s409:当前网络接口中的控制器检测与当前网络接口连接的配置交换器是否传输
数据,即判断第二缓存块中是否存储有数据包。
208.若是,则执行s410。若否,则本次数据传输过程结束。
209.s410:当前网络接口中的控制器基于数据包的“目的网络接口标志位”判断当前网络接口是否有效。
210.如果有效,说明当前网络接口是一个有效的目的网络端口,则执行s411。
211.如果无效,则本次数据传输过程结束。
212.s411:当前网络接口中的控制器将第二缓存块内的数据写入与该当前网络接口连接的处理节点。
213.以下,通过一个具体示例,对本技术实施例提供的上述方法进行说明:
214.如图19所示,为本技术实施例提供的一种数据传输装置的结构示意图。该数据传输装置包括第一子网和第二子网。其中:
215.第一子网包含的网络接口为:网络接口1、2、3、4。其中,网络接口1是第一网路接口,网络接口2、3、4是第二网络接口。第二子网包含的网络接口为:网络接口5、3、6、7。其中,网络接口5是第三网络接口,网络接口6、7号是第四网络接口。
216.其中,网络接口3属于第一子网,也属于第二子网。网络接口3在第一子网中作为第二网络接口,在第二网络节点中作为中间网络接口。这一信息可以作为配置信息的一部分存储在网络接口3的配置寄存器中。
217.与网络接口1-7(图19中标记为n1-7)连接的配置寄存器分别为配置交换器1-7(图19中标记为s1-7)。配置交换器1、2、3、4之间数据流方向如图19所示中的实线箭头所示,配置器3、5、6、7之间数据流方向如图19所示中的虚线箭头所示。
218.在一个示例中,与网络接口1-7分别连接的配置交换器的配置结果如图20所示。
219.在图20中,每个配置交换器中设置有2个配置寄存器,分别标记为reg1和reg2。其中,reg1是针对第一子网的配置寄存器,reg2是针对第二子网的配置寄存器。每个配置寄存器中存储的配置信息的结构和该结构中每个字段的含义如图13所示。
220.在一个示例中,数据总线输入端口标志位/状态总线输出端口标志位中携带的信息的含义如下:“000”表示北端口(n),“001”表示西端口(w),“010”表示南端口(s),“011”表示东端口(e),“100”表示网络接口端口(ni),“111”表示无效(invalid)。
221.以下,结合图20,以配置交换器3为例说明配置寄存器中存储的配置信息的含义。
222.reg1的字段1“011”表示:数据总线的输入端口为东端口,状态总线的输出端口为东端口。
223.reg1的字段2中“00001”表示:ni端口为数据总线输出端口,其余端口无效。由此可知,数据总线的数据流向为:从东端口输入,由ni端口输出。也就是说,针对第一子网,配置交换器3从配置交换器2接收到数据包之后,发往网络接口3。
224.reg1的字段3“00001”表示,ni端口为状态总线输入端口,其余端口无效。由此可知,状态总线的数据流向为:从ni端口输入,东端口输出。
225.reg2的字段1“001”表示:数据总线的输入端口为西端口,状态总线的输出端口为西端口。
226.reg2的字段2“10000”表示:北端口为数据总线输出端口,其余端口为无效。由此可知,数据总线的数据流向为:从西端口输入,由北端口输出。也就是说,针对第二子网,配置
交换器3从配置交换器5接收到数据包之后,发往配置交换器6,而不会发往网络接口3。这是在考虑到网络接口3在第二子网中是中间网络接口而设计的配置信息。
227.reg2的字段3“10000”表示:北端口为状态总线输入端口,其余端口无效。由此可知,状态总线的数据流向为:从北端口输入,西端口输出。
228.可以理解的是,对于配置交换器来说,可以基于预先设定的数据包传输路径,确定配置交换器的相应配置寄存器中的配置信息,从而在数据传输过程中,由该配置寄存器读取并分析配置信息,实现数据包按照预先设定的路径进行传输。其他示例不再一一说明。
229.在一个示例中,第一子网和第二子网中的数据包的示例如图21所示。其中,数据包类型标志位中的“11”表示:数据包类型为广播类型。图21中是以目的网络接口标志位是16比特为例进行说明的,具体实现时不现于此。其中,第n比特为高电平“1”表示网络接口n是目的网络接口,为低电平“0”表示网络接口n不是目的网络接口。1≤n≤16,n是整数。“其他字段”表示,数据包中包含的其他信息,其相关描述可以参考上文,也可以参考现有技术。
230.在一个示例中,网络接口1-7中的配置寄存器中存储的配置信息如图22所示。
231.结合图20至图22,对于第一子网来说:
232.网络接口1基于图22所示的主从节点标志位“1”,确定自身的工作模式是主工作模式,从而在第一子网中广播数据包。具体的,数据包由网络接口1所连接的配置交换器,发送到配置交换器2-4。配置交换器2-4基于图20中所示的相应配置信息,将接收到的数据包分别发送给网络接口2-4。
233.网络接口2-4分别基于图22所示的主从节点标志位“0”,确定自身的工作模式是从工作模式,从而接收第一子网中广播的数据包。然后,网络接口2-4分别基于图21中所示的数据包的目的网络接口标志位,确定将该数据包发往自身连接的处理节点,还是丢弃该数据包。具体的,由图21中第一子网中的数据包的目的网络接口标志位“1110000000000000”,且预定义的其从高位开始的第1-4比特依次对应网络接口1-4,可知:网络接口1-3是目标网络接口,网络接口4不是目标网络接口,因此,网络接口1-3分别将数据包发往自身连接的处理节点,网络接口4丢弃接收到的数据包。
234.结合图20至图22,对于第二子网来说:
235.网络接口5基于图22所示的主从节点标志位“1”,确定自身的工作模式是主工作模式,从而在第二子网中广播数据包。具体的,数据包由网络接口5所连接的配置交换器,发送到配置交换器3、6、7。配置交换器3、6、7基于图20中所示的相应配置信息,将接收到的数据包分别发送给网络接口6、7。
236.网络接口6、7分别基于图22所示的主从节点标志位“0”,确定自身的工作模式是从工作模式,从而接收第二子网中广播的数据包。然后,网络接口6、7分别图21中所示的数据包的目的网络接口标志位,确定将该数据包发往自身连接的处理节点,还是丢弃该数据包。具体的,由图21中第二子网中的数据包的目的网络接口标志位“011000000000000”,且预定义的其从高位开始的第1-3比特依次对应网络接口5、6、7,可知:网络接口6、7是目标网络接口,网络接口5不是目标网络接口,因此,网络接口6、7分别将接收到的数据包发往自身连接的处理节点。
237.网络接口3在第二子网是中间网路接口,因此,不会接收到配置交换器3发送的数据包。关于该情况下,配置交换器3中的配置信息的具体说明可以参考上文。
238.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
239.本技术实施例可以根据上述方法示例对网络接口进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
240.如图23所示,为本技术实施例提供的一种网络接口23的结构示意图。该网络接口23用于执行上文中任意一个实施例提供的方法中第二网络接口所执行的步骤。例如,该网络接口23可以包括:接收单元2301,用于接收第一网络接口广播的数据包,该数据包中包括多个目的网络接口的标识。处理单元2302,用于在确定该数据包中的目的网络接口的标识包括第二网络接口的标识时,将该数据包转发给对应的处理节点;或在确定该数据包中的目的网络接口的标识不包括第二网络接口的标识时,丢弃该数据包。例如,结合图18,处理单元2302可以用于执行s411。
241.本技术实施例还提供的一种网络接口。该网络接口24包括:存储器和一个或多个处理器,存储器用于存储计算机指令,处理器用于调用所述计算机指令,以执行上文中任意一个实施例提供的方法中第二网络接口所执行的步骤。
242.本技术实施例还提供了一种网络接口,用于执行上文中任意一个实施例提供的方法中第一网络接口所执行的步骤。在一种实现方式中,可以对该网络接口进行逻辑功能划分,如包括收发单元和处理单元,收发单元用于执行收发步骤,处理单元用于执行收发步骤之外的其他步骤。在另一种实现方式中,该网络接口包括存储器和一个或多个处理器,存储器用于存储计算机指令,处理器用于调用所述计算机指令,以执行上文中任意一个实施例提供的方法中第一网络接口所执行的步骤。
243.本技术实施例还提供了一种配置交换器,用于执行上文中任意一个实施例提供的方法中配置交换器所执行的步骤。在一种实现方式中,可以对该配置交换器进行逻辑功能划分,如包括收发单元和处理单元,收发单元用于执行收发步骤,处理单元用于执行收发步骤之外的其他步骤。在另一种实现方式中,该配置交换器包括存储器和一个或多个处理器,存储器用于存储计算机指令,处理器用于调用所述计算机指令,以执行上文中任意一个实施例提供的方法中配置交换器所执行的步骤。
244.本技术实施例还提供了一种网络接口,包括用于实现上述第一网络接口功能的控制电路和/或实现第二网络接口功能的控制电路,以及一个或多个端口。
245.本技术实施例还提供了一种配置交换器,包括用于实现上述配置交换器功能的控制电路,以及一个或多个端口。
246.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上文提供的任
一种网络接口所执行的方法,或者配置交换器所执行的方法。
247.关于上述提供的任一种网络接口和配置交换器中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
248.本技术实施例还提供了一种芯片。该芯片中集成了用于实现上述数据传输装置的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,asic)、微处理器(digital signal processor,dsp),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
249.本技术实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如ssd)等。
250.应注意,本技术实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
251.在实施所要求保护的本技术过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。尽管结合具体特征及其实施例对本技术进行了描述,在不脱离本技术的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本技术的示例性说明,且视为已覆盖本技术范围内的任意和所有修改、变化、组合或等同物。
再多了解一些

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

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

相关文献