(57)【要約】【課題】誤り発生確率の高いページにおける誤り訂正不能率を低減することができる半導体記憶システムを得ること。【解決手段】多値記憶のメモリセルを有し、ビット値を分別する分別電圧のうちの１つ以上を共有分別電圧として２つのページで共有する不揮発性半導体メモリと、不揮発性半導体メモリへ書き込むデータに対する誤り訂正符号を生成する符号化部と、不揮発性半導体メモリから読み出されたデータの誤り訂正処理を行う誤り訂正処理部と、を備え、不揮発性半導体メモリからの読み出し対象ページの誤り訂正処理を行い、誤り訂正不可となった場合に、読み出し対象ページと同一の共有分別電圧を有する共有ページの誤り訂正処理を行い、この誤り訂正結果のうち共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りを訂正した結果に基づいて読み出し対象ページの対応するビットを訂正し、訂正後の読み出し対象ページの誤り訂正処理を行う。【選択図】図１
2013218525.tif 000002
【特許請求の範囲】
【請求項１】
ビットごとに異なるページに割当てられる複数ビットのデータを記憶するメモリセルを有し、ビット値を分別する分別電圧のうちの少なくとも１つを共有分別電圧として２つのページで同一の値を用いる不揮発性半導体メモリと、
前記不揮発性半導体メモリへ書き込むデータに対する誤り訂正符号を生成する符号化部と、
前記不揮発性半導体メモリから読み出されたデータと誤り訂正符号とに基づいて誤り訂正処理を行う誤り訂正処理部と、
前記不揮発性半導体メモリからの読み出しの対象である読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御し、該誤り訂正処理により誤り訂正不可となった場合に、前記読み出し対象ページと同一の前記共有分別電圧を有する共有ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御し、該誤り訂正処理による誤り訂正結果のうち前記共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りを訂正した結果に基づいて前記読み出し対象ページの対応するビットを訂正し、訂正後の前記読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御するプロセッサと、
を備えることを特徴とする半導体記憶システム。
【請求項２】
前記プロセッサは、前記共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りであるか否かを、前記共有分別電圧を所定の値増加または減少させて前記読み出し対象ページの再読み出しを前記不揮発性半導体メモリへ指示し、前記再読み出しの結果により判定する、ことを特徴とする請求項１に記載の半導体記憶システム。
【請求項３】
前記プロセッサは、前記共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りであるか否かを、同一メモリセルに格納されるデータに対応する前記複数ビットの値に基づいて判定する、ことを特徴とする請求項１に記載の半導体記憶システム。
【請求項４】
前記不揮発性半導体メモリは、前記複数ビットを３ビットとし、第１のページに２つの分別電圧を設定し、第２および第３のページに３つの分別電圧を設定し、前記第３のページで分別電圧のうちの１つと前記第２のページの分別電圧のうちの１つとを前記共有分別電圧とする、ことを特徴とする請求項１、２または３に記載の半導体記憶システム。
【請求項５】
前記不揮発性半導体メモリは、前記複数ビットを３ビットとし、第１、第２および第３のページに３つの分別電圧を設定し、前記第１のページで分別電圧のうちの１つと前記第３のページの分別電圧のうちの１つとを第１の前記共有分別電圧とし、前記第２のページで分別電圧のうちの１つと前記第３のページの分別電圧のうちの１つとを第２の前記共有分別電圧とする、ことを特徴とする請求項１、２または３に記載の半導体記憶システム。
【請求項６】
前記プロセッサは、前記半導体メモリへの読み出しおよび書き込みをページ単位で行い、前記共有分別電圧を有するページの１ページ分の書き込みデータを２つ以上のデータセットに分割し、データセットごとに誤り訂正符号を生成するよう前記符号化部を制御し、前記データセットは、前記データセットを構成するデータが記憶されるメモリセルの組み合わせがページ間で異なる組み合わせとなるよう構成される、ことを特徴とする請求項１乃至５のいずれか１つに記載の半導体記憶システム。
【請求項７】
ビットごとに異なるページに割当てられる複数ビットのデータを記憶するメモリセルを有し、ビット値を分別する分別電圧のうちの少なくとも１つを共有分別電圧として２つのページで同一の値を用いる不揮発性半導体メモリを制御するメモリコントローラであって、
前記不揮発性半導体メモリへ書き込むデータに対する誤り訂正符号を生成する符号化部と、
前記不揮発性半導体メモリから読み出されたデータと誤り訂正符号とに基づいて誤り訂正処理を行う誤り訂正処理部と、
前記不揮発性半導体メモリからの読み出しの対象である読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御し、該誤り訂正処理により誤り訂正不可となった場合に、前記読み出し対象ページと同一の前記共有分別電圧を有する共有ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御し、該誤り訂正処理による誤り訂正結果のうち前記共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りを訂正した結果に基づいて前記読み出し対象ページの対応するビットを訂正し、訂正後の前記読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御するプロセッサと、
を備えることを特徴とするメモリコントローラ。
【請求項８】
ビットごとに異なるページに割当てられる複数ビットのデータを記憶するメモリセルを有する不揮発性半導体メモリのメモリ制御方法であって、
前記不揮発性半導体メモリのビット値を分別する分別電圧のうちの少なくとも１つを共有分別電圧として２つのページで同一の値を用いる第１のステップと、
前記不揮発性半導体メモリへ書き込むデータに対する誤り訂正符号を生成する第２のステップと、
前記不揮発性半導体メモリから読み出されたデータと誤り訂正符号とに基づいて誤り訂正処理を行う第３のステップと、
前記不揮発性半導体メモリからの読み出しの対象である読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御する第４のステップと、
前記第４のステップの誤り訂正処理により誤り訂正不可となった場合に、前記読み出し対象ページと同一の前記共有分別電圧を有する共有ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御する第５のステップと、
前記第５のステップの誤り訂正処理による誤り訂正結果のうち前記共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りを訂正した結果に基づいて前記読み出し対象ページの対応するビットを訂正する第６のステップと、
前記第６のステップによる訂正後の前記読み出し対象ページの誤り訂正処理を行うよう前記誤り訂正処理部を制御する第７のステップと、
を含むことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶システム、メモリコントローラおよびメモリ制御方法に関する。
【背景技術】
【０００２】
メモリ容量の増加を目的として、１つのメモリセル（単一物理セル）に２ビット以上の情報を記憶するいわゆる多値ＮＡＮＤセル型フラッシュメモリの開発が進んでいる。多値ＮＡＮＤセル型フラッシュメモリでは、単一物理セルに対して複数レベルのしきい値を設けて複数ビットの情報を記録する。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、ページ単位で読み出し・書き込み動作を行う。従来は、多値ＮＡＮＤセル型フラッシュメモリでは、１つのメモリセルに格納される複数ビット（複数ビットの情報）には異なるページが割当られる。また、ＮＡＮＤ型フラッシュメモリでは、記憶するデータに対する誤り（エラー）訂正が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１０−５１７１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
多値ＮＡＮＤセル型フラッシュメモリでは、一般的に、ページ単位で行われるが、ページごとに誤りの混入確率が不均等である。このため、誤りの混入確率が高いページで誤り訂正能力を超える確率が高くなる。したがって、同じ誤り訂正能力であれば、このような誤りの混入確率が不均等な場合、ページ間で誤りの混入確率が平準化された場合と比べると、誤り訂正不能率が高くなる。
【課題を解決するための手段】
【０００６】
実施形態によれば、半導体記憶システムは、ビットごとに異なるページに割当てられる複数ビットのデータを記憶するメモリセルを有し、ビット値を分別する分別電圧のうちの少なくとも１つを共有分別電圧として２つのページで同一の値を用いる不揮発性半導体メモリを備える。また、この半導体記憶システムは、不揮発性半導体メモリへ書き込むデータに対する誤り訂正符号を生成する符号化部と、不揮発性半導体メモリから読み出されたデータと誤り訂正符号とに基づいて誤り訂正処理を行う誤り訂正処理部と、を備える。さらに、この半導体記憶システムは、不揮発性半導体メモリからの読み出しの対象である読み出し対象ページの誤り訂正処理を行うよう誤り訂正処理部を制御し、この誤り訂正処理により誤り訂正不可となった場合に、読み出し対象ページと同一の共有分別電圧を有する共有ページの誤り訂正処理を行うよう誤り訂正処理部を制御し、この誤り訂正処理による誤り訂正結果のうち共有分別電圧を超えてとなりのしきい値分布に移動したことによる誤りを訂正した結果に基づいて前記読み出し対象ページの対応するビットを訂正し、訂正後の読み出し対象ページの誤り訂正処理を行うよう誤り訂正処理部を制御する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施の形態にかかる半導体記憶システムの構成例を示すブロック図である。
【図２】図２は、ＮＡＮＤフラッシュメモリの構成例を示す図である。
【図３】図３は、ＥＣＣ回路の構成例を示す図である。
【図４】図４は、従来のメモリセルのしきい値とデータの割付の一例を示す図である。
【図５】図５は、第１の実施の形態のメモリセルのしきい値とデータの割付の一例を示す図である。
【図６】図６は、ページ間の誤り訂正結果の援用の可能な例を示す図である。
【図７】図７は、ページ間の誤り訂正結果の援用の可能な例を示す図である。
【図８】図８は、第１の実施の形態の３ｒｄページの読み出し手順の一例を示すフローチャートである。
【図９】図９は、データ割付および共有する分別電圧の別の一例を示す図である。
【図１０】図１０は、データ割付および共有する分別電圧の別の一例を示す図である。
【図１１】図１１は、第２の実施の形態の誤り訂正符号化処理におけるインターリーブの一例を示す図である。
【図１２】図１２は、図１１に示すインターリーブを行った場合の誤り訂正方法の例を示す図である。
【図１３】図１３は、図１１に示すインターリーブを行った場合の誤り訂正方法の例を示す図である。
【図１４】図１４は、図１１に示すインターリーブを行った場合の誤り訂正方法の例を示す図である。
【図１５】図１５は、第３の実施の形態のメモリセルのしきい値とデータの割付の一例を示す図である。
【図１６】図１６は、第４の実施の形態の誤り訂正符号化処理におけるインターリーブの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態にかかる半導体記憶システム、メモリコントローラおよびメモリ制御方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００９】
（第１の実施の形態）
図１は、第１の実施の形態にかかる半導体記憶システムの構成例を示すブロック図である。本実施の形態の半導体記憶システムは、メモリコントローラ１とＮＡＮＤフラッシュメモリ（半導体メモリ）２で構成される。ＮＡＮＤフラッシュメモリ２は、不揮発性半導体メモリであり、メモリコントローラ１からの制御により書き込み・読み出し・消去などの動作を行う。
【００１０】
メモリコントローラ１は、ランダムアクセスメモリ（ＲＡＭ）１１、プロセッサ１２、ホストインターフェイス１３、ＥＣＣ（Error  Checking  and  Correction）回路１４、メモリインターフェイス１５およびデータバス１６を備える。
【００１１】
ホストインターフェイス１３は、ホストとのデータ交換に必要なプロトコルを備える。ホストの例としては、パーソナルコンピュータやＣＰＵ（Central  Processing  Unit）コア等があげられる。メモリインターフェイス１５は、ＮＡＮＤフラッシュメモリ２とのデータ交換に必要なプロトコルを備え、ＮＡＮＤフラッシュメモリ２との間でコマンド、アドレス、制御信号およびデータの送受信を行う。
【００１２】
プロセッサ１２は、半導体記憶システムの各構成要素を統括的に制御する制御部であり、ＣＰＵコア、ＲＯＭ（Read  Only  Memory）、ＤＭＡ（Direct  Memory  Access）コントローラなどで構成される。プロセッサ１２は、ホストからホストインターフェイス１３およびデータバス１６経由で命令を受けた場合に、その命令に従った制御を行う。例えば、プロセッサ１２は、ホストからの命令に従って、ＮＡＮＤフラッシュメモリ２へのデータの書き込みやＮＡＮＤフラッシュメモリ２からのデータの読み出しなどを、メモリインターフェイス１５へ指示する。また、プロセッサ１２は、ＥＣＣ回路１４へ誤り訂正符号化処理または復号化処理の実施を指示する。
【００１３】
ＥＣＣ回路１４は、プロセッサ１２からの指示に従って、ＮＡＮＤフラッシュメモリ２へ書き込むデータに対する誤り訂正符号化処理を行うとともにＮＡＮＤフラッシュメモリ２に格納されたデータの誤りの検出や訂正処理を行う。ＲＡＭ１１は、プロセッサ１２のワーキングメモリとして使用される。図１の構成例は一例であり本実施の形態の半導体記憶システムは図１の構成例に限定されず、一般的な構成の変形が行われていてもよい。
【００１４】
ＮＡＮＤフラッシュメモリ２は、１つのメモリセル（単一物理セル）に３ビット以上のデータを格納する。本実施の形態では、１つのメモリセルに３ビットのデータを格納する例を説明する。ＮＡＮＤフラッシュメモリ２は、ページ単位で読み出し・書き込み動作を行う。一般に、多値セルでは、１つのメモリセルに格納される各ビットには異なるページが割当られる。ここでは、３ビットに対応するページアドレスをそれぞれ１ｓｔ、２ｎｄ、３ｒｄとする。
【００１５】
図２は、ＮＡＮＤフラッシュメモリ２の構成例を示す図である。図２に示すように、このＮＡＮＤフラッシュメモリ２は、ＮＡＮＤ  Memory  Cell  Array２１と、Sense  Amp.（Amplifier）２２と、Page  Buffer２３と、Row  Decoder２４と、Voltage  Supply２５と、Controller２６と、ＮＡＮＤ  I/O（Input/Output）  Interface２７と、を備える。なお、図２は、一般的な構成の一例を示すものであり、ＮＡＮＤフラッシュメモリ２の構成は図２の構成に限定されない。Controller２６以外の各部の動作は、従来と同様であり、詳細な説明は省略する。Controller２６の動作は後述する。
【００１６】
次に、本実施の形態のＮＡＮＤフラッシュメモリ２の書き込みおよび読み出しの全体動作について説明する。まず、プロセッサ１２は、ホストからデータの書き込みを指示されると、ＥＣＣ回路１４にデータの誤り訂正符号化の実施を指示する。ホストから送信される書き込み対象のデータは、ＲＡＭ１１に一時的に格納される。ＥＣＣ回路１４は、ＲＡＭ１１に格納されたデータに基づいて誤り訂正符号化処理を実施し、誤り訂正符号を生成する。
【００１７】
そして、プロセッサ１２は、メモリインターフェイス１５に対してデータおよび当該データに対して生成された誤り訂正符号（以下、本実施の形態ではパリティとよぶ）をＮＡＮＤフラッシュメモリ２へ書き込むよう指示する。この際、メモリインターフェイス１５へデータおよび誤り訂正符号の書き込みアドレスを指示し、メモリインターフェイス１５は、指示されたアドレスへデータおよびパリティを書き込む。プロセッサ１２は、論理アドレスと、ＮＡＮＤフラッシュメモリ２の物理アドレスと、の対応を保持しており、メモリインターフェイス１５に対しては書き込みアドレスとして物理アドレスを指定する。なお、ここでは、書き込み時に論理アドレスと物理アドレスを直接変換する例について説明したが、これに限らず、多段階でアドレスを変換する（ホスト装置の論理アドレスから半導体記憶システムの論理アドレスへ一旦変換した後に、物理アドレスへ変換する等）の方式としてもよい。
【００１８】
また、プロセッサ１２は、ホストからデータの読み出しを指示されると、当該データのＮＡＮＤフラッシュメモリ２からの読み出しをメモリインターフェイス１５へ指示する。ホストからは論理アドレスにより読み出し対象のデータが指定されるため、プロセッサ１２は、保持している論理アドレスとＮＡＮＤフラッシュメモリ２の物理アドレスとの対応に基づいて対応する物理アドレスをメモリインターフェイス１５へ指示する。この際、プロセッサ１２は、読み出しデータに対応するパリティも読みだす。プロセッサ１２は、読みだしたデータとパリティに基づく誤り訂正復号化処理の実施をＥＣＣ回路１４へ指示する。ＥＣＣ回路１４は、指示に基づいて誤り訂正復号化処理を実施する。プロセッサ１２は、誤り訂正復号化処理後のデータをホストインターフェイス１３経由でホストへ送信する。
【００１９】
図３は、ＥＣＣ回路１４の構成例を示す図である。図３に示したＥＣＣ回路１４は、ＢＣＨ方式を採用するＥＣＣ回路である。このＥＣＣ回路１４では、Parity  Generator（符号化部）１４１はＮＡＮＤフラッシュメモリ２へのデータの書き込み時に、データバス１６経由で入力される所定のサイズの書き込みデータに基づいて誤り訂正符号化処理によりパリティを生成する。なお、所定のサイズは任意な数値を設定可能であるが、例えば、セクターサイズである。セクターサイズは、例えば、５１２バイト（４０９６ビット）である。Parity  Generator１４１は、生成したパリティをデータバスへ返信する。
【００２０】
Syndrome  Generator１４２，Key  Equation  Solver１４３，Chien  Search１４４，Error  Correction１４５の各ユニットは、ＮＡＮＤフラッシュメモリ２からのデータの読み出し動作時に使用される誤り訂正処理部を構成し、読み出したデータの誤り（エラー）の有無の検出と誤り訂正データの出力を行う。読み出したデータは、データバス１６からSyndrome  Generator１４２へ入力される。Syndrome  Generator１４２は、入力されたデータに基づいてSyndromeを形成して、これをKey  Equation  Solver１４３へ入力する。Key  Equation  Solver１４３は、Syndromeを用いて誤り位置多項式を導出しエラービット数を判定する。Key  Equation  Solver１４３は、エラービット数が１より大きい場合は誤り位置多項式をChien  Search１４４へ入力する。Chien  Search１４４は、入力された誤り位置多項式に基づいて誤りのビットの場所を特定する。Error  Correction１４５は、誤りのビットの場所に応じてビットデータを反転することにより誤りを訂正する。
【００２１】
なお、図３の構成は一例であり、本実施の形態は、ＥＣＣ回路１４の構成は図３の例に限定されない。また、誤り訂正方式は、ＢＣＨ、リード・ソロモン符号、ＬＤＰＣ（Low  Density  Parity  Check）など様々なものが実用化されており、誤り訂正方式もＢＣＨに限らずどのような方式を用いてもよい。
【００２２】
ここで、従来のメモリセルのしきい値とデータの割付について説明する。図４は、従来のメモリセルのしきい値とデータの割付の一例を示す図である。図４では、１つのメモリセルに３ビットの情報を記録する例を示している。複数ビットの情報を記録するセル（多値セル）では、ページごとに、ビット値が“０”から“１”または“１”から“０”へ変化する分別電圧が存在する。Ｎ、Ａ〜Ｇは、それぞれしきい値分布を示している。
【００２３】
図４では、境界ａは、しきい値分布Ｎとしきい値分布Ａの間の境界（分別しきい値）を示し、境界ｂは、しきい値分布Ａとしきい値分布Ｂの間の境界を示し、境界ｃは、しきい値分布Ｂとしきい値分布Ｃの間の境界を示し、境界ｄは、しきい値分布Ｃとしきい値分布Ｄの間の境界を示し、境界ｅは、しきい値分布Ｄとしきい値分布Ｅの間の境界を示し、境界ｆは、しきい値分布Ｅとしきい値分布Ｆの間の境界を示し、境界ｇは、しきい値分布Ｆとしきい値分布Ｇの間の境界を示している。各ページへの分別電圧の割当を、１ｓｔページ、２ｎｄページ、３ｒｄページの順に分別電圧数（分割数）を示して、２−２−３分割と呼ぶこととする。従来の２−２−３分割の場合、図４に示すように、各ページの分別電圧は、ページ間で重複しないように割当られている。
【００２４】
一般に、ＮＡＮＤフラッシュメモリに格納されたデータの誤りは、しきい値分布が移動することにより生じる誤りが多い。特に、適切な製造テスト工程を経た後は誤りの要因の大多数は隣接するしきい値分布に移動することによる誤りである。例えば、図４のしきい値分布Ａがしきい値分布Ｎとして読み出されるかまたはしきい値分布Ｂとして読み出される、というような隣接したしきい値分布への移動による誤りが支配的となる。
【００２５】
一方、図４に示すように、境界ａ〜境界ｇの７つの境界が存在するが、しきい値分布Ａがしきい値分布Ｂに移動したとしても、１ｓｔページおよび２ｎｄページではビット値が変化しないため、誤りとはならない。これに対し、３ｒｄページではビット値が変化しないため、“１”から“０”へ変化するため誤りとなる。このように、隣接するしきい値に移動しても値が変わらない場合には誤りとならないため、隣接するしきい値に移動した場合に値が変化する可能性が高いページほど誤りの発生確率が増える。すなわち、分別電圧の数が他のページより多い、３ｒｄページでは、１ｓｔページおよび２ｎｄページより誤りの発生確率が増える。これにより、３ｒｄページでは、誤り訂正不能率が高くなる。
【００２６】
本実施の形態では、分別電圧の数が多いページの誤り訂正不能率を低下させるために、分別電圧の数が少ないページに、分別電圧の数が多いページと共有する分別電圧を追加する。これにより、分別電圧の数が多いページのみ誤り訂正不能率が突出することを防ぐ。さらに、共有する分別電圧を用いて分別電圧の数が少ないページの誤り訂正結果を利用することにより、分別電圧の数が多いページの誤り訂正不能率を図る。
【００２７】
図５は、本実施の形態のメモリセルのしきい値とデータの割付の一例を示す図である。図５では、２ｎｄページの分別電圧を３つとし、境界ｆでビット値が“０”から“１”に変化し、また境界ｇで“１”から“０”に変化するようデータを割り付けている。境界ｆは、３ｒｄページの分別電圧でもあり、２ｎｄページと３ｒｄページで分別電圧が共有される（２ｎｄページと３ｒｄページで同一の分別電圧となる）。本実施の形態のＮＡＮＤフラッシュメモリ２のController２６は、入力されるデータに応じて図５のデータ割り付けにしたがって、メモリセルへの書き込みおよび書き込みを制御する。
【００２８】
図６および図７は、本実施の形態のページ間の誤り訂正結果の援用の可能な例を示す図である。図６および図７は、図５に例示したデータの割付を行った場合の例を示している。図６は、２ｎｄページは誤り訂正ができて、３ｒｄページが、誤り訂正ができなかった（誤り訂正能力を超えた）場合に、２ｎｄページの誤り訂正結果を利用して、３ｒｄページの誤り読出箇所を強制訂正（ビットを反転する）する例を示している。強制訂正により３ｒｄページ内の誤り箇所数を減らして、再度誤り訂正を行うと３ｒｄページが誤り訂正可能となる場合がある。このように２ｎｄページの誤り訂正結果の利用ができるのは、図６に示したケース＃１、ケース＃２の場合である。
【００２９】
ケース＃１は、データの誤りがＦ→Ｅ方向へのしきい値分布の移動によると判定できた場合である。このケースは、２ｎｄページの誤り訂正結果が“０”と読み出した値を“１”であったと訂正する符号極性であるものに限られる。なおかつ、データ誤りが、境界ｆを超えたことによる誤りであると判定できる場合である。
【００３０】
ケース＃２は、データの誤りパターンがＥ→Ｆ方向へのしきい値分布の移動によると判定できた場合である。このケースは、２ｎｄページの誤り訂正結果が“１”と読み出した値を“０”であったと訂正する符号極性であるものに限られる。なおかつ、データ誤りが、境界ｆを超えたことによる誤りであると判定できる場合である。
【００３１】
境界ｆを超えたことの判定は、ケース＃１の場合は境界ｄと境界ｅの間に実体があることを確認すればよい。ケース＃２の場合は境界ｆと境界ｇの間の中央値と境界ｆとの間に実体があることを確認すればよい。例えば、プロセッサ１２は、境界ｅ以上で境界ｆと境界ｇの中央値以下の電圧で改めて読み出しを行うようメモリーインタフェイス１５経由でController２６を制御し、２ｎｄページで誤り訂正された（“０”から“１”への訂正であるか“１”から“０”への訂正であるかにかかわらず）ビットのデータが記憶されたメモリセルに実体があることを確認できればよい。
【００３２】
このように分別電圧を２ｎｄページと３ｒｄページで共有し、３ｒｄページが誤り訂正できなかった場合に２ｎｄぺージの誤り訂正結果を援用すれば、誤り訂正不能となる確率を低減することができる。誤りの発生確率が各読み出し値で均等で、ケース＃１の場合はとなりの境界ｄまでしか、ケース＃２の場合は境界ｆと境界ｇの間の中央値までしかずれていないと仮定した場合には、３ｒｄページの誤りを２／６（＝境界ｆを超える誤りパターンの数／境界ｂ、ｄ、ｆを超える誤りパターンの数）の割合で救済することができる。３ｒｄページについて境界ｆを超えた誤りを上述のように２ｎｄぺージの誤り訂正結果を援用して訂正した場合、３ｒｄページの誤りの総数が減るため、再度誤り訂正を行うことにより、境界ｂ、ｄを超えた誤りを訂正できる可能性がある。
【００３３】
図７は、３ｒｄページは誤り訂正（ＥＣＣ訂正）ができて、２ｎｄページが、誤り訂正ができなかった（誤り訂正能力を超えた）場合に、３ｒｄページの誤り訂正結果を利用して、２ｎｄページの誤り読出箇所を強制訂正（ビットを反転する）する例を示している。強制訂正により２ｎｄページ内の誤り箇所数を減らして、再度誤り訂正を行うと２ｎｄページが誤り訂正可能となる場合がある。このように３ｒｄページの誤り訂正結果の利用ができるのは、図７に示したケース＃３、ケース＃４の場合である。
【００３４】
ケース＃３は、データの誤りがＦ→Ｅ方向へのしきい値分布の移動によると判定できた場合である。このケースは、３ｒｄページの誤り訂正結果が“１”と読み出した値を“０”であったと訂正する符号極性であるものに限られる。なおかつ、データ誤りが、境界ｆを超えたことによる誤りであると判定できる場合である。
【００３５】
ケース＃４は、データの誤りパターンがＥ→Ｆ方向へのしきい値分布の移動によると判定できた場合である。このケースは、３ｒｄページの誤り訂正結果が“０”と読み出した値を“１”であったと訂正する符号極性であるものに限られる。なおかつ、データ誤りが、境界ｆを超えたことによる誤りであると判定できる場合である。
【００３６】
境界ｆを超えたことの判定は、ケース＃３の場合は境界ｄと境界ｅの間に実体があることを確認すればよい。ケース＃４の場合は境界ｆと境界ｇの間に実体があることを確認すればよい。例えば、プロセッサ１２は、境界ｅ以上で境界ｇ以下の電圧で改めて読み出すよう制御し、３ｒｄページで誤り訂正された（“０”から“１”への訂正であるか“１”から“０”への訂正であるかにかかわらず）ビットのデータが記憶されたメモリセルに実体があることを確認できればよい。誤りの発生確率が各読み出し値で均等で、となりの境界ｄまでしかずれていないと仮定した場合には、２ｎｄページの誤りを２／６（＝境界ｆを超える誤りパターンの数／境界ｃ、ｇ、ｆを超える誤りパターンの数）の割合で救済することができる。２ｎｄページについて境界ｆを超えた誤りを上述のように３ｒｄぺージの誤り訂正結果を援用して訂正した場合、２ｎｄページの誤りの総数が減るため、再度誤り訂正を行うことにより、境界ｃ、ｇを超えた誤りを訂正できる可能性がある。
【００３７】
なお、境界ｆを超えたことによる誤りであると判定する方法は、上述のような３ｒｄページの再読み出しに限定されない。例えば、１ｓｔページのデータを読み出し、１ｓｔページの誤り訂正処理後のデータを用いてもよい。例えば、Ｅ→Ｆの移動の場合、２ｎｄページのデータは“０”から“１”へ訂正され、かつ１ｓｔページは“１”である。２ｎｄページのデータが“０”から“１”へ訂正されるのはＢ→Ｃへの移動でも生じるが、Ｂ→Ｃへの移動の場合は１ｓｔページは“０”である。このように、１ｓｔページのデータを用いて境界ｆを超えたことによる誤りであるかを判定してもよい。
【００３８】
図８は、本実施の形態の３ｒｄページの読み出し手順の一例を示すフローチャートである。プロセッサ１２は、３ｒｄページの読み出し処理が開始されると、メモリインターフェイス１５経由でＮＡＮＤフラッシュメモリ２から３ｒｄページを読み出し、読み出した３ｒｄページの誤り訂正処理の開始をＥＣＣ回路１４へ指示する（ステップＳ１）。ＥＣＣ回路１４は、指示に基づいて３ｒｄページの誤り訂正処理を実施する。
【００３９】
プロセッサ１２は、ＥＣＣ回路１４から３ｒｄページの誤り訂正処理結果を受け取り、誤り訂正処理結果に基づいて３ｒｄページに誤りがあったか否かを判断する（ステップＳ２）。３ｒｄページに誤りがあった場合（ステップＳ２  Ｙｅｓ）、プロセッサ１２は、誤り訂正処理結果に基づいて誤り訂正可であるか否かを判断する（ステップＳ３）。誤り訂正可であるか否かの判断はどのような方法で行ってもよいが、例えば誤り訂正符号化処理で、誤り検出符号を付加した後に誤り訂正符号を付しておき、誤り検出符号を用いて正しく訂正できたかを判定する方法がある。
【００４０】
誤り訂正可でないと判断した場合（ステップＳ３  Ｎｏ）、プロセッサ１２は、読み出し対象の３ｒｄページと同一ワードラインの２ｎｄページ（読み出し対象の３ｒｄページのデータが記録されるメモリセルと同一のメモリセルに記録される２ｎｄページのデータ）を読み出し、２ｎｄページの誤り訂正処理の開始をＥＣＣ回路１４へ指示する（ステップＳ４）。ＥＣＣ回路１４は、指示に基づいて２ｎｄページの誤り訂正処理を実施する。なお、３ｒｄページの読み出し時に２ｎｄページも同時に読み出しておいてもよい。
【００４１】
プロセッサ１２は、ＥＣＣ回路１４から２ｎｄページの誤り訂正処理結果を受け取り、誤り訂正処理結果に基づいて２ｎｄページに誤りがあったか否かを判断する（ステップＳ５）。２ｎｄページに誤りがあった場合（ステップＳ５  Ｙｅｓ）、プロセッサ１２は、誤り訂正処理結果に基づいて２ｎｄページが誤り訂正可であるか否かを判断する（ステップＳ６）。
【００４２】
誤り訂正可であると判断した場合（ステップＳ６  Ｙｅｓ）、プロセッサ１２は、２ｎｄページの誤りビットを反転させて誤りを訂正するようＥＣＣ回路１４へ指示し、共有する分別電圧（しきい値）に対応するビットで誤りが訂正されたか否かを判断する（ステップＳ７）。
【００４３】
共有する分別電圧（しきい値）に対応するビットで誤りが訂正されたと判断した場合（ステップＳ７  Ｙｅｓ）、プロセッサ１２は、３ｒｄページの共有する分別電圧に対応するビットを反転させる（ステップＳ８）。そして、プロセッサ１２は、ビットを反転させ３ｒｄページの誤り訂正処理の開始をＥＣＣ回路１４へ指示する（ステップＳ９）。ＥＣ
Ｃ回路１４は、指示に基づいて再度３ｒｄページの誤り訂正処理を実施する。
【００４４】
プロセッサ１２は、ＥＣＣ回路１４から３ｒｄページの誤り訂正処理結果を受け取り、誤り訂正処理結果に基づいて３ｒｄページが誤り訂正可であったか否かを判断する（ステップＳ１０）。３ｒｄページが誤り訂正可であった場合（ステップＳ１０  Ｙｅｓ）、３ｒｄページの誤りビットを反転させて誤りを訂正するようＥＣＣ回路１４へ指示し、誤り訂正後の３ｒｄページのデータを出力し（ステップＳ１１）、処理を終了する。
【００４５】
一方、ステップＳ２で３ｒｄページに誤りがなかったと判断した場合（ステップＳ２  Ｎｏ）、プロセッサ１２は読み出した３ｒｄページのデータをそのまま出力し（ステップＳ１２）、処理を終了する。また、ステップＳ３で誤り訂正可であると判断した場合（ステップＳ３  Ｙｅｓ）、３ｒｄページの誤りビットを反転させて誤りを訂正するようＥＣＣ回路１４へ指示し、誤り訂正後の３ｒｄページのデータを出力し（ステップＳ１３）、処理を終了する。
【００４６】
ステップＳ５で２ｎｄページに誤りがなかった場合（ステップＳ５  Ｎｏ）、およびステップＳ６で訂正不可であった場合（ステップＳ６  Ｎｏ）、３ｒｄページは訂正不可と判断し（ステップＳ１４）、処理を終了する。また、ステップＳ７で共有する分別電圧に対応するビットで誤りが訂正されなかった場合（ステップＳ７  Ｎｏ）、およびステップＳ１０で訂正不可であった場合（ステップＳ１０  Ｎｏ）も、ステップＳ１４へ進む。３ｒｄページが訂正不可である場合の処理に制約はなく、通常のページデータが訂正不可であった場合と同様の処理を行えばよい。
【００４７】
なお、上述の説明では、データ割付および共有する分別電圧は図５に示した例を前提に説明したが、データ割付および共有する分別電圧は図５の例に限定されない。図９、図１０は、データ割付および共有する分別電圧の別の一例を示す図である。図９は、図５の例の２ｎｄページと３ｒｄページのデータ割付を入れ替えた例である。図１０は、１ｓｔページの分別電圧を境界ｃ、ｇとし、２ｎｄページの分別電圧を境界ａ、ｂ、ｅとし、３ｒｄページの分別電圧を境界ｂ、ｄ、ｆとして、境界ｂを共有する分別電圧とした例である。また、図１０の例に対して２ｎｄページと３ｒｄページのデータ割付を入れ替えてもよい。図９、１０についてもデータ割付および共有する分別電圧の一例であり、データ割付および共有する分別電圧はこれらに限定されない。
【００４８】
図５とは異なるデータ割付の場合にも、共有する分別電圧を設ければ上述の例と同様に、共有する分別電圧を有するページ間で誤り訂正結果の援用が可能である。３ビット／セルの場合、８つのしきい値分布が存在し７つの境界が存在する。この７つのうち、１つを共有する分別電圧として用いるため、３ページの分別電圧の数の合計は７＋１＝８となる。この８を各ページになるべくページ間の偏りなく配分すると２、３、３の配分となる。分別電圧の数が２つのページより分別電圧の数が３つのページの方が誤り発生確率が高いため、分別電圧の数が３つのページ同士で分別電圧を共有してページ間の誤り訂正結果の援用を行うことが望ましい。
【００４９】
なお、以上の説明では、３ビット／セルの場合について説明したが、４ビット／セル以上の場合に、同様に共有する分別電圧を設けてページ間の誤り訂正結果の援用を行うことも可能である。
【００５０】
このように、本実施の形態では、ページ間で分別電圧のうちの少なくとも１つを共有するように、データ割付および分別電圧を設定し、共有する分別電圧に対応する誤り訂正結果を、分別電圧を共有するページ間で援用するようにした。このため、誤り発生確率の高いページにおける誤り訂正不能率を低減することができる。
【００５１】
（第２の実施の形態）
次に、第２の実施の形態について説明する。本実施の形態の半導体記憶システムの構成は、第１の実施の形態と同様である。本実施の形態では、第１の実施の形態と同様に、ページ間で分別電圧を共有して誤り訂正結果をページ間で援用する。以下、第１の実施の形態と異なる部分を説明する。
【００５２】
図１１は、本実施の形態の誤り訂正符号化処理におけるインターリーブの一例を示す図である。図１１の各ブロック内の数字はカラムアドレスを示している。一般に、ＮＡＮＤフラッシュメモリでは、Ｎ本（Ｎは、例えば８）のビット線をカラムと言われる１つのグループとしている。このカラムに割り当てられるアドレスがカラムアドレスである。ここでは、Ｎ＝８とし、１カラムは１ビット（すなわち１バイト）であるとする。図１１では、同一ワードラインに接続される３ページを示している。
【００５３】
本実施の形態では、図１１に示しように、２ｎｄページと３ｒｄページについては、ページごとに、ハッチング無しのカラムアドレスのデータとハッチング有りのカラムアドレスのデータとの２つのデータセットにわけ、各データセットに対して誤り訂正符号を生成する。１ページを１０２４バイトとすると、１つのデータセットは５１２バイトであり、２ｎｄページと３ｒｄページは、５１２バイト単位で誤り訂正符号化処理および誤り訂正処理を実施する。なお、１ｓｔページについては、特に制約はないが、２ｎｄページと３ｒｄページと同じデータ量単位で誤り訂正符号化処理および誤り訂正処理を行ってもよいし、ページ単位で誤り訂正符号化処理および誤り訂正処理を行ってもよい。
【００５４】
具体的には、図１１に示すように、２ｎｄページは、“０”、“２”、“４”、…のカラムアドレスのデータを１つのデータセット（以降、第１のデータセットという）とし、“１”、“３”、“５”、…のカラムアドレスのデータを別の１つのデータセット（以降、第２のデータセットという）とする。３ｒｄページは、“０”、“１”、“４”、“５”、…のカラムアドレスのデータを１つのデータセット（以降、第３のデータセットという）とし、“２”、“３”、“６”、“７”、…のカラムアドレスのデータを別の１つのデータセット（以降、第４のデータセットという）とする。このように、３ｒｄページの各データセットは、２ｎｄページの第１のデータセットのカラムアドレスの等しいデータと第２のカラムアドレスのデータセットのデータとを交互に含むよう構成されている。
【００５５】
図１２〜１４は、図１１に示すインターリーブを行った場合の誤り訂正方法の例を示す図である。図１２は、誤り訂正処理時に２ｎｄページでは第１のデータセット、第２のデータセットの両方とも誤り訂正ができ、３ｒｄページの第３のデータセットが誤り訂正不可であったとする。この場合、第３のデータセットは、第１のデータセットおよび第２のデータセットの丸を付したカラムアドレスのデータの誤り訂正結果を第１の実施の形態と同様に援用することにより、誤り訂正不可となる可能性を低減することができる。
【００５６】
図１３は、誤り訂正処理時に２ｎｄページでは第１のデータセット、第２のデータセットの両方とも誤り訂正不可であり、３ｒｄページの第３のデータセットが誤り訂正不可であり、第４のデータセットが誤り訂正できた場合を示している。この場合、まず、（１）第４のデータセットの誤り訂正結果を援用して第１のデータセット、第２のデータセットの強制訂正を行い、再度第１のデータセット、第２のデータセットの誤り訂正を行う。この結果、第１のデータセット、第２のデータセットの誤り訂正ができたとする。次に、（２）第１のデータセット、第２のデータセットの誤り訂正結果を援用して第３のデータセットの誤り訂正を行う。
【００５７】
図１４は、誤り訂正処理時に２ｎｄページでは第１のデータセット、第２のデータセットの両方とも誤り訂正不可であり、３ｒｄページの第３のデータセットが誤り訂正不可であり、第４のデータセットが誤り訂正できた場合の別の動作例を示している。図１３の場合と同様に、（１）第４のデータセットの誤り訂正結果を援用して第１のデータセット、第２のデータセットの強制訂正を行い、再度第１のデータセット、第２のデータセットの誤り訂正を行う。この結果、第１のデータセットの誤り訂正はできたが、第２のデータセットの誤り訂正は不可であったとする。次に、（２）第１のデータセットの誤り訂正結果を援用して第３のデータセットの誤り訂正を行い、第３のデータセットの誤り訂正ができたとする。さらに、（３）第３のデータセットの誤り訂正を援用して第２のデータセットの誤り訂正を行う。
【００５８】
３ｒｄページの各データセットを、２ｎｄページの第１のデータセットのカラムアドレスの等しいデータと第２のカラムアドレスのデータセットのデータとを交互に含むよう構成しておくことにより、図１３、１４に示すように、段階的に誤り訂正を行っていくことが可能である。
【００５９】
このように、２ｎｄページ、３ｒｄページのデータを複数の誤り訂正単位（データセット）に分散させておく。すなわち、データセットを構成するデータが記憶されるメモリセルの組み合わせがページ間で異なる組み合わせとなるようにする。これにより、２ｎｄページ、３ｒｄページの両方がともに訂正不能となる確率を低減することができる。例えば、１ページ分のデータに対し３つの誤りまで訂正可であった場合に、上記のカラムアドレス“０”、“１”、“３”、“４”に対応する物理セルで誤りが生じるとする。この場合、ページ単位で誤り訂正符号化処理を行っていると２ｎｄページ、３ｒｄページともに訂正不可となる。これに対し、各データセットがそれぞれ２つ（２＝４／２）の誤りまで訂正可であるとすると、図１１のように、データセットを構成しておいた場合、第３のデータセットは誤り訂正できないが、第１、第２および第４のデータセットは誤り訂正ができる。従って、第１、第２のデータセットを援用することにより第３のデータセットも誤り訂正可となる可能性がある。
【００６０】
１ページを２つのデータセットに分割してそれぞれ誤り訂正符号化処理を行う場合、訂正できたデータセットからの援用として確定できるビット数（強制訂正できるビット数）はデータセットに分割しない場合の１／２となる。しかし、インターリーブをかけている他方のデータセットも訂正できているとすると、そこからも援用することができるため、結局、トータルでは、援用により得られる確定ビット数は同じとなる。
【００６１】
なお、各データセットの構成方法は、図１１の例に限定されず、２ｎｄページ、３ｒｄページに同一物理セルのデータを分散させるような構成方法であればよい。また、１ページを３以上のデータセットに分割して、データセットごとに誤り訂正符号を生成するようにしてもよい。
【００６２】
このように、本実施の形態では、２ｎｄページ、３ｒｄページのデータを、それぞれ２つのデータセットに分割し、データセットごとに誤り訂正符号化処理および誤り訂正処理を行う。そして、同一物理セルのデータを２ｎｄページ、３ｒｄページに分散させるようにデータセットを構成するようにした。このため、２ｎｄページ、３ｒｄページの両方がともに訂正不能となる確率を低減することができ、第１の実施の形態のページ間の誤り訂正の援用が適用できる可能性を高めることができる。
【００６３】
（第３の実施の形態）
図１５は、第３の実施の形態のメモリセルのしきい値とデータの割付の一例を示す図である。本実施の形態の半導体記憶システムの構成は、第１の実施の形態と同様である。第１の実施の形態では、共有する分別電圧の数を１つとしたが、本実施の形態では、共有する分別電圧の数を２つとしている。
【００６４】
図１５の例では、境界ａを２ｎｄページと３ｒｄページで共有する分別電圧として設定し、境界ｅを１ｓｔページと２ｎｄページで共有する分別電圧として設定している。この場合は、２ｎｄページと３ｒｄページと間では、境界ａを超える誤りについて第１の実施の形態の境界ｆを超える誤りと同様に、ページ間の誤り訂正結果を援用する。さらに、１ｓｔページと２ｎｄページと間では、境界ｅを超える誤りについて第１の実施の形態の境界ｆを超える誤りと同様に、ページ間の誤り訂正結果を援用する。
【００６５】
なお、図１５のデータの割付と共有する分別電圧の設定方法は、一例であり、これに限定されない。例えば、２ｎｄページと３ｒｄページで分別電圧を共有し、かつ１ｓｔページと３ｒｄページで分別電圧を共有する等としてもよい。
【００６６】
このように、１ｓｔページ、２ｎｄページ、３ｒｄページを３−３−３の分割パターンとすることにより、ページ間の誤りの発生確率を均等化することができる。また第１の実施の形態と同様にページ間で誤り訂正結果を援用することにより、誤り訂正不可となる可能性を低減することができる。
【００６７】
（第４の実施の形態）
図１６は、第４の実施の形態の誤り訂正符号化処理におけるインターリーブの一例を示す図である。本実施の形態では、第３の実施の形態で述べた３−３−３の分割パターンを適用する場合の誤り訂正符号化処理におけるインターリーブ方法について説明する。
【００６８】
本実施の形態では、１ｓｔページ、２ｎｄページ、３ｒｄページをそれぞれ、ページごとに２つのデータセットに分割する。ページごとに、ハッチング有りのカラムアドレスのデータで１つのデータセットを構成し、ハッチング無しのカラムアドレスのデータで他の１つのデータセットを構成する。１ｓｔページは、１バイトごとに交互に異なるデータセットにデータを配分する。２ｎｄページは、２バイトごとに交互に異なるデータセットにデータを配分する。３ｒｄページは、４バイトごとに交互に異なるデータセットにデータを配分する。
【００６９】
このように、第２の実施の形態と同様に、同一物理セルのデータを１ｓｔページ、２ｎｄページ、３ｒｄページに分散させるようにデータセットを構成すると、第２の実施の形態と同様に、共有する分別電圧を有する２つのページがともに訂正不能となる確率を低減することができる。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７１】
１  メモリコントローラ、２  ＮＡＮＤフラッシュメモリ、１２  プロセッサ、１４  ＥＣＣ回路、１５  メモリインターフェイス。
【図１】
2013218525.tif 000003
【図２】
2013218525.tif 000004
【図３】
2013218525.tif 000005
【図４】
2013218525.tif 000006
【図５】
2013218525.tif 000007
【図６】
2013218525.tif 000008
【図７】
2013218525.tif 000009
【図８】
2013218525.tif 000010
【図９】
2013218525.tif 000011
【図１０】
2013218525.tif 000012
【図１１】
2013218525.tif 000013
【図１２】
2013218525.tif 000014
【図１３】
2013218525.tif 000015
【図１４】
2013218525.tif 000016
【図１５】
2013218525.tif 000017
【図１６】
2013218525.tif 000018