片上网络的数据广播方法、装置、芯片及介质

文档序号:571906 发布日期:2021-05-18 浏览:4次 >En<

阅读说明:本技术 片上网络的数据广播方法、装置、芯片及介质 (Data broadcasting method, device, chip and medium of network on chip ) 是由 何伟 沈杨书 于 2020-12-29 设计创作,主要内容包括:本发明实施例公开了一种片上网络的数据广播方法、装置、芯片及介质。该方法包括:接收数据包,其中所述数据包由目标节点发送至本节点;在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;向所述待转发节点转发所述数据包。上述技术方案实现了无目的地址的广泛广播,提高了NOC的通信效率。(The embodiment of the invention discloses a data broadcasting method, a device, a chip and a medium of a network on chip. The method comprises the following steps: receiving a data packet, wherein the data packet is sent to a local node by a target node; when the data packet is judged to be a broadcast data packet without a destination address, determining a node to be forwarded according to the position relation of the node and the target node in the network on chip; and forwarding the data packet to the node to be forwarded. The technical scheme realizes the wide broadcasting without destination addresses and improves the communication efficiency of the NOC.)

片上网络的数据广播方法、装置、芯片及介质

技术领域

本发明实施例涉及众核芯片技术领域,尤其涉及一种片上网络的数据广播方法、装置、芯片及介质。

背景技术

在众核(包括多核)芯片设计中,NOC(Network On Chip,片上网络)是实现核与核之间通信的常用方案,其中,NOC性能是整个芯片性能能否提高的关键。

目前,众核芯片中的NOC采用的数据多播方案是:主数据发送单元(Master)需要将数据包多播给多个从数据接收单元(Slave)时,会在数据包头中添加多播标识信息,表明多播对应的目的从数据接收单元,也即会在数据包头中添加多个从数据接收单元的地址位标识。因此,从数据接收单元接收到数据包时,需要对数据包进行解析以确定是否需要对数据包进行包头重组并转发,进而影响了NOC的通信效率。

发明内容

本发明实施例提供一种片上网络的数据广播方法、装置、设备及介质,以实现无目的地址的广泛广播,提高NOC的通信效率。

第一方面,本发明实施例提供了一种片上网络的数据广播方法,包括:

接收数据包;其中,所述数据包由目标节点发送至本节点;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

第二方面,本发明实施例提供了一种片上网络的数据广播方法,包括:

接收数据包;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

第三方面,本发明实施例还提供了一种片上网络的数据广播装置,包括:

数据包接收模块,用于接收数据包;其中,所述数据包由目标节点发送至本节点;

第一待转发节点确定模块,用于在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;

数据包转发模块,用于向所述待转发节点转发所述数据包。

第四方面,本发明实施例还提供了一种片上网络的数据广播装置,包括:

数据包接收模块,用于接收数据包;

第二待转发节点确定模块,用于在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点;

数据包转发模块,用于向所述待转发节点转发所述数据包。

第五方面,本发明实施例还提供了一种芯片,包括存储器、众核处理器及存储在存储器上并可在众核处理器上运行的计算机程序,所述众核处理器中每个内核执行所述程序时实现本发明任意实施例所述的片上网络的数据广播方法。

第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被众核处理器中每个内核执行时实现本发明任意实施例所述的片上网络的数据广播方法。

本发明实施例的技术方案中,每个节点在接收到片上网络中的目标节点发送或转发的数据包时,如果判断出数据包是否为无目的地址的广播数据包,则根据本节点与目标节点在片上网络中的位置关系确定待转发节点,并向所述待转发节点转发所述数据包,以此实现了无目的地址的广泛广播。而且,由于是无目的地址的广泛广播,数据包中不包括目的节点的地址标识信息,由此降低了数据包大小,同时每个节点在接收到数据包后均无需进行解析,直接转发数据包即可,以此提高了NOC的通信效率。

附图说明

图1是本发明实施例一中的一种片上网络的数据广播方法的流程图;

图2是本发明实施例中的一种片上网络的数据广播方法中数据包传输方向的示例图;

图3是本发明实施例中的一种片上网络的数据广播方法中数据包传输效果的示例图;

图4是本发明实施例二中的一种片上网络的数据广播方法的流程图;

图5是本发明实施例中的一种片上网络的数据广播方法中数据包广播范围的示例图;

图6是本发明实施例三中的一种片上网络的数据广播方法的流程图;

图7是本发明实施例四中的一种片上网络的数据广播方法的流程图;

图8是本发明实施例五中的一种片上网络的数据广播装置的结构示意图;

图9是本发明实施例六中的一种片上网络的数据广播装置的结构示意图;

图10是本发明实施例七中的一种芯片的硬件结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1为本发明实施例一提供的一种片上网络的数据广播方法的流程图,本实施例可适用于众核芯片中片上网络进行无目的地址的广泛广播的情况,该方法可以由本发明实施例提供的片上网络的数据广播装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在众核芯片中。

如图1所示,本实施例提供的片上网络的数据广播方法,包括:

S110、接收数据包;其中,所述数据包由目标节点发送至本节点。

目标节点,指的是片上网络中的任意一个内核节点。

其中,目标节点可以是数据包的源节点,也可以是数据包的中继节点。

也即,本节点接收由目标节点发送或者转发的数据包。

可选的,若存在需要进行无目的地址广播的目标数据包,则将目标数据包向与本节点连通的所有节点发送。

在需要将目标数据包进行无目的地址广播时,本节点即为目标数据包的源节点。作为目标数据包的源节点,会将目标数据包向与本节点连通的所有节点发送。

在由多个内核形成的片上网络中,多个内核通常是以成行成列的形式排列的。鉴于片上网络中每行每列中内核节点的数量可能不同,源节点在片上网络中的位置不同,与源节点连通的节点数量可以是一个、两个、三个或四个。无论与源节点连通的节点数量是多少,源节点会将其需要进行无目的地址广播的目标数据包向与其连通的所有节点发送。

S120、在判断出数据包为无目的地址的广播数据包时,根据本节点与目标节点在片上网络中的位置关系确定待转发节点。

广播数据包,指的是数据包传输类型为广播的数据包;无目的地址的广播数据包,指的是数据包传输类型为广播,且数据包包头中不包括目的节点地址标识的数据包。

每个内核节点接收到数据包后,首先对数据包传输类型进行判断,判断是否为无目的地址的广播数据包,例如可以预设的标识来判断接收到的数据包是否为无目的地址的广播数据包。

作为一种可选的实施方式,数据包包头中包括广播位,广播位标识用于指示数据包是否为无目的地址的广播数据包。例如,广播位标识为1时,指示数据包是无目的地址的广播数据包;广播位标识为0时,指示数据包不是无目的地址的广播数据包。

相应的,判断数据包是否为无目的地址的广播数据包,可以具体为:根据数据包的广播位标识,判断数据包是否为无目的地址的广播数据包。

如表1所示,数据包可以包括广播位和数据。每个内核节点接收到其他内核节点发送的数据包后,首先获取数据包的广播位标识,判断广播位标识是否指示数据包为无目的地址的广播数据包。

表1数据包结构

广播位 数据

若接收到的数据包不是无目的地址的广播数据包,则可以按照实际情况对数据包进行处理,本实施例对数据包不是无目的地址的广播数据包的情况不作具体限定。

若接收到的数据包是无目的地址的广播数据包,则需要根据本节点与目标节点在片上网络中的位置关系确定与本节点对应的待转发节点。

其中,针对接收到数据包的节点而言,本节点与发送数据包的目标节点在片上网络中处于相邻的位置,可以是上下相邻,也可以是左右相邻,本节点可以根据相邻关系的不同选取不同的方式确定与本节点对应的各个待转发节点。

作为一种可选的实施方式,根据本节点与所述目标节点的位置关系确定待转发节点,可以具体为:

如果本节点与目标节点同在片上网络的第一方向上,则确定除目标节点以外与本节点连通的其余节点为待转发节点;如果本节点与目标节点同在片上网络的第二方向上,且在第二方向上与除目标节点以外的另一个节点连通,则确定另一个节点为待转发节点。其中,第一方向与第二方向互相垂直。

可选的,所述片上网络为2D mesh拓扑结构,所述第一方向和所述第二方向是预设的。

由于多个内核在片上网络中是以成行成列的形式排列的,故可以将片上网络的行方向、列方向作为第一方向和第二方向。其中,在第一方向为行方向时,则第二方向为列方向;在第一方向为列方向时,则第二方向为行方向。示例性的,在如图2所示的片上网络,假设第一方向为行方向,第二方向为列方向。

参照图2,假设节点n5是数据包的源节点,则源节点将数据包向与其连通的所有节点发送,也即向节点n1、节点n4、节点n6、节点n9发送。

针对每个节点而言,在接收到数据包后,判断本节点与发送数据包的目标节点在片上网络中的位置关系。其中,可以根据本节点与目标节点的行列标识判断本节点与目标节点在片上网络中的位置关系。当本节点与目标节点的行标识相同时,本节点与目标节点同在片上网络的第一方向上,当本节点与目标节点的列标识相同时,本节点与目标节点同在片上网络的第二方向上。

在本节点与目标节点同在片上网络的第一方向上时,将除目标节点以外与本节点连通的其余节点作为待转发节点。参照图2,节点n6接收到节点n5发送的数据包,与节点n6连通的节点为节点n2、节点n5、节点n7、节点n10,节点n6判断出本节点(节点n6)与目标节点(节点n5)同在片上网络的第一方向上,则将除目标节点(节点n5)以外与本节点连通的其余节点作为待转发节点,也即将节点n2、节点n7、节点n10作为与本节点对应的待转发节点。参照图2,节点n4接收到节点n5发送的数据包,与节点n4连通的节点为节点n0、节点n5、节点n8,节点n4判断出本节点(节点n4)与目标节点(节点n5)同在片上网络的第一方向上,则将除目标节点(节点n5)以外与本节点连通的其余节点作为待转发节点,也即将节点n0、节点n8作为与本节点对应的待转发节点。

在本节点与目标节点同在片上网络的第二方向上时,如果在第二方向上本节点与除目标节点以外的另一个节点连通,则将另一个节点作为待转发节点。参照图2,节点n10接收到节点n6发送的数据包,与节点n10连通的节点为节点n6、节点n9、节点n11、节点n14,节点n10判断出本节点(节点n10)与目标节点(节点n6)同在片上网络的第二方向上,还判断出在第二方向上本节点(节点n10)除了与目标节点(节点n6)连通,还与节点n14连通,则将节点n14作为待转发节点。参照图2,节点n1接收到节点n5发送的数据包,与节点n1连通的节点为节点n0、节点n2、节点n5,节点n1判断出本节点(节点n1)与目标节点(节点n5)同在片上网络的第二方向上,还判断出在第二方向上本节点(节点n1)除了与目标节点(节点n5)连通,不再与其他节点连通,则本节点(节点n1)不存在待转发节点。

针对每个内核节点而言,鉴于其在片上网络中的位置不同,片上网络中每行每列中内核节点的数量也可能不同,故与本节点对应的待转发节点的数量也不尽相同。

S130、向所述待转发节点转发所述数据包。

在确定出与本节点对应的各个待转发节点之后,将接收到的数据包向与本节点对应的各个待转发节点进行转发。

在上述根据本节点与目标节点的位置关系确定待转发节点的可选实施方式中,从源节点出发,在第一方向上的每个节点,将数据包发送至除数据包接收方向外的其余几个方向(若该节点非边缘节点,则将数据包发送至除数据包接收方向外的其余三个方向),在第二方向上的每个节点,沿着数据包接收方向将数据包转发给下一个节点。也即,数据包在片上网络的第一方向上,只在源节点所在行(第一方向为行方向时)或者只在源节点所在列(第一方向为列方向时)传播。如图3所示,自源节点10起,数据包的整个传播路径呈鱼骨形状,数据包的传播路径不存在重复问题,能够避免对片上网络资源的浪费。

在上述技术方案中,数据包的传输在全局是异步的,可以应用于SNN(SpikingNeuron Networks,脉冲神经网络)异步仿生模拟中。

进一步的,作为一种可选的实施方式,向所述待转发节点转发所述数据包,可以具体为:如果判断出待转发节点在数据包广播范围内,则向待转发节点转发数据包。

在本实施方式中,不能任由数据包无休止地在片上网络中传播,可以设置数据包广播范围。在确定出与本节点对应的各个待转发节点之后,判断各个待转发节点是否在数据包广播范围内。如果待转发节点在数据包广播范围内,则向该待转发节点转发数据包;如果待转发节点不在数据包广播范围内,则不向该待转发节点转发数据包。

可选的,数据包中携带数据包广播范围,进而在确定出与本节点对应的各个待转发节点之后,查询数据包的数据包广播范围,判断各个待转发节点是否在数据包广播范围,是则进行数据包转发,否则不进行数据包转发。

本发明实施例的技术方案中,每个节点在接收到片上网络中的目标节点发送的数据包时,如果判断出数据包是否为无目的地址的广播数据包,则根据本节点与目标节点在片上网络中的位置关系确定待转发节点,并向所述待转发节点转发所述数据包,以此实现了无目的地址的广泛广播。而且,由于是无目的地址的广泛广播,数据包中不包括目的节点的地址标识信息,由此降低了数据包大小,同时每个节点在接收到数据包后均无需进行解析,直接转发数据包即可,以此提高了NOC的通信效率。

实施例二

图4为本发明实施例二提供的一种片上网络的数据广播方法的流程图。本实施例在前述实施例的基础上进行具体化,其中,判断所述待转发节点是否在数据包广播范围内,可以具体为:

根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内。

如图4所示,本实施例提供的片上网络的数据广播方法,包括:

S210、接收数据包;其中,所述数据包由目标节点发送至本节点。

S220、在判断出数据包为无目的地址的广播数据包时,判断本节点与目标节点在片上网络中的位置关系,若同在片上网络的第一方向上,则执行S230,若同在片上网络的第二方向上,则执行S240。

其中,第一方向与第二方向互相垂直。

S230、将除目标节点以外与本节点连通的其余节点作为待转发节点,执行S250。

S240、若在第二方向上本节点与除目标节点以外的另一个节点连通,则将另一个节点作为待转发节点,执行S250。

S250、根据数据包的源节点地址位标识和广播步长位标识,判断待转发节点是否在数据包广播范围内,若是,则执行S260,若否,则执行S270。

在本实施例中,如表2所示,数据包可以包括广播位、源节点地址位、广播步长位和数据。每个内核节点接收到其他内核节点发送的数据包后,首先获取数据包的广播位标识,在判断出广播位标识指示数据包为无目的地址的广播数据包时,可以根据源节点地址位标识和广播步长位标识判断与本节点对应的待转发节点是否在数据包广播范围内。

表2数据包结构

广播位 源节点地址位 广播步长位 数据

其中,地址位标识用于指示节点在片上网络中的位置,例如可以是行列位置标识,可以用(dx,dy)的形式标识,其中,dx可以表示行标识,dy可以表示列标识。广播步长位标识用于指示数据包自源节点起可传播的步长数(也即跳数),例如广播步长为标识为3,则指示数据包自源节点起可传播三跳。

针对与本节点对应的任意一个待转发节点,获取其地址位标识,根据源节点地址位标识及广播步长位标识判断待转发节点的地址位标识是否在数据包广播范围内。例如,根据待转发节点的地址位标识以及源节点地址位标识,判断待转发节点与源节点之间的步长数,若该步长数小于等于广播步长位标识,则确定待转发节点在数据包广播范围内,向该待转发节点转发数据包,若该步长数大于广播步长位标识,则确定待转发节点不在数据包广播范围内,不需要向该待转发节点转发数据包。

作为一种可选的实施方式,根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内,可以具体为:

根据数据包的源节点地址位标识和广播步长位标识,确定数据包广播的地址位标识范围;根据所述待转发节点的地址位标识是否落入所述地址位标识范围,判断所述待转发节点是否在数据包广播范围内。

根据数据包的源节点地址位标识和广播步长位标识,确定以源节点为起点、在与广播步长位标识对应的步长数范围内的各个节点,将这些节点的地址位标识作为数据包广播的地址位标识范围。

如图5所示,假设广播步长位标识为2,则确定以源节点10为起点、两步范围内的各个节点为虚线框内的各个节点,这些节点的地址位标识即为数据包广播的地址位标识范围,也即虚线框范围即为数据包的广播范围。

S260、向所述待转发节点转发所述数据包。

S270、不向所述待转发节点转发所述数据包。

进一步的,作为一种可选的实施方式,如表3所示,数据包可以包括广播位、源节点地址位、源节点状态位和数据,其中,状态位标识用于指示源节点的当前状态,例如可以是空闲状态、占用状态。

表3数据包结构

广播位 源节点地址位 源节点状态位 数据

相应的,在向所述待转发节点转发所述数据包之后,还包括:

根据数据包的源节点状态位标识和本节点的任务状态,判断是否根据数据包的源节点地址位标识向源节点回复信息。

本节点的任务状态,可以指的是本节点当前任务的执行状态,以及待执行任务的情况等。其中,本节点的任务状态用于指示本节点是否需要与其他节点进行任务协调。

根据数据包的源节点状态位标识和本节点的任务状态,判断是否向源节点回复信息,其中,回复的信息用于向源节点请求进行任务协调。例如,在源节点状态位标识指示源节点空闲,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调,也即请求源节点协助执行本节点的任务。再例如,如果源节点状态位标识指示源节点被占用,无论本节点的任务状态是否指示需要进行任务协调,则都无需向源节点回复信息,也即无需向源节点请求进行任务协调。

可选的,源节点状态位标识还可以是算力状态标识。其中,算力状态标识用于指示节点的算力状态,例如可以通过百分比的形式标识。进而,可以根据数据包的源节点的算力状态标识和本节点的任务状态(如计算任务状态),判断是否向源节点回复信息。例如,在源节点算力状态标识小于预设百分比阈值,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调。

可选的,源节点状态位标识还可以是存储状态标识。其中,存储状态标识用于指示节点的存储状态,例如可以通过百分比的形式标识。进而,可以根据数据包的源节点的存储状态标识和本节点的任务状态(如存储任务状态),判断是否向源节点回复信息。例如,在源节点存储状态标识小于预设百分比阈值,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调。

除上述示例之外,源节点的状态位标识还可以包括其他状态标识,用于指示节点的某方面的性能状态,本实施例对此不作具体限定。

本实施方式提供的技术方案可以应用于去中心化任务调度中,数据包中的数据、源节点地址位和源节点状态位共同体现了源节点信息,以使接收到数据包的节点根据本节点的任务状态确定是否可以与源节点进行任务协调,以此实现了片上网络中各内核节点之间的任务调度。

进一步的,在一种可选的实施方式中,如表4所示,数据包可以包括广播位、源节点地址位、源节点状态位、广播步长位和数据。

表4数据包结构

广播位 源节点地址位 源节点状态位 广播步长位 数据

在本实施方式中,通过设置广播步长位实现对数据包广播范围的限制,避免数据包无休止的传播,以此实现了在片上网络一定范围内的内核节点之间的去中心化任务调度。

本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。

实施例三

图6为本发明实施例三提供的一种片上网络的数据广播方法的流程图,本实施例可适用于众核芯片中片上网络进行无目的地址的广泛广播的情况,该方法可以由本发明实施例提供的片上网络的数据广播装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在众核芯片中。

如图6所示,本实施例提供的片上网络的数据广播方法,包括:

S310、接收数据包;其中,所述数据包由目标节点发送至本节点。

目标节点,指的是片上网络中的任意一个内核节点。

其中,目标节点可以是数据包的源节点,也可以是数据包的中继节点。也即,本节点接收由目标节点发送或者转发的数据包。

可选的,若存在需要进行无目的地址广播的目标数据包,则将目标数据包向与本节点连通的所有节点发送。

在需要将目标数据包进行无目的地址广播时,本节点即为目标数据包的源节点。作为目标数据包的源节点,会将目标数据包向与本节点连通的所有节点发送。

在由多个内核形成的片上网络中,多个内核通常是以成行成列的形式排列的。鉴于片上网络中每行每列中内核节点的数量可能不同,源节点在片上网络中的位置不同,与源节点连通的节点数量可以是一个、两个、三个或四个。无论与源节点连通的节点数量是多少,源节点会将其需要进行无目的地址广播的目标数据包向与其连通的所有节点发送。

S320、在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点。

广播数据包,指的是数据包传输类型为广播的数据包;无目的地址的广播数据包,指的是数据包传输类型为广播,且数据包包头中不包括目的节点地址标识的数据包。

每个内核节点接收到数据包后,首先对数据包传输类型进行判断,判断是否为无目的地址的广播数据包,例如可以预设的标识来判断接收到的数据包是否为无目的地址的广播数据包。

作为一种可选的实施方式,数据包包头中包括广播位,广播位标识用于指示数据包是否为无目的地址的广播数据包。例如,广播位标识为1时,指示数据包是无目的地址的广播数据包;广播位标识为0时,指示数据包不是无目的地址的广播数据包。

相应的,判断数据包是否为无目的地址的广播数据包,可以具体为:根据数据包的广播位标识,判断数据包是否为无目的地址的广播数据包。

如表5所示,数据包可以包括广播位、源节点地址位和数据。每个内核节点接收到其他内核节点发送的数据包后,首先获取数据包的广播位标识,判断广播位标识是否指示数据包为无目的地址的广播数据包。

表5数据包结构

广播位 源节点地址位 数据

若接收到的数据包不是无目的地址的广播数据包,则可以按照实际情况对数据包进行处理,本实施例对数据包不是无目的地址的广播数据包的情况不作具体限定。

若接收到的数据包是无目的地址的广播数据包,则需要根据本节点与数据包的源节点在片上网络中的位置关系确定与本节点对应的待转发节点。

其中,针对接收到数据包的节点而言,本节点与数据包的源节点在片上网络中的位置关系可以是位于同行、不位于同行,也可以是位于同列、不位于同列,本节点可以根据位置关系的不同选取不同的方式确定与本节点对应的各个待转发节点。

作为一种可选的实施方式,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点,可以具体为:

如果本节点与所述源节点在片上网络的第一方向上的位置相同,则确定除目标节点以外与本节点连通的其余节点为待转发节点;其中,所述数据包由所述目标节点发送至本节点;如果本节点与所述源节点在片上网络的第一方向上的位置不同,且在第二方向上与除所述目标节点以外的另一个节点连通,则确定所述另一个节点为待转发节点;其中,所述第一方向与所述第二方向互相垂直。

可选的,所述片上网络为2D mesh拓扑结构,所述第一方向和所述第二方向是预设的。

由于多个内核在片上网络中是以成行成列的形式排列的,故可以将片上网络的行方向、列方向作为第一方向和第二方向。其中,在第一方向为行方向时,则第二方向为列方向;在第一方向为列方向时,则第二方向为行方向。示例性的,在如图2所示的片上网络,假设第一方向为行方向,第二方向为列方向。

针对每个节点而言,在接收到数据包后,判断本节点与数据包的源节点在片上网络中的位置关系。其中,可以根据本节点与源节点的行列标识判断本节点与源节点在片上网络中的位置关系。以第一方向为行方向为例,当本节点与目标节点的行标识相同时,本节点与源节点在片上网络的第一方向上的位置相同,当本节点与目标节点的行标识不同时,本节点与源节点在片上网络的第一方向上的位置不同。

在本节点与源节点在片上网络的第一方向上的位置相同时,将除目标节点以外与本节点连通的其余节点为待转发节点。参照图2,节点n6接收到节点n5(目标节点)发送的数据包,此时发送数据包的目标节点也是源节点,节点n6判断出本节点(节点n6)与源节点(节点n5)行标识相同,也即在片上网络的第一方向上的位置相同,则将除目标节点(节点n5)以外与本节点连通的其余节点作为待转发节点,也即将节点n2、节点n7、节点n10作为与本节点对应的待转发节点。参照图2,节点n7接收到节点n6(目标节点)发送的数据包,数据包的源节点是n5,节点n7判断出本节点(节点n7)与源节点(节点n5)行标识相同,也即在片上网络的第一方向上的位置相同,则将除目标节点(节点n6)以外与本节点连通的其余节点作为待转发节点,也即将节点n3、节点n11作为与本节点对应的待转发节点。

在本节点与源节点在片上网络的第一方向上的位置不同时,如果在第二方向上本节点与除目标节点以外的另一个节点连通,则将另一个节点作为待转发节点。参照图2,节点n10接收到节点n6(目标节点)发送的数据包,数据包的源节点是n5,节点n10判断出本节点(节点n10)与源节点(节点n5)行标识不同,也即在片上网络的第一方向上的位置不同,还判断出在第二方向上本节点(节点n10)除了与目标节点(节点n6)连通,还与节点n14连通,则将节点n14作为待转发节点。参照图2,节点n1接收到节点n5(目标节点)发送的数据包,此时发送数据包的目标节点也是源节点,节点n1判断出本节点(节点n1)与源节点(节点n5)行标识不同,也即在片上网络的第一方向上的位置不同,还判断出在第二方向上本节点(节点n1)除了与目标节点(节点n5)连通,不再与其他节点连通,则本节点(节点n1)不存在待转发节点。

针对每个内核节点而言,鉴于其在片上网络中的位置不同,片上网络中每行每列中内核节点的数量也可能不同,故与本节点对应的待转发节点的数量也不尽相同。

S330、向所述待转发节点转发所述数据包。

在确定出与本节点对应的各个待转发节点之后,将接收到的数据包向与本节点对应的各个待转发节点进行转发。

在上述根据本节点与源节点的位置关系确定待转发节点的可选实施方式中,从源节点出发,在第一方向上的每个节点,将数据包发送至除数据包接收方向外的其余几个方向(若该节点非边缘节点,则将数据包发送至除数据包接收方向外的其余三个方向),在第二方向上的每个节点,沿着数据包接收方向将数据包转发给下一个节点。也即,数据包在片上网络的第一方向上,只在源节点所在行(第一方向为行方向时)或者只在源节点所在列(第一方向为列方向时)传播。如图3所示,自源节点10起,数据包的整个传播路径呈鱼骨形状,数据包的传播路径不存在重复问题,能够避免对片上网络资源的浪费。

在上述技术方案中,数据包的传输在全局是异步的,可以应用于SNN异步仿生模拟中。

进一步的,作为一种可选的实施方式,向所述待转发节点转发所述数据包,可以具体为:如果判断出待转发节点在数据包广播范围内,则向待转发节点转发数据包。

在本实施方式中,不能任由数据包无休止地在片上网络中传播,可以设置数据包广播范围。在确定出与本节点对应的各个待转发节点之后,判断各个待转发节点是否在数据包广播范围内。如果待转发节点在数据包广播范围内,则向该待转发节点转发数据包;如果待转发节点不在数据包广播范围内,则不向该待转发节点转发数据包。

可选的,数据包中携带数据包广播范围,进而在确定出与本节点对应的各个待转发节点之后,查询数据包的数据包广播范围,判断各个待转发节点是否在数据包广播范围,是则进行数据包转发,否则不进行数据包转发。

本发明实施例的技术方案中,每个节点在接收到片上网络中的目标节点发送的数据包时,如果判断出数据包是否为无目的地址的广播数据包,则根据本节点与数据包的源节点在片上网络中的位置关系确定待转发节点,并向所述待转发节点转发所述数据包,以此实现了无目的地址的广泛广播。而且,由于是无目的地址的广泛广播,数据包中不包括目的节点的地址标识信息,由此降低了数据包大小,同时每个节点在接收到数据包后均无需进行解析,直接转发数据包即可,以此提高了NOC的通信效率。

实施例四

图7为本发明实施例四提供的一种片上网络的数据广播方法的流程图。本实施例在前述实施例的基础上进行具体化,其中,判断所述待转发节点是否在数据包广播范围内,可以具体为:

根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内。

如图7所示,本实施例提供的片上网络的数据广播方法,包括:

S410、接收数据包;其中,所述数据包由目标节点发送至本节点。

S420、在判断出数据包为无目的地址的广播数据包时,判断本节点与源节点在片上网络中的位置关系,若在片上网络的第一方向上的位置相同,则执行S430,若在片上网络的第一方向上的位置不同,则执行S440。

S430、将除目标节点以外与本节点连通的其余节点作为待转发节点,执行S450。

S440、若在第二方向上本节点与除目标节点以外的另一个节点连通,则将另一个节点作为待转发节点,执行S450。

其中,第一方向与第二方向互相垂直。

S450、根据数据包的源节点地址位标识和广播步长位标识,判断待转发节点是否在数据包广播范围内,若是,则执行S460,若否,则执行S470。

在本实施例中,如表2所示,数据包可以包括广播位、源节点地址位、广播步长位和数据。每个内核节点接收到其他内核节点发送的数据包后,首先获取数据包的广播位标识,在判断出广播位标识指示数据包为无目的地址的广播数据包时,可以根据源节点地址位标识和广播步长位标识判断与本节点对应的待转发节点是否在数据包广播范围内。

其中,地址位标识用于指示节点在片上网络中的位置,例如可以是行列位置标识,可以用(dx,dy)的形式标识,其中,dx可以表示行标识,dy可以表示列标识。广播步长位标识用于指示数据包自源节点起可传播的步长数(也即跳数),例如广播步长为标识为3,则指示数据包自源节点起可传播三跳。

针对与本节点对应的任意一个待转发节点,获取其地址位标识,根据源节点地址位标识及广播步长位标识判断待转发节点的地址位标识是否在数据包广播范围内。例如,根据待转发节点的地址位标识以及源节点地址位标识,判断待转发节点与源节点之间的步长数,若该步长数小于等于广播步长位标识,则确定待转发节点在数据包广播范围内,向该待转发节点转发数据包,若该步长数大于广播步长位标识,则确定待转发节点不在数据包广播范围内,不需要向该待转发节点转发数据包。

作为一种可选的实施方式,根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内,可以具体为:

根据数据包的源节点地址位标识和广播步长位标识,确定数据包广播的地址位标识范围;根据所述待转发节点的地址位标识是否落入所述地址位标识范围,判断所述待转发节点是否在数据包广播范围内。

根据数据包的源节点地址位标识和广播步长位标识,确定以源节点为起点、在与广播步长位标识对应的步长数范围内的各个节点,将这些节点的地址位标识作为数据包广播的地址位标识范围。

如图5所示,假设广播步长位标识为2,则确定以源节点10为起点、两步范围内的各个节点为虚线框内的各个节点,这些节点的地址位标识即为数据包广播的地址位标识范围,也即虚线框范围即为数据包的广播范围。

S460、向所述待转发节点转发所述数据包。

S470、不向所述待转发节点转发所述数据包。

进一步的,作为一种可选的实施方式,如表3所示,数据包可以包括广播位、源节点地址位、源节点状态位和数据,其中,状态位标识用于指示源节点的当前状态,例如可以是空闲状态、占用状态。

相应的,在向所述待转发节点转发所述数据包之后,还包括:

根据数据包的源节点状态位标识和本节点的任务状态,判断是否根据数据包的源节点地址位标识向源节点回复信息。

本节点的任务状态,可以指的是本节点当前任务的执行状态,以及待执行任务的情况等。其中,本节点的任务状态用于指示本节点是否需要与其他节点进行任务协调。

根据数据包的源节点状态位标识和本节点的任务状态,判断是否向源节点回复信息,其中,回复的信息用于向源节点请求进行任务协调。例如,在源节点状态位标识指示源节点空闲,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调,也即请求源节点协助执行本节点的任务。再例如,如果源节点状态位标识指示源节点被占用,无论本节点的任务状态是否指示需要进行任务协调,则都无需向源节点回复信息,也即无需向源节点请求进行任务协调。

可选的,源节点状态位标识还可以是算力状态标识。其中,算力状态标识用于指示节点的算力状态,例如可以通过百分比的形式标识。进而,可以根据数据包的源节点的算力状态标识和本节点的任务状态(如计算任务状态),判断是否向源节点回复信息。例如,在源节点算力状态标识小于预设百分比阈值,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调。

可选的,源节点状态位标识还可以是存储状态标识。其中,存储状态标识用于指示节点的存储状态,例如可以通过百分比的形式标识。进而,可以根据数据包的源节点的存储状态标识和本节点的任务状态(如存储任务状态),判断是否向源节点回复信息。例如,在源节点存储状态标识小于预设百分比阈值,本节点的任务状态指示需要进行任务协调时,则根据数据包的源节点地址位标识向源节点回复信息,以向源节点请求进行任务协调。

除上述示例之外,源节点的状态位标识还可以包括其他状态标识,用于指示节点的某方面的性能状态,本实施例对此不作具体限定。

本实施方式提供的技术方案可以应用于去中心化任务调度中,数据包中的数据、源节点地址位和源节点状态位共同体现了源节点信息,以使接收到数据包的节点根据本节点的任务状态确定是否可以与源节点进行任务协调,以此实现了片上网络中各内核节点之间的任务调度。

进一步的,在一种可选的实施方式中,如表4所示,数据包可以包括广播位、源节点地址位、源节点状态位、广播步长位和数据。

在本实施方式中,通过设置广播步长位实现对数据包广播范围的限制,避免数据包无休止的传播,以此实现了在片上网络一定范围内的内核节点之间的去中心化任务调度。

本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。

实施例五

图8为本发明实施例五提供的一种片上网络的数据广播装置的结构示意图,本实施例可适用于众核芯片中片上网络进行无目的地址的广泛广播的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在众核芯片中。如图8所示,该装置包括:数据包接收模块510、第一待转发节点确定模块520和数据包转发模块530。其中,

数据包接收模块510,用于接收数据包;其中,所述数据包由目标节点发送至本节点;

第一待转发节点确定模块520,用于在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;

数据包转发模块530,用于向所述待转发节点转发所述数据包。

本发明实施例的技术方案中,每个节点在接收到片上网络中的目标节点发送的数据包时,如果判断出数据包是否为无目的地址的广播数据包,则根据本节点与目标节点在片上网络中的位置关系确定待转发节点,并向所述待转发节点转发所述数据包,以此实现了无目的地址的广泛广播。而且,由于是无目的地址的广泛广播,数据包中不包括目的节点的地址标识信息,由此降低了数据包大小,同时每个节点在接收到数据包后均无需进行解析,直接转发数据包即可,以此提高了NOC的通信效率。

可选的,第一待转发节点确定模块520,具体用于如果本节点与所述目标节点同在片上网络的第一方向上,则确定除所述目标节点以外与本节点连通的其余节点为待转发节点;如果本节点与所述目标节点同在片上网络的第二方向上,且在所述第二方向上与除所述目标节点以外的另一个节点连通,则确定所述另一个节点为待转发节点;其中,所述第一方向与所述第二方向互相垂直。

可选的,所述片上网络为2D mesh拓扑结构,所述第一方向和所述第二方向是预设的。

可选的,数据包转发模块530,具体用于如果判断出所述待转发节点在数据包广播范围内,则向所述待转发节点转发所述数据包。

进一步的,数据包转发模块530,具体用于根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内。

进一步的,数据包转发模块530,具体用于根据数据包的源节点地址位标识和广播步长位标识,确定数据包广播的地址位标识范围;根据所述待转发节点的地址位标识是否落入所述地址位标识范围,判断所述待转发节点是否在数据包广播范围内。

可选的,第一待转发节点确定模块520,具体用于根据所述数据包的广播位标识,判断所述数据包是否为无目的地址的广播数据包。

可选的,上述装置还包括:任务协调模块,用于在向所述待转发节点转发所述数据包之后,根据数据包的源节点状态位标识和本节点的任务状态,判断是否根据数据包的源节点地址位标识向源节点回复信息。

可选的,所述源节点状态位标识至少包括下述之一:算力状态标识、存储状态标识。

可选的,上述装置还包括:数据包发送模块,用于若存在需要进行无目的地址广播的目标数据包,则将所述目标数据包向与本节点连通的所有节点发送。

上述片上网络的数据广播装置可执行本发明任意实施例所提供的片上网络的数据广播方法,具备执行的片上网络的数据广播方法相应的功能模块和有益效果。

实施例六

图9为本发明实施例六提供的一种片上网络的数据广播装置的结构示意图,本实施例可适用于众核芯片中片上网络进行无目的地址的广泛广播的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在众核芯片中。如图9所示,该装置包括:

数据包接收模块610,用于接收数据包;

第二待转发节点确定模块620,用于在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点;

数据包转发模块630,用于向所述待转发节点转发所述数据包。

本发明实施例的技术方案中,每个节点在接收到片上网络中的目标节点发送的数据包时,如果判断出数据包是否为无目的地址的广播数据包,则根据本节点与数据包的源节点在片上网络中的位置关系确定待转发节点,并向所述待转发节点转发所述数据包,以此实现了无目的地址的广泛广播。而且,由于是无目的地址的广泛广播,数据包中不包括目的节点的地址标识信息,由此降低了数据包大小,同时每个节点在接收到数据包后均无需进行解析,直接转发数据包即可,以此提高了NOC的通信效率。

可选的,第二待转发节点确定模块620,具体用于如果本节点与所述源节点在片上网络的第一方向上的位置相同,则确定除目标节点以外与本节点连通的其余节点为待转发节点;其中,所述数据包由所述目标节点发送至本节点;如果本节点与所述源节点在片上网络的第一方向上的位置不同,且在第二方向上与除所述目标节点以外的另一个节点连通,则确定所述另一个节点为待转发节点;其中,所述第一方向与所述第二方向互相垂直。

可选的,所述片上网络为2D mesh拓扑结构,所述第一方向和所述第二方向是预设的。

可选的,数据包转发模块630,具体用于如果判断出所述待转发节点在数据包广播范围内,则向所述待转发节点转发所述数据包。

进一步的,数据包转发模块630,具体用于根据数据包的源节点地址位标识和广播步长位标识,判断所述待转发节点是否在数据包广播范围内。

进一步的,数据包转发模块630,具体用于根据数据包的源节点地址位标识和广播步长位标识,确定数据包广播的地址位标识范围;根据所述待转发节点的地址位标识是否落入所述地址位标识范围,判断所述待转发节点是否在数据包广播范围内。

可选的,第二待转发节点确定模块620,具体用于根据所述数据包的广播位标识,判断所述数据包是否为无目的地址的广播数据包。

可选的,上述装置还包括:任务协调模块,用于在向所述待转发节点转发所述数据包之后,根据数据包的源节点状态位标识和本节点的任务状态,判断是否根据数据包的源节点地址位标识向源节点回复信息。

可选的,所述源节点状态位标识至少包括下述之一:算力状态标识、存储状态标识。

可选的,上述装置还包括:数据包发送模块,用于若存在需要进行无目的地址广播的目标数据包,则将所述目标数据包向与本节点连通的所有节点发送。

上述片上网络的数据广播装置可执行本发明任意实施例所提供的片上网络的数据广播方法,具备执行的片上网络的数据广播方法相应的功能模块和有益效果。

实施例七

图10为本发明实施例七提供的一种芯片的硬件结构示意图。如图10所示,该芯片包括:

一个或多个众核处理器710,图10中以一个众核处理器710为例;

存储器720。

所述芯片中的众核处理器710、存储器720可以通过总线或者其他方式连接,图10中以通过总线连接为例。

存储器720作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本发明实施例中的一种片上网络的数据广播方法对应的程序指令,包括:

接收目标节点发送的数据包;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

或者,如本发明实施例中的一种片上网络的数据广播方法对应的程序指令,包括:

接收数据包;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

众核处理器710中的每个内核通过运行存储在存储器720中的软件程序指令,从而执行芯片的各种功能应用以及数据处理,即实现上述方法任意实施例中的一种片上网络的数据广播方法。

存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据芯片的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。

实施例八

本发明实施例八还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由众核处理器中的每个内核执行时用于实现一种片上网络的数据广播方法,该方法包括:

接收目标节点发送的数据包;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述目标节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

或者用于实现一种片上网络的数据广播方法,该方法包括:

接收数据包;

在判断出所述数据包为无目的地址的广播数据包时,根据本节点与所述数据包的源节点在片上网络中的位置关系确定待转发节点;

向所述待转发节点转发所述数据包。

可选的,该计算机可执行指令在由众核处理器中每个内核执行时还可以用于实现本发明任意实施例所提供的一种片上网络的数据广播方法的技术方案。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得芯片执行本发明各个实施例所述的方法。

值得注意的是,上述片上网络的数据广播装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种PON系统报文镜像方法及PON系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!