(57)【特許請求の範囲】
【請求項１】
複数の記憶素子からなる記憶部と、
上記記憶部から読み出される、所定のデータ単位中のｎ（ｎ≧２）までの誤りを訂正可能な誤り訂正符号を用いて符号化された符号データ中の誤りを訂正する誤り訂正部と、
を一のパッケージ内に備え、
上記符号データのデータ単位中の誤り数がｍ（ｍ≦ｎ）以下である場合には、その誤りが訂正され、上記符号データのデータ単位中の誤り数が上記ｍを越える場合には、その符号データが記憶されていた上記記憶部の記憶領域が所定のブロック単位で不良領域とされ、
少なくとも製造時のセル不良率に基づいて、上記ｎ及びｍを、ｎ＝２、ｍ＝２の組、ｎ＝２、ｍ＝１の組、ｎ＝２、ｍ＝０の組のいずれかに選択設定することを特徴とする記憶装置。
【請求項２】
上記誤り訂正部は、上記符号データの各データ単位中の誤り数を検出して出力することを特徴とする請求項１記載の記憶装置。
【請求項３】
上記誤り訂正部は、外部制御信号により上記誤り訂正を行わないように制御されることを特徴とする請求項１記載の記憶装置。
【請求項４】
上記誤り訂正部は、上記データ単位中の２以上の誤りを訂正可能な誤り訂正符号を用い、上記符号データのデータ単位中の誤り数が１である場合には、その誤りが訂正され、上記符号データのデータ単位中の誤り数が２以上である場合にはその誤りを含む符号データが記憶されていた上記記憶部の記憶領域を上記データ単位で不良領域とされていることを特徴とする請求項１記載の記憶装置。
【請求項５】
上記誤り訂正符号は、ＢＣＨ符号または短縮化ＢＣＨ符号であることを特徴とする請求項４記載の記憶装置。
【請求項６】
複数の記憶素子からなる記憶部と、上記記憶部から読み出される、所定のデータ単位中のｎ（ｎ≧２）までの誤りを訂正可能な誤り訂正符号を用いて符号化された符号データ中の誤りを訂正する誤り訂正部とを一のパッケージ内に備えてなる記憶装置の検査方法であって、
上記符号データ中の誤り数を検出する誤り数検出工程と、
上記符号データのデータ単位中の誤り数がｍ（ｍ≦ｎ）以下である場合には、その誤りが訂正され、上記符号データのデータ単位中の誤り数が上記ｍを越える場合には、その符号データが記憶されていた上記記憶部の記憶領域を上記所定のブロック単位で不良領域とする不良領域指定工程と、
少なくとも製造時のセル不良率に基づいて、上記ｎ及びｍを、ｎ＝２、ｍ＝２の組、ｎ＝２、ｍ＝１の組、ｎ＝２、ｍ＝０の組のいずれかに選択設定する訂正数選択工程と、
を有することを特徴とする記憶装置の検査方法。
【請求項７】
上記誤り訂正符号は、上記データ単位中の２以上の誤りを訂正できる誤り訂正符号であり、上記符号データのデータ単位中の誤り数が１である場合にはその誤りを訂正し、上記符号データのデータ単位中の誤り数が２以上である場合にはその誤りを含む符号データが記憶されていた記憶領域を上記データ単位で不良領域とすることを特徴とする請求項６記載の記憶装置の検査方法。
【請求項８】
上記誤り訂正符号は、ＢＣＨ符号または短縮化ＢＣＨ符号であることを特徴とする請求項７記載の記憶装置の検査方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データの書換えが可能な不揮発性半導体メモリなどの記憶装置、および記憶装置の検査方法に関する。
【０００２】
【従来の技術】
近年、データを電気的に書き換えることができる記憶装置として、フラッシュメモリなどの半導体メモリが広く使用されている。
【０００３】
フラッシュメモリは、半導体基板上に積層形成された電荷蓄積層および制御ゲートからなる記憶素子（メモリセル）を多数並べたセルアレイ（通常は６５００万セル程度）を用いて情報の記憶を行う半導体メモリである。情報（データ）は、上記の電荷蓄積層に蓄えられる電荷量の大きさに対応させて記憶される。
【０００４】
図９は、上述したフラッシュメモリのセルアレイの構成を例示している。
【０００５】
この例では、セルアレイ６３の記憶領域は、ブロック６５，６６，６７，・・・，６９に分けられており、これらの各ブロックは、セルと呼ばれる領域から構成されている。例えば、ブロック６５では、６５ａ，６５ｂ，・・・がセルを表している。
【０００６】
このように、セルアレイは、全体がいくつかのブロックに分けられているのが通常であり、一般に、６５０００セル程度を１ブロックとして１０００ブロック程度から構成されている。
【０００７】
上記のようなセルアレイでは、不良セルを含むブロックが、不良ブロックとして検出される。そして、出荷前の検査において、セルアレイの総ブロック数に対する不良ブロック数の割合が、所定の割合（通常は１％程度）以下であるものだけが合格品として出荷される。
【０００８】
図１０は、フラッシュメモリなどの半導体メモリの不良セルを検出して、その数をカウントする、従来の検査方法における処理手順の一例を示している。
【０００９】
ステップＳ２１では、まず、不良ブロック数が０に設定される。
【００１０】
次に、ステップＳ２２で、検査用のデータとして予め書き込まれているデータが、１ブロック分だけ読み出される。
【００１１】
次に、ステップＳ２３で、ステップＳ２２で読み出された１ブロック分のデータ内に誤りがあるかどうかが判断される。ここで、誤りが検出された場合にはステップＳ２４に進み、不良ブロック数のカウントを１だけ増やしてステップＳ２５に進む。一方、誤りが検出されない場合にはそのままステップＳ２５に進む。
【００１２】
ステップＳ２５では、全ブロックに対して誤りの検出が終了したかどうかが判断される。ここで、全ブロックに対して誤りの検出が終了していない場合にはステップＳ２２に戻り、ステップＳ２５までの処理を繰り返す。一方、全ブロックに対して誤りの検出が終了したときは、ステップＳ２６に進む。
【００１３】
ステップＳ２６では、半導体メモリの総ブロック数に対する不良ブロック数の割合が、例えば１％以下であるかどうかが判断される。ここで、上記の条件を満たしている場合にはステップＳ２７で合格と判定され、上記の条件を満たしていない場合にはステップＳ２８で不良と判定されて、検査を終了する。
【００１４】
ところで、このような半導体メモリでは、高集積度化・高密度化に伴う信頼性の低下、特に、セル不良のような、書き込み／消去回数の増加や経年変化による不良の発生を防止することが重要な課題となっている。
【００１５】
このため、 ハミング（Hamming）符号などの誤り訂正符号を用いる誤り訂正回路を半導体メモリの内部に組み込むことが行われている。
【００１６】
このような誤り訂正は、記憶される情報データに検査データと呼ばれる冗長データを付加して符号化しておき、その検査データを用いて符号データ内の誤りを訂正するものである。
【００１７】
図１１は、検査データが付加された情報データの一例を示している。
【００１８】
例えば、短縮化ハミング符号を用いる場合には、このように５１２ビットの情報データ３１に１０ビットの検査データ３２を付加して計５２２ビットからなる符号を構成することにより、その符号中に生じた１つの誤りを訂正することが可能になる。
【００１９】
上記のような誤り訂正を用いることにより、半導体メモリなどの記憶装置に経年変化によるセル不良がある程度発生しても、書き込まれたデータに読出エラーが起こらないようにすることができる。
【００２０】
図１２は、上記の短縮化ハミング符号を用いる誤り訂正器が組み込まれた、従来のフラッシュメモリの構成例を示すブロック図である。
【００２１】
このフラッシュメモリ８０へのデータの書き込みは、次のように行われる。入力データｓ２ｌは、まず符号化器７１に入力される。符号化器７１は、入力データｓ２１に、例えば図１０に示したような５１２ビット（ｂｉｔ）からなる入力データ毎に１０ビットの検査データを付加して短縮化ハミング符号に変換した後に、書込データｓ２２として出力する。この書込データｓ２２は、セルアレイ７３に書き込まれる。
【００２２】
一方、この半導体メモリ８０からのデータ読出しは、次のように行われる。セルアレイ７３から読み出された読出データｓ２３は、ハミング符号復号器７５に入力され、誤りの数が許容能力の範囲内であれば、誤り訂正が行われた後に出力データｓ２４として出力される。
【００２３】
上記のような誤り訂正を用いることにより、半導体メモリなどの記憶装置に経年変化によるセル不良がある程度発生しても、書き込まれたデータに読出エラーが起こらないようにすることができる。
【００２４】
ただし、誤り訂正符号は、多くの誤りを訂正できるためには、一般に冗長なデータである検査データを多く持つ必要があり、多くのセルを使うことになるのと同時に、誤り訂正器の回路規模も大きくなるという傾向がある。
【００２５】
【発明が解決しようとする課題】
ところで、半導体メモリの不良には、上記のような書込み／消去数の増加に伴うセル不良のような経年変化だけでなく、製造工程で生じるセル不良もある。
【００２６】
このため、上記のような誤り訂正器を用いる従来の半導体メモリは、経年変化によるセル不良などは低減することはできても、製造時に生じる不良を低減することはできないため、歩留まりの低下による生産性の低下を防げないという問題があった。
【００２７】
また、ハミング符号のように符号内の１つの誤りを訂正できる誤り訂正符号を用いているため、製造時に生じるセル不良に起因する読出しエラーを訂正してしまうと、経年変化による読出しエラーを訂正する余力がなくなってしまうという問題もあった。
【００２８】
本発明は、このような問題を解決するために行われたものであり、製造時の不良に起因するエラーと経年変化による不良に起因するエラーのいずれも訂正できる誤り訂正能力を備えた信頼性の高い記憶装置、および生産時の歩留まりを改善して生産性を向上できる記憶装置の検査方法を提供することを目的としている。
【００２９】
【課題を解決するための手段】
上述の課題を解決するために提案する本発明の記憶装置は、複数の記憶素子からなる記憶部と、上記記憶部から読み出される、所定のデータ単位中のｎ（ｎ≧２）までの誤りを訂正可能な誤り訂正符号を用いて符号化された符号データ中の誤りを訂正する誤り訂正部と、を一のパッケージ内に備え、上記符号データのデータ単位中の誤り数がｍ（ｍ≦ｎ）以下である場合には、その誤りが訂正され、上記符号データのデータ単位中の誤り数が上記ｍを越える場合には、その符号データが記憶されていた上記記憶部の記憶領域が所定のブロック単位で不良領域とされ、少なくとも製造時のセル不良率に基づいて、上記ｎ及びｍを、ｎ＝２、ｍ＝２の組、ｎ＝２、ｍ＝１の組、ｎ＝２、ｍ＝０の組のいずれかに選択設定することを特徴とするものである。
【００３０】
また、上記の課題を解決するために提案する本発明の記憶装置の検査方法は、複数の記憶素子からなる記憶部と、上記記憶部から読み出される、所定のデータ単位中のｎ（ｎ≧２）までの誤りを訂正可能な誤り訂正符号を用いて符号化された符号データ中の誤りを訂正する誤り訂正部とを一のパッケージ内に備えてなる記憶装置の検査方法であって、上記符号データ中の誤り数を検出する誤り数検出工程と、上記符号データのデータ単位中の誤り数がｍ（ｍ≦ｎ）以下である場合には、その誤りが訂正され、上記符号データのデータ単位中の誤り数が上記ｍを越える場合には、その符号データが記憶されていた上記記憶部の記憶領域を上記所定のブロック単位で不良領域とする不良領域指定工程と、少なくとも製造時のセル不良率に基づいて、上記ｎ及びｍを、ｎ＝２、ｍ＝２の組、ｎ＝２、ｍ＝１の組、ｎ＝２、ｍ＝０の組のいずれかに選択設定する訂正数選択工程と、を有することを特徴とするものである。
【００３１】
上記の本発明によれば、製造時の不良に起因するエラーと経年変化による不良に起因するエラーのいずれも訂正できる誤り訂正能力を備えた信頼性の高い記憶装置、および生産時の歩留まりを改善して生産性を向上できる記憶装置の検査方法を提供できる。
【００３２】
【発明の実施の形態】
以下に、本発明の好ましい実施の形態について図面を参照しながら説明する。
【００３３】
なお、以下の説明では、本発明をフラッシュメモリに適用した場合を例とし、上記フラッシュメモリの記憶部（メモリセル）から読み出される符号データの所定のデータ単位中の２つまでの誤りを訂正することができる誤り訂正符号を用いるものとして説明する。
【００３４】
図１は、本発明の実施の一形態であるフラッシュメモリの主要部の構成例を示すブロック図である。
【００３５】
このフラッシュメモリ１０は、入力データｓ１に対して、符号内の２つの誤りを訂正できる誤り訂正符号により符号化を施す符号化器１と、符号化器１で符号化された書込データｓ２を記憶する記憶部であるセルアレイ３と、セルアレイ３から読み出される符号化された読出データｓ３を復号して誤り訂正を行う誤り訂正器５を同一のパッケージ内に備えて構成されている。
【００３６】
このフラッシュメモリ１０において、データの書き込みは次のように行われる。入力データｓ１は、まず符号化器１に入力される。符号化器１は、入力データｓ１に、例えば５１２ビット毎に２０ビットの検査データを付加して２誤り訂正可能な短縮化ＢＣＨ符号に変換し、書込データｓ２として出力する。この書込データｓ２は、セルアレイ３に書き込まれる。
【００３７】
一方、データの読み出しは次のように行われる。セルアレイ３から読み出された読出データｓ３は、ＢＣＨ符号復号器５に入力される。誤り訂正器５は、読出データｓ３の符号内の誤りの数が１つであれば、その誤りを訂正した後に出力データｓ４として出力する。また、誤り訂正器５は、上記符号データの各データ単位中の誤り数を検出して誤り数信号ｓ４を出力する機能も備えている。
【００３８】
このような構成によれば、製造時には、誤り数信号ｓ４の値が２以上となる符号を含むブロック、および上記の誤り訂正によって入力データとは異なるデータを出力するブロックを、不良ブロックとして検出してカウントできる。
【００３９】
図２は、短縮化ＢＣＨ符号により符号化される情報データの一例を示している。
【００４０】
このように、ＢＣＨ符号化では、情報データ４１が５１２ビットからなるときには、２０ビット（ｂｉｔ）の検査データ４２が付加されて、符号全体の長さは５３２ビットとなる。
【００４１】
なお、ＢＣＨ符号および符号の短縮化については、今井秀樹著「符号理論」（電子情報通信学会）等の文献に記載されている。
【００４２】
次に、本発明に係る記憶装置の誤り訂正部について説明する。
【００４３】
図３は、上記のフラッシュメモリ１０の誤り訂正器５の構成例を示している。
【００４４】
この誤り訂正器５は、図２に示したような、情報データ数が５１２ビットからなる２訂正短縮化ＢＣＨ符号を用いるものである。
【００４５】
セルアレイ３から読み出された読出データｓ３は、まずシンドローム発生器５ａに入力される。
【００４６】
シンドローム発生器５ａでは、読出データｓ３からシンドロームを計算して、シンドローム信号を出力する。このシンドローム信号は、誤り位置多項式導出回路５ｂに入力される。
【００４７】
誤り位置多項式導出回路５ｂでは、ユークリッドの互除法などの方法を用いて誤り位置多項式を導出し、誤り位置多項式情報を誤り位置検出回路５ｃに出力する。
【００４８】
誤り位置検出回路５ｃでは、解の公式やチェン探索などの方法を用いて符号中の誤り位置を検出し、誤りの位置を”１”で表すことにより、誤り位置信号を出力する。この誤り位置検出回路５ｃでは、符号のｉ番目の要素に誤りがあることと、原始根αのｉ乗を誤り位置多項式に代入した値が０になることが同値になるという性質を利用して、誤り位置の検出を行う。また、正しく復号されているときには、方程式の次数と解の個数が一致し、解に対応するｉの位置は全て短縮化された符号の中に収まっているという性質があることを利用して、復号が正しく行われているかどうかをチェックし、矛盾が生じたときには誤り訂正を行わないという処理を行う。この部分の代表的な方法としては、チェン探索による方法と、解の公式を用いる方法がある。
【００４９】
なお、カウンタ５ｆは、誤り位置検出信号５ｃから出力される”１”の数をカウントして、カウント値を誤り数信号ｓ４として出力する。
【００５０】
また、この誤り訂正器５に入力される読出データｓ３は、入力信号遅延回路５ｄにも入力される。入力信号遅延回路５ｄは、入力される読出データｓ３を必要な時間だけ遅延させて入力遅延信号を出力する。
【００５１】
そして、入力信号遅延回路５ｄからの入力遅延信号と、誤り位置検出回路５ｃからの誤り位置信号とは、加算器５ｅに入力され、読出データｓ３の誤り位置のビットを反転させることにより、読出データｓ３の誤りが訂正されて、出力データｓ５として出力される。
【００５２】
なお、シンドローム、誤り位置多項式、ユークリッドの互除法、チェン探索等については、前掲の今井秀樹著「符号理論」（電子情報通信学会）等の文献に記載されている。
【００５３】
次に、本発明の記憶装置の別の実施の形態について説明する。以下においても、本発明をフラッシュメモリに適用した場合を例として説明する。
【００５４】
図４は、本発明に係るフラッシュメモリの第２の構成例を示すブロック図である。
【００５５】
このフラッシュメモリ２０は、入力データｓ１１に対して、符号内の２つの誤りを訂正できる誤り訂正符号により符号化を施す符号化器１１と、符号化器１１で符号化された書込データｓ１２を記憶する記憶部であるセルアレイ１３と、セルアレイ１３から読み出される符号化された読出データｓ１３を復号して誤り訂正を行う誤り訂正器１５を同一のパッケージ内に備えて構成されている。
【００５６】
このフラッシュメモリ２０において、データの書き込みは次のように行われる。入力データｓ１１は、まず符号化器１１に入力される。符号化器１１は、入力データｓ１１の５１２ビット毎に２０ビットの検査データを付加して、例えば２誤り訂正可能な短縮化ＢＣＨ符号に変換し、書込データｓ１２として出力する。この書込データｓ１２は、セルアレイ１３に書き込まれる。
【００５７】
一方、データの読み出しは次のように行われる。セルアレイ１３から読み出された読出データｓ１３は、誤り訂正器１５に入力される。
【００５８】
この誤り訂正器１５は、外部からの制御信号である訂正非動作信号ｓ１４の値が”０”であるときには、符号中の誤り数が１つであれば誤りを訂正した後に出力データｓ１５として出力する。
【００５９】
このような構成によれば、フラッシュメモリ２０の製造時には、訂正非動作信号ｓ１４の値を”１”にして入力データと出力データとを比較することにより、２以上の誤りがある符号を含むブロックを不良ブロックとして検出し、カウントできる。
【００６０】
図５は、上記のフラッシュメモリ２０の誤り訂正器１５の構成例を示している。
【００６１】
この誤り訂正器１５は、図２に示したような、情報データが５１２ビットからなる２訂正短縮化ＢＣＨ符号を用いるものであり、図３に示した誤り訂正器とほぼ同様の構成を備えている。
【００６２】
セルアレイ１３から読み出された読出データｓ１３は、まずシンドローム発生器１５ａに入力される。
【００６３】
シンドローム発生器１５ａは、読出データｓ１３からシンドロームを計算して、シンドローム信号を出力する。このシンドローム信号は、誤り位置多項式導出回路１５ｂに入力される。
【００６４】
誤り位置多項式導出回路１５ｂは、ユークリッドの互除法などの方法を用いて誤り位置多項式を導出し、誤り位置多項式情報を誤り位置検出回路１５ｃに出力する。
【００６５】
誤り位置検出回路１５ｃは、解の公式やチェン探索などの方法を用いて読出データｓ１３中の誤り位置を検出し、誤りの位置を”１”で表すことにより、誤り位置信号を出力する。
【００６６】
また、この誤り訂正器１５に入力される読出データｓ１３は、入力信号遅延回路１５ｄにも入力される。入力信号遅延回路１５ｄでは、入力される読出データｓ１３を必要な時間だけ遅延させて入力遅延信号を出力する。
【００６７】
そして、入力信号遅延回路１５ｄからの入力遅延信号と、誤り位置検出回路１５ｃからの誤り位置信号とは、加算器１５ｅに入力され、読出データｓ１３の誤り位置のビットを反転させることにより読出データｓ１３の誤りが訂正されて、出力データｓ１５として出力される。
【００６８】
なお、誤り位置検出回路１５ｃからの誤り位置信号は、セレクタ１５ｈに入力されると共に、ＡＮＤゲート１５ｇに反転入力および非反転入力として入力される。そして、セレクタ１５ｈは、外部から入力される制御信号である訂正非動作信号ｓ１４の値が”１”であるときはＡＮＤゲート１５ｇからの出力（＝０）を選択し、訂正非動作信号ｓ１４の値が”０”であるときは誤り位置検出回路１５ｃからの誤り位置信号を選択して、加算器１５ｅに入力する。
【００６９】
これにより、訂正非動作信号ｓ１４の値が”１”であるときには、読出データｓ１３の誤り訂正を行わないようにされる。
【００７０】
次に、本発明に係る記憶装置の検査方法の実施の形態について、前述したフラッシュメモリに適用する場合を想定しながら説明する。
【００７１】
図６は、本発明に係る記憶装置の検査方法における基本的な処理手順を示すフローチャートである。
【００７２】
ステップＳ１では、まず、不良ブロック数が０に設定される。
【００７３】
次に、ステップＳ２で、エラーフラグが０に設定される。
【００７４】
ステップＳ３では、検査用のデータとして予め書き込まれているデータが、１ブロック分だけ読み出される。
【００７５】
ステップＳ４では、符号内の誤りの数がカウントされ、その誤りの数がｉとされる。
【００７６】
ステップＳ５では、ステップＳ４で得られた誤り数ｉの値が２以上であるかどうが判断される。ここで、得られた誤り数ｉの値が２以上の場合には、ステップＳ６でエラーフラグが１にされる。一方、得られた誤りの数が２以上でない場合には、ステップＳ７に進む。
【００７７】
ステップＳ７では、１ブロックについて上記の処理が終了したかどうかが確認され、終了していない場合にはステップＳ３に戻り、ステップＳ７までの処理を繰り返す。一方、１ブロックについての処理が終了している場合には、ステップＳ８に進む。
【００７８】
ステップＳ８では、エラーフラグが１であるかどうかが判断され、エラーフラグが１である場合には、ステップＳ９で不良ブロック数のカウントを１だけ増やす。一方、エラーフラグが１でない場合には、ステップＳ１０に進む。
【００７９】
次に、ステップＳ１０で、全ブロックについて誤りの検出が終了したかどうかが判断され、全ブロックに対して誤りの検出が終了していない場合にはステップＳ２に戻り、ステップＳ１０までの処理を繰り返す。一方、全ブロックに対して誤りの検出が終了しているときは、ステップＳ１１に進む。
【００８０】
ステップＳ１１では、セルアレイの総ブロック数に対する不良ブロック数の割合が、例えば１％以下であるかどうかが判断される。ここで、上記の条件を満たしている場合にはステップＳ１２で合格と判定され、上記の条件を満たしていない場合にはステップＳ１３で不良と判定されて、検査を終了する。
【００８１】
図７は、上記の処理において、不良ブロックを判別する手順の一例を示している。
【００８２】
半導体メモリは、出荷前に書込データが消去されＦＦｈとされている。そこで、このことを利用して、ブロック番号が０とされるブロックから以下の手順で不良ブロックが順次判別される。
【００８３】
ステップＳ３１では、まず、ブロック番号Ｂｌｏｃｋが０とされる。
【００８４】
次に、ステップＳ３２で、上記のブロックからの読出データが”ＦＦ”であるかどうかが判断される。ここで、読み出されたデータが”ＦＦ”でない場合には、ステップＳ３３で不良ブロックテーブルが作成され、不良ブロックを識別できるようにされる。そして、不良ブロック中には、００ｈデータがランダムに書き込まれる。一方ステップＳ３２で読み出されたデータが”ＦＦ”である場合には、ステップＳ３４に進む。
【００８５】
ステップＳ３４では、ブロック番号Ｂｌｏｃｋが最後のブロックを示す番号（例えば１０２３）になったかどうかが判断される。上記のブロック番号に達していない場合には、ステップＳ３５で番号を１だけインクリメントして、ステップＳ３２からの手順を繰り返す。一方、最後のブロック番号まで達した場合には、処理を終了する。
【００８６】
次に、以上説明した実施の形態における本発明の効果について、具体例を参照しながら説明する。
【００８７】
図８は、以上説明した本発明に係る記憶装置の検査方法が適用される、フラッシュメモリの構成を模式的に示している。
【００８８】
図８（ａ）は、フラッシュメモリの製造（出荷）時の様子を模式的に示している。このフラッシュメモリ８０において、符号５２ｃ内には誤りが２つあるため、２誤り訂正可能な誤り訂正符号により、この２つの誤りを訂正してしまうと、誤り訂正符号の訂正能力を全て使ってしまうことになり、継時変化により発生する可能性のある誤りを訂正できなくなってしまう。このため、誤りが２つある符号５２ｃを含むブロック５２は、不良ブロックとして使用できない領域とされる。
【００８９】
しかし、各符号内の誤りが１つしかない、符号５４ｂ，５４ｄ，５５ｄなどは、２誤り訂正可能な誤り訂正符号により、これらの誤りを訂正しても、誤り訂正符号の訂正能力に余力があるため、継時変化により発生する誤りを訂正できる。このため、これらの符号を含むブロック５４，５５は、不良ブロックとせずに出荷することができる。従って、符号内の１誤りのみを訂正できる誤り訂正符号を用いる従来の半導体メモリに比べて歩留まりを改善して生産性を向上することができる。
【００９０】
また、図８（ｂ）は、上記のフラッシュメモリ５０が、製造から時間を経たときの様子を模式的に示している。ここでは、製造（出荷）時にはセル不良が認められなかった符号５１ｃと符号５５ｂ、および符号５５ｄに、セル不良が発生した場合を例示している。
【００９１】
符号５５ｄには出荷時にすでにセル不良が１つ生じているが、経時変化によるセル不良がさらに１つ発生しても、まだ誤り訂正をすることができるため、このフラッシュメモリ５０の使用を続けることができる。また、符号５１，５５に発生した誤りは、いずれも１つの誤りであるため、誤り訂正を施しても、まだ訂正能力には余力があるため、セル不良がさらに１つ増えても、符号内の誤りが３以上になるまでは読出しエラーを防ぐことができる。
【００９２】
次に、上述した本発明の効果について、不良ブロックの発生確率により説明する。
【００９３】
以下では、情報データの６５５３６セル分を１ブロックとし、セルアレイが１０００ブロックに分割されている場合を考える。また、製造時にセル不良が０．００００２％の確率で起こり、製造時には正常であったセルが１００万回の書込み／消去後に不良セルとなる確率を０．０００００１％とする。
【００９４】
まず、製造時のメモリ不良率について従来の半導体メモリと比較する。誤り訂正回路を設けない場合には、ブロック不良が起こる確率は、１ブロックに６５５３６セルが含まれていることより、（１）式から約１．３％である。
【００９５】
【数１】
0003843549.tif 000002
【００９６】
よって、不良ブロックが総ブロック数の１％以下となる確率は、（２）式から約２５％となる。
【００９７】
【数２】
0003843549.tif 000003
【００９８】
すなわち、製造する半導体メモリの７５％が不良品になってしまうことになる。
【００９９】
一方、１符号分のデータ中に１つのセル不良までを許容すると、ブロック不良が起こる確率は、１ブロック中に１２８符号分のデータが含まれることから、（３）式のようになる。
【０１００】
【数３】
0003843549.tif 000004
【０１０１】
つまり、ブロック不良が起こる確率を０．００００７２％まで下げることができる。よって、不良ブロックが総ブロック数の１％以下となる確率は、（４）式のようになり、製造される半導体メモリをほぼ１００％出荷することができるようになる。
【０１０２】
【数４】
0003843549.tif 000005
【０１０３】
以上のことから、本発明によれば、半導体メモリの歩留まりを格段に向上できることが分かる。
【０１０４】
次に、１００万回の書き込み／消去を行った場合の不良ブロックの発生確率について評価する。
【０１０５】
半導体メモリに誤り訂正回路を設けない場合に、不良ブロックが発生する確率は、（５）式より約０．０６６％となる。
【０１０６】
【数５】
0003843549.tif 000006
【０１０７】
これに対して、本発明を適用して、出荷後に２誤りまでの訂正を行う場合を考える。
【０１０８】
１符号分のデータの中には、不良セルが１つまでは含まれている可能性がある。しかし、全ての符号に１つの不良セルがすでに含まれていたとしても、不良ブロックが発生する確率は、（６）式より約０．００００００１８％である。
【０１０９】
【数６】
0003843549.tif 000007
【０１１０】
従って、本発明を適用した半導体メモリでは、経年変化による不良ブロック発生確率を減らすことができ、信頼性を向上させることができる。
【０１１１】
以上説明した本発明の実施の形態では、ｎ＝２，ｍ＝１の場合を例として説明したが、ｍ、ｎの値は、製造時の不良と経年変化による不良の現れ方に応じて変化させることが考えられる。
【０１１２】
例えば、製造時のセル不良が多く、経年変化によるセル不良が少ない場合には、ｎ＝２，ｍ＝２とすることにより、誤り訂正能力を生産性の向上に用いることができる。逆に、製造時のセル不良が少なく、誤り訂正を行わなくても歩留まりが十分高い場合には、ｎ＝２，ｍ＝０とすることにより誤り訂正能力を経年変化に対する信頼性の向上に用いることができる。
【０１１３】
なお、ｎ，ｍの値は、上記の値に限られるものではなく、ｎ≧２，ｍ≦ｎを満たす任意のｎ，ｍとすることができる。
【０１１４】
また、本発明に用いる誤り訂正符号は、短縮化ＢＣＨ符号に限られるものではなく、種々の誤り訂正符号を用いることができる。
【０１１５】
さらに、符号化器と誤り訂正器とを半導体メモリのパッケージに内蔵する構成を例示したが、例えば符号化器を必要に応じて半導体メモリの外部に置くなどの種々の変形も考えられる。
【０１１６】
さらに、上記の例では、本発明に係る記憶装置の例としてフラッシュメモリを想定して説明したが、本発明に係る記憶装置の適用はフラッシュメモリに限られるものではなく、他の半導体メモリなど種々の記憶装置に適用可能なものである。
【０１１７】
なお、誤り訂正符号により多くの誤りを訂正できるためには、一般に、冗長なデータである検査データを多く持つ必要があるため、上記のような誤り訂正を半導体メモリに適用する場合には、多くのメモリセルを使うことになると共に、誤り訂正回路の規模も大きくなるという問題がある。しかも、短縮化ＢＣＨ符号や短縮化ＲＳ符号などの２訂正可能な誤り訂正符号を用いて誤り訂正を行う回路は、一般に、ハミング符号を用いる誤り訂正回路よりも規模が大きくなる。
【０１１８】
しかし、近年の回路技術の進歩により、１万ゲート程度の回路であれば、半導体メモリ内に搭載することは十分可能であり、以上説明したような誤り訂正符号の程度であれば、回路規模については実際上の問題はない。
【０１１９】
【発明の効果】
本発明によれば、記憶部から読み出される、所定のデータ単位中のｎ（ｎ≧２）までの誤りを訂正可能な誤り訂正符号を用いて符号化された符号データに対して、上記の符号データのデータ単位中の誤り数がｍ（ｍ≦ｎ）以下である場合には誤り訂正を行い、上記の符合データのデータ単位中の誤り数が上記のｍを越える場合には、その符合データが読み出された上記記憶部の記憶領域を所定のブロック単位で使用禁止とするようにしたため、製造時の不良に起因するエラーと経年変化による不良に起因するエラーのいずれも訂正できる誤り訂正能力を備えた信頼性の高い記憶装置、および生産時の歩留まりを改善して生産性を向上できる記憶装置の検査方法を提供できる。
【図面の簡単な説明】
【図１】本発明に係るフラッシュメモリの構成例を示すブロック図である。
【図２】短縮化ＢＣＨ符号により符号化されるデータの一例を示している。
【図３】図１のフラッシュメモリに組み込まれる誤り訂正器の構成例を示す図である。
【図４】本発明に係るフラッシュメモリの別の構成例を示すブロック図である。
【図５】図４のフラッシュメモリに組み込まれる誤り訂正器の構成例を示す図である。
【図６】本発明に係る記憶装置の検査方法における基本的な手順を示すフローチャートである。
【図７】不良ブロックの判別方法の手順の一例を示すフローチャートである。
【図８】本発明を適用した半導体メモリの構成を模式的に示す図である。
【図９】半導体メモリのセルアレイの構成について説明するための図である。
【図１０】半導体メモリの検査方法における従来の手順の一例を示すフローチャートである。
【図１１】短縮化ハミング符号について説明するための図である。
【図１２】誤り訂正回路を備えた従来のフラッシュメモリの構成例を示すブロック図である。
【符号の説明】
１  符号化器、  ３  セルアレイ、  ５  誤り訂正器、  １０  記憶装置、  ｓ１  入力データ、  ｓ２  書込みデータ、  ｓ３  読出データ、  ｓ４  誤り数信号、  ｓ５  出力データ
【図１】
0003843549.tif 000008
【図２】
0003843549.tif 000009
【図３】
0003843549.tif 000010
【図４】
0003843549.tif 000011
【図５】
0003843549.tif 000012
【図６】
0003843549.tif 000013
【図７】
0003843549.tif 000014
【図８】
0003843549.tif 000015
【図９】
0003843549.tif 000016
【図１０】
0003843549.tif 000017
【図１１】
0003843549.tif 000018
【図１２】
0003843549.tif 000019