JP2010140261A - Information processor, error correction method and program - Google Patents

Information processor, error correction method and program Download PDF

Info

Publication number
JP2010140261A
JP2010140261A JP2008315979A JP2008315979A JP2010140261A JP 2010140261 A JP2010140261 A JP 2010140261A JP 2008315979 A JP2008315979 A JP 2008315979A JP 2008315979 A JP2008315979 A JP 2008315979A JP 2010140261 A JP2010140261 A JP 2010140261A
Authority
JP
Japan
Prior art keywords
bit error
information
data
correction
bit
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.)
Withdrawn
Application number
JP2008315979A
Other languages
Japanese (ja)
Inventor
Satoru Fujii
了 藤井
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008315979A priority Critical patent/JP2010140261A/en
Publication of JP2010140261A publication Critical patent/JP2010140261A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To correct errors equal to or more than the number of bits correctable by an ECC (error correcting code). <P>SOLUTION: In the error correction method, when reading data from a storage area, a bit error is detected using the error correcting code, and bit error information including information about a correct value and the location of the bit error detected in a bit error detection step is written into a predetermined alternative area. When retrieving the alternative area and deciding that the bit error information exists (step S102/Yes) when reading the data from the storage area (step S101), the data are corrected based on the bit error information (step S104). <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、情報処理装置、エラー訂正方法及びプログラムに関し、特に、誤り訂正符号(ECC)を用いたビットエラーの検出及び訂正技術に関する。   The present invention relates to an information processing apparatus, an error correction method, and a program, and more particularly, to a bit error detection and correction technique using an error correction code (ECC).

本発明に関連する技術としては、特許文献1に記載のものがある。しかしながら、特許文献1は、段落0008等の記載からも明らかなように、処理の対象が「エラー訂正では対応できない欠損ビットに対して」、すなわち不良ブロックに含まれるページである。一方で、本発明が対象とするのは「エラー訂正可能な欠損ではない正常な領域」であり、この点に関して本発明と特許文献1は全く異なる。
特開2005−196658号公報
As a technique related to the present invention, there is one described in Patent Document 1. However, as is clear from the description in paragraph 0008 and the like, Patent Document 1 is a page whose processing target is “for missing bits that cannot be handled by error correction”, that is, a page included in a defective block. On the other hand, an object of the present invention is “a normal area that is not an error-correctable defect”, and the present invention and Patent Document 1 are completely different in this respect.
JP 2005-196658 A

電気的にデータの書き込み及び消去が可能なフラッシュメモリの技術分野においては、誤り訂正符号(以下、ECC(error correcting code)という)を用いてエラー訂正を行う方法がある。そのような一般的なエラー訂正方法(本発明の関連技術)について、図11を参照して説明する。   In the technical field of flash memory in which data can be electrically written and erased, there is a method of performing error correction using an error correcting code (hereinafter referred to as ECC (error correcting code)). Such a general error correction method (related technology of the present invention) will be described with reference to FIG.

図11において、CPUなどの演算装置は、ECC機能を有するメモリにデータを読み込んだのち(ステップS1101)、ECC計算を行い(ステップS1102)、訂正可能なエラーか否かを判断する(ステップS1103)。エラーの訂正が可能であれば、読み込んだデータをエラー訂正し(ステップS1105)、不可能であれば、異常処理を実行する(ステップS1104)。   In FIG. 11, an arithmetic unit such as a CPU reads data into a memory having an ECC function (step S1101), performs ECC calculation (step S1102), and determines whether or not an error can be corrected (step S1103). . If the error can be corrected, the read data is error-corrected (step S1105). If the error cannot be corrected, an abnormal process is executed (step S1104).

しかしながら、上述のようなエラー訂正においては、次のような課題がある。   However, the error correction as described above has the following problems.

第1の課題は、エラー訂正のビット数を増やすと計算が重くなるため、性能を考慮すると容易にビット数を増やすことはできないということである。   The first problem is that if the number of bits for error correction is increased, the calculation becomes heavy, and therefore the number of bits cannot be easily increased in consideration of performance.

第2の課題は、規定数内のビット化けは仕様のため、ページ毎、若しくはブロック毎に置換処理などを行うと多数のビット化けが発生していた場合には効率が悪くなるということである。   The second problem is that because bit corruption within a specified number is a specification, if a number of bit corruption occurs when replacement processing is performed for each page or block, the efficiency becomes worse. .

本発明は、上記実情に鑑みて、ECCによる訂正可能なビット数以上のエラー訂正を行う情報処理装置、エラー訂正方法及びプログラムを提供することを目的とする。   In view of the above circumstances, an object of the present invention is to provide an information processing apparatus, an error correction method, and a program that perform error correction of more bits than can be corrected by ECC.

上記目的を達成するために下記の構成の情報処理装置、エラー訂正方法及びプログラムを提供する。   In order to achieve the above object, an information processing apparatus, an error correction method, and a program having the following configurations are provided.

記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出手段と、前記ビットエラー検出手段が検出したビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込手段と、次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正手段と、を有することを特徴とする、情報処理装置。   Bit error detection means for detecting a bit error using an error correction code when data is read from a storage area, and bit error information including the location of the bit error detected by the bit error detection means and correct value information. Based on the bit error information when the bit error information writing means for writing to a predetermined alternative area and the next time the data is read from the storage area and the alternative area is searched and the bit error information is determined to be present An information processing apparatus comprising: data correction means for correcting data.

記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出ステップと、前記ビットエラー検出ステップにより検出されたビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込ステップと、次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正ステップと、を含むことを特徴とする、エラー訂正方法。   Bit error detection step for detecting a bit error using an error correction code when data is read from a storage area, and bit error information including information on the location and correct value of the bit error detected by the bit error detection step A bit error information writing step for writing to a predetermined alternative area, and when the data is read from the storage area next time, when the alternative area is searched to determine that the bit error information exists, the bit error information is And a data correction step for correcting the data based on the error correction method.

情報処理装置を、記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出手段と、前記ビットエラー検出手段が検出したビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込手段と、次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正手段として機能させることを特徴とする、エラー訂正プログラム。   A bit error detection means for detecting a bit error using an error correction code when data is read from the storage area, and information on the location and correct value of the bit error detected by the bit error detection means. A bit error information writing means for writing bit error information to a predetermined alternative area; and when the data is read from the storage area next time, the alternative area is searched to determine that the bit error information is present An error correction program which functions as data correction means for correcting data based on bit error information.

本発明によれば、ECCによる訂正可能なビット数以上のエラー訂正を行う情報処理装置、エラー訂正方法及びプログラムを提供することが可能となる。   According to the present invention, it is possible to provide an information processing apparatus, an error correction method, and a program that perform error correction more than the number of bits that can be corrected by ECC.

以下、本発明を実施形態により詳細に説明する。
従来、NAND型フラッシュメモリのように、読み出しを繰り返す事により発生するビットエラー(リードディスターブエラー)や、FGから電子の抜けが起こることで、データが変わってしまうこと(データリテンション)によるビットエラーなど、データの信頼性に問題があった。これらは欠陥ではなくフラッシュメモリのデータリテンション特性であり、消去後に正常な領域として再び使用可能である。通常ECCによるエラー訂正を用いてビット化けを訂正し、信頼性を向上させている。
Hereinafter, embodiments of the present invention will be described in detail.
Conventionally, as in a NAND flash memory, a bit error caused by repeated reading (read disturb error) or a bit error caused by data change (data retention) due to loss of electrons from the FG There was a problem with the reliability of the data. These are not defects, but data retention characteristics of the flash memory, and can be used again as a normal area after erasure. Usually, error correction by ECC is used to correct garbled bits to improve reliability.

しかしながら、ECCのエラー訂正能力を超える、前述のビットエラーが発生する可能性は0ではなかった。例えば、1ビットエラー訂正可能、2ビット誤り検出が可能なECCを用いた場合、1ビットまでの変更は訂正可能であるが、さらにもう1ビットエラーが発生した場合は、データが失われてしまう。重要なデータはあらかじめ1ビットエラーのうちに他の領域へ退避するなどの処理が必要であった。一方で、2ビット以上のエラー訂正能力を持つECCを搭載することも可能であるが、エラー訂正のための計算量の増加、冗長領域の増加などの課題があり、性能及び価格に影響することが考えられる。   However, the possibility of the above-described bit error exceeding the error correction capability of ECC was not zero. For example, when an ECC capable of correcting 1-bit error and capable of detecting 2-bit error is used, a change up to 1 bit can be corrected, but if another 1-bit error occurs, data is lost. . Important data needed to be processed in advance, such as saving to another area within a 1-bit error. On the other hand, it is possible to install ECC with error correction capability of 2 bits or more, but there are problems such as an increase in calculation amount for error correction and an increase in redundant area, which affects performance and price. Can be considered.

そこで、同時に2ビット以上のビットエラーが発生する確率が極めて低いことに着目し、ECCにより訂正可能な範囲内でビットエラーが発生していた場合に、ビットエラー発生箇所及び訂正後のデータをあらかじめ冗長領域若しくは他の領域にあらかじめ記録する。フラッシュメモリからデータを読み込みを行った後、当該アドレスの訂正情報がある場合には、その情報を読み込みデータを修正する。この時点で、エラーは訂正されているので、さらにビットエラーが発生した場合でもECCによるエラー訂正が可能となる。1ビット訂正可能なECCである場合には、2ビット以上の訂正が可能となり、ECCの訂正能力を超えたビットエラーを訂正可能とする。1ビットもエラーが無い場合には、演算量は従来のままとなり、極めて効率が良い。   Therefore, paying attention to the fact that the probability of two or more bit errors occurring at the same time is extremely low, if a bit error has occurred within the range that can be corrected by ECC, the bit error occurrence location and the corrected data are pre- Record in advance in a redundant area or another area. After the data is read from the flash memory, if there is correction information for the address, the information is read and the data is corrected. At this point, since the error has been corrected, even if a bit error further occurs, error correction by ECC becomes possible. In the case of an ECC capable of correcting 1 bit, correction of 2 bits or more is possible, and a bit error exceeding the ECC correction capability can be corrected. When there is no error even for one bit, the calculation amount remains the same as before and is extremely efficient.

本実施形態は、電気的に一括消去及び再書き込み可能なメモリであるフラッシュメモリにおいて、わずかな冗長領域を用いることにより、ECCによる訂正可能なビット数以上のエラー訂正を行えることを特徴としている。   The present embodiment is characterized in that in a flash memory which is an electrically erasable and rewritable memory, error correction more than the number of bits that can be corrected by ECC can be performed by using a few redundant areas.

図1を用いて、本実施形態の特徴を簡単に説明する。ECCにおいては、ハミング符号などを用い、1ビットのエラー訂正、2ビット以上の誤り検出ができるとする。また、1ビットエラーが発生しており、当該ビットエラー訂正情報が事前に書き込まれているとする。   The features of this embodiment will be briefly described with reference to FIG. In ECC, it is assumed that 1-bit error correction and 2-bit or more error detection can be performed using a Hamming code or the like. Further, it is assumed that a 1-bit error has occurred and the bit error correction information has been written in advance.

図1において、データをフラッシュメモリから読み込み(ステップS101)、次に訂正情報があるかどうかフラッシュメモリ内を検索する(ステップS102)。訂正情報があれば、前述のフラッシュから読み出したデータを訂正情報を元に修整する(ステップS103,S104)。次に、ECC計算を行う(ステップS105)。前述のデータはすでに誤りが訂正されているので、ECCではビットエラーは検出されない。つまり本方式を適用し、事前にエラー訂正情報を書き込んでおくことにより、この1ビットのエラーがある状態において、さらにもう1ビットのエラービットが発生しても、正しくデータを訂正することが可能となる。   In FIG. 1, data is read from the flash memory (step S101), and then the flash memory is searched for correction information (step S102). If there is correction information, the data read from the flash is modified based on the correction information (steps S103 and S104). Next, ECC calculation is performed (step S105). Since the error has already been corrected in the above data, no bit error is detected by ECC. In other words, by applying this method and writing error correction information in advance, it is possible to correct data correctly even if another 1-bit error bit occurs in the presence of this 1-bit error. It becomes.

図2を参照すると、本実施形態の最小構成が示されている。図2において、CPU201は、RAM202、ROM204及びNAND型フラッシュメモリ203と接続されている。CPU201では、ROM204に格納されている各種プログラムを実行し、ECC計算などの処理が可能である。   Referring to FIG. 2, the minimum configuration of this embodiment is shown. In FIG. 2, a CPU 201 is connected to a RAM 202, a ROM 204, and a NAND flash memory 203. The CPU 201 can execute various programs stored in the ROM 204 and perform processing such as ECC calculation.

図3にスモールページと呼ばれる種類のNANDのページ構造を記す。図3を参照するとNAND型フラッシュメモリ203の読み込み単位であるページの使用方法を示している。データを格納するメインエリアの他、NAND型フラッシュメモリの特徴である冗長領域(スペアエリア)がある。   FIG. 3 shows a page structure of a kind of NAND called a small page. FIG. 3 shows how to use a page, which is a read unit of the NAND flash memory 203. In addition to the main area for storing data, there is a redundant area (spare area), which is a feature of the NAND flash memory.

図3を参照すると、1ページは、512バイトのデータ格納領域(メインエリア)及び16バイトの冗長領域(スペアエリア)からなり、冗長領域には、ECC符号の結果を書き込む場所、不良ブロックのマークを書き込む場所、及び本実施形態による訂正情報を格納する場所を含む。不良ブロックとは、欠損ビットを含むブロックや、消去エラーが発生したブロックを指す。不良ブロックマークは、不良ブロックと認められる事象が発見・発生した場合に書き込まれる識別子であり、以後当該ブロックを使用しないように識別するためのものである。   Referring to FIG. 3, one page is composed of a 512-byte data storage area (main area) and a 16-byte redundant area (spare area). And a place for storing correction information according to the present embodiment. A defective block refers to a block including a missing bit or a block in which an erase error has occurred. The bad block mark is an identifier that is written when an event recognized as a bad block is found / occurred, and is used to identify that the block is not used thereafter.

通常、スペアエリアには、メインエリアのECC符号及び不良ブロックの場合にはそのマークが保存されている。訂正情報を格納する場所は、同一デバイスの他のページや他のブロックでも良いし、あるいは別のデバイスでも構わない。本実施形態では、特徴を活かすため当該スペアエリアに訂正情報も保存する場合を説明する。訂正情報の実施例を図4へ記載する。   Usually, the ECC code of the main area and the mark in the case of a defective block are stored in the spare area. The location for storing the correction information may be another page or another block of the same device, or may be another device. In the present embodiment, a case will be described in which correction information is also stored in the spare area in order to make use of the features. An example of correction information is described in FIG.

図4には訂正情報フォーマットとして、位置情報2バイト、訂正値1バイトからなる実施例を示している。データ領域が512バイトであることから、位置情報として意味のある値は、0から511である。よって、消去直後の値である16進数で、0xFFFF(10進数で65535)の場合には、消去情報が無いものとする。   FIG. 4 shows an embodiment comprising 2 bytes of position information and 1 byte of correction value as the correction information format. Since the data area is 512 bytes, meaningful values as position information are 0 to 511. Accordingly, in the case of 0xFFFF (decimal number 65535) in hexadecimal which is a value immediately after erasure, it is assumed that there is no erasure information.

次に図2ないし4に示す装置の動作を、具体例(図5)及びフローチャート(図6)を使用して説明する。図5には、動作の一例を示すため、図3及び図4に具体的な数値を記入してある。図6には詳細なフローチャートを示している。   Next, the operation of the apparatus shown in FIGS. 2 to 4 will be described using a specific example (FIG. 5) and a flowchart (FIG. 6). FIG. 5 shows specific numerical values in FIGS. 3 and 4 to show an example of the operation. FIG. 6 shows a detailed flowchart.

図6を用いて、動作を説明する。正常なページの場合の読み込み動作、1ビット化けが発生した場合の読み込み動作、1ビット化けがある場合の読み込み動作、2ビット化けが発生した場合の読み込み動作、2ビット化けがある場合の読み込み動作、3ビット化けが発生した場合の読み込み動作について順に説明する。本実施形態において、定数Mは、ECC符号により訂正範囲を超えて何ビット訂正可能か示す定数値であり、訂正情報の実施方法により可変である。本実施形態では、1ビットを余計に訂正可能であるので、定数Mは1である。   The operation will be described with reference to FIG. Reading operation for normal pages Reading operation when 1-bit corruption occurs Reading operation when 1-bit corruption occurs Reading operation when 2-bit corruption occurs Reading operation when 2-bit corruption occurs A reading operation when 3-bit corruption occurs will be described in order. In the present embodiment, the constant M is a constant value that indicates how many bits can be corrected beyond the correction range by the ECC code, and is variable depending on the correction information implementation method. In the present embodiment, since the 1 bit can be corrected excessively, the constant M is 1.

<正常なページ(ビット化け無し)の場合の読み込み動作>
ステップS602にてNを0に初期化する。正常動作の場合は、以降Nの値を用いることは無い。ステップS603において、NAND型フラッシュメモリ203よりデータを読み込む。ステップS604において訂正情報があるかないか確認を行い、無い場合には、ステップS605でECCを計算する。今回はビット化けはないので、ステップS606、607ともNOとなり、そのまま終了する。
<Reading operation for normal page (no bit corruption)>
In step S602, N is initialized to 0. In the case of normal operation, the value N is not used thereafter. In step S603, data is read from the NAND flash memory 203. In step S604, it is confirmed whether there is correction information. If there is no correction information, ECC is calculated in step S605. Since there is no bit corruption this time, both steps S606 and 607 are NO, and the process ends.

<1ビット化けが発生した場合の読み込み動作>
ステップS602にてNを0に初期化する。ステップS603において、NAND型フラッシュメモリ203よりデータを読み込む。ステップS604において訂正情報があるかないか確認を行い、無い場合には、ステップS605でECCを計算する。ステップS606において2ビットのエラーは無いため、NOとなりステップS607に進む。今回、初めてECCエラーが発生したので、YESとなり、ステップS612でNとMを比較する。Nは0、Mは1のため、ステップS613にて訂正情報を追加書き込みする。具体例として、100バイト目の値が0x38と化けていた場合に、訂正後の0x39という情報を書き込むことを、図5で示す。訂正情報を書き込み後、ステップS615にて終了する。
<Read operation when 1-bit corruption occurs>
In step S602, N is initialized to 0. In step S603, data is read from the NAND flash memory 203. In step S604, it is confirmed whether there is correction information. If there is no correction information, ECC is calculated in step S605. Since there is no 2-bit error in step S606, the determination is NO and the process proceeds to step S607. Since an ECC error has occurred for the first time this time, the answer is YES, and N and M are compared in step S612. Since N is 0 and M is 1, correction information is additionally written in step S613. As a specific example, FIG. 5 shows that the corrected information 0x39 is written when the value of the 100th byte is garbled as 0x38. After writing the correction information, the process ends at step S615.

<1ビット化けがある場合の読み込み動作>
ステップS602にてNを0に初期化する。ステップS603において、NAND型フラッシュメモリ203よりデータを読み込む。ステップS604において訂正情報があるかないか確認を行う。位置情報が0xFFFFではなく、0x0064であるため、訂正情報があると判断する。ステップS608にて訂正情報を読み込み、ステップS609において、ステップS603で読み込んだデータを修正する。修整したことを示すため、ステップS610でNに1を追加する。ステップS611ではさらに訂正情報があるかどうかの確認を行うが、本実施例の説明ではひとつだけであるため、そのままYESとなり、ステップS605でECCを計算する。訂正後の情報であるので、ステップS606、607においてECCエラーが無いためにNOとなり、そのまま終了する。
<Reading operation when 1 bit is garbled>
In step S602, N is initialized to 0. In step S603, data is read from the NAND flash memory 203. In step S604, it is confirmed whether there is correction information. Since the position information is not 0xFFFF but 0x0064, it is determined that there is correction information. In step S608, correction information is read, and in step S609, the data read in step S603 is corrected. In order to indicate that the correction has been made, 1 is added to N in step S610. In step S611, whether or not there is further correction information is confirmed. However, since there is only one in the description of the present embodiment, the answer is YES, and ECC is calculated in step S605. Since the information is corrected, NO is determined in Steps S606 and S607 because there is no ECC error, and the process ends.

<2ビット化けが発生した場合の読み込み動作>
ステップS602にてNを0に初期化する。ステップS603において、NAND型フラッシュメモリ203よりデータを読み込む。ステップS604において訂正情報があるかないか確認を行う。位置情報が0xFFFFではなく、0x0064であるため、訂正情報があると判断する。ステップS608にて訂正情報を読み込み、ステップS609において、ステップS603で読み込んだデータを修正する。修整したことを示すため、ステップS610でNに1を追加する。ステップS611ではさらに訂正情報があるかどうかの確認を行うが、本実施例の説明ではひとつだけであるため、そのままYESとなり、ステップS605でECCを計算する。2ビット化けしているが、1ビットは修整済みのため、ステップS606で2ビットエラーの判断はNOとなり、ステップS607へ進む。ステップS607では、2ビット目のエラーが訂正した同1バイトに無い場合には、1ビットエラーが検出され、ステップS612に進む。本実施例では、1ビットの追加訂正が許されているので、ステップS612では、N=1、M=1と比較して、NはMより小さくないため、NOへ進み、そのまま終了する。
<Read operation when 2-bit corruption occurs>
In step S602, N is initialized to 0. In step S603, data is read from the NAND flash memory 203. In step S604, it is confirmed whether there is correction information. Since the position information is not 0xFFFF but 0x0064, it is determined that there is correction information. In step S608, correction information is read, and in step S609, the data read in step S603 is corrected. In order to indicate that the correction has been made, 1 is added to N in step S610. In step S611, whether or not there is further correction information is confirmed. However, since there is only one in the description of the present embodiment, the answer is YES, and ECC is calculated in step S605. Although 2 bits are garbled, since 1 bit has been corrected, the determination of 2-bit error is NO in step S606, and the process proceeds to step S607. In step S607, if the second bit error is not present in the corrected one byte, a one bit error is detected, and the process proceeds to step S612. In the present embodiment, since 1-bit additional correction is allowed, in step S612, N is not smaller than M compared to N = 1 and M = 1, so the process proceeds to NO and ends as it is.

<2ビット化けがある場合の読み込み動作>
M=1である本説明では、2ビット化けが発生した場合と同様である。なお、Mが1以上の場合は、1ビット化けが発生した読み込み動作と同様な処理となる。
<Reading operation when 2 bits are garbled>
In the present description where M = 1, the case is the same as when 2-bit corruption occurs. When M is 1 or more, the processing is the same as the reading operation in which 1-bit corruption occurs.

<3ビット化けが発生した場合の読み込み動作>
ステップS602にてNを0に初期化する。ステップS603において、NAND型フラッシュメモリ203よりデータを読み込む。ステップS604において訂正情報があるかないか確認を行う。位置情報が0xFFFFではなく、0x0064であるため、訂正情報があると判断する。ステップS608にて訂正情報を読み込み、ステップS609において、ステップS603で読み込んだデータを修正する。修整したことを示すため、ステップS610でNに1を追加する。ステップS611ではさらに訂正情報があるかどうかの確認を行うが、本実施例の説明ではひとつだけであるため、そのままYESとなり、ステップS605でECCを計算する。ステップS606にて2ビット化けのチェックを行う。本実施例においては、3ビットのうち、1ビットは訂正済みであるが、残り2ビットが訂正したバイト領域以外の場合に該当するため、ステップS6060の判断はYESとなり、訂正不可能なためステップS614へ進み、異常処理を行う。異常処理とは、例えばアプリケーションに訂正できないエラーが発生した旨通知する、返すデータとしてオール0にするなどが例として挙げられる。
<Read operation when 3-bit corruption occurs>
In step S602, N is initialized to 0. In step S603, data is read from the NAND flash memory 203. In step S604, it is confirmed whether there is correction information. Since the position information is not 0xFFFF but 0x0064, it is determined that there is correction information. In step S608, correction information is read, and in step S609, the data read in step S603 is corrected. In order to indicate that the correction has been made, 1 is added to N in step S610. In step S611, whether or not there is further correction information is confirmed. However, since there is only one in the description of the present embodiment, the answer is YES, and ECC is calculated in step S605. In step S606, a check for garbled 2-bit data is performed. In the present embodiment, 1 bit out of 3 bits has been corrected, but the remaining 2 bits correspond to a case other than the corrected byte area, so the determination in step S6060 is YES, and the correction is impossible. Proceeding to S614, abnormal processing is performed. Examples of the abnormal processing include, for example, notifying an application that an error that cannot be corrected has occurred, and setting all 0 as data to be returned.

上述した本実施形態の構成は、以下に記載するような効果を奏する。   The configuration of the present embodiment described above has the following effects.

第1の効果は、訂正情報を追加書き込みすることにより、ECCのエラー訂正能力以上のエラー訂正が可能になることである。   The first effect is that error correction exceeding the error correction capability of ECC becomes possible by additionally writing correction information.

第2の効果は、ECCには手を加えなくともエラー訂正能力が強化できることである。ECCの訂正能力を増やす場合は、計算量の増加や、ECCコード量の増加が見込まれるが、本実施形態においては、特に訂正情報を同1ページの冗長領域に書き込んだ場合は、1ビットエラーが発生してない正常領域の読み込み及び書き込み性能にほとんど影響を及ぼさない。したがって、上記実施形態によれば、フラッシュメモリを記憶領域として搭載した電子機器の性能を損なわず、また既存の処理を大幅に変更することなく信頼性の高めるエラー訂正が可能になる。   The second effect is that the error correction capability can be enhanced without modifying the ECC. When the ECC correction capability is increased, the amount of calculation and the amount of ECC code are expected to increase. There is almost no effect on the reading and writing performance of a normal area where no occurrence occurs. Therefore, according to the above-described embodiment, it is possible to perform error correction with high reliability without impairing the performance of an electronic device equipped with a flash memory as a storage area and without significantly changing existing processing.

<本発明による他の実施形態>
さらに本発明による他の実施形態を説明する。エラー訂正における基本的構成は上記の通りであるが、上記実施形態においては訂正情報の持ち方及び消去時の処理にについてさらに工夫の余地がある。
<Other Embodiments According to the Present Invention>
Further, another embodiment according to the present invention will be described. The basic configuration for error correction is as described above. However, in the above embodiment, there is room for further improvement in the way of holding correction information and the processing at the time of erasure.

消去時の処理の流れを図7に示す。本発明の各実施形態における訂正情報は、正常なページ・ブロックに対するものであるからして、訂正を行っているブロック消去時にはエラー訂正情報も同時に削除する必要がある点も、本発明の関連技術として引用した特許文献1とは異なる。   The flow of processing at the time of erasing is shown in FIG. Since the correction information in each embodiment of the present invention is for a normal page block, it is also necessary to delete the error correction information at the same time when erasing the block being corrected. It differs from the patent document 1 quoted as.

図7が示すようにブロック消去時の処理としては、まず代替領域を検索し、当該ブロックの訂正情報があるかないかを検索する。無い場合には、ステップS704のブロック消去処理を行い終了であるが、ある場合には、ステップS703にて訂正情報の消去を行う必要がある。   As shown in FIG. 7, as a process at the time of block erasing, first, an alternative area is searched for whether there is correction information of the block. If there is not, the block erasure process of step S704 is completed and the process ends. If there is, the correction information needs to be erased in step S703.

先の実施形態では、訂正情報を当該ページのスペアエリアに格納していたが、その場合は当該ブロックの消去とともに訂正情報も削除されるため図7におけるステップS703相当の特別な処理が不要であるという特筆すべき特徴がある。NANDの他のブロックに訂正情報を格納した場合、一括消去しかできないため、消去対象以外の訂正情報を別ブロックにコピーして削除しなければならない。   In the previous embodiment, the correction information is stored in the spare area of the page, but in this case, the correction information is deleted together with the deletion of the block, so that a special process corresponding to step S703 in FIG. 7 is unnecessary. There is a notable feature. When correction information is stored in another block of the NAND, only batch erasure can be performed. Therefore, correction information other than that to be erased must be copied to another block and deleted.

ここで、訂正情報の削除例として、“消去した情報”を追加書き込みする例を示す。格納先として同一デバイスかつ同1ページではない場合には、ページ番号を示す情報を付与する点と、有効性を示す有効フラグを付与する点が先の実施形態と異なる。図8の符号801には、そのフォーマットを示している。符号802は、400ページの100バイト目にエラーが発生した場合の実施例を示している。その後、400ページを含むブロックを消去した場合は、符号803に示すように有効フラグに「無効」を表す0を指定する。このようなフォーマットは、訂正情報の格納先として追加書き込み特性に優れる別デバイス、例えばNORフラッシュを選択した場合には特に有効である。   Here, an example in which “erased information” is additionally written will be shown as an example of correction information deletion. When the storage device is not the same device and the same page, it differs from the previous embodiment in that information indicating the page number is added and a validity flag indicating validity is added. Reference numeral 801 in FIG. 8 shows the format. Reference numeral 802 indicates an embodiment when an error occurs in the 100th byte of 400 pages. Thereafter, when a block including 400 pages is erased, 0 indicating “invalid” is designated in the valid flag as indicated by reference numeral 803. Such a format is particularly effective when another device having excellent additional write characteristics, such as a NOR flash, is selected as a storage location for correction information.

本実施形態では、デバイスがひとつと仮定しているが、実際の実施形態ではひとつに限らない。複数のデバイスがある場合には、ページ番号の他さらにデバイス番号を付与する必要もあることは容易に推測でき、本発明の範囲内である。   In the present embodiment, it is assumed that there is one device. However, in the actual embodiment, the number is not limited to one. If there are a plurality of devices, it can be easily estimated that it is necessary to assign a device number in addition to the page number, and this is within the scope of the present invention.

訂正情報のフォーマットについて他の実施形態をさらに示す。図9は訂正情報を二重に記録する例である。訂正情報そのものが後にビット化けを起こした場合、どちらかの訂正情報でECC訂正可能な範囲に収まれば、当該ページのデータを失うことを防ぐことが可能となる。図10は訂正情報にさらにその訂正情報に関するエラー訂正符号を付与したものである。やはり、訂正情報そのものが後にビット化けを起こした場合に、当該ページのデータを失うことが防ぐことが可能となる。   Another embodiment of the correction information format is further shown. FIG. 9 shows an example in which correction information is recorded twice. When the correction information itself is garbled later, if the correction information falls within the ECC correctable range, it is possible to prevent the data on the page from being lost. FIG. 10 is obtained by adding an error correction code related to the correction information to the correction information. Again, when the correction information itself is garbled later, it is possible to prevent the data on the page from being lost.

このように、本実施形態では、正常なエリアに対してエラー訂正をしているので、当該ブロックを消去する場合には訂正情報も削除する必要がある。しかしながら、消去後はまたビット化けの無い正常なエリアとして使用できるという効果が得られる。   Thus, in this embodiment, since error correction is performed on a normal area, it is necessary to delete correction information when the block is erased. However, after erasing, there is an effect that it can be used as a normal area without bit corruption.

以上、本発明の好適な実施の形態について説明したが、本発明はこれに限定されるものではなく、要旨を逸脱しない範囲内で種々の変形実施が可能である。   The preferred embodiment of the present invention has been described above, but the present invention is not limited to this, and various modifications can be made without departing from the scope of the invention.

なお、本発明は、携帯電話などフラッシュメモリを使用する電子機器で、特に保存するデータの信頼性が求められる物、例えば、有償の音楽、画像などのデータが保存される機器などに実施すると有効である。   It should be noted that the present invention is effective when applied to an electronic device using a flash memory such as a mobile phone, and particularly to a device that requires reliability of data to be stored, such as a device that stores data such as paid music and images. It is.

本発明の実施形態に係るエラー訂正方法の流れを示すフローチャートである。It is a flowchart which shows the flow of the error correction method which concerns on embodiment of this invention. 本発明の実施形態に係るエラー訂正方法が適用されるエラー訂正装置の構成を示すブロック図である。It is a block diagram which shows the structure of the error correction apparatus with which the error correction method which concerns on embodiment of this invention is applied. 本発明の実施形態に係るNAND型フラッシュメモリの1読み込み単位(ページ)毎の構造を示す概念図である。1 is a conceptual diagram showing a structure for each read unit (page) of a NAND flash memory according to an embodiment of the present invention. 本発明の実施形態に係る訂正情報フォーマットの構造を示す概念図である。It is a conceptual diagram which shows the structure of the correction information format which concerns on embodiment of this invention. 本発明の実施形態に基づく具体例を説明するための概念図である。It is a conceptual diagram for demonstrating the specific example based on embodiment of this invention. 本発明の実施形態に基づく具体例を説明するためのフローチャートである。It is a flowchart for demonstrating the specific example based on embodiment of this invention. 本発明の他の実施形態に係るエラー訂正方法の流れを示すフローチャートである。It is a flowchart which shows the flow of the error correction method which concerns on other embodiment of this invention. 本発明の他の実施形態Other embodiments of the invention 本発明の他の実施形態(訂正情報を二重に記録するもの)に係るページ構造を示す概念図である。It is a conceptual diagram which shows the page structure concerning other embodiment (thing which records correction information doubly) of this invention. 本発明の他の実施形態(訂正情報にエラー訂正符号を付与するもの)に係るページ構造を示す概念図である。It is a conceptual diagram which shows the page structure concerning other embodiment (thing which gives an error correction code | cord | chord to correction information) of this invention. 本発明に関連する技術に係るエラー訂正方法の流れを示すフローチャートである。It is a flowchart which shows the flow of the error correction method based on the technique relevant to this invention.

符号の説明Explanation of symbols

201 CPU
202 RAM
203 NAND型フラッシュメモリ
204 ROM
201 CPU
202 RAM
203 NAND flash memory 204 ROM

Claims (10)

記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出手段と、
前記ビットエラー検出手段が検出したビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込手段と、
次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正手段と、
を有することを特徴とする、情報処理装置。
A bit error detection means for detecting a bit error using an error correction code when data is read from the storage area;
Bit error information writing means for writing bit error information including information on the location and correct value of the bit error detected by the bit error detection means in a predetermined alternative area;
Next, when data is read from the storage area, when the alternative area is searched and the bit error information is determined to be present, data correction means for correcting data based on the bit error information;
An information processing apparatus comprising:
前記記憶領域が読み込み単位毎に冗長領域を備え、
前記エラー情報書込手段は、前記代替領域として前記冗長領域を使用することを特徴とする、請求項1記載の情報処理装置。
The storage area comprises a redundant area for each reading unit,
The information processing apparatus according to claim 1, wherein the error information writing unit uses the redundant area as the alternative area.
前記ビットエラー検出手段は、前記データ修正手段によるデータの修正後に、誤り訂正符号を用いてビットエラーの検出及び訂正を行うことを特徴とする、請求項1又は2記載の情報処理装置。   The information processing apparatus according to claim 1 or 2, wherein the bit error detection means detects and corrects a bit error using an error correction code after the data correction by the data correction means. 前記ビットエラー情報書込手段は、前記ビットエラー検出手段が、前記データ修正手段に夜データの修正後に、ビットエラーの検出をした場合に、当該ビットエラーに係るビットエラー情報を前記代替領域に追加書き込みすることを特徴とする、請求項3記載の情報処理装置。   The bit error information writing means adds bit error information related to the bit error to the alternative area when the bit error detection means detects a bit error after the night correction of the data to the data correction means. The information processing apparatus according to claim 3, wherein writing is performed. 前記記憶領域のデータを消去する際に、前記ビットエラー情報書込手段により前記代替領域に書き込まれた前記ビットエラー情報を削除する消去処理手段を有することを特徴とする、請求項1から4のいずれか1項記載の情報処理装置。   5. The erasure processing unit according to claim 1, further comprising an erasure processing unit that deletes the bit error information written in the alternative region by the bit error information writing unit when erasing data in the storage area. The information processing apparatus according to any one of claims. 前記消去処理手段は、前記ビットエラー情報を削除したという情報を、データの消去対象である読み込み単位とは異なる読み込み単位の代替領域に、追加書き込みすることを特徴とする、請求項5記載の情報処理装置。   6. The information according to claim 5, wherein the erasure processing unit additionally writes the information indicating that the bit error information has been deleted into an alternative area of a read unit different from a read unit that is a data erasure target. Processing equipment. 前記ビットエラー情報書込手段は、前記ビットエラー情報を2個所以上の代替領域に書き込むことを特徴とする、請求項1から6のいずれか1項記載の情報処理装置。   7. The information processing apparatus according to claim 1, wherein the bit error information writing unit writes the bit error information in two or more alternative areas. 前記ビットエラー情報書込手段は、前記ビットエラー情報について誤り訂正符号を付与し、付与された誤り訂正符号を前記代替領域に書き込むことを特徴とする、請求項1から7のいずれか1項記載の情報処理装置。   8. The bit error information writing unit assigns an error correction code to the bit error information and writes the assigned error correction code in the alternative area. 9. Information processing device. 記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出ステップと、
前記ビットエラー検出ステップにより検出されたビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込ステップと、
次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正ステップと、
を含むことを特徴とする、エラー訂正方法。
A bit error detection step for detecting a bit error using an error correction code when data is read from the storage area;
A bit error information writing step of writing bit error information including information on a location and a correct value of the bit error detected in the bit error detection step in a predetermined alternative area;
Next, when data is read from the storage area, a data correction step of correcting the data based on the bit error information when the alternative area is searched and the bit error information is determined to be present,
An error correction method comprising:
情報処理装置を、
記憶領域からデータを読み込んだ際、誤り訂正符号を用いてビットエラーの検出を行うビットエラー検出手段と、
前記ビットエラー検出手段が検出したビットエラーの場所及び正しい値の情報を含むビットエラー情報を所定の代替領域に書き込むビットエラー情報書込手段と、
次に前記記憶領域からデータを読み込んだ際、前記代替領域を検索して前記ビットエラー情報があると判断する場合に前記ビットエラー情報に基づきデータを修正するデータ修正手段として機能させることを特徴とする、エラー訂正プログラム。
Information processing device
A bit error detection means for detecting a bit error using an error correction code when data is read from the storage area;
Bit error information writing means for writing bit error information including information on the location and correct value of the bit error detected by the bit error detection means in a predetermined alternative area;
Next, when data is read from the storage area, when the alternative area is searched and it is determined that there is the bit error information, it functions as data correction means for correcting data based on the bit error information. An error correction program.
JP2008315979A 2008-12-11 2008-12-11 Information processor, error correction method and program Withdrawn JP2010140261A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008315979A JP2010140261A (en) 2008-12-11 2008-12-11 Information processor, error correction method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008315979A JP2010140261A (en) 2008-12-11 2008-12-11 Information processor, error correction method and program

Publications (1)

Publication Number Publication Date
JP2010140261A true JP2010140261A (en) 2010-06-24

Family

ID=42350354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008315979A Withdrawn JP2010140261A (en) 2008-12-11 2008-12-11 Information processor, error correction method and program

Country Status (1)

Country Link
JP (1) JP2010140261A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221488A (en) * 2011-04-05 2012-11-12 Denso Corp System and method for handling bad bit errors
WO2013058107A1 (en) * 2011-10-17 2013-04-25 日立オートモティブシステムズ株式会社 Electronic control apparatus

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221488A (en) * 2011-04-05 2012-11-12 Denso Corp System and method for handling bad bit errors
WO2013058107A1 (en) * 2011-10-17 2013-04-25 日立オートモティブシステムズ株式会社 Electronic control apparatus
JP2013088978A (en) * 2011-10-17 2013-05-13 Hitachi Automotive Systems Ltd Electronic control apparatus

Similar Documents

Publication Publication Date Title
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
KR101730510B1 (en) Non-regular parity distribution detection via metadata tag
JP4901987B1 (en) Storage device, electronic device, and error data correction method
US8479062B2 (en) Program disturb error logging and correction for flash memory
US8266481B2 (en) System and method of wear-leveling in flash storage
US8055983B2 (en) Data writing method for flash memory and error correction encoding/decoding method thereof
US20040015771A1 (en) Error correction for non-volatile memory
US8756398B2 (en) Partitioning pages of an electronic memory
US10635527B2 (en) Method for processing data stored in a memory device and a data storage device utilizing the same
JP2010529557A (en) New bad block detection
TWI459393B (en) Data writing method for a non-volatile memory module, memory controller and memory storage apparatus
TWI394170B (en) Link table recovery method
JP4866107B2 (en) Nonvolatile memory device and write determination method thereof
CN107992268B (en) Bad block marking method and related device
JP2010079856A (en) Storage device and memory control method
JP2009064238A (en) Memory system
JP2019192316A (en) Nonvolatile storage device, memory control device, and memory control method
JP2013171343A (en) Storage device
KR101512927B1 (en) Method and apparatus for managing page of non-volatile memory
JP2010140261A (en) Information processor, error correction method and program
JP5335779B2 (en) Semiconductor recording device
JP2002244932A (en) Control device
CN109710445B (en) Memory correction method and electronic equipment
US10019186B2 (en) Data maintenance method for error control and data storage device using the same
CN112230855A (en) Solid state disk and read-write method thereof

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110920

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120306