CN112073314A - 容忍多故障的大规模三维片上网络确定性路径路由方法 - Google Patents
容忍多故障的大规模三维片上网络确定性路径路由方法 Download PDFInfo
- Publication number
- CN112073314A CN112073314A CN202010791331.7A CN202010791331A CN112073314A CN 112073314 A CN112073314 A CN 112073314A CN 202010791331 A CN202010791331 A CN 202010791331A CN 112073314 A CN112073314 A CN 112073314A
- Authority
- CN
- China
- Prior art keywords
- link
- fault
- chip
- dimensional network
- links
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种容忍多故障的大规模三维片上网络确定性路径路由方法,该方法在三维片上网络的每个节点上维护一路由表,各节点基于该路由表进行在线路由,所述路由表在检测到故障时动态更新,所述更新包括:采用Tarjan算法计算三维片上网络的最大强连通分量以弃用不能正常工作的节点;基于构建的三维转向模型对位于边界的故障链路进行处理,使得每个链路簇有且只有一个禁止转向对,更新路由表;以预设的绕路规则对位于内部的故障链路进行处理,更新路由表。与现有技术相比,本发明不仅能使片上网络承受多种故障的影响,而且能最大限度地利用重构后的片上网络中的可用节点,在平均延迟、吞吐量和能耗方面,本发明性能均优于现有解决方案。
Description
技术领域
本发明涉及片上网络可靠性设计与开发技术领域,尤其是涉及一种容忍多故障的大规模三维片上网络确定性路径路由方法。
背景技术
片上网络是一种新的片上系统内各知识产权核之间的通信方法。大规模的片上网络是超级计算机的重要组成部分,它能将芯片之间的大量并行通信移动到芯片内部以减少传输延迟,从而显著提高计算性能。同时,采用先进的三维集成技术能进一步提高大型片上网络加工核心的密度。然而,大规模的片上网络存在多故障问题,目前三维技术的不成熟也导致了硅通孔的故障率较高,进一步加剧了多故障问题。若直接弃用出现故障的大型片上网络,其产量将非常低,生产成本将高得不切实际。为保持大规模片上网络的高产量,一种可行的解决方案是实现更多的处理路由器并弃用有故障的节点和链路,只要芯片上的可用节点数达到设计要求,该存在故障的芯片依旧能正常工作。因此,迫切需要一种路由算法来容忍大规模片上网络在制造和运行阶段可能发生的潜在故障。
研究人员先后提出多种片上网络的容错技术。比如一种局部自适应路由的算法,它能较好地容忍片上网络的单点故障以避免死锁,但鲜有技术是针对多故障而开发的;又如一种循环路由算法,它能降低片上网络中心的拥塞和容错能力,但该算法没有提供数据包传输的短路径;采用基于哈密顿路径的两个虚拟信道的路由算法能容忍片上网络上的单个故障且避免死锁,FL-RuNS方案能容忍三维片上网络上的单个故障且避免死锁,但虚拟信道往往需要巨大的开销;ERFAN算法采用一个巨大的表来记录从路由器的每一个端口到每一个可能的目标节点的跳数,但不能完全容忍多个故障的影响;区域防御方法能通过牺牲不安全区域中的所有无故障节点来承受多个故障的影响,容错最小路由方法进一步尝试在容忍多个故障时最小化路由路径,但无故障节点的过度牺牲使这两种算法不能适用于故障较多的大型片上网络,因为计算的可用节点数难以满足设计要求。因此,能在大规模三维网络控制系统中容忍多故障的确定性路径路由算法的开发非常有必要。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种容忍多故障的大规模三维片上网络确定性路径路由方法,路由可靠性高。
本发明的目的可以通过以下技术方案来实现:
一种容忍多故障的大规模三维片上网络确定性路径路由方法,该方法在三维片上网络的每个节点上维护一路由表,各节点基于该路由表进行在线路由,所述路由表在检测到故障时动态更新,所述更新包括:
采用Tarjan算法计算三维片上网络的最大强连通分量以弃用不能正常工作的节点;
基于构建的三维转向模型对位于三维片上网络边界的故障链路进行处理,使得每个链路簇有且只有一个禁止转向对,更新路由表;
以预设的绕路规则对位于三维片上网络内部的故障链路进行处理,更新路由表;
所述三维片上网络整体视为三维有向图,基于行、列、层的顺序对每个节点进行编号,各节点编号i的表达式为:
i=x+y×MX+z×MX×MY
其中,(x,y,z)表示节点i的三维坐标,MX、MY分别为三维片上网络最大行数和最大列数,该编号方式能方便后续故障链路的处理以提高路由可靠性。
三维片上网络中的一条链路,按编号大小定义其高端节点和低端节点,X轴的所述链路簇为低端节点具有相同的X坐标,而高端节点也具有相同的X坐标的X轴链路的集合,Y轴和Z轴同理。
进一步地,所述路由表基于广度优先遍历策略生成。
进一步地,所述三维转向模型中,将(X+,Y-),(X+,Z-),(Y+,X-),(Y+,Z-),(Z+,X-),(Z+,Y-)这六个转向设定为禁止转向对。
对位于三维片上网络边界的故障链路进行的所述处理包括:
当故障链路出现在三维片上网络的南下、西下或西南边界时,将其反向的链路也设置为故障链路,并将其称为弃用通道;
当故障链路位于X轴,且其南邻通道和下邻通道为弃用通道时或当故障链路位于Y轴,且其西邻通道和下邻通道为弃用通道时或故障链路位于Z轴,且其南邻通道和西邻通道为弃用通道时,设置故障链路和它反向的链路为弃用通道;
当一个节点的西向、南向和下行通道不都是弃用通道,但其西向、南向和下行的输出链路是故障链路时,将该节点设置为弃用节点。
进一步地,每个链路簇的一个禁止转向对通过以下步骤选择:
101)针对一故障链路,选择包含该故障链路的链路簇,从边界开始按从Z+、Y+、X+方向的先后顺序,检查链路簇中是否存在无故障链路,如果存在则进一步检查所选无故障链路的高端节点与故障链路之间是否存在无故障的连接链路,如果存在则执行步骤102),否则将所选无故障链路设置为假设故障链路并返回步骤101)搜索另一个无故障链路,
102)检查所述无故障的连接链路所在的链路簇是否包含弃用通道,若包含则选择另一个无故障的连接链路,并返回步骤102),否则确定所选链路和相连链路构成当前链路簇的单禁止转向对;
103)在处理完该链路簇后,将假设故障链路设为无故障链路。
进一步地,在步骤102),若遍历所有链路后未找到单禁止转向对,则执行Tarjan算法对三维片上网络进行降解。
进一步地,在选择三维片上网络单链路簇中单禁止转向对后的更新路由表的过程包括:
对链路簇中的每个故障链路进行单独处理,选择一个未处理的链路并逐步检查其上行、东邻和北邻的链路,如果一个相邻链路是故障的,则继续检查其他相邻链路,否则将单独检查其连接的链路是否连接到其他故障链路;如果相连链路属于所选禁止转向对则不需要处理,否则将高端区域中的相连链路及其并行链路都设置为假设故障链路;当检查了所有的相邻链路后,将未处理的故障链路设置为已处理;处理完所有故障链路后,更新相关节点的路由表。
进一步地,对位于三维片上网络内部的故障链路,根据故障链路的类型选择对应绕路规则进行处理。
进一步地,所述预设的绕路规则包括:
当生成的路径位于东向或西向故障链路的高端节点与其低端区域中的节点之间时,设置位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行或上行链路为假设故障链路,同时,设置故障链路的高端区域与高端节点北向通道所在链路簇的重叠区域内的所有南向或北向链路为假设故障链路;
当生成的路径位于北向或南向故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行或上行链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有北向或南向链路为假设故障链路;
当生成的路径位于上行或下行故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路的高端节点北向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行或下行链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行或下行链路为假设故障链路。
进一步地,以预设的绕路规则对位于三维片上网络内部的故障链路进行处理后,检验三维片上网络是否为强连接,若不是则执行Tarjan算法进行降维。
与现有技术相比,本发明具有如下有益效果:
1、本发明对故障链路进行关于禁止转向对选择和绕路规则的处理,能在没有虚拟通道的情况下发挥作用,能在三维片上网络上实现无死锁通信。
2、本发明的路由算法不仅能容忍很多故障,还能保证交换机在一个周期内的最大延时。
3、本发明方法构建的三维转向模型能准确模拟并避免三维片上网络中的死锁问题。
4、本发明方法采用Tarjan算法的动态重构,能最大限度地提高重构后节点的可用性。
5、本发明方法在平均延迟、吞吐量、能耗、耗时方面的性能均优于现有的解决方案。
附图说明
图1为大规模三维片上网络的单层结构示意图;
图2为本发明确定性路径路由方法的总体设计图;
图3为无故障三维片上网络中的可能转向示意图;
图4为三维片上网络禁止转向的路径选择流程图,其中,(4a)为单禁止转向对的选择流程图,(4b)为更新路由表以避免额外的禁止转向的流程图;
图5为三维片上网络中允许单禁止转向对的策略例图,其中,(5a)为单禁止转向对选择示意图,(5b)为避免额外禁止转向对的路由表更新示意图;
图6为根据绕行规则的更新路由表的流程图;
图7为三维片上网络中针对故障链路的绕路规则例图,(7a)为禁止转向(X+,Z-)下应用绕路规则D1例图,(7b)为禁止转向(X+,Y-)下应用绕路规则D1例图,(7c)为禁止转向(Y+,Z-)下应用绕路规则D2例图,(7d)为禁止转向(Y+,X-)下应用绕路规则D2例图,(7e)为禁止转向(Z+,Y-)下应用绕路规则D3例图,(7f)为禁止转向(Z+,X-)下应用绕路规则D3例图;
图8为三维片上网络中出现两个禁止转向对情况的例图,其中,(8a)为禁止转向(X+,Z-)导致的异面环例图,(8b)为禁止转向(Z+,X-)导致的异面环例图,(8c)为由弃用Y轴链路产生的第二个禁止转向对例图,(8d)为由弃用Y轴链路产生的另一第二个禁止转向对例图;
图9为本发明方法对于片上网络的离线计算时间比较图,其中,(9a)为二维NoCs上的计算时间比较图,(9b)为三维NoCs上的计算时间比较图,(9c)为不同数量故障下的计算时间比较图;
图10为本发明三维转向模型各方向的定义示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一、相关定义与相关指标
1.相关定义
片上网络(Network On Chip,NoC):片上网络是一种新的片上系统内各个IP核之间的通信方法。NoC是多核技术的重要组成部分,为片上通信带来了一种新的思路,其明显优于传统的基于总线的系统。基于NoC的系统更加适用于未来多核复杂的SoC设计中的局部同步全局异步的时钟机制。NoC解决了片上系统架构的可扩展性问题以及相关的片上互连问题,并提供了一种高效的片上通信的方法。片上网络的拓扑结构确定了片内每个IP核节点的连接方式,拓扑结构直接影响网络的复杂性和吞吐量。它是NoC设计的关键部分之一。它通常需要具有灵活性,可扩展性和可重用性。同时要求连接数较少,网络直径较小,以获得更低的网络延迟。
死锁(Deadlock):死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
HamFA算法(HamFA Algorithm):HamFA算法是一种简单可行的路由算法,它可以容忍链路故障。该算法为NoC的每个节点分配HamFA ID,然后根据这些HamFA ID将网络划分为两个子通道:升序通道和降序通道。该算法还设置从当前节点到北邻居(或南邻居)节点的链路作为快速链路。路由器更倾向于通过快速链路发送数据包。当故障出现在快速链路上时,路由器使用上行路径(或下行路径)。因此,该算法通常容忍单个故障的影响。但是,当快速路径与下行(或上升)路径重合,并且故障刚好出现在相应的链路上时,该算法将无法容忍这样的故障。
三维片上网络的弃用链路(Deprecated Links in 3D NoCs):为禁止死锁的发生且减少牺牲节点的数而提出了一些路由规则,其中制定的预处理步骤中在某些特定情况下主动设置某些在特定位置的链路为故障链路,这些链路被称为三维片上网络的弃用链路。
三维片上网络的异面环(Faceted Ring in 3D NoCs):在三维片上网络中,当某些故障发生的时候可能会形成异面环,这种异面环可能会导致死锁现象的发生。
2.相关指标
为了评估片上网络容错路由算法的性能,通过下列指标进行评价:
平均延迟:数据包传输的平均延迟(Average Latency)是度量路由算法性能的一个重要指标,平均延迟定义为从处理元件(PE)发出的消息的发起与数据包完全递送到目的地的时间之间的周期数的平均值。
吞吐量:吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。在片上网络中,吞吐量作为另一个性能度量,定义为在总仿真周期中接收到的分组的数量。
可靠度:可靠性指元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。可通过可靠度、失效率、平均无故障间隔等来评价产品的可靠性。在片上网络的容错路由算法中,可靠性的度量是单位时间内注入的总分组数量除以单位时间内接收到的总分组数量的商。如果所有注入的分组到达其目的地,则认为网络是可靠的。即使只有一个分组没有到达目的地,网络也被视为不可靠的。
能耗:能耗是指在总仿真周期中,NoC所有元器件,包括路由器、处理器、链路等所消耗的总的能量,单位为焦耳(J)。
二.本发明原理
本发明提供一种在大规模三维片上网络中容忍多故障的确定性路径路由算法(Deterministic-Path Routing Algorithm for Tolerating Many Faults on Wafer-Level Three-Dimensional NoC,DPRA),如图2所示,该方法在片上网络的每个交换机上维护一路由表,各节点基于该路由表进行在线路由,所述路由表在检测到故障时动态更新,更新包括:采用Tarjan算法计算三维片上网络的最大强连通分量以弃用不能正常工作的节点;基于构建的三维转向模型对位于三维片上网络边界的故障链路进行处理,使得每个链路簇有且只有一个禁止转向对,更新路由表;以预设的绕路规则对位于三维片上网络内部的故障链路进行处理,更新路由表。
1.基于广度优先遍历生成路由表的方法
本发明中,路由表基于广度优先算法遍历生成。该算法的核心思想是采用路由表来进行在线路由操作,把生成路由表的操作在离线进行,以提高NoC的整体性能。生成路由表时,将NoC网络整个视为三维有向图,每一个节点对应图中的节点,每一条链路对应有向图中的一个有向边,对于故障链路和故障节点,直接将其中有向图中删除对应的节点和边。以当前节点作为起始节点,对NoC网络采用广度优先遍历,生成一棵路由树。在路由树中,根节点到达每个节点的路径就是NoC中当前节点到达目的地节点的路由路径。
由于在路由器中存储一棵树会有很大的硬件开销,于是根据这棵树可以生成一张路由表,每个节点都需要配备这样一个路由表,路由表中记录了当前节点发往目的地节点的下一跳方向,这样能在NoC中以更小的硬件开销实现DPRA。
2.基于Tarjan算法实现可降解与动态重配置方法
当NoC中产生众多的故障时,可能会导致有一些节点不能正常工作,这种不能正常工作的节点包含以下五种情况:
所有以该节点为终点的链路都是故障链路,但是存在以该节点为起点的健康的链路。这就会导致该节点不能再接受任何其他节点发送的数据包;
所有以该节点为起点的链路都是故障链路,但是存在以该节点为终点的健康的链路。这就会导致该节点不能再向任何其他节点发送数据包;
与该节点所有直接相连的链路都是故障链路,这就会导致该节点不能发送和接受任何数据包;
该节点可以正常转发数据包,但是与本地IP相连的本地链路是故障链路。这就导致该节点不能正常产生和接受数据包;
该节点本身是一个完全故障的节点,无法正常工作。
对于符合以上五种情况其中之一的节点,需要对其进行舍弃,然后对NoC进行降解使用,这样虽然会略微降低NoC的整体性能,但是可以保证NoC还是可以正常工作,不会出现丢包或其他异常产生。
对于NoC在运行过程中动态产生的故障,也可能会导致原本可以正常使用的路由路径不能连通,这时候就需要动态监测NoC中的动态故障,并重新对整个NoC网络进行计算和配置,以使其能够应对动态故障。
3.三维片上网络上的Turn Model
避免死锁是路由算法设计中的一个严峻的挑战,虽然已经有很多避免死锁的方案,但是都有各自的缺陷。比如使用虚拟信道的方案会造成较大的面积开销和能耗开销。使用Turn Model的方案会造成禁用了某些唯一的路径,导致原本可达的路由不可使用等等。而路由死锁会严重影响路由算法的性能,因此容错路由算法必须支持避免路由死锁。
三维片上网络的转向模型(Turn Model in 3D NoCs)指出只要在路由中不存在路由环,就不会发生死锁。本发明提出的三维片上网络上转向模型的思想是在所有路由转向中禁止(X+,Y-),(X+,Z-),(Y+,X-),(Y+,Z-),(Z+,X-),(Z+,Y-)这六个转向发生,因此路由环就不会发生,也就能避免死锁的发生。这种通过禁止某些特定的传输转向来避免死锁的模型被称为片上网络的转向模型。
首先,本发明定义了一些变量来描述三维片上网络的基础参数,令pi(x,y,z)为第i个节点,其中x、y和z分别为其X,Y和Z坐标。NoC的最大行数、最大列数和最大层数分别由MX、MY和MZ表示。以最底层第一行第一列的节点为原点,优先对片上网络行的编号,然后是列,最后是层,由此也能按照下方公式计算出每个节点的编号:
i=x+y×MX+z×MX×MY x,y,z∈[0,MX),[0,MY),[0,MZ)
设(pi,dj)表示第i个节点向dj方向发送的第j个数据包。对于三维片上网络,dj方向被表示为X+/X-、Y+/Y-或Z+/Z-,以表示数据包的X、Y、Z坐标增加或减少1,上述方向也称为东/西、北/南或上/下,如图10所示。此外,还可使用(pi,dj)来表示三维片上网络中的一个链路,其高端节点表示较大数字的端点,低端节点表示另一个端点。在图10中,n10和n9分别是链接(n9,X+)的高端节点和低端节点。以X轴为例,如果一个链路的dj为X+/X-,则称该链路为X轴链路,它和它的反向链路构成一个X轴通道。此外,本发明使用X轴链路簇(X-linkcluster)来表示一组X轴链路,其低端节点具有相同的X坐标,而高端节点也具有相同的X坐标。本发明还定义X轴链路的高端(或低端)区域来表示其X坐标不低于(或不高于)该链路的高端(或低端)节点的区域中所有链路和节点。Y轴和Z轴的情况同理。
三维片上网络具有两个性质,分别是死锁现象发生的必要条件是可能的传输构成环(性质一)以及形成环的必要条件是环形上所有方向的转向累加和在每个坐标处的值为零(性质二)。而基于上述转向模型的三维片上网络能够实现无死锁。
4.三维片上网络的确定性路由算法整体框架
本发明提供一种确定性路径路由方法DPRA,为每个路由器离线生成一个路由表,然后根据路由表请求路由器在线转发数据包。在脱机阶段,DPRA首先读取关于三维片上网络节点和错误链接的配置信息,然后应用广度优先遍历算法,为三维片上网络中的每个节点生成一个路由表。不论三维片上网络的拓扑结构和故障分布如何,广度优先遍历算法都确保能搜索到现有的所有传输路径,同时也能最小化传输路径的长度。
当故障发生导致多个节点无法访问时,DPRA使用Tarjan算法搜索三维片上网络拓扑中的强连接组件,然后利用其最大强连接分量对故障节点进行降级处理。此操作可确保降级三维片上网络中可用节点的数量最大化。随后,DPRA基于单链路簇中单禁止向量对策略及绕路规则更新一些节点的路由表,以避免三维片上网络中的死锁。
在联机阶段,DPRA首先使用其他通道(例如测试通道)向交换机加载路由表,然后每个交换机通过读取本地存储的路由表来确定传输数据包的跳转方向。联机在线操作非常简单,其硬件实现的最大延迟永远不会超过一个周期。
DPRA算法在三维片上网络中能容忍很多错误。首先,DPRA中的广度优先遍历算法能够为三维片上网络生成路由表;其次,DPRA中的Tarjan算法可以处理三维片上网络中多种故障的影响,该算法首先检测故障的三维片上网络是否是强连通的,如果三维片上网络不是强连通的,则算法搜索最大的强连通分量,DPRA则使用该分量形成降级后的三维片上网络。接着,DPRA再次应用广度优先遍历算法来为新的三维片上网络生成路由表,便可以绕过错误的链接,使用新的路由树向目标节点发送数据包。
5.三维片上网络的单链路簇中单禁止转向对策略及绕路规则
在一个无故障的三维片上网络中,DPRA确保片上网络无死锁,这是因为该方法首先对三维片上网络的行编号,然后是列编号,最后是层编号,DPRA算法优先遍历节点的最小编号来生成路由表,而单禁止转向对策略及绕路规则的设置使数据包沿着特定的转向进行传输,六个禁止转弯不会发生。图3显示了给定节点的所有可能的转向,其中没有禁止转向的存在。DPRA算法是一个禁止正反转向的路由算法,在任何良好的三维片上网络都是无死锁的。
然而,当某一些故障发生的时候,可能出现异面环,其可能导致死锁现象的发生。比如一条故障链路在三维片上网络的南下边界出现,路由算法不能沿着允许的转向绕过这样的故障链路,在二维片上网络中,即使发生了禁止转向,边界上的这些故障链路也会阻止禁止转向形成圆环,因此DPRA只是将它们设置为弃用链路,并能确保二维片上网络无死锁。在三维片上网络中,这些故障链路可能导致两个禁止转向(X+,Z-)和(Y+,X-),从而形成异面环,在环上可能发生死锁。因此,DPRA需要一些新的策略来避免三维片上网络中异面环的出现。
本发明以此为根据对DPRA进行了改良。首先,针对三维片上网络边界的故障链路开发了三种预处理操作。第一(FP1),当故障链路出现在三维片上网络的南下(或西下或西南)边界时,我们将其反向的链路也设置为故障链路,并将其称为弃用通道。第二(FP2),当故障链路位于X(或Y、Z)轴,且其南邻(或西邻或南邻)通道是弃用通道(如果存在),并且下邻(或下邻或西邻)通道也是弃用通道(如果存在)时,我们就设置故障链路和它反向的链路都为弃用链路。第三(FP3),当一个节点的西向、南向和垂直向下的链路不都是弃用通道,但其西向、南向和垂直向下的输出链路是故障链路时,我们将该节点设置为弃用节点。
一般来说,路由算法只沿允许的转向是不能绕过三维片上网络那些位于边界的错误链路的,由于禁止转向是不可避免的,DPRA设置了可能导致禁止转向的故障链路,并将其反向链路设置为弃用链路。在分析了故障链路所导致的禁止转向后,我们发现了性质三,即单个由弃用链路产生的禁止转向对不能构成多面环。由此,我们提出了允许单链路簇中弃用链路使用单个禁止转向对的策略以解决异面环问题,该策略的核心思想是只允许一个禁止转向对出现在一个链路簇中,而弃用链路也位于该链路簇中。
三维片上网络禁止转向的路径选择算法流图如图4所示。在第一阶段,禁止转向的路径选择算法确定每个链路簇有且只有一个禁止转向对,如图(4a)所示。具体来说,该算法选择一个这样的链路簇并从边界开始搜索无故障链路,根据优先级,先从Z+方向开始,然后从Y+方向开始,最后从X+方向开始,检查链路簇中是否存在无故障链路,如果存在侧进一步检查所选链路的高端节点与链路簇中故障链路之间是否存在无故障的连接链路,如果其也存在则继续,否则将所选链路设置为假设故障链路并搜索另一个无故障链路,在处理完该链路簇后,将假设故障链路设为无故障链路。接着,检查相连链路所在的链路簇是否包含故障链路,若包含则为了避免一个链路簇中存在多个禁止转向对,则返回并选择另一个相连的无故障链路,否则便确定所选链路和相连链路构成当前链路簇的单禁止转向对。该算法将一直执行直到找到单个禁止转向对,如果遍历了所有的链路却仍然找不到合适的对时,则执行Tarjan算法来降解三维片上网络。
在链路簇中,基于该路由算法在故障链路低端区域的节点与故障链路高端节点起的延长线上的节点之间产生数据包传输时,不可避免会产生禁止转向。在第二阶段,禁止转向的路径选择算法更新上述节点的路由表,使数据包沿选择的转向对通过链路簇,如图(4b)所示。该算法对链路簇中的每个故障链路进行单独处理。未在初始状态下,所有故障链路都未被处理。算法选择一个未处理的链路并逐步检查其东邻和北邻的链路,如果一个相邻链路是故障的,算法则继续检查其他相邻链路,否则算法将单独检查其连接的链路是否连接到其他故障链路。如果相连链路属于所选转向对则不需要处理,否则算法将高端区域中的相连链路及其并行链路都设置为假设故障链路。因此,该算法阻塞了所有可能形成额外禁止转向的连接链路,并迫使片上网络沿着所选转向对进行数据包传输。当算法检查了所有的相邻链路后,它将未处理的故障链路设置为已处理。算法处理完所有故障链路后,更新相关节点的路由表。
图5展示了禁止转向路径选择算法的应用示例。在识别出图(5a)中的故障链路后,该算法选择包含该故障链路的链路簇(n1,n2)。该算法从南下边界开始搜寻无故障链路。首先,它沿着Z+方向进行无故障链路的搜索,但该方向所有链路都是故障链路。接着,它沿着Y+方向搜索,发现(n5,n6)是无故障链路。此外,其相连链路(n2,n6)也是无故障的。然而(n2,n6)的链路簇包含着一个故障链路(n0,n4),并且(n2,n6)是唯一的连接链路。因此,算法将所选择的链路(n5,n6)也设置为一个假设故障链路。随后,它找到另一个沿Z+方向的无故障链路(n17,n18),其相连链路(n6,n18)也是无故障的,且(n6,n18)的链路簇不包含任何故障链路。最后,算法确定由所选链路和相连链路组成的单禁止转向对,如图(5a)中的(n17,n18)和(n18,n6)。
在图(5b)中,禁止转向的路径选择算法更新了片上网络的路由表,避免了额外的禁止转向。首先,算法检查故障链路(n1,n2),其所有邻接链路都是故障链路,不需要对其进行任何处理。接下来,算法检查故障链路(n13,n14),其北邻链路(n17,n18)不是故障链路,算法进一步检查(n17,n18)的相连链路(n6,n18),它属于所选的禁止转向对,所以不需要处理。然而,(n14,n18)不属于所选的转向对,因此算法将该链路及其平行链路(n15,n19)设置为假设故障链路(假设弃用链路),此后,算法将(n6,n10)、(n7,n11)、(n26,n30)和(n27,n31)也设置为假设故障链路。由于该算法阻塞了所有可能形成额外禁止转向的连接链路,低端区域节点与延长线上节点之间的传输路径必须通过所选的转向对。例如,n8必须沿着图(5b)中带箭头路径向n2传输数据包。综上所述,该策略阻塞了所有形成新禁止转向的通道,因此确保了在弃用链路所在的链路簇中只存在单个禁止转向对。
由性质三可知,由于禁止转向的路径选择算法保证了拥有故障链路的链路簇只能包含一个禁止转向对,因此包含一个这样的链路簇的三维片上网络是无死锁的。在实现禁止转向的路径选择算法后,包含多个这样的链路簇的三维片上网络仍然没有死锁。
除弃用链路外,本发明路由算法还为不在三维片上网络边界的故障链路设置了三种绕路规则,能通过规则绕过这些故障链路,避免不允许的禁止转向,这些规则的关键思想在于通过假设某些链路为故障链路以避免所有可能形成的禁止转向的链路。图6显示了为故障链路更新路由表的算法流程图。首先,检查故障链路的类型,然后根据绕行规则,设置一些假设故障链路。如果在这些规则的执行之后,片上网络不再是强连接的,则使用Tarjan对片上网络进行降维;否则,更新故障链路的高端节点、低端区域节点和传输路径上其他节点的路由表。最后,它将假设故障链路设置回无故障链路。
第一条绕路规则(D1)为,当生成的路径位于东向(或西向)故障链路的高端节点与其低端区域中的节点之间时,设置位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行(或上行)链路为假设故障链路,同时,设置故障链路的高端区域与高端节点北向通道所在链路簇的重叠区域内的所有南向(或北向)链路为假设故障链路;
第二条绕路规则(D2)为,当生成的路径位于北向(或南向)故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行(或上行)链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有北向(或南向)链路为假设故障链路;
第三条绕路规则(D3)为,当生成的路径位于上行(或下行)故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路的高端节点北向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行(或下行)链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行(或下行)链路为假设故障链路。
运用这些规则之后,如果片上网络不再是强连接的,则使用Tarjan算法对片上网络进行降解;否则,将生成传输路径,更新故障链路的高端节点、低端区域节点和传输路径上其他节点的路由表。
图7给出了一些针对故障链路的绕行规则示例。首先,如果东邻链路出现故障,路由算法可能会产生禁止转向(X+,Z-)和(X+,Y-)。因此,该算法在生成n18与链路低端区域(n17、n18)节点之间的传输路径时,必须弃用部分链路以避免这些转向。以(X+,Z-)为例,根据第一条绕路规则,将故障链路高端区域与(n18,n30)的链路簇重叠区域内的所有下行链路都设为假定为故障链路,如图(7a)所示。当低端区域的一个节点n29向n18发送一个数据包时,所有可以形成禁止转向的下行链路都会被设置为故障链路。数据包沿着Z轴方向传输,直到绕过故障链路,这样就不会出现禁止转向(X+,Z-)。出于同样的原因,图(7b)所示的禁止转弯(X+,Y-)也能被避免。
其次,当北邻链路发生故障时,可能会出现禁止转向(Y+,Z-)和(Y+,X-)。以(Y+,X-)为例,根据第二条绕行规则,我们设定了一些假设故障链路,如图(7c)所示。所有可以构成禁止转向的北邻链路都被设置为故障链路,这样数据包就会沿着Z轴方向传输,直到它绕过故障链路,转向(Y+,Z-)就不会发生。出于同样的原因,转向(Y+,Z-)也得到了避免,如图(7d)所示。
另外,当上行链路出现故障时,可能出现禁止转向(Z+,Y-)和(Z+,X-)。如果根据第三条绕行规则将一些链路设为图(7e)和图(7f)所示的故障链路,则路由算法能完全避开(Z+,Y-)和(Z+,X-)的禁止转向,从而绕过故障链路。
通过上述策略和规则,本发明DPRA能保证三维片上网络在不使用任何虚拟信道的情况下无死锁现象。
上述括号中的方向选择均为一一对应关系。
三.实验结果及分析
本实验基于DPRA算法评估了三维片上网络在可靠度、延迟、吞吐量、能量、交换机单跳延迟和硬件面积开销方面的性能。为了比较,本实验使用XYZ路由算法和HamFA算法作为参考。
本发明提出的算法称为DPRA。可靠度是片上网络容错路由算法的一个重要评估指标,该指标表明路由算法将数据包发送到目的地的准确率。本实验对HamFA和DPRA进行可靠度的实验对比,在8*8*4的片上网络中实现HamFA和DPRA,并分别注入10、20、30、40个链路故障,分组进行多次实验,对实验结果进行取平均值。表1显示了8*8*4的三维片上网络中应用两种算法的可靠度实验结果。实验结果证明了DPRA在容忍众多故障方面的强大能力。当向片上网络注入许多故障链路时,无论故障链路的数量如何,DPRA的可靠性始终保持在较高水平。这是因为只要两个节点之间存在路径,广度优先遍历总可以找到该路径并沿该路径发送数据包。死锁避免规则也成功避免了片上网络中的死锁,它们确保目的地节点可以准确地接收数据包。作为比较,当故障链路数量增加时,HamFA的可靠性会迅速下降,这是因为HamFA不能容忍许多故障的影响,即使在升序路径(或降序路径)与快件链路重叠的链路上发生单个故障,通过该链路传输的分组也不能到达其目的地。
表1 DPRA和HamFA的可靠度性能对比实验结果
可靠度(%) | 10个故障链路 | 20个故障链路 | 30个故障链路 | 40个故障链路 |
DPRA | 100.0 | 100.0 | 100.0 | 100.0 |
HamFA | 93.1 | 82.8 | 74.5 | 53.9 |
表2展示了XYZ、HamFA、DPRA在注入不同故障数量的情况下的平均延迟对比。从实验结果中可以看出,在无故障时DPRA延迟会略高于XYZ路由算法,略低于HamFA。这是由于DPRA采用了额外的硬件开销并且需要执行查表得出下一跳路由方向,而XYZ路由算法计算简单,但DPRA的在线路由计算相对于HamFA又更为简单。在注入20个故障的情况下,DPRA的延迟又会略微升高,这是由于故障可能会导致数据包采取的路径并不是曼哈顿距离。
表2不同路由算法的延迟性能对比实验结果
在片上网络中,吞吐量作为另一个性能度量,定义为在总仿真周期中接收到的分组的数量,吞吐量表明了片上网络对数据包的容纳和处理能力。表3展示了XYZ、HamFA、DPRA在注入不同故障数量的情况下的吞吐量对比。从实验结果中可以看出,在无故障时DPRA相较于XYZ,吞吐量几乎一致;在注入20个故障的情况下,DPRA吞吐量会略低于无故障的XYZ路由,这也是合乎情理的。另外,DPRA在无故障和有故障的情况下都要好于HamFA。在没有故障的情况下,HamFA的性能落后于DPRA,当故障发生时,差距变得更加明显。在HamFA算法中,一些数据包通常必须通过较长的升序路径(或降序路径)传输,或者在出现某些故障链路时永远等待缓冲区,这会降低片上网络的性能。
表3不同路由算法的吞吐量性能对比实验结果
表4展示了XYZ、HamFA、DPRA在注入不同故障数量的情况下的能耗对比。从实验结果中可以看出,在无故障时DPRA相较于XYZ,能量消耗几乎一致;在注入20个故障的情况下,DPRA吞吐量会略高于无故障的XYZ路由,这主要是因为在无故障时DPRA算法路由路径长度也是曼哈顿距离,较短的路由路径会产生比较小的能量开销,而在20个故障的情况下,DPRA的路由路径可能会更长。另外,DPRA在无故障和有故障的情况下都要好于HamFA,这主要是因为DPRA的简单的路由计算与较短的路由路径。
表4不同路由算法的能耗性能对比实验结果
根据进一步实验和分析,DPRA的硬件实现在三维片上网络中不会造成很大的延迟,几乎与XY和XYZ算法的延迟一致。因为DPRA在三维片上网络上的在线操作是从一个路由表的单跳方向读取数据。HamFA算法的时延要高于DPRA,因为它需要计算HamFA的ID,在HamFA ID与节点坐标之间进行转换,然后确定跳转方向,这些操作导致其硬件实现的延迟。此外,在合成过程中,HamFA算法在3×3×4、5×5×4、6×6、10×10三维片上网络中引入额外的分频器来计算其ID。综上所述,DPRA的简单在线操作确保了它永远不会破坏在单个循环中执行跳转操作的时间限制。
DPRA的面积开销在三维片上网络中也是合理的。DPRA的大部分计算都是离线完成的,只需要一个简单的寄存器阵列就可以为它每个目标节点提供一个在线的跳转方向。HamFA算法相比于DPRA具有更低的区域开销,因为它只使用简单的错误链接的本地信息。然而,由于缺乏故障链路的全局配置,HamFA很难承受多个故障的影响。因此,使用简单路由表的在线路由方法是一种减少面积开销的巧妙方法。
根据图9所示,DPRA的计算时间是可以接受的。首先,DPRA使用类似于邻接表的数据结构来存储三维片上网络的拓扑结构,在基于网格的三维片上网络架构中,每个节点都有相邻的边,并且边的数目都是常数。因此,广度优先遍历和Tarjan算法具有低阶多项式级的时间复杂度。随着节点数量的增加,无故障或有故障的三维片上网络中DPRA的计算次数缓慢增加。然后,在三维片上网络中更新路由表的算法具有多项式级的时间复杂度,因为这些算法分别检查了故障链路及其邻居链路。随着故障数量的增加,三维片上网络的DPRA计算次数也平稳增加。因此,DPRA的整体时间复杂度是多项式级的。此外,超大规模三维片上网络的节点数受晶圆片尺寸的限制,计算总时间不会达到很大。最后,该算法离线完成路由表的计算,不会影响三维片上网络的性能。
四.性质及其证明
性质一:三维片上网络上死锁现象发生的必要条件是可能的传输构成环
一旦存在这样的一个环,那么环上的每个转向的两个方向应该与开始的另一个转向和结束的另一个转向重叠。假设环上有n个转向,它们的转向对分别为(d0,d1),(d1,d2),(d2,d3),…,(dn-1,d0)。对于性质二来说,假设三维片上网络中形成的一个环有n个转向,其转向对分别为(d0,d1),(d2,d3),(d4,d5)…,(d2n-2,d2n-1)。根据该性质,这些转向对的累积和应满足下式。
我们将任何(+,-)方向对的转向设置为禁止转向,其中+或-表示包的某个坐标增加或减少。此外,我们还定义了两个传输路径重叠但方向相反的禁止转向。如果路由算法根据三维片上网络上的转向模型禁止(X+,Y-),(X+,Z-),(Y+,X-),(Y+,Z-),(Z+,X-),(Z+,Y-)这六个转向,那么在三维片上网络中就违背了形成环的必要条件,避免了死锁。
性质二:三维片上网络上形成环的必要条件是环形上所有方向的转向累加和在每个坐标处的值为零
利用反证法,假设即使在路由算法禁止上述转向的情况下,包传输仍然能使用剩余的转向数形成一个环。第一轮的dj-1可以是正的,也可以是负的。如果dj-1是正的,由于带有(+,-)方向对的转向是禁止的,所以环上转向的所有方向都是正的,这些方向在任何坐标下的和都不可能等于0,这违反了性质二,即证。如果dj-1是负的,后一个包的传输方向将变为正以满足性质二的要求,由于禁止任何(+,-)方向对的转向,一旦一个方向变成正的,它在环上的后一个方向就不能变回负的,这违反了性质一,因为最后一个转向的dj应该等于第一个转向的dj-1,应该是负数,即证这个假设是不正确的。因此,如果路由算法满足三维片上网络的转向模型要求,则可以避免传输转向形成环,使三维片上网络无死锁现象的发生。
性质三:三维片上网络上单个由弃用链路产生的禁止转向对不能构成多面环
利用反证法,假设一个由弃用链路产生的禁止转向对形成了异面环。首先,同对里的两个禁止转向不能出现在同一异面环中,因为它们的传输路径是相互重叠的。因此,在这样的一对中,该异面环只包含一个禁止转向。我们假设三维片上网络中存在许多已弃用的X轴链路,然后利用性质一和二证明了该情况下不能形成异面环,同理,我们也证明了其他单禁止转向对不能形成异面环,因此该性质是正确的。
性质四:DPRA能保证三维片上网络在不使用任何虚拟信道的情况下无死锁现象
利用反证法针对基于DPRA的三维片上网络进行无死锁证明。假设DPRA生成的路径在三维片上网络上形成一个异面环。根据前文所述的性质三,在片上网络中出现了多个禁止转向对,它们形成了异面环。由于该策略只允许在单链路簇中出现一个禁止转向对,因此至少有两个包含弃用链路的链路簇会导致这些禁止转向。
假设第一个链路簇包含弃用的X轴链路,DPRA选择图8中节点a和b之间的禁止转向对。根据采用的策略,第二对应该出现在弃用的X轴链路的低端区域或高端区域中。如果第二对出现在低端区域,它的两个端点必须穿过第一个转向对并与b节点交换包,然而它们的路径是重叠的,这与形成环的假设相冲突。如果第二对出现在高端区域,则可能是由于不支持X、Y或Z轴链路造成的。
首先,假设第二对是由弃用的X轴链路造成的。在这种情况下,第一对的两个端点位于第二对弃用的X轴链路的低端区域,因此a和b必须穿过第二个转向对,并与第二对弃用的X轴链路的高端节点(第二对的一个端点)交换数据包,然而它们的重叠路径也与假设相冲突。
其次,假设第二对是由弃用的Y轴链路造成的,第一对可能位于弃用的Y轴链路的低端或高端区域。如果第一对在图(8a)中的低端区域,这也与前一种情况中的假设相冲突。否则,第二轮对的至少一个端点位于第一个链接簇中弃用的X轴链路的扩展线上。因为路由算法优先从Z+方向选择无故障链路,然后从Y+方向选择无故障链路,所以第一个链路簇中Y坐标小于a和b的链路都是弃用链路。第二轮对的一个端点c的Y坐标也小于a和b的Y坐标,如图(8b)所示,因此c位于第一个链路簇中弃用的X轴链路延长线上。因此,a和c之间的路径和a和b之间的路径在第一个禁止转向对处重叠,这再次违反了假设。
第三,假设第二个转向对是由一对弃用Z轴链路(f,d)构成。基于策略,第一对可能在低端和高端区(f,d),但是不能出现在第一个X轴链路簇和Z轴链路簇(f,d)的正交部分。如果第一对在图(8c)所示的低端区域,其和d间的路径与b和d之间的路径重叠,这与假设相冲突。因此,第一对应该位于(f,d)的高端区域。如果第二转向对的一个端点位于弃用的X轴链路扩展线上,则违反了前面示例中的假设。如果第二个对的端点没有出现在任何扩展线上,那么第一对的a和b将出现在第二个簇中弃用Z周链路的扩展线上。在这种情况下,所有Z轴链路在第二个链路簇的X和Y坐标都不超过(f,d)在图(8d)中弃用的链路,a和b的X和Y坐标也比f和d的小。因此a和b应该通过第二个转向对并与c交换数据包,重叠路径再次违反假设。用同样的方法,我们可以证明由弃用的Y轴或Z轴链路引起的第一个禁止转向对不能形成环。综上所述,DPRA算法保证了三维片上网络在不使用任何虚拟信道的情况下无死锁。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,该方法在三维片上网络的每个节点上维护一路由表,各节点基于该路由表进行在线路由,所述路由表在检测到故障时动态更新,所述更新包括:
采用Tarjan算法计算三维片上网络的最大强连通分量以弃用不能正常工作的节点;
基于构建的三维转向模型对位于三维片上网络边界的故障链路进行处理,使得每个链路簇有且只有一个禁止转向对,更新路由表;
以预设的绕路规则对位于三维片上网络内部的故障链路进行处理,更新路由表;
所述三维片上网络整体视为三维有向图,基于行、列、层的顺序对每个节点进行编号,各节点编号i的表达式为:
i=x+y×MX+z×MX×MY
其中,(x,y,z)表示节点i的三维坐标,MX、MY分别为三维片上网络最大行数和最大列数。
2.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,所述路由表基于广度优先遍历策略生成。
3.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,所述三维转向模型中,将(X+,Y-),(X+,Z-),(Y+,X-),(Y+,Z-),(Z+,X-),(Z+,Y-)这六个转向设定为禁止转向对。
4.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,对位于三维片上网络边界的故障链路进行的所述处理包括:
当故障链路出现在三维片上网络的南下、西下或西南边界时,将其反向的链路也设置为故障链路,并将其称为弃用通道;
当故障链路位于X轴,且其南邻通道和下邻通道为弃用通道时或当故障链路位于Y轴,且其西邻通道和下邻通道为弃用通道时或故障链路位于Z轴,且其南邻通道和西邻通道为弃用通道时,设置故障链路和它反向的链路为弃用通道;
当一个节点的西向、南向和下行通道不都是弃用通道,但其西向、南向和下行的输出链路是故障链路时,将该节点设置为弃用节点。
5.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,每个链路簇的一个禁止转向对通过以下步骤选择:
101)针对一故障链路,选择包含该故障链路的链路簇,从边界开始按从Z+、Y+、X+方向的先后顺序,检查链路簇中是否存在无故障链路,如果存在则进一步检查所选无故障链路的高端节点与故障链路之间是否存在无故障的连接链路,如果存在则执行步骤102),否则将所选无故障链路设置为假设故障链路并返回步骤101)搜索另一个无故障链路,
102)检查所述无故障的连接链路所在的链路簇是否包含弃用通道,若包含则选择另一个无故障的连接链路,并返回步骤102),否则确定所选链路和相连链路构成当前链路簇的单禁止转向对;
103)在处理完该链路簇后,将假设故障链路设为无故障链路。
6.根据权利要求5所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,在步骤102),若遍历所有链路后未找到单禁止转向对,则执行Tarjan算法对三维片上网络进行降解。
7.根据权利要求5所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,在选择三维片上网络单链路簇中单禁止转向对后的更新路由表的过程包括:
对链路簇中的每个故障链路进行单独处理,选择一个未处理的链路并逐步检查其上行、东邻和北邻的链路,如果一个相邻链路是故障的,则继续检查其他相邻链路,否则将单独检查其连接的链路是否连接到其他故障链路;如果相连链路属于所选禁止转向对则不需要处理,否则将高端区域中的相连链路及其并行链路都设置为假设故障链路;当检查了所有的相邻链路后,将未处理的故障链路设置为已处理;处理完所有故障链路后,更新相关节点的路由表。
8.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,对位于三维片上网络内部的故障链路,根据故障链路的类型选择对应绕路规则进行处理。
9.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,所述预设的绕路规则包括:
当生成的路径位于东向或西向故障链路的高端节点与其低端区域中的节点之间时,设置位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行或上行链路为假设故障链路,同时,设置故障链路的高端区域与高端节点北向通道所在链路簇的重叠区域内的所有南向或北向链路为假设故障链路;
当生成的路径位于北向或南向故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路高端区域和高端节点上行通道所在链路簇的重叠区域内的所有下行或上行链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有北向或南向链路为假设故障链路;
当生成的路径位于上行或下行故障链路的高端节点与其低端区域中的节点之间时,设置所有位于故障链路的高端节点北向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行或下行链路为假设故障链路,同时,设置故障链路的高端节点东向通道的高端区域与故障链路所在链路簇的重叠区域内的所有上行或下行链路为假设故障链路。
10.根据权利要求1所述的容忍多故障的大规模三维片上网络确定性路径路由方法,其特征在于,以预设的绕路规则对位于三维片上网络内部的故障链路进行处理后,检验三维片上网络是否为强连接,若不是则执行Tarjan算法进行降维。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791331.7A CN112073314B (zh) | 2020-08-07 | 2020-08-07 | 容忍多故障的大规模三维片上网络确定性路径路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791331.7A CN112073314B (zh) | 2020-08-07 | 2020-08-07 | 容忍多故障的大规模三维片上网络确定性路径路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112073314A true CN112073314A (zh) | 2020-12-11 |
CN112073314B CN112073314B (zh) | 2021-09-03 |
Family
ID=73660980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010791331.7A Active CN112073314B (zh) | 2020-08-07 | 2020-08-07 | 容忍多故障的大规模三维片上网络确定性路径路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112073314B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277551A (zh) * | 2022-07-28 | 2022-11-01 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079480A (zh) * | 2014-05-30 | 2014-10-01 | 中国科学院计算技术研究所 | 一种三维集成电路片上网络的路由方法及其系统 |
CN104539547A (zh) * | 2014-11-14 | 2015-04-22 | 中国科学院计算技术研究所 | 一种用于三维集成电路片上网络的路由器及路由方法 |
US20180203963A1 (en) * | 2016-12-22 | 2018-07-19 | Synopsys, Inc. | THREE-DIMENSIONAL NoC RELIABILITY EVALUATION |
CN110336744A (zh) * | 2019-08-09 | 2019-10-15 | 合肥工业大学 | 一种无线片上网络中区域故障感知的容错路由方法 |
-
2020
- 2020-08-07 CN CN202010791331.7A patent/CN112073314B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079480A (zh) * | 2014-05-30 | 2014-10-01 | 中国科学院计算技术研究所 | 一种三维集成电路片上网络的路由方法及其系统 |
CN104539547A (zh) * | 2014-11-14 | 2015-04-22 | 中国科学院计算技术研究所 | 一种用于三维集成电路片上网络的路由器及路由方法 |
US20180203963A1 (en) * | 2016-12-22 | 2018-07-19 | Synopsys, Inc. | THREE-DIMENSIONAL NoC RELIABILITY EVALUATION |
CN110336744A (zh) * | 2019-08-09 | 2019-10-15 | 合肥工业大学 | 一种无线片上网络中区域故障感知的容错路由方法 |
Non-Patent Citations (2)
Title |
---|
张颖: "片上网络测试技术", 《西安邮电大学学报》 * |
虞潇: "一种面向功耗免死锁三维全动态3D NOC路由算法", 《电子学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277551A (zh) * | 2022-07-28 | 2022-11-01 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
CN115277551B (zh) * | 2022-07-28 | 2024-01-12 | 上海交通大学 | 基于环形结构的模块化三维片上网络无死锁路由系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112073314B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chalasani et al. | Communication in multicomputers with nonconvex faults | |
Wachter et al. | Topology-agnostic fault-tolerant NoC routing method | |
EP2399201B1 (en) | Memory network methods, apparatus, and systems | |
Chen et al. | Fault-tolerant routing algorithm for meshes without using virtual channels | |
CN104539547B (zh) | 一种用于三维集成电路片上网络的路由器及路由方法 | |
Ahmed et al. | Adaptive fault-tolerant architecture and routing algorithm for reliable many-core 3D-NoC systems | |
CN110086709B (zh) | 针对超大规模片上网络容忍众故障的确定性路径路由方法 | |
CN112073314B (zh) | 容忍多故障的大规模三维片上网络确定性路径路由方法 | |
Zhang et al. | A deterministic-path routing algorithm for tolerating many faults on very-large-scale network-on-chip | |
Moriam et al. | Fault tolerant deadlock-free adaptive routing algorithms for hexagonal networks-on-chip | |
Taheri et al. | Advertiser elevator: A fault tolerant routing algorithm for partially connected 3D Network-on-Chips | |
Chen et al. | A deterministic-path routing algorithm for tolerating many faults on wafer-level NoC | |
Holsmark et al. | Corrections to Chen and Chiu's Fault Tolerant Routing Algorithm for Mesh Networks. | |
Kurokawa et al. | Xy based fault-tolerant routing with the passage of faulty nodes | |
Park et al. | Fault-tolerant wormhole routing algorithms in meshes in the presence of concave faults | |
Wang et al. | An efficient topology reconfiguration algorithm for NoC based multiprocessor arrays | |
US11303559B1 (en) | Method, apparatus and computer storage medium for deadlock-free adaptive routing in two-dimensional mesh network based on the overlapping virtual network partitioning scheme | |
Charif et al. | MUGEN: A high-performance fault-tolerant routing algorithm for unreliable Networks-on-Chip | |
Bahrebar et al. | Adaptive and reconfigurable fault-tolerant routing method for 2D Networks-on-Chip | |
Kumar et al. | Reconfigurable distributed fault tolerant routing algorithm for on-chip networks | |
Fukushima et al. | An improved reconfiguration method for degradable processor arrays using genetic algorithm | |
Theiss et al. | Froots–fault handling in up*/down* routed networks with multiple roots | |
Coelho et al. | A runtime fault-tolerant routing scheme for partially connected 3d networks-on-chip | |
JP6846027B2 (ja) | ネットワークオンチップ用の欠陥耐性ルータ | |
Taheri et al. | ReD: A Reliable and Deadlock-Free Routing for 2.5 D Chiplet-Based Interposer Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |