JP2006221334A - Memory controller, flash memory system, and control method for flash memory - Google Patents

Memory controller, flash memory system, and control method for flash memory Download PDF

Info

Publication number
JP2006221334A
JP2006221334A JP2005032966A JP2005032966A JP2006221334A JP 2006221334 A JP2006221334 A JP 2006221334A JP 2005032966 A JP2005032966 A JP 2005032966A JP 2005032966 A JP2005032966 A JP 2005032966A JP 2006221334 A JP2006221334 A JP 2006221334A
Authority
JP
Japan
Prior art keywords
data
error correction
flash memory
error
correction code
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.)
Pending
Application number
JP2005032966A
Other languages
Japanese (ja)
Inventor
Hidetomo Hasegawa
英知 長谷川
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2005032966A priority Critical patent/JP2006221334A/en
Publication of JP2006221334A publication Critical patent/JP2006221334A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a flash memory system for suppressing the deterioration of a flash memory when using an error correction code whose error correcting capability is high. <P>SOLUTION: User data read from a flash memory 2 are inputted to an error correction coder/decoder 24, and an error correction code read from the redundant region of the flash memory 2 is inputted through a mask circuit 25 to the error correction coder/decoder 24. The error correction coder/encoder 24 performs the error detection and correction of user data on the basis of the error correction code, and provides user data to a buffer 9. Then, only when the number of errors of user data exceeds a set value, the user data of the flash memory 2 are rewritten to correct user data. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。   The present invention relates to a memory controller, a flash memory system, and a flash memory control method.

近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。   In recent years, flash memories have been widely adopted as semiconductor memories used in memory systems such as memory cards and silicon disks. A flash memory is a kind of nonvolatile memory. Data stored in the flash memory is required to be retained even when power is not supplied.

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値"1"を示すデータが格納されている消去状態から、論理値"0"を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、"ブロック消去"と称されている。   A NAND flash memory is a type of flash memory that is particularly frequently used in the above memory system. Each of the plurality of memory cells included in the NAND flash memory has a logical value “0” from an erased state in which data indicating the logical value “1” is stored, independently of the other memory cells. It is possible to change to a writing state in which the indicated data is stored. In contrast, when changing from the written state to the erased state, each memory cell cannot change independently of the other memory cells. At this time, all of a predetermined number of memory cells called blocks are simultaneously erased. This batch erase operation is generally called “block erase”.

NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。   The writing process or the reading process for the NAND flash memory is performed in units of a predetermined number of memory cells called pages. A block which is a unit of erasure processing is composed of a plurality of pages.

NAND型フラッシュメモリに対する書込み処理では、まず、書込みデータがNAND型フラッシュメモリ内のレジスタに転送され、レジスタに保持された書込みデータがメモリセルアレイに複写される。この複写(書込み)処理で、メモリセルを消去状態から書込状態に変化させる場合、コントロールゲートに高電圧が印加され、フローティングゲートに電子が注入される。このような処理により、メモリセルアレイにデータが書込まれるため、NAND型フラッシュメモリに対する書込み処理では、書込みエラーが発生することがある。   In the writing process to the NAND flash memory, first, write data is transferred to a register in the NAND flash memory, and the write data held in the register is copied to the memory cell array. When the memory cell is changed from the erased state to the written state by this copying (writing) process, a high voltage is applied to the control gate and electrons are injected to the floating gate. Since data is written into the memory cell array by such processing, a write error may occur in the write processing to the NAND flash memory.

書込みエラー等に起因する読出しデータの誤りは、通常、各ページの冗長領域に書込まれている誤り訂正符号に基づいて検出、訂正が行われる。この誤り訂正符号は、書込み処理のときに、各ページのユーザー領域に書込まれるデータに基づいて生成され、各ページの冗長領域に書込まれる。   An error in read data due to a write error or the like is usually detected and corrected based on an error correction code written in a redundant area of each page. This error correction code is generated based on the data written in the user area of each page during the writing process, and is written in the redundant area of each page.

データの誤りを検出、訂正するための誤り訂正符号としては、リードソロモン符号、BCH符号、ハミング符号等が知られている。ハミング符号は、誤りの訂正能力が高くないが、ユーザー領域に書込む書込みデータの全てのビットデータが論理値"1"(消去状態)のときに、この書込みデータに基づいて生成される誤り訂正符号の全てのビットデータが、論理値"1"(消去状態)に一致するので、NAND型フラッシュメモリの誤り訂正符号として使用されることが多い。   As error correction codes for detecting and correcting data errors, Reed-Solomon codes, BCH codes, Hamming codes, and the like are known. The Hamming code does not have a high error correction capability, but error correction is generated based on the write data when all the bit data of the write data to be written in the user area is a logical value “1” (erased state). Since all the bit data of the code matches the logical value “1” (erased state), it is often used as an error correction code of the NAND flash memory.

一方、リードソロモン符号を誤り訂正符号として用いた場合、誤りの訂正能力は高くなるが、書込みデータの全てのビットデータが論理値"1"(消去状態)のときに、この書込みデータに基づいて生成される誤り訂正符号の全てのビットデータが、論理値"1"(消去状態)に一致しない。従って、NAND型フラッシュメモリの誤り訂正符号として、リードソロモン符号を使用する場合には、この不整合を解消する処理が必要になる。   On the other hand, when the Reed-Solomon code is used as an error correction code, the error correction capability is enhanced. However, when all the bit data of the write data is a logical value “1” (erased state), All bit data of the generated error correction code does not match the logical value “1” (erased state). Therefore, when a Reed-Solomon code is used as the error correction code of the NAND flash memory, a process for eliminating this mismatch is necessary.

上記不整合を解消するため、下記特許文献1では、書込み処理のときに、書込みデータと消去状態のデータとを比較し、両データが一致した場合には、書込みデータに基づいて生成された誤り訂正符号を、冗長領域に書込まないようにしている。一方、読出し処理のときは、読出しデータと消去状態のデータとを比較し、両データが一致した場合には、読出しデータに対する誤りの検出、訂正を行っていない。
特開2004−71012号公報
In order to eliminate the inconsistency, in Patent Document 1 below, write data is compared with erased data at the time of write processing, and if both data match, an error generated based on the write data is generated. The correction code is not written in the redundant area. On the other hand, during the read process, the read data is compared with the erased data. If the two data match, no error detection or correction is performed on the read data.
JP 2004-71012 A

特許文献1では、書込みデータが消去状態のデータと一致する場合には、誤り訂正符号が冗長領域に書込まれず、読出しデータが消去状態のデータと一致する場合には、読出しデータに対する誤りの検出、訂正を行っていない。従って、読出しエラーが発生したために、読出しデータと消去状態のデータが一致してしまった場合には、誤りの検出、訂正が行われないという問題が発生する。   In Patent Document 1, when the write data matches the erased data, the error correction code is not written to the redundant area, and when the read data matches the erased data, an error is detected for the read data. No corrections have been made. Therefore, when a read error occurs and the read data matches the erased data, there is a problem that the error is not detected or corrected.

又、読出しデータに含まれる誤りが検出された場合には、誤り訂正符号に基づいて訂正された訂正後のデータを再書込みすることが好ましいが、検出された誤りが誤りの訂正能力に比べて小さい場合であっても一律に再書込みを行うと、フラッシュメモリの劣化を促進することになる。   In addition, when an error included in the read data is detected, it is preferable to rewrite the corrected data corrected based on the error correction code, but the detected error is compared with the error correction capability. Even if it is small, if rewriting is performed uniformly, deterioration of the flash memory is promoted.

従って、上記のようなリードソロモン符号を用いた場合の問題を解消しても、再書込みによりフラッシュメモリの劣化を促進してしまうという問題は解消されない。   Therefore, even if the problem in the case of using the Reed-Solomon code as described above is solved, the problem of promoting the deterioration of the flash memory by rewriting is not solved.

そこで、本発明は、誤りの訂正能力が高い誤り訂正符号を用いた場合に、フラッシュメモリの劣化を抑制することができるメモリコントローラ及びそのメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。   Accordingly, the present invention provides a memory controller capable of suppressing deterioration of the flash memory when an error correction code having a high error correction capability is used, a flash memory system including the memory controller, and a flash memory control method. The purpose is to provide.

上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリにアクセスするメモリコントローラであって、
前記フラッシュメモリの各ページのユーザー領域に書込まれているデータと該各ページの冗長領域に書込まれている付加情報を読み出すデータ読出し手段と、
前記付加情報に含まれる誤り訂正に関する情報に基づいて、前記ユーザー領域から読み出されたデータに含まれる誤りを検出して訂正する誤り訂正手段と、
前記誤り訂正手段により検出された誤りが、予め設定された設定値を超えた場合に、訂正後のデータを消去状態のページのユーザー領域に書込む再書込み手段と、
を備えることを特徴とする。
In order to achieve the above object, a memory controller according to the first aspect of the present invention provides:
A memory controller that accesses a flash memory in which data is written and read in units of pages, and data is erased in units of blocks of a plurality of pages.
Data reading means for reading data written in the user area of each page of the flash memory and additional information written in the redundant area of each page;
Based on information on error correction included in the additional information, error correction means for detecting and correcting an error included in the data read from the user area;
Rewrite means for writing the corrected data to the user area of the erased page when the error detected by the error correction means exceeds a preset set value;
It is characterized by providing.

このような構成を採用したことにより、誤り訂正手段により検出された誤りが、設定値を超えない場合には、再書込み手段による書込みが発生しない。   By adopting such a configuration, when the error detected by the error correction unit does not exceed the set value, writing by the rewriting unit does not occur.

尚、前記誤り訂正手段は、前記ユーザー領域から読み出されたデータに含まれる複数ビット又は複数シンボルの誤りを訂正することができるよう構成され、
前記設定値は、前記誤り訂正手段によって検出される誤りのビット数又はシンボル数に関して設定された値であってもよい。
この場合、前記誤り訂正手段が訂正することができる前記ビット或いはシンボルの数をN(Nは、2以上の整数)とすると、前記設定値は、1以上N以下の整数に設定されてもよい。さらに、前記設定値を可変に変更する手段を備えてもよい。
The error correction means is configured to correct a plurality of bits or a plurality of symbols errors included in the data read from the user area,
The set value may be a value set with respect to the number of bits or symbols of errors detected by the error correction means.
In this case, if the number of bits or symbols that can be corrected by the error correction means is N (N is an integer of 2 or more), the set value may be set to an integer of 1 or more and N or less. . Furthermore, a means for variably changing the set value may be provided.

また、前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号であってもよい。   In addition, the error correction information included in the additional information may be an error correction code generated based on data written in the user area.

また、前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号に対して変換処理を施した情報であってもよい。   Further, the error correction information included in the additional information may be information obtained by performing a conversion process on an error correction code generated based on data written in the user area.

この場合、前記変換処理が、予め設定されたマスクデータとの排他的論理和をとる処理であってよい。
同様に、記誤り訂正符号も、リードソロモン符号であってもよい。
In this case, the conversion process may be an exclusive OR process with preset mask data.
Similarly, the writing error correction code may be a Reed-Solomon code.

上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、本発明の第1の観点に係るメモリコントローラと、データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリと、を備えることを特徴とする。   In order to achieve the above object, a flash memory system according to a second aspect of the present invention includes a memory controller according to the first aspect of the present invention, and data is written and read on a page-by-page basis. And a flash memory that is performed in units of blocks each including a plurality of pages.

上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリの各ページのユーザー領域に書込まれているデータと各ページの冗長領域に書込まれている付加情報を読み出す読出し処理と、
前記付加情報に含まれる誤り訂正に関する情報に基づいて、前記ユーザー領域から読み出されたデータに含まれる誤りを検出して訂正する誤り訂正処理と、
前記誤り訂正処理により検出された誤りが、予め設定された設定値を超えた場合に、訂正後のデータを消去状態のページのユーザー領域に書込む再書込み処理と、
を含むことを特徴とする。
In order to achieve the above object, a flash memory control method according to a third aspect of the present invention includes:
A flash memory control method for controlling access to a flash memory in which data is written and read in units of pages, and data is erased in units of blocks of a plurality of pages.
A read process for reading data written in the user area of each page of the flash memory and additional information written in the redundant area of each page;
Based on information on error correction included in the additional information, an error correction process for detecting and correcting an error included in the data read from the user area;
When the error detected by the error correction process exceeds a preset value, a rewrite process for writing the corrected data to the user area of the erased page;
It is characterized by including.

尚、前記誤り訂正処理は、前記ユーザー領域から読み出されたデータに含まれる誤りをビット又はシンボル単位で訂正する処理であり、
前記設定値は、前記誤り訂正処理によって検出される誤りのビット数又はシンボル数に関しての値であってもよい。
The error correction process is a process of correcting an error included in data read from the user area in units of bits or symbols,
The set value may be a value related to the number of bits or symbols of errors detected by the error correction process.

この場合、前記誤り訂正処理で訂正することができる前記ビット或いはシンボルの数をN(Nは、2以上の整数)とすると、前記設定値は、1以上N以下の整数に設定されてもよい。さらに、前記設定値を可変に変更する設定値変更処理を含んでもよい。   In this case, if the number of bits or symbols that can be corrected by the error correction processing is N (N is an integer of 2 or more), the setting value may be set to an integer of 1 or more and N or less. . Furthermore, a setting value change process for changing the setting value variably may be included.

また、前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号であってもよい。   In addition, the error correction information included in the additional information may be an error correction code generated based on data written in the user area.

また、前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号に対して変換処理を施した情報であってもよい。   Further, the error correction information included in the additional information may be information obtained by performing a conversion process on an error correction code generated based on data written in the user area.

この場合、前記変換処理が、予め設定されたマスクデータとの排他的論理和をとる処理であってもよい。
また、前記誤り訂正符号が、リードソロモン符号であってもよい。
In this case, the conversion process may be an exclusive OR process with preset mask data.
The error correction code may be a Reed-Solomon code.

本発明によれば、誤りの訂正能力が高い誤り訂正符号を用いた場合に、検出された誤りが、予め設定されたレベルを超えているか否かを判断し、設定されたレベルを超えているときだけ訂正後のデータの再書込みを行っている。従って、再書込みを行うか否かの判断基準となる誤りのレベルを適切に設定することにより、信頼性をほとんど低下させることなくフラッシュメモリの劣化を抑制することができる。   According to the present invention, when an error correction code having high error correction capability is used, it is determined whether or not the detected error exceeds a preset level, and exceeds the preset level. Only when corrected data is rewritten. Therefore, by appropriately setting an error level that is a criterion for determining whether or not to perform rewriting, it is possible to suppress the deterioration of the flash memory with almost no decrease in reliability.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、フラッシュメモリシステム1を、概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram schematically showing the flash memory system 1.
As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a memory controller 3 that controls the flash memory 2. The flash memory system 1 is usually detachably attached to the host system 4 and used as a kind of external storage device for the host system 4.

尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
Examples of the host system 4 include various information processing apparatuses such as a personal computer and a digital still camera that process various information such as characters, sounds, and image information.
Details of the flash memory 2 and the memory controller 3 will be described below.

[フラッシュメモリ2の説明]
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
[Description of flash memory 2]
In this flash memory system 1, a flash memory 2 in which data is stored is composed of a NAND flash memory. The NAND flash memory is a non-volatile memory developed for use as a storage device (as an alternative to a hard disk). This NAND flash memory cannot perform random access, and writing and reading are performed in units of pages and erasing is performed in units of blocks. Since data cannot be overwritten, when data is written, data is written into the erased area.

NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。   Since the NAND flash memory has such characteristics, normally, when data is rewritten, new data (data after rewriting) is written to the erased block that has been erased, and old data is written. A process of erasing a block in which (data before rewriting) has been written is performed.

このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理アドレスと、フラッシュメモリ2内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ2にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ2に対するアクセスが行なわれる。   When rewriting such data, since the data after rewriting is written in a different block from before rewriting, the logical address given from the host system 4 side and the physical address in the flash memory 2 The correspondence between and changes dynamically every time data is rewritten. Therefore, when accessing the flash memory 2, an address conversion table showing the correspondence between logical addresses and physical addresses is usually created, and the flash memory 2 is accessed using this address conversion table.

図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ2の仕様によって異なるが、一般的なフラッシュメモリ2では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
FIG. 2 is an explanatory diagram showing the relationship between blocks and pages.
The configuration of the block and page differs depending on the specifications of the flash memory 2, but in the general flash memory 2, as shown in FIG. 2A, one block is configured with 32 pages (P0 to P31). Each page includes a 512-byte user area and a 16-byte redundant area. As the storage capacity increases, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area and a 64-byte redundant area. What is being provided is also provided.

ここで、ユーザー領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。   Here, the user area is mainly an area where data supplied from the host system 4 is stored, and the redundant area is stored with additional data such as an error correction code, corresponding logical address information and block status. Area. The error correction code is additional data for detecting and correcting an error included in the data stored in the user area, and is generated by an ECC block described later.

対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。   The corresponding logical address information is written when data is stored in a physical block, and indicates information related to the logical address of the data stored in the physical block. If no data is stored in the physical block, the corresponding logical address information is not written, so whether the corresponding logical address information is written or not is the erased block. Can be judged. That is, if the corresponding logical block address is not written, it is determined that the block is an erased block.

ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。   The block status is a flag indicating whether or not the physical block is a bad block (a physical block in which data cannot be normally written). When the physical block is determined to be a bad block, Is set with a flag indicating that it is a bad block.

次に、フラッシュメモリ2の、回路構成について説明する。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
Next, the circuit configuration of the flash memory 2 will be described.
A general NAND flash memory includes a register for holding write data or read data and a memory cell array for storing data. The memory cell array includes a plurality of memory cell groups in which a plurality of memory cells are connected in series, and a specific memory cell in the memory cell group is selected by a word line. Data copying (copying from register to memory cell or copying from memory cell to register) is performed between the memory cell selected by the word line and the register.

メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。   A memory cell constituting the memory cell array is composed of a MOS transistor having two gates. Here, the upper gate is called a control gate, and the lower gate is called a floating gate. By injecting charges (electrons) into the floating gate and discharging charges (electrons) from the floating gate, Data is written or erased.

フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値"0"のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値"1"のデータに対応する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When injecting electrons into the floating gate, a high voltage is applied so that the control gate is at the high potential side. When electrons are injected from the floating gate, a high voltage at which the control gate is at the low potential side is applied. Applied to discharge electrons. The state in which electrons are injected into the floating gate (write state) corresponds to data having a logical value “0”, and the state in which electrons are discharged from the floating gate (erased state) has a logical value “1”. Corresponds to data.

[メモリコントローラ3の説明]
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
[Description of Memory Controller 3]
The memory controller 3 includes a host interface control block 5, a microprocessor 6, a host interface block 7, a work area 8, a buffer 9, a flash memory interface block 10, and an ECC (error collection code) block 11. And a flash memory sequencer block 12.

これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
The memory controller 3 constituted by these functional blocks is integrated on one semiconductor chip. Hereinafter, the function of each functional block will be described.
The microprocessor 6 is a functional block that controls the operation of all the functional blocks constituting the memory controller 3.

ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック7は動作する。   The host interface control block 5 is a functional block that controls the operation of the host interface block 7. Here, the host interface control block 5 includes an operation setting register (not shown) for setting the operation of the host interface block 7, and the host interface block 7 operates based on the operation setting register.

ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4とは、外部バス13を介して相互に接続され、かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口として、メモリコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口として、ホストシステム4に供給される。
ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
The host interface block 7 is a functional block that exchanges data, address information, status information, and external command information with the host system 4. That is, when the flash memory system 1 is mounted on the host system 4, the flash memory system 1 and the host system 4 are connected to each other via the external bus 13. The data supplied to the host system is taken into the memory controller 3 using the host interface block 7 as an entrance, and the data supplied from the flash memory system 1 to the host system 4 is sent to the host using the host interface block 7 as an exit. Supplied to system 4.
The host interface block 7 has a register for holding a logical address, a sector number, and an external command supplied from the host system 4, an error register (not shown) that is set when an error occurs, and the like.

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。   The work area 8 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and is composed of a plurality of SRAM (Static Random Access Memory) cells.

バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまで、バッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまで、バッファ9に保持される。   The buffer 9 is a functional block that temporarily holds data read from the flash memory 2 and data to be written to the flash memory 2. That is, data read from the flash memory 2 is held in the buffer 9 until the host system 4 is ready to receive data, and data to be written to the flash memory 2 is stored in the buffer 9 until the flash memory 2 is ready to write. Retained.

フラッシュメモリシーケンサブロック12は、内部コマンドに基づいて、フラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。   The flash memory sequencer block 12 is a functional block that controls the operation of the flash memory 2 based on an internal command. The flash memory sequencer block 12 includes a plurality of registers (not shown), and information necessary for executing an internal command is set in the plurality of registers. When information necessary for executing an internal command is set in the plurality of registers, the flash memory sequencer block 12 executes processing based on the information.

前述の「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。   The aforementioned “internal command” is a command given from the memory controller 3 to the flash memory 2, and is distinguished from an “external command” which is a command given from the host system 4 to the flash memory system 1.

フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。   The flash memory interface block 10 is a functional block that exchanges data, address information, status information, internal command information, device ID information, and the like with the flash memory 2 via the internal bus 14.

ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加される誤り訂正符号を生成するとともに、読出しデータに付加されている誤り訂正符号に基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。   The ECC block 11 generates an error correction code added to the data to be written to the flash memory 2 and detects an error included in the read data based on the error correction code added to the read data. This is a functional block to be corrected.

ここで、ECCブロック11について詳細に説明する。
図3は、書込み処理におけるECCブロックの動作を説明するための説明図である。
図4及び図5は、読出し処理におけるECCブロックの動作を説明するための図面である。
Here, the ECC block 11 will be described in detail.
FIG. 3 is an explanatory diagram for explaining the operation of the ECC block in the writing process.
4 and 5 are diagrams for explaining the operation of the ECC block in the reading process.

ECCブロック11は、ECCレジスタ22と管理データレジスタ23と誤り訂正符号・復号器24とマスク回路25とを備えている。
ECCレジスタ22は、フラッシュメモリ2の冗長領域から読み出した誤り訂正符号を一時的に保持する。管理データレジスタ23は、フラッシュメモリ2の冗長領域に書込む管理データ、又はフラッシュメモリ2の冗長領域から読み出した管理データを一時的に保持する。誤り訂正符号・復号器24は、書込み処理のときに、書込みデータに基づいて誤り訂正符号を生成し、読出し処理のときに、誤り訂正符号に基づいて読出しデータの誤りを検出、訂正する。マスク回路25は、入力された誤り訂正符号に対して予め設定されている第1の変換処理及び第2の変換処理を施す。フラッシュメモリ2には、ユーザーデータ、管理データ(MNG)及び誤り訂正符号(ECC−M)が書込まれる。
The ECC block 11 includes an ECC register 22, a management data register 23, an error correction code / decoder 24, and a mask circuit 25.
The ECC register 22 temporarily holds the error correction code read from the redundant area of the flash memory 2. The management data register 23 temporarily holds management data to be written into the redundant area of the flash memory 2 or management data read from the redundant area of the flash memory 2. The error correction code / decoder 24 generates an error correction code based on the write data during the write process, and detects and corrects an error in the read data based on the error correction code during the read process. The mask circuit 25 performs preset first conversion processing and second conversion processing on the input error correction code. User data, management data (MNG) and error correction code (ECC-M) are written in the flash memory 2.

以下に、10ビットを1シンボルとし、4シンボルの誤り訂正、5シンボルの誤り検出能力を持つリードソロモン符号を例にとり、ECCブロック11の動作を説明する。   The operation of the ECC block 11 will be described below by taking a Reed-Solomon code having 10 bits as 1 symbol and 4 symbol error correction and 5 symbol error detection capability as an example.

まず、書込み処理におけるECCブロック11の動作を説明する(図3参照)。
ホストシステム4から供給された512バイト(4096ビット)の書込みデータ(ユーザーデータ)は、バッファ9に一時的に保持された後、フラッシュメモリ2及び誤り訂正符号・復号器24に転送される。フラッシュメモリ2に転送された512バイト(4096ビット)の書込みデータは、フラッシュメモリ2のユーザー領域に書込まれる。
First, the operation of the ECC block 11 in the writing process will be described (see FIG. 3).
512 bytes (4096 bits) of write data (user data) supplied from the host system 4 is temporarily held in the buffer 9 and then transferred to the flash memory 2 and the error correction code / decoder 24. The 512 bytes (4096 bits) of write data transferred to the flash memory 2 is written into the user area of the flash memory 2.

誤り訂正符号・復号器24に転送された512バイト(4096ビット)の書込みデータには、4ビットのダミーデータが付加される。誤り訂正符号・復号器24は、4ビットのダミーデータが付加された4100ビットの書込みデータに対する誤り訂正符号を生成する。生成された80ビットの誤り訂正符号には、マスク回路25で第1の変換処理が施され、第1の変換処理が施された誤り訂正符号(ECC−M)が、フラッシュメモリ2の冗長領域に書込まれる。   4-bit dummy data is added to the 512-byte (4096 bits) write data transferred to the error correction code / decoder 24. The error correction code / decoder 24 generates an error correction code for 4100-bit write data to which 4-bit dummy data is added. The generated 80-bit error correction code is subjected to the first conversion process by the mask circuit 25, and the error correction code (ECC-M) subjected to the first conversion process is the redundant area of the flash memory 2. Written in.

誤り訂正符号・復号器24は、418シンボルに対して、5シンボルの誤り検出と、4シンボルの誤り訂正が可能なリードソロモン符号を使用している。ここで、1シンボルは10ビットに対応し、418シンボルのうち410シンボルは、書込みデータに割当てられ、8シンボルは誤り訂正符号に割当てられる。   The error correction code / decoder 24 uses a Reed-Solomon code capable of detecting an error of 5 symbols and correcting an error of 4 symbols with respect to 418 symbols. Here, one symbol corresponds to 10 bits, 410 symbols out of 418 symbols are assigned to write data, and 8 symbols are assigned to error correction codes.

書込みデータに割当てられた410シンボルは、4100ビットに対応するため、誤り訂正符号・復号器24に転送する512バイト(4096ビット)の書込みデータ(ユーザデータ)に、4ビットのダミーデータを付加している。このダミーデータの論理値については、適宜設定すればよい。   Since 410 symbols allocated to write data correspond to 4100 bits, 4-bit dummy data is added to 512-byte (4096 bits) write data (user data) transferred to the error correction code / decoder 24. ing. What is necessary is just to set suitably about the logic value of this dummy data.

マスク回路25では、フラッシュメモリ2のユーザー領域に書込まれる4096ビットのビットデータが、全て消去状態(論理値の"1")のときに、第1の変換処理が施された後の80ビットのビットデータが、全て消去状態(論理値の"1")になるような変換処理が施される。リードソロモン符号を用いた場合、4096ビットのビットデータが、全て論理値の"1"のときに、誤り訂正符号・復号器24で生成される80ビットのビットデータが、全て論理値の"1"になることはないが、マスク回路25で施される第1の変換処理を適宜設定すれば、第1の変換処理を施した後の誤り訂正符号のビットデータを、全て論理値の"1"に対応させることができる。   In the mask circuit 25, when all the 4096-bit bit data written in the user area of the flash memory 2 is in the erased state (logical value “1”), 80 bits after the first conversion process is performed. The conversion processing is performed so that all the bit data of the above are in the erased state (logical value “1”). When the Reed-Solomon code is used, when the 4096-bit bit data is all “1”, the 80-bit bit data generated by the error correction code / decoder 24 is all the logic “1”. However, if the first conversion process performed by the mask circuit 25 is appropriately set, all the bit data of the error correction code after the first conversion process is logically “1”. Can be made to correspond.

尚、ダミーデータの設定によって、誤り訂正符号・復号器24で生成される誤り訂正符号は変わるが、4ビットのダミーデータをどのように設定しても、80ビットのビットデータが、全て論理値の"1"になることはない。   Note that the error correction code generated by the error correction code / decoder 24 changes depending on the setting of the dummy data. However, no matter how the 4-bit dummy data is set, the 80-bit bit data are all logical values. It will never be "1".

次に、図4を参照して、読出し処理におけるECCブロック11の動作を説明する。
フラッシュメモリ2のユーザー領域から読み出されたユーザーデータは、バッファ9に保持されると共に、誤り訂正符号・復号器24にも入力される。誤り訂正符号・復号器24に入力される4096ビットのビットデータには、書込み処理の場合と同様に4ビットのダミーデータが付加される。
Next, the operation of the ECC block 11 in the reading process will be described with reference to FIG.
User data read from the user area of the flash memory 2 is held in the buffer 9 and also input to the error correction code / decoder 24. Similarly to the case of the writing process, 4-bit dummy data is added to the 4096-bit bit data input to the error correction code / decoder 24.

一方、冗長領域から読み出された誤り訂正符号(ECC−M)は、マスク回路25で、第2の変換処理が施された後、ECCレジスタ22に保持されると共に、誤り訂正符号・復号器24にも入力される。第2の変換処理では、冗長領域から読み出された誤り訂正符号を、第1の変換処理を施す前の誤り訂正符号に戻すような変換処理が行われる。つまり、書込み処理のときに、誤り訂正符号・復号器24で生成された誤り訂正符号と同じ誤り訂正符号(第1の変換処理を施す前の誤り訂正符号)が、読み出した4096ビットのユーザーデータと4ビットのダミーデータに続いて、誤り訂正符号・復号器24に入力される。   On the other hand, the error correction code (ECC-M) read from the redundant area is held in the ECC register 22 after being subjected to the second conversion process by the mask circuit 25, and is also stored in the error correction code / decoder. 24 is also input. In the second conversion process, a conversion process is performed to return the error correction code read from the redundant area to the error correction code before the first conversion process. That is, at the time of the writing process, the same error correction code as the error correction code generated by the error correction code / decoder 24 (error correction code before the first conversion process) is read 4096-bit user data Are input to the error correction code / decoder 24.

誤り訂正符号・復号器24では、入力された4096ビットのユーザーデータ、4ビットのダミーデータ、及び80ビットの誤り訂正符号に基づいて、ユーザーデータ及び誤り訂正符号に含まれる誤りの検出が行われ、訂正可能な誤りが検出された場合は、バッファ9に保持されているユーザーデータ、又はECCレジスタ22に保持されている誤り訂正符号を訂正する。この際、誤りの検出と訂正は、シンボル(10ビット)単位で行われる。   The error correction code / decoder 24 detects errors contained in the user data and the error correction code based on the input 4096-bit user data, 4-bit dummy data, and 80-bit error correction code. When a correctable error is detected, the user data held in the buffer 9 or the error correction code held in the ECC register 22 is corrected. At this time, error detection and correction are performed in units of symbols (10 bits).

図5は、誤り訂正符号・復号器24が、4180ビットのデータを保持することができるデータ保持手段を備えている場合を示している。
この場合、ユーザー領域から読み出されたユーザーデータと、マスク回路25で第2の変換処理がされた誤り訂正符号は、誤り訂正符号・復号器24だけに入力され、誤り訂正符号・復号器24内のデータ保持手段に保持される。
FIG. 5 shows a case where the error correction code / decoder 24 includes data holding means capable of holding 4180 bits of data.
In this case, the user data read from the user area and the error correction code subjected to the second conversion process by the mask circuit 25 are input only to the error correction code / decoder 24, and the error correction code / decoder 24 is input. It is held in the data holding means.

図4の場合と同様に、ユーザーデータ、ダミーデータ、及び誤り訂正符号に基づいた誤りの検出が行われ、訂正可能な誤りが検出された場合は、誤り訂正符号・復号器24内のデータ保持手段に保持されているユーザーデータや誤り訂正符号が訂正される。その後、ユーザーデータと誤り訂正符号は、バッファ9とECCレジスタ22にそれぞれ転送される。   As in the case of FIG. 4, error detection based on user data, dummy data, and error correction code is performed, and if a correctable error is detected, data in error correction code / decoder 24 is retained. The user data and error correction code held in the means are corrected. Thereafter, the user data and the error correction code are transferred to the buffer 9 and the ECC register 22, respectively.

次に、図6〜9を参照して、マスク回路25の設定方法について説明する。
図6は、第1の変換処理の概要を示す説明図である。
図7は、第2の変換処理の概要を示す説明図である。
Next, a method for setting the mask circuit 25 will be described with reference to FIGS.
FIG. 6 is an explanatory diagram showing an overview of the first conversion process.
FIG. 7 is an explanatory diagram showing an overview of the second conversion process.

マスク回路25は、マスクデータを出力するマスクデータ出力回路25aと、排他的論理和を出力する論理回路25bとで構成されている。
第1の変換処理の場合(図6参照)、誤り訂正符号・復号器24から出力された誤り訂正符号(ECC)が、論理回路25bに入力され、論理回路25bで誤り訂正符号とマスクデータとの排他的論理和の演算処理が行われる。論理回路25bから出力された演算処理後の誤り訂正符号(ECC−M)は、フラッシュメモリ2の冗長領域に書込まれる。
The mask circuit 25 includes a mask data output circuit 25a that outputs mask data and a logic circuit 25b that outputs an exclusive OR.
In the case of the first conversion process (see FIG. 6), the error correction code (ECC) output from the error correction code / decoder 24 is input to the logic circuit 25b, and the error correction code and mask data are input to the logic circuit 25b. Is calculated. The post-operation error correction code (ECC-M) output from the logic circuit 25 b is written in the redundant area of the flash memory 2.

第2の変換処理の場合(図7参照)、フラッシュメモリ2の冗長領域から読み出された誤り訂正符号(ECC−M)が、論理回路25bに入力され、論理回路25bでマスクデータとの排他的論理和の演算処理が行われる。この構成では、第1の変換処理と第2の変換処理で、同じマスクデータが用いられている。同じマスクデータを用いて、第1の変換処理を施した誤り訂正符号(ECC−M)に対して、第2の誤り訂正符号を施すと、第1の変換処理を施す前の誤り訂正符号(ECC)が得られる。この第1の変換処理を施す前の誤り訂正符号(ECC)は、誤り訂正符号・復号器24に入力される。   In the case of the second conversion process (see FIG. 7), the error correction code (ECC-M) read from the redundant area of the flash memory 2 is input to the logic circuit 25b, and is excluded from the mask data by the logic circuit 25b. A logical OR operation is performed. In this configuration, the same mask data is used in the first conversion process and the second conversion process. When the second error correction code is applied to the error correction code (ECC-M) subjected to the first conversion process using the same mask data, the error correction code ( ECC) is obtained. The error correction code (ECC) before the first conversion process is input to the error correction code / decoder 24.

次に、リードソロモン符号を使用した場合のマスクデータについて説明する。
図8は、ECCシンボルとマスクデータの対応関係を示す図である。
418シンボルに対して、5シンボルの誤り検出と、4シンボルの誤り訂正が可能なリードソロモン符号を使用した場合のマスクデータと演算処理前後の誤り訂正符号は、図8のようになる。ここで、誤り訂正符号はシンボル毎に示されており、マスクデータもこれに合わせて10ビット毎に示している。例示されている8シンボルの誤り訂正符号は、ユーザーデータとして与えられる4096ビットのビットデータが、全て消去状態(論理値の"1")のときの誤り訂正符号であり、4ビットのダミーデータは、全て論理値の"0"に設定されている。
Next, mask data when Reed-Solomon codes are used will be described.
FIG. 8 is a diagram showing the correspondence between ECC symbols and mask data.
FIG. 8 shows the mask data and the error correction code before and after the arithmetic processing when a Reed-Solomon code capable of detecting an error of 5 symbols and correcting an error of 4 symbols is used for 418 symbols. Here, the error correction code is shown for each symbol, and the mask data is also shown for every 10 bits accordingly. The illustrated 8-symbol error correction code is an error correction code when all 4096-bit bit data given as user data is in an erased state (logical value “1”), and the 4-bit dummy data is , All are set to logical value “0”.

誤り訂正符号のシンボルECC0〜ECC7には、それぞれに設定されたマスクデータとの排他的論理和の演算処理が施される。ECC0のシンボル094h(16進数表示)には、マスクデータ36Bh(16進数表示)が割当てられ、ECC1のシンボル1B6h(16進数表示)には、マスクデータ249h(16進数表示)が割当てられる。   The error correction code symbols ECC0 to ECC7 are subjected to an exclusive OR operation with the mask data set for each of them. Mask data 36Bh (hexadecimal notation) is assigned to ECC0 symbol 094h (hexadecimal notation), and mask data 249h (hexadecimal notation) is assigned to ECC1 symbol 1B6h (hexadecimal notation).

ECC2のシンボル0BBh(16進数表示)には、マスクデータ344h(16進数表示)が割当てられ、ECC3のシンボル03Eh(16進数表示)には、マスクデータ3C1h(16進数表示)が割当てられる。ECC4のシンボル0B7h(16進数表示)には、マスクデータ348h(16進数表示)が割当てられ、ECC5のシンボル297h(16進数表示)には、マスクデータ168h(16進数表示)が割当てられる。ECC6のシンボル153h(16進数表示)には、マスクデータ2ACh(16進数表示)が割当てられ、ECC7のシンボル2D4h(16進数表示)には、マスクデータ12Bh(16進数表示)が割当てられる。   Mask data 344h (hexadecimal display) is assigned to the symbol 0BBh (hexadecimal display) of ECC2, and mask data 3C1h (hexadecimal display) is assigned to the symbol 03Eh (hexadecimal display) of ECC3. Mask data 348h (hexadecimal notation) is assigned to ECC4 symbol 0B7h (hexadecimal notation), and mask data 168h (hexadecimal notation) is assigned to ECC5 symbol 297h (hexadecimal notation). Mask data 2ACh (hexadecimal notation) is assigned to the ECC6 symbol 153h (hexadecimal notation), and mask data 12Bh (hexadecimal notation) is assigned to the ECC7 symbol 2D4h (hexadecimal notation).

図9は、排他的論理和の演算処理を説明するための図であり、ECCのシンボルとマスタデータと演算処理後のシンボルとを2進数で示している。
ECC0のシンボル094h(16進数表示)、ECC0に割当てられたマスクデータ36Bh(16進数表示)、及びこれらの演算処理後のシンボル(ECC−M)を2進数で示すと、図9のようになる。排他的論理和の演算処理では、誤り訂正符号のシンボルとマスクデータが、ビット毎に比較され、論理値が等しいときは、論理値の"0"が出力され、論理値が異なるときは、論理値の"1"が出力される。
FIG. 9 is a diagram for explaining an exclusive OR operation process, and shows an ECC symbol, master data, and a symbol after the operation process in binary numbers.
FIG. 9 shows the ECC0 symbol 094h (hexadecimal notation), the mask data 36Bh (hexadecimal notation) assigned to ECC0, and the symbol (ECC-M) after these arithmetic processings in binary notation. . In the exclusive OR operation, the error correction symbol symbol and the mask data are compared bit by bit. When the logical values are equal, a logical value of “0” is output, and when the logical values are different, The value “1” is output.

094h(16進数表示)と36Bh(16進数表示)は、全てのビットの論理値が異なるので、演算処理後のシンボル(ECC−M)は、3FFh(16進数表示)になる。ECC1〜7のシンボルと、これらに割当てられているそれぞれのマスクデータも、対応するビットの論理値が全て異なるので、演算処理後のシンボル(ECC−M)は、上記と同様に全て3FFh(16進数表示)になる。   Since 094h (hexadecimal notation) and 36Bh (hexadecimal notation) have different logical values of all bits, the symbol (ECC-M) after the arithmetic processing is 3FFh (hexadecimal notation). Since the symbols 1 to 7 and the respective mask data assigned to these also have different logical values of the corresponding bits, the symbols after the arithmetic processing (ECC-M) are all 3FFh (16 Decimal number display).

図10は、排他的論理和の演算処理を説明するための図であり、演算処理後のシンボルとマスタデータとECCのシンボルとを2進数で示している。
第2の変換処理、つまり、ECC0に割当てられたマスクデータ36Bh(16進数表示)と演算処理後のシンボル(ECC−M)3FFh(16進数表示)との排他的論理和の演算処理を行った場合、ECC0のシンボル094h(16進数表示)が得られる。つまり、演算処理後のシンボル(ECC−M)とマスクデータとの排他的論理和の演算処理を行った場合には、演算処理前のシンボル(ECC)が得られる。
FIG. 10 is a diagram for explaining an exclusive OR operation process, and shows a symbol, a master data, and an ECC symbol after the operation process in binary numbers.
The second conversion process, that is, the exclusive OR operation of the mask data 36Bh (hexadecimal notation) assigned to ECC0 and the symbol (ECC-M) 3FFh (hexadecimal notation) after the arithmetic process was performed. In this case, the symbol 094h (in hexadecimal notation) of ECC0 is obtained. That is, when an arithmetic operation of an exclusive OR of the symbol (ECC-M) after the arithmetic processing and the mask data is performed, the symbol (ECC) before the arithmetic processing is obtained.

尚、書込み処理のときに、誤り訂正符号・復号器24から出力される誤り訂正符号に対して施される第1の変換処理は、ユーザーデータのビットデータが、全て消去状態(論理値の"1")のときに、変換処理後の誤り訂正符号のビットデータが、全て消去状態(論理値の"1")になるような変換処理であれば、特に限定されることはない。又、読出し処理のときに、フラッシュメモリ2から読み出された誤り訂正符号に対して施される第2の変換処理は、第1の変換処理を施す前の誤り訂正符号を得ることができる変換処理であれば、特に限定されることはない。   In the first conversion process performed on the error correction code output from the error correction code / decoder 24 during the write process, all bit data of the user data is in the erased state (logical value “ If the conversion processing is such that all the bit data of the error correction code after the conversion processing is in the erased state (logical value “1”) at the time of 1 ″), there is no particular limitation. Further, the second conversion process performed on the error correction code read from the flash memory 2 during the read process is a conversion that can obtain an error correction code before the first conversion process. If it is processing, it will not be limited in particular.

上述のようにすれば、4シンボルの誤り訂正、5シンボルの誤り検出能力を持つリードソロモン符号を、誤り訂正符号として用いることができる。この設定では、4シンボル以下の誤りは訂正することができるが、5シンボル以上の誤りは訂正することができない。従って、フラッシュメモリ2から読み出されたデータに含まれる誤りが4シンボル以下のうちに、訂正後のデータを再書込みしておく必要がある。   As described above, a Reed-Solomon code having 4-symbol error correction and 5-symbol error detection capability can be used as the error correction code. With this setting, errors of 4 symbols or less can be corrected, but errors of 5 symbols or more cannot be corrected. Accordingly, it is necessary to rewrite the corrected data while the error included in the data read from the flash memory 2 is 4 symbols or less.

仮に、フラッシュメモリ2から読み出されたデータに含まれる誤りが4シンボルのときに再書込みを行わず放置し、その後、フラッシュメモリ2の劣化が進行して、次にそのデータを読み出したときに読み出されたデータに含まれる誤りが5シンボルになっていた場合には誤りを訂正することができなくなる。   Temporarily, when the error included in the data read from the flash memory 2 is 4 symbols, the data is left without being rewritten, and after that, the deterioration of the flash memory 2 proceeds and the data is read next time. If the error included in the read data is 5 symbols, the error cannot be corrected.

訂正後のデータを再書込みする場合には、元のデータが書込まれていたブロックをブロック消去した後、そのブロックに訂正後のデータを書込んでも、別の消去済ブロックに書込んでもよい。論理アドレスと物理アドレスの対応関係をブロック単位で管理している場合には、ブロック内の特定のページからデータを読み出したときにだけ誤りが検出された場合であっても、他のページに書込まれているデータも再書込みしなければならないことが多い。   When rewriting the corrected data, after erasing the block in which the original data was written, the corrected data may be written in the block or in another erased block. . When the correspondence between logical addresses and physical addresses is managed in units of blocks, even if an error is detected only when data is read from a specific page in the block, it is written to another page. Often, the embedded data must also be rewritten.

このような場合は、元のデータが書込まれていたブロック内のページから順次データを読出し、読み出されたデータ(誤りが検出された場合は、訂正後のデータ)を順次別の消去済ブロックに書込み、全てのデータ転送(元のデータが書込まれていたブロックから別の消去済ブロックへのデータ転送)が終了した後、元のデータが書込まれていたブロックをブロック消去する(又は元のデータが書込まれていたブロックに書込まれているデータが無効であることを示す情報を設定する)。   In such a case, the data is read sequentially from the page in the block where the original data was written, and the read data (or corrected data if an error is detected) is sequentially erased separately. After writing to the block and completion of all data transfer (data transfer from the block where the original data was written to another erased block), the block where the original data was written is erased (block erase) Alternatively, information indicating that the data written in the block in which the original data has been written is invalid is set).

上述のように誤り訂正符号により4シンボルの誤り訂正が可能な場合、読み出されたデータに含まれる誤りが1シンボルのときに訂正後のデータを再書込みしても、読み出されたデータに含まれる誤りが2シンボルのときに訂正後のデータを再書込みしても、読み出されたデータに含まれる誤りが3シンボルのときに訂正後のデータを再書込みしても、又は読み出されたデータに含まれる誤りが4シンボルのときに訂正後のデータを再書込みしてもよい。   When error correction of 4 symbols is possible with the error correction code as described above, even if the corrected data is rewritten when the error included in the read data is 1 symbol, Even if the corrected data is rewritten when the error included is 2 symbols, the corrected data is rewritten or read when the error included in the read data is 3 symbols. If the error included in the data is 4 symbols, the corrected data may be rewritten.

しかしながら、消去と書込みを行う回数が増加するのに伴い、フラッシュメモリ2の劣化が進行するため、消去と書込みを行う回数は、できるかぎり少ない方が好ましい。従って、読み出されたデータに含まれる誤りが1シンボルのときは再書込みを行わず、読み出されたデータに含まれる誤りが4シンボルのときは再書込みを行うようにする方が、消去と書込みを行う回数を少なくすることができるため、フラッシュメモリ2の劣化を抑制する面では好ましい。   However, as the number of times of erasing and writing increases, the deterioration of the flash memory 2 progresses. Therefore, the number of times of erasing and writing is preferably as small as possible. Therefore, it is more erasure that rewriting is not performed when the error included in the read data is 1 symbol, and rewriting is performed when the error included in the read data is 4 symbols. Since the number of times of writing can be reduced, it is preferable in terms of suppressing deterioration of the flash memory 2.

一方、フラッシュメモリ2に書込まれているデータの信頼性という面では、読み出されたデータに含まれる誤りのシンボル数が少ないうちに再書込みを行うようにする方が好ましい。   On the other hand, in terms of reliability of data written in the flash memory 2, it is preferable to perform rewriting while the number of erroneous symbols included in the read data is small.

従って、読み出されたデータに含まれる誤りのシンボル数が幾つ以上になったときに再書込みを行うかは、フラッシュメモリ2の劣化を抑制する面とフラッシュメモリ2に書込まれているデータの信頼性という面の双方を考慮して決定することが好ましい。   Therefore, the number of erroneous symbols included in the read data is rewritten when the number of error symbols becomes more than the aspect of suppressing the deterioration of the flash memory 2 and the data written in the flash memory 2. It is preferable to determine in consideration of both aspects of reliability.

例えば、フラッシュメモリ2に書込まれているデータの信頼性を重視する場合には、読み出されたデータに含まれる誤りが2シンボル以上になったときに再書込みを行うように設定し、フラッシュメモリ2の劣化の抑制を重視したい場合には、読み出されたデータに含まれる誤りが4シンボル以上になったときに再書込みを行うように設定すればよい。   For example, when emphasizing the reliability of the data written in the flash memory 2, the flash memory 2 is set so that rewriting is performed when the error included in the read data becomes 2 symbols or more. If it is important to suppress the deterioration of the memory 2, the rewriting may be performed when the error included in the read data becomes 4 symbols or more.

又、フラッシュメモリ2の使用期間が長くなるのに伴い劣化の進行速度が速くなる場合もあるので、再書込みを行うシンボル数の設定は、適宜変更できるようにしておくことが好ましい。   In addition, since the progress rate of deterioration may increase as the usage period of the flash memory 2 increases, it is preferable that the setting of the number of symbols to be rewritten can be changed as appropriate.

例えば、使用開始時に読み出されたデータに含まれる誤りが4シンボル以上になったときに再書込みを行うように設定し、その後、使用時間等を考慮して読み出されたデータに含まれる誤りが3シンボル以上になったとき又は2シンボル以上になったときに再書込みを行うように設定を変更してもよい。   For example, it is set so that rewriting is performed when the error included in the data read at the start of use becomes 4 symbols or more, and then the error included in the data read in consideration of the usage time and the like. The setting may be changed so that rewriting is performed when 3 becomes more than 3 symbols or when 2 becomes more than 2 symbols.

リードソロモン符号を誤り訂正符号として用いた場合には、シンボル単位で誤りの検出と訂正が行われるが、BCH符号やハミング符号を誤り訂正符号として用いた場合には、ビット単位で誤りの検出と訂正が行われる。従って、BCH符号やハミング符号を誤り訂正符号として用いた場合には、読み出されたデータに含まれる誤りのビット数が幾つ以上になったときに再書込みを行うかを設定する。   When a Reed-Solomon code is used as an error correction code, an error is detected and corrected in symbol units. However, when a BCH code or a Hamming code is used as an error correction code, error detection is performed in bit units. Corrections are made. Therefore, when a BCH code or a Hamming code is used as an error correction code, it is set how many times the number of error bits included in the read data is rewritten.

例えば、BCH符号を誤り訂正符号として用いて、256バイトに対して3ビットの誤り訂正、4ビットの誤り検出ができるように設定した場合には、再書込みを行う誤りのビット数を以下のように設定することができる。この例では、各ページから読み出されたデータの誤り訂正は256バイト毎に区分して行われるため、1ページのユーザ領域が512バイトであれば、2つの区分のそれぞれについて誤り訂正が行われる。   For example, when the BCH code is used as an error correction code and is set so that 3-bit error correction and 4-bit error detection can be performed for 256 bytes, the number of bits of error to be rewritten is as follows: Can be set to In this example, error correction of data read from each page is performed in 256 byte segments, so that if the user area of one page is 512 bytes, error correction is performed for each of the two segments. .

従って、読み出されたデータに含まれる誤りのビット数が幾つ以上になったときに再書込みを行うかを設定する場合に、1ページ内のいずれかの区分に含まれる誤りのビット数が3ビットになったときに再書込みを行うというように設定してもよい。又、区分毎の判断を行わずに各ページから読み出されたデータに含まれる誤りの総和が3ビット以上になったときに再書込みを行うというように設定してもよい。但し、いずれかの区分に含まれる誤りのビット数が4ビットになってしまったときは、誤り訂正をできなくなるので、再書込みは行わない。   Therefore, when setting the number of error bits included in the read data to be rewritten when the number of error bits exceeds, the number of error bits included in any section in one page is 3 You may set so that it rewrites when it becomes a bit. Further, it may be set such that rewriting is performed when the sum of errors included in the data read from each page becomes 3 bits or more without making a judgment for each section. However, when the number of error bits included in any of the sections becomes 4 bits, error correction cannot be performed and rewriting is not performed.

尚、誤り訂正符号に基づいて訂正可能なシンボル数やビット数は、冗長領域に書込まれる誤り訂正符号の容量(ビット数)の大小に応じて適宜設定することができる。但し、誤り訂正符号に基づいて訂正可能なシンボル数やビット数を増やすにつれて誤り訂正符号の容量が増大するため、冗長領域内の誤り訂正符号に割当てることのできる領域の大きさを考慮して訂正可能なシンボル数やビット数を設定しなければならない。   Note that the number of symbols and the number of bits that can be corrected based on the error correction code can be appropriately set according to the size (number of bits) of the error correction code written in the redundant area. However, since the capacity of the error correction code increases as the number of symbols and bits that can be corrected based on the error correction code increases, correction is performed in consideration of the size of the area that can be allocated to the error correction code in the redundant area. The number of possible symbols and bits must be set.

本発明の実施形態に係るフラッシュメモリシステムのブロック図である。1 is a block diagram of a flash memory system according to an embodiment of the present invention. フラッシュメモリのブロックとページの構成を示す図である。It is a figure which shows the structure of the block and page of flash memory. ECCブロックの処理を説明するためのブロック図である。It is a block diagram for demonstrating the process of an ECC block. ECCブロックの処理を説明するためのブロック図である。It is a block diagram for demonstrating the process of an ECC block. ECCブロックの処理を説明するためのブロック図である。It is a block diagram for demonstrating the process of an ECC block. 第1の変換処理の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of a 1st conversion process. 第2の変換処理の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of a 2nd conversion process. ECCシンボルとマスクデータの対応関係を示す図である。It is a figure which shows the correspondence of an ECC symbol and mask data. 排他的論理和の演算処理を説明するための図である。It is a figure for demonstrating the calculation process of exclusive OR. 排他的論理和の演算処理を説明するための図である。It is a figure for demonstrating the calculation process of exclusive OR.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
22 ECCレジスタ
23 管理データレジスタ
24 誤り訂正符号・復号器
25 マスク回路
25a マスクデータ出力回路
25b 論理回路
DESCRIPTION OF SYMBOLS 1 Flash memory system 2 Flash memory 3 Memory controller 4 Host system 5 Host interface control block 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 Flash memory sequencer block 13 External bus 14 Internal bus 22 ECC register 23 Management data register 24 Error correction code / decoder 25 Mask circuit 25a Mask data output circuit 25b Logic circuit

Claims (17)

データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリにアクセスするメモリコントローラであって、
前記フラッシュメモリの各ページのユーザー領域に書込まれているデータと該各ページの冗長領域に書込まれている付加情報を読み出すデータ読出し手段と、
前記付加情報に含まれる誤り訂正に関する情報に基づいて、前記ユーザー領域から読み出されたデータに含まれる誤りを検出して訂正する誤り訂正手段と、
前記誤り訂正手段により検出された誤りが、予め設定された設定値を超えた場合に、訂正後のデータを消去状態のページのユーザー領域に書込む再書込み手段と、
を備えることを特徴とするメモリコントローラ。
A memory controller that accesses a flash memory in which data is written and read in units of pages, and data is erased in units of blocks of a plurality of pages.
Data reading means for reading data written in the user area of each page of the flash memory and additional information written in the redundant area of each page;
Based on information on error correction included in the additional information, error correction means for detecting and correcting an error included in the data read from the user area;
Rewrite means for writing the corrected data to the user area of the erased page when the error detected by the error correction means exceeds a preset set value;
A memory controller comprising:
前記誤り訂正手段は、前記ユーザー領域から読み出されたデータに含まれる複数ビット又は複数シンボルの誤りを訂正することができるよう構成され、
前記設定値は、前記誤り訂正手段によって検出される誤りのビット数又はシンボル数に関して設定された値であることを特徴とする請求項1に記載のメモリコントローラ。
The error correction means is configured to correct errors of a plurality of bits or a plurality of symbols included in data read from the user area,
2. The memory controller according to claim 1, wherein the set value is a value set with respect to the number of bits or symbols of errors detected by the error correction unit.
前記誤り訂正手段が訂正することができる前記ビット或いはシンボルの数をN(Nは、2以上の整数)とすると、前記設定値は、1以上N以下の整数に設定されることを特徴とする請求項2に記載のメモリコントローラ。   When the number of bits or symbols that can be corrected by the error correction means is N (N is an integer of 2 or more), the setting value is set to an integer of 1 or more and N or less. The memory controller according to claim 2. 前記設定値を可変に変更する手段を備えることを特徴とする請求項3に記載のメモリコントローラ。   4. The memory controller according to claim 3, further comprising means for variably changing the set value. 前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号であることを特徴とする請求項1乃至4のいずれか1項に記載のメモリコントローラ。   The information regarding error correction included in the additional information is an error correction code generated based on data written in the user area. Memory controller. 前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号に対して変換処理を施した情報であることを特徴とする請求項1乃至5のいずれか1項に記載のメモリコントローラ。   2. The error correction information included in the additional information is information obtained by performing conversion processing on an error correction code generated based on data written in the user area. 6. The memory controller according to any one of items 1 to 5. 前記変換処理が、予め設定されたマスクデータとの排他的論理和をとる処理であることを特徴とする請求項6に記載のメモリコントローラ。   The memory controller according to claim 6, wherein the conversion process is an exclusive OR process with preset mask data. 前記誤り訂正符号が、リードソロモン符号であることを特徴とする請求項6又は7に記載のメモリコントローラ。   8. The memory controller according to claim 6, wherein the error correction code is a Reed-Solomon code. 請求項1乃至8のいずれか1項に記載のメモリコントローラと、データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリと、を備えることを特徴とするフラッシュメモリシステム。   9. A memory controller according to any one of claims 1 to 8, and a flash memory in which data writing and reading are performed in units of pages and data is erased in units of blocks including a plurality of pages. A featured flash memory system. データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリの各ページのユーザー領域に書込まれているデータと各ページの冗長領域に書込まれている付加情報を読み出す読出し処理と、
前記付加情報に含まれる誤り訂正に関する情報に基づいて、前記ユーザー領域から読み出されたデータに含まれる誤りを検出して訂正する誤り訂正処理と、
前記誤り訂正処理により検出された誤りが、予め設定された設定値を超えた場合に、訂正後のデータを消去状態のページのユーザー領域に書込む再書込み処理と、
を含むことを特徴とするフラッシュメモリの制御方法。
A flash memory control method for controlling access to a flash memory in which data is written and read in units of pages, and data is erased in units of blocks of a plurality of pages.
A read process for reading data written in the user area of each page of the flash memory and additional information written in the redundant area of each page;
Based on information on error correction included in the additional information, an error correction process for detecting and correcting an error included in the data read from the user area;
When the error detected by the error correction process exceeds a preset value, a rewrite process for writing the corrected data to the user area of the erased page;
A method for controlling a flash memory, comprising:
前記誤り訂正処理は、前記ユーザー領域から読み出されたデータに含まれる誤りをビット又はシンボル単位で訂正する処理であり、
前記設定値は、前記誤り訂正処理によって検出される誤りのビット数又はシンボル数に関しての値であることを特徴とする請求項10に記載のフラッシュメモリの制御方法。
The error correction process is a process of correcting an error included in data read from the user area in units of bits or symbols,
The flash memory control method according to claim 10, wherein the set value is a value related to the number of bits or symbols of errors detected by the error correction processing.
前記誤り訂正処理で訂正することができる前記ビット或いはシンボルの数をN(Nは、2以上の整数)とすると、前記設定値は、1以上N以下の整数に設定されることを特徴とする請求項11に記載のフラッシュメモリの制御方法。   When the number of bits or symbols that can be corrected by the error correction processing is N (N is an integer of 2 or more), the setting value is set to an integer of 1 or more and N or less. The flash memory control method according to claim 11. 前記設定値を可変に変更する設定値変更処理を含むことを特徴とする請求項12に記載のフラッシュメモリの制御方法。   13. The flash memory control method according to claim 12, further comprising setting value change processing for changing the setting value variably. 前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号であることを特徴とする請求項10乃至13のいずれか1項に記載のフラッシュメモリの制御方法。   The information on error correction included in the additional information is an error correction code generated based on data written in the user area, according to any one of claims 10 to 13. Flash memory control method. 前記付加情報に含まれる誤り訂正に関する情報が、前記ユーザー領域に書込まれているデータに基づいて生成された誤り訂正符号に対して変換処理を施した情報であることを特徴とする請求項10乃至14のいずれか1項に記載のフラッシュメモリの制御方法。   11. The information regarding error correction included in the additional information is information obtained by performing conversion processing on an error correction code generated based on data written in the user area. 15. The flash memory control method according to any one of 1 to 14. 前記変換処理が、予め設定されたマスクデータとの排他的論理和をとる処理であることを特徴とする請求項15に記載のフラッシュメモリの制御方法。   16. The flash memory control method according to claim 15, wherein the conversion process is an exclusive OR process with mask data set in advance. 前記誤り訂正符号が、リードソロモン符号であることを特徴とする請求項15又は16に記載のフラッシュメモリの制御方法。
17. The flash memory control method according to claim 15, wherein the error correction code is a Reed-Solomon code.
JP2005032966A 2005-02-09 2005-02-09 Memory controller, flash memory system, and control method for flash memory Pending JP2006221334A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005032966A JP2006221334A (en) 2005-02-09 2005-02-09 Memory controller, flash memory system, and control method for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005032966A JP2006221334A (en) 2005-02-09 2005-02-09 Memory controller, flash memory system, and control method for flash memory

Publications (1)

Publication Number Publication Date
JP2006221334A true JP2006221334A (en) 2006-08-24

Family

ID=36983642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005032966A Pending JP2006221334A (en) 2005-02-09 2005-02-09 Memory controller, flash memory system, and control method for flash memory

Country Status (1)

Country Link
JP (1) JP2006221334A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344223A (en) * 2005-06-08 2006-12-21 Altera Corp Reducing false positive in configuration error detection for programmable device
JP2008091012A (en) * 2006-09-29 2008-04-17 Qimonda Ag Electronic device, method of operating electronic device, memory circuit, and method of operating memory circuit
JP2009230475A (en) * 2008-03-24 2009-10-08 Nec Personal Products Co Ltd Storage system including nonvolatile semiconductor storage section
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system
US9229805B2 (en) 2007-09-13 2016-01-05 Samsung Electronics Co., Ltd. Memory system and wear-leveling method thereof based on erasures and error correction data
JP2020042326A (en) * 2018-09-06 2020-03-19 富士通株式会社 Memory controller apparatus, memory apparatus having memory controller apparatus, and control method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006344223A (en) * 2005-06-08 2006-12-21 Altera Corp Reducing false positive in configuration error detection for programmable device
JP2008091012A (en) * 2006-09-29 2008-04-17 Qimonda Ag Electronic device, method of operating electronic device, memory circuit, and method of operating memory circuit
KR100980694B1 (en) 2006-09-29 2010-09-07 키몬다 아게 Electronic device, method for operating an electronic device, memory circuit and method of operating a memory circuit
US9229805B2 (en) 2007-09-13 2016-01-05 Samsung Electronics Co., Ltd. Memory system and wear-leveling method thereof based on erasures and error correction data
US9251015B2 (en) 2007-09-13 2016-02-02 Samsung Electronics Co., Ltd. Memory system providing wear-leveling by allocating memory blocks among groups
CN101458957B (en) * 2007-09-13 2016-08-03 三星电子株式会社 Accumulator system and deterioration balance method thereof
JP2009230475A (en) * 2008-03-24 2009-10-08 Nec Personal Products Co Ltd Storage system including nonvolatile semiconductor storage section
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system
JP2020042326A (en) * 2018-09-06 2020-03-19 富士通株式会社 Memory controller apparatus, memory apparatus having memory controller apparatus, and control method
JP7177338B2 (en) 2018-09-06 2022-11-24 富士通株式会社 MEMORY CONTROLLER DEVICE, MEMORY DEVICE HAVING MEMORY CONTROLLER DEVICE, AND MEMORY CONTROL METHOD

Similar Documents

Publication Publication Date Title
JP4524309B2 (en) Memory controller for flash memory
US8756398B2 (en) Partitioning pages of an electronic memory
JP2012137994A (en) Memory system and controlling method thereof
TWI633428B (en) Data storage device and methods for processing data in the data storage device
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
JP2006018373A (en) Memory controller, flash memory system and control method for flash memory
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2006221334A (en) Memory controller, flash memory system, and control method for flash memory
US10459630B2 (en) Memory management method, memory storage device and memory controlling circuit unit
JP2012068765A (en) Memory controller, flash memory system with memory controller, and control method of flash memory
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
JP4655034B2 (en) Memory controller, flash memory system, and flash memory control method
JP2006155335A (en) Memory controller, flash memory system, and control method thereof
JP2008123241A (en) Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4692843B2 (en) Memory controller, flash memory system, and flash memory control method
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2005292925A (en) Memory controller, flash memory system, and control method for flash memory
JP4194518B2 (en) Memory controller, flash memory system, and flash memory control method
JP2006127441A (en) Memory controller, flash memory system and method for controlling flash memory
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
US11409596B1 (en) Encoding control method, memory storage device and memory control circuit unit
TWI777087B (en) Data managing method, memory controlling circuit unit and memory storage device
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090512