(57)【要約】【課題】多値記憶における不揮発性半導体記憶装置の誤り訂正の効率を高める。【解決手段】閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数であり、フレームデータをＮ個のサブフレームデータに均等に分割するフレーム変換回路と、Ｎ個に分割された各々のサブフレームデータをＮビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路を備えたことを特徴とする不揮発性半導体記憶装置を提供することにより上記課題を解決する。【選択図】図２
2008077810.tif 000002
【特許請求の範囲】
【請求項１】
閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、
前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、
前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数であり、前記フレームデータをＮ個のサブフレームデータに均等に分割するフレーム変換回路と、
前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路と、
を備えたことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記パリティデータは、前記Ｎ個のサブページのうち、隣接する閾値電圧の状態間におけるビットの変化が最も多いサブページより順に、記憶するものであることを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、
前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、
前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数でない場合に、前記フレームデータのうち前記パリティデータの一部を取り除くことによりＮの倍数のビット数とし、前記Ｎの倍数のビット数のデータを均等にＮ個のサブフレームデータに分割するフレーム変換回路と、
前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路と、
を備えたことを特徴とする不揮発性半導体記憶装置。
【請求項４】
閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、
前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、
前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数でない場合に、前記フレームデータに前記データビットの一部を加えることによりＮの倍数のビット数とし、前記Ｎの倍数のビット数のデータを均等にＮ個のサブフレームデータに分割するフレーム変換回路と、
前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路と、
を備えたことを特徴とする不揮発性半導体記憶装置。
【請求項５】
閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させた多値メモリ領域と、閾値電圧の差により１ビットの情報を記憶することが可能なメモリセルを複数配列させた２値メモリ領域からなり、２値メモリ領域に情報を記憶した後、前記２値メモリ領域に記憶されている情報を読み出し、その後、多値メモリ領域に情報を書き込む構成のメモリセルアレイと、
前記２値メモリ領域に情報を書き込む際に、前記メモリセルアレイに書き込まれる一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、
前記多値メモリ領域または２値メモリ領域から読み出した閾値電圧の値より、誤り訂正の処理のための尤度情報を生成する尤度計算回路と、
前記尤度情報に基づき前記読み出しデータのエラーを訂正する誤り訂正回路と、
前記２値メモリ領域に記憶されている情報からなるフレームデータをＮ個のサブフレームデータに分割するフレーム変換回路と、
前記多値メモリ領域において、前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路と、
を備えたことを特徴とする不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関するものであり、特に、一つのメモリセルに複数ビットを記憶することが可能な不揮発性半導体記憶装置に関するものである。
【背景技術】
【０００２】
不揮発性半導体記憶装置の一つとして、ＮＡＮＤセル型フラッシュメモリが知られている。このＮＡＮＤセル型フラッシュメモリは、複数のＮＡＮＤセルユニットから構成されているメモリセルアレイを有している。このＮＡＮＤセルユニットは、直列接続される複数のメモリセルと、その両端に接続される２つの選択トランジスタにより構成されている。メモリセルは消去状態においては、閾値電圧が負となる「１」データを保持しており、データの書き込み時においては、フローティングゲートに電子が注入され、閾値電圧が正となる「０」データに書き換えられる。ＮＡＮＤセル型フラッシュメモリでは、データの書き込み時においては、閾値電圧を低い方から高い方へ移動させることのみ可能であり、逆の移動（閾値電圧の高い方から低い方）は、ブロック単位での消去動作によってのみ行うことができる。
【０００３】
近年メモリ容量の増加を目的として、１つのメモリセルに２ビット以上の情報を記憶するいわゆる多値ＮＡＮＤセル型フラッシュメモリの開発がなされている。しかしながら、一つのメモリセルにおいて複数の閾値電圧を設け多値記憶を行う場合、隣接する閾値電圧の間隔が、多値記憶の値を増やせば増やすほど狭まり、記憶されている情報を誤って読み出したりする確率が増加する。
【０００４】
このため、特許文献１では、複数ビットの多値データについて、１つのメモリセルが破壊された場合であっても誤り訂正を可能とするため、上位ビット群と下位ビット群に分割し、各々について誤り訂正を行う発明が開示されている。
【０００５】
また、特許文献２では、複数ビットの多値データについて、多値データを構成する上位ビット群と下位ビット群との誤り確率の相違に着目して、上位ビット群と下位ビット群に分割し、各々異なる方式の誤り訂正を行う発明が開示されている。
【特許文献１】特許第３１６５１０１号公報
【特許文献２】特開２００５−７８７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、１つのメモリセルに多値情報として複数ビットの情報を記憶する場合であっても、冗長度が少なく、誤り訂正効率の高い不揮発性半導体記憶装置を提供するものである。
【課題を解決するための手段】
【０００７】
本発明の一の態様に係る不揮発性半導体記憶装置は、閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数であり、前記フレームデータをＮ個のサブフレームデータに均等に分割するフレーム変換回路と、前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路を備えたことを特徴とする。
また、本発明の一の態様に係る不揮発性半導体記憶装置は、閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数でない場合に、前記フレームデータのうち前記パリティデータの一部を取り除くことによりＮの倍数のビット数とし、前記Ｎの倍数のビット数のデータを均等にＮ個のサブフレームデータに分割するフレーム変換回路と、前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路を備えたことを特徴とする。
【０００８】
また、本発明の一の態様に係る不揮発性半導体記憶装置は、閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させたメモリセルアレイと、前記メモリセルアレイに記憶される一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、前記データビットとパリティデータとにより構成されるフレームデータのビット数がＮの倍数でない場合に、前記フレームデータに前記データビットの一部を加えることによりＮの倍数のビット数とし、前記Ｎの倍数のビット数のデータを均等にＮ個のサブフレームデータに分割するフレーム変換回路と、前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路を備えたことを特徴とする。
【０００９】
また、本発明の一の態様に係る不揮発性半導体記憶装置は、閾値電圧の差によりＮビット（Ｎ≧２）の情報を記憶することが可能なメモリセルを複数配列させた多値メモリ領域と、閾値電圧の差により１ビットの情報を記憶することが可能なメモリセルを複数配列させた２値メモリ領域からなり、２値メモリ領域に情報を記憶した後、前記２値メモリ領域に記憶されている情報を読み出し、その後、多値メモリ領域に情報を書き込む構成のメモリセルアレイと、前記２値メモリ領域に情報を書き込む際に、前記メモリセルアレイに書き込まれる一定のビット数のデータビットごとに、誤り訂正のためのパリティデータを付加するパリティデータ付加回路と、前記多値メモリ領域または２値メモリ領域から読み出した閾値電圧の値より、誤り訂正の処理のための尤度情報を生成する尤度計算回路と、前記尤度情報に基づき前記読み出しデータのエラーを訂正する誤り訂正回路と、前記２値メモリ領域に記憶されている情報からなるフレームデータをＮ個のサブフレームデータに分割するフレーム変換回路と、前記多値メモリ領域において、前記Ｎ個に分割された各々のサブフレームデータを前記Ｎビットの情報の各々に対応し構成されるＮ個のサブページに各々記憶させるためのプログラム回路を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明では、１つのメモリセルに多値情報として複数ビットの情報を記憶する不揮発性半導体記憶装置であっても、全体的に冗長度を少なくすることができ、誤り訂正効率を高めることができる。
【発明を実施するための最良の形態】
【００１１】
〔本実施の形態における多値記憶〕
本発明の実施の形態における多値記憶について説明する。本発明の実施の形態における多値記憶とは、ＮＡＮＤセル型フラッシュメモリにおいて、１つのメモリセルにおける閾値電圧の値を複数設けることにより行うものである。
【００１２】
例えば、１つのメモリセルに２ビットの情報を記憶する場合には、閾値電圧として４種類の電圧の状態が設けられ、この４種類の値が２ビットの情報により構成される「１１」、「１０」、「０１」、「００」に対応し、データの書き込みや読み出しを行うものである。
【００１３】
図１に、１つのメモリセルに３ビットの情報を記憶する場合における電圧分布の状態図（閾値電圧Ｖｔｈとセル数との関係図）を示す。３ビットの情報を記憶するためには、「１１１」、「１１０」、「１０１」、「１００」、「０１１」、「０１０」、「００１」の状態の情報に対応して８種類の閾値電圧が設けられ、各々の閾値電圧が、この３ビットの情報に対応し、情報の書き込み及び読み出しを行うものである。即ち、閾値電圧の違いにより多値のレベルとして、「Ｌ０」、「Ｌ１」、「Ｌ２」、「Ｌ３」、「Ｌ４」、「Ｌ５」、「Ｌ６」、「Ｌ７」の８段階のレベルが形成されている。各々のレベルに対応して、情報を読み出す際に選択ワード線に印加される電圧（複数ビット読み出し電圧）の電圧値は、Ｒ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５、Ｒ６、Ｒ７であり、情報の書き込み動作の完了を確認するためのベリファイの際の電圧値は、ＶＲ１、ＶＲ２、ＶＲ３、ＶＲ４、ＶＲ５、ＶＲ６、ＶＲ７である。
【００１４】
図１に示すように、多値記憶の値（１つのメモリセルに記憶される情報量、即ち、ビット数）が高くなればなる程、各々の閾値電圧の間隔が狭くなる。多値記憶における情報の書き込み及び読み出しは、閾値電圧に基づき行われるため、このように各々の閾値電圧の間隔が狭まると、データの書き込みや読み出しに誤りが生じやすくなる。
【００１５】
本実施の形態においては、１つのメモリセルにより３ビットの多値記憶を行うものであり、各々の多値メモリセルのビットに対応して３つのサブページが形成される。即ち、サブページ１、サブページ２、サブページ３が形成される。
【００１６】
複数ビットにおいて通常の２進法による昇降を行う場合には、下位ビット（２進法において、桁数の低い桁）になればなる程、「１」→「０」或いは、「０」→「１」へと反転するビットの反転数（ビットの変化）が増加し、最も下位のビットでは一つの昇降を行う度に、ビットが反転する。図１は、できるだけ反転数を減らした配列の構成のものである。
【００１７】
図１に示す場合では、１つのメモリセルにおいて多値の値を最小から最大まで変化させた場合、サブページ１におけるビットの反転数（ビットの変化）は１回であり、サブページ２におけるビットの反転数は２回であり、サブページ３におけるビットの反転数は４回である。サブページにおけるビットの反転数と、誤りの発生確率とは極めて相関性が高いため、誤りの発生確率や誤り訂正による修復率は、サブページごとに異なることとなる。
【００１８】
従って、特許文献２に開示されているように、サブページごとに異なる誤り訂正方式を用い誤り訂正による修復率を均一にする方法では、構成が複雑となり実用的ではない。
【００１９】
〔第１の実施の形態〕
本発明における一実施の形態を以下に記載する。
【００２０】
図２は、本実施の形態における不揮発性半導体記憶装置である３ビット多値記憶ＮＡＮＤセル型フラッシュメモリの構成図である。
【００２１】
本実施の形態における３ビット多値記憶ＮＡＮＤセル型フラッシュメモリは、メモリ部１と、メモリ部１を制御するコントロール部２により構成されている。
【００２２】
メモリ部１は、データ入出力バッファ１６、コマンド入力バッファ１７、アドレスバッファ１８、ロウデコーダ１９、ワード線制御回路２０、カラムデコーダ２１、ビット線制御回路２２、メモリセルアレイ２３により構成されている。尚、プログラム回路２６は、データ入出力バッファ１６、コマンド入力バッファ１７、アドレスバッファ１８、ロウデコーダ１９、ワード線制御回路２０、カラムデコーダ２１、ビット線制御回路２２により構成される。
【００２３】
メモリセルアレイ２３は、データを記憶するメモリセルをマトリックス状に配列させたものである。即ち、メモリセルアレイ２３は、複数のビット線と複数のワード線と共通ソース線を含んでおり、ビット線とワード線の交点に電気的にデータの書き換えが可能なメモリセルがマトリックス状に配列されている。メモリセルには、入力されたデータであるデータと、このデータについて一定のビット数のデータビットごとに付加される誤り訂正のためのパリティデータ（冗長データ）からなるフレームデータが記憶される。
【００２４】
このメモリセルアレイ２３には、ワード線電圧を制御するためのワード線制御回路２０、及びビット線制御回路２２が接続されている。ワード線制御回路２０は、ロウデコーダ１９によりデコードされたアドレス信号に従い、ワード線を選択しワード線電圧を制御する。ロウデコーダ１９には、アドレスバッファ１８を介しコントロール部２より信号が入力する。
【００２５】
ビット線制御回路２２は、ビット線を介してメモリセルアレイ２３のメモリセルにおけるデータに基づく信号を検知・増幅する機能に加え、読み出しデータや書き込みデータを保持するデータラッチ機能を有するセンスアンプ兼データラッチ回路である。
【００２６】
ビット線制御回路２２は、カラムデコーダ２１、データ入出力バッファ１６及びコマンド入出力バッファ１７に接続されている。ビット線制御回路２２は、カラムデコーダ２１によりデコードされたアドレス信号に従い、ビット線を選択する機能を有している。
【００２７】
データ入出力バッファ１６は、ビット線制御回路２２に対する入出力データを一時的に保持する機能を有しており、データ入出力バッファ１６を介し、データがコントロール部２に出力される。また、データ入出力バッファ１６は、メモリセルアレイ２３に書き込まれるデータやメモリセルアレイ２３から読み出されるデータを一時的に保持する機能も有している。
【００２８】
コマンド入出力バッファ１７は、コントロール部２における制御回路１２からメモリ部１に伝達するコマンドを一時的に保持する機能を有している。また、アドレスバッファ１８は、コントロール部２の制御回路１２からのアドレス信号を一時的に保持する機能を有している。
【００２９】
コントロール部２は、入出力端子１１、制御回路１２、ＥＣＣ回路１３、スイッチ１４、フレーム変換回路１５、リードバッファ２４、尤度計算回路２５により構成されている。
【００３０】
入出力端子１１より外部からのデータシーケンスの入出力が行われる。また、制御回路１２は、入出力端子１１からの入力されたデータシーケンスに基づき、情報の書き込み及び読み取りの制御を行う。
【００３１】
ＥＣＣ回路１３は、パリティデータ付加回路２７と誤り訂正回路２８を含み構成されている。パリティデータ付加回路２７は、情報を書き込む際に一定のビット数のデータビットごとにパリティデータを付加する機能を有する回路であり、誤り訂正回路２８は、読み出した情報について誤り訂正を行う回路である。
【００３２】
スイッチ１４は、書き込み条件に応じてフレーム変換回路１５を介するか否かを選択する機能を有している。
【００３３】
フレーム変換回路１５は、多値メモリ領域（ＭＬＣ領域）３２へデータを書き込む際において、入力されたデータをＭＬＣ領域３２に記憶するデータに変換する機能を有している。
【００３４】
本実施の形態では、入力端子１１より入力したデータは、制御回路１２を介し、ＥＣＣ回路１３内のパリティデータ付加回路２７においてパリティデータが付加される。このようにパリティデータの付加されたフレームデータであるＥＣＣフレームを多値メモリ領域３２に記憶させるために、複数のサブフレームデータであるＥＣＣサブフレームに分割する。
【００３５】
具体的には、図３に示すように、パリティデータ付加回路２７において、元のデータであるデータビット１０１にパリティデータ１０２を付加することによりＥＣＣフレーム１０３が形成される。
【００３６】
フレーム変換回路１５では、このＥＣＣフレーム１０３を３つに分割し、ＥＣＣサブフレーム１０４、ＥＣＣサブフレーム１０５、ＥＣＣサブフレーム１０６を形成する。
【００３７】
リードバッファ２４は、データ入出力バッファ１６を介し、メモリ部１より出力されたデータを一時的に保持する機能を有している。
【００３８】
尤度計算回路２５は、リードバッファ２４に一時的に保持されたデータに基づき、多値記憶されたメモリセルのビット数分の尤度を計算する機能を有している。尤度とは、各ビットにおける情報の尤もらしさ表す値であり、尤度計算回路２５では、各ビットにおける情報の尤もらしさ、即ち、各ビットが「１」である確率、或いは「０」である確率が計算される。
【００３９】
尚、本実施の形態において、ＥＣＣ回路１３における誤り訂正回路２８のアルゴリズムとしては、ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）符号等の軟判定復号を行う誤り訂正方式を用いるが、リードソロモン符号等の硬判定符号を行う誤り訂正方式を用いることも可能である。
【００４０】
また、メモリセルアレイ２３は、すべて多値メモリセルで構成することも可能であるが、本実施の形態では、多値情報を記憶することが可能なメモリセルを複数配列させた多値メモリ領域３２と、１ビットの情報を記憶することが可能なメモリセルを複数配列させた２値メモリ領域３１を有している。多値メモリ領域３２は、一つの物理アドレスに複数のページデータを記憶することが可能であり、本実施の形態においては、ＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）領域とも称する。２値メモリ領域３１は、一つの物理アドレスに単一のページデータのみを記憶することが可能であり、本実施の形態においては、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）領域とも称する。
【００４１】
本実施の形態においては、ＭＬＣ領域（多値メモリ領域）３２は、３ビットの情報が記憶可能な８値セルにより構成されており、一つの物理アドレスに３ページ分のデータを記憶することが可能であるが、本発明は、８値に限定されるものではなく、２のべき乗の値となる多値記憶に適用可能である。
【００４２】
図４に基づき、図２に示すメモリセルアレイ２３及びビット線制御回路２２の構成を詳細に説明する。メモリセルアレイ２３はＮＡＮＤセル型メモリセルアレイからなり、複数のＮＡＮＤセルを含んだものにより構成されている。１つのＮＡＮＤセルは、直列接続された例えば１６個のＥＥＰＲＯＭからなるメモリセルＭＣと、その両端に接続される選択ゲートＳ１、Ｓ２とにより構成されている。選択ゲートＳ１はビット線ＢＬ０に接続され、選択ゲートＳ２は共通ソース線ＳＲＣに接続されている。
【００４３】
同一のロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ１、ＷＬ２、ＷＬ３・・・ＷＬ１６に共通接続されている。また、第１の選択ゲートＳ１はセレクト線ＳＧ１に共通接続され、第２の選択ゲートＳ２はセレクト線ＳＧ２に共通接続されている。
【００４４】
メモリセルアレイ２３は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のＮＡＮＤセルにより構成され、このブロック単位でデータが消去される。また、消去動作は、データ記憶回路２２Ａ、フラグ用データ記憶回路２２Ｂに接続されている２本のビット線について同時に行なわれる。
【００４５】
ビット線制御回路２２は、複数のデータ記憶回路２２Ａ及びフラグ用データ記憶回路２２Ｂを有している。各データ記憶回路２２Ａ及びフラグ用データ記憶回路２２Ｂには、一対のビット線（ＢＬ０、ＢＬ１）、（ＢＬ２、ＢＬ３）…（ＢＬｉ、ＢＬｉ＋１）、（ＢＬ、ＢＬ）が接続されている。各データ記憶回路２２Ａは、メモリセルＭＣから読み出されるデータを保持する機能を有すると共に、メモリセルＭＣに書き込まれるデータを保持する機能を有する。後述するように、複数ビットデータ記憶及び複数ビットデータ読み出しを行う際、または、軟値データの生成を行う際、内部データを操作する役割を有する。
【００４６】
また、ビット線ＢＬｉの１つおきに配置され、１つのワード線ＷＬｉに接続された複数のメモリセル（破線で囲まれた範囲のメモリセル）は、１セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。本実施の形態においては、１セクタには３ページ分のデータが記憶される。また、各ワード線ＷＬには、フラグデータＦＬＡＧを記憶するためのフラグセルＦＣが接続されている。
【００４７】
リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路２２Ａに接続されている２本のビット線（ＢＬｉ、ＢＬｉ＋１）のうち外部より指定されたアドレス信号（ＹＡ１、ＹＡ２…ＹＡｉ、ＹＡｆｌａｇ）に応じて１本のビット線が選択される。さらに、外部アドレスに応じて、１本のワード線が選択され、１セクタ（３ページ分）が選択される。この３ページの切り替えはアドレスによって行われる。
【００４８】
図５及び図６は、メモリセルＭＣ、ならびに選択ゲートＳ１及びＳ２の断面構造を示している。図５はメモリセルＭＣの断面構造を示している。基板４１にはメモリセルＭＣを構成するＭＯＳＦＥＴのソース、ドレインとして機能するｎ型拡散層４２が形成されている。また基板４１の上にはゲート絶縁膜４３を介して浮遊ゲート（ＦＧ）４４が形成され、この浮遊ゲート４４の上には絶縁膜４５を介して制御ゲート（ＣＧ）４６が形成されている。
【００４９】
選択ゲートＳ１、Ｓ２は、基板４１と、この基板４１に形成されたソース、ドレインとしてのｎ型拡散層４７を備えている。基板４１の上にはゲート絶縁膜４８を介して制御ゲート４９が形成されている。
【００５０】
図７は、メモリセルアレイの１つのＮＡＮＤセルの断面を示している。この例において、１つのＮＡＮＤセルは、図５に示す構成の１６個のメモリセルＭＣが直列接続されて構成されている。ＮＡＮＤセルのドレイン側、ソース側には、図６に示す構成の第１の選択ゲートＳ１、第２の選択ゲートＳ２が設けられている。
【００５１】
データ記憶回路２２Ａの構成例について図８を参照して説明する。なお、データ記憶回路２２Ｂの構成も略同様である。このデータ記憶回路２２Ａは、プライマリデータキャッシュ（ＰＤＣ）、セコンダリデータキャッシュ（ＳＤＣ）、ダイナミックデータキャッシュ（ＤＤＣ）、テンポラリデータキャッシュ（ＴＤＣ）を有している。
【００５２】
ＳＤＣ、ＰＤＣ、ＤＤＣは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、複数ビットデータを記憶する際に内部データの操作のためのデータ記憶を司る。ＴＤＣは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、複数ビットデータを記憶する際に内部データの操作に用いられる。
【００５３】
ＳＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ａ、６１ｂと、トランジスタ６１ｃ、６１ｄにより構成されている。トランジスタ６１ｃはクロックドインバータ回路６１ａの入力端と、クロックドインバータ回路６１ｂの入力端の間に接続され、そのゲートに信号ＥＱ２を供給されている。
【００５４】
トランジスタ６１ｄはクロックドインバータ回路６１ｂの出力端とアース（接地）間に接続され、そのゲートには信号ＰＲＳＴが供給されている。
【００５５】
また、ＳＤＣのノードＮ２ａ（クロックドインバータ回路６１ａの出力端）は、カラム選択トランジスタ６１ｅを介して入出力データ線ＩＯｎに接続されている。また、ノードＮ２ｂ（クロックドインバータ回路６１ｂの出力端）は、カラム選択トランジスタ６１ｆを介して入出力データ線ＩＯに接続される。これらカラム選択トランジスタ６１ｅ、６１ｆのゲートにはカラム選択信号ＣＳＬｉが供給されている。
【００５６】
ＰＤＣは、ラッチ回路を構成するクロックドインバータ回路６１ｉ、６１ｊと、トランジスタ６１ｋにより構成されている。トランジスタ６１ｋは、クロックドインバータ回路６１ｉの入力端とクロックドインバータ回路６１ｊの入力端の相互間に接続されている。このトランジスタ６１ｋのゲートには信号ＥＱ１が供給されている。このＰＤＣのノードＮ１ａとＳＤＣのノードＮ２ａとは、トランジスタ６１ｇ、６１ｈにより接続されている。トランジスタ６１ｇのゲートには信号ＢＬＣ２が供給され、トランジスタ６１ｈのゲートには信号ＢＬＣ１が供給されている。
【００５７】
また、ＰＤＣのノードＮ１ｂ（クロックドインバータ回路６１ｊの入力端）はトランジスタ６１ｌのゲートに接続されている。このトランジスタ６１ｌの電流通路の一端はトランジスタ６１ｍを介して接地されている。このトランジスタ６１ｍのゲートには信号ＣＨＫ１が供給されている。また、トランジスタ６１ｌの電流通路の他端はトランスファーゲートを構成するトランジスタ６１ｎ、６１ｏの電流通路の一端に接続されている。このトランジスタ６１ｎのゲートには信号ＣＨＫ２ｎが供給されている。また、トランジスタ６１ｏのゲートはトランジスタ６１ｇと６１ｈの接続ノードＮ３に接続されている。
【００５８】
トランジスタ６１ｎ、６１ｏの電流通路の他端には、信号ＣＯＭｉが供給されている。この信号ＣＯＭｉは全データ記憶回路２２Ａに共通の信号であり、全データ記憶回路２２Ａのベリファイが完了したかどうかを示す信号である。すなわち、後述するように、ベリファイが完了すると、ＰＤＣのノードＮ１ｂが”Ｌ”となる。この状態において、信号ＣＨＫ１、ＣＨＫ２ｎを”Ｈ”とすると、ベリファイが完了している場合、信号ＣＯＭｉが”Ｈ”となる。
【００５９】
ＴＤＣは、例えば電荷保持用ＭＯＳキャパシタ６１ｐとブースト用ＭＯＳキャパシタ６１ｐｂにより構成されている。このＭＯＳキャパシタ６１ｐは、前記トランジスタ６１ｇ、６１ｈの接続ノードＮ３と接地間に接続されている。また、接続ノードＮ３には、トランジスタ６１ｑＡ、６１ｑＢを介してＤＤＣが接続されている。トランジスタ６１ｑＡ、６１ｑＢのゲートには、それぞれ信号ＲＥＧＡ、ＲＥＧＢが供給されている。また、ＭＯＳキャパシタ６１ｐｂは、一端をノードＮ３に接続され、他端はブースト電圧ＢＯＯＳＴを与えられる。
【００６０】
ＤＤＣは、トランジスタ６１ｒＡ、６１ｓＡ、６１ｒＢ、６１ｓＢにより構成されている。トランジスタ６１ｒＡ及び６１ｓＡにより１つのデータキャッシュＤＤＣＡが構成され、トランジスタ６１ｒＢ及び６１ｓＢによりもう１つのデータキャッシュが構成されている。
【００６１】
トランジスタ６１ｒＡ、６１ｒＢの電流通路の一端には信号ＶＰＲＥが供給され、他端はそれぞれトランジスタ６１ｑＡ、６１ｑＢの電流通路に接続されている。このトランジスタ６１ｒＡ、６１ｒＢのゲートはそれぞれトランジスタ６１ｓＡ、６１ｓＢを介してＰＤＣのノードＮ１ａに接続されている。このトランジスタ６１ｓＡ、６１ｓＢのゲートにはそれぞれ信号ＤＴＧＡ、ＤＴＧＢが供給されている。さらに、接続ノードＮ３にはトランジスタ６１ｔ、６１ｕの電流通路の一端が接続されている。トランジスタ６１ｕの電流通路の他端には信号ＶＰＲＥが供給され、ゲートには信号ＢＬＰＲＥが供給されている。
【００６２】
トランジスタ６１ｔのゲートには信号ＢＬＣＬＡＮＰが供給されている。このトランジスタ６１ｔの電流通路の他端はトランジスタ６１ｖを介してビット線ＢＬｉに接続され、またトランジスタ６１ｗを介してビット線ＢＬｉ＋１に接続されている。
【００６３】
ビット線ＢＬｉの他端はトランジスタ６１ｘの電流通路の一端に接続されている。このトランジスタ６１ｘのゲートには信号ＢＩＡＳｏが供給されている。ビット線ＢＬｉ＋１の他端はトランジスタ６１ｙの電流通路の一端に接続されている。このトランジスタ６１ｙのゲートには信号ＢｌＡＳｅが供給されている。これらトランジスタ６１ｘ、６１ｙの電流通路の他端には、信号ＢＬＣＲＬが供給されている。トランジスタ６１ｘ、６１ｙは、信号ＢＩＡＳｏ、ＢＩＡＳｅに応じてトランジスタ６１ｖ、６１ｗと相補的にオンとされ、非選択のビット線に所定のバイアスＢＬＣＲＬを供給して、非選択ビット線を選択ビット線のシールド線とする。
〔書き込み方法〕
次に、本実施の形態における不揮発性半導体記憶装置のデータの書き込み方法について説明する。データの書き込みは、ＭＬＣ領域３２への書き込み（ＭＬＣライト）とＳＬＣ領域３１への書き込み（ＳＬＣライト）の２つの書き込みモードを有している。
【００６４】
本実施の形態における書き込みの手順の概要は、外部より入出力端子１１を介して入力されるデータは、最初にＳＬＣ領域３１に書き込まれる。そして、ＳＬＣ領域３１にＭＬＣ領域３２を書き込むのに十分なデータ、即ち、本実施の形態では、ＭＬＣ領域３２において１ページとなる３ページ以上のデータが蓄えられた後、ＳＬＣ領域３１からデータが読み出され、ＭＬＣ領域３２の多値メモリセルに書き込まれる。このＭＬＣライトは外部からの制御命令により行い、３ページのサブページを一つの単位として行われる。
【００６５】
図２に基づき書き込み方法をより詳細に説明する。ＳＬＣライトの場合においては、入出力端子１１が外部からデータシーケンスを受け取り、制御回路１２に伝達する。データシーケンスには、制御回路１２への命令、書き込みアドレス及び書き込む１ページ分のビットデータにより構成されている。制御回路１２において、データシーケンスに基づき書き込みコマンド、書き込みアドレス、書き込みデータを生成し、それぞれコマンド入出力バッファ１７、アドレスバッファ１８、ＥＣＣ回路１３に出力する。書き込みデータは、ＥＣＣ回路１３のパリティデータ付加回路２７において、一定のビット数のデータビットごとに対応して、誤り訂正のためのパリティデータが生成され付加される。この一定のビット数のデータビットと誤り訂正のためのパリティデータによりフレームデータ（ＥＣＣフレーム）が形成される。この後、このフレームデータは、スイッチ１４を介して、データ入出力バッファ１６へ伝達され、ビット線制御回路２２を介し、メモリセルアレイ２３における書き込みアドレスに対応するＳＬＣ領域３１のメモリセルにデータが書き込まれる。
【００６６】
尚、コマンド入出力バッファ１７に伝達された書き込みコマンドは、ワード線制御回路２０及びビット線制御回路２２に伝達され、アドレスバッファ１８に伝達された書き込みアドレスは、ロウデコーダ１９を介しワード線制御回路２０に伝達されるとともに、カラムデコーダ２１を介しビット線制御回路２２に伝達され、メモリセルアレイ２３におけるＳＬＣ領域３１のメモリセルにデータを書き込むための制御を行う。
【００６７】
次に、ＭＬＣライトについて説明する。入出力端子１１よりＭＬＣライト命令を外部より入力した後、制御回路１２に伝達する。ＭＬＣライト命令は、ＭＬＣ領域３２へデータを書き込むために読み出されるＳＬＣ領域３１のアドレスと、データの書き込まれるＭＬＣ領域３２のアドレスにより構成されている。制御回路１２に伝達されたＭＬＣライト命令は、コマンド入出力バッファ１７、ビット線制御回路２２を介し、メモリセルアレイ２３へと伝達される。メモリセルアレイ２３においては、受け取ったＭＬＣライト命令により、メモリセルアレイ２３のＳＬＣ領域３１より３ページ分のデータを読み出す。読み出されたデータは、ビット線制御回路２２を介し、データ入出力バッファ１６へと伝達される。データ入出力バッファ１６に伝達されたデータは、リードバッファ２４、尤度計算回路２５を介し、ＥＣＣ回路１３に伝達される。ＥＣＣ回路１３においては、誤り訂正回路２８により、伝達されたデータについて誤り訂正処理がおこなわれる。この後、データは、スイッチ１４を介し、フレーム変換回路１５に伝達される。
【００６８】
フレーム変換回路１５では、一定のビット数のデータビットとパリティデータにより構成される１つのフレームデータ（ＥＣＣフレーム）が、３つのサブフレームデータに分割される。尚、このときのＥＣＣフレームのビット数は、３の倍数である。
【００６９】
具体的には、前述の図３の説明のように、元のデータビットのデータ１０１とパリティデータ１０２によりフレームデータであるＥＣＣフレーム１０３が構成されているが、フレーム変換回路１５において、ＥＣＣサブフレーム１０４、ＥＣＣサブフレーム１０５、ＥＣＣサブフレーム１０６の３つのサブフレームデータに均等に分割される。従って、サブフレームデータは、全てデータビットのデータにより構成される２つのサブフレームデータであるＥＣＣサブフレーム１０４、ＥＣＣサブフレーム１０５と、先の２つのサブフレームデータに含むことのできなかったデータビットのデータの一部とパリティデータに構成されるサブフレームデータであるＥＣＣフレーム１０６とに分割される。
【００７０】
このように分割されたサブフレームデータは、図９に示すようにＭＬＣ領域３２におけるページ構成に配置される。本実施の形態におけるＥＣＣページデータは、１つのサブページがｋ個のＥＣＣフレームにより構成された３つのサブページにより構成されている。これは、ＭＬＣ領域３２における多値メモリが１つのメモリセルにより３ビット記憶することが可能であるため、多値メモリの各々のビットに対応し、サブページが構成されるからである。具体的には、図９に示すように、フレームデータＡ、フレームデータＢ、フレームデータＣが各々ｋ個集まり、ＭＬＣ領域３２におけるＥＣＣページデータとなる。従って、ＥＣＣページデータは、フレームデータＡ１〜Ａｋ、フレームデータＢ１〜Ｂｋ、フレームデータＣ１〜Ｃｋにより構成される。
【００７１】
図３に示すように分割されたサブフレームデータは、図９に示すように、多値メモリセルにおいて、一つのメモリセルにおけるデータ全てが、同一のフレームデータにより占められるように配置される。例えば、フレームデータＡ１を３分割したデータＡ１（３）からなるサブフレームデータは、多値メモリセルにおいて、最もビット反転の少ないサブページであるページ１に配置され、データＡ１（２）からなるサブフレームデータは、その次にビット反転の少ないサブページであるサブページ２に配置され、データＡ１（１）とパリティＡ１からなるサブフレームデータは、最もビット反転の多いサブページであるサブページ３に配置される。このように、パリティデータを含むサブフレームデータを最もビット反転の多いサブページに配置するのは、元のデータであるデータビットにおける誤りの発生をできるだけ抑えるためである。即ち、パリティデータを含むサブフレームデータを最もビット反転の多いサブページに配置させることにより、元のデータビットにおいて生じる誤りをできるだけ抑えるためである。
【００７２】
この後、更に、フレーム変換回路１５において、フレームデータＢ１は３分割されて、データＢ１（１）からなるサブフレームデータ、データＢ１（２）からなるサブフレームデータ、データＢ１（３）とパリティＢ１からなるサブフレームデータを形成する。また、フレームデータＣ１は３分割されて、データＣ１（１）からなるサブフレームデータ、データＣ１（２）からなるサブフレームデータ、データＣ１（３）とパリティＣ１からなるサブフレームデータを形成する。
【００７３】
このように分割されたサブフレームデータは、図９に示すように、多値メモリセルにおいて、フレームデータＡ１が記憶された次のメモリセル群においては、多値記憶により各々のサブフレームに、データＢ１（３）からなるサブフレームデータ、データＢ１（２）からなるサブフレームデータ、データＢ１（１）とパリティＢ１からなるサブフレームデータが記憶される。その次のメモリセル群には、多値記憶により各々のサブフレームに、データＣ１（３）からなるサブフレームデータ、データＣ１（２）からなるサブフレームデータ、データＣ１（１）とパリティＣ１からなるサブフレームデータが記憶される。このようにして、最後には多値記憶により各々のサブフレームに、データＣｋ（３）からなるサブフレームデータ、データＣｋ（２）からなるサブフレームデータ、データＣｋ（１）とパリティＣｋからなるサブフレームデータが記憶され、一つのＥＣＣページデータの記憶が終了する。
【００７４】
このように、フレームデータを分割したサブフレームデータを縦列的に配置することにより、このようにサブフレームごとの誤り発生率が異なる場合であっても、元のフレームデータにおいて生じる誤りの発生の確率を平均化することができるのである。
【００７５】
一方、図１０に示すように、フレームデータであるＥＣＣフレームをサブフレームデータに分割することなく、ＭＬＣ領域３２に配列させる場合では、通常、多値メモリセルにより構成されるサブページごとに、ＥＣＣフレームが配置される。各々のサブページは多値メモリセルの３ビットの値により各々構成されているため、図１において説明したように、サブページ１、サブページ２、サブページ３において、誤りの発生する確率が異なっている。
【００７６】
具体的には、図１０に示すように、サブページ１にデータＣ１とパリティＣ１データからなるサブフレームデータを配置し、サブページ２にデータＢ１とパリティＢ１データからなるサブフレームデータを配置し、サブページ３にデータＡ１とパリティＡ１データからなるサブフレームデータを配置した場合、多値メモリセルにおける反転回数がサブページごとに異なるため、誤りの発生は均一ではない。即ち、多値メモリセルにおける各々のビットの反転回数が異なるため、各々のビットに対応した各々のサブページの誤りの発生確率は異なる。よって、サブページ３における誤りの発生確率が高く、サブページ１における誤りの発生確率が低い場合には、サブページ１に配置されたデータは誤りが生じ難く、サブページ３に配置されたデータは誤りが生じ易くなる。これを解消するためには、パリティデータのビット数について、サブページ３を基準に定める方法や（パリティデータを全体的に増加する）、サブページごとに異なる誤り訂正を行う方法が必要となる。
【００７７】
しかしながら、本実施の形態では、多値メモリセルにおけるサブページごとの誤り発生確率が異なる場合であっても、パリティデータを増やすことなく、又、サブページごとに異なる誤り訂正回路を設ける必要もなく、各々のフレームデータの誤り発生確率を均一にすることができるのである。
【００７８】
このように、フレーム変換回路１５により形成されたＭＬＣ領域３２に書き込まれるデータは、データ入出力バッファ１６を介し、ビット線制御回路２２に伝達される。この後、ワード線制御回路２０とビット線制御回路２２の制御により、メモリセルアレイ２３におけるＭＬＣ領域３２に記憶される。
【００７９】
尚、本実施の形態では、ＭＬＣ領域３２とＳＬＣ領域３１の２種類の不揮発性メモリを用いているが、ＳＬＣ領域３１の代わりに、別途ＦｅＲＡＭ（強誘電体メモリ）やＭＲＡＭ（磁気メモリ）等の高速かつ信頼性の高い不揮発性メモリを用いることも可能である。
【００８０】
〔読み出し方法〕
データの読み出しは、読み出しシーケンスが入出力端子１１を介し入力することにより行われる。入出力端子１１より入力した読み出しシーケンスは、制御回路１２に伝達される。制御回路１２では、読み出しシーケンスより、読み出しコマンド及び読み出しアドレスを生成し、読み出しコマンドはコマンド入出力バッファ１７に伝達され、読み出しアドレスは、アドレスバッファ１８に伝達される。コマンド入出力バッファ１７及びアドレスバッファ１８より、ワード線制御回路２０及びビット線制御回路２２による制御により、メモリセルアレイ２３における読み出しアドレスが指定するアドレスのメモリセルからデータが読み出され、ビット線制御回路２２に伝達される。ビット線制御回路２２に伝達された読み出されたデータは、データ入出力バッファ１６を介し、リードバッファ２４に伝達される。リードバッファ２４に伝達され蓄積された閾値レベルによるデータは、メモリセル単位で尤度計算回路２５に伝達され、各々のサブページの尤度値が計算される。この後、ＥＣＣフレーム分の尤度値が順次ＥＣＣ回路１３に伝達され、誤り訂正回路２８において所定の誤り訂正がなされた後、制御回路１２に伝達され、入出力端子１１を介し外部へと出力される。
【００８１】
尚、尤度計算回路２５では、各サブページにおける尤度値がメモリセルごとに計算される。本実施の形態では、ＥＣＣフレームを３つのＥＣＣサブフレームに分割し、分割したＥＣＣサブフレームを同一のメモリセルにより構成される各々サブページに配置しているため、ＥＣＣフレームが書き込まれるメモリセルの数を少なくすることができ、尤度計算回路２５において、ＥＣＣフレームの尤度計算を効率的に行うことができる。
【００８２】
次に、ＥＣＣ回路１３におけるＥＣＣアルゴリズムについて説明する。本実施の形態において、ＥＣＣにおけるアルゴリズムとして、イレギュラーＬＤＰＣ符号を用いる場合では、列重みの高い列に対応するビットを誤り率の低いサブページに、列重みの低い列に対応するビットを誤り率の高いサブページに配置させることが好ましい。
【００８３】
図１１にイレギュラーＬＤＰＣ符号における検査行列を示す。行列内の「１」の数を重みとし、図１１に示す検査行列のように各ビットの重みが均一でない検査行列で定義されるＬＤＰＣ符号をイレギュラーＬＤＰＣ符号という。
【００８４】
この検査行列の行数（縦列）はパリティビット数に対応し、列数（横列）はＥＣＣフレームビット数に対応する。図１１に示す検査行列により定義されるＥＣＣフレーム長は９ビットであり、このうちパリティビットが５ビットの場合である。
【００８５】
本実施の形態においては、イレギュラーＬＤＰＣ符号における検査行列の重みは、検査行列の列の一端より単純減少、或いは単純増加するものである。従って、検査行列におけるビットＤ１、Ｄ２、Ｄ３は、列重みが４であり、ビットＤ４、Ｄ５は列重みが３であり、ビットＤ６、Ｄ７、Ｄ８は列重みが２であり、ビットＤ９は列重みが１である。
【００８６】
４ビットのデータビットは、大きな重みのビットＤ１、Ｄ２、Ｄ３、Ｄ４に配列し、５ビットのパリティデータは、小さな重みのビットＤ５、Ｄ６、Ｄ７、Ｄ８、Ｄ９に配列する。列重みの大きなビットの誤りの発生を低くすることにより、列重みの大きな重みのビットに配列されたデータビットの誤りの発生を低く抑えることができる。即ち、図１において説明したビット反転数の少ないサブページにデータビットを配置することにより、データビットの情報を確かなものとすることができるのである。
【００８７】
具体的に検査行列により定義される９ビットのＥＣＣフレームをＭＬＣライトする場合について、図１１に示すＭＬＣページデータに配置する場合、ビットＤ１、Ｄ２、Ｄ３は誤り率の低いサブページ１に、ビットＤ４、Ｄ５、Ｄ６は次に誤り率の低いサブページ２に、ビットＤ７、Ｄ８、Ｄ９は誤り率の高いサブページ３に配置することにより、ＥＣＣフレームの訂正能力を高め、メモリセルから読み出したデータの誤りを低減させることが可能となる。尚、上記では、データビットのデータが４ビット、パリティデータが５ビットの場合であるが、パリティビットが、一つのサブページに収まらないため、次に誤り率の高いサブページにパリティデータの一部が配置されることとなる。即ち、パリティデータが、複数のサブページに記憶する必要がある場合には、ビット反転回数の多い順に、最もビットの反転回数（ビットの変化）の多いサブページより、記憶されることとなる。
【００８８】
〔第２の実施の形態〕
第２の実施の形態は、フレーム変換回路１５において形成されたサブフレームデータのＥＣＣページデータへの配置が異なるものである。
【００８９】
具体的には、分割されたサブフレームデータは、図１２に示すようにＭＬＣ領域３２におけるページ構成に配置される。本実施の形態におけるＥＣＣページデータは、１つのサブページがｋ個のＥＣＣフレームにより構成された３つのサブページにより構成されている。これは、ＭＬＣ領域３２における多値メモリが１つのメモリセルにより３ビット記憶することが可能であるため、多値メモリの各々のビットに対応し、サブページが構成される。具体的には、図１２に示すように、ＥＣＣフレームであるフレームデータＡ、フレームデータＢ、フレームデータＣが各々ｋ個集まり、ＭＬＣ領域３２におけるＥＣＣページデータとなる。従って、ＥＣＣページデータは、フレームデータＡ１〜Ａｋ、フレームデータＢ１〜Ｂｋ、フレームデータＣ１〜Ｃｋにより構成される。
【００９０】
フレームデータＡ１は３分割されて、データＡ１（１）からなるサブフレームデータ、データＡ１（２）からなるサブフレームデータ、データＡ１（３）とパリティＡ１からなるサブフレームデータが形成される。また、フレームデータＢ１は３分割されて、データＢ１（１）からなるサブフレームデータ、データＢ１（２）からなるサブフレームデータ、データＢ１（３）とパリティＢ１からなるサブフレームデータが形成される。また、フレームデータＣ１は３分割されて、データＣ１（１）からなるサブフレームデータ、データＣ１（２）からなるサブフレームデータ、データＣ１（３）とパリティＣ１からなるサブフレームデータが形成される。同様に他のフレームデータに関しても、３分割することによりサブフレームデータを形成する。
【００９１】
このように分割されたサブフレームデータは、図１２に示されるように、１つの多値メモリセルにおいて、異なるフレームデータが記憶されるように配置される。即ち、最初のメモリセル群には、多値記憶により各々のサブフレームに、データＡ１（３）からなるサブフレームデータ、データＢ１（２）からなるサブフレームデータ、データＣ１（１）とパリティＣ１からなるサブフレームデータが記憶される。その次のメモリセル群には、多値記憶により各々のサブフレームに、データＣ１（３）からなるサブフレームデータ、データＡ１（２）からなるサブフレームデータ、データＢ１（１）とパリティＢ１からなるサブフレームデータが記憶される。その次のメモリセル群には、多値記憶により各々のサブフレームに、データＢ１（３）からなるサブフレームデータ、データＣ１（２）からなるサブフレームデータ、データＡ１（１）とパリティＡ１からなるサブフレームデータが記憶される。このようにして順次配列し、最後には多値記憶により各々のサブフレームに、データＢｋ（３）からなるサブフレームデータ、データＣｋ（２）からなるサブフレームデータ、データＡｋ（１）とパリティＡｋからなるサブフレームデータが記憶され、一つのＥＣＣページデータの記憶が終了する。
【００９２】
尚、第１の実施の形態と同様に、メモリセルにおいて多値記憶におけるビット反転数が最も少ないビットによりサブページ１が構成され、サブページ２は、その次に少ないビットにより構成され、サブページ３は、最も多いビットにより構成されている。よって、第１の実施の形態と同様にパリティデータはすべてサブページ３に記憶されている。
【００９３】
このようにＥＣＣページデータを配列させることにより、同じフレームデータ内のビットがすべて異なるメモリセルに記憶されることとなるため、１つのメモリセルが全体的に破壊された場合であっても、誤り訂正によりデータが復元され易くなる。
【００９４】
〔第３の実施の形態〕
第３の実施の形態は、フレーム変換回路１５において形成されたサブフレームデータのＥＣＣページデータへの配置が異なるものである。
【００９５】
具体的には、分割されたサブフレームデータは、図１３に示すようにＭＬＣ領域３２におけるページ構成に配置される。本実施の形態におけるＥＣＣページデータは、１つのサブページがｋ個のＥＣＣフレームにより構成された３つのサブページにより構成されている。これは、ＭＬＣ領域３２における多値メモリが１つのメモリセルにより３ビット記憶することが可能であるため、多値メモリの各々のビットに対応し、サブページが構成される。具体的には、図１３に示すように、ＥＣＣフレームであるフレームデータＡ、フレームデータＢ、フレームデータＣが各々ｋ個集まり、ＭＬＣ領域３２におけるＥＣＣページデータとなる。従って、ＥＣＣページデータは、フレームデータＡ１〜Ａｋ、フレームデータＢ１〜Ｂｋ、フレームデータＣ１〜Ｃｋにより構成される。
【００９６】
フレームデータＡ１、Ａ２、Ａ３等を３分割し、サブフレームデータを形成する手法については、第２の実施の形態と同様である。
【００９７】
このように分割されたサブフレームデータは、図１３に示すように、１つの多値メモリセルにおいて、異なるフレームデータが記憶されるように配置される。即ち、最初のメモリセル群には、多値記憶により各々のサブページに、データＡ１（３）からなるサブフレームデータ、データＡ２（２）からなるサブフレームデータ、データＡ３（１）とパリティＡ３からなるサブフレームデータが記憶される。その次のメモリセル群には、多値記憶により各々のサブページに、データＡ３（３）からなるサブフレームデータ、データＡ１（２）からなるサブフレームデータ、データＡ２（１）とパリティＡ２からなるサブフレームデータが記憶される。その次のメモリセル群には、多値記憶により各々のサブページに、データＡ２（３）からなるサブフレームデータ、データＡ３（２）からなるサブフレームデータ、データＡ１（１）とパリティＡ１からなるサブフレームデータが記憶される。このようにして順次配列し、最後には多値記憶により、データＣｋ−２（３）からなるサブフレームデータ、データＣｋ−１（２）からなるサブフレームデータ、データＣｋ（１）とパリティＣｋからなるサブフレームデータが記憶され、一つのＥＣＣページデータの記憶が終了する。
【００９８】
尚、第１の実施の形態と同様に、メモリセルにおいて多値記憶におけるビット反転数が最も少ないビットによりサブページ１が構成され、サブページ２は、その次に少ないビットにより構成され、サブページ３は、最も多いビットにより構成されている。よって、第１の実施の形態と同様にパリティデータはすべてサブページ３に記憶されている。
【００９９】
本実施の形態においても第２の実施の形態と同様に、このようにＥＣＣページデータを配列させることにより、同じフレームデータ内のビットがすべて異なるメモリセルに記憶されることとなるため、１つのメモリセルが全体的に破壊された場合であっても、誤り訂正によりデータが復元され易くなる。
【０１００】
〔第４の実施の形態〕
第４の実施の形態は、データビットとパリティデータからなるＥＣＣフレームのビット数が、多値記憶を行うメモリセルの多値のビット数の倍数でない場合である。即ち、Ｎビットの多値記憶を行うメモリセルにおいて、ＥＣＣフレームのビット数がＮの倍数ではない場合である。具体的には、図１４に示すように多値記憶として１つのメモリセルに３ビットの記憶する場合であって、ＥＣＣフレームのビット数が１３ビットである場合である。この場合、フレーム変換回路１５において、ＥＣＣフレームのビット数である１３を多値のビット数である３で割った余りのビットを消失ビットとして処理することにより、４ビットのサブフレームデータであるサブフレーム８０２ａ、８０２ｂ、８０２ｃを形成し、メモリセルに記憶させるものである。これにより、多値記憶を高いメモリセル効率で行うことが可能となる。
【０１０１】
〔第５の実施の形態〕
第５の実施の形態は、第４の実施の形態と同様に、ＥＣＣフレームのビット数が、多値記憶を行うメモリセルの多値のビット数の倍数でない場合である。即ち、Ｎビットの多値記憶を行うメモリセルにおいて、ＥＣＣフレームのビット数がＮの倍数ではない場合である。具体的には、図１５に示すように多値記憶として１つのメモリセルに３ビットの記憶する場合であって、ＥＣＣフレームのビット数が１３ビットである場合である。この場合、ＥＣＣフレームのビット数である１３を多値のビット数である３で割った値を切り上げてサブフレームのビット数とするものである。
【０１０２】
これにより、フレーム変換回路１５において５ビットのサブフレームデータであるサブフレーム９０２ａ、９０２ｂ、９０２ｃを形成し、メモリセルに記憶させるものである。これにより記憶する領域が２ビット分余るが、この領域には元のデータビットのデータの一部を記憶させる。即ち、９０２ａにおけるデータの一部を９０２ｃの領域にも記憶するのである。これにより、より一層誤り訂正による救済率を向上させることができる。
【０１０３】
なお、本発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要件を変形して具体化できる。また、上記実施の形態に開示されている複数の構成要件の適宜な組み合わせにより。種々の発明が形成可能である。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要件を適宜追加し組み合わせてもよい。
【図面の簡単な説明】
【０１０４】
【図１】ＮＡＮＤセル型フラッシュメモリにおける多値記憶の説明図
【図２】第１の実施の形態における不揮発性半導体装置の構成図
【図３】第１の実施の形態におけるフレーム変換の説明図
【図４】図２に示すメモリセルアレイ２３及びビット線制御回路２２の回路図
【図５】図４におけるメモリセルＭＣの断面図
【図６】図４における選択ゲートＳ１、Ｓ２の断面図
【図７】メモリセルアレイの１つのＮＡＮＤセルを示す断面図
【図８】図５に示すに示すデータ記憶回路２２Ａの一構成例を示す回路図
【図９】第１の実施の形態におけるＥＣＣページデータの構成図
【図１０】第１の実施の形態を説明するためのＥＣＣページデータの構成図
【図１１】イレギュラーＬＤＰＣ符号の説明図
【図１２】第２の実施の形態におけるＥＣＣページデータの構成図
【図１３】第３の実施の形態におけるＥＣＣページデータの構成図
【図１４】第４の実施の形態におけるフレーム変換の説明図
【図１５】第５の実施の形態におけるフレーム変換の説明図
【符号の説明】
【０１０５】
１・・・コントロール部、２・・・メモリ部、１１・・・入出力端子、１２・・・制御回路、１３・・・ＥＣＣ回路、１４・・・スイッチ、１５・・・フレーム変換回路、１６・・・データ入出力バッファ、１７・・・コマンド入力バッファ、１８・・・アドレスバッファ、１９・・・ロウデコーダ、２０・・・ワード線制御回路、２１・・・カラムデコーダ、２２・・・ビット線制御回路、２３・・・メモリセルアレイ、２４・・・リードバッファ、２５・・・尤度計算回路、２６・・・プログラム回路、２７・・・パリティデータ付加回路、２８・・・誤り訂正回路、３１・・・２値メモリ領域（ＳＬＣ領域）、３２・・・多値メモリ領域（ＭＬＣ領域）
【図１】
2008077810.tif 000003
【図２】
2008077810.tif 000004
【図３】
2008077810.tif 000005
【図４】
2008077810.tif 000006
【図５】
2008077810.tif 000007
【図６】
2008077810.tif 000008
【図７】
2008077810.tif 000009
【図８】
2008077810.tif 000010
【図９】
2008077810.tif 000011
【図１０】
2008077810.tif 000012
【図１１】
2008077810.tif 000013
【図１２】
2008077810.tif 000014
【図１３】
2008077810.tif 000015
【図１４】
2008077810.tif 000016
【図１５】
2008077810.tif 000017