(57)【要約】【課題】内部の誤り訂正ビット数が多くなったとしても、それを外部に出力する信号のビット数を少なくすることができる半導体メモリを提供する。【解決手段】メモリアレイ１１と、メモリアレイ１１の各ビット線に接続された複数のラッチを有するページバッファ１２と、ページバッファ１２から所定の複数ビットを誤り訂正単位として読み出し、読み出したデータに含まれる誤りビットを訂正してページバッファ１２に書き戻す誤り訂正回路１６と、誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、累算回路の出力と、所定の基準値とを比較し、比較結果を出力する比較回路とを含む判定部１８と、比較回路による比較結果を出力する出力バッファ１７とを備える。【選択図】図１
2014137833.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイと、
前記メモリアレイの各ビット線に接続された複数のラッチを有するページバッファと、
前記ページバッファから所定の複数ビットを誤り訂正単位として読み出し、該読み出したデータに含まれる誤りビットを訂正して該ページバッファに書き戻す誤り訂正回路と、
前記誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、前記誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、
前記累算回路の出力と、所定の基準値とを比較し、比較結果を出力する比較回路と、
前記比較回路による比較結果を出力する出力回路と
を備えることを特徴とする半導体メモリ。
【請求項２】
前記所定の演算処理が、複数の前記誤り訂正単位毎の誤り訂正ビット数の最大値を求める処理である
ことを特徴とする請求項１に記載の半導体メモリ。
【請求項３】
前記所定の演算処理が、複数の前記誤り訂正単位毎の誤り訂正ビット数の合計値を求める処理である
ことを特徴とする請求項１に記載の半導体メモリ。
【請求項４】
前記比較回路が、前記累算回路の出力と、所定の複数の基準値とを比較し、複数の段階からなる度合を表す信号として前記比較結果を出力する
ことを特徴とする請求項１から３のいずれか１項に記載の半導体メモリ。
【請求項５】
前記メモリアレイが複数であり、
前記累算回路が複数ある
ことを特徴とする請求項１から４のいずれか１項に記載の半導体メモリ。
【請求項６】
前記累算回路が、フェイルビット数をカウントするフェイルビットカウンタに共用されるものである
ことを特徴とする請求項１から５のいずれか１項に記載の半導体メモリ。
【請求項７】
前記出力回路が、前記ページバッファから読み出された複数ビットのデータのうちの所定のビットを誤りデータとすることで、前記比較回路による比較結果を出力する
ことを特徴とする請求項１から６のいずれか１項に記載の半導体メモリ。
【請求項８】
前記出力回路が、外部から入力されたステータスコマンドに応じて前記比較回路による比較結果を出力する
ことを特徴とする請求項１から６のいずれか１項に記載の半導体メモリ。
【請求項９】
メモリアレイと、
前記メモリアレイの各ビット線に接続された複数のラッチを有するページバッファと、
前記ページバッファから所定の複数ビットを誤り訂正単位として読み出し、該読み出したデータに含まれる誤りビットを訂正して該ページバッファに書き戻す誤り訂正回路と、
前記誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、前記誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、
前記累算回路の出力と、所定の基準値とを比較し、比較結果を出力する比較回路と
を用いて、
所定の出力回路から前記比較回路による比較結果を出力する
ことを特徴とする誤り訂正ビット数の出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ及び誤り訂正ビット数の出力方法に関する。
【背景技術】
【０００２】
複数のメモリセルを直列に接続した構成を持つＮＡＮＤ型フラッシュメモリは、高集積化の点ですぐれている。一方、フラッシュメモリには、構造上書き込み回数に制限がある。このため、フラッシュメモリチップ内や外部のフラッシュメモリ・コントローラーに、例えば、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ；誤り訂正符号）を用いた誤り訂正機能を持たせる技術が開発されている。また、書き込んだデータと読み出したデータとが不一致となるビット（すなわちフェイルビット）をカウントし、不良セルが一定程度発生したブロック等を、冗長なブロック等に置き換える技術が開発されている。
【０００３】
例えば、特許文献１に記載されている半導体メモリは、外部から入力した期待値と、メモリセルから読み出したデータとを照合し、フェイルビット（Ｆａｉｌ  Ｂｉｔ）数をカウントする構成を備えている。また、特許文献２に記載されている半導体メモリは、プログラム時のデータを真とし、読み出したデータと、照合しフェイルビットをカウントする構成を備えている。これらの２つの半導体メモリは、フェイルビット数を用いて、セル不良がシステム（主にＥＣＣ）の許容する範囲内かどうかを判別するための機能を有する。これに対して次に示す特許文献３及び特許文献４に記載されている半導体メモリは、半導体チップ内部にＥＣＣ訂正機能を設けている。
【０００４】
例えば、特許文献３に記載されている半導体メモリは、誤り訂正回路と、不良セルのアドレスを置換するための構成とをチップ内に備えている。この半導体メモリは、誤り訂正回路で誤り訂正されたメモリセルのロウ座標とカラム座標を保存する。そして、一のカラム線上での誤り訂正ビットの数があらかじめ定められた値を超えた場合には、一のカラム線が冗長セルで置換される。
【０００５】
また、特許文献４に記載されている半導体メモリは、チップ内部に誤り訂正回路を備え、誤り訂正のステータス（つまり状態）を外部に出力する構成を備えている。外部からステータス読み出し命令が入力された場合、入出力端子の下位３ビットを使用して誤り訂正したビット数や誤り訂正が不能であることを示すデータが出力される（特許文献４の例えば段落０２２０〜０２２１、０２６１〜０２６２、表４等）。また、検査データとパリティデータを出力することで、誤り訂正回路の動作を外部で確認できるようにしている（特許文献４の段落０２２６）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１９７８９８号公報
【特許文献２】特開２００９−１３４８４９号公報
【特許文献３】特開２００７−０５２８８４号公報
【特許文献４】特開２００１−０１４８８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＥＣＣ訂正機能を内部に備えていないＮＡＮＤ型フラッシュメモリでは、チップ単体では、完全なデータを保証することが困難であった。そのため、外部（主にＮＡＮＤコントローラー）にＥＣＣ（誤り訂正）機能を付加することで、データを保証することが行われていた。しかし、製造プロセスの微細化にともない、メモリセルサイズが小さくなるにつれ、ＮＡＮＤチップ単体でのエラーレートは高くなる。より微細化の進んだＮＡＮＤチップを用いる場合、高いエラーレートに見合う高い訂正能力を持つＥＣＣシステムへの変更が必要となる。このシステムの変更は当然、開発コストや、改変リスクを伴う。このシステムの変更を行なう必要がないように、エラーレートの低いＮＡＮＤチップ（微細化の進んでいないもの）を提供しつづけることは、製造コストの増大につながる。
【０００８】
解決のひとつとして、ＮＡＮＤチップにオンチップでＥＣＣ機能を搭載する方法がある。これにより微細化の進んだＮＡＮＤチップであっても誤り訂正により、エラーレートを低くすることが可能となる。このオンチップＥＣＣ・ＮＡＮＤ型フラッシュメモリを使用すれば、外部のＥＣＣシステムを変更することなく（もしくはＥＣＣシステムなしで）、先端プロセスのＮＡＮＤ型フラッシュメモリへの換えが可能となる。
【０００９】
例えば、ＮＡＮＤコントローラー等における外部のＥＣＣが、オンチップのＥＣＣに比べ能力は低いものである場合、ＥＣＣによる訂正能力は、オンチップのＥＣＣによって決定される。この場合、オンチップＥＣＣ・ＮＡＮＤ型フラッシュメモリは、基本的にエラーフリーでの動作を前提とされる。
【００１０】
一方、ＮＡＮＤコントローラーにはデータの信頼性を保つために、さまざまな管理機能が備えられている。消去／書き込みを所定回数繰り返したブロックは、劣化が予測されるので使用不可にすることなどがよく知られている。例えば、ＥＣＣで訂正可能な最大Ｂｉｔ数に達した（迫った）場合などは、訂正した後に、別のブロックに置換するなどの処理を行うことでデータの信頼性を保つことができる。ここで、相対的にＥＣＣ訂正ビット数が少ないＮＡＮＤコントローラーと、訂正ビット数が多いＮＡＮＤ型フラッシュメモリとの組み合わせについて考えてみる。この場合、オンチップＥＣＣ・ＮＡＮＤ型フラッシュメモリの場合は、ＮＡＮＤコントローラーから見ると、オンチップＥＣＣ・ＮＡＮＤ型フラッシュメモリはエラーフリーで動作する。このため、ＮＡＮＤコントローラーは、エラーの発生頻度からデータの劣化を予測することが困難となる。よって、上述した管理機能は実質的に機能しなくなる。結果的にデータが劣化しても（すなわちエラー訂正ビット数が増加しても）置換が行われず、劣化が進行してやがて、訂正不可能なエラーが発生してしまう。この状態では、オンチップＥＣＣ・ＮＡＮＤ型フラッシュメモリは内蔵のＥＣＣ最大訂正能力数よりも多くのエラービットを出力することが予想される。当然ながらこの状態で、外部システムは、これら多くのエラービットを訂正できる手段は持ち合わせておらず、データ破壊の状況になると予想できる。問題点は、エラー訂正不能となる以前はエラーフリーとして動作するため、外部からはデータの劣化度合いが不明であり、管理することができないということである。そのため、やがて劣化が進行し、突然訂正不可能な多くのエラービットを出してしまうという問題が発生する。
【００１１】
また、特許文献３に記載されている半導体メモリでは、ＥＣＣで誤りが多発するカラム（Ｃｏｌｕｍｎ）線が置換される。この構成は信頼性向上の手段として有効であると予測される。しかしながらカラム線を置換するためには置換情報をメモリセルに書き込む必要があり、特にＮＡＮＤ型フラッシュメモリではリード（Ｒｅａｄ）動作に比べて書き込みに時間を要する。そのため、いつ、どのタイミングで置換情報の書き込みをするかということが問題となる。
【００１２】
また、特許文献３に記載されている半導体メモリでは、置換情報の書き込みのためのデバイスビジー期間が生じてしまうなどの問題があり、既存システムに不都合が生じる可能性が高い。
【００１３】
一方、特許文献４に記載されている半導体メモリでは、ステータス信号として誤りが発生したビット数を表す信号が出力される。そのため、誤り訂正可能なビット数を増やすと、ステータスを出力するための信号数が増えてしまうという問題がある。
【００１４】
本発明は、上記の事情を考慮してなされたものであり、上記の課題を解決することができる半導体メモリ及び誤り訂正ビット数の出力方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の半導体メモリは、メモリアレイと、前記メモリアレイの各ビット線に接続された複数のラッチを有するページバッファと、前記ページバッファから所定の複数ビットを誤り訂正単位として読み出し、該読み出したデータに含まれる誤りビットを訂正して該ページバッファに書き戻す誤り訂正回路と、前記誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、前記誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、前記累算回路の出力と、所定の基準値とを比較し、比較結果を出力する比較回路と、前記比較回路による比較結果を出力する出力回路とを備えることを特徴とする。
【００１６】
また、本発明の他の半導体メモリは、前記所定の演算処理が、複数の前記誤り訂正単位毎の誤り訂正ビット数の最大値を求める処理であることを特徴とする。
【００１７】
また、本発明の他の半導体メモリは、前記所定の演算処理が、複数の前記誤り訂正単位毎の誤り訂正ビット数の合計値を求める処理であることを特徴とする。
【００１８】
また、本発明の他の半導体メモリは、前記比較回路が、前記累算回路の出力と、所定の複数の基準値とを比較し、複数の段階からなる度合を表す信号として前記比較結果を出力することを特徴とする。
【００１９】
また、本発明の他の半導体メモリは、前記メモリアレイが複数であり、前記累算回路が複数あることを特徴とする。
【００２０】
また、本発明の他の半導体メモリは、前記累算回路が、フェイルビット数をカウントするフェイルビットカウンタに共用されるものであることを特徴とする。
【００２１】
また、本発明の他の半導体メモリは、前記出力回路が、前記ページバッファから読み出された複数ビットのデータのうちの所定のビットを誤りデータとすることで、前記比較回路による比較結果を出力することを特徴とする。
【００２２】
また、本発明の他の半導体メモリは、前記出力回路が、外部から入力されたステータスコマンドに応じて前記比較回路による比較結果を出力することを特徴とする。
【００２３】
また、本発明の誤り訂正ビット数の出力方法は、メモリアレイと、前記メモリアレイの各ビット線に接続された複数のラッチを有するページバッファと、前記ページバッファから所定の複数ビットを誤り訂正単位として読み出し、該読み出したデータに含まれる誤りビットを訂正して該ページバッファに書き戻す誤り訂正回路と、前記誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、前記誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、前記累算回路の出力と、所定の基準値とを比較し、比較結果を出力する比較回路とを用いて、所定の出力回路から前記比較回路による比較結果を出力することを特徴とする。
【発明の効果】
【００２４】
本発明の半導体メモリでは、累算回路が、誤り訂正単位毎の誤り訂正ビット数に基づく所定の演算処理の結果を保持しながら、誤り訂正単位の複数単位にわたる演算処理の結果を出力する。また、比較回路が、累算回路の出力と、所定の基準値とを比較し、比較結果を出力する。そして、出力回路が、比較回路による比較結果を出力する。この構成によれば、出力回路からは、比較回路による比較結果が出力される。よって、誤り訂正ビット数が多くなったとしても、比較回路による比較結果を表す信号のビット数を少なくすることで、誤り訂正の状態を表す信号である出力信号のビット数を容易に少なくすることができる。
【００２５】
なお、上記の効果は、所定の演算処理が、複数の誤り訂正単位毎の誤り訂正ビット数の最大値を求める処理である場合や、所定の演算処理が、複数の誤り訂正単位毎の誤り訂正ビット数の合計値を求める処理である場合でも、同様である。
【００２６】
また、比較回路が、累算回路の出力と、所定の複数の基準値とを比較し、複数の段階からなる度合を表す信号として比較結果を出力する場合、誤り訂正の状態を表す信号である出力信号のビット数を適切に設定することで、ビット数を大きく増加させることなく、誤り訂正の状態をより詳細に出力することができる。
【００２７】
また、メモリアレイを複数とし、累算回路を複数とすることで、メモリセルの個数を増加させた大容量の半導体メモリにおいても誤り訂正の状態を適切に外部に出力することができる。
【００２８】
また、累算回路が、フェイルビット数をカウントするフェイルビットカウンタに共用されるものとした場合、両者を別々の構成とする場合と比べ回路面積等を容易に小さくすることができる。
【００２９】
また、他の本発明の半導体メモリでは、出力回路が、ページバッファから読み出された複数ビットのデータのうちの所定のビットを誤りデータとすることで、比較回路による比較結果を出力する。この構成によれば、ＥＣＣ訂正機能とデータ劣化時のブロック置換機能等を備える外部のフラッシュメモリ・コントローラー等による管理機能と、本発明の半導体メモリと、を組み合わせた場合に、次の効果を奏する。すなわち、この構成では、例えば、半導体メモリ内部で検出した誤り訂正ビット数と異なる数のビットを強制的に誤りデータとして出力することができる。例えば、外部の管理機能の誤り訂正能力が、本発明の半導体メモリが備える誤り訂正回路の誤り訂正能力より低い場合、出力する誤りビット数を、外部の誤り訂正能力以内で、かつ、劣化がある程度発生したようなビット数に設定する。この場合、外部の管理機能によって、誤りは訂正可能で、また、ブロック置換などの処理を行わせることも可能となる。
【００３０】
また、出力回路が、外部から入力されたステータスコマンドに応じて比較回路による比較結果を出力することで、外部のフラッシュメモリ・コントローラー等による管理機能において大きな変更無く、比較結果の出力を利用することが可能となる。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態の半導体メモリの構成を示したブロック図である。
【図２】図１に示したページバッファ１２内に複数設けられるページバッファユニットの構成例を示したブロック図である。
【図３】図１に示した半導体メモリ１で用いる誤り訂正単位の一例を示した説明図である。
【図４】図１に示した判定部１８の構成例を示したブロック図である。
【図５】図４に示した判定部１８の動作例を説明するためのタイミングチャートである。
【図６】図１に示した判定部１８の他の構成例（図６では判定部１８ａ）を示したブロック図である。
【図７】図６に示した判定部１８ａの動作例を説明するためのタイミングチャートである。
【図８】図６に示した判定部１８ａの出力信号の他の例を示した図表である。
【図９】図１に示した判定部１８及び誤り訂正回路１６と、図１では不図示のフェイルビット検出ブロック２１との組み合わせ例を示したブロック図である。
【図１０】図１に示した出力バッファ１７の構成例を示した回路図である。
【図１１】図１に示した出力バッファ１７の出力信号の他の例を示した図表である。
【発明を実施するための形態】
【００３２】
以下、図面を参照して本発明の実施形態について説明する。図１は、本発明の一実施形態であるＮＡＮＤ型フラッシュメモリの構成例を示したブロック図である。ＮＡＮＤ型フラッシュメモリ（ＮＡＮＤ Ｃｈｉｐ）１は、メモリアレイ（Ｍｅｍｏｒｙ Ａｒｒａｙ）１１、ページバッファ（ＰＢ（Ｐａｇｅ Ｂｕｆｆｅｒ））１２、カラムコーディング回路Ａ（Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ Ａ）１３、カラムコーディング回路Ｂ（Ｃｏｌｕｍｎ Ｃｏｄｉｎｇ Ｂ）１４、アドレス制御回路（Ａｄｒｅｓｓ Ｃｏｎｔｒｏｌ）１５、誤り訂正回路（ＥＣＣ）１６、出力バッファ１７、判定部１８、及び入出力パッド（Ｉ／Ｏ  ＰＡＤ）１９を備えている。
【００３３】
メモリアレイ１１は、配列状に並んだ複数のメモリセル（すなわちメモリセルトランジスタ）を含んで構成されている。複数のメモリセルのドレイン及びソースが直列に接続され、両端のドレイン及びソースが選択トランジスタを介してビット線及びソース線に接続されている。また、各列の複数のメモリセルのゲートは、行方向の複数のワード線によって接続されている。
【００３４】
ページバッファ１２は、メモリアレイ１１が有する複数のビット線にそれぞれ接続される複数のラッチやセンスアンプを有して構成されている。ページバッファ１２は、例えば、約５１２から数千程度のページバッファユニットから構成されている。ただし、ページバッファユニットの個数はメモリ容量の変化にともなって変化する。図２にそのページバッファユニットの構成を例示する。図２に示した各ページバッファユニット５０には、メモリアレイ１１のビット線（ＢＬ）８本が接続される。ビット線毎にラッチ５１＿０〜５１＿７があり、各ラッチ５１＿０〜５１＿７は、メモリアレイ１１からリード／メモリアレイ１１にライトするデータを保持する。各ラッチ５１＿０〜５１＿７は、マルチプレクサ（ＭＵＸ）５２に接続されていて、図示していない内部の制御回路で生成されたサブビット線コーディング信号（Ｓｕｂ  ＢＬ  Ｃｏｄｉｎｇ）に従って８本のビット線のうちのいずれかが選択され、ページバッファコントロール回路（ＰＢ Ｃｏｎｔｒｏｌ Ｃｉｒｃｕｉｔ）５３に接続される。ページバッファコントロール回路５３は、コーディング信号（Ｃｏｄｉｎｇ）に応じて、マルチプレクサ５２と、誤り訂正回路１６又は入出力パッド１９とを接続する。ページバッファコントロール回路５３は、カラムコーディング回路Ａ１３の一部と、カラムコーディング回路Ｂ１４の一部とを組み合わせた回路である。また、コーディング信号（Ｃｏｄｉｎｇ）は、アドレスＡ信号（Ａｄｄｒｅｓｓ  Ａ）又はアドレスＢ信号（Ａｄｄｒｅｓｓ  Ｂ）に基づいて生成される。
【００３５】
カラムコーディング回路Ａ１３は、入力されたアドレスＡ信号（Ａｄｄｒｅｓｓ  Ａ）に対応するページバッファ１２内のページバッファユニット５０を選択し、データの入出力を行う回路である。カラムコーディング回路Ａ１３は、図２のページバッファコントロール回路５３の複数分に対応する回路である。
【００３６】
なお、カラムコーディング回路Ａ１３と入出力パッド１９間、並びに、カラムコーディング回路Ａ１３及び入出力パッド１９と出力バッファ１７間におけるデータの受け渡しは、例えば８（あるいは１６）本程度の信号線からなるバスを用いて行われる。
【００３７】
アドレス制御回路１５は、データを読み書きしたいアドレスを表すアドレスＡ信号を生成し、カラムコーディング回路Ａ１３に送る。
【００３８】
入出力パッド１９は、例えばＮＡＮＤコントローラー等の外部の装置との間でデータ（Ｄａｔａ）の受け渡しを行う。入出力パッド１９から入力されたデータは、カラムコーディング回路Ａ１３に送られる。出力バッファ１７から出力されたデータが、入出力パッド１９から出力される。
【００３９】
誤り訂正回路１６は、カラムコーディング回路Ｂ１４を介してページバッファ１２から所定の複数ビットを誤り訂正単位として読み出し、その読み出したデータに含まれる誤りビットを訂正して、再びカラムコーディング回路Ｂ１４を介してページバッファ１２に書き戻す回路である。誤り訂正単位は、例えば図３に示したように、メモリアレイ１１におけるページを所定の複数に分割したセクターとすることができる。ここで、図３は、誤り訂正単位を説明するための説明図である。図３は、ページバッファ１２に格納されている、メモリアレイ１１からの読み出し単位である１ページ（Ｐａｇｅ）分（すなわち同一のワード線で選択される複数のメモリセル）のデータを模式的に示している。図３に示した例では、メモリアレイ１１の１ページ（Ｐ０）が４個のＥＣＣセクター（ＥＣＣ Ｓｅｃｔｏｒ）０〜３（ＥＳ０〜ＥＳ３）に分けられている。誤り訂正回路１６は、ＥＣＣセクター０からＥＣＣセクター３へと順にＥＣＣセクター毎に、カラムコーディング回路Ｂ１４を介してページバッファ１２かデータを読み出し、その読み出したデータに含まれる誤りビットを訂正して、再びカラムコーディング回路Ｂ１４を介してページバッファ１２に書き戻す。
【００４０】
誤り訂正回路１６は、ページバッファ１２内の読み出し／書き込みアドレスを表すアドレス信号Ｂを生成し、カラムコーディング回路Ｂ１４へ出力する。このアドレス信号Ｂによって、処理対象となるＥＣＣセクター０から３のいずれかが選択される。また、本実施形態では、誤り訂正回路１６は、セクター毎エラー数ＥＤ［３：０］を判定部１８に向けて出力する。セクター毎エラー数ＥＤ［３：０］は、誤り訂正単位毎の誤り訂正ビット数（すなわちエラー検出ビット数）を表す信号である。例えば、セクター毎エラー数ＥＤ［３：０］は、第３ビット〜第０ビットを含む２進数の４ビットの信号である。また、誤り訂正回路１６は、セクター毎エラー数ＥＤ［３：０］の更新のタイミングを表すＥＣＣクロック信号ＥＣＣ＿ＣＬＫを判定部１８に向けて出力する。例えば、誤り検出／訂正が、数のＥＣＣセクターに対して連続して行われる場合はこのクロック信号を用いることでセクター毎エラー数ＥＤ［３：０］がセクター単位で切り替わるタイミングに同期をとることができる。
【００４１】
誤り訂正回路１６による誤り訂正可能なビット数は、誤り訂正の方式や冗長ビットのビット数によって異なる。誤りビット数は、ハミング符号においては０ビットもしくは１ビットの２通りとなる。ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）コードでは誤り検出可能なビット数は様々である。本実施形態では、例としてセクター毎に最大８ビットのエラーを検出できるＢＣＨコードを使用し、誤り訂正ビット数（＝検出ビット数）は上述したように４ビットの２進数ＥＤ［３：０］で表現されるものとする。
【００４２】
例えば、ＥＤ［３：０］＝００００ｂでは０ビットエラー、ＥＤ［３：０］＝０１０１ｂでは５ビットエラーということになる。ここで、数字の後のｂは２進数を示す。誤りビット数は、シンドロームから計算できることが公知となっており、その機構についての説明は割愛する。
【００４３】
カラムコーディング回路Ｂ１４は、入力されたアドレスＢ信号（Ａｄｄｒｅｓｓ  Ｂ）に対応するページバッファ１２内のページバッファユニット５０を選択し、データの入出力を行う回路である。
【００４４】
出力バッファ１７は、判定部１８の判定結果を入出力パッド１９に出力したり、カラムコーディング回路Ａ１３を介してページバッファ１２から読み出したデータを入出力パッド１９に出力したりするための回路である。
【００４５】
判定部１８は、エラー検出ビット数ＥＤ［３：０］に基づく所定の演算処理を行い演算処理の結果と所定の基準値（すなわちしきい値）と比較することで、データ（すなわちメモリセル）が劣化しているかどうか判定する回路である。判定部１８は、例えば、誤り訂正単位毎（すなわちセクター毎）のエラー検出ビット数（すなわち誤り訂正ビット数）に基づく所定の演算処理の結果を保持しながら、誤り訂正単位の複数単位にわたる演算処理の結果を出力する累算回路と、累算回路の出力と所定の基準値とを比較して比較結果を出力する比較回路とを用いて構成することができる。図４に判定部１８の構成の一例を示した。
【００４６】
図４は、図１に示した判定部１８の構成例を示したブロック図である。図４に示した判定部１８は、累算カウンタ１８１と、比較回路１８２とから構成されている。累算カウンタ１８１は、演算器１８１１と、レジスタ１８１２とを含んで構成されている。演算器１８１１は、加算処理を行う回路であり、レジスタ１８１２に格納されているデータ（すなわちレジスタ１８１２の出力データ）と、セクター毎エラー数ＥＤ［３：０］とを加算して、加算した結果を出力する。レジスタ１８１２は、８ビットの記憶回路であり、演算器１８１１の出力をＥＣＣクロック信号ＥＣＣ＿ＣＬＫに同期して記憶する。このレジスタ１８１２の出力が累算エラー数を表す８ビットの信号ＡＣ［７：０］となる。
【００４７】
一方、比較回路１８２は、累算エラー数ＡＣ［７：０］と、劣化判定基準値を表す８ビットの信号ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］とを比較し、比較結果を、劣化判定フラグＡＣ＿Ｆａｉｌ信号として出力する。劣化判定フラグＡＣ＿Ｆａｉｌ信号は、１ビットの信号であり、累算エラー数ＡＣ［７：０］が劣化判定基準値ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］以上の場合に“Ｈｉ”レベルに設定される。
【００４８】
ここで図５を参照して、図４に示した判定部１８の動作例について説明する。図５は、図４に示した各部の信号の変化を示すタイミングチャートであり、横軸は時間軸である。信号は、上から順に、ＥＣＣクロック信号ＥＣＣ＿ＣＬＫ、セクター毎エラー数ＥＤ［３：０］、累算エラー数ＡＣ［７：０］、劣化判定基準ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］、そして、劣化判定フラグＡＣ＿Ｆａｉｌである。この場合、劣化判定基準ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］を“１１”（１０進）＝“Ｂｈ”（ｈは１６進数を表す）に設定している。劣化判定基準ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］は例えば製造段階でヒューズ回路を用いて選択的に設定できるようにしたり、外部から入力される信号に従って所定の記憶回路に値を保持することで設定できるようにしたりすることができる。
【００４９】
ＥＣＣクロック信号ＥＣＣ＿ＣＬＫはセクター毎エラー数ＥＤ［３：０］の切り替わりのタイミングに同期して変化し、レジスタ１８１２はＥＣＣクロック信号の立ち上がりのタイミングで演算器１８１１（すなわち加算器）の出力を保持する。この例では、セクター毎エラー数ＥＤ［３：０］が、セクター０で“０”（＝００００ｂ）ビット、セクター１で“２”（＝００１０ｂ）ビット、セクター２で“８”（＝１０００ｂ）ビット、そして、セクター３で“１”（＝０００１ｂ）ビットと変化したとする。この場合、ＥＣＣクロック信号ＥＣＣ＿ＣＬＫの立ち上がりのタイミングで、レジスタ１８１２の保持値（すなわち出力値）である累算エラー数ＡＣ［７：０］は、“０ｈ”、“２ｈ”、“Ａｈ”、そして、“Ｂｈ”と変化する。累算エラー数ＡＣ［７：０］が“Ｂｈ”となったとき、ＡＣ［７：０］≧ＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］となるので、比較回路１８２は劣化判定フラグＡＣ＿Ｆａｉｌに“Ｈｉ”レベルを出力する。
【００５０】
なお、判定回路１８の構成は、図４及び図５を参照して説明したように、複数のセクター（すなわち誤り訂正単位）にわたる誤り訂正ビット数の合計値と、所定の基準値とを比較する構成に限定されない。さらに、図６及び図７を参照して、判定回路１８の他の構成例について説明する。
【００５１】
図６は、図１に示した判定部１８の他の構成例を示したブロック図である。図６に示した判定部１８ａ（図１の判定部１８に対応する構成）は、最大値保持レジスタ１８１ａと、比較回路１８２ａとから構成されている。最大値保持レジスタ１８１ａは、演算器１８１１ａと、レジスタ１８１２ａとを含んで構成されている。演算器１８１１ａは、入力された１対の信号のうち大きい方の信号を出力する回路であり、レジスタ１８１２ａに格納されているデータ（すなわちレジスタ１８１２ａの出力データ）と、セクター毎エラー数ＥＤ［３：０］とを比較して、大きい方の信号を出力する。レジスタ１８１２ａは、４ビットの記憶回路であり、演算器１８１１ａの出力をＥＣＣクロック信号ＥＣＣ＿ＣＬＫに同期して記憶する。このレジスタ１８１２ａの出力がセクター毎のエラー数の最大値を表す４ビットの信号ＭａｘＥＤ［３：０］となる。
【００５２】
一方、比較回路１８２ａは、エラー数の最大値ＭａｘＥＤ［３：０］と、劣化判定基準値を表す４ビットの信号ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］とを比較し、比較結果を、劣化判定フラグＭａｘＥＤ＿Ｆａｉｌ信号として出力する。劣化判定フラグＭａｘＥＤ＿Ｆａｉｌ信号は、１ビットの信号であり、最大エラー数ＭａｘＥＤ［３：０］が劣化判定基準値ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］以上の場合に“Ｈｉ”レベルに設定される。この劣化判定基準ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］は例えば製造段階でヒューズ回路を用いて選択的に設定できるようにしたり、外部から入力される信号に従って所定の記憶回路に値を保持することで設定できるようにしたりすることができる。
【００５３】
ここで図７を参照して、図６に示した判定部１８ａの動作例について説明する。図７は、図６に示した各部の信号の変化を示すタイミングチャートであり、横軸は時間軸である。信号は、上から順に、ＥＣＣクロック信号ＥＣＣ＿ＣＬＫ、セクター毎エラー数ＥＤ［３：０］、最大エラー数ＭａｘＥＤ［３：０］、劣化判定基準ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］、そして、劣化判定フラグＭａｘＥＤ＿Ｆａｉｌである。この場合、劣化判定基準ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］を“０１１１ｂ”（２進数）＝“７”（１０進数）に設定している。
【００５４】
ＥＣＣクロック信号ＥＣＣ＿ＣＬＫはセクター毎エラー数ＥＤ［３：０］の切り替わりのタイミングに同期して変化し、レジスタ１８１２ａはＥＣＣクロック信号ＥＣＣ＿ＣＬＫの立ち上がりのタイミングで演算器１８１１ａの出力を保持する。この例では、セクター毎エラー数ＥＤ［３：０］が、セクター０で“０”（＝００００ｂ）ビット、セクター１で“２”（＝００１０ｂ）ビット、セクター２で“８”（＝１０００ｂ）ビット、そして、セクター３で“１”（＝０００１ｂ）ビットと変化したとする。この場合、ＥＣＣクロック信号ＥＣＣ＿ＣＬＫの立ち上がりのタイミングで、レジスタ１８１２ａの保持値（すなわち出力値）である最大エラー数ＭａｘＥＤ［３：０］は、“００００ｂ”、“００１０ｂ”、“１０００ｂ”と変化し、その後は“１０００ｂ”一定となる。最大エラー数ＭａｘＥＤ［３：０］が“１０００ｂ”となったとき、ＭａｘＥＤ［３：０］≧ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］となるので、比較回路１８２ａは劣化判定フラグＭａｘＥＤ＿Ｆａｉｌに“Ｈｉ”レベルを出力する。
【００５５】
最大値保持レジスタ１８１ａは、各ＥＣＣセクターで検出されたエラーＢｉｔ数のうち最大のものを保持し、出力する。比較回路１８２ａは、予め最大値をフェイル（Ｆａｉｌ＝劣化あり）とするしきい値ＭａｘＥＤ＿Ｆａｉｌ＿Ｂｉｔ［３：０］を基準として、パス／フェイル（Ｐａｓｓ／Ｆａｉｌ）を判定し、判定結果を１ビットのフラグＭａｘＥＤ＿Ｆａｉｌとして出力する。ただし、この最大値Ｍａｘ  ＥＤ［３：０］は、例えば図１の出力バッファ１７を介して外部に出力することが可能である。
【００５６】
この例では７ｂｉｔエラー以上のエラーが検出された場合はフェイルと判定している。訂正可能な最大Ｂｉｔ数に近いエラーを起こしているセクターの存在は、将来訂正不可能になる可能性が高いと考えられる。図６に示した構成は、そういったセクターの存在をスクリーニングすることができる構成を構築可能とする点で優れている。
【００５７】
なお、図１に示した判定部１８の構成は、図４や図６を参照して説明した構成例に限定されない。例えば、図４に示した判定部１８と図６に示した判定部１８ａの両方を備えたものとして構成することができる。
【００５８】
また、比較回路１８２や比較回路１８２ａから、比較結果を１ビットのフラグとして出力することに代えて（あるいはそれとあわせて）、比較結果を複数ビットの信号で出力することもできる。すなわち、比較回路１８２や比較回路１８２ａが、累算カウンタ１８１や最大値保持レジスタ１８１ａの出力と、所定の複数の基準値とを比較し、複数の段階からなる度合を表す信号として比較結果を出力するものとすることができる。例えば、上述のＭａｘＥＤ［３：０］をそのまま出力すると４ｂｉｔ必要だが、図８の対応表のように、ＭａｘＥＤ［３：０］に対応させて、比較回路１８２ａから２ビットのフェイルステータス信号ＦａｉｌＳｔａｔｕｓ［１：０］で出力させることができる。この場合、ＦａｉｌＳｔａｔｕｓ［１：０］の２ｂｉｔだけで、４ビットのＭａｘＥＤ［３：０］の値を４段階の度合で出力することができ、おおよその状態を外部に伝えることが可能となる。また、単に１ビットのフラグとして出力するよりも詳細な状態を表現することができる。
【００５９】
なお、判定部１８の構成の採用は、セクター毎エラー数ＥＤ［３：０］そのものを外部に出力する構成を排除するものではない。すなわち、例えばセクター毎エラー数ＥＤ［３：０］を直接、出力バッファ１７に接続することで、外部の所定の命令に応じて出力されるステータス信号に含ませて出力することなどが可能である。この場合、外部システムがＥＣＣ処理過程で検出されたＢｉｔ数であるＥＤ［３：０］を観測することが可能となり、データの劣化を詳細に予測できるようになる。実際にはさらにＥＣＣクロック信号ＥＣＣ＿ＣＬＫも合わせて出力するほうが同期の取りやすさの点で望ましいと考えられる。
【００６０】
また、図５を参照して説明した判定部１８については、次のような構成を採用することができる。すなわち、図９に示したように、図４に示した判定部１８が備える累算カウンタ１８１を、特許文献１等を参照して説明したフェイルビット数をカウントするフェイルビットカウンタに共用することが可能である。
【００６１】
図９に示したフェイルビット検出ブロック２１は、フェイルビットの検出時に、所定のアドレスで、外部から入力された８ビットの期待値データＤｅｘｐｅｃｔ＿ｅｘｔ［７：０］とページバッファ１２から読み出した８ビットのデータＤｓｅｎｓｅ［７：０］とを論理比較し、不一致のＢｉｔ数をＦＢＣ＿ＥＤ［３：０］として出力する。また、フェイルビット検出ブロック２１では、アドレスを例えば増加させながら、複数のＦＢＣ＿ＥＤ［３：０］を出力する。この不一致のＢｉｔ数ＦＢＣ＿ＥＤ［３：０］を一定のアドレス範囲で合計することで、当該アドレス範囲の良否が判定される。なお、アドレスの増加等のタイミングに同期して、フェイルビットカウントクロック信号ＦＢＣ＿ＣＬＫがトグル変化する。このフェイルビットの検出は、例えば製品出荷前のテストモードで行われ、通常動作時は使用されない。そこで、図９に示した構成では、不一致のＢｉｔ数ＦＢＣ＿ＥＤ［３：０］を合計するカウンタを、図４を参照して説明した累積カウンタ１８１で行うことで、カウンタの共用化を図っている。
【００６２】
図９に示した構成では、図４を参照して説明した判定部１８の２つの入力信号である、ＥＣＣクロック信号ＥＣＣ＿ＣＬＫとセクター毎エラー数ＥＤ［３：０］とを、２つのマルチプレクサ２２及びマルチプレクサ２３を介して判定部１８に入力している。マルチプレクサ２２及びマルチプレクサ２３の各出力は、選択信号ＦＢＣ＿Ｍｏｄｅが“Ｌｏ”レベルのときにａ入力側に接続される。他方、マルチプレクサ２２及びマルチプレクサ２３の各出力は、選択信号ＦＢＣ＿Ｍｏｄｅが“Ｈｉ”レベルのときにｂ入力側に接続される。信号ＦＢＣ＿Ｍｏｄｅは、フェイルビット検出を行う場合に、“Ｈｉ”レベルに設定される信号である。
【００６３】
マルチプレクサ２２のａ側入力には、誤り訂正回路１６から出力されたＥＣＣクロック信号が入力される。マルチプレクサ２３のａ側入力には、誤り訂正回路１６から出力されたセクター毎エラー数ＥＤ［３：０］が入力される。また、マルチプレクサ２２のｂ側入力には、フェイルビット検出ブロック２１から出力されたフェイルビットカウンタクロックＦＢＣ＿ＣＬＫが入力される。マルチプレクサ２３のｂ側入力には、フェイルビット検出ブロック２１から出力された不一致のＢｉｔ数ＦＢＣ＿ＥＤ［３：０］が入力される。
【００６４】
図９に示した構成では、信号ＦＢＣ＿Ｍｏｄｅが“Ｌｏ”レベルのときはマルチプレクサ２２及び２３は、ａ側に接続される。この場合、誤り訂正回路１６から出力されたＥＣＣクロック信号ＥＣＣ＿ＣＬＫと、セクター毎エラー数ＥＤ［３：０］とが、累算カウンタ１８１に入力される。そのため、判定部１８は、図４及び図５を参照して説明したＥＣＣによる劣化判定機構として動作する。
【００６５】
一方、フェイルビットカウンタとして動作させる場合には、所定の信号を入力することでフェイルビットカウントモードにエントリさせ、ＦＢＣ＿Ｍｏｄｅ信号を“Ｈｉ”レベルにする。ＦＢＣ＿Ｍｏｄｅ信号を“Ｈｉ”レベルにするには、外部コマンド入力によって所定のフラグ信号を変化させるようにしてもよいし、テストモード用レジスタ等への書き換え動作によって行うようにしてもよい。ＦＢＣ＿Ｍｏｄｅ信号が“Ｈｉ”レベルになると、マルチプレクサ２２及び２３は、ｂ側、すなわち、フェイルビット検出ブロック２１側に接続されるので、累算カウンタ１８１には、フェイルビットカウンタクロックＦＢＣ＿ＣＬＫと不一致のＢｉｔ数ＦＢＣ＿ＥＤ［３：０］とが入力される。累算カウンタ１８１は、フェイルビットカウンタクロックＦＢＣ＿ＣＬＫの立ち上がりのタイミングで、不一致のＢｉｔ数ＦＢＣ＿ＥＤ［３：０］を累算する。
【００６６】
図９に示した構成例では、劣化判定の基準値すなわちフェイル／パスのしきい値であるＡＣ＿Ｆａｉｌ＿Ｂｉｔ［７：０］についても共用できる。例えば、初期値はＥＣＣ用のしきい値に設定しておき、フェイルビットカウントモードにエントリする際には、このＡＣ＿Ｆａｉｌ＿Ｂｉｔを格納する揮発性のレジスタにフェイルビットカウント用の値を上書きすればよい。このようにして、新たな回路追加をマルチプレクサ（ＭＵＸ）程度に抑えた構成でＥＣＣによる劣化判定機構とフェイルビットカウント（ＦＢＣ）を共有できる。
【００６７】
次に、図１０を参照して、図１に示した出力バッファ１７の構成例について説明する。図１０に示した出力バッファ１７は、図１の判定部１８が図４の構成と図６の構成とを含み、判定部１８が劣化判定フラグＡＣ＿Ｆａｉｌと劣化判定フラグＭａｘＥＤ＿Ｆａｉｌとを出力するものとした場合の構成例である。図１０に示した出力バッファ１７は、劣化判定フラグＡＣ＿Ｆａｉｌ又は劣化判定フラグＭａｘＥＤ＿Ｆａｉｌの少なくとも１つが“Ｈｉ”レベルとなった場合（すなわちメモリセルから読み出したデータが劣化したと判断された場合）に、読み出し（Ｒｅａｄ）動作中に特定のアドレス（Ａｄｄｒｅｓｓ）の特定のビット（Ｂｉｔ）にエラーを出力する回路構成である。具体的には、データ劣化が判定された場合、アドレス０００ｈの入出力ビットＩＯ０とＩＯ１にエラーを出力し、またアドレス００１ｈの入出力ビットＩＯ０とＩＯ１にもエラーを出力する。
【００６８】
図１０の回路では、２入力オア（ＯＲ）回路１７１に信号ＡＣ＿Ｆａｉｌと信号ＭａｘＥＤ＿Ｆａｉｌとが入力される。オア回路１７１の出力は、信号ＥＣＣ＿Ｆａｉｌとして２入力アンド（ＡＮＤ）回路１７３の一方の入力端子に入力される。また、２入力オア回路１７２に信号Ａｄｄ＿Ｍａｔｃｈ＿０００ｈと信号Ａｄｄ＿Ｍａｔｃｈ＿００１ｈが入力される。オア回路１７２の出力は、信号Ａｄｄ＿Ｍａｔｃｈとして２入力アンド回路１７３の他方の入力端子に入力される。この２入力アンド回路１７３の出力は、信号ＥｒｒｏｒＭａｋｅとして、２入力排他的論理和回路１７４及び２入力排他的論理和回路１７５の各一方の端子に入力される。２入力排他的論理和回路１７４の他方の端子には信号Ｄａｔａ＿ｐｒｅ＿ＩＯ［０］が入力される。２入力排他的論理和回路１７５の他方の端子には信号Ｄａｔａ＿ｐｒｅ＿ＩＯ［１］が入力される。６個の２入力排他的論理和回路（群）１７６の各一方の端子はグランド（ＧＮＤ）に接続され、各他方の入力端子には６ビットの信号Ｄａｔａ＿ｐｒｅ＿ＩＯ［７：２］のうちの１ビットの信号が入力される。そして、８個の２入力排他的論理和回路１７４、１７５及び１７６から、８ビットの信号Ｄａｔａ＿ＩＯ［７：０］が出力される。
【００６９】
図１０に示した出力バッファ１７の構成例において、データ劣化の判断は、累積訂正Ｂｉｔ数がある一定値に達した場合に“Ｈｉ”となるＡＣ＿Ｆａｉｌ信号とＥＣＣコードを用いた誤り訂正における訂正Ｂｉｔ数が規定値（すなわちしきい値）に達した場合に“Ｈｉ”となるＭａｘＥＤ＿Ｆａｉｌ信号のＯＲで実現しており、その出力はＥＣＣ＿Ｆａｉｌとしている。
【００７０】
また特定アドレス（Ａｄｄｒｅｓｓ）を判定する構成を、リード（Ｒｅａｄ）動作中のアドレスが０００ｈのときに“Ｈｉ”となる信号Ａｄｄ＿Ｍａｔｃｈ＿０００ｈとアドレスが００１ｈのときに“Ｈｉ”となる信号Ａｄｄ＿Ｍａｔｃｈ＿００１ｈのＯＲで実現し、その出力を信号Ａｄｄ＿Ｍａｔｃｈとしている。
【００７１】
上述の信号ＥＣＣ＿Ｆａｉｌと信号Ａｄｄ＿ＭａｔｃｈをＡＮＤ演算した出力を信号ＥｒｒｏｒＭａｋｅとし、これが“Ｈｉ”のとき強制的にビットエラーを発生させる。信号ＥｒｒｏｒＭａｋｅは、エラー（Ｅｒｒｏｒ）を出力する条件（ＥＣＣ＿Ｆａｉｌ＝“Ｈｉ”（すなわち“劣化”）と信号Ａｄｄ＿Ｍａｔｃｈ＝“Ｈｉ”（すなわち“特定アドレスであること”））が満たされると“Ｈｉ”になる。
【００７２】
信号ＥｒｒｏｒＭａｋｅが“Ｌｏ”レベルであればページバッファ１２から読み出した８ビットのデータＤａｔａ＿ｐｒｅ＿ＩＯ［７：０］と入出力パッド１９に出力する８ビットのデータＤａｔａ＿ＩＯ［７：０］は同じとなり、エラー訂正されたデータがそのまま入出力パッド１９に出力され、エラーゼロとなる。
【００７３】
他方、信号ＥｒｒｏｒＭａｋｅが“Ｈｉ”レベルであればページバッファ１２から読み出したデータＤａｔａ＿ｐｒｅ＿ＩＯ［７：０］のうちＩＯ０とＩＯ１（すなわちＤａｔａ＿ｐｒｅ＿ＩＯ［０］とＤａｔａ＿ｐｒｅ＿ＩＯ［１］）だけ極性反転されＤａｔａ＿ＩＯ［７：０］となり入出力パッド１９に出力される。訂正された真のデータＤａｔａ＿ｐｒｅ＿ＩＯ［７：０］をビットを反転することは、エラーを出力することになる。このようにしてＡｄｄｒｅｓｓ０００ｈの８ビットのデータに２ｂｉｔのエラー、Ａｄｄｒｅｓｓ００１ｈ８ビットのデータにも２ｂｉｔのエラーを出力することができる。
【００７４】
図１０に示した構成では、アドレスの一致条件（すなわちＡｄｄ＿Ｍａｔｃｈが“Ｈｉ”となる条件）を変更することでエラーを出力するアドレスを自由に設計することができる。アドレス範囲を変更することで、例えば同一のブロック内で出力するエラービット数を変更することができる。またこの例ではＩＯ［１：０］のみデータを反転する回路としたが、反転ＩＯ数を増減することでも、出力するエラービット数を変更することができる。
【００７５】
なお、出力バッファ１７の構成は、図１０に示したように、特定のビットを反転してエラーを発生するものとするほか、例えば、特許文献１の図７に示されているような回路を用いることで、特定の外部コマンドに応じて、劣化状態を表す信号を通常のデータと切り替えて出力する回路とすることもできる。すなわち、外部から特定のコマンドが入力された場合、通常リード時のデータパスとフェイルステータス（すなわち、劣化判定フラグＡＣ＿Ｆａｉｌや劣化判定フラグＭａｘＥＤ＿Ｆａｉｌあるいはフェイルステータス信号ＦａｉｌＳｔａｔｕｓ［１：０］）を切り替えて入出力パッド１９に出力させることが可能である。
【００７６】
なお、図１０に示した出力バッファ１７は、劣化判定の結果に基づき、ステータスを出力するのではなく、劣化の判定結果や度合いによって誤ったデータを意図的に出力する構成である。この構成は、次のような外部のＮＡＮＤコントローラー等の装置との組み合わせにおいて顕著な効果を奏する。この項目については、以下、技術的背景の例を挙げて詳細に説明する。
【００７７】
まず、図１０に示した構成を使用しない場合について説明する。例えば、ある時代に４ｂｉｔ／５１２ＢｙｔｅのＥＣＣ（すなわち５１２Ｂｙｔｅを誤り訂正単位として４ビットのエラーが訂正可能な誤り訂正機能）を兼ね備えたＮＡＮＤコントローラーによってシステムＡが設計されたとする。その後、先端ＮＡＮＤ製品では微細化が進み、ビットエラーレート（Ｂｉｔ  Ｅｒｒｏｒ  Ｒａｔｅ）が上昇し、信頼性を保つには８ｂｉｔ／５１２Ｂｙｔｅ相当のＥＣＣが必要とされる状況になった。この先端ＮＡＮＤ製品は安価であり、システムＡでも採用したいが、そのためにはＮＡＮＤコントローラーなどの置換えをする必要がある。しかし、このシステムＡは市場に出回っており、高い互換性が必要とされているためシステム変更を行うことにはリスクが伴う。
【００７８】
先端ＮＡＮＤ製品で、ＮＡＮＤフラッシュメモリチップ内部にＥＣＣを搭載したいわゆるエラーフリー（Ｅｒｒｏｒ  Ｆｒｅｅ）動作可能な製品があり、価格も現在システムＡが搭載しているＮＡＮＤフラッシュメモリチップよりも安価であるため、置換えることにした。このエラーフリー（Ｅｒｒｏｒ  Ｆｒｅｅ）はチップ内部に先端ＮＡＮＤのエラーレート（Ｅｒｒｏｒ  Ｒａｔｅ）に耐えうる高い訂正能力、たとえば８ｂｉｔ／５１２ＢｙｔｅなどＥＣＣを搭載している。この場合、システムＡは、前述のように４ｂｉｔ／５１２Ｂｙｔｅのような（相対的に低い）訂正能力を兼ね備えており、冗長ブロック等への置き換え機能を具備しており、３ｂｉｔ以上のエラー検出訂正によりブロック（Ｂｌｏｃｋ）置換をすることができる。
【００７９】
しかしながら、エラーフリー（Ｅｒｒｏｒ  Ｆｒｅｅ）のＮＡＮＤ製品の場合、８ｂｉｔ／５１２Ｂｙｔｅまでのエラーはチップ内部で訂正されるので、システムＡではたとえメモリチップ内部で劣化が進行し、ブロック置き換え機能を働かせることが望ましいような状態にいたっていたとしても、３ｂｉｔ以上のエラー検出や訂正が行われることはなく、ＮＡＮＤコントローラーによるブロック置換は実質機能しなくなる。
【００８０】
これに対して、図１０に示した構成を使用した場合（ただし、この場合、意図的にエラーを発生する際に反転するビット数は３ビットに設定されているとする）、つぎのようにシステムＡのＮＡＮＤコントローラーによるブロック置換が期待できる。すなわち、図１０に示した構成を持つ、本発明の半導体メモリでは、ＮＡＮＤフラッシュメモリチップ内部のＥＣＣ機能により、データの劣化が認められた場合、データリード時に意図的にエラーとなるようＢｉｔ反転を行い、データＩＯとして入出力端子に出力する。上記の設定例だと、システムＡは３ｂｉｔ以上のエラー検出によりブロック置換する方式なので、オンチップＥＣＣ（すなわち誤り訂正回路１６）及び判定部１８で内部的にデータＤａｔａの劣化を検出した場合、意図的に出力バッファ１７によって３ｂｉｔだけデータＤａｔａを反転して外部に出力する。外部システムは３ｂｉｔのエラーであれば訂正可能であり、かつブロック置換を行うことになる。
【００８１】
なお、どの程度のデータＤａｔａを改変（すなわち反転）するのかや、たとえばどのアドレス領域において、何Ｂｉｔ反転させるのかは、外部システムのＥＣＣの能力とＥＣＣセクター（あるいはＥＣＣコード）の構成により選択的に設定可能とすることが望ましい。例えば、予め電気的に変更することができるように、例えば出力バッファ１７の周辺回路にヒューズ回路等の設定回路を設けることで対応することができる。
【００８２】
なお、上記の実施形態については、さらに次のような変形が可能である。すなわち、半導体メモリ１が、例えば並列動作可能な複数のメモリアレイ１１を含むものである場合や、例えば、複数のメモリ空間（メモリマット（Ｍａｔ）、あるいはメモリバンク（Ｂａｎｋ））を含む構成である場合、判定部１８や累算カウンタ１８１あるいは最大値保持レジスタ１８１ａをメモリアレイ１１、メモリマット（あるいはバンク）別に複数設けておくことができる。この場合、半導体メモリ１が、複数のメモリアレイ１１やメモリマットを備えていても、メモリアレイ１１やマット（あるいはバンク）別に劣化状態を示す信号を保持し、出力することができる。
【００８３】
また、判定部１８による判定は、セクター単位で行うもののほか、例えば、ページ単位、ブロック単位、メモリアレイ１１単位、メモリマット単位等で誤りビット数の累算結果や比較回路の比較結果を保持するレジスタを設けることで、ページ単位、ブロック単位、メモリアレイ１１単位、メモリマット単位等で劣化判定結果を出力するものとすることができる。
【００８４】
なお、上述したように出力バッファ１７は、特定の外部コマンドに応じて劣化状態を表す信号を通常のデータと切り替えて出力する回路とすることができる。この場合、例えば図１１に示したように、既存のステータス読み出し命令に対する出力データの未使用ビットを使用して劣化状態を表す信号を出力することができる。この構成は、現行の一般的な仕様を拡張した（すなわち上位互換の）構成となるので、互換性の高いシステムを提供できる。すなわち、ＮＡＮＤフラッシュメモリなどのメモリ製品にはステータスコマンド（Ｓｔａｔｕｓ  Ｃｏｍｍａｎｄ）が一般的に用意されている。また、一般的なＮＡＮＤフラッシュメモリでは、ステータスコマンドに応じて出力される８ビットのデータのうち、複数のビットは未使用状態である。そこで、出力バッファ１７からは、未使用のビットに、エラー訂正数（あるいは検出数）に応じて算出した劣化状態を表す情報を載せて出力する。図１１に示した例では、リード時にデータ出力信号ＩＯ［０］、［１］、［２］、［３］、［４］、［５］は、未使用であるため、この部分を使用して、データＤａｔａの劣化の度合い示す情報を外部に対して出力するよう定義している。この場合、もともと仕様で定義されていない領域を使用するため、この拡張機能に対応していないコントローラーであっても、誤動作を誘発する可能性は低い。
【００８５】
図１１に示した割り当て例では、ステータスコマンド（“７０ｈ”）に対するリード時のステータスデータ出力として、データ信号ＩＯ［０］、［１］、［２］、［３］、［４］、［５］をつぎのように定義している。ＩＯ［０］は、チップ全体でエラー訂正数を累算した結果を、Ｐａｓｓ／Ｆａｉｌ（Ｐａｓｓ：“０”、Ｆａｉｌ：“１”）で表す。ＩＯ［１］及びＩＯ［２］は、半導体メモリが２個のメモリマットを備えることとして、ＩＯ［１］が第１のマットについて、そして、ＩＯ［２］が第２のマットについて、エラー訂正数を累算した結果をＰａｓｓ／Ｆａｉｌ（Ｐａｓｓ：“０”、Ｆａｉｌ：“１”）で表す。また、ＩＯ［５：３］は、ページ毎の最大のエラー訂正数を３ビットのデータで表す。ここで、Ｐａｓｓは劣化なし、Ｆａｉｌは劣化検出あり、である。図１１に示した割り当てによれば、ページ内のＥＣＣセクターで最大の誤りｂｉｔ数をＩＯ［５：３］で出力する。このような形で、いわゆるＰａｓｓ／Ｆａｉｌの形式で劣化情報を出力したり、より詳細な誤り検出Ｂｉｔ数に応じた情報を出力したりすることができる。
【００８６】
上述した本発明の実施形態の構成によれば、次のような効果を得ることができる。すなわち、半導体メモリに誤り訂正回路（ＥＣＣ）をオンチップで搭載し、エラーフリーで動作させる場合に、誤り検出ビット数（もしくは訂正ビット数）に対して所定の累算処理を行った結果をさらに所定の基準値と比較した結果に基づいて、内部のデータ（すなわちメモリセル）の劣化度合いを外部システムに対してステータス信号もしくは意図的なビットエラーの発生によって出力することができる。ＮＡＮＤブラッシュメモリは、Ｅｒａｓｅ／Ｐｒｏｇｒａｍを繰り返した場合、劣化するが、オンチップで誤り訂正を行うと、エラーフリーとして振る舞い、外部に現れるデータＤａｔａから劣化を推測できない。しかしながら、本発明を使用すれば、ある程度データエラーが発生し始めた時点で、これを外部に出力することができる。また、その際、エラー訂正ビット数が多くなっても、ステータスを表すために出力するデータのビット数は少なくとどめることができる。したがって、外部のＮＡＮＤコントローラー等による置換機能を有効利用できる
【００８７】
なお、本発明の実施の形態は上記のものに限定されず、例えば、各回路ブロックを複数設けて並列動作させたり、説明した各信号のビット数等を増加あるいは減少させたりといった変更を適宜実施することができる。
【符号の説明】
【００８８】
１  半導体メモリ
１１  メモリアレイ
１２  ページバッファ
１３  カラムコーディング回路Ａ
１４  カラムコーディング回路Ｂ
１５  アドレス制御回路
１６  誤り訂正回路
１７、１７ａ  出力バッファ
１８、１８ａ  判定部
１９  入出力パッド
１７４、１７５  ２入力排他的論理和回路
１８１  累算カウンタ
１８１ａ  最大値保持レジスタ
１８２、１８２ａ  比較回路
２１  フェイルビット検出ブロック
【図１】
2014137833.tif 000003
【図２】
2014137833.tif 000004
【図３】
2014137833.tif 000005
【図４】
2014137833.tif 000006
【図５】
2014137833.tif 000007
【図６】
2014137833.tif 000008
【図７】
2014137833.tif 000009
【図８】
2014137833.tif 000010
【図９】
2014137833.tif 000011
【図１０】
2014137833.tif 000012
【図１１】
2014137833.tif 000013