(57)【要約】【課題】エラー訂正能力を強化でき、アクセス時間を短縮化でき、また、冗長メモリを不要にあるいは削減することができる半導体記憶装置を提供する。【解決手段】１ページ分のデータを４個の符号語に分割し、各符号語毎に４バイトのパリティデータを生成して付加した主符号語をバンク（Ａ）２０１またはバンク（Ｂ）２０２に転送するデータ入力部２０４と、検査符号が付加された複数の主符号語を含むページデータを複数の系列を含むように２次元的に展開して書き込ませ、記録されたページデータを読み出すコントロール回路２０７と、読み出された４個の主符号語ＭＣＷを含む１ページ分のデータを各主符号語毎に、所定個数以内のエラーデータが存在する場合にエラーデータを訂正し、パリティデータＰＤを含むリードされた主符号語ＭＣＷ毎にエラー情報を付加して訂正状態を表す情報とデータを転送するデータ出力部２０５とを有する。【選択図】      図５
2006031813.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルがマトリクス状に配置され、検査符号が付加された複数の主符号語を含むページデータが複数の系列を含むように多次元的に展開して記録されるセルアレイと、
上記セルアレイから読み出された検査符号が付加された複数の主符号語を含むページデータを受けて、各主符号語毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、検査符号を含む主符号語毎に対応するエラー情報を付加し、訂正状態を表す情報とデータを順次に出力するデータ出力部と
を有する半導体記憶装置。
【請求項２】
上記データ出力部は、
上記読み出しページデータに含まれる検査符号を含む主符号語を順次シフトインして保持可能な複数のシフトレジスタと、
複数に分割された主符号語を含む読み出しページデータを受けて、少なくとも連続する主符号語を異なる上記シフトレジスタに入力させる第１のスイッチ回路と、
上記各シフトレジスタのうち、主符号語が全てシフトインされた主符号語データを選択的に出力する第２のスイッチ回路と、
上記第２のスイッチ回路により出力される主符号語に所定個数以内のエラーデータが存在する場合に当該エラーデータを訂正するエラー訂正回路と、
上記第２のスイッチ回路により選択出力された主符号語に対して上記エラー訂正回路によるエラー情報を付加して出力する付加回路と、を含む
請求項１記載の半導体記憶装置。
【請求項３】
上記データ出力部は、上記複数の系列のシンドロームデータを生成してエラー訂正を行い、エラーデータが存在するにもかかわらずエラー訂正がきなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報を出力する
請求項１記載の半導体記憶装置。
【請求項４】
上記データ出力部は、上記複数の系列のシンドロームデータを生成してエラー訂正を行い、エラーデータが存在するにもかかわらずエラー訂正ができなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報を出力し、エラー訂正ができた場合には訂正したエラーロケーションを出力する
請求項２記載の半導体記憶装置。
【請求項５】
上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する
請求項３記載の半導体記憶装置。
【請求項６】
上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する
請求項４記載の半導体記憶装置。
【請求項７】
上記メモリセルがマトリクス配置されたセルアレイは、複数のメモリセルが直列接続されたＮＡＮＤ型メモリストリングを含み、
セルアレイにおいて、上記ページデータの複数の主符号語がＮＡＮＤストリングのセル配列方向に並列的に展開されている
請求項１記載の半導体記憶装置。
【請求項８】
上記メモリセルがマトリクス配置されたセルアレイは、各々が複数のブロックに分割され、
セルアレイにおいて、上記ページデータの複数の主符号語が上記複数のブロックに並列的に展開されている
請求項１記載の半導体記憶装置。
【請求項９】
各々が上記セルアレイを含む複数のバンクを有し、
上記ページデータの複数の主符号語が上記複数のバンクに並列的に展開されている
請求項１記載の半導体記憶装置。
【請求項１０】
複数のメモリセルがマトリクス状に配置され、複数の主符号語を含むページデータの書き込みが複数のメモリセル単位で行われるセルアレイと、
書き込むべきページデータを受けて複数の符号語に分割し、各符号語毎に検査して検査符号を生成し、対応する符号語に当該検査符号を付加して主符号語を形成するデータ入力部と、
上記検査符号が付加された複数の主符号語を含むページデータを複数の系列を含むように多次元的に展開して書き込ませ、記録されたページデータを読み出すコントロール回路と、
上記セルアレイから読み出された検査符号が付加された複数の主符号語を含むページデータを受けて、各主符号語毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、検査符号を含む主符号語毎に対応するエラー情報を付加し、訂正状態を表す情報とデータを順次に出力するデータ出力部と
を有する半導体記憶装置。
【請求項１１】
上記データ入力部は、
少なくとも上記複数の主符号語を含む書き込むべきページデータをラッチするラッチ回路と、
書き込むべきページデータに含まれる符号語を順次シフトインして保持可能な複数のシフトレジスタと、
複数に分割可能な符号語を含む書き込むべきページデータを受けて、少なくとも連続する符号語を異なる上記シフトレジスタに入力させる第１のスイッチ回路と、
上記各シフトレジスタのうち、符号語が全てシフトインされた符号語データを選択的に出力する第２のスイッチ回路と、
上記第２のスイッチ回路により出力されるように選択された符号語を検査して検査符号を生成する検査符号生成回路と、
上記第２のスイッチ回路により選択出力された符号語に対して上記検査符号を付加して上記主符号語として上記ラッチ回路に出力する付加回路と、を含み、
上記データ出力部は、
上記読み出しページデータに含まれる検査符号を含む主符号語を順次シフトインして保持可能な複数のシフトレジスタと、
複数に分割された符号語を含む読み出しページデータを受けて、少なくとも連続する符号語を異なる上記シフトレジスタに入力させる第１のスイッチ回路と、
上記各シフトレジスタのうち、主符号語が全てシフトインされた符号語データを選択的に出力する第２のスイッチ回路と、
上記第２のスイッチ回路により出力される主符号語に所定個数以内のエラーデータが存在する場合に当該エラーデータを訂正するエラー訂正回路と、
上記第２のスイッチ回路により選択出力された符号語に対して上記エラー訂正回路によるエラー情報を付加して出力する付加回路と、を含む
請求項１０記載の半導体記憶装置。
【請求項１２】
上記データ出力部は、上記複数の系列のシンドロームデータを生成してエラー訂正を行い、エラーデータが存在するにもかかわらずエラー訂正ができなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報を出力し、エラー訂正ができた場合には訂正したエラーロケーションを出力する
請求項１０記載の半導体記憶装置。
【請求項１３】
上記データ出力部は、上記複数の系列のシンドロームデータを生成してエラー訂正を行い、エラーデータが存在するにもかかわらずエラー訂正ができなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報を出力し、エラー訂正ができた場合には訂正したエラーロケーションを出力する
請求項１１記載の半導体記憶装置。
【請求項１４】
上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する
請求項１２記載の半導体記憶装置。
【請求項１５】
上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する
請求項１３記載の半導体記憶装置。
【請求項１６】
上記メモリセルがマトリクス配置されたセルアレイは、複数のメモリセルが直列接続されたＮＡＮＤ型メモリストリングを含み、
セルアレイにおいて、上記ページデータの複数の主符号語がＮＡＮＤストリングのセル配列方向に並列的に展開されている
請求項１０記載の半導体記憶装置。
【請求項１７】
上記メモリセルがマトリクス配置されたセルアレイは、各々が複数のブロックに分割され、
セルアレイにおいて、上記ページデータの複数の主符号語が上記複数のブロックに並列的に展開されている
請求項１０記載の半導体記憶装置。
【請求項１８】
各々が上記セルアレイを含む複数のバンクを有し、
上記ページデータの複数の主符号語が上記複数のバンクに並列的に展開されている
請求項１０記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばメモリストリングが選択用スイッチを介してビット線およびソース線に接続されるＮＡＮＤ型フラッシュメモリ等の半導体記憶装置に係り、特に、半導体記憶装置のエラー訂正処理技術に関するものである。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリでは、複数個のメモリトランジスタを直列に接続してメモリストリングを構成し、２個のメモリストリングで１個のビットコンタクトおよびソース線を共有することにより、高集積化が実現されている。
【０００３】
一般的なＮＡＮＤ型フラッシュメモリにおいて、消去動作は、たとえば選択されたメモリストリングが接続された全ワード線に０Ｖ、非選択のメモリストリングが接続された全ワード線をフローティングとして、メモリアレイの基板に高電圧（２０Ｖ）を印加する。  その結果、選択メモリストリングのメモリトランジスタのみフローティングゲートから基板に電子が引き抜かれる。その結果、メモリトランジスタのしきい値電圧は負方向にシフトして、たとえば−３Ｖになる。
【０００４】
また、データの書き込み動作は、選択するワード線に接続されたメモリトランジスタ一括に、数百〜数千バイトのいわゆるページ単位で行われる。
具体的には、たとえば選択するワード線に高電圧（たとえば１８Ｖ）を、書き込むべき（０データ）メモリトランジスタが接続されたビット線に０Ｖ、書き込みを禁止すべき（１データ）メモリトランジスタが接続されたビット線にハイレベル（たとえば３．３Ｖ）を印加する。
その結果、書き込むべき選択メモリトランジスタのみ、フローティングゲート中に電子が注入されて、選択メモリトランジスタのしきい値電圧は正方向にシフトして、たとえば２Ｖ程度になる。
【０００５】
このようなＮＡＮＤ型フラッシュメモリにおいては、データの書き込みおよび消去ともＦＮ(Fowler Nordheim) トンネル電流により行うため、動作電流をチップ内昇圧回路から供給することが比較的容易であり、単一電源で動作させやすいという利点がある。
さらに、ページ単位で、つまり選択するワード線に接続されたメモリトランジスタ一括にデータの書き込みが行われるため、ＮＯＲ型フラッシュメモリに比較して書き込み速度の点で優位である。
【０００６】
ところで、上述したＮＡＮＤ型フラッシュメモリ等のようなワード線セクタを単位としたページ書き込みを行う不揮発性半導体記憶装置においては、データの書き込みは選択ワード線に接続されたすべてのメモリセル一括にデータ書き込みを行う。
しかし、選択ワード線に接続された各メモリセルは、製造プロセスに起因するサイズ等のバラツキのため、それぞれ書き込み速度に差が生じる。
具体的には、ＮＡＮＤ型フラッシュメモリ等のようなワード線セクタを単位としたページ書き込みを行う不揮発性半導体記憶装置においては、メモリセル間で書き込み必要時間に分布が生じる。
【０００７】
このような書き込み速度のバラツキを考慮して、一般的なＮＡＮＤ型フラッシュメモリ等においては、書き込み時のしきい値電圧Ｖｔｈの分布を狭く抑える観点から、書き込み動作がベリファイ動作を介して行われ、かつこの書き込み／ベリファイ動作を書き込み終了メモリセルから順次書き込み禁止にしてすべてのメモリセルの書き込みが終了するまで繰り返し行う、いわゆるビット毎ベリファイ動作が行われる。
ところが、一般的なメモリセルの場合、プログラム必要時間はｔ０であるが、プロセス等のバラツキ要因から非常に長いプログラム必要時間たとえばｔ１（＞ｔ０）以上を要するメモリセルがごくまれに存在する場合がある。
このような場合、ごくまれに存在する書き込みの遅いメモリセルのために、上述した書き込み／ベリファイ動作の回数も、たとえば１００回以上と多くの回数を設定している。
【０００８】
また、ＮＡＮＤ型フラッシュメモリにおけるデータの読み出しは、ランダムアクセスされたページ単位で、メモリセルに格納されたデータをセンスアンプを通して確定させてデータレジスタに格納し、その後、ページデータを１あるいは２バイト単位ずつ、シリアルに外部転送することにより行われる。
具体的には、たとえば選択されたワード線に０Ｖを、非選択の全ワード線に４Ｖ程度の電圧を印加する。
ＮＡＮＤ型フラッシュメモリの場合、複数のメモリセルが直列に接続されていることから、ＮＯＲ型フラッシュメモリに比較して、メモリセルの読み出し電流が少ないため、メモリセルに格納されたデータをセンスアンプを通して確定させる、いわゆるランダムアクセス時間が長い。
【０００９】
また、ＮＡＮＤ型フラッシュメモリ等の不揮発性半導体記憶装置のエラー訂正においては、冗長のメモリエリアを持ち、製品の出荷前に不良個所を見つけ、この冗長メモリと物理的に置換している。
また、エラー訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）として、ハミングコードやＢＣＨコードを使ったビット単位のエラー訂正が主流である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところが、一般的なＮＡＮＤ型フラッシュメモリ等のようなワード線セクタを単位としたページ書き込みを行う不揮発性半導体記憶装置において、従来のＥＣＣではビット単位のＥＣＣを行っており訂正能力が弱いため、上述したように、ごくまれに存在する書き込みの遅いメモリセルのために、上述した書き込み／ベリファイ動作の回数も、たとえば１００回以上と多くの回数を設定して、完全に書き込みが終了するまで繰り返す必要があり、結果的に書き込み時間が長くなってしまう場合がある。
【００１１】
また、従来のＥＣＣではビット単位のＥＣＣを行っており訂正能力が弱いため、正規のメモリアレイの他に、冗長メモリアレイを形成することが必須である。すなわち、ＬＳＩ製造時の歩留まりを改善するために冗長のメモリを付加し、測定を行い、不良のメモリを冗長のメモリと置換するといった煩雑な処理が必要である。また、冗長メモリの分だけメモリ自体のサイズが大型化し、また、冗長メモリを形成する分、プロセス工程数が多くなり、ひいてはコスト高を招くという不利益がある。
【００１２】
従来のエラー訂正回路では、データの重要性に対してＥＣＣのストラテジーを変えることができない。
【００１３】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、エラー訂正能力を強化でき、書き込み時間または／および読み出し時間を短縮化でき、また、冗長メモリを不要にあるいは削減することができ、ひいては、小型化を図れ、コスト低減を図ることが可能な半導体記憶装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の第１の観点の半導体記憶装置は、複数のメモリセルがマトリクス状に配置され、検査符号が付加された複数の主符号語を含むページデータが複数の系列を含むように多次元的に展開して記録されるセルアレイと、上記セルアレイから読み出された検査符号が付加された複数の主符号語を含むページデータを受けて、各主符号語毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、検査符号を含む主符号語毎に対応するエラー情報を付加し、訂正状態を表す情報とデータを順次に出力するデータ出力部とを有する。
【００１５】
本発明の第２の観点の半導体記憶装置は、複数のメモリセルがマトリクス状に配置され、複数の主符号語を含むページデータの書き込みが複数のメモリセル単位で行われるセルアレイと、書き込むべきページデータを受けて複数の符号語に分割し、各符号語毎に検査して検査符号を生成し、対応する符号語に当該検査符号を付加して主符号語を形成するデータ入力部と、上記検査符号が付加された複数の主符号語を含むページデータを複数の系列を含むように多次元的に展開して書き込ませ、記録されたページデータを読み出すコントロール回路と、上記セルアレイから読み出された検査符号が付加された複数の主符号語を含むページデータを受けて、各主符号語毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、検査符号を含む主符号語毎に対応するエラー情報を付加し、訂正状態を表す情報とデータを順次に出力するデータ出力部とを有する。
【００１６】
好適には、上記データ入力部は、少なくとも上記複数の主符号語を含む書き込むべきページデータをラッチするラッチ回路と、書き込むべきページデータに含まれる符号語を順次シフトインして保持可能な複数のシフトレジスタと、複数に分割可能な符号語を含む書き込むべきページデータを受けて、少なくとも連続する符号語を異なる上記シフトレジスタに入力させる第１のスイッチ回路と、上記各シフトレジスタのうち、符号語が全てシフトインされた符号語データを選択的に出力する第２のスイッチ回路と、上記第２のスイッチ回路により出力されるように選択された符号語を検査して検査符号を生成する検査符号生成回路と、上記第２のスイッチ回路により選択出力された符号語に対して上記検査符号を付加して上記主符号語として上記ラッチ回路に出力する付加回路とを含む。
【００１７】
好適には、上記データ出力部は、上記読み出しページデータに含まれる検査符号を含む主符号語を順次シフトインして保持可能な複数のシフトレジスタと、複数に分割された主符号語を含む読み出しページデータを受けて、少なくとも連続する主符号語を異なる上記シフトレジスタに入力させる第１のスイッチ回路と、上記各シフトレジスタのうち、主符号語が全てシフトインされた主符号語データを選択的に出力する第２のスイッチ回路と、上記第２のスイッチ回路により出力される主符号語に所定個数以内のエラーデータが存在する場合に当該エラーデータを訂正するエラー訂正回路と、上記第２のスイッチ回路により選択出力された符号語に対して上記エラー訂正回路によるエラー情報を付加して出力する付加回路とを含む。
【００１８】
好適には、上記データ出力部は、上記複数の系列のシンドロームデータを生成してエラー訂正を行い、エラーデータが存在するにもかかわらずエラー訂正ができなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報を出力し、エラー訂正ができた場合には訂正したエラーロケーションを出力する。
【００１９】
好適には、上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する。
【００２０】
好適には、上記データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいて上記ページデータの多次元的な多重訂正処理を行う処理回路を有する。
【００２１】
好適には、上記メモリセルがマトリクス配置されたセルアレイは、複数のメモリセルが直列接続されたＮＡＮＤ型メモリストリングを含み、セルアレイにおいて、上記ページデータの複数の主符号語がＮＡＮＤストリングのセル配列方向に並列的に展開されている。
【００２２】
好適には、上記メモリセルがマトリクス配置されたセルアレイは、各々が複数のブロックに分割され、セルアレイにおいて、上記ページデータの複数の主符号語が上記複数のブロックに並列的に展開されている。
【００２３】
好適には、各々が上記セルアレイを含む複数のバンクを有し、上記ページデータの複数の主符号語が上記複数のバンクに並列的に展開されている。
【００２４】
本発明によれば、たとえば、外部の上位装置から複数の符号語に分割可能な書き込むべきページデータがデータ入力部に入力される。
データ入力部においては、入力されたページデータを構成する、各符号語毎に検査が行われて検査符号が生成される。そして、生成された検査符号が対応する符号語に検査符号が付加されて主符号語が形成される。
検査符号が付加された複数の主符号語を含むページデータは、コントロール回路により、セルアレイに対して複数の系列を含むようにたとえば２次元的に展開して書き込まれる。
また、たとえばコントロール回路の制御の下、セルアレイから検査符号が付加された複数の主符号語を含むページデータが読み出されてデータ出力部に転送される。
データ出力部においては、ラッチ回路から転送された検査符号が付加された複数の主符号語を含むページデータを受けて、各主符号語毎に、所定個数以内のエラーデータが存在する場合にはエラーデータが訂正される。そして、検査符号を含む主符号語毎に対応するエラー情報が付加され順次に外部の処理回路に出力される。
この場合、データ出力部においては、複数の系列のシンドロームデータを生成してエラー訂正が行われ、エラーデータが存在するにもかかわらずエラー訂正ができなかった場合には、当該シンドロームデータとエラー訂正の状況を示す情報が処理回路に出力される。
処理回路においては、データ出力部からのシンドロームデータとエラー訂正の状況を示す情報に基づいてページデータの多次元的な多重訂正処理が行われる。
【発明の効果】
【００２５】
本発明によれば、読み出し時に訂正状態を表す情報とシンドロームデータを外部に出力することで、外部で多次元的なエラー訂正に拡張でき、さらにエラー訂正能力を強化することができる。
１ページを構成するデータを複数の符号語で構成することで、訂正能力を強力にできる。また、複数の符号語で構成したことで訂正不能に陥った符号語が有っても残りのデータは使うことが可能となる。
そして、一般的な不揮発性半導体記憶のＥＣＣに比べ、リードソロモン符号を使うことで訂正能力が強力になる。
また、シフトレジスタ等を複数持つことで、エラー訂正および検査符号に掛かる時間をデータの入出力の時間に影響させること無く連続に行うことができ、読み出し、書き込みの高速化が可能となる。
また、エラー訂正を強化したことで、ライト−ベリファイの回数を従来に比べ減らすことができ、書き込みに必要な時間を減らすことができる。
さらに、エラー訂正を強化したことで、冗長メモリを不要もしくは小さくでき、置換する作業も不要もしくは減らすことができる。これにより、メモリ自体のサイズを小型化でき、さらにプロセス工程数を減らしコストを低減できる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態を、図面に関連付けて説明する。
【００２７】
図１は、本発明に係る半導体記憶装置を採用した信号処理システムの全体構成を示すブロック図である。
本実施形態においては、半導体記憶装置として、複数のメモリセルを直列に接続したメモリストリングが選択用スイッチを介してビット線およびソース線に接続されるＮＡＮＤ型フラッシュメモリを採用している。
【００２８】
本信号処理システム１は、図１に示すように、第１の半導体記憶装置としてのＮＡＮＤ型フラッシュメモリ２、ホスト装置としてのＣＰＵ３、ブリッジ回路４、および第２の半導体記憶装置としてのたとえばＤＲＡＭ５を有している。
なお、ＣＰＵ３により本発明に係る処理回路が構成される。
【００２９】
本信号処理システム１においては、ホスト側であるＣＰＵ３とＮＡＮＤ型フラッシュメモリ２は、ブリッジ回路４を介して接続されている。
ＣＰＵ３からのフラッシュメモリ２に対する読み出し（以降、リードという場合もある）および書き込み（以降、ライトという場合もある）のアクセス要求は、フラッシュメモリ２に内蔵するコントロール回路が受け付ける。
コントロール回路は、アドレス変換処理（ＣＰＵ３の指定する論理アドレスをフラッシュメモリ上の物理アドレスに変換するマッピング処理。論理・物理アドレス変換処理）等を行う。
また、フラッシュメモリ２は、セルアレイからのリードデータに対するエラー検出・訂正処理、およびセルアレイへのライトデータに対するエラー訂正符号の付加等を行う機能を有する。
【００３０】
この信号処理システム１は、たとえばＮＡＮＤ型フラッシュメモリ２の特性を活かして、ＮＡＮＤ型フラッシュメモリ２は、システムのＯＳプログラムやアプリケーションプログラムの格納、または画像や音声データのストレージとして適用する。
そして、信号処理システム１においては、電源オン時、強制的なリセット時、あるいはシステムリセット時等に、ＮＡＮＤ型フラッシュメモリ２に記憶されているデータを高速、たとえば１ＧＢ／ｓ程度の高速で読み出し、ブリッジ回路４を通してＤＲＡＭ５に高速に転送する。
以後、ＣＰＵ３は、ＤＲＡＭ５をアクセスすることによりシステムを高速に起動させることができ、さらに、画像処理、音声処理、あるいはこれらに伴う表示処理や音声出力処理等の、アプリケーションに応じた各種信号処理を行うことができる。
【００３１】
また、フラッシュメモリ２のセルアレイからのリードデータに対するエラー検出・訂正処理、およびセルアレイへのライトデータに対するエラー訂正符号の付加等を行う機能は、基本的に、リードソロモン（ＲＳ）符号を使った不揮発性用エラー訂正法を採用している。
【００３２】
本実施形態においては、ＮＡＮＤ型フラッシュメモリ２のセルアレイに対してワード線セクタ単位のページデータが一括的に書き込まれる。
本実施形態においては、１ページの書き込みデータを複数の符号語（code word ）に分割し、ＥＣＣ用レジスタを複数持ち、交互にエラー訂正処理することでエラー訂正処理が無かった場合のメモリの書き込み、読み出し速度に影響を与えない高速なエラー訂正を行えるエラー訂正法を採用している。
【００３３】
本実施形態に係るフラッシュメモリ２は、基本的に複数バンクを有し、複数のバンクを並列にアクセスすることで高速データ転送を可能にしている。
そして、複数のバンクを独立して同時にアクセスできるようにしたことで高速書き込み、読み出し可能であり、データ書き込み時に各符号語に検査符号（パリティ：Parity）を付加し、セルアレイに正規のデータと同時並列的に主符号語として記録しておき、データを読み出す時にパリティも正規のデータとともに読み出し、メモリ内部で失われたデータを復元するためのエラー訂正処理を行う機能を有している。
【００３４】
そして、本実施形態においては、記録されるデータの重要性に伴い、ＥＣＣの訂正方法をさらに強化できる構成を採用している。
つまり、後述するように、シンドロームをデータと共に外部に出力することで、外部でＮ次元のエラー訂正を簡単に拡張できるようにしている。
本実施形態においては、２次元かつ最小距離２を仮定し説明する。
これにより、外部のＣＰＵ３でさらに訂正を拡張し行うことができ、また２次元に配置された符号語の訂正を繰り返すことでさらに訂正能力と訂正の信頼性を強化できる。
【００３５】
ここでは、説明をしやすくするためにバンクの個数を２個に仮定して説明する。さらに以下の仮定の下に説明する。
【００３６】
基本的に、５１２バイト＋１６バイトを１ページとする。
１ページは、図２および図３に示すように、１３２バイト（１２８バイトの符号語ＣＷと４バイトのパリティデータ（検査符号ＰＤ））からなる４個の主符号語ＭＣＷで構成する。
そして、符号語はＧＦ（２**８）のリードソロモン符号（Reed Solomon Code ）とし、最小距離５を仮定する。ＧＦはガロア体（Galois Field）を示し、２**８は２の８乗を意味する。この主符号語により、１セクタが構成され、この１セクタは正規データ（１２８バイト）とパリティデータ（４バイト）から構成される。
この場合、パリティの冗長は約３％となる。
ここでは述べないが、最小符号距離は本発明において５を限定するものでは無い。また符合語の長さ１３２バイトも限定するものでは無い。
【００３７】
そして、本実施形態においては、ＥＣＣの拡張機能を有している。
このＥＣＣの２次元的拡張による訂正方法においては、図４に示すように、２次元的に主符号語を構成する。図４の例では、１３２バイト×４の１ページデータが構成される。  まず、データライト時点で１ページに含まれる４個の符号語のうち、一つの符号語を距離２のリードソロモン符号のパリティとして、下記式で表せるデータとパリティをライトする。
このデータとパリティに対して、システムでは、距離５のパリティＰA ，ＰB ，ＰC ，ＰD を付加しメモリにライトする。
そして、このデータをリードしたときに、ＥＣＣ処理が実行される。
この例では、距離５の符号語を仮定していることから、エラーが３バイト以上含まれる場合には、エラー訂正はできない。
そうした場合、エラーのある符号語に対して訂正不能を表すフラグ情報を用いて、４符号語中このフラグが１つあれば、これをエラーロケーションとして以下の方法でエラー訂正することができる。
【００３８】
（数１）  
Ｐn ＝ａn ＋ｂn ＋ｃn 
Ｓn ＝ａn ＋ｂn ＋ｃn ＋Ｐn
【００３９】
たとえば、ｃn にエラーがあったと仮定し、エラーベクタがｅV であったとする。
この場合、訂正不能は、ｃn のみ１本であったとすると、エラーロケーションはｃn となるので、下記式のようになり、ｃn にｅV をガロア体（Galois Field）上において加算することで訂正が完了することになる。
【００４０】
なお、このＥＣＣの２次元的拡張による訂正方法においては、図４に示すように、２次元的に主符号語を構成し、１３２バイト（１２８バイトの符号語ＣＷと４バイトのパリティデータ（検査符号ＰＤ））からなる４個の主符号語ＭＣＷで１ページデータが構成されるが、主符号語ＭＣＷの展開方法としては、たとえば以下の方法を採用することができる。
第１は、同一バンクの同一ブロック内で、ＮＡＮＤストリングのセル配列方向に４個の主符号語を並列的に展開する方法である。
第２は、同一バンクの異なるブロックに一または複数の主符号語を並列的に展開する方法である。
第３は、異なるバンクにそれぞれ４個の主符号語を並列的に展開する方法である。
【００４１】
以下に、本実施形態に係るＮＡＮＤ型フラッシュメモリ２のより具体的な構成および機能を中心に説明する。
【００４２】
図５は、図１のＮＡＮＤ型フラッシュメモリの構成例を示すブロック図である。
また、図６は、図５におけるバンクの具体的な構成例を示すブロック図である。
【００４３】
図５のフラッシュメモリ２は、セルアレイを含む２つのバンク２０１（Ａ），２０２（Ｂ）、マルチプレクサ（ＭＰＸ）／デマルチプレクサ（ＤｅＭＰＸ）２０３、データ入力部２０４、データ出力部２０５、Ｉ／Ｏバッファ２０６、コントロール回路２０７、および昇圧回路２０８を、主構成要素として有している。
【００４４】
また、図６に示すように、バンク（Ａ，Ｂ）２２０（２０１，２０２）は、メモリセルがマトリクス状に配列されたセルアレイ２２１、ロー（行、ページ）デコーダ２２２、ブロックアドレスデコーダ２２３、ワード線デコーダ２２４、セルアレイ２２１のデータ入出力側に配置されたセンスアンプ（Ｓ／Ａ）およびデータレジスタを含むデータラッチ回路（ＤＴ１）２２５、カラムセレクタ（Ｙセレクタ）２２６、およびカラム（列）デコーダ２２７を有している。また、図６においては、アドレスレジスタ２０９を有する。
【００４５】
セルアレイ２２１は、図７に示すように、直列に接続された複数、たとえば１６個のメモリトランジスタＭ０〜Ｍ１５およびその両端に直列に接続された２個の選択トランジスタＳＴ０，ＳＴ１により構成されたメモリストリングＳＴＲＧ００，ＳＴＲＧ０１，ＳＴＲＧ０４２２３がマトリクス状に配置されている。
なお、図７では、図面の簡単化にため、１行４２２４列の４２２４個のメモリストリングＳＴＲＧ００〜ＳＴＲＧ０４２２３が配列された１行のブロックＢＬＫ０のみについて示しているが、実際には、各バンク２２０にブロックＢＬＫ０と同様の構成を有する複数（ｍ個）のブロックＢＬＫ１〜ＢＬＫｍがさらに配列される。
また、図７の例では、ビット線本数は、通常５１２バイトに予備の１６バイトを加えた５２８バイト、つまり４２２４本としている。
これは、本実施形態の１ページのデータに相当する。
【００４６】
メモリストリングＳＴＲＧ００のメモリトランジスタＭ０のドレインに接続された選択トランジスタＳＴ０がビット線ＢＬ０に接続され、メモリストリングＳＴＲＧ０１のメモリトランジスタＭ０のドレインがビット線ＢＬ１に接続され、同様にして、メモリストリングＳＴＲＧ０４２２３のメモリトランジスタＭ０のドレインがビット線ＢＬ４２２３に接続されている。
また、各メモリストリングＳＴＲＧ００〜０４２２３のメモリトランジスタＭ１５のソースが接続された選択トランジスタＳＴ１が共通のソース線ＳＲＬに接続されている。
【００４７】
また、同一行に配置されたメモリストリングＳＴＲＧ００，ＳＴＲＧ０１〜ＳＴＲＧ０４２２３のメモリトランジスタのゲート電極が共通のワード線ＷＬ０〜ＷＬ１５に接続され、選択トランジスタＳＴ０のゲート電極が共通の選択ゲート線ＤＳＧに接続され、選択トランジスタＳＴ１のゲート電極が共通の選択ゲート線ＳＳＧに接続されている。
【００４８】
ローデコーダ２２２は、ブロックアドレスデコーダ２２３により導通状態が制御される転送ゲート群２２２１、ワード線デコーダ２２４から供給されるワード線および選択ゲート線用駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５，ＶＤＳＧ，ＶＳＳＧを有している。
なお、図７では、図面の簡単化にため、ブロックＢＬＫ０に対応するブロックアドレスデコーダ部分並びに転送ゲート群を示しているが、実際には、複数配列される図示しないブロックに対応してブロックアドレスデコーダ部分並びに転送ゲート群が設けられる。
【００４９】
転送ゲート群２２２１は、転送ゲートＴＷ０〜ＴＷ１５，ＴＤ０およびＴＳ０により構成されている。
転送ゲート群２２２１は、ブロックアドレスデコーダ２２３でデコードされたブロックアドレスに応答して生成され、対応するブロックの選択ゲート線およびワード線を駆動するための信号ＢＳＥＬによって導通状態に保持させる。
具体的には、ブロックＢＬＫ０がアドレス指定されていた場合、各転送ゲートＴＷ０〜ＴＷ１５は、それぞれブロックアドレスデコーダ２２３の出力信号ＢＳＥＬ０に応じてワード線ＷＬ０〜ＷＬ１５と駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５とを作動的に接続し、転送ゲートＴＤ０，ＴＳ０は同じくブロックアドレスデコーダ２２３の出力信号ＢＳＥＬ０に応じて選択ゲート線ＤＳＧ，ＳＳＧと駆動電圧供給線ＶＤＳＧ，ＶＳＳＧとを作動的に接続する。
【００５０】
ブロックアドレスデコーダ２２３は、アドレスレジスタ２０９に保持されたアドレスからブロックアドレスをデコードし、デコードしたブロックアドレスに応答して、ローデコーダ２２２の対応するブロックの選択ゲート線およびワード線を駆動するための転送ゲート群２２２１を信号ＢＳＥＬによって導通状態に保持させる。
【００５１】
ワード線デコーダ２２４は、バンクコントロール回路２１１，２１２のリード、ライト、あるいは消去の動作を示すコントロール信号に応じて、アドレスレジスタ２０４，２０６に保持されたアドレスから動作に応じて昇圧回路２０８により昇圧された駆動電圧を駆動電圧供給線ＶＣＧ０〜ＶＣＧ１５，ＶＤＳＧ，ＶＳＳＧに発生して、ローデコーダ２２２に供給する。
【００５２】
このような構成を有するバンク２２０において、たとえば１行目のブロックＢＬＫ０のメモリストリングＳＴＲＧ００（〜ＴＲＧ０４２２３）のメモリトランジスタＭ１４のデータの読み出し、およびメモリトランジスタＭ１４へのデータの書き込みは以下のように行われる。
【００５３】
読み出し時には、図８に示すように、ワード線デコーダ２２４により駆動電圧供給線ＶＣＧ１４に接地電圧ＧＮＤ（０Ｖ）が供給され、駆動電圧供給線ＶＣＧ０〜ＶＣＧ１３，ＶＣＧ１５および駆動電圧供給線ＶＤＳＧ，ＶＳＳＧにたとえば４．５Ｖが供給され、ソース線ＳＲＬに接地電圧０Ｖが供給される。
そして、ブロックアドレスデコーダ２２３において、ブロックＢＬＫ０に対応する部分にのみアクティブのアドレス信号が入力されて、ブロックアドレスデコーダ２２３の出力信号ＢＳＥＬ０が４．５Ｖ＋αのレベルで出力され、他のブロックＢＬＫ１〜ＢＬＫｍに対応するブロックアドレスデコーダの出力信号ＢＳＥＬ１〜ＢＳＥＬｍは接地電圧ＧＮＤレベルに保持される。
これにより、ブロックＢＬＫ０に対応する転送ゲート群２２２１の転送ゲートＴＷ０〜ＴＷ１５，ＴＤ０およびＴＳ０が導通状態となり、他のブロックＢＬＫ１〜ＢＬＫｍに対応する転送ゲート群の転送ゲートが非導通状態に保持される。
その結果、メモリストリングＳＴＲＧ００の選択トランジスタＳＴ０，ＳＴ１が導通状態になり、ビット線ＢＬ０にデータが読み出される。
【００５４】
書き込み時には、図９に示すように、ワード線デコーダ２２４により選択された駆動電圧供給線ＶＣＧ１４に高電圧、たとえば２０Ｖが供給され、駆動電圧供給線ＶＣＧ０〜ＶＣＧ１３，ＶＣＧ１５に中間電圧（たとえば１０Ｖ）、駆動電圧供給線ＶＤＳＧの電源電圧ＶCC（たとえば３．３Ｖ）、駆動電圧供給線ＶＳＳＧに接地電圧ＧＮＤ（０Ｖ）が供給される。
また、書き込みを行うべきメモリトランジスタＭ１４を有するメモリストリングＳＴＲＧ００が接続されたビット線ＢＬ０に接地電圧ＧＮＤ、書き込みを禁止すべきメモリトランジスタＭ１４を有するメモリストリングＳＴＲＧ０１〜ＳＴＲＧ０４２２３が接続されたビット線ＢＬ１ＢＬ０４２２３に電源電圧ＶCCが印加される。
そして、ローデコーダ２２２のブロックＢＬＫ０に対応する部分にのみ、ブロックアドレスデコーダ２２３の出力信号ＢＳＥＬ０が２０Ｖ＋αのレベルで出力され、他のブロックＢＬＫ１〜ＢＬＫｍに対応するブロックアドレスデコーダの出力信号ＢＳＥＬ１〜ＢＳＥＬｍは接地電圧ＧＮＤレベルで出力される。
これにより、ブロックＢＬＫ０に対応する転送ゲート群２２２１の転送ゲートＴＷ０〜ＴＷ１５，ＴＤ０およびＴＳ０が導通状態となり、他のブロックＢＬＫ１〜ＢＬＫｍに対応する転送ゲート群の転送ゲートが非導通状態に保持される。
その結果、選択ワード線ＷＬ１４に書き込み電圧２０Ｖが、非選択のワード線ＷＬ０〜ＷＬ１３，ＷＬ１５にパス電圧（中間電圧）Ｖｐａｓｓ（たとえば１０Ｖ）が印加される。
【００５５】
これにより、メモリストリングＳＴＲＧ０１〜ＳＴＲＧ０４２２３の選択トランジスタＳＴ０がカットオフ状態となり、書き込みを禁止すべきメモリトランジスタが接続されたメモリストリングＳＴＲＧ０１〜ＳＴＲＧ０４２２３のチャネル部はフローティング状態となる。その結果、これらのチャネル部の電位は、主として非選択ワード線に印加されるパス電圧Ｖｐａｓｓとのキャパシタカップリングによりブーストされ、書き込み禁止電圧まで上昇し、メモリストリングＳＴＲＧ０１〜ＳＴＲＧ０４２２３のメモリトランジスタＭ１４へのデータ書き込みが禁止される。
一方、書き込みをすべきメモリトランジスタが接続されたメモリストリングＳＴＲＧ００のチャネル部は接地電圧ＧＮＤ（０Ｖ）に設定され、選択ワード線ＷＬ１４に印加された書き込み電圧２０Ｖとの電位差により、メモリトランジスタＭ１４へのデータの書き込みがなされ、しきい値電圧が正方向にシフトして、たとえば消去状態の−３Ｖから２Ｖ程度になる。
【００５６】
以上の動作にように、本実施形態のＮＡＮＤ型フラッシュメモリ２は、アドレスレジスタ２０９に保持されたアドレスに応じて、対応するバンク２０１，２０２のセルアレイ２２１から行（ページ）単位でデータがリードされ、セルアレイ２２１に対して行（ページ）単位でデータがライトされる。
【００５７】
マルチプレクサ／デマルチプレクサ２０３は、ライト時には、データ入力部２０４による４個の主符号語を含む書き込むべきページデータを、コントロール回路２０７のコントロールの下、所定のタイミングで切り替えて選択的にバンク（Ａ）２０１のデータラッチ回路２２５にカラムセレクタ２２６を通して転送させ、あるいはバンク（Ｂ）２０２のデータラッチ回路２２５にカラムセレクタ２２６を通して転送させる。
マルチプレクサ／デマルチプレクサ２０３は、リード時には、バンク（Ａ）２０１のデータラッチ回路２２５からカラムセレクタ２２６を通して転送された４個の主符号語ＭＣＷを含むリードデータと、バンク（Ｂ）２０２のデータラッチ回路２２５からカラムセレクタ２２６を通して転送された４個の主符号語ＭＣＷを含むリードデータとを、コントロール回路２０７のコントロールの下、所定のタイミングで切り替えて選択的にデータ出力部２０５に入力させる。
【００５８】
データ入力部２０４は、コントロール回路２０７のコントロールの下、Ｉ／Ｏバッファ２０６を通してＣＰＵ３から転送されてきた１ページ分（５１２バイト分）のデータを４個の符号語ＣＷに分割し、各符号語（１２８バイト）毎に４バイトのパリティデータを生成して付加し、１３２バイトの４個の主符号語ＭＣＷを順次に形成してマルチプレクサ／デマルチプレクサ２０３を通して、バンク（Ａ）２０１またはバンク（Ｂ）２０２に転送する。
【００５９】
図１０は、本実施形態に係るデータ入力部２０４の具体的な構成例を示す回路図である。
【００６０】
図１０のデータ入力部２０４は、書き込むべきページデータに含まれる符号語ＣＷ（１２８バイト）を順次シフトインして保持可能な複数（本実施形態では第１、第２の２個）のシフトレジスタと２０４１，２０４２と、コントロール回路２０７のコントロールの下、複数（本実施形態では４個）に分割可能な符号語ＣＷを含む書き込むべきページデータを受けて、連続する符号語を異なる第１のシフトレジスタ２０４１と第２のシフトレジスタ２０４２とに交互に入力させる第１のスイッチ回路（ＳＷ１）２０４３と、コントロール回路２０７のコントロールの下、第１および第２のシフトレジスタ２０４１，２０４２のうち、符号語ＣＷが全てシフトインされた符号語データを選択的に出力する第２のスイッチ回路２０４４と、第２のスイッチ回路２０４４により今出力されるように選択された符号語を検査して４バイトのパリティデータＰＤ（検査符号）を生成する検査符号生成回路２０４５と、第２のスイッチ回路２０４４により選択出力された１２８バイトの符号語ＣＷに対してパリティデータＰＤ（検査符号）を付加（合成）して１３２バイトの主符号語ＭＣＷとしてマルチプレクサ／デマルチプレクサ２０３を通して、バンク（Ａ）２０１またはバンク（Ｂ）２０２に転送する付加回路２０４６と、を有している。
【００６１】
検査符号生成回路２０４５は、シンドローム生成（Syndrome Gen）回路２０４５１と、Ｇマトリクス演算回路２０４５２と、出力タイミング生成回路２０４５３と、２入力ＡＮＤゲート２０４５４とを有する。
【００６２】
このような構成を有する検査符号生成回路２０４５においては、シンドローム生成回路２０４５１で生成された４変数ＸｉがＧマトリクス演算回路２０４５２に送られ、マトリクス演算されて４バイトのパリティが生成される。シンドローム生成回路２０４５１は４変数ＸｉがＧマトリクス演算回路２０４５２に送られた時点でリセットされる。
そして、対応する符号語が第１のシフトレジスタ２０４１または第２のシフトレジスタ２０４２が１２８バイトフルになるまでにＧマトリクス演算回路２０４５２でパリティ計算を行って、たとえば第２のスイッチ回路２０４４でフルになった対応する符号語がシフトインされている第１のシフトレジスタ２０４１または第２のシフトレジスタ２０４２の符号語データが選択されるタイミングで、出力タイミング生成回路２０４５３から出力パルスＰＬＳによりＡＮＤゲート２０４５４からパリティデータＰＤを出力させる。
また、リセットされたシンドローム回路２０４５１には、次の１２８バイトの符号語が入力され、また、この符号語は第１のスイッチ回路２０４３を介して前回と異なる第２のシフトレジスタ２０４２または第１のシフトレジスタ２０４１にシフトインされる。
【００６３】
データ出力部２０５は、コントロール回路２０７のコントロールの下、マルチプレクサ／デマルチプレクサ２０３を通してデータラッチ回路２２５から転送されてきた４個の主符号語ＭＣＷを含む１ページ分（５１２バイト＋１６バイト）のデータを受けて、各主符号語（１３２バイト）毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、パリティデータＰＤを含むリードされた主符号語ＭＣＷ毎にエラー情報を付加してＩ／Ｏバッファ２０６を介して外部のＣＰＵ３に転送する。
【００６４】
図１１は、本実施形態に係るデータ出力部２０５の具体的な構成例を示す回路図である。
【００６５】
図１１のデータ出力部２０５は、マルチプレクサ／デマルチプレクサ２０３を通してデータラッチ回路２２５から転送されてきたリードページデータに含まれる４バイトのパリティデータを含む主符号語ＭＣＷを順次シフトインして保持可能な複数（本実施形態では第１第２の２個）のシフトレジスタ２０５１，２０５２と、コントロール回路２０７のコントロールの下、複数（本実施形態では４個）の主符号語ＭＣＷを含むリードページデータを受けて、連続する主符号語を異なる第１のシフトレジスタ２０５１と第２のシフトレジスタ２０５２とに交互に入力させる第１のスイッチ回路（ＳＷ１）２０５３と、コントロール回路２０７のコントロールの下、第１および第２のシフトレジスタ２０５１，２０５２のうち、主符号語ＭＣＷが全てシフトインされた主符号語データを選択的に出力する第２のスイッチ回路２０５４と、第２のスイッチ回路２０５４により今出力されるように選択された主符号語に所定個数以内のエラーデータが存在する場合にこのエラーデータを訂正するエラー訂正回路２０５５と、第２のスイッチ回路２０５４により選択出力された１３２バイトの主符号語ＭＣＷに対してエラー訂正回路２０５５によるエラー情報を付加（合成）して、１３２バイトの主符号語ＭＣＷとして、上記第２のスイッチ回路により選択出力された符号語に対して上記エラー訂正回路によるエラー情報を付加してＩ／Ｏバッファ２０６を介して外部のＣＰＵ３に転送する付加回路２０５６とを有する。
【００６６】
エラー訂正回路２０５５は、シンドローム生成回路２０５５１、４バイトのシンドロームレジスタ（４ＢＳｒｅｇ）２０５５２、ＥＣＣプロセッサ２０５５３、エラーベクトルレジスタ（ｅＶ−ｒｅｇ）２０５５４、エラーロケーションレジスタ（ｅＬ−ｒｅｇ）２０５５５、および２入力ＡＮＤゲート２０５５６を有している。
【００６７】
このような構成を有するエラー訂正回路２０５５においては、シンドローム生成回路２０５５１でＨマトリクス上のシンドロームが計算される。
そして、エラー訂正処理で得られたエラーベクトルとエラーロケーションから、第２のスイッチ回路２０５４で選択出力される第１のシフトレジスタ２０５１または第２のシフトレジスタ２０５２のデータがシフトアウトされるタイミングでエラーベクターをエラーデータに加算する付加回路２０５６に出力する。
【００６８】
データ出力部２０５において、前に生成したシンドロームをデータと共にＩ／Ｏバッファ２０６を通して外部のＣＰＵ３に出力する。
さらに、エラー訂正の状況を示す情報をエラー訂正ポインタとして出力する。この情報は以下の内容を含む。
エラーが無かった場合、Ｎバイト訂正した場合のＮとエラーロケーション、訂正できなかった場合の各状態を示す情報である。
【００６９】
Ｉ／Ｏバッファ２０６は、ＣＰＵ３側、すなわちホスト（ブリッジ）側に対応した高速Ｉ／Ｆを含み、ブリッジ回路４とのデータの入出力を行うための複数のデータ入出力ピンＰＤ２０６、コマンド／アドレスを入力するための入力ピンＰＣＡ２０６、コントロール信号を入出力するための入出力ピンＰＬ２０６が接続されている。
【００７０】
Ｉ／Ｏバッファ２０６を通してＣＰＵ３とコントロール回路２０７との間では、コマンド／アドレス、およびコントロール信号の授受が行われる。
【００７１】
コントロール回路２０７は、Ｉ／Ｏバッファ２０６を通して入力したリードコマンドＲＤ、ライトコマンドＷＲ等のコマンドとリードあるいはライトするアドレスを入力して、コマンドをコマンドレジスタ２０９およびコントロール回路２１０に出力し、アドレスをアドレスレジスタ２０９に供給する。
コントロール回路２０７は、Ｉ／Ｏバッファ２０６を通してチップイネーブル信号／ＣＥ、リードイネーブル信号／ＲＤ、あるいはライトイネーブル信号／ＷＥ等のコントロール系信号を入力し、各バンク２０１，２０２のページデータのリード、ライト動作のコントロールを行う。
また、コントロール回路２０７は、コントロール系信号およびコマンドに応じてデータ入力部２０４、またはデータ出力部２０５のデータ入出力のコントロール、特に、各スイッチ回路の切り替え制御を行い、また、これと並行して、カラムデコーダ２２７を通してのカラムセレクタ２２６を制御してデータラッチ回路２２５のデータの入出力制御を行い、さらに、マルチプレクサ／デマルチプレクサ２０３の切り替え制御を行う。
すなわち、コントロール回路２０７は、コントロール信号およびコマンドを解読して、フラッシュメモリ２の全体をイネーブルにする等の処理を行い、コマンドによる指示されたアクセス（リードまたはライト）が、バンク（Ａ）２０１とバンク（Ｂ）２０２のいずれへのアクセスであるかを判定して、所定のアクセス制御を行う。
【００７２】
コントロール回路２０７は、データ入力部２０４においては形成された４個の主符号語を通常モード時には、１ページデータをワード線単位でセルアレイに記憶させる。
これに対して、ＥＣＣの２次元的拡張による訂正モードにおいては、コントロール回路２０７は、１３２バイトからなる４個の主符号語ＭＣＷで１ページデータを２次元的に展開する。コントロール回路２０７は、たとえば４個の主符号語ＭＣＷを、同一バンクの同一ブロック内で、ＮＡＮＤストリングのセル配列方向に４個の主符号語を並列的に展開し、あるいは、同一バンクの異なるブロックに一または複数の主符号語を並列的に展開し、あるいは異なるバンクにそれぞれ４個の主符号語を並列的に展開する。
【００７３】
また、コントロール回路２０７は、コマンドに応じて、具体的には、上述したように、リードやライト時に駆動線に供給する電圧が異なることから、コマンドに応じた電圧となるように昇圧すべき電圧を昇圧回路２０８に指示する。
【００７４】
コントロール回路２０７は、インタリーブ制御・コマンド制御・アドレス指定（バンク・ブロック・ページ）を行い、コントロール信号、コマンドおよびアドレスをバンク２０１，２０２に出力し、データ入出力を制御を行い、アドレス変換処理（ホストの指定する論理アドレスをフラッシュメモリ上の物理アドレスに変換するマッピング処理。論理・物理アドレス変換処理）を行うためのアドレス変換テーブルを有する。
【００７５】
昇圧回路２０８は、コントロール回路２０７の指示に従って、たとえばリード等のコマンドに応じて電圧を電源電圧ＶCCを昇圧して生成し、バンク２０１または２０２のローデコーダ２２２やワード線デコーダ２２４等の供給する。
たとえばリード時には、前述したように、４．５Ｖの電圧が必要なことから３．３Ｖから４．５Ｖへの昇圧を行う。
また、ライト時には、前述したように、２０Ｖと中間電圧１０Ｖが必要なことから、２０Ｖ，１０Ｖへの昇圧を行う。
【００７６】
ここで、本実施形態に係るフラッシュメモリ２のライトおよびリード動作シーケスンについて、図面に関連付けて説明する。
図１２（Ａ）〜（Ｉ）は、本実施形態に係るフラッシュメモリ２のライト動作シーケスンについて説明するためのタイミングチャートである。
図１３（Ａ）〜（Ｉ）は、本実施形態に係るフラッシュメモリ２のリード動作シーケスンについて説明するためのタイミングチャートである。
【００７７】
まず、図１０および図１２（Ａ）〜（Ｉ）に関連付けてフラッシュメモリ２のライト動作シーケスンについて説明する。
【００７８】
＜データライト＞
図１２（Ａ）に示すように、ＣＰＵ３から転送された４個の符号語に分割可能な１ページ分の連続したライトデータがＩ／Ｏバッファ２０６を通してデータ入力部２０４に入力される。
コントロール回路２０７のコントロールの下、第１のスイッチ回路２０４３が第１のシフトレジスタ２０４１の入力側に切り替えられ、入力データは、図１２（Ａ），（Ｂ）に示すように、第１のシフトレジスタ（１２８Ｂshift Ａ）２０４１とシンドローム生成回路２０４５１に入力される。
図１２（Ｂ）〜（Ｅ）に示すように、符号語として１２８バイトのデータが入力され第１のシフトレジスタ２０４１が、１２８バイトのデータでフル（Full）になったとき、それまでシンドローム生成回路２０４５１で生成された入力信号と係数でマトリクス演算された結果の４変数はＧマトリクス演算回路２０４５２に送られ、これと並行してシンドローム生成回路２０４５１はリセットされる。
次に、コントロール回路２０７のコントロールの下、第１のスイッチ回路２０４３が第２のシフトレジスタ（１２８Ｂshift Ｂ）２０４２の入力側に切り替えられ、次の１２８バイトのデータを第２のシフトレジスタ２０４２とシンドローム生成回路２０４５１に切り替え入力させる。
この第２のシフトレジスタ２０４２が、１２８バイトのデータでフルになるまでに第１のシフトレジスタ２０４１側の４バイトのパリティを計算する。
そして、第１のシフトレジスタ２０４２の１２８バイトのデータ第２のスイッチ回路２０４４から出力され、この１２８バイトのデータ（一つの符号語ＣＷ））に４バイトのパリティデータＰＤが付加回路２０４６で付加（合成）されて一つの主符号語ＭＣＷが完成される。
そして、１３２バイトの主符号語ＭＣＷを形成してマルチプレクサ／デマルチプレクサ２０３を通して、バンク（Ａ）２０１またはバンク（Ｂ）２０２に転送する。
第２のシフトレジスタ２０４２が１２８バイトのデータでフル時点で同様の動作を行う。これを４回繰り返し４個の主符号語を順次転送した時点で、バンク（Ａ）２０１またはバンク（Ｂ）２０２のデータラッチ回路２２５が５１２バイト＋１６バイトのデータでフルになる。
このとき、コントロール回路２０７のコントロールにより、マルチプレクサ／デマルチプレクサ２０３を一方のバンク（Ｂ）２０２またはバンク（Ａ）２０１のデータラッチ回路に転送可能なように切り替える。
【００７９】
なお、本実施形態では述べないが、この１ページデータはライト−ベリファイ動作に入り、ライトデータが正しく書き込まれたことを確認しライト動作を終了する。
しかし、この時点で符号語のエラー訂正能力内であれば書き込みが弱かったり、回路上の欠陥等で完全なデータが書き込まれなくともリード時に復元できることから、ベリファイ動作を終了できる。
以上の動作を繰り返すことで複数のバンクにデータとパリティデータを高速に書き込むことができる。
【００８０】
次に、図１１および図１３（Ａ）〜（Ｉ）に関連付けてフラッシュメモリ２のリード動作シーケスンについて説明する。
【００８１】
＜データリード＞
バンク（Ａ）２０１またはバンク（Ｂ）２０２のセルアレイ２２１からリードされ、パリティデータが付加された１３２バイトの主符号語ＭＣＷを４個含む５１２バイト＋１６バイトのページデータはデータラッチ回路２２５にラッチされる。
その後、図１３（Ａ）〜（Ｇ）に示すように、コントロール回路２０７のコントロールの下、たとえばデータラッチ回路２２５のラッチデータのうち一つの主符号語ＭＣＷがマルチプレクサ／デマルチプレクサ２０３を通してデータ出力部２０５に転送される。
データ出力部２０５は、たとえば第１のスイッチ回路２０５３を介して第１のシフトレジスタ２０５１にシフトインされ、これと並行して、エラー訂正回路２０５５のシンドローム生成回路２０５５１に入力される。
そして、１主符号語が転送された第１のシフトレジスタ２０５１にシフトインされた時点で、シンドローム生成回路２０５５１によるシンドローム生成が完了し、シンドロームレジスタ（4Bsreg）２０５５２に保管する。
データ出力部２０５においては、さらに次の主符号語ＭＣＷが転送されてくるが、このときコントロール回路２０７のコントロールの下、第１のスイッチ回路２０５３を第２のシフトレジスタ２０５２の入力側に切り替え、転送されてきた次の主符号部ＭＣＷを第２のシフトレジスタ２０５２にシフトインさせる。
このとき、シンドローム生成回路２０５５１およびシンドロームレジスタ２０５５２は、クリアされ新たな符号語のシンドローム生成をスタートする。
このようにして、前の符号語のエラー訂正を次の符号語が転送完了するまでに終了させることでこの訂正処理は読み出し速度に影響させないで続けることができる。この処理を１ページに含まれる４主符号語に対し実行する。
そして、図１２（Ａ）〜（Ｉ）に示すように、エラー訂正処理で得られたエラーべクトルとエラーロケーションから、この読み出しデータがシフトアウトされる時に目的のエラーデータにエラーべクターを加えることでエラー訂正処理が完了する。
【００８２】
もしエラー訂正できなかった場合、たとえば最小距離から決る訂正可能数以上のエラーが合った場合は、前に生成したシンドロームをデータと共に外部に出力する。
さらに、エラー訂正の状況を示す情報をエラー訂正ポインタとして出力する。
【００８３】
＜その他データリードモード＞
その他のリードモードについて説明する。
このモードはエラー訂正処理を行い、ライト−ベリファイの繰り返し動作を続けるか止めるかを判断するものであり、理由は問わないがエラーが残っていても訂正範囲であればこの動作を停止する判断を行うものである。
たとえば、訂正能力が２重訂正が可能と仮定して１重訂正でエラーを復元できるのであればベリファイ動作を停止する。
この場合は、その後データをリードするまでに１個のエラーが増加しても訂正できることになる。
換言すれば、ベリファイ動作で何個のエラーが残っているか、ＥＣＣによって判断するものである。
もしこの方法を取らない場合は、ベリファイすべき正しいデータをレジスタに格納しておき、読み出したデータのレジスタと全データが同じか、違っているなら何バイト違っているか判断するためデータコンパレータが必要になる。
【００８４】
次に、ＥＣＣの２次元的拡張による訂正モード時の動作について、図１４に関連付けて４重イレージャー訂正を例に説明する。
図１４において、右上がりの斜線を付したデータは、ＮＡＮＤフラッシュ２のセルアレイから読み出された時点ではエラーだったがＥＣＣ−１で２重訂正でエラー訂正されたデータを示している。また、図１４において、左上がりの斜線を付したデータは、ＥＣＣ−１で訂正できなかったエラーデータであって、ＥＣＣ−２でエラーロケーションが得られた結果、ＥＣＣ−１で４重イレージャー訂正が外部のＣＰＵ３において可能なデータを示している。なお、ＥＣＣ−２で１重イレージャー訂正も可能である（外部のＣＰＵ３にて実施）。
【００８５】
＜多重エラーの場合のイレージャー訂正の例＞
図１４は、１３２バイト×４の１ページに書き込まれるデータを示している。この一つの１３２バイトデータを最小距離２の符号語としてＥＣＣ−２の系列であらかじめパリティーを計算しておく。この計算法は数１および図４に関連付けて既に説明した。
その上でメモリに書き込み、その後読み出したとする。ここでＥＣＣ−１系列の符合語を上からａ，ｂ，ｃ，ｄとし、ＥＣＣ−２の系列を左から１，２，３とする。
ＥＣＣ−１系列のａ，ｃ，ｄは読み出した際にそれぞれ２バイトのエラーが有ったと仮定する。この場合、ＥＣＣ−１は２重訂正可能であり、訂正できる。
訂正できた系列および初めからエラーの無かった系列に対し、ＥＣＣ−１ポインタをリセットしておく。
しかし、図１４の例でｂの系列は３バイト以上のエラーが有ったと仮定する。この場合は訂正不能であり、ポインタをセットしておく。そして、データリードの動作で説明したように、データ出力部２０５がシンドローム、ポインタ、データを外部のＣＰＵ３に出力する。
外部のＣＰＵ３では４個のＥＣＣ−１系列でポインタが１本の場合、上述したようにデータをならべ、ＥＣＣ−２の系列でシンドロームを計算する。この例で、得られたシンドロームが０ならエラー無しを意味する。図１４の例では、丸印で示した符合語である。
図１４において、Ｘはシンドロームが０でない符合語である。ここでＥＣＣ−１のａ，ｂ，ｃ，ｄのポインタがセットしているデータとＥＣＣ−２系列でＸの符合語の交点がエラーロケーションであり、そのエラーベクトルはＥＣＣ−２のシンドロームとなる。
ここでｎバイトのエラーの場合、ｎ個のシンドロームをｂのＳ０（数１）  に加算し、誤訂正が無いか検査する。誤訂正が無い場合はｂのシンドロームＳ０は０になる。また、同様にシンドロームＳ１、Ｓ２、Ｓ３についてもエラーベクトルとロケーションから所定の式で０になるか検査することが望ましい。
また、本例では、ＥＣＣ−２を最小距離２としたが、実際には２に限定されない。
【００８６】
このように、２次元的拡張による訂正モードを採用することにより、記録されるデータの性質に従い、ＥＣＣの訂正方法を強化できる。つまりシンドロームをデータと共に外部に出力することで、外部で二次元のエラー訂正を簡単に行うことができる。
これにより外部でさらにイレージャー訂正を行うことができる。この場合、最大で４主符号誤中の１主符号誤が全てエラーでも訂正可能となる。
【００８７】
以上説明したように、本実施形態によれば、Ｉ／Ｏバッファ２０６を通してＣＰＵ３から転送されてきた１ページ分（５１２バイト分）のデータを４個の符号語ＣＷに分割し、各符号語（１２８バイト）毎に４バイトのパリティデータを生成して付加し、１３２バイトの４個の主符号語ＭＣＷを順次に形成してマルチプレクサ／デマルチプレクサ２０３を通して、バンク（Ａ）２０１またはバンク（Ｂ）２０２に転送するデータ入力部２０４と、検査符号が付加された複数の主符号語を含むページデータを複数の系列を含むように２次元的に展開して書き込ませ、記録されたページデータを読み出すコントロール回路２０７と、コントロール回路２０７のコントロールの下、マルチプレクサ／デマルチプレクサ２０３を通してデータラッチ回路２２５から転送されてきた４個の主符号語ＭＣＷを含む１ページ分（５１２バイト＋１６バイト）のデータを受けて、各主符号語（１３２バイト）毎に、所定個数以内のエラーデータが存在する場合にはエラーデータを訂正し、パリティデータＰＤを含むリードされた主符号語ＭＣＷ毎にエラー情報を付加して訂正状態を表す情報とデータをＩ／Ｏバッファ２０６を介して外部のＣＰＵ３に転送するデータ出力部２０５とを有することから、以下の効果を得ることができる。
【００８８】
すなわち、読み出し時に訂正状態を表す情報とシンドロームデータを外部に出力することで、外部で多次元的なエラー訂正に拡張でき、さらにエラー訂正能力を強化することができる。
１ページを構成するデータを複数の符号語で構成することで、訂正能力を強力にできる。また、複数の符号語で構成したことで訂正不能に陥った符号語が有っても残りのデータは使うことが可能となる。
そして、一般的な不揮発性半導体記憶のＥＣＣに比べ、リードソロモン符号を使うことで訂正能力が強力になる。
また、シフトレジスタ等を複数持つことで、エラー訂正および検査符号に掛かる時間をデータの入出力の時間に影響させること無く連続に行うことができ、読み出し、書き込みの高速化が可能となる。
また、エラー訂正を強化したことで、ライト−ベリファイの回数を従来に比べ減らすことができ、書き込みに必要な時間を減らすことができる。
さらに、エラー訂正を強化したことで、冗長メモリを不要もしくは小さくでき、置換する作業も不要もしくは減らすことができる。これにより、メモリ自体のサイズを小型化でき、さらにプロセス工程数を減らしコストを低減できる。
また、複数のバンクを持つことにより、読み出しのランダムアクセス時間を見かけ上見えなくすることによって高速読み出しが可能となる。
【００８９】
また、フラッシュメモリ２はエラー検出、訂正処理回路有することから、フラッシュメモリからのリードデータのエラー検出、訂正処理を行うことによりホスト側の処理を軽減することが可能となる。
【００９０】
なお、本実施形態においては、バンクが２つの場合を例に説明したが、さらに多くのバンク、たとえば４個、や８個等のバンクを備える半導体記憶装置に本発明を適用できることはいうまでもない。
【図面の簡単な説明】
【００９１】
【図１】本発明に係る半導体記憶装置を採用した信号処理システムの全体構成を示すブロック図である。
【図２】本実施形態に係る１ページデータの構成例を説明するための図である。
【図３】本実施形態に係る主符号語における構成およびパリティデータ（検査符号）の配置位置を説明するための図である。
【図４】ＥＣＣの２次元的拡張による訂正方法を説明するための図である。
【図５】図１のＮＡＮＤ型フラッシュメモリの構成例を示すブロック図である。
【図６】図５におけるバンクの具体的な構成例を示すブロック図である。
【図７】図６のバンクおよびローデコーダの具体的な構成例を説明するための図である。
【図８】図５のバンクにおけるデータリード時における各駆動線のバイアス条件を示す図である。
【図９】図５のバンクにおけるデータライト時における各駆動線のバイアス条件を示す図である。
【図１０】本実施形態に係るデータ入力部の具体的な構成例を示す回路図である。
【図１１】本実施形態に係るデータ出力部の具体的な構成例を示す回路図である。
【図１２】本実施形態に係るフラッシュメモリ２のライト動作シーケスンについて説明するためのタイミングチャートである。
【図１３】本実施形態に係るフラッシュメモリ２のリード動作シーケスンについて説明するためのタイミングチャートである。
【図１４】ＥＣＣの２次元的拡張による訂正モード時の動作について説明するための図である。
【符号の説明】
【００９２】
１…信号処理システム、２…ＮＡＮＤ型フラッシュメモリ、２０１（Ａ），２０２（Ｂ）…バンク、２０３…マルチプレクサ／デマルチプレクサ（ＭＰＸ／ＤＱＥＭＰＸ）、
２０４…データ入力部、２０５…データ出力部、２０６…Ｉ／Ｏバッファ、２０７…コントロール回路、２０８……昇圧回路、２０９…アドレスレジスタ、２２０…バンク（Ａ，Ｂ）（２０１，２０２）、２２１…セルアレイ、２２２…ロー（行、ページ）デコーダ、２２３…ブロックアドレスデコーダ、２２４…ワード線デコーダ、２２５…データラッチ回路（ＤＴ）、２２６…カラムセレクタ（Ｙセレクタ）、２２７…カラム（列）デコーダ、３…ＣＰＵ（ホスト装置）、４…ブリッジ回路、５…ＤＲＡＭ。
【図１】
2006031813.tif 000003
【図２】
2006031813.tif 000004
【図３】
2006031813.tif 000005
【図４】
2006031813.tif 000006
【図５】
2006031813.tif 000007
【図６】
2006031813.tif 000008
【図７】
2006031813.tif 000009
【図８】
2006031813.tif 000010
【図９】
2006031813.tif 000011
【図１０】
2006031813.tif 000012
【図１１】
2006031813.tif 000013
【図１２】
2006031813.tif 000014
【図１３】
2006031813.tif 000015
【図１４】
2006031813.tif 000016