掌桥专利:专业的专利平台
掌桥专利
首页

用于忆阻器单元编程的方法和装置

文献发布时间:2024-01-17 01:26:37


用于忆阻器单元编程的方法和装置

技术领域

本公开的实施例涉及一种用于忆阻器单元编程的方法和装置。

背景技术

随着人工智能时代的到来,传统冯·诺依曼架构的“存储墙”问题严重制约了芯片的算力与能耗,基于忆阻器单元阵列的存算一体架构成为解决问题的关键技术之一。现有对构成忆阻器单元阵列的忆阻器单元的编程方法中,编程与校验操作被分为两个状态周期性交替进行,并且忆阻器单元的电阻值仅可在校验周期进行判断。由于需要频繁地在编程状态和校验状态之间进行切换,忆阻器单元的操作电压需要频繁地在编程操作电压和校对操作电压之间进行切换,导致编程效率低。同时,由于忆阻器单元的电阻值仅可在校验周期进行判断,因此容易在编程周期产生过操作,超出目标区间,导致反复编程,这也会降低忆阻器单元的编程效率。

发明内容

本公开的至少一实施例提供一种用于忆阻器单元编程的方法和装置,可以用于避免忆阻器单元的操作电压在不同状态之间的切换同时避免过操作,从而提升编程效率。

例如,本公开的至少一实施例提供一种用于忆阻器单元的编程方法,包括:执行至少一个编程循环,其中,每个编程循环包括:基于用于忆阻器单元的编程操作电压和编程目标电阻值生成参考电流,其中,编程操作电压是要用于置位或复位忆阻器单元的操作电压;检测被施加编程操作电压的忆阻器单元的第一电流;基于要对忆阻器单元执行的编程操作以及第一电流与参考电流之间的比较,更新编程操作电压,并对忆阻器单元施加更新的编程操作电压以对忆阻器单元进行编程以改变忆阻器单元的阻值。

例如,在本公开的至少一实施例提供的编程方法中,编程操作电压包括字线编程操作电压、位线编程操作电压以及源线编程操作电压。

例如,在本公开的至少一实施例提供的编程方法中,还包括:在初始循环中,基于第一电流与参考电流之间的比较,确定要对忆阻器单元执行的编程操作,其中,如果第一电流大于参考电流,则确定编程操作为复位操作,反之则确定编程操作为置位操作。

例如,在本公开的至少一实施例提供的编程方法中,基于第一电流与参考电流之间的比较确定要对忆阻器单元执行的编程操作,包括:如果第一电流与参考电流的差值的绝对值不大于第一阈值电流,则确定编程成功,并结束编程操作;如果第一电流与参考电流的差值的绝对值大于第一阈值电流,则继续对忆阻器单元执行编程操作。

例如,在本公开的至少一实施例提供的编程方法中,继续对忆阻器单元执行编程操作,包括:基于编程次数确定是否继续执行编程操作,其中,如果编程次数小于阈值则继续执行编程操作,反之,则确定编程操作失败,并结束编程操作。

例如,在本公开的至少一实施例提供的编程方法中,更新编程操作电压,包括:基于第一电流与参考电流的差值的绝对值更新字线编程操作电压和/或更新位线编程操作电压/源线编程操作电压。

例如,在本公开的至少一实施例提供的编程方法中,基于第一电流与参考电流的差值的绝对值更新字线编程操作电压和/或更新位线编程操作电压/源线编程操作电压,包括:当第一电流与参考电流的差值的绝对值大于第二阈值电流时,更新字线编程操作电压,并保持位线编程操作电压和源线编程操作电压不变;以及当第一电流与参考电流的差值的绝对值不大于第二阈值电流时,更新位线编程操作电压/源线编程操作电压,并保持字线编程操作电压不变。

例如,在本公开的至少一实施例提供的编程方法中,更新位线编程操作电压/源线编程操作电压,包括:更新位线编程操作电压与源线编程操作电压的差值的第一绝对值,其中,响应于编程操作是置位操作,使得位线编程操作电压等于第一绝对值而源线编程操作电压接地,或者,响应于编程操作是复位操作,使得源线编程操作电压等于第一绝对值而位线编程操作电压接地。

例如,本公开的至少一实施例提供一种用于忆阻器单元的装置,包括:电压产生电路,与忆阻器单元相耦合,其中,电压产生电路配置为生成用于忆阻器单元的编程操作电压,编程操作电压是要用于置位或复位忆阻器单元的操作电压;参考电流产生电路,与电压产生电路相耦合,且配置为产生用于进行编程操作的参考电流;电流检测电路,与忆阻器单元、电压产生电路、参考电流产生电路相耦合,且配置为检测电流的大小;以及钳位电路,与忆阻器单元、电压产生电路相耦合,钳位电路配置为将编程操作电压施加到忆阻器单元,其中,装置配置为对忆阻器单元执行至少一个编程循环,在每个编程循环中:参考电流产生电路基于编程操作电压和编程目标电阻值生成参考电流;电流检测电路检测被施加编程操作电压的忆阻器单元的第一电流;电压产生电路基于要对忆阻器单元执行的编程操作以及第一电流与参考电流之间的比较,更新编程操作电压,并经由钳位电路对忆阻器单元施加更新的编程操作电压以对忆阻器单元进行编程以改变忆阻器单元的阻值。

例如,在本公开的至少一实施例提供的编程装置中,编程操作电压包括字线编程操作电压、位线编程操作电压以及源线编程操作电压,电压产生电路包括:字线电压产生电路,配置为生成字线编程操作电压;位线电压产生电路,配置为生成位线编程操作电压;以及源线电压产生电路,配置为生成源线编程操作电压。

例如,在本公开的至少一实施例提供的编程装置中,电压产生电路包括极性判断电路,并且电压产生电路在初始循环中基于第一电流与参考电流之间的比较确定要对忆阻器单元执行的编程操作,其中,如果第一电流大于参考电流,则确定编程操作为复位操作,极性判断电路输出复位信号,反之则确定编程操作为置位操作,极性判断电路输出置位信号。

例如,在本公开的至少一实施例提供的编程装置中,电压产生电路包括比较电路,并且电压产生电路,对于基于第一电流与参考电流之间的比较确定要对忆阻器单元执行的编程操作,还配置为:如果比较电路确定第一电流与参考电流的差值的绝对值不大于第一阈值电流,则电压产生电路结束编程操作;以及如果比较电路确定第一电流与参考电流的差值的绝对值不大于第一阈值电流,则电压产生电路继续对忆阻器单元执行编程操作。

例如,在本公开的至少一实施例提供的编程装置中,钳位电路配置为接收外部信号,外部信号指示编程次数是否小于阈值,其中,如果外部信号指示编程次数小于阈值,则钳位电路将编程操作电压施加到忆阻器单元,反之,则钳位电路将所述忆阻器单元的字线编程操作电压、位线编程操作电压和源线编程操作电压接地。

例如,在本公开的至少一实施例提供的编程装置中,电压产生电路包括电压调节电路,其中,电压产生电路,对于更新编程操作电压,还配置为:由电压调节电路基于第一电流与参考电流的差值的绝对值来更新字线编程操作电压和/或更新位线编程操作电压/源线编程操作电压。

例如,在本公开的至少一实施例提供的编程装置中,电压调节电路,对于基于第一电流与参考电流的差值的绝对值来更新字线编程操作电压和/或更新位线编程操作电压/源线编程操作电压,还配置为:当由比较电路确定第一电流与参考电流的差值的绝对值大于第二阈值电流时,由电压调节电路更新字线编程操作电压,并保持位线编程操作电压和源线编程操作电压不变;以及当由比较电路确定第一电流与参考电流的差值的绝对值不大于第二阈值电流时,由电压调节电路更新位线编程操作电压/源线编程操作电压,并保持字线编程操作电压不变。

例如,在本公开的至少一实施例提供的编程装置中,电压调节电路,对于更新位线编程操作电压/源线编程操作电压,还配置为:由电压调节电路更新位线编程操作电压与源线编程操作电压的差值的第一绝对值,其中,响应于编程操作是置位操作,经由钳位电路使得位线编程操作电压等于第一绝对值而源线编程操作电压接地,或者,响应于编程操作是复位操作,经由钳位电路使得源线编程操作电压等于第一绝对值而位线编程操作电压接地。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1是一种具有1T1R结构的忆阻器单元的示意图

图2是一种忆阻器单元阵列结构的示意图

图3示出了根据本公开的至少一实施例的用于忆阻器编程的方法的流程图。

图4示出了根据本公开的至少一实施例的用于忆阻器编程的另一方法的流程图。

图5示出了根据本公开的至少一实施例的用于忆阻器编程的又一方法的流程图。

图6示出了根据本公开的至少一实施例的用于忆阻器编程的再一方法的流程图。

图7示出了图6所述的方法中的SET操作过程中电压幅度与时间的关系。

图8示出了根据本公开的至少一实施例的用于忆阻器单元编程的装置的结构框图。

图9示出了根据本公开的至少一实施例的参考电流产生电路的示例电路结构。

图10示出了根据本公开的至少一实施例的电流检测电路的示例电路结构。

图11示出了根据本公开的至少一实施例的电压产生电路的示例电路结构。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

忆阻器是一种新型信息处理器件,具有存算融合的功能,可在存储的数据上原位实现计算操作,从而消除数据搬移的巨大开销。此外,忆阻器可以直接在模拟域上做运算,例如,忆阻器可以基于欧姆定律完成乘法运算,基于基尔霍夫电流定律完成加法运算,从而一步实现矩阵向量乘法运算,且运算过程中无需数模转换的开销。

利用忆阻器单元阵列进行神经网络加速时,需要首先进行编程操作,通过施加合适的操作电压改变忆阻器单元的电阻值(或电导值),从而将网络权重写入阵列中。忆阻器单元的编程操作包括形成(FORMING)操作(或初始化操作)、置位(SET)操作、复位(RESET)操作。形成操作可以认为是电压更高的一种SET操作(之后不再区分形成操作与置位),SET操作将忆阻器单元从高阻态转变为低阻态,RESET操作将忆阻器单元从低阻态转变为高阻态。但是需要指出的是对于忆阻器而言,形成操作仅在最开始的时候执行一次,之后就不再执行。

现有的忆阻器单元编程采用写-校验(write-verify)方法。首先,施加较小幅度的校验电压,读取待编程忆阻器单元的电阻值,判断与目标状态的差距以确定要进行的相应的SET操作或者RESET操作,之后施加SET或RESET脉冲激励,对忆阻器单元进行编程,进行相应的SET操作或者RESET操作。在激励脉冲后再次进行校验,若忆阻器单元的电阻值达到编程目标,则停止后续进行相应的SET操作或者RESET操作,否则施加更大幅度的激励脉冲以进行相应的SET操作或者RESET操作。

忆阻器单元编程的硬件实现需要利用片内状态机或片外FPGA控制进行。在校验时,控制模块发出控制信号,将忆阻器单元的操作电压连接至读电压上,利用ADC将流过忆阻器单元的电流进行模数转换,再将数字信号表示的ADC的结果输出;随后控制模块将ADC的结果与目标电阻值进行比较,判断需要进行的编程操作,并按照固定的步长更新编程操作电压的数字码;在编程时,控制模块发送控制信号与数字码,将忆阻器单元操作电压连接至相应的编程操作电压上,例如编程操作电压由DAC根据数字码产生。

上述的编程方案过程复杂,在校验时,需要将流过忆阻器的电流首先进行模数转换得到数字信号的检测结果,对于检测结果在数字域完成逻辑判断,随后再控制数模转换模块产生新的编程操作电压,以在编程周期对忆阻器单元施加新的编程操作电压以改变忆阻器单元的电阻值。对于忆阻器单元(如下所述包括忆阻器以及作为开关元件的晶体管),由于编程与校验操作的字线(WL)、位线(BL)、源线(SL)操作电压不同,需要频繁地进行切换,电压建立需要时间,因此存在编程效率低的问题。此外,上述的编程方案中,由于编程与校验操作分为两个状态周期性交替进行,忆阻器的电阻值仅可在校验周期进行判断,因此容易在编程周期产生过操作,超出目标区间,导致反复编程,降低效率。

本公开至少一个实施例提供一种用于忆阻器单元编程的方法,该方法包括在对忆阻器单元施加用于置位或复位的编程操作电压的过程中,将忆阻器单元的电流与基于编程目标电阻值生成的参考电流进行比较,并基于比较的结果对忆阻器单元进行编程操作。

本公开至少一个实施例还提供了用于忆阻器单元编程的装置,该装置例如对应于上述用于忆阻器单元编程的方法。

根据本公开至少一实施例提供的上述用于忆阻器单元编程的方法和装置在对忆阻器单元施加编程操作电压的同时,对忆阻器单元的电流与参考电流进行比较,并基于比较的结果确定下一步的编程操作,避免了忆阻器单元在编程状态和校验状态之间的切换和过操作现象的发生,提升了编程的效率。

图1是一种具有1T1R结构的忆阻器单元的示意图。如图1所示,1T1R结构的忆阻器单元包括一个晶体管M1和一个忆阻器R1。

例如当晶体管M1采用N型晶体管时,其栅极和字线端WL连接,例如字线端WL输入高电平时晶体管M1导通;晶体管M1的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压;晶体管M1的第二极可以是漏极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL连接,例如忆阻器R1可以通过位线端BL接收置位电压。例如当晶体管M1采用P型晶体管时,其栅极和字线端WL连接,例如字线端WL输入低电平时晶体管M1导通;晶体管M1的第一极可以是漏极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压;晶体管M1的第二极可以是源极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL连接,例如忆阻器R1可以通过位线端BL接收置位电压。需要说明的是,阻变存储器结构还可以实现为其他结构,例如忆阻器R1的第二极与源线端SL连接的结构,本公开的实施例对此不作限制。

下面各实施例均以晶体管M1采用N型晶体管为例进行说明。

字线端WL的作用是对晶体管M1的栅极施加相应电压,从而控制晶体管M1导通或关闭。在对忆阻器R1进行操作时,例如进行置位操作或复位操作,均需要先开启晶体管M1,即需要通过字线端WL对晶体管M1的栅极施加导通电压。在晶体管M1导通后,例如,可以通过在源线端SL和位线端BL向忆阻器R1施加电压,以改变忆阻器R1的阻态。例如,可以通过位线端BL施加置位电压,以使得该忆阻器R1处于低阻态;又例如,可以通过源线端SL施加复位电压,以使得该忆阻器R1处于高阻态。例如,高阻态的电阻值为低阻态的电阻值100倍以上,例如1000倍以上。

需要说明的是,在本公开的实施例中,例如,通过字线端WL和位线端BL同时施加电压,可以使得忆阻器R1的电阻值越来越小,即忆阻器R1从高阻态变为低阻态,将使得忆阻器R1从高阻态变为低阻态的操作称为置位操作;通过字线端WL和源线端SL同时施加电压,可以使得忆阻器R1的电阻值越来越大,即忆阻器R1从低阻态变为高阻态,将使得忆阻器R1从低阻态变为高阻态的操作称为复位操作。例如,忆阻器R1具有阈值电压,在输入电压幅度小于忆阻器R1的阈值电压时,不会改变忆阻R1的电阻值(或电导值)。在这种情况下,可以通过输入小于阈值电压的电压,利用忆阻器R1的电阻值(或电导值)进行计算;可以通过输入大于阈值电压的电压,改变忆阻器R1的电阻值(或电导值)。

上述根据图1所描述的具有1T1R结构的忆阻器单元,仅仅是忆阻器单元的示例而非是限制性的,根据本公开实施例所采用的忆阻器单元也可以具有其他结构,例如,根据本公开的实施例的忆阻器单元可以是具有2T2R结构的忆阻器单元,其中,2T2R结构的忆阻器单元包括两个晶体管M1和M2以及两个忆阻器R1和R2。

图2是示出了一种忆阻器单元阵列结构的示意图。如图2所示,忆阻器单元阵列由多个忆阻器单元构成,多个忆阻器单元构成一个M行N列的阵列,M和N均为正整数。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图1中,WL<1>、WL<2>……WL分别表示第一行、第二行……第M行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>……BL分别表示第一列、第二列……第N列的位线,每列的忆阻器单元电路中的忆阻器和该列对应的位线连接;SL<1>、SL<2>……SL分别表示第一行、第二行……第M行的源线,每一行的忆阻器单元电路中的晶体管的源极和该行对应的源线连接。如图2所示的忆阻器单元阵列的结构仅仅是一个示例,忆阻器单元阵列还可以有其他的结构。例如,如图2所示的忆阻器单元阵列的行列可以互换,即,BL<1>、BL<2>……BL分别表示第一行、第二行……第M行的位线,而WL<1>、WL<2>……WL分别表示第一列、第二列……第N列的字线,以及SL<1>、SL<2>……SL分别表示第一列、第二列……第N列的源线。

图2的忆阻器单元阵列中的忆阻器单元例如可以为如图1所述的1T1R结构或者2T2R结构。本公开实施例对于忆阻器器件的类型、结构等没有限制。需要说明的是,本公开实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如MOS场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。本公开的实施例对采用的晶体管的类型不作限定。

图3示出了根据本公开的至少一实施例的用于忆阻器编程的方法的流程图。

参考图3,根据本公开的实施例的用于忆阻器编程的方法包括:设置编程目标电阻值,例如通过选中参考电流产生电路中的对应单元来设置相应的目标电阻值,并且执行至少一个编程循环,其中每个编程循环包括以下步骤310~步骤340:

在步骤310中,对参考电流产生电路施加相应电压而得到参考电流I

对参考电流产生电路所施加的相应电压等于对忆阻器单元施加编程操作电压后忆阻器上的电压,并且该编程操作电压是要用于置位或复位忆阻器单元的操作电压。此外,参考电流I

在步骤320中,检测流过忆阻器单元的电流I

例如可以经由电流检测电路检测流过忆阻器单元的电流I

在步骤330中,将流过忆阻器单元的电流I

例如,确定要对忆阻器单元执行的编程操作可以包括确定是否继续对忆阻器单元进行编程,并且在确定继续对忆阻器单元进行编程的情况下,所确定的编程操作可以是例如置位SET操作或复位RESET操作,其中,如果I

在步骤340中,基于在步骤330中所确定的要对忆阻器单元执行的编程操作以及I

根据如图3所示的用于对忆阻器单元进行编程的方法,在对忆阻器单元施加用于SET或RESET的编程操作电压的同时,检测流过忆阻器单元的电流并将该电流与参考电流进行比较以确定忆阻器编程是否成功,并可以确定要对忆阻器单元继续进行编程的操作和更新的编程操作电压,使得在对忆阻器单元进行编程的过程中无需区分编程和校验周期,从而施加到忆阻器单元的电压无需在编程操作电压和校验电压这两种电压状态之间进行切换,提升了编程的速度;同时,由于在对忆阻器单元施加编程操作电压的同时将流过忆阻器单元的电流和参考电流进行比较以确定是否继续对忆阻器单元进行编程,当流过忆阻器单元的电流达到参考电流,即忆阻器单元的电阻值被编程至以目标电阻值一致时,可以及时结束对忆阻器单元的编程过程,从而有效避免过编程的发生,避免了忆阻器单元被反复编程,从而进一步提高了编程的效率。

图4示出了根据本公开的至少一实施例的用于忆阻器编程的另一方法的流程图。

在如图4所示的方法中,选中参考电流产生电路对应单元以设置编程目标电阻值,并执行至少一个编程循环。在针对忆阻器单元的初始编程循环中,首先,对忆阻器单元施加初始编程操作电压,例如分别施加初始字线编程操作电压V

接着,基于I

接下来,基于所确定的要对忆阻器单元执行的编程操作以及I

在更新编程操作电压后,进一步地,将更新的编程操作电压施加到忆阻器单元并更新对参考电流产生电路施加的相应电压,并且继续检测流过忆阻器单元的电流I

与如图3所示的方法相比,图4所示的方法例如仅在初始编程循环中确定要对忆阻器单元执行的是SET操作还是RESET操作,并在确定之后,在后续的编程循环中保持不变,从而无需在每一个编程循环中确定需要执行的是SET操作还是RESET操作,降低了方法的复杂度,提升了编程的效率。在下面的描述中,将参考如图4所示的方法来进一步说明本公开至少一实施例的技术方案。

图5示出了根据本公开的至少一实施例的用于忆阻器编程的又一方法的流程图。

参考图5,选中参考电流产生电路对应单元以设置编程目标电阻值,并执行至少一个编程循环。在针对忆阻器单元的初始编程循环中,首先,对忆阻器单元施加初始编程操作电压,例如初始字线编程操作电压VWL0、初始位线编程操作电压VBL0、初始源线编程操作电压VSL0;对参考电流产生电路施加相应电压而得到参考电流I

接着,基于I

进一步地,将I

此外,如图5所示,根据本公开的实施例,可以设置对编程次数的限制,并且在编程次数大于阈值的情况下,确定编程失败,并结束编程循环。例如,在确定继续对忆阻器单元进行编程的情况下,使得编程次数加一,并判断编程次数是否超过最大编程次数N

根据本公开的上述实施例,在确定继续对忆阻器单元进行编程的情况下,更新编程操作电压,将更新的编程操作电压施加到忆阻器单元并更新对参考电流产生电路施加的相应电压,并继续检测流过忆阻器单元的电流I

此外,将更新的编程操作电压施加到忆阻器单元可以包括例如对忆阻器单元施加脉冲宽度为τ的操作电压脉冲,其中,所采用的脉冲宽度可以是几十微秒到几百微秒,本公开的实施例对此不作限制。

图6示出了根据本公开的至少一实施例的用于忆阻器编程的又一方法的流程图。

参考图6所示,在根据如图5中所示的方法确定继续对忆阻器单元进行编程后,更新编程操作电压还包括将I

具体地,如果|I

在生成新的编程操作电压后,可以基于前述对SET或RESET操作的确定来在电压更新周期基于新生成的编程操作电压来更新相应的编程操作电压。例如,如果确定进行RESET操作,则将字线钳位电路连接字线编程操作电压V

在基于新生成的编程操作电压来更新相应的编程操作电压之后,可以将更新的编程操作电压施加到忆阻器单元并更新对参考电流产生电路施加的相应电压,并继续检测流过忆阻器单元的电流I

根据参考图6所述的用于忆阻器单元编程的方法,可以基于|I

下面参考图7描述图6所述的方法中的SET操作过程中电压幅度与时间的关系。

图7示出了图6所述的方法中的SET操作过程中电压幅度与时间的关系。

图7中纵轴分别表示施加在字线上的编程操作电压V

参考图7,当tREF2,因此要通过调节字线编程操作电压来对忆阻器单元进行编程以改变忆阻器单元的电阻值;当t5t6时,△

如图7所示,当通过调节字线编程操作电压来对忆阻器单元进行编程时,忆阻器单元的电阻值的变化较快,而通过调节位线编程操作电压来对忆阻器单元进行编程时,忆阻器单元的电阻值的变化较慢。

图8示出了根据本公开的至少一实施例的用于忆阻器单元编程的装置的结构框图。

参考图8,用于忆阻器单元编程的装置可以包括但不限于参考电流产生电路、电流检测电路、字线钳位电路、位线钳位电路、源线钳位电路、字线电压产生电路、位线/源线电压产生电路以及忆阻器单元阵列。

例如,忆阻器阵列中的单元结构可以为1T1R结构(如图3所示)、2T2R结构或其他结构;例如,忆阻器可以为阻变存储器(RRAM)、相变存储器(PCM)或其他类似器件,本公开的实施例对此不作限制。

参考电流产生电路可以基于忆阻器单元的编程操作电压和编程目标电阻值生成参考电流I

电流检测电路可以用于实时检测流过忆阻器的电流I

字线钳位电路可以包含但不限于例如多路选择器、缓冲器,多路选择器通过控制信号WL_oper接入编程操作电压V

位线钳位电路可以包含但不限于例如多路选择器、缓冲器,多路选择器通过控制信号BL_oper接入编程操作电压V

源线钳位电路可以包含但不限于例如多路选择器、缓冲器,多路选择器通过控制信号SL_oper接入编程操作电压V

字线电压产生电路产生可以用于生成字线编程操作电压V

位线/源线电压产生电路可以用于生成位线编程操作电压与源线编程操作电压V

基于如图8所示的电流检测电路,根据本公开的至少一实施例的用于忆阻器单元编程的装置,可以在模拟域实时检测流过忆阻器单元的电流I

图9示出了根据本公开的至少一实施例的参考电流产生电路的示例电路结构。

如图9所示,参考电流产生电路可以包括参考电阻串,参考电阻串的个数与电阻值由忆阻器可存储权重的比特数与典型值决定,例如,参考电阻值可以无需与忆阻器电阻典型值相等,但需要保持固定比例关系。例如,若3比特忆阻器的电阻典型值为50kohm、100kohm、150kohm、200kohm、250kohm、300kohm、350kohm、400kohm,参考电阻可以为5kohm、10kohm、15kohm、20kohm、25kohm、30kohm、35kohm、40kohm。外部控制信号REF_ctrl根据编程目标电阻值选通相应的电阻支路,并将该支路与电流检测电路连接,以得到参考电流I

根据图9所描述的参考电流产生电路,仅仅作为一个示例,但是根据本公开实施例的参考电流产生电路不限于此,并且还可以有其他的实现方式。

图10示出了根据本公开的至少一实施例的电流检测电路的示例电路结构。

参考图10,根据本公开的至少一实施例的电流检测电路可以包括例如运算放大器、电流镜支路。在如图5所示的示例中,电压产生电路产生新编程操作电压,并经过缓冲电路后输入运算放大器正输入端,运算放大器负输入端经过负反馈支路与输出端连接,将位线电压钳位至V

根据图10所描述的电流检测电路,仅仅作为一个示例,但是根据本公开实施例的电流检测电路不限于此,并且还可以有其他的实现方式。

图11示出了根据本公开的至少一实施例的电压产生电路的示例电路结构。

根据本公开实施例的电压产生电路可以包括字线电压产生电路或位线/源线电压产生电路。字线电压产生电路用于生成字线编程操作电压,而位线/源线电压产生电路用于生成位线编程操作电压/源线编程操作电压。此外,位线电压产生电路和源线电压产生电路也可以以彼此分离的结构来实施。如图11所示,电压产生电路例如,可以包含但不限于极性判断电路、信号放大电路、比较电路、电压调节电路、采样保持电路等。

极性判断电路可以将I

信号放大电路用于接收I

比较电路可以将放大后的差模信号与第一阈值电压REF1、第二阈值电压REF2比较,以产生编程控制信号CTRL1、CTRL2。

电压调节电路用于生成新的编程操作电压,例如在电压产生周期将信号放大电路输出的差模放大信号与原编程操作电压进行运算,进而得到新的编程操作电压。

采样保持电路用于在电压更新周期用新的编程操作电压替换原编程操作电压,从而在下一编程循环中,经由钳位电路将忆阻器单元钳位至新的编程操作电压。

信号放大电路可以包括但不限于例如开关电路、跨阻放大器(TIA)与差动放大器(AMP)。开关电路由SET/RESET信号控制,改变流经忆阻器单元的电流I

比较电路可以包括两个比较器,即比较器1和比较器2。比较器1可以将差模放大信号-△与第一阈值电压REF1比较(第一阈值电压REF1对应于第一参考电流I

电压调节电路可以为运算放大器(OPA)。其输入端I为差模放大信号-△,经过负反馈电阻R

其中,通过调节R

以SET操作过程为例,此时源线电压钳位电路控制源线编程操作电压接VSS,位线/源线电压产生电路提供位线的编程操作电压(在实施例中称为位线电压产生电路)。SET信号控制信号放大器接入端的开关电路,使得信号放大器的输出电压恒为负值-△(△>0)。编程开始阶段,△

V

在位线电压产生电路中,CTRL2控制V

V

随着编程继续进行,忆阻器电阻值减小,I

以RESET操作过程为例,此时位线钳位电路控制位线编程操作电压接VSS,位线/源线电压产生电路提供源线的编程操作电压(在本实施例中称为源线电压产生电路)。RESET信号控制信号放大器接入端的开关电路,使得信号放大器的输出电压恒为负值-△(△>0)。编程开始阶段,△

V

源线电压产生电路中,CTRL2控制V

V

随着编程继续进行,忆阻器电阻值增大,I

本公开的至少一实施例提供了一种用于忆阻器单元编程的方法和装置,可以在对忆阻器单元施加编程操作电压的同时,在模拟域中实时监控忆阻器单元的电阻值变化以确定要对忆阻器单元执行的编程操作,从而不需要忆阻器单元的操作电压在编程和校验状态之间进行切换,也不需要额外的模数/数模转换,此外,还可以基于忆阻器单元进行自适应调节编程。本公开实施例的用于忆阻器单元编程的方法和装置可以提高编程效率高,减少电路开销,避免过编程的发生并兼容器件波动。

以上所描述的仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可进行各种变化或替换,这些变化或替换都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

技术分类

06120116211456