一种片上网络NoC及数据传输的方法与流程

文档序号:12376375阅读:399来源:国知局
一种片上网络NoC及数据传输的方法与流程

本发明涉及计算机技术领域,尤其涉及一种片上网络NoC及数据传输的方法。



背景技术:

片上网络(NoC,Network-on-Chip)是多核和众核架构中的主要组成部分,能够将处理器和各种不同功能的单元都集成到一块芯片中。但是,随着NoC的不断发展,其集成规模越来越大,导致一系列性能下降的问题。比如说,由于NoC中传输的数据具有不确定性,在数据流量分布不均匀时,部分链路不可避免会出现拥塞的问题,如突发的网络会议、视频电话等。

传统解决NoC拥塞的方法主要是基于拥塞感知而设计的路由算法或路由规则,从而绕开数据流量较大的区域或子网络。如图1所示,数据传输从源节点S到目的节点D,需要基于全局链路状态和拥塞信息,计算从源节点S到目的节点D各条传输路径的精确拥塞值,同时需要考虑链路拥塞状态并定义不同的拥塞权重,从而根据最短路径算法进行传输,缓解网络拥塞情况。同时,传统解决NoC拥塞的方法存在以下缺陷:1、当NoC的集成规模较大、源节点与目的节点距离较远时,拥塞信息统计的计算量较大,并且在传输过程中局部的拥塞信息时刻都会发生改变;2、每个节点都需要统计各方向拥塞信息,并通过数据包发送给相邻节点,造成不必要的开销,同时增大了功耗。



技术实现要素:

本发明实施例提供了一种片上网络NoC及数据传输的方法,可以解决NoC拥塞的问题,提高数据传输效率,并且具有开销小和功耗低的优点。

本发明实施例第一方面提供了一种片上网络NoC,所述NoC包括第一网络层、第二网络层和连接通道,所述第一网络层被划分为多个子网络,每个所述子网络包括多个普通节点和一个公共节点,所述第二网络层包括多个通道节点, 所述公共节点通过所述连接通道与所述通道节点连接,其中:

所述普通节点,用于作为源节点发送数据包,或作为目的节点接收数据包;

所述公共节点,用于接收其所属的子网络中的所述源节点发送的数据包并转发至通道节点,或接收通道节点发送的数据包并转发至其所属的子网络中的所述目的节点;

所述通道节点,用于接收所述源节点所属的子网络中的公共节点发送的数据包,并转发至所述目的节点所属的子网络中的公共节点。

在第一方面的第一种可能实现方式中,所述公共节点和所述通道节点均包括路由器,所述路由器包括普通端口和通道端口,其中:

所述公共节点的路由器的普通端口与所述普通节点连接,所述公共节点的路由器的通道端口与所述连接通道连接;

所述通道节点的路由器的普通端口与其它的通道节点连接,所述通道节点的路由器的通道端口与所述连接通道连接。

结合第一种可能实现方式,在第一方面的第二种可能实现方式中,所述连接通道包括固定通道和可变通道,其中,所述固定通道的传输方向是不变的,所述可变通道的传输方向是可变的。

结合第二种可能实现方式,在第一方面的第三种可能实现方式中,所述NoC还包括方向控制器,所述方向控制器,用于根据预设的算法控制所述可变通道的传输方向。

结合第三种可能实现方式,在第一方面的第四种可能实现方式中,所述方向控制器,具体用于:

获取在所述连接通道的第一方向上待传输的数据包的流量,以及获取在所述连接通道的第一方向上待传输的数据包的流量,其中所述第一方向和所述第二方向互为逆方向;

比较所述第一方向上待传输的数据包的流量与所述第二方向上待传输的数据包的流量的大小;

在所述第一方向上待传输的数据包的流量大于所述第二方向上待传输的数据包的流量时,控制所述可变通道的传输方向为所述第一方向,或

在所述第一方向上待传输的数据包的流量小于所述第二方向上待传输的数据包的流量时,控制所述可变通道的传输方向为所述第二方向。

在第一方面的第五种可能实现方式中,所述数据包携带有所述源节点的地址、所述目标节点的地址和该数据包的属性。

结合第五种可能实现方式,在第一方面的第六种可能实现方式中,所述公共节点,具体用于:

接收其所属的子网络中的所述源节点发送的数据包;

根据所述数据包携带的源节点的地址和目标节点的地址,判断所述源节点和所述目标节点是否处于不同的子网络且两者之间的距离大于预设的距离值;

若是,则将该数据包转发至通道节点。

结合第六种可能实现方式,在第一方面的第七种可能实现方式中,所述子网络中的各个普通节点与公共节点之间的平均距离为2Hop,其中,所述Hop表示两个节点之间相隔的节点数。

结合第七种可能实现方式,在第一方面的第八种可能实现方式中,所述预设的距离值为4Hop。

结合第五种可能实现方式,在第一方面的第九种可能实现方式中,所述公共节点,具体用于:

接收其所属的子网络中的所述源节点发送的数据包;

判断所述数据包的属性是否为重要数据、紧急数据或实时数据;

若是,则将该数据包转发至通道节点。

本发明实施例第二方面提供了一种数据传输的方法,所述方法应用于片上网络NoC,所述NoC包括第一网络层、第二网络层和连接通道,所述第一网络层被划分为多个子网络,每个所述子网络包括多个普通节点和一个公共节点,所述第二网络层包括多个通道节点,所述公共节点通过所述连接通道与所述通道节点连接,所述方法包括:

第一普通节点向其所属的子网络中的第一公共节点发送数据包;

所述第一公共节点接收所述第一普通节点发送的数据包并转发至通道节点;

所述通道节点接收所述第一公共节点发送的数据包并转发至第二普通节点所属的子网络中的第二公共节点;

所述第二公共节点接收所述通道节点发送的数据包并转发至所述第二普通 节点。

在第二方面的第一种可能实现方式中,所述数据包携带有所述第一普通节点的地址、所述第二普通节点的地址和该数据包的属性。

结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述第一公共节点接收所述第一普通节点发送的数据包并转发至通道节点,包括:

所述第一公共节点接收所述第一普通节点发送的数据包;

所述第一公共节点根据所述数据包携带的第一普通节点的地址和第二普通节点的地址,判断所述第一普通节点和所述第二普通节点是否处于不同的子网络且两者之间的距离大于预设的距离值;

所述第一公共节点在判定为是时,将该数据包转发至通道节点。

结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述子网络中的各个普通节点与公共节点之间的平均距离为2Hop,其中,所述Hop表示两个节点之间相隔的节点数。

结合第二方面的第三种可能实现方式,在第二方面的第四种可能实现方式中,所述预设的距离值为4Hop。

结合第二方面的第一种可能实现方式,在第二方面的第五种可能实现方式中,所述第一公共节点接收所述第一普通节点发送的数据包;

所述第一公共节点判断所述数据包的属性是否为重要数据、紧急数据或实时数据;

所述第一公共节点在判定为是时,将该数据包转发至通道节点。

由上可见,本发明实施例中的NoC,包括第一网络层、第二网络层和连接通道,第一网络层被划分为多个子网络,每个子网络包括多个普通节点和一个公共节点,第二网络层包括多个通道节点,公共节点通过连接通道与通道节点连接,普通节点可以通过所属子网络中的公共节点、连接通道、通道节点和其它子网络中的公共节点与其它子网络中的普通节点进行数据传输,从而解决NoC拥塞的问题,提高数据传输效率,并且具有开销小和功耗低的优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种传统NoC的结构示意图;

图2是本发明实施例提供的一种NoC的结构示意图;

图3是本发明实施例提供的一种路由器的结构示意图;

图4是本发明实施例提供的一种方向控制的示意图;

图5是本发明实施例提供的一种数据包格式的示意图;

图6是本发明实施例提供的一种方向控制的方法的流程示意图;

图7是本发明实施例提供的一种数据传输的方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2是本发明实施例中一种片上网络NoC的结构示意图。如图所示本发明实施例中的NoC至少可以包括第一网络层100、第二网络层200和连接通道300,第一网络层100被划分为多个子网络,每个子网络包括多个普通节点110和一个公共节点120,第二网络层200包括多个通道节点210,公共节点120通过连接通道300与通道节点210连接。需要指出的是,第一网络层100的子网络是根据功能特性进行划分的,可以是均匀划分,也可以是非均匀划分,这里不作限定,例如,如图2所示,将第一网络层100划分为4个非均匀的子网络。其中:

普通节点110,用于作为源节点发送数据包,或作为目的节点接收数据包。

公共节点120,用于接收其所属的子网络中的源节点发送的数据包并转发至通道节点210,或接收通道节点210发送的数据包并转发至其所属的子网络中的目的节点。例如,如图2所示,编号为21的公共节点120,可以接收标号为20 的普通节点110发送的数据包并转发至编号为0的通道节点210,或接收编号为0的通道节点210发送的数据包并转发至编号为12的普通节点110。

通道节点210,用于接收源节点所属的子网络中的公共节点120发送的数据包,并转发至目的节点所属的子网络中的公共节点120。例如,如图2所示,假设源节点为编号为15的普通节点110,目的节点为编号为60的普通节点110,那么编号为15的普通节点110发送数据包后,数据包经由编号为24的公共节点120、编号为1的通道节点210、编号为2的通道节点210以及编号为51的公共节点120后传输至编号为60的普通节点110。

由上可见,源节点和目的节点之间的数据传输避开了在同一网络层上进行,相当于经由一条由公共节点120和通道节点210构成的“快速通道”,减少了转发数据包的节点的个数,从而解决了数据流量分布不均匀导致的NoC拥塞的问题,并减小了整个网络的开销和功耗。

具体实现过程中,每个公共节点120和每个通道节点210均包括一个路由器,路由器包括普通端口和通道端口,其中,公共节点120的路由器的普通端口与普通节点110连接,公共节点120的路由器的通道端口与连接通道300连接,通道节点210的路由器的普通端口与其它的通道节点210连接,通道节点210的路由器的通道端口与连接通道300连接。

进一步地,如图3所示,路由器的普通端口可以包括N(北)、E(东)、S(南)和W(西)四个方向的端口,分别与四个同一网络层的节点连接,例如,编号为21的公共节点120的路由器,N端与编号为31的普通节点110连接,E端与编号为22的普通节点110连接,S端与编号为11的普通节点110连接,W端与编号为20的普通节点110连接;路由器的通道端口为垂直于网络层方向的端口,与连接通道300连接。可选地,如图3所示,路由器的普通端口还可以包括L(本地)方向的端口,该端口用于连接本地元件,例如本地的处理器、处理单元或内存等。

应理解地,除公共节点120和通道节点210外,每个普通节点110也包括一个路由器,不同的是,普通节点110的路由器不需要设置通道端口。

具体实现过程中,连接通道包括固定通道和可变通道,其中,所述固定通道的传输方向是不变的,所述可变通道的传输方向是可变的,如图4所示,图中连接通道包括2条固定通道(实线)和2条可变通道(虚线),可变通道的传 输方向可以根据流量情况变更。相应地,NoC还包括方向控制器,用于根据预设的算法控制可变通道的传输方向。如图4所示,方向控制器分别与公共节点120的路由器和通道节点210的路由器连接,公共节点120的路由器和通道节点210的路由器分别将待发送给对方的数据包的流量缓存在方向控制器,方向控制器根据预设的算法控制可变通道的传输方向,进而平衡数据传输的带宽。

由上可见,方向控制器可以根据网络流量情况动态调整可变通道的传输方向,从而提高了有效传输带宽。

另外,本发明实施例中的数据包至少携带有源节点的地址、目标节点的地址和该数据包的属性等信息。如图5所示,通过复用和定义数据包的格式,数据包可以携带以下信息:

1、包类型(Flit Type);

2、包属性(Packet Type),如重要数据、紧急数据、实时数据或一般数据等,进一步地,可以通过预设的数值表示各种属性,例如:4’b0000表示一般数据,4’b0001表示重要数据,4’b0010表示紧急数据,4’b0011表示实时数据;

3、源节点的地址(Src_addr);

4、目的节点的地址(DST_addr);

5、子网络号(Subnet_ID),包括源节点所属子网络好和目的节点所属子网络号;

6、包长度(Length)。

可选地,公共节点120在转发数据包时的具体操作可以是:接收其所属的子网络中的源节点发送的数据包;根据数据包携带的源节点的地址和目标节点的地址,判断源节点和目标节点是否处于不同的子网络且两者之间的距离大于预设的距离值;若是,则将该数据包转发至通道节点210。应理解地,在源节点和目的节点在同一子网络时,或在源节点和目的节点之间的距离非常短时,可以直接传输数据包,无需通过“快速通道”来传输,从而减小公共节点的负荷,提升网络路径的利用率。其中,上述预设的距离值可以由设计人员设定,这里不作具体限定。作为一个可选的实施方式,若子网络中的各个普通节点110与公共节点120之间的平均距离为2Hop,其中,Hop表示两个节点之间相隔的节点数,则可以将上述距离值设定为4Hop。

又可选地,公共节点120在转发数据包时的具体操作还可以是:接收其所 属的子网络中的源节点发送的数据包;判断数据包的属性是否为重要数据、紧急数据或实时数据;若是,则将该数据包转发至通道节点210。原因在于,重要数据、紧急数据或实时数据的优先级较高,这类数据应当通过“快速通道”来传输,以提高传输速率。

由上可见,公共节点120可以通过数据包携带的信息决策传输方式,可以达到更好地处理突发性强、实时性强和重要数据传输的目的。

图6是本发明实施例中的一种方向控制的方法的流程示意图,该方法具体描述了方向控制器根据预设的算法控制可变通道的传输方向的过程。如图所示包括:

S101,初始化。

具体地,方向控制模块先执行初始化操作。例如,对缓存的数据进行复位清空。

S102,获取在所述连接通道的第一方向上待传输的数据包的流量,以及获取在所述连接通道的第一方向上待传输的数据包的流量。

其中,第一方向和第二方向互为逆方向。如图4所示,假设第一方向为水平向右的方向,则第二方向为水平向左的方向。

S103,比较所述第一方向上待传输的数据包的流量与所述第二方向上待传输的数据包的流量的大小。

具体地,方向控制器在确定第一方向上待传输的数据包的流量大于第二方向上待传输的数据包的流量时,执行步骤S104;在确定第一方向上待传输的数据包的流量等于第二方向上待传输的数据包的流量时,执行步骤S105;在确定第一方向上待传输的数据包的流量小于第二方向上待传输的数据包的流量时,执行步骤S106。

S104,控制所述可变通道的传输方向为所述第一方向。

应理解地,由于第一方向上待传输的数据包的流量大于第二方向上待传输的数据包的流量,为了提高传输速率,应当增多在第一方向上的传输通道以提高该方向的传输带宽,因此方向控制器控制可变通道的传输方向为第一方向。

S105,控制所述可变通道的传输方向不变。

S106,控制所述可变通道的传输方向为所述第二方向。

同理地,由于第二方向上待传输的数据包的流量大于第一方向上待传输的数据包的流量,为了提高传输速率,应当增多在第二方向上的传输通道以提高该方向的传输带宽,因此方向控制器控制可变通道的传输方向为第二方向。

进一步地,方向控制器在确定了可变通道的传输方向后,公共节点120和通道节点210相互传输数据包,在传输完毕后,方向控制器再次执行步骤S102,以同样的方式传输后面的数据包。

图7是本发明实施例中的一种数据传输的方法的流程示意图,该方法方法应用于片上网络NoC,所述NoC包括第一网络层、第二网络层和连接通道,所述第一网络层被划分为多个子网络,每个所述子网络包括多个普通节点和一个公共节点,所述第二网络层包括多个通道节点,所述公共节点通过所述连接通道与所述通道节点连接。如图所示包括:

S201,第一普通节点向其所属的子网络中的第一公共节点发送数据包。

如图2所示,假设第一普通节点的编号为15,则第一普通节点将数据包发送至编号为24的第一公共节点。

S202,第一公共节点接收第一普通节点发送的数据包并转发至通道节点。

其中,本发明实施例中的数据包至少携带有第一普通节点的地址、第二普通节点的地址和该数据包的属性等信息。如图5所示,通过复用和定义数据包的格式,数据包可以携带以下信息:

1、包类型(Flit Type);

2、包属性(Packet Type),如重要数据、紧急数据、实时数据或一般数据等,进一步地,可以通过预设的数值表示各种属性,例如:4’b0000表示一般数据,4’b0001表示重要数据,4’b0010表示紧急数据,4’b0011表示实时数据;

3、源节点的地址(Src_addr),即第一普通节点的地址;

4、目的节点的地址(DST_addr),即第二普通节点的地址;

5、子网络号(Subnet_ID),包括源节点所属子网络好和目的节点所属子网络号;

6、包长度(Length)。

可选地,第一公共节点接收所述第一普通节点发送的数据包并转发至通道节点的具体操作可以是:第一公共节点接收第一普通节点发送的数据包;第一 公共节点根据数据包携带的第一普通节点的地址和第二普通节点的地址,判断第一普通节点和第二普通节点是否处于不同的子网络且两者之间的距离大于预设的距离值;第一公共节点在判定为是时,将该数据包转发至通道节点。应理解地,在第一普通节点和第二普通节点在同一子网络时,或在第一普通节点和第二普通节点之间的距离非常短时,可以直接传输数据包,无需通过“快速通道”来传输,从而减小公共节点的负荷,提升网络路径的利用率。其中,上述预设的距离值可以由设计人员设定,这里不作具体限定。作为一个可选的实施方式,若子网络中的各个普通节点110与公共节点120之间的平均距离为2Hop,其中,Hop表示两个节点之间相隔的节点数,则可以将上述距离值设定为4Hop。

又可选地,第一公共节点接收所述第一普通节点发送的数据包并转发至通道节点的具体操作还可以是:第一公共节点接收第一普通节点发送的数据包;第一公共节点判断数据包的属性是否为重要数据、紧急数据或实时数据;第一公共节点在判定为是时,将该数据包转发至通道节点。

原因在于,重要数据、紧急数据或实时数据的优先级较高,这类数据应当通过“快速通道”来传输,以提高传输速率。

S203,通道节点接收第一公共节点发送的数据包并转发至第二普通节点所属的子网络中的第二公共节点。

如图2所示,假设第二普通节点的编号为60,则通道节点将数据包发送至编号为51的第二公共节点。

S204,第二公共节点接收通道节点发送的数据包并转发至第二普通节点。

如图2所示,编号为51的第二公共节点最终将数据包发送至编号为60的第二普通节点。

本发明实施例中的NoC,包括第一网络层、第二网络层和连接通道,第一网络层被划分为多个子网络,每个子网络包括多个普通节点和一个公共节点,第二网络层包括多个通道节点,公共节点通过连接通道与通道节点连接,普通节点可以通过所属子网络中的公共节点、连接通道、通道节点和其它子网络中的公共节点与其它子网络中的普通节点进行数据传输,从而解决NoC拥塞的问题,提高数据传输效率,并且具有开销小和功耗低的优点。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1