CN104539547B - 一种用于三维集成电路片上网络的路由器及路由方法 - Google Patents

一种用于三维集成电路片上网络的路由器及路由方法 Download PDF

Info

Publication number
CN104539547B
CN104539547B CN201410647643.5A CN201410647643A CN104539547B CN 104539547 B CN104539547 B CN 104539547B CN 201410647643 A CN201410647643 A CN 201410647643A CN 104539547 B CN104539547 B CN 104539547B
Authority
CN
China
Prior art keywords
node
router
route
chip
routing
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
Application number
CN201410647643.5A
Other languages
English (en)
Other versions
CN104539547A (zh
Inventor
李晓维
周君
李华伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201410647643.5A priority Critical patent/CN104539547B/zh
Publication of CN104539547A publication Critical patent/CN104539547A/zh
Application granted granted Critical
Publication of CN104539547B publication Critical patent/CN104539547B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种用于三维集成电路片上网络的路由器,包括路由分流子模块,第一交叉开关子模块和第二交叉开关子模块;所述路由分流子模块用于将来自路由器输入端口的数据包分配至所述第一交叉开关子模块或者第二交叉开关子模块,所述第一交叉开关子模块的输出端与所述路由器的一部分输出端口连接,所述第二交叉开关子模块的输出端与所述路由器的另一部分输出端口连接。本发明还提供了相应的用于三维集成电路片上网络的路由方法。本发明能在三维集成电路片上网络的路由器出现永久性故障的情况下保障通信的正常运行,并兼顾较高的通信性能,较高的可靠性和较低的系统开销。并且,本发明能够以低成本实现防死锁。

Description

一种用于三维集成电路片上网络的路由器及路由方法
技术领域
本发明涉及集成电路可靠性设计技术领域,具体地说,本发明涉及一种用于三维集成电路片上网络的路由器及路由方法。
背景技术
三维集成技术是一种将芯片不同的器件层堆叠起来,垂直集成在一起的一种封装技术(可参考Banerjee K.,et al.,“3-D ICs:a novel chip design for improvingdeep-submicrometer interconnect performance and systems-on-chip integration,”in proceedings of the IEEE,Volume:89,Issue:5,2001,pp.602-633.)。这种技术可以缩短芯片内物理连线长度,达到降低系统时延和功耗的作用。在三维集成电路(也可称为三维芯片)片上网络(Networks-on-Chip,NoC)中,通常每个节点包括路由器(Router)、路由器间链接(Link)、网络接口(Network Interface,NI)和处理单元(Processing Element,PE)等组成部分。各个节点通过路由器以水平或者垂直方式互连,实现不同节点之间的通信。例如,图1示出了一个简单的4×2×3三维集成电路(也可称为三维芯片)片上网络(Networks-on-Chip,NoC)的拓扑结构,该拓扑结构是常见的三维Mesh结构。图中有3个不同器件层,整个三维结构共有24个节点,分别用编号0至23表示。
在NoC的节点中,路由器的结构相对较为复杂,它是片上网络的主要组成部分。NoC路由器主要包含控制通路与数据通路两个部分。其中控制通路主要包括路由计算单元(Routing Computation Unit)和仲裁器(Arbitrator)等模块,数据通路主要包括管道寄存器(Pipeline Register,PR),端口缓存(Buffer),内部链接(Inner Link,IL)和交叉开关(Crossbar,CR)等模块。其通常的执行操作流程为:1)写缓存(Buffer Write,BW);2)路由计算(Routing Computation,RC);3)虚通道分配(Virtual-Channel Allocation,VA);4)交换机分配(Switch Allocation,SA);5)交换机通过(Switch Traversal,ST);6)链接通过(Link Traversal,LT)等。
在实际使用过程中,如果某个或某几个路由器发生故障,对片上网络中的不同PE之间的通信将会有较大影响,例如:导致系统性能下降、通 信死锁,甚至是整个芯片报废,因此有必要对NoC的路由机制进行可靠性设计。图2示出了一种典型的NoC中各模块所占面积的百分比,从图2中可以看出,数据通路中的Buffer、PR,IL和CR等模块占据了路由器绝大部分的面积(可参考Cheng Liu,Lei Zhang,Yinhe Han,et al.,“A resilient on-chiprouter design through data path salvaging,”in proceedings of Asia and SouthPacific Design Automation Conference(ASP-DAC),Yokohama,2011:437-442.)。众所周知,面积越大在生产及使用的过程中发生故障的几率就越高。因此,在NoC路由器的可靠性设计中,人们主要关注的是其数据通路的可靠性设计。
目前国内外针对路由器中不可修复的永久性故障的容错措施通常有三种:第一种是采取路由器全部冗余的方式,使用时用有效无故障路由器整体替换有故障路由器;第二种是通过直接绕过有故障路由器的方法,并采取适当的可靠性路由机制;第三种是通过设计可靠性较高的路由器内部微体系结构,利用路由器内部有效模块完成路由功能,并配合适当的路由机制,使得系统的数据交换得以维持。
第一种方法虽然容错效果显著,但会明显增加三维芯片的面积与功耗开销,这一点会随着芯片规模的增大愈加明显,因此不利于大范围普及,尤其是针对开销敏感的应用制造领域产品,该方法难以推广。第二种方法虽然与前一种方法不同,采用低开销的可靠性路由机制绕开有故障的路由器,但是对路由器中的未失效的模块资源形成了较大的浪费,损失了较多的芯片性能。第三种方法不增加多余逻辑电路,同时尽可能利用有故障路由器内部的有效模块完成相应的路由需求,以保证三维芯片的通信正常进行,系统开销较低,这是在传统二维芯片中经常采用的容错机制,然而三维芯片与二维芯片在结构上具有较大差别,因此现有的二维芯片容错机制难以直接套用到三维场景下的片上网络。
总之,现有的三维集成电路片上网络的可靠性设计方案要么不能保证较高的通信性能(主要针对的是通信时延和吞吐量两个指标),要么通信的可靠性指标较低,要么需要较高的面积与功耗开销。
发明内容
因此,本发明的任务是提供能够克服现有技术上述缺陷的提升三维集成电路片上网络路由器的可靠性的解决方案。
本发明提供了一种用于三维集成电路片上网络的路由器,包括控制通 路和数据通路,所述控制通路包括路由分流子模块,所述数据通路还包括第一交叉开关子模块和第二交叉开关子模块;
所述路由分流子模块用于将来自路由器输入端口的数据包分配至所述第一交叉开关子模块或者第二交叉开关子模块,所述第一交叉开关子模块的输出端与所述路由器的一部分输出端口连接,所述第二交叉开关子模块的输出端与所述路由器的另一部分输出端口连接。
其中,所述路由分流子模块通过并口的方式分别与所述第一交叉开关子模块和第二交叉开关子模块的输入端连接。
其中,所述第一交叉开关子模块为水平交叉开关子模块,它的输出端包括东,南,西和北四个输出端口,所述东,南,西,北输出端口分别与所述路由器的东,南,西,北输出端口连接。
其中,所述第二交叉开关子模块为垂直交叉开关子模块,它的输出端包括上和下两个输出端口,所述上,下输出端口分别与所述路由器的上,下输出端口连接。
其中,所述路由分流子模块还包括本地输出端口,所述本地输出端口与路由器的本地输出端口连接。
本发明还提供了一种用于三维集成电路片上网络的路由方法,包括下列步骤:
1)三维集成电路片上网络的各个路由器获取自身输入和输出端口的故障矩阵,并将自身的故障矩阵信息发送给两跳以内的其它路由器;
2)每个路由器根据故障矩阵设置该路由器的每个路由位和每个连接位为有效或者失效状态;
3)采用基于逻辑的路由算法使数据包绕开故障继续路由至目的节点。
其中,所述步骤2)包括下列子步骤:
21)对于每个路由器,根据自身的故障矩阵和一跳范围内邻居节点的故障矩阵初步设置该路由器的各个路由位和连接位的值;
22)对于当前有效的路由位,再根据故障矩阵判断沿着该路由位所表示路由方向上的第二跳节点的相应输入端口缓存是否故障并根据判断结果重新设置该路由位。
其中,所述步骤3)包括下列子步骤:
31)对于路由过程中的任一当前节点,比较当前节点和目标节点的节点坐标,判断数据包的前进方向;
32)对于每个数据包,检查数据包的前进方向上的路由位和连接位,判断当前节点的相应的输出端口是否可用,在相应的输出端口不可用时,基于路由位和连接位的值来控制允许的转向,从而使数据包仍能继续路由至目的节点。
其中,所述路由位包括代表东北,东南,东上,东下,东东,南东,南西,南上,南下,南南,西北,西南,西上,西下,西西,北东,北西,北上,北下,北北,上北,上东,上南,上西,上上,下北,下东,下南,下西或者下下路由方向的路由位,每个路由位表示当前节点的邻居节点是否接受该路由位所代表的路由方向的数据包;所述连接位包括代表东,南,西,北,上或下方向的连接位,每个连接位表示当前节点和该连接位所代表的方向上的邻居节点是否连通。
其中,所述步骤32)还包括:根据邻居节点的故障类型和故障位置设置相应的路由位是否有效,然后对于当前有效的路由位,再判断该邻居节点沿着该路由位所表示路由方向上的下一跳节点的相应输入端口缓存是否故障并在故障时将该路由位置为失效状态。
其中,所述步骤32)中,按下述原则来控制允许的转向:令X为东,南,西,北,上,下中的任意一个,对于当前节点的X方向的输出端口,假如该方向X的连接位有效,并且满足下列条件a、b中的任意一条,则允许使用该方向X的输出端口;
a、目标节点在当前节点的正X方,数据包不再发生转向;
b、目标节点在当前节点的偏X方,且当前节点的至少一个有效路由位所代表的路由方向与目标节点相对于当前节点的方向一致。
其中,所述步骤32)还包括:采用基于OETM转向模型的防死锁机制滤除不合法转向。
其中,所述步骤32)包括下列子步骤:
321)根据当前节点与目的节点的相对位置,选择符合最短路径算法且其下一跳节点为非“死胡同”现象的邻接节点作为中间节点,根据所获取的这些节点发送的故障矩阵获取对应的连接位、路由位信息,掌握最短路径上两跳范围内的路由器节点中未失效模块可以完成的路由功能,确定可以选择的当前节点的中间节点,形成节点集合N;
322)若步骤321)中的节点集合N为空集,则在遵循OETM转向模型的基础上,在非最短路径上的节点中,根据NoP机制选择中间节点;若步骤321)中的节点集合N只有唯一元素,则直接将该元素确定为当前节点的中间节点;若步骤321)中的节点集合N不为空集且节点集合N元素不唯一,则在节点集合N中根据NoP机制选择中间节点;
323)数据包由当前节点路由至所选择的中间节点,该中间节点成为新的当前节点;
324)重复执行步骤321~步骤323,直至数据包路由至目的节点。
与现有技术相比,本发明具有下列技术效果:
1、本发明能在三维集成电路片上网络的路由器出现永久性故障的情况下保障通信的正常运行,并兼顾较高的通信性能。
2、本发明具有较高的可靠性。
3、本发明的面积与功耗开销小。
4、本发明能够兼顾到较高通信性能、较高的可靠性和较低的系统开销。
5、本发明能够以低成本实现防死锁。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1示出了一个简单的4×2×3三维集成电路片上网络的拓扑结构;
图2示出了一种典型的三维芯片NoC路由器中各模块所占面积的百分比;
图3(a)示出了一个典型的传统路由器微体系结构中的交叉开关及其连接方式的示意图;
图3(b)示出了本发明一个优选实施例中路由器微体系结构中实现交叉开关功能的原理示意图;
图4(a)示出了本发明一个实施例中的路由器故障矩阵的一个实例;
图4(b)示出了本发明一个实施例中的路由器故障矩阵的一个实例;
图5示出了一个三维空间坐标系的示意图;
图6示出了本发明一个实施例中的用于防死锁的三维转向模型;
图7示出了基于本发明一个实施例的路由方法的一个执行实例;
图8示出了一个典型的由单个数据包路由路径形成的层间非法转向的情形;
图9示出了基于图8基础上的,使用本发明一个实施例的转向模型来破坏层间非法转向的实例;
图10示出了一个典型的由多个数据包路由路径形成的层间非法转向的情形;
图11示出了基于图10基础上的,使用本发明一个实施例的转向模型来破坏层间非法转向的实例。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种三维集成电路片上网络的可靠性设计方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
根据本发明的一个实施例,提供了一种用于三维集成电路片上网络的路由器(下文中简称为路由器或NoC路由器),NoC路由器主要包含控制通路与数据通路两个部分。其中控制通路主要包括路由计算单元(Routing Computation Unit)和仲裁器(Arbitrator)等模块,数据通路主要包括管道寄存器(Pipeline Register,PR),端口缓存(Buffer),内部链接(Inner Link,IL)和交叉开关(Crossbar,CR)等模块。根据前文描述,数据通路在路由器中占据较大的面积,控制通路仅占较小的面积,因此,本实施例中,控制通路直接使用冗余的方式进行容错,这样不会造成芯片面积开销明显增加,而对于数据通路的容错,则对其功能模块细化,使得数据通路中部分功能模块部分失效的情况下,仍能使用未失效部分继续正常工作,这样就能够以较低的系统开销来实现数据通路的容错。
在路由器的微体系结构中,交叉开关连接路由器的各个输入端口和输出端口,其作用是将所接收的数据包转发到合适的下一跳节点。交叉开关又被称为交叉开关矩阵或纵横式交换矩阵,它呈网格状,每个交叉节点(crosspoint)设置一个开关,这样形成一个内部无阻塞的结构,只要同时闭合多个交叉节点多个不同的端口就可以同时传输数据。图3(a)示出了一个典型的传统三维路由器微体系结构中交叉开关及其连接方式的示意图,该路由器中的交叉开关是一个7×7交叉开关,即具有7个输入端口和7个 输出端口,分别是东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、上(UP)、下(DOWN)和本地(LOCAL)输入端口,及东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、上(UP)、下(DOWN)、本地(LOCAL)输出端口,这些输入或输出端口分别和路由器相应的输入或输出端口连接(路由器的输入端口通常具有输入端口缓存)。这种7×7交叉开关的网格规模较大,出现故障的概率相对较高,并且一旦交叉开关发生故障,则整个路由器都无法进行路由转发,因此容错能力较弱。需要注意的是,图3(a)中,仅仅在路由器中画出了交叉开关的部分,没有画出其它的与本发明主旨无关的模块(如路由器的输入输出端口、路由计算模块、仲裁器等)。
为克服这一缺陷,本实施例对路由器的微体系结构进行了改进,对交叉开关的功能进行了细化,将交叉开关的功能分解为水平交叉开关(Horizontal Crossbar)子模块和垂直交叉开关(Vertical Crossbar)子模块,同时在控制通路中增加路由分流(RoutingDiverter)模块,从而使路由器微体系结构中实现交叉开关功能的组件具有细粒度特点。图3(b)示出了本发明一个优选实施例中路由器微体系结构中实现交叉开关功能的原理示意图,需要注意的是,图3(b)中仅仅在路由器中画出了用于实现交叉开关功能的部分,用于实现其它功能的模块(例如路由器的输入输出端口、路由计算模块、仲裁器等)并未画出。参考图3(b),该实施例中,路由器包括路由分流模块、水平交叉开关子模块和垂直交叉开关子模块。其中路由分流模块属于控制通路,它作为整个路由器在输入端口缓存之后的输入级。路由分流模块具有东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)、上(UP)、下(DOWN)和本地(LOCAL)输入端口这7个输入端口,这七个输入端口分别与相应的输入端口缓存连接。路由分流模块还包括本地(LOCAL)输出端口以及水平输出端和垂直输出端,其中本地输出端口与路由器的本地输出端口连接,路由分流模块的水平和垂直输出端则分别与水平交叉开关子模块和垂直交叉开关子模块的输入端连接,其中路由分流模块的水平输出端和垂直输出端均采用并口连接方式,且并口共有7位。相应地,水平交叉开关子模块和垂直交叉开关子模块的输入端也分别采用7位的并口。路由分流模块负责将数据包分配至本地输出端口(此时由本地接收该数据包),或分配至水平/垂直交叉开关子模块。水平交叉开关子模块负责模块管理水平方向路由,它包括东(EAST)、南(SOUTH)、西(WEST)、北(NORTH)这4个输出端口,这4个输出端口分别与相应的路 由器输出端口连接。垂直交叉开关子模块负责垂直方向路由,它具有上(UP)、下(DOWN)这2个输出端口,这2个输出端口分别连接路由器的相应输出端口。由于路由器的输入端口共有7个,即东、南、西、北、上、下和本地输入端口,因此,本实施例中,路由分流模块的水平输出端和垂直输出端均采用7位并口的输出方式。相应地,水平交叉开关子模块和垂直交叉开关子模块的输入端也分别采用7位的并口。这样,水平交叉开关子模块和垂直交叉开关子模块都能够接收来自于路由器任何一个输入端口的数据包。
需要注意的是,在一个实施例中,路由分流模块本身是一个设置在控制通路中的自定义的独立逻辑模块。该模块是在图3(a)的7×7交叉开关与路由器输入端口之间的所有部件基础之上添加了用于分流(确定数据包的目的端口后向相应内部端口分流)的逻辑判断功能。在一个实施例中,路由分流模块还可以具有RC、VA、SA等操作功能。并且,容易理解,路由分流模块既可以是实体模块,也可以是虚拟模块。
仍然参考图3(b)的实施例,该实施中,数据包经由路由分流模块时,选择适当的水平或者垂直交叉开关子模块路由,这样做一方面分离了原交叉开关的功能,同时保证了单一的交叉开关子模块可以独立工作,并且不受数据包来自哪个输入端口的影响。例如,在这种微体系结构下,如果仅垂直交叉开关子模块故障,并不影响水平交叉开关子模块的使用,即当前路由器向水平方向(东、南、西或北)转发数据的功能不受影响。如果仅水平交叉开关子模块故障,并不影响垂直交叉开关子模块的使用,即当前路由器向垂直方向(上或下)转发数据的功能不受影响。而路由分流模块的故障虽然仍然会导致整个路由器无法实现路由转发数据的功能,但由于路由分流模块的控制逻辑大大简化,并且所占面积较小,因此发生故障的几率很小。路由器整体功能瘫痪的概率比原先的7×7交叉开关大幅降低,因此,综合来说,相对于图3(a)的结构,图3(b)的交叉开关具有更好的可靠性和容错能力。
进一步地,根据本发明的一个实施例,还提供了一种针对输入端口缓存(Buffer)故障和/或交叉开关(Crossbar)故障情形的路由方法。该实施例中,针对上述两种故障建立了故障模型,并利用故障矩阵来表示一个路由器的故障情况(面向常见的无输出端口缓存路由器)。
本实施例的具有容错功能的路由方法具体包括下列步骤:
步骤1:各个路由器获取自身的故障矩阵,并将自身的故障矩阵信息发送给两跳以内的其它路由器。故障矩阵信息通过端口信号线直接传送至路由器内部的对应处理单元,并不使用路由器的输入端口缓存和交叉开关传输,因此不会因输入端口缓存和交叉开关故障而中断。对于每个路由器,基于测试数据包对其各个输入和输出端口进行测试,即可得出该路由器的故障矩阵。在一个实施例中,上电后,三维片上网络中每个路由器节点进行设备故障检测。为了简化路由器架构,检查装置可以放置于PE端,通过网络接口(NetworkInterface,NI)对节点进行检测,并建立对应路由器的故障矩阵。同时路由器将其故障矩阵发送至所有两跳距离以内的邻接节点,如果到达某些距离为两跳的路径不唯一,随机选择一条路径发送一次即可。
步骤2:各个路由器根据已知的自身的故障矩阵和两跳范围内其它路由器的故障矩阵进行路由。本步骤中,首先基于两跳范围内的故障矩阵识别故障类型和故障位置,然后再采用一定的路由算法进行路由,以避开故障位置。由于在三维场景下,每个路由器都需要维护全局路由表会带来时延和面积的较大开销,因此本步骤中采用了基于逻辑的路由算法。
图4(a)和图4(b)示出了路由器的两个故障矩阵的示例。其中,“1”表示矩阵中相应行列对应的输入和输出端口间无故障,“0”表示有故障。另外,数据包的180°转向是禁止的,因为这样会形成抽象依赖环,可能会导致死锁。在图4(a)中,E、S、W和N四个输出端口皆无法正常输出,可以看出水平交叉开关子模块存在故障。同时,N,E,S和W端口的输入Buffer也存在故障;在图4(b)中,U和D两个方向的均无法正常输出,可推断这是因为垂直交叉开关子模块的故障所致,另外,E,U和D输入端口的Buffer也是存在故障的。
参考图4(a)和图4(b)的示例进行归纳,可以看出,故障类型包括:输入缓存端口故障,垂直交叉开关子模块故障和水平交叉开关子模块故障,故障位置则是指具体哪个输入缓存端口故障。
进一步地,在一个实施例中,路由算法采用了一种基于二维LDBR(logic-baseddistributed routing)算法的拓展算法,本文中称为LDBRem算法。作为基础的LDBR算法可参考Flich J,Rodrigo S,Duato J.,“An Efficient Implementation of DistributedRouting Algorithms for NoCs,”in proceedings of ACM/IEEE InternationalSymposium on Networks-on-Chip(NOCS),Newcastle upon Tyne,2008:87-96.。在本发明所涉及的三维场景 中,由于加入了Up和Down两个端口,因此本发明一个实施例的LBDRem算法中,与当前节点距离一跳的邻居节点的路由位为30个,依次是:Ren,Res,Reu,Red,Ree,Rse,Rsw,Rsu,Rsd,Rss,Rwn,Rws,Rwu,Rwd,Rww,Rne,Rnw,Rnu,Rnd,Rnn,Run,Rue,Rus,Ruw,Ruu,Rdn,Rde,Rds,Rdw和Rdd,连接位为6个,依次是:Te,Tn,Ts,Tw,Tu,Td。路由位是表示邻居节点是否接受某个方向的数据包,例如Ren=1表示当前节点东边的邻居可以接受东北路由方向的数据包,即可以进行EN转向。而连接位表示当前节点和相应的邻居节点是否连通,如Te=1表示当前节点和东边邻居节点是连通的。上述路由位的取值可以根据通过故障矩阵识别出的故障类型和故障位置设置,在一个例子中,可先根据邻居节点的故障类型和故障位置设置相应的路由位是否有效,然后对于当前有效的路由位,再判断该邻居节点沿着该路由位所表示路由方向上的下一跳节点(即当前节点的第二跳节点)的相应输入端口缓存是否故障,如故障,则将该路由位置为失效状态。这样可以有效避免在第二跳节点处出现死胡同现象。
基于上述叙述,在一个优选实施例中,步骤2包括下列子步骤:
步骤21:对于每个路由器,根据自身的故障矩阵和两跳范围内其它路由器的故障矩阵得出该路由器的各个路由位和连接位的值。
LBDRem算法本质是转向优先的最短路径算法,在执行时需要收集相关邻居节点的连接位与路由位信息。而每个路由器自身发送至邻接节点的连接位和路由位信息是根据自己的故障矩阵得来的。如果相应位置出现故障,则对应的连接位或路由位值则赋为“0”,否则为“1”。LBDRem算法为三维片上网络提供了足够的路由灵活性。
步骤22:对于路由过程中的任一当前节点,比较当前节点和目标节点的节点坐标,判断数据包的前进方向。
步骤23:检查数据包的前进方向上的路由位和连接位,判断当前节点的相应的输出端口是否可用。在存在故障的场景下(即相应的输出端口不可用时),基于路由位和连接位的值来控制允许的转向,从而使数据包仍能继续路由至目的节点。
下面以LBDRem中的一跳距离为例,说明如何在存在故障的场景下,基于路由位和连接位的值来控制允许的转向。定义源节点为S(Source)节点,目的节点为D(Destination)节点,当前节点为C(Current)节点, 当前节点的下一跳节点为中间节点,记为M(Middle)节点。另外,为便于说明,以图5所示的坐标系来表示NoC的各个平面。
在存在故障的场景下,节点C的东(E)输出端口能够被使用的条件是:满足Te=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正东方,数据包不再发生转向;
目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面,即所在层)在当前节点C的东北方,并且东边的节点允许EN转向,即Ren=1;
目标节点D(或目标节点D在XY平面的映射点)在当前节点C的东南方,并且东边的节点允许ES转向,即Res=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的东上方,并且东边的节点允许EU转向,即Reu=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的东下方,并且东边的节点允许ED转向,即Red=1。
节点C的南、西、北、上和下输出端口能够被使用的条件根据东输出端口能够被使用的条件推出。
即:
在存在故障的场景下,节点C的南(S)输出端口能够被使用的条件是:满足Ts=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正南方,数据包不再发生转向;
目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面,即所在层)在当前节点C的东南方,并且南边的节点允许SE转向,即Rse=1;
目标节点D(或目标节点D在XY平面的映射点)在当前节点C的西南方,并且南边的节点允许SW转向,即Rsw=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南上方,并且南边的节点允许SU转向,即Rsu=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南下方,并且南边的节点允许SD转向,即Rsd=1。
在存在故障的场景下,节点C的西(W)输出端口能够被使用的条件 是:满足Tw=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正西方,数据包不再发生转向;
目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面,即所在层)在当前节点C的西南方,并且西边的节点允许WS转向,即Rws=1;
目标节点D(或目标节点D在XY平面的映射点)在当前节点C的西北方,并且西边的节点允许WN转向,即Rwn=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西上方,并且西边的节点允许WU转向,即Rwu=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西下方,并且西边的节点允许WD转向,即Rwd=1。
在存在故障的场景下,节点C的北(N)输出端口能够被使用的条件是:满足Tn=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正北方,数据包不再发生转向;
目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面,即所在层)在当前节点C的西北方,并且北边的节点允许NW转向,即Rnw=1;
目标节点D(或目标节点D在XY平面的映射点)在当前节点C的东北方,并且北边的节点允许NE转向,即Rne=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北上方,并且北边的节点允许NU转向,即Rnu=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北下方,并且北边的节点允许ND转向,即Rnd=1。
在存在故障的场景下,节点C的上(U)输出端口能够被使用的条件是:满足Tu=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正上方,数据包不再发生转向;
目标节点D(或目标节点D在XZ平面的映射点,XZ平面指当前节点C所在平面,即所在层)在当前节点C的东上方,并且上边的节点允许UE转向,即Rue=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西上方,并且上边的节点允许UW转向,即Ruw=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南上方,并且上边的节点允许US转向,即Rus=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北上方,并且上边的节点允许UN转向,即Run=1。
在存在故障的场景下,节点C的下(D)输出端口能够被使用的条件是:满足Td=1,以及下面五个条件中的至少一条成立:
目标节点D在当前节点C的正下方,数据包不再发生转向;
目标节点D(或目标节点D在XZ平面的映射点,YZ平面指当前节点C所在平面,即所在层)在当前节点C的东下方,并且下边的节点允许DE转向,即Rde=1;
目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西下方,并且下边的节点允许DW转向,即Rdw=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南下方,并且下边的节点允许DS转向,即Rds=1;
目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北下方,并且下边的节点允许DN转向,即Rdn=1。
上述基于路由位和连接位的值来控制转向的方案仅提供了路由算法的操作基础,本身不具备防止死锁的特点。因此,在一个实施例中,步骤23中还加入了防死锁机制以避免出现网络死锁,影响片上网络性能。防死锁机制可以直接采用常用的基于VC技术的防死锁机制,基于VC技术的防死锁机制可采用文献:Seiculescu C.,et al.,“A method toremove deadlocks in Networks-on-Chips with Wormhole flow control,”inproceedings of Design,Automation&Test in Europe Conference&Exhibition(DATE),Dresden,2010,pp.1625-1628.中的VC技术。而在另一个实施例中,步骤23的防死锁机制采用基于转向模型的防死锁机制,转向模型采用本案申请人的在先中国专利申请201410238744.7所记载的OETM(Odd-Even-based Turn Model)转向模型。相对于基于VC技术的防死锁机制,这类基于转向模型的防死锁机制能够显著地节省开销。
进一步地,图6示出了本发明一个实施例的用于防死锁的转向模型的示例,该模型的视角是图5中三维坐标系右前45°俯视的角度,其中虚线左边是奇YZ平面需要禁止的转向,虚线右边是偶YZ平面需要禁止的转向。仍 然参考图5,为便于描述,下文中所有与以Y轴和Z轴形成的平面平行或重合的平面均称为YZ平面(XY平面和XZ平面同理),内部节点的X坐标为奇数的YZ平面为奇YZ平面,内部节点的X坐标为偶数的YZ平面为偶YZ平面。再参考图6,对于奇YZ平面,禁止DE、DW、SW、NW、NU和SU方向的转向;对于偶YZ平面,禁止EN、ES、EU、WU、DS和DN方向的转向。这种防死锁机制不仅能够实现三维NoC的防死锁,还避免了VC技术所带来较大的存储空间和复杂的控制逻辑,能够降低开销。
这里需要说明的是,图6只是OETM一共24种转向模型的一个实例,其他23种模型是以图6所示模型分别基于图5所示坐标系中XY平面、YZ平面和XZ平面对称的三维转向模型。本发明可以使用OETM中的任意一种模型引导路由算法的执行。
更进一步地,在一个优选实施例中,考虑到需要面向存在故障的片上网络,因此,较高的故障率可能导致在最短路径上无法选择合适的中间节点。此时,需要在不违反上述转向模型的基础上在非最短路径上选择中间节点。即,所述步骤23中,在每一个当前节点,它的中间节点都应该在最短路径上优先选择,保证尽可能少的跳数。在无法在最短路径上无法选择合适的中间节点或非最短路径上的可选中间节点不唯一的情况下,基于NoP(Neighbors-on-Path)端口选择机制选出中间节点。根据本发明的一个实施例,可以采用文献:Ascia G.,et al.,“Implementation and Analysis of a New Selection Strategyfor Adaptive Routing in Networks-on-Chip,”in IEEE Transactions on Computers,Volume:57,Issue:6,2008,pp.809-820.所记载的NoP端口选择机制。
NoP是一种流量感应机制,根据可选端口的流量感应情况,选取流量最小的可选端口输出数据包,避开通信密集区域,减少冲突的发生,从而降低通信时延,提高吞吐量。NoP机制适用于最短路径或非最短路径上的可选中间节点不唯一的情况下使用。另外,需强调的是,邻接节点故障矩阵信息和NoP机制相关信息皆是通过端口信号线直接传送至路由器内部的对应处理单元,并不使用路由器的输入端口Buffer,因此Buffer故障并不会影响到故障矩阵信息的传送和NoP机制的执行。
基于上述叙述,在一个优选实施例中,所述步骤23包括下列子步骤:
步骤231:根据当前节点C(源节点S是特殊的当前节点)与目的节点 D的相对位置,选择符合最短路径算法且其下一跳节点为非“死胡同”现象的邻接节点作为中间节点M,根据所获取的这些节点发送的故障矩阵获取对应的连接位、路由位信息,掌握最短路径上两跳范围内的路由器节点中未失效模块可以完成的路由功能,确定可以选择的当前节点的中间节点,形成节点集合N。
步骤232:若步骤231中的节点集合N为空集,则说明没有满足要求的节点,此时考虑在非最短路径上选择节点M。在遵循图6所示的三维转向模型的基础上(需注意,源节点处不需要考虑转向模型的限制),根据NoP机制选择合适的节点M,输出数据包。若步骤231中的节点集合N元素唯一,则该节点可直接确定为节点C的节点M。若步骤231中的节点集合N元素不唯一,则同样根据NoP机制选择合适的节点M。
步骤233:不论步骤232中的节点M在最短路径上还是在非最短路径上,数据包皆由当前节点C路由至选择的节点M,该中间节点成为新的当前节点C’,并开始选择新的中间节点M’。需要注意的是,由于整个网络中禁止180°的转向,因此节点M若在非最短路径上,节点C不能作为节点M’的备选的对象。
步骤234:重复执行步骤231~步骤233,直至数据包路由至节点D。
图7示出了基于本发明一个实施例的路由方法的一个执行实例。参考图7,其中实心的节点是无故障节点,空心的节点是有故障节点。在这个4×2×3的三维片上网络中,节点5、9、13、15和18存在故障。节点0是源节点,即节点S,节点20是目的节点,即节点D。这里设定该网络的故障情形如表1所示:
表1
故障节点 故障描述
5 水平Crossbar子模块、U端口输入Buffer故障
9 W端口输入Buffer故障
13 D、E端口输入Buffer故障
15 垂直Crossbar子模块、U端口输入Buffer故障
18 水平Crossbar子模块、垂直Crossbar子模块故障
根据步骤1,节点S(节点0)会收到节点1、2、6、7、8、9、15和16的故障矩阵信息。而在步骤2中,由于节点9的W端口输入端Buffer存在故障,因此一旦数据包在节点8发生UE转向,会导致“死胡同”现象。节点1、7和8(该节点不能考虑UE转向)都可以作为中间节点,根据转向模型和NoP机制,设定节点1作为中间节点。数据包路由至节点1,该节点成为新的当前节点,再次寻找下一个中间节点。同理,根据接收的节点2、3、5、6、9、10、14和17的故障矩阵信息。由于节点5处于偶数列,不能发生EU转向,因此不能在节点6发生NE转向,否则将导致“死胡同”现象。再根据转向模型和NoP机制,选择节点9作为新的当前节点。以下皆同理,数据包最终路由至节点D。图7的上述执行流程中,在最短路径上,首先考虑“死胡同”现象,排除掉不符合条件的路径,再根据转向模型和NoP机制,从直接邻接的几个节点中,选择合适的中间节点,如果没有可选节点,则在非最短路径上选择。
另外,在一个实施例中,采用了基于转向模型的防死锁机制,即通过转向模型消除由单个或多个数据包路由路径形成的层间非法转向。下面,举出实例进行说明(不考虑故障的简单情况)。以图8和图10为例进行说明,在一个4×2×3的三维片上网络中,很容易出现两种情形下的层间非法转向:一种是由单个数据包路由路径形成的,另一种就是由多个个数据包路由路径叠加形成的。图8就是第一类情形,而图10是第二类情形。
在图8中的节点2处,作为第0层的中间点,其输入端口方向是W,即发送方向是E,数据包经过节点第1层的节点10,到达节点18。而在节点18,数据包的输出方向是N,这就和之前的E结合,形成了EN转向。由于根据转向模型的规定,节点2的EU转向是禁止的,同时EN转向也是禁止的,出现了“死胡同”现象。图9示出了基于图8基础上的,使用本发明一个实施例的转向模型来破坏层间非法转向的实例,在图9中,选择了节点9作为中间节点,并将数据包一直路由至D1。至此,破坏了由单个源节点-目的节点对之间的路由路径形成的层间非法转向。
在图10中,也是在第0层的节点2和第2层的节点18形成了层间非法转向EN,只是这个转向是由两个源节点-目的节点对之间的路由路径叠加形成。此时,和上例一样,需要选择另一个节点作为中间节点。图11示出了 基于图10基础上的,使用本发明一个实施例的转向模型来破坏层间非法转向的实例。图11中,路径P1发生变化,至此,破坏了由两个源节点-目的节点对之间的路由路径叠加形成的层间非法转向。
本发明主要的有益效果包括:
第一点,可以在容错的基础上提高三维集成电路片上网络的通信性能,包括降低平均通信时延和提高网络吞吐量。这一点主要是因为最短路径优先算法和相关的端口选择机制拓展至三维场景,可以避开热点区域,减小数据包发生冲突的几率。本发明的路由自适应度较高,可以根据片上网络的实时状况加以判断,选择冲突最小的合法输出端口;
第二点,可以结合基于逻辑与基于路由表的路由算法的各自优点,不使用昂贵的VC就避免三维场景下的通信死锁。本发明利用了基于逻辑的低成本和基于路由表的灵活性,将低成本的容错路由算法拓展到三维场景。同时,设计一种高自适应度的三维转向模型指导该容错路由算法,避免网络死锁的发生。综上所述,一种低开销的三维集成电路片上网络的容错路由算法具备较强的工程技术意义;
第三点,本发明可以保证较高的通信可靠性。网络可靠性的一个重要指标就是在给定的时间内,能够由源节点路由至目的节点的数据包的数量占据这段时间内注入到网络中数据包总数量的比例。若该比例较高,则对应的路由设计方法的可靠性就越高。本发明可以使数据包尽可能短时间内路由至目的节点,在设定的时间内保证通信的可靠性。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其它的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

Claims (11)

1.一种用于三维集成电路片上网络的路由器,包括控制通路和数据通路,其特征在于,所述控制通路包括路由分流模块,所述数据通路还包括水平交叉开关子模块和垂直交叉开关子模块;
所述路由分流模块用于将来自路由器输入端口的至少部分数据包分配至所述水平交叉开关子模块或者垂直交叉开关子模块,所述水平交叉开关子模块的输出端与所述路由器的一部分输出端口连接,所述垂直交叉开关子模块的输出端与所述路由器的另一部分输出端口连接;
其中,所述水平交叉开关子模块的输出端包括东,南,西和北四个输出端口,所述东,南,西,北输出端口分别与所述路由器的东,南,西,北输出端口连接;
所述垂直交叉开关子模块的输出端包括上和下两个输出端口,所述上,下输出端口分别与所述路由器的上,下输出端口连接。
2.根据权利要求1所述的用于三维集成电路片上网络的路由器,其特征在于,所述路由分流模块通过并口的方式分别与所述水平交叉开关子模块和垂直交叉开关子模块的输入端连接。
3.根据权利要求2所述的用于三维集成电路片上网络的路由器,其特征在于,所述路由分流模块还包括本地输出端口,所述本地输出端口与路由器的本地输出端口连接。
4.一种用于三维集成电路片上网络的路由方法,所述网络包括如权利要求1-3中任意一项所述的路由器,其特征在于,所述方法包括下列步骤:
1)三维集成电路片上网络的各个路由器获取自身输入和输出端口的故障矩阵,并将自身的故障矩阵信息发送给两跳以内的其它路由器;
2)每个路由器根据故障矩阵设置该路由器的每个路由位和每个连接位为有效或者失效状态;
3)采用基于逻辑的路由算法使数据包绕开故障继续路由至目的节点。
5.根据权利要求4所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤2)包括下列子步骤:
21)对于每个路由器,根据自身的故障矩阵和一跳范围内邻居节点的故障矩阵初步设置该路由器的各个路由位和连接位的值;
22)对于当前有效的路由位,再根据故障矩阵判断沿着该路由位所表示路由方向上的第二跳节点的相应输入端口缓存是否故障并根据判断结果重新设置该路由位。
6.根据权利要求5所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤3)包括下列子步骤:
31)对于路由过程中的任一当前节点,比较当前节点和目标节点的节点坐标,判断数据包的前进方向;
32)对于每个数据包,检查数据包的前进方向上的路由位和连接位,判断当前节点的相应的输出端口是否可用,在相应的输出端口不可用时,基于路由位和连接位的值来控制允许的转向,从而使数据包仍能继续路由至目的节点。
7.根据权利要求5所述的用于三维集成电路片上网络的路由方法,其特征在于,所述路由位包括代表东北,东南,东上,东下,东东,南东,南西,南上,南下,南南,西北,西南,西上,西下,西西,北东,北西,北上,北下,北北,上北,上东,上南,上西,上上,下北,下东,下南,下西或者下下路由方向的路由位,每个路由位表示当前节点的邻居节点是否接受该路由位所代表的路由方向的数据包;所述连接位包括代表东,南,西,北,上或下方向的连接位,每个连接位表示当前节点和该连接位所代表的方向上的邻居节点是否连通。
8.根据权利要求7所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤32)还包括:根据邻居节点的故障类型和故障位置设置相应的路由位是否有效,然后对于当前有效的路由位,再判断该邻居节点沿着该路由位所表示路由方向上的下一跳节点的相应输入端口缓存是否故障并在故障时将该路由位置为失效状态。
9.根据权利要求8所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤32)中,按下述原则来控制允许的转向:令X为东,南,西,北,上,下中的任意一个,对于当前节点的X方向的输出端口,假如该方向X的连接位有效,并且满足下列条件a、b中的任意一条,则允许使用该方向X的输出端口;
a、目标节点在当前节点的正X方,数据包不再发生转向;
b、目标节点在当前节点的偏X方,且当前节点的至少一个有效路由位所代表的路由方向与目标节点相对于当前节点的方向一致。
10.根据权利要求9所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤32)还包括:采用基于OETM转向模型的防死锁机制滤除不合法转向。
11.根据权利要求10所述的用于三维集成电路片上网络的路由方法,其特征在于,所述步骤32)包括下列子步骤:
321)根据当前节点与目的节点的相对位置,选择符合最短路径算法且其下一跳节点为非“死胡同”现象的邻接节点作为中间节点,根据所获取的这些节点发送的故障矩阵获取对应的连接位、路由位信息,掌握最短路径上两跳范围内的路由器节点中未失效模块可以完成的路由功能,确定可以选择的当前节点的中间节点,形成节点集合N;
322)若步骤321)中的节点集合N为空集,则在遵循OETM转向模型的基础上,在非最短路径上的节点中,根据NoP机制选择中间节点;若步骤321)中的节点集合N只有唯一元素,则直接将该元素确定为当前节点的中间节点;若步骤321)中的节点集合N不为空集且节点集合N元素不唯一,则在节点集合N中根据NoP机制选择中间节点;
323)数据包由当前节点路由至所选择的中间节点,该中间节点成为新的当前节点;
324)重复执行步骤321~步骤323,直至数据包路由至目的节点。
CN201410647643.5A 2014-11-14 2014-11-14 一种用于三维集成电路片上网络的路由器及路由方法 Active CN104539547B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410647643.5A CN104539547B (zh) 2014-11-14 2014-11-14 一种用于三维集成电路片上网络的路由器及路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410647643.5A CN104539547B (zh) 2014-11-14 2014-11-14 一种用于三维集成电路片上网络的路由器及路由方法

Publications (2)

Publication Number Publication Date
CN104539547A CN104539547A (zh) 2015-04-22
CN104539547B true CN104539547B (zh) 2017-10-10

Family

ID=52855016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410647643.5A Active CN104539547B (zh) 2014-11-14 2014-11-14 一种用于三维集成电路片上网络的路由器及路由方法

Country Status (1)

Country Link
CN (1) CN104539547B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105591910B (zh) * 2016-03-04 2018-06-12 北京交通大学 一种针对路由方向单调变化网络的容错曼哈顿路由方法
CN105812063B (zh) * 2016-03-22 2018-08-03 西安电子科技大学 基于统计复用的光片上网络系统及通信方法
CN106302163B (zh) * 2016-09-30 2019-05-10 南京航空航天大学 一种具有多种工作模式的片上网络路由器及路由方法
CN107276920B (zh) * 2017-07-28 2020-01-17 南京航空航天大学 一种应用于混合三维片上网络的分布式流控系统及方法
CN110086709B (zh) * 2019-03-22 2021-09-03 同济大学 针对超大规模片上网络容忍众故障的确定性路径路由方法
CN110460523B (zh) * 2019-08-15 2021-06-11 电子科技大学 一种用于实现片上网络跨层路由机制的路由控制单元
US20220044092A1 (en) 2020-08-06 2022-02-10 Celestial Ai Inc. Coherent photonic computing architectures
CN112073314B (zh) * 2020-08-07 2021-09-03 同济大学 容忍多故障的大规模三维片上网络确定性路径路由方法
CN112468392B (zh) * 2020-10-21 2022-03-25 中山大学 一种处理多播流量死锁问题的片上网络及方法
CN113238984A (zh) * 2021-02-26 2021-08-10 西安微电子技术研究所 一种三维片上网络结构及工作方法
CN113709040B (zh) * 2021-08-31 2023-04-07 中国电子科技集团公司第五十八研究所 一种基于可扩展互联裸芯的封装级网络路由算法
WO2023177848A1 (en) 2022-03-18 2023-09-21 Celestial Al Inc. Optical multi-die interconnect bridge (omib)
CN117811996A (zh) * 2024-03-01 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 双路径三维超立方网络的路由方法、装置、设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831037A (zh) * 2012-07-17 2012-12-19 高旭东 一种数据通路分片的冗余保护结构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103008B2 (en) * 2001-07-02 2006-09-05 Conexant, Inc. Communications system using rings architecture
KR100785472B1 (ko) * 2006-09-19 2007-12-13 삼성전자주식회사 긴급 NoC 패킷 대기시간 관리 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831037A (zh) * 2012-07-17 2012-12-19 高旭东 一种数据通路分片的冗余保护结构

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《应用于片上网络的双通道路由器》;岳培培等;《电子科技大学学报》;20090331;第38卷(第2期);第1节 *

Also Published As

Publication number Publication date
CN104539547A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
CN104539547B (zh) 一种用于三维集成电路片上网络的路由器及路由方法
Akbari et al. AFRA: A low cost high performance reliable routing for 3D mesh NoCs
Ebrahimi et al. Minimal-path fault-tolerant approach using connection-retaining structure in networks-on-chip
Liu et al. Low cost fault-tolerant routing algorithm for networks-on-chip
Feng et al. FoN: Fault-on-Neighbor aware routing algorithm for Networks-on-Chip
CN104579951B (zh) 片上网络中新颖的故障与拥塞模型下的容错方法
CN105577539B (zh) 一种面向非规则三维集成电路片上网络的路由方法及系统
CN104079480B (zh) 一种三维集成电路片上网络的路由方法及其系统
Valinataj et al. A fault-tolerant and congestion-aware routing algorithm for networks-on-chip
Singh et al. Performance evalulation of different routing algorithms in Network on Chip
CN107612746A (zh) 一种构建Torus网络的方法、Torus网络和路由算法
Chalasani et al. Fault-tolerant wormhole routing in tori
Jouybari et al. A low overhead, fault tolerant and congestion aware routing algorithm for 3D mesh-based Network-on-Chips
Ren et al. A fault tolerant NoC architecture using quad-spare mesh topology and dynamic reconfiguration
Taheri et al. Advertiser elevator: A fault tolerant routing algorithm for partially connected 3D Network-on-Chips
Coelho et al. FL-RuNS: A high-performance and runtime reconfigurable fault-tolerant routing scheme for partially connected three-dimensional networks on chip
Sinha et al. D n-FTR: Fault-tolerant routing algorithm for Mesh based network-on-chip
CN107171954A (zh) 容错路由方法、装置及片上网络
Zhou et al. HARS: a high-performance reliable routing scheme for 3D NoCs
Holsmark et al. Deadlock free routing algorithms for mesh topology NoC systems with regions
Coelho et al. A runtime fault-tolerant routing scheme for partially connected 3d networks-on-chip
Manzoor et al. Prime turn model and first last turn model: an adaptive deadlock free routing for network-on-chips
Chalasani et al. Adaptive wormhole routing in tori with faults
Bishnoi Hybrid fault tolerant routing algorithm in NoC
Shi et al. A reconfigurable and deadlock-free routing algorithm for 2D Mesh Network-on-Chip

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Xiaowei

Inventor after: Zhou Jun

Inventor after: Li Huawei

Inventor before: Zhou Jun

Inventor before: Li Huawei

Inventor before: Li Xiaowei

GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20150422

Assignee: Zhongke Jianxin (Beijing) Technology Co.,Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: X2022990000752

Denomination of invention: A Router and Routing Method for 3D IC Network on Chip

Granted publication date: 20171010

License type: Exclusive License

Record date: 20221009