一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

执行与突触前尖峰信号相关的存算一体化操作,及相关方法及系统与流程

2022-04-14 02:43:55 来源:中国专利 TAG:

执行与突触前尖峰信号相关的存算一体化操作,及相关方法及系统
1.优先权主张
2.本技术案根据35u.s.c.
§
119(e)的规定主张针对“执行与突触前尖峰信号相关的存算一体化操作,及相关方法及系统(performing processing-in-memory operations related to pre-synaptic spike signals,and related methods and systems)”在2019年9月5日提交的美国临时专利申请案第62/896,267号的权益,且还主张针对“执行与突触前尖峰信号相关的存算一体化操作,及相关方法及系统(performing processing-in-memory operations related to pre-synaptic spike signals,and related methods and systems)”在2020年8月31日提交的美国专利申请案第17/007,588号的申请日期的权益。
技术领域
3.本公开的实施例涉及存算一体化,并且更具体地,涉及执行与尖峰神经网络(snn)的尖峰事件相关的存算一体化(pim)操作。更具体地,一些实施例涉及用于在具有存算一体化能力的存储器装置内执行pim操作的方法,以及相关存储器装置、存储器系统及电子系统。


背景技术:

4.存储器装置通常经提供为计算机或其它电子系统中的内部基于半导体的集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。可在电力循环之后检索存储信息的易失性存储器除其它存储器还可包含快闪存储器,包含“与非”或“或非”快闪存储器。易失性存储器可需要电力来维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存储器(sram)、同步动态随机存取存储器(sdram)、内容可寻址存储器(cam)及晶闸管随机存取存储器(tram)以及其它存储器。
5.电子系统通常包含可检索及执行指令并且将所执行指令的结果存储到适合位置的多个处理资源(例如,一或多个处理器)。处理器可包含(例如)可用于通过对数据(例如,一或多个操作数)执行运算来执行指令的多个功能单元,例如算术逻辑单元(alu)电路系统、浮点单元(fpu)电路系统及组合逻辑块。如本文中所使用,运算可包含例如布尔运算,例如“与”、或、“非”、“非”、“与非”、“或非”及“异或”,及/或其它运算(例如,反转、移位、算术、统计及许多其它可能运算)。例如,功能单元电路系统可用于经由多个运算对操作数执行例如加法、减法、乘法及除法的算术运算。
6.在将指令提供到功能单元电路系统以进行执行中可涉及电子系统中的多个组件。指令可例如由处理资源(例如,控制器及/或主机处理器)执行。数据(例如,可对其执行指令的数据)可存储在可由功能单元电路系统存取的存储器阵列中。在功能单元电路系统开始对数据执行指令之前,可从存储器阵列检索指令及/或数据并且对其进行定序及/或缓冲。
7.在许多情况下,处理资源(例如,处理器及相关联功能单元电路系统)可在存储器阵列外部,并且经由处理资源与存储器阵列之间的总线存取数据以执行指令集。可在存储器内嵌处理器(pim)装置中改进处理性能,其中处理器可在内部及/或靠近存储器(例如,直接在与存储器阵列相同的芯片上)实施。pim装置可通过减少及消除外部通信来节省时间及/或节省电力。


技术实现要素:

8.本公开的一或多个实施例包含一种系统。例如,系统可包含存储器阵列,所述存储器阵列包括在多个字线与多个位线的交叉处的多个存储器单元,其中写入到所述多个存储器单元的数据对应于突触权重值。所述系统可包含经配置以驱动所述多个字线的驱动器。所述系统还可包含电路系统,所述电路系统包括耦合到所述多个位线的感测放大器。所述电路系统经配置以接收来自所述多个位线的输出信号。所述电路系统进一步经配置以响应于在生成神经元的尖峰信号之前在字线上驱动的第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号根据所述多个存储器单元中的第一存储器单元的尖峰时序依赖可塑性(stdp)特性增加所述第一存储器单元的电导。所述电路系统进一步经配置以响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号根据所述stdp特性减少所述第一存储器单元的所述电导。
9.根据另一实施例,一种方法包含在字线上驱动第一信号。所述方法进一步包含:响应于在生成神经元的尖峰信号之前在所述字线上驱动的所述第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号在尖峰时序依赖可塑性(stdp)特性的长时程增强(ltp)窗中增加存储器单元的电导;及将所述第二信号发射到位线,其中所述存储器单元耦合到所述字线及所述位线。所述方法还包含:响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号根据所述stdp特性在长时程减弱(ltd)窗中减少所述存储器单元的所述电导;及将所述第三信号发射到所述位线。
10.在另一实施例中,一种电子系统包含至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置,及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述存储器装置包括存储器阵列,所述存储器阵列包括在多个字线与多个位线的交叉处的多个存储器单元,其中写入到所述多个存储器单元的数据对应于突触权重值;及电路系统,其包括耦合到所述多个位线的感测放大器。所述电路系统经配置以响应于在生成神经元的尖峰信号之前在字线上驱动的第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号增加所述多个存储器单元中的存储器单元的电导;及响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号减少所述存储器单元的电导。
11.根据其它实施例中,一种电子系统包括至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置,及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述至少一个存储器装置包括:存储器单
元阵列,其包括经配置以存储突触权重的多个电阻元件;驱动器,其经配置以在snn的一系列时间量子的每一时间量子在耦合到所述多个电阻元件的多个字线上驱动尖峰事件;及积分电路,其经配置以对耦合到所述电阻元件的位线的输出电压进行积分。
12.根据另一实施例,一种系统包括存储器阵列,所述存储器阵列包括多个存储器单元,其中所述多个存储器单元的电导值对应于突触权重值。所述系统进一步包括耦合到存储器阵列的电路系统。所述电路系统经配置以接收来自所述存储器阵列的输出信号,并且响应于在所述存储器阵列处接收的第一信号,生成第二信号来根据尖峰时序依赖可塑性(stdp)规则增加或减少所述多个存储器单元中的存储器单元的电导。
13.根据其它实施例,一种电子系统包括至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述至少一个存储器装置包括:存储器阵列,其包括多个存储器元件;及电路系统,其包括耦合到存储器阵列的一或多个感测放大器。所述电路系统经配置以响应于从所述存储器阵列接收到指示在生成神经元的尖峰信号之前到达所述存储器阵列处的第一信号的输出信号,生成第二信号以减少所述多个存储器元件的一或多个存储器元件的所述电阻。所述电路系统进一步经配置以响应于从所述存储器阵列接收到指示在生成神经元的尖峰信号之后到达所述存储器阵列处的所述第一信号的输出信号,生成第三信号以增加所述多个存储器元件的所述一或多个存储器元件的所述电阻。
附图说明
14.图1是根据本公开的多个实施例的包含存储器装置的系统的框图。
15.图2说明根据本公开的各种实施例的尖峰神经网络。
16.图3说明根据本公开的各种实施例的用于处理尖峰事件的存储器系统。
17.图4说明根据本公开的各种实施例的经配置以过滤尖峰事件的过滤器。
18.图5说明根据本公开的各种实施例的用于处理尖峰事件的存储器系统,包含指针表。
19.图6说明根据本公开的各种实施例的用于处理尖峰事件的存储器系统。
20.图7说明根据本公开的各种实施例的尖峰神经网络(snn)中的尖峰时序依赖可塑性(stdp)规则的曲线图。
21.图8是根据本公开的各种实施例的存算一体化尖峰事件的实例方法的流程图。
22.图9是根据本公开的各种实施例的存算一体化尖峰事件的另一实例方法的流程图。
23.图10说明根据本公开的各种实施例的用于处理尖峰事件的存储器系统。
24.图11说明根据本公开的各种实施例的阈值延迟效应。
25.图12是根据本公开的各种实施例的存算一体化尖峰事件的另一实例方法的流程图。
26.图13是根据本文中所描述的一或多个实施例实施的实例存储器系统的简化框图。
27.图14是根据本文中所描述的一或多个实施例实施的实例电子系统的简化框图。
具体实施方式
28.在尖峰神经网络(snn)中处理尖峰事件用于许多应用中,例如机器学习、图像处理、人工智能、系统建模(例如,电气系统、机械系统、脑机接口、大规模大脑模拟、机器人、控制系统等),及许多其它应用。处理尖峰事件(例如,突触前事件、突触事件)的操作可能相对简单(例如,过滤、匹配及累积)。然而,常规基于计算机的计算可涉及处理器及存储器密集型操作,包含在计算核心与存储器阵列之间传送大量数据。
29.本公开的各种实施例涉及存算一体化(pim)操作,并且更具体地涉及执行pim操作以处理snn中的尖峰事件。在至少一个实施例中,存储器系统包含存储器块。存储器经配置以存储对应于一组目的地神经元的数据。存储器可包含尖峰信号过滤器,所述尖峰信号过滤器经配置从而以snn的一系列时间间隔中的每一时间间隔(本文中也被称为“时间量子”),使对应于来自相应源神经元的一组突触前尖峰事件的数据通过。随后可将对应于所述组突触前尖峰事件的数据存储在存储器块中。存储器块也经配置以存储指针表。指针表经配置以存储指向存储在存储器块中的所述组突触前尖峰事件中的每一组的指针,及以每一时间间隔使对应于每一指针的标签递增。
30.如本文中所使用,具有存算一体化(pim)能力的装置是指能够使用存储器装置内部的处理资源对存储在存储器单元阵列中的数据执行算术及逻辑运算的存储器装置(例如,无需传送数据到例如主机处理器的外部处理资源)。作为实例,具有pim能力的装置可包含耦合到感测电路系统的存储器阵列,所述感测电路系统包括感测组件,所述感测组件可操作为1位处理元件(例如,在每列基础上执行并行处理)或多位处理元件(例如,在每切片基础上执行并行处理,其中每一切片(例如,一行的切片)包括多个列)。除了“在存储器中”执行的逻辑运算(其可被称为“位矢量运算”)之外,具有pim能力的装置还可执行存储器操作。作为实例,具有pim能力的装置可包含经配置用于存储器操作的动态随机存取存储器(dram)阵列,存储器操作包含例如读取(例如,加载)及写入(例如,存储)的存储器存取操作,以及其它不涉及对数据进行操作的操作,以及确实涉及对数据进行操作的额外操作。例如,具有pim能力的装置可将dram阵列作为“普通”dram阵列及/或pim dram阵列进行操作,取决于正在执行(例如,由主机)的程序类型,这可包含存储器操作及位矢量运算两者。例如,位矢量运算可包含逻辑运算,例如布尔运算(例如,“与”、“或”、“异或”等),及传送操作,例如移位阵列中的数据值及反转数据值。
31.如本文中所使用,pim操作可是指与利用具有pim能力的装置执行存储器中处理相关联的各种操作。操作层次结构可用于定义pim操作。例如,操作层次结构中的第一(例如,最低)层级可包含位矢量运算(例如,基本逻辑运算,其可被称为“基元”运算)。层次结构中的下一(例如,中间)层级可包含复合运算,所述复合运算包括多个位矢量运算。例如,复合运算可包含数学运算,例如加法、乘法等,其可包括多个逻辑“与”、“或”、“异或”、移位等。层次结构中的第三(例如,最高)层级可包含与执行程序相关联的控制流操作(例如,循环、分支、过滤、匹配等),所述程序的执行涉及使用具有pim能力的装置来执行处理。
32.如本文中更详细所描述,pim操作可由包括具有pim能力的装置的系统内的各种组件执行。例如,可位于主机上的第一pim控制组件(例如,控制逻辑,其可被称为“标量单元”)可执行控制流操作并且向第二pim控制组件(例如,排序器)提供复合运算,所述第二pim控制组件也可位于主机上或具有pim能力的装置上。在多个实施例中,第二控制组件可向位于
具有pim能力的装置(例如,位矢量时序电路系统)上的pim控制组件提供低层级位矢量运算,所述pim控制组件可在存储器中执行位矢量运算并且将结果返回到主机。如本文中进一步所描述,用于在具有pim能力的装置及与主机之间传送pim操作的接口可包含信道,所述信道可包含与用于传送命令、地址及/或数据的典型存储器接口(例如ddr接口)分离的总线。此外,在许多实施例中,在主机上提供pim控制组件可提供益处,例如允许pim程序使用虚拟寻址(例如,通过解析主机上的虚拟地址,因为具有pim能力的装置可仅在物理地址上操作)。
33.图1是根据本公开的多个实施例的包含存储器装置120的系统100的框图。存储器装置120(其在本文中也可被称为“具有pim能力的装置”或“具有pim能力的存储器装置”)可包含任何合适的存储器装置。例如,存储器装置120可包含易失性存储器(例如,ram、dram等)及/或非易失性存储器(例如,快闪存储器、交叉点存储器装置,例如3d交叉点存储器装置等)。存储器装置120可包含耦合到感测电路系统的存储器阵列130(即,包含存储器单元),如下文更详细所描述。根据一些实施例,存储器装置120可包含以存储体、芯片组、平台、纯文本、块、区段或一些其它形式组织的多个存储器阵列130。
34.系统100进一步包含耦合到存储器装置120的主机111。主机111可包含主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话或存储卡阅读器,及各种其它类型的主机。主机111可包含系统主板及/或背板并且可包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路系统)。系统100可包含单独的集成电路,或主机111及存储器装置120两者可为同一集成电路的一部分(例如,在同一芯片上)。系统100可包含例如服务器系统及/或高性能计算(hpc)系统及/或其一部分。
35.主机111可包含各种组件,包含pim控制组件(例如,控制逻辑131、排序器132)、信道控制器143及存储器管理单元(mmu)控制器134。控制逻辑131可经配置以执行与正在执行的pim程序相关联的控制流命令并且向排序器132提供复合命令。控制逻辑131可以是或可包含risc类型控制器,其经配置以生成及发出一组可扩展的复合运算pim命令,其包含不同于发送到排序器132的ddr命令的命令。在一些实施例中,控制逻辑131可经配置以发出复合运算命令以致使对存储器装置120执行位矢量运算。在一些实施例中,复合运算命令可从控制逻辑131传送到存储器装置120(例如,经由排序器132及信道157)。
36.在一些实施例中,控制逻辑131可将微码指令解码为函数调用,所述函数调用可为由排序器132实施的与执行位矢量运算相关联的微码函数调用。微码函数调用可为排序器132接收及/或执行以致使存储器装置120使用例如感测电路系统150的感测电路系统来执行特定位矢量运算的操作。
37.如在图1中所示,控制逻辑131及mmu控制器134位于主机111上,此可允许控制逻辑131及/或mmu控制器134在将指令传送到存储器装置120之前存取存储在主机111上的虚拟地址并且执行虚拟到物理地址解析(例如,将与在主机111上运行的应用程序相关联的地址空间的虚拟地址与存储器装置120的实际物理地址进行转换)。可通过查找存储在存储器装置120中的地址转换表(例如,页表)或通过对存储器装置120执行相同的操作,在主机处执行转换。在一些实施例中,控制逻辑131及/或排序器132位于存储器装置120中,例如在控制器140中或在行解码器146中。在其它实施例中,控制逻辑131、排序器132或mmu控制器134可分布,使得其部分功能位于主机111上,而另一部分位于存储器装置120上。
38.如本文中所使用,“位矢量”可是指物理上连续的位数,无论是在行(例如水平定向)还是列(例如,垂直定向)中物理连续。具有pim能力的装置可经配置以对虚拟地址空间的多个连续部分(例如,“组块”)执行位矢量运算,例如逻辑运算及/或传送操作。例如,一组块虚拟地址空间可具有256个位的位长。组块可与虚拟地址空间中的其它组块顺序地连续,或可为不连续,然而,其在存储器页的范围内将是连续的。在所公开的实施例中,具有pim能力的装置可经配置以在将虚拟页的虚拟地址转换为物理页的物理地址之后在虚拟地址空间中执行所述操作。
39.可驻留在主机111(如在图1中所展示)上的mmu控制器134可负责执行虚拟存储器地址(例如,与主机111相关联的地址)到物理地址(例如,与存储器装置120相关联的地址)的转换。mmu控制器134还可执行存储器保护操作、高速缓存控制及/或总线仲裁操作。
40.时序电路系统133可提供时序以协调逻辑运算的执行并且可负责提供对阵列(例如图1中的存储器阵列130)的无冲突存取。在各种实施例中,控制器140及/或时序管理电路系统135可生成状态信息,所述状态信息可例如经由信道157传送到主机111或从主机111传送。信道157可独立于(例如,与其分开)双倍数据速率(ddr)存储器接口(例如,控制总线154),所述存储器接口可用于在主机111与存储器装置120之间传送(例如,传递)ddr命令。也就是说,在一些实施例中,信道157可用于在主机111与存储器装置120、存储器存取装置或另一存储器接口之间传送命令。存储器接口的非限制性实例包含双倍数据速率(ddr)存储器接口、快速外围组件互连(pcie)存储器接口、一致加速器处理器接口(capi)、计算快速链接(cxl)、加速器的高速缓存一致互连(ccix),以及前述的组合及子组合,但不限于此。
41.作为非限制性实例,ddr存储器接口(例如,控制总线154)可用于在主机111与存储器装置120之间传送(例如,传递)ddr命令。即,在一些实施例中,信道157可用于传送命令以致使从主机111到存储器装置120的位矢量运算的执行,而控制总线154可用于将dram命令(或另一类型的存储器接口的命令)从主机111传送到存储器装置120。在一些实施例中,经由控制总线154传送的dram命令(或其它类型的命令)可为用以控制dram的操作的命令(或用以控制其它类型的存储器、存储器存取装置或存储器接口的命令),例如ddr1 sdram、ddr2 sdram、ddr3 sdram、ddr4、ddr5及其它版本的ddr类型协议,但不限于此。在其它实施例中,存储器装置120可经由信道157向主机发送关于操作准备情况(readiness)的信号。在一些实施例中,信道157与控制总线154及/或数据总线156组合。此外,在一些实施例中,主机111可包含具有多个信道及/或控制总线的多个存储器装置120。
42.在一些实施例中,排序器132可包含超大指令字(vliw)类型的控制器,其经配置以对逻辑运算命令进行操作,并且控制逻辑131可经配置以响应于来自主机111的处理资源(未展示)的信号而向排序器132发出逻辑运算命令。例如,排序器132可经配置以对多个逻辑运算进行排序,使得可由排序器132发出复合运算命令。在一些实施例中,控制逻辑131可经配置以生成可执行指令,例如vliw类型指令或smid类型指令。在包含vliw类型指令控制器的实施例中,控制逻辑131可经配置以生成vliw作为位矢量运算命令。vliw可包括微码指令。排序器132可为或可包含vliw类型控制器,其经配置以将vliw解码成多个单独的微码指令。例如,排序器132可将vliw解码成指令以致使复合运算(例如,加法、乘法、点积,但不限于此)的执行。在一些实施例中,复合运算命令可提供进入vliw指令序列的入口点以致使执行此类复合运算。在包含smid类型指令控制器的实施例中,控制逻辑131可经配置以生成数
据单元,例如数据矢量,但不限于此,并且排序器132可致使对在数据单位中识别的多个数据点并行执行单个指令。
43.排序器132可耦合到存储器装置120并且可经由信道157将用以协调位矢量运算的命令传递到存储器装置120。微码指令可由排序器132本身及/或由存储器装置120中的其它组件(例如,位矢量运算时序电路系统139、时序电路系统133、时序管理电路系统135及/或感测电路系统150)按顺序及/或并行执行。例如,存储器阵列130可包含dram阵列、sram阵列、stt ram阵列、pcram阵列、tram阵列、rram阵列、“与非”快闪阵列及/或“或非”快闪阵列。存储器阵列130可包含布置成由存取线耦合的行的存储器单元,存取线在本文中可被称为字线或选择线,以及由感测线耦合的列,所述感测线可在本文中被称为数据线、数字线或位线。尽管图1中展示单个存储器阵列,但实施例不限于此。例如,存储器装置120可包含多个存储器阵列130(例如,多个存储体的dram单元、“与非”快闪存储器单元等)。
44.存储器装置120包含地址电路系统142以锁存用于通过i/o电路系统144在总线156(例如,数据/地址总线)上提供的数据的地址信号。状态及/或异常信息可通过包含信道157的接口(例如,高速接口(hsi))从存储器装置120上的控制器140提供到信道控制器143。地址信号通过地址电路系统142接收并且由行解码器146及列解码器152解码以存取存储器阵列130。通过使用感测电路系统150感测数字线上的存储器单元的状态,可从存储器阵列130读取数据。取决于存储器单元技术,存储器单元的状态可被感测为例如电压及/或电流改变、磁状态改变、电阻率及量子态等。感测电路系统150可从存储器阵列130读取及锁存页(例如,行)数据。i/o电路系统144可用于通过数据总线156与主机111进行双向数据通信。写入电路系统148可用于将数据写入到存储器阵列130。在一些实施例中,写入电路系统148与感测电路系统150组合。在其它实施例中,感测电路系统150可为列解码器152及/或行解码器146的一部分。在一些实施例中,控制总线154可用作dram控制及寻址的控制及地址总线两者(例如,根据其中控制总线154作为单向数据总线操作的ddr协议)。尽管在图1中展示为单独的总线,但在一些实施例中,控制总线154及数据总线156可并非单独的总线。控制器140(例如,存储器控制器)可解码由控制总线154从主机111提供的信号。这些信号可包含用于控制对存储器阵列130执行的dram操作(包含数据读取、数据写入及数据擦除操作)的芯片使能信号、写入使能信号及地址锁存信号。在各种实施例中,控制器140可负责执行来自主机111的指令以及排序对存储器阵列130的存取。控制器140可包含状态机、排序器或一些其它类型的控制器并且包含专用集成电路(asic)形式的硬件及/或固件(例如,微码指令)。在多个实施例中,控制器140可包含位矢量运算时序电路系统139。控制器140可控制例如感测电路系统150。例如,控制器140可控制时钟信号的生成及时钟信号的应用以计算与执行位矢量运算相关联的分量。
45.如在图1中所展示,位矢量运算时序电路系统139可包含时序电路系统133及时序管理电路系统135。时序电路系统133可包含fifo缓冲器以提供与存储器单元的存储器阵列130相关联的感测电路系统150的时序协调。在一些实施例中,时序电路系统133可包含状态机,例如原子状态机。
46.时序管理电路系统135可经配置以协调与位矢量运算相关联的逻辑运算(例如,逻辑运算序列)的时序,所述位矢量运算是使用与存储器阵列130相关联的行地址选通(ras)/列地址选通(cas)组件136执行。ras组件136可经配置以向存储器阵列130发送及/或从所述
存储器阵列接收信号(例如,ras/cas信号)以识别及/或选择存储器阵列130的行及/或列地址。在一些实施例中,存储器装置120可经配置以执行例如存储器阵列存取请求的dram操作,所述存储器阵列存取请求可由主机111经由总线154发出。在一些实施例中,时序管理电路系统135可经配置以执行指令以控制位矢量运算的执行的时序。
47.在一或多个实施例中,控制器140的部分(例如,位矢量运算时序电路系统139、时序电路系统133及/或时序管理电路系统135)可包含对例如32及/或64个位长指令进行操作的精简指令集计算机(risc)类型控制器。在各种实施例中,时序管理电路系统135可负责执行从时序电路系统133接收的指令以引起涉及与感测电路系统150相关联的数据值的位矢量运算的执行。
48.如下文进一步所描述,在多个实施例中,感测电路系统150可包含多个感测组件,所述多个感测组件可各自包含感测放大器及计算组件。计算组件可用作累加器,并且感测电路系统150可用于执行位矢量运算(例如,对与互补数字线相关联的数据)。在多个实施例中,感测电路系统150可用于在不经由数字线地址存取传送数据的情况下(例如,在不触发列解码信号的情况下)使用存储在存储器阵列130中的数据作为输入来执行位矢量运算及/或将运算的结果存储回到存储器阵列130。例如,各种操作(例如,位矢量运算)可使用感测电路系统150且在感测电路系统150内执行,而非通过在感测电路系统150外部的处理资源(例如,通过与主机111相关联的处理资源及/或其它处理电路系统,例如位于存储器装置120上(例如,在控制电路140上或别处)的alu电路系统)执行(或与其相关联)。在多个实施例中,感测电路系统150(例如,多个感测组件)可用于以simd(单指令多数据)方式执行位矢量运算,其中感测组件在每列基础上用作1位处理元件。在感测电路系统150执行位矢量运算的实施例中,感测电路系统150可用作及/或被称为“存储器内嵌处理器”。如下文更全面地所描述,在一些实施例中,感测电路系统150可包含排序器(例如,类似于排序器132)。在其它实施例中,邻近感测组件可在彼此之间交换数据位,从而基于多个数据源产生计算。在其它实施例中,感测组件可取决于其在感测电路系统150内的位置产生不同的计算,因此以vliw或simd方式提供计算。在感测电路系统150执行位矢量运算的实施例中,感测电路系统150可用作及/或被称为“存储器内嵌处理器”。如下文更全面地所描述,在一些实施例中,感测电路系统150可包含排序器(例如,类似于排序器132)。
49.在各种方法中,例如,与操作数相关联的数据可经由感测电路系统从存储器读取并且经由i/o线(例如,经由局部i/o线及/或全局i/o线)提供给外部存储器阵列alu电路系统)。外部存储器阵列alu电路系统可包含多个寄存器,并且将使用操作数执行位矢量运算,并且可经由i/o线将结果传送回到阵列。在其它实施例中,感测电路系统150经配置以在无需启用耦合到感测电路系统150的i/o线(例如,本地i/o线)的情况下对存储在存储器阵列130中的数据执行位矢量运算并且将结果存储回到存储器阵列130。
50.在多个实施例中,可能不需要在存储器阵列130及感测电路系统150外部的电路系统来执行运算,因为感测电路系统150可在不使用外部处理资源的情况下执行适当的位矢量运算。因此,感测电路系统150可用于至少在一定程度上补充及/或替换此类外部处理资源(或至少此类外部处理资源的带宽消耗)。然而,在多个实施例中,除了由外部处理资源(例如,主机111)执行的逻辑运算之外,感测电路系统150还可用于执行逻辑运算(例如,执行指令)。例如,主机111及/或感测电路系统150可限于仅执行某些逻辑运算/或特定数目个
逻辑运算。
51.启用i/o线可包含启用(例如,接通)具有耦合至解码信号(例如,列解码信号)的栅极及耦合到i/o线的源极/漏极的晶体管。然而,实施例不限于在不启用阵列的列解码线的情况下使用感测电路系统(例如,感测电路系统150)来执行逻辑运算。无论本地i/o线是否与经由感测电路系统150执行逻辑运算相关联地使用,可启用本地i/o线以便将结果传送到适当位置而不是传送回到存储器阵列130(例如,到外部寄存器)。
52.本公开的各种实施例涉及处理snn中的尖峰事件,并且更具体地涉及执行pim尖峰事件操作。根据本文中所描述的各种实施例,在snn中,源神经元的突触前尖峰信号通过执行pim操作路由到目的地神经元。例如,至少部分地通过对一或多个电阻式存储器阵列执行pim操作来仿真snn。另外且更具体地,根据本文中所描述的各种实施例,在snn中,执行pim操作以除其它外根据其适当目的地过滤突触前事件,确定何时触发突触前尖峰事件,确定何时突触前尖峰事件变成尖峰事件,维持神经元膜电势,生成尖峰事件,调整突触权重等。
53.图2描绘包含多层级神经元的snn 200的实施例。snn 200包含经由突触230(也被称为突触连接)连接到第二层级神经元(例如,包含目的地神经元220-1、目的地神经元220-2及目的地神经元220-3的目的地神经元220)的第一层级神经元(例如,包含源神经元210-1、源神经元210-2及源神经元210-3的源神经元210)。为了简洁及清晰起见,snn 200中仅描绘两层级神经元。然而,snn 200可包含任何数目层级的神经元。另外,每一层级神经元可包含任何数目个神经元。例如,snn 200中任何层级中的源神经元可各自包含数千个神经元,其中第一层级中的每一神经元(例如,源神经元210)与下一层级中的每一神经元(例如,目的地神经元220)具有突触230(或突触连接)。在此类实例中,突触230-1将神经元210-1与神经元220-1连接在一起,突触230-2将神经元210-2与神经元220-1连接在一起,并且突触230-3将神经元210-3与神经元220-1连接在一起。同样地,神经元210-2与每一目的地神经元220具有突触连接,并且神经元210-3与目的地神经元220中的每一个具有突触连接。
54.源神经元210中的每一个可接收由snn 200的先前层级或层(未展示)中的多个神经元生成的输入(例如,尖峰事件205)。如此,源神经元210可被认为是目的地神经元,而先前层级中的神经元可被认为是源神经元。本文中使用术语“层级”是为了便于表示。层级没有固定边界,并且层级可为任一组选定神经元,所述神经元是按照某些准则(例如神经元功能、局部性、接近度等等)选择,包含随机选择。因此,神经元可在层级内形成连接。因此,任何层级的一组源神经元中的任何神经元也可是任何其它层级的任一组目的地神经元中的目的地神经元。类似地,任何层级的一组目的地神经元中的任何神经元也可为任何其它层级的任一组源神经元中的源神经元。尖峰事件205可表示到源神经元210的输入电流。此电流可在神经元(例如,神经元210)的神经元膜上累积以对膜电势进行充电。当膜电势达到阈值时,神经元生成并且触发输出尖峰以传送到下一层级神经元(例如,目的地神经元220)。
55.可通过突触230(或突触连接)实现从一个层级神经元(例如,源神经元210)到下一层级神经元(例如,目的地神经元220)的尖峰传送。突触230可接收来自源神经元210的输出信号(例如,尖峰)并且将信号发射到目的地神经元220。例如,当神经元210-1接收一或多个尖峰事件205并且达到阈值电势值时,神经元210-1出现“尖峰”并且将输出尖峰经由突触230-1发射到(1)目的地神经元220-1,(2)经由突触发射到目的地神经元220-2,及(3)经由突触发射到目的地神经元220-3。
56.另外,突触230在接收到来自源神经元210的输出信号时,可根据可调整突触权重来缩放信号。如此,突触将组合的缩放信号作为输入信号提供给目的地神经元。例如,当神经元210-1接收一或多个尖峰事件205并且达到阈值电势值时,神经元210-1出现“尖峰”并且将输出尖峰经由突触230-1发射到(1)目的地神经元220-1,(2)经由突触发射到目的地神经元220-2,及(3)经由突触发射到目的地神经元220-3。例如,沿着突触230-1从神经元210-1到神经元220-1的尖峰信号缩放突触权重w_1(并且从神经元210-1到神经元220-2及220-3的尖峰信号可缩放相同或其它权重),沿着突触230-2从神经元210-2到神经元220-1的尖峰信号缩放突触权重w_2(并且从神经元210-2到神经元220-2及220-3的峰值信号可缩放相同或其它权重),并且沿着突触230-3从神经元210-3到神经元220-1的尖峰信号缩放突触权重w_3(并且从神经元210-3到神经元220-2及220-3的尖峰信号可缩放相同或其它权重)。因此,目的地神经元220可基于对应组合输入信号生成输出尖峰(例如,尖峰事件207)。然后使用snn 200中的另一突触网络将输出尖峰(例如,尖峰事件207)发射到另一层级或层的神经元(未展示)。
57.在snn中处理尖峰事件所需的带宽可相当大。以下描述提供处理snn所需带宽的实例。一般来说,在snn中,每1毫秒(ms),3-5%的神经元生成尖峰。在各种实施例中,每一尖峰事件由小数据结构表示:源神经元id,及尖峰时间戳(尖峰时间戳是任选的并且可从snn时间间隔推断,如进一步所展示)。平均每一snn神经元连接到约1000个其它神经元。神经元生成的尖峰会在一些延迟之后递送到所有连接。在递送时,这些尖峰事件变成突触事件。例如,当源神经元id与目的地突触id匹配时,尖峰事件变成突触事件,并且由snn系统实施例在尖峰加连接加连接延迟时生成的尖峰时间戳对应于当前snn系统时间戳。
58.另外,每一连接的延迟值不同,且通常平均在1到100ms或50ms之间(浮点或整数)。尖峰时间戳对每一尖峰事件是唯一的。因此,可能期望在尖峰定于特定突触处及时递送尖峰。对于具有100万(m)个神经元(人脑的0.001%)的小型snn:5%尖峰
×
1m神经元
×
每神经元1000个连接
×
每突触事件64字节(b)=400mb/ms或400gb/s。也就是说,仿真snn的计算系统需要具有硬件及带宽来发射400mb/ms(或400gb/s)。在一些常规计算系统中,处理资源(例如,处理器及相关联的功能单元电路系统)可能无法在此等要求下通过总线发射数据。因此,需要一种计算系统来处理需要高数据传输带宽的snn事件(例如,突触前事件、尖峰事件等)。如下文将更详细所描述,高带宽需求可通过电阻存储器阵列上的层次路由及紧凑事件存储来充分满足。例如,在电阻式存储器阵列上实施的pim操作可通过减少及消除外部通信来节省时间及/或节省电力。如本文中将进一步详细所描述,可至少部分地通过对一或多个电阻存储器阵列(例如,图1的存储器阵列130)执行pim操作来仿真snn(例如图2的snn 200)。
59.图3描绘用于尖峰事件的数据分区及路由的系统300的实施例。系统300包含多个存储器块,例如存储器块310及网络350。在各种实施例中,存储器块310包含电阻式存储器阵列。通常,电阻式存储器阵列是一类型包括存储器单元的非易失性随机存取计算机存储器,其电阻(即,跨存储器单元流过的电流量作为跨存储器单元施加的功能电压)可改变。此类存储器单元可为存储器元件、pcm单元、3d x点、类似二极管的单元,以及甚至基于晶体管的单元,其阈值电压可调整,且因此此调整可提供跨存储器单元调制电流的能力(例如,具有浮动栅极晶体管的快闪存储器元件)。在各种实施例中,存储器块310包含单个存储器裸
片、存储器数据块等。
60.存储器块310包含在snn中的一子组神经元330。神经元330可为snn中的任一子组神经元。应了解,存储器块310包含神经元与神经元之间的突触(例如,突触230)两者。如此,神经元330还可包含与神经元相关联的突触。
61.在实例中,神经元330包含snn的特定层或层级中的神经元。在此类实例中,参考图2,神经元330包含目的地神经元220。snn中的其它子组神经元存储在也耦合到网络350的其它存储器块(未展示)中。如此,snn(例如,snn 200)的神经元及突触被划分为块并且这些块由网络350连接。在各种实施例中,网络350包含可为数字或模拟的环形或圆环拓扑。应了解,神经元的划分可包含层次块组织。例如,第一大型存储器块是许多较小存储器块的集合。
62.以特定的时间间隔(例如,每1ms),神经元块生成尖峰事件。例如,神经元330中的一或多个(例如,目的地神经元220)生成尖峰316(例如,尖峰事件207),所述尖峰经由网络350广播到其它块(未展示)中的其它神经元。同时(例如,在相同时间间隔或时间段内),来自同时(例如,在相同时间间隔或时间段内)生成的其它块的尖峰312到达多个块(例如,系统300中的每个单个块)处.例如,来自其它块(例如,存储在其它块中的源神经元210)的尖峰312在块310中被广播到神经元330。在一些实例中,时间的间隔、时段或持续时间可被称为时间量子,并且间隔、时间间隔及系列时间间隔可被称为系列时间量子。
63.在各种实施例中,对于1m个神经元及64b个尖峰事件基准,网络350上的尖峰广播可估计为例如:5%的神经元尖峰
×
1m神经元
×
64b/突触事件=400kb/ms或400mb/s。另外,在一些实施例中,系统300可需要40mb的存储来本地保留突触事件(例如,400kb
×
100ms最大延迟)。通过网络350广播尖峰事件可经由共享存储器(例如,每1m神经元只需要400kb)或经由特殊总线或混合方法(两者的组合)来实施。
64.在一些实施例中,系统300中的存储器的一或多个块(例如,每一块)包含过滤器。例如,块310包含过滤器320。过滤器320经配置以传递在块310中具有目的地的尖峰。更具体地,例如,在每一时间量子(例如,每1ms),过滤器320过滤尖峰312并且使具有在块310中的目的地的过滤尖峰314通过。
65.在各种实施例中,过滤器320可至少部分地基于神经元id来过滤尖峰312。例如,尖峰312包含神经元id(例如,源神经元的id)并且神经元330包含突触id(即,与这些突触连接到的源神经元id匹配的突触的id)。如此,过滤器320使过滤尖峰314通过,所述过滤尖峰具有与神经元330的突触id匹配的神经元id。对于1m个神经元及32b个神经元id,每一块的每一本地过滤器(例如,块310中的过滤器320)可在每个块处以例如200kb/ms或200mb/s的速度执行部分地址匹配(即,5%尖峰
×
1m神经元
×
32b/神经元id=200kb/ms或200mb/s)。
66.在各种实施例中,替代过滤器320的匹配或过滤功能可包含具有预定算法分配的地址方案。例如,分配目标神经元,使得块id与源神经元id的某一部分匹配。由于唯一拓扑,这可能并非始终可能。在一些实施例中,可使用混合方法,包含过滤器及地址方案的组合。相同架构(在总线上组织的块,例如环)可用于其它神经模型:例如,深度神经网络(dnn)、人工神经网络(ann)、长短期存储器(lstm),其中每一块按顺序存储多组神经网络层,使得后续层将数据馈送到下一层。因此,块以菊花链方式工作。例如,每一块从先前块接收数据并且将数据推送到后续块的总线。另外,其可为特定于所使用的神经模型的任何数据,而不是
尖峰。神经网络的递归在块内是可能的,因为其将受益于低等待时间的本地通信。
67.图4描绘了过滤器400的实施例。在一个实施例中,过滤器400是过滤器320(如在图3中所展示)。过滤器400包含电阻存储器阵列420,并且经配置以从其它块中的神经元(例如,从存储在另一块中的神经元210(参见图2))接收尖峰事件(例如,图3中所展示的尖峰312)。例如,尖峰事件包含尖峰神经元识别410,例如源神经元210中的源神经元的识别。在各种实施例中,尖峰神经元识别410可包含n位数字(例如,例如00110011的8位数字)。
68.电阻式存储器阵列420包含多个字线422及位线424。在电阻式存储器阵列420的字线及位线的每一交叉处是电阻式存储器元件(例如,存储器元件、pcm元件、mtx等)。电阻式存储器阵列420中的每一位线存储目的地突触识别的位。例如,如在图4中所说明,第一位线沿着相应存储器元件存储目的地突触识别(例如,01111111),第二位线沿着相应存储器元件的存储目的地突触识别(例如,111101111),等等。参考图3,存储在电阻存储器阵列420中的目的地突触识别可包含神经元330的突触识别。特定目的地神经元的每一突触可存储在同一位线上(假设位线比图4上所描绘的长得多),或特定目的地神经元的突触可存储在若干位线上。
69.尖峰神经元id 410被发射在字线422上。例如,尖峰神经元id 410的bit0(“0”)被发射到第一字线上。尖峰神经元id 410的bit1(“0”)被发射在第二字线上。尖峰神经元id 410的bit2(“1”)被发射在第三字线上,等等。在各种实施例中,输入到字线422中的尖峰神经元id被分组为正极性正向传播阶段及负极性正向传播阶段。作为实例,尖峰神经元id 410到字线422的输入可分两个阶段完成。例如,第一阶段的位被发射在相应字线上。在发射第一阶段时,然后第二阶段的位被发射在相应字线上。
70.在尖峰神经元id 410沿着字线422发射时,相应感测放大器426的输出指示尖峰神经元id 410与沿着位线424存储的目的地神经元id之间是否存在匹配。在一个实施例中,在第一阶段的位被发射在相应字线上之后确定部分匹配。替代地,在第一及第二阶段的位被发射在字线422上之后确定完全匹配。如果存储器元件能够存储多个位,例如包含qlc、mlc、快闪存储器单元等的快闪存储器元件,那么可需要多于两个阶段。
71.在各种实施例中,失配的确定是基于对骤回事件的检测。替代地,匹配的确定基于没有检测到骤回事件。第一阶段中的骤回检测可用于中止第二阶段。在某些条件下,骤回事件可产生突然电导。骤回事件的发生往往会显著影响存储器单元的电流-电压行为。如此,例如,可提供响应于存储器单元中的骤回事件发生的感测电路。感测电路可生成一或多个反馈信号,所述反馈信号启动施加到存储器单元的电势的改变。
72.表1描绘基于检测骤回事件来确定匹配或失配。
73.表1:
[0074][0075]
输入状态是指尖峰神经元id 410的位的值。例如,bit0的输入状态为“0”,bit1的输入状态为“1”,等等。同样地,存储器状态是指沿着位线的存储器元件中的位的值。例如,
参考第五位线(从左起),目的地神经元id为00110011。如此,第一位的存储器状态为“0”,第二位的存储器状态为“0”,第三位的存储器状态为“1”,等等。
[0076]
注意,位线及字线选择方向两者均可在每一阶段改变。另外,未选定位线及字线保持在抑制电平。输入模式影响字线信号及位线信号两者。
[0077]
匹配的指示是由对应于位线的感测放大器生成的“1”(例如,从左起第五位线)的输出428。输出428是某个目的地神经元的匹配目的地突触id的位掩码。由于相同的源神经元针对多个目的地神经元,多个突触可具有相同的id。
[0078]
图5描绘系统500的实施例。在一个实施例中,系统500类似于系统300。例如,系统500包含块310、过滤器320、神经元330及网络350。此外,过滤器320经配置以接收来自网络350的输入尖峰312,并且传出尖峰316(来自神经元330)被发射到网络350。在各种实施例中,块310内的数据发射是经由路由元件530(例如,数据总线)。
[0079]
尖峰事件520可包含由过滤器320过滤的尖峰事件。在一个实施例中,尖峰事件520是过滤尖峰事件314(如至少关于图3所描述)。例如,尖峰事件520是具有在块310中的目的地并且通过过滤器320的一子组尖峰312。尖峰事件520被存储在块310中(在通过过滤器320时)。在各种实施例中,尖峰事件520中的每一尖峰事件包含存储器地址、尖峰神经元id及尖峰时间。
[0080]
块310包含指针表510,其经配置以存储通过过滤器320并且随后存储在块310中的尖峰事件520的标签。例如,指针表510包含已通过过滤器320的各种尖峰事件组的指针的标签。在各种实施例中,每时间量子(例如,每1ms),一组尖峰事件520通过过滤器320并且在块310中存储在指定的存储器阵列中。所述组在指针表510中经指派标签“0”,指示其是已通过过滤器320的最近的尖峰事件(在最近的时间量子)。其它先前过滤组的标签然后递增1。在一对神经元之间(例如,源神经元与目的地神经元之间)的最大可能延迟中存在与时间量子一样多的组。例如,给定100ms的最大延迟及1ms的时间量子,存在100个组及相关联标签。递增到100的标签变为“0”,并且先前存储尖峰事件被刚刚到达(最近时间量子)的尖峰事件(或简称尖峰)组覆盖写入。
[0081]
最大延迟可大于或小于100ms。例如,尖峰时序依赖可塑性(stdp)可需要仅比根据时间量子测量的最大延迟更多的组(例如,在给定最大延迟100ms及1ms单个时间间隔的状况下,100组),这将在下文更详细地进行描述。通常,stdp是调整大脑中的神经元之间连接(即,突触)的强度的生物过程。所述过程基于特定神经元的输出及输入动作电势(或尖峰)的相对时间来调整连接强度。
[0082]
在一个实施例中,尖峰事件的尖峰时间是任选数据以减少需要精确时序的snn子部分的时间量化。尖峰的时间介于0与1之间(时间量子内的精确值),因为时间间隔/量子及相关联标签暗示粗粒度时间。因此,尖峰事件520(及指针表510)是按时间量子分桶(bucketize)的所有突触前尖峰事件的紧凑表示。
[0083]
图6描绘系统600的实施例,所述系统经配置以将突触前尖峰事件转换为突触事件。特别地,系统600经配置以在存储器块(例如,块310)内转换突触前尖峰事件。
[0084]
系统600包含存储在存储器块的存储器阵列中的尖峰事件620。在各种实施例中,尖峰事件620(例如,过滤尖峰314、尖峰事件520)是例如来自源神经元的突触前尖峰事件。例如,参考图2,尖峰事件620是来自源神经元210的突触前尖峰事件。
[0085]
突触630(例如,突触230)可接收来自源神经元的输出信号(例如,尖峰)并且将信号发射到目的地神经元。突触630被存储在存储器块中的存储器阵列中,使得每一神经元的突触被存储在预定的可能连续区域中。突触也可存储在与存储尖峰事件620的存储器阵列分开并且不同的(并且不同于存储器阵列640的)存储器阵列中。
[0086]
每一神经元(例如,目的地神经元)具有突触前(传入)连接。在各种实施例中,连接(例如,突触)包含以下信息:突触前神经元id、精确延迟值(任选)及连接权重。
[0087]
另外,每一连接具有延迟,包含某一范围的延迟值:例如,在1ms与100ms之间。延迟值可以时间量子(例如,1ms、2ms、3ms等)的增量进行量化,或其可为精确的(例如,1.23523ms)。每一神经元的突触连接(具体地,突触前神经元id,即,源神经元的id)根据延迟的量化部分以1个时间量子的增量存储或分配在存储桶(bucket)中:例如,全部具有1ms的延迟的连接的存储桶,含有全部具有2ms的延迟的连接的存储桶,等等。精确延迟值可用来减少量化,但为任选的。精确延迟值是量化延迟的加法:例如,2ms(从存储桶编号暗示) 0.34234ms=2.34234ms,其中2.34234ms是精确值。某些需要高准确度的snn区段可能需要精确的延迟值。取决于实施例,此可为浮点或整数或一些其它定制格式。
[0088]
由多个神经元分组的突触630,其中神经元的每一突触连接进一步分组为量子存储桶。例如,神经元632(例如,目的地神经元)的突触连接被其延迟的值分成多个时间量子,例如,1ms时间间隔对应于1-2ms延迟,2ms时间对应于2-3ms延迟等等。类似地,神经元634(例如,目的地神经元)的突触连接被分成多个时间间隔,例如1ms时间间隔对应1-2ms延迟,2ms时间间隔对应于2-3ms延迟等等。此外,对应于来自不同神经元的相同时间间隔的突触组可沿着存储器阵列区段中的相同字线存储或分配。应了解,突触连接可被分成任何数目的时间间隔(例如,1ms到50ms,以1ms时间间隔)。另外,突触630包含两个神经元632及634,然而,应了解突触630可包含任何数目个神经元(例如,目的地神经元)。
[0089]
在每一时间量子,尖峰事件620的指针如先前所述递增(例如,0ms存储桶递增到1ms存储桶,1ms存储桶递增到2ms存储桶等等)。
[0090]
此外,在每一时间量子处,尖峰事件620的每个存储桶中的尖峰神经元id与对应突触存储桶中的突触前神经元id匹配(例如,1ms尖峰存储桶与1ms突触存储桶匹配,2ms突触存储桶与2ms突触存储桶匹配等等)。特别地,在每一时间量子,可确定尖峰事件620中的存储桶(例如,2ms存储桶)中的尖峰神经元id是否与突触630中的对应存储桶中的突触前神经元id匹配。例如,实施匹配函数,所述匹配函数确定尖峰事件620的2ms存储桶中的尖峰神经元id是否与神经元632及神经元634的2ms存储桶中的突触前神经元id匹配。在各种实施例中,匹配函数类似于由过滤器320及/或过滤器400实施的过滤,如先前所述。例如,字线驱动器可用对应于突触前神经元id(参见图4)的位的信号来驱动字线,并且感测放大器可确定位线上的失配或匹配。
[0091]
匹配指示尖峰事件预定于在所述特定时间量子到达并且针对所述特定突触连接。例如,2ms的时间量子中的尖峰事件与2ms时间量子中的突触前id匹配。类似地,1ms时间量子中的尖峰事件与1ms时间量子中的突触前id匹配,等等。在各种实施例中,每一神经元的每个时间量子生成许多突触事件。
[0092]
在各种实施例中,匹配函数是并行的。例如,每一突触存储桶可位于不同存储器阵列中,并且匹配函数可并行确定匹配。在各种实施例中,神经元可分布在许多子阵列中等
等。在各种实施例中,可沿着字线分配来自许多神经元的突触前神经元id,使得来自许多神经元的属于相同延迟存储桶的id被并行测试匹配。这可导致并行搜索操作。替代地,可以串行方式进行匹配。例如,匹配函数可在单个阵列中一次一个存储桶地执行,只要存储桶是在实时量子到期之前生成的。此方法的许多流水线及多路复用变体是可能的。
[0093]
响应于由匹配函数生成的匹配,在每一时间量子处,生成突触事件的位掩码。例如,匹配函数的实施类似于图4中的过滤器400。匹配的输出包含位掩码。再次参考图6,匹配函数的匹配的输出是对应于目的地突触614的匹配突触id(例如,位掩码)。
[0094]
在一些实施例中,可为不同的神经元合并位掩码。然而,上述情形可以空间效率为代价完成。例如,考虑用于合并的神经元组中的常见连接越多,共用位掩码越小。在一个实例中(即,时间量子中没有共用突触前神经元),组中神经元的数目显著增加了共同位掩码。在另一实例中(即,时间量子中的所有突触前神经元均是共用的),共用位掩码对所有突触前神经元是相同的。在一些实施例中,位掩码对于每一神经元是特定的。在一些实施例中,平均5%的突触连接每一时间量子获得突触事件。例如,对于1000个传入连接,上述情形每时间量子产生50个突触事件。因此,位掩码的大小是稀疏的(1000中~50个设置位)。位掩码也可被压缩。
[0095]
在一些实施例中,可避免匹配函数。例如,如果网络连接性经模式化并且可以紧凑的方式在算法上进行描述(例如,以阵列空间为代价,3位数字到8位1-hot),那么可避免匹配函数性。也可实施混合的匹配方法(例如,层次路由过滤器及匹配函数、事件地址及匹配函数等)。
[0096]
在各种实施例中,存储器阵列640有助于根据位掩码对突触前事件进行整合。在各种实施例中,存储器阵列640与用于存储尖峰事件620的存储器阵列及用于存储突触630的存储器阵列是分开的并且不同的。
[0097]
存储器阵列640包含多个字线(例如,wl0及wl1)及多个位线(例如,bl0及bl1)。存储器元件(或电阻装置)位于每一字线与位线的交叉处。在各种实施例中,存储器元件用于存储突触连接的权重。例如,存储器元件的电阻或电导被调整为对应于突触连接的权重。突触连接的权重可存储在单个位线上的一或多个存储器元件中(或可存储在多个位线上)。
[0098]
驱动器642可驱动对应于一或多个字线上的匹配突触(例如,位掩码)的信号(例如,电压信号或电流信号)。每一相应位线处的感测放大器(例如,感测放大器644及646)可基于从对应存储器元件输出的电流而生成输出电压。积分电路系统650(其包含感测放大器)可对感测放大器的输出进行积分。在满足神经元的阈值电势值时,可生成尖峰616。因此,存储器阵列640至少部分地仿真snn中的尖峰事件。例如,(1)由驱动器642驱动的信号仿真突触前事件,(2)字线、位线及存储器元件仿真突触及对应权重,及(3)感测放大器仿真神经元。
[0099]
对突触事件的积分可包含取决于数据表示的各种实施,例如(1)突触权重的数字表示或(2)突触权重的模拟或混合信号表示。在一个实施例中,如果突触权重是数字的(浮点或整数),那么计算是针对位掩码的“设置”位置的突触电导方程的点积。例如,计算(或积分)基于恒定的突触电流乘以突触权重。在各种实施例中,积分由感测放大器(例如,感测放大器644及646)执行,所述感测放大器包含内置乘积累加(mac)单元(例如,mac单元645)。在各种实施例中,感测放大器提供神经元膜方程的函数。
[0100]
另外,突触权重可以位串行或位并行方式数字存储在存储器阵列640的某一区段上。在此实施方案中,如果时间量化效应并非所要的,那么感测放大器可使用任选数据(例如,每一突触前尖峰事件及精确延迟供应的时间戳)计算精确时间尖峰处的积分。此任选数据可产生突触事件跳转到下一存储桶(但仅此而已)。
[0101]
在模拟或混合信号实施方案中,突触权重存储在不同(或相同)的存储器阵列中。每一权重可由一或多个电阻存储器单元表示。位掩码按顺序呈现。例如,驱动器642按顺序驱动位掩码。对于此序列的每一周期,启用有关位线。
[0102]
序列的大小取决于多少神经元具有共用连接。例如,如果神经元中的每一个是共用的,那么在一个周期中为所有位线(或数据线)呈现一个序列。在各种实施例中,如果提供任选数据(例如,每一字线的突触电流、准确的突触事件时间等),那么根据突触电流强度并且以规定的准确时间值驱动每一字线。
[0103]
在一些实施例中,可以各种方式对在字线上驱动的信号进行编码:脉冲、频率、振幅(电流及电压)、形状(例如,锯齿、上斜坡-下斜坡)、尖峰等等。如上文所述,感测放大器表示神经元功能。例如,感测放大器对位线执行电流积分并且求解以及保持膜电势动态,并且检测目标神经元何时出现尖峰(例如,尖峰616)。为了更好的并行性,神经元及相关联位线可分裂成多个组,并且与共享字线驱动器多路复用。
[0104]
应了解,存储突触权重也可在发生匹配的同一阵列中完成。例如,突触前神经元id与权重混合在一起。在此类实例中,存储器阵列将执行双重功能:在第一组周期中,其将生成突触掩码,且在第二组周期中,其将通过将突触掩码反馈给自身(字线)但以不同位线(存储权重信息的位线)为目标来执行积分。可对那些组周期进行时间多路复用及交错以获得较佳效率。
[0105]
图7描绘突触加权中的stdp结果的实例曲线图。y轴指示突触权重(例如,电导的改变),且x轴指示时间。垂直线(在ltd与ltp之间)指示后尖峰(例如,由目的地神经元产生的尖峰)发生的时间。对于突触前尖峰在突触后神经元产生尖峰之前到达其目的地突触的情况,对应突触权重增加,如曲线图部分702中所说明。此权重增加可被称为突触的长时程增强(ltp)。从曲线图部分702可观察到,ltp的量可根据突触前尖峰时间与突触后尖峰时间之间差异大致指数地下降。相反,对于在突触后神经元生成尖峰之后突触前尖峰到达其目的地突触时的情况,对应突触权重减少,如在曲线图部分704中所说明。此权重减少可被称为长时程减弱(ltd)。从曲线图部分704可观察到,ltd的量可根据突触前尖峰时间与突触后尖峰时间之间差异大致指数地减少。如在图7中所说明,突触权重训练曲线可能是不对称的。对于短的尖峰间间隔,由部分702表示的ltp权重增量可能更大,但可比ltd权重间隔衰减得更快。
[0106]
在各种实施例中,对于在ltd窗内到达的尖峰后突触事件,突触后神经元尖峰时间是已知的。因此,突触电导的调整很容易基于已知的突触后神经元尖峰时间确定。在各种实施例中,对于ltp窗内的尖峰前突触事件,突触电导的调整是一个挑战,因为:(1)突触后神经元尖峰时间是未知的;(2)每个时间量子可带来新的突触前事件,这可干扰膜电势并且影响突触后神经元的尖峰时间(对于兴奋性突触,其突触前事件促进突触后神经元尖峰的生成,对于抑制性突触,其突触前事件延迟突触后神经元尖峰生成),并且(3)时间量子大约为1ms,而ltp窗跨越约50ms。因此,突触后尖峰时间是不确定的,直到目标神经元实际上在当
前时间量子中形成尖峰。
[0107]
生物学通过在每个单个突触打开“合格窗”用神经调质、“第二信使”及受体以细胞内水平解决此问题。此窗与stdp规则成比例地随时间衰减:即,在前数微秒期间,如果目标神经元尖峰及其潜在波反向传播到突触,那么突触非常容易受到改变的影响。然而,在没有此反向传播的电势波的情况下,实际的突触电导不会改变。如果另一突触前事件在突触后神经元尖峰之前到达,其将添加到已打开的“合格窗”。
[0108]
在计算机仿真或模拟网络中,在各种实施例中,为了解决上述问题,存储ltp窗的时间长度内的所有或最近的突触前事件(即,其时间戳),且然后,一旦突触后神经元生成尖峰,重播这些事件,并且相应地调整突触电导值。在另一实施例中,上述问题通过在存储器阵列的存储器单元中实施“合格窗”特征来解决。
[0109]
再次参考图6,来自感测放大器的反馈路径被提供给相应位线。在一个实施例中,根据stdp规则,反馈路径提供减弱,以解决尖峰后到达突触前事件的问题。
[0110]
图8是根据本公开的各种实施例的将标签指派给指向突触前尖峰事件的指针的方法800的流程图。方法800可根据本公开中所描述的至少一个实施例来布置。在一些实施例中,方法800可由装置或系统(例如图1的系统100、图3的系统300、图5的系统500及/或图6的系统600,或另一装置或系统)执行。尽管被说明为离散块,但取决于所要实施方案,各种块可被划分为额外块、组合成更少的块或被消除。
[0111]
在方法800的框810,在snn的一系列时间量子中的第一时间量子,从snn的相应源神经元接收第一突触前尖峰事件。第一突触前尖峰事件包括相应源神经元识别。例如,至少参考图3,在第一时间量子(例如,1ms),从snn的源神经元(例如,源神经元210)接收尖峰312。在一个实施例中,来自每一神经元的突触前尖峰包含源神经元id,例如源神经元210-1的id、源神经元210-2的id等等。
[0112]
在框820,过滤一组第一突触前尖峰事件,所述组第一突触前尖峰事件具有至少部分匹配存储器块中的目的地神经元的目的地突触识别的源神经元识别。例如,过滤器320确定尖峰312中的源神经元id是否至少部分地匹配神经元330的目的地突触id(例如,目的地神经元220的id)。在确定匹配时,过滤器320将过滤尖峰314传递到块310。
[0113]
在框830,将所述组第一突触前尖峰事件存储在存储器块中。在确定滤波尖峰314时,将滤波尖峰314存储在块310中,例如,在块310的电阻存储器阵列中。例如,参考图5,将尖峰事件520(例如,过滤尖峰314)存储在块310中。
[0114]
在框840,将标签指派给存储器块中的指针表中指向所述组第一突触前尖峰事件的指针。标签与snn的一系列时间量子中的时间量子相对应。例如,仍然参考图5,指针表510包含与尖峰事件520的指针相关联的标签。
[0115]
在不脱离本公开的范围的情况下,可对方法800进行修改、添加或省略。例如,方法800的操作可以不同的次序实施。此外,所概述的操作及动作仅作为实例提供,并且一些操作及动作可为任选的,组合成更少的操作及动作,或扩展成额外操作及动作,而不偏离所公开的实施例的本质。例如,在各种实施例中,在每一连续的时间量子,指针表510中的标签递增到连续的时间量子。
[0116]
图9是根据本公开的各种实施例的生成与突触连接匹配的突触前尖峰事件的位掩码的方法900的流程图。方法900可根据本公开中所描述的至少一个实施例来布置。在一些
实施例中,方法900可由装置或系统(例如图1的系统100、图3的系统300、图5的系统500及/或图6的系统600,或另一装置或系统)执行。尽管被说明为离散块,但取决于所要实施方案,各种块可被划分为额外块、组合成更少的块或被消除。
[0117]
在方法900的框910,将目的地神经元的突触连接(即,突触及其相关联变量或值)存储在第一存储器阵列处,突触前连接中的每一个包含延迟值及传入神经元识别。基于延迟值将突触连接中的每一个分组在一起,并且其中延迟值中的每一个对应于snn的一系列时间量子中的时间量子。例如,突触630被存储在存储器阵列中。神经元632及634的突触被分组在时间量子的存储桶(例如,1ms存储桶、2ms存储桶等)中。神经元的突触中的每一个均包含识别。
[0118]
在框920,将来自相应源神经元的突触前尖峰事件存储在第二存储器阵列处。每一数目的突触前尖峰事件均包含传入神经元识别,并且按snn的一系列时间量子中的时间量子,将所述数目的突触前尖峰事件分组在一起。例如,参考图6,尖峰事件620被存储在时间量子存储桶(例如,0ms存储桶、1ms存储桶、2ms存储桶等等)中。每一尖峰事件620包含时间延迟(例如,对应时间量子)及传入神经元id(例如,源神经元id)。
[0119]
在框930,在第一时间量子,使目的地神经元的突触连接的传入神经元识别与源神经元的传入神经元识别匹配。例如,源神经元(具有源神经元id)的尖峰事件620与突触630的目的地神经元id匹配。此匹配特征可通过类似于过滤器320(过滤器400的)过滤器来实施。
[0120]
在框940,响应于匹配,在第二存储器阵列处,生成对应于突触前尖峰事件的位掩码的输出信号。例如,响应于匹配,生成与目的地突触614的id匹配的源神经元的id的位掩码。在此类实例中,于是将目的地突触614发送到存储器阵列640以经由驱动器642在字线上驱动。
[0121]
在不脱离本公开的范围的情况下,可对方法900进行修改、添加或省略。例如,方法900的操作可以不同的次序实施。此外,所概述的操作及动作仅作为实例提供,并且一些操作及动作可为任选的,组合成更少的操作及动作,或扩展成额外操作及动作,而不偏离所公开的实施例的本质。
[0122]
图10展示经配置以至少部分地基于突触前尖峰事件来生成突触事件的系统1000的实施例。特别地,系统1000经配置以在存储器(例如,存储器阵列1010)内生成尖峰事件。
[0123]
在至少一个实施例中,系统1000根据如关于图7所描述的stdp规则生成尖峰事件。如上文所描述,鉴于stdp规则,对于在ltd窗内到达的尖峰后突触事件,突触后神经元尖峰时间是已知的。因此,突触电导的调整很容易基于已知的突触后神经元尖峰时间确定。然而,对于ltp窗内的尖峰前突触事件,突触后尖峰时间是不确定的,直到目标神经元实际上在当前时间量子中形成尖峰。
[0124]
在本文中所描述的各种实施例中,为了解决上述问题,存储在ltp窗中接收的突触前事件,且然后,一旦突触后神经元生成尖峰,重播突触前事件,并且相应地调整突触电导值。
[0125]
系统1000包含存储器阵列1010。在至少一个实施例中,存储器阵列1010类似于如上文所描述的存储器阵列610。存储器阵列1010包含多个字线(例如,wl0、wl1等等)及多个位线(例如,bl0、bl1、bl2等等)。存储器单元安置在每一字线与位线的交叉处。例如,存储器
阵列1010包含沿着字线wl0(分别在bl0、bl1及bl2的交叉点处)的存储器单元1030、1032及1034,以及沿字线wl1(分别在bl0、bl1及bl2的交叉点处)的存储器单元1040、1042及1044。在各种实施例中,存储器单元包含存储器元件。在各种实施例中,存储器单元用于存储突触连接的权重。例如,将存储器单元的电阻或电导调整为对应于突触连接的权重。可将突触连接的权重存储在单个位线上的一或多个存储器单元中(或者可以存储在多条位线上)。
[0126]
驱动器1020可驱动对应于一或多个字线上的匹配神经元(例如,位掩码)的信号(例如,电压信号或电流信号)。耦合到一或多个位线的一或多个感测放大器(例如,感测放大器1052)可基于从对应存储器单元输出的电流生成输出电压。
[0127]
积分电路系统1050(其包含一或多个感测放大器)可对感测放大器1052的输出进行积分。在满足神经元的阈值电势值时,可生成尖峰1060。因此,系统1000至少部分地仿真snn中的尖峰事件。例如,(1)由驱动器驱动的信号仿真突触前事件,(2)存储器单元至少部分地仿真突触及对应突触权重,及(3)积分电路系统1050(其包含感测放大器)仿真一或多个神经元。例如,积分电路系统1050及/或感测放大器1052可仿真snn中的神经元。如此,感测放大器1052及积分电路系统1050在本文中可被描述为“神经元”、“神经元电路系统”或简称为“电路系统”。
[0128]
以下描述针对管理尖峰后到达突触前事件。尖峰后到达突触前事件是指突触前信号在目的地神经元生成尖峰之后到达目的地突触。鉴于stdp规则,如上文所描述,根据ltd窗调整(例如,减弱)突触电导(或突触权重)。
[0129]
存储器阵列1010包含从积分电路系统1050返回到耦合到积分电路1050的位线的反馈路径。例如,感测放大器1052耦合到反馈1055到位线bl0,并且耦合到反馈1057到位线bl1。
[0130]
提供从积分电路1050(或神经元电路系统)返回到相应位线的反馈路径解决尖峰后到达突触前事件的问题。根据stdp规则的ltd窗,应减弱那些事件的突触。如此,反馈路径提供正确电势的衰减偏压。在一个实施例中,将衰减偏压施加到位线上的每一存储器单元(例如,全局地施加到每一单元)。例如,将衰减偏压信号从反馈1055施加到bl0。因此,将衰减偏压施加到bl0上的单元1030及单元1040。同样地,例如,将衰减偏压信号从反馈1057施加到bl1。因此,将衰减偏压施加到bl1上的单元1032及单元1042。衰减偏压可为差分的,以便操作感测放大器1052,所述感测放大器也可为差分的。
[0131]
在各种实施例中,反馈信号(或衰减偏压)由积分电路1050(或神经元电路系统)响应于在存储器阵列中的位线上驱动的突触前事件而生成。此外,在各种实施例中,积分电路1050(或神经元电路系统)从存储器阵列接收输出信号,所述输出信号指示由存储器阵列接收的突触前信号。
[0132]
如果任何突触前事件在此衰减偏压期间(在ltd窗中)到达,那么对应于突触前事件的单元电导值将根据在其到达时刻的衰减偏压进行调整。施加到位线的衰减偏压可通过以多种方式变化位线反馈电势或电流来编码,例如但不限于脉冲、频率、振幅(电流及电压)、形状(例如,锯齿、上斜坡-下斜坡)、尖峰等等。由驱动器1020(其仿真突触前事件)在字线上驱动的突触前信号也可通过使反馈电势或电流变化来编码。由于编码的偏压及编码的突触前信号(由驱动器1020驱动)之间的交互,根据ltd规则调整存储器单元电导,并且基本上同时感测放大器1052根据经调整电导接收突触电流。突触电流可由积分电路系统1050
(其包含一或多个感测放大器)进行积分,所述积分电路系统可对感测放大器1052的输出进行积分。在满足神经元的阈值电势值时,可生成输出尖峰1060。
[0133]
在各种实施例中,存储器阵列1010能够在亚阈值域中对突触前电流进行积分而没有存储器单元骤回。如上文所描述,骤回事件可产生存储器单元中的突然电导。骤回事件的发生往往显著影响存储器单元的电流-电压行为。由于存储器阵列1010能够在亚阈值域中操作,所以位线上的电流积分上所花费的功率可非常低。
[0134]
在各种实施例中,存储器阵列1010启用阈值延迟效应。阈值延迟效应是施加到存储器单元的偏压(例如,单个脉冲或多个脉冲),其改变存储器单元的有效阈值(及电流-电压(i-v)曲线)而不引起骤回。另外,偏压的影响会在某一时间之后消失。因此,代替向位线施加全局衰减反馈偏压,可在尖峰后立即向位线施加阈值调制偏压脉冲。因此,位线上的每一单元的阈值以单独方式增加或减少(取决于实施方案)。换句话说,由于每一存储器单元的唯一性(即,每个存储器单元与其它存储器单元略有不同),每一存储器单元的单元衰减ltd窗(以漂移i-v曲线的形式)是唯一的。
[0135]
图11描绘阈值延迟效应的可能分布。一或多个阈值由粗线描绘(例如,阈值1110)。响应于单个脉冲或多个脉冲,阈值分布移位,如由虚线所描绘(例如,移位阈值1120)。在各种实施例中,如果用长的选择时间(预偏压)测量,那么阈值分布向原点移位。
[0136]
阈值延迟效应是突触神经动力学中的所要特征,因为突触彼此唯一,但其也遵循相同的stdp规则。根据stdp规则,每一突触的偏压漂移应是指数的,并且在50个时间量子内返回到原始状态。在各种实施例中,尖峰后到达字线上的突触前事件中的每一个将在其到达时将经历单元i-v曲线的唯一(对于其目标单元)“快照”。例如,在字线wl0上驱动的突触前信号可在信号到达存储器单元1030时受存储器单元1030(参见图10)的i-v曲线的“快照”的影响。另外,紧在突触前事件到达存储器单元处时,可对存储器单元电导采取动作以永久“固定”存储器单元的i-v曲线“快照”。在各种实施例中,永久“固定”i-v曲线“快照”的动作可为(1)发送刷新脉冲,及/或(2)每神经元具有两个存储器单元:一个单元(例如,存储器单元1030)用于漂移如所描述的电导或i-v曲线,以及另一单元(例如,存储器单元1032;参见图10)用于固定永久电导(例如,不同于使用不同于“阈值延迟效应”的特征)。另外,在各种实施例中,当突触前事件到达存储器单元处时,将漂移的存储器单元的模拟值拷贝到另一存储器单元。例如,上述情形可通过逐次逼近差分感测转换器(未展示)来完成。在一些实施例中,对于尖峰后到达突触前事件(ltd),可避免阈值延迟效应。然而,ltp可非常期望阈值延迟效应。
[0137]
以下描述针对在神经元尖峰之前管理突触前事件。鉴于stdp规则,如上文所描述,根据ltp窗调整(例如,减弱)突触的突触电导(或突触权重)。还应注意,仿真ltp的挑战是不确定的突触后尖峰时间,使得在发出实际尖峰之前,所有突触前事件对突触后尖峰的贡献是未知的。
[0138]
在至少一个实施例中,ltp窗通过存储与每一突触对对准的突触前事件的时间戳来建模。当突触后神经元在某个时间出现尖峰时,在字线上读取时间戳。计算时间戳与尖峰时间之间的时间增量,并且根据时间增量调整权重。例如,在时间t1时在字线wl1上驱动突触前信号(基于突触前事件)。然后将时间t1存储在例如单元1044(参见图10)的存储器单元上。在时间t2,仿真神经元的尖峰的积分电路1050生成尖峰(例如,尖峰1060)。然后确定t2
及t1的增量。然后基于stpd规则的ltp窗调整存储器单元(例如,单元1042)的电导(例如,突触权重)。例如,参考图7,t2及t1的增量是基于图700的部分702来确定,其中部分702指示根据突触前尖峰时间与突触后尖峰时间之间差异的电导的改变。
[0139]
此外,在一些实施例中,阈值延迟效应可用于“虚设”或推测电导增强,犹如在突触电导的改变最高时,在突触前事件到达的时间量子中发生突触后尖峰(阈值减少到最小值或最大值,此取决于实施方案)。与ltd状况相似(如上文所描述),i-v曲线将在约50个时间量子之后漂移回到其原始状态。然而,如果突触后神经元尖峰在此窗期间出现,那么立即对单元电导采取行动,以在尖峰时永久固定单元电导,并且考虑确切时间的i-v曲线“快照”。
[0140]
在一些实施例中,由于存储器单元电导通过“虚设”或推测电导增强而偏离,所以使用每突触至少两个单元(类似于上文所描述的ltd状况)。例如,第一存储器单元(例如,存储器单元1030)用于正常电流积分的原始电导状态,而第二存储器单元(例如,存储器单元1032)用于阈值调制。两个单元在原点处包含相同的电导。因此,在ltp窗内到达的任何突触前事件可将电流注入到第一单元中并且参与膜电势干扰,并且同时重新调整“虚设”或推测电导增强的第二单元的i-v阈值。
[0141]
另外,在一些实施方案中,两个单元在突触后尖峰时具有相同电导。例如,来自阈值调制单元(例如,存储器单元1032)的电导被“拷贝”到第一单元(例如,存储器单元1030),以使得保留突触的状态。立即在尖峰后且在两个单元获取相同电导的“副本”之后,一个单元(例如,存储器单元1032)进入如上文所描述的ltd模式(阈值增加),且另一单元(例如,存储器单元1030)进行电流积分。在一些实施例中,单个单元可用于ltd模式及电流积分两者。在一些实施例中,多于两个单元用于实施ltd模式及电流积分。
[0142]
作为自然阈值漂移的替代方案,每个时间量子使用强制阈值调整(例如,对于接收突触事件的单元,每个时间量子减少95%)。如果自然阈值漂移不符合仿真突触事件的一或多个要求,那么可使用强制阈值调整。强制阈值允许对阈值调整及直接使用“永久”阈值的改进控制。另外,可根据来自神经元的尖峰信号来均衡一对单元。均衡可涉及差分放大器来完成。
[0143]
参考图10,在一个实例中,位线bl0用于电流积分,而位线bl1用于调制神经元(由感测放大器1052仿真)。突触前事件到达字线wl1处。存储器单元1040经由其电导准许wl1输入。例如,如果神经元在突触前事件到达的时间量子中出现尖峰,那么调整存储器单元1042的偏压。因此,根据stdp规则,减少存储器单元1042的阈值(例如,将偏压调整到最大值)。另外,存储器单元1042的偏压在50ms(ltp窗)之后返回到其原始状态。在几个时间量子之后,神经元(例如,感测放大器1052)在位线(例如,bl0)上对足够电荷进行积分并且生成尖峰(例如,尖峰1060)。因此,将尖峰1060反射回到两个位线以进行阈值调制。因此,到达字线wl0上的尖峰后突触前事件参与电荷积分(在位线中的一个上)并且减弱存储器单元1030及1040。
[0144]
图12是根据本公开的各种实施例的调整突触的突触权重的方法1200的流程图。方法1200可根据本公开中所描述的至少一个实施例来布置。在一些实施例中,方法1200可由装置或系统(例如图1的系统100、图6的系统600、图10的系统1000或另外装置或系统)执行。尽管被说明为离散块,但取决于所要实施方案,各种块可被划分为额外块、组合成更少的块或被消除。
[0145]
在方法1200的框1210处,在字线上驱动突触前尖峰信号。例如,驱动器1020在存储器阵列1010的字线上驱动信号。在字线上驱动的信号仿真由神经元接收的突触前信号。
[0146]
在框1220,响应于在由神经元生成尖峰信号之前在所述字线上驱动的所述突触前尖峰信号:(1)生成反馈信号以在尖峰时序依赖可塑性(stdp)规则的长时程增强(ltp)窗中增加存储器单元的电导,及(2)将反馈信号发射到位线。例如,响应于由驱动器1020在字线wl1上驱动突触前尖峰信号并且在由感测放大器1052生成尖峰1060之前,生成反馈信号(例如,反馈1055及/或反馈1057)以增加耦合到字线wl1的一或多个存储器单元的电导。特别地,将反馈信号发射到字线wl1。
[0147]
在框1230,响应于在由神经元生成尖峰信号之后在所述字线上驱动的所述突触前尖峰信号:(1)生成反馈信号以在尖峰时序依赖可塑性(stdp)规则的长时程增强(ltp)窗中减少存储器单元的电导,及(2)将反馈信号发射到位线。例如,响应于由驱动器1020在字线wl1上驱动突触前尖峰信号并且在由感测放大器1052生成尖峰1060之后,生成反馈信号(例如,反馈1055及/或反馈1057)以减少耦合到字线wl1的一或多个存储器单元的电导。特别地,将反馈信号发射到字线wl1。
[0148]
在不脱离本公开的范围的情况下,可对方法1200进行修改、添加或省略。例如,方法1200的操作可以不同的次序实施。此外,所概述的操作及动作仅作为实例提供,并且一些操作及动作可为任选的,组合成更少的操作及动作,或扩展成额外操作及动作,而不偏离所公开的实施例的本质。
[0149]
图13为根据本文中所描述之一或多个实施例实施的存储器系统1300的简化框图。存储器系统1300包含存储器模块,所述存储器模块包含多个存储器装置1302及控制逻辑组件1304。例如,存储器装置1302可包含图1的存储器装置120及/或存储器阵列130,及/或图3的存储器块310及/或图6的存储器阵列640,及/或图10的存储器阵列1010,且控制逻辑组件1304可包含图1的控制器140及/或主机111。控制逻辑组件1304可操作地与存储器装置1302耦合,以便读取、写入或重新刷新存储器装置1302内的任何或所有存储器单元。
[0150]
还公开电子系统。电子系统可包含存储器系统,所述存储器系统包含多个存储器装置。图14为根据本文中所描述的一或多个实施例实施的电子系统1400的简化框图。电子系统1400包含至少一个输入装置1402。输入装置1402可为键盘、鼠标或触摸屏。电子系统1400进一步包含至少一个输出装置1404。输出装置1404可为监视器、触摸屏或扬声器。输入装置1402及输出装置1404不必彼此分离。电子系统1400进一步包含存储装置1406。输入装置1402、输出装置1404及存储装置1406耦合到处理器1408。
[0151]
电子系统1400进一步包含耦合到处理器1408的存储器装置1410。存储器装置1410可包含及/或可为存储器装置(例如,图1的存储器装置120)的一部分及/或可为存储器系统(例如图13的存储器系统1300,及/或另一个系统)的一部分。电子系统1400可为或包含计算、处理、工业或消费产品。例如,但不限于此,电子系统1400可包含个人计算机或计算机硬件组件、服务器或其它网络硬件组件、手持装置、平板计算机、电子笔记本、相机、电话、音乐播放器、无线装置、显示器、芯片组、游戏、车辆或其它已知系统。
[0152]
根据本文中所公开的各种实施例,并且与一些常规装置、系统及方法相比,在一或多个pim计算中使用的数据可用于执行snn尖峰事件。因此,可减少从一或多个存储器阵列读取及/或写入到一或多个存储器阵列的次数,这可改进pim操作的效率及/或速度及/或减
少与pim操作相关联的等待时间。
[0153]
本公开的一或多个实施例包含一种系统。例如,系统可包含存储器阵列,所述存储器阵列包括在多个字线与多个位线的交叉处的多个存储器单元,其中写入到所述多个存储器单元的数据对应于突触权重值。所述系统可包含经配置以驱动所述多个字线的驱动器。所述系统还可包含电路系统,所述电路系统包括耦合到所述多个位线的感测放大器。所述电路系统经配置以接收来自所述多个位线的输出信号。所述电路系统进一步经配置以响应于在生成神经元的尖峰信号之前在字线上驱动的第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号根据所述多个存储器单元中的第一存储器单元的尖峰时序依赖可塑性(stdp)特性增加所述第一存储器单元的电导。所述电路系统进一步经配置以响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号根据所述stdp特性减少所述第一存储器单元的所述电导。
[0154]
根据另一实施例,一种方法包含在字线上驱动第一信号。所述方法进一步包含:响应于在生成神经元的尖峰信号之前在所述字线上驱动的所述第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号在尖峰时序依赖可塑性(stdp)特性的长时程增强(ltp)窗中增加存储器单元的电导;及将所述第二信号发射到位线,其中所述存储器单元耦合到所述字线及所述位线。所述方法还包含:响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号根据所述stdp特性在长时程减弱(ltd)窗中减少所述存储器单元的所述电导;及将所述第三信号发射到所述位线。
[0155]
在另一实施例中,一种电子系统包含至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置,及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述存储器装置包括存储器阵列,所述存储器阵列包括在多个字线与多个位线的交叉处的多个存储器单元,其中写入到所述多个存储器单元的数据对应于突触权重值;及电路系统,其包括耦合到所述多个位线的感测放大器。所述电路系统经配置以响应于在生成神经元的尖峰信号之前在字线上驱动的第一信号,生成具有电压、电流或时序特性或其组合的第二信号,所述第二信号增加所述多个存储器单元中的存储器单元的电导;及响应于在生成所述神经元的所述尖峰信号之后在所述字线上驱动的所述第一信号,生成具有不同电压、电流或时序特性或其组合的第三信号,所述第三信号减少所述存储器单元的电导。
[0156]
根据其它实施例中,一种电子系统包括至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置,及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述至少一个存储器装置包括:存储器单元阵列,其包括经配置以存储突触权重的多个电阻元件;驱动器,其经配置以在snn的一系列时间量子的每一时间量子在耦合到所述多个电阻元件的多个字线上驱动尖峰事件;及积分电路,其经配置以对耦合到所述电阻元件的位线的输出电压进行积分。
[0157]
根据另一实施例,一种系统包括存储器阵列,所述存储器阵列包括多个存储器单元,其中所述多个存储器单元的电导值对应于突触权重值。所述系统进一步包括耦合到存储器阵列的电路系统。所述电路系统经配置以接收来自所述存储器阵列的输出信号,并且
响应于在所述存储器阵列处接收的第一信号,生成第二信号来根据尖峰时序依赖可塑性(stdp)规则增加或减少所述多个存储器单元中的存储器单元的电导。
[0158]
根据其它实施例,一种电子系统包括至少一个输入装置、至少一个输出装置、至少一个可操作地耦合到所述输入装置及所述输出装置的处理器装置及至少一个可操作地耦合到所述至少一个处理器装置的存储器装置。所述至少一个存储器装置包括:存储器阵列,其包括多个存储器元件;及电路系统,其包括耦合到存储器阵列的一或多个感测放大器。所述电路系统经配置以响应于从所述存储器阵列接收到指示在生成神经元的尖峰信号之前到达所述存储器阵列处的第一信号的输出信号,生成第二信号以减少所述多个存储器元件的一或多个存储器元件的所述电阻。所述电路系统进一步经配置以响应于从所述存储器阵列接收到指示在生成神经元的尖峰信号之后到达所述存储器阵列处的所述第一信号的输出信号,生成第三信号以增加所述多个存储器元件的所述一或多个存储器元件的所述电阻。
[0159]
按照惯例,图式中所说明的各种特征可能不是按比例绘制的。本公开中呈现的说明并不意味着是任何特定设备(例如,装置、系统等)或方法的实际视图,而仅仅是用于描述本公开的各种实施例的理想化表示。因此,为了清楚起见,可任意扩展或缩减各种特征的尺寸。此外,为了清楚起见,可简化一些图式。因此,图式可不会描绘给定设备(例如,装置)的所有组件或特定方法的所有操作。
[0160]
如本文中所使用,术语“装置”或“存储器装置”可包含具有存储器的装置,但不限于仅具有存储器的装置。例如,装置或存储器装置可包含存储器、处理器及/或其它组件或功能。例如,装置或存储器装置可包含单片系统(soc)。
[0161]
本文中及尤其所附权利要求书(例如,所附权利要求书的主体)中所使用的术语通常意欲为“开放式”术语(例如,术语“包含(including)”应解释为“包含但不限于”,术语“具有(having)”应解释为“至少具有”、术语“包含(include)”应解释为“包含但不限于”等等)。
[0162]
此外,如果意欲使所引用权利要求引述为特定数目,那么将在权利要求中明确引述此意图,且在无此引述时,那么不存在此意图。例如,作为理解的辅助,以下所附权利要求书可含有使用说明性短语“至少一个”及“一或多个”来说明权利要求引述。然而,此类短语的使用不应被解释为暗示由不定冠词“a”或“an”引入的权利要求引述将包含此类引入的权利要求引述的任何特定权利要求限制为仅包含一个此类陈述的实施例,甚至当同一权利要求包含介绍性短语“一或多个”或“至少一个”及不定冠词,例如“a”或“an”(例如,“a”及/或“an”应解释为“至少一个”或“一或多个”);用于介绍权利要求引述的定冠词的使用也是如此。如本文所使用,“及/或”包含相关联所列物项中的一或多个的任何及全部组合。
[0163]
此外,即使明确地引述所引入的权利要求的具体数目,也应理解,此类引述应被解释为至少表示所引述的数目(例如,“两次引述”的单纯引述,没有其它修饰语,意味着至少两次引述,或两个或多于两个引述)。此外,在使用类似于“a、b及c等中的至少一个”的惯例的那些情况下,或“a、b及c等中的一或多个”使用时,通常此类构造意欲在包含单独的a、单独的b、单独的c、a及b一起、a及c一起、b及c一起、或a、b及c一起等。例如,术语“及/或”的使用旨在以此方式解释。
[0164]
此外,表示两个或多于两个替代术语的任何转折词及/或短语(无论是在说明书中、在权利要求书中还是在图式中)均应被理解为涵盖包含术语中的一个、术语中的任一个
或两个术语的可能性。例如,短语“a或b”应理解为包含“a”或“b”或“a及b”的可能性。
[0165]
此外,术语“第一”、“第二”、“第三”等的使用在本文中不一定用于表示元件的特定顺序或数目。通常,术语“第一”、“第二”、“第三”等用于区分不同元件作为通用识别符。如果没有表明术语“第一”、“第二”、“第三”等表示特定顺序,那么不应将这些术语理解为表示特定顺序。此外,在没有表明术语“第一”、“第二”、“第三”等表示特定数目的元件的情况下,不应将这些术语理解为表示特定数目的元件。
[0166]
以上描述并在附图中说明的本公开的实施例不限制本公开的范围,本发明的范围包含在所附权利要求书及其合法等同物的范围内。任何等同的实施方案都在本发明的范围内。实际上,除本文中所展示及阐述的那些(例如,所描述要素的替代性有用组合)外,所属领域的技术人员自本说明将明了本公开的各种修改。这些修改及实施例也属于所附权利要求书及等同物的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献