CN101243417B - 非易失性存储装置、存储控制器以及不良区域检测方法 - Google Patents
非易失性存储装置、存储控制器以及不良区域检测方法 Download PDFInfo
- Publication number
- CN101243417B CN101243417B CN200680029679.0A CN200680029679A CN101243417B CN 101243417 B CN101243417 B CN 101243417B CN 200680029679 A CN200680029679 A CN 200680029679A CN 101243417 B CN101243417 B CN 101243417B
- Authority
- CN
- China
- Prior art keywords
- mentioned
- error
- information
- data
- physical
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 242
- 238000001514 detection method Methods 0.000 title claims description 26
- 230000002950 deficient Effects 0.000 title claims description 17
- 238000012937 correction Methods 0.000 claims description 153
- 230000014509 gene expression Effects 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 69
- 230000006870 function Effects 0.000 claims description 22
- 230000007547 defect Effects 0.000 abstract 5
- 238000000034 method Methods 0.000 description 55
- 238000010586 diagram Methods 0.000 description 42
- 230000010076 replication Effects 0.000 description 11
- 241001269238 Data Species 0.000 description 10
- 230000006866 deterioration Effects 0.000 description 8
- 230000003139 buffering effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000178 monomer Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/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)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明提供一种非易失性存储装置、存储控制器以及不良区域检测方法,其目的在于为了限制在闪速存储器内发生了固有不良的物理块,准确地检测出该物理块,在ECC错误记录中,记录物理块的错误的发生历史或物理清除的历史,判断所发生的错误是偶发性的还是由固有不良引起的。在最初的读出错误发生以后,如果在物理清除后改写的数据中没有再次发生错误,则判断为最初的错误是偶发性的,如果再次发生错误,则判断为是由固有不良引起的错误。通过使用这样的ECC错误记录,能够准确地判断是偶发性错误还是由固有不良引起的错误。根据该判断,不使用固有不良的物理块,由此能够产生降低读出错误这样的效果。
Description
技术领域
本发明涉及在使用了用于提高在非易失性存储器中记录的数据的可靠性的纠错功能的非易失性存储装置中,用于降低由于非易失性存储器的不良而引起的非偶发性读出错误的非易失性存储装置、存储控制器以及不良区域检测方法。
背景技术
近年来,搭载了非易失性存储器的存储卡作为数字照相机或者便携电话机的存储卡正在扩大市场。然而,非易失性存储器在每次改写数据时存储单元逐渐恶化,最终发生写入或者读出的错误。当然,如果可靠性充分高,几乎可以忽视由改写引起的存储单元的恶化,则即使使用十年也不会产生什么问题。然而实际上有时并非如此,通过在控制非易失性存储器的系统中搭载ECC(错误检查和纠正)电路等纠错电路,实现实质上可靠性高的存储卡。
然而,由于工艺的微细化减小存储单元的尺寸,或者由于实现大容量的多值化难以确保存储单元单体的可靠性。另外,由于在发展大容量的同时增加存储器的图形,还增加产品检查的时间,因此难以充分高精度地检查器件。
作为管理闪速存储器的写入或者读出的错误的方法,在专利文献1中提出了对读出、写入中的错误发生信息进行计数,使得不使用恶化了的区域的方法。另外,在专利文献2中提出对于读出错误连续的区域进行替代处理的方法。
专利文献1:特开平11-53266号公报
专利文献2:WO01/022232
包含闪速存储器的大部分非易失性存储器具有在存储单元上不施加偏压等能量而持续保持数据的性能。这表现出保持数据的状态是稳定的。与作为易失性存储器的SRAM通过施加能量保持数据完全不同。从而,为了改写非易失性存储器的数据,需要在处于稳定状态的存储单元中施加能量,此时,虽然很微小但仍将产生存储单元的恶化。
以在闪速存储器等非易失性存储器中发生的存储单元恶化为原因的错误更多地起因于数据的改写,数据读出引起的影响小。考虑到这一点,能够适当地进行错误发生时的处理,然而,在专利文献1或者专利文献2中记载的非易失性存储装置中,并没有充分考虑数据改写和数据读出引起的非易失性存储器的恶化。另外,虽然与数据改写时相比较,数据读出引起的对错误发生的影响极小,但是在反复多次对同一个数据读出时,由于发现的不是存储单元的恶化,而是逐渐进行的数据自身的恶化,因此数据读出的影响也不能忽视。但是,在专利文献1或者专利文献2记载的非易失性存储装置并没有充分考虑这种进行性的数据的恶化。
例如,作为一般的非易失性存储器的代表的NAND型闪速存储器以根据ECC电路的纠错为前提产品化。这是因为偶发性的比特错误在非易失性存储器中不可避免。从而,使用NAND型闪速存储器的存储卡的存储控制器在其内部具有生成ECC码的功能或者检测并纠正错误的功能。存储控制器使用ECC电路纠正偶发性的比特错误,再次利用发生了错误的物理块。由此提高存储卡的实质性的可靠性。
然而,虽然与偶发性的比特错误相比较频率低,但是由于存储单元的恶化等的原因在物理块中固有存在的不良,有时在读出时发生比特错误。在使用可靠性充分高,比特错误的发生频率低的NAND型闪速存储器的情况下,如现有的存储控制器那样,并不判断所发生的比特错误是偶发性还是固有不良,限制使用物理块,在闪速存储器的使用中也不会发生问题。但是,由于闪速存储器的工艺的微细化或者多值化,比特错误的发生频率比以往升高。根据这一点,需要以进行纠错为前提,容许存在比特错误,需要即使发生比特错误,纠正其错误,继续使用闪速存储器。然而,在比特错误的主要原因是存储单元的固有不良时,存在固有不良的物理块频繁发生存储卡的读出错误。
例如,有时由于存储卡的物理块中存在的固有不良引起数据错误,不能观看用数字照相机拍摄的静止图像。这种情况下,如果在数字照相机的系统上删除静止图像的数据,则对以后拍摄的静止图像再次利用同一个块,再次发生数据错误。这样频繁发生不能观看静止图像的情况。
另外,如果不是固有不良,而是对于相同的数据反复进行次数非常多的读出,则比特错误虽然是逐渐地但在不断增加,有时会使数据恶化下去。这种情况下,在使用可靠性充分高、比特错误的发生频率低的NAND型闪速存储器的情况下,也可以像现有的存储控制器那样,根据比特错误的发生,限制使用物理块。然而,在以进行纠错为前提的情况下,即必须允许比特错误存在的情况下,需要即使发生比特错误,也在纠正错误后继续使用闪速存储器。从而,导致由数据的恶化引起的比特错误的比特数超过纠错能力,发生不能纠正的读出错误的结果。鉴于这些情况,开发降低读出错误的存储卡成为一个课题。
发明内容
本发明在闪速存储器内准确地检测出推测为存在固有不良、或者累积由读出引起的比特不良并推测为超过纠错能力的物理块。进而,其目的在于通过限制或者避免对该物理块的写入或者读出,提供可靠性高的非易失性存储装置。
为了解决该课题,本发明的非易失性存储装置是一种具备非易失性存储器和存储控制器的非易失性存储装置,上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,上述存储控制器具备:进行上述存储控制器内部中的整体控制的运算处理单元;具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,上述存储控制器的地址表具备:具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,决定是否使用检测出了上述读出错误的物理块。
这里,也可以是,上述存储控制器的地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;记录表示发生了上述错误的信息的错误信息;记录表示在发生了上述错误以后、清除上述物理块的数据、写入了新的数据的信息的错误块清除信息;表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在至少记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
这里,也可以是,上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
这里,也可以是,上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
这里,也可以是,上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
这里,也可以是,上述存储控制器的地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:在上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;作为表示读出错误发生的次数的信息的错误计数信息;表示对发生上述读出错误的物理块进行了物理清除的次数的错误块清除计数信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息的上述错误记录时,对上述错误计数信息与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述错误计数信息的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
这里,也可以是,上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
这里,也可以是,上述错误表的错误记录具备:写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;记录表示上述读出错误的比特数的信息的错误比特计数,上述运算处理单元使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述错误表的错误记录具备:记录表示上述纠错电路检测出了读出错误的物理块的地址的信息的错误块信息;记录表示上述纠错电路检测出了读出错误的上述物理页的地址的信息的错误页信息;记录表示发生了具有小于等于能够由上述纠错电路纠正的错误比特数的值而且大于等于预先确定的纠正阈值的读出错误的信息的错误发生信息,上述运算处理单元读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述运算处理单元在没有进行读出上述非易失性存储器的数据的处理时,读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
为了解决该课题,本发明的存储控制器是一种对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入的存储控制器,具备:进行上述存储控制器内部中整体控制的运算处理单元;具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,上述地址表具备:具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,决定是否使用检测出了上述读出错误的物理块。
这里,也可以是,上述地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;记录表示发生了上述错误的信息的错误信息;记录表示在发生了上述错误以后、清除上述物理块的数据、写入了新的数据的信息的错误块清除信息;表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在至少记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
这里,也可以是,上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
这里,也可以是,上述运算处理单元中,只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
这里,也可以是,上述运算处理单元中,只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
这里,也可以是,上述地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:在上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;作为表示读出错误发生的次数的信息的错误计数信息;表示对发生上述读出错误的物理块进行了物理清除的次数的错误块清除计数信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息的上述错误记录时,对上述错误计数信息与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述错误计数信息的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
这里,也可以是,上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
这里,也可以是,上述错误表的错误记录具备:写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;记录表示上述读出错误的比特数的信息的错误比特计数,上述运算处理单元使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述错误表的错误记录具备:记录表示上述纠错电路检测出了读出错误的物理块的地址的信息的错误块信息;记录表示上述纠错电路检测出了读出错误的上述物理页的地址的信息的错误页信息;记录表示发生了具有小于等于能够由上述纠错电路纠正的错误比特数的值而且大于等于预先确定的纠正阈值的读出错误的信息的错误发生信息,上述运算处理单元读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
这里,也可以是,上述运算处理单元在没有进行读出上述非易失性存储器的数据的处理时,读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。
为了解决该课题,本发明的不良区域检测方法是一种非易失性存储装置的不良区域检测方法,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,在该不良区域检测方法中,在读出数据时根据从外部指定的逻辑地址决定物理地址,从与上述物理地址相对应的物理块读出数据,在该读出数据中有能够纠正的错误时,纠正上述错误并输出到外部,把上述物理地址登录在上述错误表中。
这里,也可以是,当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的信息登录到上述错误表中,在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误并输出到外部,同时,把表示在改写了上述数据以后发生了错误的错误再发生信息登录到上述错误表中,对于在上述错误表中登录了上述错误再发生信息的物理块,禁止数据的写入以及读出。
这里,也可以是,当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的次数的错误块清除计数登录到上述错误表中,在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误输出到外部,同时,把表示在改写了上述数据以后发生错误的次数的错误计数登录到上述错误表中,在上述错误计数表示出大于等于预定的值时,禁止数据向登录了上述错误计数的物理块的写入以及读出。
为了解决该课题,本发明的不良区域检测方法是一种非易失性存储装置的不良区域检测方法,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法具有:根据从外部指定的逻辑地址决定物理地址,确定读出数据的物理块的确定步骤;从上述物理块读出数据的数据读出步骤;在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部的数据输出步骤;把发生了上述能够纠正的错误的物理块的物理地址和与错误数有关的信息登录到上述错误表中的错误数登录步骤。
这里,具有复制步骤,当与登录在上述错误表中的错误数有关的信息表示出大于等于预定的值时,把写入到上述物理块中的数据复制到其它物理块中。
这里,也可以是,在上述数据读出步骤与上述数据输出步骤之间进行上述复制步骤。
这里,也可以是,在没有对上述非易失性存储装置执行来自外部的数据写入以及读出时,进行上述复制步骤。
这里,也可以是,在对上述非易失性存储装置接通电源之后紧接着进行上述复制步骤。
依据本发明,通过适当地推定设想为错误发生概率高的物理块,能够限制或避免数据对该物理块的写入或读出,能够提供可靠性高的非易失性存储装置。
附图说明
图1是表示了第1实施例的非易失性存储装置的结构的框图。
图2是表示了闪速存储器的内部结构的框图。
图3是表示了物理块201的内部结构的框图。
图4表示了BB表112的结构。
图5表示了ECC错误表111的结构。
图6表示了第1实施例的ECC错误记录和保存在ECC错误记录中的信息的变化。
图7是第1实施例的读出的流程图。
图8是第1实施例的ECC错误表登录的流程图。
图9是第1实施例的物理清除时的ECC错误表更新的流程图。
图10表示了第2实施例的ECC错误记录。
图11是表示了第2实施例的ECC错误表登录的流程图。
图12表示了第3实施例的ECC错误记录和保存在ECC错误记录中的信息的变化。
图13是第3实施例的ECC错误表登录的流程图。
图14是第3实施例的物理清除时的ECC错误表更新的流程图。
图15是第4实施例的读出的流程图。
图16表示进行性错误的发生状况。
图17是表示第5实施例的非易失性存储装置的结构的框图。
图18是表示了闪速存储器的内部结构的框图。
图19是表示了物理块201的内部结构的框图。
图20表示了ECC错误表111的结构。
图21表示了第5实施例的ECC错误记录。
图22是第5实施例的读出的流程图。
图23是第5实施例的ECC错误表登录的流程图。
图24是第5实施例的数据纠正复制处理的流程图。
图25是第6实施例的读出的流程图。
图26是第6实施例的数据纠正复制处理的流程图。
(附图标记说明)
101:存储卡
102:存储控制器
103:闪速存储器
104:主接口
105:MPU
106:地址表
107:闪速接口
108:缓冲存储器
109:ECC电路
110:逻辑物理变换表
111:ECC错误表
112:BB表
113:项目表
501:ECC错误记录
601:错误块
602:错误发生信息
603:错误块清除信息
604:错误再发生信息
701:存储卡
702:存储控制器
703:闪速存储器
704:主接口
705:MPU
706:地址表
707:闪速接口
708:缓冲存储器
709:ECC电路
710:逻辑物理变换表
711:ECC错误表
712:项目表
801:ECC错误记录
1001:错误页
1201:错误块
1202:错误计数
1203:错误块清除计数
1601:错误比特计数
具体实施方式
(实施例1)
图1是表示第1实施例的非易失性存储装置的结构的框图。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。
图2是表示闪速存储器103的内部结构的框图。这里,说明具有1G比特容量的闪速存储器。闪速存储器103的内部由PB0~PB1023共1024个物理块构成。物理块在闪速存储器103中是数据清除的最小单位。1个物理块容量是128kB+4kB,具有不是2的幂值而是比2的幂稍大的容量。这里,没有表现为132kB而是表现为128kB+4kB是为了表示在1个物理块中能够写入的数据的容量是128kB,在此基础上,进而在4kB的区域中写ECC码或者该物理块逻辑地址值等管理数据。
图3是表示物理块的内部结构的框图。闪速存储器103内的各物理块具备64个物理页PP0~PP63。物理页在闪速存储器103中是数据写入的最小单位。1个物理页的容量是2kB+64B。该表现与上述的物理块的情况相同,表示在1个物理页中能够写入的数据的容量是2kB,其余的64B中写入包括ECC的管理数据。
存储控制器102具有主接口104、地址表106、闪速接口107、缓冲存储器108、ECC电路109、MPU(小型运算单元)105。主接口104控制与连接在存储卡101外部的主设备的接口。
地址表106是具有保存在闪速存储器103中的数据的管理信息的表,具有逻辑物理变换表110,ECC错误表111、项目表113、BB(不良块)表112。这些表保持在易失性存储器中。
逻辑物理变换表110是表示作为从存储卡101的外部指定的逻辑地址的逻辑块的地址与作为闪速存储器103的内部物理地址的物理块的地址的对应关系的表。逻辑物理变换表110用于从逻辑地址得到与该逻辑块相对应的物理地址。
ECC错误表111具有发生了读出错误的物理块的物理地址、数据的物理清除的历史、或物理清除后的读出错误的发生历史等信息,在固有不良的物理块的检测中使用。
项目表113是具有分别用1比特表示对于闪速存储器103的各个物理块、数据是写入完毕还是清除完毕的信息的表。例如,数据写入完毕的物理块用比特“0”表示,清除完毕的物理块用比特“1”表示。
图4表示BB表112的结构。BB表112具备与闪速存储器103的物理块相同数量的BB记录i(i=0~1023)。BB记录i分别与物理块一对一对应,具有相对应的物理块的地址。进而,关于相对应的物理块是否是不良块,具有用1比特表示的信息。在BB记录i中,不良块的物理块表示为比特“0”,非不良的物理块表示为比特“1”。这里,BB表112也可以不对于所有的物理块具有BB记录i。也可以仅对于不良块具有BB记录i。
闪速接口107通过后述的MPU105的控制,在闪速存储器103中写入缓冲存储器108的数据,或者把闪速存储器103的数据写入到缓冲存储器108中,或者清除闪速存储器103的数据。缓冲存储器108是在外部的主设备与闪速存储器103之间的数据写入和读出时,用于暂时保持数据的易失性存储器。
ECC电路109生成添加到从缓冲存储器108向闪速存储器103传送的写入数据中的ECC的代码。另外,ECC电路109是对于从闪速存储器103读出到缓冲存储器108的数据,进行ECC运算,检测错误,在其错误是可纠正的错误的情况下,纠正缓冲存储器108的数据的纠错电路。
MPU105是进行存储控制器102整体控制的微机。在与主设备之间进行数据的写入和读出时直接控制主接口104、ECC电路109、闪速接口107、地址表106。特别是在读出数据中有错误的情况下,MPU105参照地址表106内的ECC错误表111的信息,根据需要,进行ECC错误表111的更新。其结果,如果有应该禁止使用的物理块,则MPU105在BB表112的BB记录i中记录该物理块的信息,更新BB表112。进而MPU105根据更新后的BB表的内容,还进行项目表的更新。
图5表示ECC错误表111的结构。ECC错误表111由用16进制数表示的#0~#F的16个ECC错误记录#i构成。图6表示ECC错误记录#i的信息组和保存在ECC错误记录#i中的信息的变化。各ECC错误记录#i具备错误块601、错误发生信息602、错误块清除信息603、错误再发生信息604。错误块601保存发生了读出错误的物理块201的物理地址。错误发生信息602是表示发生了最初的读出错误的信息。错误块清除信息603是表示在发生了最初的读出错误以后,对该物理块201进行了物理清除的信息。错误再发生信息604是表示在发生了最初的读出错误以后,尽管进行了物理清除,但再次在同一个物理块中发生了读出错误的信息。
图7是本实施例的非易失性存储装置中的数据读出的流程图。在外部主设备从存储卡101读出数据时,外部主设备向存储卡101传送读出指令和开始地址。接收到该指令和开始地址后,主接口104对MPU105通知其接收。图7的流程图表示接收了该通知以后的处理。
MPU105使用开始地址,把与128kB单位相对应的上位地址部分作为逻辑块地址,从逻辑物理变换表110得到物理块地址。设与128kB以下相对应的下位的地址部分作为逻辑页地址,按原样与逻辑页相同。接着,MPU105向闪速存储器接口107指示进行读出的物理块的地址和物理页的地址,从闪速存储器103读出数据(S701)。
接着,ECC电路109对在S701中读出的数据判定是否发生了读出错误(S702)。在没有检测出读出错误的情况下,MPU105对主接口104指示数据向外部主设备的输出(S705)。然后,只要继续进行读出(S706),则就以读出的单位增加地址,同时,循环至S701,继续进行数据的读出处理。
在S702中检测出了读出错误的情况下,ECC电路109判断其读出错误能否纠正(S703)。在能纠正的情况下,纠正读出错误(S704)。在读出错误的纠正后,转移到S705,输出读出数据。在不能纠正读出错误的情况下,进行ECC错误表的登录(S707),登录以后结束读出处理。
这里,使用图8的流程图说明ECC错误表的登录处理(S707)。如果不能纠正读出错误,则MPU105检索ECC错误表111的登录状态(S801)。具体地讲,检查发生了读出错误的物理块的物理地址是否与ECC错误记录#i的某一个错误块601的值一致。
其次,在S801的检索中没有一致的ECC错误记录#i时,判断为没有登录(S802)。接着,MPU105新登录错误块601和错误发生信息602(S803)。图6(b)表示新登录后的状态。在错误块601中,作为有效值写入发生了读出错误的物理块的地址。在错误发生信息602中写入表示发生了读出错误的信息“1”,在错误块清除信息603和错误再发生信息604中写入“0”。
在S802中有登录的情况下,MPU105判断是否是在物理清除以后发生的读出错误(S804)。如果在错误块601中有登录的ECC错误记录#i的错误块清除信息603是“0”,则由于不是物理清除以后发生的读出错误,因此不进行ECC错误记录#i的更新和ECC错误表111的登录,结束登录处理。即使发生读出错误、在错误发生信息602中登录了“1”以后计数读出错误的发生次数,只要读出相同块的相同数据,就不能判断所发生的错误是偶发性的还是因固有不良引起的。由此,不进行ECC错误记录#i的更新,结束登录处理。
在S804中,如果错误记录#i是图6(c)表示的状态,则错误块清除信息603是“1”,可知是在物理清除后发生的读出错误。这时,如图6(d)所示,在把错误再发生信息604改写为“1”以后结束登录处理(S805)。即,作为应该更新ECC错误记录#i的内容的读出错误,是指对于一旦发生了读出错误的物理块进行了物理清除以后,即使在新写入的数据中又发生的读出错误。
图9是在数据的写入之前进行的物理清除时的ECC错误表更新和不良块登录的流程图。外部主设备在存储卡101中写入数据时,外部主设备对存储卡101传送写入指令和写入开始地址。接收到该指令和开始地址后,MPU105检索ECC错误表111的登录状态(S901)。具体地讲,检查写入对象的物理块的地址是否与ECC错误记录的错误块601的值一致。
在S901的检索中,在没有与写入对象的物理块一致的ECC错误记录#i时,判断为没有登录(S902),不进行ECC错误表111的登录,结束登录处理。反之,在有一致的ECC错误记录#i时,判断为有登录(S902)。而且,当只有错误发生信息602是“1”,错误块清除信息603和错误再发生信息604是“0”时,仅在错误发生信息602中有记录。判断为是发生了读出错误以后的最初的物理清除(S903)。这种情况下,在错误块清除信息603中登录“1”,结束ECC错误表111的更新(S907)。
其次,当错误发生信息602和错误块清除信息603是“1”,错误再发生信息604是“0”时,成为直到错误块清除信息603为止有记录(S904)。由此可知虽然以前发生了错误但是在进行了物理清除以后的写入中没有发生错误。即,判断为最初发生的错误是偶发性的错误。这时,撤消该ECC错误记录#i的登录,结束ECC错误表111的更新(S906)。通过使图6(a)的ECC错误记录#i的错误块601的值成为无效值进行登录的撤消。
另外,如图6(d)那样,在不仅是错误发生信息602和错误块清除信息603,直至错误再发生信息604为止全部是“1”时,可知以前发生了读出错误,在对该物理块进行了物理清除以后写入的数据中也还发生了读出错误。这种情况下,判断为是起因于固有不良的错误,作为不良块登录发生了错误的物理块(S905)。接着,撤消该物理块的ECC错误记录#i的登录,结束ECC错误表111的更新(S906)。
如前面说明过的那样,S905的不良块登录是指在BB表112中,在与该物理块的地址相对应的BB记录i中登录比特“0”。虽然通过BB记录i的登录完成不良块的登录,但仅此并不能限制不良块的使用。因此,对于在BB记录i中作为比特0登录了的物理块,在项目表113上登录比特“0”。如果在项目表113中登录比特“0”,则由于不良块被处理为写入完毕块,因此能够限制使用不良块。总之,通过对作为不良块登录在BB记录i中的物理块、在项目表中登录比特“0”,能够防止使用不良块。
本实施例的特征是只有在发生的读出错误不能纠正时进行ECC错误表的登录和更新,以物理块地址单位把ECC错误表内的ECC错误记录进行分录,在同一个物理块中,在物理清除前后连续发生了两次错误时进行不良块登录。在本实施例中,ECC错误表具有用于判断所发生的错误是偶发性的还是由固有不良引起的信息。即,如果在最初的读出错误发生以后物理清除该物理块的数据,在新写入的数据中不发生读出错误,则能判断为最初的错误是偶发性的错误。如果在最初的读出错误发生以后,即使物理清除该物理块的数据,在新写入的数据中仍然发生读出错误,则能判断为是由固有不良引起的错误。这样,本实施例能准确地判定是偶发性的错误还是由固有不良引起的错误。另外,根据其判断,通过不使用固有不良的物理块,产生降低读出错误这样的效果。
(实施例2)
图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。
图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。
图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。
图10表示本实施例的ECC错误记录#i的结构。图10中,除去在第1实施例的图6中表示的错误块601、错误发生信息602、错误块清除信息603、错误再发生信息604以外,还具备错误页1001。该错误页1001由于作为信息具有检测出了读出错误的物理页的地址,因此ECC错误记录#i能够以物理页为单位构成。
本实施例的非易失性存储装置中的数据读出根据图7表示的流程图进行,除去S707以外的各步骤中的处理与第1实施例相同。这里使用图11,说明在S703中不能纠正错误时进行的S707的ECC错误表登录。首先,MPU105检索ECC错误表111的登录状态,搜索在错误块601中具有发生了读出错误的物理块的地址,而且,在错误页1001中具有发生了该错误的物理页的地址的ECC错误记录#i(S1101)。
在S1101的检索中没有相应的ECC错误记录#i的情况下,MPU105判断为没有ECC错误记录#i的登录(S1102),把错误发生的信息新登录到ECC错误记录#i中(S1103)。该登录通过在错误块601中写入存在发生了错误的页的物理块的地址,在错误发生信息602中写入表示发生读出错误的“1”,在错误页1001中写入发生了错误的页的物理页地址来完成。在本次登录中不需要的错误块清除信息603、错误再发生信息604中登录表示初始值的“0”。
在S1102中判断为有登录的情况下,MPU105判断是否是物理清除后的读出错误(S1104)。即,如果有登录的ECC错误记录#i的错误块清除信息603是“0”,则MPU105判断为尚未进行物理清除,不是物理清除后的读出错误,不进行ECC错误记录#i的更新而结束。该判断以只要读出相同物理页的相同数据,则无论读出错误发生多少次也不能判断是偶发性错误还是由固有不良引起的错误为依据。
图9是表示物理清除时的ECC错误表更新和不良块登录的流程图,由于与第1实施例相比S901的处理不同因此进行说明。如果根据作为物理清除单位的物理块地址进行S901的检索,则有时检测出若干个物理块地址相同、物理页地址不同的ECC错误记录#i。即,检索出多个错误块601的值相同、错误页1001的值不同的ECC错误记录#i(S901)。由于按照在S901中检测出的顺序,检测出的多个ECC错误记录#i成为下一个步骤中的处理对象,因此S902以后的处理与第1实施例相同。
另外,不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。
本实施例的特征是在ECC错误记录#i的结构中具备错误页1001,对每一个物理页的地址新登录ECC错误记录#i。这样,即使在同一个物理块内连续发生了错误的情况下也能区分是在不同物理页中发生的错误,还是在同一物理页中发生的错误,能够高精度地判断是偶发性的错误还是由固有不良引起的错误。
另外,在本实施例中,把进行读出的页单位作为写入的最小单位即物理页,而即使使用所构成的系统的读出单位或者添加ECC码的单位,也能够进行比物理块单位的错误管理精度更高的错误管理。也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。
(实施例3)
图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。
图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。
图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。
图12表示本实施例的ECC错误记录#i的结构。图12表示ECC错误记录#i的信息组和保存在ECC错误记录#i中的信息的变化。错误块1201保存发生了错误的物理块的物理地址。错误计数1202保存发生了读出错误的次数。如果在经过该物理块的物理清除而新写入的数据中又发生了读出错误,则把错误计数1202的错误次数加1。错误块清除计数1203表示对发生读出错误的物理块进行了物理清除的次数。
根据图7表示的流程图进行本实施例的非易失性存储装置中的数据的读出,除去S707以外的各步骤中的处理与第1实施例相同。这里,说明在S703中不能纠正错误时进行的S707的ECC错误表登录。
图13表示ECC错误表的登录处理。首先,MPU105检索ECC错误表111的登录状态(S1301)。具体地讲,是用于搜索在错误块601中具有发生了读出错误的物理块地址的ECC错误记录#i的检索。
在S1301的检索中,在没有物理地址一致的ECC错误记录#i的情况下,MPU105判断为没有登录(S1302),新登录ECC错误记录#i(S1303)。图12(b)表示新登录后的状态。在错误块1201中,作为有效值写入发生了读出错误的物理块的地址。在错误计数1202中,写入表示发生了1次读出错误的“1”。在错误块清除计数1203中,写入表示错误发生后的物理清除次数是0次的“0”。
在S1302中判断为有登录时,MPU105参照登录的ECC错误记录#i,判断是否是物理清除后发生的最初的错误(S1304)。具体地讲,把在S1301中检测出的ECC错误记录#i的错误计数1202与错误块清除计数1203进行比较。错误计数1202如果是比错误块清除计数1203大的值,则判断为ECC错误记录#i的紧接之前的更新是由发生读出错误引起的错误计数1202的增加。由于在发生了读出错误以后没有进行物理清除,因此不更新ECC错误记录#i,结束ECC错误表111的登录。一旦登录或者更新了错误计数1202以后,只要没有进行该物理块201的物理清除,则无论发生多少次读出错误也不能判断是偶发性的错误还是由固有不良引起的错误。由此,如果错误计数1202是比错误块清除计数1203大的值,则不会使错误计数1202进一步增加。
其次,如果错误计数1202与错误块清除计数1203的值相同,则判断为ECC错误记录#i的紧接之前的更新是由物理清除引起的错误块清除计数1203的增加。由于发生了错误以后进行了物理清除,因此MPU105判断为在物理清除后发生了读出错误,转移到S1305。而且在图12中,如从(c)向(d),从(e)向(f)变化那样,把错误计数1202的信息增加1进行改写后,结束表的更新。作为应该更新ECC错误记录#i的内容的读出错误是指对一旦发生了读出错误的物理块进行了物理清除以后,即使在新写入的数据中又发生的读出错误。
图14是在数据写入之前的物理清除时的ECC错误表更新的流程图。首先,MPU105检索ECC错误表111的登录状态(S1401)。具体地讲,是用于搜索在错误块1201中具有作为物理清除对象的闪速存储器103的物理块地址的ECC错误记录的检索。
在S1401的检索中,在没有物理地址一致的ECC错误记录#i的情况下,MPU105判定为没有登录(S1402),不更新ECC错误表111而结束。在S1401的检索中有相应的ECC错误记录#i的情况下,判定为有登录(S1402)。
接着,MPU105参照ECC错误记录#i,判定是否是发生了物理清除后的错误(S1403)。具体地讲,把错误计数1202与错误块清除计数1203进行比较,如果两者是相同的值,则ECC错误记录#i的紧接之前的更新是由物理清除引起的物理块清除计数1203的增加,判断为在清除以后没有发生错误。由此,判断为在物理清除前发生的读出错误是偶发性的错误。该判断以后,MPU105消除ECC错误记录#i的登录(S1404),结束ECC错误表111的更新。如图12(a)那样,通过使错误块1201的值成为无效值,能够消除登录。
另外,把ECC错误记录#i的错误计数1202与错误块清除计数1203进行比较,如果错误计数1202是比错误块清除计数1203大的值,则能判断为ECC错误记录#i的紧接之前的更新是由发生错误引起的错误计数1202的增加,在S1403中发生了清除后的错误。MPU105参照错误计数1202(S1405),判断是否在预先确定的规定次数以内。如果在规定次数以内,则由于不需要进行不良块登录,因此使ECC错误表111的错误块清除计数1203的值加1(S1406),结束ECC错误表111的更新。在S1405中错误超过了规定次数的情况下,视为是具有固有不良的物理块,进行不良块登录。所谓不良块登录是指登录在与该物理块的地址相对应的BB记录i中(S1407)。不良块的登录以后,消除该物理块的ECC错误记录#i的登录(S1404)。
不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。
在使用了如多值闪速存储器那样偶发性比特错误的发生频率高的闪速存储器的存储装置的情况下,有时在同一个物理块或者页中,在物理清除前后,连续发生偶发性的比特错误。这种情况下,会作为不良块登录没有固有不良的该物理块,限制使用该物理块并不适宜。因此本实施例能够把直到进行不良块登录为止的错误发生次数任意地设定为大于等于3次的次数。通过把直到进行不良块登录为止的错误发生次数的规定值取为大的值,能够准确地检测固有不良。
另外,也可以在本实施例的ECC错误记录#i中添加记录物理块页的错误页信息,以物理页单位登录错误表。另外,也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。
(实施例4)
图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。
图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。
图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。
图15是本实施例的非易失性存储装置中的数据读出的流程图。S1501中的处理是与第1实施例中的S701相同的处理。
在S1501以后,ECC电路109对读出的数据判定是否发生了读出错误(S1502)。在没有发生读出错误的情况下,MPU105对主接口104指示数据向外部主设备的输出(S1506)。然后只要继续进行读出(S1507),则以读出的单位增加地址,同时,循环到S1501,继续进行数据的读出处理。
判定是否发生了读出错误(S1502),在发生了读出错误的情况下,对ECC错误表111进行ECC错误记录#i的登录(S1503)。如果结束向ECC错误表111的登录,则ECC电路109判断能否对其读出错误进行纠正(S1504),在能纠正的情况下纠正读出错误(S1505)。在读出错误的纠正以后,输出读出数据,判定是否继续数据的读出(S1507)。另外,在不能纠正读出错误的情况下(S1504),立即结束读出。
在本实施例中,只要检测出读出错误,则就与能否纠正错误无关,进行ECC错误表111的登录。ECC错误表111的登录方法与第1实施例相同,如图8所示。
数据写入之前进行的物理清除时的ECC错误表更新和不良块登录与第1实施例相同,如图9所示。
不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。
在用如二值闪速存储器那样偶发性比特错误的发生频率低的闪速存储器103构成存储卡的情况下,不能纠正的错误在物理清除前后连续发生2次的频率非常低,几乎所有的错误都能纠正。即使是起因于固有不良的错误,由于大多能纠正,因此只有在不能纠正错误的情况下进行ECC错误表的登录时,不能准确地检测出存在固有不良的物理块。与此不同,在本实施例如果检测出比特错误,则与能否纠正错误无关,在ECC错误表中登录ECC错误记录#i,因此即使是偶发性比特错误的发生频率低的闪速存储器,也能适宜地限制使用存在固有不良的物理块。
另外,也可以在本实施例的ECC错误记录#i上添加记录物理块页的错误页信息,以物理页单位登录错误表。另外,也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。
(实施例5)
图16表示如果反复读出写入在某一个物理块中的数据,则与读出的次数相应,增加比特错误的状况。图中,网格图案表示发生的错误的比特数,随着读出次数增加,向表示ECC电路的纠错能力的可进行ECC纠正的比特数的虚线增加。以为了进行数据读出而施加到存储单元上的电压等为原因,写入到存储单元中的比特发生变化,发生这样的错误。在本实施例中,把这样的错误称为进行性错误。
在用图16的E/W表示的位置表示数据的清除和写入,表示在清除了物理块的数据以后,在该相同的物理块中写入新的数据。虽然紧接在E/W的后面暂时没有进行性错误,然而如果增加数据的读出次数,则由于进行性错误的比特数逐渐增加,因此在ECC电路的纠错能力方面没有余量。在保持这样的状态下反复进行数据的读出,则发生超过ECC电路的纠正能力的比特数的错误,并不优选。为此,将纠正阈值设定为小于等于ECC电路的能够纠正的比特数,如果在从某个物理块读出的数据中检测出大于等于纠正阈值的比特数的错误,则纠正检测出的错误,把纠正了的该数据写入到其它的物理块中。通过这样做,暂时消除进行性错误,确保数据的安全性,同时,使ECC电路的纠错能力恢复余量。另外,在本实施例中,ECC电路的能够纠错的比特数和纠正阈值都取为4比特。在本实施例中,以下说明用于应对上述事态的方法。
以下,说明本实施例。图17是表示本实施例的非易失性存储装置的结构的框图。存储卡701具备存储控制器702和作为非易失性存储器的闪速存储器703。
图18是表示闪速存储器703的内部结构的框图。这里,说明具有1G比特容量的闪速存储器。闪速存储器703的内部由PB0~PB1023共1024个物理块构成。物理块在闪速存储器703中是数据清除的最小单位。一个物理块容量用128kB+4kB表示。这表示一个物理块的数据容量是128kB,进而在4kB的区域中写入ECC码或者该物理块的逻辑地址值等的管理数据。
图19是表示物理块的内部结构的框图。闪速存储器703内的各个物理块具备64个物理页PP0~PP63。物理页在闪速存储器703中是数据写入的最小单位。1个物理页的容量是2kB+64B。这表示能够写入到1个物理页中的数据的容量是2kB,在其余的64B中写入包括ECC的管理数据。
存储控制器702具有主接口704、地址表706、闪速接口707、缓冲存储器708、ECC电路709、MPU(小型运算单元)705。主接口704控制与连接在存储卡701的外部的主设备的接口。
地址表706是具有保存在闪速存储器703中的数据的管理信息的表,具有逻辑物理变换表710、ECC错误表711、项目表712。这些表保持在易失性存储器中。
逻辑物理变换表710是表示作为从存储卡701的外部指定的逻辑地址的逻辑块地址与作为闪速存储器703内部的物理地址的物理块地址的对应关系的表。逻辑物理变换表710用于从逻辑地址得到与该逻辑块相对应的物理地址。
ECC错误表711具有发生了读出错误的物理块的物理地址、数据的物理清除的历史、或物理清除后的读出错误的发生历史等信息,在固有不良的物理块的检测中使用。
项目表712是具有分别用1比特表示对闪速存储器703的各个物理块、数据是写入完毕还是清除完毕的信息的表。例如,数据写入完毕的物理块用比特“0”表示,清除完毕的物理块用比特“1”表示。
闪速接口707通过后述的MPU705的控制,在闪速存储器703中写入缓冲存储器708的数据,或者把闪速存储器703的数据写入到缓冲存储器708中,或者清除闪速存储器703的数据。缓冲存储器708是在外部的主设备与闪速存储器703之间的数据写入和读出时用于暂时保持数据的易失性存储器。
ECC电路709生成添加到从缓冲存储器708传送到闪速存储器703的写入数据上的ECC的代码。另外,ECC电路709是对于从闪速存储器703读出到缓冲存储器708的数据,进行ECC运算并检测错误,在其错误是可纠正的错误的情况下,纠正缓冲存储器708的数据的纠错电路。
MPU705是进行存储控制器702的整体控制的微机。在与主设备之间进行数据的写入和读出时,直接控制主接口704、ECC电路709、闪速接口707、地址表706。特别是在读出数据中有错误时,MPU705参照地址表706内的ECC错误表711的信息,根据需要进行ECC错误表711的更新。进而MPU705根据更新后的BB表的内容还进行项目表的更新。
图20表示ECC错误表711的结构。ECC错误表711由用16进制数表示的#0~#F的16个ECC错误记录#i构成。
图21表示本实施例的ECC错误记录#i的结构。本实施例的ECC错误记录#i除去保存发生了错误的物理块的地址的错误块601、保存发生了错误的物理页的地址的错误页1001以外,还具备保存发生的错误的比特数的错误比特计数1601。该错误比特计数1601作为信息具有发生的读出错误的比特数,用ECC错误记录#i表示所发生的比特错误的程度。
图22是本实施例的非易失性存储装置中的数据读出的流程图。MPU705向闪速存储器接口707指示进行读出的物理块的地址和物理页的地址,从闪速存储器703读出数据(S1701)。在S1707以后,ECC电路709对读出的数据判定是否发生了读出错误(S1702)。在没有发生读出错误的情况下,MPU705对主接口704指示数据向外部主设备的输出(S1707)。然后只要继续进行读出(S1708),则就以读出的单位增加地址,同时,循环到S1701,继续进行数据读出的处理。
在S1702的判定中发生了读出错误的情况下,进行向ECC错误表711的登录(S1703)。如果向ECC错误表711的登录结束,则ECC电路709对于该读出错误判断是否小于等于可纠正的4比特(S1704)。在不能纠正读出错误的情况下(S1704),立即结束数据的读出。
在能纠正的情况下,纠正读出错误(S1705)。在读出错误纠正以后,进行数据纠正复制处理(S1706),输出读出数据(S1707)。然后,判定是否继续进行读出(S1708)。
在本实施例中,如果检测出了读出错误,则与能否纠正无关,进行ECC错误表的登录。这里,使用图23的流程图说明ECC错误表的登录(S1703)的处理。
在检测出了读出错误的情况下,MPU705检索ECC错误表711的登录状态(S1801)。具体地讲,检查发生了读出错误的物理块以及物理页的物理地址是否与ECC错误表711的某一个ECC错误记录#i的错误块601以及错误页1001的值一致。
其次,在S1801的检索中没有相应的ECC错误记录#i时,判断为没有登录(S1802)。接着,把错误块601、错误页1002和错误比特计数1603的各个值新登录到空的ECC错误记录#i中(S1803)。这时,如果发生了超过ECC电路709的纠正能力的大于等于5比特的错误,则由于不能决定登录在ECC错误记录#i中的错误比特计数,因此在这种情况下,登录可知不能纠正的值。例如,如果ECC电路709的最大纠正能力是4比特,则可以登录作为超过4比特的值的5。
在S1802中检测出了ECC错误记录#i的登录的情况下,MPU705判断本次发生的错误的比特计数是否比ECC错误记录#i的错误比特计数多(S1804)。把有登录的ECC错误记录#i的错误比特计数1601与本次读出中的错误比特计数进行比较,如果比特计数没有增加,则不进行ECC错误记录的更新而结束。在增加的情况下,把错误比特计数1601改写为增加后的值,结束ECC错误表的登录(S1805)。
其次,使用图24的流程图说明数据纠正复制处理(S1706)。在可纠正的错误的纠正(S1705)以后,MPU705进行今后是否可以继续读出本次读出的物理页的数据的判定。即,是为了判定在今后也继续进行数据的读出时,发生不可纠正的比特错误的可能性是否高,并进行适当的处理。
首先,从ECC错误记录#i取得错误比特计数1601的值(S1901)。接着,判定所取得的错误比特计数是否大于等于纠正阈值4比特(S1902)。如果错误比特计数小于纠正阈值4比特,则判断为今后即使错误比特增加,也不会立即达到不可纠正的读出错误,结束数据纠正复制处理。
在错误比特计数是4比特时,由于是与纠正阈值相等的值,因此进行纠正后数据的写入(S1903)。具体地讲,MPU705例如把缓冲存储器708中存在的纠正后的数据写入到闪速存储器703的任意的物理块中。这时,写入数据的物理块是读出了该数据的物理块以外的物理块。最后,消除关于发生了错误的物理块的ECC错误记录#i的登录(S1904)。
如以上那样,将发生大于等于纠正阈值的错误比特计数的物理页的数据判断为存在今后发展到不可纠正的读出错误的可能性,在可纠正的期间进行纠正,把纠正完毕的数据写入到其它物理块的物理页中。
本实施例在所发生的比特错误的数是5比特或者6比特等,超过ECC电路的纠正能力,不能纠正错误时不进行数据纠正复制处理(S1706)。当能纠正错误时,当该错误的比特数在ECC电路709可纠正的范围内而且是大于等于纠正阈值的4比特时,把纠错后的数据写入到闪速存储器103的其它物理块中。
另外,这里在ECC错误表711的ECC错误记录#i中设置错误比特计数1601,但并不限于此,只要是表示错误的程度即可。例如,即使不是具体的比特数,使用作为表示是否大于等于纠正阈值的错误发生信息的标志,也可以实现本发明的效果,这一点能够很容易想到。进而,也可以仅在发生大于等于纠正阈值而且可纠错的错误时进行ECC错误表的登录。
另外,在本实施例中,由于以能进行比特纠正的ECC电路为前提,因此使用了错误比特计数1601。然而,在不是比特纠正而是以里德所罗门(Reed-Solomon)码等能进行符号纠正的纠错电路为前提的情况下,需要作为错误符号计数应用发生了错误的符号数的信息来代替错误比特计数。
(实施例6)
图17表示本实施例中的非易失性存储装置的结构。存储卡701具备存储控制器702和作为非易失性存储器的闪速存储器703。包含在存储控制器702中的各结构要素与在第5实施例中说明过的相同。
图18是表示闪速存储器103的内部结构的框图,闪速存储器703的内部由PB0~PB1023共1024个物理块构成。图19是表示物理块的内部结构的框图,闪速存储器703内的各物理块具备64个物理页PP0~PP63。这些与在第5实施例中说明过的相同。如图20所示,ECC错误表711具备多个ECC错误记录#i。另外,本实施例的ECC错误记录#i的结构如图21所示。ECC错误记录#i除去保存发生了错误的物理块的地址的错误块601、保存发生了错误的物理页的地址的错误页1001以外,还具备保存所发生的错误的比特数的错误比特计数1601。这些与第5实施例相同。
图25是本实施例的非易失性存储装置中的数据读出的流程图。首先,向闪速存储器接口707指示进行读出的物理块的地址和物理页的地址,从闪速存储器703读出数据(S2001)。S2001以后,ECC电路709对读出的数据判定是否发生了读出错误(S2002)。在没有发生读出错误时,MPU705对主接口704指示数据向外部主设备的输出(S2006)。然后只要继续进行读出(S2007),则就以读出的单位增加地址,同时,循环到S2001,继续进行数据读出的处理。
在判定为有读出错误时(S2002)时,判定该错误能否纠正(S2003)。在判定为不能纠正时,立即结束读出处理。
在判断为能纠正时,进行ECC错误表的登录(S2004)。这里的ECC错误表与在第5实施例的图23中说明过的处理相同地进行登录。在ECC错误表的登录后,在缓冲存储器708内纠正错误(S2005),MPU705对主接口704指示数据向外部主设备的输出(S2006)。然后只要继续进行读出(S2007),就以读出的单位增加地址,同时,循环到S2001,进行读出处理。
在本实施例中,没有把在第5实施例中进行的数据纠正复制处理包含在数据读出的流程图中。这是因为在本实施例中,在数据的读出处理过程中没有进行数据向闪速存储器703的写入。一般与读出时间相比,闪速存储器的写入时间长,因此如果在数据的读出过程中进行这样花费时间的写入处理则导致处理性能的降低。从而,在数据的读出过程中没有进行向闪速存储器703的写入。
从而,在本实施例中,在没有进行其它处理的空闲的时间中进行数据纠正复制处理。所谓空闲的时间是指没有进行来自存储卡701外部的数据的写入和读出处理的期间、或者在存储卡701中投入了电源以后直到进行来自存储卡701外部的数据的写入和读出处理为止的期间。
使用图26的流程图说明在空闲时间中进行的数据纠正复制处理。MPU705在空闲时间中检索ECC错误表711的错误计数,选择错误比特计数1601成为大于等于纠正阈值的4比特的ECC错误记录#i(S2101)。这时如果没有相应的错误记录(S2102),则结束数据纠正复制处理。
在有相应的错误记录#i时,从错误记录#i的错误块601和错误页1001取得物理块和物理页的地址(S2103)。而且,把属于所取得的地址的数据读出到缓冲存储器708(S2104)。接着由ECC电路109纠正错误(S2105),把纠正后的数据写入到闪速存储器703的任意的物理块中(S2106)。这时写入数据的物理块是登录在该错误记录#i中的物理块以外的物理块。最后消除相应的错误记录#i的登录,结束处理(S2107)。
如以上那样,发生了大于等于纠正阈值的错误比特计数的物理页的数据由于被判断为今后有发展到不可纠正的读出错误的可能性,因此如上所述利用空闲时间进行错误的纠正,把纠正完毕的数据写入其它物理块的物理页中。这样,如果对1次写入的数据反复进行读出,虽然不良比特增加,然而通过纠正该数据、改写到其它的物理块中,能够避免不可纠正的读出错误。
在本实施例中,当所发生的比特错误是不可纠正时,由于不进行ECC错误表的登录,因此也不进行数据纠正复制处理。也可以只有当在读出了某个物理页的数据时发生错误,该错误的错误比特数在能够由ECC电路709纠错的范围内而且超过了纠正阈值时,在闪速存储器703的其它物理块中写入纠错后的数据,在读出中使用,使得今后可以不进行来自该物理页的数据的读出。
另外,这里在ECC错误表711的ECC错误记录#i中设置错误比特计数1601,但不限于此,只要是表示错误的程度即可。例如,即使不是具体的比特数,使用作为表示是否超过了纠正阈值的错误发生信息的标志,也能够实现本发明的效果,这一点能够很容易想到。进而,也可以只有在发生了大于等于纠正阈值而且可纠错的错误时进行ECC错误表的登录。
另外,在本实施例中由于以能够进行比特纠正的ECC电路为前提,因此使用了错误比特计数1601。而在以不是比特纠正而是能够进行里德所罗门码等符号纠正的纠错电路为前提的情况下,需要作为错误符号计数应用发生了错误的符号数的信息来代替错误比特计数。
产业上的可利用性
本发明的非易失性存储装置由于通过检测非易失性存储器的固有不良、限制在以后使用该块,能够谋求降低读出错误,因此能够在使用了需要基于ECC的纠错的非易失性存储器的存储卡系统,例如,数字照相机的静止图像保存用的存储装置等中使用。
Claims (26)
1.一种非易失性存储装置,具备非易失性存储器和存储控制器,该非易失性存储装置的特征在于,
上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,
上述存储控制器具备:
进行上述存储控制器内部中的整体控制的运算处理单元;
具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;
保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,
上述存储控制器的地址表具备:
具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;
记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表;
具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;
表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,
上述错误表的错误记录具备:
当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;
记录表示发生了上述错误的信息的错误信息;
记录表示在发生了上述错误以后、清除了上述物理块的信息的错误块清除信息;
表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,
上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息,决定是否使用检测出了上述读出错误的物理块。
2.根据权利要求1所述的非易失性存储装置,其特征在于,
上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
3.根据权利要求1所述的非易失性存储装置,其特征在于,
上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
4.根据权利要求2所述的非易失性存储装置,其特征在于,
上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
5.根据权利要求1所述的非易失性存储装置,其特征在于,
记录在上述错误信息中的、表示发生了错误的信息是发生了错误的次数,
记录在上述错误块清除信息中的、表示清除了上述物理块的信息是对上述物理块进行了物理清除的次数,
上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录,并且对上述发生了错误的次数与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述发生了错误的次数的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
6.根据权利要求5所述的非易失性存储装置,其特征在于,
上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
7.根据权利要求5所述的非易失性存储装置,其特征在于,
上述运算处理单元中,
如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
8.根据权利要求6所述的非易失性存储装置,其特征在于,
上述运算处理单元中,
如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
9.一种非易失性存储装置,具备非易失性存储器和存储控制器,该非易失性存储装置的特征在于,
上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,
上述存储控制器具备:
进行上述存储控制器内部中的整体控制的运算处理单元;
具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;
保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,
上述存储控制器的地址表具备:
具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;
具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;
表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,
上述错误表的错误记录具备:
写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;
写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;
记录表示上述读出错误的比特数的信息的错误比特计数,
上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。
10.根据权利要求9所述的非易失性存储装置,其特征在于,
上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。
11.一种存储控制器,对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入,该存储控制器的特征在于,具备:
进行上述存储控制器内部中整体控制的运算处理单元;
具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;
保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,
上述地址表具备:
具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;
记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表;
具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;
表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,
上述错误表的错误记录具备:
当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;
记录表示发生了上述错误的信息的错误信息;
记录表示在发生了上述错误以后、清除了上述物理块的信息的错误块清除信息;
表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,
上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息,决定是否使用检测出了上述读出错误的物理块。
12.根据权利要求11所述的存储控制器,其特征在于,
上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
13.根据权利要求11所述的存储控制器,其特征在于,
上述运算处理单元中,
只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
14.根据权利要求12所述的存储控制器,其特征在于,
上述运算处理单元中,
只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。
15.根据权利要求11所述的存储控制器,其特征在于,
记录在上述错误信息中的、表示发生了错误的信息是发生了错误的次数,
记录在上述错误块清除信息中的、表示清除了上述物理块的信息是对上述物理块进行了物理清除的次数,
上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录,并且对上述发生了错误的次数与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述发生了错误的次数的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。
16.根据权利要求15所述的存储控制器,其特征在于,
上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。
17.根据权利要求15所述的存储控制器,其特征在于,
上述运算处理单元中,
如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
18.根据权利要求16所述的存储控制器,其特征在于,
上述运算处理单元中,
如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。
19.一种存储控制器,对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入,该存储控制器的特征在于,具备:
进行上述存储控制器内部中整体控制的运算处理单元;
具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;
保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,
上述存储控制器的地址表具备:
具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;
具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;
表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,
上述错误表的错误记录具备:
写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;
写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;
记录表示上述读出错误的比特数的信息的错误比特计数,
上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。
20.根据权利要求19所述的存储控制器,其特征在于,
上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。
21.一种不良区域检测方法,在非易失性存储装置中使用,该非易失性存储装置具备:具有多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法的特征在于,
在读出数据时根据从外部指定的逻辑地址决定物理地址,
从与上述物理地址相对应的物理块读出数据,
在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部,
把上述物理地址登录在上述错误表中,并且
当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的信息登录到上述错误表中,
在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误并输出到外部,并且把表示在改写了上述数据以后发生了错误的错误再发生信息登录到上述错误表中,
对于在上述错误表中登录了上述错误再发生信息的物理块,禁止数据的写入以及读出。
22.根据权利要求21所述的不良区域检测方法,其特征在于,
登录在上述错误表中的表示改写的信息是改写的次数,
登录在上述错误表中的错误再发生信息是在改写了数据以后错误发生的次数,
在上述错误再发生信息的值表示出大于等于预定的值时,禁止数据向登录了上述错误表的物理块的写入以及读出。
23.一种不良区域检测方法,在非易失性存储装置中使用,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法的特征在于,具有:
根据从外部指定的逻辑地址决定物理地址,确定读出数据的物理块的确定步骤;
从上述物理块读出数据的数据读出步骤;
在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部的数据输出步骤;
把发生了上述能够纠正的错误的物理块的物理地址和与错误数有关的信息登录到上述错误表中的错误比特数登录步骤:
复制步骤,当与登录在上述错误表中的错误比特数有关的信息表示出大于等于预定的值时,把写入到上述物理块中的数据复制到其它物理块中。
24.根据权利要求23所述的不良区域检测方法,其特征在于,
在上述数据读出步骤与上述数据输出步骤之间进行上述复制步骤。
25.根据权利要求23所述的不良区域检测方法,其特征在于,
在没有对上述非易失性存储装置执行来自外部的数据写入以及读出时,进行上述复制步骤。
26.根据权利要求25所述的不良区域检测方法,其特征在于,
在对上述非易失性存储装置接通电源之后紧接着进行上述复制步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005207198 | 2005-07-15 | ||
JP207198/2005 | 2005-07-15 | ||
PCT/JP2006/313978 WO2007010829A1 (ja) | 2005-07-15 | 2006-07-13 | 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101243417A CN101243417A (zh) | 2008-08-13 |
CN101243417B true CN101243417B (zh) | 2011-05-04 |
Family
ID=37668709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680029679.0A Active CN101243417B (zh) | 2005-07-15 | 2006-07-13 | 非易失性存储装置、存储控制器以及不良区域检测方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9092361B2 (zh) |
JP (1) | JP4950886B2 (zh) |
CN (1) | CN101243417B (zh) |
WO (1) | WO2007010829A1 (zh) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8020072B2 (en) * | 2006-10-25 | 2011-09-13 | International Business Machines Corporation | Method and apparatus for correcting data errors |
WO2008057557A2 (en) * | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
JP5057796B2 (ja) * | 2007-02-14 | 2012-10-24 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその不良部位対処方法 |
JP5087970B2 (ja) * | 2007-03-30 | 2012-12-05 | 横河電機株式会社 | 情報処理装置および情報処理方法 |
JP5105351B2 (ja) * | 2007-04-10 | 2012-12-26 | 株式会社メガチップス | 不揮発性半導体記憶装置 |
JP2008287404A (ja) * | 2007-05-16 | 2008-11-27 | Hitachi Ltd | 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法 |
JP5265883B2 (ja) * | 2007-05-24 | 2013-08-14 | 株式会社メガチップス | メモリアクセスシステム |
US7765426B2 (en) * | 2007-06-07 | 2010-07-27 | Micron Technology, Inc. | Emerging bad block detection |
US7770079B2 (en) * | 2007-08-22 | 2010-08-03 | Micron Technology Inc. | Error scanning in flash memory |
US8533562B2 (en) * | 2007-09-12 | 2013-09-10 | Sandisk Technologies Inc. | Data protection after possible write abort or erase abort |
JP2009087509A (ja) | 2007-10-03 | 2009-04-23 | Toshiba Corp | 半導体記憶装置 |
JP2009129070A (ja) | 2007-11-21 | 2009-06-11 | Hitachi Ltd | フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム |
WO2009078145A1 (ja) | 2007-12-14 | 2009-06-25 | Kabushiki Kaisha Toshiba | 制御装置 |
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
JP4617405B2 (ja) * | 2008-02-05 | 2011-01-26 | 富士通株式会社 | 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム |
TWI381390B (zh) * | 2008-04-10 | 2013-01-01 | Phison Electronics Corp | 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器 |
US8122308B2 (en) * | 2008-06-25 | 2012-02-21 | Intel Corporation | Securely clearing an error indicator |
TWI381391B (zh) * | 2008-08-05 | 2013-01-01 | Transcend Information Inc | 可自我檢測使用狀態的儲存裝置及其檢測方法 |
CN101859604B (zh) * | 2009-04-10 | 2012-10-24 | 国民技术股份有限公司 | 闪存坏块的利用方法 |
CN102460383A (zh) * | 2009-06-30 | 2012-05-16 | 松下电器产业株式会社 | 数据处理方法、半导体集成电路 |
US8140763B2 (en) | 2009-07-16 | 2012-03-20 | International Business Machines Corporation | Techniques for managing data in a write cache of a storage controller |
CN101615145B (zh) * | 2009-07-24 | 2011-12-07 | 中兴通讯股份有限公司 | 一种提高存储器数据缓存可靠性的方法和装置 |
US8453021B2 (en) | 2009-07-29 | 2013-05-28 | Stec, Inc. | Wear leveling in solid-state device |
US8266481B2 (en) * | 2009-07-29 | 2012-09-11 | Stec, Inc. | System and method of wear-leveling in flash storage |
CN102004701B (zh) | 2009-08-28 | 2013-01-09 | 炬才微电子(深圳)有限公司 | 一种次级内存的分配方法和装置 |
US8312349B2 (en) | 2009-10-27 | 2012-11-13 | Micron Technology, Inc. | Error detection/correction based memory management |
JP2011107851A (ja) * | 2009-11-13 | 2011-06-02 | Toshiba Corp | メモリシステム |
KR101648531B1 (ko) * | 2010-02-12 | 2016-08-17 | 삼성전자주식회사 | 불휘발성 메모리 시스템과 이의 동작 방법 |
CN102208212B (zh) * | 2010-03-30 | 2014-10-22 | 群联电子股份有限公司 | 错误校正方法、存储器控制器与存储器储存系统 |
US9268632B2 (en) | 2010-09-24 | 2016-02-23 | Rambus Inc. | Memory device with ECC history table |
TWI447731B (zh) * | 2010-12-01 | 2014-08-01 | Phison Electronics Corp | 資料讀取方法、記憶體儲存裝置及其控制器 |
JP5451682B2 (ja) | 2011-05-20 | 2014-03-26 | 株式会社東海理化電機製作所 | フラッシュメモリ装置 |
TWI479495B (zh) * | 2011-06-02 | 2015-04-01 | Phison Electronics Corp | 資料讀取方法、記憶體控制器及記憶體儲存裝置 |
DE112012003493T5 (de) * | 2011-08-24 | 2014-05-08 | Mitsubishi Electric Corporation | Fehlerkorrigierender Dekodierer |
JP2013054409A (ja) * | 2011-08-31 | 2013-03-21 | Toshiba Corp | 情報記憶装置および情報記憶方法 |
KR20130049332A (ko) * | 2011-11-04 | 2013-05-14 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US8996936B2 (en) * | 2011-12-08 | 2015-03-31 | Sandisk Technologies Inc. | Enhanced error correction in memory devices |
EP2608211A1 (en) * | 2011-12-22 | 2013-06-26 | Fluiditech IP Limited | Method of testing a flash memory |
JP2013171343A (ja) | 2012-02-17 | 2013-09-02 | Toshiba Corp | ストレージデバイス |
US9418700B2 (en) | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
JP5835160B2 (ja) * | 2012-08-29 | 2015-12-24 | 株式会社デンソー | 電子制御装置 |
EP2965318B1 (en) * | 2013-03-07 | 2018-05-02 | Charles I. Peddle | High speed flash controllers |
KR101467309B1 (ko) * | 2013-03-11 | 2014-12-02 | 전자부품연구원 | 에러 검출 테이블 생성에 의한 스토리지 관리 방법 및 이를 적용한 시스템 |
US9244852B2 (en) * | 2013-05-06 | 2016-01-26 | Globalfoundries Inc. | Recovering from uncorrected memory errors |
US9299457B2 (en) | 2014-02-23 | 2016-03-29 | Qualcomm Incorporated | Kernel masking of DRAM defects |
TWI527037B (zh) * | 2014-04-10 | 2016-03-21 | 群聯電子股份有限公司 | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 |
CN105022695A (zh) * | 2014-04-21 | 2015-11-04 | 群联电子股份有限公司 | 数据存储方法、存储器控制电路单元与存储器存储装置 |
US9478315B2 (en) * | 2014-06-03 | 2016-10-25 | Sandisk Technologies Llc | Bit error rate mapping in a memory system |
US9477548B2 (en) * | 2014-08-01 | 2016-10-25 | Freescale Semiconductor, Inc. | Error repair location cache |
JP6332134B2 (ja) * | 2014-09-16 | 2018-05-30 | 株式会社デンソー | メモリ診断回路 |
TWI537966B (zh) * | 2014-10-03 | 2016-06-11 | 群聯電子股份有限公司 | 錯誤處理方法、記憶體儲存裝置及記憶體控制電路單元 |
CN105575440B (zh) * | 2014-10-15 | 2018-11-23 | 群联电子股份有限公司 | 错误处理方法、存储器储存装置及存储器控制电路单元 |
US9703629B2 (en) * | 2014-10-29 | 2017-07-11 | Sandisk Technologies Llc | Approach to correct ECC errors using duplicate copies of data |
US9934872B2 (en) * | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9043638B1 (en) * | 2014-11-14 | 2015-05-26 | Quanta Computer Inc. | Method for enhancing memory fault tolerance |
KR20160146332A (ko) * | 2015-06-12 | 2016-12-21 | 에스케이하이닉스 주식회사 | 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법 |
US10665305B2 (en) * | 2015-09-09 | 2020-05-26 | Toshiba Memory Corporation | Host device connectable to memory device performing patrol read and memory device performing patrol read |
US10304560B2 (en) | 2016-09-02 | 2019-05-28 | International Business Machines Corporation | Performing error correction in computer memory |
US10353669B2 (en) | 2016-09-02 | 2019-07-16 | International Business Machines Corporation | Managing entries in a mark table of computer memory errors |
US10297335B2 (en) | 2016-09-02 | 2019-05-21 | International Business Machines Corporation | Tracking address ranges for computer memory errors |
US10338999B2 (en) * | 2016-09-02 | 2019-07-02 | International Business Machines Corporation | Confirming memory marks indicating an error in computer memory |
CN106445716A (zh) * | 2016-09-19 | 2017-02-22 | 北京新能源汽车股份有限公司 | 一种故障功能测试方法及装置 |
KR20180090422A (ko) * | 2017-02-02 | 2018-08-13 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN107402725B (zh) * | 2017-03-20 | 2020-08-25 | 威盛电子股份有限公司 | 非易失性存储装置及其数据去重复方法 |
JP6797727B2 (ja) | 2017-03-21 | 2020-12-09 | キオクシア株式会社 | 半導体記憶装置 |
CN108958961B (zh) * | 2017-05-22 | 2021-11-30 | 上海宝存信息科技有限公司 | 数据储存装置以及数据错误管理方法 |
US10452480B2 (en) | 2017-05-25 | 2019-10-22 | Micron Technology, Inc. | Memory device with dynamic processing level calibration |
US10402272B2 (en) | 2017-05-25 | 2019-09-03 | Micron Technology, Inc. | Memory device with dynamic programming calibration |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
CN110265083B (zh) * | 2018-03-12 | 2021-07-27 | 旺宏电子股份有限公司 | 存储器装置的数据探测方法 |
TWI650763B (zh) * | 2018-05-14 | 2019-02-11 | 慧榮科技股份有限公司 | 用來進行記憶裝置的頁可用性管理之方法、記憶裝置及電子裝置以及頁可用性管理系統 |
US10566063B2 (en) | 2018-05-16 | 2020-02-18 | Micron Technology, Inc. | Memory system with dynamic calibration using a trim management mechanism |
US10664194B2 (en) | 2018-05-16 | 2020-05-26 | Micron Technology, Inc. | Memory system with dynamic calibration using a variable adjustment mechanism |
US10990466B2 (en) | 2018-06-20 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
US11188416B2 (en) | 2018-07-12 | 2021-11-30 | Micron Technology, Inc. | Enhanced block management for a memory sub-system |
US11113129B2 (en) | 2018-07-13 | 2021-09-07 | Micron Technology, Inc. | Real time block failure analysis for a memory sub-system |
KR102554418B1 (ko) * | 2018-10-01 | 2023-07-11 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
US10936246B2 (en) | 2018-10-10 | 2021-03-02 | Micron Technology, Inc. | Dynamic background scan optimization in a memory sub-system |
CN111324283B (zh) * | 2018-12-14 | 2024-02-20 | 兆易创新科技集团股份有限公司 | 一种存储器 |
CN112395127A (zh) * | 2019-08-15 | 2021-02-23 | 上海忆芯实业有限公司 | 存储设备的可靠性测试方法及其存储设备 |
US11507443B2 (en) | 2020-04-10 | 2022-11-22 | Micron Technology, Inc. | Memory fault map for an accelerated neural network |
CN114035745A (zh) * | 2021-10-19 | 2022-02-11 | 许昌许继软件技术有限公司 | 一种flash数据存储控制方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3565687B2 (ja) * | 1997-08-06 | 2004-09-15 | 沖電気工業株式会社 | 半導体記憶装置およびその制御方法 |
JP3937214B2 (ja) | 1999-09-17 | 2007-06-27 | 株式会社ルネサステクノロジ | エラー訂正回数を記録する記憶装置 |
JP4601119B2 (ja) * | 2000-05-02 | 2010-12-22 | 株式会社アドバンテスト | メモリ試験方法・メモリ試験装置 |
JP3692313B2 (ja) * | 2001-06-28 | 2005-09-07 | 松下電器産業株式会社 | 不揮発性メモリの制御方法 |
JP4059472B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
JP4004811B2 (ja) * | 2002-02-06 | 2007-11-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP3906825B2 (ja) * | 2003-06-17 | 2007-04-18 | 日本電気株式会社 | 計算機システム、計算機システム起動方法およびプログラム |
-
2006
- 2006-07-13 JP JP2007525978A patent/JP4950886B2/ja not_active Expired - Fee Related
- 2006-07-13 US US11/995,600 patent/US9092361B2/en not_active Expired - Fee Related
- 2006-07-13 WO PCT/JP2006/313978 patent/WO2007010829A1/ja active Application Filing
- 2006-07-13 CN CN200680029679.0A patent/CN101243417B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2007010829A1 (ja) | 2009-01-29 |
CN101243417A (zh) | 2008-08-13 |
US9092361B2 (en) | 2015-07-28 |
US20090055680A1 (en) | 2009-02-26 |
JP4950886B2 (ja) | 2012-06-13 |
WO2007010829A1 (ja) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101243417B (zh) | 非易失性存储装置、存储控制器以及不良区域检测方法 | |
US10613943B2 (en) | Method and system for improving open block data reliability | |
US20180321874A1 (en) | Flash management optimization for data update with small block sizes for write amplification mitigation and fault tolerance enhancement | |
CN101256842B (zh) | 纠错码控制器和包括该纠错码控制器的存储器系统 | |
US10372369B2 (en) | Apparatuses and methods for single level cell caching | |
US6751766B2 (en) | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data | |
US8255773B2 (en) | System and method of tracking error data within a storage device | |
US7870472B2 (en) | Methods and apparatus for employing redundant arrays to configure non-volatile memory | |
CN105788648B (zh) | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 | |
US8479062B2 (en) | Program disturb error logging and correction for flash memory | |
US10209896B2 (en) | Performance optimization of read functions in a memory system | |
CN105144302A (zh) | 存储器装置中的错误校正操作 | |
CN106030541A (zh) | Dram缺陷的内核掩蔽 | |
JP2008065830A (ja) | メモリーシステム及び該動作方法。 | |
CN102171659A (zh) | 非易失性存储器中的数据错误恢复 | |
MX2012010944A (es) | Detección de distribución de paridad no regulada vía etiqueta de metadatos. | |
WO2013070366A2 (en) | Statistical read comparison signal generation for memory systems | |
US20140115416A1 (en) | Non-volatile memory error correction | |
US11681613B2 (en) | Unretiring memory device blocks | |
JP2015225608A (ja) | アドレス変換テーブルを書き込む装置及び方法 | |
US7870471B2 (en) | Methods and apparatus for employing redundant arrays to configure non-volatile memory | |
CN107992268B (zh) | 一种坏块标记的方法及相关装置 | |
CN107203436B (zh) | 一种Nand Flash数据校验的方法与装置 | |
US20150363309A1 (en) | System and method of increasing reliability of non-volatile memory storage | |
CN103473157A (zh) | 硬盘故障处理方法及处理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |