CN114925817A - 数据处理方法、延迟链单元、延迟装置、众核系统 - Google Patents
数据处理方法、延迟链单元、延迟装置、众核系统 Download PDFInfo
- Publication number
- CN114925817A CN114925817A CN202210631254.8A CN202210631254A CN114925817A CN 114925817 A CN114925817 A CN 114925817A CN 202210631254 A CN202210631254 A CN 202210631254A CN 114925817 A CN114925817 A CN 114925817A
- Authority
- CN
- China
- Prior art keywords
- delay
- target
- neuron
- data
- synapse
- 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
Images
Classifications
-
- 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/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Molecular Biology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Semiconductor Memories (AREA)
Abstract
本公开提供一种数据处理方法,应用于延迟链单元,所述延迟链单元包括多个延迟缓冲区;所述延迟链单元应用于突触,所述突触对应一个前继神经元;所述方法包括:从多个所述延迟缓冲区中查找目标神经元的发放数据,所述目标神经元为所述突触对应的前继神经元;以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述目标神经元的发放数据。本公开还提供一种延迟链单元、一种延迟装置、一种众核系统。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种数据处理方法、一种延迟链单元、一种延迟装置、一种众核系统。
背景技术
高性能的类脑计算技术和大脑仿真技术成为研究脑科学的重要手段,计算神经科学的发展对智能科学领域、认知科学领域、信息处理和人工智能等技术产生了重要的影响。完成人脑的基本功能需要数百万的神经元共同活动,要想更加精准地模拟脑功能需要更大规模的脑仿真系统。
在一些相关技术中,脑仿真技术还存在缺陷。
发明内容
本公开提供一种数据处理方法、一种延迟链单元、一种延迟装置、一种众核系统。
第一方面,本公开实施例提供一种数据处理方法,应用于延迟链单元,所述延迟链单元包括多个延迟缓冲区;所述延迟链单元应用于突触,所述突触对应一个前继神经元;所述方法包括:
从多个所述延迟缓冲区中查找目标神经元的发放数据,所述目标神经元为所述突触对应的前继神经元;
以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述目标神经元的发放数据。
在一些实施例中,在从多个所述延迟缓冲区中查找目标神经元的发放数据之前,所述方法还包括:
根据输出缓冲区和所述目标神经元的发放数据需要延迟的预定时间拍数,将所述目标神经元的发放数据写入目标缓冲区,所述输出缓冲区为当前时间拍与所述延迟链单元的输出端导通的延迟缓冲区,所述目标缓冲区为所述预定时间拍数后与所述延迟链单元的输出端导通的延迟缓冲区。
在一些实施例中,根据输出缓冲区和所述目标神经元的发放数据需要延迟的预定时间拍数,将所述目标神经元的发放数据写入目标缓冲区,包括:
根据所述输出缓冲区的序号和所述预定时间拍数确定各个所述延迟缓冲区对应的写使能信号,所述写使能信号用于控制对应的所述延迟缓冲区是否可写;
将所述前继神经元的发放数据写入所述目标缓冲区,其中,所述目标缓冲区为多个所述延迟缓冲区中可写的一者。
在一些实施例中,根据所述输出缓冲区的序号和所述预定时间拍数确定各个所述延迟缓冲区对应的写使能信号,包括:
将第一缓冲区对应的写使能信号确定为第一信号,所述第一信号用于控制对应的延迟缓冲区可写,其中,所述第一缓冲区的序号满足:
m=(n+l)mod N
其中,m表示所述第一缓冲区的序号,n表示所述输出缓冲区的序号,l表示所述预定时间拍数,N表示所述延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、l、n、m为整数,N>1,0≤n<N,0≤m<N;
将第二缓冲区对应的写使能信号确定为第二信号,所述第二信号用于控制对应的延迟缓冲区不可写,其中,所述第二缓冲区为所述延迟链单元中所述第一缓冲区以外的延迟缓冲区。
在一些实施例中,以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述前继神经元的发放数据,包括:
每经过一个时间拍,切换与所述延迟链单元的输出端导通的所述延迟缓冲区,其中,切换后与所述延迟链单元的输出端导通的所述延迟缓冲区的序号满足:
p=(q+1)mod N
其中,p表示切换后与所述延迟链单元的输出端导通的所述延迟缓冲区的序号,q表示切换前与所述延迟链单元的输出端导通的所述延迟缓冲区的序号,N表示所述延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、p、q为整数,N>1,0≤p<N,0≤q<N;
当与所述延迟链单元的输出端导通的所述延迟缓冲区为存储所述目标神经元的发放数据的延迟缓冲区时,将所述目标神经元的发放数据输出。
在一些实施例中,从多个所述延迟缓冲区中查找目标神经元的发放数据,包括:
根据取数地址从多个所述延迟缓冲区中查找所述目标神经元的发放数据;其中,多个所述延迟缓冲区并列。
在一些实施例中,根据取数地址从多个所述延迟缓冲区中查找目标神经元的发放数据,包括:
根据所述取数地址,从所述延迟缓冲区中所述目标神经元对应的存储空间中读取所述目标神经元的发放数据。
在一些实施例中,突触阵列中的多个突触划分为多个分组,每一个分组包括多个突触;不同分组中的突触对应不同的后继神经元;根据取数地址从多个所述延迟缓冲区中查找所述目标神经元的发放数据,包括:
根据所述取数地址与所述延迟缓冲区中存储的多个突触对应的前继神经元的标识信息进行匹配,所述标识信息包括对应的前继神经元的序号和对应的后继神经元归属的分组的组号;
在匹配成功的情况下,生成表征所述目标神经元发放的发放数据。
第二方面,本公开实施例提供一种数据处理方法,应用于延迟装置,所述延迟装置包括权重缓存区和多个延迟链单元,所述延迟链单元用于执行本公开实施例第一方面中任意一项所述的数据处理方法;所述延迟装置应用于突触阵列,所述突触阵列用于连接多个前继神经元和多个后继神经元,所述突触阵列中的一个突触对应一个所述前继神经元和一个所述后继神经元;每一个时间拍包括依次执行的多个时间步,在一个时间步中,所述延迟装置对应一个所述前继神经元,每一个所述延迟链单元对应一个所述突触;对于任意一个时间步,所述方法包括:
将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元;
从所述权重缓存区中获取多个目标突触的权重数据,所述目标突触为当前时间步中所述延迟链单元对应的突触;
根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个所述后继神经元当前时间拍的输入电流值。
在一些实施例中,在将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元之前,所述方法还包括:
将所述目标神经元的发放数据写入各个所述延迟链单元。
在一些实施例中,所述延迟装置还包括多个寄存器,多个所述寄存器与多个所述延迟链单元一一对应;根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值包括:
对应于任意一个所述目标突触,计算当前时间步中所述目标突触对应的输出数据和权重数据的乘积,得到加权电流值;
从所述目标突触对应的寄存器中读取前一时间步中所述目标突触对应的中间电流值;
计算所述加权电流值和前一时间步中所述目标突触对应的中间电流值的和,得到当前时间步中所述目标突触对应所述后继神经元的中间电流值。
在一些实施例中,在计算所述加权电流值和前一时间步中所述目标突触对应的中间电流值的和,得到当前时间步中所述目标突触对应的中间电流值之后,所述方法还包括:
将当前时间步中所述目标突触对应的中间电流值写入所述目标突触对应的寄存器;
判断当前时间步是否为当前时间拍的最后一个时间步;
在当前时间步为当前时间拍的最后一个时间步的情况下,将所述目标突触对应的寄存器中存储的所述目标突触对应的中间电流值,作为当前时间拍所述目标突触对应的所述后继神经元的输入电流并输出。
在一些实施例中,所述突触阵列划分为多个分组,每一个分组包括多个突触;每一个分组对应多个所述后继神经元,不同分组对应的所述后继神经元不同;在一个时间步中,所述延迟装置对应一个分组;对于任意一个时间步,在将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据之前,所述方法还包括:
根据所述目标神经元的标识和当前时间步中所述延迟装置对应的分组的标识,确定所述取数地址。
第三方面,本公开实施例提供一种延迟链单元,所述延迟链单元应用于突触,所述突触对应一个前继神经元;所述延迟链单元包括:
多个延迟缓冲区;
控制模块,被配置为从多个所述延迟缓冲区中查找目标神经元的发放数据,所述目标神经元为所述突触对应的前继神经元;
数据选择器,被配置为以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述目标神经元的发放数据。
第四方面,本公开实施例提供一种延迟装置,应用于突触阵列,所述突触阵列用于连接多个前继神经元和多个后继神经元,所述突触阵列中的一个突触对应一个所述前继神经元和一个所述后继神经元;
所述延迟装置包括:
权重缓存区;
多个延迟链单元,所述延迟链单元用于执行本公开实施例第一方面中任意一项所述的数据处理方法;每一个时间拍包括依次执行的多个时间步,在一个时间步中,所述延迟装置对应一个所述前继神经元,每一个所述延迟链单元对应一个所述突触;
处理模块,被配置为对于任意一个时间步,将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元;从所述权重缓存区中获取多个目标突触的权重数据,所述目标突触为当前时间步中所述延迟链单元对应的突触;根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个所述后继神经元当前时间拍的输入电流值。
第五方面,本公开实施例提供一种众核系统,包括:
多个处理核;
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够实现以下方法中的至少一者:
本公开实施例第一方面中任意一项所述的数据处理方法;
本公开实施例第二方面中任意一项所述的数据处理方法。
本公开实施例提供的应用于延迟链单元的数据处理方法,以至少一个时间拍为间隔、将延迟链单元中用于存储神经元的发放数据的多个延迟缓冲区与延迟链单元的输出端导通,能够将神经元的发放数据延迟一定数量的时间拍后输出,从而能够模拟突触延迟,有利于进一步对生物神经系统进行有效仿真。
本公开实施例提供的应用于延迟装置的数据处理方法,用延迟链单元对突触阵列中各个突触的延迟进行模拟,并能够在对前继神经元的发放数据进行延迟处理的情况下确定后继神经元的输入电流,实现了对生物神经系统的有效仿真。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是一种神经形态芯片的结构示意图;
图2是一种神经形态芯片的处理核的结构示意图;
图3是本公开实施例中一种数据处理方法的流程图;
图4是一种神经元连接关系的示意图;
图5是本公开实施例中一种延迟链单元的结构示意图;
图6是本公开实施例中另一种数据处理方法中部分步骤的流程图;
图7是本公开实施例中又一种数据处理方法中部分步骤的流程图;
图8是本公开实施例中另一种延迟链单元的结构示意图;
图9是本公开实施例中一种延迟缓冲区的存储结构的示意图;
图10是本公开实施例中另一种延迟缓冲区的存储结构的示意图;
图11是本公开实施例中一种数据处理方法的流程图;
图12是本公开实施例中另一种数据处理方法中部分步骤的流程图;
图13是本公开实施例中一种突触阵列的示意图;
图14是本公开实施例中一种延迟装置的结构示意图;
图15是本公开实施例中一种延迟链单元的组成框图;
图16是本公开实施例中一种延迟装置的组成框图;
图17是本公开实施例中一种众核系统的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
在一些相关技术中,在神经形态芯片上运行神经网络。如图1所示,神经形态芯片包括多个处理核10,每一个处理核10具有独立的计算能力和存储空间。图2是图1所示的神经形态芯片中处理核的一种结构示意图。如图2所示,每个处理核通常包括一组(多个)神经元、一组轴突、一组树突、突触阵列,可以模拟一个生物神经元簇的行为,神经形态芯片中的各处理核均可以完成对应的一组神经元的树突积分过程以及胞体运算过程。其中,树突是用于接收外界的刺激并产生输入电流的结构,轴突是用于将脉冲传递到后继神经元的突触的结构,突触是用于连接神经元的结构,突触阵列是由多个突触构成的阵列,用于连接一组轴突和一组树突。对于处理核内的各神经元,树突积分计算过程用于描述将与神经元的树突连接的所有输入轴突的脉冲数据进行积分操作的过程;胞体运算过程负责神经元的膜电位的更新和脉冲的发放判断,从而使得神经形态芯片能够较为准确地模拟生物神经系统中的结构。
但是,要想更加精准地模拟生物神经系统功能,实现脑仿真,还需要对神经元延迟进行有效仿真。
有鉴于此,第一方面,参照图3,本公开实施例提供一种数据处理方法,应用于延迟链单元,该延迟链单元包括多个延迟缓冲区;延迟链单元应用于突触,突触对应一个前继神经元;上述方法包括:
S1、从多个延迟缓冲区中查找目标神经元的发放数据,目标神经元为突触对应的前继神经元;
S2、以至少一个时间拍为间隔依次将多个延迟缓冲区与上述延迟链单元的输出端导通,以输出目标神经元的发放数据。
在本公开的一个可选的实施例中,上述突触还可以对应一个前继神经元和一个后继神经元,上述前继神经元和后继神经元可以为相对概念,用于描述突触对应的神经元的连接关系。例如,图4为本公开实施例中部分神经元的连接关系的示意图。如图4所示,多个神经元A与多个神经元C为全连接关系,多个神经元A通过突触阵列与多个神经元C连接。其中,对于突触阵列中的任意一个突触,该突触对应的神经元A为前继神经元,该突触对应的神经元C为后继神经元。
在本公开实施例中,对应于目标神经元的一次发放,多个延迟缓冲区中只有一个延迟缓冲区中存储有目标神经元的发放数据。相应地,在执行步骤S1时,可以在每一个延迟缓冲区中查找目标神经元的发放数据,只能在其中一个延迟缓冲区中查找到目标神经元的发放数据。
在本公开实施例中,以至少一个时间拍为间隔,可以是以一个时间拍为间隔,也可以是以多个时间拍为间隔。本公开实施例对此不做特殊限定。在本公开实施例中,将延迟缓冲区与延迟链单元的输出端导通时,能够将该延迟缓冲区通过步骤S1查找到的数据作为延迟链单元的输出数据并输出。对应于任意一个时间拍,与延迟链单元的输出端导通的延迟缓冲区可以是存储有目标神经元的发放数据的延迟缓冲区,通过步骤S1能够查找到目标神经元的发放数据,故将目标神经元的发放数据作为延迟链单元的输出数据并输出;与延迟链单元的输出端导通的延迟缓冲区也可以是未存储有目标神经元的发放数据的延迟缓冲区,通过步骤S1没有查找到目标神经元的发放数据,故延迟缓冲区不会输出目标神经元的发放数据。
需要说明的是,通过步骤S2,只有当存储有目标神经元的发放数据的延迟缓冲区与延迟链单元的输出端导通时,目标神经元的发放数据才会被输出;当存储有目标神经元的发放数据的延迟缓冲区与延迟链单元的输出端未导通时,则需要经过至少一个时间拍,该延迟缓冲区才会与延迟链单元的输出端导通,并将目标神经元的发放数据输出。从而能够将目标神经元的发放数据延迟预定数量的时间拍。
本公开实施例对目标神经元的发放数据不做特殊限定。在一些实施例中,目标神经元的发放数据为能够表征目标神经元的发放状态(即目标神经元是否发放)的数据。例如,目标神经元发放时,通过步骤S1查找得到的目标神经元的发放数据为1;目标神经元未发放时,通过步骤S1查找得到的目标神经元的发放数据为0。在一些实施例中,未存储有目标神经元的发放数据的延迟缓冲区通过步骤S1查找得到的数据为0,从而有利于根据延迟链单元输出的输出数据进一步计算突触对应的后继神经元的输入电流。
本公开实施例对延迟链单元中延迟缓冲区的数量不做特殊限定。在一些实施例中,根据突触阵列中需要延迟的最大时间拍数确定延迟缓冲区的数量。例如,突触阵列中需要延迟的最大时间拍数为N,则延迟链单元中需要N+1个延迟缓冲区。
图5是本公开实施例中一种延迟链单元的结构示意图。下面结合图5对本公开实施例提供的数据处理方法进行解释说明。
在图5中,延迟链单元包括缓冲区标识BankID分别为0、1、2、3的四个延迟缓冲区;数据选择器MUX以一个时间拍为间隔、按BankID顺序循环选择各个延迟缓冲区的数据作为延迟链单元的输出数据,即依次将各个延迟缓冲区与延迟链单元的输出端导通。当前时间拍,数据选择器MUX将BankID=1的延迟缓冲区与延迟链单元的输出端导通,若目标神经元的发放数据存储在BankID=2的延迟缓冲区中,根据取数地址raddr只能在BankID=2的延迟缓冲区中查找到目标神经元的发放数据,当前时间拍目标神经元的发放数据不会被输出;下一时间拍,数据选择器MUX会将BankID=2的延迟缓冲区与延迟链单元的输出端导通,从而将从BankID=2的延迟缓冲区中查找到的目标神经元的发放数据输出,也就是说,目标神经元的发放数据在延迟了至少1个时间拍后被输出。相应地,当前时间拍,若目标神经元的发放数据存储在BankID=3的延迟缓冲区中,将在延迟至少2个时间拍后被输出;若目标神经元的发放数据存储在BankID=0的延迟缓冲区中,将在延迟至少3个时间拍后被输出;若目标神经元的发放数据存储在BankID=1的延迟缓冲区中,则不会被延迟,直接输出。
需要说明的是,在本公开实施例中,一个时间拍为一段固定的时长,多个连续的时间拍组成一段连续的时长。本公开实施例对一个时间拍的时长不做特殊限定。
本公开实施例提供的应用于延迟链单元的数据处理方法,以至少一个时间拍为间隔、将延迟链单元中用于存储神经元的发放数据的多个延迟缓冲区与延迟链单元的输出端导通,能够将神经元的发放数据延迟一定数量的时间拍后输出,从而能够模拟突触延迟,有利于进一步对生物神经系统进行有效仿真。
在本公开实施例中,对应于任意一个时间拍,延迟链单元中的各个延迟缓冲区对应不同的延迟时间。以图5为例,当前时间拍,若BankID=1的延迟缓冲区与延迟链单元的输出端导通,BankID=1的延迟缓冲区对应的延迟时间为0个时间拍,BankID=2的延迟缓冲区对应的延迟时间为1个时间拍,BankID=3的延迟缓冲区对应的延迟时间为2个时间拍,BankID=0的延迟缓冲区对应的延迟时间为3个时间拍;当前时间拍,若BankID=0的延迟缓冲区与延迟链单元的输出端导通,BankID=0的延迟缓冲区对应的延迟时间为0个时间拍,BankID=1的延迟缓冲区对应的延迟时间为1个时间拍,BankID=2的延迟缓冲区对应的延迟时间为2个时间拍,BankID=3的延迟缓冲区对应的延迟时间为3个时间拍。
在一些实施例中,在突触中,不同神经元的发放数据需要延迟的时间拍数可以相同,也可以不同;同一个神经元不同时间的发放数据需要延迟的时间拍数可以相同,也可以不同。在一些实施例中,将神经元的发放数据写入满足神经元发放数据的延迟需求的延迟缓冲区,即可将神经元的发放数据延迟相应的时间拍数。
相应地,在一些实施例中,参照图6,在步骤S1之前,上述方法还包括:
S3、根据输出缓冲区和目标神经元的发放数据需要延迟的预定时间拍数,将目标神经元的发放数据写入目标缓冲区,输出缓冲区为当前时间拍与延迟链单元的输出端导通的延迟缓冲区,目标缓冲区为预定时间拍数后与延迟链单元的输出端导通的延迟缓冲区。
在本公开实施例中,通过步骤S3,能够将目标神经元的发放数据写入满足目标神经元发放数据的延迟需求的延迟缓冲区,从而将目标神经元的发放数据延迟相应的时间拍数。
以图5为例,当前时间拍,BankID=1的延迟缓冲区与延迟链单元的输出端导通,即BankID=1的延迟缓冲区为输出缓冲区,若目标神经元的发放数据xi需要延迟1个时间拍,则BankID=2的延迟缓冲区为目标缓冲区,将目标神经元的发放数据xi写入BankID=2的延迟缓冲区;若目标神经元的发放数据xi需要延迟2个时间拍,则BankID=3的延迟缓冲区为目标缓冲区,将目标神经元的发放数据xi写入BankID=3的延迟缓冲区;若目标神经元的发放数据xi需要延迟3个时间拍,则BankID=0的延迟缓冲区为目标缓冲区,将目标神经元的发放数据xi写入BankID=0的延迟缓冲区;若目标神经元的发放数据xi需要延迟0个时间拍,则BankID=1的延迟缓冲区为目标缓冲区,将目标神经元的发放数据xi写入BankID=1的延迟缓冲区。
需要说明的是,在本公开实施例中,步骤S3和步骤S2可以在同一个时间拍执行。例如,当前时间拍,目标神经元发放,通过执行步骤S3将目标神经元的发放数据写入延迟链单元;然后,在当前时间拍,通过执行步骤S2确定目标神经元的发放数据是否在当前时间拍输出。在一些实施例中,步骤S3和步骤S2也可以在不同时间拍执行。例如,目标神经元在之前的时间拍发放,并通过执行步骤S3已经将目标神经元的发放数据写入延迟链单元,在当前时间拍,通过执行步骤S2确定目标神经元的发放数据是否在当前时间拍输出。
本公开实施例对于如何将目标神经元的发放数据写入目标缓冲区不做特殊限定。在一些实施例中,先根据输出缓冲区和目标神经元的发放数据需要延迟的预定时间拍数确定目标缓冲区,然后直接将目标神经元的发放数据写入目标缓冲区。在一些实施例中,同时向各个延迟缓冲区写目标神经元的发放数据,同时根据输出缓冲区和目标神经元的发放数据需要延迟的预定时间拍数控制各个延迟缓冲区是否可写,使得只有目标缓冲区可写,从而只将目标神经元的发放数据写入目标缓冲区。
相应地,在一些实施例中,参照图7,步骤S3包括:
S31、根据输出缓冲区的序号和预定时间拍数确定各个延迟缓冲区对应的写使能信号,写使能信号用于控制对应的延迟缓冲区是否可写;
S32、将前继神经元的发放数据写入目标缓冲区,其中,目标缓冲区为多个延迟缓冲区中可写的一者。
在本公开实施例中,通过步骤S31至S32能够通过控制各个延迟缓冲区是否可写,将前继神经元的发放数据写入满足延迟需求的目标缓冲区,从而不需要为每个前继神经元分别计算其对应的目标缓冲区,有利于降低运算量,提升处理效率。
图8是本公开实施例中另一种延迟链单元的结构示意图。在本公开实施例中,i为前继神经元的序号,j为后继神经元的序号,四元组(Wi,j,di,j,i,j)表示连接序号为i的前继神经元和序号为j的后继神经元的突触,Wi,j为突触的权重数据,di,j为突触需要延迟的预定时间拍数。在本公开实施例中,延迟缓冲区的缓冲区标识BankID为延迟缓冲区的序号,curr表示输出缓冲区的序号。如图8所示,多个写入控制模块DEC0、DEC1、DEC2、DEC3与BankID分别为0、1、2、3的四个延迟缓冲区一一对应。在(curr+di,j)mod N=BankID时,写入控制模块输出写使能信号1,使得对应的延迟缓冲区可写;在(curr+di,j)mod N≠BankID时,写入控制模块输出写使能信号0,使得对应的延迟缓冲区不可写。其中,N表示延迟链单元中延迟缓冲区的总数,mod表示求余运算。
当前时间拍,BankID=1的延迟缓冲区与延迟链单元的输出端导通,即输出缓冲区的序号curr=1,根据写入地址waddr同时向各个延迟缓冲区写目标神经元的发放数据xi。若目标神经元的发放数据xi需要延迟di,j=1个时间拍,则BankID=2的延迟缓冲区对应的写入控制模块DEC2输出1,使得BankID=2的延迟缓冲区可写,写入控制模块DEC0、DEC1、DEC3输出0,使得BankID=3、BankID=0、BankID=1的延迟缓冲区不可写,从而只将目标神经元的发放数据xi写入BankID=2的延迟缓冲区;若目标神经元的发放数据xi需要延迟di,j=3个时间拍,则BankID=0的延迟缓冲区对应的写入控制模块DEC0输出1,使得BankID=0的延迟缓冲区可写,写入控制模块DEC1、DEC2、DEC3输出0,使得BankID=1、BankID=2、BankID=3的延迟缓冲区不可写,从而只将目标神经元的发放数据xi写入BankID=0的延迟缓冲区。
相应地,在一些实施例中,根据输出缓冲区的序号和预定时间拍数确定各个延迟缓冲区对应的写使能信号包括:
将第一缓冲区对应的写使能信号确定为第一信号,第一信号用于控制对应的延迟缓冲区可写,其中,第一缓冲区的序号满足:
m=(n+l)modN
其中,m表示第一缓冲区的序号,n表示输出缓冲区的序号,l表示预定时间拍数,N表示延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、l、n、m为整数,N>1,0≤n<N,0≤m<N;
将第二缓冲区对应的写使能信号确定为第二信号,第二信号用于控制对应的延迟缓冲区不可写,其中,第二缓冲区为延迟链单元中第一缓冲区以外的延迟缓冲区。
在本公开实施例中,通过上述根据输出缓冲区的序号和预定时间拍数确定各个延迟缓冲区对应的写使能信号的过程,能够将各个延迟缓冲区循环、依次作为目标缓冲区,从而能够对有限数量的延迟缓冲区进行复用,实现将神经元的发放数据延迟一定数量的时间拍后输出。
相应地,在一些实施例中,以至少一个时间拍为间隔依次将多个延迟缓冲区与延迟链单元的输出端导通,以输出前继神经元的发放数据包括:
每经过一个时间拍,切换与延迟链单元的输出端导通的延迟缓冲区,其中,切换后与延迟链单元的输出端导通的延迟缓冲区的序号满足:
p=(q+1)modN其中,p表示切换后与延迟链单元的输出端导通的延迟缓冲区的序号,q表示切换前与延迟链单元的输出端导通的延迟缓冲区的序号,N表示延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、p、q为整数,N>1,0≤p<N,0≤q≤N;
当与延迟链单元的输出端导通的延迟缓冲区为存储目标神经元的发放数据的延迟缓冲区时,将目标神经元的发放数据输出。
在本公开实施例中,通过上述以至少一个时间拍为间隔依次将多个延迟缓冲区与延迟链单元的输出端导通,以输出前继神经元的发放数据的过程,能够将各个延迟缓冲区循环、依次与延迟链单元的输出端导通,从而能够对有限数量的延迟缓冲区进行复用,实现将神经元的发放数据延迟一定数量的时间拍后输出。
如图8所示,若当前时间拍,BankID=1的延迟缓冲区与延迟链单元的输出端导通,在下一时间拍,将BankID=2的延迟缓冲区与延迟链单元的输出端导通;若当前时间拍,BankID=3的延迟缓冲区与延迟链单元的输出端导通,在下一时间拍,将BankID=0的延迟缓冲区与延迟链单元的输出端导通。
本公开实施例对于如何从多个延迟缓冲区中查找目标神经元的发放数据不做特殊限定。
在一些实施例中,从多个延迟缓冲区中查找目标神经元的发放数据,包括:
根据取数地址从多个延迟缓冲区中查找目标神经元的发放数据;其中,多个所述延迟缓冲区并列。
在本公开实施例中,根据取数地址从多个延迟缓冲区中查找目标神经元的发放数据,使得延迟缓冲区中能够存储不同神经元的发放数据,从而有利于实现延迟链单元的复用。
本公开实施例对延迟缓冲区的存储结构不做特殊限定。在一些实施例中,延迟缓冲区的存储结构为稠密存储结构。例如,如图9所示,在延迟缓冲区中,每一个前继神经元i都对应有独立的存储空间,当前继神经元i发放时,在对应的存储空间中存储发放数据1;当前继神经元i不发放时,在对应的存储空间中存储发放数据0。其中,1代表前继神经元发放的有效事件,0代表前继神经元不发放的无效事件。
相应地,在一些实施例中,根据取数地址从多个延迟缓冲区中查找目标神经元的发放数据,包括:
根据取数地址,从延迟缓冲区中目标神经元对应的存储空间中读取目标神经元的发放数据。
在本公开实施例中,通过上述过程,实现了延迟缓冲区的存储结构为稠密存储结构的情况下,发放数据的存取。
在一些实施例中,延迟缓冲区的存储结构为稀疏存储结构。例如,如图10所示,在延迟缓冲区中,只存储有效事件对应的前继神经元的标识信息,其中,有效事件指前继神经元发放。突触阵列中的多个突触划分为多个分组,每一个分组包括多个突触;每一个分组对应多个后继神经元,不同分组对应的后继神经元不同;图10中用二元组(i,Gid)作为前继神经元的标识信息,i为前继神经元的标识,Gid为将突触阵列中的多个突触划分为多个分组后后继神经元归属的分组的标识。
相应地,在一些实施例中,突触阵列中的多个突触划分为多个分组,每一个分组包括多个突触;不同分组中的突触对应的后继神经元不同;根据取数地址从多个延迟缓冲区中查找目标神经元的发放数据包括:
根据取数地址与延迟缓冲区中存储的多个突触对应的前继神经元的标识信息进行匹配,标识信息包括对应的前继神经元的序号和对应的后继神经元归属的分组的组号;
在匹配成功的情况下,生成表征目标神经元发放的发放数据。
在本公开实施例中,通过上述过程,实现了,延迟缓冲区的存储结构为稀疏存储结构的情况下,发放数据的存取。采用稀疏存储结构能够节约存储资源。
在一些实施例中,在匹配成功的情况下,生成发放数据1。需要说明的是,在匹配失败的情况下,表示延迟缓冲区中未存储目标神经元的标识信息或目标神经元未发放,则生成发放数据0。
本公开实施例对取数地址不做特殊限定。在一些实施例中,取数地址包括目标神经元的标识。在一些实施例中,突触阵列中的多个突触划分为多个分组,取数地址包括目标神经元的序号和目标神经元归属的分组的组号。
第二方面,参照图11,本公开实施例提供一种数据处理方法,应用于延迟装置,延迟装置包括权重缓存区和多个延迟链单元;延迟装置应用于突触阵列,突触阵列用于连接多个前继神经元和多个后继神经元,突触阵列中的一个突触对应一个前继神经元和一个后继神经元;每一个时间拍包括依次执行的多个时间步,在一个时间步中,延迟装置对应一个前继神经元,每一个延迟链单元对应一个突触;对于任意一个时间步,上述方法包括:
S4、将取数地址输入各个延迟链单元,得到各个延迟链单元对应目标神经元的输出数据,目标神经元为当前时间步中延迟装置对应的前继神经元;
S5、从权重缓存区中获取多个目标突触的权重数据,目标突触为当前时间步中延迟链单元对应的突触;
S6、根据当前时间步中各个目标突触对应的输出数据和权重数据、前一时间步中各个目标突触对应的中间电流值,确定当前时间步中各个目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个后继神经元当前时间拍的输入电流值。
需要说明的是,在本公开实施例中,延迟装置中的延迟链单元能够根据本公开实施例第一方面的数据处理方法,将目标神经元的发放数据延迟预定时间拍数后输出。
需要说明的是,在一个时间步中,延迟装置对应一个前继神经元,每一个延迟链单元对应一个突触,其中,延迟链单元对应的突触为该前继神经元对应的突触。
本公开实施例对延迟装置中延迟链单元的数量不做特殊限定。在一些实施例中,确定延迟装置中延迟单元的数量与突触阵列中突触的数量相关。例如,延迟装置中延迟链单元的数量可以是4个、16个、32个等。
需要说明的是,通过在一个时间拍的多个时间步都执行步骤S4至S6,在突触阵列对各个前继神经元的发放数据进行延迟处理的情况下,针对任意一个后继神经元执行了对所有前继神经元的发放数据的积分计算过程。
本公开实施例提供的应用于延迟装置的数据处理方法,用延迟链单元对突触阵列中各个突触的延迟进行模拟,并能够在对前继神经元的发放数据进行延迟处理的情况下确定后继神经元的输入电流,实现了对生物神经系统的有效仿真。
在一些实施例中,参照图12,在步骤S4之前,对于任意一个时间步,上述方法还包括:
S7、将目标神经元的发放数据写入各个延迟链单元。
在本公开实施例中,通过步骤S7,能够将目标神经元的发放数据写入满足目标神经元发放数据的延迟需求的延迟缓冲区,从而将目标神经元的发放数据延迟相应的时间拍数。
在本公开实施例中,步骤S7和步骤S4可以在同一个时间拍执行。例如,当前时间拍,目标神经元发放,通过执行步骤S7将目标神经元的发放数据写入各个延迟链单元;然后,在当前时间拍,通过执行步骤S4获取各个延迟链单元的输出数据。在一些实施例中,步骤S7和步骤S4也可以在不同时间拍执行。例如,目标神经元在之前的时间拍发放,并通过执行步骤S7已经将目标神经元的发放数据写入各个延迟链单元,在当前时间拍,通过执行步骤S4得到各个延迟链单元的输出数据。
在一些实施例中,延迟装置还包括多个寄存器,多个寄存器与多个延迟链单元一一对应;根据当前时间步中各个目标突触对应的输出数据和权重数据、前一时间步中各个目标突触对应的中间电流值,确定当前时间步中各个目标突触对应的中间电流值,包括:
对应于任意一个目标突触,计算当前时间步中目标突触对应的输出数据和权重数据的乘积,得到加权电流值;
从目标突触对应的寄存器中读取前一时间步中目标突触对应的中间电流值;
计算加权电流值和前一时间步中目标突触对应的中间电流值的和,得到当前时间步中目标突触对应后继神经元的中间电流值。
在本公开实施例中,通过在一个时间拍的多个时间步中执行上述过程,从而在该时间拍的最后一个时间步中得到多个后继神经元的输入电流值。在一些实施例中,在计算加权电流值和前一时间步目标突触对应的中间电流值的和,得到当前时间步目标突触对应的中间电流值之后,上述方法还包括:
将当前时间步中目标突触对应的中间电流值写入目标突触对应的寄存器;
判断当前时间步是否为当前时间拍的最后一个时间步;
在当前时间步为当前时间拍的最后一个时间步的情况下,将目标突触对应的寄存器中存储的目标突触对应的中间电流值,作为当前时间拍目标突触对应的后继神经元的输入电流并输出。
在本公开实施例中,通过在一个时间拍的多个时间步中执行上述过程,从而能够在该时间拍的最后一个时间步中得到多个后继神经元的输入电流值并输出。
在一些实施例中,突触阵列划分为多个分组,每一个分组包括多个突触;每一个分组对应多个后继神经元,不同分组对应的后继神经元不同;在一个时间步中,延迟装置对应一个分组;对于任意一个时间步,在将取数地址输入各个延迟链单元,得到各个延迟链单元对应目标神经元的输出数据之前,上述方法还包括:
根据目标神经元的标识和当前时间步延迟装置对应的分组的标识,确定取数地址。
在本公开实施例中,通过上述过程,能够实现延迟装置复用。
需要说明的是,在一个时间步中,延迟装置对应一个前继神经元,每一个延迟链单元对应一个突触,延迟装置对应一个分组,其中,延迟装置中延迟链单元对应的突触为该前继神经元对应的、归属于该分组的突触。
图13是本公开实施例中一种对突触阵列进行分组的示意图,图14是本公开实施例中一种延迟装置的结构示意图。下面结合图13、图14对本公开实施例提供的数据处理方法进行解释说明。
在本公开实施例中,i为前继神经元的序号,j为后继神经元的序号,四元组(Wi,j,di,j,i,j)表示连接序号为i的前继神经元和序号为j的后继神经元的突触,Wi,j为突触的权重数据,di,j为突触需要延迟的预定时间拍数。序号为j的后继神经元的输入电流值可以表示为:
其中,xi表示前继神经元的发放数据。
如图13所示,突触阵列划分为Gid=0和Gid=1两个分组,Gid=0的分组对应序号为0、1、2、3的后继神经元,Gid=1的分组对应序号为4、5、6、7的后继神经元。
如图14所示,延迟装置包括权重缓存区(Weight Buffer)和四个延迟链单元(Delay Chain)。任意一个时间步,延迟装置中的四个Delay Chain分别对应一个前继神经元在一个分组中对应的突触。在一个时间步中,延迟装置的处理过程包括:根据取数地址从Weight Buffer分别读取各个Delay Chain对应的突触的权重数据,Delay Chain对前继神经元的发放数据进行延迟处理得到输出数据,利用乘法器计算权重数据和输出数据的乘积得到加权电流值,并利用加法器计算加权电流值与寄存器(reg)中存储的前一时间步的中间电流值,得到当前时间步的中间电流值,然后将当前时间步的中间电流值写入reg。
在一个时间拍中,延迟装置的处理过程包括:在第一时间步,计算满足i=0、Gid=0的四个突触的中间电流值,在第二时间步,计算满足i=1、Gid=0的四个突触的中间电流值,在第三时间步,计算满足i=2、Gid=0的四个突触的中间电流值,在第四时间步,计算满足i=3、Gid=0的四个突触的中间电流值,得到Gid=0的分组对应的序号为0、1、2、3的后继神经元的输入电流值;在第五时间步,计算满足i=0、Gid=1的四个突触的中间电流值,在第六时间步,计算满足i=1、Gid=1的四个突触的中间电流值,在第七时间步,计算满足i=2、Gid=1的四个突触的中间电流值,在第八时间步,计算满足i=3、Gid=1的四个突触的中间电流值,得到Gid=1的分组对应的序号为4、5、6、7的后继神经元的输入电流值。
第三方面,参照图15,本公开实施例提供一种延迟链单元,延迟链单元应用于突触,突触对应一个前继神经元;延迟链单元包括:
多个延迟缓冲区101;
控制模块102,被配置为从多个延迟缓冲区101中查找目标神经元的发放数据,目标神经元为突触对应的前继神经元;
数据选择器103,被配置为以至少一个时间拍为间隔依次将多个延迟缓冲区101与延迟链单元的输出端导通,以输出目标神经元的发放数据。
第四方面,参照图16,本公开实施例提供一种延迟装置,应用于突触阵列,突触阵列用于连接多个前继神经元和多个后继神经元,突触阵列中的一个突触对应一个前继神经元和一个后继神经元;
延迟装置包括:
权重缓存区201;
多个延迟链单元202,延迟链单元202用于执行本公开实施例第一方面中任意一项的数据处理方法;每一个时间拍包括依次执行的多个时间步,在一个时间步中,延迟装置对应一个前继神经元,每一个延迟链单元202对应一个突触;
处理模块203,被配置为对于任意一个时间步,将取数地址输入各个延迟链单元202,得到各个延迟链单元202对应目标神经元的输出数据,目标神经元为当前时间步中延迟装置对应的前继神经元;从权重缓存区201中获取多个目标突触的权重数据,目标突触为当前时间步中延迟链单元202对应的突触;根据当前时间步中各个目标突触对应的输出数据和权重数据、前一时间步中各个目标突触对应的中间电流值,确定当前时间步中各个目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个后继神经元当前时间拍的输入电流值。
第五方面,参照图17,本公开实施例提供一种众核系统,包括:多个处理核301以及片上网络302,其中,多个处理核301均与片上网络302连接,片上网络302用于交互多个处理核间的数据和外部数据。
其中,一个或多个处理核301中存储有一个或多个指令,一个或多个指令被一个或多个处理核301执行,以使一个或多个处理核301能够实现本公开实施例第一方面的数据处理方法和/或本公开实施例第二方面的数据处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (16)
1.一种数据处理方法,应用于延迟链单元,所述延迟链单元包括多个延迟缓冲区;所述延迟链单元应用于突触,所述突触对应一个前继神经元;所述方法包括:
从多个所述延迟缓冲区中查找目标神经元的发放数据,所述目标神经元为所述突触对应的前继神经元;
以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述目标神经元的发放数据。
2.根据权利要求1所述的数据处理方法,其中,在从多个所述延迟缓冲区中查找目标神经元的发放数据之前,所述方法还包括:
根据输出缓冲区和所述目标神经元的发放数据需要延迟的预定时间拍数,将所述目标神经元的发放数据写入目标缓冲区,所述输出缓冲区为当前时间拍与所述延迟链单元的输出端导通的延迟缓冲区,所述目标缓冲区为所述预定时间拍数后与所述延迟链单元的输出端导通的延迟缓冲区。
3.根据权利要求2所述的数据处理方法,其中,根据输出缓冲区和所述目标神经元的发放数据需要延迟的预定时间拍数,将所述目标神经元的发放数据写入目标缓冲区,包括:
根据所述输出缓冲区的序号和所述预定时间拍数确定各个所述延迟缓冲区对应的写使能信号,所述写使能信号用于控制对应的所述延迟缓冲区是否可写;
将所述前继神经元的发放数据写入所述目标缓冲区,其中,所述目标缓冲区为多个所述延迟缓冲区中可写的一者。
4.根据权利要求3所述的数据处理方法,其中,根据所述输出缓冲区的序号和所述预定时间拍数确定各个所述延迟缓冲区对应的写使能信号,包括:
将第一缓冲区对应的写使能信号确定为第一信号,所述第一信号用于控制对应的延迟缓冲区可写,其中,所述第一缓冲区的序号满足:
m=(n+l)mod N
其中,m表示所述第一缓冲区的序号,n表示所述输出缓冲区的序号,l表示所述预定时间拍数,N表示所述延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、l、n、m为整数,N>1,O≤n<N,0≤m<N;
将第二缓冲区对应的写使能信号确定为第二信号,所述第二信号用于控制对应的延迟缓冲区不可写,其中,所述第二缓冲区为所述延迟链单元中所述第一缓冲区以外的延迟缓冲区。
5.根据权利要求1至4中任意一项所述的数据处理方法,其中,以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述前继神经元的发放数据,包括:
每经过一个时间拍,切换与所述延迟链单元的输出端导通的所述延迟缓冲区,其中,切换后与所述延迟链单元的输出端导通的所述延迟缓冲区的序号满足:
p=(q+1)mod N
其中,p表示切换后与所述延迟链单元的输出端导通的所述延迟缓冲区的序号,q表示切换前与所述延迟链单元的输出端导通的所述延迟缓冲区的序号,N表示所述延迟链单元中延迟缓冲区的总数,mod表示求余运算,N、p、q为整数,N>1,O≤p<N,O≤q<N;
当与所述延迟链单元的输出端导通的所述延迟缓冲区为存储所述目标神经元的发放数据的延迟缓冲区时,将所述目标神经元的发放数据输出。
6.根据权利要求1至4中任意一项所述的数据处理方法,其中,从多个所述延迟缓冲区中查找目标神经元的发放数据,包括:
根据取数地址从多个所述延迟缓冲区中查找所述目标神经元的发放数据;其中,多个所述延迟缓冲区并列。
7.根据权利要求6所述的数据处理方法,其中,根据取数地址从多个所述延迟缓冲区中查找所述目标神经元的发放数据,包括:
根据所述取数地址,从所述延迟缓冲区中所述目标神经元对应的存储空间中读取所述目标神经元的发放数据。
8.根据权利要求6所述的数据处理方法,其中,突触阵列中的多个突触划分为多个分组,每一个分组包括多个突触;不同分组中的突触对应不同的后继神经元;根据取数地址从多个所述延迟缓冲区中查找所述目标神经元的发放数据,包括:
根据所述取数地址与所述延迟缓冲区中存储的多个突触对应的前继神经元的标识信息进行匹配,所述标识信息包括对应的前继神经元的序号和对应的后继神经元归属的分组的组号;
在匹配成功的情况下,生成表征所述目标神经元发放的发放数据。
9.一种数据处理的方法,应用于延迟装置,所述延迟装置包括权重缓存区和多个延迟链单元,所述延迟链单元用于执行根据权利要求1至8中任意一项所述的数据处理方法;所述延迟装置应用于突触阵列,所述突触阵列用于连接多个前继神经元和多个后继神经元,所述突触阵列中的一个突触对应一个所述前继神经元和一个所述后继神经元;每一个时间拍包括依次执行的多个时间步,在一个时间步中,所述延迟装置对应一个所述前继神经元,每一个所述延迟链单元对应一个所述突触;对于任意一个时间步,所述方法包括:
将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元;
从所述权重缓存区中获取多个目标突触的权重数据,所述目标突触为当前时间步中所述延迟链单元对应的突触;
根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个所述后继神经元当前时间拍的输入电流值。
10.根据权利要求9所述的方法,其中,在将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元之前,所述方法还包括:
将所述目标神经元的发放数据写入各个所述延迟链单元。
11.根据权利要求9或10所述的方法,其中,所述延迟装置还包括多个寄存器,多个所述寄存器与多个所述延迟链单元一一对应;根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值,包括:
对应于任意一个所述目标突触,计算当前时间步中所述目标突触对应的输出数据和权重数据的乘积,得到加权电流值;
从所述目标突触对应的寄存器中读取前一时间步中所述目标突触对应的中间电流值;
计算所述加权电流值和前一时间步中所述目标突触对应的中间电流值的和,得到当前时间步中所述目标突触对应所述后继神经元的中间电流值。
12.根据权利要求11所述的方法,其中,在计算所述加权电流值和前一时间步中所述目标突触对应的中间电流值的和,得到当前时间步中所述目标突触对应的中间电流值之后,所述方法还包括:
将当前时间步中所述目标突触对应的中间电流值写入所述目标突触对应的寄存器;
判断当前时间步是否为当前时间拍的最后一个时间步;
在当前时间步为当前时间拍的最后一个时间步的情况下,将所述目标突触对应的寄存器中存储的所述目标突触对应的中间电流值,作为当前时间拍所述目标突触对应的所述后继神经元的输入电流并输出。
13.根据权利要求9或10所述的方法,其中,所述突触阵列划分为多个分组,每一个分组包括多个突触;每一个分组对应多个所述后继神经元,不同分组对应的所述后继神经元不同;在一个时间步中,所述延迟装置对应一个分组;对于任意一个时间步,在将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据之前,所述方法还包括:
根据所述目标神经元的标识和当前时间步中所述延迟装置对应的分组的标识,确定所述取数地址。
14.一种延迟链单元,所述延迟链单元应用于突触,所述突触对应一个前继神经元;所述延迟链单元包括:
多个延迟缓冲区;
控制模块,被配置为从多个所述延迟缓冲区中查找目标神经元的发放数据,所述目标神经元为所述突触对应的前继神经元;
数据选择器,被配置为以至少一个时间拍为间隔依次将多个所述延迟缓冲区与所述延迟链单元的输出端导通,以输出所述目标神经元的发放数据。
15.一种延迟装置,应用于突触阵列,所述突触阵列用于连接多个前继神经元和多个后继神经元,所述突触阵列中的一个突触对应一个所述前继神经元和一个所述后继神经元;
所述延迟装置包括:
权重缓存区;
多个延迟链单元,所述延迟链单元用于执行根据权利要求1至8中任意一项所述的数据处理方法;每一个时间拍包括依次执行的多个时间步,在一个时间步中,所述延迟装置对应一个所述前继神经元,每一个所述延迟链单元对应一个所述突触;
处理模块,被配置为对于任意一个时间步,将取数地址输入各个所述延迟链单元,得到各个所述延迟链单元对应目标神经元的输出数据,所述目标神经元为当前时间步中所述延迟装置对应的所述前继神经元;从所述权重缓存区中获取多个目标突触的权重数据,所述目标突触为当前时间步中所述延迟链单元对应的突触;根据当前时间步中各个所述目标突触对应的输出数据和权重数据、前一时间步中各个所述目标突触对应的中间电流值,确定当前时间步中各个所述目标突触对应的中间电流值,以在当前时间拍的最后一个时间步中得到多个所述后继神经元当前时间拍的输入电流值。
16.一种众核系统,包括:
多个处理核;
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够实现以下方法中的至少一者:
根据权利要求1至8中任意一项所述的数据处理方法;
根据权利要求9至13中任意一项所述的数据处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631254.8A CN114925817A (zh) | 2022-06-06 | 2022-06-06 | 数据处理方法、延迟链单元、延迟装置、众核系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631254.8A CN114925817A (zh) | 2022-06-06 | 2022-06-06 | 数据处理方法、延迟链单元、延迟装置、众核系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925817A true CN114925817A (zh) | 2022-08-19 |
Family
ID=82811705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210631254.8A Pending CN114925817A (zh) | 2022-06-06 | 2022-06-06 | 数据处理方法、延迟链单元、延迟装置、众核系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925817A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349033A (zh) * | 2023-12-05 | 2024-01-05 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
-
2022
- 2022-06-06 CN CN202210631254.8A patent/CN114925817A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117349033A (zh) * | 2023-12-05 | 2024-01-05 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
CN117349033B (zh) * | 2023-12-05 | 2024-03-08 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853875B2 (en) | Neural network apparatus and method | |
US8655813B2 (en) | Synaptic weight normalized spiking neuronal networks | |
JP6250054B2 (ja) | ニューラル・コア回路 | |
JP7228320B2 (ja) | ニューロモーフィック・チップ、ニューロモーフィック・システム、ニューロモーフィック・チップ内のシナプス重みを更新するための方法およびコンピュータ・プログラム | |
US8914315B2 (en) | Multi-compartment neuron suitable for implementation in a distributed hardware model by reducing communication bandwidth | |
CN106845633B (zh) | 神经网络信息转换方法和系统 | |
US20120259804A1 (en) | Reconfigurable and customizable general-purpose circuits for neural networks | |
JP2013546065A (ja) | シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路 | |
CN106934457B (zh) | 一种可灵活时分复用的脉冲神经元实现架构 | |
CN113673688A (zh) | 权重生成方法、数据处理方法及装置、电子设备、介质 | |
CN106845632B (zh) | 脉冲神经网络信息转换为人工神经网络信息的方法和系统 | |
US10832121B2 (en) | Transform for a neurosynaptic core circuit | |
CN114925817A (zh) | 数据处理方法、延迟链单元、延迟装置、众核系统 | |
CN117634564B (zh) | 一种基于可编程神经拟态核的脉冲延时测量方法及系统 | |
CN111047022A (zh) | 一种计算装置及相关产品 | |
CN114611686A (zh) | 基于可编程神经拟态核的突触延时实现系统及方法 | |
CN112966814A (zh) | 融合脉冲神经网络信息处理方法及融合脉冲神经网络 | |
CN111340194A (zh) | 脉冲卷积神经网络神经形态硬件及其图像识别方法 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN115099395B (zh) | 神经网络构建方法及装置、设备、介质 | |
CN114781630A (zh) | 权重数据存储方法及装置、芯片、电子设备、可读介质 | |
CN111353591A (zh) | 一种计算装置及相关产品 | |
US20230153584A1 (en) | Parallel Processing in a Spiking Neural Network | |
CN115409162A (zh) | 脉冲神经网络中的并行处理 | |
KR102380584B1 (ko) | 뉴로모픽 장치 및 그 장치에서 수행되는 가중치 갱신 방법 |
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 |