1.本技术涉及神经网络技术领域,尤其涉及一种存储装置操作方法及存储装置。
背景技术:
2.神经网络包括多个神经元和多个突触,多个突触中的每个突触可以用于连接多个神经元中的前端神经元和后端神经元,并将前端神经元的电信号或化学信号传递给后端神经元。三维(three dimensions,3d)nand闪存是由多个存储单元堆叠而成的存储设备,具有非易失性,存储容量大、工艺成熟度高和成本低等优点,因此可以应用于神经网络中作为仿生突触器件。
3.将3d nand闪存应用于神经网络时,通常采用3d nand闪存中存储单元的电导作为突触权重,突触权重可用于表示神经网络中两个神经元之间的连接强度。
技术实现要素:
4.本技术提供一种存储装置操作方法及存储装置,用于避免存储装置中的存储单元的电导变化缓慢的情况。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,提供一种存储装置操作方法,该存储装置包括:多个存储串构成的存储单元阵列,该存储串包括多个存储单元,该多个存储单元中的至少一个存储单元的电导作为第一神经元和第二神经元之间的突触权重,该方法包括:对目标存储单元施加第一脉冲电压,该第一脉冲电压可以为正向脉冲电压,也可以为负向脉冲电压,以对该目标存储单元进行第一操作,该第一操作可以为编程操作,也可以为擦除操作,其中,该目标存储单元包括该至少一个存储单元;对该目标存储单元施加第二脉冲电压,该第二脉冲电压可以为正向脉冲电压,也可以为负向脉冲电压,以对该目标存储单元进行第二操作,该第一操作和该第二操作是连续两次操作,比如,当第一操作是编程操作时,该第二操作也为编程操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值。
7.上述技术方案中,对目标存储单元施加第一脉冲电压,以对目标存储单元进行第一操作,对目标存储单元施加第二脉冲电压,以对目标存储单元进行第二操作,该第一操作和该第二操作是连续两次操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值,脉冲电压逐渐升高,从而能够持续对目标存储单元进行编程操作或者擦除操作,使得目标存储单元中的电导以同一个量值持续的增大或者减小,与由于阈值电压升高,采用相同幅值的脉冲电压使得存储单元电导变化缓慢相比,即避免了出现编程饱和以及擦除饱和的现象。
8.在第一方面的一种可能的实现方式中,该方法该包括:对该目标存储单元施加第三脉冲电压,以对该目标存储单元进行第三操作,该第一脉冲电压与该第二脉冲电压之间的时间间隔和该第二脉冲电压与该第三脉冲电压之间的时间间隔相等,该第三脉冲电压的绝对值大于该第二脉冲电压的绝对值。上述可能的实现方式中,对目标存储单元进行连续
的三次操作,该第一操作之后目标存储单元的电导值为第一电导值,该第二操作之后目标存储单元的电导值为第二电导值,该第三操作之后目标存储单元的电导值为第三电导值,该第一电导值与该第二电导值的差值为第一数值,该第二电导值与该第三电导值的差值为第二数值,由于该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内,即第一脉冲电压、第二脉冲电压以及第三脉冲电压可以近似看作等比例增加,第一电导值、第二电导值以及第三电导值可以近似看作等比例减小或者等比例增大,该第一电导值、该第二电导值和该第三电导值的变化趋势可以近似为一条直线,从而提高了目标存储单元电导的线性度,进一步提高了神经网络的准确性。
9.在第一方面的一种可能的实现方式中,在该第一操作之后该目标存储单元的电导值为第一电导值,在该第二操作之后该目标存储单元的电导值为第二电导值,在该第三操作之后该目标存储单元的电导值为第三电导值;其中,该第一电导值、该第二电导值和该第三电导值呈线性关系。上述可能的实现方式中,该第一电导值、该第二电导值和该第三电导值呈线性关系,提高了目标存储单元的电导的线性度,将存储装置应用于神经网络时,进一步提高了神经网络的准确性。
10.在第一方面的一种可能的实现方式中,该存储装置还包括与该目标存储单元连接的字线,该脉冲电压为施加在该字线上的正向脉冲电压,该操作为编程操作。上述可能的实现方式中,该脉冲电压为施加在目标存储单元的字线上的正向脉冲,以对该目标存储单元进行编程操作,减小了该目标存储单元的电导值,从而达到调节目标存储单元电导值的目的。
11.在第一方面的一种可能的实现方式中,该存储装置还包括与该目标存储单元连接的字线,该脉冲电压为施加在该字线上的负向脉冲电压,该操作为擦除操作。上述可能的实现方式中,该脉冲电压为施加在目标存储单元的字线上的负向脉冲,以对该目标存储单元进行擦除操作,增大了该目标存储单元的电导值,从而达到调节目标存储单元电导值的目的。
12.在第一方面的一种可能的实现方式中,该存储装置还包括与该目标存储单元连接的位线,该脉冲电压施加在该位线上的正向脉冲电压,该操作为擦除操作。上述可能的实现方式中,该脉冲电压为施加在目标存储单元的位线上正向脉冲电压,以对该目标存储单元进行擦除操作,增大了该目标存储单元的电导值,从而达到调节目标存储单元电导值的目的。
13.在第一方面的一种可能的实现方式中,对该目标存储单元分别施加多个脉冲电压中的每个脉冲电压之前,该方法还包括:获取该目标存储单元的当前电导值;根据该当前电导值、以及该当前电导值对应的预设电导值,调节该脉冲电压。上述可能的实现方式中,根据该当前电导值、以及该当前电导值对应的预设电导值,调节该脉冲电压,使得目标存储单元的电导值更接近预设的电导值,提高了目标存储单元电导值变化的线性度,将存储装置应用于神经网络时,进一步,提高了神经网络的准确性。
14.在第一方面的一种可能的实现方式中,当该操作为擦除操作时,根据该当前电导值、以及与该当前电导值对应的预设电导值,调节该脉冲电压,包括:若该当前电导值大于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲
电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值;若该当前电导值小于该当前电导值对应的预设电导值,则增加该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于增加后的该脉冲电压的绝对值。上述可能的实现方式中,使得目标存储单元的电导值更接近预设的电导值,提高了目标存储单元电导值变化的线性度,将存储装置应用于神经网络时,进一步,提高了神经网络的准确性。
15.在第一方面的一种可能的实现方式中,当该操作为编程操作时,根据该当前电导值、以及与该当前电导值对应的预设电导值,调节该脉冲电压,包括:若该当前电导值大于该当前电导值对应的预设电导值,则增加该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于增加后的该述脉冲电压的绝对值;若该当前电导值小于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值。上述可能的实现方式中,使得目标存储单元的电导值更接近预设的电导值,提高了目标存储单元电导值变化的线性度,将存储装置应用于神经网络时,进一步,提高了神经网络的准确性。
16.第二方面,提供一种存储装置,该存储装置包括:多个存储串构成的存储单元阵列和外围电路,该存储串包括多个存储单元,该多个存储单元中的至少一个存储单元的电导作为第一神经元和第二神经元之间的突触权重;该外围电路,用于对目标存储单元施加第一脉冲电压,以对该目标存储单元进行第一操作,其中,该目标存储单元包括该至少一个存储单元;该外围电路,还用于对该目标存储单元施加第二脉冲电压,以对该目标存储单元进行第二操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值。
17.在第二方面的一种可能的实现方式中,该外围电路还用于:用于对该目标存储单元施加第三脉冲电压,以对该目标存储单元进行第三操作,该第一脉冲电压与该第二脉冲电压之间的时间间隔和该第二脉冲电压与该第三脉冲电压之间的时间间隔相等,该第三脉冲电压的绝对值大于该第二脉冲电压的绝对值。
18.在第二方面的一种可能的实现方式中,在该第一操作之后该目标存储单元的电导值为第一电导值,在该第二操作之后该目标存储单元的电导值为第二电导值,在该第三操作之后该目标存储单元的电导值为第三电导值,该第一电导值、该第二电导值和该第三电导值呈线性关系。
19.在第二方面的一种可能的实现方式中,对该目标存储单元分别施加多个脉冲电压中的每个脉冲电压之前,该外围电路还用于:获取该目标存储单元的当前电导值;根据该当前电导值、以及该当前电导值对应的预设电导值,调节该脉冲电压。
20.在第二方面的一种可能的实现方式中,当该操作为擦除操作时,该外围电路还用于:若该当前电导值大于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值;若该当前电导值小于该当前电导值对应的预设电导值,则增加该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于增加后的该脉冲电压的绝对值。
21.在第二方面的一种可能的实现方式中,当该操作为编程操作时,该外围电路还用于:若该当前电导值大于该当前电导值对应的预设电导值,则增加该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于增加后的该脉冲电压的绝对
值;若该当前电导值小于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值。
22.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令运行时,执行如第一方面或第一方面的任一种可能的实现方式所提供的存储装置操作方法。
23.在本技术的又一方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得存储装置执行第一方面或者第一方面的任一种可能的实现方式所提供的存储装置操作方法。
24.可以理解地,上述提供的任一种存储装置、计算机可读存储介质和计算机程序产品均可用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
25.图1为一种神经网络的结构示意图;
26.图2为一种固定幅值脉冲的示意图;
27.图3为一种3d nand闪存中的电导随脉冲个数变化的示意图;
28.图4为本技术实施例提供的一种存储装置的结构示意图;
29.图5为本技术实施例提供的一种存储装置的结构示意图;
30.图6为本技术实施例提供的另一种存储装置的结构示意图;
31.图7为本技术实施例提供的一种存储装置操作方法的流程示意图;
32.图8为本技术实施例提供的一种脉冲电压绝对值的示意图;
33.图9为本技术实施例提供的一种神经网络准确性与电导线性的示意图;
34.图10为本技术实施例提供的一种存储装置操作方法的柱状图;
35.图11为本技术实施例提供的一种存储装置结构示意图。
具体实施方式
36.本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b、或c中的至少一项(个),可以表示:a、b、c、a-b、a-c、b-c、或a-b-c,其中a、b、c可以是单个,也可以是多个。另外,本技术实施例采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一阈值和第二阈值仅仅是为了区分不同的阈值,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
37.需要说明的是,本技术中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在
以具体方式呈现相关概念。
38.在介绍本技术书实施例之前,首先对神经网络相关的背景技术进行介绍说明。
39.神经网络包括多个神经元和多个突触,多个突触中的每个突触可以用于连接多个神经元中的前端神经元和后端神经元,并将前端神经元的电信号或化学信号传递给后端神经元。
40.图1为一种神经网络的结构示意图,该神经网络包括:至少两层神经元和多个突触,该至少两层神经元中的每层神经元可以包括多个神经元。例如,该至少两层神经元可以包括三层神经元,该三层神经元包括依次相邻的第一层神经元、第二层神经元和第三层神经元。其中,第一层神经元可以包括多个神经元且可以表示为x1至xn,第二层神经元可以包括多个神经元且可以表示为y1至yn,第三层神经元可以包括多个神经元且可以表示为z1至zn,n大于1。该多个突触中的每个突触可以用于连接相邻两层神经元中的两个神经元,且可以表示为sxy,x,y大于等于1。例如,突触s11可用于连接神经元x1与神经元y1,突触s21可用于连接神经元x2与神经元y1。图1中以至少两层神经元包括三层神经元为例,且图1中仅示出了部分神经元和部分突触。
41.可选的,相对于相邻的两层神经元,前一层神经元中的每个神经元可以称为前端神经元,后一层神经元中的每个神经元可以称为后端神经元。以上述三层神经元为例,对于第一层神经元和第二层神经元而言,第一层神经元中的每个神经元可以为前端神经元,第二层神经元中的每个神经元可以为后端神经元;对于第二层神经元和第三层神经元而言,第二层神经元中的每个神经元可以为前端神经元,第三层神经元中的每个神经元可以为后端神经元。
42.三维(three dimensions,3d)nand闪存包括存储单元阵列。nand闪存具有非易失性,存储容量大、工艺成熟度高和成本低等优点,可以应用于神经网络中作为仿生突触器件。将3d nand闪存应用于神经网络时,通常采用存储单元阵列中存储单元的电导作为突触权重,突触权重可用于表示神经网络中两个神经元之间的连接强度。3d nand闪存还包括外围电路,该外围电路用于为存储单元阵列中的存储单元提供电压。
43.目前通过连续的具有固定幅值的脉冲(包括编程脉冲和擦除脉冲)对3d nand闪存中的存储单元进行编程或擦除,通过改变存储单元的阈值电压,以调节存储单元的电导,其中,电导用于表示存储单元的导电能力。示例性的,如图2所示,横坐标为时间(t),纵坐标为电压(v),t1时刻、t2时刻和t3时刻脉冲电压的幅值均相同且均等于v1。具体的,通过连续的具有固定幅值的编程脉冲,对3d nand闪存中的存储单元进行编程,使得负电荷存储在存储单元的存储层中,以增加存储单元的存储层中负电荷的数量,使得存储单元的阈值电压升高,由于存储单元的阈值电压与电导呈反相关关系,即存储单元的阈值电压升高,则电导降低,因此降低了存储单元的电导。类似的,通过连续的具有固定幅值的擦除脉冲,对3d nand闪存中的存储单元进行擦除,以减少存储单元的存储层中负电荷的数量,使得存储单元的阈值电压降低,由于存储单元的阈值电压与电导呈反相关关系,即存储单元的阈值电压降低,则电导升高,因此升高了存储单元的电导。
44.但是,由于3d nand闪存中存储单元的阈值电压会随着存储层中负电荷的增加而升高,当脉冲个数较多时,通过相同幅值的编程或者擦除脉冲所产生的阈值电压和电导的变化会缓慢,从而出现编程饱和或者擦除饱和的现象。
45.图3为3d nand闪存中的电导随脉冲个数变化的示意图,横坐标为脉冲个数,纵坐标为电导,曲线s1表示电导随擦除脉冲个数的变化趋势,随着擦除脉冲个数的增加,电导逐渐增大,且电导的变化逐渐放缓,即出现擦除饱和;曲线s2表示电导随编程脉冲个数的变化趋势,随着编程脉冲个数的增加,电导逐渐减小,且电导的变化逐渐放缓,即出现编程饱和;直线s3表示理想状态下电导随擦除脉冲个数的变化趋势,随着擦除脉冲个数的增加,电导逐渐增大,且呈线性变化;直线s4表示理想状态下电导随编程脉冲个数的变化趋势,随着编程脉冲个数的增加,电导逐渐减小,且呈线性变化。
46.基于此,本技术提供一种存储装置操作方法,该操作方法应用于存储装置中,该操作方法能够持续对存储装置中的存储单元阵列进行编程或者擦除操作,使得存储装置中电导的变化呈线性趋势,从而避免出现编程饱和或者擦除饱和的现象。
47.下面首先对存储装置的结构进行介绍说明。
48.图4为本技术实施例提供的一种存储装置可能的结构示意图,如图4所示,该存储装置可以包括:外围电路01和存储单元阵列02。存储单元阵列02包括位线和字线。
49.其中,外围电路01可用于为存储单元阵列02提供电压。例如,外围电路01可以包括供电模块,供电模块用于为存储单元阵列02提供导通电压和脉冲电压。比如,供电模块可以为存储单元阵列02提供编程脉冲电压和擦除脉冲电压,其中,编程脉冲电压为施加在存储单元阵列02字线的正向脉冲电压,擦除脉冲电压为施加在存储单元阵列02字线的负向脉冲电压,供电模块还可以为存储单元阵列02的位线提供正向的擦除脉冲电压。供电模块还可以为存储单元阵列02的字线提供导通电压。例如,外围电路01用于为存储单元阵列02中的存储单元提供1.7v的导通电压。可选的,该外围电路01还可以包括读取模块和计算模块,读取模块用于读取存储单元阵列02中存储单元的电导值,计算模块可用于计算两个存储单元电导的差值。该外围电路01还可以包括选址模块,该选址模块包括多个开关,选址模块用于选择需要进行相应操作的存储单元。可选的,外围电路01可以为互补型金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)电路,cmos电路可以包括多个金属氧化物半导体场效应管(metal-oxide semiconductor field effect transistor,mos-fet)。关于cmos电路的详细结构可以参考现有技术,本技术实施例对此不再赘述。
50.存储单元阵列02中位于同一行的多个存储单元通过一个字线连接,位于同一列的存储单元通过一个位线连接。字线可用于接收外围电路01提供的脉冲电压,并根据脉冲电压进行编程或者擦除操作。例如,字线可用于接收外围电路01提供的正向脉冲电压,并根据正向脉冲电压对存储单元阵列中的存储单元进行编程操作,字线还用于接收外围电路01提供的负向脉冲电压,并根据负向脉冲电压对存储单元阵列进行擦除操作。字线还用于接收外围电路01提供的导通电压,并根据导通电压导通存储单元阵列中相对的存储单元。
51.图5为本技术实施例提供的一种存储装置在垂直方向的切面结构示意图,图5中以该存储装置包括5层存储单元为例进行说明,每一层存储单元包括多个存储单元,每层存储单元中位于同一列的多个存储单元通过位线相连,位于同一行的多个存储单元通过字线连接。每层存储单元中的至少一个存储单元gxy可以作为连接多个第一神经元和一个第二神经元之间的突触,比如,多个第一神经元且可以表示为x1至xn、多个第二神经元且可以表示为y1至ym。其中,多个第一神经元和多个第二神经元可以是图1所示的神经网络中任意相邻的两层神经元。例如,多个第一神经元可以为第二层神经元,多个第二神经元为第三层神经
元。其中,第一层存储单元中的至少一个存储单元可以作为多个第一神经元x1至xn和第二神经元y1之间的突触,例如,第一层存储单元中的存储单元g11可以作为第一神经元x1与第二神经元y1之间的突触,第一层存储单元中的存储单元g21可以作为第一神经元x2与第二神经元y1之间的突触,第一层存储单元中的存储单元gn1可以作为第一神经元xn与第二神经元y1之间的突触。第二层存储单元中的至少一个存储单元可以作为多个第一神经元x1至xn和第二神经元y2之间的突触,例如,第二层存储单元中的存储单元g12可以作为第一神经元x1与第二神经元y2之间的突触,第二层存储单元中的存储单元g22可以作为第一神经元x2与第二神经元y2之间的突触。
52.需要说明的是,将存储装置应用于神经网络时,可以采用存储装置中至少一个存储单元的电导作为第一神经元x1与第二神经元y1之间的突触权重。图5中以至少一个存储单元包括一个存储单元为例进行说明。例如,存储单元g11的电导可以为第一神经元x1与第二神经元y1之间的突触权重。可选的,在读取存储单元中的电导时,可以通过外围电路给存储单元的字线施加读取电压,以读取存储单元中的电导值。
53.可选的,当至少一个存储单元包括两个存储单元时,该神经网络的结构如图6所示,此时,利用两个存储单元的电导的差值作为突触权重。比如,存储单元g11
的电导与存储单元g11-的电导的差值作为第一神经元x1与第二神经元y1之间的突触权重。其中,正号和负号仅表示两个不同的存储单元。可选的,外围电路中的读取模块可用于读取存储单元g11
的电导值与存储单元g11-的电导值,外围电路中的计算模块用于根据存储单元g11
的电导值与存储单元g11-的电导值计算出电导的差值。为了便于理解,以下实施例中均以该至少一个存储单元包括一个存储单元为例进行说明。
54.下面结合图4所示的存储装置以及图5所示的存储装置对本技术所提供的存储装置操作方法进行介绍说明。
55.图7为本技术实施例提供的一种存储装置操作方法的流程示意图,如图7所示,该存储装置操作方法包括以下步骤。
56.s701:对目标存储单元施加第一脉冲电压,以对该目标存储单元进行第一操作,其中,该目标存储单元包括至少一个存储单元。
57.可选的,在该第一操作之后该目标存储单元的电导值可以为第一电导值。
58.其中,该目标存储单元可以包括一个存储单元,也可以包括多个存储单元。例如,目标存储单元可以包括第一层存储单元中的存储单元g11,此时,外围电路对存储单元g11的字线施加编程电压,并对第一层存储单元中除存储单元g11之外的其他存储单元的位线施加与存储单元g11相同的编程电压。目标存储单元也可以存储单元阵列,此时,外围电路对存储单元阵列中的每个存储单元的字线施加擦除电压。
59.可选的,该第一脉冲电压可以为正向脉冲,也可以为负向脉冲。该第一操作可以包括编程操作,也可以包括擦除操作。当该第一脉冲电压为正向脉冲电压时,该第一操作可以为编程操作,也可以为擦除操作。例如,若该第一脉冲电压为施加在目标存储单元的字线上的正向脉冲电压,该第一操作为编程操作;若该第一脉冲电压为施加在目标存储单元位线上的正向脉冲电压,该第一操作为擦除操作。当第一脉冲电压为负向脉冲电压时,该第一操作为擦除操作,比如,该第一脉冲电压为施加在该目标存储单元字线上的负向脉冲电压,该第一操作为擦除操作。
60.需要说明的是,在实际应用中通常采用在目标存储单元的位线上施加正向脉冲电压的方式对目标存储单元进行擦除操作。以下实施例中,为了便于理解,以第一脉冲电压为正向脉冲电压时,该第一操作为编程操作,第一脉冲电压为负向脉冲电压时,该第一操作为擦除操作为例进行说明。
61.可选的,在擦除操作和编程操作时,该目标存储单元可以包括一个存储单元,也可以包括多个存储单元,以下实施例中,编程操作时,该目标存储单元包括一个存储单元,擦除操作时,该目标存储单元包括多个存储单元为例进行说明。
62.下面分别对目标存储单元进行编程操作和擦除操作的过程进行介绍说明。
63.在一种可能的实施例中,目标存储单元包括一个第一神经元与一个第二神经元之间对应的连接的一个存储单元,该第一脉冲电压为正向脉冲电压,该第一操作为编程操作。示例性的,该目标存储单元包括第一神经元x1与第二存储单元y1之间对应的连接的存储单元g11,对存储单元g11施加正向脉冲电压,以对存储单元g11进行编程操作。编程操作是指通过正向脉冲电压将负电荷存储在存储单元g11的存储层中的过程。在该实施例中,通过对目标存储单元进行编程操作,增加了目标存储单元的存储层中负电荷的数量,目标存储单元的负电荷数量与阈值电压(目标存储单元导通时的电压)呈正相关关系,即目标存储单元的存储层中负电荷数量越多,阈值电压越高,相当于升高了目标存储单元的阈值电压,由于目标存储单元的阈值电压与电导呈反相关关系,即目标存储单元的阈值电压越大,电导越小,相当于减小了目标存储单元的电导,从而达到调节目标存储单元电导的目的,即达到调节突触权重的目的。
64.在实际应用中,当该第一脉冲电压为正向脉冲电压时,该第一脉冲电压大于该目标存储单元的导通电压,例如,该第一脉冲电压可以为10v,该导通电压可以为1.7v。
65.在另一种可能的实施例中,目标存储单元包括该多个第一神经元与该多个第二神经元之间对应的连接的多个存储单元,该第一脉冲电压为负向脉冲电压,该第一操作为擦除操作。示例性的,该目标存储单元包括6个第一神经元x1至x6与4个第二神经元y1至y4之间对应的连接的多个存储单元,该多个存储单元包括24存储单元,对多个存储单元同时施加负向脉冲电压,以对多个存储单元同时进行擦除操作。擦除操作是指通过负向脉冲电压将多个存储单元中每个存储单元的存储层中存储的负电荷擦除的过程。在该实施例中,通过对目标存储单元进行擦除操作,减少了目标存储单元存储层中负电荷的数量,目标存储单元的负电荷数量与阈值电压呈正相关关系,即目标存储单元的存储层中负电荷数量越少,阈值电压越低,相当于减小了目标存储单元的阈值电压,由于目标存储单元的阈值电压与电导呈反相关关系,即目标存储单元的阈值电压越小,电导越大,相当于增大目标存储单元的电导,从而达到调节目标存储单元电导的目的,即达到调节突触权重的目的。
66.在实际应用中,当该第一脉冲电压为负向脉冲电压时,该第一脉冲电压的绝对值大于该目标存储单元的导通电压,但是该第一脉冲电压的数值小于该目标存储单元的导通电压。比如,该第一脉冲电压可以为-10v,该导通电压可以为1.7v。
67.s702:对该目标存储单元施加第二脉冲电压,以对该目标存储单元进行第二操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值。
68.其中,第二脉冲电压可以为正向脉冲电压,也可以为负向脉冲电压。该第二操作可以为编程操作,也可以为擦除操作。具体的,当第二脉冲电压为正向脉冲电压时,该第二操
作为编程操作,该第二操作后减小了目标存储单元的电导值,在该第二操作之后该目标存储单元的电导值可以为第二电导值,该第二电导值小于该第一电导值;当第二脉冲电压为负向脉冲电压时,该第二操作为擦除操作,该第二操作后增大了目标存储单元的电导值,此时,该第二电导值大于该第一电导值。
69.下面分别对目标存储单元进行第二操作的两种情况进行说明。
70.在一种可能的实施例中,当第一操作是编程操作时,第二脉冲电压为正向脉冲电压,第二操作为编程操作,该第一操作和该第二操作是连续的两次编程操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值。在该实施例中,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值,通过连续的两次编程操作可以持续将负电荷存储在目标存储单元的存储层中,即可以连续减小目标存储单元的电导,避免了由于目标存储单元的存储层中负电荷数量的增加,目标存储单元的阈值电压升高,导致负电荷无法持续存储到目标存储单元存储层中,即避免出现编程饱和,使得目标存储单元的电导无法改变。
71.在实际应用中,当该第二脉冲电压为正向脉冲电压时,该第二脉冲电压大于该目标存储单元的导通电压,例如,该第二脉冲电压可以为14v,该导通电压可以为2v。
72.在另一种可能的实施例中,当第一操作是擦除操作时,第二脉冲电压为负向脉冲电压,第二操作为擦除操作,该第一操作和该第二操作是类型相同的连续的两次擦除操作,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值。在该实施例中,该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值,通过连续的两次擦除操作可以持续擦除存储在目标存储单元存储层中的负电荷,即可以连续增大目标存储单元的电导,避免了目标存储单元存储层中的负电荷无法擦除的现象,即避免了目标存储单元的电导改变缓慢的现象。
73.在实际应用中,当该第二脉冲电压为负向脉冲电压时,该第二脉冲电压的绝对值大于该目标存储单元的导通电压,但是该第二脉冲电压的数值小于该目标存储单元的导通电压。比如,该第二脉冲电压可以为-14v,该导通电压可以为1.5v。
74.在一种可能的实施例中,对该目标存储单元施加第三脉冲电压,以对该目标存储单元进行第三操作,该第二操作和该第三操作是连续两次操作,该第一脉冲电压与该第二脉冲电压之间的时间间隔和该第二脉冲电压与该第三脉冲电压之间的时间间隔相等,该第三脉冲电压的绝对值大于该第二脉冲电压的绝对值,该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内。
75.示例性的,如图8所示,横坐标为时间,纵坐标为脉冲电压绝对值,第一脉冲电压的绝对值为10v,第二脉冲电压的绝对值为14.9v,第三脉冲电压的绝对值为20v,该第二脉冲电压与该第一脉冲电压之差的绝对值为4.9v,该第三脉冲电压与该第二脉冲电压之差的绝对值为5.1v,假设该预设电压范围可以为(4.5~5.5v),该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内。
76.其中,该预设电压范围可以根据实际需求和相关技术人员的经验进行设置。本技术实施例对此不做具体限制。
77.另外,第三脉冲电压可以为正向脉冲电压,也可以为负向脉冲电压。该第三操作可以为编程操作,也可以为擦除操作。当第三脉冲电压为正向脉冲电压时,该第三操作为编程操作,该第三操作后减小了目标存储单元的电导值,在该第三操作之后该目标存储单元的
电导值可以为第三电导值,该第三电导值小于该第二电导值;当第三脉冲电压为负向脉冲电压时,该第三操作为擦除操作,该第三操作后增大了目标存储单元的电导值,此时,该第三电导值大于该第二电导值。
78.下面分别对目标存储单元进行第三操作的两种情况进行说明。
79.在一种可能的实施例中,当第二操作是编程操作时,第三脉冲电压为正向脉冲电压,第三操作为编程操作,该第一操作、该第二操作和该第三操作是连续的三次编程操作,对目标存储单元进行连续的三次编程操作,目标存储单元的电导值逐渐减小,该第二电导值小于该第一电导值,该第三电导值小于该第二电导值,该第一电导值与该第二电导值的差值为第一数值,该第二电导值与该第三电导值的差值为第二数值,该第三脉冲电压的绝对值大于该第二脉冲电压的绝对值,该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内。在该实施例中,由于该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内,使得该第一数值与该第二数值的差值小于预设数值,即第一脉冲电压、第二脉冲电压以及第三脉冲电压可以近似看作等比例增加,第一电导值、第二电导值以及第三电导值可以近似看作等比例减小,该第一电导值、该第二电导值和该第三电导值的变化趋势可以近似为一条直线,从而提高了目标存储单元电导的线性度,进一步提高了神经网络的准确性。
80.需要说明的是,该预设数值可以根据实际需求或者相关技术人员的经验确定,本技术实施例对此不做具体限定。
81.在实际应用中,当该第三脉冲电压为正向脉冲电压时,该第三脉冲电压大于该目标存储单元的导通电压,例如,该第三脉冲电压可以为21v,该导通电压可以为2.5v。
82.在另一种可能的实施例中,当第二操作是擦除操作时,第三脉冲电压为负向脉冲电压,第三操作为擦除操作,该第一操作、该第二操作和该第三操作是连续的三次擦除操作,对目标存储单元进行连续的三次擦除操作,目标存储单元的电导值逐渐增大,该第二电导值大于该第一电导值,该第三电导值大于该第二电导值,该第一电导值与该第二电导值的差值为第一数值,该第二电导值与该第三电导值的差值为第二数值,该第三脉冲电压的绝对值大于该第二脉冲电压的绝对值,该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内。在该实施例中,由于该第二脉冲电压与该第一脉冲电压之差的绝对值、以及该第三脉冲电压与该第二脉冲电压之差的绝对值均在预设电压范围内,使得该第一数值与该第二数值的差值小于预设数值,即第一脉冲电压、第二脉冲电压以及第三脉冲电压可以近似看作等比例减小,第一电导值、第二电导值以及第三电导值可以近似看作等比例增大,该第一电导值、该第二电导值和该第三电导值的变化趋势可以近似为一条直线,从而提高了目标存储单元电导的线性度,进一步提高了神经网络的准确性。
83.示例性的,如图9所示,在相同幅值脉冲下目标存储单元的线性度为a1,在步进式脉冲下目标存储单元的线性度为a2,a1小于a2,即步进式脉冲下目标存储单元的线性度高于相同幅值脉冲下目标存储单元的线性度,当线性度为a1时,对应的神经网络的准确性为b1,当线性度为a2时,对应的神经网络的准确性为b2,b2大于b1,即目标存储单元的线性度越高,神经网络的准确性越高。
84.在实际应用中,当该第三脉冲电压为负向脉冲电压时,该第三脉冲电压的绝对值大于该目标存储单元的导通电压,例如,该第三脉冲电压可以为-21v,该导通电压可以为1v。
85.再者,该正向脉冲电压可以包括增量步进脉冲编程(incremental step pulse program,ispp)电压,该负向脉冲电压可以包括增量步进脉冲擦除(incremental step pulse erase,ispe)电压,该正向脉冲电压和该负向脉冲电压也可以称为编程电压或者步进式电压。
86.在一种可能的实施例中,可以对该目标存储单元分别施加相同时间间隔的多个脉冲电压,该多个脉冲电压可以包括该第一脉冲电压。第二脉冲电压和第三脉冲电压,对该目标存储单元分别施加多个脉冲电压中的每个脉冲电压之前,对目标存储单元进行一次读取验证,该方法还包括:获取该目标存储单元的当前电导值;根据该当前电导值、以及该当前电导值对应的预设电导值,调节该脉冲电压,这样在对该目标存储单元施加电压时可以施加调节后的脉冲电压。
87.下面分别对擦除操作和编程操作进行说明。
88.在执行擦除操作时,若该当前电导值大于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值;若该当前电导值小于该当前电导值对应的预设电导值,则增加该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值。其中,预设电导值是理想状态下的电导值,即电导随脉冲电压的个数呈线性时的电导值。
89.示例性的,假设需要调节的电导的区间为(40-360),每次调节施加的脉冲电压以5v数值递增,电导值以40的数值递减为例,对目标存储单元施加第一脉冲电压前,该目标存储单元的当前电导值为356,此时该当前电导值对应的预设电导值为360,该当前电导值小于当前电导值对应的预设电导值,则增大第一脉冲电压,对目标存储单元施加21v的第一脉冲电压(按照线性变化,此时20v的脉冲电压即可以使得电导值减小40),以对目标存储单元进行第一操作,第一操作之后目标存储单元的当前电导值为第一电导值;该第一电导值为324,该第一电导值对应的预设电导值为320,该第一电导值大于该第一电导值对应的预设电导值,则减小该第二脉冲电压,则对目标存储单元施加24.9v的第二脉冲电压,该第二脉冲电压的绝对值大于增加后的该第一脉冲电压的绝对值,以对目标存储单元进行第二操作,第二操作之后目标存储单元的当前电导值为第二电导值。
90.在执行编程操作时,若该当前电导值大于该当前电导值对应的预设电导值,则增大该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于增加后的该脉冲电压的绝对值;若该当前电导值小于该当前电导值对应的预设电导值,则减小该脉冲电压的绝对值,该多个脉冲电压中该脉冲电压的下一个脉冲电压的绝对值大于减小后的该脉冲电压的绝对值。具体的调节过程与擦除操作的调节过程类似,此处不再赘述。
91.为了便于理解,下面以图10所示的柱状图为例,对本技术所提供的技术方案进行举例说明。
92.如图10所示,对目标存储单元施加第一脉冲电压v1之前,即t1时刻之前,对目标存储单元进行一次读取验证,根据读取验证的结果提供第一脉冲电压v1,对目标存储单元施
加第二脉冲电压v2之前,即t2时刻之前,对目标存储单元进行一次读取验证,根据读取验证的结果提供第二脉冲电压v2,第二脉冲电压v2大于第一脉冲电压v1的绝对值,对目标存储单元施加第三脉冲电压v3之前,即t3时刻之前,对目标存储单元进行一次读取验证,并根据读取验证的结果提供第三脉冲电压v3,第三脉冲电压v3的绝对值大于第二脉冲电压v2的绝对值。
93.在该实施例中,在每次施加脉冲电压之前,对目标存储单元进行一次读取验证,通过比较该当前电导值与预设电导值,对脉冲电压进行调节,使得目标存储单元的电导值更接近预设的电导值,提高了目标存储单元电导值变化的线性度,简化为外围电路,进一步,提高了神经网络的准确性。
94.本技术提供的存储装置操作方法,对目标存储单元施加第一脉冲电压,以对目标存储单元进行第一操作,对目标存储单元施加第二脉冲电压,以对目标存储单元进行第二操作,该第一操作和该第二操作是连续两次操作,由于该第二脉冲电压的绝对值大于该第一脉冲电压的绝对值,脉冲电压的逐渐升高,从而能够持续对目标存储单元进行编程或者擦除操作,避免了出现编程饱和以及擦除饱和的现象,即避免出现存储单元的电导变化缓慢的现象,使得目标存储单元的电导呈线性的变化趋势。
95.可以理解的是,该存储装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中实施例描述的各示例的数据读取方法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
96.本技术实施例可以根据上述方法示例对存储装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
97.在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的存储装置的一种可能的结构示意图,该存储装置包括:外围电路101和存储单元阵列102。该外围电路101用于支持存储装置执行上述方法实施例中的s701,存储单元阵列102用于支持存储装置执行上述方法实施例中的s702。
98.在硬件实现上,存储装置可以是图4中存储装置中的存储装置,关于该存储装置的具体描述可以参见图4中的具体描述,本技术实施例在此不再赘述。
99.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。本技术实施例提供的装置,用于执行上述实施例中对应的功能,因此可以达到与上述控制方法相同的效果。
100.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
101.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
102.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得装置执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
103.在本技术的又一方面,提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当该计算机指令在存储装置上运行时,执行上述方法实施例中的相关步骤。
104.在本技术的又一方面,提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上设备运行时,使得存储装置执行上述方法实施例中的相关步骤。
105.最后应说明的是:以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。