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

文档序号:8225976阅读:来源:国知局
使用的条件根据东输出端口能够被使 用的条件推出。
[0082] 艮P:
[0083] 在存在故障的场景下,节点C的南(S)输出端口能够被使用的条件是:满足八= 1,以及下面五个条件中的至少一条成立:
[0084] 目标节点D在当前节点C的正南方,数据包不再发生转向;
[0085] 目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面, 即所在层)在当前节点C的东南方,并且南边的节点允许SE转向,即Rse= 1 ;
[0086] 目标节点D(或目标节点D在XY平面的映射点)在当前节点C的西南方,并且南 边的节点允许SW转向,即Rsw= 1 ;
[0087]目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南上方,并且南 边的节点允许SU转向,即Rsu= 1 ;
[0088] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南下方,并且南 边的节点允许SD转向,即Rsd= 1。
[0089] 在存在故障的场景下,节点C的西(W)输出端口能够被使用的条件是:满足Tw= 1,以及下面五个条件中的至少一条成立:
[0090] 目标节点D在当前节点C的正西方,数据包不再发生转向;
[0091]目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面, 即所在层)在当前节点C的西南方,并且西边的节点允许WS转向,即Rws= 1 ;
[0092] 目标节点D(或目标节点D在XY平面的映射点)在当前节点C的西北方,并且西 边的节点允许WN转向,即Rwn= 1 ;
[0093] 目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西上方,并且西 边的节点允许WU转向,即Rwu= 1 ;
[0094] 目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西下方,并且西 边的节点允许WD转向,即Rwd= 1。
[0095] 在存在故障的场景下,节点C的北(N)输出端口能够被使用的条件是:满足Tn= 1,以及下面五个条件中的至少一条成立:
[0096]目标节点D在当前节点C的正北方,数据包不再发生转向;
[0097]目标节点D(或目标节点D在XY平面的映射点,XY平面指当前节点C所在平面, 即所在层)在当前节点C的西北方,并且北边的节点允许NW转向,即Rnw= 1 ;
[0098] 目标节点D(或目标节点D在XY平面的映射点)在当前节点C的东北方,并且北 边的节点允许NE转向,即Rne= 1 ;
[0099] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北上方,并且北 边的节点允许NU转向,即Rnu= 1 ;
[0100] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北下方,并且北 边的节点允许ND转向,即Rnd= 1。
[0101] 在存在故障的场景下,节点C的上(U)输出端口能够被使用的条件是:满足Tu= 1,以及下面五个条件中的至少一条成立:
[0102] 目标节点D在当前节点C的正上方,数据包不再发生转向;
[0103]目标节点D(或目标节点D在XZ平面的映射点,XZ平面指当前节点C所在平面, 即所在层)在当前节点C的东上方,并且上边的节点允许UE转向,即Rue= 1 ;
[0104] 目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西上方,并且上 边的节点允许UW转向,即Ruw= 1 ;
[0105] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南上方,并且上 边的节点允许US转向,即Rus= 1 ;
[0106] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北上方,并且上 边的节点允许UN转向,即Rm= 1。
[0107] 在存在故障的场景下,节点C的下(D)输出端口能够被使用的条件是:满足Td = 1,以及下面五个条件中的至少一条成立:
[0108]目标节点D在当前节点C的正下方,数据包不再发生转向;
[0109]目标节点D(或目标节点D在XZ平面的映射点,YZ平面指当前节点C所在平面, 即所在层)在当前节点C的东下方,并且下边的节点允许DE转向,即Rde= 1 ;
[0110] 目标节点D(或目标节点D在XZ平面的映射点)在当前节点C的西下方,并且下 边的节点允许DW转向,即Rdw= 1 ;
[0111] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的南下方,并且下 边的节点允许DS转向,即Rds= 1 ;
[0112] 目标节点D(或目标节点D在YZ平面的映射点)在当前节点C的北下方,并且下 边的节点允许DN转向,即Rdn= 1。
[0113] 上述基于路由位和连接位的值来控制转向的方案仅提供了路由算法的操作基 础,本身不具备防止死锁的特点。因此,在一个实施例中,步骤23中还加入了防死锁机制 以避免出现网络死锁,影响片上网络性能。防死锁机制可以直接采用常用的基于VC技 术的防死锁机制,基于VC技术的防死锁机制可采用文献:SeiculescuC.,etal.,"A methodtoremovedeadlocksinNetworks-on-ChipswithWormholeflowcontrol,,'in proceedingsofDesign,Automation&TestinEuropeConference&Exhibition(DATE ),Dresden,2010,pp. 1625-1628.中的VC技术。而在另一个实施例中,步骤23的防死 锁机制采用基于转向模型的防死锁机制,转向模型采用本案申请人的在先中国专利申请 201410238744. 7 所记载的 0ETM(0dd-Even_basedTurnModel)转向模型。相对于基于VC 技术的防死锁机制,这类基于转向模型的防死锁机制能够显著地节省开销。
[0114] 进一步地,图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技术所带来较大的存储空间和复杂的控制逻辑,能够降低开销。
[0115] 这里需要说明的是,图6只是0ETM-共24种转向模型的一个实例,其他23种模 型是以图6所示模型分别基于图5所示坐标系中XY平面、YZ平面和XZ平面对称的三维转 向模型。本发明可以使用0ETM中的任意一种模型引导路由算法的执行。
[0116] 更进一步地,在一个优选实施例中,考虑到需要面向存在故障的片上网络,因此, 较高的故障率可能导致在最短路径上无法选择合适的中间节点。此时,需要在不违反上 述转向模型的基础上在非最短路径上选择中间节点。即,所述步骤23中,在每一个当前 节点,它的中间节点都应该在最短路径上优先选择,保证尽可能少的跳数。在无法在最短 路径上无法选择合适的中间节点或非最短路径上的可选中间节点不唯一的情况下,基于 NoP(Neighbors-on-Path)端口选择机制选出中间节点。根据本发明的一个实施例,可以采 用文献:AsciaG.,etal.,"ImplementationandAnalysisofaNewSelectionStrategy forAdaptiveRoutinginNetworks-on-Chip,,'inIEEETransactionsonComputers,V olume:57,Issue:6, 2008,pp. 809-820?所记载的NoP端口选择机制。
[0117] NoP是一种流量感应机制,根据可选端口的流量感应情况,选取流量最小的可选端 口输出数据包,避开通信密集区域,减少冲突的发生,从而降低通信时延,提高吞吐量。NoP 机制适用于最短路径或非最短路径上的可选中间节点不唯一的情况下使用。另外,需强调 的是,邻接节点故障矩阵信息和NoP机制相关信息皆是通过端口信号线直接传送至路由器 内部的对应处理单元,并不使用路由器的输入端口Buffer,因此Buffer故障并不会影响到 故障矩阵
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1