用于提高数据可靠性的数据管理技术的制作方法

文档序号:6773773阅读:211来源:国知局
专利名称:用于提高数据可靠性的数据管理技术的制作方法
技术领域
本发明涉及一种半导体存储设备,具体涉及一种用于管理存储在非易失性存储设备中的数据的技术。
背景技术
检错和纠错技术使得能有效地恢复由于各种原因而损坏的数据。例如,在将数据存储到存储器中的过程中数据可能由于各种原因而被损坏,并且可能由于用于将数据从源传送到目的地的信道的干扰而被损坏。已经提出了多种用来检测和纠正受损数据的方法。通常使用的用于检错的技术包括Reed-Solomon(RS)码、Hamming(汉明)码、Bose-Chaudhuri-Hocquenghem(BCH)码和循环冗余校验(CRC)码。可以使用这些码来检测受损数据并且纠正数据中的错误。在应用非易失性存储设备的多数领域中,将数据与称为纠错码(下面称为“ECC”)的值一同存储在非易失性存储设备中。
提供ECC数据来纠正在非易失性存储设备的读取操作期间出现的错误。使用ECC数据可纠正的位错误的最大数量是有限的。将用于纠正单个位错误的ECC数据存储在一般的非易失性存储设备中。因而,在数据读取操作期间出现的单个位错误可以由检错和纠错技术来纠正,而不需要诸如块替代之类的额外的恢复过程。
在其中纠正了单个位错误的数据中,很可能在下一读取操作中出现另外的错误。如果读取数据的位错误数量超过允许的位错误数量,则使用另外的恢复方法(称为块替代方法),用非易失性存储设备中提供的预留存储块替代包含该读取数据的存储块。此时,在替代后的存储块中的数据将被复制到预留存储块。如果读取数据包含允许数量的位错误,则用专门的检错和纠错技术来纠正读取数据的错误。即使纠正了读取数据的错误,在读取操作中经过纠错的数据也很可能出现另外的错误。因此,需要一种提高经过纠错的数据的可靠性的技术。

发明内容
根据本发明的一个方面,一种用于管理存储在具有多个存储块的非易失性存储器中的数据的方法包括确定所选存储块中的读取数据中是否出现数据错误;如果所选存储块的读取数据中出现数据错误,则确定所选存储块所属的数据区域;如果所选存储块是代码数据区域,则确定读取数据的位错误数量是否小于或等于允许的位错误数量;以及如果读取数据的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块,并且将代码数据区域的所选存储块指定到用户数据区域。
在示范性实施例中,将用于替代所选存储块的预留存储块指定到代码数据区域。
在示范性实施例中,将存储在所选存储块中的、除了读取数据之外的数据复制到替代存储块中。
在示范性实施例中,纠错码块自动纠正读取数据的位错误,并且将经过纠错的数据存储在替代后的存储块中。
在示范性实施例中,如果读取数据中的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块。
在示范性实施例中,如果读取数据中的位错误数量大于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块。
在示范性实施例中,如果读取数据中的位错误数量大于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块。
在示范性实施例中,重新加载存储在代码数据区域的所选存储块中的数据,并且将重新加载的数据存储到替代预留存储块中。
在示范性实施例中,如果所选存储块是用户数据区域,则确定读取数据中的位错误数量是否大于允许的位错误数量。
在示范性实施例中,如果读取数据中的位错误数量大于允许的位错误数量,则使用纠错码块自动纠正读取数据的位错误。
在示范性实施例中,如果读取数据中的位错误数量大于允许的位错误数量,则用预留存储块替代所选存储块。
在示范性实施例中,指定所选存储块为有缺陷的存储块。
根据本发明的另一方面,一种用于管理存储在具有多个存储块的非易失性存储器中的数据的方法包括确定所选存储块的读取数据中是否出现数据错误;以及如果所选存储块的读取数据中出现错误,则根据所选数据块是属于存储器的代码区域还是属于存储器的用户数据区域而不同地处理错误。
在示范性实施例中,所述不同地处理错误的步骤包括如果所选存储块是在代码数据区域中,则确定读取数据的位错误数量是否小于或等于允许的位错误数量;和如果读取数据的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域中的所选存储块,并且将代码数据区域的所选存储块指定到用户数据区域。
在示范性实施例中,将用于替代所选存储块的预留存储块指定到代码数据区域。
在示范性实施例中,将存储在所选存储块中的、除了读取数据之外的数据复制到替代存储块中。
在示范性实施例中,纠错码块自动纠正读取数据的一个或多个位错误,并且将经过纠错的数据存储在替代存储块中。
在示范性实施例中,所述不同地处理错误的步骤还包括如果读取数据的位错误数量大于允许的位错误数量,则用预留存储块替代代码数据区域中的所选存储块。
在示范性实施例中,所述不同地处理错误的步骤还包括如果读取数据的位错误数量大于允许的位错误数量,则将代码数据区域的所选存储块指定为有缺陷的存储块。
在示范性实施例中,重新加载存储在代码数据区域的所选存储块中的数据,并且将重新加载的数据存储到替代预留存储块中。
在示范性实施例中,所述不同地处理错误的步骤还包括如果所选存储块是用户数据区域,则确定读取数据中的位错误数量是否超过允许的位错误数量。
在示范性实施例中,如果读取数据中的位错误数量未超过允许的位错误数量,则使用纠错码块自动纠正读取数据的一个或多个位错误。
在示范性实施例中,所述不同地处理错误的步骤还包括如果读取数据中的位错误数量超过允许的位错误数量,则用预留存储块替代所选存储块。
在示范性实施例中,指定所选存储块为有缺陷的存储块。


通过参照附图详细描述本发明的优选实施例,本发明的上述和其他特征和优点对于本领域普通技术人员来说将变得更加清楚,其中图1是示意性图解根据本发明的一个或多个方面的非易失性存储设备的方框图;图2是示出图1所示的非易失性存储设备的阵列结构的视图;以及图3是图解根据本发明的非易失性存储设备的存储器管理方法的流程图。
具体实施例方式
现在将参照示出本发明优选实施例的附图,在下文中更充分地描述本发明。
图1是示意性示出非易失性存储设备100的方框图。图1的非易失性存储设备100是NAND闪存设备。然而如下面进一步详细说明的,图1的原理可以应用到其他存储设备,例如,MROM、PROM、FRAM、NOR闪存设备等。
参照图1,非易失性存储设备100包括非易失性存储器120、缓冲存储器140和控制电路160。如图2所示,非易失性存储器120包括具有第一存储区域121、第二存储区域122和第三存储区域123的存储单元阵列。
第一到第三存储区域121、122和123的每一个都包括存储块,并且每个存储块包括多个页面。将诸如应用程序之类的代码数据存储在作为代码数据区域的第一存储区域121中,而将作为一般数据的用户数据存储在作为用户数据区域的第二存储区域122中。第三存储区域123是预留存储区域,用于替代第一和第二存储区域121和122的存储块。缓冲存储器140用于临时存储从非易失性存储器120读取的数据和要存储到非易失性存储器120中的数据。控制电路160被配置来控制非易失性存储器120和缓冲存储器140的操作,例如,读取操作和写入操作。控制电路160包括纠错码(ECC)块162。当将要写入的数据从缓冲存储器140传输到非易失性存储器120时,ECC块162产生与要写入的数据相关的ECC数据。当读取数据从非易失性存储器120传输到缓冲存储器140时,ECC块162还检测读取数据中是否出现数据错误。如果读取数据中出现数据错误,并且该数据错误包含ECC块162允许的位错误数量(或更少),则ECC块162纠正读取数据中的错误。ECC块162中可纠正的位错误数量是预先确定的。例如,在一个实施例中,ECC块162被配置来纠正与所允许的位错误数量对应的一个位错误(单个位)。然而,ECC块162不限于只能纠正单个位错误的实施例。
在图1中,非易失性存储器120、缓冲存储器140和控制电路160可以被并入到单个集成电路中。或者,非易失性存储器120、缓冲存储器140和控制电路160可以被并入到不同的集成电路来配置存储系统。
图3是图解诸如图1的设备100之类的非易失性存储设备的存储器管理方法的流程图。将参照附图详细描述该非易失性存储设备的存储器管理方法。
控制电路160控制数据从非易失性存储器120向缓冲存储器140的传输。换句话说,在步骤“S100”根据控制电路160的控制执行读取操作。为了方便起见,假设将按页面数量的数据(下面称为“页面数据”)从非易失性存储器120传输到缓冲存储器140。控制电路160的ECC块162检测在数据从非易失性存储器120传输到缓冲存储器140期间读取页面数据中是否出现数据错误。如果读取页面数据中未出现数据错误,则将正常结束读取操作。如果读取页面数据中出现数据错误,则控制电路在步骤“S120”确定数据错误是否出现在第一存储区域121(即,代码数据区域)中。如果不是,则控制电路160在步骤“S130”确定是否出现2位错误(或者大于2位错误)。如果在数据读取操作期间出现的错误不是超过ECC块162允许的位错误数量的、2位错误(或者大于2位错误),则将正常结束读取操作。换句话说,如果在读取操作期间第二存储区域122中的读取页面数据中的位错误数量小于或等于ECC块162允许的位错误数量(例如,1位错误),则ECC块162检测并纠正当前出现的错误,并且正常结束读取操作而不需要诸如块替代之类的另外的恢复过程。
如果第二存储区域122中的读取页面数据出现超过可由ECC块162纠正的允许的位错误数量的2位错误,则在步骤“S140”用第三存储区域123的存储块之一替代包含当前读取数据的页面的第二存储区域122的存储块。此时,将除了错误页面数据之外的页面数据复制到第三存储区域123的存储块中。同时,指定包含具有错误的页面数据的存储块为有缺陷的存储块,并且将替代后的存储块指定到第二存储区域122的存储块。在包含错误页面数据的存储块被替代后,将结束读取操作。换句话说,如果在读取操作时第二存储区域122中出现的错误是2位错误,则读取操作将在执行诸如块替代之类的另外的恢复过程之后结束。
返回步骤S120,如果在第一存储区域121中出现数据错误,则控制电路160在步骤“S150”确定当前出现的错误是否为1位错误(小于或等于ECC块162所允许的位错误数量)。如果当前出现的错误不是1位错误,换句话说,如果在第一存储区域121中出现2位错误,则在步骤“S160”用第三存储区域123的存储块替代包含数据错误出现的页面的第一存储区域121的存储块。此时,将出现2位错误的存储块指定为有缺陷的存储块,并且将第三存储区域123的预留存储块指定到第一存储区域121。这里,根据众所周知的方法,将重新输入或加载的数据(而不是存储在第一存储区域121的有缺陷的存储块中的数据)存储到指定的存储块(而不是有缺陷的存储块)中。然后,将结束读取操作。
如果当前出现的错误小于或等于ECC块162中所允许的位错误数量,换句话说,如果第一存储区域121中出现1位错误,则在步骤“S170”用第三存储区域123的存储块替代第一存储区域121的存储块,并且将第一存储区域121中的存储块指定到第二存储区域122的存储块。当用第三存储区域123的存储块替代第一存储区域121的存储块时,将除了出现错误的页面数据之外的页面数据复制到新指定的存储块中。出现错误的页面数据由ECC块162纠正,并且也将经过纠错的页面数据复制到新指定的存储块中。然后,将结束读取操作。
如上面描述所示,如果在第一存储区域121中出现1位错误(属于ECC块所允许的位错误数量),则将出现1位错误的第一存储区域121的存储块的页面数据复制到对应于第三存储区域123的存储块中。将出现1位错误的第一存储区域121中的存储块指定到第二存储区域122的存储块。这意味着可以提高存储在第一存储区域121中的数据的可靠性。换句话说,当在第一存储区域中出现1位错误时,用预留存储块替代第一存储区域的存储块,从而同样地维持了在一个页面中出现1位错误的概率。因此,可以提高存储在第一存储区域121中的数据的可靠性。
在一个实施例中,第三存储区域的存储块被配置来被使用,而不管它们是用于第一区域还是第二区域。然而,第三存储区域的存储块被配置成使得一些存储块可以由第一存储区域的存储块来替代,而其他存储块可以由第二存储区域的存储块来替代。
尽管已经在上面的描述和附图中说明了根据本发明的配置和电路操作,但这些实施例是作为本发明的教学示例提供的。可以在不背离本发明范围的前提下进行各种改变和修改。
如上所述,可以通过不同地处理第一存储区域和第二存储区域的错误来提高存储在第一存储区域中的数据或代码数据的可靠性。
权利要求
1.一种用于管理存储在具有多个存储块的非易失性存储器中的数据的方法,包括确定所选存储块中的读取数据中是否出现数据错误;如果所选存储块的读取数据中出现数据错误,则确定所选存储块所属的数据区域;如果所选存储块是代码数据区域,则确定读取数据的位错误数量是否小于或等于允许的位错误数量;以及如果读取数据的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块,并且将代码数据区域的所选存储块指定到用户数据区域。
2.如权利要求1所述的方法,其中,将用于替代所选存储块的预留存储块指定到代码数据区域。
3.如权利要求1所述的方法,其中,将存储在所选存储块中的、除了读取数据之外的数据复制到替代后的存储块中。
4.如权利要求3所述的方法,其中,由纠错码块自动纠正读取数据的位错误,并且也将经过纠错的数据存储在替代后的存储块中。
5.如权利要求1所述的方法,还包括如果读取数据的位错误数量大于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块。
6.如权利要求5所述的方法,还包括如果读取数据的位错误数量大于允许的位错误数量,则将代码数据区域的所选存储块指定为有缺陷的存储块。
7.如权利要求6所述的方法,其中,将存储在代码数据区域的所选存储块中的数据存储到预留存储块中。
8.如权利要求1所述的方法,还包括如果所选存储块是在用户数据区域中,则确定读取数据的位错误数量是否超过允许的位错误数量。
9.如权利要求8所述的方法,还包括如果用户数据区域中的读取数据的位错误数量未超过允许的位错误数量,则使用纠错码块自动纠正读取数据的位错误。
10.如权利要求8所述的方法,还包括如果用户数据区域中的读取数据的位错误数量超过允许的位错误数量,则用预留存储块替代所选存储块。
11.如权利要求10所述的方法,还包括如果用户数据区域中的读取数据的位错误数量超过允许的位错误数量,则指定所选存储块为有缺陷的存储块。
12.一种用于管理存储在具有多个存储块的非易失性存储器中的数据的方法,包括确定所选存储块的读取数据中是否出现数据错误;以及如果所选存储块的读取数据中出现错误,则根据所选数据块是属于存储器的代码数据区域还是属于存储器的用户数据区域而不同地处理错误。
13.如权利要求12所述的方法,其中所述不同地处理错误的步骤包括如果所选存储块是在代码数据区域中,则确定读取数据的位错误数量是否小于或等于允许的位错误数量;和如果读取数据的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域中的所选存储块,并且将代码数据区域的所选存储块指定到用户数据区域。
14.如权利要求13所述的方法,其中,将用于替代所选存储块的预留存储块指定到代码数据区域。
15.如权利要求13所述的方法,其中,将存储在所选存储块中的、除了读取数据之外的数据复制到替代后的存储块中。
16.如权利要求13所述的方法,其中,由纠错码块自动纠正读取数据的错误,并且将经过纠错的数据存储在替代后的存储块中。
17.如权利要求13所述的方法,其中所述不同地处理错误的步骤还包括如果读取数据的位错误数量大于允许的位错误数量,则用预留存储块替代代码数据区域中的所选存储块。
18.如权利要求17所述的方法,其中所述不同地处理错误的步骤还包括如果读取数据的位错误数量大于允许的位错误数量,则将代码数据区域的所选存储块指定为有缺陷的存储块。
19.如权利要求18所述的方法,其中,将存储在代码数据区域的所选存储块中的数据存储到替代后的预留存储块中。
20.如权利要求13所述的方法,其中所述不同地处理错误的步骤还包括如果所选存储块是在用户数据区域中,则确定读取数据的位错误数量是否超过允许的位错误数量。
21.如权利要求20所述的方法,其中所述不同地处理错误的步骤还包括如果读取数据的位错误数量未超过允许的位错误数量,则使用纠错码块自动纠正读取数据的位错误。
22.如权利要求20所述的方法,其中所述不同地处理错误的步骤还包括如果读取数据的位错误数量超过允许的位错误数量,则用预留存储块替代所选存储块。
23.如权利要求22所述的方法,其中指定所选存储块为有缺陷的存储块。
全文摘要
一种用于管理存储在具有多个存储块的非易失性存储器中的数据的方法,包括首先,确定所选存储块中的读取数据中是否出现错误。如果所选存储块中的读取数据中出现错误,则确定所选存储块所属的区域。如果所选存储块属于代码数据区域,则确定读取数据的位错误数量是否小于或等于允许的位错误数量。如果读取数据的位错误数量小于或等于允许的位错误数量,则用预留存储块替代代码数据区域的所选存储块,并且将代码数据区域的所选存储块指定到用户数据区域。
文档编号G11C16/02GK1790292SQ20051011932
公开日2006年6月21日 申请日期2005年11月3日 优先权日2004年11月3日
发明者朴钟烈, 赵显德 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1