CN110048943A - 适用于神经形态电路的路由容错方法、装置、设备及存储介质 - Google Patents
适用于神经形态电路的路由容错方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110048943A CN110048943A CN201810044745.6A CN201810044745A CN110048943A CN 110048943 A CN110048943 A CN 110048943A CN 201810044745 A CN201810044745 A CN 201810044745A CN 110048943 A CN110048943 A CN 110048943A
- Authority
- CN
- China
- Prior art keywords
- routing node
- routing
- node
- apex angle
- failure
- 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.)
- Pending
Links
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
-
- 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
本发明提供一种适用于神经形态电路的路由容错方法、装置、设备及存储介质,该方法包括:根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,故障区为包含故障路由节点的最小矩形区域,故障环为故障区外围相邻节点组成的矩形环路;当路由包路由至故障环的第一路由节点上,根据第一路由节点的坐标信息、路由包携带的目标路由节点的坐标信息、以及故障环的任一条对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点,路由包所经过的路由线路中的路由节点不包含故障区内的故障路由节点。上述方法解决了路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,大大降低了电路功耗和电路成本。
Description
技术领域
本发明涉及神经形态计算领域,特别是涉及一种适用于神经形态电路的路由容错方法、装置、设备及存储介质。
背景技术
近年来,神经形态技术的发展越来越迅速,它以人类大脑的工作方式为驱动,采用简单的神经核模拟网络模型和复杂的连接关系以实现分类、感知等传统方式并不擅长的问题。多个神经核连接形成的神经形态电路常采用2D Mesh网络结构,其中,每个神经核通常包含一个路由模块,神经形态电路在计算过程中,使用路由的方式进行各个神经核节点(即路由节点)之间信息的传递,但如果2D Mesh网络结构中一个神经核节点发生故障,则此节点失去转发路由包的能力,数据传输只能被迫中断,导致整个神经形态电路系统运行故障。
为避免神经形态电路系统运行故障,传统技术使用冗余设计来保证路由的容错特性,即每个神经核节点设计冗余路由模块,若原来的路由模块故障失效,则开启备用路由模块进行工作。
但是,传统技术中的冗余方法会带来更多的功耗,成本较高。
发明内容
基于此,有必要针对传统技术中为保障神经形态电路系统正常运行而在神经核节点中设计备用路由模块所带来的电路功耗较大,成本较高的技术问题,提供一种适用于神经形态电路的路由容错方法、装置、设备及存储介质。
第一方面,本发明实施例提供一种适用于神经形态电路的路由容错方法,包括:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
上述实施例所提供的方法,神经形态芯片根据神经形态电路中的故障路由节点,确定故障区和故障环;当路由包路由至故障环的第一路由节点上,根据第一路由节点的坐标信息、路由包中携带的目标路由节点的坐标信息以及故障环的任一对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点,且路由包所经过的路由线路中的路由节点不包括故障区内的故障路由节点,即本方法中的路由线路是绕开故障区的,从而解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
第二方面,本发明实施例提供一种适用于神经形态电路的路由容错装置,包括:
确定模块,用于根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
路由模块,用于当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
第三方面,本发明实施例提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
第四方面,本发明实施例提供的一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
本发明实施例提供的适用于神经形态电路的路由容错装置、设备及存储介质,能够根据神经形态电路中的故障路由节点,确定故障区和故障环;当路由包路由至故障环的第一路由节点上,根据第一路由节点的坐标信息、路由包中携带的目标路由节点的坐标信息以及故障环的任一对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点,且路由包所经过的路由线路中的路由节点不包括故障区内的故障路由节点,即路由线路是绕开故障区的,从而解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
附图说明
图1为2D Mesh网络结构示意图;
图2为一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图;
图3为2D Mesh网络结构中节点的排列示意图;
图4为另一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图;
图5为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图;
图6为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图;
图7为图6实施例中S404步骤的一个流程示意图;
图8为图6实施例中S404步骤的另一个流程示意图;
图9为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图;
图10为一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图;
图11为另一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图;
图12为又一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图;
图13为一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图;
图14为另一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图;
图15为又一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图;
图16为一个实施例中计算机设备的内部结构图。
具体实施方式
神经形态技术作为高性能计算的下一个发展阶段发展越来越迅速它能够大幅提升数据处理能力和机器学习能力,并以人类大脑的工作方式为驱动,采用简单的神经核模拟网络模型和复杂的连接关系以实现分类、感知等传统方式并不擅长的问题。多个神经核连接形成的神经形态电路可以采用2D Mesh网络结构,也可以采用其他网络结构,本实施例涉及的适用于神经形态电路的路由容错方法,可以适用于图1所示的2DMesh网络结构。如图1所示,该网络结构中可以包含多个神经核节点(即路由节点),多个神经核节点可以按照水平/垂直方向连接排列,每个神经核节点中包含有路由模块,该路由模块可以用于将路由包从当前神经核节点路由至下一个神经核节点,进而实现路由包的传输过程。上述神经形态电路可以称为人工神经元电路,当这种电路规模较大时可以称为神经形态芯片。
基于上述网络,神经形态电路中的神经核节点在传输路由包过程中,如果其中一个神经核节点发生故障,则此节点失去转发路由包的能力,数据传输只能被迫中断,导致整个神经形态电路运行故障。传统技术常使用冗余设计来保证路由的容错特性,但该冗余方法因需要在神经核节点中设计备用路由模块,从而会带来更多的功耗,成本较高。本发明实施例提供的适用于神经形态电路的路由容错方法、装置、设备及存储介质旨在解决传统技术的如上技术问题。
需要说明的是,下述方法实施例的执行主体可以是适用于神经形态电路的路由容错装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为神经形态芯片的部分或者全部。下述方法实施例的执行主体以神经形态芯片为例来进行说明。
为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
为方便说明,下述实施例中以X_C表示第一路由节点C的横坐标,Y_C表示第一路由节点C的纵坐标,X_D表示目标路由节点D的横坐标,Y_D表示目标路由节点D的纵坐标,X_NW表示故障环西北角路由节点NW的横坐标,Y_NW表示故障环西北角路由节点NW的纵坐标,X_SE表示故障环东南角路由节点SE的横坐标,Y_SE表示故障环东南角路由节点SE的纵坐标。
图2为一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图,本实施例涉及的是神经形态芯片根据故障路由节点确定故障区和故障环,从而将路由包从故障环上的第一路由节点路由至目标路由节点的具体过程。如图2所示,该方法包括:
S101,根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路。
具体的,神经形态电路中的多个路由节点可以按照2D Mesh网络结构中节点的排列方式进行排列(如图3所示),同时每个路由节点包含一路由模块。在路由节点传输路由包之前,可选的,神经形态芯片可以对神经形态电路中的路由节点进行检查,检查电路中每个路由节点是否出现故障,若某个路由节点发生了故障,则无法进行路由包的传输,因此可以将该路由节点确定为故障路由节点。当神经形态芯片将神经形态电路中的所有故障路由节点确定之后,根据故障路由节点,确定故障区和故障环,其中,故障区为包含故障路由节点的最小矩形区域,所述故障环为故障区外围相邻节点组成的矩形环路。
作为神经形态芯片确定故障区和故障环的一种可选的实现方式,可以将故障路由节点及与故障路由节点外围相邻节点组成的区域确定为故障区,将故障区外围相邻节点组成的矩形环路确定为故障环。路由包路由时可以沿故障环进行路由,避开故障区。
作为神经形态芯片确定故障区和故障环的另一种可选的实现方式,该实现方式可以包括:获取与上述故障路由节点相邻的路由节点;若与该路由节点相邻的其他路由节点中存在至少两个故障路由节点,则确定该路由节点为新的故障路由节点;将上述故障路由节点和新的故障路由节点围城的最小矩形区域确定为故障区,该故障区外围相邻节点组成的矩形环路为故障环。例如,如图3所示,假设(1,2)和(2,1)两个路由节点为故障路由节点,其相邻路由节点分别为:(0,2)、(1,3)、(1,1)、(2,2)、(2,0)、(3,1),对于路由节点(1,1)和(2,2),它们的相邻路由节点中有两个故障路由节点(1,2)、(2,1),因此将(1,1)和(2,2)(1,2)也确定为故障路由节点,此时(1,2)、(1,1)、(2,1)、(2,2)四个故障路由节点组成的矩形区域即为故障区,该故障区外围相邻节点(0,0)、(1,0)、(2,0)、(3,0)、(3,1)、(3,2)、(3,3)、(2,3)、(1,3)、(0,3)、(0,2)、(0,1)组成的环路即为故障环。在该故障环中,顶角路由节点可以分别为西北角NW路由节点(0,3)和东南角SE路由节点(3,0)。
可选的,确定了故障区和故障环之后,每个路由节点中所设置的寄存器可以用于存储该故障环上任一条对角线的两个顶角路由节点的坐标信息。例如,如图3所示,可以记录该故障环上西北角NW路由节点(0,3)和东南角SE路由节点(3,0)的坐标信息。
S102,当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
具体的,路由包为神经形态电路中所传输的数据包,该路由包携带了目标路由节点的坐标信息和所要传输的数据。当路由包路由至上述故障环的第一路由节点上,神经形态芯片根据第一路由节点的坐标信息、目标路由节点的坐标信息、故障环上顶角路由节点的坐标信息,将该路由包路由至下一个路由节点,并将下一个路由节点作为新的第一路由节点,重新根据新的第一路由节点的坐标信息、目标路由节点的坐标信息、故障环上顶角路由节点的坐标信息,将该路由包路由至下一个路由节点,直至将路由包路由至目标路由节点,且路由包所经过的路由线路中的路由节点不包含上述故障区内的故障路由节点,即路由过程中绕开故障区。
可选的,在路由包路由至上述故障环的第一路由节点之前以及离开该故障环之后,可以按照XY维序路由方法进行路由,具体的,先判断目标路由节点的横坐标X_D与当前路由节点的横坐标X_C的大小关系,将路由包从当前路由节点沿X轴方向路由至横坐标为X_D的路由节点A上,再判断目标路由节点的纵坐标Y_D与当前路由节点的纵坐标Y_C的大小关系,将路由包从路由节点A沿Y轴方向路由至目标路由节点上。同样也可以按照YX维序路由方法进行路由,具体的,先判断目标路由节点的纵坐标Y_D与当前路由节点的纵坐标Y_C的大小关系,将路由包从当前路由节点沿Y轴方向路由至纵坐标为Y_D的路由节点B上,再判断目标路由节点的横坐标X_D与当前路由节点的横坐标X_C的大小关系,将路由包从路由节点B沿X轴方向路由至目标路由节点上。
本实施例提供的适用于神经形态电路的路由容错方法,神经形态芯片根据神经形态电路中的故障路由节点,确定故障区和故障环;当路由包路由至故障环的第一路由节点上,根据第一路由节点的坐标信息、路由包中携带的目标路由节点的坐标信息以及故障环的任一对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点,且路由包所经过的路由线路中的路由节点不包括故障区内的故障路由节点,即本方法中的路由线路是绕开故障区的,从而解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
图4为另一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图。本实施例涉及的是神经形态芯片如何根据第一路由节点的坐标信息、路由包携带的目标路由节点的坐标信息、以及故障环的任一条对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点的具体过程。在上述实施例的基础上,可选的,如图4所示,上述S102可以包括如下步骤:
S201,执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的坐标信息和所述目标路由节点的坐标信息,确定所述第一位置。
具体的,神经形态芯片根据第一路由节点的坐标信息和目标路由节点的坐标信息,确定目标路由节点相对于第一路由节点的位置,记为第一位置。可选的,可以先根据第一路由节点的横坐标和目标路由节点的横坐标,确定第一坐标关系,再根据第一路由节点的纵坐标和目标路由节点的纵坐标,确定第二坐标关系,然后根据第一坐标关系和第二坐标关系,确定第一位置。例如,假设第一路由节点为(1,0),目标路由节点为(4,3),可以判断出第一路由节点的横坐标小于目标路由节点的横坐标,第一路由节点的纵坐标小于目标路由节点的纵坐标,进而确定目标路由节点在第一路由节点的东北位置。
S202,执行第二位置确定操作,以确定第一路由节点相对于所述顶角路由节点的第二位置;其中,所述第二位置确定操作包括:根据所述第一位置、所述第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定所述第二位置。
具体的,神经形态芯片根据上述第一位置、第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定第一路由节点相对于顶角路由节点的第二位置,例如,确定第一路由节点是否与顶角路由节点在同一行,或者是否与顶角路由节点在同一列,或者还可以是确定第一路由节点在顶角路由节点之上还是之下。例如,假设第一路由节点为(1,0),目标路由节点为(4,3),目标路由节点相对于第一路由节点的第一位置为东北位置,SE顶角路由节点为(3,0),则确定第二位置为第一路由节点与SE顶角路由节点位于同一行。
S203,根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点。
具体的,神经形态芯片根据上述第一位置和第二位置,即根据目标路由节点相对于第一路由节点的位置和第一路由节点相对于顶角路由节点的位置,将路由包路由至下一个路由节点,并将下一个路由节点作为新的第一路由节点,重新执行第一位置确定操作和第二位置确定操作,以确定新的第一位置和新的第二位置,并再次根据新的第一位置和新的第二位置将路由包路由至下一个路由节点,直至将路由包路由至目标路由节点,且路由包所经过的路由线路中的路由节点不包含上述故障区内的故障路由节点。
本实施例提供的适用于神经形态电路的路由容错方法,神经形态芯片在确定故障区和故障环之后,且当路由包路由至故障环的第一路由节点时,神经形态芯片通过执行第一位置确定操作,确定目标路由节点相对于第一路由节点的第一位置;然后,其通过执行第二位置确定操作,以确定第一路由节点相对于顶角路由节点的第二位置,进而根据所述第一位置和所述第二位置,将路由包从第一路由节点路由至目标路由节点。基于该方法,由于神经形态芯片可以准确确定出第一路由节点、目标路由节点以及顶角路由节点彼此之间的相对位置,因此,当神经形态芯片在传输路由包的过程中,其可以根据该相对位置有效的绕开故障区,从而进一步解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
图5为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图。本实施例涉及的是神经形态芯片如何根据第一路由节点的坐标信息、路由包携带的目标路由节点的坐标信息、以及故障环的任一条对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点的另一具体过程。在上述实施例的基础上,可选的,如图5所示,上述102可以包括如下步骤:
S301:执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的横坐标和所述目标路由节点的横坐标,确定第一坐标关系;根据所述第一路由节点的纵坐标和所述目标路由节点的纵坐标,确定第二坐标关系;根据所述第一坐标关系和所述第二坐标关系,确定所述第一位置。
该S301的过程可以参见上述图4所示的实施例,其实现过程类似,在此不再赘述。
S302:执行第二位置确定操作,以确定第一路由节点相对于所述顶角路由节点的第二位置;其中,所述第二位置确定操作包括:若所述第一位置为所述目标路由节点与所述第一路由节点位于同一行,则根据所述第一路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述第一路由节点与所述顶角路由节点是否为同一行节点。
具体的,若上述第一位置为目标路由节点与第一路由节点位于同一行,则神经形态芯片可以根据第一路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定第一路由节点与所述顶角路由节点是否为同一行。例如,假设第一路由节点为(1,3),目标路由节点为(4,3),NW顶角路由节点为(0,3),则目标路由节点与第一路由节点位于同一行,然后根据第一路由节点的纵坐标Y_C和NW顶角路由节点的纵坐标Y_NW,可以确定第一路由节点与NW顶角路由节点位于同一行。
S303:若所述第二位置为所述第一路由节点与所述顶角路由节点为同一行节点,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在S303中,若第一位置为第一路由节点与顶角路由节点为同一行、且第二位置为第一路由节点与顶角路由节点为同一行节点,则说明第一路由节点、目标路由节点、顶角路由节点都在同一行上,则可以沿X轴方向将路由包路由至目标路由节点上。若第一位置为第一路由节点与顶角路由节点为同一行但第一路由节点与顶角路由节点为不同行,则可以先将路由包路由至与顶角路由节点同一行,再返回执行第一位置确定操作,直至第一路由节点的坐标等于所述目标路由节点的坐标。如图3所示,假设故障环NW顶角路由节点为(0,3),第一路由节点为(1,3),目标路由节点为(4,3),则将路由包一直向东路由,直至路由至路由节点(4,3)上。
本实施例提供的适用于神经形态电路的路由容错方法,神经形态芯片在确定故障区和故障环之后,且当路由包路由至故障环的第一路由节点时,神经形态芯片通过执行第一位置确定操作,确定目标路由节点相对于第一路由节点的第一位置;然后,其通过执行第二位置确定操作,以确定第一路由节点是否与至少一个顶角路由节点位于同一行,进而根据所述第一位置,将路由包从第一路由节点路由至目标路由节点。基于该方法,由于神经形态芯片可以准确确定出第一路由节点、目标路由节点以及顶角路由节点彼此之间的相对位置,因此,当神经形态芯片在传输路由包的过程中,其可以根据该相对位置有效的绕开故障区的,从而进一步解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
图6为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图。本实施例涉及的是神经形态芯片如何根据第一路由节点的坐标信息、路由包携带的目标路由节点的坐标信息、以及故障环的任一条对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点的又一具体过程。在上述实施例的基础上,可选的,如图6所示,上述S102可以包括如下步骤:
S401,执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的横坐标和所述目标路由节点的横坐标,确定第一坐标关系;根据所述第一路由节点的纵坐标和所述目标路由节点的纵坐标,确定第二坐标关系;根据所述第一坐标关系和所述第二坐标关系,确定所述第一位置。
该S401的过程可以参见上述图4所示的实施例,其实现过程类似,在此不再赘述。
S402,若所述第一位置为所述目标路由节点与所述第一路由节点位于不同行,则根据所述目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述目标路由节点相对于所述顶角路由节点的第三位置。
具体的,若第一位置为目标路由节点与第一路由节点位于不同行,则神经形态芯片可以根据目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定目标路由节点相对于顶角路由节点的位置,也相当于可以确定目标路由节点相对于故障环的位置,记为第三位置。例如,如图3所示,假设目标路由节点坐标为(4,4),故障环NW顶角路由节点坐标为(0,3),可以通过判断Y_D与Y_NW的大小,该例子中Y_D大于Y_NW,确定目标路由节点在故障环的偏北方向。
S403,根据所述第三位置、所述第一路由节点的坐标信息和所述两个顶角路由节点中的一个顶角路由节点的坐标信息,确定所述第二位置。
可选的,神经形态芯片可以根据上述第三位置、第一路由节点的纵坐标和两个顶角路由节点中的一个顶角路由节点的纵坐标,确定第二位置。例如,假设目标路由节点坐标为(4,4),故障环NW顶角路由节点坐标为(0,3),SE路由节点坐标为(3,0),第一路由节点坐标为(0,1),可以通过判断Y_C是否等于Y_SE,该例子中Y_C不等于Y_SE,确定第一路由节点与SE顶角路由节点位于不同行。
可选的,神经形态芯片还可以根据上述第三位置、第一路由节点的横坐标和上述两个顶角路由节点中的一个顶角路由节点的横坐标,确定第二位置。例如,假设目标路由节点坐标为(4,2),故障环NW顶角路由节点坐标为(0,3),SE路由节点坐标为(3,0),第一路由节点坐标为(0,1),可以通过判断X_C是否等于X_NW,该例子中X_C等于X_NW,确定第一路由节点与NW顶角路由节点位于同一列。
S404:根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点。
具体的,神经形态芯片根据上述S401至S403确定出第一位置和第二位置之后,可以基于这两个位置将路由包从第一路由节点路由至目标路由节点,具体可以参见下述图7和图8所示的实施例。其中,图7示出的是神经形态芯片根据第一路由节点的纵坐标和两个顶角路由节点中的一个顶角路由节点的纵坐标,确定第二位置,进而根据第一位置和第二位置,将路由包从第一路由节点路由至目标路由节点的情况,图8示出的是神经形态芯片根据第一路由节点的横坐标和两个顶角路由节点中的一个顶角路由节点的横坐标,确定第二位置,进而根据第一位置和第二位置,将路由包从第一路由节点路由至目标路由节点的情况。
针对上述S404的一种可选的实现方式,参见图7所示,上述S404可以包括如下步骤:
S501:判断上述第二位置是否为第一路由节点与上述两个顶角路由节点中的一个顶角路由节点位于故障环上的同一行。若是,执行S502,若否,执行S504。
具体的,若第一路由节点的纵坐标等于故障环NW顶角路由节点的纵坐标,则第一路由节点位于NW顶角路由节点所在的一行;若第一路由节点的纵坐标等于故障环SE顶角路由节点的纵坐标,则第一路由节点位于SE顶角路由节点所在的一行;若都不相等,则第一路由节点位于故障环的左右两列。
S502,若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行,则根据所述第一路由节点的横坐标和所述两个顶角路由节点中的另一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述另一个顶角路由节点位于所述故障环上的同一列,得到第一判断结果。
具体的,可以假设第一路由节点与上述两个顶角路由节点中的SE顶角路由节点位于故障环上的同一行,此时神经形态芯片可以再根据第一路由节点的横坐标和NW顶角路由节点的横坐标,判断第一路由节点是否与NW顶角路由节点位于故障环上的同一列,从而得到第一判断结果。当然,也可以假设第一路由节点与NW顶角路由节点位于故障环上的同一行,此时神经形态芯片可以再根据第一路由节点的横坐标和SE顶角路由节点的横坐标,判断第一路由节点是否与SE顶角路由节点位于故障环上的同一列,从而得到第一判断结果。
S503,根据所述第一判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,基于上述S501和S502的步骤,神经形态芯片可以获知第一路由节点是否与顶角路由节点位于故障环上的同一列,并且基于前述实施例的过程,神经形态芯片也获知了目标路由节点相对于该第一路由节点的第一位置,因此,本实施例中,神经形态芯片可以基于上述第一判断结果和上述第一位置,确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S401,以确定新的第一位置,从而继续执行上述S402至S404的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
例如,如图3所示,假设第一路由节点为(0,0),SE顶角路由节点为(3,0),NW顶角路由节点为(0,3),判断得到Y_C等于Y_SE,即第一路由节点与SE顶角路由节点位于同一行,然后再判断得到X_C等于X_NW,即第一路由节点与NW顶角路由节点(0,3)位于同一列,若目标路由节点为(4,4),则可以向北路由至路由节点(0,1),然后将路由节点(0,1)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,4)。也可以假设第一路由节点为(1,0),判断得到与SE顶角路由节点(3,0)位于同一行,但与NW顶角路由节点(0,3)位于不同列,此时可以向西路由至路由节点(0,0),将路由节点(0,0)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,4)为止。
S504,若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同行,则根据所述第一路由节点的横坐标和所述两个顶角路由节点中的任一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述任一个顶角路由节点位于所述故障环上的同一列。若是,则执行S505,若否,则执行S506。
具体的,可以假设“所述一个顶角路由节点”为SE,可以假设“另一个顶角路由节点”为NW,本步骤中假设第一路由节点与上述两个顶角路由节点中的SE顶角路由节点位于故障环上的不同行,此时神经形态芯片可以根据第一路由节点的横坐标和两个顶角路由节点中的任一个顶角路由节点的横坐标,判断第一路由节点是否与任一个顶角路由节点位于故障环上的同一列。可选的,第一路由节点的横坐标可以与NW顶角路由节点的横坐标相等,也可以与SE顶角路由节点的横坐标相等,当然,也可以与两个顶角路由节点的横坐标都不相等。
为了方便描述,可以假设S504中神经形态芯片根据的是NW顶角路由节点的横坐标和第一路由节点的横坐标,来判断第一路由节点是否与NW顶角路由节点位于故障环上的同一列。
S505,根据所述第一路由节点的纵坐标和所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否为顶角路由节点,得到第二判断结果,并根据所述第二判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,基于上述S504中的假设,若神经形态芯片确定第一路由节点与NW顶角路由节点位于故障环上的同一列,则根据第一路由节点的纵坐标和NW顶角路由节点的纵坐标,判断第一路由节点是否为顶角路由节点(即判断第一路由节点是否为NW),从而得到第二判断结果。然后神经形态芯片可以基于上述第二判断结果和上述第一位置,确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S401,以确定新的第一位置,从而继续执行上述S402至S404的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
例如,如图3所示,假设第一路由节点为(0,3),NW顶角路由节点为(0,3),即第一路由节点与NW顶角路由节点位于同一列,根据Y_C与Y_NW,可以判断得到Y_C等于Y_NW,则第一路由节点与NW顶角路由节点位于同一行,若目标路由节点为(4,4),则可以向东路由至路由节点(1,3),然后将路由节点(1,3)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,4)。也可以假设第一路由节点为(0,2),与NW顶角路由节点(0,3)位于同一列,但根据Y_C与Y_NW判断与NW顶角路由节点(0,3)位于不同行,则可以向北路由路由至路由节点(0,3),然后将路由节点(0,3)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,4)。
S506,根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,若第一路由节点与任一个顶角路由节点位于故障环上的不同列,则神经网络芯片可以根据上述第一位置确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S401,以确定新的第一位置,从而继续执行上述S402至S404的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
例如,如图3所示,假设第一路由节点为(1,3),判断得到与SE顶角路由节点(3,0)位于不同行,且与NW顶角路由节点(0,3)和SE顶角路由节点(3,0)都不同列,若目标路由节点为(4,4),则可以向东路由至路由节点(2,3),然后将路由节点(2,3)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,4)。
针对上述S404的另一种可选的实现方式,参见图8所示,上述404可以包括如下步骤:
S601,判断上述第二位置是否为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一列。若是,执行S602,若否,执行S604。
S602,若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一列,则根据所述第一路由节点的纵坐标与所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否与所述另一个顶角路由节点位于所述故障环上的同一行,得到第三判断结果。
具体的,可以假设第一路由节点与上述两个顶角路由节点中的NW顶角路由节点位于故障环上的同一列,此时神经形态芯片可以再根据第一路由节点的纵坐标和SE顶角路由节点的纵坐标,判断第一路由节点是否与SE顶角路由节点位于故障环上的同一行,从而得到第三判断结果。当然,也可以假设第一路由节点与SE顶角路由节点位于故障环上的同一列,此时神经形态芯片可以再根据第一路由节点的纵坐标和NW顶角路由节点的纵坐标,判断第一路由节点是否与NW顶角路由节点位于故障环上的同一行,从而得到第三判断结果。
S603,根据所述第三判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,基于上述S601的步骤,神经形态芯片可以获知第一路由节点是否与顶角路由节点位于故障环上的同一行,并且基于前述实施例的过程,神经形态芯片也获知了目标路由节点相对于该第一路由节点的第一位置,因此,本实施例中,神经形态芯片可以基于上述第三判断结果和上述第一位置,确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S401,以确定新的第一位置,从而继续执行上述S402至S404的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
例如,如图3所示,假设第一路由节点为(0,0),NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),判断得到X_C等于X_NW,即第一路由节点与NW顶角路由节点位于同一列,然后再判断Y_C等于Y_SE,即与SE顶角路由节点位于同一行,若目标路由节点为(4,1),则可以向东路由至路由节点(1,0),然后将路由节点(1,0)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,1)。也可以假设第一路由节点为(0,1),目标路由节点为(4,2),判断得到与SE顶角路由节点位于不同行,此时可以向南路由至路由节点(0,0),将路由节点(0,0)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,1)。
S604,若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同列,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,若第一路由节点与一个顶角路由节点位于故障环上的不同列,则神经形态芯片可以根据上述第一位置确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S401,以确定新的第一位置,从而继续执行上述S402至S404的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
可选的,如图3所示,假设第一路由节点为(2,0),判断得到与NW顶角路由节点(0,3)位于不同列,若目标路由节点为(4,1),此时可以向东路由至路由节点(3,0),然后将路由节点(3,0)作为新的第一路由节点,重新返回执行步骤S401,直至新的第一路由节点坐标为(4,1)。
本实施例提供的适用于神经形态电路的路由容错方法,神经形态芯片在确定故障区和故障环之后,且当路由包路由至故障环的第一路由节点时,神经形态芯片通过执行第一位置确定操作,确定目标路由节点相对于第一路由节点的第一位置;然后,其通过执行第三位置确定操作,以确定目标路由节点相对于顶角路由节点的第三位置;之后再根据第三位置、第一路由节点坐标信息和两个顶角路由节点中的一个顶角路由节点坐标信息,进而确定第二位置,最后根据第一位置和第二位置将路由包从第一路由节点路由至目标路由节点。基于该方法,由于神经形态芯片可以准确确定出第一路由节点、目标路由节点以及顶角路由节点彼此之间的相对位置,因此,当神经形态芯片在传输路由包的过程中,其可以根据该相对位置有效的绕开故障区的,从而更进一步地解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
图9为又一个实施例提供的适用于神经形态电路的路由容错方法的流程示意图。本实施例涉及的是神经形态芯片根据第一路由节点的坐标信息、路由包携带的目标路由节点的坐标信息、以及故障环的任一条对角线上的两个顶角路由节点的坐标信息,将路由包路由至目标路由节点的又一具体过程。在上述实施例的基础上,可选的,如图9所示,上述S102可以包括如下步骤:
S701,执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的横坐标和所述目标路由节点的横坐标,确定第一坐标关系;根据所述第一路由节点的纵坐标和所述目标路由节点的纵坐标,确定第二坐标关系;根据所述第一坐标关系和所述第二坐标关系,确定所述第一位置。
该S701的过程可以参见上述图4所示的实施例,其实现过程类似,在此不再赘述。
S702,若所述第一位置为所述目标路由节点与所述第一路由节点位于所述故障环上的不同行,则根据所述目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述目标路由节点相对于所述顶角路由节点的第三位置。
具体的,若第一位置为目标路由节点与第一路由节点位于不同行,则神经形态芯片可以根据目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定目标路由节点相对于顶角路由节点的位置,也相当于可以确定目标路由节点相对于故障环的位置,记为第三位置。例如,如图3所示,假设目标路由节点坐标为(4,0),故障环SE顶角路由节点坐标为(3,0),可以通过判断Y_D与Y_SE的大小,该例子中Y_D等于Y_SE,确定目标路由节点在故障环的偏东方向。
S703,根据所述第三位置、所述第一路由节点的纵坐标和所述两个顶角路由节点中的一个顶角路由节点的纵坐标,确定所述第二位置。
可选的,神经形态芯片可以根据上述第三位置、第一路由节点的纵坐标和两个顶角路由节点中的一个顶角路由节点NW的纵坐标,确定第一路由节点相对于NW顶角路由节点的位置,记为第二位置。
S704,若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行,则根据所述第一路由节点的横坐标和所述一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述一个顶角路由节点位于所述故障环上的同一列,得到第四判断结果。
具体的,可以假设第一路由节点与上述两个顶角路由节点中的NW顶角路由节点位于故障环上的同一行,此时神经形态芯片可以再根据第一路由节点的横坐标和该NW顶角路由节点的横坐标,判断第一路由节点是否与该NW顶角路由节点位于故障环上的同一列,从而得到第四判断结果。当然,也可以假设第一路由节点与SE顶角路由节点位于故障环上的同一行,此时神经形态芯片可以再根据第一路由节点的横坐标和该SE顶角路由节点的横坐标,判断第一路由节点是否与该SE顶角路由节点位于故障环上的同一列,从而得到第四判断结果。
S705,根据所述第四判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
具体的,基于上述S704的步骤,神经形态芯片可以获知第一路由节点是否与顶角路由节点位于故障环上的同一列,并且基于前述实施例的过程,神经形态芯片也获知了目标路由节点相对于该第一路由节点的第一位置,因此,本实施例中,神经形态芯片可以基于上述第四判断结果和上述第一位置,确定下一个路由节点,从而将路由包路由至该路由节点,且将该路由节点作为新的第一路由节点,返回执行步骤S701,以确定新的第一位置,从而继续执行上述S702至S704的过程,直至新的第一路由节点的坐标等于目标路由节点的坐标为止。
例如,如图3所示,假设第一路由节点为(0,3),SE顶角路由节点为(3,0),NW顶角路由节点为(0,3),判断得到Y_C等于Y_NW,即第一路由节点与NW顶角路由节点位于同一行,然后再判断得到X_C等于X_NW,即第一路由节点又与NW顶角路由节点位于同一列,若目标路由节点为(4,0),则可以向南路由路由至路由节点(0,2),然后将路由节点(0,2)作为新的第一路由节点,重新返回执行步骤S701,直至新的第一路由节点坐标为(4,0)。也可以假设第一路由节点为(1,3),判断得到与NW顶角路由节点(0,3)位于同一行,但与NW顶角路由节点(0,3)位于不同列,此时可以向西路由至路由节点(0,3),然后将路由节点(0,3)作为新的第一路由节点,重新返回执行步骤S701,直至新的第一路由节点坐标为(4,0)。
本实施例提供的适用于神经形态电路的路由容错方法,神经形态芯片在确定故障区和故障环之后,且当路由包路由至故障环的第一路由节点时,神经形态芯片通过执行第一位置确定操作,确定目标路由节点相对于第一路由节点的第一位置;然后,其通过执行第三位置确定操作,以确定目标路由节点相对于顶角路由节点的第三位置;之后再根据第三位置、第一路由节点的纵坐标和两个顶角路由节点中的一个顶角路由节点的纵坐标,进而确定第二位置,最后根据第一位置和第二位置将路由包从第一路由节点路由至目标路由节点。基于该方法,由于神经形态芯片可以准确确定出第一路由节点、目标路由节点以及顶角路由节点彼此之间的相对位置,因此,当神经形态芯片在传输路由包的过程中,其可以根据该相对位置有效的绕开故障区的,从而更进一步地解决了当路由节点发生故障时数据传输中断的问题,并且不需要在路由节点中设计备用路由模块,因此大大降低了电路功耗和电路成本。
应该理解的是,虽然图2、图4-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4-9的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为了便于理解上述适用于神经形态电路的路由容错方法过程,下面结合一简单的例子再次进行说明。需要说明的是,下述例子中包括步骤1、步骤2和步骤3、步骤4四大步骤,步骤1对应包含部分子步骤,步骤2对应包含子步骤,步骤3也对应包含部分子步骤,步骤4也包含部分子步骤。下述示例中分别结合具体的例子对步骤1、步骤2、步骤3和步骤4进行解释说明。
步骤1:当路由包路由至故障环上的第一路由节点时,判断X_C是否小于X_D,若是,则执行步骤1.1;若否,则执行步骤2;
步骤1.1:判断Y_C是否等于Y_D,若是,执行步骤1.1.1,若否,执行步骤1.2;
步骤1.1.1:判断Y_C等于Y_NW或Y_C等于Y_SE是否成立,若是,则路由包向东路由;若否,则路由包向南路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(1,3),目标路由节点为(4,3),其中,Y_C等于Y_D、Y_C等于Y_NW,则向东路由;假设第一路由节点为(0,1),目标路由节点为(4,1),其中,Y_C等于Y_D、Y_C不等于Y_NW且Y_C不等于Y_SE,则向南路由。
步骤1.2:判断Y_C是否小于Y_D,若是,执行步骤1.2.1,若否,执行步骤1.3;
步骤1.2.1:判断Y_D是否大于等于Y_NW,若是,执行步骤1.2.1.1,若否,执行步骤1.2.2;
步骤1.2.1.1:判断Y_C是否等于Y_SE,若是,执行步骤1.2.1.1.1,若否,执行步骤1.2.1.2;
步骤1.2.1.1.1:判断X_C是否等于X_NW,若是,路由包向北路由,若否,路由包向西路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(0,0),目标路由节点为(4,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C等于Y_SE、且X_C等于X_NW,则向北路由;假设第一路由节点为(1,0),目标路由节点为(4,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C等于Y_SE、但X_C不等于X_NW,则向西路由。
步骤1.2.1.2:判断X_C等于X_NW或X_C等于X_SE是否成立,若是,执行步骤1.2.1.2.1,若否,路由包向东路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(1,3),目标路由节点为(4,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE,且X_C不等于X_NW,也不等于X_SE,则向东路由。
步骤1.2.1.2.1:判断Y_C是否等于Y_NW,若是,路由包向东路由,若否,路由包向北路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(0,3),目标路由节点为(4,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE、X_C等于X_NW、且Y_C等于Y_NW,则向东路由;假设第一路由节点为(0,2),目标路由节点为(4,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE、X_C等于X_NW、但Y_C不等于Y_NW,则向北路由。
步骤1.2.2:判断X_C是否等于X_NW,若是,执行步骤1.2.2.1,若否,路由包向东路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(2,0),目标路由节点为(4,1),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C不等于X_NW,则向东路由。
步骤1.2.2.1:判断Y_C是否等于Y_SE,若是,路由包向东路由,若否,路由包向南路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(0,0),目标路由节点为(4,2),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C等于X_NW、且Y_C等于Y_SE,则向东路由;假设第一路由节点为(0,1),目标路由节点为(4,2),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C等于X_NW、但Y_C不等于Y_SE,则向南路由。
步骤1.3:判断Y_C是否大于Y_D,若是,执行步骤1.3.1;
步骤1.3.1:判断Y_D是否小于等于Y_SE,若是,执行步骤1.3.1.1,若否,执行步骤1.3.2;
步骤1.3.1.1:判断Y_C是否等于Y_NW,若是,执行步骤1.3.1.1.1,若否,执行步骤1.3.1.2;
步骤1.3.1.1.1:判断X_C是否等于X_NW,若是,路由包向南路由,若否,路由包向西路由;
例如,假设NW顶角路由节点为(0,3),SE顶角路由节点为(3,0),第一路由节点为(0,3),目标路由节点为(4,0),其中,Y_C大于Y_D、Y_D等于Y_SE、Y_C等于Y_NW、且X_C等于X_NW,则向南路由;假设第一路由节点为(1,3),目标路由节点为(4,0),其中,Y_C大于Y_D、Y_D等于Y_SE、Y_C等于Y_NW、但X_C不等于X_NW,则向西路由。
步骤1.3.1.2:判断X_C等于X_NW或X_C等于X_SE是否成立,若是,执行步骤1.3.1.2.1,若否,路由包向东路由;
例如,假设NW顶角路由节点为(0,4),SE顶角路由节点为(3,1),第一路由节点为(1,1),目标路由节点为(4,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW、且X_C不等于X_NW,也不等于X_SE,则向东路由。
步骤1.3.1.2.1:判断Y_C是否等于Y_SE,若是,路由包向东路由,若否,路由包向南路由;
例如,假设NW顶角路由节点为(0,4),SE顶角路由节点为(3,1),第一路由节点为(0,1),目标路由节点为(4,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW、X_C等于X_NW、且Y_C等于Y_SE,则向东路由;假设第一路由节点为(0,2),目标路由节点为(4,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW、X_C等于X_NW、但Y_C不等于Y_SE,则向南路由。
步骤1.3.2:判断X_C是否等于X_NW,若是,执行步骤1.3.2.1,若否,路由包向东路由;
例如,假设NW顶角路由节点为(0,4),SE顶角路由节点为(3,1),第一路由节点为(1,4),目标路由节点为(4,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C不等于X_NW,则向东路由。
步骤1.3.2.1:判断Y_C是否等于Y_NW,若是,路由包向东路由,若否,路由包向北路由。
例如,假设NW顶角路由节点为(0,4),SE顶角路由节点为(3,1),第一路由节点为(0,4),目标路由节点为(4,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C等于X_NW、且Y_C等于Y_NW,则向东路由;假设第一路由节点为(0,3),目标路由节点为(4,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C等于X_NW、但Y_C不等于Y_NW,则向北路由。
基于上述步骤1,举一个例子进行说明。图10为一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图。
如图10所示,假设起始路由节点为(0,3),目标路由节点为D(7,7),故障环的NE顶角路由节点为(2,5),SE顶角路由节点为(5,2),在路由包到达故障环上之前,先按XY维序路由方法进行路由,则路由包经过路由节点(1,3)到达故障环的第一路由节点C(2,3)上。
首先,判断得到X_C小于X_D,Y_C小于Y_D,则第一位置即为目标路由节点在相对于第一路由节点的东北方向,且目标路由节点与第一路由节点位于不同行,然后判断得到Y_D大于Y_NW,可以确定目标路由节点在相对于顶角路由节点的偏北方向,即为第三位置。
接下来可以判断得到Y_C不等于Y_SE,也就是第二位置为第一路由节点与SE顶角路由节点位于故障环的不同行,然后再判断第一路由节点的X_C是否等于X_NW或X_SE,可以得到X_C等于X_NW,也即是第一路由节点与NW顶角路由节点位于故障环上的同一列。
再接下来判断Y_C是否等于Y_NW,可以得到Y_C不等于Y_NW,即第二判断结果为第一路由节点不是顶角路由节点,根据第一位置和第二判断结果,将路由包向北路由,到达路由节点(2,4)上,将路由节点(2,4)作为新的第一路由节点C,重新返回执行确定第一位置操作。直至当路由包路由至路由节点(6,5)上时,即离开了故障环,则按照XY维序路由方法进行路由,路由包经过路由节点(7,5)、(7,6)到达目标路由节点(7,7),则完成了整个路由包的传输过程。
步骤2:判断X_C是否大于X_D,若是,则执行步骤2.1;若否,则执行步骤3;
步骤2.1:判断Y_C是否等于Y_D,若是,执行步骤2.1.1,若否,执行步骤2.2;
步骤2.1.1:判断Y_C等于Y_NW或Y_C等于Y_SE是否成立,若是,则路由包向西路由;若否,则路由包向北路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(4,1),目标路由节点为(0,1),其中,X_C大于X_D、Y_C等于Y_D、Y_C等于Y_SE,则向西路由;假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(4,2),目标路由节点为(0,2),其中,X_C大于X_D、Y_C等于Y_D、但Y_C不等于Y_NW、也不等于Y_SE,则向北路由。
步骤2.2:判断Y_C是否大于Y_D,若是,执行步骤2.2.1,若否,执行步骤2.3;
步骤2.2.1:判断Y_D是否小于等于Y_SE,若是,执行步骤2.2.1.1,若否,执行步骤2.2.2;
步骤2.2.1.1:判断Y_C是否等于Y_NW,若是,执行步骤2.2.1.1.1,若否,执行步骤2.2.1.2;
步骤2.2.1.1.1:判断X_C是否等于X_SE,若是,路由包向南路由,若否,路由包向东路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(4,4),目标路由节点为(0,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C等于Y_NW、且X_C等于X_SE,则向南路由;假设第一路由节点为(3,4),目标路由节点为(0,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C等于Y_NW、但X_C不等于X_SE,则向东路由。
步骤2.2.1.2:判断X_C等于X_NW或X_C等于X_SE是否成立,若是,执行步骤2.2.1.2.1,若否,路由包向西路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(2,1),目标路由节点为(0,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW,且X_C不等于X_NW、也不等于X_SE,则向西路由。
步骤2.2.1.2.1:判断Y_C是否等于Y_SE,若是,路由包向西路由,若否,路由包向南路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(4,1),目标路由节点为(0,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW、X_C等于X_SE、且Y_C等于Y_SE,则向西路由;假设第一路由节点为(4,2),目标路由节点为(0,0),其中,Y_C大于Y_D、Y_D小于Y_SE、Y_C不等于Y_NW、X_C等于X_SE、但Y_C不等于Y_SE,则向南路由。
步骤2.2.2:判断X_C是否等于X_SE,若是,执行步骤2.2.2.1,若否,路由包向西路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(3,4),目标路由节点为(0,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C不等于X_SE,则向西路由。
步骤2.2.2.1:判断Y_C是否等于Y_NW,若是,路由包向西路由,若否,路由包向北路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(4,4),目标路由节点为(0,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C等于X_SE、且Y_C等于Y_NW,则向西路由;假设第一路由节点为(4,3),目标路由节点为(0,2),其中,Y_C大于Y_D、Y_D大于Y_SE、X_C等于X_SE、但Y_C不等于Y_NW,则向北路由。
步骤2.3:判断Y_C是否小于Y_D,若是,执行步骤2.3.1;
步骤2.3.1:判断Y_D是否大于等于Y_NW,若是,执行步骤2.3.1.1,若否,执行步骤2.3.2;
步骤2.3.1.1:判断Y_C是否等于Y_SE,若是,执行步骤2.3.1.1.1,若否,执行步骤2.3.1.2;
步骤2.3.1.1.1:判断X_C是否等于X_SE,若是,路由包向北路由,若否,路由包向东路由;
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(4,0),目标路由节点为(0,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C等于Y_SE、且X_C等于X_SE,则向北路由;假设第一路由节点为(3,0),目标路由节点为(0,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C等于Y_SE、但X_C不等于X_SE,则向东路由。
步骤2.3.1.2:判断X_C等于X_NW或X_C等于X_SE是否成立,若是,执行步骤2.3.1.2.1,若否,路由包向西路由;
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(2,3),目标路由节点为(0,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE、且X_C不等于X_NW、也不等于X_SE,则向西路由。
步骤2.3.1.2.1:判断Y_C是否等于Y_NW,若是,路由包向西路由,若否,路由包向北路由;
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(1,3),目标路由节点为(0,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE、X_C等于X_NW、且Y_C等于Y_NW,则向西路由;假设第一路由节点为(1,2),目标路由节点为(0,4),其中,Y_C小于Y_D、Y_D大于Y_NW、Y_C不等于Y_SE、X_C等于X_NW、但Y_C不等于Y_NW,则向北路由。
步骤2.3.2:判断X_C是否等于X_SE,若是,执行步骤2.3.2.1,若否,路由包向西路由;
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(3,0),目标路由节点为(0,2),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C不等于X_SE,则向西路由。
步骤2.3.2.1:判断Y_C是否等于Y_SE,若是,路由包向西路由,若否,路由包向南路由。
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(4,0),目标路由节点为(0,2),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C等于X_SE、且Y_C等于Y_SE,则向西路由;假设第一路由节点为(4,1),目标路由节点为(0,2),其中,Y_C小于Y_D、Y_D小于Y_NW、X_C等于X_SE、但Y_C不等于Y_SE,则向南路由。
基于上述步骤2,举一个例子进行说明。图11为另一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图。
如图11所示,假设起始路由节点为(7,4),目标路由节点为D(3,1),故障环的NE顶角路由节点为(2,5),SE顶角路由节点为(5,2),在路由包到达故障环上之前,先按XY维序路由方法进行路由,则路由包经过路由节点(6,4)到达故障环的第一路由节点C(5,4)上。
首先,判断得到X_C大于X_D,Y_C大于Y_D,则第一位置即为目标路由节点在相对于第一路由节点的西南方向,且目标路由节点与第一路由节点位于不同行,然后判断得到Y_D小于Y_SE,可以确定目标路由节点在相对于顶角路由节点的偏南方向,即为第三位置。
接下来可以判断得到Y_C不等于Y_NW,也就是第二位置为第一路由节点与NW顶角路由节点位于故障环的不同行,然后再判断第一路由节点的X_C是否等于X_NW或X_SE,可以得到X_C等于X_SE,也即是第一路由节点与SE顶角路由节点位于故障环上的同一列。
再接下来判断Y_C是否等于Y_SE,可以得到Y_C不等于Y_SE,即第二判断结果为第一路由节点不是顶角路由节点,根据第一位置和第二判断结果,将路由包向南路由,到达路由节点(5,3)上,将路由节点(5,3)作为新的第一路由节点C,重新返回执行确定第一位置操作,直至当路由包路由至目标路由节点(3,1),则完成了整个路由包的传输过程。
步骤3:判断Y_C是否大于Y_D,若是,则执行步骤3.1,若否,执行步骤4;
步骤3.1:判断X_C等于X_NW或X_C等于X_SE或Y_C等于Y_SE是否成立,若是,路由包向南路由,若否,路由包向西路由;
例如,假设NW顶角路由节点为(1,4),SE顶角路由节点为(4,1),第一路由节点为(1,4),目标路由节点为(1,0),其中,X_C等于X_D、Y_C大于Y_D、且X_C等于X_NW,则向南路由;假设第一路由节点为(2,4),目标路由节点为(2,0),其中,X_C等于X_D、Y_C大于Y_D、但X_C不等于X_NW、也不等于X_SE、Y_C不等于Y_SE,则向西路由。
步骤4:判断Y_C是否小于Y_D,若是,则执行步骤4.1;
步骤4.1:判断X_C等于X_NW或X_C等于X_SE或Y_C等于Y_NW是否成立,若是,路由包向北路由,若否,路由包向西路由。
例如,假设NW顶角路由节点为(1,3),SE顶角路由节点为(4,0),第一路由节点为(4,0),目标路由节点为(4,4),其中,X_C等于X_D、Y_C小于Y_D、且X_C等于X_SE,则向北路由;假设第一路由节点为(3,0),目标路由节点为(3,4),其中,X_C等于X_D、Y_C小于Y_D、但X_C不等于X_NW、也不等于X_SE、Y_C不等于Y_NW,则向西路由。
基于上述步骤3和步骤4,举一个例子进行说明。图12为又一个实施例提供的适用于神经形态电路的路由容错方法的过程示意图。
如图12所示,假设起始路由节点为(3,6),目标路由节点为D(3,1),故障环的NE顶角路由节点为(2,5),SE顶角路由节点为(5,2),在路由包到达故障环上之前,先按XY维序路由方法进行路由,则路由包到达故障环的第一路由节点C(3,5)上。
首先,判断得到X_C等于X_D,Y_C大于Y_D,则第一位置即为目标路由节点在相对于第一路由节点的正南方向,且目标路由节点与第一路由节点位于不同行。
然后,判断X_C是否等于X_NW或者X_C是否等于X_SE或者Y_C是否Y_SE,可以得到上述条件都不成立,则可以确定第二位置为第一路由节点位于故障环上NW顶角路由节点所在的一行,接下来根据第一位置和第二位置,将路由包向西路由,到达路由节点(2,5)上,将路由节点(2,5)作为新的第一路由节点C,重新返回执行确定第一位置操作。直至当路由包路由至目标路由节点(3,1),则完成了整个路由包的传输过程。
进一步地,实现上述适用于神经形态电路的路由容错方法的伪代码具体如下:
图13为一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图。如图13所示,该装置包括:确定模块11和路由模块12。
具体的,确定模块11,用于根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
路由模块12,用于当路由包路由至所述故障环的第一路由节点上时,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
本实施例提供的适用于神经形态电路的路由容错装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图14为另一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图。在上述图13所示实施例的基础上,如图14所示,上述确定模块11,具体可以包括:获取单元111、第一确定单元112和第二确定单元113。
具体的,获取单元111,用于获取与所述故障路由节点相邻的第二路由节点;
第一确定单元112,用于在与所述第二路由节点相邻的路由节点中存在至少两个故障路由节点时,确定所述第二路由节点为新的故障路由节点;
第二确定单元113,用于将所述故障路由节点和所述新的故障路由节点围成的最小矩形区域确定为所述故障区,并将所述故障区外围相邻节点组成的矩形环路确定为所述故障环。
本实施例提供的适用于神经形态电路的路由容错装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图15为又一个实施例提供的适用于神经形态电路的路由容错装置的结构示意图。在上述实施例的基础上,如图15所示,上述路由模块12,具体可以包括:第三确定单元121、第四确定单元122和路由单元123。
具体的,第三确定单元121,用于执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的坐标信息和所述目标路由节点的坐标信息,确定所述第一位置;
第四确定单元122,用于执行第二位置确定操作,以确定第一路由节点相对于所述顶角路由节点的第二位置;其中,所述第二位置确定操作包括:根据所述第一位置、所述第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定所述第二位置;
路由单元123,用于根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点。
本实施例提供的适用于神经形态电路的路由容错装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在其中一个实施例中,上述第三确定单元121,具体用于根据所述第一路由节点的横坐标和所述目标路由节点的横坐标,确定第一坐标关系;根据所述第一路由节点的纵坐标和所述目标路由节点的纵坐标,确定第二坐标关系;根据所述第一坐标关系和所述第二坐标关系,确定所述第一位置。
在其中一个实施例中,上述第四确定单元122,具体用于在所述第一位置为所述目标路由节点与所述第一路由节点位于同一行时,根据所述第一路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述第一路由节点与所述顶角路由节点是否为同一行节点;
相应的,上述路由单元123,具体用于在所述第二位置为所述第一路由节点与所述顶角路由节点为同一行节点时,根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在其中的一个实施例中,上述第四确定单元122,具体用于在所述第一位置为所述目标路由节点与所述第一路由节点位于不同行时,根据所述目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述目标路由节点相对于所述顶角路由节点的第三位置;并根据所述第三位置、所述第一路由节点的坐标信息和所述两个顶角路由节点中的一个顶角路由节点的坐标信息,确定所述第二位置。
在其中的一个实施例中,上述第四确定单元122,具体用于根据所述第三位置、所述第一路由节点的纵坐标和所述两个顶角路由节点中的一个顶角路由节点的纵坐标,确定所述第二位置。
在其中的一个实施例中,上述路由单元123,具体用于在所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行时,根据所述第一路由节点的横坐标和所述两个顶角路由节点中的另一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述另一个顶角路由节点位于所述故障环上的同一列,得到第一判断结果;并根据所述第一判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在其中的一个实施例中,上述路由单元123,具体用于在所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同行时,根据所述第一路由节点的横坐标和所述两个顶角路由节点中的任一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述任一个顶角路由节点位于所述故障环上的同一列;若是,则根据所述第一路由节点的纵坐标和所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否为顶角路由节点,得到第二判断结果,并根据所述第二判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止;若否,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在其中的一个实施例中,上述第四确定单元122,具体用于根据所述第三位置、所述第一路由节点的横坐标和所述两个顶角路由节点中的一个顶角路由节点的横坐标,确定所述第二位置。
在其中的一个实施例中,上述路由单元123具体用于在所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一列时,根据所述第一路由节点的纵坐标与所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否与所述顶角路由节点位于所述故障环上的同一行,得到第三判断结果;并根据所述第三判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在其中的一个实施例中,上述路由单元123,具体用于在所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同列时,根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
在其中的一个实施例中,上述路由单元123,具体用于在所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行时,根据所述第一路由节点的横坐标和所述一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述一个顶角路由节点位于所述故障环上的同一列,得到第四判断结果;并根据所述第四判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,并指示所述第三确定单元121返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
关于适用于神经形态电路的路由容错装置的具体限定可以参见上述对于适用于神经形态电路的路由容错方法的限定,在此不再赘述。上述适用于神经形态电路的路由容错装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述方法实施例中涉及的适用于神经形态电路的路由容错方法。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种适用于神经形态电路的路由容错方法,其特征在于,包括:
根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
2.根据权利要求1所述的方法,其特征在于,所述根据神经形态电路中的故障路由节点,确定故障区和故障环,包括:
获取与所述故障路由节点相邻的第二路由节点;
若与所述第二路由节点相邻的路由节点中存在至少两个故障路由节点,则确定所述第二路由节点为新的故障路由节点;
将所述故障路由节点和所述新的故障路由节点围成的最小矩形区域确定为所述故障区,并将所述故障区外围相邻节点组成的矩形环路确定为所述故障环。
3.根据权利要求1所述的方法,其特征在于,所述当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,包括:
执行第一位置确定操作,以确定所述目标路由节点相对于所述第一路由节点的第一位置;其中,所述第一位置确定操作包括:根据所述第一路由节点的坐标信息和所述目标路由节点的坐标信息,确定所述第一位置;
执行第二位置确定操作,以确定第一路由节点相对于所述顶角路由节点的第二位置;其中,所述第二位置确定操作包括:根据所述第一位置、所述第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定所述第二位置;
根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点。
4.根据权利要求3所述的方法,其特征在于,所述根据第一路由节点的坐标信息和所述目标路由节点的坐标信息,确定所述第一位置,包括:
根据所述第一路由节点的横坐标和所述目标路由节点的横坐标,确定第一坐标关系;
根据所述第一路由节点的纵坐标和所述目标路由节点的纵坐标,确定第二坐标关系;
根据所述第一坐标关系和所述第二坐标关系,确定所述第一位置。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一位置、所述第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定所述第二位置,包括:
若所述第一位置为所述目标路由节点与所述第一路由节点位于同一行,则根据所述第一路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述第一路由节点与所述顶角路由节点是否为同一行节点;
相应的,
所述根据第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述顶角路由节点为同一行节点,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第一位置、所述第一路由节点的坐标信息和至少一个顶角路由节点的坐标信息,确定所述第二位置,包括:
若所述第一位置为所述目标路由节点与所述第一路由节点位于不同行,则根据所述目标路由节点的纵坐标和至少一个顶角路由节点的纵坐标,确定所述目标路由节点相对于所述顶角路由节点的第三位置;
根据所述第三位置、所述第一路由节点的坐标信息和所述两个顶角路由节点中的一个顶角路由节点的坐标信息,确定所述第二位置。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第三位置、所述第一路由节点的坐标信息和所述两个顶角路由节点中的一个顶角路由节点的坐标信息,确定所述第二位置,包括:
根据所述第三位置、所述第一路由节点的纵坐标和所述两个顶角路由节点中的一个顶角路由节点的纵坐标,确定所述第二位置。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行,则根据所述第一路由节点的横坐标和所述两个顶角路由节点中的另一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述另一个顶角路由节点位于所述故障环上的同一列,得到第一判断结果;
根据所述第一判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
9.根据权利要求7所述的方法,其特征在于,所述根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同行,则根据所述第一路由节点的横坐标和所述两个顶角路由节点中的任一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述任一个顶角路由节点位于所述故障环上的同一列;
若是,则根据所述第一路由节点的纵坐标和所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否为顶角路由节点,得到第二判断结果,并根据所述第二判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止;
若否,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
10.根据权利要求6所述的方法,其特征在于,所述根据所述第三位置、所述第一路由节点的坐标信息和所述两个顶角路由节点中的一个顶角路由节点的坐标信息,确定所述第二位置,包括:
根据所述第三位置、所述第一路由节点的横坐标和所述两个顶角路由节点中的一个顶角路由节点的横坐标,确定所述第二位置。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一列,则根据所述第一路由节点的纵坐标与所述两个顶角路由节点中的另一个顶角路由节点的纵坐标,确定所述第一路由节点是否与所述另一个顶角路由节点位于所述故障环上的同一行,得到第三判断结果;
根据所述第三判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
12.根据权利要求10所述的方法,其特征在于,所述根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的不同列,则根据所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
13.根据权利要求7所述的方法,其特征在于,所述根据所述第一位置和所述第二位置,将所述路由包从所述第一路由节点路由至所述目标路由节点,包括:
若所述第二位置为所述第一路由节点与所述一个顶角路由节点位于所述故障环上的同一行,则根据所述第一路由节点的横坐标和所述一个顶角路由节点的横坐标,判断所述第一路由节点是否与所述一个顶角路由节点位于所述故障环上的同一列,得到第四判断结果;
根据所述第四判断结果和所述第一位置确定下一个路由节点,将所述路由包路由至所述下一个路由节点之后,将所述下一个路由节点作为新的第一路由节点,返回执行所述第一位置确定操作,直至所述新的第一路由节点的坐标等于所述目标路由节点的坐标为止。
14.一种适用于神经形态电路的路由容错装置,其特征在于,包括:
确定模块,用于根据神经形态电路中的故障路由节点,确定故障区和故障环,其中,所述故障区为包含所述故障路由节点的最小矩形区域,所述故障环为所述故障区外围相邻节点组成的矩形环路;
路由模块,用于当路由包路由至所述故障环的第一路由节点上,根据所述第一路由节点的坐标信息、所述路由包携带的目标路由节点的坐标信息、以及所述故障环的任一条对角线上的两个顶角路由节点的坐标信息,将所述路由包路由至所述目标路由节点,所述路由包所经过的路由线路中的路由节点不包含所述故障区内的故障路由节点。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-13中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044745.6A CN110048943A (zh) | 2018-01-17 | 2018-01-17 | 适用于神经形态电路的路由容错方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044745.6A CN110048943A (zh) | 2018-01-17 | 2018-01-17 | 适用于神经形态电路的路由容错方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110048943A true CN110048943A (zh) | 2019-07-23 |
Family
ID=67273544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810044745.6A Pending CN110048943A (zh) | 2018-01-17 | 2018-01-17 | 适用于神经形态电路的路由容错方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048943A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387077A (zh) * | 2011-10-19 | 2012-03-21 | 西安电子科技大学 | 具有容错功能的热量均衡片上网络路径选择方法 |
US8265070B2 (en) * | 2008-12-15 | 2012-09-11 | Oracle America, Inc. | System and method for implementing a multistage network using a two-dimensional array of tiles |
CN105846949A (zh) * | 2015-01-14 | 2016-08-10 | 华为技术有限公司 | 确定信息的传输路径的方法和节点 |
CN106789675A (zh) * | 2016-12-05 | 2017-05-31 | 清华大学 | 基于2D mesh网络的路由多播方法及系统 |
CN107171954A (zh) * | 2016-03-08 | 2017-09-15 | 华为技术有限公司 | 容错路由方法、装置及片上网络 |
-
2018
- 2018-01-17 CN CN201810044745.6A patent/CN110048943A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8265070B2 (en) * | 2008-12-15 | 2012-09-11 | Oracle America, Inc. | System and method for implementing a multistage network using a two-dimensional array of tiles |
CN102387077A (zh) * | 2011-10-19 | 2012-03-21 | 西安电子科技大学 | 具有容错功能的热量均衡片上网络路径选择方法 |
CN105846949A (zh) * | 2015-01-14 | 2016-08-10 | 华为技术有限公司 | 确定信息的传输路径的方法和节点 |
CN107171954A (zh) * | 2016-03-08 | 2017-09-15 | 华为技术有限公司 | 容错路由方法、装置及片上网络 |
CN106789675A (zh) * | 2016-12-05 | 2017-05-31 | 清华大学 | 基于2D mesh网络的路由多播方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547237B (zh) | 一种基于异构多核架构的导航解算装置 | |
CN105205249B (zh) | 一种soc调试验证系统及其软硬件协同方法 | |
CN114781318B (zh) | 芯片的模块引脚布线方法、装置、电子设备及存储介质 | |
CN109643257A (zh) | 存储器系统中的链路纠错 | |
US9287239B2 (en) | Techniques for interconnecting stacked dies using connection sites | |
CN103310850B (zh) | 片上网络资源节点存储器的内建自测试结构和自测试方法 | |
JPH07107916B2 (ja) | 超大規模集積回路 | |
KR20160042083A (ko) | 하이브리드 메모리 모듈들을 위한 메모리의 i/o들을 구성하기 위한 장치들 및 방법들 | |
CN105657748A (zh) | 基于隧道绑定的通信方法和网络设备 | |
CN104731821B (zh) | 用于异步请求模式的网页遮罩方法 | |
CN108139978A (zh) | 具有高速缓存的存储器模块操作的存储器系统 | |
CN102036038A (zh) | 多通道osd视频叠加控制器 | |
WO2016112854A1 (zh) | 确定信息的传输路径的方法和节点 | |
CN110048943A (zh) | 适用于神经形态电路的路由容错方法、装置、设备及存储介质 | |
CN113364690B (zh) | 接收卡网络传输路径确定方法、装置、终端及存储介质 | |
CN105631118B (zh) | 可编程逻辑器件图形绘制方法及装置 | |
CN100394390C (zh) | 差错检测和校正装置及其控制方法 | |
CN107807890A (zh) | 内嵌sdram存储器的fpga、布局方法、设备及电路板 | |
TW495758B (en) | Semiconductor memory device | |
CN204836362U (zh) | 基于fpga的高清视频osd菜单叠加模块 | |
CN103389924B (zh) | 应用于随机存储器的ecc存储系统 | |
CN109472342A (zh) | 一种自优化的仿生自修复硬件故障重构机制设计 | |
CN105843578B (zh) | 一种拼接墙回显方法、装置及系统 | |
EP4283479A1 (en) | Interconnection system, data transmission method, and chip | |
CN102006155B (zh) | 一种全方向数据传输的冗余容错方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190723 |
|
RJ01 | Rejection of invention patent application after publication |