一种片上通信网络死锁避免方法,其特征在于:定义片上通信网络的规模为N*M的拓扑结构,由N*M个路由器组成;以通信网络左下角路由器为原点,水平向右为x轴正方向,竖直向上为y轴正方向;所述N为通信网络x轴路由器数量,所述M为通信网络y轴路由器数量,其中N和M的取值都是正整数;所述路由器根据其在通信网络中位置的不同使用唯一的标号,所述标号为自然数,从位于原点的路由器开始沿着x轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在x轴方向递增,到第N*M个路由器结束;所述通信网络由向上通信子网和向下通信子网组成,所述向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;所述向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号;所述分组数据由头微片、体微片和尾微片组成,所述头微片表示分组数据开始,包括虚信道号和目标地址,数量为k个,k的取值为正整数;所述体微片表示所需传输的数据载荷;所述尾微片表示分组数据结束;当源路由器接受来自输入端口的分组数据后,从分组数据的头微片中提取目的路由器信息,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网;在中间路由器,分组数据从输入端口输入后,根据头微片所携带的虚信道号存入相应的虚信道,并且提取目的地址;中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口,从而传输分组数据到达目的地址。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种片上网络通信死锁避免方法、路由器及通信网络,通过网络分层的方法来减少网络中多个多播分组发生多播死锁的概率,在单个通信子网内,多播分组最多发往2个输出端口,多播分组间产生多播死锁概率大大降低。另一方面当多播树建立过程中形成死锁时,缓存发生死锁的多播分组,同时改变其他多播分组传输路径为水平方向,促使网络从死锁中恢复过来。本专利技术具有通信效率较高,且路由器结构简单、设计面积低的优点。【专利说明】片上网络通信死锁避免方法、路由器及通信网络
本专利技术涉及网络通信
,特别涉及一种基于树的片上网络通信死锁避免方法、路由器及通信网络。
技术介绍
随着集成电路工艺的发展,硅片上集成数十亿晶体管已成为现实,处理器步入多核时代。多核处理器将多个知识产权(IP, Intellectual Property)核集成在同一块芯片上构成片上系统(SoC, System on Chip)。由于总线结构技术成熟易实现,片上系统基本都采用总线结构实现IP核之间的通信。然而随着IP核数目的增加,总线结构资源利用率低、时钟同步困难、时钟树功耗大、可扩展性差、可重用性差等缺点也越发突出。为了克服总线的不足,一种新型片上通信模式-片上网络(NoC, Network on Chip)应运而生。片上网络将计算机网络中的并行通信思想引入到片上系统设计中。路由器之间通过点到点双工链路互连组成并行通信网络;IP核通过网络接口接入到网络中;IP核之间通过并行通信网络实现数据传输。片上网络的出现有效的增加了片上系统带宽、降低面积与功耗的开销、提升了重用设计的水平、降低了设计复杂度。应用的发展使得多播通信以及广播通信在片上系统当中变得越来越普遍。例如在缓存一致性存储系统当中,系统共享缓存当中的数据信息需要与IP核私有缓存当中的数据保持一致,当共享缓存当中的数据变化时就需要向各个相关IP核发送缓存一致性请求。在该系统当中,多播通信的比例高达12.4%。然而传统的片上网络设计当中往往只考虑单播通信,很少考虑多播通信。这是由于多播通信的引入使得片上通信关系变得更加复杂,多播通信的比例以及一个源节点对应的目的节点数目(目的节点集)的增加会大大增加网络通信量,而有限的片上网络资源使得网络更加容易饱和。另外,多播目的节点集合的变化也会使得网络更加容易出现网络流量不均衡、平均链路利用率低下等问题。因此,如果直接将传统的单播片上网络运用于多播通信,网络性能将急剧下降。但是,与多次单播的通信方式相t匕,采用多播通信方式能够大幅提高网络的通信性能,降低系统功耗。因此,设计一种能较好地支持片上多播通信的片上网络是很有必要的。目前主要有两种常见的多播路由方式实现多播通信:基于路径的路由方式和基于树的路由方式。在基于路径的路由方式中,多播分组以一种最节省网络带宽资源的方式依次访问各个目的节点。源节点在发送数据之前需要将多个目的节点地址依照访问的顺序依次排列。这种方式会占用较多的资源并带来较大的排序时延,而片上网络有着更为严格的面积时延约束,采用这种实现方式并不现实。在基于树的多播通信方式中,多播分组根据多个目的节点地址将沿着尽可能远的共同路径进行传播,并在通往不同目的节点集的信道分支节点处复制多播分组并转发出去,直至转发到各个目的节点,可以生成从源节点到多个目的节点的具有最短路径、最小开销的多播树。这种方式能够减少多播分组在网络当中的复制次数和相同数据对网络资源的竞争,从而减少网络流量,避免网络拥塞。但是,由于在多播分组的传输过程中,需要建立一棵从源节点到各个目的节点的多播树,当多个多播分组需要使用相同的网络资源,在占用部分资源的同时请求其他多播分组占用的资源时会形成较为严重的多播死锁。如何解决基于树的多播通信中复杂的多播死锁成为设计多播片上网络的关键。使用基于树的多播通信方式主要有两种实现方案:1、在数据传输之前建立从源节点到目的节点的多播树,数据传输之后再将建立的多播树释放;在该方法在多播树的建立阶段会消耗较大的时延,并且维持较大的针对各个多播树的查找表也会消耗较大的缓存空间,并且也回避了多播树建立过程中产生的多播死锁问题;2、使用单虚信道虫孔交换的方式,多播分组顺着头微片建立的通道顺序传输;多播分组之间通过标号的形式进行区分,分组标号在中间路由器传输时进行更新。但是,由于标号的有限性该方案只能缓解多播死锁,不能避免死锁的产生。
技术实现思路
本专利技术提出一种基于树的片上网络通信死锁避免方法、路由器及通信网络,目的在于解决使用单虚信道虫孔交换方式实现基于树的多播通信中如何避免死锁出现的问题。根据本专利技术的第一方面,本专利技术提供一种片上网络通信死锁避免方法,包括:定义片上网络的规模为N*M的拓扑结构,由N*M个路由器组成;以网络左下角路由器为原点,水平向右为X轴正方向,竖直向上为y轴正方向;其中,N为网络X轴路由器数量,Μ为网络y轴路由器数量,N和Μ的取值都是正整数;路由器根据其在通信网络中位置的不同使用唯一且连续的标号,标号为自然数,从位于原点的路由器开始沿着X轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在X轴方向递增,到第N*M个路由器结束;通信网络由向上通信子网和向下通信子网组成,向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号;分组数据由头微片、体微片和尾微片组成,所述头微片表示分组数据开始,包括虚信道号和目标地址;所述体微片表示所需传输的数据载荷;所述尾微片表示分组数据结束;当源路由器接受来自本地输入端口的包含头微片的分组数据后,提取目的路由器信息,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网;在中间路由器,分组数据从水平输入端口或垂直输入端口输入后,根据头微片所携带的虚信道号存入相应的虚信道,并且提取目的地址;中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口,从而传输分组数据到达目的地址。根据本专利技术的第二方面,本专利技术提供一种应用本专利技术第一方面提供方法的路由器,包括上子路由器和下子路由器;上子路由器用于处理网络中向上传输的数据流量;下子路由器用于处理网络中向下传输的数据流量;上子路由器或下子路由器都由输入端口模块、开关仲裁器、交叉开关和输出端口模块组成;输入端口模块由水平方向输入端口模块、竖直方向输入端口模块和本地方向输入端口模块组成,用于缓存数据信息,控制数据输出端口方向,和向开关仲裁发送输出请求;开关仲裁器用于解决多个输入端口虚信道对单个输出端口的竞争;交叉开关用于从输入端口模块到输出端口模块的数据通路;输出端口模块由水平方向输出端口模块,竖直方向输出端口模块和输出非本地数据端口模块组成,用于为分组分配一个可用的下一路由器输入虚信道,同时对输出数据更新。根据本专利技术的第三方面,本专利技术提供一种应用本专利技术第二方面提供的路由器的通信网络,由至少两个路由器组成,其特征在于:上子路由器相互信号连接构成向上通信子网,连接方式为局域网、广域网或城域网;下子路由器相互信号连接构成向下通信子网,连接方式为局域网、广域网或城域网。本专利技术通本文档来自技高网...
【技术保护点】
一种片上通信网络死锁避免方法,其特征在于:定义片上通信网络的规模为N*M的拓扑结构,由N*M个路由器组成;以通信网络左下角路由器为原点,水平向右为x轴正方向,竖直向上为y轴正方向;所述N为通信网络x轴路由器数量,所述M为通信网络y轴路由器数量,其中N和M的取值都是正整数;所述路由器根据其在通信网络中位置的不同使用唯一的标号,所述标号为自然数,从位于原点的路由器开始沿着x轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在x轴方向递增,到第N*M个路由器结束;所述通信网络由向上通信子网和向下通信子网组成,所述向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;所述向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号;所述分组数据由头微片、体微片和尾微片组成,所述头微片表示分组数据开始,包括虚信道号和目标地址,数量为k个,k的取值为正整数;所述体微片表示所需传输的数据载荷;所述尾微片表示分组数据结束;当源路由器接受来自输入端口的分组数据后,从分组数据的头微片中提取目的路由器信息,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网;在中间路由器,分组数据从输入端口输入后,根据头微片所携带的虚信道号存入相应的虚信道,并且提取目的地址;中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口,从而传输分组数据到达目的地址。...
【技术特征摘要】
【专利技术属性】
技术研发人员:郑国海,顾华玺,朱键,王铮,付希松,
申请(专利权)人:西安电子科技大学,香港中文大学深圳研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。