CN110121722B - 用于存储和生成连接性信息的神经形态电路 - Google Patents
用于存储和生成连接性信息的神经形态电路 Download PDFInfo
- Publication number
- CN110121722B CN110121722B CN201780081360.0A CN201780081360A CN110121722B CN 110121722 B CN110121722 B CN 110121722B CN 201780081360 A CN201780081360 A CN 201780081360A CN 110121722 B CN110121722 B CN 110121722B
- Authority
- CN
- China
- Prior art keywords
- synaptic
- core
- neuron
- address
- post
- 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.)
- Active
Links
- 210000002569 neuron Anatomy 0.000 claims abstract description 386
- 230000000946 synaptic effect Effects 0.000 claims abstract description 185
- 230000001242 postsynaptic effect Effects 0.000 claims abstract description 163
- 210000005215 presynaptic neuron Anatomy 0.000 claims abstract description 97
- 230000004044 response Effects 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 31
- 238000007620 mathematical function Methods 0.000 claims description 25
- 238000013507 mapping Methods 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims 2
- 210000000225 synapse Anatomy 0.000 description 30
- 239000012528 membrane Substances 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 230000001537 neural effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000003518 presynaptic effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000003776 cleavage reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 210000005171 mammalian brain Anatomy 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000036279 refractory period Effects 0.000 description 1
- 230000007017 scission Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012421 spiking Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000004936 stimulating effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
-
- 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
提供了一种神经形态计算系统,包括:突触核心;以及与突触核心耦合的突触前神经元、第一突触后神经元和第二突触后神经元,其中突触核心用于:接收来自突触前神经元的请求,并且响应于该请求生成第一突触后神经元的第一地址和第二突触后神经元的第二地址,其中第一地址和第二地址在接收到该请求之前未被存储在突触核心中。
Description
背景技术
在神经形态计算系统(neuromorphic computing system)中,可以有数百、数千或者甚至数百万的神经元(neuron),其中神经元可以连接到相应的多个神经元。例如,第一神经元可以连接到几个其他神经元、数百个其他神经元或者甚至数千个其他神经元。神经形态计算系统中的神经元之间的连接可以是稀疏且随机的(例如,不遵循任何特定的模式)。存储神经形态计算系统中的所有神经元的连接性信息可能要求大量的存储空间。
附图说明
通过以下给出的详细描述并且通过本公开的各种实施例的附图将更充分理解本公开的实施例,然而详细描述和附图不应当被理解为将本公开限制到特定实施例,而只是用于说明和理解的。
图1示意性示出了根据一些实施例的包括互连神经元的网络的神经形态计算系统。
图2A、图2B和图2C更详细地示意性示出了根据一些实施例的图1的神经形态计算系统。
图3示意性示出了根据一些实施例的神经形态计算系统的突触核心,其中突触核心将前向尖峰从突触前神经元发送到各种突触后神经元。
图4示意性示出了根据一些实施例的从突触后神经元向突触前神经元发送后向尖峰。
图5示意性示出了根据一些实施例的神经形态计算系统的突触核心的示例实现方式。
图6示意性示出了根据一些实施例的其中包括突触核心和神经元的计算机系统或SoC(片上系统)。
具体实施方式
在一些实施例中,神经形态计算系统中的神经元之间的连接可以是稀疏且随机的。由于神经形态计算系统中的神经元的巨大数目(例如,数千或者甚至数百万),存储关于这些神经元之间的连接性的信息可能要求大量的存储器空间。本公开的教导通过例如不在神经形态计算系统中存储连接性信息的至少一部分来减轻此问题。更确切地说,这种连接性信息是在需要时即时生成的,从而节省存储器空间。
例如,突触前神经元(pre-synaptic neuron)可以经由突触核心(synapsecore)向多个突触后神经元(post-synaptic neuron)发送尖峰(spike)。传统上,对于特定的突触前神经元,突触核心可以存储所有突触后神经元的地址,这可消耗传统系统中的很大存储空间。与之不同,在一些实施例中,本文公开的突触核心可以存储种子数(seed number),这例如与存储所有突触后神经元的地址相比消耗更少的存储空间。当突触核心要从突触前神经元向多个突触后神经元发送尖峰时,突触核心从种子数生成(例如,即时生成)多个突触后神经元的地址。例如,突触核心使用有限域数学函数(例如,伽罗瓦域函数)来从种子数映射多个突触后神经元的地址。
此外,当来自突触前神经元的尖峰要被发送到多个突触后神经元时,到相应突触后神经元的尖峰可以由相应的突触权重加权。在一些实施例中,突触权重可以是表示更高(或更低)突触权重分辨率的多比特数字和/或表示刺激性和抑制性行为(例如,像在一些哺乳动物大脑中看到的那种)的带符号数字(例如,正的或负的)。这要求存储与该突触前神经元和该多个突触后神经元相对应的多个突触权重。在一些实施例中,存储器被用于以例如要求更少存储空间的紧凑方式存储突触权重。此外,在一些实施例中,存储突触权重的存储器以独特方式与映射函数交互,以使得由映射函数生成的每个突触后神经元地址可以与相应突触权重匹配,并且突触后神经元地址和突触权重的组合可以与尖峰一起被发送到相应的突触后神经元。
各种实施例有许多技术效果。例如,在需要时从种子数实时生成突触后神经元地址,而不是在突触核心中实际存储所有突触后神经元地址,可以显著降低突触核心的存储空间要求。类似地,以存储高效的方式存储突触权重也可以降低突触核心的存储空间要求。这可以获得更小且更快的突触核心,这最终可以获得更快且更小的神经形态计算系统。其他技术效果将从各种实施例和附图中清楚显现。
在接下来的描述中,论述了许多细节以提供对本公开的实施例的更透彻说明。然而,本领域技术人员将会清楚,没有这些具体细节也可以实现本公开的实施例。在其他情况下,以框图形式而不是详细示出公知的结构和设备,以避免模糊本公开的实施例。
注意,在实施例的相应附图中,信号以线条表示。一些线条可能更粗,以指示更多构成信号路径,和/或在一端或多端具有箭头,以指示主信息流方向。这种指示并不打算是限制性的。更确切地说,这些线条与一个或多个示范性实施例被联合使用来帮助更容易理解电路或逻辑单元。由设计需要或偏好决定的任何表示的信号可以实际上包括可以在任一方向上行进并且可以利用任何适当类型的信号方案实现的一个或多个信号。
在整个说明书各处,以及在权利要求中,术语“连接”的意思是直接连接,例如连接的事物之间的电连接、机械连接或磁连接,没有任何中间设备。术语“耦合”的意思是直接或间接连接,例如连接的事物之间的直接电连接、机械连接或磁连接,或者通过一个或多个无源或有源中间设备的间接连接。术语“电路”或“模块”可以指被布置为与彼此合作来提供期望的功能的一个或多个无源和/或有源组件。术语“信号”可以指至少一个电流信号、电压信号、磁信号或数据/时钟信号。“一”和“该”的含义包括多数指代。“在…中”的含义包括“在…中”和“在…上”。术语“基本上”、“接近”、“大致”、“近似”和“大约”一般指在目标值的+/-10%内。
除非另有指明,否则使用序数形容词“第一”、“第二”和“第三”等等来描述共同对象只是表明相似对象的不同实例被引用,而并不打算暗示这样描述的对象必须在时间上、空间上、排名上或者以任何其他方式处于给定的序列中。
对于本公开而言,短语“A和/或B”和“A或B”的意思是(A)、(B)或者(A和B)。对于本公开而言,短语“A、B和/或C”的意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。说明书中和权利要求中的术语“左”、“右”、“前”、“后”、“顶”、“底”、“上”、“下”等等(如果有的话)是用于描述性目的的,而并不一定用于描述永久的相对位置。
图1示意性示出了根据一些实施例的包括互连神经元(例如,神经元Na1、Na2等)的网络的神经形态计算系统100(以下称为“系统100”)。在示例中,术语“神经形态”指的是这样的电子电路:其被设计来模拟存在于神经系统中的神经生物学体系结构,以例如克服机器学习系统中的并行计算瓶颈。这些系统,例如图1的系统100,可以被设计为处理诸如图像和声音的感官数据并且以未被具体编程到系统中的方式响应数据中的变化。神经形态计算系统中的“神经元”是计算子块。对于本公开而言,神经元也被称为计算节点、计算块、计算子块、运算节点、节点、神经元节点,等等。
神经元群组或神经元核心表示神经形态计算系统(例如系统100)中的核心计算块。在一些实施例中,系统100包括三个神经元群组或神经元核心102a、102b和102c(统称为核心102),在图1中利用虚线图示。核心102例如包括一组神经元。
虽然图1示出了系统100只包括三个核心,但核心的这种数目只是示例,并且系统100有可能包括更大数目的核心,例如,数十、数百、数千或者甚至数百万个这种核心。
在一些实施例中,每个核心102包括相应的多个神经元。例如,核心102a包括神经元Na1,…,Na6(统称为神经元Na),核心102b包括神经元Nb1,…,Nb6(统称为神经元Nb),并且核心102c包括神经元Nc1,…,Nc6(统称为神经元Nc)。
虽然图1中的每个核心被示为包括六个神经元,但这种数目只是示例,而每个核心可以包括任何不同数目的神经元。在示例中,每个核心可以包括64个神经元(或者另一适当数目的神经元)。在示例中,核心可以包括不同数目的神经元(例如,核心102a可以包括Pa个神经元,并且核心102b可以包括Pb个神经元,其中Pa不同于Pb)。神经元Na1,…,Na6,Nb1,…,Nb6,Nc1,…,Nc6被统称为神经元N。
在一些实施例中,系统100被包含在半导体芯片或管芯中。系统100可以从系统100外部的源接收一个或多个输入。这些输入可以被发送到系统100内的一个或多个神经元。神经元Na、Nb、Nc及其组件可以利用电路或逻辑实现。
在一些实施例中,神经元可以与一个或多个其他神经元通信。例如,图1中的神经元Na2被示为向核心102a的神经元Na3和Na6、核心102b的神经元Nb2和Nb4以及核心102c的神经元Nc1和Nc3发送信号或尖峰。虽然神经元Na2被示为向每个核心中的两个神经元发送,但这样的数目只是示例,而神经元可以与每个核心中的任何不同数目的神经元通信。
从神经元到另一神经元的连接被称为突触(synapse),在图1中被标记为突触104。突触104在图1中利用虚线示出,因为例如,如本文所述,突触104包括图1中没有图示的各种组件,并且此图中的突触104只是示出了从一个神经元到另一个的信号或尖峰的流。虽然为了简单起见在图1中只示出了从神经元Na2发源的突触104,但这样的突触104也可以存在于从其他个体神经元到其他相应的多个神经元。
在一些实施例中,神经元N和突触104可以被互连,以使得系统100进行操作来处理或分析由系统100接收到的信息。一般地,神经元N可以在该神经元中接收到的输入的累积超过阈值时发送输出脉冲(或者“激发”(fire)或“尖峰”)。在一些实施例中,神经元(例如,神经元Na2)可以对在神经元Na2的输入处接收到的信号求和或积分。当这个和(称为“膜电位”(membrane potential))超过阈值时,神经元Na2可以生成输出脉冲或尖峰,例如利用诸如s型函数或阈值函数的转移函数来生成。
在一些实施例中,神经元N可以被实现为“带泄漏积分激发”(leakyintegrate andfire)神经元。带泄漏积分激发神经元可以把在神经元输入处接收的信号求和成膜电位并且也可以应用衰减因子(或泄漏)来降低膜电位。因此,如果迅速到足以超过阈值地在输入处接收到多个输入信号,例如在神经元的膜电位衰减到太低以至于不能激发之前接收到,则带泄漏积分激发神经元可以激发。在一些实施例中,神经元N可以利用接收输入、将输入积分成膜电位并且衰减膜电位的电路或逻辑来实现。在一些实施例中,可以对输入求平均,或者可以使用任何其他适当的转移函数。此外,在示例中,神经元N可以包括比较器电路或逻辑,其在向输入应用转移函数的结果超过阈值时在输出处生成输出尖峰。一旦神经元激发,神经元就可以通过例如将膜电位重置到0或者另一适当的默认值来忽略先前接收到的输入信息。一旦膜电位被重置到0,神经元就可以在适当的一段时间(有时被称为不应期)之后继续开始正常操作。
在一些实施例中,从第一神经元到第二神经元(例如,从神经元Na2到神经元Nc3)的突触104可以进行操作来从第一神经元Na2的输出向第二神经元Nc3的输入发送信号(例如,尖峰)。生成要被通过突触104的实例发送的输出的神经元N的实例(例如,神经元Na2)对于突触104的该实例可以被称为“突触前神经元”。接收通过突触104的实例发送的输入的神经元N的实例(例如,神经元Nc3)对于突触104的该实例可以被称为“突触后神经元”。从而,例如,对于突触104,对于从神经元Na2到神经元Nc3的连接,神经元Na2可以是突触前神经元并且神经元Nc3可以是突触后神经元。
因为神经元N(例如,神经元Na2)可以从突触104的一个或多个实例接收输入,并且也可以通过突触104的一个或多个实例发送输出,所以神经元Na2对于突触104的各种实例既可以是“突触前神经元”也可以是“突触后神经元”。
在一些实施例中,系统100可以包括可重配置互连体系结构或专用硬连线互连来将突触104连接到神经元N。系统100可以包括允许基于神经网络拓扑和神经元扇入/扇出根据需要将突触104分配到不同神经元的电路或逻辑。例如,突触104可以利用诸如片上网络的互连构架或者利用专用连接来连接到神经元N。突触互连及其组件可以利用电路或逻辑来实现。
图2A更详细地示意性示出了根据一些实施例的图1的系统100。例如,在图2A中,更详细示出了图1的突触104。在一些实施例中,突触104包括相应的突触核心204,在图2A中被示为示例突触核心204a、204b和204c,但系统100可以包括任何其他适当数目的突触核心。在一些实施例中,神经元Na2向突触核心204a发送尖峰(或者对尖峰的请求),并且突触核心204a向核心102a、102b和102c的神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3重发送尖峰(例如在对尖峰适当地加权之后,本文将对此进行详细论述)。在一些实施例中,例如,链路104a(例如,从神经元Na2到突触核心204a)、突触核心204a和链路104b(例如,从突触核心204a到神经元Nb4)形成图1的突触104。
图2A的各种变化可以是可能的。例如,图2A示出了神经元Na2经由突触核心204a连接到核心102a、102b和102c的各种神经元。然而,在一些其他实施例中,如图2B的系统100a中所示,神经元Na2可以经由突触核心204a连接到核心102a的神经元Na3和Na6,神经元Na2可以经由突触核心204a连接到核心102b的神经元Nb2和Nb4,并且神经元Na2可以经由第二突触核心204b连接到核心102c的神经元Nc1和Nc3。
在另一示例中,如图2C中所示,系统100b的神经元Na2可以经由突触核心204a连接到核心102a的神经元Na3和Na6,神经元Na2可以经由突触核心204b连接到核心102b的神经元Nb2和Nb4,并且神经元Na2可以经由突触核心204c连接到核心102c的神经元Nc1和Nc3。
再次参考图2A,因为神经元Na2输出到突触核心204a,所以这个突触核心对于神经元Na2形成扇出突触核心。类似地,在图2B的示例中,突触核心204a和204b对于神经元Na2形成扇出突触核心。类似地,在图2C的示例中,突触核心204a、204b和204c对于神经元Na2形成扇出突触核心。
图3示出了根据一些实施例的图1和图2A的系统100的突触核心204a,其中突触核心204a从突触前神经元向各突触后神经元发送前向尖峰(forward spike)。对于图3而言,假定突触核心204a是神经元Na2的扇出突触,这对应于图2A的示例。在一些实施例中,突触核心204a从神经元Na2接收尖峰(或者尖峰请求),对尖峰适当地加权,并且将加权的尖峰发送到神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3。因为突触核心204a从神经元Na2接收尖峰请求,所以从突触核心204a的角度来看,神经元Na2是突触前神经元并且神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3是突触后神经元。
在一些实施例中,每个神经元N具有在系统100中唯一识别该神经元的相应地址。例如,假定神经元Na1具有地址Aa1,神经元Na2具有地址Aa2,并且神经元Nc3具有地址Ac3,等等依此类推。在一些实施例中,神经元的地址(例如,神经元Na1的地址Aa1)具有两个片段:识别该神经元所属的核心的最高有效位(most significant bit,MSB),和在该核心中识别该特定神经元的最低有效位(least significant bit,LSB)。只是作为示例,如果有最多1028个核心并且每个核心具有最多64个神经元,则神经元的地址可以具有16比特——10个MSB可以识别该神经元所属的核心,并且6个LSB可以在该核心中识别该神经元。在其他实施例中,任何其他适当的表示神经元地址的方式也可奏效。
以下,对于本公开而言,除非另外提及,神经元(例如,神经元Na3)的地址(例如,地址Aa3)的MSB可以指该神经元Na3所属的神经元核心(例如,核心102a)的地址或标识(ID),并且该地址的LSB可以指神经元Aa3在核心102a中的地址或ID。仅作为简单示例,如果地址是“a3”(虽然这样的地址不是二进制形式的,并且实际地址将会更复杂),则字“a”(其例如是MSB)识别核心102a,并且数字“3”(其例如是LSB)识别核心102a中的第3神经元。
在一些实施例中,当突触前神经元Na2要向突触后神经元Na3、Na6、Nb2等等发送尖峰时,神经元Na2向突触核心204a发送未加权尖峰请求302(以下也称为“请求302”)。请求302是未加权的,因为到目前为止还没有向尖峰请求302应用加权(例如,因为尖峰请求302被用于将尖峰从单个突触前神经元通过多个突触递送到多个突触后神经元,其中每个突触具有其自己的相应突触权重)。
在一些实施例中,请求302可以包括突触前神经元Na2的地址或识别符。例如,当突触核心204a接收到请求302时,突触核心204a知晓该请求来自突触前神经元Na2。在一些实施例中,例如,请求302还包括突触核心204a的识别符或地址,从而请求302可以被路由到正确的突触核心。仅作为示例,如果突触前神经元连接到多个于一个突触核心(例如,如联系图2B-图2C所述,其中神经元Na2连接到多于一个突触核心),则该突触前神经元可以向每个连接的突触核心发送相应的未加权尖峰请求。对于图3而言,假定突触前神经元Na2在向突触核心204a发送请求302,例如为了最终将加权尖峰发送到核心102a、102b和102c的突触后神经元。在一些实施例中,请求302还包括稀疏数以指示从神经元Na2实现的扇出连接的数目。稀疏数提供对于尖峰要被发送到(例如基于请求302)的突触后神经元的数目(其例如可以是从神经元Na2实现的扇出连接的数目)的指示。稀疏度将在本文中更详细论述。
如本文所述,突触后神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3的每一者分别具有相应的神经元地址Aa3、Aa6、Ab2、Ab4、Ac1和Ac3。神经元Na2在一些实施例中可以不存储其突触后神经元的地址。此外,在一些实施例中,突触核心204a也可以不存储突触后神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3的地址。更确切地说,在一些实施例中,在接收到请求302时,突触核心204a可以生成神经元地址Aa3、Aa6、Ab2、Ab4、Ac1和Ac3(例如,即时生成这些地址),例如如本文更详细论述那样。
在一些实施例中,突触核心204a包括映射逻辑320。映射逻辑320(以下也称为“逻辑320”)例如可以是电路或硬件实体。逻辑320的特征可以是在微处理器、数字信号处理器(DSP)、微控制器或计算机上运行的算法(或软件实体),或者可以主要利用硬件来实现。如本文将更详细论述的,逻辑320在一些实施例中可以实现数学函数f(x)。
在一些实施例中,突触核心204a还包括连接性存储306(在本文中也称为“存储306”),其例如可以是存储器或者一组寄存器文件。在一些实施例中,存储306包括核心后地址存储316、种子数存储312和核心前地址存储308。
在一些实施例中,种子数存储312包括多个种子数,这些种子数例如被逻辑320用于生成突触后神经元的地址的LSB。在一些实施例中,与多个突触前神经元相对应的种子数被存储在存储306中。例如,如果核心102a的神经元连接到突触核心204a,则与核心102a的突触前神经元相对应的种子数312被存储在存储306中。
在一些实施例中,至少种子数SNa2-a、SNa2-b和SNa2-c被存储在存储312中。这些种子数例如在神经元Na2充当突触前神经元时适用。例如,这些种子数中的前缀“a2”指的是突触前神经元Na2,并且后缀“-a”、“-b”和“c”指的是各突触后神经元核心。种子数SNa2-a可以用于在例如神经元Na2是突触前神经元时生成核心102a中的突触后神经元的地址。类似地,种子数SNa2-b可以用于在例如神经元Na2是突触前神经元时生成核心102b中的突触后神经元的地址。类似地,种子数SNa2-c用于在例如神经元Na2是突触前神经元时生成核心102c中的突触后神经元的地址。
在一些实施例中,逻辑320可以使用请求302中的神经元Na2的地址或标识来从种子数存储312访问相关种子数。例如,在分析请求302时,逻辑320知晓突触前神经元Na2发送了请求302。因此,逻辑320从种子数存储312访问与突触前神经元Na2相对应的种子数SNa2-a、SNa2-b和SNa2-c。在一些实施例中,逻辑320可以使用种子数SNa2-a、SNa2-b和SNa2-c来生成突触后神经元Na3,…,Nc3的地址的LSB。例如,为了生成核心102a的突触后神经元Na3和Na6的地址的LSB,逻辑320使用种子数SNa2-a;为了生成核心102b的突触后神经元Nb2和Nb4的地址的LSB,逻辑320使用种子数SNa2-b,等等依次类推。
在一些实施例中,逻辑320实现有限域数学函数来生成突触后神经元的地址的LSB。有限域(例如,伽罗瓦域(Galois field,GF))是包含有限数目的元素的域。例如,如果突触前神经元Na2连接到群组102a中的两个突触后神经元Na3和Na6,则使用种子数SNa2-a的有限域数学运算将输出神经元Na3和Na6的地址的LSB。例如,如果由逻辑320实现的有限域数学运算被表示为f(x),其中x是运算对象,则f(SNa2-a)将输出突触后神经元Na3和Na6的地址的LSB。在示例中,在伽罗瓦域函数中,乘法和除法算术块可以要求(例如,可以只要求)基于按比特移位、AND和XOR运算的算术块。
在一些实施例中,伽罗瓦域被逻辑320使用,而在一些其他实施例中,也可以使用另外的可逆散列函数,或者映射函数算术。
例如,如果种子数SNa2-a是6比特二进制数,则这个种子数有64个可能值。仅作为示例,在十进制记数法中,如果种子数SNa2-2具有值1,则逻辑320的输出是GF(1)(例如,假定逻辑320使用伽罗瓦域),其具有与突触后神经元地址的LSB相对应的一个或多个唯一值。在另一示例中,在十进制记数法中,假定种子数SNa2-2具有值15。在这种示例中,逻辑320的输出是GF(15),其具有与突触后神经元地址的LSB相对应的一个或多个唯一值。例如,逻辑320可以被配置成使得GF(15)对应于突触后神经元Na3和Na6的地址的LSB。
在一些实施例中,逻辑320提供LSB地址的多个输出(例如表示Na3和Na6的两个不同LSB)的配置由突触前神经元实现的突触后连接的数目(例如,连接的稀疏度)控制。例如,在图3中,神经元Na2具有六个扇出连接(例如,连接到六个突触后神经元),因此,逻辑320具有特定的配置。如果神经元Na2要连接到例如12个突触后神经元,则逻辑320的配置可以不同。
在一些实施例中,存储312中的种子数可以是可配置的。例如,如果用户想要重配置系统100以使得突触前神经元Na2要连接到核心102a的突触后神经元Na1和Na5(例如,而不是图3中所示的突触后神经元Na3和Na6),则这样的变化可以通过适当地改变种子数SNa2-a的值来实现。
在一些实施例中,核心后地址存储316输出突触后神经元的地址的MSB。例如,对于突触后神经元Na3和Na6,其各自的地址Aa3和Aa6的MSB可以是相同的,并且MSB可以识别这些神经元所属的核心102a。类似地,对于突触后神经元Nb2和Nb4,其各自的地址Ab2和Ab4的MSB可以是相同的,并且MSB可以识别这些神经元所属的核心102b。
从而,逻辑320可以生成神经元Na3和Na6的地址Aa3和Aa6的LSB(例如,其可以分别是神经元Na3和Na6在核心102a内的标识);并且核心后地址存储316可以提供这些地址的MSB(例如,其可以是核心102a在系统100内的标识)。突触核心204a内的组件310接收LSB和MSB,并且组件310对其进行附加、串接、求和和/或组合以例如生成地址Aa3和Aa6。图3示出了突触核心204a生成地址Aa3的示例场景。
与生成核心102a的突触后神经元Na3和Na6的地址Aa3和Aa6类似,在一些实施例中,也可以生成核心102b的突触后神经元Nb2和Nb4的地址Ab2和Ab4。例如,逻辑320可以基于种子数SNa2-b输出这两个地址各自的LSB(例如,其可以分别是神经元Nb2和Nb4在核心102b内的标识)。核心后地址存储316可以输出这些地址的MSB,这些MSB例如可以唯一地识别核心102b。组件310可以基于由逻辑320输出的LSB和由核心后地址存储316输出的MSB来输出地址Ab2和Ab4。在一些实施例中,也可以以类似的方式(例如,基于种子数SNa2-c)生成核心102c的突触后神经元Nc1和Nc3的地址Ac1和Ac3。
如本文所述以及如图3中所示,种子数存储312为突触前神经元Na2存储种子数SNa2-a、SNa2-b和SNa2-c。以类似的方式,种子数存储312也可以为充当突触前神经元的其他神经元存储种子数。仅作为示例,对于充当突触前神经元的神经元Na5,种子数SNa5-a、SNa5-b和SNa5-c也可以被存储在种子数存储312中。
在一些实施例中,突触核心204a还包括存储多个突触权重的存储器304。例如,响应于请求302,突触核心204a分别向突触后神经元Na3、Na6、Nb2等发送尖峰Sa3、Sa6、Sb2等。尖峰Sa3、Sa6、Sb2等被突触核心204a利用突触权重加权,例如在被发送到各神经元之前被加权。突触权重例如被存储在存储器304中。
存储器304可以是任何适当类型的,例如非易失性和/或易失性存储器、高速缓存存储器、闪存、光盘、CD-ROM、DVD-ROM、RAM、EPROM、EEPROM、磁卡或光卡、相变存储器(PCM)或者其他类型的存储器。在示例中,存储器304是静态随机存取存储器(SRAM)。
在一些实施例中,存储器304是利用若干行和列示出的。虽然存储器304中的数据可以按或不按行和列的形式来存储,但这种行和列在图3中是为了从视觉上表示突触权重被存储在存储器304中的逻辑方式而示出的。
在一些实施例中,存储器304的行可以与相应的突触前神经元相关联。在示例中,假定存储器304只对应于核心102a的突触前神经元,并且还假定核心102a具有最多64个神经元(例如,神经元Na1,…,Na64)。于是,在示例中,存储器可以具有64行,其中每一行与核心102a的64个神经元中的相应突触前神经元相关联。例如,如果神经元Na1要作为突触前神经元操作,则存储器304的第一行可以提供相应的突触权重;如果神经元Na2要作为突触前神经元操作,则存储器304的第二行可以提供相应的突触权重(例如,如图3中所示);等等依此类推。
在另一示例中,如果存储器304要为两个核心(例如,核心102a和102b)的突触前神经元提供突触权重,则存储器304可以具有128行(例如,假定在每个核心中有64个神经元)。在另外一个示例中,如果存储器304要为三个核心(例如,核心102a、102b和102c)的突触前神经元提供突触权重,则存储器304可以具有192行(例如,假定在每个核心中有64个神经元)。
对于与存储器304的特定行相对应的突触前神经元(例如,神经元Na1),存储器304的列对应于突触前神经元Na1可以向其发送一个或多个尖峰的突触后神经元。
在一些实施例中(假定每个核心有64个神经元),如果存储器304为单个核心的突触后神经元提供突触权重,则存储器304可以具有64列;如果存储器304为两个核心的突触后神经元提供突触权重,则存储器304可以具有128行、64列,其中突触前神经元被映射到两行;如果存储器304为三个核心的突触后神经元提供突触权重,则存储器304可以具有192行、64列,其中突触前神经元被映射到三行;等等依此类推。在这种实现方式中,存储器304的列对应于核心的64个神经元,假定突触前神经元连接到所有64个神经元。然而,取决于连接的稀疏度,突触前神经元可以只连接到64个神经元的子集。这例如可以获得存储器304中的多个未使用条目。
例如,假定突触前神经元Na2可以向六个突触后神经元发送尖峰,如图3中所示(例如,向每个核心中的两个神经元发送尖峰)。对于这种情况,假定存储器304为突触前神经元Na2和核心102a、102b和102c的突触后神经元提供突触权重(例如,存储器304具有192行、64列),则对于存储器304的第2、第66和第130行的每一者,只有两个条目可以被用于Na2(例如,总共六个条目,对应于到突触后神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3的突触连接),从而使得这3个特定行的每一行上的剩余62个条目未被使用(例如,可以被其他神经元利用)。例如,对于突触前神经元Na2,存储器304的第2行可以具有与核心102a的突触后神经元Na3和Na6相对应的两个条目;存储器304的第66行可以具有与核心102b的突触后神经元Nb2和Nb4相对应的两个条目;并且存储器304的第130行可以具有与核心102a的突触后神经元Nc1和Nc3相对应的两个条目。在给定稀疏度配置下,这三行的每一行的62个剩余条目可以不被用于存储突触前神经元Na2的突触权重。
在上述示例中(例如,其中在存储器304中可以有多个空闲条目),空闲条目的数目可以基于系统100的稀疏度。例如,系统100可以具有数百或数千或者甚至数百万(或数十亿)的神经元,并且神经元可以只向几千个其他神经元发送尖峰。从而,系统100中的互连可能是稀疏的。仅作为示例,50%稀疏度意味着如果在核心102a中有64个神经元,则神经元可以向任何核心102中的32个其他神经元发送尖峰。在另一示例中,6.25%稀疏度意味着如果在核心102a中有64个神经元,则神经元可以向任何核心102中的4个其他神经元发送尖峰。在一些实施例中,稀疏数可以针对每个核心102设置,并且可以被存储在任何类型的存储器、寄存器文件、顺序逻辑元件中。高度密集的网络(其例如可以对应于100%稀疏度)意味着每个神经元可以向任何其他神经元发送尖峰。完全稀疏的网络(其例如可以对应于0%稀疏度)意味着神经元可以不连接到另一神经元。网络越稀疏(例如,稀疏度百分比越小),存储器304中的空闲条目的数目就越高。在一些实施例中,如果稀疏度百分比合理地低,则存储器304中的多个条目(例如,空闲或未使用的那些条目)可以被关闭、处于低功率模式中或者这些条目可以简单地不存在于存储器304中,以例如节省存储区域。在一些实施例中,稀疏度与尖峰请求302一起被发送出。
在一些其他实施例中,存储器304中的列的数目可以对应于存在于核心102中的神经元群组内的神经元的数目。特定的突触前神经元可以向神经元核心102中的一组突触后神经元发送尖峰,其中每个突触权重被存储在单一行中。例如,如果神经元Na2可以向存在于神经元核心102中的六个突触后神经元发送尖峰,则存储器304的第二行可以具有六列。
在一些实施例中,通过将多于一个突触前神经元映射到相同行以利用未使用(或空闲)的条目,可以节省存储器区域。在一些实施例中,突触前神经元地址和行地址偏移可以被用于生成存储器地址以实现多个突触前神经元到同一行的这种映射。例如,假定每个核心有64个神经元的场景,以及6.25%的稀疏度(例如,每个神经元可以向四个其他神经元发送尖峰)。于是,如本文所述,存储器304可以具有64列,并且对于与突触前神经元Na2相对应的特定行,四个条目可以用于存储突触权重。在一些实施例中,该特定行的剩余60个条目可以用于存储与其他突触前神经元相对应的突触权重(例如,用于15个其他突触前神经元)。例如,与16个突触前神经元相对应的突触权重可以被存储在存储器304的特定行中。
在另一示例中,如果稀疏度是50%,则与2个突触前神经元相对应的突触权重可以被存储在存储器304的特定行中,而如果稀疏度是25%,则与4个突触前神经元相对应的突触权重可以被存储在存储器304的特定行中。
对于本公开而言,如果示例神经元Np1向另一示例神经元Np2发送尖峰,则突触权重由Wp1-p2表示(其中例如前缀“p1”表示突触前神经元,并且后缀“p2”表示突触后神经元)。因此,例如,如果神经元Na2向神经元Na3发送尖峰,则相应的突触权重可以由Wa2-a3表示。从而,对于六个突触后神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3,存储器304可以分别输出六个突触权重Wa2-a3、Wa2-a6、Wa2-b2、Wa2-b4、Wa2-c1和Wa2-c3(例如,从存储器304的第二行输出)。
从而,组件310输出六个突触后神经元Na3、Na6、Nb2、Nb4、Nc1和Nc3各自的地址Aa3,…,Ac3,并且存储器304为这六个突触后神经元输出六个突触权重Wa2-a3,…Wa2-c3。在一些实施例中,组件310和/或存储器304可以以时间复用的方式输出这些数据,而在一些其他实施例中,组件310和/或存储器可以并行输出这些数据。
在一些实施例中,突触核心204a向突触后神经元Na3发送尖峰Sa3,其中尖峰Sa3包括神经元Na3的相应突触权重Wa2-a3和相应地址Aa3、嵌入突触权重Wa2-a3和地址Aa3、与突触权重Wa2-a3和地址Aa3相关联和/或伴随着突触权重Wa2-a3和地址Aa3。仅作为示例,尖峰Sa3被发送到神经元地址Aa3并且具有突触权重Wa2-a3。突触核心204a类似地向突触后神经元Na6发送尖峰Sa6,该尖峰Sa6被发送到神经元地址Aa6并且具有突触权重Wa2-a6。突触核心204a类似地分别向突触后神经元Nb2、Nb4、Nc1和Nc3发送尖峰Sb2、Sb4、Sc1和Sc3。
在一些实施例中,尖峰Sa3,…,Sc3被并行地分别发送到突触后神经元Na3,…,Nc3。在一些其他实施例中,尖峰Sa3,…,Sc3被串行地,例如以时间复用方式分别发送到突触后神经元Na3,…,Nc3。
在一些实施例中,如上所述,在图3的突触核心204a中,六个突触后神经元Na3,…,Nc3的六个地址Aa3,…,Ac3不需要被存储在突触核心204a中。更确切地说,这些地址可以例如在需要时由逻辑320和组件310利用来自存储312的种子数即时生成。在传统的大型神经形态计算系统中,存储突触后神经元的地址要求相对较大的存储空间。与之不同,利用本公开的教导,可以被存储在相对较小的存储空间中的种子数可以用于仅在要求时生成突触后神经元的地址。从而,例如与为所有突触前神经元存储所有突触后神经元的所有实际地址的传统系统中的突触核心相比,本公开的教导获得了突触核心中的大幅变小的存储空间。
图3示出了突触核心204a执行从突触前神经元Na1到六个突触前神经元的尖峰的前向传播(FWD)。在一些实施例中,突触核心204a也可以允许从突触后神经元到突触前神经元后向传播(BCK)尖峰。例如,在用于一些神经形态计算系统中的受限玻尔兹曼机中,突触连接可以是无方向的,并且BCK尖峰的行为可以与FWD尖峰的行为相同或接近相同。在示例中,BCK尖峰在生物学上被观察到并且使能通过峰时相关塑性(Spike Timing DependentPlasticity,STDP)进行学习。
图4示出了根据一些实施例的从示例突触后神经元Na3向示例突触前神经元Na2发送后向尖峰。在一些实施例中,突触后神经元Na3向突触核心204a发送未加权尖峰请求402(以下也称为“请求402”)。在一些实施例中,请求402包括突触后神经元Na3的地址或识别符,以及突触核心204a的地址。在示例中,从存储器304访问突触权重Wa3-a2。
如本文所述,逻辑320实现有限域数学函数,或者伽罗瓦域函数,来生成突触后神经元地址的LSB。在一些实施例中,有限域数学函数可以是可逆的。例如,如果f(x)表示伽罗瓦域中的乘法,则f-1表示伽罗瓦域中的除法。
在一些实施例中,因为在逻辑320中实现的映射函数可以是可逆的,所以如果在图3的示例中的逻辑320中使用函数f(x),则在图4的示例中,函数320的逆(或补)(例如,在图4中示为函数420,例如函数f-1(x))可以用于计算地址Aa2的LSB。此外,核心前地址存储308可以输出地址Aa2的MSB(其例如可以是核心102a的识别符)。在一些实施例中,组件310可以组合LSB和MSB来生成地址Aa1。随后,突触核心204a可以为神经元Na2输出尖峰Sa2,其中尖峰Sa2可以包括神经元Na2的相应突触权重Wa3-a2和相应地址Aa2、嵌入突触权重Wa3-a2和地址Aa2、与突触权重Wa3-a2和地址Aa2相关联和/或伴随着突触权重Wa3-a2和地址Aa2。
图5示出了根据一些实施例的图3-图4的突触核心204a的示例实现方式。在一些实施例中,图5中的突触核心204a是利用以虚线图示的三个并行块560a、560b和560c实现的。
在一些实施例中,块560a接收未加权尖峰请求(例如,图3的请求302),该请求也被称为前到后神经元请求(例如,因为请求302是从突触前神经元Na2到多个突触后神经元的)。另外,如本文所述,尖峰可以向前行进(例如,如关于图3所述),这被称为FWD尖峰;并且尖峰可以向后行进(例如,如关于图4所述),这被称为BCK尖峰。因为请求302是对于前向尖峰的,所以请求302也被称为FWD请求,并且关联的地址被利用术语“FWD”来标记。
在接收到请求302后,块560a访问连接性存储306(例如,发送生成请求302的神经元Na2的ID和/或地址),基于此,种子数存储312向块560a发送种子数(例如,种子数SNa2-a、SNa2-b、SNa2-c)。块560a中的逻辑320使用接收到的种子数来生成突触后神经元的地址的LSB。在一些实施例中,要生成的LSB的数目(其与为了对这些生成的LSB的每一者读出关联的突触权重而要向存储器304做出的存储器访问的数目相耦合)由稀疏数决定,该稀疏数可以在请求302中接收。另外,虽然在图5中没有示出,但块560a还访问与突触后神经元相关联的核心的标识(例如,从核心后地址存储316访问),其可以是突触后神经元地址的MSB。在一些实施例中,组件(例如,组件310,在图5中概括示为块582)组合或串接LSB和MSB以生成突触后神经元地址(例如,神经元Na3的地址Aa3)。在一些实施例中,存储器304还接收生成请求302的神经元Na2的ID和/或地址,例如经由复用器530和532。存储器304访问关联的条目并且输出突触权重,这些突触权重经由选择电路534输出(该选择电路例如由信号514控制)。电路534的输出是突触权重(例如,用于从突触前神经元Na2到突触后神经元Na3的尖峰的权重Aa3)。由电路534输出的权重和由块582输出的突触后神经元地址被组合以形成尖峰Sa3、Sa6、Sb2等,例如关于图3也对此进行了论述。
在一些实施例中,由于块560a与从突触前神经元到突触后神经元的前向尖峰相关联,所以块560a在本文中也被称为前向块、FWD块等。
在一些实施例中,块560b接收未加权尖峰请求(例如,图4的请求402),该请求也被称为后到前神经元请求,例如,因为请求402是从突触后神经元(例如,从神经元Na3)到突触前神经元(例如,神经元Na2)的。因为请求402是对于后向尖峰的,所以请求402也被称为BCK请求,并且关联的地址被利用术语“BCK”来标记。
在接收到请求402时,块560b访问连接性存储306(例如,发送生成请求402的神经元Na3的ID和/或地址),基于此,种子数存储312向块560b发送种子数(例如,种子数SNa3-a)。块560b中的逻辑420使用接收到的种子数来生成突触前神经元的地址的LSB。在一些实施例中,要生成的LSB的数目(其与为了对这些生成的LSB的每一者读出关联的突触权重而要向存储器304做出的存储器访问的数目相耦合)由在请求402中接收的稀疏数决定。另外,虽然在图5中没有示出,但块560b还访问与突触前神经元相关联的核心的标识(例如,从核心前地址存储308访问),其可以是突触前神经元地址的MSB。在一些实施例中,组件(例如,组件310,在图5中概括示为块584)组合或串接LSB和MSB以生成突触前神经元地址(例如,神经元Aa2的地址Aa2)。在一些实施例中,存储器304还接收生成请求402的神经元Na3的ID和/或地址,例如经由复用器530和532。存储器304访问关联的条目并且输出突触权重,这些突触权重是经由选择电路534输出的。电路534的输出是突触权重(例如,用于从突触后神经元Na3到突触前神经元Na2的尖峰的权重Aa2)。由电路534输出的权重和由块584输出的突触前神经元地址被组合以形成尖峰Sa2,例如关于图4也对此进行了论述。
在一些实施例中,由于块560b与从突触后神经元到突触前神经元的后向尖峰相关联,所以块560b在本文中也被称为后向块、BCK块等。
在一些实施例中,块560c被称为学习块。在一些实施例中,像神经形态计算系统中通常那样,系统100使用多种手段连续地和/或自适应地学习。这种学习有时可能要求更新存储器304中存储的权重。对存储器304中的权重的更新例如可以经由块560c完成。在一些实施例中,块560c接收学习请求502。在一些实施例中,学习请求502可以包括与更新存储器304中存储的至少一个突触权重相关联的信息。学习请求502也可以包括为其更新权重的突触前和/或突触后神经元的一个或多个地址(在图5中标记为学习地址506)。
在一些实施例中,块560c向存储器304发送学习地址506(例如经由复用器532发送),基于此,存储器304访问要被更新的权重,并且经由电路534输出这些权重(例如,在图5中标记为“旧权重510”)。此外,权重更新电路504生成要对旧权重510做出的变化△w。电路508经由电路534从存储器304接收旧权重510并且还接收权重的变化△w,并且输出更新权重512。写回电路510将更新权重512写回到存储器304,从而完成权重更新操作。
在一些实施例中,电路534可以从存储器304输出权重,作为用于发送到另一神经元的前/后神经元突触权重,或者作为旧权重510。电路534由信号514控制,信号可以是读取/写入选择信号。例如,当存储器304要被读取并且权重将只被从存储器304输出时(例如,当块560a或560b之一活动时),那么权重可以被输出作为用于发送到另一神经元的前/后神经元突触权重。另一方面,当存储器304要被读取并且也要被写入时(例如,在更新权重期间由块560c写入),那么电路534从存储器304输出权重作为旧权重510。
本领域技术人员例如基于本公开的教导可以设想到图5的突触核心204a的各种变化。仅作为示例,复用器530和532可以被组合以形成具有分别来自块560a、560b和560c的三个输入的单个复用器。
如图5中所示,图5的突触核心204a可以在三个阶段520、522和524中实现。块560a、560b和560c可以在前两个阶段520和522中实现,并且块560c的一些操作(例如,写回电路510)可以在第三阶段524中实现。
图6示出了根据一些实施例的其中包括突触核心和神经元的计算机系统或SoC(片上系统)2100。要指出,图6的具有与任何其他图中的元素相同的标号(或名称)的那些元素可按与所描述的相似的任何方式操作或工作,但不限于此。
在一些实施例中,计算设备2100表示适当的计算设备,例如计算平板、移动电话或智能电话、膝上型电脑、桌面型电脑、IOT设备、服务器、机顶盒、具备无线能力的电子阅读器等。将理解,某些组件被概括示出,并且在计算设备2100中没有示出这种设备的所有组件。
在一些实施例中,计算设备2100包括第一处理器2110。本公开的各种实施例也可以在2170内包括网络接口,例如无线接口,从而使得系统实施例可以被包含到无线设备中,例如蜂窝电话或个人数字助理。
在一个实施例中,处理器2110可以包括一个或多个物理设备,例如微处理器、应用处理器、微控制器、可编程逻辑器件或者其他处理装置。处理器2110执行的处理操作包括对其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括关于与人类用户或与其他设备的I/O(输入/输出)的操作、关于电源管理的操作和/或关于将计算设备2100连接到另一设备的操作。处理操作还可以包括关于音频I/O和/或显示I/O的操作。
在一个实施例中,计算设备2100包括音频子系统2120,音频子系统包括与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)组件。音频功能可以包括扬声器和/或耳机输出,以及麦克风输入。用于这种功能的设备可以被集成到计算设备2100中,或者连接到计算设备2100。在一个实施例中,用户通过提供被处理器2110接收和处理的音频命令来与计算设备2100交互。
显示子系统2130表示提供视觉和/或触觉显示来供用户与计算设备2100交互的硬件(例如,显示设备)和软件(例如,驱动器)组件。显示子系统2130包括显示器接口2132,显示器接口包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示器接口2132包括与处理器2110分离来执行与显示有关的至少一些处理的逻辑。在一个实施例中,显示子系统2130包括向用户提供输出和输入两者的触摸屏(或触摸板)设备。
I/O控制器2140表示关于与用户的交互的硬件设备和软件组件。I/O控制器2140可操作来管理作为音频子系统2120和/或显示子系统2130的一部分的硬件。此外,I/O控制器2140例示了用于连接到计算设备2100的附加设备的连接点,通过这些附加设备用户可以与系统交互。例如,可以附接到计算设备2100的设备可以包括麦克风设备、扬声器或立体声系统、视频系统或其他显示设备、键盘或小键盘设备或者用于特定应用的其他I/O设备,例如读卡器或其他设备。
如上所述,I/O控制器2140可以与音频子系统2120和/或显示子系统2130交互。例如,通过麦克风或其他音频设备的输入可以为计算设备2100的一个或多个应用或功能提供输入或命令。此外,取代显示输出,或者除了显示输出以外,可以提供音频输出。在另一示例中,如果显示子系统2130包括触摸屏,则显示设备也充当输入设备,这可以至少部分由I/O控制器2140管理。在计算设备2100上也可以有额外的按钮或开关来提供由I/O控制器2140管理的I/O功能。
在一个实施例中,I/O控制器2140管理诸如加速度计、相机、光传感器或其他环境传感器的设备,或者可以被包括在计算设备2100中的其他硬件。输入可以是直接用户交互的一部分,以及向系统提供环境输入以影响其操作(例如对噪声的过滤,调整显示器以进行亮度检测,对相机应用闪光灯,或者其他特征)。
在一个实施例中,计算设备2100包括电源管理2150,其管理电池电力使用、电池的充电以及与节电操作有关的特征。存储器子系统2160包括用于存储计算设备2100中的信息的存储器设备。存储器可以包括非易失性存储器设备(如果到存储器设备的电力中断,状态不会变化)和/或易失性存储器设备(如果到存储器设备的电力中断,则状态不确定)。存储器子系统2160可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与计算设备2100的应用和功能的执行有关的系统数据(无论是长期的还是暂时的)。在一个实施例中,计算设备2100包括时钟生成子系统2152来生成时钟信号。
实施例的元素也是以用于存储计算机可执行指令(例如,实现本文论述的任何其他过程的指令)的机器可读介质(例如,存储器2160)的形式提供的。机器可读介质(例如,存储器2160)可以包括但不限于闪存、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、相变存储器(PCM)或者适合用于存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可以作为计算机程序(例如,BIOS)被下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)通过数据信号被从远程计算机(例如,服务器)传送到做出请求的计算机(例如,客户端)。
连接性2170包括硬件设备(例如,无线和/或有线连接器和通信硬件)和软件组件(例如,驱动器、协议栈)来使得计算设备2100能够与外部设备通信。计算设备2100可以是分开的设备,例如其他计算设备、无线接入点或基站,以及诸如头戴式装置、打印机或其他设备之类的外设。
连接性2170可以包括多种不同类型的连接性。概括而言,计算设备2100被示出有蜂窝连接性2172和无线连接性2174。蜂窝连接性2172一般指的是由无线载体提供的蜂窝网络连接性,例如经由GSM(全球移动通信系统)或变体或衍生、CDMA(码分多址接入)或变体或衍生、TDM(时分复用)或变体或衍生或者其他蜂窝服务标准提供。无线连接性(或无线接口)2174指的是非蜂窝的无线连接性,并且可以包括个域网(例如,蓝牙、近场等等)、局域网(例如Wi-Fi)和/或广域网(例如WiMax),或者其他无线通信。
外围连接2180包括硬件接口和连接器,以及软件组件(例如,驱动器、协议栈)来进行外围连接。将理解,计算设备2100既可以是其他计算设备的外围设备(“去往”2182),也可以有外围设备连接到它(“来自”2184)。计算设备2100通常具有“扩展坞”连接器来连接到其他计算设备,以便例如管理(例如,下载和/或上传、改变、同步)计算设备2100上的内容。此外,扩展坞连接器可以允许计算设备2100连接到某些外设,这些外设允许计算设备2100控制到例如视听或其他系统的内容输出。
除了专属扩展坞连接器或其他专属连接硬件以外,计算设备2100还可以经由常见的或者基于标准的连接器来进行外围连接2180。常见类型可以包括通用串行总线(USB)连接器(其可以包括多种不同硬件接口中的任何一种)、包括MiniDisplayPort(MDP)的DisplayPort、高清晰度多媒体接口(HDMI)、Firewire或者其他类型。
在一些实施例中,图1-图5中所示的各种组件例如可以被包含在图6的计算设备2100的一个或多个组件中。仅作为示例,突触核心204可以被包括在处理器2110中或者至少部分利用处理器实现。在一些实施例中,上文论述的一个或多个神经元可以被包括在处理器2110中或者至少部分利用处理器实现。
说明书中提及“实施例”、“一个实施例”、“一些实施例”或者“其他实施例”的意思是联系这些实施例描述的特定特征、结构或特性被包括至少一些实施例中,但不一定是所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定全都指的是相同实施例。如果说明书陈述“可”、“可能”或者“可以”包括某一组件、特征、结构或特性,那么并不要求包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一个”或“一种”元素,那么并不意味着只有一个该元素。如果说明书或权利要求提及“附加”元素,那么并不排除有多于一个附加元素。
此外,特定的特征、结构、功能或特性在一个或多个实施例中可以按任何适当的方式被组合。例如,在与两个实施例相关联的特定特征、结构、功能或特性不互斥的任何地方,第一实施例可以与第二实施例相组合。
虽然已结合其特定实施例描述了本公开,但本领域普通技术人员根据前述描述将清楚这种实施例的许多替换、修改和变化。本公开的实施例打算包含落在所附权利要求的宽广范围内的所有这种替换、修改和变化。
此外,为了图示和论述的简单,并且为了不模糊本公开,在给出的附图中可能示出或不示出到集成电路(IC)芯片和其他组件的公知电源/地连接。另外,可能以框图形式示出布置以避免模糊本公开,并且同时也考虑到了如下事实:关于这种框图布置的实现的具体细节是高度取决于在其内实现本公开的平台的(即,这种具体细节应当完全在本领域技术人员的视野内)。在阐述具体细节(例如,电路)以便描述本公开的示例实施例的情况下,本领域技术人员应当清楚,没有这些具体细节,或者利用这些具体细节的变体,也可以实现本公开。从而说明书应当被认为是例示性的,而不是限制性的。
以下示例条款属于进一步实施例。示例条款中的具体细节可用在一个或多个实施例中的任何地方。本文描述的装置的所有可选特征也可以对于方法或过程实现。
条款1.一种神经形态计算系统,包括:突触核心;以及与所述突触核心耦合的突触前神经元、第一突触后神经元和第二突触后神经元,其中所述突触核心用于:接收来自所述突触前神经元的请求,并且响应于所述请求生成所述第一突触后神经元的第一地址和所述第二突触后神经元的第二地址,其中所述第一地址和所述第二地址在接收到所述请求之前未被存储在所述突触核心中。
条款2.如条款1所述的神经形态计算系统,其中,所述突触核心用于:(i)向所述第一突触后神经元的第一地址发送第一加权尖峰,并且(ii)向所述第二突触后神经元的第二地址发送第二加权尖峰。
条款3.如条款1-2的任何一者所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址和所述第二地址:向第一种子数应用有限域数学函数来生成所述第一地址;以及向第二种子数应用所述有限域数学函数来生成所述第二地址。
条款4.如条款1-2的任何一者所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址和所述第二地址:向第一种子数应用有限域数学函数来生成所述第一地址和所述第二地址。
条款5.如条款1-2的任何一者所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址:向种子数应用有限域数学函数来生成所述第一地址的最低有效位(LSB);访问存储以检索所述第一地址的最高有效位(MSB);以及基于所述第一地址的LSB和所述第一地址的MSB生成所述第一地址。
条款6.如条款1-2的任何一者所述的神经形态计算系统,其中,所述第一突触后神经元被包括在所述神经形态计算系统的第一核心中,并且其中所述突触核心通过以下操作来生成所述第一地址:向种子数应用伽罗瓦域函数来生成所述第一突触后神经元在所述第一核心内的标识;访问存储以检索所述第一核心的标识;以及基于所述第一突触后神经元的标识和所述第一核心的标识生成所述第一地址。
条款7.如条款1-6的任何一者所述的神经形态计算系统,其中,所述突触核心:将第一权重与第一尖峰相关联以生成所述第一加权尖峰;并且将第二权重与第二尖峰相关联以生成所述第二加权尖峰。
条款8.如条款7所述的神经形态计算系统,还包括:存储器,用于存储所述第一权重和所述第二权重;以及一个或多个寄存器,用于存储多个种子数,其中所述第一地址和所述第二地址是基于所述多个种子数中的一个或多个种子数生成的。
条款9.如条款8所述的神经形态计算系统,还包括:更新所述存储器中的第一权重和第二权重的电路。
条款10.一种神经形态计算系统的突触核心,该突触核心包括:映射逻辑,用于:(i)接收请求,该请求包括生成所述请求的突触前神经元的标识,(ii)基于所述突触前神经元的标识访问种子数,并且(iii)将所述种子数映射到包括在所述神经形态计算系统的第一核心中的突触后神经元的标识;以及第一存储,用于提供所述第一核心的标识,其中所述突触核心用于:(i)至少部分基于所述突触后神经元的标识和所述第一核心的标识生成所述突触后神经元的地址,并且(ii)向所述突触后神经元的地址发送尖峰。
条款11.如条款10所述的突触核心,其中,所述请求是第一请求,其中所述种子数是第一种子数,并且其中所述映射逻辑用于:接收第二请求,该第二请求包括生成所述第二请求的突触后神经元的标识;基于所述突触后神经元的标识访问第二种子数;并且将所述第二种子数映射到所述突触前神经元的标识。
条款12.如条款11所述的突触核心,其中:所述映射逻辑用于:(i)至少部分利用第一数学函数将所述种子数映射到所述突触后神经元的标识,并且(ii)至少部分利用第二数学函数将所述第二种子数映射到所述突触前神经元的标识,其中所述第二数学函数是所述第一数学函数的逆。
条款13.如条款10-12的任何一者所述的突触核心,其中,所述突触核心用于:在将所述尖峰发送到所述突触后神经元的地址之前将权重关联到所述尖峰。
条款14.如条款13的任何一者所述的突触核心,还包括:存储所述权重的存储器。
条款15.如条款14所述的突触核心,还包括:更新所述存储器中的权重的电路,其中所述电路包括:生成权重的变化的第一电路;从所述存储器读取原始权重的第二电路;基于所述权重的变化和所述原始权重生成更新权重的第三电路;以及将更新权重写入到所述存储器的第四电路。
条款16.如条款10-15的任何一者所述的突触核心,其中:所述请求包括稀疏数;并且所述映射逻辑将所述种子数映射到第一数目的突触后神经元的标识,所述第一数目基于所述稀疏数。
条款17.一种神经形态计算系统,包括:如条款10-16的任何一者所述的突触核心;所述突触前神经元;以及所述突触后神经元。
条款18.一个或多个存储指令的非暂时性计算机可读存储介质,所述指令当被处理器执行时使得所述处理器:接收来自突触前神经元的请求;响应于所述请求生成突触后神经元的地址,其中所述地址在接收到所述请求之前未被存储在包括所述处理器的装置中;并且向所述突触后神经元的地址发送加权尖峰。
条款19.如条款18所述的一个或多个非暂时性计算机可读存储介质,其中,所述指令当被执行时使得所述处理器:向种子数应用有限域数学函数以生成所述地址的第一片段。
条款20.如条款19所述的一个或多个非暂时性计算机可读存储介质,其中,所述指令当被执行时使得所述处理器:访问存储以检索所述地址的第二片段;并且基于所述第一片段和所述第二片段生成所述地址。
条款21.如条款18所述的一个或多个非暂时性计算机可读存储介质,其中,所述指令当被执行时使得所述处理器:向种子数应用伽罗瓦域函数以生成所述突触后神经元的标识,其中所述突触后神经元被包括在神经形态计算系统的核心中;访问存储以检索所述核心的标识;并且基于所述突触后神经元的标识和所述核心的标识生成所述地址。
条款22.如条款18-21的任何一者所述的一个或多个非暂时性计算机可读存储介质,其中,所述指令当被执行时使得所述处理器:将突触权重与尖峰相关联以生成所述加权尖峰。
条款23.一种方法包括:接收来自突触前神经元的请求;在突触核心中响应于所述请求生成突触后神经元的地址,其中所述地址在接收到所述请求之前未被存储在所述突触核心中;并且向所述突触后神经元的地址发送加权尖峰。
条款24.如条款23所述的方法,还包括:向种子数应用有限域数学函数以生成所述地址的第一片段。
条款25.如条款24所述的方法,还包括:访问存储以检索所述地址的第二片段;并且基于所述第一片段和所述第二片段生成所述地址。
条款26.如条款23所述的方法,还包括:向种子数应用伽罗瓦域函数以生成所述突触后神经元的标识,其中所述突触后神经元被包括在神经形态计算系统的核心中;访问存储以检索所述核心的标识;并且基于所述突触后神经元的标识和所述核心的标识生成所述地址。
条款27.如条款26所述的方法,其中所述突触后神经元的标识形成所述地址的最低有效位,并且其中所述核心的标识形成所述地址的最高有效位。
条款28.如条款23-27的任何一者所述的方法,还包括:将突触权重与尖峰相关联以生成所述加权尖峰。
条款29.一个或多个存储指令的非暂时性计算机可读存储介质,所述指令当被处理器执行时使得处理器执行条款23-28的任何一者的方法。
条款30.一种装置,包括:用于执行条款23-28的任何一者的方法的装置。
条款31.一种装置,包括:用于接收来自突触前神经元的请求的模块;用于在突触核心中响应于所述请求生成突触后神经元的地址的模块,其中所述地址在接收到所述请求之前未被存储在所述突触核心中;以及用于向所述突触后神经元的地址发送加权尖峰的模块。
条款32.如条款31所述的装置,还包括:用于向种子数应用有限域数学函数以生成所述地址的第一片段的模块。
条款33.如条款32所述的装置,还包括:用于访问存储以检索所述地址的第二片段的模块;以及用于基于所述第一片段和所述第二片段生成所述地址的模块。
条款34.如条款31所述的装置,还包括:用于向种子数应用伽罗瓦域函数以生成所述突触后神经元的标识的模块,其中所述突触后神经元被包括在神经形态计算系统的核心中;用于访问存储以检索所述核心的标识的模块;以及用于基于所述突触后神经元的标识和所述核心的标识生成所述地址的模块。
条款35.如条款34所述的装置,其中,所述突触后神经元的标识形成所述地址的最低有效位,并且其中所述核心的标识形成所述地址的最高有效位。
条款36.如条款31-35的任何一者所述的装置,还包括:用于将突触权重与尖峰相关联以生成所述加权尖峰的模块。
提供了摘要以允许读者确定技术公开的性质和主旨。摘要是在如下理解下提交的:它不会被用于限制权利要求的范围或含义。特此将所附权利要求并入到详细描述中,其中每个权利要求独立作为单独的实施例。
Claims (25)
1.一种神经形态计算系统,其特征在于,所述神经形态计算系统包括:
突触核心;以及
与所述突触核心耦合的突触前神经元、第一突触后神经元和第二突触后神经元,
其中,所述突触核心用于:
接收来自所述突触前神经元的请求,并且
响应于所述请求生成所述第一突触后神经元的第一地址和所述第二突触后神经元的第二地址,其中,所述第一地址和所述第二地址在接收到所述请求之前未被存储在所述突触核心中。
2.如权利要求1所述的神经形态计算系统,其中,所述突触核心用于:
(i)向所述第一突触后神经元的第一地址发送第一加权尖峰,并且(ii)向所述第二突触后神经元的第二地址发送第二加权尖峰。
3.如权利要求1-2中任一项所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址和所述第二地址:
向第一种子数应用有限域数学函数以生成所述第一地址;以及
向第二种子数应用所述有限域数学函数以生成所述第二地址。
4.如权利要求1-2中任一项所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址和所述第二地址:
向第一种子数应用有限域数学函数以生成所述第一地址和所述第二地址。
5.如权利要求1-2中任一项所述的神经形态计算系统,其中,所述突触核心通过以下操作来生成所述第一地址:
向种子数应用有限域数学函数以生成所述第一地址的最低有效位LSB;
访问存储以检索所述第一地址的最高有效位MSB;以及
基于所述第一地址的LSB和所述第一地址的MSB来生成第一地址。
6.如权利要求1-2中任一项所述的神经形态计算系统,其中,所述第一突触后神经元被包括在所述神经形态计算系统的第一核心中,并且其中,所述突触核心通过以下操作来生成所述第一地址:
向种子数应用伽罗瓦域函数以生成所述第一突触后神经元在所述第一核心内的标识;
访问存储以检索所述第一核心的标识;以及
基于所述第一突触后神经元的标识和所述第一核心的标识来生成所述第一地址。
7.如权利要求2所述的神经形态计算系统,其中,所述突触核心用于:
将第一权重与第一尖峰相关联以生成第一加权尖峰;并且
将第二权重与第二尖峰相关联以生成第二加权尖峰。
8.如权利要求7所述的神经形态计算系统,还包括:
存储器,用于存储所述第一权重和所述第二权重;以及
一个或多个寄存器,用于存储多个种子数,其中,所述第一地址和所述第二地址是基于所述多个种子数中的一个或多个种子数生成的。
9.如权利要求8所述的神经形态计算系统,还包括:
更新所述存储器中的第一权重和第二权重的电路。
10.一种神经形态计算系统的突触核心,其特征在于,所述突触核心包括:
映射逻辑,用于(i)接收请求,所述请求包括生成所述请求的突触前神经元的标识,(ii)基于所述突触前神经元的标识访问种子数,并且(iii)将所述种子数映射到包括在所述神经形态计算系统的第一核心中的突触后神经元的标识;以及
第一存储,用于提供所述第一核心的标识,
其中,所述突触核心用于(i)至少部分基于所述突触后神经元的标识和所述第一核心的标识生成所述突触后神经元的地址,并且(ii)向所述突触后神经元的地址发送尖峰。
11.如权利要求10所述的突触核心,其中,所述请求是第一请求,其中,所述种子数是第一种子数,并且其中,所述映射逻辑用于:
接收第二请求,所述第二请求包括生成所述第二请求的突触后神经元的标识;
基于所述突触后神经元的标识访问第二种子数;并且
将所述第二种子数映射到所述突触前神经元的标识。
12.如权利要求11所述的突触核心,其中:
所述映射逻辑用于(i)至少部分利用第一数学函数将所述种子数映射到所述突触后神经元的标识,并且(ii)至少部分利用第二数学函数将所述第二种子数映射到所述突触前神经元的标识,
其中,所述第二数学函数是所述第一数学函数的逆。
13.如权利要求10-12中任一项所述的突触核心,其中,所述突触核心用于:
在将所述尖峰发送到所述突触后神经元的地址之前,将权重关联到所述尖峰。
14.如权利要求13所述的突触核心,还包括:
存储所述权重的存储器。
15.如权利要求14所述的突触核心,还包括:
更新所述存储器中的权重的电路,其中,所述电路包括:
生成权重的变化的第一电路;
从所述存储器读取原始权重的第二电路;
基于所述权重的变化和所述原始权重生成更新权重的第三电路;以及
将所述更新权重写入到所述存储器的第四电路。
16.如权利要求10所述的突触核心,其中:
所述请求包括稀疏数;并且
所述映射逻辑将所述种子数映射到第一数目的突触后神经元的标识,所述第一数目基于所述稀疏数。
17.一种神经形态计算系统,包括:
如权利要求10-16中任一项所述的突触核心;
所述突触前神经元;以及
所述突触后神经元。
18.一种神经形态计算方法,其特征在于,所述神经形态计算方法包括:
接收来自突触前神经元的请求;
在突触核心中响应于所述请求生成突触后神经元的地址,其中,所述地址在接收到所述请求之前未被存储在所述突触核心中;并且
向所述突触后神经元的地址发送加权尖峰。
19.如权利要求18所述的方法,还包括:
向种子数应用有限域数学函数以生成所述地址的第一片段。
20.如权利要求19所述的方法,还包括:
访问存储以检索所述地址的第二片段;并且
基于所述第一片段和所述第二片段生成所述地址。
21.如权利要求18所述的方法,还包括:
向种子数应用伽罗瓦域函数以生成所述突触后神经元的标识,其中,所述突触后神经元被包括在神经形态计算系统的核心中;
访问存储以检索所述核心的标识;并且
基于所述突触后神经元的标识和所述核心的标识生成所述地址。
22.如权利要求18所述的方法,其中,所述突触后神经元的标识形成所述地址的最低有效位,并且其中,所述核心的标识形成所述地址的最高有效位。
23.如权利要求18-22中任一项所述的方法,还包括:
将突触权重与尖峰相关联以生成所述加权尖峰。
24.一种或多种存储指令的非暂时性计算机可读存储介质,所述指令在被处理器执行时使得所述处理器:
执行如权利要求18-23中任一项所述的方法。
25.一种神经形态计算装置,其特征在于,所述神经形态计算装置包括:
用于执行如权利要求18-23中任一项所述的方法的模块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/392,407 | 2016-12-28 | ||
US15/392,407 US10248906B2 (en) | 2016-12-28 | 2016-12-28 | Neuromorphic circuits for storing and generating connectivity information |
PCT/US2017/062422 WO2018125431A1 (en) | 2016-12-28 | 2017-11-17 | Neuromorphic circuits for storing and generating connectivity information |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110121722A CN110121722A (zh) | 2019-08-13 |
CN110121722B true CN110121722B (zh) | 2024-01-19 |
Family
ID=62625381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780081360.0A Active CN110121722B (zh) | 2016-12-28 | 2017-11-17 | 用于存储和生成连接性信息的神经形态电路 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10248906B2 (zh) |
EP (1) | EP3563303A4 (zh) |
CN (1) | CN110121722B (zh) |
WO (1) | WO2018125431A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713558B2 (en) | 2016-12-30 | 2020-07-14 | Intel Corporation | Neural network with reconfigurable sparse connectivity and online learning |
US11514298B2 (en) * | 2018-10-31 | 2022-11-29 | International Business Machines Corporation | High-frame-rate real-time multiscale spatiotemporal disparity on distributed low-power event-based neuromorphic hardware |
CN110909869B (zh) * | 2019-11-21 | 2022-08-23 | 浙江大学 | 一种基于脉冲神经网络的类脑计算芯片 |
CN111368981B (zh) * | 2020-03-06 | 2021-07-09 | 上海新氦类脑智能科技有限公司 | 减小突触连接的存储面积的方法、装置、设备和存储介质 |
US11562211B2 (en) * | 2020-04-15 | 2023-01-24 | Fujitsu Limited | System local field matrix updates |
CN113313240B (zh) * | 2021-08-02 | 2021-10-15 | 成都时识科技有限公司 | 计算设备及电子设备 |
CN113902106B (zh) * | 2021-12-06 | 2022-02-22 | 成都时识科技有限公司 | 脉冲事件决策装置、方法、芯片及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104240753A (zh) * | 2013-06-10 | 2014-12-24 | 三星电子株式会社 | 突触阵列、脉冲整形电路和神经形态系统 |
CN104641385A (zh) * | 2012-09-14 | 2015-05-20 | 国际商业机器公司 | 神经核心电路 |
CN104854602A (zh) * | 2012-12-03 | 2015-08-19 | Hrl实验室有限责任公司 | 根据突触前神经元的激发生成消息 |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI894021A (fi) * | 1988-08-31 | 1990-03-01 | Fujitsu Ltd | Neuronstruktur. |
US5333239A (en) * | 1988-09-12 | 1994-07-26 | Fujitsu Limited | Learning process system for use with a neural network structure data processing apparatus |
JP4780921B2 (ja) * | 2004-03-17 | 2011-09-28 | キヤノン株式会社 | 並列パルス信号処理装置、及びその制御方法 |
CN101681312B (zh) * | 2008-02-29 | 2012-05-23 | 株式会社东芝 | 存储器系统 |
US8515885B2 (en) | 2010-10-29 | 2013-08-20 | International Business Machines Corporation | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation |
US8812414B2 (en) * | 2011-05-31 | 2014-08-19 | International Business Machines Corporation | Low-power event-driven neural computing architecture in neural networks |
US8712940B2 (en) * | 2011-05-31 | 2014-04-29 | International Business Machines Corporation | Structural plasticity in spiking neural networks with symmetric dual of an electronic neuron |
US8843425B2 (en) * | 2011-07-29 | 2014-09-23 | International Business Machines Corporation | Hierarchical routing for two-way information flow and structural plasticity in neural networks |
US8725662B2 (en) * | 2011-09-21 | 2014-05-13 | Brain Corporation | Apparatus and method for partial evaluation of synaptic updates based on system events |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US9390369B1 (en) * | 2011-09-21 | 2016-07-12 | Brain Corporation | Multithreaded apparatus and methods for implementing parallel networks |
FR2983664B1 (fr) * | 2011-12-05 | 2013-12-20 | Commissariat Energie Atomique | Convertisseur analogique-numerique et circuit neuromorphique utilisant un tel convertisseur |
US8996430B2 (en) * | 2012-01-27 | 2015-03-31 | International Business Machines Corporation | Hierarchical scalable neuromorphic synaptronic system for synaptic and structural plasticity |
US8868477B2 (en) * | 2012-03-29 | 2014-10-21 | International Business Machines Coproration | Multi-compartment neurons with neural cores |
US8924322B2 (en) * | 2012-06-15 | 2014-12-30 | International Business Machines Corporation | Multi-processor cortical simulations with reciprocal connections with shared weights |
US9256823B2 (en) * | 2012-07-27 | 2016-02-09 | Qualcomm Technologies Inc. | Apparatus and methods for efficient updates in spiking neuron network |
US9189729B2 (en) * | 2012-07-30 | 2015-11-17 | International Business Machines Corporation | Scalable neural hardware for the noisy-OR model of Bayesian networks |
US8990130B2 (en) * | 2012-11-21 | 2015-03-24 | International Business Machines Corporation | Consolidating multiple neurosynaptic cores into one memory |
US9239984B2 (en) * | 2012-12-21 | 2016-01-19 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
US8904354B2 (en) * | 2012-12-31 | 2014-12-02 | Ca, Inc. | Rule based syntax software test case generator |
KR20150016089A (ko) * | 2013-08-02 | 2015-02-11 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
US10055434B2 (en) * | 2013-10-16 | 2018-08-21 | University Of Tennessee Research Foundation | Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network |
US9406015B2 (en) * | 2013-12-27 | 2016-08-02 | International Business Machines Corporation | Transform for a neurosynaptic core circuit |
US20150220831A1 (en) * | 2014-02-06 | 2015-08-06 | Qualcomm Incorporated | Short-term synaptic memory based on a presynaptic spike |
US9852006B2 (en) * | 2014-03-28 | 2017-12-26 | International Business Machines Corporation | Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits |
US10102474B2 (en) * | 2014-03-28 | 2018-10-16 | International Business Machines Corporation | Event-based neural network with hierarchical addressing for routing event packets between core circuits of the neural network |
US10115054B2 (en) * | 2014-07-02 | 2018-10-30 | International Business Machines Corporation | Classifying features using a neurosynaptic system |
FR3025344B1 (fr) * | 2014-08-28 | 2017-11-24 | Commissariat Energie Atomique | Reseau de neurones convolutionnels |
DE102014217295A1 (de) | 2014-08-29 | 2016-03-03 | Robert Bosch Gmbh | Imagermodul für eine Fahrzeug-Kamera und Verfahren zu dessen Herstellung |
EP3089080A1 (en) * | 2015-04-27 | 2016-11-02 | Universität Zürich | Networks and hierarchical routing fabrics with heterogeneous memory structures for scalable event-driven computing systems |
US20160358075A1 (en) * | 2015-06-08 | 2016-12-08 | The Regents Of The University Of Michigan | System for implementing a sparse coding algorithm |
US10482372B2 (en) * | 2015-12-23 | 2019-11-19 | Intel Corporation | Interconnection scheme for reconfigurable neuromorphic hardware |
US20170286829A1 (en) * | 2016-04-01 | 2017-10-05 | Intel Corporation | Event-driven Learning and Reward Modulation with Spike Timing Dependent Plasticity in Neuromorphic Computers |
US10360496B2 (en) * | 2016-04-01 | 2019-07-23 | Intel Corporation | Apparatus and method for a digital neuromorphic processor |
CN118468126A (zh) * | 2016-07-17 | 2024-08-09 | Gsi 科技公司 | 在恒定的处理时间内查找k个极值 |
KR102656190B1 (ko) * | 2016-11-24 | 2024-04-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 |
US10713558B2 (en) * | 2016-12-30 | 2020-07-14 | Intel Corporation | Neural network with reconfigurable sparse connectivity and online learning |
US11100385B2 (en) * | 2016-12-30 | 2021-08-24 | Intel Corporation | Scalable free-running neuromorphic computer |
US11062203B2 (en) * | 2016-12-30 | 2021-07-13 | Intel Corporation | Neuromorphic computer with reconfigurable memory mapping for various neural network topologies |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
-
2016
- 2016-12-28 US US15/392,407 patent/US10248906B2/en active Active
-
2017
- 2017-11-17 WO PCT/US2017/062422 patent/WO2018125431A1/en unknown
- 2017-11-17 EP EP17886419.5A patent/EP3563303A4/en active Pending
- 2017-11-17 CN CN201780081360.0A patent/CN110121722B/zh active Active
-
2019
- 2019-03-11 US US16/299,014 patent/US11157799B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104641385A (zh) * | 2012-09-14 | 2015-05-20 | 国际商业机器公司 | 神经核心电路 |
CN104854602A (zh) * | 2012-12-03 | 2015-08-19 | Hrl实验室有限责任公司 | 根据突触前神经元的激发生成消息 |
CN105229675A (zh) * | 2013-05-21 | 2016-01-06 | 高通股份有限公司 | 尖峰网络的高效硬件实现 |
CN104240753A (zh) * | 2013-06-10 | 2014-12-24 | 三星电子株式会社 | 突触阵列、脉冲整形电路和神经形态系统 |
Non-Patent Citations (5)
Title |
---|
[LECTURE NOTES IN COMPUTER SCIENCE * |
LECT.NOTES COMPUTER], SPRINGER, BERLIN》.2016, * |
ZAPATA MIREYA ET AL.《Compact Associative Memory for AER Spike Decoding in FPGA-Based Evolvable SNN Emulation》.《INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING * |
基于脉冲时间依赖可塑性的自适应神经网络抗扰能力研究;陈云芝等;《生物医学工程学杂志》;20150225(第01期);全文 * |
神经系统识别爆发性锋电位序列的机制讨论;刘艳等;《北京师范大学学报(自然科学版)》;20070815(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190205730A1 (en) | 2019-07-04 |
US10248906B2 (en) | 2019-04-02 |
US20180181861A1 (en) | 2018-06-28 |
US11157799B2 (en) | 2021-10-26 |
EP3563303A1 (en) | 2019-11-06 |
WO2018125431A1 (en) | 2018-07-05 |
CN110121722A (zh) | 2019-08-13 |
EP3563303A4 (en) | 2020-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110121722B (zh) | 用于存储和生成连接性信息的神经形态电路 | |
EP3754561A1 (en) | Reconfigurable memory compression techniques for deep neural networks | |
CN102971754B (zh) | 用于神经处理器中的可替代突触权重存储的方法和系统 | |
JP5963315B2 (ja) | シミュレーションを使用して学習されるシナプス重みを用いるニューロモーフィック/シナプトロニック・スパイキング・ニューラル・ネットワークのための方法、デバイス、および回路 | |
US11074496B2 (en) | Providing transposable access to a synapse array using a recursive array layout | |
US11531898B2 (en) | Training of artificial neural networks | |
US20210125048A1 (en) | Neuromorphic package devices and neuromorphic computing systems | |
US10643126B2 (en) | Systems, methods and devices for data quantization | |
US20170286825A1 (en) | Energy-efficient time-multiplexed neurosynaptic core for implementing neural networks spanning power- and area-efficiency | |
US11880226B2 (en) | Digital backed flash refresh | |
US20140344201A1 (en) | Providing transposable access to a synapse array using column aggregation | |
US11437103B2 (en) | Memory cells configured to generate weighted inputs for neural networks | |
US20240232601A1 (en) | Performing processing-in-memory operations related to spiking events, and related methods, systems and devices | |
Lu et al. | NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware | |
CN116129973A (zh) | 一种存内计算方法及电路、半导体存储器和存储结构 | |
Koo et al. | Area-efficient transposable crossbar synapse memory using 6T SRAM bit cell for fast online learning of neuromorphic processors | |
CN111382835A (zh) | 一种神经网络压缩方法、电子设备及计算机可读介质 | |
US20210295144A1 (en) | Variable sensitivity node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |