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

将多电平权重精确写入用于存储器内计算的存储器设备的制作方法

2022-06-16 06:25:00 来源:中国专利 TAG:


1.本文中描述的实施例一般地涉及支持多个权重电平的写入的存储器设备,且具体地涉及将权重精确写入支持存储器内计算的存储器设备。


背景技术:

2.机器学习可由神经网络使能,神经网络包括多个互联节点,这些互联节点大致近似于大脑的神经元和突触结构。在操作中,神经网络中的每个节点可被配置为存储权重,该权重表示与邻近节点的节点连接的强度。节点具有的对执行的整体计算的影响因此至少部分地由节点的权重确定。当训练神经网络时,可调节每个节点处的权重,因此有助于神经网络的学习功能性。每个节点处的权重可根据一系列离散电平(level)来表示。例如,给定神经网络的每个节点可能够存储多达256个电平(8个位)或可经由二进制数表示的2的其他倍。
附图说明
3.图1为根据各种实施例的用于将突触权重精确写入能够存储多个权重电平的存储器设备的实施例系统的组件的框图。
4.图2为根据所公开实施例的对应于写入存储器设备的权重的电流电平的分布和所得到的针对每个权重的读取电流的分布的图式。
5.图3为根据各种实施例的可与图1的示例系统一起使用的精确电流参考生成器的组件的框图。
6.图4为根据各种实施例的与写入诸如可在图1的示例系统中发现的突触权重相关的各种信号线的信号随时间变化的图表。
7.图5为根据各种实施例的诸如可由图1的示例系统执行的用于将突触权重写入存储器设备的方法的各种操作的流程图。
8.图6为根据各种实施例的适合于实践本公开的计算机设备的框图。
9.图7为具有配置为实践各种所公开实施例的各方面的指令的示例计算机可读存储介质。
具体实施方式
10.在以下详细描述中,参考形成本文一部分的附图,其中类似标号贯穿全文表示类似部件,并且其中借助于可实践的说明实施例来示出。应理解,可利用其他实施例,并且可在不脱离本公开的范围的情况下进行结构或逻辑改变。因此,以下详细描述不在限制意义上进行,并且实施例的范围由随附权利要求书和其等同物来定义。
11.本公开的各方面在随附描述中公开。可在不脱离本公开的精神或范围的情况下设计本公开的替代实施例和其等同物。应注意,下文公开的类似元件由附图中的类似附图标号表示。
12.按照最有助于理解所要保护的主题的方式,各种操作可被描述为多个离散动作或操作。然而,描述的次序不应解释为暗示这些操作必要地为依照次序的。特别地,这些操作可不以呈现次序执行。所描述的操作可以与所描述实施例不同的次序执行。可执行各种额外操作和/或可在另外的实施例中省略所描述操作。
13.出于本公开的目的,短语“a和/或b”意指(a)、(b)或(a和b)。出于本公开的目的,短语“a、b和/或c”意指(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。
14.描述可使用短语“在一实施例中”或“在实施例中”,其可分别指代相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括”、“包含”、“具有”等为同义的。
15.如本文中所使用,术语“电路系统”或“逻辑”可指代以下项、为以下项的部分或包括以下项:集成电路、片上系统(soc)、专用集成电路(asic)、电子电路、执行一个或多个软件或固件程序的处理器(共用、专用或群组的)和/或存储器(共用、专用或群组的)、组合逻辑电路和/或提供所描述功能性的其他合适的组件。
16.如本文中所使用,术语“迭代的”、“迭代地”、“重复的”和“重复地”意指潜在地在不定时间段内定期地或临时地以离散间隔执行动作,和/或直到满足停止条件或以另外方式中断动作。与“连续地”执行的动作形成对比的术语意指动作不间断进行,直到满足停止条件或以另外方式中断动作。
17.在计算时,存储器技术传统地已存储二进制信息,即开/关表示二进制1或0,其中每个数位存储在存储器单元或位置中。非二进制信息的存储因此需要数字化为离散数字集,接着将数据转换为二进制数。二进制数中的每个1或0将接着存储在单独的单元中。大于一的任何数将因此需要多个单元,其中对于每个这样的数,电平数目越大,需要越大数目的单元。更新的存储器技术能够在单个单元中存储多个电平(超出开/1或关/0),诸如通过以任意电平存储电压或电流。这样的存储器中的单元可能够存储从零到最大量的任何电压或电流电平,该最大量由用于实施存储器的技术的类型确定。有效地,这样的存储器相当于可存储近乎无穷量的电平的模拟设备。通过建立离散电压或电流电平,原本需要多个位因此需要多个单元的数值范围可存储在单个单元中。能够被存储的电平的数目可潜在地由用于实施给定存储器设备的技术的类型决定。能够在给定单元中存储一系列电压或电流电平的存储器技术(下文称为多电平存储器)可包括诸如电阻式随机存取存储器(例如reram、rram或忆阻器)、铁电场效晶体管(fefet)、增益单元嵌入式动态随机存取存储器(dram)、相变存储器(pcm)等技术,或另一合适的技术。此类技术可在本质上为易失性的,需要连续电力来保持所存储的值,且在电力去除时丢失此类值,或本质上为非易失性的,类似于闪存,无限期地保持所存储的值而不需要电力。
18.尽管潜在地能够存储介于零与最大设备电压/电流之间的近乎无穷多的电压或电流电平,设备变化和/或制造的不完美、环境变化等对可存储在给定多电平存储器的单元中的离散电平的数目具有实际限制。此不精确显现为待存储在单元中的所施加电压或电流与存储后从单元读取的所得电压或电流之间的偏差。例如,电压可施加到单元以存储 3vdc的电平,其中该单元可存储多达 5vdc的电平。然而,由于设备变化,相同单元可在读取时寄存低于、处于或高于 3vdc的目标写入电压,且在存储 3vdc时还可以随情况变化而变化。例如,将 3vdc在三个单独时间精确地存储到单元可分别产生 3.06vdc、 2.89vdc和 2.97vdc
的后续读取电流。因此,针对待存储的给定目标电压,当每个相继写入和读取循环被用图谱表示时,读取电压可近似围绕写入电压的钟形曲线分布。
19.电压的变化或漂移可归因于所采用的材料的固有不精确性和多电平存储器的制造过程,且因此仅可能够最小化但不能消除。甚至精确地控制制造和材料以最小化漂移可具有实际成本限制:一旦获得某一最小漂移水平,在以商业规模制造时虽然可以进一步减小漂移,但成本过高。此外,写入电路系统(包括生成待写入的电压电平的电路系统)可本身具有漂移或变化viz,生成器可针对 3vdc的标称输出实际输出 2.9vdc或 3.02vdc;写入电压电平的此漂移或变化进一步加重由读取电压的变化或漂移产生的误差。给定存储电压或电流电平的钟形曲线分布的实际大小实质上为多电平存储器设备中固有的变动与待存储的参考电压的生成器的变动的总和。
20.由于必须考虑读取电压的标准偏差,因此写入电压或电流相对读取电压或电流的此变化对可被存储到单元的不同电平的数目施加了实际限制。如果两个相邻写入电平足够接近,例如一个电平在 2.8vdc,下一电平在 3vdc,那么对于每单元变化多达 /-0.15vdc的多电平存储器来说,读取电压的标准偏差可能充分地重叠,使得可能无法始终在两个相邻写入电平之间区分。假设电压生成电路系统精确地输出 2.8vdc,存储 2.8vdc的电压电平可产生范围为 2.65vdc到 2.95vdc的读取电压,而存储 3.0vdc可产生范围为 2.85vdc到 3.15vdc的读取电压。可见,在两个电平之间( 2.85vdc与2.95vdc之间)存在潜在读取电压分布的重叠。在此范围内的电压不能可靠地确定为 2.8vdc或 3.0vdc。
21.支持多电平存储器的电路系统通常需要能够生成多个电压或电流电平,其中电平的数目对应于给定实现方式所需。在一些实现方式中,这些电平可由被配置作为分压器的电阻网络生成,如本领域中已知。所属领域的技术人员将理解,此网络需要具有对应于每个可能电平的多个分接头的电阻阶梯或分压器网络。例如,在需要256个电压电平的情况下,需要具有256个分接头的分压器,每个分接头对应于256个电平中的一个。随着所需分接头的数目增加,因此电路系统为了容纳许多分接头而所需要的空间的量也增加。此外,由于此多电平存储器与数字计算机一起使用,因此分接头的数目通常由二进制数定义,例如256个电平对应于八个位。增加一位到九个位使可能电平的数目加倍为512个,且将需要使分压器网络的大小加倍。因此,随着希望存储在多电平存储器中的电平的数目增加,支持分压器网络的分接头的大小和数目将成指数增加。这对使用现有技术可向给定单元中存储的电平的数目施加了实际限制。
22.所公开实施例提供一种存储器系统,用于以足够高的精确度将许多不同电平中的电平存储到多电平存储器的单独单元中,以考虑和最小化或消除相邻电压电平的分布之间的任何可能重叠。此外,所公开实施例还提供一种电压或电流参考生成器,其是基于位而非基于电平的,以允许对多电平存储器中的给定单元的所存储的电平的数目显著地进行更佳扩展。通过采用基于位的方式,增加电平的位的数目(例如从256个电平到512个电平(8位到9位))仅需要添加附加电路系统来容纳附加位,而非使来自分压器的可用电压分接头的数目加倍。因此,将电压或电流参考生成器扩展到更大数目的电平为线性的而非指数的。
23.此基于位的参考生成器使得电压的控制和写入能以更大精确度完成,这进而允许更靠近的间距或允许附加电平潜在地存储到多电平存储器的给定单元中。通过在所需电压或电流电平的数目以外将附加位添加到参考生成器,可最小化来自参考生成器的电平电压
的变化。由于读取电压或电流的分布为存储器中固有的变动以及参考生成器中固有的变动的总和,因此实质上通过添加附加位(其使可能参考电压电平的数目加倍)使参考生成器的变化减半可减小(若非消除)读取电压分布的重叠的可能。
24.所公开的实施例可用于有效地存储人工神经网络(ann)(诸如深度神经网络(dnn))的突触权重,其中每个权重能够直接存储到多电平存储器的单个单元中。此外,此高效存储可用于存储器内计算方案,其中多电平存储器为机器学习加速器或类似硬件的部分。多电平存储器可配备有用于评估多电平存储器中创建的至ann的输入的电路系统,其中单个单元用于ann的节点和/或边缘或连接。由于每个单元可存储多个电流或电压电平中的一个,因此各个电平可基于每单元的方式用于表示节点或边缘权重,其可在单个步骤中直接读取并由与多电平存储器相关联的计算电路系统在评估至ann的输入时使用。
25.尽管前述主要论述了各个电压电平,但应理解,取决于用于实施多电平存储器的技术,可存储其他电参数。其他可能参数可包括电荷(例如电容)或电阻或可重复地存储且可靠地撷取的另外的参数。例如,提供可编程单元电阻的基于忆阻器的存储器单元实质上存储电流电平,该电流电平在基于所存储电平施加固定电压以读取给定单元时变化。给定单元的电阻可被调节且在写入过程期间被设定。由于针对在组件两端施加的给定电压的电流取决于组件的电阻,因此在固定读取电压被施加到单元时,写入单元的电阻更改电流输出。此改变的电流电平被感测并用于确定所存储的电平或值。其他存储器技术可对每个单元采用可变电容,从而有效地允许每个单元存储可变电压。
26.图1描绘根据可能实施例的用于将电平精确写入存储器单元(unit)(能够将可变电平或模拟权重存储在其单元中的各单元中)的示例系统100。系统100包括单元(cell)102(单元102为多电平存储器的一部分)、电流参考生成器104、脉冲生成器110和写入逻辑114。在操作中,电流参考生成器104基于权重数据(wd)116确定基值电流和间隔电流。写入逻辑114将基值电流和间隔电流与从存储器单元102读取的在读取位线(rbl)112上的电流进行比较。如果写入逻辑114的评估确定存储器单元102尚未存储预期权重数据116(如电流或电压电平表现),那么继续写入过程,直到写入逻辑114确定已获得正确电流电平,如通过读取位线112所验证。尽管系统100描绘单个存储器单元102,但应理解,系统100可用于包括多个单元以形成存储器单元的多电平存储器。此外,取决于给定实施例的具体内容,系统100的各种组件可重复或用于多个迭代。例如,当给定存储器单元(unit)可具有大量存储器单元(cell)102时,其可具有单个或少量电流参考生成器104,其中可对于任何数目个存储器单元102采用一个生成器104。同样地,对于多个存储器单元102,可以采用单个或少量写入逻辑114和脉冲生成器110。
27.存储器单元102可为组合形成多电平存储器的多个存储器单元102中的一个。在实施例中,每个存储器单元102能够按照实质上连续(例如模拟)地方式在预定义范围内存储电流。预定义范围可针对电流电平,基值或基数为无电流,最大电流为100毫安或另一值,这取决于给定实现方式的具体内容。替代地,预定义范围可针对电压电平,范围从零电压到可由系统电源定义的最大电压,例如 12vdc、 9vdc、 5vdc、 3.3vdc、 1.2vdc或另一功率电平。在此预定义范围内,可定义离散步骤或电平,其中步骤(诸如可变电流电平)之间的间隔是至少部分地基于设备特性(诸如写入后的读取电流的变化等)而确定的。存储器单元102(作为多电平存储器的部分)可使用任何合适的技术来实施,如上文所提及。此类技术可包
括reram、rram、pcm、fefet或现已知或以后开发的另一合适的技术。存储器单元102可使用易失性(即断电时内容丢失)或非易失性(即断电时内容存留)存储器技术来实施。
28.在实施例中,电流参考生成器104包括用于生成基值电流参考106(产生信号i
基值
)和间隔电流参考108(产生信号i
间隔
)的电路系统。间隔电流参考108是相对于基值电流参考106而确定的。在实施例中,间隔电流参考108可表示为待加到基值电流参考106的增量,其中取决于基值电流参考106的实际量,间隔电流参考108的实际量可小于基值电流参考106的实际量。例如,在基值电流参考106为 2.9vdc的情况下,间隔电流参考108可为 0.5vdc。再如,在基值电流参考106为 0.2vdc的情况下,间隔电流参考108可仍为 0.5vdc。在实施例中,基值电流参考106定义待存储到存储器单元102中的特定电平或权重的下限,其中间隔电流参考108定义待存储到存储器单元102中的电平或权重的宽度(就电流而言)。以绝对值来表示,将间隔电流参考108加到基值电流参考106产生了顶值电流i
顶值
,其中基值电流参考106和i
顶值
分别定义待存储到存储器单元102中的给定电平或权重的下限和上限。
29.电流参考生成器104接收权重数据116作为输入,该权重数据116确定待存储到目标存储器单元102中的权重或电平。权重数据116可从外部电路系统接收至系统100,诸如存储器控制器、处理器或其他组件。在实施例中,权重数据116表示针对人工神经网络的节点或边缘分配或调节的权重,表现为可存储到存储器单元102中的多个可能电平中的数值电平。权重数据116可以是数值,可能以二进制表现,电流参考生成器104将其转换为基值电流参考106和对应间隔电流参考108。这些参考电流在写入过程期间使用,以确定对应于权重数据116的电流电平何时成功地存储到目标存储器单元102中。下文参考图3论述电流参考生成器104的可能实施例的结构。下文参考图5论述写入过程中使用这些参考电流的过程和基值电流参考106与间隔电流参考108之间的关系。
30.系统100还可包括脉冲生成器110。在实施例中,脉冲生成器110生成电压脉冲,该电压脉冲被施加到存储器单元102。在实施例中,将电压脉冲施加到存储器单元102使存储器单元102增大其所存储电流电平。来自脉冲生成器110的重复脉冲可逐渐地使存储器单元102随着每个脉冲而提高其所存储的电流电平,直到最大电流被存储,该最大电流取决于存储器单元102的操作技术规格。在其他实施例中,并非脉冲生成器用于提高存储器单元102的所存储的电流电平,可使用另一合适的机制,这取决于存储器单元102的给定实现方式的具体内容。在其他实施例中,存储器单元102可以对电流或电压使用下降方式存储电平,即,电压或电流在基值或零权重处最高,且随着权重增加而下降。在此类实施例中,最高或最大权重(数值上最大)将等同于存储的最低电压或电流。
31.在一些实施例中,脉冲生成器110在启用时可每时钟循环创建脉冲一次。在其他实施例中,可临时地触发脉冲生成器110。在又其他实施例中,脉冲生成器110可被省略或可配置成在必要时发射脉冲、电压或电流,以使存储器单元102写入对应于权重数据116的正确权重。脉冲生成器110的实现可取决于存储器单元102的性质。如上文所论述,给定系统100可具有对应于可被写入的最大量数据的单个脉冲生成器110或少许脉冲生成器110,其中每个脉冲生成器110服务任意数目的存储器单元102。
32.根据一些实施例,写入逻辑114(如图1中的示意性组件所提出的)接收来自电流参考生成器104的电流信号作为输入。各种输入(如图1中描绘的)可包括i
基值
、i
间隔
和i
读取
。在所描绘的实施例中,写入逻辑114接收基值电流参考106(i
基值
)和i
顶值
,i
顶值
通过将基值电流参考
106加到间隔电流参考108来计算。这些参考被与来自读取位线(rbl)112的电流信号i
读取
进行比较,i
读取
反映当前存储在存储器单元102中的电压或电流电平。在所描绘的实施例中,写入逻辑114的输出进而馈入脉冲生成器110,以提高存储器单元102中的所存储电平。随着当前存储的电平经由读取位线112被反馈到写入逻辑114,写入逻辑114、脉冲生成器110、存储器单元102和读取位线112的组合形成反馈环路,该反馈环路使得能够对写入存储器单元102的电平进行精确控制。在所描绘的实施例中,写入逻辑114包括两个电流感测放大器和与逻辑门。写入逻辑114的实际组件可取决于给定实现方式的需求而变化。下文进一步参考图5论述由写入逻辑114实施的写入的过程。
33.在所描绘的实施例中,电流感测放大器将通过将间隔电流参考108加到基值电流参考106而创建的顶值电流参考与来自读取位线112的电流进行比较。如果来自读取位线112的电流小于顶值电流参考,那么电流感测放大器输出逻辑高或“1”,否则其输出逻辑低或“0”。类似地,第二电流感测放大器将来自读取位线112的电流与仅基值电流参考106进行比较。如果来自读取位线112的电流小于基值电流参考106,那么电流感测放大器输出逻辑高或“1”,否则其输出逻辑低或“0”。来自两个电流感测放大器的输出馈入逻辑与门中,逻辑与门进而被系于脉冲生成器110。如将理解,两个电流感测放大器必须对于与门都输出逻辑高,以输出逻辑高,其进而保持脉冲生成器110为激活的且提高存储器单元102的所存储的电流电平。一旦来自读取位线112的电流超过基值电流参考106,电流感测放大器即输出逻辑低,使与门变为逻辑低,且关闭脉冲生成器110。其他实施例可使用不同逻辑门和/或方式来测量并比较相关电流电平,这取决于给定实施例的需求。
34.图2说明由所公开实施例产生的分布图300。可存储在存储器单元102中的任何给定数目的电平可以以二进制表现,诸如用于八个可能电平的三个位。该示例的每个位电平(针对三个位从0到7)被定义为待从多电平存储器单元读取的离散电流电平。针对每个电平的电流或电压可表示为与每个电平相关联的钟形曲线分布。每个分布的峰值为针对其相关联电平的目标或标称电流或电压,而每个分布曲线表示常规参考生成器将在该点输出参考电流或电压的统计可能性。针对给定存储器技术,每个分布可大致与其相邻者相连,几乎没有分布重叠。此布置由存储器单元102中的分布306示出。针对给定存储器单元102,分布曲线可为多电平存储器的组件的固有差异和不一致的结果。在存储在存储器单元102中的电平的分布曲线为相连的且仅归因由存储器单元102中的差异的情况下,分布曲线表示可存储在存储器单元102中的可能电平的实际最大数目。
35.电流参考生成器(诸如电流参考生成器104)本身可具有产生所生成参考电流分别具有其自身分布曲线的差异和/或不一致。当写入存储器单元102时,电流参考生成器104的分布曲线添加到存储器单元102的分布曲线。因此,来自存储器单元102的所得分布曲线相较在如果精确控制的电压或电流(几乎没有分布)用于写入存储器单元102的情况更加展开并展现为钟形。此更大的展开为常规参考生成器中的差异和不一致添加到存储器单元的固有差异和不一致的组合的结果。
36.当待存储的电平被选择以产生针对可存储到存储器单元102的每个电平的相连分布曲线时,此更大展开产生原本为相连分布曲线之间的重叠区域。重叠区域因此表示由于结果是模糊的因此不能从存储器单元确定精确电平的区域。在常规系统中,必须选择电平以使得所得分布曲线考虑参考电流的可能分布曲线,从而潜在地减少可能电平的数目,和/
或必须在写入后测试存储器单元以确定写入值是否落在重叠区域中。如果是,那么将需要对单元进行重新写入以避免可能不利地影响多电平存储器的性能的不明确数据的存在。此测试和潜在重新写入消耗计算资源,且因此对多电平存储器和相关联管理系统造成潜在性能影响。
37.实施例通过提高电流参考生成器的精确度、实质上通过增加电流参考生成器可创建的电平的数目来解决此问题。并非用三个位来定义每个电平,附加最低有效位(lsb)被添加到电平定义,从而实现十六个(四个位)离散电平。然而,针对每个电平,出于定义电平的目的忽略lsb,使得仅利用每个其他电平区域。此有效地产生了在lsb为“0”时定义的八个离散电平,它们由死带304分别隔开,其中每个死带304由lsb中的“1”定义。应理解,参考生成器电路系统在其组件中配置有足够的精确度,以使得其可输出针对十六个电平原本的分布302(原本将为相连的)。每个离散电平因此具有分布302,该分布在任一侧上紧靠死带304,而非与其相邻电平的分布相连。
38.在实施例描绘的分布图300中,额外lsb的添加使参考生成器的精确度增加两倍。当对应于分布302的电平中的每一个被写入存储器单元时,所得到的存储器单元的差异添加以参考生成器的更精确控制产生了存储器单元中的分布306,其仅最低限度地重叠或不重叠。可见,所得八个分布306(分别对应于八个预期电平中的一个)中的每一个紧靠但不与其相连相邻者重叠。因此,每个电平准确地且明确地存储而不需要验证和潜在的重新写入过程。
39.图3说明根据各种实施例的图1的电流参考生成器104的示例实现方式的组件。电流参考生成器114包括基值电流参考106部分和间隔电流参考108部分。基值电流参考106和间隔电流参考108两者接受权重数据116作为输入,针对基值电流参考106,此输入被馈入一系列开关402a、402b、402c、402d,且针对间隔电流参考108,此输入被馈入开关404a和404b。在所描绘的实施例中,电流参考生成器利用开关402a-402d和404a-404b来表示对应于电平的数目的二进制表示的位,加上一个或多个附加lsb以实现必要的写入精确度,从而防止存储器单元中的重叠区域。基值电流参考106输出基值电流参考信号406,且间隔电流参考108输出间隔电流参考信号408。基值电流参考信号406和间隔电流参考信号408分别馈入用于驱动脉冲生成器110的写入逻辑114。
40.在图3的示例中,可见,基值电流参考106由四个最高有效位表示,且间隔电流参考108由两个最低有效位表示。电流参考生成器104实质上为使用开关和晶体管的组合实现的分流器网络。在操作中,权重数据116可为二进制的,其中其最高有效数据用于致动开关402a-402d。在最高有效数据具有“1”的情况下,开关将切换为接通,而“0”将导致开关切换为关断。例如,在权重数据116为电平11的情况下,所得二进制数将表示为01011,排序从最高有效位到最低有效位。对于此数字,开关402a将为接通的,对应于第一个“0”,开关402b将为关断的,对应于第二个“1”,开关402c将为接通的,对应于第三个“0”,且开关402d将为关断的,对应于第四个“1”。lsb致动间隔电流参考108的开关404a和404b。继续以上示例电平11,开关404a将为关断的,对应于第五个“1”。
41.如上文参考图1所解释,基值电流参考106形成每个电流电平的下限,而间隔电流参考108加到基值电流电平形成每个电流电平的上限。间隔电流参考108的位的数目决定由电流参考生成器104生成的参考电流的精确度。间隔电流参考108中的lsb的数目越大,则越
能精确的控制电流电平,且每个电流电平之间的潜在死带越宽。在图3的示例中,电流参考生成器104能够将基值参考电流加上三个附加片段。当间隔电流参考108为“00”时,输入到基值电流参考106中的给定数提供了基值电流参考,开关404a和404b两者均关断。高于基值电流参考106的间隔于是以“01”(开关404a关断且404b接通)、“10”(开关404a接通且404b关断)和“11”(开关404a和404b两者均接通)来定义。对间隔电流参考108中的lsb开关的致动可被选择以最大化写入存储器单元的电平的精确度。在一些实施例中,仅一个lsb开关可为必要的,诸如以生成分布图300(参见图2)中的分布。在其他实施例中,可提供两个以上lsb开关,以提供电平之间的更宽死带和更大粒度。在电流参考生成器104结合经历相对较宽固有差异的多电平存储器一起使用的情况下,可使用附加位,且因此需要来自电流参考生成器104的更大精确度以确保存储器中存储的值中没有重叠区域。此方式与常规方案形成鲜明对比,在常规方案中,在包括每个电平的区域之间不提供死带,如上文参考图2所论述。
42.在图4中,描绘示例系统100的各种线的信号随时间变化,以帮助说明写入过程。图4中的信号线包括以固定间隔选通的时钟502、顶值电流(i
hi
)504、基值电流(i
lo
)506、读取位线电流(i
rbl
)508、低于顶值的电流(《hi)510、高于基值的电流(》lo)512和写入启用514。在所描绘图表中,时钟502以设定间隔在高与低之间转变,其中转变之间的距离相对一致。如将理解,时钟502控制系统100的各种动作的定时。基值电流506与基值电流参考信号406相关联并提供基值电流参考信号406(图3)。顶值电流504与基值电流参考信号406和间隔电流参考信号408(图3)相关联且为其总和。将间隔电流参考添加到基值电流参考产生了顶值电流参考。基值电流参考和顶值电流参考因此分别定义包括待存储到存储器单元中的给定电平或权重的电流带的下限和上限。
43.初始地,在开始写入过程之前,读取位线电流508(其为读取位线112的波形)、低于顶值的电流510、高于基值的电流512和写入启用514这些线为低。一旦开始写入(第一竖直线),写入启用514即与低于顶值的电流510一起变高。当低于顶值的电流510线为高时,其指示读取位线电流508正输出低于顶值电流506的电流。类似地,由于读取位线电流508也低于基值电流506,因此高于基值的电流512保持为低。只要写入启用514线为高,那么脉冲生成器110或连接到相关联存储器单元的类似装置将增大存储器单元的所存储电流。在所描绘波形中,存储器单元的电流以与时钟502相关联的逐步方式增大,时钟控制着脉冲生成器(诸如脉冲生成器110)。在所描绘波形中,在从低到高的每次时钟转变时,脉冲生成器110发出提高存储器单元中的所存储电流电平的脉冲。
44.所存储电流电平的逐步增大继续,直到读取位线电流508指示超过基值电流506量但尚未超过顶值电流504的电流。在此点,高于基值的电流512线转变到高,而低于顶值的电流510线保持为高。由于线510和512两者都高,因此将写入启用514线被拉低,结束写入过程。如可见,读取位线电流508位于基值电流506与顶值电流504之间,指示存储器单元已编程为所需电流电平。
45.图5描绘用于将权重值精确写入能够存储多个电流电平的存储器单元的方法600的操作。方法600可由存储器单元(诸如存储器单元102)上的系统(诸如系统100)执行。方法600可至少部分地由嵌入在多电平存储器上的计算逻辑(诸如存储器控制器或写入逻辑114)执行,诸如可配置用于存储器内计算过程。方法600的操作可全部或部分地执行。在一些实施例中可省略一些操作,而其他实施例可添加额外操作。
46.在操作602中,从权重数据生成基值电流参考,该权重数据指示待存储在存储器单元中的电平或权重。基值电流参考可由电流参考生成器(诸如电流参考生成器104)生成。权重数据可以二进制格式表示,其中权重数据的最高有效数位由电流参考生成器使用以建立基值电流参考。
47.在操作604中,由电流参考生成器生成间隔电流参考。间隔电流参考是从权重数据的最低有效数位生成。在一些实施例中,间隔电流参考可在权重数据的数位以外添加一个或多个附加最低有效数位,以提供电流电平之间的死带,从而消除或最小化存储器单元中的所存储的电流电平分布之间的重叠。
48.在操作606中,写入过程开始,且从目标存储器单元读取电流值。一旦读取,则在操作608中,读取电流被评估,诸如由存储器控制器或写入逻辑(诸如写入逻辑114)评估该读取电流是否低于定义为基值电流参考加上间隔电流参考的顶值电流。
49.如果操作608的评估结果为“是”,那么方法600继续进行到操作610,其中由存储器控制器或写入逻辑评估读取电流是否高于基值电流参考。如果评估结果为“否”,那么方法600继续进行到操作612。在操作612中,写入脉冲被发出到存储器单元以增大其存储的电流电平,且过程迭代返回到操作606。在实施例中,操作606至612可以系统时钟设置的固定间隔迭代。
50.如果操作608评估为“否”,意味着存储在存储器单元中的电流电平高于顶值电流,指示错误状况,因为写入的电流电平已超过由权重数据指示的所需电流电平的界限。方法600接着继续进行到操作616,其中可清除存储器单元,且写入过程重新开始。取决于给定实施实现方式的需求,可另外或替代地执行其他操作,例如在存储器单元和/或系统或存储器管理电路系统上运行诊断程序以确定过冲的原因,重新校准用于计算间隔的lsb数位以实现更大的精确度,或改变写入电流分布之间的死带的位置,指示错误状况,和/或适合于给定实现方式的其他步骤。
51.如果操作610评估为“是”,意味着读取电流已超过基值电流参考但低于顶值电流参考,那么方法600继续进行到写入过程终止的操作614。操作614的结果为成功地写入存储器单元的电流电平。
52.现参考图6,其中说明根据各种实施例的适合于实践本公开的计算机设备的框图。如所示出,计算机设备700可包括一个或多个处理器702、存储器控制器735和存储器704。每个处理器702可包括一个或多个处理器核心和硬件加速器705。硬件加速器705的示例可包括但不限于程序化现场可编程门阵列(fpga)。在实施例中,处理器702还可包括存储器控制器(未示出)。在实施例中,存储器704可包括任何已知易失性或非易失性存储器,包括例如dimm 734,其可包括传感器数据集线器745。dimm 734可由存储器控制器735控制。替代地,存储器控制器735可设置在处理器702(未示出)中。在实施例中,存储器控制器735可包括写入控制器739。写入控制器739可实施写入逻辑114的一些或全部或其等同功能,如上文参考图1-5所描述。
53.另外,计算机设备700可包括(一个或多个)大容量存储设备706(诸如ssd 709)、输入/输出设备接口708(与诸如鼠标、光标控件、显示设备(包括触敏屏幕)等各种输入/输出设备相接口)和通信接口710(诸如网络接口卡、调制解调器等)。在实施例中,通信接口710可支持有线或无线通信,包括近场通信。这些元件可经由可表示一个或多个总线的系统总
线712彼此耦接。就多个总线而言,其可通过一个或多个总线桥(未示出)桥接。
54.系统存储器704和(一个或多个)大容量存储设备706可用于存储图1、图4的操作系统、一个或多个应用和/或各种组件和/或图5中的方法600的操作的编程指令(它们至少部分地经由软件实现,统称为计算逻辑722)的可执行代码的工作副本和永久副本。实现计算逻辑722的编程指令可包括由(一个或多个)处理器702支持的汇编器指令或可编译为此类指令的高级语言(诸如例如c语言)。在实施例中,计算逻辑中的一些可在硬件加速器705中实现。在实施例中,计算逻辑722的部分(例如计算逻辑722的与编译器的运行时环境相关联的部分)可在硬件加速器705中实现。
55.用于配置硬件加速器705的编程指令或位流的可执行代码的永久副本可在工厂中或现场经由例如诸如光盘(cd)等分发介质(未示出)或(来自分发服务器(未示出))经由通信接口710被置于到(一个或多个)永久大容量设备706和/或硬件加速器705中。尽管为易于理解,执行包含本公开的述词计算教示的所生成代码以增加嵌套循环的流水线和/或并行执行的编译器和硬件加速器示出为位于相同计算设备上,但在替代实施例中,编译器和硬件加速器可位于不同计算设备上。
56.这些元件710-712的数目、能力和/或容量可取决于示例计算机设备700的预期使用(例如示例计算机设备700是否为智能手机、平板电脑、超级本、笔记本电脑、服务器、机顶盒、游戏机、相机等)而变化。这些元件710-712的构成为另外已知的,且因此将不进一步描述。
57.图7说明根据各种实施例的具有配置为实现先前描述的系统100的各种元件和/或方法600的所有(或部分)软件实现方式的指令的示例计算机可读存储介质。如所说明,计算机可读存储介质802可包括许多编程指令或位流804的可执行代码。编程指令(或位流)804的可执行代码可被配置为使设备(例如计算机设备700)响应于可执行代码/编程指令(或编码硬件加速器的操作)的执行来执行由系统100执行的过程(的方面)和/或方法600的一个或多个操作。在替代实施例中,可执行代码/编程指令/位流804可替代地设置在多个非暂态计算机可读存储介质802中。在实施例中,计算机可读存储介质802可为非暂态的。在其他实施例中,可执行代码/编程指令804可被编码在暂态计算机可读介质(诸如信号)中。
58.返回参考图6,针对一个实施例,处理器702中的至少一个处理器可与具有计算逻辑722中的一些或全部(代替存储在系统存储器704和/或大容量存储设备706中)的计算机可读存储介质一起封装,被配置为实践先前参考图5描述的操作中的全部或所选操作。针对一个实施例,处理器702中的至少一个处理器可与具有计算逻辑722中的一些或全部的计算机可读存储介质一起封装以形成封装系统(sip)。针对一个实施例,处理器702中的至少一个处理器可与具有计算逻辑722中的一些或全部的计算机可读存储介质一起整合于相同管芯关上。针对一个实施例,处理器702中的至少一个处理器可与具有计算逻辑722中的一些或全部的计算机可读存储介质一起封装以形成片上系统(soc)。针对至少一个实施例,soc可用于例如但不限于混合式计算平板电脑/笔记本电脑。
59.对所属领域的技术人员将显而易见的是,可在不脱离本公开的精神或范围的情况下在所公开设备和相关联方法的所公开实施例中进行各种修改和变化。因此,预期本公开涵盖上文公开的实施例的修改和变化,只要该修改和变化在任何权利要求和其等同物的范围内。
60.下文提供本文中公开的技术的说明性示例。这些技术的实施例可包括下文描述的示例中的任何一个或多个以及它们的任何组合。
61.示例
62.以下示例涉及其他实施例。
63.示例1为一种装置,用于将权重(诸如突触权重之类)精确写入非易失性存储器,该装置包括:非易失性存储器,用于存储指示用于人工神经网络(ann)的突触权重数据的读取电流;以及逻辑,与存储器耦接,其中逻辑用于:当突触权重数据被输入到逻辑中时,对突触权重数据进行转换以生成基值电流和间隔电流,其中基值电流提供读取电流的下限电流电平,并且基值电流和间隔电流的组合提供读取电流的上限电平,并且其中读取电流指示突触权重数据;并且重复地对存储器进行写入,以产生存储器的响应电流的逐渐地改变,直到响应电流被提供为介于下限电平和上限电平之间,其中响应电流包括指示突触权重数据的读取电流。
64.示例2包括示例1所述的主题,且可选地包括:其中突触权重数据与多个由固定数目个位定义的二进制数中的一个相关。
65.示例3包括示例1至2中任一项所述的主题,且可选地包括:其中逻辑包括用于生成基值电流和间隔电流的电流参考生成器。
66.示例4包括示例1至3中任一项所述的主题,且可选地包括:其中电流参考生成器包括开关晶体管阶梯,该开关晶体管阶梯被配置为生成多个基值电流电平,每个基值电流电平对应于多个二进制数中的一个,并且其中间隔电流是从多个基值电流电平中的所选基值电流电平和附加位生成的,附加位用于生成多个基值电流电平中的各基值电流电平之间的附加电流电平。
67.示例5包括示例1至4中任一项所述的主题,且可选地包括:其中固定数目个位加上附加位被选择以最小化离散读取电流电平之间的电流分布重叠。
68.示例6包括示例1至5中任一项所述的主题,且可选地包括:其中非易失性存储器为电阻式随机存取存储器、铁电场效晶体管(fet)存储器、铟镓锌氧化物fet存储器或相变存储器中的一种。
69.示例7包括示例1至6中任一项所述的主题,且可选地包括:其中逻辑包括存储器控制器,该存储器控制器用于与时钟同步地进行迭代写入和迭代读取。
70.示例8包括示例1至7中任一项所述的主题,且可选地包括:其中存储器控制器还包括用于创建电流脉冲的脉冲生成器。
71.示例9包括示例1至8中任一项所述的主题,且可选地包括:其中装置包括适于实施存储器内计算的存储器设备。
72.示例10为一种方法,用于将权重(诸如突触权重之类)精确写入存储器单元,该方法包括:生成基值电流,以提供给能够存储多个离散电流电平的非易失性存储器,其中离散电流电平对应于要被提供给人工神经网络(ann)的突触权重;至少部分地基于所生成的基值电流来生成间隔电流,该间隔电流高于基值电流;计算顶值电流,该顶值电流为基值电流和间隔电流的总和;从非易失性存储器的存储器单元读取电流;当来自存储器单元的电流小于顶值电流时,重复地将电压写入存储器单元,使得从存储器单元读取的电流逐渐地增大;以及当来自存储器单元的电流超过基值电流时,停止写入,其中基值电流是基于来自多
个离散电流电平中的对应于所提供的突触权重的所选离散电流电平而生成的。
73.示例11包括示例10所述的主题,且可选地包括:其中多个离散电流电平中的每一个对应于多个由数个位表示的离散电平中的一个,并且其中间隔电流被确定为由数个位加上一个或多个附加位而表示的电平。
74.示例12包括示例10或11中任一项所述的主题,且可选地包括:其中一个或多个附加位的数目被选择以最小化所读取电流的分布之间的重叠。
75.示例13包括示例10至12中任一项所述的主题,且可选地包括:生成时钟信号,并且其中电压被与时钟信号同步地写入非易失性存储器。
76.示例14包括示例10至13中任一项所述的主题,且可选地包括:其中生成基值电流包括从基于晶体管的电流参考生成器选择对应于一阈值的基值电流,该阈值介于来自多个离散电流电平的所选离散电流电平与紧低于所选离散电流电平的离散电流电平之间。
77.示例15包括示例10至14中任一项所述的主题,且可选地包括:其中间隔电流为预定量,该预定量等于:所选离散电流电平与来自多个离散电流电平中的高于所选离散电流电平的下一离散电流电平之间的电流差别的一半。
78.示例16为一种计算设备,包括:处理器;多电平存储器,耦接到处理器,该存储器适于存储电参数的多个电平中的电平,电参数指示用于人工神经网络的突触权重;以及存储器控制器逻辑,耦接到处理器和存储器,其中存储器控制器逻辑被配置为:生成电参数的基值参考;生成电参数的顶值参考,该顶值参考比基值参考高预定间隔;从多电平存储器读取所存储的电参数;当来自存储器的所存储的电参数小于顶值参考时,重复地将电信号写入存储器,使得存储器中的所存储的电参数逐渐地增大;并且当所存储的电参数大于基值参考时,停止写入。
79.示例17包括示例16所述的主题,且可选地包括:其中多个电平中的每一个对应于多个由数个位表示的离散电平中的一个,并且其中预定间隔被确定为由数个位加上一个或多个附加位而表示的电平。
80.示例18包括示例16或17中任一项所述的主题,且可选地包括:其中一个或多个附加位的数目被选择以最小化读取电参数的分布之间的重叠。
81.示例19包括示例16至18中任一项所述的主题,且可选地包括:耦接到存储器控制器逻辑的电参数参考生成器,该电参数参考生成器用于生成基值参考和预定间隔,其中预定间隔对应于一阈值,该阈值介于来自多个电平的所选电参数电平与紧低于所选电参数电平的离散电参数电平之间。
82.示例20包括示例16至19中任一项所述的主题,且可选地还包括:其中电参数包括以下项中至少一项:电流、电荷或电压。
再多了解一些

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

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

相关文献