一种基于Mesh拓扑结构的片上网络通信方法与流程

文档序号:12477888阅读:1719来源:国知局
一种基于Mesh拓扑结构的片上网络通信方法与流程

本发明属于集成电路设计技术领域,具体为一种基于Mesh拓扑结构的片上网络通信方法(策略)。



背景技术:

自从片上网络(NoC)的概念被提出以来,人们对网络结构的研究持续推进,已经有各种各样的网络结构被纷纷提出,总体来说,片上网络的拓扑结构主要分为三类,分别是树状、星状和网格状。

树状网络基本结构如图1(a)所示,图中显示的网络包含16个计算节点和8个路由器,其中路由器分为父层和子层两部分,而计算节点作为叶节点连接在子层路由器上,这种结构最大的优点是硬件实现起来最为简单,成本很低,但是缺点也十分明显,对于父层和子层的路由器来说,其路由算法是不同的,不利于网络的可扩展性和可重用性,增加了设计的难度。

星状网络基本结构如图1(b)所示,这种结构的每个路由器都对应一个计算节点,其相邻两个节点的数据通信只需要一跳即可传输完成,而且位于中心的节点非常便于进行数据的广播,所以具有最好的通信效率,但这种结构只适用于节点个数较少的情况,当节点个数大于9个时,星状网络的面积利用率将非常低下,不利于硬件实现。

二维网格(Mesh)网络的基本结构如图1(c)所示,是目前主流的片上网络架构。它的每个路由器对应一个计算节点,而每个路由器与其东西南北四个方向上的路由器相连,构成个网格状结构,每两个路由器之间的通信链路可以有多条,实际通信中可以通过高效的路由算法找到当前最为空闲的数据通路进行通信,从而提高了通信效率,同时这种结构的可扩展性高,可以方便地构造M×N个节点的网络,而且网络形状非常规则,有利于硬件版图的实现。本发明即是在二维网格的基础上,采用包交换的通信方式,实现二位片上网络的通信策略。



技术实现要素:

本发明的目的是针对并行GPDT算法而设计一种基于Mesh结构的片上网络通信方法(策略)。

并行GPDT算法中,需要传输的数据是一个矩阵的若干片段,可以称之为数据块。这些数据块需要按某种顺序进行拼接或者进行累加才组成总的矩阵。片上网络结构中将处理器分为主核和子核两种类型,其中,主核负责计算本核分配到的那部分数据,还负责接收其他子核的计算结果,并对结果进行拼接或累加从而得到总矩阵。总矩阵首先需要通过“广播”的方式同步到其他子核当中,再进行接下来的运算。

本发明提出的基于Mesh拓扑结构的片上网络通信方法,包括:由主核向各个子核通信的广播方法,由各个子核向主核通信的点对点方法;片上网络通信采用包交换的数据传输方式;其中:

一、由主核向各个子核通信的广播方法,对于一个N×N的2D Mesh网络,以中心的一个核称为主核,以其周围的核称为子核,该主核按照一定的路由算法分别向各个子核由近及远传播数据;该路由算法为:①以主核为原点,其数据向其左上方和右下方传播时,先沿x方向再沿y方向,最终到达目标核(子核);②以主核为原点,向其右上方和左下方传播时,先沿y方向再沿x方向,最终到达目标核(子核);

二、由各个子核向主核通信的点对点方法,对于一个N×N的2D Mesh网络,以中心的一个核称为主核,以其周围的核称为子核,由各个子核按照一定的路由算法分别向与其相邻的子核传播数据并最终汇总到主核;该路由算法为:①以主核为原点,其左上方和右下方的子核数据向主核传播时,先沿x方向再沿y方向,最终到达目标核(主核);②以主核为原点,其右上方和左下方的子核数据向主核传播时,先沿y方向再沿x方向,最终到达目标核(主核);

三、包交换的数据传输方式,待传输的数据是一系列32bit的数据组成的数据包,数据包的结构设计为:head表示包头,recv[i]表示发送的数据中每个数据块的长度,disp[i]表示每个数据块在原矩阵中的起始位置,data[i]表示数据块的内容。

包头位于数据包的起始位置,包头指定数据包的各种基本信息。分为若干不同的区段,包括length、numSlice、destY、destX、multicast、reserved;其中,length表示数据包的长度(不包含包头),numSlice表示数据块的个数,destX和destY分别是目标节点的横坐标和纵坐标(以主核为原点),multcast表示是否广播,值为1表示广播,值为0表示点对点传输,reserved是保留位。

例如,31位~18位是length位,17位~12位是numSlice位,11位~9位和8位~6位分别是destY和destX位;5位是multicast位,4位~0位是保留位,尚未使用。

广播过程是实现并行GPDT算法中通信开销最大的通信任务,为了减少广播通信延时,本发明将主核放置在Mesh网络的中心位置,使其到达其他子核的平均距离最短;同时本发明还设计了相对平衡的广播通信机制,如图2(a)所示,以25核为例的广播通信链路。以主核为原点,主核向其左上方和右下方广播数据时,先沿x方向到达与目标核x坐标相同的位置,再沿y方向最终到达目标核。主核向其右上方和左下方广播数据时,先沿y方向到达与目标核y坐标相同的位置,再沿x方向最终到达目标核。

点对点传输所占用的通信链路,如图2(b)所示,每个子核只向其相邻的子核或主核发送数据,通过与广播链路相反的方向将数据一次传输到主核。某些子核还承担了部分数据汇总的任务,不仅可以减轻主核的工作负担,还进一步减少了通信数据量,降低了通信阻塞概率的发生。

采用包交换的数据传输方式,在一条链路上可以提供多个数据通路,大大提高数据的传输效率。

附图说明

图1片上网络主要拓扑结构。其中,(a)树状,(b)星状,(c)网格状。

图2 广播和点对点传输的通信链路(5×5 Mesh)。其中,(a)为广播的通信链路,(b)为点对点传输的通信链路。

图3 数据包的结构。

图4 数据包包头的结构。

图5 点对点传输不同位置的核接收到的数据块个数(优化前)。

图6 点对点传输不同位置的核接收到的数据块个数(优化后)。

具体实施方式

下面结合附图,对本发明作进一步的描述。

首先,广播过程是实现并行GPDT算法中通信开销最大的通信任务,为了减少广播过程中的通信延时,本发明将主核放置在二维Mesh网络的中心位置,其他子核放置在其周围,使得主核到达其他子核的平均距离最短,最重要的是本发明设计了相对平衡的广播通信机制,以25核的Mesh网络为例如图2(a),这种机制具体实现方式如下:

以主核为坐标原点,穿过主核的相互垂直且平行于Mesh网络的相邻两条边的线分别为x轴和y轴,为该坐标系中的所有核设置坐标(x0,y0).如果目标核的坐标x0<0,y0≥0或x0>0,y0≤0,那么广播数据时从坐标原点(0,0)出发,先沿x方向到达(x0,0),再沿y方向到达(x0,y0);如果目标核的坐标x0<0,y0≤0或x0>0,y0≥0,那么广播数据时从坐标原点(0,0)出发,先沿y方向到达(0,y0),再沿x方向到达(x0,y0)。

接着,点对点传输所占用的通信链路如图2(b)所示,每个子核只向与其相邻的核发送数据,与本地的数据累加之后,再依次传输到主核,不仅减少通信数据量,还能减轻主核的工作负担。仍然以广播时的坐标系为点对点传输的坐标系,假设要发送数据的子核的坐标为(x0,y0)。如果发送数据核的坐标x0<0,y0≥0或x0>0,y0≤0,那么点对点传输数据时从(x0,y0)出发,先沿x方向到达(x0+1,y0)或(x0-1,y0)核,在该核处与本地数据一起进行处理(累加操作),重复该过程直至到达(0,y0),再沿y方向重复上述过程直至到达主核(0,0);如果发送数据核的坐标x0<0,y0≤0或x0>0,y0≥0,那么点对点传输数据时从(x0,y0)出发,先沿y方向到达(x0,y0+1)或(x0,y0-1),在该核处与本地数据一起进行处理,重复该过程直至到达(x0,0),再沿x方向重复上述过程直至到达主核(0,0)。

本发明用到的通信方式为包交换。包交换是把由二进制数据表示的信息,分组为若干个长度相同的包,在每个包中添加地址信息和控制信息,在网络中以“存储-转发”的方式传输,即电路一旦空闲开始传输,不会占用固定的信道,被称为是无连接的方式,在一条链路上可以提供多个数据通路,大大提高数据传输效率。

待传输的数据是由32bit的数据组成的数据包,数据包的结构如图3所示,数据包中head表示包头,包含了数据包的地址信息和控制信息,recv[i]表示发送的数据中每个数据块的长度,disp[i]表示每个数据块在原矩阵中的起始位置,data[i]表示数据块的具体内容。其中,包头的结构如图4所示,length表示数据包的长度,numSlice表示数据块的个数;destY表示目标节点的纵坐标,destX表示目标节点的横坐标;multicast表示是否广播,广播时multicast置为1,点对点时,multicast置为0;reserved为保留位。

由图5可以看出,点对点传输时,子核越靠近主核发送的数据越多,通信量越大,在并行GPDT算法中存在两种不同类型的数据汇总行为(矩阵拼接和矩阵累加),为了减少整个并行GPDT的工作时间,除了将计算任务分配到多核上之外,也将矩阵拼接和累加的操作划分到多核上,不但减少了主核的工作量,也大大减少通信数据量,优化后的通信数据量如图6所示。

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