(57)【要約】【課題】メモリの状態に適した誤り訂正能力を有し、無駄な消費電力を省いたＥＣＣ回路を備えたメモリを提供する。【解決手段】メモリは、ビット線と、ワード線と、ビット線とワード線との交点に対応して設けられたメモリセルを含むメモリセルアレイとを備える。センスアンプは、ビット線に接続され、メモリセルに格納されたデータを検出する。ワード線ドライバは、ワード線の電圧を制御する。コントローラは、第１の誤り訂正能力を有する第１の誤り訂正回路および第２の誤り訂正能力を有する第２の誤り訂正回路を含む。メモリセルは、データ消去の単位となるメモリセルブロックを成し、メモリセルブロックにおいて各ワード線に接続されたメモリセルがページを成す。コントローラは、書込み時にワード線の電圧をステップさせる回数に応じて、読出し時または書込み時に第１の誤り訂正回路および第２の誤り訂正回路のうちいずれか一方またはそれらの両方を駆動させる。【選択図】図１
2012123880.tif 000002
【特許請求の範囲】
【請求項１】
複数のビット線と、
前記ビット線に交差する複数のワード線と、
前記ビット線と前記ワード線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、
前記ビット線に接続され、前記複数のメモリセルに格納されたデータを検出するセンスアンプと、
前記ワード線の電圧を制御するワード線ドライバと、
第１の誤り訂正能力を有する第１の誤り訂正回路および第２の誤り訂正能力を有する第２の誤り訂正回路を含む訂正回路部とを備え、
各前記ワード線に接続された前記メモリセルがページを成し、
前記コントローラは、データ書込み時に前記ワード線の電圧をステップさせる回数に応じて、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路のうちいずれか一方またはそれらの両方を駆動させることを特徴とする半導体記憶装置。
【請求項２】
前記メモリセルアレイは、データ書込み時における前記ワード線電圧のステップ回数を各前記ページごとに格納するステップ回数格納領域を含み、
前記ステップ回数が所定値以上の場合、前記訂正回路部は、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路のうちいずれか一方のみを選択的に駆動させ、前記ステップ回数が所定値未満の場合、前記訂正回路部は、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路の両方を駆動させることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記訂正回路部は、データ書込み時における前記ワード線電圧のステップ回数を各前記ページごとに格納するステップ回数格納領域を含み、
前記ステップ回数が所定値以上の場合、前記訂正回路部は、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路のうちいずれか一方のみを選択的に駆動させ、前記ステップ回数が所定値未満の場合、前記訂正回路部は、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路の両方を駆動させることを特徴とする請求項１に記載の半導体記憶装置。
【請求項４】
前記ステップ回数が所定値以上の場合、前記訂正回路部は、前記第１の誤り訂正回路によって符号化されたデータを書き込み、あるいは、前記第１の誤り訂正回路によって復号化されたデータを読み出し、
前記ステップ回数が所定値未満の場合、前記訂正回路部は、前記第１の誤り訂正回路および前記第２の誤り訂正回路による連接符号によって符号化したデータを書き込み、あるいは、該連接符号によって復号化したデータを読み出すことを特徴とする請求項２または請求項３に記載のデータ記憶システム。
【請求項５】
複数のビット線と、
前記ビット線に交差する複数のワード線と、
前記ビット線と前記ワード線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、
前記ビット線に接続され、前記複数のメモリセルに格納されたデータを検出するセンスアンプと、
前記ワード線の電圧を制御するワード線ドライバと、
第１の誤り訂正能力を有する第１の誤り訂正回路および第２の誤り訂正能力を有する第２の誤り訂正回路を含む訂正回路部とを備え、
複数の前記メモリセルがデータ消去の単位となるメモリセルブロックを成し、前記メモリセルブロックにおいて各前記ワード線に接続された前記メモリセルがページを成し、
前記訂正回路部は、前記ページ内に含まれるフェイルビット数に応じて、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路のうちいずれか一方またはそれらの両方を駆動させることを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリ等のようなＥＥＰＲＯＭ（以下、単にメモリともいう）は、データの信頼性を向上させるためにＥＣＣ(error correcting code)を用いる。通常、書込みおよび消去（以下、Ｗ／Ｅともいう）を繰り返すことにより、不良メモリセル（以下、フェイルビットともいう）が増加する。ＥＣＣ回路は、このようなファイルビットを訂正することによって、メモリのＷ／Ｅ回数の上限を向上させることができる。
【０００３】
Ｗ／Ｅ回数の上限を増大させるためには、誤り訂正能力の高いＥＣＣ回路を用いればよい。これにより、メモリの信頼性は向上する。しかし、誤り訂正能力の高いＥＣＣ回路は、消費電力が大きい。また、Ｗ／Ｅ回数がまだ少ない段階では、フェイルビット数が少ないため、ＥＣＣ回路の誤り訂正能力が過剰である場合もある。このような場合、過剰に高い訂正能力を有するＥＣＣ回路は、電力を必要以上に消費していることになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１６４６３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリの状態に適した誤り訂正能力を有し、無駄な消費電力を省いたＥＣＣ回路を備えた半導体記憶装置を提供する。
【課題を解決するための手段】
【０００６】
本実施形態による半導体記憶装置は、複数のビット線と、前記ビット線に交差する複数のワード線と、前記ビット線と前記ワード線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイとを備えている。センスアンプは、前記ビット線に接続され、前記複数のメモリセルに格納されたデータを検出する。ワード線ドライバは、前記ワード線の電圧を制御する。コントローラは、第１の誤り訂正能力を有する第１の誤り訂正回路および第２の誤り訂正能力を有する第２の誤り訂正回路を含む。複数の前記メモリセルは、データ消去の単位となるメモリセルブロックを成し、前記メモリセルブロックにおいて各前記ワード線に接続された前記メモリセルがページを成す。前記コントローラは、データ書込み時に前記ワード線の電圧をステップさせる回数に応じて、データ読出し時またはデータ書込み時に前記第１の誤り訂正回路および前記第２の誤り訂正回路のうちいずれか一方またはそれらの両方を駆動させる。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係るメモリ装置の構成例を示すブロック図。
【図２】メモリセルアレイ１の部分的な構成例を示す図。
【図３】第１および第２の誤り訂正回路の両方を用いた誤り訂正処理を示す概念図。
【図４】第１の実施形態によるメモリ装置のデータ書込み動作を示すフロー図。
【図５】第１の実施形態によるメモリ装置のデータ読出し動作を示すフロー図。
【図６】第２の実施形態によるメモリ装置の構成例を示すブロック図。
【図７】第２の実施形態によるメモリ装置のデータ書込み動作を示すフロー図。
【図８】第２の実施形態によるメモリ装置のデータ読出し動作を示すフロー図。
【図９】第２の実施形態の変形例の構成例を示すブロック図。
【図１０】第２の実施形態の変形例のデータ書き込み動作を示すフロー図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【０００９】
（第１の実施形態）
図１は、第１実施形態に係るメモリ装置の構成例を示すブロック図である。メモリ部とコントローラ部とは、一体として樹脂封止されたメモリ装置でよい。訂正回路部としてのコントローラ部は、複数のメモリ部（メモリチップ）を制御することができるように構成されている。
【００１０】
以下、メモリ部において、メモリセルブロックは、単一または複数のページを含み、同時に消去動作が行われるメモリセルの単位を示す。ページは、或るワード線に接続された複数のメモリセル（あるいは、それらのメモリセルに格納されたデータ）からなり、書込みまたは読出しの単位を示す。電荷蓄積層を有したフラッシュメモリセルでは、メモリセルブロックは複数のページを含み、複数のページで一度に消去動作が行われるように構成されても良い。例えば、電荷蓄積層を有したフラッシュメモリセルにおいて１ページのメモリセルの消去時間が１ページのメモリセルの書き込み時間よりも長いには、１ブロックあたりの書き込み時間と１ブロックあたりの消去時間とを同程度にすることができる。その結果、システムから見た書き込みデータ転送速度、及び消去速度のパフォーマンスを向上できる。
【００１１】
図１に示すメモリ部は、メモリセルアレイ１と、ＷＬドライバ２と、ロウデコーダ３と、制御信号発生回路４０と、基板電圧コントローラ４２と、データ入出力バッファ４５と、センスアンプ（データラッチ回路含む）４６と、アドレスバッファ４７と、カラムデコーダ４８と、Ｖｐｇｍ発生回路４１ａと、Ｖｐａｓｓ発生回路４１ｂと、Ｖｒｅａｄ発生回路４１ｃと、Ｖｒｅｆ発生回路４１ｄとを備えている。
【００１２】
メモリセルアレイ１は、マトリクス状に二次元配列された複数のメモリセルＭＣによって構成されている。メモリセルアレイ１の詳細な構成は、図２を参照して後述する。
【００１３】
センスアンプ４６は、ビット線ＢＬに接続されており、データ読出し時においてビット線ＢＬを介してメモリセルＭＣのデータを検出する。センスアンプ４６は、データラッチを兼ねており、データ読出し時またはデータ書込み時においてデータを保持する機能も有する。センスアンプ４６は、データ書込み時において保持するデータに従ってビット線ＢＬに電圧を印加する。
【００１４】
カラムデコーダ４８は、アドレスバッファ４７からカラムアドレス信号を受け取り、カラムアドレス信号をデコードして出力する。これにより、データ入出力バッファ４５に与えられた書込みデータは、所望のビット線ＢＬに接続されたメモリセルＭＣに書き込まれ得る。あるいは、所望のビット線ＢＬに接続されたメモリセルＭＣのデータは、データ入出力バッファ４５および内部Ｉ／Ｏ線を介して読み出され得る。
【００１５】
アドレスバッファ４７は、データ入出力バッファ４５に格納されたアドレス信号を一時的に保持する。データ入出力バッファ４５は、コントローラ部（コントローラチップ）から受け取ったデータ、アドレスおよびコマンド等の信号を格納する。
【００１６】
ＷＬドライバ２は、ワード線ＷＬに接続されており、読出し動作、書込み動作および消去動作において、ワード線ＷＬの電圧を制御するスイッチ回路である。
【００１７】
ロウデコーダ３は、アドレスバッファ４７からロウアドレス信号を受け取り、ロウアドレス信号をデコードして出力する。これにより、ＷＬドライバ２は、書込み動作または読出し動作において所望のワード線ＷＬに接続された複数のメモリセルＭＣ（所望のページ）を選択することができる。
【００１８】
制御信号発生回路４０は、データ入出力バッファ４５からのコマンドを受け取り、そのコマンドに従って、電圧発生回路４１ａ、４１ｂ、４１ｃ、４１ｄ、４２を制御する。
【００１９】
Ｖｐｇｍ発生回路４１ａは、例えば、電源電圧を昇圧した書込み電圧Ｖｐｇｍを発生する。書込み電圧Ｖｐｇｍは、データ書込み時に、選択されたメモリセルに対して用いられる。書込み電圧Ｖｐｇｍは、例えば、選択されたメモリセルの制御ゲート（選択ワード線ＷＬ）に印加される。書込み電圧Ｖｐｇｍは、例えば、１０Ｖ以上、３０Ｖ以下である。
【００２０】
Ｖｐａｓｓ発生回路４１ｂは、書込み中間電圧Ｖｐａｓｓを発生する。書込み中間電圧Ｖｐａｓｓは、データ書込み時に、非選択のメモリセルに対して用いられる。例えば、書込み中間電圧Ｖｐａｓｓは、データ書込み時、非選択のメモリセルの制御ゲート（非選択ワード線ＷＬ）に印加される。書込み中間電圧Ｖｐａｓｓは、例えば、３Ｖ以上、１５Ｖ以下である。
【００２１】
Ｖｒｅａｄ発生回路４１ｃは、読出し中間電圧Ｖｒｅａｄを発生する。読出し中間電圧Ｖｒｅａｄは、データ読出し時に、非選択のメモリセルに用いられる。例えば、読出し中間電圧Ｖｒｅａｄは、データ読出し時に、非選択のメモリセルの制御ゲート（非選択ワード線ＷＬ）に印加される。読出し中間電圧Ｖｒｅａｄは、例えば、１Ｖ以上、９Ｖ以下である。読出し電流を充分に確保し、かつ、リードディスターブを抑制するために、読出し中間電圧Ｖｒｅａｄは、メモリセルＭＣのしきい値電圧の上限よりも１Ｖ程度高い電圧にするとよい。
【００２２】
Ｖｒｅｆ発生回路４１ｄは、しきい値判定電圧Ｖｒｅｆを発生する。しきい値判定電圧Ｖｒｅｆは、データ読出し時に、選択メモリセルに用いられる。例えば、しきい値判定電圧Ｖｒｅｆは、データ読出し時に、選択メモリセルの制御ゲート（選択ワード線ＷＬ）に印加される。しきい値判定電圧Ｖｒｅｆは、互いに異なる論理データを格納するメモリセルのしきい値電圧の中間電圧である。例えば、２値メモリの場合、しきい値判定電圧Ｖｒｅｆは、データ“１”を格納するメモリセル（“１”セル）の閾値電圧分布と、データ“０”を格納するメモリセル（“０”セル）の閾値電圧分布との中間電圧に設定される。多値メモリの場合、複数のしきい値判定電圧Ｖｒｅｆが、隣接する論理の閾値電圧分布間にそれぞれ設定される。例えば、４値メモリの場合、３つのしきい値判定電圧Ｖｒｅｆ１〜Ｖｒｅｆ３が、データ“１１”とデータ“１０”との閾値電圧分布間、データ“１０”とデータ“００”との閾値電圧分布間、および、データ“００”とデータ“０１”との閾値電圧分布間にそれぞれ設定される。具体的には、しきい値判定電圧Ｖｒｅｆは、−０．５Ｖ〜５Ｖの範囲の電圧でよい。
【００２３】
基板電圧制御回路４２は、メモリセルアレイ１が形成されるｐ型シリコン領域（ｐ型ウェルまたはｐ型シリコン基板）の電圧を制御する。例えば、基板電圧制御回路４２は、消去時に、１０Ｖ以上の消去電圧をｐ型シリコン領域に印加する。
【００２４】
電圧発生回路４１ａ、４１ｂ、４１ｃ、４１ｄ、４２は、制御信号発生回路４０によって制御される。電圧発生回路４１ａ、４１ｂ、４１ｃ、４１ｄは、“データ書込み”、“データ読出し”および“データ消去”の各動作において、必要な電圧をＷＬドライバ２を介して選択ワード線ＷＬに印加する。
【００２５】
メモリセルアレイ１は、ループ回数記憶領域５０１を含む。ループ回数記憶領域５０１は、メモリセルアレイ１内の各ページにデータを書き込むときのワード線電圧のステップ回数（書込みループ回数）を記憶する。
【００２６】
通常、１回の書込みループ（１回の電圧印加）では全てのメモリセルＭＣの閾値電圧をターゲット分布内にシフトさせることはできない。そこで、メモリ装置は、書込みループごとに選択ワード線ＷＬの電圧をステップアップさせ、書込みループを繰り返す。これにより、閾値電圧が徐々に上昇し、閾値電圧は、所定の閾値範囲へシフトし、データがメモリセルＭＣへ書き込まれる。つまり、１回のデータ書込み動作は、複数の書込みループによって完了する。ループ回数記憶領域５０１は、データ書込み動作における書込みループの回数を各ページごとに記憶する。
【００２７】
図１のコントローラ部は、動作コントローラ５０６と、第１の誤り訂正符号化回路ＥＣＣｗ１と、第２の誤り訂正符号化回路ＥＣＣｗ２と、第１の誤り訂正復号化回路ＥＣＣｒ１と、第２の誤り訂正復号化回路ＥＣＣｒ２とを備えている。
【００２８】
第１の誤り訂正符号化回路ＥＣＣｗ１および第１の誤り訂正復号化回路ＥＣＣｒ１は、第１の誤り訂正回路を構成し、第２の誤り訂正符号化回路ＥＣＣｗ２および第２の誤り訂正復号化回路ＥＣＣｒ２は、第２の誤り訂正回路を構成する。データ書込み時には、第１の誤り訂正符号化回路ＥＣＣｗ１および第２の誤り訂正符号化回路ＥＣＣｗ２が、それぞれ第１の誤り訂正回路および第２の誤り訂正回路として書込みデータのエラービットを訂正する。データ読出し時には、第１の誤り訂正復号化回路ＥＣＣｒ１および第２の誤り訂正復号化回路ＥＣＣｒ２が、それぞれ第１の誤り訂正回路および第２の誤り訂正回路として読出しデータのエラービットを訂正する。
【００２９】
より詳細には、第１の誤り訂正復号化回路ＥＣＣｒ１は、内部Ｉ／Ｏ線を介してメモリ部に接続されており、データ読出し時に、メモリセルＭＣからの読出しデータを受け取る。第１の誤り訂正復号化回路ＥＣＣｒ１は、第１の誤り訂正能力で読出しデータを復号化する。第２の誤り訂正復号化回路ＥＣＣｒ２は、第１の誤り訂正復号化回路ＥＣＣｒ１と外部Ｉ／Ｏ線との間に接続されている。第２の誤り訂正復号化回路ＥＣＣｒ２は、第１の誤り訂正復号化回路ＥＣＣｒ１からのデータを受け取り、第２の誤り訂正能力で第１の誤り訂正復号化回路ＥＣＣｒ１からのデータをさらに復号化する。その後、第２の誤り訂正復号化回路ＥＣＣｒ２は、ＥＣＣｒ１およびＥＣＣｒ２において復号化されたデータを外部Ｉ／Ｏ線を介してメモリ装置の外部へ出力する。尚、動作コントローラ５０６が第２の誤り訂正復号化回路ＥＣＣｒ２を停止している場合には、第１の誤り訂正復号化回路ＥＣＣｒ１において復号化されたデータが出力される。
【００３０】
第１の誤り訂正符号化回路ＥＣＣｗ１は、外部Ｉ／Ｏ線と第２の誤り訂正符号化回路ＥＣＣｗ２との間に接続されている。データ書込み時に、第１の誤り訂正符号化回路ＥＣＣｗ１は、メモリ装置外部から書込みデータを受け取り、第１の誤り訂正能力で書込みデータを符号化する。第２の誤り訂正符号化回路ＥＣＣｗ２は、第１の誤り訂正符号化回路ＥＣＣｗ１とメモリ部との間に接続されている。第２の誤り訂正符号化回路ＥＣＣｗ２は、第１の誤り訂正符号化回路ＥＣＣｗ１からのデータを受け取り、第２の誤り訂正能力で第１の誤り訂正符号化回路ＥＣＣｗ１からのデータをさらに符号化する。その後、第２の誤り訂正符号化回路ＥＣＣｗ２は、ＥＣＣｗ１およびＥＣＣｗ２において符号化されたデータを内部Ｉ／Ｏ線を介してメモリ部へ送る。尚、動作コントローラ５０６が第２の誤り訂正符号化回路ＥＣＣｗ２を停止している場合には、第１の誤り訂正符号化回路ＥＣＣｗ１において符号化されたデータが出力される。
【００３１】
第１の誤り訂正符号化回路ＥＣＣｗ１、第２の誤り訂正符号化回路ＥＣＣｗ２、第１の誤り訂正復号化回路ＥＣＣｒ１および第２の誤り訂正復号化回路ＥＣＣｒ２の各誤り訂正能力は、等しくてもよく、あるいは、相違させてもよい。ここでは、便宜的に、データ書込み動作では、第１の誤り訂正符号化回路ＥＣＣｗ１および第２の誤り訂正符号化回路ＥＣＣｗ２の各誤り訂正能力を、それぞれ第１の誤り訂正能力および第２の誤り訂正能力と呼ぶ。データ読出し動作では、第１の誤り訂正復号化回路ＥＣＣｒ１および第２の誤り訂正復号化回路ＥＣＣｒ２の各誤り訂正能力を、それぞれ第１の誤り訂正能力および第２の誤り訂正能力と呼ぶ。
【００３２】
動作コントローラ５０６は、メモリ部、外部Ｉ／Ｏ線、第２の誤り訂正回路（ＥＣＣｒ２、ＥＣＣｗ２）に接続されている。動作コントローラ５０６は、ループ回数記憶領域５０１からのループ回数に応じて、第１および第２の誤り訂正回路の動作を制御する。動作コントローラ５０６は、データ書込み時に第１の誤り訂正符号化回路ＥＣＣｗ１および第２の誤り訂正符号化回路ＥＣＣｗ２のうちいずれか一方を選択的に駆動させることができ、あるいは、それらの両方を駆動させることができる。動作コントローラ５０６は、データ読出し時に第１の誤り訂正復号化回路ＥＣＣｒ１および第２の誤り訂正復号化回路ＥＣＣｒ２のうちいずれか一方を選択的に駆動させることができ、あるいは、それらの両方を駆動させることができる。図１では、動作コントローラ５０６は、第２の誤り訂正符号化回路ＥＣＣｗ２および第２の誤り訂正復号化回路ＥＣＣｒ２を選択的に停止させ、第１の誤り訂正符号化回路ＥＣＣｗ１および第１の誤り訂正復号化回路ＥＣＣｒ１のみを選択的に駆動させることができる。
【００３３】
一般に、書込みループ回数は、Ｗ／Ｅ回数の増大に従って減少する。これは、Ｗ／Ｅ回数が増大すると、フローティングゲートＦＧやトンネルゲート絶縁膜にトラップされる電荷（例えば、電子）が増加し、メモリセルＭＣの書き込み前の閾値電圧が上昇するためである。従って、書込みループ回数が多い場合、Ｗ／Ｅ回数は少なく、従って、書込み動作または読出し動作におけるエラービットは、比較的少ないと判断することができる。逆に、書込みループ回数が少ない場合、Ｗ／Ｅ回数は多く、従って、書込み動作または読出し動作におけるエラービットは、比較的多いと判断することができる。
【００３４】
よって、動作コントローラ５０６は、書込みループ回数が所定値以上の場合、データ読出し時に第１の誤り訂正復号化回路ＥＣＣｒ１のみを選択的に駆動させ、データ書込み時に第１の誤り訂正符号化回路ＥＣＣｗ１のみを選択的に駆動させる。また、ステップ回数が所定値未満の場合、動作コントローラ５０６は、データ読出し時に第１の誤り訂正復号化回路ＥＣＣｒ１および前記第２の誤り訂正復号化回路ＥＣＣｒ２の両方を駆動させ、データ書込み時に第１の誤り訂正符号化回路ＥＣＣｗ１および前記第２の誤り訂正符号化回路ＥＣＣｗ２の両方を駆動させる。書き込みループ回数の比較の基準となる所定値は、メモリ部またはコントローラ部内のＲＯＭ（図示せず）に格納しておけばよい。
【００３５】
また、制御信号発生回路４０は書込みループ回数をカウントするカウンタ５０を含み、該カウンタ５０が書込み動作の終了後にセンスアンプ４６を介してループ回数記憶領域５０１にループ回数の情報を格納するように構成されている。
【００３６】
尚、カウンタ５０は制御信号発生回路４０ではなく、コントローラ部に含まれていても良い。
【００３７】
書込みデータは、外部Ｉ／Ｏ線を介して本実施形態によるメモリ装置の外部からコントローラ部に入力される。読出しデータは、外部Ｉ／Ｏ線を介してメモリセルＭＣのデータをメモリ装置の外部へ出力される。
【００３８】
図２は、メモリセルアレイ１の部分的な構成例を示す図である。メモリセルアレイ１は、マトリクス状に二次元配列された複数のメモリセルＭＣによって構成されている。ワード線ＷＬおよびビット線ＢＬがほぼ直行して延伸している。メモリセルＭＣは、ワード線ＷＬとビット線ＢＬとの交点に対応して設けられている。メモリセルＭＣは、電荷を蓄積可能なフローティングゲートＦＧおよびワード線ＷＬに接続されたコントロールゲートＣＧを有するＦＥＴ（Field Effect Transistor）である。
【００３９】
複数のメモリセルＭＣは、直列に接続されてセルストリングＣＳを構成している。セルストリングＣＳは、メモリセルＭＣのドレイン側において選択トランジスタＳＴＤを介してビット線ＢＬに接続されている。セルストリングＣＳは、メモリセルＭＣのソース側において選択トランジスタＳＴＳを介してソースに接続されている。セルストリングＣＳ内のメモリセルＭＣのコントロールゲートＣＧは、それぞれ異なるワード線ＷＬに接続されている。
【００４０】
ワード線ＷＬの延伸方向に配列された複数のセルストリングＣＳがメモリセルブロックＢＬＫを構成する。メモリセルブロックＢＬＫは、上述の通り、データ消去動作の単位である。さらに、メモリセルブロックＢＬＫにおいて、或るワード線ＷＬに接続された複数のメモリセルＭＣがページを構成する。ページは、上述の通り、データ書込み動作およびデータ読出し動作の単位である。
【００４１】
尚、図２に示すように、選択トランジスタＳＴＤは、信号ＳＧＤによって制御され、選択トランジスタＳＴＳは、信号ＳＧＳによって制御される。
【００４２】
以上のように、本実施形態によるコントローラ部は、２種類の誤り訂正符号化回路ＥＣＣｗ１、ＥＣＣｗ２および２種類の誤り訂正復号化回路ＥＣＣｒ１、ＥＣＣｒ２、および、動作コントローラ５０６を備えている。
【００４３】
誤り訂正回路ＥＣＣｗ１、ＥＣＣｗ２、ＥＣＣｒ１、ＥＣＣｒ２は、巡回ハミング符号（復号）回路、または、ＢＣＨ（Bose-Chaudhutu-Hocquenghem）符号（復号）回路でもよい。さらに、誤り訂正回路ＥＣＣｗ１、ＥＣＣｗ２、ＥＣＣｒ１、ＥＣＣｒ２は、符号語をrビットでまとめ２ｒ個の元を持つバイト符号（復号）回路でもよい。この場合、例えば、リードソロモン符号（復号）回路でもよい。
【００４４】
勿論、誤り訂正回路ＥＣＣｗ１、ＥＣＣｗ２、ＥＣＣｒ１、ＥＣＣｒ２として他の符号（復号）回路を用いてもよい。例えば、ＢＣＨ符号（復号）、多数決符号（復号）、差集合巡回符号（復号）、ＬＤＰＣ  (Low Density Parity Check) 符号（復号）を用いたＥＣＣ回路でもよく、それらのいずれかを組み合わせたＥＣＣ回路でもよい。尚、コントローラ部の構成の簡素化を考慮すると、誤り訂正回路ＥＣＣｗ１、ＥＣＣｗ２、ＥＣＣｒ１、ＥＣＣｒ２は、小さい回路規模で時系列に情報ビットを符号化（復号化）する巡回符号回路であることが好ましい。
【００４５】
図３（Ａ）および図３（Ｂ）は、第１および第２の誤り訂正回路の両方を用いた誤り訂正処理を示す概念図である。尚、便宜的に、第１の誤り訂正回路ＥＣＣｒ１、ＥＣＣｗ１の訂正符号をＣＡとし、第２の誤り訂正回路ＥＣＣｒ２、ＥＣＣｗ２の訂正符号をＣＢとする。訂正符号ＣＡの符号長はｎ１、訂正符号ＣＡの情報ビット数はｋ１である。訂正符号ＣＢの符号長はｎ２、訂正符号ＣＢの情報ビット数はｋ２である。訂正符号ＣＡおよびＣＢはともに線形組織符号である。
【００４６】
第１の誤り訂正回路ＥＣＣｒ１（またはＥＣＣｗ１）、および、第２の誤り訂正回路ＥＣＣｒ２（またはＥＣＣｗ２）の両方を用いて誤り訂正を実行する場合、訂正符号ＣＡおよびＣＢの積符号(product code)、または、連接符号（concatenated code）を形成することができる。
【００４７】
以下、説明を簡単にするために、積符号について述べるが、連接符号についても同様のことが言える。訂正符号ＣＡおよびＣＢの積符号ＣＡ×ＣＢでは、図３（Ａ）に示すように、線形組織符号により、符号長がｎ１×ｎ２、情報ビット数がｋ１×ｋ２となる。ここで、積符号ＣＡ×ＣＢの最小距離は、訂正符号ＣＡの最小距離と訂正符号ＣＢの最小距離の積になる。一般に、訂正符号ｔビットの符号間距離は（２ｔ＋１）ビット以上となるので、積符号ＣＡ×ＣＢの符号間距離は、訂正符号ＣＡまたはＣＢの各符号間距離よりも大きくなる。これは、第１の誤り訂正回路ＥＣＣｒ１（またはＥＣＣｗ１）、および、第２の誤り訂正回路ＥＣＣｒ２（またはＥＣＣｗ２）の両方を用いた誤り訂正能力は、それらのいずれか一方を用いた誤り訂正能力よりも高いことを意味する。より詳細には、訂正符号ＣＡの最小符号間距離をｄＡとし、訂正符号ＣＢの最小符号間距離をｄＢとして、既知のレディ・ロビンソン復号法を用いれば、(ｄＡ×ｄＢ−１)／２個の誤りをすべて訂正することができる。
【００４８】
例えば、第１の誤り訂正回路は、図３（Ａ）に示す（ｋ１×ｋ２）個の情報データ６０１を、ｋ１ビットの単位で区切ったｋ２個の情報データに配列する。第１の誤り訂正回路は、ｋ１ビットの情報データのそれぞれに対して、訂正符号ＣＡで符号化を行う。つまり、ｋ１ビットの情報データに訂正符号ＣＡを付加する。これによって、ｎ１の符号長を有する第１の符号化データ（６０１、６０３）がｋ２個形成される。このとき、訂正符号ＣＡの全体のビット数（１回目の符号化の検査データのビット数）は、図３（Ａ）の６０３の面積に該当する、 （ｎ１−ｋ１）×ｋ２ビットとなる。
【００４９】
次に、第２の誤り訂正回路が、第１の符号化データ（ｎ１×ｋ２ビットのデータ）をｋ２ビットの単位で区切って符号化を行う。このとき、第２の誤り訂正回路は、ｋ２ビット単位で区切られた第１の符号化データそれぞれに対して、訂正符号ＣＢで符号化を行う。つまり、ｋ２ビットの第１の符号化データに訂正符号ＣＢを付加して、第２の符号化データを得る。訂正符号ＣＢの全体のビット数（２回目の符号化の検査データのビット数）は、図３（Ａ）の６０２の面積に該当する、（ｎ２−ｋ２）×ｎ１ビットとなる。これにより、全体として（ｎ１×ｎ２）ビットの情報データの積符号を形成することができる。
【００５０】
なお、第２の符号を時系列で記録する際には、図３（Ｂ）に示すように一次元的に並べて記録すればよい。この際、例えば、図３（Ｂ）に示すように、ｎ１ビットからなるｋ２個の第１の符号化データを、図３（Ａ）の各列に対応するように時系列で並べ、その後、（ｎ２−ｋ２）×ｎ１からなる２回目の訂正符号ＣＢを出力すればよい。
【００５１】
図４は、第１の実施形態によるメモリ装置のデータ書込み動作を示すフロー図である。まず、ループ回数記憶領域５０１は、以前の書込み動作におけるループ回数を各ページごとに記憶している。データ書込み動作が開始すると、動作コントローラ５０６は、内部Ｉ／Ｏ線を介してループ回数記憶領域５０１から書込み対象である選択ページのループ回数を獲得する（Ｓ１０）。このとき、読み出されるループ回数は、以前に実行された書込み動作においてカウントされ、ループ回数記憶領域５０１に格納されたループ回数である。ループ回数は、読出し動作を遅延させないために選択ページのデータと同時に読み出される。
【００５２】
動作コントローラ５０６は、ループ回数が所定値以上か否かを判定する（Ｓ２０Ａ）。ループ回数が所定値以上である場合（Ｓ２０ＡのＹＥＳ）、Ｗ／Ｅ回数は少なく、書込み後のエラービットが少ないと推定できるので、動作コントローラ５０６は、図１の第２の誤り訂正符号化回路ＥＣＣｗ２を停止（不活性化）し、第１の誤り訂正符号化回路ＥＣＣｗ１のみを選択的に動作（活性化）させる（Ｓ３０）。これにより、過剰な誤り訂正能力を省き、消費電力を低減させることができる。また、符号化に要する時間を短縮し、高速な書込み動作を実現できる。
【００５３】
次に、符号化されたデータを選択ページのメモリセルに書き込む（Ｓ４５Ａ）。この際、ループ回数記憶領域５０１に、ループ回数を各ページに対応させて書き込む。この書込み動作時に、カウンタ５０は、今回の書込み動作における書込みループ回数をカウントする（Ｓ５０）。そして、今回の書込み動作のループ回数は、ループ回数記憶領域５０１の選択ページのループ回数として格納される。即ち、以前のループ回数の情報は、今回の書込み動作のループ回数で更新される（Ｓ６０）。その後、動作コントローラ５０６は、ループ回数が所定値以上か否かを判定する（Ｓ２０Ｂ）。ループ回数が所定値以上である場合（Ｓ２０ＢのＹＥＳ）、Ｗ／Ｅ回数は少なく、書込み後のエラービットが少ないと推定できるので、データ書き込み動作を終了させる。この時点において、ステップＳ３０で図１の第２の誤り訂正符号化回路ＥＣＣｗ２を停止（不活性化）し、第１の誤り訂正符号化回路ＥＣＣｗ１のみを選択的に動作（活性化）させている。その結果、そのままデータ書き込み動作を終了させても消費電力は増加しない。ループ回数が所定値未満である場合（Ｓ２０ＢのＮＯ）、Ｗ／Ｅ回数は多く、書込み後のエラービットが多いと推定できるので、動作コントローラ５０６は、第１および第２の誤り訂正符号化回路ＥＣＣｗ１およびＥＣＣｗ２の両方を動作（活性化）させる（Ｓ４０）。すなわち、ループ回数が所定値未満である場合（Ｓ２０ＡのＮＯ）の場合と同じ動作を行う。Ｓ４０以降の動作は、ループ回数が所定値未満である場合（Ｓ２０ＡのＮＯ）の場合に詳説する。
【００５４】
ループ回数が所定値未満である場合（Ｓ２０ＡのＮＯ）、Ｗ／Ｅ回数が多く、書込み後のエラービットが多いと推定できるので、動作コントローラ５０６は、第１および第２の誤り訂正符号化回路ＥＣＣｗ１およびＥＣＣｗ２の両方を動作（活性化）させる（Ｓ４０）。これにより、図３を参照して説明した積符号等の高い誤り訂正能力でデータを符号化することができる。その後、メモリ部は、ステップＳ３０またはＳ４０において符号化されたデータを選択ページのメモリセルＭＣへ書き込む（Ｓ４５Ｂ）。この際、ループ回数記憶領域５０１に、ループ回数を各ページに対応させて書き込む。すなわち、センスアンプ４６にラッチされたデータを第１および第２の誤り訂正符号化回路ＥＣＣｗ１およびＥＣＣｗ２で符号化した後、再度センスアンプ４６にラッチさせメモリセルアレイ１に書き込む。その際、同時にループ回数記憶領域５０１にカウンタ５０に記憶された値を書き込む。ここで、ループ回数記憶領域５０１に記憶されるループ回数の情報は、更新されたループ回数が用いられる。ステップＳ２０Ａ及びＳ２０Ｂで所定値以下となった値である。この値を記憶することによりデータを正確に復号化することができる。
【００５５】
ループ回数の判定に用いられる上記所定値は、メモリの種類、構造、製造ライン等によって異なり得るので、一概に特定することはできない。例えば、ＮＡＮＤ型フラッシュメモリでは、ループ回数の判定に用いられる上記所定値は、５回から５０回の間の数値でよい。
【００５６】
図５は、第１の実施形態によるメモリ装置のデータ読出し動作を示すフロー図である。まず、ループ回数記憶領域５０１は、以前の書込み動作におけるループ回数を各ページごとに記憶している。データ読出し動作が開始すると、動作コントローラ５０６は、内部Ｉ／Ｏ線を介して選択ページのデータを読み出すのと同時に、ループ回数記憶領域５０１から読出し対象である選択ページの以前のループ回数を獲得する（Ｓ１１０）。
【００５７】
動作コントローラ５０６は、ループ回数が所定値以上か否かを判定する（Ｓ１２０）。ループ回数が所定値以上である場合（Ｓ１２０のＹＥＳ）、Ｗ／Ｅ回数は少なく、かつ読出しデータにエラービットが少ないと推定できるので、動作コントローラ５０６は、図１の第２の誤り訂正復号化回路ＥＣＣｒ２を停止（不活性化）し、第１の誤り訂正復号化回路ＥＣＣｒ１のみを選択的に動作（活性化）させる（Ｓ１３０）。これにより、過剰な誤り訂正能力を省き、消費電力を低減させることができる。また、復号化に要する時間を短縮し、高速な読出し動作を実現できる。
【００５８】
ループ回数が所定値未満である場合（Ｓ１２０のＮＯ）、Ｗ／Ｅ回数が多く、かつ読出しデータにエラービットが多いと推定できるので、動作コントローラ５０６は、第１および第２の誤り訂正復号化回路ＥＣＣｒ１およびＥＣＣｒ２の両方を動作（活性化）させる（Ｓ１４０）。これにより、図３を参照して説明した積符号等の高い誤り訂正能力でデータを符号化することができる。その後、コントローラ部は、メモリ部から得た選択ページの読出しデータをステップＳ１３０またはＳ１４０において復号化し（Ｓ１５０）、復号化されたデータを外部Ｉ／Ｏ線を介してメモリ装置の外部へ出力する（Ｓ１６０）。
【００５９】
尚、ループ回数記憶領域５０１は、書込み動作が実行されるまで選択ページのループ回数をそのまま保持する。従って、書込み動作が実行されるまで、同じループ回数が用いられる。
【００６０】
本実施形態によるメモリ装置は、書込みループ回数の多いページのデータを比較的低い誤り訂正能力で符号化または復号化し、書込みループ回数の少ないページのデータを比較的高い誤り訂正能力で符号化または復号化する。これにより、Ｗ／Ｅ回数またはファイルビット数に適した誤り訂正能力を用いてデータを符号化または復号化することができる。これは、過剰な誤り訂正能力の削減、並びに、消費電力の低減につながる。また、これは、読出し動作および書込み動作の高速化につながる。これにより、本実施形態は、消費電力削減と信頼性向上とを両立させることができる。
【００６１】
通常、Ｗ／Ｅ回数は、消去単位であるメモリセルブロックごと、あるいは、メモリチップごとに管理される。従って、Ｗ／Ｅ回数に応じて誤り訂正能力を変更する場合、メモリ装置は、少なくともメモリセルブロック単位で誤り訂正能力を変更する必要がある。
【００６２】
これに対し、書込み動作はページごとに実行されるので、書込みループ回数は、各ページごとに記憶し管理することができる。従って、本実施形態は、メモリセルブロックよりも小さなページ単位で誤り訂正能力を変更することができる。即ち、本実施形態は、Ｗ／Ｅ回数で管理する方式よりもより細かいメモリ単位で誤り訂正能力を設定することができる。その結果、本実施形態は、消費電力削減および信頼性向上をより一層向上させることができる。
【００６３】
本実施形態は、積符号だけでなく、連接符号も同様に用いることができる。例えば、第１の誤り訂正符号ＣＡとして、２３元のリードソロモン符号を用い、さらに、第２の誤り訂正符号ＣＢとして２元のＢＣＨ符号を用いてもよい。即ち、ＥＣＣの方式が線形符号であれば、本実施形態の効果は失われない。
【００６４】
本実施形態では、ループ回数記憶領域５０１は、メモリセルアレイ１内に設けられていた。しかし、ループ回数記憶領域５０１は、メモリ部の他の場所に設けられていてもよく、あるいは、図１の破線で示すように、コントローラ部内に設けられていてもよい。カウンタ５０もまた、制御信号発生回路４０以外の場所に設けられていてもよい。
【００６５】
また、第１及び第２の誤り訂正復号化回路ＥＣＣｒ１，ＥＣＣｒ２や第１及び第２の誤り訂正符号化回路ＥＣＣｗ１，ＥＣＣｗ２がメモリ部に配置されていても良く、外部Ｉ／Ｏ線から先に接続されるホスト部に配置されていても良い。
【００６６】
また、ループ回数記憶領域５０１にはカウンタ５０の値でなく、第１及び第２の誤り訂正符号化回路ＥＣＣｗ１，ＥＣＣｗ２のいずれか一方を動作させた場合を、“０”、第１及び第２の誤り訂正符号化回路ＥＣＣｗ１，ＥＣＣｗ２の両方を動作させた場合を“１”とする２値データを記憶しても良い。その結果、ループ回数記憶領域５０１に記憶したデータの信頼性を高くすることができる。さらに、メモリセルの信頼性が劣化した場合を、メモリセルに電荷を蓄積させない“１”データにすることにより、さらに信頼性を高くすることができる。
【００６７】
（第２の実施形態）
図６は、第２の実施形態によるメモリ装置の構成例を示すブロック図である。第２の実施形態では、書込みループ回数に代えて、フェイルビット数を用いて誤り訂正能力を変更する。第２の実施形態によるメモリ装置の構成は、第１の実施形態によるメモリ装置の構成と同様でよい。ただし、第２の実施形態では、図１のカウンタ５０は不要であり、ループ回数記憶領域５０１に代えて、フェイルビット数を格納するフェイルビット数記憶領域５０２を有する。
【００６８】
フェイルビットは、或るページに書き込んだデータと該ページから読み出したデータとにおいて論理が異なるビットである。フェイルビット数は、読出し時に冗長ビットを復元することによって判明する。従って、ループ回数記憶領域５０１に格納されるフェイルビット数は、読出し時に更新され、書込み時には更新されない。
【００６９】
図７は、第２の実施形態によるメモリ装置のデータ書込み動作を示すフロー図である。まず、フェイルビット数記憶領域５０２は、以前の読出し動作におけるフェイルビット数を各ページごとに記憶している。データ書込み動作が開始すると、動作コントローラ５０６は、内部Ｉ／Ｏ線を介してフェイルビット数記憶領域５０２から書込み対象である選択ページのフェイルビット数を獲得する（Ｓ２１０）。このとき、選択ページのデータも同時に読み出してもよい。
【００７０】
動作コントローラ５０６は、フェイルビット数が所定値以上か否かを判定する（Ｓ２２０）。フェイルビット数が所定値未満である場合（Ｓ２２０のＮＯ）、書込み後のエラービットが少ないと推定できるので、動作コントローラ５０６は、図１の第２の誤り訂正符号化回路ＥＣＣｗ２を停止（不活性化）し、第１の誤り訂正符号化回路ＥＣＣｗ１のみを選択的に動作（活性化）させる（Ｓ２３０）。これにより、過剰な誤り訂正能力を省き、消費電力を低減させることができる。また、符号化に要する時間を短縮し、高速な書込み動作を実現できる。
【００７１】
フェイルビット数が所定値以上である場合（Ｓ２２０のＹＥＳ）、書込み後のエラービットが多いと推定できるので、動作コントローラ５０６は、第１および第２の誤り訂正符号化回路ＥＣＣｗ１およびＥＣＣｗ２の両方を動作（活性化）させる（Ｓ２４０）。これにより、図３を参照して説明した積符号等の高い誤り訂正能力でデータを符号化することができる。その後、メモリ部は、ステップＳ２３０またはＳ２４０において符号化されたデータを選択ページのメモリセルＭＣへ書き込む（Ｓ２４５）。この際、フェイルビット数記憶領域５０２に、フェイルビット数を各ページに対応させて書き込む。
【００７２】
フェイルビット数の判定（Ｓ２２０）に用いられる上記所定値は、メモリ装置の種類、構造、製造ライン等によって異なり得るので、一概に特定することはできない。例えば、ＮＡＮＤ型フラッシュメモリでは、フェイルビット数の判定に用いられる上記所定値は、１個から１００個の間の数値でよい。
【００７３】
図８は、第２の実施形態によるメモリ装置のデータ読出し動作を示すフロー図である。まず、フェイルビット数記憶領域５０２は、以前の読出し動作におけるフェイルビット数を各ページごとに記憶している。データ読出し動作が開始すると、動作コントローラ５０６は、内部Ｉ／Ｏ線を介して選択ページのデータを読み出すのと同時に、フェイルビット数記憶領域５０２から読出し対象である選択ページの以前のフェイルビット数を獲得する（Ｓ３１０）。
【００７４】
動作コントローラ５０６は、フェイルビット数が所定値以上か否かを判定する（Ｓ３２０）。フェイルビット数が所定値未満である場合（Ｓ３２０のＮＯ）、今回の読出しデータもエラービットが少ないと推定できるので、動作コントローラ５０６は、図１の第２の誤り訂正復号化回路ＥＣＣｒ２を停止（不活性化）し、第１の誤り訂正復号化回路ＥＣＣｒ１のみを選択的に動作（活性化）させる（Ｓ３３０）。これにより、過剰な誤り訂正能力を省き、消費電力を低減させることができる。また、復号化に要する時間を短縮し、高速な読出し動作を実現できる。
【００７５】
フェイルビット数が所定値以上である場合（Ｓ３２０のＹＥＳ）、今回の読出しデータにもエラービットが多いと推定できるので、動作コントローラ５０６は、第１および第２の誤り訂正復号化回路ＥＣＣｒ１およびＥＣＣｒ２の両方を動作（活性化）させる（Ｓ３４０）。これにより、図３を参照して説明した積符号等の高い誤り訂正能力でデータを復号化することができる。その後、コントローラ部は、メモリ部から得た選択ページの読出しデータをステップＳ３３０またはＳ３４０において復号化し（Ｓ３５０）、復号化されたデータを外部Ｉ／Ｏ線を介してメモリ装置の外部へ出力する（Ｓ３６０）。
【００７６】
ステップＳ３５０における復号化において今回の読出しデータにおけるフェイルビット数が判明する。そして今回の読出しデータのフェイルビット数は、フェイルビット数記憶領域５０２の選択ページに対応して格納される。即ち、以前のフェイルビット数の情報は、今回の読出し動作でのフェイルビット数によって更新される（Ｓ３７０）。次の読出し動作時には、更新されたフェイルビット数が用いられる。
【００７７】
第２の実施形態は、フェイルビット数に適した誤り訂正能力を用いてデータを符号化または復号化することができる。従って、第２の実施形態は、メモリ装置の実際の状態にさらに適合した誤り訂正能力を用いることができる。さらに、第２の実施形態は、第１の実施形態と同様の効果を得ることができる。
【００７８】
（第２の実施形態の変形例）
図９は、第２の実施形態の変形例の構成例を示すブロック図である。第２の実施形態の変形例では、第２の実施形態に比べてフェイルビット数記憶領域５０２を省略したものである。一方、第１の実施形態と同様にカウンタ５０は存在する。ここで、ファイルビットのカウントは、或るページに書き込んだデータと該ページから読み出したデータとにおいて論理が異なるビットの数をカウンタ５０にてカウントすることにより判断する。フェイルビット数は、読出し時に冗長ビットを復元することによって判明する。従ってフェイルビット数記憶領域５０２を省略することができ、メモリセルアレイ１の大きさを小さくすることができる。
【００７９】
例えば、図１０に本変形例のデータ書き込み動作を示す。まず、動作コントローラ５０１が検査データのビット数に基づいて、第１の誤り訂正復号化回路ＥＣＣｒ１、または、第２の誤り訂正復号化回路ＥＣＣｒ２のいずれかを用いて復号するか、あるいは、第１及び第２の誤り訂正復号化回路ＥＣＣｒ１、ＥＣＣｒ２を用いて復号するか決定する（Ｓ２１１）。
【００８０】
その後、訂正復号化回路ＥＣＣｒが検査データを演算し、カウンタ５０で検査データと記憶データが異なるビット数（論理値が異なるビット数）をカウントする（Ｓ２１２）。以降の動作は第２の実施形態と同じであるため説明を省略する。
【００８１】
この変形例は、例えば、ページコピーなど、データを読み出した後、あるページから読み出したデータを別のページに書き写す場合などに有効である。すなわち、フェイルビット数記憶領域５０２を設けることなく、ＥＣＣの救済不良効率を向上させることができる。
【００８２】
（第１および第２の実施形態の変形例）
上記第１および第２の実施形態では、ページごとに誤り訂正能力を判定する。しかし、メモリ装置は、ブロックごとに誤り訂正能力を判定してもよい。例えば、選択ページの書込みループ回数が所定値未満またはフェイルビット数が所定値以上となった場合、コントローラ部は、その選択ページが含まれるメモリセルブロック全体について、図３で示した高い誤り訂正能力を用いてよい。
【００８３】
代替的に、メモリセルブロック内の全ページの書込みループ回数の平均値が所定値未満またはメモリセルブロック内の全ページのフェイルビット数の平均値が所定値以上となった場合、コントローラ部は、そのメモリセルブロック全体について、図３で示した高い誤り訂正能力を用いてよい。
【００８４】
この場合、メモリ装置は、メモリセルブロックごとに誤り訂正能力を変更するものの、メモリの状態に適した誤り訂正能力を有し、無駄な消費電力を従来よりも低減させることは可能である。
【符号の説明】
【００８５】
１・・・メモリセルアレイ、２・・・ＷＬドライバ、３・・・ロウデコーダ、４６・・・センスアンプ、４７・・・アドレスバッファ、４８・・・カラムデコーダ、５０１・・・ループ回数記憶領域、５０２・・・フェイルビット数記憶領域、４０・・・制御信号発生回路、５０・・・カウンタ、ＥＣＣｗ１・・・第１の誤り訂正符号化回路、ＥＣＣｗ２・・・第２の誤り訂正符号化回路、ＥＣＣｒ１・・・第１の誤り訂正復号化回路、ＥＣＣｒ２・・・第２の誤り訂正復号化回路、５０６・・・動作コントローラ
【図１】
2012123880.tif 000003
【図２】
2012123880.tif 000004
【図３】
2012123880.tif 000005
【図４】
2012123880.tif 000006
【図５】
2012123880.tif 000007
【図６】
2012123880.tif 000008
【図７】
2012123880.tif 000009
【図８】
2012123880.tif 000010
【図９】
2012123880.tif 000011
【図１０】
2012123880.tif 000012