CN112650705A - 路由控制方法及人工智能处理器 - Google Patents
路由控制方法及人工智能处理器 Download PDFInfo
- Publication number
- CN112650705A CN112650705A CN202011630634.7A CN202011630634A CN112650705A CN 112650705 A CN112650705 A CN 112650705A CN 202011630634 A CN202011630634 A CN 202011630634A CN 112650705 A CN112650705 A CN 112650705A
- Authority
- CN
- China
- Prior art keywords
- packet
- routing
- data
- header
- processing core
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 224
- 230000005540 biological transmission Effects 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000013528 artificial neural network Methods 0.000 claims description 37
- 210000002569 neuron Anatomy 0.000 claims description 15
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 7
- 238000012421 spiking Methods 0.000 description 6
- 210000004556 brain Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17312—Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
本公开涉及路由控制方法及人工智能处理器。该路由控制方法应用于众核处理器的处理核心,所述众核处理器包括多个处理核心,各处理核心之间通过路由包进行数据收发,路由包包括包头和数据载荷,方法包括:所述包头为第一包头,将第一包头与数据载荷进行打包,生成一个路由包;包头为第二包头,将第二包头分别与数据载荷进行打包,生成一个或多个路由包,其中,每个路由包的数据载荷包括一个或多个单位长度的有效数据;源处理核心向目标处理核心发送路由包;目标处理核心接收路由包,并对路由包携带的数据载荷进行处理。本公开实施例能够实现利用不同包头进行路由包的混合传输,提高数据传输及处理的灵活性和效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种路由控制方法及人工智能处理器。
背景技术
目前典型的神经网络包括人工神经网络和脉冲神经网络。人工神经网络基于对神经元模型的简化和对大脑网络的高度抽象,将人工神经元按一定结构连接成网络,其输入输出均为数值量信息,借鉴大脑分层结构,可以构建较深的网络模型,在特征提取、模式识别等问题上展现出显著优势,但是数值量信息在一定程度上丢失了时间信息,且大规模网络消耗较多计算资源,能耗较高。脉冲神经网络更贴近实际生物模型,利用微分方程对神经元建模,输入输出为用0/1表示的脉冲序列,通过膜电位累计与阈值发放完成计算任务,具有网络动力学特性,蕴含丰富的时间信息,在处理序列问题上具有一定优势,事件驱动的处理模式也带来低功耗特性,但在运算精度、大规模数据和网络方面有待提升。
由此,单独采用人工神经网络或脉冲神经网络都无法处理复杂的人工通用智能的任务场景,例如同时需要精确数值和快速响应的任务场景,因此往往需要不同神经网络异构协同工作。而在不同神经网络异构协同工作的场景中,对数据传输的灵活性和效率提出了更高的要求。
发明内容
有鉴于此,本公开提出了一种路由控制方法及人工智能处理器,能够实现利用不同包头进行路由包的混合传输,提高数据传输及处理效率。
根据本公开的一方面,提供了一种路由控制方法,所述方法应用于众核处理器的处理核心,所述众核处理器包括多个处理核心,各处理核心之间通过路由包进行数据发送和接收,所述路由包包括包头和数据载荷,所述方法包括:在所述包头为第一包头的情况下,源处理核心将所述第一包头与数据载荷进行打包,生成一个路由包;在所述包头为第二包头的情况下,源处理核心将所述第二包头分别与数据载荷进行打包,生成一个或多个路由包,其中,所述第一包头用来发送一个路由包,所述第二包头用来发送一个或多个路由包,每个路由包的数据载荷包括一个或多个单位长度的有效数据;源处理核心向目标处理核心发送所述路由包;目标处理核心接收所述路由包,并对所述路由包携带的数据载荷进行处理。
根据本公开的另一方面,提供了一种人工智能处理器,所述人工智能处理器包括多个处理核心,各处理核心之间通过路由包进行数据发送和接收,所述路由包包括包头和数据载荷,其中,所述人工智能处理器被配置为执行所述路由控制方法。
根据本公开的实施例,通过在所述包头为第一包头的情况下,源处理核心将所述第一包头与数据载荷进行打包,生成一个路由包;在所述包头为第二包头的情况下,源处理核心将所述第二包头分别与数据载荷进行打包,生成一个或多个路由包;源处理核心向目标处理核心发送所述路由包;目标处理核心接收所述路由包,并对所述路由包携带的数据载荷进行处理,每个路由包的数据载荷包括一个或多个单位长度的有效数据,所述路由控制方法及人工智能处理器能够实现利用不同包头进行路由包的混合传输,每个路由包中有效数据不限于固定长度,提高了数据传输的灵活性和传输效率。另外,包头在多个路由包中的复用降低了包头的存储消耗,提高了路由包发送的数量,有利于大量数据的传输,提高了传输效率。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本公开实施例的路由控制方法的流程图。
图2示出本公开实施例的人工智能处理器的示意图。
图3示出本公开实施例的人工智能处理器的示意图。
图4示出本公开实施例的路由包的示意图。
图5示出本公开实施例的路由包的示意图。
图6a示出本公开实施例的第一包头的路由控制方法的示意图。
图6b示出本公开实施例的第二包头的路由控制方法的示意图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
相关技术中,为了实现不同神经网络(例如,人工神经网络和脉冲神经网络)的异构协同工作,可以用统一的路由包格式传输不同类型(例如,数值量信息和脉冲信息)的数据,但这种路由包格式传输的大多是一种固定长度的有效数据,数据传输的灵活性差,降低了数据的传输效率。另外,相关技术中,一个路由包的包头用于发送一个路由包,路由包包头的存储消耗较大,限制了路由包发送的数量,不利于大量数据的传输。
有鉴于此,本公开提供了一种路由控制方法及人工智能处理器,能够针对携带不同类型数据的路由包复用路由包的包头,并在一个路由包中,可灵活选择传输一个或多个单位长度的有效数据,减少人工智能处理器进行数据传输所需的代价,减少数据传输的延迟时间,提高数据传输效率以及处理效率,提升通用性和灵活性。
图1示出本公开实施例的路由控制方法的流程图。
如图1所示,所述路由控制方法可应用于众核处理器的处理核心,所述众核处理器可包括多个处理核心,各处理核心之间可通过路由包进行数据发送和接收,所述路由包可包括包头和数据载荷,所述方法可以包括:
步骤S100,在所述包头为第一包头的情况下,源处理核心将所述第一包头与数据载荷进行打包,生成一个路由包;在所述包头为第二包头的情况下,源处理核心将所述第二包头分别与数据载荷进行打包,生成一个或多个路由包,其中,所述第一包头用来发送一个路由包,所述第二包头用来发送一个或多个路由包,每个路由包的数据载荷包括一个或多个单位长度的有效数据。
步骤S200,源处理核心向目标处理核心发送所述路由包。
步骤S300,目标处理核心接收所述路由包,并对所述路由包携带的数据载荷进行处理。
在一种可能的方式中,根据本公开实施例的众核处理器可为包括多个处理核心的任何类型的处理器,例如可以是人工智能处理器。人工智能处理器可包括神经形态芯片,处理核心可包括神经形态芯片的功能核,神经形态芯片可以按照功能核进行组织。本领域技术人员应当理解的是,本公开对于神经形态芯片和功能核的描述是示例性的,本公开对于众核处理器、人工智能处理器以及处理核心并不限定。为便于理解,以下以人工智能处理器为例进行举例说明。
图2示出本公开实施例的人工智能处理器的示意图。
在一种可能的实现方式中,如图2所示,人工智能处理器100可包括多个处理核心110,多个处理核心110按照二维网状(即,2D mesh)结构进行排列,组成二维网格网络。其中,各处理核心之间通过路由包进行数据交换,每个处理核心都是一个路由节点。
图3示出本公开实施例的人工智能处理器的示意图。
在一种可能的实现方式中,如图3所示,每个处理核心110可包括路由模块111、处理模块112及寄存模块113。路由模块111可用于接收和/或发送路由包;处理模块112可用于进行数据处理(例如,神经网络计算);寄存模块113可用于寄存处理核心本地的信息(例如,路由包包头的标志位信息)。
在一种可能的实现方式中,每个处理核心110还包括存储模块。所述存储模块可以存储在处理核心之间通过路由进行交换的数据,也可以存储路由表等和路由相关的参数。例如,所述路由表可以包括处理核心的输入类型、地址信息及各处理核心之间的路由连接关系。当处理核心执行人工神经网络计算时,路由表的输入类型可以是数值量信息;当处理核心执行脉冲神经网络计算时,路由表的输入类型可以是脉冲信息。
在一种可能的实现方式中,所述处理核心可以执行人工神经网络计算、脉冲神经网络计算或者混合神经网络计算。当处理核心执行人工神经网络计算时,其输入类型和输出类型均为用于人工神经网络计算的数值量信息;当处理核心执行脉冲神经网络计算时,其输入类型和输出类型均为用于脉冲神经网络计算的脉冲信息;当处理核心执行混合神经网络计算时,其输入类型和输出类型既可以是用于人工神经网络计算的数值量信息,也可以是用于脉冲神经网络计算的脉冲信息。相应地,路由包中的有效数据的类型也可包括上述脉冲信息或数值量信息,或其他数据类型。同一路由包中包括多个单位长度的有效数据时,各单位长度的有效数据可以是相同的数据类型,或者不同的数据类型。
在一种可能的方式中,所述处理核心可包括多个神经元,所述神经元用于执行神经网络计算任务,每个神经元每次输出一个单位长度(例如,1个字节)的所述有效数据。当一个特定的神经网络计算任务在人工智能处理器上执行时,可以将神经网络计算任务的参数等信息映射到对应的处理核心的第一配置信息上,并获取相应的路由表。其中,所述处理核心的第一配置信息可以包括处理核心内存储的用于突触计算的突触权重,每个处理核心实际可以接收的输入数量和实际需要计算的神经元数量,以及混合神经网络处理核心的计算模式(例如,卷积或者向量点乘等)。
图4示出本公开实施例的路由包的示意图。
如图4所示,所述路由包可以包括包头34和数据载荷33,包头34可以包括标志位信息31和地址信息32。其中,所述数据载荷可以包括用于脉冲神经网络计算的脉冲信息或用于人工神经网络计算的数值量信息。
在一种可能的方式中,每个处理核心可以通过路由模块进行数据的发送和接收,即各个处理核心之间可以通过路由包进行通信。例如,处理核心A可以通过查询路由表获取处理核心B的地址信息和输入类型,然后将包含地址信息和输出信息(脉冲信息)的路由包发送至处理核心B,若处理核心B判断路由包中的地址信息与本处理核心的地址信息不匹配,则根据地址信息将路由包转发给下一个处理核心C。若处理核心C判断路由包中的地址信息与本处理核心的地址信息匹配,从路由包中获取对应的脉冲信息作为输入信息,并对该输入信息进行处理。
在一种可能的方式中,所述包头的长度可以为32位(bit,比特),所述数据载荷的长度可以为64位(即,8个字节)。例如,在所述神经元执行神经网络计算时,神经元的输出可以是8位的数据,因此64位的数据载荷可以是处理核心中的8个神经元完成计算后得到的输出结果。其中,数据与神经元之间的对应关系可以预先设定,例如0-7位的数据对应神经元1的输出,8-15位的数据对应神经元2的输出等。
值得注意的是,在处理核心执行计算任务之前,数据载荷可以存储在处理核心的存储模块中。当处理核心需要从存储模块中读取或写入数据时,可以按照64位的总线宽度来读取或写入,即处理核心从存储模块中一次读取或写入长度为64位的数据;在处理核心执行计算任务之前,路由包的包头可以预先配置在寄存模块的寄存器中,即路由包的包头可以是预先配置在寄存模块的寄存器中的第二配置信息。当需要进行路由包的发送和接收时,由处理核心读取预先配置的第二配置信息,将读取出的包头和数据载荷一起进行打包,从而生成新的路由包。
在一种可能的方式中,所述数据载荷可以用于传输包括二值数据、三值数据等多种精度的数据。例如,作为第三代神经网络的脉冲神经网络,其数据是以神经元脉冲信号的时空信息编码,可用三值数据来描述(例如,0、1和-1)。当处理核心的输出为脉冲信息时,所述路由包的数据载荷可以用于传输三值数据。本领域技术人员应当理解的是,本公开对所述数据载荷中的数据精度并不限定。
在一种可能的方式中,所述标志位信息以及地址信息的长度和位置可以灵活配置。例如,所述标志位信息31的长度可以为4位,位于路由包包头的高4位(即,路由包包头的左侧部分);所述地址信息的长度可以为28位,位于路由包包头的低28位(即,路由包包头的右侧部分)。本领域技术人员应当理解的是,所述包头、数据载荷、标志位信息以及地址信息的长度和位置是示例性的,本公开对此并不限定。
图5示出本公开实施例的路由包的示意图。
在一种可能的方式中,如图5所示,所述路由包的长度可以为96位,其中,路由包的包头的长度可以为32位,路由包的包头可以位于该路由包的高32位(即,0-31位);路由包的数据载荷的长度可以为64位,路由包的数据载荷可以位于该路由包的低64位(即,32-95位)。
在一种可能的方式中,所述处理核心在进行路由包的发送或者接收时可以按单位长度进行。例如,一个单位长度的有效数据可以是一个字节(即,8位)长度的有效数据,B0-B7可以分别表示一个字节长度的有效数据,共8个字节长度的有效数据。又例如,B0[7:0]可以表示一个字节长度的数据载荷,位于路由包的88-95位。值得注意的是,当不需要使用B1-B7这7个字节长度的位时,可以将B1-B7的所有位全部置0,表示B1-B7这7个字节是无效的,即只有B0携带有效数据。本领域技术人员应当理解的是,本公开对所述单位长度并不限定。
在一种可能的方式中,每个路由包的数据载荷包括一个或多个单位长度的有效数据。所述路由包的包头可以是第一包头或第二包头,即利用第一包头或第二包头生成的路由包都可以携带一个或多个单位长度的有效数据。其中,可以根据所述路由包携带的有效数据的长度分为两种情形。例如,当路由包中的数据载荷包括一个字节长度的数据,其他位均置0,表示处理核心发送或者接收的路由包携带一个字节长度的数据,该路由包为单数据包;当路由包中的数据载荷包括至少2个字节长度的数据,其他位均置0时,表示处理核心发送或者接收的路由包携带至少2个字节长度的数据,该路由包为多数据包。又例如,B0-B7可以同时全部包括8个字节的有效数据,此时该路由包为多数据包;B0-B7也可以仅有B0包括1个字节的有效数据,而在B1-B7位置上全部置0,此时该路由包为单数据包。本领域技术人员应当理解的是,在其他应用场合,B0-B7也可以包括至少2个字节(例如,4个字节)的有效数据,同时将除有效数据的其他位置置0,本公开对于数据载荷的长度以及具体组成并不限定。
在一种可能的方式中,在源处理核心向目标处理核心发送所述路由包之前,根据第一原语参数的值判断所述包头是第一包头还是第二包头,其中,第一原语参数的值预先配置在源处理核心的寄存模块中。此时该处理核心(即,源处理核心)可为2D mesh网络中的源路由节点,所述第一原语参数可以预先配置在处理核心的寄存模块中(例如,原语寄存器)。例如,所述第一原语参数可以占用原语寄存器中1位大小的存储空间。当第一原语参数置1时,表示该处理核心发送的路由包的包头为第二包头,即该处理核心发送的路由包的包头可以复用多次,用来发送多个路由包,每个路由包可以携带8个字节的有效数据,也可以携带1个字节的有效数据;当第一原语参数置0时,表示该处理核心发送的路由包为第一包头,即该处理核心发送的路由包的包头可以用来发送一个路由包,该路由包可以携带8个字节的有效数据,也可以携带1个字节的有效数据。当路由包携带1个字节的有效数据时,该有效数据可以位于路由包的低8位(即,图5中路由包的右侧部分)。本领域技术人员应当理解的是,本公开对所述第一原语参数并不限定。
在一种可能的方式中,所述处理核心可以在不同的工作周期进行数据交换,所述数据交换包括数据接收和数据发送。通过在源处理核心配置第一原语参数以及在源处理核心发送的路由包的包头设置数据类型标志位信息,可以实现处理核心在不同的工作周期内利用不同包头进行路由包的混合传输。
表1示出一种示例性的第一包头的格式,即路由包的第一包头用于发送一个路由包。
表1
S | T | P | Q | X | Y | A |
1 | 1 | 1 | 1 | 8 | 8 | 12 |
在一种可能的方式中,如表1所示,该路由包的包头包括标志位信息31和地址信息32,所述包头的长度可以为32位。
在一种可能的方式中,所述标志位信息31可以包括数据有效标志位信息S、数据类型标志位信息T、发送完成标志位信息P和路由类别标志位信息Q,用于控制该路由包进行传输。其中,所述标志位信息包括数据有效标志位信息,用于判断所述路由包的数据载荷是否携带有效数据、数据类型标志位信息,用于判断所述路由包携带的数据载荷包括一个单位长度的有效数据,还是多个单位长度的有效数据、发送完成标志位信息,用于判断所述路由包的有效数据是否全部发送完成,以及路由类别标志位信息,用于判断所述路由包的路由类别。
在一种可能的实现方式中,如表1所示,所述数据有效标志位信息可以用于判断该路由包的数据载荷部分是否携带有效数据。例如,当S为0时,可以表示该路由包为数据包,即除了该路由包的包头部分,该路由包的数据载荷部分还携带有效数据;当S为1时,可以表示该路由包非数据包,即除了该路由包的包头部分,该路由包的数据载荷部分没有携带有效数据。例如,当S为1时,可以表示该路由包为即时原语索引包,即除了该路由包的包头部分,该路由包还携带有即时原语表示的索引信息,用于对处理核心中特定信息的索引,其中,即时原语可以理解为特定的程序段。本领域技术人员应当理解的是,可以根据需要设定S所表达的含义,本公开对此并不限定。
在一种可能的实现方式中,如表1所示,所述数据类型标志位信息可以用于判断该路由包携带的有效数据的数据类型,例如,所述数据类型标志位信息可以用于判断所述路由包携带的数据载荷包括一个单位长度的有效数据,还是多个单位长度的有效数据。例如,当T为0时,可以表示该路由包携带的有效数据的数据类型为单个字节长度的有效数据,此时该路由包为单数据包;当T为1时,可以表示该路由包携带的有效数据的数据类型为8个字节长度的有效数据,此时该路由包为多数据包。
在一种可能的实现方式中,如表1所示,在所述包头是第一包头的情况下,所述发送完成标志位信息可以用于判断所述路由包的有效数据是否全部发送完成。例如,当P为0时,可以表示该路由包携带的有效数据还未完成发送;当P为1时,可以表示该路由包携带的有效数据已经发送完成。值得注意的是,在所述包头是第一包头的情况下,可以配置标志位P的初始值为1,即表示该标志位有效;当源处理核心开始进行路由包的发送时,该标志位置0,表示路由包中的有效数据还未完成发送;当源处理核心已经完成路由包的发送时,该标志位置1,表示路由包中的有效数据已经发送完成。
在一种可能的实现方式中,所述路由类别标志位信息可以用于判断所述路由包的路由类别,例如,所述路由类别标志位信息可以用于判断所述路由包是进行普通路由还是进行中继路由或者多播路由。例如,当Q为0时,表示该路由包为进行普通路由的路由包,即将路由包中的有效数据发送到目标处理核心即结束路由;当Q为1时,表示该路由包为进行中继或者进行多播的路由包(可视具体应用场景的需要而定),即路由包路由到目标处理核心,还需进一步执行路由过程。值得注意的是,若该路由包为进行中继的路由包,当该路由包路由到目标处理核心,不需要将路由包中的有效数据发送到目标处理核心,直接进行中继过程;若该路由包为进行多播的路由包,需要将路由包中的有效数据发送到目标处理核心,同时进行多播过程。本领域技术人员应当理解的是,除了中继路由或者多播路由,所述处理核心还可以进行广播等常见的通信形式,本公开对于所述路由包的路由类别并不限定。
在一种可能的实现方式中,在一个源处理核心向多个处理核心发送路由包,且所述包头是第一包头的情况下,可以采用多播路由的方式进行,此时可以配置路由类别标志位信息为1表示该路由包进行多播路由,将该路由包的有效数据发送到多个处理核心中进行处理。
在一种可能的方式中,所述地址信息可以包括目标处理核心自身的地址,以及所述有效数据将要写入的目标处理核心中的存储地址。例如,所述地址信息32可以包括水平地址信息X、竖直地址信息Y和存储地址信息A。其中,水平地址信息X、竖直地址信息Y用于确定目标处理核心自身的地址,存储地址信息A用于确定所述有效数据将要写入的目标处理核心中的存储地址。值得注意的是,表1中的全部信息(即,第二配置信息)可以预先在处理核心的寄存模块中进行配置。S、T、P和Q占用的存储空间分别为1位,X和Y占用的存储空间分别为8位,A占用的存储空间为12位。当源处理核心需要进行有效数据的发送时,可以从源处理核心的寄存模块中读取所述第二配置信息,例如读取预先配置好的S、T、P、Q、X、Y和A的值。将有效数据按照图4或图5中的格式进行组织(即,打包),生成路由包。本领域技术人员应当理解的是,本公开对所述路由包以及各组成部分的位置和长度并不限定。
在一种可能的实现方式中,水平地址信息X、竖直地址信息Y用于确定目标处理核心自身的地址。所述水平地址信息X可以表示目标处理核心相对于源处理核心的水平方向相对距离;所述竖直地址信息Y可以表示目标处理核心相对于源处理核心的竖直方向相对距离。这里的距离可以是目标处理核心相对于源处理核心的逻辑位置之间的距离。X与Y可以分别是8位的整型数据,即可以分别表示水平方向与竖直方向-128至127的范围。例如,X可以为二进制形式的0000 0001,Y可以为二进制形式的0000 0010,则可以表示从源处理核心发送的路由包,需要先沿水平方向移动1个步长的距离,再沿竖直方向移动2个步长的距离,默认的步长可以为1个单位长度(即,两个相邻的处理核心之间的距离),最终将路由包发送至目标处理核心。X和Y既可以为正值,也可以为负值。当X和Y为正值时,可以表示该路由包将要路由的水平或者竖直方向和预设的正方向一致;当X和Y为负值时,可以表示该路由包将要路由的水平或者竖直方向和预设的正方向相反。本领域技术人员应当理解的是,在具体应用时也可以使用目标处理核心的绝对坐标而非目标处理核心相对源处理核心的逻辑位置来表示目标处理核心的地址,本公开对于X和Y的具体表示含义并不限定。
在一种可能的实现方式中,存储地址信息A用于确定所述有效数据将要写入的目标处理核心中的存储地址。具体的,所述存储地址信息A可以表示目标处理核心的存储模块中的存储地址,即路由包中的有效数据将要写入的存储模块中存储区域的地址。所述存储区域的地址可以是该存储区域的起始地址(即,绝对地址),当路由包根据目标处理核心的地址路由至目标处理核心时,目标处理核心可以选取路由包的有效数据,根据该存储区域的起始地址依次将所述有效数据写入到该目标处理核心的存储模块中的存储区域。在一个示例中,路由包将要写入的所述存储区域的地址可以由绝对地址表示,也可以由基地址和相对于基地址的偏移地址相加组成。对于后一种情况,可以在原语寄存器中配置基地址的值,在存储地址信息A中配置所述偏移地址的值,即此时存储地址信息A可以表示所述偏移地址,用来确定路由包中的有效数据将要写入的存储模块中存储区域的地址。
本领域技术人员应当理解的是,以上对路由包包头中各标志位信息以及地址信息的描述是示例性的,在实际应用中可以有不同形式的变形,例如各标志位信息长度和位置的改变,本公开对路由包包头中的各标志位信息以及地址信息并不限定。
图6a示出本公开实施例的第一包头的路由控制方法的示意图。
在一个示例中,如图6a所示,存储地址信息A的值可以是连续的,表示9个各自相邻的目标处理核心的存储区域的地址。在所述包头是第一包头的情况下,源处理核心可以多次发送多个路由包。每个路由包的包头都各不相同,需要分别发送。源处理核心发送的多个路由包可以根据存储地址信息A写入到目标处理核心的存储区域中。例如,在存储地址信息A表示所述偏移地址的情况下,A=0可以表示目标处理核心的存储区域的地址相对于预先配置的基地址的偏移为0,即目标处理核心的存储区域的地址与预先配置的基地址相同;A=1可以表示目标处理核心的存储区域的地址相对于预先配置的基地址的偏移为1,即目标处理核心的存储区域的地址在预先配置的基地址的基础上加1(即,二进制形式的00000000 0000 0001),以便接收所述路由包中不同的有效数据,其他关于A的表示依此类推。这样,当所述包头是第一包头时,数据传输机制简单方便。
在一种可能的实现方式中,第二包头可以复用多次,复用多次,每复用一次,发送一个路由包,多次复用的包头的格式一致,同一格式的包头可以完成多个数据包的连续发送,用于发送多个路由包。表2示出一种示例性的第二包头的格式。
表2
S | T | P | Q | X | Y | A | P’ | O | C | E |
1 | 1 | 1 | 1 | 8 | 8 | 12 | 12 | 12 | 7 | 1 |
在一种可能的实现方式中,如表2所示,该第二包头包括S、T、P、Q、X、Y和A,即所述第二包头和第一包头的长度可以相同,所述第二包头也可以为32位,并且第二包头中S、T、P、Q、X、Y和A可以与第一包头具有相同或相似的含义。在所述包头是第二包头的情况下,各路由包的包头格式一致,标志位信息一致,地址信息可以一致,或不一致。即在所述包头为第二包头的情况下,复用第二包头的各路由包的包头格式一致,标志位信息一致,地址信息一致或不一致。例如,在地址信息X、Y和A不一致时,多个路由包可以发送到不同的目标处理核心(用X,Y区分),或者存储至目标处理核心的不同存储区域(用A区分)。
在一种可能的实现方式中,如表2所示,在所述包头是第二包头的情况下,P可以是表示该路由包是否传输完成的标志位。例如,当P为0时,可以表示该路由包携带的有效数据还未完成发送;当P为1时,可以表示该路由包携带的有效数据已经发送完成。值得注意的是,在所述包头是第二包头的情况下,可以将利用第二包头发送的所有路由包中,最后发送的一个路由包的包头中的发送完成标志位信息的值,设置为表示所述路由包的有效数据全部发送完成的预设值。例如,在所述包头是第二包头的情况下,可以配置发送完成标志位信息P的初始值为0,即表示该标志位无效;当源处理核心开始进行路由包的发送时,该发送完成标志位信息仍然置0,表示路由包中的有效数据还未完成发送;当源处理核心多次复用第二包头(复用次数可以由标志位P’配置)时,可以将利用被复用的第二包头发送的所有路由包中,最后发送的一个路由包的包头中的发送完成标志位信息的值置1(即,预设值),表示所述路由包的有效数据全部发送完成。这样,能够保证路由包数据传输的连续性,进一步提高数据传输效率。
在一个示例中,源处理核心可以对复用第二包头的次数进行统计,当统计得到的数值等于预先配置的发送阈值(例如,在源处理核心的寄存模块中分配1位的存储空间用于配置该发送阈值)时,可以表示该源处理核心发送的全部有效数据都已经发送完成;同样,目标处理核心也可以对复用第二包头的次数进行统计,当统计得到的数值等于预先配置的接收阈值(例如,在目标处理核心的寄存模块中分配1位的存储空间用于配置该接收阈值)时,可以表示该目标处理核心接收到全部有效数据。这样,通过在收发两端对第二包头的复用次数进行计数,能够保证整个数据传输完整。
在一种可能的实现方式中,在一个源处理核心向多个处理核心发送路由包,且该所述包头是第二包头的情况下,若每个目标处理核心接收的有效数据相同,同样可以采用多播路由的方式进行,此时可以配置路由类别标志位信息Q为1时表示该路由包进行多播路由,将该路由包的有效数据发送到多个处理核心中进行处理;若每个目标处理核心接收的有效数据不同,可以根据第二包头中的地址信息将各有效数据分别发送到不同的目标处理核心。例如,第二包头总共复用16次,其中8次复用发送的有效数据到达目标处理核心1,另外8次复用发送的有效数据到达目标处理核心2,每次复用发送的有效数据为8个字节,全部的有效数据总共128个字节,则可以根据第二包头中的地址信息将64个字节的有效数据发送给目标处理核心1进行处理,将另外64个字节的有效数据发送给目标处理核心2进行处理。
在一种可能的实现方式中,如表2所示,在所述包头是第二包头的情况下,所述路由包还包括配置信息,用于控制源处理核心向目标处理核心发送所述路由包;所述配置信息包括:计数标志位信息P’、分组标志位信息C、地址间隔标志位信息O和使能标志位信息E,其中,所述计数标志位信息用于确定该第二包头用来发送多个路由包的总次数;所述分组标志位信息用于确定每个分组该第二包头用来连续发送多个路由包的次数,其中,所述分组为对于多个路由包的总次数进行分组,在每个分组内,该第二包头用来发送数据载荷在目标处理核心中的存储地址连续的一组路由包;所述地址间隔标志位信息用于确定在目标处理核心中,所述各个分组之间的存储地址的地址间隔;所述使能标志位信息用于确定是否发送该路由包。
在一种可能的实现方式中,所述配置信息的长度的总和为32位。值得注意的是,在源处理核心还未开始发送路由包前,表2中的所有配置信息都可以存储在源处理核心的寄存模块中。为了方便源处理核心进行读取,所述配置信息还可以存储在相邻的存储区域。当源处理核心开始发送路由包时,可以首先读取所述配置信息,接着根据所述配置信息中的第二配置信息(即,包头部分)对包头和有效数据进行打包,生成新的路由包。通过将所述配置信息预先配置在处理核心内,能够减少路由包中包含的信息,有效提高路由包进行混合传输的效率。
在一种可能的实现方式中,如表2所示,所述计数标志位信息P’可以用于确定该第二包头用来发送多个路由包的总次数,即路由包的第二包头复用的次数。即,所述路由包的第二包头可以复用多次,每复用一次,发送一个路由包。每个路由包可以携带1个字节长度的有效数据,也可以携带8个字节长度的有效数据。例如,P’的值可以预先配置为0,表示第二包头复用的次数为1,此时第二包头相当于第一包头;P’的值预先配置为15,可以表示第二包头复用的次数为16,即该路由包的包头可以用来连续发送16个路由包。P’的长度可以配置为12,能够表示的范围为[11:0](即,0-4095),也就是说,该第二包头至多可以复用4096(即,212)次。
在一种可能的实现方式中,所述第二包头用来连续发送路由包时可以分组进行。这是因为不同神经元输出的数据可以存储在处理核心的存储模块中的不同区域,且处理核心的存储模块中数据的存储并非全部连续,存储模块中的部分区域无法进行读取或写入。例如,所述第二包头在复用时,可以将在目标处理核心中,存储地址连续的(即A连续的)16个有效数据归为一组进行连续发送,每个有效数据可以为8个字节,假设每个路由包发送1个字节的有效数据,则这样连续发送16次路由包后,重新确定目标处理核心中的存储地址,然后在重新确定的目标处理核心中的存储地址的基础上,再连续发送16次路由包,直到全部有效数据传输完毕。本领域技术人员应当理解的是,在不同的应用场合,所述分组可以灵活进行,本公开对所述分组并不限定。
在一种可能的实现方式中,如表2所示,所述地址间隔标志位信息O可以用于确定所述各个分组之间的地址间隔。例如,所述各分组的地址间隔可以为12位。O可以预先配置为15(即,0000 0000 1111),表示各分组的地址间隔为16,即所述路由包的包头在连续发送完一个组内的数据后要发送下一组内的数据时,在上一组数据的尾部地址和下一组数据的头部地址之间的地址间隔为16。在本公开实施例中,O的范围可以配置为0-255,用以表示1-256的地址间隔。本领域技术人员应当理解的是,在不同的应用场合,可以根据实际需要配置所述地址间隔,本公开对此并不限定。
在一种可能的实现方式中,如表2所示,所述分组标志位信息C可以用于确定每个分组该路由包的包头用来连续发送多个路由包的次数,即第二包头复用的次数,其中,所述分组为对于多个路由包的总次数进行分组,在每个分组内,该第二包头用来发送数据载荷的存储地址连续的一组路由包。例如,C的值可以预先配置为0,表示每个分组可以连续发送1个路由包,即对于每个分组而言,该路由包的包头复用一次;C的值预先配置为15,可以表示每个分组可以连续发送16个路由包,即对于每个分组而言,该路由包的包头复用16次。
在一种可能的实现方式中,所述分组标志位信息C的长度可以为7位,能够表示的范围为[6:0](即,0-127),也就是说,该路由包的每个分组最多可以发送128个路由包,即对于每个分组而言,该路由包的包头最多可以复用128次。举例来说,如果每个分组用来发送8个数据,每个数据的长度为8个字节,C配置为7,即可连续发送8个路由包,每个路由包携带1个数据,则前一个分组中,以该包头连续发送8个路由包后,可根据所述地址间隔O以及存储地址信息A的值,定位后一个分组中8个路由包携带的8个数据将要写入的目标处理核心的存储区域,然后将再次连续发送的8个路由包携带的8个数据写入该存储区域,以此类推,直至所有数据发送完毕,包头共复用P’次。
在一种可能的实现方式中,所述使能标志位信息E用于确定是否发送该路由包。例如,当E预先配置为0时,可以表示源处理核心不发送该路由包;当E预先配置为1时,可以表示源处理核心发送该路由包。
本领域技术人员应当理解的是,以上对第二包头的所述配置信息的描述是示例性的,在实际应用中可以有不同形式的变形,例如各标志位信息长度和位置的改变,本公开对第二包头的所述配置信息并不限定。
图6b示出本公开实施例的第二包头的路由控制方法的示意图。
在一个示例中,如图6b所示,以路由包将要写入的存储区域的地址由预先配置的基地址和相对于基地址的偏移地址(即,A)相加组成为例,表2中的A的初始值配置为0,可以表示目标处理核心的地址相对于预先配置的基地址的偏移为0;P’配置为127,可以表示该第二包头复用的次数为128,即该路由包的包头用来发送路由包的次数为128;O配置为15,可以表示所述各分组的地址间隔为16;C配置为15,可以表示每个分组该第二包头用来连续发送路由包的次数为15,即对于每个分组而言,第二包头复用的次数为15;E配置为1,表示源处理核心可以发送该路由包。
如图6b所示,A=0表示该第二包头用来发送的第一个路由包将要路由至的目标处理核心内存储模块中的目标存储区域的地址相对于预先配置的基地址的偏移为0,即当第一个路由包发送到目标处理核心后,目标处理核心选择第一个路由包携带的有效数据写入到相应的目标存储区域。接着源处理核心开始发送该包头复用的第二个路由包,且连续发送16个路由包,这16个路由包为一个分组。在该分组内,源处理核心每发送完一个路由包,A的值自动加1,更新为新的A,此时所述目标存储区域的地址也随之更新,此时目标处理核心将这16个路由包携带的有效数据依次写入目标处理核心内相邻的存储区域。由于所述处理核心的存储模块整体上并非完全连续,在各个存储区域之间可能存在无法访问的地址间隔,因此源处理核心在发送下一个分组的路由包时,下一个分组的数据将要写入的目标区域的地址需要加上所述地址间隔。在图6b中,源处理核心连续发送16个路由包之后,由于地址间隔配置为16,因此下一个分组的存储区域的起始地址为上一个分组尾部的存储区域的地址加上16,然后加1,即下一个分组的起始地址为32;然后在下一个分组的起始地址为32的基础上,源处理核心再继续连续发送16个路由包,以此类推,直到完成整个128个路由包的发送,实现第二包头用于发送多个路由包。当128个路由包的数据全部发送完毕后,可以将第128个路由包包头中的标志位P置1,表示这128个路由包的全部数据已经发送完成。
本公开还提供了一种人工智能处理器,所述人工智能处理器包括多个处理核心,各处理核心之间通过路由包进行数据发送和接收,所述路由包包括包头和数据载荷,其中,所述人工智能处理器可以被配置为执行所述路由控制方法。
本公开提供的基于2D mesh网络结构的路由控制方法及人工智能处理器,能够实现利用不同包头进行路由包的混合传输,减少了处理核心之间进行数据传输所需的代价,进而减少延迟时间,提高数据处理效率,同时提高异构协同系统的通用性和灵活性。同时,本公开在传递不同类型的数据时复用统一格式的路由包包头,可以实现一个路由包头发送多个路由包,节省了存储路由包头时的存储消耗,也提高了数据传输的灵活性。
需要说明的是,尽管以2D mesh网络作为示例介绍了路由控制方法及人工智能处理器如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定所述路由控制方法及人工智能处理器,只要能够实现利用不同包头进行路由包的混合传输即可。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种路由控制方法,其特征在于,所述方法应用于众核处理器的处理核心,所述众核处理器包括多个处理核心,各处理核心之间通过路由包进行数据发送和接收,所述路由包包括包头和数据载荷,
所述方法包括:
在所述包头为第一包头的情况下,源处理核心将所述第一包头与数据载荷进行打包,生成一个路由包;在所述包头为第二包头的情况下,源处理核心将所述第二包头分别与数据载荷进行打包,生成一个或多个路由包,其中,所述第一包头用来发送一个路由包,所述第二包头用来发送一个或多个路由包,每个路由包的数据载荷包括一个或多个单位长度的有效数据;
源处理核心向目标处理核心发送所述路由包;
目标处理核心接收所述路由包,并对所述路由包携带的数据载荷进行处理。
2.根据权利要求1所述的方法,其特征在于,所述第二包头复用多次,每复用一次,发送一个路由包,多次复用的包头的格式一致。
3.根据权利要求1所述的方法,其特征在于,所述处理核心还包括多个神经元,所述神经元用于执行神经网络计算任务,每个神经元每次输出一个单位长度的所述有效数据。
4.根据权利要求1所述的方法,其特征在于,所述包头存储在源处理核心的寄存模块中。
5.根据权利要求1所述的方法,其特征在于,在源处理核心向目标处理核心发送所述路由包之前,根据第一原语参数的值判断所述包头是第一包头还是第二包头,其中,第一原语参数的值预先配置在源处理核心的寄存模块中。
6.根据权利要求1所述的方法,其特征在于,所述第二包头包括标志位信息和地址信息,
其中,所述标志位信息包括数据有效标志位信息,用于判断所述路由包的数据载荷是否携带有效数据、数据类型标志位信息,用于判断所述路由包携带的数据载荷包括一个单位长度的有效数据,还是多个单位长度的有效数据、发送完成标志位信息,用于判断所述路由包的有效数据是否全部发送完成,以及路由类别标志位信息,用于判断所述路由包的路由类别;
所述地址信息包括目标处理核心自身的地址,以及所述有效数据将要写入的目标处理核心中的存储地址。
7.根据权利要求6所述的方法,其特征在于,在所述包头为第二包头的情况下,将利用第二包头发送的所有路由包中,最后发送的一个路由包的包头中的发送完成标志位信息的值,设置为表示所述路由包的有效数据全部发送完成的预设值。
8.根据权利要求6所述的方法,其特征在于,在所述包头为第二包头的情况下,复用第二包头的各路由包的包头格式一致,标志位信息一致,地址信息一致或不一致。
9.根据权利要求1所述的方法,其特征在于,在所述包头为第二包头的情况下,所述路由包还包括配置信息,用于控制源处理核心向目标处理核心发送所述路由包;
所述配置信息包括:计数标志位信息、分组标志位信息、地址间隔标志位信息和使能标志位信息,
其中,所述计数标志位信息用于确定该路由包的包头用来发送多个路由包的总次数;
所述分组标志位信息用于确定每个分组该路由包的包头用来连续发送多个路由包的次数,其中,所述分组为对于多个路由包的总次数进行分组,在每个分组内,该路由包的包头用来发送数据载荷的存储地址连续的一组路由包;
所述地址间隔标志位信息用于确定在目标处理核心中,所述各个分组之间的存储地址的地址间隔;
所述使能标志位信息用于确定是否发送该路由包。
10.一种人工智能处理器,其特征在于,所述人工智能处理器包括多个处理核心,各处理核心之间通过路由包进行数据发送和接收,所述路由包包括包头和数据载荷,
其中,所述人工智能处理器被配置为执行根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630634.7A CN112650705A (zh) | 2020-12-31 | 2020-12-31 | 路由控制方法及人工智能处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011630634.7A CN112650705A (zh) | 2020-12-31 | 2020-12-31 | 路由控制方法及人工智能处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650705A true CN112650705A (zh) | 2021-04-13 |
Family
ID=75366866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011630634.7A Pending CN112650705A (zh) | 2020-12-31 | 2020-12-31 | 路由控制方法及人工智能处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650705A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704169A (zh) * | 2021-08-12 | 2021-11-26 | 北京时代民芯科技有限公司 | 一种面向嵌入式的可配置众核处理器 |
CN114116596A (zh) * | 2022-01-26 | 2022-03-01 | 之江实验室 | 面向片上神经网络的基于动态中继的无限路由方法和架构 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217556A (zh) * | 2007-01-05 | 2008-07-09 | 华为技术有限公司 | 路由协议增强方法和装置 |
JP2009077094A (ja) * | 2007-09-20 | 2009-04-09 | Alaxala Networks Corp | ネットワークシステム |
CN101562544A (zh) * | 2008-04-17 | 2009-10-21 | 浩通科技(深圳)有限公司 | 一种数据包生成器和数据包生成方法 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
CN106056212A (zh) * | 2016-05-25 | 2016-10-26 | 清华大学 | 一种人工神经网络计算核 |
CN106789649A (zh) * | 2016-12-19 | 2017-05-31 | 中国电子科技集团公司第二十研究所 | 一种基于标签的层二多路径快速路由方法 |
CN106850440A (zh) * | 2017-01-16 | 2017-06-13 | 北京中科睿芯科技有限公司 | 一种面向多地址共享数据路由包的路由器、路由方法及其芯片 |
CN109408257A (zh) * | 2018-11-09 | 2019-03-01 | 北京灵汐科技有限公司 | 用于片上网络noc的数据传输方法、装置及电子设备 |
WO2020244370A1 (zh) * | 2019-06-05 | 2020-12-10 | 北京灵汐科技有限公司 | 一种异构协同系统及其通信方法 |
-
2020
- 2020-12-31 CN CN202011630634.7A patent/CN112650705A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217556A (zh) * | 2007-01-05 | 2008-07-09 | 华为技术有限公司 | 路由协议增强方法和装置 |
JP2009077094A (ja) * | 2007-09-20 | 2009-04-09 | Alaxala Networks Corp | ネットワークシステム |
CN101562544A (zh) * | 2008-04-17 | 2009-10-21 | 浩通科技(深圳)有限公司 | 一种数据包生成器和数据包生成方法 |
CN103441952A (zh) * | 2013-08-20 | 2013-12-11 | 西安电子科技大学 | 基于多核或众核嵌入式处理器的网络数据包处理方法 |
CN106056212A (zh) * | 2016-05-25 | 2016-10-26 | 清华大学 | 一种人工神经网络计算核 |
CN106789649A (zh) * | 2016-12-19 | 2017-05-31 | 中国电子科技集团公司第二十研究所 | 一种基于标签的层二多路径快速路由方法 |
CN106850440A (zh) * | 2017-01-16 | 2017-06-13 | 北京中科睿芯科技有限公司 | 一种面向多地址共享数据路由包的路由器、路由方法及其芯片 |
CN109408257A (zh) * | 2018-11-09 | 2019-03-01 | 北京灵汐科技有限公司 | 用于片上网络noc的数据传输方法、装置及电子设备 |
WO2020244370A1 (zh) * | 2019-06-05 | 2020-12-10 | 北京灵汐科技有限公司 | 一种异构协同系统及其通信方法 |
Non-Patent Citations (2)
Title |
---|
CHENG MA 等: "A deadlock-free physical mapping method on the many-core neural network chip", NEUROCOMPUTING, 11 August 2020 (2020-08-11) * |
陈亮;王建;胡康;: "众核网络处理器下高速包转发系统设计与实现", 计算机应用与软件, no. 12, 15 December 2016 (2016-12-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704169A (zh) * | 2021-08-12 | 2021-11-26 | 北京时代民芯科技有限公司 | 一种面向嵌入式的可配置众核处理器 |
WO2023015656A1 (zh) * | 2021-08-12 | 2023-02-16 | 北京微电子技术研究所 | 一种面向嵌入式的可配置众核处理器 |
CN114116596A (zh) * | 2022-01-26 | 2022-03-01 | 之江实验室 | 面向片上神经网络的基于动态中继的无限路由方法和架构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5195181A (en) | Message processing system having separate message receiving and transmitting processors with message processing being distributed between the separate processors | |
CN109408257B (zh) | 用于片上网络noc的数据传输方法、装置及电子设备 | |
CN112650705A (zh) | 路由控制方法及人工智能处理器 | |
CN110728364A (zh) | 一种运算装置和运算方法 | |
EP0942377A1 (en) | Method for performing all-to-all communication in parallel computers | |
CN109873771B (zh) | 一种片上网络系统及其通信方法 | |
CN114647602B (zh) | 一种跨芯片访问控制的方法、装置、设备及介质 | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
JPH0589066A (ja) | 多次元並列処理システム | |
CN101385296A (zh) | 用于总线间信息自动路由的网关 | |
CN111427838B (zh) | 基于zynq动态更新卷积神经网络的分类系统及方法 | |
US20020196745A1 (en) | Method for the broadcasting of a data packet within a switched network based on an optimized calculation of the spanning tree | |
EP4293984A1 (en) | Data transmission system and method, and related device | |
US6772232B1 (en) | Address assignment procedure that enables a device to calculate addresses of neighbor devices | |
CN113825202A (zh) | 跨芯片处理系统以及其路由方法 | |
JPH11110362A (ja) | 計算機間データ通信方法 | |
US8069273B2 (en) | Processing module | |
CN113473267B (zh) | 数据传输方法、装置及通信装置 | |
CN114445260A (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
CN114095289B (zh) | 数据多播电路、方法、电子设备及计算机可读存储介质 | |
US10990552B1 (en) | Streaming interconnect architecture for data processing engine array | |
CN112532527B (zh) | 路由控制方法及人工智能处理器 | |
CN113157610B (zh) | 数据保存方法及装置、存储介质、电子装置 | |
CN115225591B (zh) | 一种处理交换芯片控制报文的方法 | |
CN114844757B (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 |