CN109716364A - 使用延迟因果更新的突触前学习 - Google Patents
使用延迟因果更新的突触前学习 Download PDFInfo
- Publication number
- CN109716364A CN109716364A CN201780056655.2A CN201780056655A CN109716364A CN 109716364 A CN109716364 A CN 109716364A CN 201780056655 A CN201780056655 A CN 201780056655A CN 109716364 A CN109716364 A CN 109716364A
- Authority
- CN
- China
- Prior art keywords
- weighted value
- state
- memory
- morphological state
- time window
- 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
- 230000003518 presynaptic effect Effects 0.000 title claims abstract description 121
- 230000000694 effects Effects 0.000 title claims abstract description 58
- 230000000877 morphologic effect Effects 0.000 claims abstract description 203
- 230000001242 postsynaptic effect Effects 0.000 claims abstract description 130
- 230000001537 neural effect Effects 0.000 claims abstract description 111
- 210000005036 nerve Anatomy 0.000 claims abstract description 108
- 238000003860 storage Methods 0.000 claims abstract description 65
- 230000006870 function Effects 0.000 claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 34
- 230000001364 causal effect Effects 0.000 claims description 40
- 230000036279 refractory period Effects 0.000 claims description 16
- 238000009825 accumulation Methods 0.000 claims description 8
- 230000002829 reductive effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 62
- 238000012545 processing Methods 0.000 description 31
- 238000004422 calculation algorithm Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000013528 artificial neural network Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000014509 gene expression Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 235000013399 edible fruits Nutrition 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000020796 long term synaptic depression Effects 0.000 description 3
- 230000027928 long-term synaptic potentiation Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000036982 action potential Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000007781 signaling event Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Machine Translation (AREA)
Abstract
一种处理器或集成电路包括用于存储多个神经形态状态的权重值的存储器以及耦合至所述存储器的电路系统。所述电路系统用于检测突触前神经形态状态的传入数据信号并且响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口。所述电路系统进一步用于响应于检测到所述时间窗口的结束:从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;并且将所述经更新的权重值存储回至所述存储器。
Description
本公开涉及场神经形态计算,并且具体地涉及能够使用延迟因果更新进行突触前学习的电路。
背景技术
神经元组表示神经形态计算系统中的核心计算块。术语“神经形态”是指被设计用于模拟神经系统中存在的神经生物架构以便部分地克服机器学习系统中的并行计算瓶颈的电子电路系统。这些系统被设计用于处理如图像和声音等传感数据,并且以未专门编程到系统的方式响应数据变化。神经形态计算系统中的“神经元”是由核心计算块更新的神经形态状态(或组神经形态状态),并且包含相关联的存储器,所述存储器有时称为突触或突触存储器。
附图说明
图1是根据本公开的实施例的具有处理器核详细信息的神经形态计算系统的框图。
图2是框图,展示了根据本公开的实施例的使用尖峰时间依赖可塑性(STDP)算法来更新互连神经形态状态。
图3是一系列图示,展示了根据本公开的实施例的应用于权重值的不同学习函数。
图4是图示,展示了典型时间步长的子时段,所述子时段是用于时间更新状态和神经形态状态的权重值的时间段。
图5是框图,展示了标识图1的权重存储器的权重表内的位置的指针表。
图6A、图6B和图6C分别是根据本公开的实施例的在其间执行非因果更新、执行因果和非因果更新以及执行因果更新的时间窗口的框图。
图7A、图7B、图7C和图7D是图示,展示了根据本公开的实施例的两种学习算法随着用于传出数据信号生成的不应期的增大而收敛。
图8是图示,展示了根据本公开的实施例的图7A、图7B、图7C和图7D的两种算法之间的最终权重值的比较。
图9是根据本公开的实施例的用于使用延迟因果更新执行突触前学习的方法的流程图。
图10A是框图,展示了根据一个实施例的有序流水线和寄存器重命名级、乱序发布/执行流水线。
图10B是框图,展示了处理器的微架构,所述处理器可以执行图1的处理器核的操作。
图11展示了处理器的微结构的框图,所述处理器包括用于执行图1的处理器核的至少一些操作的逻辑电路。
图12是根据一种实施方式的计算机系统的框图。
图13是根据另一种实施方式的计算机系统的框图。
图14是根据一种实施方式的芯片上系统的框图。
图15展示了计算系统的框图的另一种实施方式。
图16展示了计算系统的框图的另一种实施方式。
具体实施方式
人工神经网络(ANN)是在生物神经网络(动物的中枢神经系统,特别是大脑)之后建模的处理设备的网络,所述生物神经网络用于估计或近似可能依赖于通常未知的大量输入的函数。ANN可以在层中组织。这些层可以包括一定数量的互连节点,这些互连节点包含激活函数,如以某种顺序触发节点的激活的逻辑。(例如,图像、声音等的)图案可以经由输入层呈现给ANN,所述输入层与一个或多个处理层(在本领域中称为隐藏层)通信,在所述处理层,经由具有例如包括连接权重的加权连接系统完成实际处理。在ANN展开对输入图案的识别时,连接权重是根据学习逻辑定义节点之间的连接的权重值。处理层可以链接至输出层,在所述输出层,将结果输出至输出节点。因此,学习逻辑可以根据应用于输入图案的之前学习修改连接的权重值。在某种意义上,ANN可以通过示例学习,例如,学习基于对象或声音与先前学习的已知对象或声音的相似性识别所述对象或声音。
神经形态计算系统(以下“系统”)根据应用程序和工作负载需求映射不同的ANN拓扑。ANN拓扑是指ANN的节点互连并且数据流动的方式(例如,前馈神经网络、各种径向基函数(RBF)网络等)。为了执行到ANN拓扑的此映射,系统努力调整驱动这些系统的参数,以实现尽可能好的性能。这些参数是指影响神经元内算术计算的各个因素,所述因素确定对神经形态状态的更新。所述系统可以由一系列处理器核(或其他集成电路)构成,以实施ANN拓扑映射的节点。所述处理器核心允许以类似于生物大脑的方式处理学习算法的分布。每个处理器核可以包括一定数量的神经元,每个神经元被表示为一个或多个神经形态状态。因此,为简单起见,神经元在本文中被称为神经形态状态,但是应理解,对于每个神经元可以存在多于一个神经形态状态。
在一个实施例中,系统可以执行基于尖峰时间依赖可塑性(STDP)的学习。STDP是Hebbian学习法的时间非对称形式,所述Hebbian学习法是由突触前和扇出连接的突触后神经形态状态尖峰之间的紧密时间相关性诱导的。扇入和扇出神经形态状态与相邻的神经形态状态有关,对于所述相邻的神经形态状态调整连接权重执行学习。术语“尖峰”与生物系统中的动作电位作类比,是指标识至少一种神经形态状态的数据信号,并且为了便于讨论,在本文中将被称为“数据信号”或仅称为“信号”。突触前神经形态状态是将输出信号发送至通过连接权重加权的其扇出连接的神经形态状态的神经形态状态。突触后神经形态状态是从其扇入连接的神经形态状态(突触前神经形态状态)接收信号和相关联的权重的神经形态状态。如果突触前神经形态状态早于突触后神经形态状态生成信号,则突触前信号诱发突触后神经形态状态的发信号活动的可能性很高,并且因此具有因果关系。相比之下,发生在突触后信号之后的突触前信号具有非因果关系,因为所述突触前信号不导致突触后神经形态状态的发信号活动。
因此,可能成为突触后神经形态状态的刺激的原因的输入更有可能在未来作出贡献,相反不是突触后信号的原因的输入不太可能在未来作出贡献。注意这些相关性构成学习过程。到目前为止,学习算法已经要求双向权重更新,例如,在突触前神经形态状态信号和突触后神经形态状态信号两者的情况下对连接权重的更新。在突触后信号的情况下,如果当前学习时间窗口(以下“时间窗口”)中存在突触前信号,则连接权重的权重值增大,这被称为因果更新。然而,在突触前信号的情况下,如果前一时间窗口中存在突触后信号,则权重值减小,这被称为非因果更新。
因此,例如,对于非因果更新下的突触前神经形态状态,扇出突触后神经形态状态的信息在突触存储器(以下“权重存储器”)中是可用的。然而,由于对反向扇入信息的检索,更复杂的是使扇入突触前神经形态状态的信息对用于因果更新的突触后神经形态状态是可用的。在一个实施例中,在权重存储器中使用存储器密集的交叉阵列,以确保查找用于因果更新的突触前扇入信息的能力。这可能是更加昂贵的方法,特别在稀疏连接的ANN中。例如,在交叉存储器架构中,可以使用行地址水平地以及使用列地址竖直地访问存储器中的位位置。在当前示例中,基于交叉的存储器将包括在一个方向上排序的所有突触前神经形态状态,而所有突触后神经形态状态在另一个方向上排序。需要此许多存储器位置使得存储器更贵并且访问更慢。
为了避免对存储器中用于进行因果更新的反向扇入查找的需求,当前架构提供延迟因果更新以便对用于突触前连接权重的存储器采用前瞻性访问。这可以通过当每个神经形态状态突增时为此神经形态状态定义时间窗口来执行,例如,当针对突触前神经形态状态接收传入数据信号时,以及在针对突触后神经形态状态生成传出数据信号时。在一个实施例中,硬件队列可以用于时间窗口跟踪,例如,其中突触前信号和突触后信号事件在时间窗口内流过所述队列。在一个示例中,时间窗口被时间步长分区。术语“时间步长”是指通过一定数量时钟周期定义的时间段,通常在毫秒时间范围内。在一个实施例中,所述硬件队列可以用一组计数器实施。例如,可以为每个神经形态状态分配计数器,所述计数器在神经形态状态突增时被初始化为起始值,并且可以根据每个时间步长递减,直到在神经形态状态退出时间窗口或再次发信号时被重置为止。
在一个实施例中,进行因果更新时的延迟可以通过在一定数量的时间步长内跟踪时间窗口来执行,并且在其突触前神经形态状态达到时间窗口的结束时执行对扇出突触后神经形态状态的因果更新,而不是在突触前神经形态发信号时执行因果更新。这时,在检查突触前神经形态状态的扇出信息时,已经在时间窗口期间生成的任何突触后信号将成为因果更新的候选。对于这个更新,系统可以存储每个神经形态状态的扇出信息,而不需要对扇入信息的反向查找。此外,在第一信号退出时间窗口之前接收突触前神经形态状态的第二信号时,因果更新可以被立即执行,随后执行非因果更新。当突触前神经形态状态的计数器响应于接收到突触前神经形态状态的第二信号而重置时,此计时和更新顺序可以基于所述突触前神经形态状态的第一传入信号而避免丢失权重更新。
由于可以消除反向查找,因此可以采用基于索引的存储器架构作为交叉存储器架构的替代,例如,在所述基于索引的存储器架构中,突触前神经形态状态相对突触后神经形态状态被索引。如将更加详细讨论的,基于索引的存储器架构促进存储器压缩,在所述存储器压缩中,权重存储器用于现有神经连接,而不是用于不存在的连接。在一个实施例中,可以经由权重存储器中的权重表执行索引。因此,基于索引的架构可以是用于神经形态状态之间的稀疏表示或非系统连接模式的更优化方法,例如,其中每个神经形态状态连接至同一处理器核内的不同数量的神经形态状态。
图1A是根据本公开的实施例的神经形态计算系统100(以下系统100)的框图。系统100可以包括与通信总线104互连的多个处理器核102、102A、102B、…102n。在其他实施例中,处理器核为集成电路或芯片上系统(SoC)。如讨论的,显示的处理器核表示几十个可以用分布式方式联网的处理器核,其中使用此分布式方式映射人工神经网络(ANN)拓扑。在一个实施例中,显示的处理器核102、102A、102B、…102n可以理解为最近的相邻处理器核,并且因此是可能从处理器核的突增神经形态状态发送和接收数据信号的处理器核。因此,来自最近相邻处理器核的神经形态可以构成另一个最近相邻处理器核的扇出或扇入神经形态状态。
在一个实施例中,所述多个处理器核中的处理器核102可以包括一组神经形态状态寄存器110、状态更新器114、权重存储器118、事件队列134、事件历史队列138和权重更新器140。权重存储器118可以包括路由表145、权重表150和指针表160。
神经形态状态寄存器110可以包括多组寄存器,每组神经形态状态(例如,神经元)一组寄存器。在一个示例中,处理器核102可以包括寄存器以及32、64或128组神经形态状态(或一些其他数量的神经形态状态组)更新能力。例如,一组神经形态状态寄存器可以存储一组定义神经元行为的神经形态状态,包括定义所述神经元多频繁地更新,以及使用映射的ANN驱动使用学习算法的其他状态参数。状态参数还可以包括膜电位、计数器值(例如,驱动不应期的计数器值)、控制位、信号阈值和尖峰速率等。不应期是设定数量的时间步长,在所述时间步长期间,神经元无法生成另一个传出数据信号。
在各个实施例中,状态更新器114可以在时间步长期间执行对一组神经形态状态的状态参数的更新,并且然后执行发信号对涉及活动(无论是突触前发信号还是突触后发信号)的其他神经形态状态组的旋转更新。在一些情况下,状态参数的更新可以涉及存储在权重存储器118中的连接权重。
事件队列134可以是处理器核102的输入/输出接口的一部分。事件队列134可以包括硬件存储器缓冲器等以便在处理器核之间转变时缓冲传入数据信号和传出数据信号。
事件历史队列138可以包括用于在跟踪每个神经形态状态的时间窗口时使用的硬件。例如,在接收突触前神经形态状态的传入数据信号时或者在生成突触后神经形态状态的传出数据信号时,可以启动时间窗口。在一个实施例中,事件历史队列138被实施为一系列先入先出(FIFO)缓冲器或其他类型的硬件缓冲器。在另一个实施例中,使用如一组计数器等计时器实施事件历史队列138。例如,可以为每个神经形态状态(或神经形态状态组)分配计数器,所述计数器在神经形态状态生成信号时被初始化为起始值,并且可以根据每个时间步长递减,直到在神经形态状态退出时间窗口或再次发信号时被重置为止。跟踪神经形态状态的互连(例如,扇入连接或扇出连接)信号的计时确保在突触前信号的时间窗口结束时执行延迟的因果更新的能力。
权重更新器140是学习单元,所述学习单元执行对突触前神经形态状态与连接的突触后神经形态状态之间的连接权重的权重值的更新,并将那些权重值存储回至权重存储器118。在一个实施例中,权重更新器140可以采用如参照图2所展示的尖峰时间依赖可塑性(STDP)算法,但是也设想了其他学习算法。由于STDP的位置性质,使用STDP可以对神经形态系统特别有吸引力:权重调整使用相邻神经形态状态的信息。STDP依赖于突触前尖峰事件与突触后尖峰事件之间的相对时间差,通过所述时间差来调整神经形态状态之间的突触权重值。
在一个STDP公式中,权重更新的量级取决于信号之间的时间差以及权重的当前值。为了简单起见,STDP的数字神经形态实现通常考虑原始STDP的变体,其中,权重更新只是时间差的函数。图3展示了可以在数字神经形态系统中实施的三个STDP内核,其中,STDP内核是应用于更新连接权重的权重值的粒度的学习函数。在三种学习函数中,因果事件(当突触前信号先于突触后信号时)产生权重增大,而非因果事件(当突触后信号先于突触前信号时)产生权重减小。虽然在大多数当前STDP学习系统中存在约定,但是设想约定反转(在增大与减小权重值之间)。
另外参照图2,为了说明STDP如何在有限系列的神经形态状态中发挥作用,存在具有相关联的第一权重存储器218A的第一神经形态状态206A、具有相关联的第二权重存储器218B的第二神经形态状态206B以及第三神经形态状态206C。如所展示的,第一神经形态状态206A通过第一权重存储器218A连接至第二神经形态状态206B,并且第三神经形态状态206C通过第二权重存储器218B连接至第二神经形态状态206B。
在STDP算法的实施方式中,在突触后发信号事件前几毫秒的突触前信号(例如,储存前信号)到达导致突触的长时程增强(LTP),其中,连接被增强。如上文所述,“突触”是指权重存储器的一部分,并且“突触的”是指神经形态权重相对于其连接的神经形态状态的位置。例如,第二神经形态状态206B充当对第三神经形态状态206C的突触前神经形态状态,而所述第二神经形态状态206B充当对第一神经形态状态206A的突触后神经形态状态。此外,发生在突触后信号之后的突触前信号到达导致相同突触的长时程抑制(LTD),其中,连接被弱化。
因此,例如,如果在第二神经形态状态206B在时间t0+2处生成传出数据信号之前第一神经形态状态206A在时间零(t0)处生成传出数据信号,则第一神经形态状态206A将使第二神经形态状态206B例如可能在t0+1处生成传出数据信号的概率很高。这个操作序列称为LTP。相反,如果在第二神经形态状态206B生成传出数据信号之前第三神经形态状态206C生成传出数据信号,则第二神经形态状态206B不导致第三神经形态状态206C生成其传出数据信号。这个操作序列称为LTD。作为突触前动作电位和突触后动作电位的相对计时的函数的存储器权重值变化被称为STDP函数或学习窗口。STDP函数随生成信号的相对计时的快速变化表示毫秒时间尺度上的时间编码方案的概率。时间编码是指存储更多信息以在信号计时时传输。例如,输入可以通过精确信号时间而不是表示此输入所需要的信号数量定义。在这种情况下,STDP在实施为学习算法上更有用。
进一步参照图1,例如,权重更新器140可以更新针对所连接突触后神经形态状态从权重存储器118检索的权重值,并且使用该STDP算法将所述权重值存储回至权重存储器。虽然可以采用忆阻器和相变存储器,但是权重存储器118也可以采用表示神经形态状态之间的“虚拟”突触连接的数字随机存取存储器(RAM)。这些虚拟连接可以由两个表构成:路由表(RT)145和权重表(WT)150。
在一个实施中,路由表145可以用于存储新生成的信号的目的地址,所述目的地址指示生成的信号应该被递送至哪些核输入。此外,权重表150可以包括输入信号(来自其他突触后神经形态状态)与其在处理器核102中的目的突触后神经形态状态之间的突触连通性和强度对。最后,通过在每个处理器核内以特定的方式组织权重表,可以获得不同神经形态架构。最直接的表现是借助于交叉架构,在所述交叉架构中,所有进入突触前神经形态状态连接至处理器核中的所有突触后神经形态状态。然而,如将要讨论的,当在神经形态状态(例如,每个神经形态状态连接至同一处理器核内的不同数量的神经形态状态)之间处理稀疏表示或非系统连接模式时,更优化的解决方案可能是使用基于索引的架构。
突触后神经形态状态产生的信号根据核的路由表145被递送至其目的地(系统100中相同的处理器核或另一个处理器核上)。在目的处理器核处,传入信号由其输入之一接收(例如,通过通信总线104),所述输入进而经由权重表150连接至处理器核中的突触后神经形态状态。因此,每个处理器核输入线在神经学术语中可以被解释为轴突,能够经由突触连接与同一处理器核中的多个突触后神经形态状态通信。
神经形态计算系统100可以以离散时间步长进操作,所述时间步长中的每一个都由足够执行对神经形态状态的状态和权重更新的时钟周期定义。这些时间步长可以是大约毫秒,这类似于生物神经形态状态的处理时间尺度。在时间步长发生时,处理器核处理已经接收信号的输入,例如,基于事件的处理。类似地,没有接收信号的输入被跳过,以减少处理时间和功耗。参照图4,每个时间步长可进一步拆分为子时段,所述子时段包括非因果更新时段、非因果更新时段之后的传出数据信号累积时段(标记为“评估神经元”)和传出数据信号累积时段之后的因果更新时段。以这种方式,因果更新可以被强加到时间步长的后一部分,而非因果更新则被强迫在朝向时间步长开始(时间向左移动)时发生,并且信号可以在这两者之间的时间内累积。权重更新器140可以通过将连接权重的相关联的权重值加在一起来执行对突触前神经形态状态的传入数据信号的累积,所述权重值可以用于更新在时间窗口期间发信号的突触后神经形态权重的权重值。
权重表150中存储器的组织定义核心存储器架构的类型。两个基本架构为:基于交叉的存储器和基于索引的存储器。在交叉存储器架构中,输入与突触后神经形态状态之间的每个连接在存储器中具有预留空间,即使在给定的ANN中没有使用所述连接。对于非常密集的网络,可以优选交叉存储器架构。另一方面,对于神经形态状态之间的某些连接不存在(例如,权重为零并且在STDP学习后将保持这种方式)的稀疏网络,或者对于要求每个神经形态状态具有不同扇出连接的拓扑,基于索引的架构可能是更好的解决方案。
图5是框图,展示了标识图1的权重存储器118的权重表150内的位置的指针表160。权重表150可以包括沿着行的A突触前神经形态(j)和沿着列的B突触后神经形态(i),用连接权重值(Wi,j)索引,尽管行与列之间的约定可以在另一实施例中反转。可以压缩存储在基于索引的架构的权重存储器中的数据,从而使得仅使用针对ANN中存在的连接的权重表存储器。类似地,ANN中不存在的连接不需要在权重存储器中占用存储器。然而,为了提供此灵活性,指针表160被包括并且与权重表150相关联。指针表160可以包含针对每个核输入的指针,例如以便指示权重表150中的突触前神经形态状态权重值的起始位置。图5中的权重表150例示了基于索引的权重存储器118,其中,A突触前输入是针对B相应突触后神经形态状态索引的。例如,注意,第一突触前输入指针具有指示权重表150的第一行中的权重值位置的线,而第二突触前输入具有指示权重表150第二(或随后)行中的权重值位置的线。
在一个实施例中,神经形态计算系统100可以使用任一类型的存储器架构:基于交叉或基于索引。为了实施,编译由系统100执行的代码的编译器基于处理器核参数和正被映射的ANN拓扑高效地选择优选架构,假设硬件的存在能够实现两种类型的存储器访问。交叉方法可以具有能够实现反向查找的优势,所述反相查找与原始STDP算法一起使用。然而,使用基于索引的方法,许多ANN网络被更高效地映射,所述方法仅访问正向连接。因此,如将看到的,STDP的当前实施方式可以使用此正向映射实现,并且仍然产生几乎与原始算法的结果相同的结果。
用于执行STDP的基于交叉的存储器架构和基于索引的存储器架构的一个方面是处理器核具有关于突触前神经形态状态信号时间的信息:传递至处理器核中的输入的事件携带关于突触前神经形态状态的时间信息,所述信息独立于突触前神经形态状态在系统中的位置。这个特征为STDP算法提供了突触后和突触前神经形态状态的信号时间的知识。在处理器核102中,这可以通过包括针对每个突触前神经形态状态输入和每个扇出突触后神经形态状态的表示前面讨论的时间窗口的STDP计时器来实现。如前面所讨论的,STDP计时器可以例如用一组计数器实施,所述计数器同样实施处理器核102的事件历史队列130。可以在来自突触前神经形态状态的信号达到时初始化突触前(输入)计数器,同时可以在突触后神经形态状态生成新传出信号时初始化突触后计数器。如果因果时间窗口和非因果窗口不是对称的,则计数器的起始值可以被设定为两个窗口中较长的窗口。在系统100的每个时间步长处,计数器可以递减直到达到零(或者在特定窗口是两者中的较短者时,大于零的值),或者直到神经形态状态再次发信号。针对每个神经形态状态使用计数器的此实施方式实现虑最新的信号事件的最近相邻STDP学习规则。
图6A、图6B和图6C分别是根据本公开的实施例的在其间执行非因果更新、执行因果和非因果更新以及执行因果更新的时间窗口的框图。在传统STDP算法中,每当突触后神经形态状态生成信号时,都会立即执行因果权重更新。然而,只有通过知道特定突触后神经形态状态连接至的所有突触前神经形态状态(例如,通过能够执行对权重存储器中的连接表的反向查找访问),这才是有可能的。如图6C中所示出的,由于基于索引的存储器架构仅访问正向连接,因此可能会延迟因果更新,直到突触前计数器将要到期。以这样的方式,在通过其计数器跟踪的突触前时间窗口的起始或结束处执行权重更新。如图6A中所示出的,本文提出的方法在突触前尖峰的开始处执行非因果权重更新。这导致简化的信号时间存储,并且通过对因果和非因果更新使用同一STDP窗口减少存储器需求。
进一步参照图6A、图6B和图6C,突触前输入(前1(prel))的事件历史队列138在顶行中表示,而同一处理器核102中的所有突触后神经形态状态(后(post))的事件历史队列138在底行中表示。底行信号下方的索引(n1,n2,...n8)表示突触后神经形态状态地址。所公开的STDP学习规则的算法可以如下总结。参照图6A,当新突触前输入信号达到时,权重更新器140执行非因果权重更新。参照图6B,如果在此相同突触前输入接收新信号时突触前计数器还没有到期,则权重更新140执行因果权重更新,随后是非因果更新。并且,参照图6C,当突触前计数器到期时,权重更新器140执行因果权重更新。
在更特殊的情况下,并且进一步参照图6A,在突触前输入(前1)处的新事件发生时,权重更新器140通过使用正向查找(例如,针对n1、n2、n3)扫掠权重表150中输入突触前神经形态状态的条目并更新在前一(例如,非因果)时间窗口中发信号的所有其突触后神经形态状态之间的权重值来执行非因果更新。当使用计数器时,可以通过检查哪个扇出突触后神经形态状态当前计数器大于零来确定在前一时间窗口中发信号的那些状态。
然而,如图6B中所展示的,如果突触前神经形态状态(前1)的计数器大于零并且突触前神经形态状态再次发信号,则权重更新器140可以首先在前1(旧)后发信号的突触前神经形态状态与突触后神经形态状态(例如,在地址n3、n4、n5处)之间执行因果更新,随后是对在突触前神经形态状态的第二传入信号前1(新)前发信号的后神经形态状态的非因果更新。图6C所示出的因果更新以类似的方式发生于例如突触前神经形态状态信号之后的突触后神经形态状态的连接权重,除了在突触前神经形态状态的计数器将要到期时计时(例如,当计数器等于一(“1”)时,将离开时间窗口)。
因此,由于因果权重更新发生在突触前计数器的末端,例如,在计数器到期之前,因此所提出的方法延迟因果权重更新。但是,对学习规则的收敛的这种影响可以通过选择足够小的学习速率来调节。总之,在突触前输入事件已经进入时间窗口并且随后是突触后尖峰的情况下,在突触前输入计数器即将到期之前,输入和这种神经形态状态之间不应发生更新。然而,如果在计时器大于零时,突触后神经形态状态再次发信号,则当其计数器重新初始化时,“旧”突触后尖峰将被新的突触后尖峰覆盖。通过这个动作,突触前输入与第一(例如,最邻近的)突触后尖峰的因果更新将丢失。
仍然对快速发信号的突触后神经形态状态执行最邻近因果更新的相当昂贵的解决方案是搜索每个突触前输入,所述突触前输入具有大于零但小于感兴趣的突触后神经形态状态的时间窗口的计数器。针对这些输入中的每一个搜索权重表150以验证它们是否连接至特定突触后神经形态状态可能是耗时的。这种情形下最差的时间花费是“突触前神经形态状态输入的数量”乘以“扇出突触后神经形态状态的数量”。一个更客观的解决方案是当考虑单个突触前信号不应与非常频繁地发信号的突触后神经形态状态具有强因果关系时,忽略这些更新。如将在所获得的结果中讨论的,这个方案确实可以被考虑。另一种解决方案可以是将系统100中的神经形态状态的不应期设置为由时间窗口定义的至少一定数量的时间步长的时段。所述不应期是由针对任何给定神经形态状态生成传出数据信号之间的最小时间步长数量定义的。因此,这将阻止爆发行为,并且神经形态状态在时间窗口期间将不能发信号超过一次。
为了验证所公开的STDP变体算法,出于测试目的,采用在Xilinx Spartan-6 FPGA上以1毫秒(ms)时间步长操作的64-输入乘64-神经元核。选择仿真参数以匹配具有生物尺度的参数。图3中展示的反对称斜坡STDP内核被使用于学习,其中,因果和非因果时间窗口Tstdp各自为20ms并且每个和最大(Δw)=1。4096九位权重被初始化为值零(“0”)。信号速率为10Hz且不应期Tref在5ms与20ms之间变化的泊松尖峰训练用于外部地产生突触前信号和突触后信号。系统100运行60秒,之后从FPGA 78A、7B、7C和7D获得的权重值展示使用原始算法(上标绘线)和公开提出的方法(下标绘线)对具有不同不应期的单个突触训练的演变。图7B、图7C和图7D展示了随着不应期接近因果和非因果窗口的持续时间,两种算法都会收敛。
在运行系统后使用Tref=5ms持续60秒,还比较了两种算法产生的最终权重值。在图8中,细点807表示由原始STDP算法(wo)产生的权重对(wo;wp)对由FPGA(wp)产生的权重对。虚线803是理想的情境,在所述理想情境下两种方法都匹配。图8展示了所公开的方法产生稍微更负的权重,因为没有对FPGA实施方式中连续不断发信号的突触后神经形态状态执行最邻近因果更新。然而,如图8中的直方图811所示,在理想情况与所公开的方法之间具有较小差的最终权重更加频繁,并且很少出现具有大于-3的差的最终权重。
图9是根据本公开的实施例的用于使用延迟因果更新执行突触前学习的方法的流程图900。方法900可以由如图1的处理器核102等处理器或者由集成电路或芯片上系统(SoC)执行。在一个实施例中,处理器核102是支持多线程化(执行并行的两组或更多组操作或线程)的核,并且可以以各种方式来完成所述多线程化,所述各种方式包括时分多线程化、同步多线程化(其中,单个物理核为物理核正同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后如超线程化技术中的同步多线程化)。
方法900可以以处理器核检测突触前神经形态状态的传入数据信号(904)开始。所述方法可以继续处理器核响应于检测到传入数据信号而启动突触前神经形态状态的时间窗口(908)。启动时间窗口可以例如通过将计数器设置为起始值来执行。方法900可以继续处理器核判定时间窗口是否结束(912)。当计数器等于一并且因此在时间窗口的最终时间步长处时,可以作出此判定。如果答案为是,则方法900可以继续处理器核标识已经在时间窗口期间生成传出数据信号的扇出突触后神经形态状态(916)。可以通过确定相关联的计数器为非零的神经形态状态来进行标识。方法900可以继续处理器核从权重存储器中检索所标识的突触后神经形态状态的权重值(920)。方法900可以继续处理器核根据学习函数(如图3中所展示的)对权重值执行因果更新以生成经更新的权重值(924)。方法900可以继续处理器核将经更新的权重值存储回至存储器(928)。针对在时间段期间生成传出数据信号的附加后神经形态状态可以重复方法900的框916至框928。然而,在一个实施例中,如果后神经形态状态在数据信号期间生成第二传出数据信号,则方法900可以忽略此第二传出数据信号。
在框912处,响应于尚未到达时间窗口的结束,方法900可以继续处理核判定是否检测到突触前神经形态状态的第二传入数据信号(930)。如果答案为否,则方法900可以循环回至框912,并且继续监测时间窗口的结束。如果答案为是,则方法900可以继续处理器核确定已经从时间窗口的起始开始生成传出数据信号的扇出突触后神经形态状态(934)。方法900可以继续处理器核从权重存储器中检索所标识的突触后神经形态状态的权重值(938)。方法900可以继续处理器核根据学习函数对权重值执行因果更新以生成经更新的权重值(946)。方法900可以继续处理器核接下来根据学习函数对经更新的权重值执行非因果更新以生成经两次更新的权重值(946)。方法900可以继续处理器核将经两次更新的权重值存储回至权重存储器(950)。针对在时间段期间生成传出数据信号的附加后神经形态状态可以重复框934至框960。然而,在一个实施例中,如果后神经形态状态在数据信号期间生成第二传出数据信号,则方法900可以忽略此第二传出数据信号。
图10A是框图,展示了处理器1000的微架构,所述处理器用于执行图1的处理器核102、102A、102B、…102n的操作。具体地,根据本公开的至少一个实施例,处理器1000描绘了待包括在处理器中的有序架构核和寄存器重命名逻辑、乱序发布/执行逻辑。可以通过处理器1000实施图1处理器核102的实施例。
处理器1000包括耦合至执行引擎单元1050的前端单元1030,且二者都耦合至存储器单元1070。处理器1000可以包括精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或可替代核类型。作为又另一选项,处理器1000可以包括专用核,诸如,例如,网络或通信核、压缩引擎、图形核等。在一个实施例中,处理器1000可以是多核处理器,或可以是多处理器系统的一部分。
前端单元1030包括耦合至指令高速缓存单元1034的分支预测单元1032,所述指令高速缓存单元耦合至指令转换后备缓冲器(TLB)1036,所述指令转换后备缓冲器耦合至指令取出单元1038,所述指令取出单元耦合至解码单元1040。解码单元1040(也称为解码器)可以对指令进行解码并且生成从原始指令中解码出的、或以其他方式反映原始指令或从原始指令衍生出的一个或多个微运算、微代码入口点、微指令、其他指令或其他控制信号作为输出。解码器1040可以使用各种不同的机制来实施。合适机制的示例包括但不限于:查找表、硬件实施方式、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。指令高速缓存单元1034进一步耦合至存储器单元1070。解码单元1040耦合至执行引擎单元1050中的重命名/分配器单元1052。
执行引擎单元1050包括耦合至引退单元1054的重命名/分配器单元1052以及一组一个或多个调度器单元1056。(多个)调度器单元1056表示任何数量的不同调度器,包括保留站(RS)、中央指令窗等。(多个)调度器单元1056耦合至(多个)物理寄存器堆单元1058。(多个)物理寄存器堆单元1058中的每一个表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一个或多个不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点等,状态(例如,作为有待执行的下一指令的地址的指令指针)等。(多个)物理寄存器堆单元1058与引退单元1054重叠以展示可以实施寄存器重命名和乱序执行的各种方式(例如,使用(多个)重排序缓冲器和(多个)引退寄存器堆;使用(多个)未来堆、(多个)历史缓冲器、以及(多个)引退寄存器堆;使用寄存器映射和寄存器池等)。
通常,架构寄存器从处理器的外部或从程序员的角度来看是可见的。寄存器不限于任何已知具体类型的电路。各种不同类型的寄存器是合适的,只要它们能够存储和提供如本文所描述的数据即可。合适的寄存器的示例包括,但不限于,专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。引退单元1054和(多个)物理寄存器堆单元1058耦合至(多个)执行集群1060。(多个)执行集群1060包括一组一个或多个执行单元1062以及一组一个或多个存储器存取单元1064。执行单元1062可以执行各种运算(例如,移位、加法、减法、乘法)并对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)进行操作。
虽然一些实施例可以包括专用于具体功能或功能集合的一定数量的执行单元,但是其他实施例可以只包括一个执行单元或包括全都执行全部功能的一定数量的执行单元。(多个)调度器单元1056、(多个)物理寄存器组单元1058、以及(多个)执行集群1060被示出为可能为多个,因为一些实施例针对一些数据/操作类型创建了单独的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线、和/或各自具有其自身的调度器单元、(多个)物理寄存器组单元和/或执行集群的存储器存取流水线,并且在为单独的存储器存取流水线的情况下,实施了其中只有所述流水线的执行集群具有(多个)存储器访问单元1064的某些实施例)。还应当理解,在使用单独的流水线的情况下,这些流水线中的一者或多者可以是乱序发布/执行流水线,并且其余的是有序流水线。
所述一组存储器访问单元1064耦合至存储器单元1070,举几个示例,所述存储器单元可以包括数据预取器1080、数据TLB单元1072、数据高速缓存单元(DCU)1074、以及2级(L2)高速缓存单元1076。在一些实施例中,DCU 1074也被称为第一级数据高速缓存(L1高速缓存)。DCU 1074可以处置多个未解决的高速缓存未命中并且继续为进入的存储和加载提供服务。它还支持保持高速缓存一致性。数据TLB单元1072是用于通过映射虚拟和物理地址空间来提高虚拟地址转换速度的高速缓存。在一个示例性实施例中,存储器访问单元1064可以包括各自耦合至存储器单元1070中的数据TLB单元1072的加载单元、存储地址单元、以及存储数据单元。L2高速缓存单元1076可以耦合至一个或多个其他级的高速缓存并且最终耦合至主存储器。
在一个实施例中,数据预取器1080通过自动预测程序将要消耗哪个数据来推测性地将数据加载/预取到DCU 1074。预取可以指在处理器实际需求数据之前将存储在存储器层级(例如,较低级高速缓存或存储器)的一个存储器位置(例如,位置)中的数据传送到更靠近(例如,得出较低访问等待时间)处理器的较高级存储器位置。更具体地,预取可以指在处理器发出对正在返回的具体数据的需求之前将数据从较低级的高速缓存/存储器中的一个提前检索到数据高速缓存和/或预取缓冲器。
处理器1000可以支持一个或多个指令集(例如,x86指令集(具有已经添加了较新版本的一些扩展);英国赫特福德郡金斯兰利的想象技术公司(ImaginationTechnologies)的MIPS指令集;加利福尼亚州桑尼维尔的ARM控股公司的ARM指令集(具有可选的附加扩展,比如NEON)。
应当理解,核可以支持多线程化(执行并行的两组或更多组操作或线程),并且可以以各种方式来完成所述多线程化,所述各种方式包括时分多线程化、同步多线程化(其中,单个物理核为物理核正同步多线程化的线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后比如超线程化技术中的同步多线程化)。
虽然在乱序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。然而处理器的所示实施例还包括分开的指令和数据高速缓存单元和共享的L2高速缓存单元,但替代性实施例可以具有用于指令和数据两者的单个内部高速缓存,例如1级(L1)内部高速缓存、或多级内部高速缓存。在一些实施例中,所述系统可以包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。可替代地,所有高速缓存都可以在核和/或处理器的外部。注意,指令高速缓存单元1034、数据高速缓存单元1074和L2高速缓存单元1076通常不实施本公开中描述的过程,因为这些高速缓存单元通常使用不显示页面位置行为的管芯上存储器。
图10B是框图,展示了根据本公开的一些实施例的由图10A的处理器1000实施的有序流水线和寄存器重命名级、乱序发布/执行流水线。图10B中的实线框展示了有序流水线,而虚线框展示了寄存器重命名、无序发布/执行流水线。在图10B中,处理器流水线1000包括取出级1002、长度解码级1004、解码级1006、分配级1008、重命名级1010、调度(也称为分派或发布)级1012、寄存器读取/存储器读取级1014、执行级1016、回写/存储器写入级1018、异常处理级1022以及提交级1024。在一些实施例中,级1002至1024的排序可以与所示的不同,并且不限于图10B中所示的具体排序。
图11展示了根据一个实施例的处理器1100的微结构的框图,所述处理器包括可以用于执行图1的处理器核102、102A、102B、…102n的操作的逻辑电路。在一些实施例中,可以实施根据一个实施例的指令来对具有字节、字、双字、四字等大小以及如单精度和双精度整数和浮点数据类型等数据类型的数据元素进行操作。在一个实施例中,有序前端1101是处理器1100的取出待执行的指令并将其准备于之后在处理器流水线中使用的那一部分。在处理器1100中可以实施页添加和内容复制的实施例。
前端1101可以包括若干个单元。在一个实施例中,指令预取器1116从存储器取出指令并将其馈送给指令解码器1118,所述指令解码器进而对这些指令进行解码或解释。例如,在一个实施例中,解码器将接收到的指令解码成机器可以执行的称为“微指令”或“微运算”(也称为微op或uop)的一个或多个运算。在其他实施例中,根据一个实施例,解码器将指令解析为运算码和相应的数据以及被微架构用于执行运算的控制字段。在一个实施例中,跟踪高速缓存1130采用经解码的uop并且将其汇编为程序有序序列或在uop队列1134中跟踪以用于执行。当跟踪高速缓存1130遇到复杂指令时,微代码ROM(或RAM)1132提供完成运算所需的uop。
一些指令被转换为单个微op,而其他指令需要若干个微op来完成完整的运算。在一个实施例中,如果完成指令需要多于四个微op,则解码器1118访问微代码ROM 1132以执行指令。对于一个实施例,指令可以被解码成用于在指令解码器1118处理的少量的微op。在另一实施例中,如果需要一定数量的微op来完成运算,则指令可以存储在微代码ROM 1132中。跟踪高速缓存1130引用入口点可编程逻辑阵列(PLA),以确定用于从微代码ROM 1132读取微代码序列的正确微指令指针以便根据一个实施例完成一个或多个指令。在微代码ROM1132完成用于指令的排序微op之后,机器的前端1101从跟踪高速缓存1130重新取出微op。
乱序执行引擎1103是指令准备执行的地方。乱序执行逻辑具有一定数量的缓冲器,所述一定数量的缓冲器用于使指令流平滑并重新排序以在指令流顺着流水线进行并被调度用于执行时优化性能。分配器逻辑分配每个uop执行所需的机器缓冲器和资源。寄存器重命名逻辑将逻辑寄存器重命名到寄存器堆中的条目上。在以下指令调度器前面,分配器还为两个uop队列(一个用于存储器运算,一个用于无存储器运算)之一中的每个uop分配条目:存储器调度器、快速调度器1102、慢速/通用浮点调度器1104和简单浮点调度器1106。uop调度器1102、1104、1106基于其依赖输入寄存器运算数源的准备状态以及uop完成其运算所需的执行资源的可用性来确定uop何时准备好执行。一个实施例的快速调度器1102可以在主时钟周期的每一半上进行调度,而其他调度器可以仅在每个主处理器时钟周期调度一次。调度器仲裁分派端口以调度uop用于执行。
寄存器堆1108、1110位于调度器1102、1104、1106与执行块1111中的执行单元1112、1114、1116、1118、1120、1122、1124之间。存在分开的寄存器堆1108、1110,分别用于整数运算和浮点运算。一个实施例的每个寄存器堆1108、1110还包括旁路网络,所述旁路网络可以绕过或转发尚未被写入到寄存器堆中的已完成结果到新的依赖uop。整数寄存器堆1108和浮点寄存器堆1110还能够与其他寄存器堆进行数据通信。对于一个实施例,整数寄存器堆1108被分成两个单独的寄存器堆,一个寄存器堆用于数据的低顺序32位,而第二寄存器堆用于数据的高顺序32位。一个实施例的浮点寄存器堆1110具有128位宽的条目,因为浮点指令通常具有宽度为从64位至128位的操作数。
执行块1111包含实际上执行指令的执行单元1112、1114、1116、1118、1120、1122、1124。这个部分包括寄存器堆1108、1110,所述寄存器堆存储微指令需要执行的整数和浮点数据操作数值。一个实施例的处理器1100由一定数量的执行单元组成:地址生成单元(AGU)1112、AGU 1114、快速ALU 1116、快速ALU 1118、慢速ALU 1110、浮点ALU 1112、浮点移动单元1114。对于一个实施例,浮点执行块1112、1114执行浮点、MMX、SIMD和SSE、或其他运算。一个实施例的浮点ALU 1112包括用于执行除法、平方根和余数微op的64位乘64位浮点除法器。对于本公开的实施例,涉及浮点值的指令可以用浮点硬件来处置。
在一个实施例中,ALU运算前往高速ALU执行单元1116、1118。一个实施例的快速ALU 1116、1118可以以半个时钟周期的有效等待时间执行快速运算。对于一个实施例,大多数复杂整数运算前往慢速ALU 1120,因为慢速ALU 1120包括用于长等待时间类型的运算的整数执行硬件,诸如乘法、移位、标志逻辑、以及分支处理。存储器加载/存储操作由AGU1122、1124执行。对于一个实施例,在对64位数据操作数执行整数运算的上下文中描述了整数ALU 1116、1118、1120。在其他实施例中,ALU 1116、1118、1120可以被实施为支持包括16、32、128、256等的各种数据位。类似地,浮点单元1122、1124可以被实施为支持具有各种宽度的位的操作数范围。对于一个实施例,浮点单元1122、1124可以与SIMD和多媒体指令结合地对128位宽度的紧缩数据运算数进行运算。
在一个实施例中,uop调度器1102、1104、1106在父加载完成执行之前分派不独立运算。在处理器1100中推测性地调度和执行uop时,处理器1100还包括用于处置存储器未命中的逻辑。如果数据高速缓存中的数据加载未命中,则可能存在流水线中飞行的已经因暂时不正确数据而离开调度器的不独立运算。重放机制跟踪并重新执行使用不正确数据的指令。仅仅不独立运算需要被重放,并且允许完成独立运算。处理器的一个实施例的调度器和重放机制还被设计成捕获用于文本串比较操作的指令序列。
术语“寄存器”可以指代被用作指令的一部分以标识操作数的机载处理器存储位置。换言之,寄存器可以是从处理器外部(从程序员的角度来看)可用的寄存器。然而,实施例的寄存器不应限于特定类型的电路。而是,实施例的寄存器能够存储和提供数据,并且执行本文所描述的功能。本文所描述的寄存器可以由处理器内的电路系统使用任何数量的不同技术来实施,如专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。在一个实施例中,整数寄存器存储三十二位整数数据。一个实施例的寄存器堆还包含用于紧缩数据的八个多媒体SIMD寄存器。
对于本文的讨论,寄存器被理解为设计成保持紧缩数据的数据寄存器,如用来自加利福尼亚州圣克拉拉的英特尔公司的MMX技术实现的微处理器中的64位宽MMXTM寄存器(在某些情况下也称为“mm”寄存器)。以整数和浮点形式可用的这些MMX寄存器可以用伴随SIMD指令和SSE指令的紧缩数据元素进行操作。类似地,与SSE2、SSE3、SSE4或更高版本(通常称为“SSEx”)技术有关的128位宽XMM寄存器也可以用于保持这样的紧缩数据操作数。在一个实施例中,在存储紧缩数据和整数数据时,寄存器不需要对这两种数据类型进行区分。在一个实施例中,整数和浮点包含在同一寄存器堆或不同的寄存器堆中。此外,在一个实施例中,浮点和整数数据可以存储在不同的寄存器或同一寄存器中。
实施例可以采用许多不同的系统类型来实施。现在参照图12,示出了根据本发明实施例的多处理器系统1200的框图。如图12所示,多处理器系统1200是点对点互连系统,并且包括经由点对点互连1250耦合的第一处理器1270和第二处理器1280。如图12所示,处理器1270和1280中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核1274a和1274b以及处理器核1284a和1284b),但是在处理器中可能存在更多核。
虽然以两个处理器1270、1280示出,但应当理解,本公开的范围不限于此。在其他实施方式中,在给定处理器中可以存在一个或多个附加处理器。
处理器1270和1280被示出为分别包括集成存储器控制器单元1272和1282。处理器1270还包括作为其总线控制器单元的一部分的点对点(P-P)接口1276和1288;类似地,第二处理器1280包括P-P接口1286和1288。处理器1270、1280可以使用点对点(P-P)接口电路1278、1288经由P-P接口1250交换信息。如图12所示,IMC 1272和1282将处理器耦合至对应存储器,即存储器1232和存储器1234,所述存储器可以是主存储器的本地附接到对应处理器的部分。
处理器1270、1280可以各自使用点对点接口电路1276、1294、1286、1298经由单独的P-P接口1252、1254来与芯片组1290交换信息。芯片组1290还可以经由高性能图形接口1239与高性能图形电路1238交换信息。
共享高速缓存(未示出)可以包括在任一处理器中或者在两个处理器外部但经由P-P互连与所述处理器相连接,使得如果处理器被置于低功耗模式下,则任一或两个处理器的本地高速缓存信息可以被存储在所述共享高速缓存中。在将条目分配到共享高速缓存时,还可以在共享高速缓存中跨一个或多个高速缓存控制器创建页面位置。
芯片组1290可以经由接口1296耦合至第一总线1216。在一个实施例中,第一总线1216可以是外围组件互连(PCI)总线,或诸如PCI Express总线或互连总线等总线,但是本公开的范围不限于此。
现在参照图13,示出了根据本公开实施例的第三系统1000的框图。图12和图13中的相同元件具有相同的参考号,并且已经从图12中省略了图13的某些方面以避免使图13的其他方面模糊。
图13展示了处理器1370、1380可以分别包括集成存储器和I/O控制逻辑(“CL”)1372和1392。对于至少一个实施例,CL 1372、1382可以包括诸如本文描述的集成存储器控制器单元。另外,CL 1372、1392还可以包括I/O控制逻辑。图13展示了存储器1332、1334耦合至CL 1372、1392,并且I/O设备1314也耦合至控制逻辑1372、1392。传统I/O设备1315被耦合至芯片组1390。
图14是可以包括核1402中的一个或多个的示例性芯片上系统(SoC)1400。本领域中已知的用于膝上型计算机、台式计算机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式设备和各种其他电子设备的其他系统设计和配置也是合适的。一般,能够结合本文所公开的处理器和/或其他执行逻辑的各种各样的系统或电子设备通常是合适的。
在图14的示例性SoC 1400中,虚线框为更高先进SoC的特征。(多个)互连单元1402可以耦合至:应用处理器1417,所述应用处理器包括一组一个或多个核1402A至1402N和(多个)共享高速缓存单元1406;系统代理单元1410;(多个)总线控制器单元1416;(多个)集成存储器控制器单元1414;一组一个或多个媒体处理器1420,所述媒体处理器可以包括集成图形逻辑1408、用于提供静止和/或视频相机功能的图像处理器1424、用于提供硬件音频加速的音频处理器1426、以及用于提供视频编码/解码加速的视频处理器1428;静态随机存取存储器(SRAM)单元1430;直接存储器访问(DMA)单元1432;以及显示单元1440,所述显示单元用于耦合至一个或多个外部显示器。
接下来转到图15,描绘了根据本公开的实施例的芯片上系统(SoC)设计的实施例。作为说明性示例,SoC 1500包括在用户设备(UE)中。在一个实施例中,UE是指由终端用户用于通信的任何设备,如手持电话、智能电话、平板电脑、超薄笔记本、具有宽带适配器的笔记本、或任何其他类似的通信设备。UE可连接至基站或节点,其本质上对应于GSM网络中的移动台(MS)。在SoC 1500中可以实施页添加和内容复制的实施例。
在此,SoC 1500包括2个核——1506和1507。类似于上面讨论的,核1506和1507可以符合指令集架构,如具有架构核TM的处理器、超微半导体有限公司(AMD)处理器、基于MIPS的处理器、基于ARM设计的处理器、或其客户,以及它们的授权方或兼容方。核1506和1507被耦合至高速缓存控制1508,所述高速缓存控制与总线接口单元1509和L2高速缓存1510相关联,以与系统1500的其他部分进行通信。互连1511包括可以实施所描述的本公开的一个或多个方面的芯片上互连,如IOSF、AMBA或上文讨论的其他互连。
在一个实施例中,SDRAM控制器1540可以经由高速缓存125连接至互连1511。互连1511向其他组件提供通信通道,例如用于与SIM卡接口连接的用户身份模块(SIM)1530、用于保持引导代码以便由核1506和1507执行对SoC 1500初始化和引导的引导ROM 1535、用于与外部存储器(例如DRAM 1560)接口连接的SDRAM控制器1540、用于与非易失性存储器(例如,闪存1565)接口连接的闪存控制器1545、用于与外围装置接口连接的外围控制1550(例如串行外围接口)、用于显示和接收输入(例如触摸使能的输入)的视频编解码器1520和视频接口1525、用于执行图形相关的计算的GPU 1515等。这些接口中的任何接口可以合并本文描述的实施例的方面。
此外,系统展示了用于通信的外围装置,如模块1570、3G调制解调器1575、GPS1580、以及1585。注意,如上所述,UE包括通信无线电。因此,这些外围通信模块可以不全都被包括。然而,在UE中,应该包括用于外部通信的某种形式的无线电。
图16展示了采用计算系统1600的示例形式的机器的图解表示,在其内可以执行指令集以便使机器执行本文讨论的任何一种或多种方法。在替代实施例中,机器可以连接(例如,联网)至LAN、内联网、外联网、或互联网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端设备的身份操作,或在点对点(或分布式)网络环境中作为对等机操作。所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络电器、服务器、网络路由器、交换机或桥接器、或能够(相继或以其他方式)执行指定要由那个机器采取的动作的指令集的任何机器。进一步地,虽然仅示出了单个机器,但术语“机器”也应视为包括机器的任何集合,所述机器个别地或联合地执行一个(或多个)指令集以便执行本文中所讨论的方法中的任何一种或多种方法。在计算系统1600中可以实施页添加和内容复制的实施例。
计算系统1600包括处理设备1602、主存储器1604(例如,闪存、动态随机存取存储器(DRAM)(诸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、静态存储器1606(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备1618,它们经由总线1608彼此通信。在一个实施例中,总线1608可以由图1的系统总线170-1和/或存储器总线170-2构成,并且共享总线1608的存储器和外围设备可以是系统代理114或通过所述系统代理工作,类似于参照图1所讨论的那样。
处理设备1602表示一个或多个通用处理设备,如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其他指令集的处理器、或实施指令集组合的处理器。处理设备1602还可以是一个或多个专用处理设备,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个实施例中,处理设备1602可以包括一个或多个处理器核。处理设备1602被配置成执行处理逻辑1626以便执行本文所讨论的操作。
在一个实施例中,处理设备1602可以是图1的计算系统100的一部分。可替代地,计算系统1600可以包括如本文所描述的其他组件。应当理解,核可以支持多线程化(执行并行的两组或更多组操作或线程),并且可以以各种方式来完成所述多线程化,所述各种方式包括时分多线程化、同步多线程化(其中,单个物理核为物理核正同步多线程化的线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后比如超线程化技术中的同步多线程化)。
计算系统1600可以进一步包括通信地耦合至网络1619的网络接口设备1618。计算系统1600还可以包括视频显示设备1610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1610(例如,键盘)、光标控制设备1614(例如,鼠标)、信号发生设备1620(例如,扬声器)或其他外围设备。此外,计算系统1600可以包括图形处理单元1622、视频处理单元1628、以及音频处理单元1632。在另一个实施例中,计算系统1600可以包括芯片组(未示出),其指的是一组集成电路或芯片,它们被设计成与处理设备1602一起工作,并控制处理设备1602与外部设备之间的通信。例如,芯片组可以是主板上将处理设备1602链接到诸如主存储器1604和图形控制器等超高速设备以及将处理设备1602链接到诸如USB、PCI或ISA总线等较低速外围总线或外围装置的一组芯片。
数据存储设备1618可以包括计算机可读存储介质1624,在所述存储介质上存储了使本文所描述的功能的方法中的任何一种或多种具体化的软件1626。软件1626还可以在由计算系统1600对其执行期间全部或至少部分地驻留在主存储器1604内作为指令1626和/或在处理设备1602内作为处理逻辑;主存储器1604和处理设备1602也构成计算机可读存储介质。
利用处理器设备1602(诸如相对于图1和图2所描述的)和/或含有调用以上应用的方法的软件库,计算机可读存储介质1624还可以用于存储指令1626。虽然计算机可读存储介质1624在示例实施例中被示出为单个介质,但术语“计算机可读存储介质”应当视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应视为包括能够存储、编码或承载用于由机器执行的指令集并且使机器执行本发明实施例的方法中的任何一种或多种的任何介质。术语“计算机可读存储介质”应当相应地被视为包括但不限于固态存储器、以及光学介质和磁性介质。
下面的示例涉及进一步实施例。
示例1是一种处理器,包括:1)存储器,用于存储多个神经形态状态的权重值;以及2)耦合至所述存储器的电路系统,所述电路系统用于:a)检测突触前神经形态状态的传入数据信号;b)响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;并且c)响应于检测到所述时间窗口的结束:d)从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;e)根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;并且f)将所述经更新的权重值存储回至所述存储器。
在示例2中,如示例1所述的处理器,其中,执行所述因果更新是根据所述学习函数增大所述权重值。
在示例3中,如示例1所述的处理器,进一步包括:1)耦合至所述电路系统的一组计数器,所述一组计数器包括:2)第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及3)第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
在示例4中,如示例1所述的处理器,其中,响应于检测到所述时间窗口的所述结束,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;b)根据所述学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;并且c)将所述经更新的第二权重值存储回至所述存储器。
在示例5中,如示例1所述的处理器,其中,所述存储器中的所述权重值是根据突触前神经形态状态和相应的突触后神经形态状态来在权重表中索引的。
在示例6中,如示例5所述的处理器,其中,所述存储器进一步用于存储包括多个指针的指针表,每个指针用于在所述权重表内标识突触前神经形态状态的起始位置。
在示例7中,如示例1所述的处理器,其中,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;b)根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;并且c)将所述经更新的第二权重值存储回至所述存储器。
在示例8中,如示例1所述的处理器,其中,所述电路系统进一步用于将不应期设置为由所述时间窗口定义的至少一定数量的时间步长的时段,所述不应期定义在生成所述传出数据信号之间的最小时间步长数量。
在示例9中,如示例1所述的处理器,其中,响应于在所述时间窗口期间检测到所述突触后神经形态状态的第二传出数据信号的生成,所述电路系统进一步用于忽略所述第二传出数据信号的所述生成。
各个实施例可以具有上面描述的结构特征的不同组合。例如,上面描述的计算系统的所有可选特征也可以相对于本文描述的方法或过程实施,并且示例中的具体细节可以用在一个或多个实施例中的各处。
示例10是一种集成电路,包括:1)存储器,用于存储多个神经形态状态的权重值;以及2)耦合至所述存储器的电路系统,所述电路系统用于:a)检测突触前神经形态状态的传入数据信号;b)响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;并且c)响应于在所述时间窗口的结束之前检测到第二传入数据信号的到达:d)从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;d)根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;e)根据所述学习函数执行对所述经更新的权重值的非因果更新,以生成经两次更新的权重值;并且f)将所述经两次更新的权重值存储回至所述存储器。
在示例11中,如示例10所述的集成电路,其中,执行所述因果更新是根据所述学习函数增大所述权重值,并且执行所述非因果更新是根据所述学习函数减小所述经更新的权重值。
在示例12中,如示例10所述的集成电路,进一步包括:1)耦合至所述电路系统的一组计数器,所述一组计数器包括:2)第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及3)第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
在示例13中,如示例12所述的集成电路,其中,每个时间步长包括非因果更新时段、所述非因果更新时段之后的传出数据信号累积时段、以及所述传出数据信号累积时段之后的因果更新时段。
在示例14中,如示例10所述的集成电路,响应于在所述时间窗口的所述结束之前检测到所述第二传入数据信号的到达,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;b)根据学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;c)根据所述学习函数执行对所述经更新的第二权重值的非因果更新,以生成经两次更新的第二权重值;并且d)将所述经两次更新的第二权重值存储回至所述存储器。
在示例15中,如示例10所述的集成电路,其中,所述存储器中的所述权重值是根据突触前神经形态状态和相应的突触后神经形态状态来在权重表中索引的。
在示例16中,如示例15所述的集成电路,其中,所述存储器进一步用于存储包括多个指针的指针表,每个指针用于在所述权重表内标识突触前神经形态状态的起始位置。
在示例17中,如示例10所述的集成电路,其中,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;b)根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;并且c)将所述经更新的第二权重值存储回至所述存储器。
各个实施例可以具有上面描述的结构特征的不同组合。例如,上面描述的处理器和方法的所有可选特征也可以相对于本文描述的系统实施,并且示例中的具体细节可以用在一个或多个实施例中的各处。
示例18是一种芯片上系统(SoC),包括:1)存储器,用于存储多个神经形态状态的权重值;以及2)耦合至所述存储器的电路系统,所述电路系统用于:a)检测突触前神经形态状态的传入数据信号;b)响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;并且c)响应于检测到所述时间窗口的结束:d)从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;e)根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;并且f)将所述经更新的权重值存储回至所述存储器。
在示例19中,如示例18所述的SoC,其中,执行所述因果更新是根据所述学习函数增大所述权重值。
在示例20中,如示例18所述的SoC,进一步包括:1)耦合至所述电路系统的一组计数器,所述一组计数器包括:2)第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及3)第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
在示例21中,如示例18所述的SoC,其中,响应于检测到所述时间窗口的所述结束,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;b)根据所述学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;并且c)将所述经更新的第二权重值存储回至所述存储器。
在示例22中,如示例18所述的SoC,其中,所述电路系统进一步用于将不应期设置为由所述时间窗口定义的至少一定数量的时间步长的时段,所述不应期定义在生成所述传出数据信号之间的最小时间步长数量。
在示例23中,如示例18所述的SoC,其中,响应于在所述时间窗口期间检测到所述突触后神经形态状态的第二传出数据信号的生成,所述电路系统进一步用于忽略所述第二传出数据信号的所述生成。
在示例24中,如示例18所述的SoC,其中,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:a)从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;b)根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;并且c)将所述经更新的第二权重值存储回至所述存储器。
各个实施例可以具有上面描述的结构特征的不同组合。例如,上面描述的处理器和方法的所有可选特征也可以相对于本文描述的系统实施,并且示例中的具体细节可以用在一个或多个实施例中的各处。
尽管已经关于有限数量的实施例描述了本公开,但本领域的技术人员将从其中认识到许多修改和变体。旨在使得所附权利要求书覆盖如落在本发明的真实精神和范围内的所有这种修改和变体。
在本文的说明书中,阐述了众多特定细节,诸如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等示例,以便提供对本公开的透彻理解。然而,对本领域技术人员来说将显而易见的是,不需要采用这些特定细节来实践本公开。在其他实例中,没有详细描述已知的组件或方法,诸如特定和替代处理器结构、特定逻辑电路/用于描述算法的代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、代码中的算法的特定表达、特定断电和选通技术/逻辑及计算机系统的其他特定操作细节,以避免对本发明造成不必要的模糊。
实施例参考确定特定集成电路(诸如计算平台或微处理器)中基于扇区高速缓存的高速缓存行中数据有效性来描述。实施例还可应用于其他类型集成电路和可编程逻辑设备。例如,所公开的实施例并不限于台式计算机系统或便携式计算机,如UltrabooksTM计算机。并且,还可用在其他设备中,诸如手持装置、平板电脑、其他薄笔记本、芯片上系统(SoC)设备和嵌入式应用中。手持式设备的一些示例包括:蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)和手持式PC。嵌入式应用通常包括:微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行以下教导的功能和操作的任何其他系统。描述了所述系统可以是任何种类的计算机或嵌入式系统。所公开的实施例特别可用于低端设备,像可穿戴设备(例如,手表)、电子植入物、传感和控制基础设施设备、控制器、监督控制和数据获取(SCADA)系统等。此外,本文描述的装置、方法和系统不限于物理计算设备,并且还可以涉及用于节能和效率的软件优化。如在以下描述中将变得容易明白的,本文描述的方法、装置和系统的实施例(不管是关于硬件、固件、软件还是其组合)对将来与性能考虑平衡的‘绿色技术’都是至关重要的。
尽管本文的实施例参考处理器描述,但其他实施例可应用于其他类型集成电路和逻辑设备。本公开的实施例的类似技术和教导可以应用于其他类型的电路或半导体器件,所述其他类型的电路或半导体器件可受益于更高的流水线吞吐量和改善的性能。本公开的实施例的教导适用于执行数据操纵的任何处理器或机器。然而,本公开不限于执行512位、256位、128位、64位、32位或16位数据操作的处理器或机器,并且可以应用于在其中执行数据的处理或管理的任何处理器和机器。此外,本文描述提供了示例,并且附图为了说明目的示出了各种示例。然而,这些示例不应在限制性意义上予以解释,因为它们仅旨在提供本公开的实施例的示例,而不是提供本公开的实施例的所有可能的实施方式的详尽列表。
虽然以上示例描述了在执行单元和逻辑电路的上下文中的指令处理和分配,但是本公开的其他实施例可以通过存储在机器可读有形介质上的数据或指令来实现,所述数据或指令当由机器执行时使机器执行与本公开的至少一个实施例一致的功能。在一个实施例中,在机器可执行指令中将与本公开的实施例相关联的功能具体化。指令可以用于使利用这些指令编程的通用或专用处理器执行本公开中的步骤。本公开的实施例可以作为可包括机器或计算机可读介质的计算机程序产品或软件而提供,所述机器或计算机可读介质具有存储于其上的指令,所述指令可以用于对计算机(或其他电子设备)进行编程以便执行根据本公开的实施例的一个或多个操作。可替代地,可以由包含用于执行操作的固定功能逻辑的特定硬件组件,或由编程的计算机组件和固定功能硬件组件的任何组合,来执行本发明的实施例的操作。
用于编程逻辑以执行本公开的实施例的指令可以存储在系统中的存储器内,诸如DRAM、高速缓存、闪存,或其他存储装置。此外,指令可以经由网络或借助于其他计算机可读介质被分布。因此,机器可读介质可以包括用于存储或传输采用机器(例如,计算机)可读的形式的信息的任何机制,但是不限于软盘、光盘、只读光盘存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于经由电、光、声音、或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息的有形机器可读存储设备。因此,计算机可读介质包括适用于存储或传输机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
设计可以贯穿各个不同的阶段,从产生到仿真到制造。表示设计的数据可用多种方式来表示所述设计。首先,如在仿真中有用的,可以使用硬件描述语言或另一种功能描述语言代表硬件。另外,可以在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,多数设计在一些阶段处达到代表在硬件模型中的不同设备的物理布局的数据水平。在使用常规半导体制造技术的情况下,代表硬件模型的数据可以是指明在用于产生集成电路的掩膜的不同掩膜层上的各种特征的存在与否的数据。在任何设计表示中,数据可以存储在任何形式的机器可读介质中。存储器或磁存储设备或光存储设备(如,盘)可以是用于存储经由光波或电波传输的信息的机器可读介质,所述光波或电波被调制或另外产生以用于传输这种信息。当传输指示或携带代码或设计的电载波时,在执行电信号的复制、缓冲或重传情况的程度上,制作新的副本。因此,通信提供者或网络提供者可以在有形机器可读介质上至少暂时地存储诸如编码到载波中的信息等制品,从而将本公开的实施例的技术具体化。
本文中使用的模块指的是硬件、软件和/或固件的任意组合。作为示例,模块包括硬件,如与非暂态介质相关联的用于存储代码的微控制器,所述代码被适配成用于由微控制器执行。因此,在一个实施例中,对模块的引用是指硬件,所述硬件具体被配置成识别和/或执行有待保持在非暂态介质上的代码。此外,在另一个实施例中,模块的使用指包括代码的非暂态介质,所述代码具体地被适配成由微控制器执行以执行预定操作。并且如可以推断的,在又另一个实施例中,术语模块(在此示例中)可以指微控制器与非暂态介质的组合。通常,被展示为分开的模块边界通常会有所变化并且可能重叠。例如,第一和第二模块可共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,诸如晶体管、寄存器,或其他硬件,如可编程逻辑设备。
在一个实施例中,短语‘被配置成’的使用是指安排、汇编、制造、提供销售、导入和/或设计装置、硬件、逻辑或元件以执行指定或确定的任务。在本示例中,未运行的装置或其元件如果被设计、被耦合和/或被互连用于执行所述指定任务则仍被‘配置成’执行指定的任务。仅作为说明性示例,逻辑门在操作过程中可以提供0或1。但是‘被配置成’为时钟提供启动信号的逻辑门不包括可以提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的,从而使得在操作过程中,1或0输出用于启动时钟。再次注意,术语‘被配置成’的使用不要求运行,而是关注于装置、硬件和/或元件的潜在状态,其中,在潜在状态中,装置、硬件和/或元件被设计成用于当装置、硬件和/或元件正在运行时执行特定的任务。
此外,在一个实施例中,短语‘用于’、‘能够/能够用于’和或‘能操作以’的使用指的是一些装置、逻辑、硬件和/或元件被设计,其方式使得能够以指定方式使用所述装置、逻辑、硬件和/或元件。注意,在一个实施例中,如以上‘用于(to)’、‘能够用于’或‘能操作以’的使用是指装置、逻辑、硬件和/或元件的潜在状态,其中,所述装置、逻辑、硬件和/或元件未在运行但是被设计,其方式使得能够以特定的方式使用装置。
如本文中使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。经常,逻辑电平、逻辑值或逻辑的值的使用也称为简单地代表二进制逻辑状态的1和0。例如,1是指高逻辑电平,并且0是指低逻辑电平。在一个实施例中,如晶体管或闪存单元等存储单元可以能够保持单个逻辑值或多个逻辑值。然而,计算机系统中值的其他表示已被使用。例如,十进制数字十也可以表示为二进制值1010和十六进制字母A。因此,值包括能够在计算机系统中保持的信息的任何表示。
此外,状态可以由值或值的部分来表示。作为示例,第一值(如逻辑一)可以表示默认或初始状态,而第二值(如逻辑零)可以表示非默认状态。此外,在一个实施例中,术语重置和设置分别是指默认的和经更新的值或状态。例如,默认值可能包括高逻辑值(即,重置),而更新值可能包括低逻辑值(即,设置)。注意,可以利用值的任意组合来表示任意数量的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质上的可被处理元件执行的代码或指令来实施。非暂态机器可访问/可读介质包括提供(即,存储和/或传输)采用机器(如,计算机或电子系统)可读的形式的信息的任何机制。例如,非暂态机器可访问介质包括:随机存取存储器(RAM),如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁存储介质或光存储介质;闪存设备;电存储设备;光存储设备;声学存储设备;用于保持从暂态(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备等,它们与可以从中接收信息的非暂态介质区分开来。
用于程序逻辑以执行本公开的实施例的指令可以存储在系统中的存储器内,例如,DRAM、高速缓存、闪存或其他存储装置。此外,指令可以经由网络或借助于其他计算机可读介质被分布。因此,机器可读介质可以包括用于存储或传输采用机器(例如,计算机)可读的形式的信息的任何机制,但是不限于软盘、光盘、只读光盘存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于经由电、光、声音、或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传输信息的有形机器可读存储设备。因此,计算机可读介质包括用于存储或传输机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书,提及“一个实施例(one embodiment)”或“实施例(anembodiment)”意味着,结合所述实施例所描述的具体特征、结构或特性被包含在本公开的至少一个实施例中。因此,贯穿本说明书,短语“在一个实施例中(in one embodiment)”或“在实施例中(in an embodiment)”在各种场合中的出现未必都是指相同的实施例。此外,在一个或多个实施例中,可以以任何合适的方式来组合具体特征、结构、或特性。
在上述说明书中,已经参照具体示例性实施例给出了详细说明。然而,在不偏离所附权利要求中阐述的本公开的更广精神和范围的情况下,将显然的是可对其进行各种修改和改变。因此,说明书和附图被认为是说明性意义的,而不是限制性意义的。此外,实施例和其他示范性语言的上述使用不一定指相同的实施例或相同的示例,而是可指不同且有区别的实施例,以及可能指相同的实施例。
具体实施方式的一些部分根据对计算机存储器内的数据位的操作的算法和符号表示来呈现。这些算法描述和表示是数据处理领域中的技术人员向所述领域的其他技术人员最有效地转达他们的工作的主要内容时所使用的手段。算法在这里并且通常被认为是用于得到想要的结果的操作的自相一致的序列。这些操作是要求实际地操纵物理量的那些操作。通常但并非必须地,这些物理量采用能够被存储、传递、组合、比较以及以其他方式操纵的电或磁信号的形式。这已被证明是有时便于(主要由于公共使用的原因)涉及如位、值、元素、符号、字符、术语、数字等这些信号。本文所描述的块可以是硬件、软件、固件或其组合。
然而,应当记住的是,这些和类似术语中的全部术语将与适当的物理数量相关联并且仅是应用于这些量上的方便标签。除非特别声明,否则根据上面论述显然的是,要认识到,在说明书通篇利用诸如“定义”、“接收”、“确定”、“发出”、“链接”、“关联”、“获得”、“认证”、“禁止”、“执行”、“请求”、“通信”等术语的论述是指计算系统或类似电子计算设备的动作和过程,其将计算系统的寄存器和存储器内表示为物理(例如,电子)量的数据操控并变换成在计算系统存储器或寄存器或其他此类信息存储、传送或显示设备内类似地表示为物理量的其他数据。
词语“示例”或“示例性”在本文中被用于意指充当示例、实例或说明。在此被描述为“示例”或“示例性的”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。而是,对词语“示例”或“示例性”的使用旨在以具体的方式呈现概念。如本申请中所使用的,术语“或者”意图意指包括性的“或者”而不是排他性的“或者”。即,除非另外指定或从上下文清楚的,否则“X包括A或B”旨在意指自然包含性排列中的任何一种。即,如果X包括A;X包括B;或者X包括A和B两者,则“X包括A或B”在前述情形中的任一种下都满足。另外,本申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”总体上应当被解释为指“一个或多个”,除非另有所指或从针对单数形式的上下文中明显看出。此外,除非如此描述,否则贯穿全文的术语“实施例”或“一个实施例”或“实施方式”或“一种实施方式”的使用不意指相同的实施例或实施方式。而且,如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意指作为标记以区分不同的元件并且可能不一定具有根据其数字名称的依次含义。
Claims (24)
1.一种处理器,包括:
存储器,用于存储多个神经形态状态的权重值;以及
耦合至所述存储器的电路系统,所述电路系统用于:
检测突触前神经形态状态的传入数据信号;
响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;以及
响应于检测到所述时间窗口的结束:
从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;以及
将所述经更新的权重值存储回所述存储器。
2.如权利要求1所述的处理器,其特征在于,用于执行所述因果更新是用于根据所述学习函数增大所述权重值。
3.如权利要求1所述的处理器,其特征在于,进一步包括耦合至所述电路系统的一组计数器,所述一组计数器包括:
第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及
第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
4.如权利要求1所述的处理器,其特征在于,响应于检测到所述时间窗口的所述结束,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;
根据所述学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;以及
将所述经更新的第二权重值存储回所述存储器。
5.如权利要求1所述的处理器,其特征在于,所述存储器中的所述权重值是根据突触前神经形态状态和相应的突触后神经形态状态来在权重表中索引的。
6.如权利要求5所述的处理器,其特征在于,所述存储器进一步用于存储包括多个指针的指针表,每个指针用于标识突触前神经形态状态在所述权重表内的起始位置。
7.如权利要求1所述的处理器,其特征在于,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;以及
将所述经更新的第二权重值存储回所述存储器。
8.如权利要求1所述的处理器,其特征在于,所述电路系统进一步用于将不应期设置为由所述时间窗口定义的至少数个时间步长的时段,所述不应期定义生成所述传出数据信号之间的最小时间步长数量。
9.如权利要求1所述的处理器,其特征在于,响应于在所述时间窗口期间检测到所述突触后神经形态状态的第二传出数据信号的生成,所述电路系统进一步用于忽略所述第二传出数据信号的所述生成。
10.一种集成电路,包括:
存储器,用于存储多个神经形态状态的权重值;以及
耦合至所述存储器的电路系统,所述电路系统用于:
检测突触前神经形态状态的传入数据信号;
响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;以及
响应于在所述时间窗口的结束之前检测到第二传入数据信号的到达:
从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;
根据所述学习函数执行对所述经更新的权重值的非因果更新,以生成经两次更新的权重值;以及
将所述经两次更新的权重值存储回所述存储器。
11.如权利要求10所述的集成电路,其特征在于,用于执行所述因果更新是用于根据所述学习函数增大所述权重值,并且用于执行所述非因果更新是用于根据所述学习函数减小所述经更新的权重值。
12.如权利要求10所述的集成电路,其特征在于,进一步包括耦合至所述电路系统的一组计数器,所述一组计数器包括:
第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及
第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
13.如权利要求12所述的集成电路,其特征在于,每个时间步长包括非因果更新时段、所述非因果更新时段之后的传出数据信号累积时段、以及所述传出数据信号累积时段之后的因果更新时段。
14.如权利要求10所述的集成电路,其特征在于,响应于在所述时间窗口的所述结束之前检测到所述第二传入数据信号的到达,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;
根据学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;
根据所述学习函数执行对所述经更新的第二权重值的非因果更新,以生成经两次更新的第二权重值;以及
将所述经两次更新的第二权重值存储回所述存储器。
15.如权利要求10所述的集成电路,其特征在于,所述存储器中的所述权重值是根据突触前神经形态状态和相应的突触后神经形态状态来在权重表中索引的。
16.如权利要求15所述的集成电路,其特征在于,所述存储器进一步用于存储包括多个指针的指针表,每个指针用于标识突触前神经形态状态在所述权重表内的起始位置。
17.如权利要求10所述的集成电路,其特征在于,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;以及
将所述经更新的第二权重值存储回所述存储器。
18.一种芯片上系统(SoC),包括:
存储器,用于存储多个神经形态状态的权重值;以及
耦合至所述存储器的电路系统,所述电路系统用于:
检测突触前神经形态状态的传入数据信号;
响应于检测到所述传入数据信号而启动所述突触前神经形态状态的时间窗口;以及
响应于检测到所述时间窗口的结束:
从所述存储器中检索突触后神经形态状态的权重值,在所述时间窗口期间针对所述突触后神经形态状态生成传出数据信号,所述突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据学习函数执行对所述权重值的因果更新,以生成经更新的权重值;以及
将所述经更新的权重值存储回所述存储器。
19.如权利要求18所述的SoC,其特征在于,用于执行所述因果更新是用于根据所述学习函数增大所述权重值。
20.如权利要求18所述的SoC,其特征在于,进一步包括耦合至所述电路系统的一组计数器,所述一组计数器包括:
第一计数器,所述第一计数器与所述突触前神经形态状态相关联,用于跟踪时间步长通过所述时间窗口;以及
第二计数器,所述第二计数器与所述突触后神经形态状态相关联,其中,所述电路系统进一步用于通过检测所述第二计数器非零来检测所述传出数据信号的生成。
21.如权利要求18所述的SoC,其特征在于,响应于检测到所述时间窗口的所述结束,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在所述时间窗口期间针对所述第二突触后神经形态状态生成第二传出数据信号,所述第二突触后神经形态状态也是所述突触前神经形态状态的扇出连接;
根据所述学习函数执行对所述第二权重值的因果更新,以生成经更新的第二权重值;以及
将所述经更新的第二权重值存储回所述存储器。
22.如权利要求18所述的SoC,其特征在于,所述电路系统进一步用于将不应期设置为由所述时间窗口定义的至少数个时间步长的时段,所述不应期定义生成所述传出数据信号之间的最小时间步长数量。
23.如权利要求18所述的SoC,其特征在于,响应于在所述时间窗口期间检测到所述突触后神经形态状态的第二传出数据信号的生成,所述电路系统进一步用于忽略所述第二传出数据信号的所述生成。
24.如权利要求18所述的SoC,其特征在于,响应于检测到所述突触前神经形态状态的所述传入数据信号,所述电路系统进一步用于:
从所述存储器中检索第二突触后神经形态状态的第二权重值,在前一时间窗口期间针对所述第二突触后神经形态状态生成传出数据信号,所述第二突触后神经形态状态是所述突触前神经形态状态的扇出连接;
根据所述学习函数执行对所述第二权重值的非因果更新,以生成经更新的第二权重值;以及
将所述经更新的第二权重值存储回所述存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/294,666 US10748060B2 (en) | 2016-10-14 | 2016-10-14 | Pre-synaptic learning using delayed causal updates |
US15/294,666 | 2016-10-14 | ||
PCT/US2017/051899 WO2018071133A1 (en) | 2016-10-14 | 2017-09-15 | Pre-synaptic learning using delayed causal updates |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109716364A true CN109716364A (zh) | 2019-05-03 |
Family
ID=61902730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780056655.2A Pending CN109716364A (zh) | 2016-10-14 | 2017-09-15 | 使用延迟因果更新的突触前学习 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10748060B2 (zh) |
EP (1) | EP3526736A4 (zh) |
CN (1) | CN109716364A (zh) |
WO (1) | WO2018071133A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111325330A (zh) * | 2020-02-19 | 2020-06-23 | 北京大学 | 一种突触对称性时间依赖可塑性算法电路及其阵列结构 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11195079B2 (en) * | 2017-11-22 | 2021-12-07 | Intel Corporation | Reconfigurable neuro-synaptic cores for spiking neural network |
EP3803699A1 (en) * | 2018-06-11 | 2021-04-14 | Inait SA | Characterizing activity in a recurrent artificial neural network and encoding and decoding information |
US11915124B2 (en) * | 2019-09-05 | 2024-02-27 | Micron Technology, Inc. | Performing processing-in-memory operations related to spiking events, and related methods, systems and devices |
CN114341984A (zh) | 2019-09-05 | 2022-04-12 | 美光科技公司 | 执行与突触前尖峰信号相关的存算一体化操作,及相关方法及系统 |
US20230013081A1 (en) * | 2019-10-02 | 2023-01-19 | Tohoku University | Driving method of synapse circuit |
US20220067483A1 (en) * | 2020-08-27 | 2022-03-03 | Micron Technology, Inc. | Pipelining spikes during memory access in spiking neural networks |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120259804A1 (en) * | 2011-04-08 | 2012-10-11 | International Business Machines Corporation | Reconfigurable and customizable general-purpose circuits for neural networks |
US20130073491A1 (en) * | 2011-09-21 | 2013-03-21 | Eugene M. Izhikevich | Apparatus and methods for synaptic update in a pulse-coded network |
CN103282919A (zh) * | 2010-12-30 | 2013-09-04 | 国际商业机器公司 | 强化学习的电子突触 |
US20140180987A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
US20140214739A1 (en) * | 2012-11-06 | 2014-07-31 | International Business Machines Corporation | Cortical simulator |
TW201541372A (zh) * | 2014-03-24 | 2015-11-01 | Qualcomm Inc | 使用尖峰發放神經元的人工神經網路和感知器學習 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US9418332B2 (en) | 2013-08-16 | 2016-08-16 | Qualcomm Incorporated | Post ghost plasticity |
US10635967B2 (en) | 2014-04-15 | 2020-04-28 | Intel Corporation | Methods, systems and computer program products for neuromorphic graph compression using associative memories |
GB201419355D0 (en) | 2014-10-30 | 2014-12-17 | Ibm | Neuromorphic synapses |
US9990580B2 (en) | 2015-03-13 | 2018-06-05 | International Business Machines Corporation | Neuromorphic synapses |
-
2016
- 2016-10-14 US US15/294,666 patent/US10748060B2/en not_active Expired - Fee Related
-
2017
- 2017-09-15 EP EP17860534.1A patent/EP3526736A4/en not_active Withdrawn
- 2017-09-15 CN CN201780056655.2A patent/CN109716364A/zh active Pending
- 2017-09-15 WO PCT/US2017/051899 patent/WO2018071133A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282919A (zh) * | 2010-12-30 | 2013-09-04 | 国际商业机器公司 | 强化学习的电子突触 |
US20120259804A1 (en) * | 2011-04-08 | 2012-10-11 | International Business Machines Corporation | Reconfigurable and customizable general-purpose circuits for neural networks |
US20130073491A1 (en) * | 2011-09-21 | 2013-03-21 | Eugene M. Izhikevich | Apparatus and methods for synaptic update in a pulse-coded network |
US20140214739A1 (en) * | 2012-11-06 | 2014-07-31 | International Business Machines Corporation | Cortical simulator |
US20140180987A1 (en) * | 2012-12-21 | 2014-06-26 | International Business Machines Corporation | Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network |
TW201541372A (zh) * | 2014-03-24 | 2015-11-01 | Qualcomm Inc | 使用尖峰發放神經元的人工神經網路和感知器學習 |
Non-Patent Citations (9)
Title |
---|
BRUNO U. PEDRONI等: ""Forward table-based presynaptic event-triggered spike-timing-dependent plasticity"", 《IEEE BIOMEDICAL CIRCUITS AND SYSTEMS CONFERENCE (BIOCAS)》 * |
BRUNO U. PEDRONI等: ""Forward table-based presynaptic event-triggered spike-timing-dependent plasticity"", 《IEEE BIOMEDICAL CIRCUITS AND SYSTEMS CONFERENCE (BIOCAS)》, 24 July 2016 (2016-07-24) * |
BRUNO U. PEDRONI等: "Forward Table-Based Presynaptic Event-Triggered Spike-Timing-Dependent Plasticity", HTTPS://ARXIV.ORG/ABS/1607.03070 * |
SEN SONG等: ""Competitive Hebbian Learning Through Spike-Timing-Dependent Synaptic Plasticity"", 《NATURE NEUROSCIENCE》 * |
SEN SONG等: ""Competitive Hebbian Learning Through Spike-Timing-Dependent Synaptic Plasticity"", 《NATURE NEUROSCIENCE》, 30 September 2000 (2000-09-30) * |
刘艳等: "神经系统识别爆发性锋电位序列的机制讨论", 《北京师范大学学报(自然科学版)》 * |
刘艳等: "神经系统识别爆发性锋电位序列的机制讨论", 《北京师范大学学报(自然科学版)》, no. 04, 15 August 2007 (2007-08-15) * |
杨玖等: "一种反向串联忆阻突触电路的设计及应用", 《中国科学:信息科学》 * |
杨玖等: "一种反向串联忆阻突触电路的设计及应用", 《中国科学:信息科学》, no. 03, 20 March 2016 (2016-03-20) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111325330A (zh) * | 2020-02-19 | 2020-06-23 | 北京大学 | 一种突触对称性时间依赖可塑性算法电路及其阵列结构 |
CN111325330B (zh) * | 2020-02-19 | 2022-10-11 | 北京大学 | 一种突触对称性时间依赖可塑性算法电路及其阵列结构 |
Also Published As
Publication number | Publication date |
---|---|
US20180107922A1 (en) | 2018-04-19 |
EP3526736A4 (en) | 2020-08-05 |
EP3526736A1 (en) | 2019-08-21 |
WO2018071133A1 (en) | 2018-04-19 |
US10748060B2 (en) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716364A (zh) | 使用延迟因果更新的突触前学习 | |
CN109844776B (zh) | 具有片上学习和随机时间步长控制的可编程神经元核心 | |
US11195079B2 (en) | Reconfigurable neuro-synaptic cores for spiking neural network | |
JP7494242B2 (ja) | マルチタスク再帰型ニューラルネットワーク | |
CN104954356B (zh) | 保护共享的互连以用于虚拟机 | |
CN108446763A (zh) | 可变字长神经网络加速器电路 | |
CN108268386A (zh) | 加速硬件中的存储器排序 | |
CN104995599B (zh) | 使用硬件与软件组合的路径概况分析 | |
CN108804141A (zh) | 支持所学习的分支预测器 | |
CN106030518B (zh) | 用于整理和退出存储的处理器、方法、系统和装置 | |
US10360496B2 (en) | Apparatus and method for a digital neuromorphic processor | |
JP2019204492A (ja) | ニューロモルフィック・アクセラレータ・マルチタスキング | |
CN107209723A (zh) | 用于虚拟化的细粒度地址重新映射 | |
CN108334458A (zh) | 存储器高效的末级高速缓存架构 | |
CN110419030A (zh) | 测量非均匀存储器访问(numa)系统内按节点的带宽 | |
CN108475192A (zh) | 分散减少指令 | |
CN108369517A (zh) | 聚合分散指令 | |
CN108431771A (zh) | 融合乘加(fma)低功能单元 | |
EP3343462B1 (en) | Scalable free-running neuromorphic computer | |
CN108475242A (zh) | 冲突掩码生成 | |
CN105320494B (zh) | 用于操作处理的方法、系统和设备 | |
CN109643244A (zh) | 映射安全策略组寄存器 | |
CN108292219A (zh) | 浮点(fp)加法低指令功能单元 | |
Yang et al. | Transformer-Based Cache Replacement Policy Learning |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240816 |
|
AD01 | Patent right deemed abandoned |