CN103729331B - 片上网络通信死锁避免方法、路由器及通信网络 - Google Patents
片上网络通信死锁避免方法、路由器及通信网络 Download PDFInfo
- Publication number
- CN103729331B CN103729331B CN201310618876.8A CN201310618876A CN103729331B CN 103729331 B CN103729331 B CN 103729331B CN 201310618876 A CN201310618876 A CN 201310618876A CN 103729331 B CN103729331 B CN 103729331B
- Authority
- CN
- China
- Prior art keywords
- router
- microplate
- data
- communication
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种片上网络通信死锁避免方法、路由器及通信网络,通过网络分层的方法来减少网络中多个多播分组发生多播死锁的概率,在单个通信子网内,多播分组最多发往2个输出端口,多播分组间产生多播死锁概率大大降低。另一方面当多播树建立过程中形成死锁时,缓存发生死锁的多播分组,同时改变其他多播分组传输路径为水平方向,促使网络从死锁中恢复过来。本发明具有通信效率较高,且路由器结构简单、设计面积低的优点。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种基于树的片上网络通信死锁避免方法、路由器及通信网络。
背景技术
随着集成电路工艺的发展,硅片上集成数十亿晶体管已成为现实,处理器步入多核时代。多核处理器将多个知识产权 (IP, Intellectual Property) 核集成在同一块芯片上构成片上系统 (SoC, System on Chip)。由于总线结构技术成熟易实现,片上系统基本都采用总线结构实现IP核之间的通信。然而随着IP核数目的增加,总线结构资源利用率低、时钟同步困难、时钟树功耗大、可扩展性差、可重用性差等缺点也越发突出。为了克服总线的不足,一种新型片上通信模式——片上网络(NoC, Network on Chip)应运而生。片上网络将计算机网络中的并行通信思想引入到片上系统设计中。路由器之间通过点到点双工链路互连组成并行通信网络;IP核通过网络接口接入到网络中;IP核之间通过并行通信网络实现数据传输。片上网络的出现有效的增加了片上系统带宽、降低面积与功耗的开销、提升了重用设计的水平、降低了设计复杂度。
应用的发展使得多播通信以及广播通信在片上系统当中变得越来越普遍。例如在缓存一致性存储系统当中,系统共享缓存当中的数据信息需要与IP核私有缓存当中的数据保持一致,当共享缓存当中的数据变化时就需要向各个相关IP核发送缓存一致性请求。在该系统当中,多播通信的比例高达12.4%。然而传统的片上网络设计当中往往只考虑单播通信,很少考虑多播通信。这是由于多播通信的引入使得片上通信关系变得更加复杂,多播通信的比例以及一个源节点对应的目的节点数目(目的节点集)的增加会大大增加网络通信量,而有限的片上网络资源使得网络更加容易饱和。另外,多播目的节点集合的变化也会使得网络更加容易出现网络流量不均衡、平均链路利用率低下等问题。因此,如果直接将传统的单播片上网络运用于多播通信,网络性能将急剧下降。但是,与多次单播的通信方式相比,采用多播通信方式能够大幅提高网络的通信性能,降低系统功耗。因此,设计一种能较好地支持片上多播通信的片上网络是很有必要的。
目前主要有两种常见的多播路由方式实现多播通信:基于路径的路由方式和基于树的路由方式。在基于路径的路由方式中,多播分组以一种最节省网络带宽资源的方式依次访问各个目的节点。源节点在发送数据之前需要将多个目的节点地址依照访问的顺序依次排列。这种方式会占用较多的资源并带来较大的排序时延,而片上网络有着更为严格的面积时延约束,采用这种实现方式并不现实。在基于树的多播通信方式中,多播分组根据多个目的节点地址将沿着尽可能远的共同路径进行传播,并在通往不同目的节点集的信道分支节点处复制多播分组并转发出去,直至转发到各个目的节点,可以生成从源节点到多个目的节点的具有最短路径、最小开销的多播树。这种方式能够减少多播分组在网络当中的复制次数和相同数据对网络资源的竞争,从而减少网络流量,避免网络拥塞。但是,由于在多播分组的传输过程中,需要建立一棵从源节点到各个目的节点的多播树,当多个多播分组需要使用相同的网络资源,在占用部分资源的同时请求其他多播分组占用的资源时会形成较为严重的多播死锁。如何解决基于树的多播通信中复杂的多播死锁成为设计多播片上网络的关键。
使用基于树的多播通信方式主要有两种实现方案:1、在数据传输之前建立从源节点到目的节点的多播树,数据传输之后再将建立的多播树释放;在该方法在多播树的建立阶段会消耗较大的时延,并且维持较大的针对各个多播树的查找表也会消耗较大的缓存空间,并且也回避了多播树建立过程中产生的多播死锁问题;2、使用单虚信道虫孔交换的方式,多播分组顺着头微片建立的通道顺序传输;多播分组之间通过标号的形式进行区分,分组标号在中间路由器传输时进行更新。但是,由于标号的有限性该方案只能缓解多播死锁,不能避免死锁的产生。
发明内容
本发明提出一种基于树的片上网络通信死锁避免方法、路由器及通信网络,目的在于解决使用单虚信道虫孔交换方式实现基于树的多播通信中如何避免死锁出现的问题。
根据本发明的第一方面,本发明提供一种片上网络通信死锁避免方法,包括:
定义片上网络的规模为N*M的拓扑结构,由N*M个路由器组成;以网络左下角路由器为原点,水平向右为x轴正方向,竖直向上为y轴正方向;其中,N为网络x轴路由器数量, M为网络y轴路由器数量, N和M的取值都是正整数;
路由器根据其在通信网络中位置的不同使用唯一且连续的标号,标号为自然数,从位于原点的路由器开始沿着x轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在x轴方向递增,到第N*M个路由器结束;
通信网络由向上通信子网和向下通信子网组成,向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号;分组数据由头微片、体微片和尾微片组成,所述头微片表示分组数据开始,包括虚信道号和目标地址;所述体微片表示所需传输的数据载荷;所述尾微片表示分组数据结束;
当源路由器接受来自本地输入端口的包含头微片的分组数据后,提取目的路由器信息,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网;在中间路由器,分组数据从水平输入端口或垂直输入端口输入后,根据头微片所携带的虚信道号存入相应的虚信道,并且提取目的地址;中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口,从而传输分组数据到达目的地址。
根据本发明的第二方面,本发明提供一种应用本发明第一方面提供方法的路由器,包括上子路由器和下子路由器;
上子路由器用于处理网络中向上传输的数据流量;
下子路由器用于处理网络中向下传输的数据流量;
上子路由器或下子路由器都由输入端口模块、开关仲裁器、交叉开关和输出端口模块组成;
输入端口模块由水平方向输入端口模块、竖直方向输入端口模块和本地方向输入端口模块组成,用于缓存数据信息,控制数据输出端口方向,和向开关仲裁发送输出请求;
开关仲裁器用于解决多个输入端口虚信道对单个输出端口的竞争;
交叉开关用于从输入端口模块到输出端口模块的数据通路;
输出端口模块由水平方向输出端口模块,竖直方向输出端口模块和输出非本地数据端口模块组成,用于为分组分配一个可用的下一路由器输入虚信道,同时对输出数据更新。
根据本发明的第三方面,本发明提供一种应用本发明第二方面提供的路由器的通信网络,由至少两个路由器组成,其特征在于:
上子路由器相互信号连接构成向上通信子网,连接方式为局域网、广域网或城域网;下子路由器相互信号连接构成向下通信子网,连接方式为局域网、广域网或城域网。
本发明通过网络分层的方法来减少网络中多个分组数据发生死锁的概率,由于在源路由器,分组数据流量根据其流量目的路由器与源路由器的位置关系分为向上传输的流量和向下传输的流量。在单个通信子网内,分组数据最多发往2个输出端口,分组数据间产生多播死锁概率大大降低。
附图说明
图1为本发明实施例的片上通信网络系统示意图;
图2为本发明实施例的片上网络路由器中传输分组的格式;
图3为本发明实施例的子路由器结构;
图4为本发明实施例的路由算法流程图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本实施例采用4*4网络拓扑结构,请参考图1。在其他实施方式中,只要采用N*M的网络拓扑结构即可,其中N、M都是正整数,而且N与M之间没有大小限制,可以相同,亦可以不同,如3*8,7*5,11*1等。网络中多播通信采用基于树的方式,使用虫孔交换的方式实现。多播分组之间通过标号的形式进行区分,标号的编排规则为:以网络左下角路由器为原点,水平向右为x轴正方向,竖直向上为y轴正方向;路由器根据其在通信网络中位置的不同使用唯一的自然数标号,优选为唯一且连续的自然数标号,如0、1、2、3;从位于原点的路由器开始沿着x轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在x轴方向递增,到第N*M个路由器结束。譬如在图1的4*4网络拓扑结构中,第一行的标号沿x轴正方向依次为0、1、2、3,到达第一行的边界路由器3后沿y轴正方向递增一次,沿x轴负方向依次标号为4、5、6、7,到达第二行的边界路由器7后沿y轴正方向递增一次,沿x轴正方向依次标号为8、9、10、11,以此类推。这里的第一行、第二行等仅是为了方便说明,不具有实质意义。
每个路由器均由上子路由器和下子路由器组成,上子路由器用于向上传输数据,下子路由器用于向下传输数据。所有上子路由器相互连接组成向上通信子网,在该通信子网中仅允许传输目的路由器节点标号大于数据所在路由器节点标号的数据。所有下子路由器相互连接组成向下通信子网,在该通信子网中仅允许传输目的路由器节点标号小于数据所在路由器节点标号的数据。路由器之间的连接可通过局域网(LAN)连接或广域网(WAN)连接等。由于路由器采用S形的标号方式,网络中存在4种不同的路由器,分别是I型向左传输子路由器,I型向右传输子路由器,II型向左传输子路由器,II型向右传输子路由器。这些子路由器在传输方向上存在差别,在结构上可以是完全相同,或者端口数量存在差别。也因此可以得知,属于同一通信子网的子路由器在相邻行x轴方向上通信方向相反,譬如图1中第一行的I型向左传输子路由器与第二行的I型向右传输子路由器同属于向上通信子网,但是I型向右传输子路由器的传输方向只能是沿X轴正方向,I型向左传输子路由器的传输方向只能是沿X轴负方向。现有技术中,多个多播分组在其通信过程中需要占用不同的通信链路及端口,从而导致多播死锁。而本发明通过网络分层的方法,使得多播分组在传输过程中在同一路由器节点最多占用2个相邻方向输出端口,从而大大降低多播死锁发生的概率。采用将一个路由器分解为两个子路由器的设计方法,一方面减少了死锁发生的概率,另一方面也缩小了路由器设计面积。
在采用虫孔路由技术的网络中,分组数据被切分为若干微片,请参照图2,单个分组数据由头微片、体微片及尾微片组成。头微片包含微片类型、虚信道号、源地址、目的地址等数据,数量为k个,k的取值为正整数,例如1、2、3等;体微片包含微片类型、虚信道号、载荷等数据;尾微片包含微片类型、虚信道号、载荷等数据。在本实施例中,所有微片大小为32位数据。在其他实施方式中,微片大小亦可以为其他位数的数据,譬如64位数据或是128位数据。在本实施例的头微片中,32位数据分别是2位的微片类型域、2位虚信道号域、4位源地址域、4位目的地址域,剩余的20位用于后续扩展。在其他的实施方式中,32位数据可以采取不同的位数划分,譬如32位数据分别是1位的微片类型域、2位虚信道号域、4位源地址域、4位目的地址域,剩余的21位用于后续扩展。采用不同数值来表明微片类型,在本实施例中,当微片类型为10时表示该微片为头微片,当微片类型为11时表示体微片,当微片类型为01时表示尾微片。在其他实施方式中,微片类型亦可以用其他数字代替,只要头微片、体微片、尾微片分别采用不同的数字表示即可,譬如可以采用当微片类型为01时表示该微片为头微片,当微片类型为02时表示体微片,当微片类型为03时表示尾微片。由于片上网络采用虚信道的设计方法,需要专门的数据位来区分数据传输所使用的虚信道号,2位的虚信道号域可用于区分4个虚信道。4位源地址域和4位目的地址域分别用于传输分组从哪一源节点出发,要到达哪一目的节点。4位地址的表示方法为节点标号的二进制。体微片及尾微片格式一样,分别是2位微片类型域、2位虚信道号域、28位数据载荷。其中,数据载荷即为分组所需传输的数据信息。
参照图3,子路由器由输入端口模块、开关仲裁器、死锁控制模块、交叉开关和输出端口模块组成。输入端口模块用于缓存相邻路由器节点发来的数据信息,控制数据输出端口方向,并向开关仲裁发送输出请求,由水平输入端口101、垂直输入端口102和本地输入端口103组成;开关仲裁器用于解决多个输入端口虚信道对单个输出端口的竞争;死锁控制模块用于检测多播死锁及死锁发生时缓存发生阻塞的多播分组,控制其他输入端口多播路由方式,同时与其他路由器进行交互;交叉开关提供从输入端口模块到输出端口模块的数据通路;输出端口模块用于为头微片分配一个可用的下一路由器输入虚信道,同时对输出数据更新,由水平输出端口201、垂直输出端口202、本地输出端口203、204组成。
采用将一个路由器分解为两个子路由器的设计方法,与现有不采用子路由器的设计方法相比,在交叉开关及开关仲裁的设计方面大大降低了设计规模。为了降低网络发生阻塞的概率,输入端口模块设计有4个虚信道,采用子路由器的设计方法也能明显降低输入输出端口模块的虚信道管理开销。另外,相比经典虚信道路由器,子路由器的设计并没有使用虚信道仲裁模块来进行虚信道的管理,当头微片输入到子路由器输入端口时,如果有空闲的虚信道则允许该头微片输出,并在输出端口处随机地分配一个空闲的下一节点虚信道。移除传统设计方法中庞大的虚信道仲裁模块也从另一方面减少了子路由器的设计面积。
死锁控制模块具有三方面的作用,分别是检测、控制和恢复。首先它监视各输入端口虚信道缓存的空满状态,如果路由器一个方向的输出端口虚信道被一个缓存为空的输入端口占用同时被另一个缓存为满的输入端口虚信道请求,控制模块开始计时,计时达一定的时间时认为在该路由器节点发生多播死锁。该判断的依据是:若路由器发生多播死锁,占用输出端口虚信道的多播分组由于在多播路径的树形分支处因多播死锁不能传输,而在本地路由器其已经占用输出虚信道可以传输,所以该输入虚信道会产生指示缓存为空的信号;而同时另一争用该输出虚信道的多播分组在本地无法获得输出虚信道发生阻塞,所以该输入端口在本地路由器会产生缓存已满的指示信号。当这两个条件发生并等待一段时间,譬如60ms,之后即可判断在本地节点发送多播死锁。
死锁控制模块通过专用的死锁控制线与其他路由器交互,告知网络中有路由器发生多播死锁,收到该控制信息的路由器向其他相邻的路由器节点转发该控制信息的同时改变正在请求虚信道的多播分组的路由方式为水平方向,并进行计时。通过这种方式可以避免多播死锁进一步恶化。死锁控制模块在与其他路由器交互的同时使用专用缓存将阻塞的多播分组缓存下来。计时时间到之后,存储于死锁控制模块专用缓存的多播分组以正常方式进行路由转发,各个路由器计时达到一定时间以后也恢复正常的路由方式进行通信。计时时间可以是出厂设置,或是用户自行设置。
为了防止多播分组在输出路由器时产生多播输出死锁,针对每一非本地输入端口方向都有一个对应的发往本地的输出端口方向。
多播分组在网络中传输遵循如下步骤:
源路由器接受来自本地输入端口的头微片后首先提取其要发往的目的路由器信息,根据其要发往的目的路由器标号与源路由器标号的大小判断该头微片要发往上通信子网或者发往下通信子网;
在中间路由器,各个头微片从输入端口输入后首先根据其自身携带的虚信道号存入对应的虚信道。路由模块提取目的地址后根据路由算法确定该头微片要发往的输出端口,并且该输出端口方向会被记录下来以利于后续体微片及尾微片的传输,接着该头微片向开关仲裁器发送仲裁请求,当仲裁请求被允许时头微片经交叉开关从输入端口输出至输出端口。属于同一多播分组的头微片从输入端口输出时都会记录其发往的输出端口,以这种方式多播分组在中间路由器节点形成多播树结构;
体微片及尾微片紧跟头微片传输。当多个头微片在中间路由器发往不同的输出端口方向时,体微片及尾微片从输入端口输入后根据各个头微片输出时记录的输出端口方向向开关仲裁器发送仲裁请求,只有在该微片向所需的所有输出端口方向发送的请求都被允许时才能进行下一个微片的仲裁请求。当该微片仅有部分方向的请求被允许时,想被允许的输出端口方向发送一份微片的拷贝,开关仲裁在下一阶段继续进行该微片剩余输出端口方向的请求,直到所有输出方向的请求都被允许,这时输入端口中存储的数据被释放掉。
尾微片经过每一路由器节点后,释放分组占用的虚信道以及记录的输出端口方向等信息,多播分组传输过程结束。
由于本发明不需要建立从源节点到目的节点的固定传输链路,该方案不会产生基于建链的多播片上网络所具有的建链时延;另外,相比普通虫孔交换,在本发明中子路由器的设计过程中采用虚信道的设计方法,增加了多播通信效率,提高了时延吞吐性能。特别地,单播分组格式与多播分组格式一致,只是单播分组仅包含一个头微片,即k固定为1,因此本发明所设计的片上网络对于单播通信亦具有较好的兼容性。单播分组在该片上网络系统中的传输过程与经典虚信道路由器传输过程一致。
图 4为头微片在各个子路由器中传输的路由算法,具体步骤为:
S401:查看当前头微片所在的输入端口是否为本地输入端口,如果不是则执行步骤S403,如果是则执行步骤S402;
S402:比较当前路由器节点标号与目的路由器节点标号大小,如果该微片不属于当前子路由器所在的通信子网,则丢弃该微片;
如果属于则执行步骤S404;
S403:如果当前路由器节点即为该头微片的目的路由器节点,则选择属于该微片所在输入端口的本地输出端口,执行步骤S406;
S404:在当前路由器节点非边界节点的情况下,如果目的路由器节点与当前路由器节点位于同一行或者位于当前路由器节点所在列的x轴输出方向一侧的下一行,或者该头微片上次向y轴方向请求计时已满,则选择x轴输出端口,执行步骤S406;
如果非以上情况则执行步骤S405;
S405: 如果子路由器所在x轴方向输出端口未使用的虚信道比y轴方向输出端口未使用的虚信道少,或者子路由器位于边界节点上,则选择y轴方向输出端口,执行步骤S406;
S406:返回该头微片输出端口方向。
使用该路由算法,当路由器部分输出端口虚信道阻塞时可以选择较为空闲的输出端口输出。另外比较重要的是,当头微片要发往y轴方向的输出端口时,如果发明该方向输出端口长时间未得到响应,则可判断该头微片可能与属于其他分组的头微片发生多播死锁,该头微片可以改向x轴方向输出端口输出。由于多播分组在该路由器节点仅有x轴方向的输出路径,不会与其他多播分组传输冲突,这样可以彻底避免多播死锁的形成。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。
Claims (9)
1.一种片上通信网络死锁避免方法,其特征在于:
定义片上通信网络的规模为N*M的拓扑结构,由N*M个路由器组成;以通信网络左下角路由器为原点,水平向右为x轴正方向,竖直向上为y轴正方向;所述N为通信网络x轴路由器的最大编号,所述M为通信网络y轴路由器的最大编号,其中N和M的取值都是正整数;
所述路由器根据其在通信网络中位置的不同使用唯一的标号,所述标号为自然数,从位于原点的路由器开始沿着x轴正方向或者负方向顺序递增,到达边界路由器后沿y轴正方向递增一次后继续在x轴方向递增,到第N*M个路由器结束;
所述通信网络由向上通信子网和向下通信子网组成,所述向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;所述向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号;所述分组数据由头微片、体微片和尾微片组成,所述头微片表示分组数据开始,包括虚信道号和目标地址,数量为k个,k的取值为正整数;所述体微片表示所需传输的数据载荷;所述尾微片表示分组数据结束;
当源路由器接受来自输入端口的分组数据后,从分组数据的头微片中提取目的路由器信息,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网;在中间路由器,分组数据从输入端口输入后,根据头微片所携带的虚信道号存入相应的虚信道,并且提取目的地址;中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口,从而传输分组数据到达目的地址。
2.根据权利要求1所述方法,其特征在于:在所述中间路由器提取目的地址后根据路由算法确定该头微片所在的分组数据要发往的输出端口之后,所述尾微片经过每个子路由器节点时,在向所需输出的所有输出端口都发送一份拷贝之后,释放分组数据占用的虚信道。
3.根据权利要求2所述的方法,其特征在于:所述路由算法步骤为:
S1:查看当前头微片所在的输入端口是否为本地输入端口,如果不是则执行步骤S3,如果是则执行步骤S2;
S2:比较当前路由器节点标号与目的路由器节点标号大小,如果该头微片不属于当前子路由器所在的通信子网,则丢弃该头微片;
如果属于则执行步骤S4;
S3:如果当前路由器节点即为该头微片的目的路由器节点,则选择属于该头微片所在输入端口的本地输出端口,执行步骤S6;
S4:在当前路由器节点非边界节点的情况下,如果目的路由器节点与当前路由器节点位于同一行或者位于当前路由器节点所在列的x轴输出方向一侧的下一行,或者该头微片上次向y轴方向请求计时已满,则选择x轴输出端口,执行步骤S6;
如果非以上情况则执行步骤S5;
S5:如果子路由器所在x轴方向输出端口未使用的虚信道比y轴方向输出端口未使用的虚信道少,或者子路由器位于边界节点上,则选择y轴方向输出端口,执行步骤S6;
S6:返回该头微片输出端口方向。
4.根据权利要求3所述的方法,其特征在于:当所述头微片在片上网络传输数据过程中形成死锁,该头微片所在路由器的死锁控制模块将该头微片存储到专用缓存中,同时向通信网络中的其他路由器发出第一指令,所述第一指令为在传输分组数据时使用x轴方向唯一的路径进行传输;在特定时间之后,该头微片所在路由器的死锁控制模块向通信网络中的其他路由器发出第二指令,所述第二指令为取消在传输分组数据时使用x轴方向唯一的路径进行传输;所述死锁控制模块是用于降低死锁形成后对网络传输分组数据的影响。
5.根据权利要求4所述方法,其特征在于:所述死锁控制模块还用于检测死锁是否形成,具体包括:所述死锁控制模块监视各输入端口虚信道缓存的空满状态,如果子路由器一个方向的输出端口虚信道被一个缓存为空的输入端口虚信道占用同时被另一个缓存为满的输入端口虚信道请求,则开始计时,当计时超过预设值时,认为在该路由器节点发生多播死锁。
6.一种实现权利要求1所述片上通信网络死锁避免方法的路由器,其特征在于:包括上子路由器和下子路由器;
所述上子路由器用于处理通信网络中向上传输的数据流量;
所述下子路由器用于处理通信网络中向下传输的数据流量;
所述上子路由器或下子路由器都由输入端口、开关仲裁器、交叉开关和输出端口组成;
所述输入端口由水平方向输入端口、竖直方向输入端口和本地方向输入端口组成,用于缓存数据信息,控制数据输出端口方向,和向开关仲裁器发送输出请求,与开关仲裁器信号连接,与交叉开关硬件连接;
所述开关仲裁器用于解决多个输入端口虚信道对单个输出端口的竞争,与输入端口模块信号连接;
所述交叉开关用于从输入端口到输出端口的数据通路,与输入端口、输出端口分别硬件连接;
所述输出端口由水平方向输出端口,竖直方向输出端口和输出非本地数据端口组成,用于为分组数据分配一个可用的下一路由器输入虚信道,同时对输出数据更新,与交叉开关硬件连接;
所述通信网络由向上通信子网和向下通信子网组成,所述向上通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号大于数据所在路由器的标号;所述向下通信子网通过分组数据的方式传输通信数据,其中目标路由器的标号小于数据所在路由器的标号,根据目的路由器标号与源路由器标号的大小判断分组数据要发往的通信子网。
7.根据权利要求6所述的路由器,其特征在于:所述上子路由器和下子路由器还包括死锁控制模块,所述死锁控制模块用于降低死锁形成后对网络传输分组数据的影响,与输入端口信号连接。
8.根据权利要求7所述的路由器,其特征在于:所述死锁控制模块还用于检测死锁是否形成,具体包括:所述死锁控制模块监视各输入端口虚信道缓存的空满状态,如果子路由器一个方向的输出端口虚信道被一个缓存为空的输入端口虚信道占用同时被另一个缓存为满的输入端口虚信道请求,则开始计时,当计时超过预设值时,认为在该路由器发生多播死锁。
9.一种应用权利要求6-8任一项所述路由器组成的通信网络,所述路由器至少两个,其特征在于:
所述上子路由器相互信号连接构成向上通信子网,连接方式为局域网、广域网或城域网;
所述下子路由器相互信号连接构成向下通信子网,连接方式为局域网、广域网或城域网。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618876.8A CN103729331B (zh) | 2013-11-26 | 2013-11-26 | 片上网络通信死锁避免方法、路由器及通信网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310618876.8A CN103729331B (zh) | 2013-11-26 | 2013-11-26 | 片上网络通信死锁避免方法、路由器及通信网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729331A CN103729331A (zh) | 2014-04-16 |
CN103729331B true CN103729331B (zh) | 2019-04-12 |
Family
ID=50453410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310618876.8A Active CN103729331B (zh) | 2013-11-26 | 2013-11-26 | 片上网络通信死锁避免方法、路由器及通信网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729331B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577379B (zh) * | 2013-10-17 | 2016-04-13 | 中国人民解放军国防科学技术大学 | 一种检测片上网络中死锁的方法 |
CN104092615B (zh) * | 2014-06-10 | 2018-11-09 | 西安电子科技大学 | 具有网络编码功能的片上网络、网络拓扑结构和路由方法 |
WO2016033809A1 (zh) * | 2014-09-05 | 2016-03-10 | 华为技术有限公司 | 基于Mesh结构的点对多点通信方法及通信节点 |
CN104243326A (zh) * | 2014-09-11 | 2014-12-24 | 西安电子科技大学 | 片上网络多播分组断点绕路续传机制 |
CN105718379B (zh) * | 2015-07-29 | 2018-09-14 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统以及其中细胞间群发通信方法 |
CN106484725B (zh) * | 2015-08-31 | 2019-08-20 | 华为技术有限公司 | 一种数据处理方法、装置和系统 |
CN105871742B (zh) * | 2016-03-24 | 2018-12-21 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
CN108768898A (zh) * | 2018-04-03 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种片上网络传输报文的方法及其装置 |
CN109150732B (zh) * | 2018-09-27 | 2021-05-28 | 广东荣业食品有限公司 | 一种肉制品生产安监系统视频传输优化方法 |
CN112468392B (zh) * | 2020-10-21 | 2022-03-25 | 中山大学 | 一种处理多播流量死锁问题的片上网络及方法 |
CN113076282B (zh) * | 2021-04-21 | 2023-06-02 | 中国人民解放军国防科技大学 | 一种面向处理器片上网络的死锁处理方法 |
CN113419988B (zh) * | 2021-08-25 | 2022-01-11 | 杭州博雅鸿图视频技术有限公司 | 异构多核数据的传输方法、装置、设备及存储介质 |
CN114760255B (zh) * | 2022-03-31 | 2024-03-08 | 中国电子科技集团公司第五十八研究所 | 一种面向多裸芯互连的片上片间一体化网络无死锁架构 |
CN117951079A (zh) * | 2024-03-26 | 2024-04-30 | 新华三半导体技术有限公司 | 一种片上网络、芯片及芯片中数据传输方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333038A (zh) * | 2011-10-21 | 2012-01-25 | 上海交通大学 | 一种基于片上网络的无死锁路由方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420380B (zh) * | 2008-11-28 | 2012-11-14 | 西安邮电学院 | 一种双层双环型片上系统 |
CN101847168B (zh) * | 2010-04-09 | 2012-01-04 | 西安电子科技大学 | 基于规则拓扑库面向应用的片上网络生成方法 |
CN101834789B (zh) * | 2010-04-15 | 2012-11-21 | 南京大学 | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 |
KR101297533B1 (ko) * | 2013-02-05 | 2013-08-16 | 서울과학기술대학교 산학협력단 | 네트워크 온 칩 성능 향상을 위한 xy-yx 라우팅 장치 및 방법 |
-
2013
- 2013-11-26 CN CN201310618876.8A patent/CN103729331B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333038A (zh) * | 2011-10-21 | 2012-01-25 | 上海交通大学 | 一种基于片上网络的无死锁路由方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103729331A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729331B (zh) | 片上网络通信死锁避免方法、路由器及通信网络 | |
CN104158738B (zh) | 一种低缓冲区片上网络路由器及路由方法 | |
CN107454003B (zh) | 一种可动态切换工作模式的片上网络路由器及方法 | |
CN111104775B (zh) | 一种片上网络拓扑结构及其实现方法 | |
Zhang et al. | Comparison research between xy and odd-even routing algorithm of a 2-dimension 3x3 mesh topology network-on-chip | |
US5925097A (en) | Directly programmable distribution element | |
CN105871742A (zh) | 一种片上网络中基于虚拟输出队列机制的自适应路由器 | |
CN101834789B (zh) | 面向包-电路交换片上路由器的回退转向路由算法及所用路由器 | |
CN104683242B (zh) | 一种二维片上网络的拓扑结构以及路由方法 | |
CN101232456A (zh) | 一种分布式可测试片上网络路由器 | |
CN108400880A (zh) | 片上网络、数据传输方法和第一交换节点 | |
CN104780122B (zh) | 基于缓存再分配的层次化片上网络路由器的控制方法 | |
CN102546417B (zh) | 基于网络信息的片上网络路由器调度方法 | |
CN103973564B (zh) | 互连网络系统的自适应路由方法 | |
CN114844827B (zh) | 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法 | |
Ebrahimi et al. | A high-performance network interface architecture for NoCs using reorder buffer sharing | |
CN105871730A (zh) | 基于网络编码的新型紧凑、高效、快速的片上网络路由器 | |
Wu et al. | A hybrid multicast routing approach with enhanced methods for mesh-based networks-on-chip | |
CN105530206A (zh) | 一种基于Torus网络的双接入结构及其工作方式 | |
CN109582622A (zh) | 基于三维Mesh片上网络的双链路互连架构 | |
CN107920025A (zh) | 一种面向cpu‑gpu异构片上网络的动态路由方法 | |
CN105049362B (zh) | 一种二维环绕网格片上网络拓扑结构的路由方法 | |
Ebrahimi et al. | Partitioning methods for unicast/multicast traffic in 3D NoC architecture | |
CN108023828A (zh) | 一种共享动态缓冲的MPNoC路由器 | |
Ebrahimi et al. | Efficient network interface architecture for network-on-chips |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |