[go: up one dir, main page]

CN101243417B - Nonvolatile storage device, memory controller, and defective region detection method - Google Patents

Nonvolatile storage device, memory controller, and defective region detection method Download PDF

Info

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
error
data
mentioned
physical
information
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
Application number
CN200680029679.0A
Other languages
Chinese (zh)
Other versions
CN101243417A (en
Inventor
本多利行
真木晋弘
小来田重一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101243417A publication Critical patent/CN101243417A/en
Application granted granted Critical
Publication of CN101243417B publication Critical patent/CN101243417B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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

It is possible to accurately detect a physical block which has caused a fixture defect in a flash memory so as to limit the use of the physical block. By recording a history of generation of a physical block error and a history of physical erase in an ECC error record, it is judged whether the error which has occurred is accidental or caused by a fixture defect. When no error is caused in the data rewritten by physical erase after a first read error occurrence, the first error is accidental and if another error is caused, the error is judged to be caused by a fixture defect. By using such an ECC error record, it is possible to accurately judge whether the error is accidental or caused by a fixture defect. By eliminating use of the physical block judged to have a fixture defect, it is possible to reduce read errors.

Description

非易失性存储装置、存储控制器以及不良区域检测方法 Nonvolatile memory device, memory controller, and method for detecting bad areas

技术领域technical field

本发明涉及在使用了用于提高在非易失性存储器中记录的数据的可靠性的纠错功能的非易失性存储装置中,用于降低由于非易失性存储器的不良而引起的非偶发性读出错误的非易失性存储装置、存储控制器以及不良区域检测方法。The present invention relates to methods for reducing error caused by defects in the nonvolatile memory in a nonvolatile memory device using an error correction function for improving the reliability of data recorded in the nonvolatile memory. A non-volatile storage device, a storage controller, and a method for detecting bad areas for sporadic read errors.

背景技术Background technique

近年来,搭载了非易失性存储器的存储卡作为数字照相机或者便携电话机的存储卡正在扩大市场。然而,非易失性存储器在每次改写数据时存储单元逐渐恶化,最终发生写入或者读出的错误。当然,如果可靠性充分高,几乎可以忽视由改写引起的存储单元的恶化,则即使使用十年也不会产生什么问题。然而实际上有时并非如此,通过在控制非易失性存储器的系统中搭载ECC(错误检查和纠正)电路等纠错电路,实现实质上可靠性高的存储卡。In recent years, memory cards equipped with nonvolatile memory are expanding their market as memory cards for digital cameras and mobile phones. However, each time data is rewritten in a non-volatile memory, the memory cell gradually deteriorates, and finally a writing or reading error occurs. Of course, if the reliability is sufficiently high that the deterioration of the memory cell due to rewriting is almost negligible, there will be no problem even if it is used for ten years. However, this may not be the case in practice, and a substantially reliable memory card is realized by incorporating an error correction circuit such as an ECC (Error Checking and Correction) circuit in a system that controls the nonvolatile memory.

然而,由于工艺的微细化减小存储单元的尺寸,或者由于实现大容量的多值化难以确保存储单元单体的可靠性。另外,由于在发展大容量的同时增加存储器的图形,还增加产品检查的时间,因此难以充分高精度地检查器件。However, it is difficult to ensure the reliability of a single memory cell due to the downsizing of the memory cell due to the miniaturization of the process, or due to the multi-valued realization of the large capacity. In addition, it is difficult to inspect devices with sufficient high precision because the pattern of memory is increased along with the development of large capacity, and the time for product inspection is also increased.

作为管理闪速存储器的写入或者读出的错误的方法,在专利文献1中提出了对读出、写入中的错误发生信息进行计数,使得不使用恶化了的区域的方法。另外,在专利文献2中提出对于读出错误连续的区域进行替代处理的方法。As a method of managing errors in writing or reading of a flash memory, Patent Document 1 proposes a method of counting error occurrence information during reading and writing so as not to use corrupted areas. In addition, Patent Document 2 proposes a method of performing replacement processing on regions in which read errors continue.

专利文献1:特开平11-53266号公报Patent Document 1: JP-A-11-53266

专利文献2:WO01/022232Patent Document 2: WO01/022232

包含闪速存储器的大部分非易失性存储器具有在存储单元上不施加偏压等能量而持续保持数据的性能。这表现出保持数据的状态是稳定的。与作为易失性存储器的SRAM通过施加能量保持数据完全不同。从而,为了改写非易失性存储器的数据,需要在处于稳定状态的存储单元中施加能量,此时,虽然很微小但仍将产生存储单元的恶化。Most nonvolatile memories including flash memory have the ability to continuously hold data without applying energy such as a bias voltage to memory cells. This shows that the state of holding the data is stable. It is completely different from SRAM, which is a volatile memory, which retains data by applying energy. Therefore, in order to rewrite the data of the nonvolatile memory, it is necessary to apply energy to the memory cell in a stable state, and at this time, deterioration of the memory cell occurs although slight.

以在闪速存储器等非易失性存储器中发生的存储单元恶化为原因的错误更多地起因于数据的改写,数据读出引起的影响小。考虑到这一点,能够适当地进行错误发生时的处理,然而,在专利文献1或者专利文献2中记载的非易失性存储装置中,并没有充分考虑数据改写和数据读出引起的非易失性存储器的恶化。另外,虽然与数据改写时相比较,数据读出引起的对错误发生的影响极小,但是在反复多次对同一个数据读出时,由于发现的不是存储单元的恶化,而是逐渐进行的数据自身的恶化,因此数据读出的影响也不能忽视。但是,在专利文献1或者专利文献2记载的非易失性存储装置并没有充分考虑这种进行性的数据的恶化。Errors caused by memory cell deterioration in nonvolatile memories such as flash memories are mostly caused by rewriting of data, and are less affected by data reading. Considering this point, it is possible to appropriately perform processing when an error occurs. However, in the nonvolatile memory device described in Patent Document 1 or Patent Document 2, the nonvolatile memory caused by data rewriting and data reading is not fully considered. Deterioration of volatile memory. In addition, although compared with data rewriting, the influence of data reading on error occurrence is extremely small, but when the same data is read many times, it is not the deterioration of the memory cell that is found, but the gradual progress. The deterioration of the data itself, so the impact of data readout cannot be ignored. However, the nonvolatile memory devices described in Patent Document 1 or Patent Document 2 do not sufficiently consider such progressive data deterioration.

例如,作为一般的非易失性存储器的代表的NAND型闪速存储器以根据ECC电路的纠错为前提产品化。这是因为偶发性的比特错误在非易失性存储器中不可避免。从而,使用NAND型闪速存储器的存储卡的存储控制器在其内部具有生成ECC码的功能或者检测并纠正错误的功能。存储控制器使用ECC电路纠正偶发性的比特错误,再次利用发生了错误的物理块。由此提高存储卡的实质性的可靠性。For example, a NAND-type flash memory, which is a representative general nonvolatile memory, is commercialized on the premise of error correction by an ECC circuit. This is because sporadic bit errors are unavoidable in nonvolatile memory. Therefore, a memory controller of a memory card using a NAND type flash memory has a function of generating an ECC code or a function of detecting and correcting an error inside it. The storage controller uses ECC circuits to correct sporadic bit errors and reuse the physical blocks where errors occurred. This increases the substantial reliability of the memory card.

然而,虽然与偶发性的比特错误相比较频率低,但是由于存储单元的恶化等的原因在物理块中固有存在的不良,有时在读出时发生比特错误。在使用可靠性充分高,比特错误的发生频率低的NAND型闪速存储器的情况下,如现有的存储控制器那样,并不判断所发生的比特错误是偶发性还是固有不良,限制使用物理块,在闪速存储器的使用中也不会发生问题。但是,由于闪速存储器的工艺的微细化或者多值化,比特错误的发生频率比以往升高。根据这一点,需要以进行纠错为前提,容许存在比特错误,需要即使发生比特错误,纠正其错误,继续使用闪速存储器。然而,在比特错误的主要原因是存储单元的固有不良时,存在固有不良的物理块频繁发生存储卡的读出错误。However, although the frequency of sporadic bit errors is lower than that of sporadic bit errors, bit errors may occur during reading due to defects inherent in physical blocks due to deterioration of memory cells or the like. In the case of using a NAND-type flash memory with sufficiently high reliability and a low frequency of bit errors, like the existing memory controller, it does not judge whether the bit errors that occur are accidental or inherently defective, and the use of physical memory is limited. block, no problem occurs in the use of flash memory. However, the frequency of occurrence of bit errors has increased more than ever due to miniaturization or multi-valued processes of flash memory. From this point, it is necessary to allow bit errors on the premise of performing error correction, and it is necessary to continue using the flash memory by correcting the errors even if bit errors occur. However, when the main cause of the bit error is inherent defect of the memory cell, reading errors of the memory card frequently occur in physical blocks having the inherent defect.

例如,有时由于存储卡的物理块中存在的固有不良引起数据错误,不能观看用数字照相机拍摄的静止图像。这种情况下,如果在数字照相机的系统上删除静止图像的数据,则对以后拍摄的静止图像再次利用同一个块,再次发生数据错误。这样频繁发生不能观看静止图像的情况。For example, sometimes a still image taken with a digital camera cannot be viewed due to a data error caused by an inherent defect in the physical block of the memory card. In this case, if the data of the still image is deleted on the digital camera system, the same block will be reused for the still image captured later, and a data error will occur again. It frequently happens that still images cannot be viewed.

另外,如果不是固有不良,而是对于相同的数据反复进行次数非常多的读出,则比特错误虽然是逐渐地但在不断增加,有时会使数据恶化下去。这种情况下,在使用可靠性充分高、比特错误的发生频率低的NAND型闪速存储器的情况下,也可以像现有的存储控制器那样,根据比特错误的发生,限制使用物理块。然而,在以进行纠错为前提的情况下,即必须允许比特错误存在的情况下,需要即使发生比特错误,也在纠正错误后继续使用闪速存储器。从而,导致由数据的恶化引起的比特错误的比特数超过纠错能力,发生不能纠正的读出错误的结果。鉴于这些情况,开发降低读出错误的存储卡成为一个课题。In addition, if there is no inherent defect, but if the reading of the same data is repeated a very large number of times, bit errors will gradually increase, which may degrade the data. In this case, when using a NAND flash memory with sufficiently high reliability and low frequency of bit errors, the use of physical blocks may be limited according to the occurrence of bit errors, as in conventional memory controllers. However, when error correction is a prerequisite, that is, when bit errors must be tolerated, it is necessary to continue using the flash memory after correcting errors even if bit errors occur. Therefore, the number of bits causing bit errors due to data deterioration exceeds the error correction capability, and uncorrectable read errors occur as a result. In view of these circumstances, development of a memory card with reduced reading errors has become a subject.

发明内容Contents of the invention

本发明在闪速存储器内准确地检测出推测为存在固有不良、或者累积由读出引起的比特不良并推测为超过纠错能力的物理块。进而,其目的在于通过限制或者避免对该物理块的写入或者读出,提供可靠性高的非易失性存储装置。The present invention accurately detects, in a flash memory, a physical block presumed to have an inherent defect, or a physical block presumed to have exceeded error correction capability by accumulating bit defects caused by reading. Furthermore, an object thereof is to provide a highly reliable nonvolatile memory device by limiting or avoiding writing or reading to the physical block.

为了解决该课题,本发明的非易失性存储装置是一种具备非易失性存储器和存储控制器的非易失性存储装置,上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,上述存储控制器具备:进行上述存储控制器内部中的整体控制的运算处理单元;具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,上述存储控制器的地址表具备:具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,决定是否使用检测出了上述读出错误的物理块。In order to solve this problem, the nonvolatile memory device of the present invention is a nonvolatile memory device including a nonvolatile memory and a memory controller. The nonvolatile memory has a plurality of physical blocks as units of clearing. , the above-mentioned physical block has a plurality of physical pages as a writing unit, and the above-mentioned storage controller has: an arithmetic processing unit for performing overall control inside the above-mentioned storage controller; an error correction circuit for a function of error and a function of correcting an error when it can be corrected; an address table holding a table necessary for managing data stored in the above-mentioned nonvolatile memory, the address table of the above-mentioned memory controller having: an error table having a plurality of error records, the error records are information related to the above-mentioned read error about the physical block in which the read error has been detected by the above-mentioned error correction circuit; The physical block and the item table of the information whether the data is written or cleared; the logical-physical conversion table representing the conversion information between the logical block address specified by the master device from the outside and the physical block address of the above-mentioned non-volatile memory, the above-mentioned operation The processing unit registers and updates an error record in the error table based on the error detection from the error correction circuit, and determines whether to use the physical block in which the read error was detected.

这里,也可以是,上述存储控制器的地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;记录表示发生了上述错误的信息的错误信息;记录表示在发生了上述错误以后、清除上述物理块的数据、写入了新的数据的信息的错误块清除信息;表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在至少记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。Here, it is also possible that the address table of the above-mentioned storage controller is further provided with a defective block table that records information related to the address of the physical block that prohibits data writing and reading, and the error record of the above-mentioned error table has: when the above-mentioned error correction When the circuit has detected an error in the data read from the above-mentioned non-volatile memory, record the error block information indicating the address information of the physical block where the error occurred; record the error information indicating that the above-mentioned error has occurred; record the error information indicating After the above-mentioned error occurs, the data of the above-mentioned physical block is cleared, and the error block clear information of the information of new data is written; it indicates that after the information is recorded in the above-mentioned error block clear information, it is detected again in the same physical block When the error recurrence information of the error is read, the above-mentioned operation processing unit refers to the above-mentioned error table when writing data in the above-mentioned non-volatile memory, and when there is at least the above-mentioned error block information and the above-mentioned In the error recording of the error reoccurrence information, information on the address of the physical block in which the data is written is recorded in the defective block table.

这里,也可以是,上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。Here, the error record in the error table may further include error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written.

这里,也可以是,上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Here, the arithmetic processing unit may record and update information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit.

这里,也可以是,上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Here, the arithmetic processing unit may record and update information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit.

这里,也可以是,上述存储控制器的地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:在上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;作为表示读出错误发生的次数的信息的错误计数信息;表示对发生上述读出错误的物理块进行了物理清除的次数的错误块清除计数信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息的上述错误记录时,对上述错误计数信息与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述错误计数信息的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。Here, it is also possible that the address table of the above-mentioned memory controller further includes a bad block table that records information related to the address of the physical block that is prohibited from writing and reading data, and the error record of the above-mentioned error table includes: When the circuit has detected an error in the data read from the above-mentioned non-volatile memory, record the error block information indicating the address information of the physical block where the error occurred; the error count information as the information indicating the number of times that the error occurred in the readout ; Represent the error block clearing count information of the number of times that the physical block of the above-mentioned read error has been physically cleared, when the above-mentioned arithmetic processing unit writes data in the above-mentioned non-volatile memory, refer to the above-mentioned error table, When the physical block of data has the above-mentioned error record in which the above-mentioned error block information is recorded, the above-mentioned error count information is compared with the above-mentioned error block clear information, the above-mentioned error block clear information indicates a predetermined number of times, and the value of the above error count information is higher than When the error block clear information is large, information on the address of the physical block in which the data is written is recorded in the defective block table.

这里,也可以是,上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。Here, the error record in the error table may further include error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written.

这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。Here, in the arithmetic processing unit, if the error correction circuit detects a read error, the error record in the error table may be registered and updated irrespective of whether the error correction circuit can correct it or not.

这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。Here, in the arithmetic processing unit, if the error correction circuit detects a read error, the error record in the error table may be registered and updated irrespective of whether the error correction circuit can correct it or not.

这里,也可以是,上述错误表的错误记录具备:写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;记录表示上述读出错误的比特数的信息的错误比特计数,上述运算处理单元使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the error record in the error table may include: error block information written in the address of the physical block whose read error is detected by the error correction circuit; error page information of an address of an erroneous physical page; an error bit count of information indicating the number of bits read out error, the above-mentioned operation processing unit using a value having an error bit number less than or equal to the number of error bits that can be corrected by the error correction circuit, and Predetermined correction threshold, read the data of the physical block corresponding to the error record of the above-mentioned error table whose error bit count information is greater than or equal to the above-mentioned correction threshold, so that the above-mentioned error correction circuit corrects the error of the read data, and converts the Corrected data is written to other physical blocks.

这里,也可以是,上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the arithmetic processing unit may use a value equal to or less than the number of error bits that can be corrected by the error correction circuit when the data read process from the outside to the nonvolatile memory is not performed, and the error correction circuit may be used in advance. Determine the correction threshold, read the data of the physical block corresponding to the error record of the above-mentioned error table whose information of the above-mentioned error bit count is greater than or equal to the above-mentioned correction threshold, so that the above-mentioned error correction circuit corrects the error of the read data, and the correction The completed data is written to other physical blocks.

这里,也可以是,上述错误表的错误记录具备:记录表示上述纠错电路检测出了读出错误的物理块的地址的信息的错误块信息;记录表示上述纠错电路检测出了读出错误的上述物理页的地址的信息的错误页信息;记录表示发生了具有小于等于能够由上述纠错电路纠正的错误比特数的值而且大于等于预先确定的纠正阈值的读出错误的信息的错误发生信息,上述运算处理单元读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the error record in the error table may include: error block information for recording information indicating the address of the physical block in which the error correction circuit detected a read error; Error page information of information on the address of the above-mentioned physical page; recording an error occurrence of information indicating that a read error has occurred with a value less than or equal to the number of error bits that can be corrected by the above-mentioned error correction circuit and greater than or equal to a predetermined correction threshold value information, the above-mentioned operation processing unit reads the data of the physical block corresponding to the error record of the above-mentioned error table that records the above-mentioned error occurrence information, causes the above-mentioned error correction circuit to correct the error of the read data, and writes the corrected data into other physical blocks.

这里,也可以是,上述运算处理单元在没有进行读出上述非易失性存储器的数据的处理时,读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the arithmetic processing unit may read the data of the physical block corresponding to the error record of the error table in which the error occurrence information is recorded, when the processing of reading the data of the nonvolatile memory is not performed. , causing the error correction circuit to correct the error of the read data, and writing the corrected data into another physical block.

为了解决该课题,本发明的存储控制器是一种对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入的存储控制器,具备:进行上述存储控制器内部中整体控制的运算处理单元;具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,上述地址表具备:具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,决定是否使用检测出了上述读出错误的物理块。In order to solve this problem, the memory controller of the present invention is a nonvolatile memory having a plurality of physical blocks as a unit of erasing, and the physical block has a plurality of physical pages as a unit of writing. The storage controller for reading and writing is provided with: an arithmetic processing unit for performing overall control inside the above-mentioned storage controller; a function of detecting errors in data read from the above-mentioned non-volatile memory and performing error correction when the errors can be corrected; an error correction circuit of a correcting function; an address table for maintaining a table required for managing data stored in the above-mentioned nonvolatile memory, the above-mentioned address table having: an error table having a plurality of error records, the error records being Information about the physical block in which a read error has been detected by the error correction circuit, and information related to the read error; information indicating whether data has been written or erased for each physical block of the nonvolatile memory Item table: a logical-physical conversion table representing conversion information between a logical block address specified by the master device and a physical block address of the nonvolatile memory from the outside, and the above-mentioned arithmetic processing unit registers and The error record of the error table is updated to determine whether to use the physical block in which the read error has been detected.

这里,也可以是,上述地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;记录表示发生了上述错误的信息的错误信息;记录表示在发生了上述错误以后、清除上述物理块的数据、写入了新的数据的信息的错误块清除信息;表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在至少记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。Here, it is also possible that the above-mentioned address table further includes a bad block table that records information related to the address of the physical block that prohibits data writing and reading, and the error record of the above-mentioned error table includes: when the above-mentioned error correction circuit detects During the error of the data read from above-mentioned non-volatile memory, record represents the error block information of the address information of the physical block that error occurred; Record represents the error information of the information that above-mentioned error occurred; After an error, the data of the above-mentioned physical block is cleared, and the information of new data is written; it indicates that after the information is recorded in the above-mentioned error block clear information, a read error is detected again in the same physical block Error recurrence information. When the above-mentioned operation processing unit writes data in the above-mentioned non-volatile memory, it refers to the above-mentioned error table. When the above-mentioned error recording is performed, the information related to the address of the physical block in which the above-mentioned data is written is recorded in the above-mentioned bad block table.

这里,也可以是,上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。Here, the error record in the error table may further include error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written.

这里,也可以是,上述运算处理单元中,只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Here, the arithmetic processing unit may record and update information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit.

这里,也可以是,上述运算处理单元中,只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Here, the arithmetic processing unit may record and update information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit.

这里,也可以是,上述地址表还具备记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表,上述错误表的错误记录具备:在上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;作为表示读出错误发生的次数的信息的错误计数信息;表示对发生上述读出错误的物理块进行了物理清除的次数的错误块清除计数信息,上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息的上述错误记录时,对上述错误计数信息与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述错误计数信息的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。Here, the address table may further include a bad block table that records information on addresses of physical blocks that are prohibited from writing and reading data, and the error record in the error table includes: During the error of the data read from above-mentioned non-volatile memory, the error block information of the information of the address of the physical block that record expression has occurred error; As the error counting information of the information of the number of times that read error occurrence; The error block clearing count information of the number of times that the wrong physical block has been physically cleared is read. When the arithmetic processing unit writes data in the non-volatile memory, it refers to the above error table. , when there is the above-mentioned error record in which the above-mentioned error block information is recorded, the above-mentioned error count information is compared with the above-mentioned error block clear information, the above-mentioned error block clear information indicates a predetermined number of times, and the value of the above-mentioned error count information is higher than the value of the above-mentioned error block clear When the information is large, information on the address of the physical block in which the data is written is recorded in the defective block table.

这里,也可以是,上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。Here, the error record in the error table may further include error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written.

这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。Here, in the arithmetic processing unit, if the error correction circuit detects a read error, the error record in the error table may be registered and updated irrespective of whether the error correction circuit can correct it or not.

这里,也可以是,上述运算处理单元中,如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。Here, in the arithmetic processing unit, if the error correction circuit detects a read error, the error record in the error table may be registered and updated irrespective of whether the error correction circuit can correct it or not.

这里,也可以是,上述错误表的错误记录具备:写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;记录表示上述读出错误的比特数的信息的错误比特计数,上述运算处理单元使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the error record in the error table may include: error block information written in the address of the physical block whose read error is detected by the error correction circuit; error page information of an address of an erroneous physical page; an error bit count of information indicating the number of bits read out error, the above-mentioned operation processing unit using a value having an error bit number less than or equal to the number of error bits that can be corrected by the error correction circuit, and Predetermined correction threshold, read the data of the physical block corresponding to the error record of the above-mentioned error table whose error bit count information is greater than or equal to the above-mentioned correction threshold, so that the above-mentioned error correction circuit corrects the error of the read data, and converts the Corrected data is written to other physical blocks.

这里,也可以是,上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用具有小于等于能够由上述纠错电路纠正的错误比特数的值、而且预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the arithmetic processing unit may use a value equal to or less than the number of error bits that can be corrected by the error correction circuit when the data read process from the outside to the nonvolatile memory is not performed, and the error correction circuit may be used in advance. Determine the correction threshold, read the data of the physical block corresponding to the error record of the above-mentioned error table whose information of the above-mentioned error bit count is greater than or equal to the above-mentioned correction threshold, so that the above-mentioned error correction circuit corrects the error of the read data, and the correction The completed data is written to other physical blocks.

这里,也可以是,上述错误表的错误记录具备:记录表示上述纠错电路检测出了读出错误的物理块的地址的信息的错误块信息;记录表示上述纠错电路检测出了读出错误的上述物理页的地址的信息的错误页信息;记录表示发生了具有小于等于能够由上述纠错电路纠正的错误比特数的值而且大于等于预先确定的纠正阈值的读出错误的信息的错误发生信息,上述运算处理单元读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the error record in the error table may include: error block information for recording information indicating the address of the physical block in which the error correction circuit detected a read error; Error page information of information on the address of the above-mentioned physical page; recording an error occurrence of information indicating that a read error has occurred with a value less than or equal to the number of error bits that can be corrected by the above-mentioned error correction circuit and greater than or equal to a predetermined correction threshold value information, the above-mentioned operation processing unit reads the data of the physical block corresponding to the error record of the above-mentioned error table that records the above-mentioned error occurrence information, causes the above-mentioned error correction circuit to correct the error of the read data, and writes the corrected data into other physical blocks.

这里,也可以是,上述运算处理单元在没有进行读出上述非易失性存储器的数据的处理时,读出与记录了上述错误发生信息的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中。Here, the arithmetic processing unit may read the data of the physical block corresponding to the error record of the error table in which the error occurrence information is recorded, when the processing of reading the data of the nonvolatile memory is not performed. , causing the error correction circuit to correct the error of the read data, and writing the corrected data into another physical block.

为了解决该课题,本发明的不良区域检测方法是一种非易失性存储装置的不良区域检测方法,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,在该不良区域检测方法中,在读出数据时根据从外部指定的逻辑地址决定物理地址,从与上述物理地址相对应的物理块读出数据,在该读出数据中有能够纠正的错误时,纠正上述错误并输出到外部,把上述物理地址登录在上述错误表中。In order to solve this problem, a method for detecting a defective area of the present invention is a method for detecting a defective area of a nonvolatile memory device including a plurality of physical blocks as units of erasing, and the physical blocks have A nonvolatile memory composed of a plurality of physical pages as a writing unit; a memory controller including a function of detecting errors in read data from the above nonvolatile memory and correcting errors when they can be corrected an error correction circuit, an error table holding a plurality of error records, the error records are information related to the above-mentioned read error about the physical block in which a read error has been detected, and in the defective area detection method, in the read When data is used, the physical address is determined according to the logical address specified from the outside, and the data is read from the physical block corresponding to the above physical address. When there is a correctable error in the read data, the above error is corrected and output to the outside, and the above The physical address is registered in the error table above.

这里,也可以是,当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的信息登录到上述错误表中,在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误并输出到外部,同时,把表示在改写了上述数据以后发生了错误的错误再发生信息登录到上述错误表中,对于在上述错误表中登录了上述错误再发生信息的物理块,禁止数据的写入以及读出。Here, it is also possible that when the data of the physical block whose physical address is registered in the above-mentioned error table is rewritten, the information indicating that the above-mentioned data is rewritten is registered in the above-mentioned error table, and when the data is read from the physical block in which the above-mentioned data is rewritten, When there is an error that can be corrected in the output data, correct the error and output it to the outside. At the same time, register the error recurrence information indicating that an error occurred after rewriting the above data into the above error table. Writing and reading of data are prohibited for the physical block in which the above-mentioned error recurrence information is registered.

这里,也可以是,当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的次数的错误块清除计数登录到上述错误表中,在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误输出到外部,同时,把表示在改写了上述数据以后发生错误的次数的错误计数登录到上述错误表中,在上述错误计数表示出大于等于预定的值时,禁止数据向登录了上述错误计数的物理块的写入以及读出。Here, it is also possible that when the data of the physical block whose physical address is registered in the above-mentioned error table is rewritten, an error block clear count indicating the number of times the above-mentioned data has been rewritten is registered in the above-mentioned error table. When there is a correctable error in the data read from the physical block of the data, the error is corrected and output to the outside, and at the same time, the error count indicating the number of times the error occurred after the above data is rewritten is registered in the above error table, and the above error When the count indicates a predetermined value or more, writing and reading of data to and from the physical block in which the error count is registered is prohibited.

为了解决该课题,本发明的不良区域检测方法是一种非易失性存储装置的不良区域检测方法,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法具有:根据从外部指定的逻辑地址决定物理地址,确定读出数据的物理块的确定步骤;从上述物理块读出数据的数据读出步骤;在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部的数据输出步骤;把发生了上述能够纠正的错误的物理块的物理地址和与错误数有关的信息登录到上述错误表中的错误数登录步骤。In order to solve this problem, a method for detecting a defective area of the present invention is a method for detecting a defective area of a nonvolatile memory device including a plurality of physical blocks as units of erasing, and the physical blocks have A nonvolatile memory composed of a plurality of physical pages as a writing unit; a memory controller including a function of detecting errors in read data from the above nonvolatile memory and correcting errors when they can be corrected an error correction circuit, an error table holding a plurality of error records, the error records are information related to the above-mentioned read error with respect to the physical block in which a read error has been detected, and the defective area detection method has: The logical address determines the physical address, and determines the step of determining the physical block of the read data; the data read step of reading the data from the above physical block; when there is a correctable error in the read data, correct the above error and output A data output step to the outside; a step of registering the number of errors in the above-mentioned error table with the physical address of the physical block where the above-mentioned correctable error has occurred and information related to the number of errors.

这里,具有复制步骤,当与登录在上述错误表中的错误数有关的信息表示出大于等于预定的值时,把写入到上述物理块中的数据复制到其它物理块中。Here, there is a copying step of copying the data written in the physical block to another physical block when the information on the number of errors registered in the error table shows a predetermined value or more.

这里,也可以是,在上述数据读出步骤与上述数据输出步骤之间进行上述复制步骤。Here, the copying step may be performed between the data reading step and the data outputting step.

这里,也可以是,在没有对上述非易失性存储装置执行来自外部的数据写入以及读出时,进行上述复制步骤。Here, the copying step may be performed when data writing and reading from the outside are not executed to the nonvolatile memory device.

这里,也可以是,在对上述非易失性存储装置接通电源之后紧接着进行上述复制步骤。Here, the copying step may be performed immediately after the nonvolatile memory device is powered on.

依据本发明,通过适当地推定设想为错误发生概率高的物理块,能够限制或避免数据对该物理块的写入或读出,能够提供可靠性高的非易失性存储装置。According to the present invention, by appropriately estimating a physical block assumed to have a high probability of error occurrence, it is possible to limit or avoid writing or reading data to or from the physical block, thereby providing a highly reliable nonvolatile memory device.

附图说明Description of drawings

图1是表示了第1实施例的非易失性存储装置的结构的框图。FIG. 1 is a block diagram showing the configuration of a nonvolatile memory device according to a first embodiment.

图2是表示了闪速存储器的内部结构的框图。FIG. 2 is a block diagram showing the internal structure of the flash memory.

图3是表示了物理块201的内部结构的框图。FIG. 3 is a block diagram showing the internal structure of the physical block 201 .

图4表示了BB表112的结构。FIG. 4 shows the structure of the BB table 112.

图5表示了ECC错误表111的结构。FIG. 5 shows the structure of the ECC error table 111. As shown in FIG.

图6表示了第1实施例的ECC错误记录和保存在ECC错误记录中的信息的变化。Fig. 6 shows the ECC error record and changes of information stored in the ECC error record in the first embodiment.

图7是第1实施例的读出的流程图。Fig. 7 is a flow chart of reading in the first embodiment.

图8是第1实施例的ECC错误表登录的流程图。Fig. 8 is a flow chart of ECC error table registration in the first embodiment.

图9是第1实施例的物理清除时的ECC错误表更新的流程图。Fig. 9 is a flow chart of updating the ECC error table at the time of physical erasure in the first embodiment.

图10表示了第2实施例的ECC错误记录。Fig. 10 shows the ECC error log of the second embodiment.

图11是表示了第2实施例的ECC错误表登录的流程图。Fig. 11 is a flowchart showing the registration of the ECC error table in the second embodiment.

图12表示了第3实施例的ECC错误记录和保存在ECC错误记录中的信息的变化。Fig. 12 shows the ECC error record and changes of information stored in the ECC error record in the third embodiment.

图13是第3实施例的ECC错误表登录的流程图。Fig. 13 is a flowchart of ECC error table registration in the third embodiment.

图14是第3实施例的物理清除时的ECC错误表更新的流程图。Fig. 14 is a flow chart of updating the ECC error table at the time of physical erasure in the third embodiment.

图15是第4实施例的读出的流程图。Fig. 15 is a flowchart of readout in the fourth embodiment.

图16表示进行性错误的发生状况。Fig. 16 shows the occurrence status of progressive errors.

图17是表示第5实施例的非易失性存储装置的结构的框图。FIG. 17 is a block diagram showing the configuration of a nonvolatile memory device according to a fifth embodiment.

图18是表示了闪速存储器的内部结构的框图。Fig. 18 is a block diagram showing the internal structure of the flash memory.

图19是表示了物理块201的内部结构的框图。FIG. 19 is a block diagram showing the internal structure of the physical block 201 .

图20表示了ECC错误表111的结构。FIG. 20 shows the structure of the ECC error table 111.

图21表示了第5实施例的ECC错误记录。Fig. 21 shows the ECC error log of the fifth embodiment.

图22是第5实施例的读出的流程图。Fig. 22 is a flow chart of reading in the fifth embodiment.

图23是第5实施例的ECC错误表登录的流程图。Fig. 23 is a flowchart of ECC error table registration in the fifth embodiment.

图24是第5实施例的数据纠正复制处理的流程图。Fig. 24 is a flowchart of data correction copy processing in the fifth embodiment.

图25是第6实施例的读出的流程图。Fig. 25 is a flow chart of reading in the sixth embodiment.

图26是第6实施例的数据纠正复制处理的流程图。Fig. 26 is a flowchart of data correction copy processing in the sixth embodiment.

(附图标记说明)(Description of Reference Signs)

101:存储卡101: memory card

102:存储控制器102: storage controller

103:闪速存储器103: Flash memory

104:主接口104: main interface

105:MPU105: MPU

106:地址表106: address table

107:闪速接口107: Flash interface

108:缓冲存储器108: buffer memory

109:ECC电路109: ECC circuit

110:逻辑物理变换表110: Logical physical conversion table

111:ECC错误表111: ECC error table

112:BB表112: BB table

113:项目表113: Item table

501:ECC错误记录501: ECC error record

601:错误块601: Bad Block

602:错误发生信息602: error message

603:错误块清除信息603: Error block clear message

604:错误再发生信息604: Error recurrence message

701:存储卡701: memory card

702:存储控制器702: storage controller

703:闪速存储器703: Flash memory

704:主接口704: Main interface

705:MPU705: MPU

706:地址表706: address table

707:闪速接口707: Flash interface

708:缓冲存储器708: buffer memory

709:ECC电路709: ECC circuit

710:逻辑物理变换表710: Logical-physical conversion table

711:ECC错误表711: ECC error table

712:项目表712: Project table

801:ECC错误记录801: ECC error record

1001:错误页1001: Error page

1201:错误块1201: Bad block

1202:错误计数1202: Error count

1203:错误块清除计数1203: Error Block Clear Count

1601:错误比特计数1601: Error Bit Count

具体实施方式Detailed ways

(实施例1)(Example 1)

图1是表示第1实施例的非易失性存储装置的结构的框图。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。FIG. 1 is a block diagram showing the configuration of a nonvolatile memory device according to a first embodiment. The memory card 101 includes a memory controller 102 and a flash memory 103 as a nonvolatile memory.

图2是表示闪速存储器103的内部结构的框图。这里,说明具有1G比特容量的闪速存储器。闪速存储器103的内部由PB0~PB1023共1024个物理块构成。物理块在闪速存储器103中是数据清除的最小单位。1个物理块容量是128kB+4kB,具有不是2的幂值而是比2的幂稍大的容量。这里,没有表现为132kB而是表现为128kB+4kB是为了表示在1个物理块中能够写入的数据的容量是128kB,在此基础上,进而在4kB的区域中写ECC码或者该物理块逻辑地址值等管理数据。FIG. 2 is a block diagram showing the internal structure of the flash memory 103 . Here, a flash memory having a capacity of 1 Gbit will be described. The interior of the flash memory 103 is composed of 1024 physical blocks PB0 to PB1023. A physical block is the smallest unit of data erasing in the flash memory 103 . The capacity of one physical block is 128kB+4kB, which is not a power of 2 value but a capacity slightly larger than the power of 2. Here, 128kB+4kB is not expressed as 132kB to indicate that the capacity of data that can be written in one physical block is 128kB. On this basis, the ECC code or the physical block is written in the 4kB area. Management data such as logical address values.

图3是表示物理块的内部结构的框图。闪速存储器103内的各物理块具备64个物理页PP0~PP63。物理页在闪速存储器103中是数据写入的最小单位。1个物理页的容量是2kB+64B。该表现与上述的物理块的情况相同,表示在1个物理页中能够写入的数据的容量是2kB,其余的64B中写入包括ECC的管理数据。Fig. 3 is a block diagram showing the internal structure of a physical block. Each physical block in the flash memory 103 includes 64 physical pages PP0 to PP63. A physical page is the minimum unit of data writing in the flash memory 103 . The capacity of a physical page is 2kB+64B. This expression is the same as the case of the above-mentioned physical block, which means that the data capacity that can be written in one physical page is 2kB, and management data including ECC is written in the remaining 64B.

存储控制器102具有主接口104、地址表106、闪速接口107、缓冲存储器108、ECC电路109、MPU(小型运算单元)105。主接口104控制与连接在存储卡101外部的主设备的接口。The memory controller 102 has a host interface 104 , an address table 106 , a flash interface 107 , a buffer memory 108 , an ECC circuit 109 , and an MPU (small arithmetic unit) 105 . The host interface 104 controls an interface with a host device connected to the outside of the memory card 101 .

地址表106是具有保存在闪速存储器103中的数据的管理信息的表,具有逻辑物理变换表110,ECC错误表111、项目表113、BB(不良块)表112。这些表保持在易失性存储器中。The address table 106 is a table having management information of data stored in the flash memory 103 , and includes a logical-physical conversion table 110 , an ECC error table 111 , an entry table 113 , and a BB (bad block) table 112 . These tables are maintained in volatile memory.

逻辑物理变换表110是表示作为从存储卡101的外部指定的逻辑地址的逻辑块的地址与作为闪速存储器103的内部物理地址的物理块的地址的对应关系的表。逻辑物理变换表110用于从逻辑地址得到与该逻辑块相对应的物理地址。The logical-physical conversion table 110 is a table showing a correspondence relationship between addresses of logical blocks, which are logical addresses specified from the outside of the memory card 101 , and addresses of physical blocks, which are internal physical addresses of the flash memory 103 . The logical-physical conversion table 110 is used to obtain the physical address corresponding to the logical block from the logical address.

ECC错误表111具有发生了读出错误的物理块的物理地址、数据的物理清除的历史、或物理清除后的读出错误的发生历史等信息,在固有不良的物理块的检测中使用。The ECC error table 111 has information such as the physical address of a physical block where a read error has occurred, the history of physical erasure of data, or the history of occurrence of a read error after physical erasure, and is used to detect inherently defective physical blocks.

项目表113是具有分别用1比特表示对于闪速存储器103的各个物理块、数据是写入完毕还是清除完毕的信息的表。例如,数据写入完毕的物理块用比特“0”表示,清除完毕的物理块用比特“1”表示。The entry table 113 is a table having information indicating whether data has been written or erased for each physical block of the flash memory 103 in 1 bit. For example, a physical block whose data has been written is represented by a bit "0", and a physical block whose data has been cleared is represented by a bit "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。FIG. 4 shows the structure of the BB table 112. The BB table 112 includes the same number of BB records i (i=0 to 1023) as there are physical blocks in the flash memory 103 . The BB record i is in one-to-one correspondence with the physical block, and has the address of the corresponding physical block. Furthermore, there is information represented by 1 bit as to whether or not the corresponding physical block is a defective block. In the BB record i, a physical block of a bad block is represented by a bit "0", and a non-defective physical block is represented by a bit "1". Here, the BB table 112 does not need to have BB records i for all physical blocks. It is also possible to have BB record i only for bad blocks.

闪速接口107通过后述的MPU105的控制,在闪速存储器103中写入缓冲存储器108的数据,或者把闪速存储器103的数据写入到缓冲存储器108中,或者清除闪速存储器103的数据。缓冲存储器108是在外部的主设备与闪速存储器103之间的数据写入和读出时,用于暂时保持数据的易失性存储器。The flash interface 107 writes the data of the buffer memory 108 into the flash memory 103 through the control of the MPU 105 described later, or writes the data of the flash memory 103 into the buffer memory 108, or clears the data of the flash memory 103 . The buffer memory 108 is a volatile memory for temporarily holding data during data writing and reading between an external host device and the flash memory 103 .

ECC电路109生成添加到从缓冲存储器108向闪速存储器103传送的写入数据中的ECC的代码。另外,ECC电路109是对于从闪速存储器103读出到缓冲存储器108的数据,进行ECC运算,检测错误,在其错误是可纠正的错误的情况下,纠正缓冲存储器108的数据的纠错电路。The ECC circuit 109 generates a code of ECC added to the write data transferred from the buffer memory 108 to the flash memory 103 . In addition, the ECC circuit 109 is an error correction circuit for performing an ECC operation on data read from the flash memory 103 to the buffer memory 108 to detect an error, and to correct the data in the buffer memory 108 when the error is a correctable error. .

MPU105是进行存储控制器102整体控制的微机。在与主设备之间进行数据的写入和读出时直接控制主接口104、ECC电路109、闪速接口107、地址表106。特别是在读出数据中有错误的情况下,MPU105参照地址表106内的ECC错误表111的信息,根据需要,进行ECC错误表111的更新。其结果,如果有应该禁止使用的物理块,则MPU105在BB表112的BB记录i中记录该物理块的信息,更新BB表112。进而MPU105根据更新后的BB表的内容,还进行项目表的更新。The MPU 105 is a microcomputer that performs overall control of the memory controller 102 . It directly controls the host interface 104, the ECC circuit 109, the flash interface 107, and the address table 106 when writing and reading data with the host device. In particular, when there is an error in the read data, MPU 105 refers to information in ECC error table 111 in address table 106, and updates ECC error table 111 as necessary. As a result, if there is a physical block whose use should be prohibited, MPU 105 records the information of the physical block in BB record i of BB table 112 and updates BB table 112 . Furthermore, MPU 105 also updates the item table based on the contents of the updated BB table.

图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是表示在发生了最初的读出错误以后,尽管进行了物理清除,但再次在同一个物理块中发生了读出错误的信息。FIG. 5 shows the structure of the ECC error table 111. As shown in FIG. The ECC error table 111 is composed of 16 ECC error records #i of #0 to #F expressed in hexadecimal notation. FIG. 6 shows information groups of ECC error record #i and changes in information stored in ECC error record #i. Each ECC error record #i includes error block 601 , error occurrence information 602 , error block clear information 603 , and error recurrence information 604 . The error block 601 stores the physical address of the physical block 201 where a read error occurred. Error occurrence information 602 is information indicating that the first read error occurred. The error block clear information 603 is information indicating that the physical block 201 has been physically cleared after the first read error occurred. The error recurrence information 604 is information indicating that a read error occurred again in the same physical block despite physical erasure after the first read error occurred.

图7是本实施例的非易失性存储装置中的数据读出的流程图。在外部主设备从存储卡101读出数据时,外部主设备向存储卡101传送读出指令和开始地址。接收到该指令和开始地址后,主接口104对MPU105通知其接收。图7的流程图表示接收了该通知以后的处理。FIG. 7 is a flowchart of data reading in the nonvolatile memory device of this embodiment. When the external host device reads data from the memory card 101 , the external host device transmits a read command and a start address to the memory card 101 . After receiving the command and the start address, the host interface 104 notifies the MPU 105 of the reception. The flowchart in FIG. 7 shows the processing after receiving the notification.

MPU105使用开始地址,把与128kB单位相对应的上位地址部分作为逻辑块地址,从逻辑物理变换表110得到物理块地址。设与128kB以下相对应的下位的地址部分作为逻辑页地址,按原样与逻辑页相同。接着,MPU105向闪速存储器接口107指示进行读出的物理块的地址和物理页的地址,从闪速存储器103读出数据(S701)。The MPU 105 obtains the physical block address from the logical-physical conversion table 110 using the start address and the upper address portion corresponding to the 128 kB unit as a logical block address. The lower address portion corresponding to 128 kB or less is assumed to be the logical page address, which is the same as the logical page as it is. Next, the MPU 105 instructs the address of the physical block and the address of the physical page to be read to the flash memory interface 107, and reads data from the flash memory 103 (S701).

接着,ECC电路109对在S701中读出的数据判定是否发生了读出错误(S702)。在没有检测出读出错误的情况下,MPU105对主接口104指示数据向外部主设备的输出(S705)。然后,只要继续进行读出(S706),则就以读出的单位增加地址,同时,循环至S701,继续进行数据的读出处理。Next, the ECC circuit 109 determines whether or not a read error has occurred in the data read in S701 (S702). When no read error is detected, MPU 105 instructs host interface 104 to output data to an external master (S705). Then, as long as the reading is continued (S706), the address is incremented by the unit of reading, and at the same time, the loop goes to S701, and the data reading process is continued.

在S702中检测出了读出错误的情况下,ECC电路109判断其读出错误能否纠正(S703)。在能纠正的情况下,纠正读出错误(S704)。在读出错误的纠正后,转移到S705,输出读出数据。在不能纠正读出错误的情况下,进行ECC错误表的登录(S707),登录以后结束读出处理。When a read error is detected in S702, the ECC circuit 109 judges whether the read error can be corrected (S703). If correctable, the read error is corrected (S704). After the reading error is corrected, the process moves to S705 to output the read data. If the read error cannot be corrected, the ECC error table is registered (S707), and the read process ends after the registration.

这里,使用图8的流程图说明ECC错误表的登录处理(S707)。如果不能纠正读出错误,则MPU105检索ECC错误表111的登录状态(S801)。具体地讲,检查发生了读出错误的物理块的物理地址是否与ECC错误记录#i的某一个错误块601的值一致。Here, the process of registering the ECC error table (S707) will be described using the flowchart of FIG. 8 . If the read error cannot be corrected, the MPU 105 searches the registration status of the ECC error table 111 (S801). Specifically, it is checked whether the physical address of the physical block in which the read error occurred matches the value of any error block 601 of the ECC error record #i.

其次,在S801的检索中没有一致的ECC错误记录#i时,判断为没有登录(S802)。接着,MPU105新登录错误块601和错误发生信息602(S803)。图6(b)表示新登录后的状态。在错误块601中,作为有效值写入发生了读出错误的物理块的地址。在错误发生信息602中写入表示发生了读出错误的信息“1”,在错误块清除信息603和错误再发生信息604中写入“0”。Next, when there is no matching ECC error record #i in the search in S801, it is determined that there is no registration (S802). Next, MPU 105 newly registers error block 601 and error occurrence information 602 (S803). Fig. 6(b) shows the state after new login. In the error block 601, the address of the physical block where a read error occurred is written as a valid value. Information “1” indicating that a read error has occurred is written in error occurrence information 602 , and “0” is written in error block clear information 603 and error recurrence information 604 .

在S802中有登录的情况下,MPU105判断是否是在物理清除以后发生的读出错误(S804)。如果在错误块601中有登录的ECC错误记录#i的错误块清除信息603是“0”,则由于不是物理清除以后发生的读出错误,因此不进行ECC错误记录#i的更新和ECC错误表111的登录,结束登录处理。即使发生读出错误、在错误发生信息602中登录了“1”以后计数读出错误的发生次数,只要读出相同块的相同数据,就不能判断所发生的错误是偶发性的还是因固有不良引起的。由此,不进行ECC错误记录#i的更新,结束登录处理。If there is a registration in S802, MPU 105 judges whether or not it is a read error that occurred after physical clearing (S804). If the error block clear information 603 of the ECC error record #i registered in the error block 601 is "0", the update of the ECC error record #i and the ECC error are not performed because it is not a read error that occurs after physical clearing. The registration of the table 111 ends the registration process. Even if a read error occurs, count the number of read errors after registering "1" in the error occurrence information 602, as long as the same data in the same block is read, it cannot be judged whether the error occurred accidentally or due to inherent defects. caused. As a result, the ECC error record #i is not updated, and the registration process ends.

在S804中,如果错误记录#i是图6(c)表示的状态,则错误块清除信息603是“1”,可知是在物理清除后发生的读出错误。这时,如图6(d)所示,在把错误再发生信息604改写为“1”以后结束登录处理(S805)。即,作为应该更新ECC错误记录#i的内容的读出错误,是指对于一旦发生了读出错误的物理块进行了物理清除以后,即使在新写入的数据中又发生的读出错误。In S804, if the error record #i is in the state shown in FIG. 6(c), the error block clear information 603 is "1", and it can be known that a read error occurred after physical erasure. At this time, as shown in FIG. 6(d), the log-in process ends after rewriting the error reoccurrence information 604 to "1" (S805). That is, the read error that should update the content of the ECC error record #i refers to a read error that occurs even in newly written data after the physical block in which a read error once occurred is physically cleared.

图9是在数据的写入之前进行的物理清除时的ECC错误表更新和不良块登录的流程图。外部主设备在存储卡101中写入数据时,外部主设备对存储卡101传送写入指令和写入开始地址。接收到该指令和开始地址后,MPU105检索ECC错误表111的登录状态(S901)。具体地讲,检查写入对象的物理块的地址是否与ECC错误记录的错误块601的值一致。9 is a flowchart of ECC error table update and bad block registration at the time of physical erasing performed before data writing. When the external master device writes data in the memory card 101 , the external master device transmits a write command and a write start address to the memory card 101 . Upon receiving the command and the start address, the MPU 105 searches the registration status of the ECC error table 111 (S901). Specifically, it is checked whether the address of the physical block to be written matches the value of the error block 601 of the ECC error record.

在S901的检索中,在没有与写入对象的物理块一致的ECC错误记录#i时,判断为没有登录(S902),不进行ECC错误表111的登录,结束登录处理。反之,在有一致的ECC错误记录#i时,判断为有登录(S902)。而且,当只有错误发生信息602是“1”,错误块清除信息603和错误再发生信息604是“0”时,仅在错误发生信息602中有记录。判断为是发生了读出错误以后的最初的物理清除(S903)。这种情况下,在错误块清除信息603中登录“1”,结束ECC错误表111的更新(S907)。In the search at S901, if there is no ECC error record #i that matches the physical block to be written, it is determined that there is no registration (S902), no registration is performed in the ECC error table 111, and the registration process ends. Conversely, when there is a matching ECC error record #i, it is judged that there is registration (S902). Also, when only the error occurrence information 602 is "1" and the error block clear information 603 and error reoccurrence information 604 are "0", only the error occurrence information 602 is recorded. It is judged to be the first physical erasing after a read error has occurred (S903). In this case, "1" is registered in the error block clear information 603, and the update of the ECC error table 111 is completed (S907).

其次,当错误发生信息602和错误块清除信息603是“1”,错误再发生信息604是“0”时,成为直到错误块清除信息603为止有记录(S904)。由此可知虽然以前发生了错误但是在进行了物理清除以后的写入中没有发生错误。即,判断为最初发生的错误是偶发性的错误。这时,撤消该ECC错误记录#i的登录,结束ECC错误表111的更新(S906)。通过使图6(a)的ECC错误记录#i的错误块601的值成为无效值进行登录的撤消。Next, when the error occurrence information 602 and the error block clear information 603 are "1" and the error recurrence information 604 is "0", there is a record up to the error block clear information 603 (S904). From this, it can be seen that although an error occurred before, no error occurred in writing after physical erasing. That is, it is determined that the error that occurred first is an accidental error. At this time, the registration of the ECC error record #i is cancelled, and the update of the ECC error table 111 is completed (S906). Registration is canceled by making the value of the error block 601 of the ECC error record #i in FIG. 6( a ) an invalid value.

另外,如图6(d)那样,在不仅是错误发生信息602和错误块清除信息603,直至错误再发生信息604为止全部是“1”时,可知以前发生了读出错误,在对该物理块进行了物理清除以后写入的数据中也还发生了读出错误。这种情况下,判断为是起因于固有不良的错误,作为不良块登录发生了错误的物理块(S905)。接着,撤消该物理块的ECC错误记录#i的登录,结束ECC错误表111的更新(S906)。In addition, as shown in FIG. 6( d), when not only the error occurrence information 602 and the error block clear information 603, but also the error reoccurrence information 604 are all "1", it can be seen that a read error has occurred before. Read errors also occur in data written after the block has been physically erased. In this case, it is judged that it is an error caused by an inherent defect, and the physical block in which the error occurred is registered as a defective block (S905). Next, the registration of the ECC error record #i of the physical block is cancelled, and the update of the ECC error table 111 is completed (S906).

如前面说明过的那样,S905的不良块登录是指在BB表112中,在与该物理块的地址相对应的BB记录i中登录比特“0”。虽然通过BB记录i的登录完成不良块的登录,但仅此并不能限制不良块的使用。因此,对于在BB记录i中作为比特0登录了的物理块,在项目表113上登录比特“0”。如果在项目表113中登录比特“0”,则由于不良块被处理为写入完毕块,因此能够限制使用不良块。总之,通过对作为不良块登录在BB记录i中的物理块、在项目表中登录比特“0”,能够防止使用不良块。As described above, the bad block registration in S905 refers to registering bit "0" in the BB record i corresponding to the address of the physical block in the BB table 112 . Although the registration of bad blocks is completed through the registration of BB record i, this alone cannot limit the use of bad blocks. Therefore, bit “0” is registered in the entry table 113 for the physical block registered as bit 0 in the BB record i. If the bit "0" is registered in the entry table 113, the use of defective blocks can be limited because the defective blocks are treated as written blocks. In short, by registering a bit "0" in the entry table for a physical block registered as a defective block in the BB record i, it is possible to prevent the use of a defective block.

本实施例的特征是只有在发生的读出错误不能纠正时进行ECC错误表的登录和更新,以物理块地址单位把ECC错误表内的ECC错误记录进行分录,在同一个物理块中,在物理清除前后连续发生了两次错误时进行不良块登录。在本实施例中,ECC错误表具有用于判断所发生的错误是偶发性的还是由固有不良引起的信息。即,如果在最初的读出错误发生以后物理清除该物理块的数据,在新写入的数据中不发生读出错误,则能判断为最初的错误是偶发性的错误。如果在最初的读出错误发生以后,即使物理清除该物理块的数据,在新写入的数据中仍然发生读出错误,则能判断为是由固有不良引起的错误。这样,本实施例能准确地判定是偶发性的错误还是由固有不良引起的错误。另外,根据其判断,通过不使用固有不良的物理块,产生降低读出错误这样的效果。The feature of this embodiment is that only when the reading error that takes place can not be corrected, the registration and updating of the ECC error table is carried out, and the ECC error record in the ECC error table is recorded with the physical block address unit, and in the same physical block, Bad block registration is performed when two consecutive errors occur before and after physical clearing. In this embodiment, the ECC error table has information for judging whether an error that has occurred is accidental or caused by an inherent defect. That is, if the data of the physical block is physically erased after the first read error occurs, and no read error occurs in the newly written data, it can be determined that the first error is a sporadic error. If a read error still occurs in newly written data even if the data of the physical block is physically erased after the first read error occurs, it can be determined that the error is caused by an inherent defect. Thus, in this embodiment, it is possible to accurately determine whether an error is a sporadic error or an error caused by an inherent defect. In addition, based on this determination, there is an effect of reducing read errors by not using inherently defective physical blocks.

(实施例2)(Example 2)

图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。FIG. 1 shows the structure of the nonvolatile memory device in this embodiment. The memory card 101 includes a memory controller 102 and a flash memory 103 as a nonvolatile memory. The components included in the memory controller 102 are the same as those described in the first embodiment.

图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。FIG. 2 is a block diagram showing the internal structure of the flash memory 103. The interior of the flash memory 103 is composed of 1024 physical blocks PB0 to PB1023. FIG. 3 is a block diagram showing the internal structure of a physical block, and each physical block includes 64 physical pages PP0 to PP63. These are the same as those described in the first embodiment.

图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。The ECC error table 111 shown in FIG. 5 includes a plurality of ECC error records #i, as described in the first embodiment.

图10表示本实施例的ECC错误记录#i的结构。图10中,除去在第1实施例的图6中表示的错误块601、错误发生信息602、错误块清除信息603、错误再发生信息604以外,还具备错误页1001。该错误页1001由于作为信息具有检测出了读出错误的物理页的地址,因此ECC错误记录#i能够以物理页为单位构成。Fig. 10 shows the structure of the ECC error record #i of this embodiment. In FIG. 10, an error page 1001 is provided in addition to the error block 601, error occurrence information 602, error block clear information 603, and error reoccurrence information 604 shown in FIG. 6 of the first embodiment. Since this error page 1001 has the address of the physical page in which the read error was detected as information, the ECC error record #i can be configured in units of physical pages.

本实施例的非易失性存储装置中的数据读出根据图7表示的流程图进行,除去S707以外的各步骤中的处理与第1实施例相同。这里使用图11,说明在S703中不能纠正错误时进行的S707的ECC错误表登录。首先,MPU105检索ECC错误表111的登录状态,搜索在错误块601中具有发生了读出错误的物理块的地址,而且,在错误页1001中具有发生了该错误的物理页的地址的ECC错误记录#i(S1101)。Data reading in the nonvolatile memory device of this embodiment is performed according to the flowchart shown in FIG. 7, and the processing in each step except S707 is the same as that of the first embodiment. Here, using FIG. 11, the ECC error table registration in S707 performed when the error cannot be corrected in S703 will be described. First, the MPU 105 searches the registration status of the ECC error table 111, searches for an ECC error that has the address of the physical block in which the read error occurred in the error block 601, and has the address of the physical page in which the error occurred in the error page 1001. #i is recorded (S1101).

在S1101的检索中没有相应的ECC错误记录#i的情况下,MPU105判断为没有ECC错误记录#i的登录(S1102),把错误发生的信息新登录到ECC错误记录#i中(S1103)。该登录通过在错误块601中写入存在发生了错误的页的物理块的地址,在错误发生信息602中写入表示发生读出错误的“1”,在错误页1001中写入发生了错误的页的物理页地址来完成。在本次登录中不需要的错误块清除信息603、错误再发生信息604中登录表示初始值的“0”。If there is no corresponding ECC error record #i in the search in S1101, MPU 105 judges that there is no ECC error record #i registered (S1102), and newly registers error occurrence information in ECC error record #i (S1103). In this registration, the address of the physical block containing the page in which the error occurred is written in the error block 601, "1" indicating that a read error has occurred is written in the error occurrence information 602, and the error occurred in the error page 1001. The physical page address of the page to complete. "0" indicating an initial value is registered in the error block clear information 603 and the error recurrence information 604 that are unnecessary for this registration.

在S1102中判断为有登录的情况下,MPU105判断是否是物理清除后的读出错误(S1104)。即,如果有登录的ECC错误记录#i的错误块清除信息603是“0”,则MPU105判断为尚未进行物理清除,不是物理清除后的读出错误,不进行ECC错误记录#i的更新而结束。该判断以只要读出相同物理页的相同数据,则无论读出错误发生多少次也不能判断是偶发性错误还是由固有不良引起的错误为依据。When it is determined in S1102 that there is a registration, MPU 105 determines whether or not it is a read error after physical clearing (S1104). That is, if the error block clear information 603 of the registered ECC error record #i is "0", the MPU 105 judges that the physical clear has not yet been performed, and it is not a read error after the physical clear, and the update of the ECC error record #i is not performed. Finish. This determination is based on the fact that as long as the same data on the same physical page is read, no matter how many times a read error occurs, it cannot be determined whether it is a random error or an error caused by an inherent defect.

图9是表示物理清除时的ECC错误表更新和不良块登录的流程图,由于与第1实施例相比S901的处理不同因此进行说明。如果根据作为物理清除单位的物理块地址进行S901的检索,则有时检测出若干个物理块地址相同、物理页地址不同的ECC错误记录#i。即,检索出多个错误块601的值相同、错误页1001的值不同的ECC错误记录#i(S901)。由于按照在S901中检测出的顺序,检测出的多个ECC错误记录#i成为下一个步骤中的处理对象,因此S902以后的处理与第1实施例相同。FIG. 9 is a flowchart showing updating of the ECC error table and registration of defective blocks during physical erasure, and will be described because the processing of S901 is different from that of the first embodiment. If the search in S901 is performed based on the physical block address which is the unit of physical clearing, several ECC error records #i having the same physical block address but different physical page addresses may be detected. That is, a plurality of ECC error records #i having the same value of the error block 601 and different values of the error page 1001 are retrieved (S901). Since the plurality of ECC error records #i detected in the order detected in S901 are to be processed in the next step, the processing after S902 is the same as that in the first embodiment.

另外,不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。In addition, the method of registering a bad block and the method of preventing the use of a bad block by registering in the item table are the same as those of the first embodiment.

本实施例的特征是在ECC错误记录#i的结构中具备错误页1001,对每一个物理页的地址新登录ECC错误记录#i。这样,即使在同一个物理块内连续发生了错误的情况下也能区分是在不同物理页中发生的错误,还是在同一物理页中发生的错误,能够高精度地判断是偶发性的错误还是由固有不良引起的错误。The present embodiment is characterized in that an error page 1001 is provided in the structure of the ECC error record #i, and the ECC error record #i is newly registered for each physical page address. In this way, even if errors occur consecutively in the same physical block, it is possible to distinguish whether errors occurred in different physical pages or errors occurred in the same physical page, and it is possible to judge with high precision whether it is a sporadic error or an error. Errors caused by inherent badness.

另外,在本实施例中,把进行读出的页单位作为写入的最小单位即物理页,而即使使用所构成的系统的读出单位或者添加ECC码的单位,也能够进行比物理块单位的错误管理精度更高的错误管理。也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。In addition, in this embodiment, the page unit for reading is taken as the minimum unit of writing, that is, the physical page, and even if the reading unit of the configured system or the unit of ECC code is used, it is possible to compare the physical block unit. Error management with higher precision error management. It is also possible to register and update the ECC error table irrespective of whether or not the read error can be corrected.

(实施例3)(Example 3)

图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。FIG. 1 shows the structure of the nonvolatile memory device in this embodiment. The memory card 101 includes a memory controller 102 and a flash memory 103 as a nonvolatile memory. The components included in the memory controller 102 are the same as those described in the first embodiment.

图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。FIG. 2 is a block diagram showing the internal structure of the flash memory 103. The interior of the flash memory 103 is composed of 1024 physical blocks PB0 to PB1023. FIG. 3 is a block diagram showing the internal structure of a physical block, and each physical block includes 64 physical pages PP0 to PP63. These are the same as those described in the first embodiment.

图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。The ECC error table 111 shown in FIG. 5 includes a plurality of ECC error records #i, as described in the first embodiment.

图12表示本实施例的ECC错误记录#i的结构。图12表示ECC错误记录#i的信息组和保存在ECC错误记录#i中的信息的变化。错误块1201保存发生了错误的物理块的物理地址。错误计数1202保存发生了读出错误的次数。如果在经过该物理块的物理清除而新写入的数据中又发生了读出错误,则把错误计数1202的错误次数加1。错误块清除计数1203表示对发生读出错误的物理块进行了物理清除的次数。Fig. 12 shows the structure of the ECC error record #i of this embodiment. Fig. 12 shows the information group of the ECC error record #i and the change of the information stored in the ECC error record #i. The error block 1201 stores the physical address of the physical block where the error occurred. The error count 1202 stores the number of read errors that have occurred. If a read error occurs in the data newly written after the physical erasing of the physical block, the number of errors in the error count 1202 is incremented by 1. The error block clear count 1203 indicates the number of times physical clearing has been performed on a physical block in which a read error has occurred.

根据图7表示的流程图进行本实施例的非易失性存储装置中的数据的读出,除去S707以外的各步骤中的处理与第1实施例相同。这里,说明在S703中不能纠正错误时进行的S707的ECC错误表登录。Data reading in the nonvolatile memory device of this embodiment is performed according to the flowchart shown in FIG. 7, and the processing in each step except S707 is the same as that of the first embodiment. Here, the ECC error table registration in S707 performed when the error cannot be corrected in S703 will be described.

图13表示ECC错误表的登录处理。首先,MPU105检索ECC错误表111的登录状态(S1301)。具体地讲,是用于搜索在错误块601中具有发生了读出错误的物理块地址的ECC错误记录#i的检索。Fig. 13 shows registration processing of the ECC error table. First, the MPU 105 searches the registration status of the ECC error table 111 (S1301). Specifically, it is a search for an ECC error record #i having a physical block address in which a read error has occurred in the error block 601 .

在S1301的检索中,在没有物理地址一致的ECC错误记录#i的情况下,MPU105判断为没有登录(S1302),新登录ECC错误记录#i(S1303)。图12(b)表示新登录后的状态。在错误块1201中,作为有效值写入发生了读出错误的物理块的地址。在错误计数1202中,写入表示发生了1次读出错误的“1”。在错误块清除计数1203中,写入表示错误发生后的物理清除次数是0次的“0”。In the search in S1301, when there is no ECC error record #i whose physical address matches, MPU 105 judges that it is not registered (S1302), and newly registers ECC error record #i (S1303). Fig. 12(b) shows the state after new login. In the error block 1201, the address of the physical block where the read error occurred is written as a valid value. In the error count 1202, "1" indicating that a read error has occurred once is written. In the error block clear count 1203, "0" indicating that the number of times of physical erasure after the occurrence of an error is 0 is written.

在S1302中判断为有登录时,MPU105参照登录的ECC错误记录#i,判断是否是物理清除后发生的最初的错误(S1304)。具体地讲,把在S1301中检测出的ECC错误记录#i的错误计数1202与错误块清除计数1203进行比较。错误计数1202如果是比错误块清除计数1203大的值,则判断为ECC错误记录#i的紧接之前的更新是由发生读出错误引起的错误计数1202的增加。由于在发生了读出错误以后没有进行物理清除,因此不更新ECC错误记录#i,结束ECC错误表111的登录。一旦登录或者更新了错误计数1202以后,只要没有进行该物理块201的物理清除,则无论发生多少次读出错误也不能判断是偶发性的错误还是由固有不良引起的错误。由此,如果错误计数1202是比错误块清除计数1203大的值,则不会使错误计数1202进一步增加。When it is judged in S1302 that there is a registration, the MPU 105 refers to the registered ECC error record #i, and judges whether or not it is the first error that occurred after physical clearing (S1304). Specifically, the error count 1202 of the ECC error record #i detected in S1301 is compared with the error block clear count 1203 . If the error count 1202 is a value larger than the error block clear count 1203, it is determined that the immediately preceding update of the ECC error record #i is an increase in the error count 1202 due to the occurrence of a read error. Since no physical clearing is performed after the occurrence of a read error, the ECC error record #i is not updated, and the registration in the ECC error table 111 is completed. Once the error count 1202 is registered or updated, as long as the physical block 201 is not physically cleared, no matter how many read errors occur, it cannot be determined whether it is a sporadic error or an error caused by an inherent defect. Therefore, if the error count 1202 is a value larger than the error block clear count 1203, the error count 1202 will not be further increased.

其次,如果错误计数1202与错误块清除计数1203的值相同,则判断为ECC错误记录#i的紧接之前的更新是由物理清除引起的错误块清除计数1203的增加。由于发生了错误以后进行了物理清除,因此MPU105判断为在物理清除后发生了读出错误,转移到S1305。而且在图12中,如从(c)向(d),从(e)向(f)变化那样,把错误计数1202的信息增加1进行改写后,结束表的更新。作为应该更新ECC错误记录#i的内容的读出错误是指对一旦发生了读出错误的物理块进行了物理清除以后,即使在新写入的数据中又发生的读出错误。Next, if the value of the error count 1202 and the error block clear count 1203 are the same, it is judged that the immediately preceding update of the ECC error record #i is an increase of the error block clear count 1203 caused by physical clear. Since the physical erasing was performed after the error occurred, MPU 105 judges that a read error has occurred after the physical erasing, and proceeds to S1305. In FIG. 12, the information of the error count 1202 is incremented by 1, and the update of the table is completed, such as changing from (c) to (d) and from (e) to (f). A read error that should update the content of the ECC error record #i refers to a read error that occurs even in newly written data after the physical block in which a read error once occurred is physically cleared.

图14是在数据写入之前的物理清除时的ECC错误表更新的流程图。首先,MPU105检索ECC错误表111的登录状态(S1401)。具体地讲,是用于搜索在错误块1201中具有作为物理清除对象的闪速存储器103的物理块地址的ECC错误记录的检索。FIG. 14 is a flowchart of updating the ECC error table at the time of physical erasure before data writing. First, the MPU 105 searches the registration status of the ECC error table 111 (S1401). Specifically, it is a search for an ECC error record having a physical block address of the flash memory 103 to be physically erased in the error block 1201 .

在S1401的检索中,在没有物理地址一致的ECC错误记录#i的情况下,MPU105判定为没有登录(S1402),不更新ECC错误表111而结束。在S1401的检索中有相应的ECC错误记录#i的情况下,判定为有登录(S1402)。In the search at S1401, when there is no ECC error record #i whose physical address matches, the MPU 105 determines that there is no registration (S1402), and ends without updating the ECC error table 111 . When there is a corresponding ECC error record #i in the search in S1401, it is determined that there is registration (S1402).

接着,MPU105参照ECC错误记录#i,判定是否是发生了物理清除后的错误(S1403)。具体地讲,把错误计数1202与错误块清除计数1203进行比较,如果两者是相同的值,则ECC错误记录#i的紧接之前的更新是由物理清除引起的物理块清除计数1203的增加,判断为在清除以后没有发生错误。由此,判断为在物理清除前发生的读出错误是偶发性的错误。该判断以后,MPU105消除ECC错误记录#i的登录(S1404),结束ECC错误表111的更新。如图12(a)那样,通过使错误块1201的值成为无效值,能够消除登录。Next, the MPU 105 refers to the ECC error record #i to determine whether or not an error after physical clearing has occurred (S1403). Specifically, the error count 1202 is compared with the error block clear count 1203, and if both are the same value, the immediately preceding update of the ECC error record #i is an increase in the physical block clear count 1203 caused by the physical clear , it is judged that no error has occurred after clearing. Therefore, it is judged that the read error occurring before the physical erasure is a sporadic error. After this determination, the MPU 105 deletes the registration of the ECC error record #i (S1404), and ends the update of the ECC error table 111. As shown in FIG. 12( a ), by setting the value of the error block 1201 to an invalid value, the registration can be canceled.

另外,把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)。In addition, the error count 1202 of the ECC error record #i is compared with the error block clear count 1203, and if the error count 1202 is a value larger than the error block clear count 1203, it can be determined that the ECC error record #i is immediately before The update is an increase of the error count 1202 due to the occurrence of an error, and the cleared error occurred in S1403. The MPU 105 refers to the error count 1202 (S1405), and determines whether or not it is within a predetermined number of times. If it is within the predetermined number of times, since bad block registration is unnecessary, the value of the error block clear count 1203 of the ECC error table 111 is incremented by 1 (S1406), and the update of the ECC error table 111 is completed. If the number of errors exceeds the predetermined number of times in S1405, it is regarded as a physical block inherently defective, and defective block registration is performed. The bad block registration means that it is registered in the BB record i corresponding to the address of the physical block (S1407). After the registration of the bad block, the registration of the ECC error record #i of the physical block is deleted (S1404).

不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。The method of registering bad blocks and the method of preventing the use of bad blocks by registering in the item table are the same as those of the first embodiment.

在使用了如多值闪速存储器那样偶发性比特错误的发生频率高的闪速存储器的存储装置的情况下,有时在同一个物理块或者页中,在物理清除前后,连续发生偶发性的比特错误。这种情况下,会作为不良块登录没有固有不良的该物理块,限制使用该物理块并不适宜。因此本实施例能够把直到进行不良块登录为止的错误发生次数任意地设定为大于等于3次的次数。通过把直到进行不良块登录为止的错误发生次数的规定值取为大的值,能够准确地检测固有不良。In the case of a storage device using a flash memory with a high occurrence frequency of sporadic bit errors such as a multi-valued flash memory, sporadic bit errors may occur consecutively before and after physical erasure in the same physical block or page. mistake. In this case, the physical block that is not inherently defective is registered as a bad block, and it is not appropriate to restrict the use of this physical block. Therefore, the present embodiment can arbitrarily set the number of times of occurrence of errors until a bad block is registered to be three or more. By setting the predetermined value of the number of times of error occurrence until a defective block is registered to a large value, it is possible to accurately detect an inherent defect.

另外,也可以在本实施例的ECC错误记录#i中添加记录物理块页的错误页信息,以物理页单位登录错误表。另外,也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。In addition, the error page information of the physical block page may be recorded in the ECC error record #i of this embodiment, and the error table may be registered in units of physical pages. In addition, the registration and update of the ECC error table may be performed regardless of whether the read error can be corrected or not.

(实施例4)(Example 4)

图1表示本实施例中的非易失性存储装置的结构。存储卡101具备存储控制器102和作为非易失性存储器的闪速存储器103。包含在存储控制器102中的各结构要素与在第1实施例中说明过的相同。FIG. 1 shows the structure of the nonvolatile memory device in this embodiment. The memory card 101 includes a memory controller 102 and a flash memory 103 as a nonvolatile memory. The components included in the memory controller 102 are the same as those described in the first embodiment.

图2是表示闪速存储器103的内部结构的框图,闪速存储器103的内部由PB0~PB1023共1024个物理块构成。图3是表示物理块的内部结构的框图,各个物理块具备64个物理页PP0~PP63。这些与在第1实施例中说明过的相同。FIG. 2 is a block diagram showing the internal structure of the flash memory 103. The interior of the flash memory 103 is composed of 1024 physical blocks PB0 to PB1023. FIG. 3 is a block diagram showing the internal structure of a physical block, and each physical block includes 64 physical pages PP0 to PP63. These are the same as those described in the first embodiment.

图5表示的ECC错误表111具备多个ECC错误记录#i,与在第1实施例中说明过的相同。The ECC error table 111 shown in FIG. 5 includes a plurality of ECC error records #i, as described in the first embodiment.

图15是本实施例的非易失性存储装置中的数据读出的流程图。S1501中的处理是与第1实施例中的S701相同的处理。FIG. 15 is a flowchart of data reading in the nonvolatile memory device of this embodiment. The processing in S1501 is the same processing as in S701 in the first embodiment.

在S1501以后,ECC电路109对读出的数据判定是否发生了读出错误(S1502)。在没有发生读出错误的情况下,MPU105对主接口104指示数据向外部主设备的输出(S1506)。然后只要继续进行读出(S1507),则以读出的单位增加地址,同时,循环到S1501,继续进行数据的读出处理。After S1501, the ECC circuit 109 determines whether or not a read error has occurred in the read data (S1502). When no read error occurs, MPU 105 instructs host interface 104 to output data to an external master (S1506). Then, as long as the reading is continued (S1507), the address is incremented by the unit of reading, and at the same time, the loop goes to S1501, and the data reading process is continued.

判定是否发生了读出错误(S1502),在发生了读出错误的情况下,对ECC错误表111进行ECC错误记录#i的登录(S1503)。如果结束向ECC错误表111的登录,则ECC电路109判断能否对其读出错误进行纠正(S1504),在能纠正的情况下纠正读出错误(S1505)。在读出错误的纠正以后,输出读出数据,判定是否继续数据的读出(S1507)。另外,在不能纠正读出错误的情况下(S1504),立即结束读出。It is determined whether a read error has occurred (S1502), and if a read error has occurred, the ECC error record #i is registered in the ECC error table 111 (S1503). When registration to the ECC error table 111 is completed, the ECC circuit 109 judges whether the read error can be corrected (S1504), and corrects the read error if correctable (S1505). After the reading error is corrected, the read data is output, and it is judged whether to continue reading the data (S1507). Also, when the read error cannot be corrected (S1504), the read is immediately terminated.

在本实施例中,只要检测出读出错误,则就与能否纠正错误无关,进行ECC错误表111的登录。ECC错误表111的登录方法与第1实施例相同,如图8所示。In the present embodiment, as long as a read error is detected, registration in the ECC error table 111 is performed regardless of whether the error can be corrected or not. The method of registering the ECC error table 111 is the same as that of the first embodiment, as shown in FIG. 8 .

数据写入之前进行的物理清除时的ECC错误表更新和不良块登录与第1实施例相同,如图9所示。The updating of the ECC error table and registration of bad blocks at the time of physical erasing before data writing are the same as those in the first embodiment, as shown in FIG. 9 .

不良块登录的方法和通过向项目表的登录防止使用不良块的方法与第1实施例相同。The method of registering bad blocks and the method of preventing the use of bad blocks by registering in the item table are the same as those of the first embodiment.

在用如二值闪速存储器那样偶发性比特错误的发生频率低的闪速存储器103构成存储卡的情况下,不能纠正的错误在物理清除前后连续发生2次的频率非常低,几乎所有的错误都能纠正。即使是起因于固有不良的错误,由于大多能纠正,因此只有在不能纠正错误的情况下进行ECC错误表的登录时,不能准确地检测出存在固有不良的物理块。与此不同,在本实施例如果检测出比特错误,则与能否纠正错误无关,在ECC错误表中登录ECC错误记录#i,因此即使是偶发性比特错误的发生频率低的闪速存储器,也能适宜地限制使用存在固有不良的物理块。In the case where the memory card is constituted by a flash memory 103 with a low occurrence frequency of sporadic bit errors such as a binary flash memory, the frequency of uncorrectable errors occurring twice consecutively before and after physical erasure is very low, and almost all errors can be corrected. Even errors caused by inherent defects can be corrected in most cases, so only when the registration of the ECC error table is performed when the errors cannot be corrected, the physical blocks having inherent defects cannot be accurately detected. On the other hand, in this embodiment, if a bit error is detected, the ECC error record #i is registered in the ECC error table regardless of whether the error can be corrected. It may also be desirable to limit the use of inherently bad physical blocks.

另外,也可以在本实施例的ECC错误记录#i上添加记录物理块页的错误页信息,以物理页单位登录错误表。另外,也可以与能否纠正读出错误无关进行ECC错误表的登录和更新。In addition, it is also possible to add and record error page information of a physical block page to the ECC error record #i of this embodiment, and register the error table in units of physical pages. In addition, the registration and update of the ECC error table may be performed regardless of whether the read error can be corrected or not.

(实施例5)(Example 5)

图16表示如果反复读出写入在某一个物理块中的数据,则与读出的次数相应,增加比特错误的状况。图中,网格图案表示发生的错误的比特数,随着读出次数增加,向表示ECC电路的纠错能力的可进行ECC纠正的比特数的虚线增加。以为了进行数据读出而施加到存储单元上的电压等为原因,写入到存储单元中的比特发生变化,发生这样的错误。在本实施例中,把这样的错误称为进行性错误。FIG. 16 shows how bit errors increase in accordance with the number of reads when data written in a certain physical block is repeatedly read. In the figure, the grid pattern indicates the number of erroneous bits that have occurred, and as the number of times of reading increases, the dotted line increases toward the number of bits that can be corrected by ECC, which indicates the error correction capability of the ECC circuit. Such an error occurs because a bit written in a memory cell changes due to a voltage applied to the memory cell for data reading or the like. In this embodiment, such an error is called a progressive error.

在用图16的E/W表示的位置表示数据的清除和写入,表示在清除了物理块的数据以后,在该相同的物理块中写入新的数据。虽然紧接在E/W的后面暂时没有进行性错误,然而如果增加数据的读出次数,则由于进行性错误的比特数逐渐增加,因此在ECC电路的纠错能力方面没有余量。在保持这样的状态下反复进行数据的读出,则发生超过ECC电路的纠正能力的比特数的错误,并不优选。为此,将纠正阈值设定为小于等于ECC电路的能够纠正的比特数,如果在从某个物理块读出的数据中检测出大于等于纠正阈值的比特数的错误,则纠正检测出的错误,把纠正了的该数据写入到其它的物理块中。通过这样做,暂时消除进行性错误,确保数据的安全性,同时,使ECC电路的纠错能力恢复余量。另外,在本实施例中,ECC电路的能够纠错的比特数和纠正阈值都取为4比特。在本实施例中,以下说明用于应对上述事态的方法。The position indicated by E/W in FIG. 16 indicates erasing and writing of data, which means that after erasing the data of the physical block, new data is written in the same physical block. There is no progressive error immediately after E/W, but if the number of data readouts is increased, the number of progressive error bits gradually increases, so there is no margin in the error correction capability of the ECC circuit. If data reading is repeated in this state, an error of the number of bits exceeding the correction capability of the ECC circuit will occur, which is not preferable. To this end, the correction threshold is set to be less than or equal to the number of bits that can be corrected by the ECC circuit, and if an error greater than or equal to the number of bits of the correction threshold is detected in the data read from a certain physical block, the detected error is corrected , and write the corrected data into other physical blocks. By doing so, progressive errors are temporarily eliminated, data security is ensured, and at the same time, a margin is restored to the error correction capability of the ECC circuit. In addition, in this embodiment, both the number of bits capable of error correction and the correction threshold of the ECC circuit are set to 4 bits. In this embodiment, a method for coping with the above situation will be described below.

以下,说明本实施例。图17是表示本实施例的非易失性存储装置的结构的框图。存储卡701具备存储控制器702和作为非易失性存储器的闪速存储器703。Hereinafter, this embodiment will be described. FIG. 17 is a block diagram showing the configuration of the nonvolatile memory device of this embodiment. The memory card 701 includes a memory controller 702 and a flash memory 703 as a nonvolatile memory.

图18是表示闪速存储器703的内部结构的框图。这里,说明具有1G比特容量的闪速存储器。闪速存储器703的内部由PB0~PB1023共1024个物理块构成。物理块在闪速存储器703中是数据清除的最小单位。一个物理块容量用128kB+4kB表示。这表示一个物理块的数据容量是128kB,进而在4kB的区域中写入ECC码或者该物理块的逻辑地址值等的管理数据。FIG. 18 is a block diagram showing the internal structure of the flash memory 703 . Here, a flash memory having a capacity of 1 Gbit will be described. The interior of the flash memory 703 is composed of 1024 physical blocks PB0 to PB1023. A physical block is the smallest unit of data erasing in the flash memory 703 . A physical block capacity is represented by 128kB+4kB. This means that the data capacity of one physical block is 128 kB, and management data such as an ECC code or a logical address value of the physical block is written in an area of 4 kB.

图19是表示物理块的内部结构的框图。闪速存储器703内的各个物理块具备64个物理页PP0~PP63。物理页在闪速存储器703中是数据写入的最小单位。1个物理页的容量是2kB+64B。这表示能够写入到1个物理页中的数据的容量是2kB,在其余的64B中写入包括ECC的管理数据。Fig. 19 is a block diagram showing the internal structure of a physical block. Each physical block in the flash memory 703 includes 64 physical pages PP0 to PP63. A physical page is the smallest unit of data writing in the flash memory 703 . The capacity of a physical page is 2kB+64B. This means that the capacity of data that can be written in one physical page is 2kB, and management data including ECC is written in the remaining 64B.

存储控制器702具有主接口704、地址表706、闪速接口707、缓冲存储器708、ECC电路709、MPU(小型运算单元)705。主接口704控制与连接在存储卡701的外部的主设备的接口。The memory controller 702 has a host interface 704 , an address table 706 , a flash interface 707 , a buffer memory 708 , an ECC circuit 709 , and an MPU (small arithmetic unit) 705 . The host interface 704 controls an interface with a host device connected to the outside of the memory card 701 .

地址表706是具有保存在闪速存储器703中的数据的管理信息的表,具有逻辑物理变换表710、ECC错误表711、项目表712。这些表保持在易失性存储器中。The address table 706 is a table having management information of data stored in the flash memory 703 , and includes a logical-physical conversion table 710 , an ECC error table 711 , and an entry table 712 . These tables are maintained in volatile memory.

逻辑物理变换表710是表示作为从存储卡701的外部指定的逻辑地址的逻辑块地址与作为闪速存储器703内部的物理地址的物理块地址的对应关系的表。逻辑物理变换表710用于从逻辑地址得到与该逻辑块相对应的物理地址。The logical-physical conversion table 710 is a table showing correspondence between logical block addresses that are logical addresses specified from outside the memory card 701 and physical block addresses that are physical addresses inside the flash memory 703 . The logical-physical conversion table 710 is used to obtain the physical address corresponding to the logical block from the logical address.

ECC错误表711具有发生了读出错误的物理块的物理地址、数据的物理清除的历史、或物理清除后的读出错误的发生历史等信息,在固有不良的物理块的检测中使用。The ECC error table 711 has information such as the physical address of a physical block where a read error has occurred, the history of physical erasure of data, or the history of occurrence of a read error after physical erasure, and is used to detect inherently defective physical blocks.

项目表712是具有分别用1比特表示对闪速存储器703的各个物理块、数据是写入完毕还是清除完毕的信息的表。例如,数据写入完毕的物理块用比特“0”表示,清除完毕的物理块用比特“1”表示。The entry table 712 is a table having information indicating whether data has been written or erased to each physical block of the flash memory 703 by 1 bit. For example, a physical block whose data has been written is represented by a bit "0", and a physical block whose data has been cleared is represented by a bit "1".

闪速接口707通过后述的MPU705的控制,在闪速存储器703中写入缓冲存储器708的数据,或者把闪速存储器703的数据写入到缓冲存储器708中,或者清除闪速存储器703的数据。缓冲存储器708是在外部的主设备与闪速存储器703之间的数据写入和读出时用于暂时保持数据的易失性存储器。The flash interface 707 writes the data of the buffer memory 708 into the flash memory 703 through the control of the MPU 705 described later, or writes the data of the flash memory 703 into the buffer memory 708, or clears the data of the flash memory 703 . The buffer memory 708 is a volatile memory for temporarily holding data when writing and reading data between an external host device and the flash memory 703 .

ECC电路709生成添加到从缓冲存储器708传送到闪速存储器703的写入数据上的ECC的代码。另外,ECC电路709是对于从闪速存储器703读出到缓冲存储器708的数据,进行ECC运算并检测错误,在其错误是可纠正的错误的情况下,纠正缓冲存储器708的数据的纠错电路。The ECC circuit 709 generates a code of ECC added to the write data transferred from the buffer memory 708 to the flash memory 703 . In addition, the ECC circuit 709 is an error correction circuit that performs an ECC operation on data read from the flash memory 703 to the buffer memory 708 to detect an error, and corrects the data in the buffer memory 708 when the error is a correctable error. .

MPU705是进行存储控制器702的整体控制的微机。在与主设备之间进行数据的写入和读出时,直接控制主接口704、ECC电路709、闪速接口707、地址表706。特别是在读出数据中有错误时,MPU705参照地址表706内的ECC错误表711的信息,根据需要进行ECC错误表711的更新。进而MPU705根据更新后的BB表的内容还进行项目表的更新。The MPU 705 is a microcomputer that performs overall control of the memory controller 702 . When writing and reading data with the host device, it directly controls the host interface 704, ECC circuit 709, flash interface 707, and address table 706. In particular, when there is an error in the read data, the MPU 705 refers to the information in the ECC error table 711 in the address table 706, and updates the ECC error table 711 as necessary. Furthermore, the MPU 705 also updates the item table based on the contents of the updated BB table.

图20表示ECC错误表711的结构。ECC错误表711由用16进制数表示的#0~#F的16个ECC错误记录#i构成。FIG. 20 shows the structure of the ECC error table 711. The ECC error table 711 is composed of 16 ECC error records #i of #0 to #F expressed in hexadecimal notation.

图21表示本实施例的ECC错误记录#i的结构。本实施例的ECC错误记录#i除去保存发生了错误的物理块的地址的错误块601、保存发生了错误的物理页的地址的错误页1001以外,还具备保存发生的错误的比特数的错误比特计数1601。该错误比特计数1601作为信息具有发生的读出错误的比特数,用ECC错误记录#i表示所发生的比特错误的程度。Fig. 21 shows the structure of the ECC error record #i of this embodiment. The ECC error record #i of this embodiment includes an error block 601 storing the address of the physical block in which the error occurred and an error page 1001 storing the address of the physical page in which the error occurred, as well as an error record for storing the bit number of the error occurred. Bit count 1601. This error bit count 1601 has the number of bits that have occurred read errors as information, and the degree of the bit errors that have occurred is indicated by ECC error record #i.

图22是本实施例的非易失性存储装置中的数据读出的流程图。MPU705向闪速存储器接口707指示进行读出的物理块的地址和物理页的地址,从闪速存储器703读出数据(S1701)。在S1707以后,ECC电路709对读出的数据判定是否发生了读出错误(S1702)。在没有发生读出错误的情况下,MPU705对主接口704指示数据向外部主设备的输出(S1707)。然后只要继续进行读出(S1708),则就以读出的单位增加地址,同时,循环到S1701,继续进行数据读出的处理。FIG. 22 is a flowchart of data reading in the nonvolatile memory device of this embodiment. The MPU 705 instructs the address of the physical block and the address of the physical page to be read to the flash memory interface 707, and reads data from the flash memory 703 (S1701). After S1707, the ECC circuit 709 determines whether or not a read error has occurred in the read data (S1702). When no read error occurs, the MPU 705 instructs the host interface 704 to output data to the external master (S1707). Then, as long as the reading is continued (S1708), the address is incremented by the unit of reading, and at the same time, the loop goes to S1701, and the data reading process is continued.

在S1702的判定中发生了读出错误的情况下,进行向ECC错误表711的登录(S1703)。如果向ECC错误表711的登录结束,则ECC电路709对于该读出错误判断是否小于等于可纠正的4比特(S1704)。在不能纠正读出错误的情况下(S1704),立即结束数据的读出。When a read error has occurred in the determination in S1702, registration to the ECC error table 711 is performed (S1703). When registration to the ECC error table 711 is completed, the ECC circuit 709 judges whether or not the read error is equal to or less than 4 bits that can be corrected (S1704). If the read error cannot be corrected (S1704), the data read is immediately terminated.

在能纠正的情况下,纠正读出错误(S1705)。在读出错误纠正以后,进行数据纠正复制处理(S1706),输出读出数据(S1707)。然后,判定是否继续进行读出(S1708)。If correctable, the read error is corrected (S1705). After the reading error is corrected, data correction copy processing is performed (S1706), and the read data is output (S1707). Then, it is determined whether to continue reading (S1708).

在本实施例中,如果检测出了读出错误,则与能否纠正无关,进行ECC错误表的登录。这里,使用图23的流程图说明ECC错误表的登录(S1703)的处理。In this embodiment, if a read error is detected, it is registered in the ECC error table irrespective of whether it can be corrected or not. Here, the process of registering the ECC error table (S1703) will be described using the flowchart of FIG. 23 .

在检测出了读出错误的情况下,MPU705检索ECC错误表711的登录状态(S1801)。具体地讲,检查发生了读出错误的物理块以及物理页的物理地址是否与ECC错误表711的某一个ECC错误记录#i的错误块601以及错误页1001的值一致。When a read error is detected, the MPU 705 searches the registration status of the ECC error table 711 (S1801). Specifically, it is checked whether the physical address of the physical block and the physical page in which the read error occurred matches the values of the error block 601 and the error page 1001 of any ECC error record #i in the ECC error table 711 .

其次,在S1801的检索中没有相应的ECC错误记录#i时,判断为没有登录(S1802)。接着,把错误块601、错误页1002和错误比特计数1603的各个值新登录到空的ECC错误记录#i中(S1803)。这时,如果发生了超过ECC电路709的纠正能力的大于等于5比特的错误,则由于不能决定登录在ECC错误记录#i中的错误比特计数,因此在这种情况下,登录可知不能纠正的值。例如,如果ECC电路709的最大纠正能力是4比特,则可以登录作为超过4比特的值的5。Next, when there is no corresponding ECC error record #i in the search in S1801, it is determined that there is no registration (S1802). Next, each value of the error block 601, the error page 1002, and the error bit count 1603 is newly registered in the empty ECC error record #i (S1803). At this time, if an error of 5 bits or more that exceeds the correction capability of the ECC circuit 709 occurs, the error bit count registered in the ECC error record #i cannot be determined. value. For example, if the maximum correction capability of the ECC circuit 709 is 4 bits, 5 can be registered as a value exceeding 4 bits.

在S1802中检测出了ECC错误记录#i的登录的情况下,MPU705判断本次发生的错误的比特计数是否比ECC错误记录#i的错误比特计数多(S1804)。把有登录的ECC错误记录#i的错误比特计数1601与本次读出中的错误比特计数进行比较,如果比特计数没有增加,则不进行ECC错误记录的更新而结束。在增加的情况下,把错误比特计数1601改写为增加后的值,结束ECC错误表的登录(S1805)。When registration of ECC error record #i is detected in S1802, MPU 705 determines whether or not the error bit count of the error occurring this time is larger than the error bit count of ECC error record #i (S1804). The error bit count 1601 of the registered ECC error record #i is compared with the error bit count currently being read, and if the bit count has not increased, the ECC error record is not updated and the process ends. When increasing, the error bit count 1601 is rewritten to the increased value, and registration of the ECC error table is completed (S1805).

其次,使用图24的流程图说明数据纠正复制处理(S1706)。在可纠正的错误的纠正(S1705)以后,MPU705进行今后是否可以继续读出本次读出的物理页的数据的判定。即,是为了判定在今后也继续进行数据的读出时,发生不可纠正的比特错误的可能性是否高,并进行适当的处理。Next, the data correction copy process (S1706) will be described using the flowchart of FIG. 24 . After the correction of the correctable error (S1705), the MPU 705 judges whether it is possible to continue reading the data of the physical page read this time in the future. That is, the purpose is to determine whether there is a high possibility that an uncorrectable bit error will occur when data reading is continued in the future, and to perform appropriate processing.

首先,从ECC错误记录#i取得错误比特计数1601的值(S1901)。接着,判定所取得的错误比特计数是否大于等于纠正阈值4比特(S1902)。如果错误比特计数小于纠正阈值4比特,则判断为今后即使错误比特增加,也不会立即达到不可纠正的读出错误,结束数据纠正复制处理。First, the value of the error bit count 1601 is acquired from the ECC error record #i (S1901). Next, it is determined whether or not the acquired error bit count is greater than or equal to the correction threshold value of 4 bits (S1902). If the error bit count is less than the correction threshold of 4 bits, it is judged that an uncorrectable read error will not be reached immediately even if the number of error bits increases in the future, and the data correction copy process is terminated.

在错误比特计数是4比特时,由于是与纠正阈值相等的值,因此进行纠正后数据的写入(S1903)。具体地讲,MPU705例如把缓冲存储器708中存在的纠正后的数据写入到闪速存储器703的任意的物理块中。这时,写入数据的物理块是读出了该数据的物理块以外的物理块。最后,消除关于发生了错误的物理块的ECC错误记录#i的登录(S1904)。When the error bit count is 4 bits, since it is equal to the correction threshold value, writing of corrected data is performed (S1903). Specifically, the MPU 705 writes the corrected data existing in the buffer memory 708 to an arbitrary physical block of the flash memory 703, for example. In this case, the physical block into which data is written is a physical block other than the physical block from which the data has been read. Finally, the registration of the ECC error record #i for the physical block in which the error occurred is deleted (S1904).

如以上那样,将发生大于等于纠正阈值的错误比特计数的物理页的数据判断为存在今后发展到不可纠正的读出错误的可能性,在可纠正的期间进行纠正,把纠正完毕的数据写入到其它物理块的物理页中。As above, it is judged that the data of the physical page whose error bit count is greater than or equal to the correction threshold has the possibility of developing into an uncorrectable read error in the future, corrects it during the correctable period, and writes the corrected data to physical pages of other physical blocks.

本实施例在所发生的比特错误的数是5比特或者6比特等,超过ECC电路的纠正能力,不能纠正错误时不进行数据纠正复制处理(S1706)。当能纠正错误时,当该错误的比特数在ECC电路709可纠正的范围内而且是大于等于纠正阈值的4比特时,把纠错后的数据写入到闪速存储器103的其它物理块中。In this embodiment, when the number of bit errors that occur is 5 bits or 6 bits, etc., exceeding the correction capability of the ECC circuit, and the error cannot be corrected, the data correction copying process is not performed (S1706). When the error can be corrected, when the number of bits of the error is within the correctable range of the ECC circuit 709 and is greater than or equal to 4 bits of the correction threshold, write the error-corrected data into other physical blocks of the flash memory 103 .

另外,这里在ECC错误表711的ECC错误记录#i中设置错误比特计数1601,但并不限于此,只要是表示错误的程度即可。例如,即使不是具体的比特数,使用作为表示是否大于等于纠正阈值的错误发生信息的标志,也可以实现本发明的效果,这一点能够很容易想到。进而,也可以仅在发生大于等于纠正阈值而且可纠错的错误时进行ECC错误表的登录。In addition, here, the error bit count 1601 is set in the ECC error record #i of the ECC error table 711, but it is not limited thereto, as long as it indicates the degree of error. For example, it is easily conceivable that the effect of the present invention can be achieved by using a flag as error occurrence information indicating whether or not the correction threshold value is greater than the specific number of bits. Furthermore, registration in the ECC error table may be performed only when a correctable error of equal to or greater than the correction threshold occurs.

另外,在本实施例中,由于以能进行比特纠正的ECC电路为前提,因此使用了错误比特计数1601。然而,在不是比特纠正而是以里德所罗门(Reed-Solomon)码等能进行符号纠正的纠错电路为前提的情况下,需要作为错误符号计数应用发生了错误的符号数的信息来代替错误比特计数。In addition, in this embodiment, since an ECC circuit capable of bit correction is assumed, the error bit count 1601 is used. However, when an error correction circuit capable of symbol correction such as Reed-Solomon code is assumed instead of bit correction, it is necessary to use information on the number of symbols in which errors occurred as error symbol counts instead of error codes. Bit count.

(实施例6)(Example 6)

图17表示本实施例中的非易失性存储装置的结构。存储卡701具备存储控制器702和作为非易失性存储器的闪速存储器703。包含在存储控制器702中的各结构要素与在第5实施例中说明过的相同。FIG. 17 shows the structure of the nonvolatile memory device in this embodiment. The memory card 701 includes a memory controller 702 and a flash memory 703 as a nonvolatile memory. The components included in the memory controller 702 are the same as those described in the fifth embodiment.

图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实施例相同。FIG. 18 is a block diagram showing the internal structure of the flash memory 103. The interior of the flash memory 703 is composed of 1024 physical blocks PB0 to PB1023. FIG. 19 is a block diagram showing the internal structure of a physical block, and each physical block in the flash memory 703 includes 64 physical pages PP0 to PP63. These are the same as those described in the fifth embodiment. As shown in FIG. 20 , the ECC error table 711 includes a plurality of ECC error records #i. In addition, the structure of the ECC error record #i of this embodiment is as shown in FIG. 21 . In addition to the error block 601 storing the address of the physical block in which the error occurred and the error page 1001 storing the address of the physical page in which the error occurred, ECC error record #i also includes an error bit count 1601 storing the number of bits of the error occurred. . These are the same as the fifth embodiment.

图25是本实施例的非易失性存储装置中的数据读出的流程图。首先,向闪速存储器接口707指示进行读出的物理块的地址和物理页的地址,从闪速存储器703读出数据(S2001)。S2001以后,ECC电路709对读出的数据判定是否发生了读出错误(S2002)。在没有发生读出错误时,MPU705对主接口704指示数据向外部主设备的输出(S2006)。然后只要继续进行读出(S2007),则就以读出的单位增加地址,同时,循环到S2001,继续进行数据读出的处理。FIG. 25 is a flowchart of data reading in the nonvolatile memory device of this embodiment. First, the address of the physical block and the address of the physical page to be read are instructed to the flash memory interface 707, and data is read from the flash memory 703 (S2001). After S2001, the ECC circuit 709 determines whether or not a read error has occurred in the read data (S2002). When no read error occurs, the MPU 705 instructs the host interface 704 to output data to the external master (S2006). Then, as long as the reading is continued (S2007), the address is incremented by the unit of reading, and at the same time, the loop goes to S2001, and the processing of data reading is continued.

在判定为有读出错误时(S2002)时,判定该错误能否纠正(S2003)。在判定为不能纠正时,立即结束读出处理。When it is determined that there is a read error (S2002), it is determined whether the error can be corrected (S2003). When it is determined that correction is impossible, the readout process is immediately terminated.

在判断为能纠正时,进行ECC错误表的登录(S2004)。这里的ECC错误表与在第5实施例的图23中说明过的处理相同地进行登录。在ECC错误表的登录后,在缓冲存储器708内纠正错误(S2005),MPU705对主接口704指示数据向外部主设备的输出(S2006)。然后只要继续进行读出(S2007),就以读出的单位增加地址,同时,循环到S2001,进行读出处理。When it is judged that it can be corrected, the registration of the ECC error table is performed (S2004). Here, the ECC error table is registered in the same manner as the processing described in FIG. 23 of the fifth embodiment. After registering the ECC error table, errors are corrected in the buffer memory 708 (S2005), and the MPU 705 instructs the host interface 704 to output data to an external master (S2006). Then, as long as the read is continued (S2007), the address is incremented by the read unit, and at the same time, the loop goes to S2001 to perform the read process.

在本实施例中,没有把在第5实施例中进行的数据纠正复制处理包含在数据读出的流程图中。这是因为在本实施例中,在数据的读出处理过程中没有进行数据向闪速存储器703的写入。一般与读出时间相比,闪速存储器的写入时间长,因此如果在数据的读出过程中进行这样花费时间的写入处理则导致处理性能的降低。从而,在数据的读出过程中没有进行向闪速存储器703的写入。In this embodiment, the data correction copy processing performed in the fifth embodiment is not included in the flow chart of data readout. This is because, in this embodiment, data is not written into the flash memory 703 during the data read process. In general, the writing time of a flash memory is longer than the reading time, and therefore, if such time-consuming writing processing is performed during data reading, the processing performance will be reduced. Therefore, writing to the flash memory 703 is not performed during data reading.

从而,在本实施例中,在没有进行其它处理的空闲的时间中进行数据纠正复制处理。所谓空闲的时间是指没有进行来自存储卡701外部的数据的写入和读出处理的期间、或者在存储卡701中投入了电源以后直到进行来自存储卡701外部的数据的写入和读出处理为止的期间。Therefore, in this embodiment, the data correction copy processing is performed in idle time when no other processing is performed. The so-called idle time refers to the period during which data writing and reading from the outside of the memory card 701 are not performed, or after the memory card 701 is powered on until the writing and reading of data from the outside of the memory card 701 is performed. period until processing.

使用图26的流程图说明在空闲时间中进行的数据纠正复制处理。MPU705在空闲时间中检索ECC错误表711的错误计数,选择错误比特计数1601成为大于等于纠正阈值的4比特的ECC错误记录#i(S2101)。这时如果没有相应的错误记录(S2102),则结束数据纠正复制处理。The data correction copy process performed during idle time will be described using the flowchart of FIG. 26 . The MPU 705 searches the error count of the ECC error table 711 during idle time, and selects the ECC error record #i whose error bit count 1601 is 4 bits or more equal to or greater than the correction threshold (S2101). At this time, if there is no corresponding error record (S2102), the data correction copying process ends.

在有相应的错误记录#i时,从错误记录#i的错误块601和错误页1001取得物理块和物理页的地址(S2103)。而且,把属于所取得的地址的数据读出到缓冲存储器708(S2104)。接着由ECC电路109纠正错误(S2105),把纠正后的数据写入到闪速存储器703的任意的物理块中(S2106)。这时写入数据的物理块是登录在该错误记录#i中的物理块以外的物理块。最后消除相应的错误记录#i的登录,结束处理(S2107)。When there is a corresponding error record #i, the addresses of the physical block and the physical page are obtained from the error block 601 and the error page 1001 of the error record #i (S2103). Then, the data belonging to the acquired address is read to the buffer memory 708 (S2104). Next, the error is corrected by the ECC circuit 109 (S2105), and the corrected data is written into an arbitrary physical block of the flash memory 703 (S2106). At this time, the physical block to which data is written is a physical block other than the physical block registered in the error record #i. Finally, the registration of the corresponding error record #i is deleted, and the process ends (S2107).

如以上那样,发生了大于等于纠正阈值的错误比特计数的物理页的数据由于被判断为今后有发展到不可纠正的读出错误的可能性,因此如上所述利用空闲时间进行错误的纠正,把纠正完毕的数据写入其它物理块的物理页中。这样,如果对1次写入的数据反复进行读出,虽然不良比特增加,然而通过纠正该数据、改写到其它的物理块中,能够避免不可纠正的读出错误。As described above, since the data of the physical page with the error bit count greater than or equal to the correction threshold is judged to have the possibility of developing into an uncorrectable read error in the future, the error correction is performed using the idle time as described above, and the The corrected data is written into physical pages of other physical blocks. In this way, if data written once is repeatedly read, defective bits increase, but uncorrectable read errors can be avoided by correcting the data and rewriting it to another physical block.

在本实施例中,当所发生的比特错误是不可纠正时,由于不进行ECC错误表的登录,因此也不进行数据纠正复制处理。也可以只有当在读出了某个物理页的数据时发生错误,该错误的错误比特数在能够由ECC电路709纠错的范围内而且超过了纠正阈值时,在闪速存储器703的其它物理块中写入纠错后的数据,在读出中使用,使得今后可以不进行来自该物理页的数据的读出。In this embodiment, when the generated bit error is uncorrectable, since the registration of the ECC error table is not performed, the data correction copy process is not performed either. It is also possible that only when an error occurs when the data of a certain physical page is read, and the number of error bits of the error is within the range that can be corrected by the ECC circuit 709 and exceeds the correction threshold, other physical pages in the flash memory 703 Error-corrected data is written in the block and used for reading, so that data from the physical page does not need to be read in the future.

另外,这里在ECC错误表711的ECC错误记录#i中设置错误比特计数1601,但不限于此,只要是表示错误的程度即可。例如,即使不是具体的比特数,使用作为表示是否超过了纠正阈值的错误发生信息的标志,也能够实现本发明的效果,这一点能够很容易想到。进而,也可以只有在发生了大于等于纠正阈值而且可纠错的错误时进行ECC错误表的登录。In addition, here, the error bit count 1601 is set in the ECC error record #i of the ECC error table 711, but it is not limited thereto, as long as it indicates the degree of error. For example, it is easily conceivable that the effect of the present invention can be achieved by using a flag as error occurrence information indicating whether or not a correction threshold value has been exceeded, even if the number of bits is not specific. Furthermore, registration in the ECC error table may be performed only when a correctable error greater than or equal to the correction threshold occurs.

另外,在本实施例中由于以能够进行比特纠正的ECC电路为前提,因此使用了错误比特计数1601。而在以不是比特纠正而是能够进行里德所罗门码等符号纠正的纠错电路为前提的情况下,需要作为错误符号计数应用发生了错误的符号数的信息来代替错误比特计数。In addition, in this embodiment, the error bit count 1601 is used because an ECC circuit capable of bit correction is assumed. On the other hand, in the case of an error correction circuit capable of symbol correction such as Reed-Solomon code instead of bit correction, it is necessary to use information on the number of symbols in which errors occurred as the error symbol count instead of the error bit count.

产业上的可利用性Industrial availability

本发明的非易失性存储装置由于通过检测非易失性存储器的固有不良、限制在以后使用该块,能够谋求降低读出错误,因此能够在使用了需要基于ECC的纠错的非易失性存储器的存储卡系统,例如,数字照相机的静止图像保存用的存储装置等中使用。The nonvolatile memory device of the present invention can reduce read errors by detecting inherent defects of the nonvolatile memory and restricting the use of the block in the future. It is used in a memory card system of permanent memory, for example, a storage device for storing still images of a digital camera.

Claims (26)

1.一种非易失性存储装置,具备非易失性存储器和存储控制器,该非易失性存储装置的特征在于,1. A non-volatile storage device comprising a non-volatile memory and a storage controller, wherein the non-volatile storage device is characterized in that, 上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,The nonvolatile memory includes a plurality of physical blocks as units of erasing, and the physical block has a plurality of physical pages as units of writing, 上述存储控制器具备:The above storage controllers have: 进行上述存储控制器内部中的整体控制的运算处理单元;An arithmetic processing unit for performing overall control inside the storage controller; 具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;An error correction circuit having a function of detecting an error in data read from the above-mentioned nonvolatile memory and a function of correcting the error when the error can be corrected; 保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,maintaining an address table of a table necessary for managing data held in the above-mentioned nonvolatile memory, 上述存储控制器的地址表具备:The address table of the memory controller above has: 具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;an error table having a plurality of error records, said error records being information related to said read error with respect to a physical block in which a read error has been detected by said error correction circuit; 记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表;A bad block table that records information related to addresses of physical blocks that prohibit data writing and reading; 具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;There is an item table for each physical block of the above-mentioned non-volatile memory, whether the data is written or cleared; 表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,a logical-physical conversion table representing conversion information between a logical block address externally specified by the master device and a physical block address of the nonvolatile memory, 上述错误表的错误记录具备:The error record of the above error table has: 当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;When the above-mentioned error correction circuit detects an error in the data read from the above-mentioned non-volatile memory, recording error block information representing information of an address of a physical block where an error has occurred; 记录表示发生了上述错误的信息的错误信息;Log an error message indicating that the above error has occurred; 记录表示在发生了上述错误以后、清除了上述物理块的信息的错误块清除信息;Recording error block clearing information indicating that the information of the above-mentioned physical block has been cleared after the above-mentioned error occurred; 表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,Error recurrence information indicating that a read error was detected again in the same physical block after information was recorded in the above error block clear information, 上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息,决定是否使用检测出了上述读出错误的物理块。The arithmetic processing unit registers and updates the error record of the error table based on the error detection from the error correction circuit, and when writing data in the non-volatile memory, refers to the error table, and when the physical When there is the above-mentioned error record in which the above-mentioned error block information and the above-mentioned error recurrence information are recorded, information related to the address of the physical block in which the above-mentioned data is written is recorded in the above-mentioned defective block table, and it is determined whether to use the Bad physical block. 2.根据权利要求1所述的非易失性存储装置,其特征在于,2. The non-volatile memory device according to claim 1, wherein: 上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。The error record in the error table further includes error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written. 3.根据权利要求1所述的非易失性存储装置,其特征在于,3. The non-volatile memory device according to claim 1, wherein: 上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。The arithmetic processing unit records and updates information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit. 4.根据权利要求2所述的非易失性存储装置,其特征在于,4. The non-volatile memory device according to claim 2, wherein: 上述运算处理单元只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。The arithmetic processing unit records and updates information in the error record of the error table only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit. 5.根据权利要求1所述的非易失性存储装置,其特征在于,5. The non-volatile memory device according to claim 1, wherein: 记录在上述错误信息中的、表示发生了错误的信息是发生了错误的次数,The information indicating that an error has occurred recorded in the above error message is the number of times an error occurred, 记录在上述错误块清除信息中的、表示清除了上述物理块的信息是对上述物理块进行了物理清除的次数,The information recorded in the above-mentioned error block clearing information indicating that the above-mentioned physical block has been cleared is the number of times that the above-mentioned physical block has been physically cleared, 上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录,并且对上述发生了错误的次数与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述发生了错误的次数的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。When the arithmetic processing unit writes data in the nonvolatile memory, referring to the error table, when there is the error record in which the error block information and the error recurrence information are recorded with respect to the physical block in which the data is written, and Comparing the above-mentioned number of times of occurrence of errors with the above-mentioned error block clear information, and the above-mentioned error block clear information indicates a predetermined number of times, and when the value of the above-mentioned number of times of error occurrence is greater than the above-mentioned error block clear information, in the above-mentioned bad block table Information related to the address of the physical block in which the above-mentioned data is written is recorded. 6.根据权利要求5所述的非易失性存储装置,其特征在于,6. The non-volatile memory device according to claim 5, wherein: 上述错误表的错误记录还具备写入了由上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。The error record in the error table further includes error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written. 7.根据权利要求5所述的非易失性存储装置,其特征在于,7. The non-volatile memory device according to claim 5, wherein: 上述运算处理单元中,In the above operation processing unit, 如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。If the error correction circuit detects a read error, an error record in the error table is registered and updated regardless of whether the error correction circuit can correct it. 8.根据权利要求6所述的非易失性存储装置,其特征在于,8. The non-volatile memory device according to claim 6, wherein: 上述运算处理单元中,In the above operation processing unit, 如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。If the error correction circuit detects a read error, an error record in the error table is registered and updated regardless of whether the error correction circuit can correct it. 9.一种非易失性存储装置,具备非易失性存储器和存储控制器,该非易失性存储装置的特征在于,9. A non-volatile storage device comprising a non-volatile memory and a storage controller, wherein the non-volatile storage device is characterized in that 上述非易失性存储器具备多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页,The nonvolatile memory includes a plurality of physical blocks as units of erasing, and the physical block has a plurality of physical pages as units of writing, 上述存储控制器具备:The above storage controllers have: 进行上述存储控制器内部中的整体控制的运算处理单元;An arithmetic processing unit for performing overall control inside the storage controller; 具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;An error correction circuit having a function of detecting an error in data read from the above-mentioned nonvolatile memory and a function of correcting the error when the error can be corrected; 保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,maintaining an address table of a table necessary for managing data held in the above-mentioned nonvolatile memory, 上述存储控制器的地址表具备:The address table of the memory controller above has: 具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;an error table having a plurality of error records, said error records being information related to said read error with respect to a physical block in which a read error has been detected by said error correction circuit; 具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;There is an item table for each physical block of the above-mentioned non-volatile memory, whether the data is written or cleared; 表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,a logical-physical conversion table representing conversion information between a logical block address externally specified by the master device and a physical block address of the nonvolatile memory, 上述错误表的错误记录具备:The error record of the above error table has: 写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;The error block information of the address of the physical block whose read error is detected by the above-mentioned error correction circuit is written; 写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;The error page information of the address of the physical page whose read error is detected by the above-mentioned error correction circuit is written; 记录表示上述读出错误的比特数的信息的错误比特计数,record an error bit count indicating the information of the above-mentioned number of read-out errors, 上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。The arithmetic processing unit registers and updates the error record in the error table according to the error detection from the error correction circuit, and uses a predetermined correction threshold to read out the error table whose error bit count information is greater than or equal to the correction threshold. The error records the data of the corresponding physical block, so that the above-mentioned error correction circuit corrects the error of the read data, and writes the corrected data into other physical blocks, wherein the above-mentioned correction threshold is less than or equal to the above-mentioned The value of the number of erroneous bits corrected by the error correction circuit. 10.根据权利要求9所述的非易失性存储装置,其特征在于,10. The non-volatile memory device according to claim 9, wherein: 上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。When the above-mentioned operation processing unit is not performing the data read process from the outside to the above-mentioned non-volatile memory, using a predetermined correction threshold value, read out the information of the above-mentioned error bit count greater than or equal to the above-mentioned error table. Misrecord the data of the corresponding physical block, so that the above-mentioned error correction circuit corrects the error of the read data, and writes the corrected data into other physical blocks, wherein the correction threshold is less than or equal to the The value of the number of errored bits corrected by the error circuit. 11.一种存储控制器,对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入,该存储控制器的特征在于,具备:11. A memory controller for controlling data reading and writing in a nonvolatile memory having a plurality of physical blocks as a unit of erasing, and said physical block having a plurality of physical pages as a unit of writing, The memory controller is characterized in that it has: 进行上述存储控制器内部中整体控制的运算处理单元;An arithmetic processing unit for performing overall control inside the storage controller; 具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;An error correction circuit having a function of detecting an error in data read from the above-mentioned nonvolatile memory and a function of correcting the error when the error can be corrected; 保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,maintaining an address table of a table necessary for managing data held in the above-mentioned nonvolatile memory, 上述地址表具备:The above address table has: 具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;an error table having a plurality of error records, said error records being information related to said read error with respect to a physical block in which a read error has been detected by said error correction circuit; 记录与禁止数据的写入以及读出的物理块的地址有关的信息的不良块表;A bad block table that records information related to addresses of physical blocks that prohibit data writing and reading; 具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;There is an item table for each physical block of the above-mentioned non-volatile memory, whether the data is written or cleared; 表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,a logical-physical conversion table representing conversion information between a logical block address externally specified by the master device and a physical block address of the nonvolatile memory, 上述错误表的错误记录具备:The error record of the above error table has: 当上述纠错电路检测出了从上述非易失性存储器读出的数据的错误时,记录表示发生了错误的物理块的地址的信息的错误块信息;When the above-mentioned error correction circuit detects an error in the data read from the above-mentioned non-volatile memory, recording error block information representing information of an address of a physical block where an error has occurred; 记录表示发生了上述错误的信息的错误信息;Log an error message indicating that the above error has occurred; 记录表示在发生了上述错误以后、清除了上述物理块的信息的错误块清除信息;Recording error block clearing information indicating that the information of the above-mentioned physical block has been cleared after the above-mentioned error occurred; 表示在上述错误块清除信息中记录了信息以后、在同一个物理块中再次检测出读出错误的错误再发生信息,Error recurrence information indicating that a read error was detected again in the same physical block after information was recorded in the above error block clear information, 上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息,决定是否使用检测出了上述读出错误的物理块。The arithmetic processing unit registers and updates the error record of the error table based on the error detection from the error correction circuit, and when writing data in the non-volatile memory, refers to the error table, and when the physical When there is the above-mentioned error record in which the above-mentioned error block information and the above-mentioned error recurrence information are recorded, information related to the address of the physical block in which the above-mentioned data is written is recorded in the above-mentioned bad block table, and it is determined whether to use the Bad physical block. 12.根据权利要求11所述的存储控制器,其特征在于,12. The storage controller of claim 11, wherein 上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。The error record of the error table further includes error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written. 13.根据权利要求11所述的存储控制器,其特征在于,13. The memory controller of claim 11, wherein 上述运算处理单元中,In the above operation processing unit, 只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit, information is recorded and updated in the error record of the error table. 14.根据权利要求12所述的存储控制器,其特征在于,14. The memory controller of claim 12, wherein 上述运算处理单元中,In the above operation processing unit, 只有在不能由上述纠错电路纠正上述纠错电路所检测出的读出错误时,在上述错误表的错误记录中记录以及更新信息。Only when the read error detected by the error correction circuit cannot be corrected by the error correction circuit, information is recorded and updated in the error record of the error table. 15.根据权利要求11所述的存储控制器,其特征在于,15. The storage controller of claim 11, wherein 记录在上述错误信息中的、表示发生了错误的信息是发生了错误的次数,The information indicating that an error has occurred recorded in the above error message is the number of times an error occurred, 记录在上述错误块清除信息中的、表示清除了上述物理块的信息是对上述物理块进行了物理清除的次数,The information recorded in the above-mentioned error block clearing information indicating that the above-mentioned physical block has been cleared is the number of times that the above-mentioned physical block has been physically cleared, 上述运算处理单元在上述非易失性存储器中写入数据时,参照上述错误表,当关于写入数据的物理块、存在记录了上述错误块信息和上述错误再发生信息的上述错误记录,并且对上述发生了错误的次数与上述错误块清除信息进行比较,上述错误块清除信息表示预定的次数,而且上述发生了错误的次数的值比上述错误块清除信息大时,在上述不良块表中记录与写入上述数据的物理块的地址有关的信息。When the arithmetic processing unit writes data in the nonvolatile memory, referring to the error table, when there is the error record in which the error block information and the error recurrence information are recorded with respect to the physical block in which the data is written, and Comparing the above-mentioned number of times of occurrence of errors with the above-mentioned error block clear information, and the above-mentioned error block clear information indicates a predetermined number of times, and when the value of the above-mentioned number of times of error occurrence is greater than the value of the above-mentioned error block clear information, in the above-mentioned bad block table Information related to the address of the physical block in which the above-mentioned data is written is recorded. 16.根据权利要求15所述的存储控制器,其特征在于,16. The memory controller of claim 15, wherein 上述错误表的错误记录还具备写入了上述纠错电路检测出了读出错误的上述物理页的地址的错误页信息。The error record of the error table further includes error page information in which an address of the physical page in which a read error has been detected by the error correction circuit is written. 17.根据权利要求15所述的存储控制器,其特征在于,17. The storage controller of claim 15, wherein 上述运算处理单元中,In the above operation processing unit, 如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。If the error correction circuit detects a read error, an error record in the error table is registered and updated regardless of whether the error correction circuit can correct it. 18.根据权利要求16所述的存储控制器,其特征在于,18. The memory controller of claim 16, wherein 上述运算处理单元中,In the above operation processing unit, 如果上述纠错电路检测出读出错误,则与能否由上述纠错电路进行纠正无关,登录以及更新上述错误表的错误记录。If the error correction circuit detects a read error, an error record in the error table is registered and updated regardless of whether the error correction circuit can correct it. 19.一种存储控制器,对于具备多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器,控制数据的读出以及写入,该存储控制器的特征在于,具备:19. A memory controller for controlling reading and writing of data in a nonvolatile memory having a plurality of physical blocks as units of erasing, wherein said physical block has a plurality of physical pages as units of writing, The memory controller is characterized in that it has: 进行上述存储控制器内部中整体控制的运算处理单元;An arithmetic processing unit for performing overall control inside the storage controller; 具有对于从上述非易失性存储器读出的数据检测错误的功能和在能够纠正错误时进行纠正的功能的纠错电路;An error correction circuit having a function of detecting an error in data read from the above-mentioned nonvolatile memory and a function of correcting the error when the error can be corrected; 保持用于管理保存在上述非易失性存储器中的数据所需要的表的地址表,maintaining an address table of a table necessary for managing data held in the above-mentioned nonvolatile memory, 上述存储控制器的地址表具备:The address table of the memory controller above has: 具有多个错误记录的错误表,所述错误记录是关于由上述纠错电路检测出了读出错误的物理块的、与上述读出错误有关的信息;an error table having a plurality of error records, said error records being information related to said read error with respect to a physical block in which a read error has been detected by said error correction circuit; 具有对于上述非易失性存储器的各个物理块、数据是写入完毕还是清除完毕的信息的项目表;There is an item table for each physical block of the above-mentioned non-volatile memory, whether the data is written or cleared; 表示由主设备从外部指定的逻辑块地址与上述非易失性存储器的物理块地址的变换信息的逻辑物理变换表,a logical-physical conversion table representing conversion information between a logical block address externally specified by the master device and a physical block address of the nonvolatile memory, 上述错误表的错误记录具备:The error record of the above error table has: 写入了上述纠错电路检测出了读出错误的物理块的地址的错误块信息;The error block information of the address of the physical block whose read error is detected by the above-mentioned error correction circuit is written; 写入了上述纠错电路检测出了上述读出错误的物理页的地址的错误页信息;The error page information of the address of the physical page whose read error is detected by the above-mentioned error correction circuit is written; 记录表示上述读出错误的比特数的信息的错误比特计数,record an error bit count indicating the information of the above-mentioned number of read-out errors, 上述运算处理单元根据来自上述纠错电路的错误检测,登录并更新上述错误表的错误记录,并且使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。The arithmetic processing unit registers and updates the error record in the error table according to the error detection from the error correction circuit, and uses a predetermined correction threshold to read out the error table whose error bit count information is greater than or equal to the correction threshold. The error records the data of the corresponding physical block, so that the above-mentioned error correction circuit corrects the error of the read data, and writes the corrected data into other physical blocks, wherein the above-mentioned correction threshold is less than or equal to the above-mentioned The value of the number of erroneous bits corrected by the error correction circuit. 20.根据权利要求19所述的存储控制器,其特征在于,20. The memory controller of claim 19, wherein 上述运算处理单元在没有进行来自外部的对上述非易失性存储器的数据读出处理时,使用预先确定的纠正阈值,读出与上述错误比特计数的信息大于等于上述纠正阈值的上述错误表的错误记录相对应的物理块的数据,使上述纠错电路纠正读出的数据的错误,把该纠正了的数据写入到其它的物理块中,其中,上述纠正阈值是小于等于能够由上述纠错电路纠正的错误比特数的值。When the above-mentioned operation processing unit is not performing the data read process from the outside to the above-mentioned non-volatile memory, using a predetermined correction threshold value, read out the information of the above-mentioned error bit count greater than or equal to the above-mentioned error table. Misrecord the data of the corresponding physical block, so that the above-mentioned error correction circuit corrects the error of the read data, and writes the corrected data into other physical blocks, wherein the correction threshold is less than or equal to the The value of the number of errored bits corrected by the error circuit. 21.一种不良区域检测方法,在非易失性存储装置中使用,该非易失性存储装置具备:具有多个作为清除单位的物理块、上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法的特征在于,21. A method for detecting a defective area, used in a nonvolatile storage device, the nonvolatile storage device having: a plurality of physical blocks as units of erasing, said physical block having a plurality of physical blocks as units of writing A nonvolatile memory composed of pages; a memory controller including an error correction circuit having a function of detecting an error in read data from the nonvolatile memory and a function of correcting an error when the error can be corrected; holding a plurality of An error table of an error record, the error record is information related to the above-mentioned read error about a physical block in which a read error has been detected, and the method for detecting a defective area is characterized in that 在读出数据时根据从外部指定的逻辑地址决定物理地址,When reading data, determine the physical address according to the logical address specified from the outside, 从与上述物理地址相对应的物理块读出数据,read data from the physical block corresponding to the above physical address, 在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部,If there is a correctable error in the read data, correct the error and output it to the outside, 把上述物理地址登录在上述错误表中,并且register the above physical address in the above error table, and 当改写了在上述错误表中登录了物理地址的物理块的数据时,把表示改写了上述数据的信息登录到上述错误表中,When the data of the physical block whose physical address is registered in the above-mentioned error table is rewritten, information indicating that the above-mentioned data has been rewritten is registered in the above-mentioned error table, 在从改写了上述数据的物理块读出的数据中有能够纠正的错误时,纠正该错误并输出到外部,并且把表示在改写了上述数据以后发生了错误的错误再发生信息登录到上述错误表中,When there is a correctable error in the data read from the physical block in which the above data has been rewritten, the error is corrected and output to the outside, and error recurrence information indicating that an error has occurred after rewriting the above data is registered in the above error table, 对于在上述错误表中登录了上述错误再发生信息的物理块,禁止数据的写入以及读出。Data writing and reading are prohibited for the physical block in which the error recurrence information is registered in the error table. 22.根据权利要求21所述的不良区域检测方法,其特征在于,22. The defective area detection method according to claim 21, characterized in that, 登录在上述错误表中的表示改写的信息是改写的次数,The information indicating rewriting registered in the above-mentioned error table is the number of times of rewriting, 登录在上述错误表中的错误再发生信息是在改写了数据以后错误发生的次数,The error recurrence information registered in the above error table is the number of times the error occurred after rewriting the data, 在上述错误再发生信息的值表示出大于等于预定的值时,禁止数据向登录了上述错误表的物理块的写入以及读出。When the value of the error recurrence information indicates a predetermined value or more, writing and reading of data to and from the physical block registered in the error table are prohibited. 23.一种不良区域检测方法,在非易失性存储装置中使用,该非易失性存储装置具备:具有多个作为清除单位的物理块,上述物理块具有多个作为写入单位的物理页而构成的非易失性存储器;存储控制器,包括具备对来自上述非易失性存储器的读出数据检测错误的功能以及在能够纠正错误时进行纠正的功能的纠错电路、保持多个错误记录的错误表,该错误记录是关于检测出了读出错误的物理块的、与上述读出错误有关的信息,该不良区域检测方法的特征在于,具有:23. A method for detecting a defective area, used in a nonvolatile storage device, the nonvolatile storage device having: a plurality of physical blocks as units of erasing, the physical block having a plurality of physical blocks as units of writing A nonvolatile memory composed of pages; a memory controller including an error correction circuit having a function of detecting an error in read data from the above nonvolatile memory and a function of correcting an error when it can be corrected; storing a plurality of An error table of an error record, the error record is information related to the above-mentioned read error about a physical block in which a read error has been detected, and the method for detecting a bad area is characterized in that it has: 根据从外部指定的逻辑地址决定物理地址,确定读出数据的物理块的确定步骤;A step of determining a physical address based on a logical address specified from outside, and determining a physical block from which data is read; 从上述物理块读出数据的数据读出步骤;A data reading step of reading data from the physical block; 在该读出的数据中有能够纠正的错误时,纠正上述错误并输出到外部的数据输出步骤;When there is a correctable error in the read data, the error is corrected and output to an external data output step; 把发生了上述能够纠正的错误的物理块的物理地址和与错误数有关的信息登录到上述错误表中的错误比特数登录步骤:The physical address of the physical block of the above-mentioned error that can be corrected and the information relevant to the error number are registered in the error bit number registration steps in the above-mentioned error table: 复制步骤,当与登录在上述错误表中的错误比特数有关的信息表示出大于等于预定的值时,把写入到上述物理块中的数据复制到其它物理块中。In the copying step, when the information on the number of error bits registered in the error table shows a predetermined value or more, the data written in the physical block is copied to another physical block. 24.根据权利要求23所述的不良区域检测方法,其特征在于,24. The defective area detection method according to claim 23, characterized in that, 在上述数据读出步骤与上述数据输出步骤之间进行上述复制步骤。The copying step is performed between the data reading step and the data outputting step. 25.根据权利要求23所述的不良区域检测方法,其特征在于,25. The defective area detection method according to claim 23, characterized in that, 在没有对上述非易失性存储装置执行来自外部的数据写入以及读出时,进行上述复制步骤。The copying step is performed when data writing and reading from the outside are not performed on the nonvolatile memory device. 26.根据权利要求25所述的不良区域检测方法,其特征在于,26. The defective area detection method according to claim 25, characterized in that, 在对上述非易失性存储装置接通电源之后紧接着进行上述复制步骤。The copying step is performed immediately after the nonvolatile memory device is powered on.
CN200680029679.0A 2005-07-15 2006-07-13 Nonvolatile storage device, memory controller, and defective region detection method Active CN101243417B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP207198/2005 2005-07-15
JP2005207198 2005-07-15
PCT/JP2006/313978 WO2007010829A1 (en) 2005-07-15 2006-07-13 Nonvolatile storage device, memory controller, and defective region detection method

Publications (2)

Publication Number Publication Date
CN101243417A CN101243417A (en) 2008-08-13
CN101243417B true CN101243417B (en) 2011-05-04

Family

ID=37668709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680029679.0A Active CN101243417B (en) 2005-07-15 2006-07-13 Nonvolatile storage device, memory controller, and defective region detection method

Country Status (4)

Country Link
US (1) US9092361B2 (en)
JP (1) JP4950886B2 (en)
CN (1) CN101243417B (en)
WO (1) WO2007010829A1 (en)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
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 (en) * 2007-02-14 2012-10-24 株式会社東芝 Semiconductor memory information storage device and its defective part coping method
JP5087970B2 (en) * 2007-03-30 2012-12-05 横河電機株式会社 Information processing apparatus and information processing method
JP5105351B2 (en) * 2007-04-10 2012-12-26 株式会社メガチップス Nonvolatile semiconductor memory device
JP2008287404A (en) * 2007-05-16 2008-11-27 Hitachi Ltd Apparatus and method for detecting and recovering data corruption of non-access memory cell due to reading
JP5265883B2 (en) * 2007-05-24 2013-08-14 株式会社メガチップス Memory access system
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
US8473923B2 (en) * 2007-09-12 2013-06-25 Sandisk Technologies Inc. Pointers for write abort handling
JP2009087509A (en) * 2007-10-03 2009-04-23 Toshiba Corp Semiconductor storage device
JP2009129070A (en) 2007-11-21 2009-06-11 Hitachi Ltd Control method of flash memory storage device, flash memory storage device and storage system using the method
WO2009078145A1 (en) * 2007-12-14 2009-06-25 Kabushiki Kaisha Toshiba Control device
US7941692B2 (en) * 2007-12-31 2011-05-10 Intel Corporation NAND power fail recovery
JP4617405B2 (en) * 2008-02-05 2011-01-26 富士通株式会社 Electronic device for detecting defective memory, defective memory detecting method, and program therefor
TWI381390B (en) * 2008-04-10 2013-01-01 Phison Electronics Corp Bad block determining method for flash memory, storage system and controller thereof
US8122308B2 (en) * 2008-06-25 2012-02-21 Intel Corporation Securely clearing an error indicator
TWI381391B (en) * 2008-08-05 2013-01-01 Transcend Information Inc Storage device with self-condition inspection and inspecting method thereof
CN101859604B (en) * 2009-04-10 2012-10-24 国民技术股份有限公司 Utilization method of flash memory bad block
CN102460383A (en) * 2009-06-30 2012-05-16 松下电器产业株式会社 Data processing method and semiconductor integrated circuit
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 (en) * 2009-07-24 2011-12-07 中兴通讯股份有限公司 Method and device for improving reliability of data caching of memorizer
US8266481B2 (en) * 2009-07-29 2012-09-11 Stec, Inc. System and method of wear-leveling in flash storage
US8453021B2 (en) 2009-07-29 2013-05-28 Stec, Inc. Wear leveling in solid-state device
CN102004701B (en) 2009-08-28 2013-01-09 炬才微电子(深圳)有限公司 Method and device for distributing secondary memory
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
JP2011107851A (en) * 2009-11-13 2011-06-02 Toshiba Corp Memory system
KR101648531B1 (en) * 2010-02-12 2016-08-17 삼성전자주식회사 Nonvolatile memory system and operation method using the same
CN102208212B (en) * 2010-03-30 2014-10-22 群联电子股份有限公司 Error correction method, memory controller and memory storage system
WO2012039983A1 (en) 2010-09-24 2012-03-29 Rambus Inc. Memory device with ecc history table
TWI447731B (en) * 2010-12-01 2014-08-01 Phison Electronics Corp Data reading method, memory storage apparatus and controller thereof
JP5451682B2 (en) 2011-05-20 2014-03-26 株式会社東海理化電機製作所 Flash memory device
TWI479495B (en) * 2011-06-02 2015-04-01 Phison Electronics Corp Reading method, memory controller, and memory storage device
KR101583165B1 (en) * 2011-08-24 2016-01-06 미쓰비시덴키 가부시키가이샤 Error-correcting decoder
JP2013054409A (en) * 2011-08-31 2013-03-21 Toshiba Corp Information storage device and information storage method
KR20130049332A (en) * 2011-11-04 2013-05-14 삼성전자주식회사 Memory system and operating method thereof
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 (en) 2012-02-17 2013-09-02 Toshiba Corp Storage device
US9418700B2 (en) 2012-06-29 2016-08-16 Intel Corporation Bad block management mechanism
JP5835160B2 (en) * 2012-08-29 2015-12-24 株式会社デンソー Electronic control unit
CA2901757A1 (en) * 2013-03-07 2014-09-12 Charles I. Peddle High speed flash controllers
KR101467309B1 (en) * 2013-03-11 2014-12-02 전자부품연구원 Method for Storage Management by Error Detection Table Creation and System using the same
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 (en) * 2014-04-10 2016-03-21 群聯電子股份有限公司 Data storing method, memory control circuit unit and memory storage apparatus
CN105022695A (en) * 2014-04-21 2015-11-04 群联电子股份有限公司 Data storage method, memory control circuit unit and memory storage device
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 (en) * 2014-09-16 2018-05-30 株式会社デンソー Memory diagnostic circuit
TWI537966B (en) * 2014-10-03 2016-06-11 群聯電子股份有限公司 Error processing method, memory storage device and memory controlling circuit unit
CN105575440B (en) * 2014-10-15 2018-11-23 群联电子股份有限公司 error processing method, memory storage device and memory control circuit unit
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 (en) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 Memory system including plurality of storage areas and method of operating the same
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
US10338999B2 (en) * 2016-09-02 2019-07-02 International Business Machines Corporation Confirming memory marks indicating an error 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
US10304560B2 (en) 2016-09-02 2019-05-28 International Business Machines Corporation Performing error correction in computer memory
US10297335B2 (en) 2016-09-02 2019-05-21 International Business Machines Corporation Tracking address ranges for computer memory errors
CN106445716A (en) * 2016-09-19 2017-02-22 北京新能源汽车股份有限公司 Fault function testing method and device
KR20180090422A (en) * 2017-02-02 2018-08-13 에스케이하이닉스 주식회사 Memory system and operating method of memory system
CN107402725B (en) * 2017-03-20 2020-08-25 威盛电子股份有限公司 Nonvolatile memory device and data deduplication method thereof
JP6797727B2 (en) 2017-03-21 2020-12-09 キオクシア株式会社 Semiconductor storage device
CN108958961B (en) * 2017-05-22 2021-11-30 上海宝存信息科技有限公司 Data storage device and data error management method
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 (en) * 2018-03-12 2021-07-27 旺宏电子股份有限公司 Data detection method of memory device
TWI650763B (en) 2018-05-14 2019-02-11 慧榮科技股份有限公司 Method, memory device and electronic device and page availability management system for performing page availability management of memory device
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management 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 (en) * 2018-10-01 2023-07-11 삼성전자주식회사 Memory controller and storage device including the same
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
CN111324283B (en) * 2018-12-14 2024-02-20 兆易创新科技集团股份有限公司 a memory
CN112395127A (en) * 2019-08-15 2021-02-23 上海忆芯实业有限公司 Reliability test method of storage equipment and storage equipment thereof
US11567670B2 (en) * 2019-10-25 2023-01-31 Samsung Electronics Co., Ltd. Firmware-based SSD block failure prediction and avoidance scheme
US11507443B2 (en) 2020-04-10 2022-11-22 Micron Technology, Inc. Memory fault map for an accelerated neural network
CN114035745A (en) * 2021-10-19 2022-02-11 许昌许继软件技术有限公司 A kind of FLASH data storage control method and device
CN114356645B (en) * 2021-12-27 2025-06-20 海光信息技术股份有限公司 Method, device, electronic device and storage medium for data error correction
US20250209011A1 (en) * 2023-12-22 2025-06-26 SK Hynix NAND Produst Solutions Corp. (dba Solidigm) Introduction of poison table in dynamic random access memory in a memory system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3565687B2 (en) 1997-08-06 2004-09-15 沖電気工業株式会社 Semiconductor memory device and control method thereof
WO2001022232A1 (en) 1999-09-17 2001-03-29 Hitachi, Ltd. Storage where the number of error corrections is recorded
JP4601119B2 (en) * 2000-05-02 2010-12-22 株式会社アドバンテスト Memory test method and memory test equipment
JP3692313B2 (en) 2001-06-28 2005-09-07 松下電器産業株式会社 Nonvolatile memory control method
JP4059472B2 (en) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ Memory card and memory controller
JP4004811B2 (en) * 2002-02-06 2007-11-07 株式会社東芝 Nonvolatile semiconductor memory device
JP3906825B2 (en) * 2003-06-17 2007-04-18 日本電気株式会社 Computer system, computer system activation method and program

Also Published As

Publication number Publication date
US9092361B2 (en) 2015-07-28
JP4950886B2 (en) 2012-06-13
US20090055680A1 (en) 2009-02-26
JPWO2007010829A1 (en) 2009-01-29
WO2007010829A1 (en) 2007-01-25
CN101243417A (en) 2008-08-13

Similar Documents

Publication Publication Date Title
CN101243417B (en) Nonvolatile storage device, memory controller, and defective region detection method
JP4323707B2 (en) Flash memory defect management method
JP4073799B2 (en) Memory system
US7757153B2 (en) Multi-bit memory device and memory system
CN101183563B (en) Memory system including flash memory and method of operating the same
CN105788648B (en) NVM bad block identification processing and error correction method and system based on heterogeneous hybrid memory
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US9229644B2 (en) Targeted copy of data relocation
US10067824B2 (en) Error processing method, memory storage device and memory controlling circuit unit
US8397127B2 (en) Semiconductor recording device and semiconductor recording device control method
CN100545817C (en) Data Management Techniques for Improving Data Reliability
KR101466270B1 (en) Nonvolatile memory system and its data processing method
US20090034328A1 (en) Memory system protected from errors due to read disturbance and reading method thereof
US10635527B2 (en) Method for processing data stored in a memory device and a data storage device utilizing the same
JP4866107B2 (en) Nonvolatile memory device and write determination method thereof
CN107992268B (en) Bad block marking method and related device
US7613982B2 (en) Data processing apparatus and method for flash memory
JP2010079486A (en) Semiconductor recording device
CN118426681A (en) Flash memory and wear leveling method thereof
KR20050064887A (en) Flash memory having enhanced error detection capability and method for detecting multi-bit errors
US20100042900A1 (en) Write Failure Handling of MLC NAND
JP2010128697A (en) Memory system
JP4866114B2 (en) MEMORY CONTROLLER, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY SYSTEM, AND MEMORY CONTROL METHOD
JP7679526B1 (en) NOR type flash memory and its operating method
JP2010140261A (en) Information processor, error correction method and program

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