(57)【要約】【課題】１つの実施形態は、例えば、不揮発性メモリの寿命を予測でき、予測結果をユーザに知らせることができる不揮発性半導体記憶装置を提供することを目的とする。【解決手段】１つの実施形態によれば、不揮発性メモリとモニタ部と判定部と報知処理部とを備えたことを特徴とする不揮発性半導体記憶装置が提供される。不揮発性メモリは、複数のメモリセルと電圧生成部とを有する。複数のメモリセルは、ワード線で駆動される。電圧生成部は、ワード線へ印加する読み出し電圧を生成する。モニタ部は、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタする。読み出し処理では、読み出し電圧をワード線に印加して、複数のメモリセルからデータを読み出す。判定部は、モニタ部によるモニタ結果に応じて、不揮発性メモリの劣化度合いを判定する。報知処理部は、判定部による判定結果に応じて、不揮発性メモリの寿命を報知する。【選択図】図１
2013122793.tif 000002
【特許請求の範囲】
【請求項１】
ワード線で駆動される複数のメモリセルと前記ワード線へ印加する読み出し電圧を生成する電圧生成部とを有する不揮発性メモリと、
前記読み出し電圧を前記ワード線に印加して前記複数のメモリセルからデータを読み出す読み出し処理を行った際の前記複数のメモリセルの閾値の分布の変化をモニタするモニタ部と、
前記モニタ部によるモニタ結果に応じて、前記不揮発性メモリの劣化度合いを判定する判定部と、
前記判定部による判定結果に応じて、前記不揮発性メモリの寿命を報知する報知処理部と、
を備え、
前記モニタ部は、第１のモードにおいて、前記読み出し電圧を一定にした状態で前記読み出し処理を繰り返し行った際の前記読み出し処理が成功するまでの読み出し回数をモニタし、第２のモードにおいて、前記読み出し電圧を徐々に増加方向及び減少方向のいずれか一方向に変化させながら前記読み出し処理を繰り返し行った際の前記読み出し処理が成功するまでの読み出し回数又は前記読み出し処理が成功したときの前記読み出し電圧をモニタし、第３のモードにおいて、前記読み出し処理を行った際の前記複数のメモリセルのデータにおけるビット誤り数をモニタし、第４のモードにおいて、前記読み出し電圧を徐々に増加方向及び減少方向のそれぞれの方向に変化させながら前記読み出し処理を繰り返し行った際の前記読み出し処理が失敗するまでの読み出し回数又は前記読み出し処理が失敗したときの前記読み出し電圧をモニタする
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
ワード線で駆動される複数のメモリセルと前記ワード線へ印加する読み出し電圧を生成する電圧生成部とを有する不揮発性メモリと、
前記読み出し電圧を前記ワード線に印加して前記複数のメモリセルからデータを読み出す読み出し処理を行った際の前記複数のメモリセルの閾値の分布の変化をモニタするモニタ部と、
前記モニタ部によるモニタ結果に応じて、前記不揮発性メモリの劣化度合いを判定する判定部と、
前記判定部による判定結果に応じて、前記不揮発性メモリの寿命を報知する報知処理部と、
を備えたことを特徴とする不揮発性半導体記憶装置。
【請求項３】
前記モニタ部は、第４のモードにおいて、前記読み出し電圧を徐々に増加方向及び減少方向のそれぞれの方向に変化させながら前記読み出し処理を繰り返し行った際の前記読み出し処理が失敗するまでの読み出し回数又は前記読み出し処理が失敗したときの前記読み出し電圧をモニタする
ことを特徴とする請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
前記モニタ部は、第１のモードにおいて、前記読み出し電圧を一定にした状態で前記読み出し処理を繰り返し行った際の前記読み出し処理が成功するまでの読み出し回数をモニタする
ことを特徴とする請求項２又は３に記載の不揮発性半導体記憶装置。
【請求項５】
前記モニタ部は、第２のモードにおいて、前記読み出し電圧を徐々に増加方向及び減少方向のいずれか一方向に変化させながら前記読み出し処理を繰り返し行った際の前記読み出し処理が成功するまでの読み出し回数又は前記読み出し処理が成功したときの前記読み出し電圧をモニタする
ことを特徴とする請求項２から４のいずれか１項に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
不揮発性半導体記憶装置において、不揮発性メモリからの読み出し動作を実施する際には、書き込み／消去回数、データ保持期間、周辺温度によりメモリセルから読み出される電圧値が変動する。必要であればＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）により訂正が行われる。しかしながら、これまでは、これら電圧値変動、ＥＣＣによる訂正の度合いはユーザにはわからず、その為、不揮発性メモリが寿命に近づいていてもユーズは使い続け、それにより、場合によっては、突然、不揮発性メモリに記憶されていたデータのロスが生じうる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１００５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つの実施形態は、例えば、不揮発性メモリの寿命を予測でき、予測結果をユーザに知らせることができる不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
１つの実施形態によれば、不揮発性メモリとモニタ部と判定部と報知処理部とを備えたことを特徴とする不揮発性半導体記憶装置が提供される。不揮発性メモリは、複数のメモリセルと電圧生成部とを有する。複数のメモリセルは、ワード線で駆動される。電圧生成部は、ワード線へ印加する読み出し電圧を生成する。モニタ部は、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタする。読み出し処理では、読み出し電圧をワード線に印加して、複数のメモリセルからデータを読み出す。判定部は、モニタ部によるモニタ結果に応じて、不揮発性メモリの劣化度合いを判定する。報知処理部は、判定部による判定結果に応じて、不揮発性メモリの寿命を報知する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態にかかる不揮発性半導体記憶装置のハードウェア構成を示す図。
【図２】第１の実施形態における不揮発性メモリの回路構成及び動作を示す図。
【図３】第１の実施形態におけるドライブ制御回路の構成を示す図。
【図４】第１の実施形態における不揮発性メモリの機能構成を示す図。
【図５】第１の実施形態にかかる不揮発性半導体記憶装置の機能構成を示す図。
【図６】第１の実施形態にかかる不揮発性半導体記憶装置の動作を示すフローチャート。
【図７】第１の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図８】第１の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図９】第１の実施形態にかかる報知処理部の報知内容を示す図。
【図１０】第２の実施形態にかかる不揮発性半導体記憶装置の機能構成を示す図。
【図１１】第２の実施形態にかかる不揮発性半導体記憶装置の動作を示すフローチャート。
【図１２】第２の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図１３】第２の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図１４】第２の実施形態にかかる報知処理部の報知内容を示す図。
【図１５】第３の実施形態にかかる不揮発性半導体記憶装置の機能構成を示す図。
【図１６】第３の実施形態にかかる不揮発性半導体記憶装置の動作を示すフローチャート。
【図１７】第３の実施形態にかかる報知処理部の報知内容を示す図。
【図１８】第４の実施形態にかかる不揮発性半導体記憶装置の機能構成を示す図。
【図１９】第４の実施形態にかかる不揮発性半導体記憶装置の動作を示すフローチャート。
【図２０】第４の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図２１】第４の実施形態にかかる複数のメモリセルの閾値の分布を示す図。
【図２２】第１の実施形態〜第４の実施形態の変形例における不揮発性半導体記憶装置の機能構成を示す図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる不揮発性半導体記憶装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
本実施形態は、本実施形態では、複数のメモリセルを含む不揮発性メモリ（例えば、ＮＡＮＤ型フラッシュメモリ）を有した不揮発性半導体記憶装置（例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ））において、不揮発性メモリの劣化度合いを判定するため、不揮発性メモリからのデータの読み出し処理を行った際の複数のメモリセルの閾値の分布をモニタする。
【０００９】
複数のメモリセルの閾値の分布をモニタした後、モニタ結果と予め設定しておいた閾値とを比較し、この比較結果に基づいて、不揮発性メモリ内の各ブロックの劣化度合いを判定する。さらに、劣化度合いの判定結果に応じて、不揮発性メモリの寿命が近いか否かを判断し、寿命が近ければそのことをユーザに報知する。本実施形態は、このような寿命予測方法を提供するものである。
【００１０】
以下、不揮発性半導体記憶装置がＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である場合について図面を用いて具体的に説明するが、本実施形態は不揮発性半導体記憶装置が例えばメモリカードである場合等にも同様に適用可能である。
【００１１】
まず、図１〜図４を参照して、不揮発性半導体記憶装置の構成やＮＡＮＤ型フラッシュメモリの構成などについて説明し、その後、図５〜図１０を参照して、本実施の形態の特徴の１つである不揮発性半導体記憶装置の構成や動作などについて説明する。
【００１２】
図１は、不揮発性半導体記憶装置としてのＳＳＤ１００Ａの構成例を示すブロック図である。ＳＳＤ１００Ａは、ホスト装置（以下、ホストと略す）１と接続するためのホスト接続インタフェース（後述のホストＩ／Ｆ４０）を備えている。図１では、ホストＩ／Ｆ４０がＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースである場合を示している。ＳＳＤ１００Ａは、ＡＴＡ  Ｉ／Ｆ２（ホストＩ／Ｆ４０）を介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト１と接続され、ホスト１の外部メモリとして機能する。また、ＳＳＤ１００Ａは、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ  Ｉ／Ｆ）などの通信インタフェース３を介して、デバッグ用／製造検査用機器２００との間でデータを送受信することができる。なお、ホスト１は、報知装置１ａを含む。
【００１３】
ＳＳＤ１００Ａは、複数のメモリセルを含む不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）２０と、コントローラとしてのドライブ制御回路４と、揮発性半導体メモリとしてのＤＲＡＭ３０と、電源回路５と、状態表示用のＬＥＤ６と、ドライブ内部の温度を検出する温度センサ７と、フューズ８と、状態報知用の報知装置９とを備えている。
【００１４】
電源回路５は、ホスト１側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をＳＳＤ１００Ａ内の各回路に供給する。また、電源回路５は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路４に供給する。
【００１５】
フューズ８は、ホスト１側の電源回路とＳＳＤ１００Ａ内部の電源回路５との間に設けられている。外部電源回路から過電流が供給された場合、フューズ８が切断され、内部回路の誤動作を防止する。
【００１６】
ＮＡＮＤメモリ２０は、例えば４並列動作を行う４つの並列動作要素２０ａ〜２０ｄを有し、４つの並列動作要素２０ａ〜２０ｄは、４つのチャネル（ｃｈ０〜ｃｈ３）によってドライブ制御回路４に接続されている。各並列動作要素２０ａ〜２０ｄは、バンクインターリーブが可能な複数のバンクによって構成されている。すなわち、各並列動作要素は、例えば４バンク（Ｂａｎｋ０〜Ｂａｎｋ３）によって構成されており、各バンクは、複数のＮＡＮＤメモリチップ、例えば２つのメモリチップ（Ｃｈｉｐ０、Ｃｈｉｐ１）により構成されている。
【００１７】
各メモリチップは、例えば、それぞれ複数の物理ブロックを含むプレーン０、プレーン１の２つの領域（Ｄｉｓｔｒｉｃｔ）に分割されている。プレーン０およびプレーン１は、互いに独立した周辺回路（例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等）を備えており、倍速モードを使用することにより、同時に消去／書き込み／読み出しを行うことが可能である。
【００１８】
このように、ＮＡＮＤメモリ２０の各ＮＡＮＤメモリチップは、複数のチャネルによる並列動作、複数のバンク（すなわち、複数のＮＡＮＤデバイス）によるバンクインターリーブ動作、同一バンク内（同一ＮＡＮＤデバイス内）の複数チップのインターリーブ動作、複数のプレーンを用いた倍速モードによる並列動作が可能である。なお、各メモリチップは、２つ以上の複数のプレーンに分割された構成であってもよいし、あるいは、全く分割されていなくてもよい。
【００１９】
ＤＲＡＭ３０は、ホスト１とＮＡＮＤメモリ２０との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。ＤＲＡＭ３０の作業領域用メモリに記憶される内容は、例えばＮＡＮＤメモリ２０に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル（スナップショット）、あるいは管理テーブルの変更差分であるログ情報などがある。
【００２０】
なお、ＤＲＡＭ３０の代わりに、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを利用する場合、電源切断時に各種管理テーブルなどをＮＡＮＤメモリ２０に退避させる動作の一部又は全部を省略することができる。
【００２１】
ドライブ制御回路４は、ホスト１とＮＡＮＤメモリ２０との間でＤＲＡＭ３０を介してデータ転送制御を行うとともに、ＳＳＤ１００Ａ内の各構成要素を制御する。また、ドライブ制御回路４は、状態表示用ＬＥＤ６にステータス表示用信号を供給するとともに、電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号をドライブ制御回路４内及びＳＳＤ１００Ａ内の各部に供給する機能も有している。
【００２２】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。
【００２３】
図２（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。各ＮＡＮＤストリングに含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２４】
各メモリセルトランジスタ（メモリセルとも言う）ＭＣＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｆｉｅｌｄ  Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）により構成されている。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＣＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＣＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２５】
また、メモリセルトランジスタＭＣＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｎｉｔｒｉｄｅ−Ｏｘｉｄｅ−Ｓｉｌｉｃｏｎ）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＣＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２６】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＣＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＣＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００２７】
各ＮＡＮＤストリングにおいて、最も選択ゲート線ＳＧＤ側に位置するメモリセルトランジスタＭＣＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＣＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＣＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２８】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＣＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＣＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＣＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００２９】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００３０】
図２（ｂ）は、例えば、１個のメモリセルトランジスタＭＣＴに２ビットの記憶を行う４値データ記憶方式での閾値分布を示す模式図である。４値データ記憶方式は、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＣＴに保持可能である。
【００３１】
４値データ“ｘｙ”は、メモリセルトランジスタＭＣＴの閾値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＣＴの閾値電圧が例えば負とされた消去状態である。尚、データの割り当て規則はこれに限らない。また、１個のメモリセルトランジスタＭＣＴに３ビット以上の記憶を行う構成であってもよい。
【００３２】
下位ページの書き込み動作において、データ“１１”（消去状態）のメモリセルトランジスタＭＣＴに対して選択的に、下位ビットデータ“ｙ”を書き込むことによって、データ“１０”が書き込まれる。上位ページの書き込み前のデータ“１０”の閾値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”の閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”が書き込まれることにより、データ“０１”及びデータ“００”が書き込まれる。擬似ＳＬＣモードは、下位ページのみを使用して書き込みを行う。下位ページの書き込みは、上位ページの書き込みに比べて高速である。
【００３３】
図３は、ドライブ制御回路４のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路４は、データアクセス用バス１０１、第１の回路制御用バス１０２、及び第２の回路制御用バス１０３を備えている。第１の回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０４が接続されている。第１の回路制御用バス１０２には、ブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。ブートＲＯＭ１０５には、ＮＡＮＤメモリ２０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されている。
【００３４】
また、第１の回路制御用バス１０２には、クロックコントローラ１０７が接続されている。このクロックコントローラ１０７は、図１に示した電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給する。
【００３５】
第２の回路制御用バス１０３は、第１の回路制御用バス１０２に接続されている。第２の回路制御用バス１０３には、図１に示した温度センサ７からのデータを受けるためのＩ２Ｃ回路１０８、状態表示用ＬＥＤ６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路１０９、ＲＳ２３２Ｃ  Ｉ／Ｆ３を制御するシリアルＩＯ（ＳＩＯ）回路１１０が接続されている。
【００３６】
ＳＡＴＡインタフェースコントローラ（ＳＡＴＡコントローラ）１１１ａ、ＰＡＴＡインタフェースコントローラ（ＰＡＴＡコントローラ）１１１ｂ、第２のＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）回路１１２、ＮＡＮＤ用のコントローラであるコントローラ１１３、及びＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と第１の回路制御用バス１０２との両方に接続されている。ＳＡＴＡコントローラ１１１ａは、ＳＡＴＡインタフェース（図１に示すＡＴＡインタフェース２の一部）を介してホスト１との間でデータやコマンドを送受信する。ＰＡＴＡコントローラ１１１ｂは、ＰＡＴＡインタフェース（図１に示すＡＴＡインタフェース２の他の一部）を介してホスト１との間でデータやコマンドを送受信する。データアクセス用バス１０１には、データ作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤメモリ２０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００３７】
コントローラ１１３は、ＮＡＮＤ  Ｉ／Ｆ１１７、第１のＥＣＣ回路１１８、及びＤＭＡ転送制御用のＤＭＡコントローラ１１９を備えている。ＮＡＮＤ  Ｉ／Ｆ１１７は、ＮＡＮＤメモリ２０とのインタフェース処理を行う。ＤＭＡ転送制御用ＤＭＡコントローラ１１９は、ＮＡＮＤメモリ２０とＤＲＡＭ３０間のアクセス制御を行う。第１のＥＣＣ回路１１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコード及びデコードを行う。第２のＥＣＣ回路１１２は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Ｂｏｓｅ  Ｃｈａｕｄｈｕｒｉ  Ｈｏｃｑｕｅｎｇｈｅｍ）符号、ＲＳ(Ｒｅｅｄ  Ｓｏｌｏｍｏｎ)符号、或いはＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。
【００３８】
図１に示したように、ＮＡＮＤメモリ２０において、４つの並列動作要素２０ａ〜２０ｄは各複数ビットの４つのチャネルを介して、ドライブ制御回路４内部のコントローラ１１３に並列接続されており、４つの並列動作要素２０ａ〜２０ｄを並列動作させることが可能である。また、各チャネルのＮＡＮＤメモリ２０は、バンクインターリーブが可能な４つのバンクに分割されており、各メモリチップのプレーン０およびプレーン１に対しても、同時にアクセスを行うことが可能である。したがって、１チャネルに付き、最大８つの物理ブロック（４バンク×２プレーン）を、ほぼ同時に制御することが可能である。すなわち、最大８つの物理ブロックに対して同時に書き込みなどの処理を実行することが可能である。
【００３９】
図４は、図１に示す１つのＮＡＮＤメモリチップ（半導体不揮発性メモリ）の一例を示す機能ブロック図である。
【００４０】
メモリセルアレイ２０１は、複数のビット線と複数のワード線と共通ソース線とを含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に（複数行及び複数列を構成するように）配置されている。このメモリセルアレイ２０１には、ビット線を制御するためのビット線制御回路２０２とワード線を制御するためのワード線制御回路２０６とが接続されている。
【００４１】
ビット線制御回路２０２は、複数のビット線を介して複数列のメモリセルに接続されている。ビット線制御回路２０２は、ビット線を介してメモリセルのデータを読み出したり、ビット線を介してメモリセルの状態を検出したり、ビット線を介してメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２０２には、カラムデコーダ２０３、データ入出力バッファ２０４が接続されている。
【００４２】
ビット線制御回路２０２内のデータ記憶回路はカラムデコーダ２０３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、データ入出力バッファ２０４を介してデータ入出力端子２０５から外部へ出力される。データ入出力端子２０５は、メモリチップ外部のドライブ制御回路４に接続される。
【００４３】
このドライブ制御回路４は、データ入出力端子２０５から出力されたデータを受ける。さらに、ドライブ制御回路４は、ＮＡＮＤ型フラッシュメモリの動作を制御する各種コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＴを出力する。ドライブ制御回路４からデータ入出力端子２０５に入力された書き込みデータは、データ入出力バッファ２０４を介して、カラムデコーダ２０３によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは、制御信号及び制御電圧発生回路２０７に供給される。
【００４４】
ワード線制御回路２０６は、複数のワード線を介して複数行のメモリセルに接続されている。このワード線制御回路２０６は、メモリセルアレイ２０１のワード線を選択し、選択されたワード線を介して、読み出し、書き込みあるいは消去に必要な電圧をメモリセルに印加する。
【００４５】
メモリセルアレイ２０１、ビット線制御回路２０２、カラムデコーダ２０３、データ入出力バッファ２０４、及びワード線制御回路２０６は、制御信号及び制御電圧発生回路２０７に接続され、この制御信号及び制御電圧発生回路２０７によって制御される。
【００４６】
制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８に接続され、ドライブ制御回路４から制御信号入力端子２０８を介して入力されるＡＬＥ（アドレス・ラッチ・イネーブル）、ＣＬＥ（コマンド・ラッチ・イネーブル）、ＷＥ（ライト・イネーブル）などの各種制御信号、及びドライブ制御回路４からデータ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤによって制御される。
【００４７】
この制御信号及び制御電圧発生回路２０７は、データの書き込み時にワード線やビット線に供給される電圧を発生するとともに、ウエルに供給される電圧を発生する。制御信号及び制御電圧発生回路２０７は、例えばチャージポンプ回路のような昇圧回路を含み、書き込み電圧や読み出し電圧、消去電圧を生成可能とされている。
【００４８】
さらに、制御信号及び制御電圧発生回路２０７は、後述するように、読み出し電圧のレベルを変更可能とされている。すなわち、制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８を介して入力される各種制御信号、データ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤを受けて、読み出し動作時にワード線に印加する電圧（すなわち、読み出し電圧）を＋方向、または−方向にシフトさせる機能を有している。
【００４９】
ビット線制御回路２０２、カラムデコーダ２０３、ワード線制御回路２０６、制御信号及び制御電圧発生回路２０７は、書き込み回路、及び読み出し回路を構成している。
【００５０】
メモリセルアレイ２０１は、本体データを格納するための記憶領域に加えて、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）を記憶する記憶領域２０１−１を有している。
【００５１】
ＳＳＤ１００ＡのＮＡＮＤメモリ２０では、各メモリセルトランジスタＭＴは、書き込まれたデータが長時間アクセスされなかったような場合、その浮遊ゲートから電子が放出され、閾値電圧が低くなるように変化する現象が発生する（図７、図８参照）。この現象は、例えば、書き込み／消去回数の増加、データ保持期間の増加、周辺温度の上昇などにより、各メモリセルトランジスタＭＴのゲート絶縁膜が劣化すると、起こりやすくなる。このため、複数のメモリセル（すなわち、複数のメモリセルトランジスタＭＴ）の閾値の分布の変化と複数のメモリセルの劣化との間に相関関係を有するので、本実施形態では、例えば、この相関関係を利用してＮＡＮＤメモリ２０の劣化度合いをモニタする。
【００５２】
次に、ＳＳＤ１００Ａの構成について図５を用いて説明する。図５は、第１の実施の形態に係る不揮発性半導体記憶装置としてのＳＳＤの機能構成例を示す機能ブロック図である。
【００５３】
ＳＳＤ１００Ａは、コントローラ１０Ａ（ドライブ制御回路４）、ＮＡＮＤメモリ２０、ＤＲＡＭ３０、及びホストＩ／Ｆ４０を備えている。
【００５４】
ＮＡＮＤメモリ２０は、ホスト１によって指定されたユーザデータを記憶したり、ＤＲＡＭ３０で管理される管理情報をバックアップ用に記憶したりする。ＮＡＮＤメモリ２０は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページおよび下位ページを使用して多値記憶が可能である。ＮＡＮＤメモリ２０は、複数のＮＡＮＤメモリチップによって構成され、各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成される。また、ＮＡＮＤメモリ２０では、物理ページごとにデータの書き込みおよびデータの読み出しが行われる。物理ブロックは、複数の物理ページによって構成されている。
【００５５】
物理ブロックアドレスは、物理ブロックに割り当てられた固定的なアドレスである。論理ブロックアドレスは、ホスト１から指定されるアドレスや、仮想的なブロックである論理ブロックに割り当てられる変更可能なアドレスである。論理ブロックとは、例えば、物理ブロックを複数組み合わせて構成される仮想的なブロックのことをいう。
【００５６】
ＤＲＡＭ３０は、データ転送用、管理情報記録用の記憶部として使用される。具体的には、データ転送用の記憶部（データ転送用キャッシュ領域）は、ホスト１から書込要求があったデータをＮＡＮＤメモリ２０に書込む前に一時的に保存したり、ホスト１から読出要求があったデータをＮＡＮＤメモリ２０から読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、ＮＡＮＤメモリ２０に記憶されるデータの格納位置を管理するための管理情報（論理アドレスと物理アドレスとの対応など）、後述の読み出し回数を物理ブロック単位に管理するための管理情報などを含む各種管理情報を格納するために使用される。
【００５７】
ＮＡＮＤメモリ２０には、読み出し電圧管理テーブル（図示せず）や読み出し回数管理テーブル（図示せず）が記憶されており、これらのテーブルはシステム起動時、ＮＡＮＤメモリ２０から読み出されて、ＤＲＡＭ３０に格納される。読み出し電圧管理テーブルは、例えば、１つのメモリチップにおけるワードラインの夫々を特定するアドレス（すなわち制御信号及び制御電圧発生回路２０７からワード線制御回路２０６に供給されるアドレス）毎に読み出し電圧を示すテーブル構造を備えている。すなわち、読み出し電圧管理テーブルによれば、読み出し電圧が物理ページ毎に記録される。なお、多値を記憶するメモリセルが採用される場合には、読み出し電圧管理テーブルは複数ある閾値毎に用意される。読み出し回数管理テーブルは、後述の読み出し回数を、物理ブロック単位（物理ブロックアドレス単位）に管理するためのテーブルであり、読み出し回数としては、実際にモニタされた最新の読み出し回数が登録されている。
【００５８】
コントローラ１０Ａは、ホスト１とＮＡＮＤメモリ２０との間でＤＲＡＭ３０を介してデータ転送制御を行うとともに、ＳＳＤ１００Ａ内の各構成要素を制御するソフトウエアを有している。コントローラ１０ＡとＮＡＮＤメモリ２０との間は、コマンド、アドレス、データなどを入出力するためのコントロールＩ／Ｏ線（ＣｔｒｌＩ／Ｏ）によって接続され、また、ＮＡＮＤメモリ２０がレディ状態にあるかビジー状態にあるかを示すレディ／ビジー信号（Ｒｙ／Ｂｙ）がＮＡＮＤメモリ２０からコントローラ１０Ａに入力されている。コントローラ１０Ａは、機能的な構成要素であり、例えば、図３に示すプロセッサ１０４及びコントローラ１１３の少なくとも一方の少なくとも一部を含む。
【００５９】
コントローラ１０Ａは、読み書き制御部１１、モニタ部１２、判定部１３、及び報知処理部１５を有している。
【００６０】
読み書き制御部１１は、ＤＲＡＭ３０に格納された管理情報に基づいて、ＤＲＡＭ３０のキャッシュ領域を介してＮＡＮＤメモリ２０に対するデータの読み書き制御を行う。
【００６１】
モニタ部１２は、読み出し処理を行った際の複数のメモリセル（複数のメモリセルトランジスタＭＣＴ）の閾値の分布の変化をモニタする。このモニタされる複数のメモリセルの閾値の分布は、例えば、読み出し処理を繰り返し行った際（リトライ読み出し処理を行った際）の読み出し処理が成功するまでの読み出し回数（リトライ回数）を含む。
【００６２】
すなわち、複数のメモリセルの閾値の分布は、図７で示すように、実線で示す初期状態の分布から、破線で示す使用開始から長時間が経過した後の分布へと変化していく。破線で示す閾値の分布と読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルとを比較すると、初期状態に比べて閾値の分布の低電圧側の部分が読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルに近づいているのが分かる。破線で示す閾値の分布は、実際には、固定したものではなく、低電圧側及び高電圧側にゆらいでいる。そこで、閾値の分布の低電圧側の部分が読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルに近づくにつれて、読み出し処理を繰り返し行った際（リトライ読み出し処理を行った際）の読み出し処理が成功するまでの読み出し回数（リトライ回数）が増加する傾向にある。そのため、読み出し回数の変化をモニタすることで、閾値の分布の変化をモニタすることができる。図７に示すように、データごとに読み出し電圧のレベルとの近さが変わりうる。図７では、次の数式１が成り立つ場合について例示されている。
【００６３】
データ“１０”の読み出し回数＜データ“００”の読み出し回数
＜データ“０１”の読み出し回数・・・数式１
【００６４】
また、閾値電圧低下に関連する現象は、図７に示すように、２ビット以上のデータ（多値）を記憶するメモリセル（ＭＬＣ：Multi  Level  Cell）の場合に限らず、図８に示すように、１ビットのデータ（二値）を記憶するメモリセル（ＳＬＣ：Single  Level  Cell）の場合も同様である。ただし、ＭＬＣの場合は、ＳＬＣの場合に比較して閾値分布間のマージンに係る制約が厳しいため、閾値電圧低下の影響はより顕著である。
【００６５】
具体的には、モニタ部１２は、読み出し回数モニタ部１２１を有する。読み出し回数モニタ部１２１は、物理ブロック単位で、読み出し処理を繰り返し行った際の読み出し処理が成功するまでの読み出し回数を測定する。例えば、ＳＳＤ１００Ａにおいてデータ更新箇所を均等に分散させてブロック間の書き込み／消去回数のばらつきを低減させるウェアレベリングと呼ばれる処理が行われている場合であれば、読み出し回数モニタ部１２１は、測定対象の物理ブロックにおける代表の物理ページ（すなわち、選択されたワード線により駆動される複数のメモリセルトランジスタＭＣＴ）からの読み出し処理の度に、読み出し回数を測定する。例えば、読み出し回数モニタ部１２１は、その代表の物理ページからの読み出し処理が行われる度に読み出し処理が行われた旨の通知を受け、代表の物理ページの読み出し回数Ｎｗのカウント値をインクリメントする。読み出し回数モニタ部１２１は、インクリメントされた読み出し回数を、判定部１３へ供給するとともに、上記の読み出し回数管理テーブルの対応する物理ブロックのエントリに登録する。
【００６６】
より具体的には、読み出し回数モニタ部１２１は、読み出し処理が行われるたびに、代表の物理ページの各ビット（各メモリセル）ごとに読み出し処理が成功したか否かの判断結果を第１のＥＣＣ回路１１８及び第２のＥＣＣ回路１１２の少なくとも一方から受ける。
【００６７】
例えば、読み出し回数モニタ部１２１は、代表の物理ページにおける複数のメモリセルのそれぞれについて個別に読み出し回数をカウントし、複数のメモリセルのそれぞれについて読み出し回数を求める。
【００６８】
あるいは、例えば、読み出し回数モニタ部１２１は、複数のメモリセルの読み出し回数を統計的に処理して代表の物理ページに対する読み出し回数を求めてもよい。統計的な処理は、例えば、単純平均、加算平均、代表値の選択、中央値の選択などである。読み出し回数モニタ部１２１は、求めた読み出し回数を、代表の物理ページに対応する物理ブロックの読み出し回数とする。
【００６９】
判定部１３は、モニタ結果をモニタ部１２から受ける。判定部１３は、モニタ部１２によるモニタ結果に応じて、ＮＡＮＤメモリ２０の劣化度合いを判定する。具体的には、判定部１３は、モニタ部１２によりモニタされた読み出し回数を所定の閾値と比較し、その比較結果に応じて、ＮＡＮＤメモリ２０の各ブロックの劣化度合いを判定する。判定部１３は、判定結果を報知処理部１５へ供給する。
【００７０】
例えば、判定部１３は、ブロック単位で、モニタされた読み出し回数を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２によるモニタ結果から、判定対象のブロックについて、複数のメモリセルの読み出し回数の分布を認識し（図９参照）、複数のメモリセルの読み出し回数の分布のうち回数閾値Ｎｔｈ以上の読み出し回数の度数を特定する。判定部１３は、特定された度数を度数閾値Ｆｔｈと比較し、その比較結果に応じて、判定対象のブロックの寿命が近いか否かを判定する。
【００７１】
あるいは、例えば、判定部１３は、ブロック単位で、モニタされた読み出し回数を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２によるモニタ結果から、判定対象のブロックの読み出し回数を認識し、判定対象のブロックの読み出し回数を回数閾値Ｎｔｈと比較し、その比較結果に応じて、判定対象のブロックの寿命が近いか否かを判定する。
【００７２】
報知処理部１５は、判定結果を判定部１３から受ける。報知処理部１５は、判定部１３による判定結果に応じて、報知装置２１を介してＮＡＮＤメモリ２０の寿命を報知する。すなわち、報知処理部１５は、判定部１３による判定結果に応じて、報知すべき内容を示す報知情報を生成し、報知装置２１へ供給する。これに応じて、報知装置２１は、報知情報に従って、ＮＡＮＤメモリ２０の寿命についての報知をユーザに向けて行う。報知装置２１は、例えば、図１に示すＬＥＤ６、報知装置９、報知装置１ａなどに対応する。報知装置２１による報知は、例えば、ＬＥＤ６の点灯や点滅などによる報知、報知装置９や報知装置１ａなどの画面への表示による報知、報知装置９や報知装置１ａなどのスピーカへの音声出力による報知、報知装置９や報知装置１ａなどのブザーによる報知などを含む。
【００７３】
例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、図９に示すようなグラフを含む報知情報を生成して報知装置２１へ供給し、そのグラフを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、複数のメモリセルの読み出し回数の分布を示す棒グラフを表示するとともに、度数閾値Ｆｔｈ及び回数閾値Ｎｔｈを越える部分が存在することをハイライト表示で示すことなどにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【００７４】
あるいは、例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、寿命が近いか否かを示すメッセージを含む報知情報を生成して報知装置２１へ供給し、そのメッセージを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、寿命が近いことを示すメッセージを表示することにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【００７５】
次に、ＳＳＤ１００Ａの動作について図６を用いて説明する。図６は、ＳＳＤ１００Ａの動作を示すフローチャートである。
【００７６】
ドライブ制御回路４は、読み出し処理時、読み出し電圧管理テーブルを参照して、読み出し電圧を設定する（ステップＳ１）。具体的には、ドライブ制御回路４は、読み出し対象のアドレスを検索キーとして読み出し電圧管理テーブルを検索し、読み出し電圧を取得する。取得された読み出し電圧がデフォルト値であれば、通常の読み出しコマンドが読み出し対象のメモリチップに送られる。一方、取得された読み出し電圧がデフォルト値でなければ、取得された読み出し電圧で読み出しを行う旨の命令（シフト読み出しコマンド）が読み出し対象のメモリチップに送られる。その後、ＳＳＤ１００は、読み出しに成功するまで、ステップＳ２〜ステップＳ５のループ処理を繰り返し実行する。
【００７７】
当該ループ処理において、読み出し対象のメモリチップは、ドライブ制御回路４から送られてきたコマンドで指定される読み出し電圧を、ワード線制御回路２０６から対象のワードラインに印加してデータの読み出し処理を実行する（ステップＳ２）。読み出されたデータはドライブ制御回路４に送られる。ドライブ制御回路４は、第２のＥＣＣ回路１１２および第１のＥＣＣ回路１１８の少なくとも一方を用いて誤り訂正処理を実行する（ステップＳ３）。次に、ドライブ制御回路４は、誤り訂正に失敗した（誤り訂正処理エラー）か、即ち、第１のＥＣＣ回路１１８及び第２のＥＣＣ回路１１２による誤り訂正に失敗したかを判定する（ステップＳ４）。
【００７８】
誤り訂正処理エラーが検出された場合（ステップＳ４、Ｙｅｓ）、ドライブ制御回路４のモニタ部１２は、読み出し回数のカウント値をインクリメントする（ステップＳ１１）。ドライブ制御回路４の判定部１３は、読み出し回数のカウント値、すなわちステップＳ２〜ステップＳ５のループ処理を実行した回数が、予め設定されている上限値を越えているか否かを判定する（ステップＳ５）。ループ回数が上限値を越えている場合（ステップＳ５、Ｙｅｓ）、読み出し失敗として読み出し処理を中止し（ステップＳ８）、処理をステップＳ１０へ進める。ループ回数が上限値を越えていない場合（ステップＳ５、Ｎｏ）、ドライブ制御回路４は、処理をステップＳ２に戻し、リトライ読み出し処理が行われるようにする。
【００７９】
ステップＳ４において、誤り訂正処理エラー検出されなかった場合（ステップＳ４、Ｎｏ）、ドライブ制御回路４のモニタ部１２は、読み出し回数のカウント値で読み出し回数管理テーブルを更新することにより読み出し回数を保存し（ステップＳ６）、読み出し成功としてリトライ読み出し処理を完了させる（ステップＳ７）。
【００８０】
ドライブ制御回路４の判定部１３は、リトライ読み出し処理が完了した旨の通知を受けると、対象のブロックについて寿命が近いか否かの判定を行う（ステップＳ９）。
【００８１】
例えば、判定部１３は、モニタ部１２によるモニタ結果から、判定対象のブロックについて、複数のメモリセルの読み出し回数の分布を認識し（図９参照）、複数のメモリセルの読み出し回数の分布のうち回数閾値Ｎｔｈ以上の読み出し回数の度数を特定する。判定部１３は、特定された度数を度数閾値Ｆｔｈと比較する。判定部１３は、特定された度数が度数閾値Ｆｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ９、Ｙｅｓ）として処理をステップＳ１０へ進める。判定部１３は、特定された度数が度数閾値Ｆｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ９、Ｎｏ）として処理を終了する。
【００８２】
あるいは、例えば、判定部１３は、ブロック単位で、モニタされた読み出し回数を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２によるモニタ結果から、判定対象のブロックの読み出し回数を認識し、判定対象のブロックの読み出し回数を回数閾値Ｎｔｈと比較する。判定部１３は、判定対象のブロックの読み出し回数が回数閾値Ｎｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ９、Ｙｅｓ）として処理をステップＳ１０へ進める。判定部１３は、判定対象のブロックの読み出し回数が回数閾値Ｎｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ９、Ｎｏ）として処理を終了する。
【００８３】
そして、ドライブ制御回路４の報知処理部１５は、判定結果を判定部１３から受ける。報知処理部１５は、判定部１３による判定結果に応じて、報知装置２１を介してＮＡＮＤメモリ２０の寿命を報知する（ステップＳ１０）。すなわち、報知処理部１５は、判定部１３による判定結果に応じて、報知すべき内容を示す報知情報を生成し、報知装置２１へ供給する。これに応じて、報知装置２１は、報知情報に従って、ＮＡＮＤメモリ２０の寿命についての報知をユーザに向けて行う。
【００８４】
例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、図９に示すようなグラフを含む報知情報を生成して報知装置２１へ供給し、そのグラフを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、複数のメモリセルの読み出し回数の分布を示す棒グラフを表示するとともに、度数閾値Ｆｔｈ及び回数閾値Ｎｔｈを越える部分が存在することをハイライト表示で示すことなどにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【００８５】
あるいは、例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、寿命が近いか否かを示すメッセージを含む報知情報を生成して報知装置２１へ供給し、そのメッセージを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、寿命が近いことを示すメッセージを表示することにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【００８６】
なお、上記では、ステップＳ９で判定対象のブロックの寿命が近いか否かの判定に用いる回数閾値Ｎｔｈが、ステップＳ５で読み出し失敗か否かの判定に用いる上限値より低い場合について説明している。この場合、ステップＳ５でＹｅｓとなりステップＳ８に処理が進んだ場合は、当然、読み出し回数が回数閾値Ｎｔｈ以上であるので、寿命が近いか否かの判定（ステップＳ９）を行うことなく処理がステップＳ１０へ進むものとしている。
【００８７】
あるいは、判定対象のブロックの寿命が近いか否かの判定に用いる回数閾値Ｎｔｈは、ステップＳ５で読み出し失敗か否かの判定に用いる上限値と等しくても良い。この場合、ステップＳ５の判定処理がステップＳ９の判定処理を兼ねることになるため、図６においてステップＳ９が省略されるとともにステップＳ７の後に処理が終了されるように変更された処理が行われることになる。
【００８８】
また、ＮＡＮＤメモリ２０に書き込まれたデータはページ毎にＥＣＣ領域を備えるものとして説明したが、ＥＣＣ領域を備えるデータの単位サイズは複数ページであっても構わない。その場合、読み出し回数管理テーブルは複数ページ毎に読み出し回数が登録されるようにし、図６に示した読み出し処理にかかる処理は複数ページのデータ毎に実行するようにするとよい。
【００８９】
ワード線制御回路２０６に供給されるアドレスは、メモリセルアレイ２０１のうちのアクセス対象のブロックを特定するためのブロックアドレスを上位アドレスに、当該アクセス対象のブロックのうちのアクセス対象のワードラインを特定するためのページアドレスを下位アドレスに有している。読み出し電圧管理テーブルにおいて、読み出し電圧はブロックアドレス毎に管理されるようにしてもよい。このようにすることによって、読み出し電圧管理テーブルのサイズが縮小される。
【００９０】
以上のように、第１の実施形態では、モニタ部１２が、読み出し電圧をワード線に印加して複数のメモリセルからデータを読み出す読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタする。判定部１３は、モニタ部１２によるモニタ結果に応じて、ＮＡＮＤメモリ２０の各ブロックの劣化度合いを判定する。報知処理部１５は、判定部１３による判定結果に応じて、報知装置２１を介して、ＮＡＮＤメモリ２０の寿命を報知する。これにより、ＮＡＮＤメモリ２０の各ブロックの寿命を予測でき、予測結果として例えばＮＡＮＤメモリ２０の各ブロックについて寿命が近いか否かをユーザに知らせることができる。この結果、ＮＡＮＤメモリ２０の各ブロックについて寿命が近くなった場合に、寿命が近くなったことをユーザが認識できるので、例えば、ユーザが、寿命に近付いている当該半導体集積回路装置の交換を行うことができる。これにより、突然、知らないうちに、ＮＡＮＤメモリ２０に記憶されていたデータのロスが生じことを低減できる。
【００９１】
また、第１の実施形態では、モニタ部１２が、読み出し電圧を一定にした状態で読み出し処理を繰り返し行った際（リトライ読み出し処理を行った際）の読み出し処理が成功するまでの読み出し回数（リトライ回数）をモニタする。これにより、簡易な処理で、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタすることができる。
【００９２】
（第２の実施形態）
次に、第２の実施形態にかかる不揮発性半導体記憶装置について説明する。以下では、第１の実施形態と異なる部分を中心に説明する。
【００９３】
第１の実施形態では、読み出し電圧を一定に維持した状態で読み出し処理を繰り返し行った（リトライ読み出し処理を行った）が、第２の実施形態では、読み出し電圧を徐々に一方向にシフトさせながら読み出し処理を繰り返し行う（リトライシフト読み出し処理を行う）。具体的には、図１０に示すように、ＳＳＤ１００Ｂのコントローラ１０Ｂは、モニタ部１２Ｂ及び変更部１４Ｂを備える。
【００９４】
変更部１４Ｂは、変更情報１４１Ｂを参照して、読み出し電圧を徐々に一方向（例えば、減少方向）にシフトさせるように読み出し電圧を変更する。具体的には、変更情報１４１Ｂは、１回ごとにシフトさせるべき電圧変化量を含む。変更部１４Ｂは、変更情報１４１Ｂを参照することにより、読み出し処理が行われるたびに、読み出し電圧を一定の電圧変化量でシフトさせる。変更部１４Ｂは、変更後の読み出し電圧、又は変更後の読み出し電圧に対応するコマンドをＮＡＮＤメモリ２０へ供給する。
【００９５】
モニタ部１２Ｂは、読み出し電圧を徐々にシフトさせながら読み出し処理を繰り返し行った際（リトライシフト読み出し処理を行った際）の読み出し処理が成功するまでの読み出し回数をモニタすることにより、読み出し処理を行った際の複数のメモリセル（複数のメモリセルトランジスタＭＣＴ）の閾値の分布の変化をモニタする。あるいは、モニタ部１２Ｂは、読み出し電圧を徐々にシフトさせながら読み出し処理を繰り返し行った際（リトライシフト読み出し処理を行った際）の読み出し処理が成功したときの読み出し電圧をモニタすることにより、読み出し処理を行った際の複数のメモリセル（複数のメモリセルトランジスタＭＣＴ）の閾値の分布の変化をモニタする。
【００９６】
すなわち、複数のメモリセルの閾値の分布は、図１２で示すように、実線で示す初期状態の分布から、破線で示す使用開始から長時間が経過した後の分布へと変化していく。破線で示す閾値の分布と読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルとを比較すると、読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルよりも閾値電圧が低いメモリセルが生じるため、デフォルトの読み出し電圧を用いては正しくデータを読み出すことができないことがある。そこで、閾値の分布が低圧側へ低下していくにつれて、リトライシフト読み出し処理を行った際の読み出し回数が増加する傾向にある。そのため、リトライシフト読み出し処理の読み出し回数の変化をモニタすることで、閾値の分布の変化をモニタすることができる。あるいは、閾値の分布が低圧側へ低下していくにつれて、リトライシフト読み出し処理を行った際の読み出し電圧のデフォルト値からの変化量が増加する傾向にある。そのため、リトライシフト読み出し処理の読み出し電圧のデフォルト値からの変化量をモニタすることで、閾値の分布の変化をモニタすることができる。
【００９７】
図１２に示すように、データごとに閾値の分布の低下具合が変わりうる。例えば、データ“１０”について、読み出し電圧をＶＡからＶＡ１、ＶＡ２へと徐々にシフトさせ、読み出し電圧ＶＡ２で読み出しに成功する。データ“１０”の読み出し回数は例えば２回である。例えば、データ“００”について、読み出し電圧をＶＢからＶＢ１〜ＶＢ６へと徐々にシフトさせ、読み出し電圧ＶＢ６で読み出しに成功する。データ“００”の読み出し回数は例えば６回である。例えば、データ“０１”について、読み出し電圧をＶＣからＶＣ１〜ＶＣ７へと徐々にシフトさせ、読み出し電圧ＶＣ７で読み出しに成功する。データ“０１”の読み出し回数は例えば７回である。すなわち、図１２には、次の数式２が成り立つ場合について例示されている。
【００９８】
データ“１０”の読み出し回数＜データ“００”の読み出し回数
＜データ“０１”の読み出し回数・・・数式２
【００９９】
あるいは、データ“１０”の読み出しに成功した読み出し電圧のデフォルト値からの変化量はΔＶＡ１である。データ“００”の読み出しに成功した読み出し電圧のデフォルト値からの変化量はΔＶＢ１（＞ΔＶＡ１）である。データ“０１”の読み出しに成功した読み出し電圧のデフォルト値からの変化量はΔＶＣ１（＞ΔＶＢ１）である。すなわち、図１２には、次の数式３が成り立つ場合について例示されている。
【０１００】
データ“１０”の読み出し電圧の変化量ΔＶＡ１
＜データ“００”の読み出し電圧の変化量ΔＶＢ１
＜データ“０１”の読み出し電圧の変化量ΔＶＣ１・・・数式３
【０１０１】
また、閾値電圧低下に関連する現象は、図１２に示すように、２ビット以上のデータ（多値）を記憶するメモリセル（ＭＬＣ：Multi  Level  Cell）の場合に限らず、図１３に示すように、１ビットのデータ（二値）を記憶するメモリセル（ＳＬＣ：Single  Level  Cell）の場合も同様である。
【０１０２】
具体的には、モニタ部１２Ｂは、読み出し回数モニタ部１２１Ｂ又は読み出し電圧モニタ部１２２Ｂを有する。
【０１０３】
読み出し回数モニタ部１２１Ｂは、物理ブロック単位で、読み出し処理を繰り返し行った際の読み出し処理が成功するまでの読み出し回数を測定する。例えば、ＳＳＤ１００Ｂにおいてデータ更新箇所を均等に分散させてブロック間の書き込み／消去回数のばらつきを低減させるウェアレベリングと呼ばれる処理が行われている場合であれば、読み出し回数モニタ部１２１Ｂは、測定対象の物理ブロックにおける代表の物理ページ（すなわち、選択されたワード線により駆動される複数のメモリセルトランジスタＭＣＴ）からの読み出し処理の度に、読み出し回数を測定する。読み出し回数モニタ部１２１Ｂは、測定結果をモニタ結果として判定部１３へ供給する。
【０１０４】
読み出し回数モニタ部１２１Ｂは、物理ブロック単位で、読み出し処理を繰り返し行った際の読み出し処理が成功したときの読み出し電圧を測定する。例えば、ＳＳＤ１００Ｂにおいてデータ更新箇所を均等に分散させてブロック間の書き込み／消去回数のばらつきを低減させるウェアレベリングと呼ばれる処理が行われている場合であれば、読み出し回数モニタ部１２１Ｂは、測定対象の物理ブロックにおける代表の物理ページ（すなわち、選択されたワード線により駆動される複数のメモリセルトランジスタＭＣＴ）からの読み出し処理の度に、読み出し電圧を測定する。そして、読み出し回数モニタ部１２１Ｂは、測定した読み出し電圧のデフォルト値からの変化量を求めてモニタ結果として判定部１３へ供給する。
【０１０５】
また、ＳＳＤ１００Ｂの動作が、図１１に示すように、次の点で第１の実施形態と異なる。
【０１０６】
ステップＳ５での判定の結果、ループ回数が上限値を越えていない場合（ステップＳ５、Ｎｏ）、ドライブ制御回路４の変更部１４Ｂは、読み出し電圧の値をステップＳ２で使用した値から所定の刻み幅だけ下げる調整を行う（ステップＳ２１）。閾値電圧は時間の経過とともに低下する傾向があるからである。調整後の読み出し電圧の値は、シフト読み出しコマンドと共にメモリチップ（ＮＡＮＤメモリ２０）に送られ、ステップＳ２の処理に移行して当該メモリチップは新たに送られてきた読み出し電圧を使用して読み出し処理を実行する。
【０１０７】
ステップＳ４において、誤り訂正処理エラー検出されなかった場合（ステップＳ４、Ｎｏ）、ドライブ制御回路４のモニタ部１２Ｂは、読み出し回数のカウント値で読み出し回数管理テーブルを更新して読み出し回数を保存するとともに、使用した読み出し電圧で読み出し電圧管理テーブルを更新する（ステップＳ２２）。
【０１０８】
あるいは、ドライブ制御回路４のモニタ部１２Ｂは、読み出し処理が成功したときの読み出し電圧の変化量で読み出し電圧変化量管理テーブルを更新して読み出し電圧の変化量を保存するとともに、使用した読み出し電圧で読み出し電圧管理テーブルを更新する（ステップＳ２２）。なお、読み出し電圧変化量管理テーブルは、読み出し処理が成功したときの読み出し電圧の変化量を、物理ブロック単位（物理ブロックアドレス単位）に管理するためのテーブルであり、読み出し電圧の変化量としては、実際にモニタされた最新の読み出し電圧の変化量が登録されている。読み出し電圧変化量管理テーブルは、例えば、ＮＡＮＤメモリ２０に記憶されている。
【０１０９】
ドライブ制御回路４の判定部１３は、リトライシフト読み出し処理が完了した旨の通知を受けると、対象のブロックについて寿命が近いか否かの判定を行う（ステップＳ２３）。
【０１１０】
例えば、判定部１３は、モニタ部１２Ｂによるモニタ結果から、判定対象のブロックについて、複数のメモリセルの読み出し回数の分布を認識し（図９参照）、複数のメモリセルの読み出し回数の分布のうち回数閾値Ｎｔｈ以上の読み出し回数の度数を特定する。判定部１３は、特定された度数を度数閾値Ｆｔｈと比較する。判定部１３は、特定された度数が度数閾値Ｆｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ２３、Ｙｅｓ）として処理をステップＳ２４へ進める。判定部１３は、特定された度数が度数閾値Ｆｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ２３、Ｎｏ）として処理を終了する。
【０１１１】
あるいは、例えば、判定部１３は、ブロック単位で、モニタされた判定対象のブロックの読み出し回数を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２Ｂによるモニタ結果から、判定対象のブロックの読み出し回数を認識し、判定対象のブロックの読み出し回数を回数閾値Ｎｔｈと比較する。判定部１３は、判定対象のブロックの読み出し回数が回数閾値Ｎｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ２３、Ｙｅｓ）として処理をステップＳ２４へ進める。判定部１３は、判定対象のブロックの読み出し回数が回数閾値Ｎｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ２３、Ｎｏ）として処理を終了する。
【０１１２】
あるいは、例えば、判定部１３は、モニタ部１２Ｂによるモニタ結果から、判定対象のブロックについて、複数のメモリセルの読み出し電圧の変化量の分布を認識し（図１４参照）、複数のメモリセルの読み出し電圧の変化量の分布のうち変化量閾値ΔＶｒｅａｄ−ｔｈ以上の読み出し電圧の変化量の度数を特定する。判定部１３は、特定された度数を度数閾値Ｆｔｈと比較する。判定部１３は、特定された度数が度数閾値Ｆｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ２３、Ｙｅｓ）として処理をステップＳ２４へ進める。判定部１３は、特定された度数が度数閾値Ｆｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ２３、Ｎｏ）として処理を終了する。
【０１１３】
あるいは、例えば、判定部１３は、ブロック単位で、モニタされた判定対象のブロックの読み出し電圧の変化量を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２Ｂによるモニタ結果から、判定対象のブロックの読み出し電圧の変化量を認識し、判定対象のブロックの読み出し電圧の変化量を変化量閾値ΔＶｒｅａｄ−ｔｈと比較する。判定部１３は、判定対象のブロックの読み出し電圧の変化量が変化量閾値ΔＶｒｅａｄ−ｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ２３、Ｙｅｓ）として処理をステップＳ２４へ進める。判定部１３は、判定対象のブロックの読み出し電圧の変化量が変化量閾値ΔＶｒｅａｄ−ｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ２３、Ｎｏ）として処理を終了する。
【０１１４】
ドライブ制御回路４の報知処理部１５は、判定結果を判定部１３から受ける。報知処理部１５は、判定部１３による判定結果に応じて、報知装置２１を介してＮＡＮＤメモリ２０の寿命を報知する（ステップＳ２３）。すなわち、報知処理部１５は、判定部１３による判定結果に応じて、報知すべき内容を示す報知情報を生成し、報知装置２１へ供給する。これに応じて、報知装置２１は、報知情報に従って、ＮＡＮＤメモリ２０の寿命についての報知をユーザに向けて行う。
【０１１５】
例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、図９に示すようなグラフを含む報知情報を生成して報知装置２１へ供給し、そのグラフを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、複数のメモリセルの読み出し回数の分布を示す棒グラフを表示するとともに、度数閾値Ｆｔｈ及び回数閾値Ｎｔｈを越える部分が存在することをハイライト表示で示すことなどにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【０１１６】
あるいは、例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、図１４に示すようなグラフを含む報知情報を生成して報知装置２１へ供給し、そのグラフを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、複数のメモリセルの読み出し電圧の変化量の分布を示す棒グラフを表示するとともに、度数閾値Ｆｔｈ及び変化量閾値ΔＶｒｅａｄ−ｔｈを越える部分が存在することをハイライト表示で示すことなどにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【０１１７】
あるいは、例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、寿命が近いか否かを示すメッセージを含む報知情報を生成して報知装置２１へ供給し、そのメッセージを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、寿命が近いことを示すメッセージを表示することにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【０１１８】
以上のように、第２の実施形態では、モニタ部１２Ｂが、読み出し電圧を徐々に一方向にシフトさせながら読み出し処理を繰り返し行った際（リトライシフト読み出し処理を行った際）の読み出し処理が成功するまでの読み出し回数（リトライ回数）をモニタする。これにより、簡易な処理で、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタすることができる。
【０１１９】
あるいは、モニタ部１２Ｂが、読み出し電圧を徐々に一方向にシフトさせながら読み出し処理を繰り返し行った際（リトライシフト読み出し処理を行った際）の読み出し処理が成功したときの読み出し電圧をモニタする。これにより、簡易な処理で、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタすることができる。
【０１２０】
（第３の実施形態）
次に、第３の実施形態にかかる不揮発性半導体記憶装置について説明する。以下では、第１の実施形態と異なる部分を中心に説明する。
【０１２１】
第１の実施形態では、読み出し処理を繰り返し行った際の読み出し回数をモニタしたが、第３の実施形態では、読み出し処理を行った際のビット誤り数をモニタする。具体的には、図１５に示すように、ＳＳＤ１００Ｃのコントローラ１０Ｃは、モニタ部１２Ｃを備える。
【０１２２】
モニタ部１２Ｃは、読み出し処理を行った際の複数のメモリセルのデータにおけるビット誤り数をモニタすることにより、読み出し処理を行った際の複数のメモリセル（複数のメモリセルトランジスタＭＣＴ）の閾値の分布の変化をモニタする。
【０１２３】
すなわち、複数のメモリセルの閾値の分布は、図１２で示すように、実線で示す初期状態の分布から、破線で示す使用開始から長時間が経過した後の分布へと変化していく。破線で示す閾値の分布と読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルとを比較すると、読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルよりも閾値電圧が低いメモリセルが生じるため、デフォルトの読み出し電圧を用いては正しくデータを読み出すことができないことがある。そこで、閾値の分布が低圧側へ低下していくにつれて、読み出し処理を行った際の複数のメモリセルのデータにおけるビット誤り数（ＥＣＣの際の訂正ビット数）が増加する傾向にある。そのため、ビット誤り数をモニタすることで、閾値の分布の変化をモニタすることができる。
【０１２４】
具体的には、モニタ部１２Ｃは、ビット誤り数モニタ部１２３Ｃを有する。ビット誤り数モニタ部１２３Ｃは、物理ブロック単位で、読み出し処理を行った際のビット誤り数の情報を第１のＥＣＣ回路１１８及び第２のＥＣＣ回路１１２の少なくとも一方から取得することで、ビット誤り数を測定する。例えば、ＳＳＤ１００Ｃにおいてデータ更新箇所を均等に分散させてブロック間の書き込み／消去回数のばらつきを低減させるウェアレベリングと呼ばれる処理が行われている場合であれば、ビット誤り数モニタ部１２３Ｃは、測定対象の物理ブロックにおける代表の物理ページ（すなわち、選択されたワード線により駆動される複数のメモリセルトランジスタＭＣＴ）からの読み出し処理の度に、ビット誤り数を測定する。ビット誤り数モニタ部１２３Ｃは、測定結果をモニタ結果として判定部１３へ供給する。
【０１２５】
また、ＳＳＤ１００Ｃの動作が、図１６に示すように、次の点で第１の実施形態と異なる。
【０１２６】
ステップＳ４において、誤り訂正処理エラー検出されなかった場合（ステップＳ４、Ｎｏ）、ドライブ制御回路４のモニタ部１２Ｃは、ビット誤り数のカウント値でビット誤り数管理テーブルを更新することにより、ビット誤り数を保存する（ステップＳ３１）。なお、ビット誤り数管理テーブルは、ビット誤り数を、物理ブロック単位（物理ブロックアドレス単位）に管理するためのテーブルであり、ビット誤り数としては、実際にモニタされた最新のビット誤り数が登録されている。ビット誤り数管理テーブルは、例えば、ＮＡＮＤメモリ２０に記憶されている。
【０１２７】
ドライブ制御回路４の判定部１３は、例えばリトライ読み出し処理が完了した旨の通知を受けると、対象のブロックについて寿命が近いか否かの判定を行う（ステップＳ３２）。
【０１２８】
例えば、判定部１３は、モニタ部１２によるモニタ結果から、判定対象のブロックについて、複数のメモリセルのビット誤り数の分布を認識し（図１７参照）、複数のメモリセルのビット誤り数の分布のうちビット誤り数閾値ＢＮｔｈ以上のビット誤り数の度数を特定する。判定部１３は、特定された度数を度数閾値Ｆｔｈと比較する。判定部１３は、特定された度数が度数閾値Ｆｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ３２、Ｙｅｓ）として処理をステップＳ３３へ進める。判定部１３は、特定された度数が度数閾値Ｆｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ３２、Ｎｏ）として処理を終了する。
【０１２９】
あるいは、例えば、判定部１３は、ブロック単位で、モニタされた判定対象のブロックのビット誤り数を所定の閾値と比較する。すなわち、判定部１３は、モニタ部１２Ｃによるモニタ結果から、判定対象のブロックのビット誤り数を認識し、判定対象のブロックのビット誤り数をビット誤り数閾値ＢＮｔｈと比較する。判定部１３は、判定対象のブロックのビット誤り数がビット誤り数閾値ＢＮｔｈ以上であれば、判定対象のブロックの寿命が近い（ステップＳ３２、Ｙｅｓ）として処理をステップＳ３３へ進める。判定部１３は、判定対象のブロックの読み出し回数がビット誤り数閾値ＢＮｔｈ未満であれば、判定対象のブロックの寿命が近くない（ステップＳ３２、Ｎｏ）として処理を終了する。
【０１３０】
ドライブ制御回路４の報知処理部１５は、判定結果を判定部１３から受ける。報知処理部１５は、判定部１３による判定結果に応じて、報知装置２１を介してＮＡＮＤメモリ２０の寿命を報知する（ステップＳ３３）。すなわち、報知処理部１５は、判定部１３による判定結果に応じて、報知すべき内容を示す報知情報を生成し、報知装置２１へ供給する。これに応じて、報知装置２１は、報知情報に従って、ＮＡＮＤメモリ２０の寿命についての報知をユーザに向けて行う。
【０１３１】
例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、図１７に示すようなグラフを含む報知情報を生成して報知装置２１へ供給し、そのグラフを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、複数のメモリセルのビット誤り数の分布を示す棒グラフを表示するとともに、度数閾値Ｆｔｈ及びビット誤り数閾値ＢＮｔｈを越える部分が存在することをハイライト表示で示すことなどにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【０１３２】
あるいは、例えば、報知処理部１５は、ＮＡＮＤメモリ２０における各ブロックについて、寿命が近いか否かを示すメッセージを含む報知情報を生成して報知装置２１へ供給し、そのメッセージを、寿命が近いか否かを示す情報としてユーザに向けて報知する。すなわち、報知装置２１は、例えば表示装置であり、報知処理部１５は、寿命が近いことを示すメッセージを表示することにより、該当ブロックの寿命が近いことをユーザに向けて報知する。
【０１３３】
以上のように、第３の実施形態では、モニタ部１２Ｃが、読み出し処理を行った際の複数のメモリセルのデータにおけるビット誤り数をモニタする。これにより、簡易な処理で、読み出し処理を行った際の複数のメモリセルの閾値の分布の変化をモニタすることができる。
【０１３４】
（第４の実施形態）
次に、第４の実施形態にかかる不揮発性半導体記憶装置について説明する。以下では、第２の実施形態と異なる部分を中心に説明する。
【０１３５】
第２の実施形態では、読み出し電圧を徐々に一方向にシフトさせながら読み出し処理が成功するまで読み出し処理を繰り返し行ったが、シフトさせるまでも無く読み出し処理が成功する場合、誤り訂正処理エラーとなるまでどのくらい余裕があるのか分からない。
【０１３６】
そこで、第４の実施形態では、読み出し電圧を徐々に増加方向及び減少方向のそれぞれにシフトさせながら読み出し処理が失敗するまで読み出し処理を繰り返し行うことで、誤り訂正処理エラーとなるまでどのくらい余裕があるのかを把握する。具体的には、図１８に示すように、ＳＳＤ１００Ｄのコントローラ１０Ｄは、モニタ部１２Ｄ及び変更部１４Ｄを備える。
【０１３７】
変更部１４Ｄは、変更情報１４１Ｄを参照して、読み出し電圧を徐々に増加方向及び減少方向のそれぞれにシフトさせるように読み出し電圧を変更する。具体的には、変更情報１４１Ｄは、１回ごとに増加方向にシフトさせるべき電圧変化量と、１回ごとに減少方向にシフトさせるべき電圧変化量とを含む。変更部１４Ｄは、変更情報１４１Ｄを参照することにより、読み出し処理が行われるたびに、読み出し電圧を増加方向及び減少方向のそれぞれに一定の電圧変化量でシフトさせる。変更部１４Ｄは、変更後の読み出し電圧、又は変更後の読み出し電圧に対応するコマンドをＮＡＮＤメモリ２０へ供給する。
【０１３８】
モニタ部１２Ｄの読み出し回数モニタ部１２１Ｄは、読み出し電圧を徐々にシフトさせながら読み出し処理を繰り返し行った際の読み出し処理が失敗するまでの読み出し回数をモニタすることにより、現在の閾値の分布が、誤り訂正処理エラーとなるまでどのくらい余裕があるのかについて、閾値の分布の変化をモニタする。あるいは、モニタ部１２Ｄの読み出し電圧モニタ部１２２Ｄは、読み出し電圧を徐々にシフトさせながら読み出し処理を繰り返し行った際の読み出し処理が失敗したときの読み出し電圧をモニタすることにより、現在の閾値の分布が、誤り訂正処理エラーとなるまでどのくらい余裕があるのかについて、閾値の分布の変化をモニタする。
【０１３９】
すなわち、複数のメモリセルの閾値の分布は、図２０で示すように、実線で示す初期状態の分布から、破線で示す使用開始から長時間が経過した後の分布へと変化していく。破線で示す閾値の分布と読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルとを比較すると、初期状態に比べて閾値の分布の低電圧側の部分が読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルに近づいているが両者の間にまだ余裕があるのが分かる。そこで、読み出し電圧を徐々に増加方向（＋方向）にシフトさせながら読み出し処理を繰り返し行った際の読み出しに失敗するまでの読み出し回数又は読み出しに失敗したときの読み出し電圧をモニタすることで、閾値の分布の変化に伴う読み出し電圧の増加方向（＋方向）の余裕具合をモニタすることができる。
【０１４０】
図２０に示すように、データごとに閾値の分布の変化に伴う読み出し電圧の増加方向（＋方向）の余裕具合が変わりうる。例えば、データ“１０”について、読み出し電圧をＶＡからＶＡ２１〜ＶＡ２４へと徐々にシフトさせ、読み出し電圧ＶＡ２４で読み出しに失敗する。データ“１０”の読み出しに失敗するまでの読み出し回数は例えば４回である。例えば、データ“００”について、読み出し電圧をＶＢからＶＢ２１〜ＶＢ２３へと徐々にシフトさせ、読み出し電圧ＶＢ２３で読み出しに失敗する。データ“００”の読み出しに失敗するまでの読み出し回数は例えば３回である。例えば、データ“０１”について、読み出し電圧をＶＣからＶＣ２１、ＶＣ２２へと徐々にシフトさせ、読み出し電圧ＶＣ２２で読み出しに失敗する。データ“０１”の読み出しに失敗するまでの読み出し回数は例えば２回である。すなわち、図２０には、次の数式４が成り立つ場合について例示されている。
【０１４１】
データ“１０”の読み出し回数＞データ“００”の読み出し回数
＞データ“０１”の読み出し回数・・・数式４
【０１４２】
あるいは、データ“１０”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＡ３である。データ“００”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＢ３（＜ΔＶＡ３）である。データ“０１”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＣ３（＜ΔＶＢ３）である。すなわち、図２０には、次の数式４が成り立つ場合について例示されている。
【０１４３】
データ“１０”の読み出し電圧の変化量ΔＶＡ３
＞データ“００”の読み出し電圧の変化量ΔＶＢ３
＞データ“０１”の読み出し電圧の変化量ΔＶＣ３・・・数式５
【０１４４】
また、読み出し電圧の増加方向の余裕具合に関連する現象は、図２０に示すように、２ビット以上のデータ（多値）を記憶するメモリセル（ＭＬＣ：Multi  Level  Cell）の場合に限らず、図２１に示すように、１ビットのデータ（二値）を記憶するメモリセル（ＳＬＣ：Single  Level  Cell）の場合も同様である。
【０１４５】
また、ＮＡＮＤ型フラッシュメモリは、メモリセルのサイズが微細化され、メモリセル内に記憶される電子の数が減少されている。このため、隣接セル間の干渉ノイズの影響が相対的に増大し、一方のメモリセルにデータの書き込み（プログラム）や読み出しを行うことにより、隣接する他方のメモリセルのデータが変化する可能性があることが知られている。例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、選択セルでの非書き込みセルへの強いストレスにより、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるように変化するプログラムディスターブ（ＰＤ）という現象が発生する。また、データの読み出しにおいても、非選択のメモリセルに電圧が印加される。このため、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるように変化するリードディスターブ（ＲＤ）という現象が発生する。すなわち、閾値の分布の高電圧側の部分が読み出し電圧ＶＡ、ＶＢ、ＶＣのレベルに近づくこともあるが両者の間にまだ余裕があるのが分かる。そこで、読み出し電圧を徐々に減少方向（−方向）にシフトさせながら読み出し処理を繰り返し行った際の読み出し回数をモニタすることで、閾値の分布の変化に伴う読み出し電圧の減少方向（−方向）の余裕具合をモニタすることができる。
【０１４６】
図２０に示すように、データごとに閾値の分布の変化に伴う読み出し電圧の減少方向（−方向）の余裕具合が変わりうる。例えば、データ“１１”について、読み出し電圧をＶＡからＶＡ１１、ＶＡ１２へと徐々にシフトさせ、読み出し電圧ＶＡ１２で読み出しに失敗する。データ“１１”の読み出しに失敗するまでの読み出し回数は例えば２回である。例えば、データ“１０”について、読み出し電圧をＶＢからＶＢ１１〜ＶＢ１４へと徐々にシフトさせ、読み出し電圧ＶＢ１４で読み出しに失敗する。データ“１０”の読み出しに失敗するまでの読み出し回数は例えば４回である。例えば、データ“００”について、読み出し電圧をＶＣからＶＣ１１〜ＶＣ１５へと徐々にシフトさせ、読み出し電圧ＶＣ１５で読み出しに失敗する。データ“００”の読み出しに失敗するまでの読み出し回数は例えば５回である。すなわち、図２０には、次の数式６が成り立つ場合について例示されている。
【０１４７】
データ“１１”の読み出し回数＜データ“１０”の読み出し回数
＜データ“００”の読み出し回数・・・数式６
【０１４８】
あるいは、データ“１１”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＡ２である。データ“１０”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＢ２（＞ΔＶＡ２）である。データ“００”の読み出しに失敗した読み出し電圧のデフォルト値からの変化量はΔＶＣ２（＞ΔＶＢ２）である。すなわち、図２０には、次の数式７が成り立つ場合について例示されている。
【０１４９】
データ“１０”の読み出し電圧の変化量ΔＶＡ２
＞データ“００”の読み出し電圧の変化量ΔＶＢ２
＞データ“０１”の読み出し電圧の変化量ΔＶＣ２・・・数式７
【０１５０】
また、読み出し電圧の減少方向の余裕具合に関連する現象は、図２０に示すように、２ビット以上のデータ（多値）を記憶するメモリセル（ＭＬＣ：Multi  Level  Cell）の場合に限らず、図２１に示すように、１ビットのデータ（二値）を記憶するメモリセル（ＳＬＣ：Single  Level  Cell）の場合も同様である。
【０１５１】
また、ＳＳＤ１００Ｄの動作が、図１９に示すように、次の点で第２の実施形態と異なる。
【０１５２】
ステップＳ４において、誤り訂正処理エラー検出されなかった場合（ステップＳ４、Ｎｏ）、読み出し成功として（ステップＳ３１）、処理をステップＳ３２へ進める。ドライブ制御回路４の変更部１４Ｄは、読み出し電圧の値をステップＳ２で使用した値から所定の刻み幅だけ下げる又は上げる調整を行う（ステップＳ３２）。調整後の読み出し電圧の値は、シフト読み出しコマンドと共にメモリチップ（ＮＡＮＤメモリ２０）に送られ、ステップＳ２の処理に移行して当該メモリチップは新たに送られてきた読み出し電圧を使用して読み出し処理を実行する。
【０１５３】
ステップＳ４において、誤り訂正処理エラー検出された場合（ステップＳ４、Ｙｅｓ）、ドライブ制御回路４のモニタ部１２Ｄは、増加方向の読み出し回数のカウント値で増加方向の読み出し回数管理テーブルを更新することにより、増加方向の読み出し回数を保存する（ステップＳ３３）。あるいは、ドライブ制御回路４のモニタ部１２Ｄは、減少方向の読み出し回数のカウント値で減少方向の読み出し回数管理テーブルを更新することにより、減少方向の読み出し回数を保存する（ステップＳ３３）。
【０１５４】
あるいは、ドライブ制御回路４のモニタ部１２Ｄは、増加方向の読み出し処理が失敗したときの読み出し電圧の変化量で増加方向の読み出し電圧変化量管理テーブルを更新する（ステップＳ３３）。あるいは、ドライブ制御回路４のモニタ部１２Ｄは、減少方向の読み出し処理が失敗したときの読み出し電圧の変化量で減少方向の読み出し電圧変化量管理テーブルを更新する（ステップＳ３３）。
【０１５５】
そして、読み出し失敗として（ステップＳ３４）、処理をステップＳ３５へ進める。次に、ドライブ制御回路４は、読み出し電圧を増加方向と減少方向との両方向にシフトさせたか否かを判定する（ステップＳ３５）。
【０１５６】
両方向にシフトさせていない場合（ステップＳ３５、Ｎｏ）、ドライブ制御回路４の変更部１４Ｄは、読み出し電圧をシフトさせる方向を変更して、処理をステップＳ２へ戻す。
【０１５７】
両方向にシフトさせた場合（ステップＳ３５、Ｙｅｓ）、ドライブ制御回路４の判定部１３は、ＮＡＮＤメモリ２０の各ブロックの寿命までの余裕を求め（ステップＳ３６）、ＮＡＮＤメモリ２０の各ブロックの寿命までの余裕の情報を報知処理部１５へ供給する。
【０１５８】
そして、ドライブ制御回路４の報知処理部１５は、ＮＡＮＤメモリ２０の各ブロックの寿命までの余裕の情報を判定部１３から受ける。報知処理部１５は、その情報に応じて、報知装置２１を介してＮＡＮＤメモリ２０の寿命までの余裕を報知する（ステップＳ３７）。すなわち、報知処理部１５は、ＮＡＮＤメモリ２０の各ブロックの寿命までの余裕の情報に応じて、報知すべき内容を示す報知情報を生成し、報知装置２１へ供給する。これに応じて、報知装置２１は、報知情報に従って、ＮＡＮＤメモリ２０の寿命までの余裕についての報知をユーザに向けて行う。
【０１５９】
なお、第１の実施形態〜第４の実施形態のうち少なくとも２つの実施形態を組合せてもよい。例えば、図２２に示すように、ＳＳＤ１００Ｅのコントローラ１０Ｅは、モニタ部１２Ｅを備えてもよい。モニタ部１２Ｅは、第１のモード、第２のモード、第３のモード、及び第４のモードを切り換えるためのモード切換部１２４Ｅを有する。モニタ部１２Ｅは、例えば、第１のモードにおいて第１の実施形態における動作を行い、第２のモードにおいて第２の実施形態における動作を行い、第３のモードにおいて第３の実施形態における動作を行い、第４のモードにおいて第４の実施形態における動作を行う。
【０１６０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１６１】
１  ホスト、１ａ  報知装置、２  ＡＴＡインタフェース、３  通信インタフェース、４  ドライブ制御回路、５  電源回路、６  ＬＥＤ、７  温度センサ、８  フューズ、９  報知装置、１０Ａ、１０Ｂ、１０Ｃ、１０Ｄ、１０Ｅ  コントローラ、１１  読み書き制御部、１２、１２Ｂ、１２Ｃ、１２Ｄ、１２Ｅ  モニタ部、１３  判定部、１４Ｂ、１４Ｄ  変更部、１５  報知処理部、２０ａ〜２０ｄ  並列動作要素、２０  ＮＡＮＤメモリ、２１  報知装置、３０  ＤＲＡＭ、４０  ホストＩ／Ｆ、１００Ａ、１００Ｂ、１００Ｃ、１００Ｄ、１００Ｅ  ＳＳＤ、１０１  データアクセス用バス、１０２  第１の回路制御用バス、１０３  第２の回路制御用バス、１０４  プロセッサ、１０５  ブートＲＯＭ、１０６  ＲＯＭコントローラ、１０７  クロックコントローラ、１０８  Ｉ２Ｃ回路、１０９  パラレルＩＯ（ＰＩＯ）回路、１１０  シリアルＩＯ（ＳＩＯ）回路、１１１ａ  ＳＡＴＡコントローラ、１１１ｂ  ＰＡＴＡコントローラ、１１２  第２のＥＣＣ回路、１１３  コントローラ、１１４  ＤＲＡＭコントローラ、１１５  ＳＲＡＭ、１１６  ＳＲＡＭコントローラ、１１７  ＮＡＮＤ  Ｉ／Ｆ、１１８  第１のＥＣＣ回路、１１９  ＤＭＡコントローラ、１２１、１２１Ｂ  読み出し回数モニタ部、１２２Ｂ  読み出し電圧モニタ部、１２３Ｃ  ビット誤り数モニタ部、１２４Ｅ  モード切換部、１４１Ｂ、１４１Ｄ  変更情報、２００  デバッグ用／製造検査用機器、２０１  メモリセルアレイ、２０１−１  記憶領域、２０２  ビット線制御回路、２０３  カラムデコーダ、２０４  データ入出力バッファ、２０５  データ入出力端子、２０６  ワード線制御回路、２０７  制御信号及び制御電圧発生回路、２０８  制御信号入力端子。
【図１】
2013122793.tif 000003
【図２】
2013122793.tif 000004
【図３】
2013122793.tif 000005
【図４】
2013122793.tif 000006
【図５】
2013122793.tif 000007
【図６】
2013122793.tif 000008
【図７】
2013122793.tif 000009
【図８】
2013122793.tif 000010
【図９】
2013122793.tif 000011
【図１０】
2013122793.tif 000012
【図１１】
2013122793.tif 000013
【図１２】
2013122793.tif 000014
【図１３】
2013122793.tif 000015
【図１４】
2013122793.tif 000016
【図１５】
2013122793.tif 000017
【図１６】
2013122793.tif 000018
【図１７】
2013122793.tif 000019
【図１８】
2013122793.tif 000020
【図１９】
2013122793.tif 000021
【図２０】
2013122793.tif 000022
【図２１】
2013122793.tif 000023
【図２２】
2013122793.tif 000024