一种非易失性存储器的恢复方法和装置与流程

文档序号:11954911阅读:215来源:国知局
一种非易失性存储器的恢复方法和装置与流程

本发明实施例涉及非易失性存储器技术领域,尤其涉及一种非易失性存储器的恢复方法和装置。



背景技术:

半导体存储器是一种以半导体电路作为存储媒体的存储器。半导体存储器件分成易失性存储器件和非易失性存储器件。

其中,非易失性存储器是所有形式的固态(没有可动部分)存储器的一个一般的术语,它不用定期地刷新存储器内容,在掉电后,存储器中的数据不会丢失。所以,非易失性存储器对数据信息具有一定的保持能力,即在一个时间量期间,预定数据将被适当地存储,从而可以从非易失性存储器单元获取该数据值。

但是,对于非易失性存储器的被编程(program)的存储单元而言,由于该单元自身内部缺陷或者宇宙射线等因素的影响,会造成浮栅漏电,而浮栅中存储的电荷量直接决定了该存储单元的阈值电压,同时该存储单元的阈值电压决定了在存储单元中存储的数据是“0”还是“1”。因此,随着时间的推移,由于浮栅中存储电荷的流失,会导致被编程的存储单元的阈值电压逐渐降低。最终,该单元中的数据将由“0”变为“1”。这样,下次再进行读操作时,就会出现误读现象,从而使非易失性存储器的可靠性降低。



技术实现要素:

本发明实施例提供一种非易失性存储器的恢复方法和装置,以提高非易失性存储器的可靠性。

第一方面,本发明实施例提供了一种非易失性存储器的恢复方法,该方法包括:

根据数据恢复指令确定待恢复存储单元的起始地址和待恢复范围;

根据所述起始地址在所述非易失性存储器中确定待处理的当前存储单元;

对所述当前存储单元进行数据校验;

如果校验失败则对所述当前存储单元进行数据恢复并按照设定顺序更新当前地址,如果校验成功则按照设定顺序更新当前地址;

将当前地址对应的存储单元确定为当前存储单元,并返回执行所述数据校验的操作,直到遍历完整个待恢复范围内的存储单元。

第二方面,本发明实施例还提供了一种非易失性存储器的恢复装置,该装置包括:

地址确定模块,用于根据数据恢复指令确定待恢复存储单元的起始地址和待恢复范围;

存储单元确定模块,用于根据所述起始地址在所述非易失性存储器中确定待处理的当前存储单元;

数据校验模块,用于对所述当前存储单元进行数据校验;

数据恢复模块,用于如果校验失败则对所述当前存储单元进行数据恢复,并触发地址更新模块动作,如果校验成功则直接触发地址更新模块动作;

地址更新模块,用于按照设定顺序更新当前地址;

单元更新模块,用于将当前地址对应的存储单元确定为当前存储单元,并返回执行所述数据校验的操作,直到遍历完整个待恢复范围内的存储单元。

本发明通过一种非易失性存储器的恢复方法,根据数据恢复指令确定出待恢复存储单元的起始地址和待恢复范围,进而确定出该非易失性存储器中待处理的当前存储单元。接着对当前存储单元进行数据校验,如果校验失败,则对当前存储单元进行数据恢复。如果校验成功,则按照设定顺序更新当前地址,然后通过循环操作进行数据校验,直到遍历完整个待恢复范围的存储单元,进而提高该非易失性存储器的可靠性。

附图说明

图1为本发明实施例一提供的一种非易失性存储器的恢复方法的流程示意图;

图2为本发明实施例二提供的一种非易失性存储器的恢复方法的流程示意图;

图3为本发明实施例三提供的一种非易失性存储器的恢复装置结构框图;

图4为本发明实施例一提供的一种非易失性存储器的恢复方法的电压曲线示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种非易失性存储器的恢复方法的流程示意图,该方法可以由非易失性存储器的恢复装置来执行,其中,该装置可由硬件和/或软件来实现,具体包括如下步骤:

步骤101、根据数据恢复指令确定待恢复存储单元的起始地址和待恢复范围。

在本实施例中,数据恢复指令是由应用非易失性存储器的外部处理器设备或者该非易失性存储器中内部控制逻辑单元设定的,触发非易失性存储器进入数据恢复程序或实现数据恢复的指令。

其中,待恢复存储单元的起始地址可以是任意存储单元的地址作为起始地址,优选为待恢复范围的最小地址或最大地址,待恢复范围优选为所述非易失性存储器的全部地址范围,这样方便遍历整个存储器。

步骤102、根据起始地址在非易失性存储器中确定待处理的当前存储单元。

具体的,待处理的存储单元可以是一个存储单元,也可以是由几个存储单元组成的存储块。示例性的,若为一个存储单元,则起始地址为该存储单元的最小地址或最大地址;若为一个存储块,则起始地址为该存储块的首地址或最大地址。

步骤103、对所述当前存储单元进行数据校验,并判断校验是否成功,若是,则执行步骤104;否则,执行步骤105。

随着使用时间的延续,非易失性存储器的存储阵列中数据为0的存储单元的阈值电压会不断的减少,当减少到一定值,就很难读取到正确数据了。但当存储单元中的阈值电压减少到一定值时,虽不能读取到数据,或很难读取到存储单元记录的数据,但是这时的阈值电压相对于数据为1的存储单元的阈值电压仍有一定的区别,进而可以通过选定一定的阈值通过和参考单元比较将其判定出来,即对存储单元进行数据校验。

示例性的,对所述当前存储单元进行数据校验方法,包括:

将当前存储单元的阈值电压与第一阈值和第二阈值进行比较,其中第二阈值大于第一阈值;

如果阈值电压大于第一阈值且小于第二阈值,则所述当前存储单元校验失败,否则校验成功。

具体的,第一阈值可以通过预先选定一个第一参考存储单元来设定。其中,设定的第一阈值是指当第一参考存储单元的阈值电压大于第一阈值时该第一参考存储单元能够被作为数据为0的存储单元。例如,对于当前待处理的存储单元而言,将其与第一参考存储单元的第一阈值进行比较,若当前待处理的存储单元的阈值电压大于第一阈值,则接着进行与第二阈值的比较。

具体的,第二阈值可以通过预先选定一个第二参考存储单元来设定。其中,第二阈值大于第一阈值。当数据为0的存储单元的阈值低于第二阈值时,则此数据为0的存储单元随着浮栅中电荷的丢失或者其自身内部缺陷等原因,会影响下一步的读操作或者有影响读操作的趋势。例如,对于当前待处理的存储单元而言,将其与第二参考存储单元的第二阈值进行比较,如果当前待处理的存储单元的阈值电压小于第二阈值,则认为该存储单元校验失败。

具体的,如果当前待处理的存储单元分别与第一阈值和第二阈值比较后,如果当前待处理的存储单元的阈值电压小于第一阈值,则说明该存储单元是被擦除的存储单元,其存储的数据为1;如果当前待处理的存储单元的阈值电压大于第二阈值,则说明该存储单元是被编程的存储单元,其存储的数据为0。这两种情况都表示该当前待处理的存储单元处于稳定状态,不需要进行数据恢复,同时这两种情况都表示数据校验成功。

优选的,如图4所示,通过选定第一参考单元和第二参考单元后,对目标单元地址先后加入读电压(表示第一阈值)和Verify电压(表示第二阈值),将其与目标单元的阈值电压相比较,比较结果分别记为V1和V2。若目标单元位于第一个抛物线401内,则该目标单元的阈值电压为A1~A2,从图中可以看出,所加读电压和Verify电压都大于该目标单元的阈值电压,则说明该单元是稳定的单元,不需要进行恢复,同时也表明校验成功,所以比较结果V1=0,V2=0。若目标单元位于第二个抛物线的阴影部分402内,则该目标单元的阈值电压为B1~B2,从图中可以看出,该目标单元的阈值电压大于读电压,且小于Verify电压,则说明该单元是受到影响而产生阈值下降的单元,同时也表明校验失败,所以比较结果为V1=1,V2=0。若目标单元位于第二个抛物线的空白部分403内,则该目标单元的阈值电压为B2~B3,从图中可以看出,该目标单元的阈值电压大于读电压和Verify电压,则说明该单元是稳定的单元,不需要进行恢复,同时也表明校验成功,所以比较结果为V1=1,V2=1。

步骤104、按照设定顺序更新当前地址。

示例性的,如果起始地址为非易失性存储器中待恢复范围的最小地址,则待处理的当前存储单元为按照地址依次递加的存储单元。如果起始地址为非易失性存储器中待恢复范围的最大地址,则待处理的当前存储单元为按照当前起始地址依次递减的存储单元。

步骤105、对当前存储单元进行数据恢复并按照设定顺序更新当前地址。

其中,对当前存储单元进行数据恢复的方法可以是,对当前存储单元的栅极和漏极施加设定电压,使当前存储单元的阈值电压恢复至大于第二阈值。例如,可以对栅极加9V电压,漏极加4V电压,也可以对栅极加8.8V电压,漏极加4.2V电压。

优选的,在图4中,第二个抛物线的阴影部分402是需要进行数据恢复的存储单元,因此可以通过对栅极和漏极加合适的电压,把第二个抛物线的阴影部分402所在的存储单元的电压向右搬移至Verify电压之上,从而使该单元恢复为被编程(program)状态。

其中,按照设定顺序更新当前地址,其设定的顺序可以根据待恢复单元的起始地址确定。例如,如果起始地址为当前存储单元的最小地址时,则对当前存储单元进行数据恢复之后,可以根据按照地址递增的顺序,把下一个需要处理的存储单元的地址作为当前地址并对该存储单元进行下一步校验。如果起始地址为当前存储单元的最大地址时,则对当前存储单元进行数据恢复之后,可以根据按照地址递减的顺序,把下一个需要待处理的存储单元的地址作为当前地址并对该存储单元进行下一步校验。

优选的,若是对几个存储单元所组成的存储块的处理,如果起始地址是当前存储块的首地址即当前存储块的最小地址时,则对当前存储块进行数据恢复后,按照存储块地址递增的顺序,把下一个待处理的存储块的首地址作为当前地址进行校验。若起始地址是当前存储块的最大地址,则按照存储块地址递减的顺序,把下一个待处理的存储块的最大地址作为当前地址并对该存储块进行校验。

步骤106、将当前地址对应的存储单元确定为当前存储单元,并返回执行所述数据校验的操作,直到遍历完整个待恢复范围内的存储单元。

值得注意的是,在本实施例中,是根据所述非易失性存储器的使用时间和空闲状态,来产生所述数据恢复指令。如果非易失性存储器正在进行读、写或者擦除之中的任何一个操作,即该非易性存储器没有处于空闲状态,则有关外设处理器不能向该存储器发送数据恢复指令,并且该指令即使被发送也不会得到响应。

本发明实施例一提供的一种非易失性存储器的恢复方法,根据数据恢复指令确定出带恢复存储单元的起始地址和待恢复范围,进而确定出该非易失性存储器中待处理的当前存储单元。接着对当前存储单元进行数据校验,如果校验失败,则对当前存储单元进行数据恢复。如果校验成功,则按照设定顺序更新当前地址,然后通过循环操作进行数据校验,直到遍历完整个待恢复范围的存储单元,进而提高该非易失性存储器的可靠性。

实施例二

图2为本发明实施例二提供的一种在非易失性存储器的数据恢复过程中有中断指令的流程示意图,本实施例在上述实施例的基础上,在当前存储单元进行数据校验或数据恢复的过程中,增加数据恢复中断指令。如图2所示,该方法具体包括如下步骤:

步骤201、根据数据恢复指令确定待恢复存储单元的起始地址和待恢复范围。

步骤202、根据起始地址在非易失性存储器中确定待处理的当前存储单元。

步骤203、对当前存储单元进行数据校验,并判断校验是否成功,若校验成功,则执行步骤204;否则,执行步骤205。

步骤204、按照设定顺序更新当前地址。

步骤205、对当前存储单元进行数据恢复并按照设定顺序更新当前地址。

步骤206、将当前地址对应的存储单元确定为当前存储单元,并返回执行所述数据校验的操作,直到遍历完整个待恢复范围内的存储单元。

步骤207、如果识别到中断触发事件,则产生中断指令。

其中,中断指令是一个优先级很高的指令,当系统正在执行某一操作时,如果接收到中断指令,那么系统会立即停止当前操作,马上响应指令,去执行另一操作。即,步骤207并不限定在步骤206之后执行,可以在恢复过程中的任意时机进行中断。

示例性的,当前存储单元正在进行数据校验或者数据恢复,如果用户有新的其他请求,例如用户需要对当前存储单元进行读操作,则此时可以发送中断指令来中断当前正在进行的数据校验或数据恢复操作,响应用户新的读操作。

步骤208、根据中断指令,记录当前存储单元对应的当前地址作为中断地址,并停止当前的数据校验和恢复操作;

示例性的,当非易失性存储器接受到中断指令后,首先需要对其中断指令进行译码操作,如果译码成功,当前存储单元需要停止当前的数据校验和恢复操作,并且记录当前存储单元对应的当前地址,该地址可以作为下次数据校验的初始地址。这样,当下次进行数据恢复时,不需要对前面已经进行数据校验过的存储单元重新进行校验,可以节省非易失性存储器数据恢复的整体时间。

步骤209、在中断指令对应的中断触发事件完成时,读取所述中断地址以获取对应的存储单元,作为当前存储单元,返回执行所述数据校验的操作,即返回执行203。

示例性的,当前存储单元正在进行数据恢复,此时,用户需要对该单元进行写操作,则发送的中断指令为写操作指令,芯片收到该指令后,停止当前的数据恢复,并且记录当前中断地址即数据恢复停止的地址,然后对该存储单元进行写操作。当写操作完成后,如果需要返回数据校验操作,则读取中断地址以获取对应的存储单元,接着进行数据校验。如果不需要继续进行数据恢复,则停止在当前的状态或者可以进行其他操作,如果一段时间后需要进行数据恢复,则再读取中断地址获取对应的存储单元,接着进行数据恢复。

本发明实施例二在上述实施例一的基础上,在当前存储单元进行数据校验或数据恢复的过程中,增加数据恢复中断指令,通过该方法,当前存储单元可以响应用户在数据恢复过程中的其他请求,同时,在下次进行数据恢复时,不需要对前面已经进行数据校验过的存储单元重新进行校验,可以节省全芯片的数据恢复时间。

实施例三

图3所示为本发明实施例三提供的一种非易失性存储器的恢复装置的结构示意图,该装置可由硬件实现,如图3所示,该装置包括:

地址确定模块301、存储单元确定模块302、数据校验模块303、数据恢复模块304、地址更新模块305和单元更新模块306。

其中,地址确定模块301,用于根据数据恢复指令确定待恢复存储单元的起始地址和待恢复范围;存储单元确定模块302,用于根据所述起始地址在所述非易失性存储器中确定待处理的当前存储单元;数据校验模块303,用于对所述当前存储单元进行数据校验;数据恢复模块304,用于如果校验失败则对所述当前存储单元进行数据恢复,并触发地址更新模块动作,如果校验成功则直接触发地址更新模块动作;地址更新模块305:用于按照设定顺序更新当前地址;单元更新模块306,用于将当前地址对应的存储单元确定为当前存储单元,并返回执行所述数据校验的操作,直到遍历完整个待恢复范围内的存储单元。

本发明通过一种非易失性存储器的恢复装置,根据数据恢复指令确定出带恢复存储单元的起始地址和待恢复范围,进而确定出该非易失性存储器中待处理的当前存储单元。接着对当前存储单元进行数据校验,如果校验失败,则对当前存储单元进行数据恢复。如果校验成功,则按照设定顺序更新当前地址,然后通过循环操作进行数据校验,直到遍历完整个待恢复范围的存储单元,进而提高该非易失性存储器的可靠性。

在上述实施例的基础上,地址更新模块可具体用于:在当前存储单元地址进行单元地址的累计,以更新所述当前地址;其中,所述起始地址为待恢复范围的最小地址或最大地址,所述待恢复范围为所述非易失性存储器的全部地址范围。

在上述实施例的基础上,数据校验模块包括:阈值比较单元,用于将当前存储单元的阈值电压与第一阈值和第二阈值进行比较,其中第二阈值大于第一阈值;校验判断单元,如果阈值电压大于第一阈值且小于第二阈值,则所述当前存储单元校验失败,否则校验成功。

在上述实施例的基础上,数据恢复模块具体用于:对所述当前存储单元的栅极和漏极施加设定电压,以将所述当前存储单元的阈值电压恢复至大于第二阈值。

在上述实施例的基础上,该装置还包括:数据恢复指令产生模块,用于根据所述非易失性存储器的使用时间和空闲状态,产生所述数据恢复指令。

在上述实施例的基础上,该装置还包括:中断指令产生模块,用于对所述当前存储单元进行数据校验或数据恢复的过程中,如果识别到中断触发事件,则产生中断指令;中断地址记录模块,用于根据所述中断指令,记录当前存储单元对应的当前地址作为中断地址,并停止当前的数据校验和恢复操作;中断地址读取模块,用于在所述中断指令对应的中断触发事件完成时,读取所述中断地址以获取对应的存储单元,作为当前存储单元,返回执行所述数据校验的操作。

上述实施例中提供的非易失性存储器的恢复装置可执行本发明任意实施例所提供的非易失性存储器的恢复方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的非易失性存储器的恢复方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1