一种非易失性存储器写状态寄存器的方法

文档序号:9490355阅读:792来源:国知局
一种非易失性存储器写状态寄存器的方法
【技术领域】
[0001]本发明涉及非易失性存储器技术领域,尤其涉及一种非易失性存储器写状态寄存器的方法。
【背景技术】
[0002]半导体存储器包括易失性存储器和非易失性存储器。易失性存储器在断电时会丢失存储的内容。非易失性存储器即使在断电时也可以保持存储的内容。非易失性存储器包括只读存储器(ROM,Read-only Memory)、可编程只读存储器(PROM,ProgrammableRed-Only Memory)、电可擦除只读存储器(EEPR0M,Electrically Erasable ProgrammableRead-Only Memory)和闪存(Flash memory)。闪存存储器包括NOR(或非)Flash和NAND(与非)Flash0
[0003]非易失性存储器由存储阵列组成,每个存储阵列包括大量的存储单元,每个存储单元能够存放I位二进制数据(“O”或“I”)。存储器中的存储单元有一部分被用作为状态寄存器,用户通过发送写状态寄存器指令更新状态寄存器的数据值。以闪存中的NOR Flash为例,对NOR Flash中的状态寄存器进行写操作,可通过06H指令+01指令+数据来实现。
[0004]图1是现有技术中对非易失性存储器的状态寄存器进行写操作的流程示意图。参见图1,所述写操作具体包括如下步骤:
[0005]步骤SlOl:对状态寄存器进行预编程操作,将状态寄存器中所有存储单元的阈值电压都调整到编程单元的阈值范围内。
[0006]步骤S102:将编程好的编程单元进行擦除操作,每进行一次擦除操作都要进行擦除校验,如果校验失败再次进行擦除操作。
[0007]步骤S103:擦除成功后,利用用户发送的数据对状态寄存器中存储单元进行编程操作,每次编程操作都要进行编程校验,如果校验失败再次进行编程操作。
[0008]步骤S104:编程成功后,将状态寄存器中存储单元中的数据读出来,放到锁存器中,供芯片工作时使用。
[0009]由上述非易失性存储器状态寄存器的写操作流程可以看出,现有技术中,在软件实现中,会重复对寄存器中的存储单元进行编程和擦除操作,增加了对状态寄存器中存储单元的擦除和编程次数,降低了写状态寄存器的整体操作的速度,缩短了状态寄存器的使用寿命,降低了广品品质。

【发明内容】

[0010]本发明实施例提供一种非易失性存储器写状态寄存器的方法,以实现节约写状态寄存器的时间以及延长状态寄存器的使用寿命。
[0011]本发明实施例提供了一种非易失性存储器写状态寄存器的方法,包括:
[0012]步骤1、读取状态寄存器的原始数据;
[0013]步骤2、比较用户发送的数据与所述状态寄存器的原始数据;
[0014]步骤3、判断所述用户发送的数据中是否存在需要进行擦除的位数据,若是,则对所述状态寄存器的原始数据依次进行预编程操作、擦除操作、编程操作和结束写操作过程,否则执行步骤4 ;
[0015]步骤4、判断所述用户发送的数据和所述状态寄存器的原始数据是否相同,若是,则结束写状态寄存器的过程,否则,对所述状态寄存器的原始数据进行编程操作,结束写状态寄存器的过程。
[0016]进一步的,所述预编程操作,包括:预编程校验;判断预编程校验是否成功,若是,则执行擦除操作,否则预编程所述状态寄存器的数据,直至预编程校验成功。
[0017]进一步的,所述擦除操作,包括:擦除所述状态寄存器的所有数据;擦除校验;判断擦除校验是否成功,若是,则执行后续操作,否则擦除所述状态寄存器的数据,直至擦除校验成功。
[0018]进一步的,所述擦除操作是擦除所述状态寄存器的所有存储单元数据。
[0019]进一步的,所述编程操作,包括:编程校验;判断编程校验是否成功,若是,则执行后续操作,否则编程所述状态寄存器的数据,直至编程成功。
[0020]进一步的,所述编程操作是将所述状态寄存器数据中不同于所述用户发送数据中的位数据,编程为与所述用户发送数据中相同的位数据。
[0021]进一步的,所述方法在步骤1、读取所述状态寄存器的原始数据之前,还包括:接收用户发送的写状态寄存器的数据。
[0022]进一步的,所述方法在结束写状态寄存器过程之后,还包括:读取所述状态寄存器的当前数据,并存放到所述非易失性存储器对应的锁存器中。
[0023]本发明实施例提供的技术方案,通过读取状态寄存器的原始数据,对用户发送的数据和状态寄存器的原始数据进行比较,根据比较结果,对状态寄存器数据进行写操作,加快了写状态寄存器的整体操作速度,减少了对寄存器中的存储单元重复编程和擦除的操作,延长了状态寄存器的使用寿命,提高了产品品质。
【附图说明】
[0024]图1是现有技术中对非易失性存储器的状态寄存器进行写操作的流程示意图;
[0025]图2是本发明实施例一提供的一种非易失性存储器写状态寄存器的方法流程示意图;
[0026]图3是本发明实施例二提供的一种非易失性存储器写状态寄存器的方法中预编程操作的流程示意图;
[0027]图4是本发明实施例二提供的一种非易失性存储器写状态寄存器的方法中擦除操作的流程示意图;
[0028]图5是本发明实施例二提供的一种非易失性存储器写状态寄存器的方法中编程操作的流程示意图。
【具体实施方式】
[0029]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0030]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0031]实施例一
[0032]图2是本发明实施例一提供的一种非易失性存储器写状态寄存器的方法流程示意图。所述方法适用于对非易失性存储器的状态寄存器进行写操作。所述状态寄存器由多个存储单元组成,每个存储单元能够存储一位的二进制数(“O”或“I”)。所述方法具体包括如下步骤:
[0033]步骤S210、读取状态寄存器的原始数据,继续执行步骤S220 ;
[0034]步骤S220、比较用户发送的数据与所述状态寄存器的原始数据,继续执行步骤S230 ;
[0035]步骤S230、判断所述用户发送的数据中是否存在需要进行擦除的位数据,若是,则执行步骤S250,否则执行步骤S240 ;
[0036]步骤S240、判断所述用户发送的数据和所述状态寄存器的原始数据是否相同,若是,则执行步骤时S280,否则执行步骤S270 ;
[0037]步骤S250、对所述状态寄存器的原始数据进行预编程操作,继续执行步骤S260 ;
[0038]步骤S260、对所述状态寄存器的原始数据进行擦除操作,继续执行步骤S270 ;
[0039]步骤S270、对所述状态寄存器的原始数据进行编程操作,继续执行步骤S280 ;
[0040]步骤S280、结束写状态寄存器过程。
[0041]其中,所述状态寄存器的原始数据可以是全部为擦除数据、全部为编程数据或者部分为擦除数据。擦除数据是指状态寄存器中存储单元的阈值电压处于擦除单元的阈值电压范围内。编程数据是指状态寄存器中需要编程的存储单元的阈值电压处于编程单元的阈值电压范围内。<
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1