非挥发性存储器的擦除方法
技术领域
本发明涉及一种半导体集成电路制造方法,特别是涉及一种非挥发性存储器的擦除方法。
背景技术
如图1所示,是现有非挥发性存储器的擦除方法的流程图;现有非挥发性存储器的擦除方法中,非挥发性存储器的存储单元的结构为N行×M列,每一列存储单元都要对应设置一个即只能写1不能写0的缓冲寄存器,由M个缓冲寄存器组成数据缓冲存储区。
现有非挥发性存储器的擦除方法包括如下步骤:
步骤一、进行预编程,所述预编程实现对各所述存储单元进行写1操作,使各所述存储单元的电平全部都大于第一电平V1;该写1操作所加电压为预编程电压;所述预编程之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为1。如图3所示,是现有非挥发性存储器的擦除方法的擦除过程中存储单元的电平变化;预编程之后,各所述存储单元的电平全部都大于第一电平V1。
步骤二、进行深擦除,所述深擦除实现对各所述存储单元进行写0操作,使各所述存储单元的电平全部都小于第二电平V2,该写0操作所加电压为深擦除电压;所述深擦除之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为0。如图3所示,深擦除之后,各所述存储单元的电平全部都小于第二电平V2。
步骤三、进行软编程即图1中所示的高压编程,所述软编程用于对各所述存储单元进行写1操作,该写1操作所加电压为软编程电压,所述软编程电压小于等于所述预编程电压,所述软编程的编程时间小于所述预编程的编程时间。
步骤四、进检测模式,对各所述存储单元都进行电荷或电平检测,该电荷或电平检测用于检测是否所有的所述存储单元都达到了预定电平,如图3所示,所述预定电平为大于所述第二电平V2且小于所述第一电平V1的电平,由于所述软编程的编程时间小于所述预编程的编程时间,所述预定电平实际上是大于所述第二电平V2小于第三电平V3,所述第三电平V3为大于所述第二电平V2小于所述第一电平V1的电平。检测是从列地址CA=0以及行地址RA=0开始的,先固定行地址RA,增加列地址CA,列地址CA达到最大值后,再增加行地址RA的值;在新的行地址RA上,从列地址CA从0开始增加到最大值。
所检测的值如果有一个以上的所述存储单元未达到所述预定电平即图1中所示的Do=all_ones不成立,即读出的值不为全1,则进行步骤五。
如果所有的所述存储单元都达到所述预定电平,则进行步骤六。
步骤五、从所述非挥发性存储器中逐行读出各所述存储单元的数据,将各所述存储单元的数据取反,并将各所述存储单元的取反的值写入到所述数据缓冲存储区中。该循环在图1中表示为:先将列地址CA和行地址RA都归零;行地址RA不变,读取列地址CA地址的数据,将该数据取反并写入到所述数据缓冲存储区中;依次增加列地址CA直到CA的值为最大值;CA的值增加到最大后,增加行地址RA的值,并同时将CA的值归零;之后,在增加后的行地址RA上,读取该行地址RA的行上的各列的数据并写入到所述数据缓冲存储区中;直到行地址RA为最大值后,上述循环结束。之后,再重复步骤三和步骤四,即图1中的返回到高压编程这一步骤。
步骤六、结束擦除。
图2是现有非挥发性存储器的擦除方法的时序图;该时序图对应于步骤三中的逐行读出各所述存储单元的数据并将该数据的取反后写入到所述数据缓冲存储区中的时序。可以看出,每执行依次步骤三,就需要执行M×N次读操作和写入缓冲寄存器的操作。当擦除过程中需要进行L次再编程也即进行L次步骤三时,总共需要进行M×N×L次读操作和写缓冲器操作。
由上可以看出,现有擦除方法具有以下缺点:
对一个存储单元结构为N行×M列的大容量非挥发性存储器,如果在擦除过程中需要L次再编程时,再编程所需要的时间为M×N×L次读时间+M×N×L写寄存器时间。
对P个存储单元结构为N行×M列的大容量非挥发性存储器的存储器,擦除时在再编程上所需要的时间为M×N×L×P次读时间+M×N×L×P写寄存器时间。这样使得擦除时间长,相应的擦除的效率也就降低。
发明内容
本发明所要解决的技术问题是提供一种非挥发性存储器的擦除方法,能缩减擦除时间。
为解决上述技术问题,本发明提供一种非挥发性存储器的擦除方法,非挥发性存储器的存储单元的结构为N行×M列,所述非挥发性存储器设置一个数据缓冲存储区,非挥发性存储器的擦除方法包括如下步骤:
步骤一、进行预编程,所述预编程实现对各所述存储单元进行写1操作,使各所述存储单元的电平全部都大于第一电平;所述预编程之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为1;
步骤二、进行深擦除,所述深擦除实现对各所述存储单元进行写0操作,使各所述存储单元的电平全部都小于第二电平,所述第二电平小于所述第一电平;所述深擦除之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为0;
步骤三、进行软编程,所述软编程用于对各所述存储单元进行写1操作,所述软编程的编程时间小于所述预编程的编程时间,所述软编程的编程电压和所述预编程的编程电压相同;
步骤四、对各所述存储单元都进行电荷或电平检测,该电荷或电平检测用于检测是否所有的所述存储单元都达到了预定电平,所述预定电平为大于所述第二电平且小于所述第一电平的电平;如果有一个以上的所述存储单元未达到所述预定电平,则进行步骤五;如果所有的所述存储单元都达到所述预定电平,则进行步骤六;
步骤五、从所述非挥发性存储器的第0列到第M-1列,对于每一列,读第0行至第N-1行的各所述存储单元的数据,将各列的所述第0行至第N-1行的各所述存储单元的数据取反相或,并将各列得到的取反相或的值写入到所述数据缓冲存储区中;之后,再重复步骤三和步骤四;
步骤六、结束擦除。
进一步的改进是,所述数据缓冲存储区由M个只能写1不能写0的缓冲寄存器组成,每一个所述缓冲寄存器对应于一列的所述存储单元。
进一步的改进是,步骤五中各列得到的取反相或的值写入到各列所对应的所述缓冲寄存器中。
本发明方法中,如果有一个以上的所述存储单元未达到所述预定电平而需要进行再编程也即执行步骤五后在循环到步骤三的软编程时,本发明方法是对每一列的各行进行读取后,采用一次写入到数据缓冲存储区中的操作,而现有技术中每给存储单元数据读取后都要写入到数据缓冲存储区中,从而本发明能大大减少数据写入到数据缓冲存储区中的操作的次数,也从而能大大缩短整个擦除过程的时间,提高擦除效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是现有非挥发性存储器的擦除方法的流程图;
图2是现有非挥发性存储器的擦除方法的时序图;
图3是现有非挥发性存储器的擦除方法的擦除过程中存储单元的电平变化;
图4是本发明实施例非挥发性存储器的擦除方法的流程图;
图5是本发明实施例非挥发性存储器的擦除方法的时序图。
具体实施方式
如图4所示,是本发明实施例非挥发性存储器的擦除方法的流程图;本发明实施例非挥发性存储器的擦除方法中,非挥发性存储器的存储单元的结构为N行×M列,所述数据缓冲存储区由M个只能写1不能写0的缓冲寄存器组成,每一个所述缓冲寄存器对应于一列的所述存储单元。本发明实施例非挥发性存储器的擦除方法包括如下步骤:
步骤一、进行预编程,所述预编程实现对各所述存储单元进行写1操作,使各所述存储单元的电平全部都大于第一电平V1;该写1操作所加电压为预编程电压;所述预编程之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为1。如图3所示,预编程之后,各所述存储单元的电平全部都大于第一电平V1。
步骤二、进行深擦除,所述深擦除实现对各所述存储单元进行写0操作,使各所述存储单元的电平全部都小于第二电平V2,该写0操作所加电压为深擦除电压;所述深擦除之后,对各所述存储单元进行电荷或电平检测,各所述存储单元全部读出值要求都为0。如图3所示,深擦除之后,各所述存储单元的电平全部都小于第二电平V2。
步骤三、进行软编程即图4中所示的高压编程,所述软编程用于对各所述存储单元进行写1操作,该写1操作所加电压为软编程电压,所述软编程电压小于等于所述预编程电压,所述软编程的编程时间小于所述预编程的编程时间。
步骤四、进检测模式,对各所述存储单元都进行电荷或电平检测,该电荷或电平检测用于检测是否所有的所述存储单元都达到了预定电平,如图3所示,所述预定电平为大于所述第二电平V2且小于所述第一电平V1的电平,由于所述软编程的编程时间小于所述预编程的编程时间,所述预定电平实际上是大于所述第二电平V2小于第三电平V3,所述第三电平V3为大于所述第二电平V2小于所述第一电平V1的电平。如图4所示,检测是从列地址CA=0以及行地址RA=0开始的,先固定行地址RA,增加列地址CA,列地址CA达到最大值后,再增加行地址RA的值;在新的行地址RA上,列地址CA从0开始增加到最大值。
所检测的值如果有一个以上的所述存储单元未达到所述预定电平即图4中所示的Do=all_ones不成立,,则进行步骤五。
如果所有的所述存储单元都达到所述预定电平,则进行步骤六。
步骤五、从所述非挥发性存储器的第0列到第M-1列,对于每一列,读第0行至第N-1行的各所述存储单元的数据,将各列的所述第0行至第N-1行的各所述存储单元的数据取反相或,并将各列得到的取反相或的值写入到所述数据缓冲存储区中;其中,各列得到的取反相或的值写入到各列所对应的所述缓冲寄存器中。该循环在图4中表示为:先将列地址CA和行地址RA都归零;列地址CA不变,行地址RA从零增加到最大值,读取该列地址CA的每一行所对应的数据,并将该列的各所述存储单元的数据取反相或,并将该列得到的取反相或的值写入到所述数据缓冲存储区中即图3中的PAGELATCH~do。之后增加列地址CA的值,并将行地址RA归零;在新的列地址CA上,重复上述读出该列的每一行所对应的数据,并将该列的各所述存储单元的数据取反相或,并将该列得到的取反相或的值写入到所述数据缓冲存储区中。重复上述流程,直到列地址CA为最大值后,上述循环结束即退出检测模式。
之后,再重复步骤三和步骤四。即图4中的返回到高压编程这一步骤。
步骤六、结束擦除。
如图5所示,是本发明实施例非挥发性存储器的擦除方法的时序图;该时序图对应于步骤五中的读出将各列的所述第0行至第N-1行的各所述存储单元的数据并将该数据取反相或后写入到所述数据缓冲存储区中的时序。可以看出,每执行依次步骤五,需要执行M×N次读操作,但是只需要执行一次写入缓冲寄存器的操作。当擦除过程中需要进行L次再编程也即进行L次步骤三时,总共需要进行M×N×L次读操作和M×L次写缓冲器操作。相比于现有技术,本发明方法能节省(N-1)×M×L次的写缓冲器操作时间。
以上通过具体实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。