(57)【要約】【課題】外部インターフェースから見た不良ビット発生率を、さらに減少させることができるデータ記憶システムの設定方法を提供すること。【解決手段】複数個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域（１ｎ）と、予めデータがある値に揃った複数個のスペアメモリセルブロックを有し、これらスペアメモリセルブロックのいくつかに接続されるページを含むスペア領域（１ｓ）と、非スペア領域（１ｎ）内のページからデータを読み出したときに、少なくとも２ビットのデータ誤りを検出し、読み出したページにおける誤りビットの数を読み出したページ毎に判定する判定回路（５、６、１００）とを具備する。判定回路（１００）による判定結果が２ビット以上の場合に、読み出したページの内容を誤り訂正し、スペア領域（１ｓ）内のページに書き込む。【選択図】      図１
2010191984.tif 000002
【特許請求の範囲】
【請求項１】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有する半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数１】
2010191984.tif 000019
【数２】
2010191984.tif 000020
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数１、数２を満たすように設定することを特徴とする設定方法（ただし、ａは数１、数２を連立させることで消去できる変数）。
【請求項２】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
１ページ当たりの情報ビットの数をｎ、前記１ページ内で誤り訂正できる最大ビット数をｔ、並びにｍを｛２m-1−ｔ×（ｍ−１）−１｝＜ｎ≦（２m−ｔ×ｍ−１）を満たす自然数としたとき、
前記１ページ内のメモリセルの数は、（ｎ＋ｔ×ｍ）以上である半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数３】
2010191984.tif 000021
【数４】
2010191984.tif 000022
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数３、数４を満たすように設定することを特徴とする設定方法（ただし、ａは数３、数４を連立させることで消去できる変数）。
【請求項３】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記非スペア領域及び前記スペア領域は、それぞれ複数のページで同時に消去動作が行われることを特徴とする半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数５】
2010191984.tif 000023
【数６】
2010191984.tif 000024
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数５、数６を満たすように設定することを特徴とする設定方法（ただし、ａは数５、数６を連立させることで消去できる変数）。
【請求項４】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記メモリセルブロックは、電気蓄積層を有するMOSトランジスタからなる不揮発性メモリセルが直列に接続され、その一端は第一の選択トランジスタを介してデータ転送線に接続され、その他端は第二の選択トランジスタを介して共通ソース線に接続された構造を有する半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数７】
2010191984.tif 000025
【数８】
2010191984.tif 000026
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数７、数８を満たすように設定することを特徴とする設定方法（ただし、ａは数７、数８を連立させることで消去できる変数）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶システムの設定方法に係り、特に、エラー検出・訂正ユニットを有した半導体メモリを含むデータ記憶システムに関する。
【背景技術】
【０００２】
半導体メモリの一つとして、情報を電荷蓄積層中の電荷量に応じて記憶し、電荷量に応じたＭＯＳＦＥＴのコンダクタンス変化を測定し、情報を読み出す不揮発性半導体メモリが開発されている。いわゆるＥＥＰＲＯＭである。
【０００３】
ＥＥＰＲＯＭのデータ読み出し方式は、例えば、ＤＲＡＭと異なり、データの破壊を伴わない、いわゆる非破壊読み出し方式である。つまり、ＥＥＰＲＯＭは、データを破壊することなく、複数回のデータ読み出しが可能である。しかし、書き込み動作及び消去動作を繰り返していると、
（１）  ＥＥＰＲＯＭセルの、例えば、トンネル絶縁膜が劣化し、リーク電流が増え、電荷保持特性が悪化する、
（２）  電荷が、トンネル絶縁膜中にトラップされ、ＥＥＰＲＯＭセルのしきい値が、予め設定された範囲から外れる、
という事情を招き、データが破壊されてしまう。いわゆるビット破壊である。ＥＥＰＲＯＭの記憶容量が大きくなるほど、ＥＥＰＲＯＭが、ビット破壊を生じたビットを含む確率（不良ビット発生率）が高くなる。たとえ、書き込み回数及び消去回数を一定としてもである。
【０００４】
ビット破壊対策の一例は、例えば、特許文献１に記載されている。特許文献１は、エラー検出・訂正ユニット（以後、Error Correction Code回路;ＥＣＣ回路と呼ぶ）を用いて、電源投入時及び遮断時などの外部Ｉ／Ｏからのデータを読み出す必要が無い時に、複数のページからなるメモリクラスタを読み出して不良ビットを検出し、エラー基準値を超えたエラーが検出された場合には、ＥＣＣの対象となったメモリクラスタの全データを読み出し、別の記憶領域に書き込む。これにより、外部インターフェースから見た不良ビット発生率を減少させることができる。
【特許文献１】特許第３１７６０１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、外部インターフェースから見た不良ビット発生率を、さらに減少させることができるデータ記憶システムの設定方法を提供することにある。
【課題を解決するための手段】
【０００６】
この発明の第１態様に係るデータ記憶システムの設定方法は、ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有する半導体記憶装置において、一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数１】
2010191984.tif 000003
【０００７】
【数２】
2010191984.tif 000004
【０００８】
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数９、数１０を満たすように設定する方法（ただし、ａは数９、数１０を連立させることで消去できる変数）。
【０００９】
この発明の第２態様に係るデータ記憶システムの設定方法は、ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
１ページ当たりの情報ビットの数をｎ、前記１ページ内で誤り訂正できる最大ビット数をｔ、並びにｍを｛２m-1−ｔ×（ｍ−１）−１｝＜ｎ≦（２m−ｔ×ｍ−１）を満たす自然数としたとき、前記１ページ内のメモリセルの数は、（ｎ＋ｔ×ｍ）以上である半導体記憶装置において、一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数３】
2010191984.tif 000005
【００１０】
【数４】
2010191984.tif 000006
【００１１】
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数１１、数１２を満たすように設定することを特徴とする（ただし、ａは数１１、数１２を連立させることで消去できる変数）。
【００１２】
この発明の第３態様に係るデータ記憶システムの設定方法は、ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記非スペア領域及び前記スペア領域は、それぞれ複数のページで同時に消去動作が行われることを特徴とする半導体記憶装置において、一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数５】
2010191984.tif 000007
【００１３】
【数６】
2010191984.tif 000008
【００１４】
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数１３、数１４を満たすように設定する（ただし、ａは数１３、数１４を連立させることで消去できる変数）ことを特徴とする。
【００１５】
この発明の第４態様に係るデータ記憶システムの設定方法は、ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記メモリセルブロックは、電気蓄積層を有するMOSトランジスタからなる不揮発性メモリセルが直列に接続され、その一端は第一の選択トランジスタを介してデータ転送線に接続され、その他端は第二の選択トランジスタを介して共通ソース線に接続された構造を有する半導体記憶装置において、一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値をｎbadとしたときに、
【数７】
2010191984.tif 000009
【００１６】
【数８】
2010191984.tif 000010
【００１７】
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数１５、数１６を満たすように設定することを特徴とする（ただし、ａは数１５、数１６を連立させることで消去できる変数）。
【発明の効果】
【００１８】
本発明によれば、外部インターフェースから見た不良ビット発生率を、さらに減少させることができるデータ記憶システムを提供できる。
【発明を実施するための最良の形態】
【００１９】
特許文献１には、エラー基準値をどのように選択したら良いかについて、具体的記述が無い。ここで、ＥＣＣ回路が救済できるビット数を大幅に増やせば、外部インターフェースから見た不良ビット発生率は減少する。しかしながら、ＥＣＣ回路が救済できるビット数、つまり、誤り訂正可能なビット数ｋを増やすと、不良を生じたビットの位置を計算するのに、例えば、ｋ次の(ガロア体上の)誤り位置多項式の解を求める必要が生じる。このため、計算回路が複雑化し、計算時間や計算回路の面積が急増する。
【００２０】
さらに、ＢＣＨ(Bose-Chaudhuri-Hocquenghem)符号の場合には、ＥＣＣビットを含む符号長を“ｎ”として、ＥＣＣビットが、ｎビットのどこが誤りビットであるかの情報を含む必要がある。このため、ＥＣＣで救済できるビットが１ビット増えると、少なくとも、
log2（ｎ）個
の小数点を切り上げたビット数だけ、ＥＣＣが使う検査ビット数が増大する。よって、符号長が長くなってしまい、結果、チップ面積が増加したり、ユーザが使用できるデータビット数が減少したりする。
【００２１】
また、特許文献１には、システムの具体的構成、例えば、空き記憶領域の構成や、記憶領域をどの程度準備すれば、チップ面積の増大を抑えつつ外部インターフェースから見た不良ビット発生率を抑制できるか、あるいはどの程度効果があるかについての開示が無い。
【００２２】
さらに、特許文献１には、どのように空き記憶領域を準備し、置き換えたら高速に置き換えができるかについての開示が無い。
【００２３】
また、空き記憶領域はデータ記憶領域と同じ領域として、両者を含む初期容量を、ユーザの使用できるデータ記憶領域として保証している。このため、上記ＥＣＣ回路が救済できるビット数を越えた不良が生じると、ユーザの使用できるデータ記憶領域が実質減ってしまい、どのくらい減ってしまうかの保証も困難である。
【００２４】
この発明の実施形態に開示される不揮発性半導体記憶装置は、概略、ＥＣＣ(error correcting code)を分析し、１ビットより多い規定数以上の不良ビットを生じたページを、予備ページに置き換える。このようにして、ＥＣＣ回路の検査ビット数を増加させること無しに、規定数以上の不良ビットが生じた場合でも、外部インターフェースから見た不良ビット発生率を低減する。さらに、予備ページに置き換えるのに必要な処理時間を削減する。
【００２５】
特に、空き記憶領域として準備する数について、ある数以上、予めスペア領域として用意する。これにより、ユーザの使用できるデータ記憶領域をライフエンドまで保証しつつ、外部インターフェースから見た不良ビット発生率を抑制できるCriticality(臨界性)を生じさせ、高速置き換えを可能とした半導体メモリを含むデータ記憶システムが実現される。
【００２６】
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００２７】
（第１実施形態）
図１はこの発明の第１実施形態に係るデータ記憶システムの構成例を示すブロック図、図２はこの発明の第１実施形態に係るデータ記憶システムのセルアレイ部、及びセンスアンプ部の構成例を示すブロック図である。図１では、データ選択線（ＷＬ）、ブロック選択線（ＳＳＬ、ＧＳＬ）は省略する。
【００２８】
なお、本明細書では、メモリセルブロックとは、単一または複数のページを含み、同時に消去動作が行われるメモリセルの単位を示す。ここで、例えば、電荷蓄積層を有したフラッシュメモリセルのように、１ページのメモリセルの消去時間が１ページのメモリセルの書き込み時間よりも長い場合には、メモリセルブロックは複数のページを含み、複数のページで一度に消去動作が行われるように構成されても良い。このように構成すると、１ブロックあたりの書き込み時間と１ブロックあたりの消去時間とを同程度にすることができ、システムから見た書き込みデータ転送速度、及び消去速度のパフォーマンスを向上できる。メモリセルブロック４９の具体的構成例を以下に述べる。
【００２９】
図３はＮＡＮＤセルブロック４９の等価回路例を示す等価回路図、図４はＮＡＮＤセルブロック４９の平面パターン例を示す平面図である。図４では、図３に示すセルブロック４９を３つ並列した構造を示している。また、図４では、セル構造をわかりやすくするために、制御ゲート電極２７よりも下の構造のみを示している。
【００３０】
図３に示すように、電荷蓄積層２６を有するＭＯＳトランジスタからなる不揮発性メモリセルＭ０〜Ｍ１５が直列に接続され、その一端は選択トランジスタＳ１を介して“ＢＬ”と記したデータ転送線に接続され、その他端は選択トランジスタＳ２を介して“ＳＬ”と記した共通ソース線に接続されている。メモリセルＭ０〜Ｍ１５、及び選択トランジスタＳ１、Ｓ２はそれぞれ、同一のｐ型ウェル２３上に形成されている。メモリセルＭ０〜Ｍ１５それぞれの制御電極は、“ＷＬ０〜ＷＬ１５”と記したデータ選択線に接続されている。データ転送線ＢＬに沿った複数のメモリセルブロック４９から１つのメモリセルブロック４９を選択し、選択したメモリセルブロックをデータ転送線ＢＬに接続するため、選択トランジスタＳ１の制御電極はブロック選択線ＳＳＬに接続され、選択トランジスタＳ２の制御電極はブロック選択線ＧＳＬに接続されている。これにより、いわゆるNAND型メモリセルブロック４９（点線の領域）が構成されている。本第１実施形態では、選択トランジスタＳ１、Ｓ２の制御配線（ブロック選択線）ＳＳＬ、ＧＳＬが、メモリセルＭ０〜Ｍ１５の電荷蓄積層２６と同じ層の導電体によって、図３中の紙面上下方向に隣接する選択トランジスタＳ１、Ｓ２それぞれのゲートを接続しながら形成されている。ブロック選択線ＳＳＬ、ＧＳＬは、メモリセルブロック４９に少なくとも１本以上あればよい。ブロック選択線ＳＳＬ、ＧＳＬは、データ選択線ＷＬ０〜ＷＬ１５と同一方向に形成されることが、これに限られる訳ではないが望ましい。高密度化が図ることができるためである。図３では、メモリセルブロック４９に１６＝２4個のメモリセルが接続されている例を示したが、データ転送線、及びデータ選択線に接続するメモリセルの数は複数であればよく、２n個（ｎは正の整数）であることが、これに限られる訳ではないが望ましい。アドレスデコードが容易となるためである。
【００３１】
図５は図４中のＶ−Ｖ線に沿う断面図、図６は図４中のVI−VI線に沿う断面図である。図５に示す断面はメモリセルの構造例を示す断面に相当し、図６に示す断面はメモリセルブロックの構造例を示す断面に相当する。
【００３２】
図５、及び図６に示すように、ｐ型シリコン領域２３は、例えば、不純物濃度が１０14ｃｍ-3から１０19ｃｍ-3程度のボロンを含む。ｐ型シリコン領域２３上には、トンネル絶縁膜２５、２５SSL、２５GSLが形成されている。トンネル絶縁膜２５の一例は、例えば、３ｎｍから１５ｎｍ程度の厚みを持つシリコン酸化膜、またはシリコンオキシナイトライド膜である。トンネル絶縁膜２５、２５SSL、２５GSL上には、電荷蓄積層２６、２６SSL、２６GSLが形成されている。電荷蓄積層２６、２６SSL、２６GSLの一例は、例えば、リン、または砒素を１０18ｃｍ-3から１０21ｃｍ-3程度含み、１０ｎｍから５００ｎｍ程度の厚みを持つポリシリコンである。トンネル絶縁膜２５（２５、２５SSL、２５GSL）、及び電荷蓄積層２６（２６、２６SSL、２６GSL）は、例えば、シリコン酸化膜からなる素子分離絶縁膜２４が形成されていない領域上に、ｐ型シリコン領域２３に対して自己整合的に形成されている。この構造は、例えば、トンネル絶縁膜２５及び電荷蓄積層２６を堆積し、堆積したトンネル絶縁膜２５及び電荷蓄積層２６をパターニングし、ｐ型シリコン領域２３内にかけてエッチングをさらに進め、ｐ型シリコン領域２３内に、深さが、例えば、０．０５μｍ〜０．５μｍ程度の浅い溝（Shallow Trench）を形成する。次いで、浅い溝を絶縁物（素子分離絶縁膜２４）で埋めることで形成できる。この構造の利点は、例えば、トンネル絶縁膜２５及び電荷蓄積層２６を、段差がない平面、即ち、浅い溝が形成されていないｐ型シリコン領域２３上に形成でき、トンネル絶縁膜２５及び電荷蓄積層２６に対して、均一性が良く、特性の揃った膜が得られることである。
【００３３】
電荷蓄積層２６、２６SSL、２６GSL上には、ブロック絶縁膜５０、５０SSL、５０GSLが形成されている。ブロック絶縁膜５０、５０SSL、５０GSLの例は、例えば、厚さが５ｎｍから３０ｎｍ程度の、シリコン酸化膜、またはオキシナイトライド膜、またはシリコン酸化膜／シリコン窒化膜／シリコン酸化膜の三層膜である。ブロック絶縁膜（インターゲート絶縁膜）５０、５０SSL、５０GSL上には、制御ゲート２７が形成されている。制御ゲート２７の一例は、例えば、１０ｎｍから５００ｎｍ程度の厚さを持ち、リン、砒素、またはボロンを１０17ｃｍ-3から１０21ｃｍ-3程度含むポリシリコン、または金属シリサイドとポリシリコンとのスタック構造である。金属シリサイドの例は、例えば、ＷＳｉ（タングステンシリサイド）、ＮｉＳｉ（ニッケルシリサイド）、ＭｏＳｉ（モリブデンシリサイド）、ＴｉＳｉ（チタンシリサイド）、ＣｏＳｉ（コバルトシリサイド）である。制御ゲート２７は、例えば、図２に示すように、データ選択線ＷＬ０〜ＷＬ１５を構成する。データ選択線ＷＬ０〜ＷＬ１５は、隣接するメモリセルブロック４９どうしを接続し、ロウ方向に沿ってメモリセルアレイ１の一端から他端まで形成される。ｐ型シリコン領域２３は、例えば、ｐ型シリコン基板２１から、ｎ型シリコン領域２２によって分離される。これにより、ｐ型シリコン領域２３は、ｐ型シリコン基板２１から独立して電圧を印加できる。ｐ型シリコン領域２３は、ｐ型シリコン基板２１から独立して電圧を印加できるように形成すると、消去時の昇圧回路負荷を減らし、消費電力を抑制できる利点を得られる。
【００３４】
また、図５に示すメモリセルは、電荷蓄積層２６をメモリセル毎に分離する際のエッチング工程において、ｐ型シリコン領域２３の側壁（浅い溝の側壁）が外界に露出することがない。これは、電荷蓄積層２６の側壁、及びｐ型シリコン領域２３等の側壁が素子分離絶縁膜２４によって覆われているためである。このゲート構造によれば、電荷蓄積層２６がｐ型シリコン領域２３よりも下の部分にまで形成されることを抑制できる。これによる利点は、例えば、ｐ型シリコン領域２３と素子分離絶縁膜２４との境界において、ゲート電界集中の抑制、及びしきい値が低い寄生トランジスタが発生することを抑制できることにある。さらに、例えば、ｐ型シリコン領域２３と素子分離絶縁膜２４との境界において、ゲート電界集中を抑制でき、ゲート電界集中に起因した書き込みしきい値の低下現象、いわゆるサイドウォーク（sidewalk）現象を生じ難くできることにある。これらの利点により、図５に示すメモリセルは高い信頼性を持つ。
【００３５】
図６に示すように、トンネル絶縁膜２５（２５、２５SSL、２５GSL）、電荷蓄積層２６（２６、２６SSL、２６GSL）、ブロック絶縁膜５０（５０、５０SSL、５０GSL）、制御ゲート２７を含む積層ゲート構造の両側壁には、それぞれ側壁絶縁膜４３が形成される。側壁絶縁膜４３の例は、例えば、５ｎｍから２００ｎｍの厚みを持つシリコン窒化膜、またはシリコン酸化膜である。積層ゲート構造間の下に位置するｐ型シリコン領域２３の部分には、ｎ型拡散層２８が形成される。ｎ型拡散層２８は、メモリセルや選択トランジスタのソース電極、またはドレイン電極である。メモリセルは、ｎ型拡散層２８、トンネル絶縁膜２５、電荷蓄積層２６、ブロック絶縁膜５０、制御ゲート２７により構成される。これは、いわゆる、浮遊ゲート型ＥＥＰＲＯＭセルと呼ばれるセルであり、そのゲート長は、例えば、０．５μｍ以下０．０１以上とされる。ｎ型拡散層２８は、例えば、リンや砒素、アンチモンを表面濃度が１０17ｃｍ-3から１０21ｃｍ-3の範囲で含み、深さ１０ｎｍから５００ｎｍ程度に形成される。さらに、ｎ型拡散層２８は隣接するメモリセル同士共有され、いわゆる、ＮＡＮＤ接続が実現されている。
【００３６】
図６に示す“２６SSL”、“２６GSL”は、それぞれ“ＳＳＬ”に相当するブロック選択線、“ＧＳＬ”に相当するブロック選択線に接続されたゲート電極であり、上記浮遊ゲート型ＥＥＰＲＯＭの浮遊ゲート（電荷蓄積層２６）と同じ導電体層を用いて形成されている。なお、本明細書では、便宜上、“２６SSL”、“２６GSL”を電荷蓄積層と呼んでいるが、実際には“２６SSL”、“２６GSL”は電荷蓄積層ではなくゲート電極である。以下、ゲート電極２６SSL、２６GSLと読み替える。ゲート電極２６SSL、２６GSLそれぞれのゲート長、即ち、選択トランジスタのゲート長は、メモリセルのゲート長よりも長い。例えば、１μｍ以下０．０２μｍ以上である。選択トランジスタのゲート長を、メモリセルのゲート長より長くすることにより、ブロック選択時とブロック非選択時とのオンオフ比を大きく確保できる。オンオフ比を大きくできることは、誤書き込みの防止、及び誤読み出しの防止に有利である。
【００３７】
ゲート電極２６SSLを挟んで、ｎ型拡散層２８の反対側に形成されたｎ型拡散層２８dは、コンタクト３１d、中間配線３３d、及びコンタクト３４dを介してデータ転送線３６（BL）に接続されている。ｎ型拡散層２８dは、ｎ型拡散層２８と同様に、ソース電極、またはドレイン電極である。データ転送線３６（BL）の材料例は、例えば、タングステン、タングステンシリサイド、チタン、チタンナイトライド、またはアルミニウムである。中間配線３３dの材料も、例えば、データ転送線３６（BL）と同様で良い。データ転送線３６（BL）は、カラム方向に隣接するメモリセルブロックどうしを接続するように、図４において紙面左右方向に、例えば、メモリセルアレイの境界まで形成されている。ゲート電極２６GSLを挟んで、ｎ型拡散層２８の反対側に形成されたｎ型拡散層２８sは、コンタクト３１sを介してソース線３３（SL）に接続されている。ｎ型拡散層２８sは、ｎ型拡散層２８と同様に、ソース電極、またはドレイン電極である。ソース線３３sは、例えば、中間配線３３dと、同じ導電体層により形成される。ソース線３３sは、ロウ方向に隣接するメモリセルブロックどうしを接続するように、図４において紙面上下方向に、例えば、メモリセルアレイの境界まで形成されている。本例では、ソース線３３（ＳＬ）を有する例を示しているが、ｎ型拡散層２８sを、図４において紙面上下方向に、例えば、メモリセルアレイの境界まで形成し、ソース線としても良い。コンタクト３１d、３１sは導電領域であり、例えば、層間絶縁膜６８に形成された開口３０d、３０s内に充填された導電物で形成される。導電物の材料例は、例えば、ｎ型またはｐ型にドープされたポリシリコン、タングステン、タングステンシリサイド、アルミニウム、チタンナイトライド、チタンである。コンタクト３４dも、コンタクト３１d、３１sと同様である。上記層間絶縁膜６８は、ソース線３３（SL）、データ転送線３６（BL）、選択トランジスタ、メモリセルをそれぞれ絶縁する絶縁膜である。層間絶縁膜６８の材料例は、例えば、二酸化シリコン、窒化シリコンである。層間絶縁膜６８、及びデータ転送線３６（BL）の上層には、データ転送線３６（BL）よりも上層に存在する上部配線（図示せず）や、絶縁膜保護層３７が形成される。上部配線の材料例は、例えば、タングステン、アルミニウム、銅である。絶縁膜保護層３７の材料例は、例えば、二酸化シリコン、窒化シリコン、ポリイミドである。
【００３８】
図１、図２に示すように、メモリセルアレイ１には、メモリセルブロック４９が配列される。メモリセルブロック４９は、直列接続された不揮発性メモリセルを含む。または後述するように並列接続された不揮発性メモリセルを含む。
【００３９】
センスアンプ回路４６ａ、…、４６ｋは、データ読み出し時においてデータ転送線ＢＬ１ａ、ＢＬ２ａ、…、ＢＬ１ｋ、ＢＬ２ｋに読み出された読み出しデータをセンス増幅する。センスアンプ回路４６ａ、…、４６ｋは、データレジスタを兼ねており、データ書き込み時において書き込みデータを保持する。このため、センスアンプ回路４６ａ、…、４６ｋは、例えば、フリップフロップ回路を主体とした回路にて構成される。
【００４０】
センスアンプ回路４６ａは、データ転送線ＢＬ１ａ、ＢＬ２ａに、それぞれデータ転送線選択トランジスタＱ１ａ、Ｑ２ａを介して接続される。以下、同様に、センスアンプ回路４６ｋは、データ転送線ＢＬ１ｋ、ＢＬ２ｋに、それぞれデータ転送線選択トランジスタＱ１ｋ、Ｑ２ｋを介して接続される。
【００４１】
センスアンプ回路４６ａ〜４６ｋは、データ入出力バッファ４５に接続される。センスアンプ回路４６ａ〜４６ｋとデータ入出力バッファ４５との接続は、例えば、カラムデコーダ４８の出力によって制御される。
【００４２】
カラムデコーダ４８は、アドレスバッファ４７からアドレス信号を受け、アドレス信号をデコードしたデコード結果を出力する。これにより、データ入出力バッファ４５に与えられた書き込みデータはメモリセルアレイ１に書き込むことができ、また、メモリセルアレイ１から読み出された読み出しデータはデータ入出力バッファ４５に、図１に示す第３の内部Ｉ／Ｏ線を介して読み出すことができる。
【００４３】
ロウデコーダ３は、メモリセルアレイ１内のメモリセルを選択する。具体的には、ロウデコーダ３は、データ選択線ＷＬ０〜ＷＬ１５、及びブロック選択ゲートＳＳＬ、ＧＳＬを制御し、メモリセルアレイ１内のメモリセルを選択する。ロウデコーダ３は、スペア領域のロウデコーダ３ｓと、非スペア領域のロウデコーダ３ｎとに分けられる。スペア領域のロウデコーダ３ｓが指定するブロックアドレスは、限られる訳ではないが、消去の“０”ビットを含む数が少なくなるように形成されていると良い（例えば、図１２参照）。この理由は後述する。
【００４４】
本実施形態のメモリセルアレイ１は、非スペア領域１ｎとスペア領域１ｓとを含む。非スペア領域１ｎ、及びスペア領域１ｓは、それぞれ複数個のメモリセルブロック４９を有する。非スペア領域１ｎにおいて、複数個のメモリセルブロック４９は行列状に配置される。同じくスペア領域１ｓにおいても（ただし、図２は行列のうち、行（ロウ）のみを示す）、複数個のメモリセルブロック４９は行列状に配置される。非スペア領域１ｎ、及びスペア領域１ｓにおいて、ロウ方向に配置されたメモリセルブロック４９はそれぞれ、データ選択線ＷＬに共通に接続され、いわゆるページを構成する。
【００４５】
スペア領域１ｓは、非スペア領域１ｎ内のメモリセルブロック４９において置き換えの必要が生じた場合に、置き換えの必要が生じた非スペア領域１ｎ内のメモリセルブロック４９のデータをコピーし、置き換えるメモリセルブロック４９を含む。スペア領域１ｓ内のメモリセルブロック４９の総数は、例えば、非スペア領域１ｎ内のメモリセルブロック４９の総数よりも少なくなるように形成されている。ここで、複数ページを含むブロックのデータをフラッシュ消去（全消去）し、書き込むデータがある場合にのみ書き込みを行うメモリでは、スペア領域１ｓのデータを予め消去状態としておき、置き換えの必要が生じた場合に、スペア領域１ｓを用いるようにする。このようにスペア領域１ｓのデータを予め消去状態としておくことで、置き換えの必要が生じた場合に、スペア領域１ｓからデータを消去する時間を短縮できる。
【００４６】
基板電位制御回路４２は、メモリセルアレイ１が形成されるｐ型シリコン領域２３（またはｐ型シリコン基板２１）の電位を制御する。基板電位制御回路４２は、限られる訳ではないが、消去時に、例えば、１０Ｖ以上の消去電圧を発生できることが望ましい。
【００４７】
Ｖｐｇｍ発生回路４１ａは、例えば、電源電圧を昇圧した書き込み電圧Ｖｐｇｍを発生する。書き込み電圧Ｖｐｇｍは、データ書き込み時、選択されたメモリセルに対して使用される。書き込み電圧Ｖｐｇｍは、例えば、選択されたメモリセルの制御ゲート（データ選択線ＷＬ）に与えられる。書き込み電圧Ｖｐｇｍの電圧例は、６Ｖ以上３０Ｖ以下である。
【００４８】
Ｖｐａｓｓ発生回路４１ｂは、書き込み用中間電圧Ｖｐａｓｓを発生する。書き込み用中間電圧Ｖｐａｓｓは、データ書き込み時、非選択のメモリセルに対して使用される。書き込み用中間電圧Ｖｐａｓｓは、データ書き込み時、非選択のメモリセルの、例えば、制御ゲート（データ選択線ＷＬ）に与えられる。書き込み用中間電圧Ｖｐａｓｓの電圧例は、３Ｖ以上１５Ｖ以下である。
【００４９】
Ｖｒｅａｄ発生回路４１ｃは、読み出し用中間電圧Ｖｒｅａｄを発生する。読み出し用中間電圧Ｖｒｅａｄは、データ読み出し時、非選択のメモリセルに対して使用される。読み出し用中間電圧Ｖｒｅａｄは、データ読み出し時、非選択のメモリセルの、例えば、制御ゲート（データ選択線ＷＬ）に与えられる。読み出し用中間電圧Ｖｒｅａｄの電圧例は、１Ｖ以上９Ｖ以下である。メモリセルアレイ１が、ＮＡＮＤ型メモリセルアレイである場合には、限られる訳では無いが、メモリセルの書き込みしきい値電圧の上限よりも、例えば、１Ｖ程度高い電圧にすると良い。十分な読み出し電流の確保、及びリードディスターブ（read-disturb）の抑制の、双方を満足する観点からである。
【００５０】
Ｖｒｅｆ発生回路４１ｄは、しきい値判定電圧Ｖｒｅｆを発生する。しきい値判定電圧Ｖｒｅｆは、データ読み出し時、選択されたメモリセルに対して使用される。しきい値判定電圧Ｖｒｅｆは、データ読み出し時、選択されたメモリセルの、例えば、制御ゲート（データ選択線ＷＬ）に与えられる。しきい値判定電圧Ｖｒｅｆの電圧例は、メモリセルの、論理的に分離され、かつ論理的に隣接するしきい値電圧分布どうしの中間の電圧である。例えば、２値メモリであるならば、データ“１”に対応するしきい値電圧分布と、データ“０”に対応するしきい値電圧分布との間の電圧に設定される。多値メモリであって、多値データの判定を、しきい値判定電圧Ｖｒｅｆによって実行する場合には、しきい値判定電圧Ｖｒｅｆは複数設定される。例えば、４値メモリならば、例えば、３つのしきい値判定電圧Ｖｒｅｆ１〜Ｖｒｅｆ３がそれぞれ、
データ“１１”に対応するしきい値電圧分布と、データ“１０”に対応するしきい値電圧分布との間の電圧、
データ“１０”に対応するしきい値電圧分布と、データ“００”に対応するしきい値電圧分布との間の電圧、及び
データ“００”に対応するしきい値電圧分布と、データ“０１”に対応するしきい値電圧分布との間の電圧それぞれに設定される。
【００５１】
これらの電圧を発生する電圧発生回路４１ａ、４１ｂ、４１ｃ、４１ｄ、４２はそれぞれ、制御回路４０によって制御される。これにより、発生回路４１ａ、４１ｂ、４１ｃ、４１ｄ、４２はそれぞれ、“データ書き込み”、“データ読み出し”、及び“データ消去”の各状態において、必要な電圧出力を、データ選択線ドライバ２や、もしくはｐ型シリコン領域２３（またはｐ型シリコン基板２１）に与える。
【００５２】
データ線制御ドライバ２は、ロウデコーダ３の出力に従って、電圧発生回路４１ａ、４１ｂ、４１ｃ、４１ｄの電圧出力を、書き込み、または読み出しが必要なメモリセルの制御ゲート（データ選択線ＷＬ０〜ＷＬ１５）、及び選択された選択トランジスタの制御ゲート（ブロック選択線ＳＳＬ、ＧＳＬ）に対して与えるスイッチ回路である。
【００５３】
本明細書の全ての実施形態では、一連のシーケンスで読み出されるデータビット数が、“ｔ”を“１”より大きな自然数として一連のシーケンスで読み出されるデータビット数“ｎ”が、｛２m-1−ｔ×（ｍ−１）−１｝より大きく、（２m−ｔ×ｍ−１)以下である場合、少なくとも（ｎ＋ｔ×ｍ）個以上のメモリセルブロック４９を、図２に示す紙面左右、つまりデータ選択線ＷＬが延びる方向（ロウ方向）に沿って並列に用意する。これは１ページである。
【００５４】
図２に示す例では、センスアンプ回路４６についても、メモリセルブロック４９の１ページ分の並列接続数と同様に、少なくとも（ｎ＋ｔ×ｍ）個以上用意すると良い。このようにセンスアンプ回路４６及びメモリセルを準備することにより、例えば、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号を用いて、メモリセルアレイ１の一連のシーケンスで読み出された１ページの２ビット以上ｔビット以下のビット誤りを検出し、その位置を求めることができる。１ページに属する複数のメモリセルは、例えば、１つのデータ選択線ＷＬに共通に接続すると、１度のデータ選択によって、複数のメモリセルを同時選択できる。
【００５５】
さらに、センスアンプ回路４６の入出力は、メモリセルの読み出しや書き込み、および消去を制御する制御回路４０に接続されている。制御回路４０は、例えばデータバッファに与えられたデータをコマンド入力とし、メモリセルの読み出しや書き込み、および消去を制御する。
【００５６】
また、図１では単純化のため示していないが、センスアンプ回路４６には、制御回路４０からセンスアンプ回路４６の動作を制御する制御信号や、奇数番のデータ転送線（ＢＬ１）か偶数番のデータ転送線（ＢＬ２）かを選択する制御信号（図２中のsel１、sel２）が入力される。図１中、破線枠７で囲まれた部分は、例えば、ＮＡＮＤ型フラッシュメモリとして、典型的に１つの半導体基板上に形成される記憶装置を示している。破線枠７については、例えば、特開２００２−１５０７８３号に記載された回路ブロックを用いれば良い。従って、その詳しい説明は省略する。
【００５７】
次に、ＥＣＣ回路１００について説明する。以後の説明においては、慣例に従って、符号化前のデータ列を情報ビット、符号化時に付加されるビットを検査ビット、復号化後のデータ列で、情報ビットに引き続き誤り位置を示すビット列をシンドローム、記憶装置から読み出しによって得た誤りを含む可能性がある符号を受信符号と呼ぶ。
【００５８】
データ入出力バッファ４５は、ＥＣＣ回路１００に内部Ｉ／Ｏ線を介して接続される。ＥＣＣ回路１００は、誤りビット検出回路５及び誤りビット数判定回路６を含む。誤りビット検出回路５は、誤りビット数判定回路６に誤り情報を含む誤り検出信号を出力しても良い。さらに、誤り検出信号は、誤りビット検出回路５から、第１のＩ／Ｏ線を通じて出力されるシンドロームによって代用してもよい。誤りビット数判定回路６は、外部入出力端子（外部Ｉ／Ｏ）を介して、実施形態に係るデータ記憶システムと外部とのデータの授受を行う。誤りビット数判定回路６は、誤りビット数が予め決められた１を超えた基準値以上であることを判定する。基準値は、ＥＣＣで救済できるビット数と等しくしても良い。基準値を、ＥＣＣで救済できるビット数と等しくすると、ＥＣＣで救済後、誤りビットを発生させずに置き換えするブロック数を減少させ、必要とするスペアブロックの数を削減できる利点が得られる。また、誤りビット数が予め決められた１を超えた基準値以上の状態になった場合、この状態が生じたことを外部に知らせる信号を外部Ｉ／Ｏを通じて出力し、誤りビットを生じたブロックのデータを外部Ｉ／Ｏにつながれた外部回路によってコピーし、スペアブロックに置き換える動作を行うようにしても良い。
【００５９】
図７はＥＣＣ回路１００の構成例を示すブロック図である。
【００６０】
図７に示すように、誤りビット数判定回路６は、ＣＰＵ１０８と、ページバッファ１１と、誤りビット数基準値を記憶するＲＯＭ１１１と、Ｉ／Ｏポート１０６、１０７とを含む。ＥＣＣ回路１００は、例えば、フリップフロップや揮発性メモリからなるページカウンタ１０を含んでいても良い。ページカウンタ１０は、例えば、ＣＰＵ１０８に設けられる。ページカウンタ１０は、ブロック内容を転送するブロック内のページ数のインデックスを記憶する。ページカウンタ１０には、ページ数を“ｉ”として、ｌｏｇ2（ｉ）以上のビット数の段数を持つカウンタを用意すれば良い。さらに、ページカウンタ１０は、少なくともカウンタの全てのビットを一定の初期値とするリセット機能と、１ブロック内のすべてのページを１度ずつアクセスするようにページ数を増やす機能を有する。以下では、ページカウンタ１０の、最も機能的に簡単な例として、最初のページのインデックスを初期値とするリセット機能と、ページを“１”だけ増やす機能を有する、として説明する。
【００６１】
誤りビット数判定回路６は、さらに、例えば、ＳＲＡＭやＤＲＡＭなどの揮発性メモリからなるページバッファ１１を含んでいても良い。ページバッファ１１を含むと、図１に示すデータ記憶システム内でデータ訂正とスペア領域に対する修正データの書き込みが行え、外部Ｉ／Ｏ線にデータ出力し、外部装置（例えば、外部メモリ）とのデータの授受する時間や手順が必要ないので、動作を高速化できる利点がある。勿論、ページバッファ１１は、図１のデータ記憶システムの外にあり、外部Ｉ／Ｏによって記憶読み出し可能な状態にあれば、本例で示すスペアブロックへの置換動作を実現することはできる。ページバッファ１１に必要なビット数は、符号ビット数に等しいビット数以上あれば良い。
【００６２】
誤りビット検出回路５は、シンドロームを出力する回路である。シンドロームは、データ入出力バッファ４５から出力された一連のデータのビット誤りを含む。本例のように、２ビット以上のエラー修正が必要な場合には、シンドロームから不良ビット位置を求めるのに、ガロア体上の乗除算を行う必要がある。なお、本例では、不良ビット位置を特定し、その位置情報を誤り検出信号線、または第１の内部Ｉ／Ｏ線に出力するのは、誤りビット数判定回路６で行うものとする。誤りビット検出回路５としては、本例では、２ビット以上のエラー修正が可能な符号を用いる。このためには、誤りビット検出回路５とし、例えば、巡回符号復号器を用いれば良い。２ビット以上のエラー修正が可能な符号とする理由は後で詳しく説明する。２ビット以上のエラー修正が可能な符号は、不良ビットを含むページを置き換えるスペアページ数を、非スペアページ数に対して、例えば、５％以下の十分少ない割合で面積増加を抑制しつつ、効果を得るためにも有用である。また、１ビット誤りを訂正する符号では、訂正できる誤りビットは存在しても、訂正できる誤りビットは当然に１ビットである。本例のような１より大きな基準値を有する誤りビット数判定回路６の構成要素に含まれないことは言うまでも無い。
【００６３】
図８は、誤りビット検出回路５内に設けられる符号器１４の回路例を示す回路図、図９及び図１０はそれぞれ、誤りビット検出回路５内に設けられる複号器（シンドローム計算器）１５の例を示す回路図である。図８に示す符号器１４は、データ巡回ＢＣＨ符号符号器の具体的な一例である。図９及び図１０はそれぞれ、データ巡回ＢＣＨ符号複号器の具体的な例である。これらのデータ巡回ＢＣＨ符号符号器／復号器は、例えば、７ビットのデータビットで２ビット誤り訂正可能な、１５ビットの符号を形成する。以下の説明では２ビット誤りを生じた場合に、誤りを生じたページの内容をスペアブロックにコピーし、ブロック置き換えを行う例を示す。さらに、以下の説明では、説明を簡単とするために、ガロア体ＧＦ（２4）上の元を用いた巡回ＢＣＨ符号を示すが、勿論、任意のガロア体上の巡回ＢＣＨ符号やリードソロモン符号を同様に回路構成し用いることができるのは明らかである。さらに、慣例では消去状態の論理値を“１”、書き込み状態の論理値を“０”とするが、本例では消去状態の論理値を“０”、書き込み状態の論理値を“１”と逆に定義する。これは、本例では、線形な誤り訂正を行う回路を用いることを実施形態として述べているために、シンドロームが全て論理値“０”であることが“誤り無し”の状態に対応し、シンドロームを含む１ブロック全消去を行った場合に、あらためてシンドロームに符号を書き込まなくても、誤りが無い初期値を形成することができるようにするためである。勿論、メモリセルの書き込み及び消去論理値を慣例通りとし、第１の内部Ｉ／Ｏ線に論理反転回路を介在させることによって、誤りビット検出回路５において論理値がメモリセルと逆となるように設定しても良い。
【００６４】
図８に示すように、情報ビット入力は単位時間ごとに時系列として７ビット与えられるとする。また、参照符号８に示す回路は、１単位時間遅延させる回路であり、例えば、公知であるＤ型フリップフロップ等のフリップフロップ、又はラッチ回路で構成すれば良い。Ｄ型フリップフロップの場合、クロックが与えられる前は論理値“０”に設定されているものとする。また、クロックは各複数の回路８全てに対し、同期して与えても良い。クロック配線を単純化できる利点があるためである。参照符号Ｓ１（Ｓ１ａ、Ｓ１ｂ）はスイッチ回路である。スイッチ回路Ｓ１は、情報ビット入力中、つまり、１ビットから７ビットまでは“Ｓ１ａ”側に接続され、情報ビット入力終了後で検査ビット出力中、つまり８ビットから１５ビットまでは“Ｓ１ｂ”側に接続される。参照符号Ｓ２もまたスイッチ回路である。スイッチ回路Ｓ２は、情報ビット入力中、つまり、１ビットから８ビットまでは接続状態となり、情報ビット入力終了後で検査ビット出力中、つまり８ビットから１５ビットまでは論理値“０”を、図８中の○(白丸）方向に出力する。このような動作を、１５ビットの出力が終了するまで、１５回クロックを与えることにより、２ビット修正可能な巡回ＢＣＨ符号を作成することができる。
【００６５】
図１３に本例でのガロア体ＧＦ（２4）の元αiを示す。よく知られているように、ガロア体上での加算は、図１３に示す各ベクトル表示の各因子の排他的論理和を取ったものとなる。例えば、
α0＋α4＝（０００１）＋（００１１）＝（００１０）＝α1
となる。
【００６６】
乗算、及び除算は、“２4−１＝１５”なので、それぞれ
αi×αj＝α(i+j)mod15
αi／αj＝α(i-j)mod15
と計算すれば良い。
【００６７】
元αiの逆元α-iは、
α-i＝α0／αi
で求めることができる。
【００６８】
１５ビットの符号長を持つ２重誤り訂正２元ＢＣＨ符号の原始生成多項式Ｇs（ｘ）は、Ｍi（ｘ）をαiの最小多項式として、
Ｇs（ｘ）＝Ｍ1（ｘ）×Ｍ3（ｘ）
＝（ｘ4＋ｘ＋１）×（ｘ4＋ｘ3＋ｘ2＋ｘ＋１）
＝ｘ8＋ｘ7＋ｘ6＋ｘ4＋１
で与えられる。図８に示す回路は、上記Ｇs（ｘ）を回路的に表現する。従って、符号化においては、符号出力をＩ／Ｏ線１に電気的に接続し、外部Ｉ／Ｏを、誤りビット数判定回路６を含むデータ入出力制御回路を通じて、情報ビット入力に電気的に接続する。これによって、メモリセルに２ビットの訂正が可能な符号を書き込むことができる。
【００６９】
なお、外部Ｉ／Ｏは、具体的には、例えば、メモリカードの入出力端子や、本例のデータ記憶システムを収容したパッケージの外に、コネクタ、又は無線通信手段を通じて接続される入出力部分を示す。
【００７０】
図９及び図１０に示すデータ巡回ＢＣＨ符号複号器の具体的な例はそれぞれ、上記巡回ＢＣＨ符号から２値４ビット、即ち、ガロア体ＧＦ（２4）上のシンドロームを計算するシンドローム計算器１５の回路例である。
【００７１】
シンドローム計算器１５は、受信符号入力から１５単位時間遅れた後に、誤り位置情報を示すシンドロームｓ１、ｓ３の出力を得る。シンドロームｓ１、ｓ３は、それぞれ前述のＭ1（ｘ）、Ｍ3（ｘ）に対応するシンドロームである。後で誤り訂正の詳細は説明するが、シンドロームｓ１、ｓ３が全て“０”の場合には、誤りが無いと判断できる。
【００７２】
また、上記以外で、“ｓ１3＋ｓ３”が（００００）である場合には、１ビットの誤りが生じたと判断でき、“ｓ１3＋ｓ３”が（００００）でない場合には、２ビット以上の誤りが生じたと判断できる。
【００７３】
なお、“ｓ１3＋ｓ３”は、原始多項式を、
Ｍ1（ｘ）＝ｘ4＋ｘ＋１
としたガロア体上にて計算するものとする。
【００７４】
以上から、“ｓ１3＋ｓ３”を、図７に示すＣＰＵ１０８を用いて計算することで、メモリセルに２ビット以上の誤りを検出し、その位置情報を出力する回路が具体的に構成できる。復号化においては、符号入力をＩ／Ｏ線１に電気的に接続し、符号とシンドロームｓ１、ｓ３を誤りビット数判定回路６に電気的に接続する図７に示す構成とする。
【００７５】
なお、１５ビットの符号長を持つ１重誤り訂正２元ＢＣＨ符号の原始生成多項式は、
Ｍ1（ｘ）＝ｘ4＋ｘ＋１
で与えられる。従って、図９に示すように、１単位時間遅延させる回路の２値４本の出力を、ガロア体ＧＦ（２4）上の単位元をα倍するα倍回路２００を通じて、複数の回路８に順次フィードバックする。これにより、αを単位元とするシンドロームｓ１を得ることができる。同様に、図１０に示すように、α倍回路200を３つ直列に接続してから、複数の回路８に順次フィードバックする。これによりα3を単位元とするシンドロームｓ３を得ることができる。同様に、αkを単位元とするシンドロームｓｋは、α倍回路２００をｋ個直列に接続してから、複数の回路８に順次フィードバックすることで得ることができる。
【００７６】
次に、誤りビット数判定回路６の動作例を、図１１に示すフローチャートを用いて説明する。本動作例の説明においては、２ビットの誤り訂正を行う場合を例示する。
【００７７】
図１１に示す動作例は、読み出し時に“１”より大きな誤り判断ビット数、ここでは、２ビットの誤りを生じたページについて、選択的に空きスペアブロックに、ページデータをＥＣＣにて修正し、置き換える例である。本実施形態は、２ビットという１ビットよりもビット数が大きい誤りを生じたページを選び、選択的に置き換える。
【００７８】
まず、ＳＥ１において、シンドロームｓ１、ｓ３を、誤りビット検出回路５からＩ／Ｏポート１０６を通じて、誤りビット数判定回路６に転送する。また、受信符号を、誤りビット検出回路５からＩ／Ｏポート１０６を通じて、誤りビット数判定回路６内のページバッファ１１に転送する。
【００７９】
次に、ＳＥ２において、シンドロームｓ１、ｓ３のいずれかが、少なくとも１つの“１”を含むか否かを判別する。シンドロームｓ１、ｓ３のいずれもが“１”を含まない場合は、“誤りビット無し”である（Ｎ：Ｎｏ）。この場合、符号ビットの最初の７ビットを情報ビットとして出力する。また、シンドロームｓ１、ｓ３のいずれかが、少なくとも１つの“１”を含む場合は、“誤りビット有り”である（Ｙ：Ｙｅｓ）。この場合、ＳＥ３に進み、ＣＰＵ１０８において、Peterson法の行列式、
ｓｐ＝ｓ１3＋ｓ３
を計算する。この際、ガロア体ＧＦ(２4)上の乗算表、及び逆元表をそれぞれ、誤りビット数判定回路６の、例えば、ＲＯＭ１１１に内蔵させる（乗算表ＲＯＭ、及び逆元表ＲＯＭ）。これにより、乗除算計算を高速に行うことができる。ちなみに、乗算表ＲＯＭは、本例では、シンドロームｓ１、ｓ３が４ビットであるため、“４ビット＋４ビット＝８ビット”の入力で、４ビットの出力をすれば良く、例えば、２8×２4＝４０９６ビットの記憶素子で実現できる。同様に、逆元表ＲＯＭは、４ビット入力で４ビット出力すれば良く、例えば、２4×２4＝２５６ビットの記憶素子で実現できる。後述するように、２ビット以上の誤り訂正を、シンドロームをアドレス入力とし、誤り位置ローケータを出力とする対応表を作成して対応する場合には、上記（４０９６＋２５６）ビットよりも遥かに多いビット数を持つ対応表が必要となる。一方、２ビット以上の誤りがあっても、計算によって誤り位置ローケータを求める方法は、上記ビット数の記憶素子で良い。このように、乗算表ＲＯＭと逆元表ＲＯＭを用いる方法では、誤り訂正ビット数が大きく増えても記憶素子の個数を減らすことができ、回路面積を小さくできる利点がある。勿論、乗算表ＲＯＭや逆元表ＲＯＭは、いわゆるＲＯＭマッピングではなく、シンドロームをアドレス入力とし、誤り位置ローケータを出力とする論理回路によって形成されても良い。
【００８０】
次に、ＳＥ４において、行列式ｓｐが、少なくとも１つの“１”を含むか否かを判別する。行列式ｓｐが、１つも“１”を含まない場合にはＳＥ５に進み（Ｎ）、ＳＥ５において、シンドロームｓ１が少なくとも１つの“１”を含むか否かを判定する。
【００８１】
ＳＥ５において、シンドロームｓ１が、少なくとも１つの“１”を含む場合、誤りビットは１ビットである。この場合、ＳＥ６に進む（Ｙ）。ＳＥ６において、シンドロームｓ１の逆元を、ＣＰＵ１０８を用いてまず計算する。シンドロームｓ１の逆元を、図１３に示す元を参照して“αk”すると、“１５ビットで最後に入力したビットから数えて、（ｋ＋１）ビット目が誤りである”、と考えることができる。従って、ＳＥ６において、最後に入力したビットから数えて、（ｋ＋１）ビット目を、ビット反転して修正すれば良い。この後、この修正符号ビットの最初の７ビットを情報ビットとして出力する。
【００８２】
一方、ＳＥ５において、シンドロームｓ１が、１つも“１”を含まない場合、３ビット以上のビット誤りを生じたことになる。この場合、ＳＥ１４に進む（Ｎ）。ＳＥ１４において、外部Ｉ／ＯにＥＣＣ救済不可能である信号を出力して終了する。
【００８３】
また、ＳＥ４において、行列式ｓｐが、少なくとも１つの“１”を含む場合にはＳＥ７に進み（Ｙ）、ＳＥ７において、シンドロームｓ１が少なくとも１つの“１”を含むか否かを判定する。
【００８４】
ＳＥ７において、シンドロームｓ１が、１つも“１”を含まない場合、３ビット以上のビット誤りを生じたことになる。従って、ＳＥ１４に進み（Ｎ）、ＳＥ１４において、外部Ｉ／ＯにＥＣＣ救済不可能である信号を出力して終了する。
【００８５】
一方、ＳＥ７において、シンドロームｓ１が、１つでも“１”を含む場合、２ビット以上のビット不良を生じたことになる。この場合、ＳＥ８に進む（Ｙ）。
【００８６】
ＳＥ８において、誤り位置多項式σ（ｚ）の係数σ1、σ2を、ガロア体上で、
σ1＝ｓ１
σ2＝ｓｐ／ｓ１
として計算する。
【００８７】
次に、ＳＥ９において、誤り位置多項式、
σ（ｚ）＝１＋ｚ×σ1＋ｚ2×σ2
の“ｚ”に、ガロア体ＧＦ（２4）の元を代入し、
σ（ｚ）＝０
となる解を求める。この際、上述したが、ガロア体ＧＦ（２4）上の乗算表ＲＯＭを、誤りビット数判定回路６、例えば、ＲＯＭ１１１に内蔵させることによって、乗算計算を高速に行うことができる。
【００８８】
次に、ＳＥ１０において、“ｉ”、“ｊ”をそれぞれ、｛（ガロア体の元の数）−１｝から０以上の、互いに異なる整数（ｉ≠ｊ）として“αi”、“αj”という解が求めることができたか否かを判定する。
【００８９】
解が求まらない場合には、３ビット以上のビット誤りを生じたことになり、ＳＥ１４に進む（Ｎ）。ＳＥ１４において、外部Ｉ／ＯにＥＣＣ救済不可能である信号を出力して終了する。
【００９０】
解が求まった場合は、図１３に示す元を参照し、“αi”、“αj”とすると、“１５ビットで最後に入力したビットから数えて、（ｉ＋１）ビット目、及び（ｊ＋１）ビット目が誤りである”、と考えることができる。従って、ＳＥ１１において、最後に入力したビットから数えて、（ｉ＋１）ビット目、及び（ｊ＋１）ビット目をそれぞれ、ビット反転して修正すれば良い。
【００９１】
次に、ＳＥ１２において、使用していないスペアブロックが、まだ有るか否かを確認する。これは、例えば、ＦＡＴ（File Allocation Table）領域に、予め使用できるスペアブロックのアドレスを記憶するブロックアドレス情報記憶領域を準備する。例えば、使用したスペアブロックのアドレスは、ブロックアドレス情報記憶領域に記憶する。ＳＥ１２において、ブロックアドレス情報記憶領域に記憶されたスペアブロックのアドレスを調べることによって、使用していないスペアブロックが、まだ有るか否かを確認できる。ブロック置き換えの方法については、後で詳述する。ＳＥ１２において、“空きスペアブロック領域が有る”と判定された場合には、ＳＥ１３に進む（Ｙ）。ＳＥ１３において、当該ページ内容を、空きスペアブロックにエラー訂正して転送する。この操作に引き続いて、ＦＡＴ領域に記載された当該ページのブロックアドレスを、空きスペアブロックのアドレスに置き換えする作業を行っても良い。
【００９２】
一方、ＳＥ１２において、“空きスペアブロック領域が無い”と判定された場合には、ＳＥ１５に進む（Ｎ）。ＳＥ１５において、空きスペアブロックが無いことを示す信号を外部Ｉ／Ｏから出力する。この操作に引き続いて、当該ページ内容を、元のメモリブロックアドレスに書き戻す作業を行っても良い。
【００９３】
以上、図１１に示す動作例は、Peterson法を用いて、誤りビット位置を計算で求める方法である。この方法によれば、誤り位置ローケータを、対応表を引くことではなく計算によって求めるので、対応表のために必要な、大きなＲＯＭ領域１１１を必要とせず、より小さいＲＯＭ容量の回路で実現できる。よって、ＲＯＭ回路の面積縮小に有利であり、しかも、ＲＯＭ回路に消費される電力を少なく保つことができる。
【００９４】
さらに、本実施形態では、特に、非スペア領域のブロックアドレス、及びスペア領域のブロックアドレスの割り当てにも工夫が為されている。
【００９５】
図１２は、非スペア領域のブロックアドレス、及びスペア領域のブロックアドレスの割り当て例を示す。
【００９６】
図１２に示す割り当て例においては、非スペア領域の実アドレスに、非スペア領域とスペア領域とを判別するフラグアドレスビットを付加する。さらに、非スペア領域ではフラグアドレスビットを“０”とし、スペア領域ではフラグアドレスビットを“１”とする。図１２に示す割り当て例では、非スペア領域のブロックアドレスは、例えば、“ｙ”を“０”か“１”かのいずれかとなるビットとし、最上位ビットを非スペア領域とスペア領域とを判別するフラグアドレスビットとしている。つまり、非スペア領域のブロックアドレスは、
（０ｙｙｙｙｙｙｙｙｙｙ）
とし、スペア領域のブロックアドレスは、
（１ｙｙｙｙｙｙｙｙｙｙ）
とする。勿論、非スペア領域とスペア領域とを判別するフラグアドレスビットは、最上位ビットである必要はなく、最下位ビットなど任意の位置のビットを用いることができる。
【００９７】
さらに、本実施形態では、ブロックアドレスを、スペア領域のブロックアドレスに含まれる“０”のビットの数をなるべく減少させるように、割り当てる。このためには、まず、例えば、“１”ビットの数よりも“０”ビットの数が少なくなるように、ブロックアドレスを割り当てる必要がある。これには、スペア領域のブロックアドレスに、アドレスが全て“１”ビットであるようなブロックアドレス、例えば、
（１１１１１１１１１１１）
が含まれるようにする。さらに、ブロックアドレスを、より適切に割り当てる方法の一例を以下に説明する。
【００９８】
フラグアドレスビット以外のアドレスビットが全て“１”の場合、図１０に示す例では、
（１１１１１１１１１１１）
をクラス０とする。また、クラスｉは、クラス０の任意の“１”であるｉ個のビットを“０”に置き換えたものとする。例えば、クラス１はクラス０から１個のビットを“０”に置き換えたもの、クラス２はクラス０から２個のビットを“０”に置き換えたもの、…、となる。このようにして、クラス０、クラス１、クラス２、クラス３のように、クラスの少ないブロックアドレスを、選択的にスペア領域のブロックアドレスに割り当てる。このため、スペア領域のブロックアドレスは、結果として非連続となる。このようにすることにより、ＳＥ１３に示したスペアブロックへのデータ転送に伴うブロックアドレスを記憶する領域、例えば、ＦＡＴ領域の書き換えを、ＦＡＴ領域の消去を必要とせず、高速に書き換えることができる。なぜなら、“１”データを“０”にするには、ＦＡＴを含むブロック全体のデータを退避し、消去する必要があるのに対して、フラッシュメモリにおいて、“０”データを“１”データにする書き込みは、各ページに追加書き込みを行うことによって消去よりも高速に実現できるからである。
【００９９】
一方、連続アドレスを非スペア領域として割り当てる典型的な方法では、ブロックアドレスが、たとえ適切に割り付けられたとしても、
クラス０である（１１１１１１１１１１１）、
クラス１である（１１１１１１１１１１０）、
クラス１である（１１１１１１１１１０１）、
クラス２である（１１１１１１１１１００）、
クラス１である（１１１１１１１１０１１）、
クラス２である（１１１１１１１１０１０）、
クラス２である（１１１１１１１１００１）、
クラス３である（１１１１１１１１０００）、
のように、クラス３がクラス０の７個後に現れてしまう。同様に、クラスｎはクラス０の（２n−１）個後に現れてしまう。
【０１００】
これに対して、本実施形態のアドレス割り当てでは、クラス０、クラス１、クラス２のアドレスのそれぞれの個数は、スペア領域を示すフラグを除いたデータビット数を“ｋ”として、
１＋ｋ＋ｋ×（ｋ−１）／２
となり、ｋ＝１０である図１２に示す例では、例えば、典型的な例の８−１＝６個よりも遥かに多い最大５６個のブロックアドレスまでクラス２以下に保つことができる。スペアブロックのアドレス選択は、非スペア領域の任意のアドレスに対して、例えば、図１４に示すシーケンスに従って行えば良い。
【０１０１】
図１４に示す例は、クラス２までのスペアブロックを準備した場合の置き換え例である。クラス数は、ＳＥ３１〜ＳＥ３３と同様なフローを各クラスについて作成し、クラスの高い順にＳＥ３０とＳＥ３１との間にシーケンスとして並べることにより、拡張できる。図１４は、図１１に示すＳＥ１３、又は後述する図１９に示すＳＥ２５に対応するスペアブロックのアドレス選択シーケンスの例である。
【０１０２】
まず、ＳＥ３０において、置き換えを行う元ページを含むブロックアドレスを取得し、取得したブロックアドレスの論理反転ａ１を作成する。この際、一般的には、スペア領域を示すフラグ領域を含まないで反転する必要があるが、上述したように、非スペア領域のブロックアドレスを、
（０ｙｙｙｙｙｙｙｙｙｙ）
とし、スペア領域のブロックアドレスを、
（１ｙｙｙｙｙｙｙｙｙｙ）
とした場合には、スペア領域を含んで反転しても良い。
【０１０３】
次に、ＳＥ３１において、論理反転ａ１とクラス２の空きスペアブロックアドレス（ａ２）との論理和を取り、各ビットで、１ビットでも“０”が含まれているか否かを判定する。“０”が含まれている場合、当該スペア領域のアドレスビットが“０”、即ち、消去状態であり、同時に、当該元データページ領域のアドレスビットが“１”、つまり、書き込み状態であることとなる。これ以外の場合には、ＦＡＴ領域に含まれるデータページ領域のアドレスの変更に対して、各ビットで“０”の消去状態から、“０”の消去状態、又は書き込み状態“１”への変更のみとなる。よって、ＳＥ３２において当該ページを、ＳＥ３１で得たアドレスのスペアブロックに誤り訂正して転送し、ＦＡＴ領域の、データページ領域のアドレスの変更については、消去を必要とせず追加書き込みを行えば良い。
【０１０４】
次に、ＳＥ３３において、クラス２のデータ置き換えに、既に使用していない空きのスペアアドレスを全て調べたか否かを判定する。このＳＥ３１、ＳＥ３３のシーケンスによって、全てのクラス２のブロックが調査される。
【０１０５】
次に、ＳＥ３４において、論理反転ａ１とクラス１の空きスペアブロックアドレス（ａ２）との論理和を取り、各ビットで、１ビットでも“０”が含まれているか否かを判定する。“０”が含まれている場合、当該スペア領域のアドレスビットが“０”、即ち、消去状態であり、同時に、当該元データページ領域のアドレスビットが“１”、つまり、書き込み状態であることとなる。これ以外の場合には、ＦＡＴ領域に含まれるデータページ領域のアドレスの変更に対して、各ビットで、“０”の消去状態から、“０”の消去状態、又は書き込み状態“１”への変更のみとなる。よって、ＳＥ３５において当該ページを、ＳＥ３４で得たアドレスのスペアブロックに誤り訂正して転送し、ＦＡＴ領域の、データページ領域のアドレスの変更については、消去を必要とせず追加書き込みを行えば良い。
【０１０６】
次に、ＳＥ３６において、クラス１のデータ置き換えに、既に使用していない空きのスペアアドレスを全て調べたか否かを判定する。このＳＥ３４、ＳＥ３６のシーケンスによって、全てのクラス１のブロックが調査される。
【０１０７】
次に、ＳＥ３７において、クラス０の空きスペアブロックが既に使用されているか否かを調べる。なお、クラス０は全アドレスビットが“１”であるため、必ず追加書き込みのみでＦＡＴアドレスのスペアアドレスへの置き換えができる。使用されていない場合には、ＳＥ３８において、当該ページをＳＥ３７で得たスペアブロックに誤り訂正して転送し、ＦＡＴ領域の、データページ領域のアドレスの変更については、消去を必要とせず追加書き込みを行えば良い。ＳＥ３７において、使用されていた場合には、ＳＥ３９において、なるべくクラスの大きな空きスペアブロックアドレスを探し、当該ページをＳＥ３７で得たスペアブロックに誤り訂正して転送する。この際、ＦＡＴ領域の、データページ領域のアドレスの変更については、“１”の書き込み状態から“０”の消去状態への転移をするビットが含まれる。よって、ＦＡＴ領域のデータを一時退避し、ＦＡＴ領域を消去した後、スペア領域へのアドレス置き換えを行ったＦＡＴ領域のデータを書き戻す必要がある。
【０１０８】
以上のように、ＦＡＴ領域は、追加書き込みで変更が行われ、ＦＡＴ領域の書き込み、及び消去の繰り返しによる劣化を防ぐことができ、より信頼性の高い半導体記憶装置が実現できる。さらに、ＦＡＴ領域に対し、消去が必要になる確率を減少させることができるので、より高速にページの置き換え動作を実現することができる。
【０１０９】
次に、本実施形態のように、誤りビット数が予め決められた“１”を超えた基準値以上であることを判定し、スペアブロックに置き換える効果に関する、本件発明者の知見を説明する。
【０１１０】
１ビットあたりの良品率を“ｐ”として、ページ長ｍビットの各ページにｉビットのビット誤りを含む確率Ｐiは、ページ長ビット数ｍが、誤りビット数ｉよりも充分大きな範囲においては以下のようなポアソン分布で与えられる。
【数９】
2010191984.tif 000011
【０１１１】
信頼性の高い半導体記憶装置では、当然にビット不良を小さく抑制する必要があるので、“ｍｐ＜１”は満たされている。つまり、確率Ｐiは、誤りビット数ｉが大きくなると急激に減少する関数となる。
【０１１２】
次に、半導体記憶装置内のページ総数を“ｎ”とし、ｉビットのビット誤りを含むページ数を“ｋi”とした場合、１、２、…、ｓ個のビット誤りを含むページ数がｋ1、ｋ2、…、ｋs個である確率（期待値）Ｐexは以下のようになる。
【数１０】
2010191984.tif 000012
【０１１３】
期待値Ｐexを、ビット不良となり得るｋ1、ｋ2、…、ｋsの組み合わせで和を取ることにより、外部Ｉ／Ｏからみた不良率の計算を行うことができる。次いで、期待値Ｐexの対数を取って、“ｋi”で偏微分する。これによって、期待値Ｐexが最大となる点は、“ｎ”が各“ｋi”よりも充分に大きく、各“ｋi”が１以上の場合、±８％以下の誤差で以下のようになる。
【数１１】
2010191984.tif 000013
【０１１４】
よって、“ｋi”の期待値は、“ｋi”が１より充分に大きい場合には、
ｎＰi／Ｐ0
に等しくなる。また、“ｋi≧１”の場合の“ｋi”の期待値は、
０．６×ｎＰi／Ｐ0以上ｎＰi／Ｐ0以下
の範囲に抑えられる。ここで、“Ｐi”は、“ｉ”が大きくなると急激に減少する関数なので、i個の誤りビットを含むページ数の期待値ｋiは、“ｉ”が大きくなるほど、
（ｍｐ）i／ｉ！
に比例して急激に減少する。よって、誤りビット数が２以上の判定基準値以上に達したことを判定し、スペアブロックに置き換える本実施形態では、判定基準値を大きくすることによって、置き換えに必要なスペアブロック数を激減できる。
【０１１５】
加えて、判定基準値を、ＥＣＣの救済可能なビット数以内とすれば、判定基準値以下のビット誤りが生じても全てＥＣＣで救済可能であり、外部Ｉ／Ｏから出力されるデータは、誤りを全て訂正した情報ビットを出力できる。よって、判定基準値を、ＥＣＣで救済可能なビット数の最大値に設定する。判定基準値を、ＥＣＣで救済可能なビット数の最大値に設定することで、置き換えに必要なスペアブロック数を減少できる、という利点を得ることができる。
【０１１６】
また、本件発明者は以下の事項も見出した。
【０１１７】
ページ総数ｎが、ｉビットのビット誤りを含むページ数ｋiより充分大きい場合には、“Ｐex”の書式から“Ｐi”が１より充分に小さい場合、“ｋi”の分布は、ほぼポアソン分布、
（ｎＰi）ki／（ｋi）！×exp（−ｎＰi）
に従う。よって、“ｋi”の分散は“ｋi”の期待値に等しいと考えて良い。よって、１、２、…、ｓ個のビット誤りを含むページ数の個数分布が求められ、ｋ1、ｋ2、…、ｋs個の期待値、及び分散を求めることができる。従って、判定基準値以上の誤りビットを含むページを置き換えるべきスペアブロック数を、統計的に計算することができる。例えば、ｔ個のビット誤りを含むページ数の個数は、“ｋt”の期待値が５以上では、ポアソン分布の性質より正規分布に近似すると考えて良い。よって、ｔ個のビット誤りを含むページに対し、
ｋt＋３×（ｋt）0.5個
のスペアブロックを用意すれば、９９．７％以上の信頼度で、ｔ個のビット誤りを含むページを全て置き換えることができる。
【０１１８】
さらに、本件発明者は、判定基準値以上の全てのページを置き換えられるだけのスペアブロックを統計的に見積もり、予め準備しておくことで、外部Ｉ／Ｏから見た誤りビットを生じさせる確率を減少できることを見出した。
【０１１９】
ここで、本実施形態に係る記憶装置のビット誤りは、例えば、書き込みや消去を繰り返すことによって出荷時より不可逆的に増大し、一度ビット誤りが生じたビットは正常には戻らないものとする。この場合、例えば、ページ長がｍビットでｔビットの誤り訂正を行えるＥＣＣ回路を備えた構成で、ｔビットの誤りを生じた場合のページ置き換えを、ｎ回まで行える場合には、ページ置き換えを行った当該データ単位に対して、（ｎ＋１）×ｔビットまでの誤り訂正を行えるＥＣＣ回路を備えた構成と同等の不良率救済が可能である。
【０１２０】
ここで、“Ｐi”を計算したところで述べたように、ランダムビット不良の場合には、１ビットあたりの良品ビット確率を“ｐ”として、ページ長ｍビットの各ページにｉビットのビット誤りを含む確率Ｐiは、“ｍｐ”が１よりも充分小さい場合、“ｉ”が大きくなるほど、
（ｍｐ）i／ｉ！
に比例して急激に減少する。よって、ｎ回ページ置き換えを行ったページのデータは、少なくとも置き換えを行わないページのデータよりも、誤り訂正の行えないビット数を超えた誤りを生じる確率は、
（ｍｐ）nt倍以上
に急激に減少する。
【０１２１】
以上より、２以上の判定基準値ｔ以上に達したことを判定し、ｔ個以上のビット誤りを含むページを全て置き換えする場合には、外部Ｉ／Ｏから見た誤りビットを生じさせる不良率を（ｍｐ）nt倍以上に急激に減少させることができる。
【０１２２】
また、以上の議論から、一度置き換えたスペアブロックが不良になった場合に、さらに、スペアブロックで置き換えしても良い。それぞれのページに対してｎ回まで置換可能なスペアブロックを準備する、とすると、（ｎ＋１）×ｔビットまでの誤り訂正を行えるＥＣＣ回路を備えた構成と同等の不良率救済が可能となる。しかも、不良率は
（ｍｐ）nt／（ｎｔ）！
に比例して急激に減少する。
【０１２３】
さらに、詳細検討した結果、ＥＣＣで修正できるビット数を超えたページを置き換えられるスペアブロックの数を“ｂｋ”とすると、本実施形態のブロック置き換えを用いた場合には、少なくとも置き換えを行わない場合のＥＣＣを超えた許容誤り総ビット数ａｋに、（bｋ×ｔ）だけ加えた許容不良ビット数、即ち、ａｋ＋（ｂｋ×ｔ）まで、ＥＣＣを超えた許容誤り総ビット数が緩和されることを見出した。よって、置き換えを行わない場合のＥＣＣを超えた許容誤り総ビット数をａｋ´として、ｂｋ＞ａｋ´／ｔとするように、スペアブロックの数ｂｋをさらに追加する。このようにすれば、不良率は、
（ｍｐ）nt／（ｎｔ）！
に比例して急激に減少するので、外部Ｉ／Ｏから見た誤りビット数が、ほぼ１ビットも無い状態を実現できる。
【０１２４】
さらに、２回目に置き換えするのに必要なスペアブロック数の期待値を“ｋ2s”とし、１回置き換えするのに必要なスペアブロック数の期待値を“ｋs”として、
ｋ2s≧１  かつ  ｋs≧１
の場合には、（ｋ2s／ｋs）が（Ｐ2s／Ｐs）に比例するので、（ｍｐ）sに比例して急激に減少する。よって、２回以上の置き換えに必要なスペアブロック数によるチップ面積増加は、１回以上の置き換えに必要なスペアブロック数によるチップ面積増加よりも充分小さい範囲に抑えられる。勿論、図１２に示すスペア領域のアドレス構成を用いることによって、一度置き換えたスペアブロックが不良になった場合に、さらにスペアブロックで置き換えする場合でも、図１２に示した、よりクラスの小さいアドレスを、２度以上の置き換えに用いることによって、ＦＡＴ領域のデータページ領域の、アドレスの変更については、消去を必要とせず追加書き込みを行えば良く、高速で置き換え動作が実現できる。これは大きな利点である。
【０１２５】
一方、置き換えるべきスペアブロック数が、判定基準値を超えたページ数の、例えば、期待値よりも少ない場合には、スペアブロックで置き換えることができないｔビット以上の誤りを含むデータページが存在する場合の数と、確率要素Ｐexとが存在する。このため、この場合には、全ての置き換えを行ったページよりも、少なくとも（ｍｐ）-nt倍、不良ビットを含む確率が大きくなり、外部Ｉ／Ｏから見た誤りビットを生じさせる確率を大幅に増大させてしまう。
【０１２６】
例えば、全ブロック数を“ｎblock”規定の最大書き込み及び消去回数後での不良ブロック数の最大保証値を“ｎbad”とし、ＥＣＣの誤り訂正可能なビット数を“ＥＣＣ”ビット、誤りビット判定基準値ビット数を“ｉｄ”ビットとすると、ブロック置き換えを行わない場合の平均的な誤りビットの状態は、統計的に以下の式が成立する。
【数１２】
2010191984.tif 000014
【０１２７】
よって、上式を等号で置いた場合より、“ｍｐ”の上限ｍｐmaxを求めることができる。これにより、本実施形態で必要な置き換えするブロック数の平均値の上限ｎreplaceは、以下の式で与えられる。
【数１３】
2010191984.tif 000015
【０１２８】
ブロック数のばらつきまで考慮する場合は、上述の議論のように“ｎblockＰi”の分散を、“ｎblockＰi”と考え、信頼度を設定して計算すれば良い。本実施形態では当然に、信頼度を大きく取れば、上記“ｎreplace”よりも大きな置き換えブロック数が必要となる。また、式のｎblock、ｎbad、及びｎreplaceは、１ブロックを分割して各ページで置き換えたり、分割ページで置き換えたりする場合には、ブロック数を、それぞれページ数、分割ページ数と考えて計算すれば良い。なお、ＥＣＣで救済不可能なビット不良が生じる確率の総和の計算は、確率Ｐexを、各場合の数で足し合わせることで計算できる。
【０１２９】
以上より、本実施形態の構成、即ち、ＥＣＣでの誤りビットの判定基準値以上の全てのページを置き換えられるだけのスペアブロックを統計的に見積もり、予め準備しておくことで、外部Ｉ／Ｏから見た誤りビットを生じさせる確率を減少できる。
【０１３０】
ここで、ＲＯＭ１１１には、ページ置き換えを行う誤りビットの基準値を記憶するものとするが、これは、例えば、図１１に示したように、フローチャートのプログラムの判断値として記憶しても良い。また、勿論、例えばシーケンサーなどのハードウェアで誤りビット数判定回路６を構成してもよい。
【０１３１】
また、図１１に示す例では、Peterson法を用いて誤り位置ローケータを計算する方法を示したが、勿論、他の方法、例えば、ユークリッド法やBerlekamp-Massey法を用いて誤り位置ローケータを計算しても良い。
【０１３２】
さらに、本実施形態以外の全ての実施形態について言えることであるが、Reed-Solomon（ＲＳ）符号についても、ＢＣＨ符号と同様に、Peterson法、ユークリッド法、あるいはBerlekamp-Massey法を用いて、シンドロームから誤り位置ローケータを求めることができる。従って、本実施形態により説明した構成、及び効果を実現できる。
【０１３３】
図１５に、第１のメモリセルブロックの内容の誤りを訂正し、第２のメモリセルブロックに書き込み、誤りビットを含むデータを置き換える例を示す。なお、ここでスペア領域からなる第２のメモリセルブロックを、第１のメモリセルブロックと実質上同じ構造とする。これにより、メモリセルアレイの面積が縮小され、より安価なチップを構成できる、という利点を得ることができる。また、本例の第２のメモリセルブロックの１ブロック内の総ページ数は、少なくとも第１のメモリセルブロックの１ブロック内の総ページ数以上である必要がある。
【０１３４】
まず、ＳＥ４０において、ページカウンタ１０を、最初のページを示すようにリセットする。
【０１３５】
次に、ＳＥ４１において、誤りビット判定基準値以上のページを含む第１のメモリセルブロックについて、ページカウンタ１０の示すページを読み出し、誤り訂正してページバッファ１１に記憶する。この際、必要に応じ、例えば、本ブロックの読み出し操作が当該システム外より指示されている場合には、本読み出し内容を外部Ｉ／Ｏから出力しても良い。
【０１３６】
次に、ＳＥ４２において、ページカウンタ１０の示すスペア領域の第２のメモリセルブロックに、ページバッファ１１の内容を誤り検出符号になるように符号化して書き込む。この書き込みの情報ビットに加え、データ書き込み終了フラグを、書き込み終了後に第２のメモリセルブロックの他のビットに書き込んでも良い。このようにすると、書き込み時の電源の遮断による書き込み失敗を検出し、復帰シーケンスを行うことができる。
【０１３７】
次に、ＳＥ４３において、ページカウンタ１０のカウント値を、例えば、“１”増やす。
【０１３８】
次に、ＳＥ４４において、ページカウンタ１０が全てのページのインデックスを参照したか否かを判定する)。これは、ページカウンタ１０のカウント値を、“１”ずつ増やすＳＥ４３のシーケンスを用いている場合には、第１のメモリセルブロックに含まれる総ページ数と比較してインデックスがそれ以下か否かを判定することと等価である。本例では、メモリセルブロックごとの置き換えの方法を示したが、勿論、各ページごとに置き換えを行っても良い。この場合には、ページカウンタ１０は必要ない。スペアブロック領域で置き換えを行うページのページアドレスは、誤りビット判定基準値以上の元のページのページアドレス対して、“０”ビットが“０”か“１”ビットに対応し、“１”ビットは“１”ビットに対応するように、スペアブロック領域のページアドレスを選択する。これにより、ページアドレスについてのＦＡＴ変更についても追加書き込みで対応でき、消去する必要がなくなり、高速書き換えが実現できる。
【０１３９】
図１６にページバッファの回路例を示す。図１６に示す回路例は、情報ビット数であるｋビットのデータを一時記憶するページバッファ１１の例である。
【０１４０】
本例では、Ｄ型フリップフロップ２０１を直列にｋ段接続し、最終段の出力をｎチャネル型トランジスタ２０２、pチャネル型トランジスタ２０３、及びインバータ２０４からなる双方向スイッチ回路（bi-lateral switching circuit)によって接続している。なお、本例のＤ型フリップフロップ２０１としては、クロック入力が“Ｌ”（ここでは便宜的に０Ｖとする）から、“Ｈ”(ここでは便宜的にＶｃｃとする）に立ち上がる瞬間に出力が確定し、それ以後はクロックが“Ｈ”のままでも、“Ｌ”のままでも、“Ｈ”から“Ｌ”へ変化しても出力は変化しないエッジトリガー(edge trigger)型のフリップフロップとする。さらに、双方向スイッチ回路は、データ出力制御入力が“Ｈ”の場合に、トランジスタ２０２、２０３の電流端子が導通状態となり、“Ｌ”の場合に遮断状態となる回路である。図１７に、その回路の動作を示す。
【０１４１】
図１７に示すように、Ｄ型フリップフロップ２０１にデータを記憶する場合には、まず、データ出力制御入力を“Ｌ”とし、フリップフロップ２０１の出力がデータ入出力線に出力されないようにする。さらに、データ入出力（Ｉ／Ｏ）線に、Ｖｃｃ（“Ｈ”）か０Ｖ（“Ｌ”）のディジタルデータＤｉｎ１を与えた後、クロックを“Ｌ”から“Ｈ”にする。これにより、データＤｉｎ１のデータが、図１６中の最も左側に示されるフリップフロップ２０１に保持される。次いで、データ入出力（Ｉ／Ｏ）線に、Ｖｃｃ（“Ｈ”）か０Ｖ（“Ｌ”）のディジタルデータＤｉｎ２を与えた後、クロックを“Ｌ”から“Ｈ”にする。これにより、データＤｉｎ１が、図１６中の左から２番めに示されるフリップフロップ２０１に転送及び保持され、最も左側に示されるフリップフロップ２０１にデータＤｉｎ２が保持される。後は、順次ｋビットまでデータ入出力（Ｉ／Ｏ）)線にディジタルデータを与え、クロックを与えることにより、図１６中の最も右側に示されるフリップフロップ２０１から順に、“Ｄｉｎ１、Ｄｉｎ２、…Ｄｉｎｋ”のデータが保持される。このようにして、ページバッファ１１は、ｋビットのデータを保持する。
【０１４２】
本例に係るページバッファ１１からデータを読み出す際、まず、データ出力制御入力を“Ｈ”とし、図１６中の最も右側に示されるフリップフロップ２０１の出力をデータ入出力（Ｉ／Ｏ）線に出力する。これにより、データ入出力（Ｉ／Ｏ）線には、データＤｉｎ１のデータと同じデータ（ここではＤｏｕｔ１とする）が出力される。さらに、クロック入力を“Ｌ”から“Ｈ”にする。これにより、図１６中の最も右側に示されるフリップフロップ２０２に１ビットデータが転送され、保持される。その結果、データ入出力（Ｉ／Ｏ）線には、データＤｉｎ２のデータと同じデータ（ここではＤｏｕｔ２とする）が出力される。後は、全部で（ｋ−１）)回クロック入力を“Ｌ”から“Ｈ”にすることにより、データ入出力（Ｉ／Ｏ）線に、図１６中の最も右側に示されるフリップフロップ２０１から順に“Ｄｉｎ１、Ｄｉｎ２、…、Ｄｉｎｋ”のデータが出力される。このようにして、ページバッファ１１は、ｋビットのデータを出力する。
【０１４３】
本実施形態は、さらに以下の要件、及び効果を持つ。
【０１４４】
（１）  本明細書に開示する全ての実施形態は、ＥＣＣの救済できるビット数を増やさなくても、外部Ｉ／Ｏから見た不良率を減少できる。よって、ＥＣＣの救済できるビット数を増やす時に生じる、ＥＣＣ誤りビットの位置を計算する計算時間、及び回路面積をそれぞれ削減できる。また、ＥＣＣで救済できるビットが１ビット増えると、少なくとも、ｌｏｇ2（ｎ）個の小数点を切り上げたビット数だけ、ＥＣＣが使うビット数が増大する。よって、符号長が長くなってしまう事情や、結果、チップ面積が増加したり、ユーザが使用できるデータビット数が減少する事情を解消でき、より小さなメモリセルアレイ面積で信頼度の高い記憶装置を実現できる。
【０１４５】
システムの具体的構成で述べた量、空きスペア領域を準備することにより、外部Ｉ／Ｏから見たメモリ領域を、スペア領域との置き換えによってメモリの寿命まで信頼度を踏まえて保証することができる。
【０１４６】
また、ＥＣＣで修正できるビット数を超えたページを、置き換えられる置き換えスペアブロックの数を“ｂｋ”とし、誤りビット判定基準値を“ｔ”とし、置き換えを行わない場合のＥＣＣを超えた許容誤り総ビット数を“ａｋ´”として、“ｂｋ＞ａｋ´／ｔ”とするように、スペアブロックの数ｂｋを、さらに追加しておけば、外部Ｉ／Ｏから見た誤りビット数が、ほぼ１ビットもない状態を実現することができ、従来には無い程に信頼性が高い半導体記憶装置を実現できる。また、１ビットより大きい誤りビット基準値を用いることによって、従来には無い程に置き換えスペアブロックの数を少なくすることができ、より面積の小さな集積回路を実現できる。特に、全ブロック数を“ｎblock”、規定の最大書き込み及び消去回数後、または製品保証寿命時点での置き換え必要なブロック数の最大保証値を“ｎbad”とし、ＥＣＣの誤り訂正可能なビット数をＥＣＣビット、誤りビット判定基準値ビット数をｉｄビットとすると、少なくとも以下の式以上の置き換えブロック数ｎreplaceを形成することにより、実施形態における不良率低減の効果が、さらに高まる。
【数１４】
2010191984.tif 000016
【０１４７】
【数１５】
2010191984.tif 000017
【０１４８】
なお、上式中の“ａ”は、式を連立させることにより消去できる変数である。また、式のｎblock、ｎbad、及びｎreplaceは、１ブロックを分割して各ページで置き換えたり、分割ページで置き換えたりする場合には、ブロック数を、それぞれページ数、分割ページ数と考えて計算すればよい。
【０１４９】
さらに、ｉｄ≦ＥＣＣであるから、下式が成立する。
【数１６】
2010191984.tif 000018
【０１５０】
（２）  さらに、置き換えスペアブロックによってブロック置き換えを行う確率は、
１−（全てのページで誤り地が判定基準値より小さくなる条件でのＰexの総和）
として、定量的に計算することができる。よって、ブロック置き換えに必要な時間が生じる発生確率を求めることができ、システムのパフォーマンスを定量的に保証することができる。これは、例えば、ｎ１、ｎ２をｎ１＜ｎ２となる自然数として、書き込み及び消去回数がｎ１回までは、スペアブロックの置き換え確率が０％でシステムが外部Ｉ／Ｏからアクセスできない時間が生じないという保証に加え、例えば、ｎ１回からｎ２回までは、スペアブロックの置き換え確率をｒ、書き換えに係る時間をｔｋとすると、ｔｋ×ｒだけシステムが外部Ｉ／Ｏからアクセスできない時間が生じる、という製品保証をすることができる。これにより、従来装置よりも、信頼度を定量的に保証した信頼性の高い半導体記憶装置を実現できる。
【０１５１】
（３）  データ記憶システムの半導体記憶装置７は、誤り訂正ビットを含む複数の半導体メモリが形成されており、誤り訂正ビットを含まない記憶回路とメモリセルアレイのロウ方向の数が異なるのみでデータ破壊検出専用セルなど特別な回路や手段は半導体記憶装置７には必要ない。よって、特に、誤り訂正ビットと情報記憶ビットとを隣接して同様のパターンで繰り返し形成することができるため、従来と同じ半導体記憶装置７を用いて安価でチップ面積の小さいデータ記憶システムを実現できる。さらに、本実施形態では、データを実際読み出す場合に、各ページごとに誤りを生じたビット数の検知を行う。例えば、従来装置のように、電源投入および遮断時などの外部Ｉ／Ｏからのデータを読み出す必要がない時に、リフレッシュのためにデータを読み出す必要はない。よって、データのリフレッシュに必要な処理時間や電力を削減でき、より実読み出しの回数の多いページに対して多く誤り検知ができる。特に、この構成は、消去及び書き込み時にしきい値が設定内に入っているか否か調べるべりファイ読み出し動作を含む場合には、書き込み及び消去による誤りビット発生も検知することができ、より信頼性の高い半導体記憶装置が実現できる。さらに、誤り訂正必要な情報ビットが発生した時点より後に、必ず誤り検知がなされる。よって、誤りビットを生じる、いわゆる“裾ビット”の統計的挙動がチップ間または経時変化によって変化しても正しく誤り検知を行うことができる。
【０１５２】
（４）  ＥＣＣ回路１００は、誤りビット訂正を行える回路を有しており、データを外部Ｉ／Ｏに出力する過程で“１”から“０”へのデータ誤りでも、“０”から“１”へのデータ誤りのいずれでも訂正を行える。よって、本構成で、読み出しストレスによる消去ビットの書き込み状態への転移（read-disturb）のデータ訂正と共に、書き込みデータ保持不良のデータ訂正、ＮＡＮＤ構造で課題となる設定以上のしきい値への過剰書き込み(over program)のデータ訂正、非選択データ線に接続されたメモリセルに書き込みを行うことによる誤書き込みのデータ訂正も行うことができる。
【０１５３】
（５）  例えば、図３に示すように、選択ゲートトランジスタＳ１、Ｓ２間に、複数のページに相当するメモリセルＭ０〜Ｍ１５を形成し、これらを１ブロックとして用い、メモリセルＭ０からＭ１５までのデータを同時消去するメモリでは、１ブロックの消去時間に対して、１ページの書き込み時間を非常に小さくできるので、予め消去されたスペアブロックを形成しておくことで、スペア領域への置き換え時間を短くできる。
【０１５４】
（６）  本実施形態では、従来装置と異なり、実際の誤りビットを、誤り訂正符号化したデータより直接検出している。よって、符号化したいずれのビットが、書き込みストレスや読み出しストレスに非常に弱いセル、即ち“裾ビット”であっても、データ誤りが生じた時点で正しく検出できる。よって、データ置き換え間隔を実メモリセルの“裾ビット”の特性に即して設定でき、より長くすることによりデータ置き換えに費やされる時間を短くできる。
【０１５５】
（７）  本実施形態では、１ページに対して１回のデータ読み出しによって誤りビット検出を行っている。よって、従来の誤り訂正を検出しない場合と比較して読み出しにかかる時間は変化せず、高速で読み出しを行うことができる。
【０１５６】
（８）  本実施形態に係るデータ記憶システムでは、電源遮断、電源投入、及び１つのページのデータを外部データ出力端子より読み出す一連の動作を複数回繰り返した場合にはブロック置き換え動作を行えるため、ページに書き込んだ情報データと同じ情報データが読み出せる回数は、ブロック置き換え動作を行えるため、前記１つのページのデータを連続的に読み出す操作をページに書き込んだ情報データと同じ情報データが読み出せる回数よりも多くできる。よって、システム外部から見て、半導体記憶回路７単体よりも、読み出しストレスによる消去ビットの書き込み状態への転移（read-disturb）に対して信頼性が向上したデータ記憶システムとなる。また、書き込み消去を繰り返すことにより頻度が増大する書き込み設定値を超えた不良ビット（over- program）に対しても、本実施形態の置き換えを行うことにより、書き込み消去の繰り返し回数を実質伸ばすことができ、より信頼性が向上する。
【０１５７】
（９）  本実施形態では、スペア領域である第２のメモリセルブロックを、出荷前に予め消去すればよく、スペア領域へのデータ書き換えに対して、消去時間分を短くすることができる。
【０１５８】
（１０）  ここでは２ビットの誤り修正可能な巡回ＢＣＨ符号の、符号回路および復号回路を示したが、勿論、他の符号系、例えば、一般のＢＣＨ符号やＭ系列符号、畳み込み符号(convolutional code)、差集合巡回符号でも良く、それらを組み合わせても良い。ただし、第２の内部Ｉ／Ｏ線の配線数、及び第１の内部Ｉ／Ｏ線の配線数を少なくするためには、時系列で情報ビットを与えられ、少ない回路規模で符号化及び復号化できる巡回符号であるのが良い。また、例えば、符号語を、ｒビットまとめた２r個の元を持つ、いわゆるバイト符号でも勿論良く、例えば、ＢＣＨ符号系の中でのバイト符号であるリードソロモン符号でもよい。バイト符号の場合には、まず、元の何れかが誤りがあるというバイト誤りを検出し、その後に、誤り訂正前のバイトと誤り訂正後のバイトを１ビットずつ比較することにより、そのバイト内のデータの各ビットで誤りを生じたビットを“１”か“０”かを判別すれば良い。この後、例えば、上記判定結果で、少なくとも１つのビットで誤っている場合に、置き換え動作を行うようにすれば良い。また、畳み込み符号としては、例えば１ビット誤り訂正可能なワイナー・アッシュ符号(Wyner-Ash code)や、バースト誤り訂正可能な岩垂符号(Iwadare code), ハーゲルバーガー符号(Hagelbarger code)を用いることができる。
【０１５９】
（１１）  図１５に示すシーケンスにおいて、センスアンプ/データレジスタ回路４６は、１ページ分の情報を貯えるだけで、本コピーを実現でき、外部Ｉ／Ｏから外部に対してデータを読み出したり、外部テンポラリメモリを設けたりする必要はない。よって、外部Ｉ／Ｏを通じることによるデータ転送にかかる時間がなく、高速にシーケンスを実行でき、外部Ｉ／Ｏ回路を駆動する電力を削減できる。
【０１６０】
（第２実施形態）
第２実施形態は、第１実施形態とほぼ同一であるが、ＥＣＣで救済する場合のシーケンス及び回路構成が、第１実施形態と異なっている。第２実施形態において、第１実施形態と同一の部分や同一の電圧関係については、図面において同一符号を付し、もしくは割愛し、重複する説明は省略することにする。
【０１６１】
図１８は、第２実施形態に係る装置が備えるＥＣＣ回路１００のブロック例を示すブロック図である。
【０１６２】
図１８に示すように、第２実施形態に係る装置が備えるＥＣＣ回路１００は、シンドローム計算器１５の出力（シンドローム）ｓ１、ｓ３、…、ｓ2t-1（シンドローム入力）を、誤り位置ローケータ対応ＲＯＭ１１２に入力する。誤り位置ローケータ対応ＲＯＭ１１２は、誤り位置ローケータα-i、α-j、…α-n（誤り位置ローケータ入力）と、誤りビット個数を示す情報ビットとを出力する。これらの出力は、Ｉ／Ｏポート１０６に入力される。誤りビット数判定回路６は、誤りビット個数分だけ、誤り位置ローケータの示す誤り位置のビットを反転することによって、誤り訂正された符号出力を得ることができる。誤りビット数基準値記憶部１１１のＲＯＭは、本例では、ページ置き換えを行う誤りビットの基準値を記憶するものとするが、これは、例えば、第１実施形態のＲＯＭ１１１と同様に、図１１に示すフローチャートのプログラムの判断値を記憶するようにしても良い。勿論、例えば、シーケンサーなどのハードウェアで誤りビット数判定回路６を構成しても良い。
【０１６３】
図１９は、第２実施形態に係る装置の動作例を示す流れ図である。
【０１６４】
図１９は、読み出し時に１ビットより大きな誤り判断ビット数、ここでは、ｔビットの誤りを生じた場合ページについて、選択的に空きスペアブロックに、ページデータをＥＣＣにて修正して置き換える例を示している。また、本例では、シンドロームｓ１、ｓ３、ｓ2t-1と、誤り位置ローケータとの対応表をＲＯＭ１１１上に、予め作成しておくことで高速に誤りビット位置を求める方法を記述している。
【０１６５】
まず、ＳＥ１´において、シンドロームｓ１、ｓ３、…、ｓ2t-1を、誤りビット検出回路５からＩ／Ｏポート１０６を通じて誤りビット数判定回路６に転送する。また、受信符号を、誤りビット検出回路５からＩ／Ｏポート１０６を通じてビット数判定回路６内のページバッファ１１に転送する。
【０１６６】
次に、ＳＥ１６において、シンドロームｓ１、ｓ３、…、ｓ2t-1を、ＲＯＭ１１１上の“シンドローム→誤り位置ローケータ対応表”のアドレス入力に与え、誤り位置ローケータと誤り個数とをデータとして得る。図２０に、シンドロームから誤り位置ローケータを得る対応表の例を示す。本例では、アドレス入力として、それぞれガロア体ＧＦ（２4）上の根であるシンドロームをｔセット、即ち、シンドロームｓ１、ｓ３、…、ｓ2t-1を与える。よって、入力アドレスビット数は、本例では４×ｔビットとなる。これに対して、それぞれガロア体ＧＦ（２4）上の根である誤り位置ローケータα-i、α-j、…α-nと、誤りビット個数を出力する情報ビットとを出力する。誤りビット個数を出力する情報ビットは、例えば、ｌｏｇ2（ｔ＋１）の小数点を切り上げた数（以後ｃｎとする)だけあれば２進法によって、誤りビットの個数を出力することができる。ＢＣＨは線形符号のため、全てシンドロームが“０”の場合に、誤りビット無しとなる。
【０１６７】
１ビット誤りのアドレス数としては、(ガロア体の元の数)をｑ（ＧＦ（２4）の場合には１６）とすると、
q-1Ｃ1＝ｑ−１個
のアドレスが対応し、誤り位置ローケータα-iを出力する。また、シンドロームｓ１の逆元はα-iとなるので、シンドロームｓ１より直接、逆元表ＲＯＭで計算しても良い。ここで、図２０中のｉ、ｊ、…、ｎは、０以上（ｑ−１）以下の整数で、互いに異なる整数とする。また、（ｅ１、ｆ１、ｇ１、ｈ１）、（ｅ２、ｆ２、ｇ２、ｈ２）、…、（ｅｔ、ｆｔ、ｇｔ、ｈｔ）は、シンドロームｓ１、ｓ３、…、ｓ2t-1のベクトル表示であり、（ａ、ｂ、ｃ、ｄ）は、ベクトル表示した誤り位置ローケータ出力の任意の値で良い。
【０１６８】
同様に、２ビット誤りのアドレス数としては、
q-1Ｃ2＝（ｑ−１）（ｑ−２）／２個
のアドレスが対応し、２つの誤り位置ローケータα-i、α-jを出力する。この代替として、１ビット目の誤り位置ローケータα-iが判れば、２ビット目の誤り位置ローケータは、
α-j＝１／（ｓ１＋１／α-i）
となるため、２ビット目の誤り位置ローケータα-jは逆元表ＲＯＭがあれば簡単に計算できる。従って、一個のローケータでも良い。なお、逆元表ＲＯＭは、誤りビット数判定回路６に内蔵されても良い。逆元表ＲＯＭを、誤りビット数判定回路６に内蔵することで、動作を高速化できる。この場合、逆元表ＲＯＭは、例えば、ＲＯＭ１１１上に形成される。
【０１６９】
同様に、“ｋ”を１以上ｔ以下の整数とすると、ｋビット誤りのアドレス数としては、
q-1Ｃk個
のアドレスが対応し、ｋ個の誤り位置ローケータα-i、α-j、…、α-kを出力する。この代替として、１ビット目から（ｋ−１）ビット目の誤り位置ローケータα-i、α-j、…、α-(k-1)が判れば、ｋビット目の誤り位置ローケータは、
α-k＝１／（ｓ１＋１／α-i＋…＋１／α-(k-1)）
となるため、２ビット目の誤り位置ローケータα-jは逆元表ＲＯＭがあれば簡単に計算できる。同様にして、ｔビットまでの対応表としては、図２０に示すように、（０ビット誤り出力）、（１ビット誤り出力）、（２ビット誤り出力）、…、（ｔビット誤り出力）でそれぞれ、１、q-1Ｃ1、q-1Ｃ2、…、q-1Ｃt個のアドレスに対して誤り位置ローケータの出力を設定すれば良く、他のアドレスの場合には“誤りビットがｔビットを超える”、と出力すれば良い。また、それぞれの出力データビット数は、ガロア体ＧＦ（２4）の本例では、（０ビット誤り出力）、（１ビット誤り出力）、（２ビット誤り出力）、…、（ｔビット誤り出力）でそれぞれ、ｃｎ、（４×１＋ｃｎ）、（４×２＋ｃｎ）、…、（４×ｔ＋ｃｎ）個用意すれば良い。例えば、ＥＣＣが２ビットまで救済する場合、ｔ＝２であり、ｑ＝１６の図１１と同様な不良救済条件の例では、
（１＋16-1Ｃ1＋16-1Ｃ2）＝１＋１５＋１０５＝１２１個
のアドレスに対して誤り位置ローケータの出力を設定しておき、０ビット不良、１ビット不良、２ビット不良のそれぞれの出力データビット数は、２、６、１０ビット用意すれば良い。この場合、ＲＯＭ１１１のデータ数としては、少なくとも、
１×２＋１５×６＋１０５×１０＝１１４２ビット
のＲＯＭデータ領域を用意すれば良い。なお、逆元表ＲＯＭを用いた場合には、ガロア体ＧＦ（２4）の本例では、(０ビット誤り出力）、（１ビット誤り出力)、（２ビット誤り出力)、…、（ｔビット誤り出力）でそれぞれ、ｃｎ、ｃｎ、｛４×（２−１）＋ｃｎ｝、…、｛４×（ｔ−１）＋ｃｎ｝個用意すれば良い。この場合、１２１個のアドレスに対して誤り位置ローケータの出力を設定しておき、０ビット不良、１ビット不良、２ビット不良のそれぞれの出力データビット数は、２、２、６ビット用意すれば良い。この場合、ＲＯＭ１１１のデータ数としては、少なくとも、
１×２＋１５×２＋１０５×６＝６６２ビット
のＲＯＭデータ領域を用意すれば良い。この逆元表ＲＯＭと変換表ＲＯＭ１１１とを用いる方法は、逆元表ＲＯＭに必要なデータ数１６ビットを加えても、６７８ビットと必要なＲＯＭ領域を小さく保つことができる。
【０１７０】
このようにして得た誤り位置ローケータ、及び誤り個数より、ＳＥ１７において、ビット誤りが１個以上か否かを判定する。これは、具体的には、図２０中の誤り個数出力例に示すデータビットで、例えば、２進数で“００１”以上であることを判別すれば良い。“００１”より小さい、つまり、“０００”の場合には、誤りビットは無いので、符号ビットの最初の７ビットを情報ビットとして出力する。ビット誤りが１個以上ある場合（Ｙ）、ＳＥ１８に進む。
【０１７１】
ＳＥ１８において、ビット誤りがｔ個以上か否かを判定する。これは、具体的には、図２０中の誤り個数出力例に示すデータビットで、例えば、２進数でｔビットの２進数表現、例えば、“１１０”以上であることを判別すれば良い。“１１０”より小さい場合には、ビット誤りは、１ビット以上で（ｔ−１）ビット以下である（Ｎ）。この場合、ＳＥ１９に進む。ＳＥ１９において、例えば、ページバッファ１１上で誤り位置ローケータの示す位置のビットを反転させて誤り訂正を行い、正しいデータを外部Ｉ／Ｏから出力する。また、“１１０”以上である場合には、ビット誤りは、ｔビット以上である（Ｙ）。この場合、ＳＥ２０に進む。
【０１７２】
ＳＥ２０において、ビット誤りがｔビットか否かを判定する。これは、具体的には、図２０中の誤り個数出力例に示すデータビットで、例えば、２進数でｔビットの２進数表現、例えば、“１１０”と等しいことを判別すれば良い。ｔ個よりビット誤りが多い場合には、誤り訂正を行うことができない（Ｎ）。よって、この場合は、ＳＥ２１において、例えば、ｔビットを超えたビット不良を生じたこと、つまり、エラー修正不能なビット不良が生じたことを外部Ｉ／Ｏに出力する。一方、ビット誤りがｔビットの場合、ＳＥ２２において、１５ビットで最後に入力したビットから数えて（ｉ＋１）ビット目、（ｊ＋１）ビット目、…、及び（ｎ＋１）ビット目が誤りであると考え、ｔ個の誤りビットローケータの位置のビットをビット反転して修正する。
【０１７３】
次に、ＳＥ２３において、使用していないスペアブロック領域が有るか否かを確認する。これは、例えば、ＦＡＴ領域に予め使用できるスペアブロックアドレスを記憶する記憶領域を準備しておき、使用したスペアブロックについては上記記憶領域にスペアブロックアドレスを記憶しておく。つまり、ＳＥ２３において、上記記憶領域に記憶されたアドレスを調べることによって、使用していないスペアブロック領域が有るか否かを確認することができる。このブロック置き換えの方法については、第１実施形態で述べた方法を用いれば良い。次いで、ＳＥ２３において、“空きスペアブロック領域が有る”、と判定した場合には（Ｙ）、ＳＥ２５において、当該ページ内容を空きスペアブロック領域にエラー訂正して転送する。この操作に引き続いて、ＦＡＴ領域のアドレスを、空きスペアブロックに置き換えする作業を行っても良い。
【０１７４】
また、ＳＥ２３において、“空きスペアブロック領域が無い”、と場合と判定した場合には（Ｎ）、ＳＥ２４において、空きスペアブロック領域が無いことを示す信号を外部Ｉ／Ｏから出力する。この操作に引き続いて、当該ページ内容を元のメモリブロックアドレスに書き戻す作業を行っても良い。
【０１７５】
以上、図１９に示す操作は、第１実施形態に比較して、誤り位置ローケータの対応表を引く方法を用いているために、高速で誤り位置を求めることができ、より高速にデータ変換することができる。勿論、本実施形態中で示したように、逆元表ＲＯＭなどと組み合わせて、誤り位置ローケータの対応表の容量を小さく保つ方法を用いても良い。この場合には、比較的高速でＥＣＣ訂正に必要なＲＯＭ容量の小さいメモリを実現することができる。
【０１７６】
（第２実施形態の変形例）
次に、第２実施形態の変形例を説明する。
【０１７７】
図２１は、第２実施形態の変形例に係る装置が備えるＥＣＣ回路１００のブロック例を示すブロック図である。また、図２２に、第２実施形態の変形例に係る装置に利用されるシンドローム入力とが備えるＲＯＭの誤り位置ローケータの出力例を示す。本変形例のＲＯＭは、基本的には第２実施形態のＲＯＭと同じであるが、シンドローム計算器１５の出力（シンドローム）ｓ１、ｓ３、ｓ2t-1を、誤り位置ローケータ対応ＲＯＭ１１２に入力し、誤り位置ローケータβi、βj、…、βnと、誤りビット個数を出力する情報ビットとを出力する。また、図２２における（ａｂｃｄ）は、符号長の２進表現値の最大値よりも大きいか、（００００）となるアドレス表現とする。ここで、βは、例えば、前述のガロア体上の元ではなく、例えば、通常の２進数での誤り位置ビットのアドレス表現で良い。つまり、ｉビット目の誤り位置を示すローケータβiと（ｉ＋１）ビット目の誤り位置を示すローケータβi+1とは、２進数的に１増加、又は減少した符号となるようなアドレス表現とする。例えば、最初に入力した誤り位置から数えてｉビット目である場合には、“βi”は“ｉ”の２進数での誤り位置ビットのアドレス表現とすれば良い。例えば２ビット目が誤っている場合で“ｉ＝２”であると、（００１０）とすれば良いし、“ｉ＝１”であると、（０００１）とすれば良い。この出力を、本変形例では、例えば、ｔ個のカウンタ１１６の初期値設定入力とし、クロック入力ＣＬＫを与えることにより、１ビットづつカウンタ１１６の値を減じ、（００００）以下にはならないようにするものとする。ここで、ｔ個のカウンタ１１６のいずれかのカウンタの値が（０００１）となった場合に、“１”を出力するように回路（図２１ではカウンタの出力に接続されたＯＲ回路に相当する）を形成し、その出力が“１”の場合に、バッファの出力を反転するようにすれば（図２１では、排他的ＯＲ回路が対応する）、符号ビットの出力範囲では、誤りビットが訂正された符号を得ることができる。本変形例では、第２実施形態の誤りビット数判定回路６を、ハードウェアのみで構成できる。したがって、繰り返しなどを含むソフトウェアによるプログラムを必要とせず、誤りビット個数に従った誤り位置のビットを反転することによって、高速に誤り訂正された符号出力を得ることができる。例えば、シンドローム計算をシンドローム計算器１５にて終了した時点で、ページバッファ１１には、全符号が記憶される。よって、本変形例では、誤り位置ローケータ対応ＲＯＭ１１２の出力遅れ時間後に、ページバッファ１１とカウンタ１１６にクロック入力ＣＬＫを与えることにより、誤り訂正した符号を、瞬時に得ることができる。また、ＲＯＭ１１１には、ページ置き換えを行う誤りビットの基準値を記憶するものとするが、これは、例えば、第１実施形態の図７に示した回路と同様に、図１１のフローチャートのプログラムの判断値として記憶しても良い。
【０１７８】
このような第２実施形態に係る装置、及び第２実施形態の変形例に係る装置においても、第１実施形態と同様な要件、及び効果、例えば、（１）〜（１１）に記載した要件、及び効果を持つ。
【０１７９】
（第３実施形態）
図２３、及び図２４は、第３実施形態に係る装置が備えるメモリセルの断面例を示す断面図である。図２３に示す断面は第１実施形態の図５に示す断面に対応し、同じく図２４に示す断面は図６に示す断面に対応する。なお、平面パターンは、第１実施形態の図４に示した平面パターンと同一であるので、本実施形態においては省略する。
【０１８０】
第３実施形態は、第１実施形態において説明した浮遊ゲート型ＭＯＳトランジスタを用いたＮＡＮＤセルアレイブロック４９を、Ｍ-ＮＯ-Ｓトランジスタ、又はＭ-ＯＮＯ-Ｓトランジスタを用いたＮＡＮＤセルアレイブロック４９に変更したものである。
【０１８１】
図２３、及び図２４に示すように、第１実施形態と同様に、不揮発性メモリセルは直列に接続される。本実施形態の不揮発性メモリセルは、例えば、ＳｉＮやＳｉＯＮを電荷蓄積層２６とする、いわゆるＭ-ＮＯ-Ｓ型ＥＥＰＲＯＭセル、又はＭ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルである（以下、Ｍ-ＯＮＯ-Ｓ型セルとする）。直列に接続されたＭ-ＯＮＯ-Ｓ型セルの一端は、選択トランジスタを介してデータ転送線３６（ＢＬ）に接続され、その他端は、選択トランジスタを介して共通ソース線３３（ＳＬ）に接続される。Ｍ-ＯＮＯ-Ｓ型セル、及び選択トランジスタはそれぞれ、同一のｐ型シリコン領域２３上に形成される。ｐ型シリコン領域２３の不純物濃度、例えば、ボロン濃度は、第１実施形態と同様に１０14ｃｍ-3から１０19ｃｍ-3の範囲である。ｐ型シリコン領域２３は、例えば、ｐ型シリコン基板２１から、ｎ型シリコン領域２２によって分離される。これにより、ｐ型シリコン領域２３は、ｐ型シリコン基板２１とは独立して電位を印加でき、第１実施形態と同様に、消去時の昇圧回路の負荷が減り、消費電力を抑制できる利点を得られる。ｐ型シリコン領域２３上のメモリセルが形成される部分上にはトンネル絶縁膜２５が形成され、同じく選択トランジスタが形成される部分上にはゲート絶縁膜２５SSL、２５GSLが形成される。本実施形態におけるトンネル絶縁膜２５の例は、例えば、１ｎｍから１０ｎｍの範囲の厚みを持つシリコン酸化膜、またはシリコンオキシナイトライド膜である。ゲート絶縁膜２５SSL、２５GSLの一例は、例えば、厚さがトンネル絶縁膜２５よりも厚いシリコン酸化膜、またはシリコンオキシナイトライド膜である。ゲート絶縁膜２５SSL、２５GSLの厚さの一例は、例えば、３ｎｍから１５ｎｍの範囲である。トンネル絶縁膜２５上には、電荷蓄積層２６が形成される。本実施形態における電荷蓄積層２６の例は、例えば、３ｎｍから５０ｎｍの範囲の厚みを持つシリコン窒化膜、またはシリコンオキシナイトライド膜である。電荷蓄積層２６上には、ブロック絶縁膜（インターゲート絶縁膜）５０が形成される。本実施形態におけるブロック絶縁膜５０の例は、例えば、２ｎｍから１０ｎｍの厚みを持つシリコン酸化膜、Ａｌ2Ｏ3、ＨｆＳｉＯ、ＺｒＳｉＯ、ＨｆＳｉＯＮ、ＺｒＳｉＯＮである。ブロック絶縁膜５０上にはポリシリコン層５１が形成され、ゲート絶縁膜２５SSL、２５GSL上にはポリシリコン層５１SSL、５１GSLが形成される。ポリシリコン層５１、５１SSL、５１GSLは、例えば、１０ｎｍから５００ｎｍの範囲の厚さを持ち、リン、砒素、またはボロンを１０19ｃｍ-3から１０21ｃｍ-3の範囲で含む。なお、ポリシリコン層５１、５１SSL、５１GSLは必要に応じて設けられれば良い。ポリシリコン層５１上には制御ゲート２７（ＷＬ０〜ＷＬ１５）が形成され、ポリシリコン層５１SSL上には制御ゲート２７（ＳＳＬ）が形成され、ポリシリコン層５１GSL上には制御ゲート２７（ＧＳＬ）が形成される。制御ゲート２７の例は、第１実施形態と同様に、例えば、１０ｎｍから５００ｎｍの範囲の厚さを持ち、リン、砒素、またはボロンを１０17ｃｍ-3から１０21ｃｍ-3の範囲で含むポリシリコン、または金属シリサイドとポリシリコンとのスタック構造である。金属シリサイドの例は、例えば、ＷＳｉ、ＮｉＳｉ、ＭｏＳｉ、ＴｉＳｉ、ＣｏＳｉである。なお、ポリシリコン層５１、５１SSL、５１GSL、及び／又は制御ゲート２７（ＷＬ０〜ＷＬ１５）のリン、砒素、またはボロンの濃度を１０19ｃｍ-3以上に設定すると、ポリシリコン層５１、及び／又は制御ゲート２７（ＷＬ０〜ＷＬ１５）の空乏化を防ぐことができ、ＯＮＯ積層膜（ブロック絶縁膜５０、又は電荷蓄積層２６）にかかる電界が大きくなり、消去時間または書き込み時間の増大を抑制できる利点を得られる。
【０１８２】
制御ゲート２７（ＷＬ０〜ＷＬ１５）はそれぞれ、例えば、図２に示すデータ選択線ＷＬ０〜ＷＬ１５を構成する。データ選択線ＷＬ０〜ＷＬ１５はそれぞれ、例えば、隣接するメモリセルブロック４９どうしを接続し、ロウ方向に沿ってメモリセルアレイ１の一端から他端まで形成される。
【０１８３】
制御ゲート２７（ＳＳＬ、ＧＳＬ）はそれぞれ、例えば、図２に示すブロック選択線ＳＳＬ、ＧＳＬを構成する。ブロック選択線ＳＳＬ、ＧＳＬはそれぞれ、例えば、隣接するメモリセルブロック４９どうしを接続し、ロウ方向に沿ってメモリセルアレイ１の一端から他端まで形成される。
【０１８４】
本実施形態のゲート構造も、第１実施形態と同様に、電荷蓄積層２６の側壁、及びｐ型シリコン領域２３等の側壁が絶縁膜２４によって覆われている。このため、ｐ型シリコン領域２３の側壁（浅い溝の側壁）が外界に露出せず、電荷蓄積層２６がｐ型シリコン領域２３よりも下の部分にまで形成されることを抑制できる。したがって、本実施形態においても、第１実施形態と同様に、ゲート電界集中を抑制できること、寄生トランジスタの発生を抑制できること、サイドウォーク（Sidewalk）現象を抑制できること、という利点が得られる。
【０１８５】
ゲート構造の両側壁にはそれぞれ、側壁絶縁膜４３が形成される。側壁絶縁膜４３の例は、第１実施形態と同様に、例えば、５ｎｍから２００ｎｍの厚みを持つシリコン窒化膜、またはシリコン酸化膜である。ゲート構造間の下に位置するｐ型シリコン領域２３の部分には、ｎ型拡散層２８、２８d、２８sが形成される。ｎ型拡散層２８、２８d、２８sは、メモリセルや選択トランジスタのソース電極、またはドレイン電極である。ｎ型拡散層２８、２８d、２８sは、例えば、リン、又は砒素、又はアンチモンを、表面濃度が１０17ｃｍ-3から１０21ｃｍ-3の範囲で含み、深さ１０ｎｍから５００ｎｍの範囲に形成される。
【０１８６】
本実施形態に係るメモリセル、例えば、Ｍ-ＯＮＯ-Ｓ型セルは、ｎ型拡散層２８、トンネル絶縁膜２５、電荷蓄積層２６、ブロック絶縁膜５０、及び制御ゲート２７によって構成される。導電体層、例えば、ポリシリコン層５１は、ブロック絶縁膜５０と制御ゲート２７との間に、必要に応じて設けられる。Ｍ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルのゲート長の例は、例えば、０．０１μｍ以上０．５μｍ以下である。
【０１８７】
選択トランジスタは、ｎ型拡散層２８、２８s、２８d、ゲート絶縁膜２５SSL、２５GSL、及び制御ゲート２７（ＳＳＬ、ＧＳＬ）によって構成される。導電体層、例えば、ポリシリコン層５１は、ゲート絶縁膜２５SSLと制御ゲート２７（ＳＳＬ）との間、及びゲート絶縁膜２５GSLと制御ゲート２７（ＧＳＬ）との間に、必要に応じて設けられる。選択トランジスタのゲート長の例は、Ｍ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルのゲート長よりも長く、例えば、０．０２μｍ以上１μｍ以下である。選択トランジスタのゲート長を、Ｍ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルのゲート長よりも長くすると、ブロック選択時とブロック非選択時とのオンオフ比を大きく確保できる。これは、誤書き込みや誤読み出しの抑制に効果がある。
【０１８８】
本実施形態はＮＡＮＤ型を示しており、Ｍ-ＯＮＯ-Ｓ型セル、選択トランジスタは、互いに直列に接続される。このため、ｎ型拡散層２８、２８d、２８sは、隣接するＭ-ＯＮＯ-Ｓ型セルどうし、隣接するＭ-ＯＮＯ-Ｓ型セルと隣接する選択トランジスタ、隣接する選択トランジスタどうしでそれぞれ共有される。
【０１８９】
ｎ型拡散層２８dは、データ転送線３６（ＢＬ）に、コンタクト３１d、中間配線３３d、及びコンタクト３４dを介して接続される。データ転送線３６（ＢＬ）は、例えば、図２に示すデータ転送線ＢＬ１ａ〜ＢＬ２ｋを構成する。データ転送線ＢＬ１ａ〜ＢＬ２ｋは、例えば、隣接するメモリセルブロック４９どうしを接続し、カラム方向に沿ってメモリセルアレイ１の一端から他端まで形成される。データ転送線３６（ＢＬ）の材料例は、例えば、タングステン、タングステンシリサイド、チタン、チタンナイトライド、又はアルミニウムである。
【０１９０】
ｎ型拡散層２８sは、ソース線３３（ＳＬ）に、コンタクト３１sを介して接続される。ソース線３３（ＳＬ）は、例えば、図２に示すソース線ＳＬを構成する。ソース線ＳＬは、例えば、隣接するメモリセルブロック４９どうしを接続し、ロウ方向に沿ってメモリセルアレイ１の一端から他端まで形成される。ソース線ＳＬは、ｎ型拡散層２８sを、隣接するメモリセルブロック４９どうしを接続し、ロウ方向に沿ってメモリセルアレイ１の一端から他端まで形成し、ｎ型拡散層２８s自体をソース線ＳＬとしても良い。
【０１９１】
コンタクト３１s、３１d、３４dは、層間絶縁膜６８に形成された開口３０s、３０d、３５d内に形成される。コンタクト３１s、３１d、３４dの材料例は、例えば、ｎ型またはｐ型にドープされたポリシリコン、タングステン、タングステンシリサイド、アルミニウム、チタンナイトライド、又はチタン、又はこれら導電材料の積層構造である。層間絶縁膜６８の材料例は、シリコン酸化膜、又はシリコン窒化膜である。層間絶縁膜６８上、及びデータ転送線３６（ＢＬ）上には、絶縁膜保護層３７や、図示せぬ上部配線層が形成される。絶縁保護層３７の材料例は、例えば、シリコン酸化膜、シリコン窒化膜、又はポリイミドである。上部配線層の材料例は、タングステン、アルミニウム、又は銅である。
【０１９２】
第３実施形態によれば、第１実施形態から得られる利点に加え、Ｍ-ＯＮＯ-Ｓ型セルを用いているために、第１実施形態に係る浮遊ゲート型セルよりも、書き込み電圧、及び消去電圧を低電圧化できる。低電圧化できる結果、素子分離間隔を狭め、ゲート絶縁膜を薄膜化しても、絶縁耐圧を充分に維持できる。したがって、高電圧が印加される回路の面積を小さくでき、チップ面積を縮小し易い。
【０１９３】
さらに、浮遊ゲート型セルに比較して、電荷蓄積層２６の厚さを薄く、例えば、２０ｎｍ以下にでき、ゲート構造のアスペクト比を小さくできる。ゲート構造のアスペクト比を小さくできる結果、ゲート構造の加工性が向上する。さらに、層間絶縁膜６８の、ゲート構造間への埋め込み性も良くなり、絶縁耐圧も向上する。
【０１９４】
また、浮遊ゲート型セルに比較して、浮遊ゲートを形成するためのプロセス、及び浮遊ゲートを、例えば、ロウ方向に沿って分離するスリットを形成するためのプロセスが不要である。したがって、製造工程時間が短縮される。
【０１９５】
また、浮遊ゲート型セルに比較して、電荷蓄積層２６が絶縁体であり、電荷は、電荷トラップにトラップされる。このため、電荷が抜け難く、例えば、放射線に対して、強い耐性が得られる。しかも、側壁絶縁膜４３が薄くなっても、電荷トラップにトラップされた電荷は、全て抜けてしまうこともなく、良好な電荷保持特性を維持できる。
【０１９６】
さらに、電荷畜積層２６は、ｐ型シリコン領域２３と合わせずれなく形成できるので、電荷蓄積層２６とｐ型シリコン領域２３との間の容量を、より均一にできる。したがって、メモリセル間の容量ばらつきが低減される。
【０１９７】
（第４実施形態）
図２５はこの発明の第４実施形態に係るデータ記憶システムのセルアレイ部、及びセンスアンプ部の構成例を示すブロック図である。図２５に示すブロック図は、図２に示すブロック図に対応する。
【０１９８】
第４実施形態は、例えば、第１実施形態において説明したＮＡＮＤセルアレイブロック４９を、Virtual Ground(仮想接地）セルアレイブロック４９´に変更したものである。また、メモリセルは、第３実施形態において説明したＭ-ＮＯ-Ｓ型ＥＥＰＲＯＭセル、又はＭ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルとする。
【０１９９】
図２５に示すように、メモリセルアレイ１には、仮想接地セルアレイブロック４９´が配置される。セルアレイブロック４９´は、第１データ転送線ＢＬ（ＢＬ１ａ、ＢＬ２ａ、…、ＢＬ１ｋ、ＢＬ２ｋ）と第２データ転送線ＢＬ（ＢＬ１ａ´、…、ＢＬ１ｋ´）との間に並列接続された不揮発性メモリセルを含む。第２データ転送線ＢＬ（ＢＬ１ａ´、…、ＢＬ１ｋ´）は、例えば、ソース線として機能する。
【０２００】
その他の回路構成、及び回路接続はそれぞれ、図２に示すセルアレイ部、及びセンスアンプ部の構成例と同様であるので、図２と同一の参照符号を付し、その説明は省略する。図２及びその説明を参照されたい。
【０２０１】
図２６、及び図２７は、第４実施形態に係る装置のメモリセルの断面例を示す断面図である。図２６に示す断面は第１実施形態の図５に示す断面と同様に、例えば、ロウ方向に沿った断面であり、同じく図２７に示す断面は図６に示す断面と同様に、例えば、ロウ方向と交差、例えば、直交するカラム方向に沿った断面である。図２６、及び図２７にはそれぞれ、２つずつのメモリセルの断面が含まれている。
【０２０２】
図２６、及び図２７に示すように、本実施形態の不揮発性メモリセルは、Ｍ-ＮＯ-Ｓ型ＥＥＰＲＯＭセル、又はＭ-ＯＮＯ-Ｓ型ＥＥＰＲＯＭセルである（以下、Ｍ-ＯＮＯ-Ｓ型セルとする）。基本構造は、第３実施形態において説明したメモリセルと同じである。特に、異なるところは、メモリセルのチャネル形成方向（チャネル長方向に一致する）が、データ選択線２７、２７´が延びる方向（ロウ方向）に一致していることにある。
【０２０３】
さらに、本実施形態のメモリセルは、ソース電極２８の近傍及びドレイン電極２８の近傍それぞれに電荷を蓄積させ、１セル当たり少なくとも２ビットの情報を記憶する。これら２ビットの情報はそれぞれ、ソース電極２８及びドレイン電極２８に印加する電圧の方向により読み出すことができる。この方法の公知例は、例えば、米国特許第６、２０１、２０２号がある。この方法で情報を読み出す場合、情報を読み出さない側のビットの電流端子と、情報を読み出す側のビットの電流端子とは、直列接続されていることと等価である。このため、情報を読み出さない側のビットは、ＮＡＮＤ型セルと同様なリードディスターブ（read disturb）ストレスが印加される。よって、情報を読み出さない側のビットは、読み出しを繰り返すと、消去状態から書き込み状態に変化する。
【０２０４】
図２６、及び図２８に示すように、ｐ型シリコン領域２３上には、第１の絶縁膜２５が形成される。ｐ型シリコン領域２３は、不純物濃度が１０14ｃｍ-3から１０19ｃｍ-3の範囲の、ボロン、又はインジウムを含む。本実施形態における第１の絶縁膜２５の例は、例えば、０．５ｎｍから１０ｎｍの範囲の厚みを持つシリコン酸化膜、又はシリコンオキシナイトライド膜である。第１の絶縁膜２５上には、電荷蓄積層２６が形成される。本実施形態における電荷蓄積層２６の例は、例えば、３ｎｍ以上５０ｎｍ以下の厚さを持つシリコン窒化膜である。電荷蓄積層２６上には、第２の絶縁膜（ブロック絶縁膜）５０が形成される。本実施形態における第２の絶縁膜５０の例は、５ｎｍ以上３０ｎｍ以下の厚さを持つシリコン酸化膜、オキシナイトライド膜、Ａｌ2Ｏ3、ＺｒＳｉＯ、ＨｆＳｉＯ、ＺｒＳｉＯＮ、又はＨｆＳｉＯＮである。第２の絶縁膜５０上には、導電体層５１、２７が形成される。本実施形態における導電体層５１、２７の例は、例えば、ポリシリコン層である。ポリシリコン層の具体例は、例えば、１０ｎｍから５００ｎｍの範囲の厚さを持ち、例えば、ボロン、リン、又はヒ素を１０19ｃｍ-3から１０21ｃｍ-3の範囲で含む。なお、導電体層５１は、必要に応じて設けられれば良い。なお、導電体層５１、２７をポリシリコン層とした場合、ポリシリコン層が含むボロン、リン、又は砒素の濃度は、１０19ｃｍ-3以上にすると良い。制御電極の空乏化を防ぐことができるので、ＯＮＯ積層膜（第２の絶縁膜５０、電荷蓄積層２６、第１の絶縁膜２５）にかかる電界が大きくなり、消去時間または書き込み時間の増大を抑制できる、という利点が得られる。導電体層２７上には、低抵抗導電体層２７´が形成される。低抵抗導電体層２７´の例は、例えば、１０ｎｍから５００ｎｍの範囲の厚さを持つ、ＷＳｉ、ＮｉＳｉ、ＭｏＳｉ、ＴｉＳｉ、ＣｏＳｉ、Ｗ、Ａｌ、又はＡｌＣｕである。低抵抗導電体層２７´は、必要に応じて設けられれば良い。本実施形態においては、導電体層５１、２７が制御ゲート電極を構成し、低抵抗導電体層２７´が制御ゲート電極、即ちデータ選択線を低抵抗化する。低抵抗導電体層２７´上には、絶縁膜６０が形成される。絶縁膜６０の例は、例えば、５ｎｍから５００ｎｍの範囲の厚さを持つシリコン窒化膜、又はシリコン酸化膜である。絶縁膜６０は、ゲート電極加工時のマスクとして機能する。絶縁膜６０は、必要に応じて設けられれば良い。
【０２０５】
ゲート電極の両側壁にはそれぞれ、側壁絶縁膜１９が形成される。本実施形態における側壁絶縁膜１９は、導電体層５１のロウ方向に沿った断面の両側壁から導電体層２７内にかけて形成される。側壁絶縁膜１９の例は、例えば、シリコン酸化膜、又はシリコンオキシナイトライド膜である。さらに、導電体層５１が、例えば、シリコンを含む導電体であった時、本実施形態における側壁絶縁膜１９の、少なくとも導電体層５１に接する面は、導電体層５１を酸化する又は酸窒化することによって形成される。酸化法、及び酸窒化法の例は、それぞれ熱酸化、熱酸窒化である。これによる利点は、堆積法、例えば、ＣＶＤ法を用いて形成した堆積膜よりも、電荷トラップ密度が小さく、絶縁耐圧(dielectric breakdown voltage)も高く、かつ導電体層５１と側壁絶縁膜１９との間の界面準位密度が低くなることにある。側壁絶縁膜１９には、堆積法を用いて形成した堆積膜よりも品質の高い熱酸化膜、又は熱酸窒化膜を用いることが可能である。
【０２０６】
なお、図２６に示すように、本実施形態における電荷蓄積層２６は、ｎ型ソース／ドレイン領域２８上方において部分的に取り除かれ、取り除いた部分に層間絶縁膜６８が形成される例が示されている。本実施形態における電荷蓄積層２６は絶縁体である。したがって、電荷蓄積層２６は、ｎ型ソース／ドレイン領域２８上方において部分的に取り除く必要は、必ずしも無い。電荷蓄積層２６は、連続的に形成されていても良い。
【０２０７】
第４実施形態に係るメモリセルは、例えば、次のような手順で形成できる。
【０２０８】
まず、例えば、ｎ型シリコン領域２２をｐ型シリコン基板２１内に形成し、ｐ型シリコン領域２３をｎ型シリコン領域２２内に形成する。
【０２０９】
次に、第１の絶縁膜２５をｐ型シリコン領域２３上に形成し、電荷蓄積層２６を第１絶縁膜２５上に形成し、第２の絶縁膜５０を電荷蓄積層２６上に形成し、導電体層５１、例えば、シリコンを含む導電体層５１を第２の絶縁膜５０上に形成する。
【０２１０】
次に、導電体層５１、第２の絶縁膜５０、電荷蓄積層２６及び第１の絶縁膜２５をエッチング、例えば、異方性エッチングし、導電体層５１、第２の絶縁膜５０、電荷蓄積層２６及び第１の絶縁膜２５を部分的に取り除く。これにより、カラム方向（紙面表裏方向）に沿って長手となる、導電体層５１、第２の絶縁膜５０、電荷蓄積層２６及び第１の絶縁膜２５をそれぞれ含む複数の第１線状構造をｐ型シリコン領域２３上に得る。
【０２１１】
次に、導電体層５１の表面を酸化又は酸窒化、例えば、熱酸化又は熱酸窒化し、側壁絶縁膜１９を導電体層５１の表面上に得る。
【０２１２】
次に、第１線状構造をマスクに用いて、ｎ型不純物、例えば、リン、砒素又はアンチモンをｐ型シリコン領域２３内に、表面濃度が１０17ｃｍ-3から１０21ｃｍ-3の範囲となるように、深さ１０ｎｍから５００ｎｍの間にイオン注入する。これにより、ｎ型拡散層２８をｐ型シリコン領域２３内に得る。ｎ型拡散層２８は、メモリセルのソース領域及びドレイン領域である。
【０２１３】
次に、絶縁物、例えば、酸化シリコン、シリケートガラス又は無機ガラスを、第１線状構造及びｐ型シリコン領域２３（ｎ型拡散層２８）それぞれの露出面上に、１０ｎｍから１０００ｎｍの厚さの範囲に堆積し、層間絶縁膜６８を得る。
【０２１４】
次に、層間絶縁膜６８の上面をエッチバック、例えば、ＣＭＰ（Chemical Mechanical Polishing）し、層間絶縁膜６８の上面を平坦化する。
【０２１５】
次に、導電体層５１の上面上に存在する側壁絶縁膜１９を除去、例えば、フッ化アンモニウム溶液等を用いてウェットエッチングし、導電体層５１の上面を露出させる。
【０２１６】
次に、導電物、例えば、導電性ポリシリコン又はＳｉＧｅ混晶を、導電体層５１上及び層間絶縁膜６８上に１０ｎｍから３００ｎｍの厚さの範囲に堆積し、導電体層２７を得る。なお、導電体層２７に導電性不純物、例えば、ボロン、リン又は砒素を含有させる場合、その濃度を１×１０19ｃｍ-3以上とすると、上述したように、ＯＮＯ積層膜（第２の絶縁膜５０、電荷蓄積層２６、第１の絶縁膜２５）にかかる電界が大きくなり、消去時間または書き込み時間の増大を抑制できる。
【０２１７】
次に、導電体層２７よりも低抵抗な導電物、例えば、ＷＳｉ、ＮｉＳｉ、ＭｏＳｉ、ＴｉＳｉ、ＣｏＳｉ、Ｗ、Ａｌ又はＡｌＣｕを導電体層２７上に堆積し、低抵抗導電体層２７´を得る。
【０２１８】
次に、マスク材、例えば、窒化シリコン又は酸化シリコンを低抵抗導電体層２７´上に堆積し、絶縁膜６０を得る。
【０２１９】
次に、絶縁膜６０、低抵抗導電体層２７´、導電体層２７、導電体層５１、側壁絶縁膜１９、第２の絶縁膜５０、電荷蓄積層２６及び第１の絶縁膜２５をエッチング、例えば、異方性エッチングし、これらを部分的に取り除く。これにより、ロウ方向（紙面左右方向）に沿って長手となる、絶縁膜６０、低抵抗導電体層２７´、導電体層２７、導電体層５１、側壁絶縁膜１９、第２の絶縁膜５０、電荷蓄積層２６及び第１の絶縁膜２５をそれぞれ含む複数の第２の線状構造をｐ型シリコン領域２３上に得る。この工程において、メモリセルが、ロウ方向及びカラム方向それぞれに沿って１つ１つ分離される。
【０２２０】
次に、第２の線状構造をマスクに用いて、ｐ型不純物、例えば、ボロン、フッ化ボロン（ＢＦ2）又はインジウムをｐ型シリコン領域２３内に、表面濃度が１０16ｃｍ-3から１０18ｃｍ-3の範囲となるように、深さ１０ｎｍから５００ｎｍの間にイオン注入する。これにより、ｐ型シリコン領域２３よりも濃度が高い高濃度ｐ型拡散層１８をｐ型シリコン領域２３内に得る。高濃度ｐ型拡散層１８は、カラム方向に沿って隣接するメモリセルのチャネル間に流れるリーク電流を低減する層である。高濃度ｐ型拡散層１８は、必要に応じて設けられれば良い。
【０２２１】
次に、絶縁物、例えば、窒化シリコン、酸窒化シリコン又はアルミナを、第２線状構造及びｐ型シリコン領域２３（ｎ型拡散層２８、高濃度ｐ型拡散層１８）それぞれの露出面上に、５ｎｍから２００ｎｍの厚さの範囲に堆積し、絶縁膜６１を得る。絶縁膜６１は、例えば、ＣＶＤ(Chemical Vapor Deposition)法又はスパッタ法を用いて形成された堆積絶縁膜である。このような絶縁膜６１を、メモリセル上に堆積、例えば、全てのメモリセル上に堆積又はメモリセルアレイの全面上に堆積すると、絶縁膜６１より上方に形成される膜からのガス、ラジカル又はイオンが、メモリセルに対して悪い影響を及ぼす事情を抑制できる、という利点が得られる。
【０２２２】
次に、シリケートガラス、例えば、ＢＰＳＧ、ＰＳＧ又はＢＳＧを絶縁膜６１上に、１０ｎｍから１０００ｎｍの厚さの範囲に堆積し、層間絶縁膜６２を得る。ＢＰＳＧ、ＰＳＧ、ＢＳＧは、例えば、ボロン、リンを１×１０20ｃｍ-3以上含む。シリケートガラスはアルカリイオンをゲッタリングする機能がある。したがって、層間絶縁膜６２は、メモリセル上、例えば、全てのメモリセル上又はメモリセルアレイの全面上に形成堆積すると、アルカリイオンによる汚染を抑制できる、という利点が得られる。
【０２２３】
本実施形態では、層間絶縁膜６２は、絶縁膜６１に直接接して形成されているが、必ずしも接して形成される必要は無い。例えば、層間絶縁膜６２は、配線層間の絶縁膜や配線層上の絶縁膜として形成しても、ゲッタリングの効果はあるので構わない。
【０２２４】
シリケートガラスは、一般的に堆積直後の埋め込み性が悪い。このため、堆積後に、例えば、７５０℃から１０００℃の間で２分から１２０分の範囲でアニールすると、粘性流動が起こり、表面が平坦化する。アニールの際、シリケートガラスに含まれる水分又はヒドロニウムイオンが遊離する。例えば、水分はメモリセルのゲート端を酸化する。このため、例えば、第２の絶縁膜５０の膜厚が厚くなり、ゲート形状が変化する。しかし、絶縁膜６１を形成すると、例えば、水分が遮蔽されるので、上記ゲート形状の変化を抑制できる、という利点を得られる。
【０２２５】
層間絶縁膜６２としては、例えば、シクロペンタシラン又はポリシラザンを用いて形成した無機ガラスを用いても良い。この場合、シクロペンタシラン又はポリシラザンを無機ガラスに転換するための酸化工程が必要である。酸化剤は、水分同様に、ゲート形状を変化させてしまう。しかし、絶縁膜６１を形成すると、例えば、酸化剤が遮蔽されるので、上記ゲート形状の変化を抑制できる、という利点を得られる。これらのように、絶縁膜６１を形成することは、例えば、微細なメモリセルを集積する場合に有利である。
【０２２６】
なお、層間絶縁膜６２には、例えば、ＴＥＯＳやＨＤＰを用いて形成したシリコン酸化膜や、ＨＳＱ等の他の絶縁膜との積層構造を用いても良い。
【０２２７】
次に、上部配線３６を、層間絶縁膜６２上に形成する。上部配線３６は、半導体集積回路装置内に設けられる様々な配線である。上部配線３６は、例えば、半導体集積回路装置の用途に応じて様々に変化する。したがって、本実施形態では、上部配線３６の具体的な形状については省略し、上部配線３６が層間絶縁膜６２上に形成されることを図示するにとどめる。例えば、図２６及び図２７には、上部配線３６は、あたかも“１枚の板”のように示すにとどめる。上部配線３６は、１層のみを示しているが、もちろん２層以上の多層配線構造としても良い。
【０２２８】
次に、絶縁物、例えば、ＴＥＯＳ又はＨＤＰを用いて形成した酸化シリコン、又はＨＳＱを堆積し、層間絶縁膜３７を、上部配線３６上及び層間絶縁膜６２上に得る。
【０２２９】
次に、窒化シリコンを層間絶縁膜３７上に、例えば、プラズマ化学気相成長法を用い、２０ｎｍから１μｍの厚さの範囲で堆積し、シリコン窒化膜層３７´を得る。シリコン窒化膜層３７´は、チップ外部（半導体集積回路装置の上面）から拡散してくる水分をブロックする機能がある。
【０２３０】
第４実施形態によれば、上記実施形態の要件、及び効果に加え、以下の要件、及び効果がある。
【０２３１】
（１２）  導電体層（制御ゲート）２７は、ｎ型拡散層（ソース領域及びドレイン領域）２８が形成される方向（カラム方向、図２６では紙面表裏方向）に交差、例えば、直交する方向（ロウ方向、図２６では紙面左右方向）に形成される。そして、メモリセルは、ｎ型拡散層（ソース領域及びドレイン領域）２８間に並列接続される。このような接続状態を持つＥＥＰＲＯＭとしては、例えば、仮想接地アレイ（Virtual  Ground  Array）型がある。メモリセルをｎ型拡散層２８間に並列接続した半導体メモリは、メモリセルブロックの直列抵抗を小さく、かつ、一定にできる。したがって、メモリセルのしきい値の安定化に有利であり、しきい値分布幅が狭い、例えば、多値記憶メモリに有用である。
【０２３２】
また、層間絶縁膜（素子分離領域）６８及びｎ型拡散層２８はそれぞれ、電荷蓄積層２６に対して自己整合的に形成される。層間絶縁膜６８及びｎ型拡散層２８はそれぞれ、電荷蓄積層２６に対して合わせずれ余裕を確保する必要が無い。かつ層間絶縁膜６８は、ｎ型拡散層２８上に形成される。したがって、素子分離領域をメモリセル間に設ける半導体メモリや、電荷蓄積層２６を素子分離領域上に設ける半導体メモリに比較して、メモリセルを高密度に集積できる。
【０２３３】
なお、メモリセルをｎ型拡散層間に並列接続した半導体メモリのメモリセルアレイの要件、及び効果については、例えば、本件発明者による先行出願である特開２００２−１５０７８３号公報にも記載がある。
【０２３４】
（１３）  メモリセルは、Ｍ-ＯＮＯ-Ｓ型セルである。したがって、第３実施形態と同様に、浮遊ゲート型セルよりも、書き込み電圧及び消去電圧を低くでき、素子分離間隔を狭め、ゲート絶縁膜を薄くしても十分な絶縁耐圧を維持できる。このため、高電圧が印加される回路の面積を小さくでき、チップ面積を縮小し易い。
【０２３５】
第３実施形態と同様に、電荷蓄積層２６の厚さを薄くできるので、浮遊ゲート型セルに比較してゲート構造のアスペクト比を小さくでき、ゲート構造の加工性が良い。層間絶縁膜６８の、ゲート構造間への埋め込み性も良く、絶縁耐圧も良い。
【０２３６】
第３実施形態と同様に、浮遊ゲート型セルに比較して、浮遊ゲートを形成するためのプロセスを省略、もしくは簡単化できるので、製造工程時間が短縮される。
【０２３７】
第３実施形態と同様に、電荷が電荷トラップにトラップされるので、浮遊ゲート型セルに比較して電荷保持特性が良い。例えば、放射線に対して、強い耐性を得ることもできる。
【０２３８】
以上、この発明をいくつかの実施形態により説明したが、この発明はいくつかの実施形態に限定されるものではなく、その実施にあたっては発明の要旨を逸脱しない範囲で種々に変形することが可能である。
【０２３９】
例えば、素子分離領域、及び層間絶縁膜等の絶縁膜を形成する方法は、例えば、シリコンをシリコン酸化膜やシリコン窒化膜に変換する以外の方法を用いることが可能である。例えば、酸素イオンを堆積したシリコンに注入する方法、堆積したシリコンを酸化する方法を用いても良い。
【０２４０】
電荷蓄積層２６は、ＴｉＯ2、Ａｌ2Ｏ3、タンタル酸化膜、チタン酸ストロンチウム、チタン酸バリウム、及びチタン酸ジルコニウム鉛を用いても良い。また、これら材料を積層した積層膜を用いても良い。
【０２４１】
半導体基板は、ｐ型シリコンに限らず、ｎ型シリコン、ＳＯＩ基板上のＳＯＩシリコン層、ＳｉＧｅ混晶、ＳｉＧｅＣ混晶など、シリコンを含む基板、例えば、単結晶基板であれば良い。無論、半導体として、シリコン以外を使うこともできる。
【０２４２】
メモリセルとして、ｎチャネル型ＭＯＳＦＥＴ（ｎチャネル型浮遊ゲート型セル、ｎチャネル型Ｍ-ＮＯ-Ｓ型セル、ｎチャネル型Ｍ-ＯＮＯ-Ｓ型セル）を用いたが、ｐチャネル型ＭＯＳＦＥＴ（ｐチャネル型浮遊ゲート型セル、ｐチャネル型Ｍ-ＮＯ-Ｓ型セル、ｐチャネル型Ｍ-ＯＮＯ-Ｓ型セル）を用いても良い。この場合には、上記実施形態の各半導体領域の導電型を、ｎ型からｐ型へ、ｐ型からｎ型へとそれぞれ読み替えれば良い。さらに、導電性不純物として、砒素、リン及びアンチモンのいずれかを、それぞれインジウム及びボロンのいずれかに読み替えれば良い。
【０２４３】
導電体層（制御ゲート）２７、５１は、Ｓｉ半導体、ＳｉＧｅ混晶及びＳｉＧｅＣ混晶を用いることができ、これら材料を積層した積層構造にしても良い。また、これら材料は、多結晶、非晶質及び単結晶のいずれであっても良い。多結晶、非晶質及び単結晶の結晶性の異なる層を積層することも可能である。導電体層（制御ゲート）２７、５１が半導体であると、特に、シリコンを含んだ半導体であると、例えば、第４実施形態において説明したように、良好な側壁絶縁膜１９を得ることができる。側壁絶縁膜１９を、シリコンを含んだ半導体を酸化又は酸窒化によって形成できるためである。
【０２４４】
電荷蓄積層２６は、ソース領域側とドレイン領域との間で分離されていたり、ドット状に形成されていたりしても良い。
【０２４５】
低抵抗導電体層２７´は、例えば、Ｔｉ、Ｃｏ、Ｎｉ、Ｍｏ、Ｐｄ及びＰｔといった金属と、導電体層２７、例えば、シリコンを含む導電体層２７と反応させてシリサイドを形成し、これを低抵抗導電体層２７´としても良い。
【０２４６】
上記実施形態では、２値を記憶するメモリセルを用いた例を示したが、３値以上のディジタル値を、複数のしきい値として記憶するメモリセルを用いても良い。いわゆる多値メモリである。多値メモリは、２値メモリに比較して、各情報に対応したしきい値の分布幅が狭く、また、しきい値分布間の分離間隔も狭い。このため、多値メモリは、２値メモリに比較して、不良ビットが発生し易い。つまり、上記実施形態による利点は、多値メモリにおいてより有効に得ることができる。したがって、上記実施形態は、多値メモリに有用である。また、１つのメモリセルが記憶する情報の数を２n値とすると、情報データのデコードを簡略化できる利点がある。
【０２４７】
上記実施形態は、不揮発性半導体メモリの例を示したが、メモリセルで共有するデータ選択線を有し、上記データ選択線によってデータが並列に読み出されるメモリセルブロックと、並列に読み出したデータをＥＣＣにより誤りビットを訂正する回路と、メモリセルで共有するデータ選択線を有したスペアメモリセルブロックとを有した半導体メモリであれば、上記実施形態を適用することができる。この場合、誤りビットは、例えば、経年変化、エレクトロマイグレーション（electro-migration）、及び腐食(collusion)等によって生じる場合を考えれば良く、その誤りビット率を大幅に改善できることは明らかである。よって、例えば、メモリセルとしては、ＤＲＡＭセル、ＳＲＡＭセル、ＦｅＲＡＭセル、ＭＲＡＭセル等、メモリセルであればいずれでも用いることができる。
【０２４８】
また、各実施形態は単独で実施することが可能であるが、適宜組み合わせて実施することも可能である。
【０２４９】
また、各実施形態は種々の段階の発明を含んでおり、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することが可能である。
【０２５０】
また、各実施形態は、この発明を半導体メモリに適用した例に基づき説明したが、この発明は半導体メモリに限られるものではなく、半導体メモリを内蔵した半導体集積回路装置、例えば、プロセッサ、システムＬＳＩ等もまた、この発明の範疇である。
【０２５１】
以上、実施形態によれば、ＥＣＣ回路の検査ビット数を増加させること無しに、外部インターフェースから見た不良率を大幅に低減できる。特に、空き記憶領域として準備する数について、ある数以上予めスペア領域として用意することにより、ユーザの使用できるデータ記憶領域をライフエンドまで保証しつつ、外部インターフェースから見た不良率を急激に抑制できる。
【図面の簡単な説明】
【０２５２】
【図１】図１はこの発明の第１実施形態に係るデータ記憶システムの構成例を示すブロック図
【図２】図２はこの発明の第１実施形態に係るデータ記憶システムのセルアレイ部、及びセンスアンプ部の構成例を示すブロック図
【図３】図３は図２に示すメモリセルブロック４９の等価回路例を示す等価回路図
【図４】図４は図２に示すメモリセルブロック４９の平面パターン例を示す平面図
【図５】図５は図４中のＶ−Ｖ線に沿う断面図
【図６】図６は図４中のVI−VI線に沿う断面図
【図７】図７は図１に示すＥＣＣ回路１００の構成例を示すブロック図
【図８】図８は図７に示す符号器１４の回路例を示す回路図
【図９】図９は図７に示す複号器（シンドローム計算器）１５の回路例を示す回路図
【図１０】図１０は図７に示す復号器（シンドローム計算器）１５の回路例を示す回路図
【図１１】図１１はこの発明の第１実施形態に係るデータ記憶システムの置き換え動作例を示す流れ図
【図１２】図１２はこの発明の第１実施形態に係るデータ記憶システムのブロックアドレスの割り当て例を示す図
【図１３】図１３はガロア体の元を示す図
【図１４】図１４はこの発明の第１実施形態に係るデータ記憶システムのブロック選択動作例を示す流れ図
【図１５】図１５はこの発明の第１実施形態に係るデータ記憶システムの置き換え動作例を示す流れ図
【図１６】図１６は図７に示すページバッファ１１の回路例を示す回路図
【図１７】図１７は図１６に示すページバッファ１１の動作例を示す動作波形図
【図１８】図１８はこの発明の第２実施形態に係るデータ記憶システムが備えるＥＣＣ回路１００の構成例を示すブロック図
【図１９】図１９はこの発明の第２実施形態に係るデータ記憶システムの置き換え動作例を示す流れ図
【図２０】図２０はこの発明の第２実施形態に係るデータ記憶システムに利用されるシンドローム入力と誤り位置ローケータ出力との対応表の例を示す図
【図２１】図２１はこの発明の第２実施形態の変形例に係るデータ記憶システムが備えるＥＣＣ回路１００の構成例を示すブロック図
【図２２】図２２はこの発明の第２実施形態の変形例に係るデータ記憶システムに利用されるシンドローム入力と誤り位置ローケータ出力との対応表の例を示す図
【図２３】図２３はこの発明の第３実施形態に係るデータ記憶システムが備えるメモリセルのロウ方向に沿った断面例を示す断面図
【図２４】図２４はこの発明の第３実施形態に係るデータ記憶システムが備えるメモリセルのカラム方向に沿った断面例を示す断面図
【図２５】図２５はこの発明の第４実施形態に係るデータ記憶システムのセルアレイ部、及びセンスアンプ部の構成例を示すブロック図
【図２６】図２６はこの発明の第４実施形態に係るデータ記憶システムが備えるメモリセルのロウ方向に沿った断面例を示す断面図
【図２７】図２７はこの発明の第４実施形態に係るデータ記憶システムが備えるメモリセルのカラム方向に沿った断面例を示す断面図
【符号の説明】
【０２５３】
１ｎ…非スペア領域、１ｓ…スペア領域、５…誤りビット検出回路、６…誤りビット数判定回路、４９、４９´…メモリセルブロック、１００…ＥＣＣ回路
【図１】
2010191984.tif 000027
【図２】
2010191984.tif 000028
【図３】
2010191984.tif 000029
【図４】
2010191984.tif 000030
【図５】
2010191984.tif 000031
【図６】
2010191984.tif 000032
【図７】
2010191984.tif 000033
【図８】
2010191984.tif 000034
【図９】
2010191984.tif 000035
【図１０】
2010191984.tif 000036
【図１１】
2010191984.tif 000037
【図１２】
2010191984.tif 000038
【図１３】
2010191984.tif 000039
【図１４】
2010191984.tif 000040
【図１５】
2010191984.tif 000041
【図１６】
2010191984.tif 000042
【図１７】
2010191984.tif 000043
【図１８】
2010191984.tif 000044
【図１９】
2010191984.tif 000045
【図２０】
2010191984.tif 000046
【図２１】
2010191984.tif 000047
【図２２】
2010191984.tif 000048
【図２３】
2010191984.tif 000049
【図２４】
2010191984.tif 000050
【図２５】
2010191984.tif 000051
【図２６】
2010191984.tif 000052
【図２７】
2010191984.tif 000053
【手続補正書】
【提出日】平成22年4月27日(2010.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有する半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値、すなわち、不良ブロック数の最大保証値をｎbadとしたときに、
【数１】
2010191984.tif 000054
【数２】
2010191984.tif 000055
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数１、数２を満たすように設定することを特徴とする設定方法（ただし、ａは数１、数２を連立させることで消去できる変数）。
【請求項２】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
１ページ当たりの情報ビットの数をｎ、前記１ページ内で誤り訂正できる最大ビット数をｔ、並びにｍを｛２m-1−ｔ×（ｍ−１）−１｝＜ｎ≦（２m−ｔ×ｍ−１）を満たす自然数としたとき、
前記１ページ内のメモリセルの数は、（ｎ＋ｔ×ｍ）以上である半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値、すなわち、不良ブロック数の最大保証値をｎbadとしたときに、
【数３】
2010191984.tif 000056
【数４】
2010191984.tif 000057
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数３、数４を満たすように設定することを特徴とする設定方法（ただし、ａは数３、数４を連立させることで消去できる変数）。
【請求項３】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記非スペア領域及び前記スペア領域は、それぞれ複数のページで同時に消去動作が行われることを特徴とする半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値、すなわち、不良ブロック数の最大保証値をｎbadとしたときに、
【数５】
2010191984.tif 000058
【数６】
2010191984.tif 000059
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数５、数６を満たすように設定することを特徴とする設定方法（ただし、ａは数５、数６を連立させることで消去できる変数）。
【請求項４】
ｎblock個のメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含む非スペア領域と、
予めデータがある値に揃ったｎreplace個のスペアメモリセルブロックを有し、これらメモリセルブロックのいくつかに接続されるページを含むスペア領域と、
前記非スペア領域とスペア領域を含む、全メモリセルブロック数がntotal個のメモリセルブロックを有し、
前記メモリセルブロックは、電気蓄積層を有するMOSトランジスタからなる不揮発性メモリセルが直列に接続され、その一端は第一の選択トランジスタを介してデータ転送線に接続され、その他端は第二の選択トランジスタを介して共通ソース線に接続された構造を有する半導体記憶装置において、
一つのページに対して最大ＥＣＣビットの誤り訂正を行う誤り訂正回路とを具備し、
前記ＥＣＣビットは２ビット以上であり、規定の最大書き込み及び消去回数後、または製品保証寿命時点における、置き換えが必要な前記メモリセルブロックの数の最大保証値、すなわち、不良ブロック数の最大保証値をｎbadとしたときに、
【数７】
2010191984.tif 000060
【数８】
2010191984.tif 000061
前記非スペア領域のメモリセルブロックの個数ｎblockを、前記数７、数８を満たすように設定することを特徴とする設定方法（ただし、ａは数７、数８を連立させることで消去できる変数）。