CN108717385B - 一种用于闪存的数据恢复方法及系统 - Google Patents
一种用于闪存的数据恢复方法及系统 Download PDFInfo
- Publication number
- CN108717385B CN108717385B CN201810502711.7A CN201810502711A CN108717385B CN 108717385 B CN108717385 B CN 108717385B CN 201810502711 A CN201810502711 A CN 201810502711A CN 108717385 B CN108717385 B CN 108717385B
- Authority
- CN
- China
- Prior art keywords
- ecc
- error correction
- voltage
- reading
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本申请公开了一种用于闪存的数据恢复方法及系统,方法包括:当闪存接收到读命令时,基于默认读电压读取出原始数据,对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力,当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压,对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。本申请能够通过数据重读和补偿相结合对闪存数据进行恢复,相对于现有技术有效降低了原始误码率。
Description
技术领域
本申请数据处理技术领域,尤其涉及一种用于闪存的数据恢复方法及系统。
背景技术
数据保持特性是影响NAND闪存数据存储可靠性的重要特征,存储在存储阵列中的数据放置一段时间后其分布态会左移如图1所示,造成分布态左移的原因是电荷存储层所存储的电荷丢失,分布态左移后,如果还是采用原来的读电压R0、R1、R2读取存储在阵列中的数据,将会有较大的误码率,很有可能无法通过ECC(Error Correcting Code,纠错控制编码)校验,无法得到正确的存储数据。
数据重读是解决NAND闪存数据分布态左移的有效方法之一。如图2所示,放置一段时间以后由于分布态左移R0、R1、R2不再是有效的读电压,改变R0、R1、R2这三个读电压,例如改变为R0’、R1’、R2’,能够将数据正确的读出。
干扰是存在于NAND闪存中的一种可以使分布态右移的现象,干扰包括读干扰、编程干扰,干扰使分布态右移后也可能使读出来数据的误码率上升,有时候也需要使用数据重读技术选择合适的读电压(例如,如图3所示中的R0’、R1’、R2’)以降低误码率。
存储在存储阵列中的数据受到干扰的影响,或者是放置一段时间后,或者是受到其他一些未知干扰的影响,从阵列中读出来的数据会有一定的误码,通常用原始误码率来表示;若错误数目过多,超过ECC的纠错能力,经过ECC纠错以后的误码率成为不可恢复误码率。其中,原始误码率表示未经过ECC纠错之前的误码率。不可纠错误码率反应在一定长度的ECC之下的误码率,也就是一定长度的ECC不可纠正的错误。
数据重读是解决NAND闪存数据分布态左移的有效方法之一。但是,NAND闪存生产厂商通常只会开放固定的几个读电压点,用户所能调节精度不高,无法做到以用户想要使用的任何读电压进行数据重读操作。
NAND闪存生产厂商给用户开放的几个固定读电压,在很大概率上没有能够进行数据重读操作的最佳读电压。NAND闪存厂商所提供的读电压不是能够进行数据重读操作的最佳读电压,很有可能读出的数据无法通过ECC校验。
因此,如何有效的对闪存数据进行恢复,以降低原始误码率是一项亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种用于闪存的数据恢复方法,通过数据重读和补偿相结合对闪存数据进行恢复,降低了原始误码率。
本申请提供了一种用于闪存的数据恢复方法,所述方法包括:
当闪存接收到读命令时,基于默认读电压读取出原始数据;
对所述原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当所述第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
对所述重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当所述第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对所述最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
优选地,所述方法还包括:
记录所述最优读电压,将所述最优读电压作为下一次读取数据的默认读电压。
优选地,所述通过重读纠错确定重读电压包括:
通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
优选地,所述对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压包括:
采用预设方法使存储单元分布态右移或左移,得到最优读电压。
优选地,所述预设方法包括:编程干扰或读干扰。
一种用于闪存的数据恢复系统,包括:
读取模块,用于当闪存接收到读命令时,基于默认读电压读取出原始数据;
校验模块,用于对所述原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
重读纠错模块,用于当所述第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
所述校验模块,还用于对所述重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
补偿模块,用于当所述第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对所述最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
优选地,所述系统还包括:
记录模块,用于记录所述最优读电压,将所述最优读电压作为下一次读取数据的默认读电压。
优选地,所述重读纠错模块具体用于:
通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
优选地,所述补偿模块具体用于:
采用预设方法使存储单元分布态右移或左移,得到最优读电压。
优选地,所述预设方法包括:编程干扰或读干扰。
综上所述,本申请公开了一种用于闪存的数据恢复方法,当需要对闪存数据进行恢复时,首先当闪存接收到读命令时,基于默认读电压读取出原始数据,然后对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力,当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。本申请通过数据重读和补偿相结合对闪存数据进行恢复,相对于现有技术有效降低了原始误码率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术公开的一种数据存储示意图;
图2为现有技术公开的一种数据重读示意图;
图3为现有技术公开的一种数据干扰示意图;
图4为本申请公开的一种用于闪存的数据恢复方法实施例1的流程图;
图5为本申请公开的一种用于闪存的数据恢复方法实施例2的流程图;
图6为本申请公开的一种用于闪存的数据恢复系统实施例1的结构示意图;
图7为本申请公开的一种用于闪存的数据恢复系统实施例2的结构示意图;
图8为本申请公开的用于闪存的数据恢复方法实例的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图4所示,为本申请公开的一种用于闪存的数据恢复方法实施例1的流程图,本方法可以包括以下步骤:
S101、当闪存接收到读命令时,基于默认读电压读取出原始数据;
当需要对闪存数据进行恢复时,首先接收用于读取闪存数据的读命令,当接收到读命令后,通过闪存默认读电压读取出原始数据。其中,默认读电压为闪存厂商提供的原始读电压。
S102、对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当根据默认读电压读取出闪存的原始数据后,对读取出的原始数据进行ECC校验,判断原始数据的第一错误数是否大于ECC最大纠错能力,即判断读取出的原始数据的误码率是否超过ECC最大纠错能力。
S103、当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
当读取出的原始数据的误码率大于ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步通过重读纠错方式重新确定读电压。
S104、对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当通过重读纠错确定重读电压后,通过确定出的重读电压读取闪存中的数据,然后对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,即判断重读电压读取出的数据的误码率是否超过ECC最大纠错能力。
S105、当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
当重读电压读取出的数据的误码率超过ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步采用补偿的方法对存储单元的阈值电压进行补偿,并通过重读纠错得到最优读电压,直至得到的最优读电压能够正确的读出数据。其中,最优读电压即对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力的电压。
综上所述,在上述实施例中,当需要对闪存数据进行恢复时,首先当闪存接收到读命令时,基于默认读电压读取出原始数据,然后对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力,当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。本申请通过数据重读和补偿相结合对闪存数据进行恢复,相对于现有技术有效降低了原始误码率。
如图5所示,为本申请公开的一种用于闪存的数据恢复方法实施例2的流程图,本方法可以包括以下步骤:
S201、当闪存接收到读命令时,基于默认读电压读取出原始数据;
当需要对闪存数据进行恢复时,首先接收用于读取闪存数据的读命令,当接收到读命令后,通过闪存默认读电压读取出原始数据。其中,默认读电压为闪存厂商提供的原始读电压。
S202、对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当根据默认读电压读取出闪存的原始数据后,对读取出的原始数据进行ECC校验,判断原始数据的第一错误数是否大于ECC最大纠错能力,即判断读取出的原始数据的误码率是否超过ECC最大纠错能力。
S203、当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
当读取出的原始数据的误码率大于ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步通过重读纠错方式重新确定读电压。
S204、对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当通过重读纠错确定重读电压后,通过确定出的重读电压读取闪存中的数据,然后对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,即判断重读电压读取出的数据的误码率是否超过ECC最大纠错能力。
S205、当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力;
当重读电压读取出的数据的误码率超过ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步采用补偿的方法对存储单元的阈值电压进行补偿,并通过重读纠错得到最优读电压,直至得到的最优读电压能够正确的读出数据。其中,最优读电压即对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力的电压。
S206、记录最优读电压,将最优读电压作为下一次读取数据的默认读电压。
当通过最优电压读取出的数据的误码率未超过ECC最大纠错能力时,此时表明通过最优电压读取出的数据准确率较高,可以将最优读电压进行记录,将最优读电压作为下一次读取数据的默认读电压。
综上所述,本实施例在上述实施例1的基础上,进一步对最优读电压进行记录,将最优读电压作为下一次读取数据的默认读电压,可以提高闪存下一次数据恢复的准确率。
具体的,在上述实施例中,通过重读纠错确定重读电压可以是,通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
具体的,在上述实施例中,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压可以是,采用预设方法使存储单元分布态右移或左移,得到最优读电压,即通过补偿的方法降低误码,补偿后仅对补偿前误码最小的两个重读电压进行重读纠错,并不断补偿,直到对最优读电压读取出的数据进行ECC校验后的错误数小于等于ECC最大纠错能力。其中,补偿方法可以是通过编程干扰、读干扰或者其他能够对存储单元进行微弱编程使分布态右移的方法,或者采用其他有效的方法使分布态左移。
如图8所示,为本申请应用的一个效果举例,在某次读取数据时,采用闪存厂商提供的4个默认读电压(RL1、RL2、RL3、RL4)读取到的数据的原始误码率都在ECC可纠正错误的上限,但采用本申请所提供的方法后,采用RL3读取到数据的原始误码率在ECC可纠正错误上限以下,可以采用ECC将读取到的错误纠正。
如图6所示,为本申请公开的一种用于闪存的数据恢复系统实施例1的结构示意图,本系统可以包括:
读取模块601,用于当闪存接收到读命令时,基于默认读电压读取出原始数据;
当需要对闪存数据进行恢复时,首先接收用于读取闪存数据的读命令,当接收到读命令后,通过闪存默认读电压读取出原始数据。其中,默认读电压为闪存厂商提供的原始读电压。
校验模块602,用于对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当根据默认读电压读取出闪存的原始数据后,对读取出的原始数据进行ECC校验,判断原始数据的第一错误数是否大于ECC最大纠错能力,即判断读取出的原始数据的误码率是否超过ECC最大纠错能力。
重读纠错模块603,用于当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
当读取出的原始数据的误码率大于ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步通过重读纠错方式重新确定读电压。
校验模块602,还用于对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当通过重读纠错确定重读电压后,通过确定出的重读电压读取闪存中的数据,然后对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,即判断重读电压读取出的数据的误码率是否超过ECC最大纠错能力。
补偿模块604,用于当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
当重读电压读取出的数据的误码率超过ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步采用补偿的方法对存储单元的阈值电压进行补偿,并通过重读纠错得到最优读电压,直至得到的最优读电压能够正确的读出数据。其中,最优读电压即对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力的电压。
综上所述,在上述实施例中,当需要对闪存数据进行恢复时,首先当闪存接收到读命令时,基于默认读电压读取出原始数据,然后对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力,当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。本申请通过数据重读和补偿相结合对闪存数据进行恢复,相对于现有技术有效降低了原始误码率。
如图7所示,为本申请公开的一种用于闪存的数据恢复系统实施例2的结构示意图,本系统可以包括:
读取模块701,用于当闪存接收到读命令时,基于默认读电压读取出原始数据;
当需要对闪存数据进行恢复时,首先接收用于读取闪存数据的读命令,当接收到读命令后,通过闪存默认读电压读取出原始数据。其中,默认读电压为闪存厂商提供的原始读电压。
校验模块702,用于对原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当根据默认读电压读取出闪存的原始数据后,对读取出的原始数据进行ECC校验,判断原始数据的第一错误数是否大于ECC最大纠错能力,即判断读取出的原始数据的误码率是否超过ECC最大纠错能力。
重读纠错模块703,用于当第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
当读取出的原始数据的误码率大于ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步通过重读纠错方式重新确定读电压。
校验模块702,还用于对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当通过重读纠错确定重读电压后,通过确定出的重读电压读取闪存中的数据,然后对重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力,即判断重读电压读取出的数据的误码率是否超过ECC最大纠错能力。
补偿模块704,当第二错误数大于ECC最大纠错能力时,对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压,直至对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力;
当重读电压读取出的数据的误码率超过ECC最大纠错能力时,表明此时读取出的数据与存储的原始数据不一致,此时进一步采用补偿的方法对存储单元的阈值电压进行补偿,并通过重读纠错得到最优读电压,直至得到的最优读电压能够正确的读出数据。其中,最优读电压即对最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力的电压。
记录模块705,用于记录最优读电压,将最优读电压作为下一次读取数据的默认读电压。
当通过最优电压读取出的数据的误码率未超过ECC最大纠错能力时,此时表明通过最优电压读取出的数据准确率较高,可以将最优读电压进行记录,将最优读电压作为下一次读取数据的默认读电压。
综上所述,本实施例在上述实施例1的基础上,进一步对最优读电压进行记录,将最优读电压作为下一次读取数据的默认读电压,可以提高闪存下一次数据恢复的准确率。
具体的,在上述实施例中,重读纠错模块通过重读纠错确定重读电压可以是,通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
具体的,在上述实施例中,补偿模块对存储单元的阈值电压进行补偿并通过重读纠错得到最优读电压可以是,采用预设方法使存储单元分布态右移或左移,得到最优读电压,即通过补偿的方法降低误码,补偿后仅对补偿前误码最小的两个重读电压进行重读纠错,并不断补偿,直到对最优读电压读取出的数据进行ECC校验后的错误数小于等于ECC最大纠错能力。其中,补偿方法可以是通过编程干扰、读干扰或者其他能够对存储单元进行微弱编程使分布态右移的方法,或者采用其他有效的方法使分布态左移。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种用于闪存的数据恢复方法,其特征在于,所述方法包括:
当闪存接收到读命令时,基于默认读电压读取出原始数据;
对所述原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
当所述第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
对所述重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
当所述第二错误数大于ECC最大纠错能力时,采用编程干扰或读干扰使存储单元分布态右移或左移,得到最优读电压,直至对所述最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
2.根据权利要求1所述的方法,其特征在于,还包括:
记录所述最优读电压,将所述最优读电压作为下一次读取数据的默认读电压。
3.根据权利要求1或2所述的方法,其特征在于,所述通过重读纠错确定重读电压包括:
通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
4.一种用于闪存的数据恢复系统,其特征在于,包括:
读取模块,用于当闪存接收到读命令时,基于默认读电压读取出原始数据;
校验模块,用于对所述原始数据进行ECC校验,判断第一错误数是否大于ECC最大纠错能力;
重读纠错模块,用于当所述第一错误数大于ECC最大纠错能力时,通过重读纠错确定重读电压;
所述校验模块,还用于对所述重读电压读取出的数据进行ECC校验,判断第二错误数是否大于ECC最大纠错能力;
补偿模块,用于当所述第二错误数大于ECC最大纠错能力时,采用编程干扰或读干扰使存储单元分布态右移或左移,得到最优读电压,直至对所述最优读电压读取出的数据进行ECC校验后的第三错误数小于等于ECC最大纠错能力。
5.根据权利要求4所述的系统,其特征在于,还包括:
记录模块,用于记录所述最优读电压,将所述最优读电压作为下一次读取数据的默认读电压。
6.根据权利要求4或5所述的系统,其特征在于,所述重读纠错模块具体用于:
通过重读纠错进行重读电压搜索,确定出误码最小的两个重读电压。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810502711.7A CN108717385B (zh) | 2018-05-23 | 2018-05-23 | 一种用于闪存的数据恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810502711.7A CN108717385B (zh) | 2018-05-23 | 2018-05-23 | 一种用于闪存的数据恢复方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108717385A CN108717385A (zh) | 2018-10-30 |
CN108717385B true CN108717385B (zh) | 2020-09-29 |
Family
ID=63900464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810502711.7A Active CN108717385B (zh) | 2018-05-23 | 2018-05-23 | 一种用于闪存的数据恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108717385B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948166B (zh) * | 2019-10-16 | 2021-12-21 | 长江存储科技有限责任公司 | 数据处理方法及相关产品 |
CN111444038B (zh) * | 2020-03-28 | 2021-08-10 | 华中科技大学 | 闪存存储器可靠性的实时检测方法、检测设备及存储系统 |
CN112053726B (zh) * | 2020-09-09 | 2022-04-12 | 哈尔滨工业大学 | 一种基于Er态阈值电压分布的闪存误擦除数据恢复方法 |
CN112162935B (zh) * | 2020-09-30 | 2021-06-08 | 深圳市时创意电子有限公司 | 存储芯片的数据处理方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436434A (zh) * | 2007-08-16 | 2009-05-20 | 三星电子株式会社 | 提供快速编程及读操作的非易失性存储设备、系统和方法 |
CN102543196A (zh) * | 2010-12-14 | 2012-07-04 | 群联电子股份有限公司 | 数据读取方法、存储器储存装置及其控制器 |
CN101529522B (zh) * | 2005-10-25 | 2012-08-29 | 晟碟以色列有限公司 | 从闪速存储器中的错误恢复的方法 |
US9047955B2 (en) * | 2011-03-30 | 2015-06-02 | Stec, Inc. | Adjusting operating parameters for memory cells based on wordline address and cycle information |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510637B2 (en) * | 2010-04-14 | 2013-08-13 | Phison Electronics Corp. | Data reading method, memory storage apparatus and memory controller thereof |
-
2018
- 2018-05-23 CN CN201810502711.7A patent/CN108717385B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529522B (zh) * | 2005-10-25 | 2012-08-29 | 晟碟以色列有限公司 | 从闪速存储器中的错误恢复的方法 |
CN101436434A (zh) * | 2007-08-16 | 2009-05-20 | 三星电子株式会社 | 提供快速编程及读操作的非易失性存储设备、系统和方法 |
CN102543196A (zh) * | 2010-12-14 | 2012-07-04 | 群联电子股份有限公司 | 数据读取方法、存储器储存装置及其控制器 |
US9047955B2 (en) * | 2011-03-30 | 2015-06-02 | Stec, Inc. | Adjusting operating parameters for memory cells based on wordline address and cycle information |
Also Published As
Publication number | Publication date |
---|---|
CN108717385A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108717385B (zh) | 一种用于闪存的数据恢复方法及系统 | |
KR101466270B1 (ko) | 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법 | |
KR100976989B1 (ko) | 플래시 메모리에서의 오류 복구 방법 | |
JP5376872B2 (ja) | マルチ−ビットデータを格納するメモリシステム及びその読み出し方法 | |
KR100681429B1 (ko) | 반도체 메모리 장치 및 그것의 비트 에러 검출 방법 | |
KR101434405B1 (ko) | 메모리 장치 및 메모리 데이터 읽기 방법 | |
JP4950886B2 (ja) | 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法 | |
US8321765B2 (en) | Method of reading data in non-volatile memory device | |
CN105788648B (zh) | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 | |
US20100287427A1 (en) | Flash Memory Device and Flash Memory Programming Method Equalizing Wear-Level | |
US9990247B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
JP2006134310A (ja) | データ信頼性を向上させることができるメモリ管理方法 | |
KR20100006344A (ko) | 불휘발성 메모리 장치 및 메모리 시스템 및 그것의 관리방법 | |
US8316279B2 (en) | Method of estimating and correcting errors in memory cells | |
US10020066B2 (en) | Systems and methods for sub-zero threshold characterization in a memory cell | |
US8347183B2 (en) | Flash memory device using ECC algorithm and method of operating the same | |
JP4866107B2 (ja) | 不揮発性記憶装置及びその書き込み判定方法 | |
CN108241549B (zh) | 基于ECC的NAND数据Read Retry纠错方法和NAND控制器 | |
JP2011238346A (ja) | フラッシュメモリ内のエラーから復旧するための方法 | |
JP2010108029A (ja) | 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
US8924819B2 (en) | Memory device and operation method thereof | |
US11349495B2 (en) | Recovering from hard decoding errors by remapping log likelihood ratio values read from NAND memory cells | |
CN112447241A (zh) | 一种实现数据重读的方法、装置、计算机存储介质及终端 | |
CN117558332A (zh) | 数据恢复方法及相关数据读取方法和电子设备、存储介质 | |
CN107391290A (zh) | 一种闪存制程差异的检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |