(57)【要約】【課題】複数のブロックで構成された不揮発性半導体メモリ全体の劣化状態を正確に検出することができるメモリシステムを提供すること。【解決手段】メモリシステムにおいて、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリであるＮＡＮＤメモリ２０と、ＮＡＮＤメモリ２０のデータ書き込みに要するＮＡＮＤメモリ２０への印加電圧のループ回数を書き込み時ループ回数としてモニタする書き込み時ループ回数モニタ部１３と、書き込み時ループ回数をブロック単位に管理するための管理テーブルと、管理テーブルに基づいてＮＡＮＤメモリ２０の劣化状態を判定する寿命管理部１４と、を備える。【選択図】図５
2011164994.tif 000002
【特許請求の範囲】
【請求項１】
データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、
前記不揮発性半導体メモリのデータ書き込みに要する前記不揮発性半導体メモリへの印加電圧のループ回数を書き込み時ループ回数としてモニタする書き込み時ループ回数モニタ部と、
前記書き込み時ループ回数を前記ブロック単位に管理するための管理テーブルと、
前記管理テーブルに基づいて前記不揮発性半導体メモリの劣化状態を判定する寿命管理部と、
を備えることを特徴とするメモリシステム。
【請求項２】
データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、
前記不揮発性半導体メモリのデータ消去に要する前記不揮発性半導体メモリへの印加電圧のループ回数を消去時ループ回数としてモニタする消去時ループ回数モニタ部と、
前記消去時ループ回数を前記ブロック単位に管理するための管理テーブルと、
前記管理テーブルに基づいて前記不揮発性半導体メモリの劣化状態を判定する寿命管理部と、
を備えることを特徴とするメモリシステム。
【請求項３】
データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、
前記不揮発性半導体メモリのデータ書き込みに要する前記不揮発性半導体メモリへの印加電圧のループ回数を書き込み時ループ回数としてモニタする書き込み時ループ回数モニタ部と、
前記書き込み時ループ回数を前記ブロック単位に管理するための管理テーブルと、
外部装置から前記管理テーブルの読み出し要求があった場合に、前記管理テーブルを前記外部装置に送信する管理テーブル送信部と、
を備えることを特徴とするメモリシステム。
【請求項４】
データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、
前記不揮発性半導体メモリのデータ消去に要する前記不揮発性半導体メモリへの印加電圧のループ回数を消去時ループ回数としてモニタする消去時ループ回数モニタ部と、
前記消去時ループ回数を前記ブロック単位に管理するための管理テーブルと、
外部装置から前記管理テーブルの読み出し要求があった場合に、前記管理テーブルを前記外部装置に送信する管理テーブル送信部と、
を備えることを特徴とするメモリシステム。
【請求項５】
前記寿命管理部は、
書き込み時ループ回数が所定の閾値よりも小さいブロックの数に基づいて、前記不揮発性半導体メモリの劣化状態を判定することを特徴とする請求項１に記載のメモリシステム。
【請求項６】
前記寿命管理部は、
消去時ループ回数が所定の閾値よりも大きいブロックの数に基づいて、前記不揮発性半導体メモリの劣化状態を判定することを特徴とする請求項２に記載のメモリシステム。
【請求項７】
前記所定の閾値は複数からなり、
前記寿命管理部は、前記不揮発性半導体メモリの劣化状態が、前記閾値の大きさに応じた複数の劣化段階の何れであるかを判定することを特徴とする請求項５または６に記載のメモリシステム。
【請求項８】
前記寿命管理部が前記不揮発性半導体メモリは所定の劣化状態よりも劣化が進行していると判定した場合に、所定の警告を出力する警告出力部をさらに備えることを特徴とする請求項１または２に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体メモリを備えたメモリシステムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは、書き込みを行う前に消去処理が必要な半導体メモリである。ＮＡＮＤ型フラッシュメモリのデータの書き込み／消去は、基板−制御ゲート間に高電圧を印加することにより、浮遊ゲートに電子を注入／放出させる。これを多数回行うと浮遊ゲート周りのゲート酸化膜が劣化し、ＮＡＮＤ型フラッシュメモリの寿命と密接に関連する書き込み／消去特性に悪影響を及ぼすことが知られている。
【０００３】
このため、ＮＡＮＤ型フラッシュメモリの寿命を正確に把握しておく必要がある。従来、特許文献１記載の記憶装置は、ＮＡＮＤ型フラッシュメモリの消去回数を基にＮＡＮＤ型フラッシュメモリの寿命を算出していた。この方法で算出されたメモリセルの寿命は、実際のメモリセルにおける電子レベルでのストレス寿命とはいえなかった。このため、実際のメモリセルの寿命と算出した寿命との間にバラツキがあり、必ずしも正確に寿命を算出できていなかった。
【０００４】
また、特許文献２に記載の記憶装置は、コントロール部がメモリ部に指令信号を出力して、空き領域を有する所望の消去ブロックにパルス電圧を印加させ、メモリ部は、パルス電圧を印加するごとに消去ブロックの消去が完了したか否かを検出している。そして、ブロックが未消去の場合、コントロール部は、再び所望の消去ブロックにパルス電圧を印加させる処理を繰り返し、印加させたパルス電圧のパルス数（繰り返し回数）に基づいて消去ブロックの特性の劣化状態を判定している。
【０００５】
また、特許文献３に記載の記憶装置は、ＭＰＵがタイマで各セクタ単位の消去時間を測定し、その中で１ブロックでも計測された消去時間が規定値を超えた場合に警告フラグをオンにすることで、次回の書き込みを禁止する。すなわち、フラッシュメモリ（例えば、ＮＡＮＤ型フラッシュメモリ）のデータを消去するのに要した時間を測定し、この測定結果に基づいて、フラッシュメモリの書換え寿命を判定する。
【０００６】
しかしながら、上記特許文献１乃至特許文献３に記載の方法では、複数のブロックで構成されたＮＡＮＤ型フラッシュメモリを含むメモリシステム全体としての寿命（劣化状態）を正確に検出することはできなかった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１３９９２７号公報
【特許文献２】特開平９−３３０５９８号公報
【特許文献３】特開平１１−２５０６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、複数のブロックで構成された不揮発性半導体メモリ全体の劣化状態を正確に検出することができるメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、前記不揮発性半導体メモリのデータ書き込みに要する前記不揮発性半導体メモリへの印加電圧のループ回数を書き込み時ループ回数としてモニタする書き込み時ループ回数モニタ部と、前記書き込み時ループ回数を前記ブロック単位に管理するための管理テーブルと、前記管理テーブルに基づいて前記不揮発性半導体メモリの劣化状態を判定する寿命管理部と、を備えることを特徴とするメモリシステムが提供される。
【００１０】
また、本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、前記不揮発性半導体メモリのデータ消去に要する前記不揮発性半導体メモリへの印加電圧のループ回数を消去時ループ回数としてモニタする消去時ループ回数モニタ部と、前記消去時ループ回数を前記ブロック単位に管理するための管理テーブルと、前記管理テーブルに基づいて前記不揮発性半導体メモリの劣化状態を判定する寿命管理部と、を備えることを特徴とするメモリシステムが提供される。
【００１１】
本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、前記不揮発性半導体メモリのデータ書き込みに要する前記不揮発性半導体メモリへの印加電圧のループ回数を書き込み時ループ回数としてモニタする書き込み時ループ回数モニタ部と、前記書き込み時ループ回数を前記ブロック単位に管理するための管理テーブルと、外部装置から前記管理テーブルの読み出し要求があった場合に、前記管理テーブルを前記外部装置に送信する管理テーブル送信部と、を備えることを特徴とするメモリシステムが提供される。
【００１２】
本願発明の一態様によれば、データ消去の単位であるブロックを複数個有する不揮発性半導体メモリと、前記不揮発性半導体メモリのデータ消去に要する前記不揮発性半導体メモリへの印加電圧のループ回数を消去時ループ回数としてモニタする消去時ループ回数モニタ部と、前記消去時ループ回数を前記ブロック単位に管理するための管理テーブルと、外部装置から前記管理テーブルの読み出し要求があった場合に、前記管理テーブルを前記外部装置に送信する管理テーブル送信部と、を備えることを特徴とするメモリシステムが提供される。
【発明の効果】
【００１３】
本発明によれば、複数のブロックで構成された不揮発性半導体メモリ全体の劣化状態を正確に検出することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、第１の実施の形態に係るメモリシステムを示す構成図である。
【図２】図２（ａ）は、ＮＡＮＤメモリチップに含まれる物理ブロックの一例を示す回路図であり、図２（ｂ）は、メモリセルトランジスタの閾値分布の例を示す模式図である。
【図３】図３は、図１に示すドライブ制御回路の一例を示す構成図である。
【図４】図４は、図１に示す１つのチップに含まれるＮＡＮＤ型フラッシュメモリの一例を示す図である。
【図５】図５は、第１の実施の形態に係るＳＳＤの機能構成例を示す機能ブロック図である。
【図６】図６は、ループ回数管理テーブルの管理データを示す図である。
【図７】図７は、書き換え回数と消去時ループ回数との関係を示す図である。
【図８】図８は、消去処理の動作シーケンスを示すタイムチャートである。
【図９】図９は、書き換え回数とページ書き込み時ループ回数との関係を示す図である。
【図１０】図１０は、書き込み処理の動作シーケンスを示すタイムチャートである。
【図１１】図１１は、書き込み電圧の印加動作を示すタイムチャートである。
【図１２】図１２は、第１の実施の形態に係るＳＳＤの寿命判定処理手順を示すフローチャートである。
【図１３】図１３は、ブロックの状態判定に用いるブロック用閾値情報を示す図である。
【図１４】図１４は、第２の実施の形態に係るＳＳＤの機能構成例を示す機能ブロック図である。
【図１５】図１５は、第２の実施の形態に係るＳＳＤの寿命判定処理手順を示すフローチャートである。
【図１６】図１６は、ループ回数管理テーブルの他の構成例を示す図である。
【図１７】図１７は、ブロックの状態判定を２段階で行なう場合のブロック用閾値情報を示す図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、本発明の実施の形態に係るメモリシステムを詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１６】
（第１の実施の形態）
本実施の形態では、不揮発性半導体メモリの一例であるＮＡＮＤ型フラッシュメモリを有したＳＳＤ（（Solid  State  Drive））の寿命（劣化状態）を判定するため、ＮＡＮＤ型フラッシュメモリのメモリセルへの書込みや消去の際の印加電圧のループ回数を検知する。ここでのループ回数は、ＮＡＮＤ型フラッシュメモリへの書込みや消去の際に、ＮＡＮＤ型フラッシュメモリへ印加される電圧のパルス数（電圧印加回数）である。ＮＡＮＤ型フラッシュメモリへは、書込みや消去の際に、所定の電圧が、電圧を少しずつ大きくしながら複数回（ループ回数分）に渡って印加される。
【００１７】
印加電圧のループ回数を検知した後、ループ回数と予め設定しておいた設定値（所定の閾値）とを比較し、この比較結果に基づいて、ＮＡＮＤ型フラッシュメモリ内の各ブロックの劣化状態を判定する。さらに、劣化状態の判定結果を用いて、ＳＳＤ（複数の不揮発性半導体メモリを含むメモリシステム全体）の劣化状態を判定する。なお、以下の説明では、ＮＡＮＤ型フラッシュメモリを、ＮＡＮＤメモリと略する。
【００１８】
まず、図１〜図４を参照して、ＳＳＤを備えたメモリシステムの構成やＮＡＮＤメモリの構成などについて説明し、その後、図５〜図１３を参照して、本実施の形態の特徴の１つであるＳＳＤの構成や動作などについて説明する。
【００１９】
図１は、メモリシステムとしてのＳＳＤ１００Ａの構成例を示すブロック図である。ＳＳＤ１００Ａは、ホスト装置（以下、ホストと略す）１と接続するためのホスト接続インタフェース（後述のホストＩ／Ｆ４０）を備えている。図１では、ホストＩ／Ｆ４０がＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースである場合を示している。ＳＳＤ１００Ａは、ＡＴＡ  Ｉ／Ｆ２（ホストＩ／Ｆ４０）を介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト１と接続され、ホスト１の外部メモリとして機能する。また、ＳＳＤ１００Ａは、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ  Ｉ／Ｆ）などの通信インタフェース３を介して、デバッグ用／製造検査用機器２００との間でデータを送受信することができる。
【００２０】
ＳＳＤ１００Ａは、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと略す）２０と、コントローラとしてのドライブ制御回路４と、揮発性半導体メモリとしてのＤＲＡＭ３０と、電源回路５と、状態表示用のＬＥＤ６と、ドライブ内部の温度を検出する温度センサ７と、フューズ８とを備えている。
【００２１】
電源回路５は、ホスト１側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をＳＳＤ１００Ａ内の各回路に供給する。また、電源回路５は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路４に供給する。
【００２２】
フューズ８は、ホスト１側の電源回路とＳＳＤ１００Ａ内部の電源回路５との間に設けられている。外部電源回路から過電流が供給された場合、フューズ８が切断され、内部回路の誤動作を防止する。
【００２３】
ＮＡＮＤメモリ２０は、例えば４並列動作を行う４つの並列動作要素２０ａ〜２０ｄを有し、４つの並列動作要素２０ａ〜２０ｄは、４つのチャネル（ｃｈ０〜ｃｈ３）によってドライブ制御回路４に接続されている。各並列動作要素２０ａ〜２０ｄは、バンクインターリーブが可能な複数のバンクによって構成されている。すなわち、各並列動作要素は、例えば４バンク（Ｂａｎｋ０〜Ｂａｎｋ３）によって構成されており、各バンクは、複数のＮＡＮＤメモリチップ、例えば２つのメモリチップ（Ｃｈｉｐ０、Ｃｈｉｐ１）により構成されている。
【００２４】
各メモリチップは、例えば、それぞれ複数の物理ブロックを含むプレーン０、プレーン１の２つの領域（District）に分割されている。プレーン０およびプレーン１は、互いに独立した周辺回路（例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等）を備えており、倍速モードを使用することにより、同時に消去／書き込み／読み出しを行うことが可能である。
【００２５】
このように、ＮＡＮＤメモリ２０の各ＮＡＮＤメモリチップは、複数のチャネルによる並列動作、複数のバンクによるバンクインターリーブ動作、同一バンク内の複数チップのインターリーブ動作、複数のプレーンを用いた倍速モードによる並列動作が可能である。なお、各メモリチップは、２つ以上の複数のプレーンに分割された構成であってもよいし、あるいは、全く分割されていなくてもよい。
【００２６】
ＤＲＡＭ３０は、ホスト１とＮＡＮＤメモリ２０との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。ＤＲＡＭ３０の作業領域用メモリに記憶される内容は、例えばＮＡＮＤメモリ２０に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル（スナップショット）、あるいは管理テーブルの変更差分であるログ情報などがある。
【００２７】
尚、ＤＲＡＭ３０の代わりに、ＦｅＲＡＭ（Ferroelectric  Random  Access  Memory）、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）、ＰＲＡＭ（Phase  change  Random  Access  Memory）などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを利用する場合、電源切断時に各種管理テーブルなどをＮＡＮＤメモリ２０に退避させる動作の一部又は全部を省略することができる。
【００２８】
ドライブ制御回路４は、ホスト１とＮＡＮＤメモリ２０との間でＤＲＡＭ３０を介してデータ転送制御を行うとともに、ＳＳＤ１００Ａ内の各構成要素を制御する。また、ドライブ制御回路４は、状態表示用ＬＥＤ６にステータス表示用信号を供給するとともに、電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号をドライブ制御回路４内及びＳＳＤ１００Ａ内の各部に供給する機能も有している。
【００２９】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。
【００３０】
図２（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。各ＮＡＮＤストリングに含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００３１】
各メモリセルトランジスタ（メモリセルとも言う）ＭＣＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）により構成されている。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＣＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＣＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００３２】
また、メモリセルトランジスタＭＣＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＣＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００３３】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＣＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＣＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００３４】
各ＮＡＮＤストリングにおいて、最もドレイン側に位置するメモリセルトランジスタＭＣＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＣＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＣＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００３５】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＣＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＣＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＣＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００３６】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００３７】
図２（ｂ）は、例えば、１個のメモリセルトランジスタＭＣＴに２ビットの記憶を行う４値データ記憶方式での閾値分布を示す模式図である。４値データ記憶方式は、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＣＴに保持可能である。
【００３８】
４値データ“ｘｙ”は、メモリセルトランジスタＭＣＴの閾値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＣＴの閾値電圧が例えば負とされた消去状態である。尚、データの割り当て規則はこれに限らない。また、１個のメモリセルトランジスタＭＣＴに３ビット以上の記憶を行う構成であってもよい。
【００３９】
下位ページの書き込み動作において、データ“１１”（消去状態）のメモリセルトランジスタＭＣＴに対して選択的に、下位ビットデータ“ｙ”を書き込むことによって、データ“１０”が書き込まれる。上位ページの書き込み前のデータ“１０”の閾値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”の閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”が書き込まれることにより、データ“０１”及びデータ“００”が書き込まれる。擬似ＳＬＣモードは、下位ページのみを使用して書き込みを行う。下位ページの書き込みは、上位ページの書き込みに比べて高速である。
【００４０】
図３は、ドライブ制御回路４のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路４は、データアクセス用バス１０１、第１の回路制御用バス１０２、及び第２の回路制御用バス１０３を備えている。第１の回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０４が接続されている。第１の回路制御用バス１０２には、ブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。ブートＲＯＭ１０５には、ＮＡＮＤメモリ２０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されている。
【００４１】
また、第１の回路制御用バス１０２には、クロックコントローラ１０７が接続されている。このクロックコントローラ１０Ａ７は、図１に示した電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給する。
【００４２】
第２の回路制御用バス１０３は、第１の回路制御用バス１０２に接続されている。第２の回路制御用バス１０３には、図１に示した温度センサ７からのデータを受けるためのＩ2Ｃ回路１０８、状態表示用ＬＥＤ６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路１０９、ＲＳ２３２Ｃ  Ｉ／Ｆ３を制御するシリアルＩＯ（ＳＩＯ）回路１１０が接続されている。
【００４３】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１１１、第１のＥＣＣ（Error  Checking  and  Correction）回路１１２、ＮＡＮＤ用のコントローラであるコントローラ１０Ａ、及びＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と第１の回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２を介してホスト１との間でデータを送受信する。データアクセス用バス１０１には、データ作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤメモリ２０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００４４】
コントローラ１０Ａは、ＮＡＮＤ  Ｉ／Ｆ１１７、第２のＥＣＣ回路１１８、及びＤＭＡ転送制御用ＤＭＡコントローラ１１９を備えている。ＮＡＮＤ  Ｉ／Ｆ１１７は、ＮＡＮＤメモリ２０とのインタフェース処理を行う。ＤＭＡ転送制御用ＤＭＡコントローラ１１９は、ＮＡＮＤメモリ２０とＤＲＡＭ３０間のアクセス制御を行う。第２のＥＣＣ回路１１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコード及びデコードを行う。第１のＥＣＣ回路１１２は、第２の誤り訂正符号のデコードを行う。第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose  Chaudhuri  Hocqenghem）符号、ＲＳ(Reed  Solomon)符号、或いはＬＤＰＣ（Low  Density  Parity  Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。
【００４５】
図１に示したように、ＮＡＮＤメモリ２０において、４つの並列動作要素２０ａ〜２０ｄは各複数ビットの４つのチャネルを介して、ドライブ制御回路４内部のＮＡＮＤコントローラ１１２に並列接続されており、４つの並列動作要素２０ａ〜２０ｄを並列動作させることが可能である。また、各チャネルのＮＡＮＤメモリ２０は、バンクインターリーブが可能な４つのバンクに分割されており、各メモリチップのプレーン０およびプレーン１に対しても、同時にアクセスを行うことが可能である。したがって、１チャネルに付き、最大８つの物理ブロック（４バンク×２プレーン）を、ほぼ同時に制御することが可能である。すなわち、最大８つの物理ブロックに対して同時に書き込みなどの処理を実行することが可能である。
【００４６】
図４は、図１に示す１つのＮＡＮＤメモリチップ（ＮＡＮＤ型フラッシュメモリ）の一例を示す機能ブロック図である。
【００４７】
メモリセルアレイ２０１は、複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ２０１には、ビット線を制御するためのビット線制御回路２０２とワード線制御回路２０６が接続されている。
【００４８】
ビット線制御回路２０２は、ビット線を介してメモリセルアレイ２０１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２０２には、カラムデコーダ２０３、データ入出力バッファ２０４が接続されている。
【００４９】
ビット線制御回路２０２内のデータ記憶回路はカラムデコーダ２０３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ２０４を介してデータ入出力端子２０５から外部へ出力される。データ入出力端子２０５は、メモリチップ外部のドライブ制御回路４に接続される。
【００５０】
このドライブ制御回路４は、データ入出力端子２０５から出力されたデータを受ける。さらに、ドライブ制御回路４は、ＮＡＮＤ型フラッシュメモリの動作を制御する各種コマンドＣＭＤ、アドレスＡＤＤ、及びデータＤＴを出力する。ドライブ制御回路４からデータ入出力端子２０５に入力された書き込みデータは、データ入出力バッファ２０４を介して、カラムデコーダ２０３によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路２０７に供給される。
【００５１】
ワード線制御回路２０６は、メモリセルアレイ２０１に接続されている。このワード線制御回路２０６は、メモリセルアレイ２０１中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００５２】
メモリセルアレイ２０１、ビット線制御回路２０２、カラムデコーダ２０３、データ入出力バッファ２０４、及びワード線制御回路２０６は、制御信号及び制御電圧発生回路２０７に接続され、この制御信号及び制御電圧発生回路２０７によって制御される。
【００５３】
制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８に接続され、ドライブ制御回路４から制御信号入力端子２０８を介して入力されるＡＬＥ（アドレス・ラッチ・イネーブル）、ＣＬＥ（コマンド・ラッチ・イネーブル）、ＷＥ（ライト・イネーブル）などの各種制御信号、及びドライブ制御回路４からデータ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤによって制御される。
【００５４】
この制御信号及び制御電圧発生回路２０７は、データの書き込み時にワード線やビット線に供給される電圧を発生するとともに、ウェルに供給される電圧を発生する。制御信号及び制御電圧発生回路２０７は、例えばチャージポンプ回路のような昇圧回路を含み、プログラム電圧や読み出し電圧、消去電圧を生成可能とされている。
【００５５】
さらに、制御信号及び制御電圧発生回路２０７は、後述するように、読み出し電圧のレベルを変更可能とされている。すなわち、制御信号及び制御電圧発生回路２０７は、制御信号入力端子２０８を介して入力される各種制御信号、データ入出力端子２０５及びデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤを受けて、読み出し動作時にワード線に印加する電圧を＋方向、または−方向にシフトさせる機能を有している。
【００５６】
前記ビット線制御回路２０２、カラムデコーダ２０３、ワード線制御回路２０６、制御信号及び制御電圧発生回路２０７は書き込み回路、及び読み出し回路を構成している。
【００５７】
メモリセルアレイ２０１は、本体データを格納するための記憶領域に加えて、ＥＣＣ(Error  Correction  Code)を記憶する記憶領域２０１−１を有している。
【００５８】
ＳＳＤ１００Ａでは、書き込み回数や消去回数が増えると、ＮＡＮＤメモリ２０が備えるセルのゲート酸化膜に電子がトラップされる。このため、消去の際にゲート酸化膜から電子を抜くには、消去回数の増加に伴って高電圧で多くの印加回数が必要となる。また、ゲート酸化膜に電子がトラップされることでセルの閾値が高く見えるので、少ない電圧印加回数で書込みが終了する。このため、印加電圧の回数と実際のセルの劣化と間に相関関係を有するので、本実施の形態では、この相関関係を利用してＮＡＮＤメモリ２０の寿命を検知する。
【００５９】
つぎに、本実施の形態のＳＳＤ１００Ａの構成と動作について説明する。図５は、本発明の第１の実施の形態に係るメモリシステムとしてのＳＳＤの機能構成例を示す機能ブロック図である。ＳＳＤ１００Ａは、コントローラ１０Ａと、ＮＡＮＤメモリ２０と、ＤＲＡＭ３０と、ホスト１と接続するためのホストＩ／Ｆ４０と、警告出力部２１などを備えている。
【００６０】
ＮＡＮＤメモリ２０は、ホスト１によって指定されたユーザデータを記憶したり、ＤＲＡＭ３０で管理される管理情報をバックアップ用に記憶したりする。ＮＡＮＤメモリ２０は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページおよび下位ページを使用して多値記憶が可能である。ＮＡＮＤメモリ２０は、複数のＮＡＮＤメモリチップによって構成され、各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成される。また、ＮＡＮＤメモリ２０では、物理ページごとにデータの書き込みおよびデータの読み出しが行われる。物理ブロックは、複数の物理ページによって構成されている。
【００６１】
物理ブロックアドレスは、物理ブロックに割り当てられた固定的なアドレスである。論理ブロックアドレスは、ホスト１から指定されるアドレスや、仮想的なブロックである論理ブロックに割り当てられる変更可能なアドレスである。論理ブロックとは、例えば、物理ブロックを複数組み合わせて構成される仮想的なブロックのことをいう。
【００６２】
ＤＲＡＭ３０は、データ転送用、管理情報記録用の記憶部として使用される。具体的には、データ転送用の記憶部（データ転送用キャッシュ領域）は、ホスト１から書込要求があったデータをＮＡＮＤメモリ２０に書込む前に一時的に保存したり、ホスト１から読出要求があったデータをＮＡＮＤメモリ２０から読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、ＮＡＮＤメモリ２０に記憶されるデータの格納位置を管理するための管理情報（論理アドレスと物理アドレスとの対応など）、後述の書き込み時ループ回数Ｌｗおよび消去時ループ回数Ｌｅを物理ブロック単位に管理するための管理情報（ループ回数管理テーブル３１）などを含む各種管理情報を格納するために使用される。
【００６３】
ＮＡＮＤメモリ２０には、図６に示すような、ループ回数管理テーブル（書き込み／消去ループ回数管理テーブル）３１が記憶されており、ループ回数管理テーブル３１はシステム起動時、ＮＡＮＤメモリ２０から読み出されて、ＤＲＡＭ３０に格納される。ループ回数管理テーブル３１は、書き込み時のループ回数である書き込み時ループ回数Ｌｗと、消去時のループ回数である消去時ループ回数Ｌｅとを、物理ブロック単位（物理ブロックアドレス単位）に管理するためのテーブルである。書き込み時ループ回数Ｌｗは、物理ブロック内で書き込み時ループ回数が最も小さいページのループ回数（最悪値）（最も経年変化が大きいページ）を当該物理ブロックの書き込み時ループ回数Ｌｗとして採用する。書き込み時ループ回数Ｌｗ、消去時ループ回数Ｌｅとしては、実際にモニタされた最新のループ回数が登録されている。
【００６４】
コントローラ１０Ａは、ホスト１とＮＡＮＤメモリ２０との間でＤＲＡＭ３０を介してデータ転送制御を行うとともに、ＳＳＤ１００Ａ内の各構成要素を制御するソフトウエアを有している。コントローラ１０ＡとＮＡＮＤメモリ２０との間は、コマンド、アドレス、データなどを入出力するためのコントロールＩ／Ｏ線（ＣｔｒｌＩ／Ｏ）によって接続され、また、ＮＡＮＤメモリ２０がレディ状態にあるかビジー状態にあるかを示すレディ／ビジー信号（Ｒｙ／Ｂｙ）がＮＡＮＤメモリ２０からコントローラ１０Ａに入力されている。コントローラ１０Ａは、読み書き制御部１１、消去時ループ回数モニタ部１２、書き込み時ループ回数モニタ部１３、寿命管理部１４を具えている。
【００６５】
読み書き制御部１１は、ＤＲＡＭ３０に格納された管理情報に基づいて、ＤＲＡＭ３０のキャッシュ領域を介してＮＡＮＤメモリ２０に対するデータの読み書き制御を行う。
【００６６】
消去時ループ回数モニタ部１２は、ＮＡＮＤメモリ２０の物理ブロックの消去の度、もしくは予め決めた所定の周期、頻度で各物理ブロックの消去時ループ回数ＬｅをＮＡＮＤメモリ２０から取得する。
【００６７】
図７は、書き換え回数と、消去時ループ回数Ｌｅとの関係を示すグラフである。このグラフは、多数の物理ブロックについての検証データの平均をとったものであり、このグラフによれば、初期状態では、消去時ループ回数Ｌｅは少ないが、書き換え回数が増加するにしたがって、消去時ループ回数Ｌｅが増加している。したがって、消去時ループ回数Ｌｅからブロックの劣化具合がわかり、消去時ループ回数ＬｅをＳＳＤ１００Ａの寿命判定の基準とすることができる。
【００６８】
図８は、第１の実施の形態に係る消去処理の動作シーケンスを示すタイムチャートである。消去処理では、コントロールＩ／Ｏ線を介して、消去を示すコマンド「６０ｈ」、アドレス、コマンド「Ｄ０ｈ」が入力され、消去処理が実行される。消去処理の実行中は、レディ／ビジー信号（Ｒｙ／Ｂｙ）がビジーに立ち下がっている。消去処理の実行中には、ＮＡＮＤメモリ２０に所定の印加電圧が、印加電圧を少しずつ大きくしながら複数回に渡って入力される。消去処理が終了すると、レディ／ビジー信号（Ｒｙ／Ｂｙ）がレディに立ち上がる。消去時ループ回数モニタ部１２は、レディ／ビジー信号（Ｒｙ／Ｂｙ）がレディに立ち上がったことを検知すると、コントロールＩ／Ｏ線を介して、コマンド「Ｌｏｏｐ  Ｃｏｕｎｔ  Ｃｏｍｍａｎｄ」を入力する。ＮＡＮＤメモリ２０は、「Ｌｏｏｐ  Ｃｏｕｎｔ  Ｃｏｍｍａｎｄ」に応答して、直前の消去処理に対するステータス信号（消去時ループ回数Ｌｅおよび正常終了／異常終了など）を出力する。
【００６９】
ＮＡＮＤメモリ２０では、消去コマンド「６０ｈ」が入力された後のレディ／ビジー信号（Ｒｙ／Ｂｙ）をモニタし、レディ／ビジー信号（Ｒｙ／Ｂｙ）がビジーに立ち下がってからレディに立ち上がるまでの間に、ＮＡＮＤメモリ２０のブロックに印加された電圧の回数を消去時ループ回数Ｌｅ（イレースパルス回数）として測定し、測定した消去時ループ回数Ｌｅをステータス信号として消去時ループ回数モニタ部１２に送る。消去時ループ回数モニタ部１２は、ＮＡＮＤメモリ２０からの消去時ループ回数Ｌｅをループ回数管理テーブル３１の対応する物理ブロックのエントリに登録（追記）する。
【００７０】
書き込み時ループ回数モニタ部１３は、物理ページに対する書き込みの度、もしくは予め決めた所定の周期、頻度で各物理ページの書き込み時のループ回数であるページ書き込み時ループ回数ＬｗｐをＮＡＮＤメモリ２０から取得する。
【００７１】
図９は、書き換え回数と、ページ書き込み時ループ回数Ｌｗｐとの関係を示すグラフである。このグラフは、多数の物理ページについての検証データの平均をとったものであり、このグラフによれば、ページ書き込み時ループ回数Ｌｗｐは、書き換え回数が増加するにしたがって、徐々に減少している。したがって、ページ書き込み時ループ回数Ｌｗｐからブロックの劣化具合がわかり、ページ書き込み時ループ回数ＬｗｐをＳＳＤ１００Ａの寿命判定の基準とすることができる。
【００７２】
図１０は、第１の実施の形態に係る書き込み処理の動作シーケンスを示すタイムチャートである。書き込み処理では、コントロールＩ／Ｏ線を介して、書き込みを示すコマンド「８０ｈ」、アドレス、データ、コマンド「１０ｈ」が入力され、書き込み処理が実行される。書き込み処理の実行中は、レディ／ビジー信号（Ｒｙ／Ｂｙ）がビジーに立ち下がっている。書き込み処理が終了すると、レディ／ビジー信号（Ｒｙ／Ｂｙ）がレディに立ち上がる。書き込み時ループ回数モニタ部１３は、レディ／ビジー信号（Ｒｙ／Ｂｙ）がレディに立ち上がったことを検知すると、コントロールＩ／Ｏ線を介して、コマンド「Ｌｏｏｐ  Ｃｏｕｎｔ  Ｃｏｍｍａｎｄ」を入力する。ＮＡＮＤメモリ２０は、「Ｌｏｏｐ  Ｃｏｕｎｔ  Ｃｏｍｍａｎｄ」に応答して、直前の書き込み処理に対するステータス信号（ページ書き込み時ループ回数Ｌｗｐおよび正常終了／異常終了など）を出力する。
【００７３】
ＮＡＮＤメモリ２０では、書き込みコマンド「８０ｈ」が入力された後のレディ／ビジー信号（Ｒｙ／Ｂｙ）をモニタし、レディ／ビジー信号（Ｒｙ／Ｂｙ）がビジーに立ち下がってからレディに立ち上がるまでの間にＮＡＮＤメモリ２０のメモリセルに印加された電圧の回数をページ書き込み時ループ回数Ｌｗｐ（プログラムパルス回数）として測定し、測定したページ書き込み時ループ回数Ｌｗｐをステータス信号として書き込み時ループ回数モニタ部１３に送る。
【００７４】
書き込み時ループ回数モニタ部１３は、各ページの、ページ書き込み時ループ回数ＬｗｐをＮＡＮＤメモリ２０から受信し、受信した各ページの、ページ書き込み時ループ回数Ｌｗｐを物理ブロック単位の書き込み時ループ回数Ｌｗに変換する。物理ブロック単位の書き込み時ループ回数Ｌｗを求める手法としては、最もページ書き込み時ループ回数が小さい（最も経年変化が大きいページ）ものを当該物理ブロックの書き込み時ループ回数Ｌｗとして採用する。書き込み時ループ回数モニタ部１３では、導出した書き込み時ループ回数Ｌｗをループ回数管理テーブル３１の対応する物理ブロックのエントリに登録する。
【００７５】
書き込みの際は、図１１に示すように、メモリセルに書き込み電圧Ｖpgmを印加する度に、ベリファイ動作を行って書き込みが正常に行われたか否かをチェックし、書き込みが正常に行われていない場合は、書き込み電圧Ｖpgmの増加、ベリファイ動作を、正常な書き込みが行われるまであるいはタイムアウトするまで繰り返し実行する。書き込み時ループ回数モニタ部１３は、このループ回数を、ページ書き込み時ループ回数Ｌｗｐとして取得する。
【００７６】
また、消去処理の際も、同様の、消去電圧印加、ベリファイの繰り返し制御を行っている。消去時ループ回数モニタ部１２は、消去処理時のループ回数を消去時ループ回数Ｌｅとして取得する。
【００７７】
寿命管理部１４は、ループ回数管理テーブル３１の登録データに基づき、当該ＳＳＤ１００Ａの寿命を判断するもので、当該ＳＳＤ１００Ａが所定の劣化状態に到達したと判断した場合に、ＳＳＤ１０Ａ０の外部装置であるホスト１や警告出力部２１にその旨を示す警告指示を出力する。寿命管理部１４は、ＮＡＮＤメモリ２０の物理ブロックの消去の度、もしくは予め決めた所定の周期、頻度でＳＤ１００Ａが所定の劣化状態に到達したか否かを判断する。
【００７８】
ＳＳＤ１００Ａの寿命は、ブロック毎の書き込み時ループ回数Ｌｗおよびブロック毎の消去時ループ回数Ｌｅの何れか一方を用いて判定できる。このため、寿命判定を実行する際、書き込み時ループ回数Ｌｗ、消去時ループ回数Ｌｅのうちのどちらかまたは両方を使用するかは、デバイスの種類によって予め決めておく。書き込み時ループ回数Ｌｗを用いてＳＳＤ１００Ａの寿命を判定する場合は、消去時ループ回数モニタ部１２や、ループ回数管理テーブル３１の消去時ループ回数Ｌｅは不要となる。また、消去時ループ回数Ｌｅを用いてＳＳＤ１００Ａの寿命を判定する場合は、書き込み時ループ回数モニタ部１３や、ループ回数管理テーブル３１の書き込み時ループ回数Ｌｗは不要となる。
【００７９】
寿命管理部１４は、下記の判断方法１〜８の何れかの方法または判断方法１〜８を組み合わせた方法によって、ＳＳＤ１００Ａが所定の劣化状態に到達したか（寿命が近づいたか）否かを判断する。
【００８０】
（判断方法１）
寿命管理部１４は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、書き込み時ループ回数Ｌｗが各物理ブロックの状態判定に用いる状態管理用の閾値（後述の下限値Ｗｍｉｎ）よりも小さい物理ブロックのブロック数を算出する。換言すると、寿命管理部１４は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、下限値Ｗｍｉｎよりも小さい書き込み時ループ回数Ｌｗの物理ブロック数を算出する。寿命管理部１４は、算出した物理ブロック数がＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用許容ブロック数Ｂｎｗ１）よりも多くなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８１】
（判断方法２）
寿命管理部１４は、ＮＡＮＤメモリ２０の全ブロック数と、判断方法１によって算出した物理ブロック数との比率が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用ブロック比Ｂｒｗ１）（例えば８０％）よりも多くなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８２】
（判断方法３）
寿命管理部１４は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、各物理ブロックの状態判定に用いる状態管理用の閾値（後述の上限値Ｅｍａｘ）よりも大きい消去時ループ回数Ｌｅの物理ブロック数を算出する。寿命管理部１４は、算出した物理ブロック数がＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用許容ブロック数Ｂｎｅ）よりも多くなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８３】
（判断方法４）
寿命管理部１４は、ＮＡＮＤメモリ２０の全ブロック数と、判断方法３によって算出した物理ブロック数との比率が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用ブロック比Ｂｒｅ）よりも多くなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８４】
なお、判断方法２や判断方法４でのＮＡＮＤメモリ２０の全ブロック数は、有効な物理ブロックとスペア領域とを足し合わせた領域であってもよいし、有効な物理ブロックとスペア領域の何れか一方の領域であってもよい。ＮＡＮＤ型フラッシュメモリでは一般に、デバイスのライフタイムに亘って保証すべき有効な（Ｖａｌｉｄ／Ｇｏｏｄ）ブロック数の最小値が規定されている。この場合、スペア領域のブロック数は、最低限保証される有効ブロック数以上のブロック数として定義することができる。あるいは、ＳＳＤなどのメモリシステムでは、外部からデータ容量として見える以上の物理ブロックが管理用、置換用、バッファリング用に設けられている場合がある。この場合、スペア領域のブロック数は、外部からデータ容量として見えるブロック数以上のブロック数として定義することもできる。
【００８５】
（判断方法５）
寿命管理部１４は、ループ回数管理テーブル３１に登録された物理ブロックの書き込み時ループ回数Ｌｗの平均値を算出する。寿命管理部１４は、算出した書き込み時ループ回数Ｌｗの平均値が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用閾値Ｔａｗ）よりも小さくなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８６】
（判断方法６）
寿命管理部１４は、ループ回数管理テーブル３１に登録された物理ブロックの消去時ループ回数Ｌｅの平均値を算出する。寿命管理部１４は、算出した消去時ループ回数Ｌｅの平均値が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用閾値Ｔａｅ）よりも大きくなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【００８７】
（判断方法７）
寿命管理部１４は、ループ回数管理テーブル３１に登録された物理ブロックの書き込み時ループ回数Ｌｗの中から書き込み時ループ回数Ｌｗの最小値または最大値を算出する。寿命管理部１４は、算出した書き込み時ループ回数Ｌｗの最小値または最大値が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用閾値Ｔｍｗ）よりも小さくなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。これにより、書き込み時ループ回数Ｌｗに基づいて最も経年劣化が小さいと判断される物理ブロックまたは最も経年劣化が大きいと判断される物理ブロックと、寿命管理用の閾値との比較に基づいてＳＳＤ１００Ａに寿命がきたことを判断できる。
【００８８】
（判断方法８）
寿命管理部１４は、ループ回数管理テーブル３１に登録された物理ブロックの消去時ループ回数Ｌｅの中から消去時ループ回数Ｌｅの最小値または最大値を算出する。寿命管理部１４は、算出した消去時ループ回数Ｌｅの最小値または最大値が、ＳＳＤ１００Ａの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用閾値Ｔｍｅ）よりも大きくなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。これにより、消去時ループ回数Ｌｅに基づいて最も経年劣化が小さいと判断される物理ブロックまたは最も経年劣化が大きいと判断される物理ブロックと、寿命管理用の閾値との比較に基づいてＳＳＤ１００Ａに寿命がきたことを判断できる。
【００８９】
警告出力部２１は、例えば液晶モニタなどの表示装置である。なお、警告出力部２１は、音声出力装置であってもよいし、ＬＥＤ（Light  Emitting  Diode）などの照明装置であってもよい。警告出力部２１が音声出力装置である場合は、音声の出力によって警告を出力し、警告出力部２１が照明装置である場合は、照明装置を点灯または点滅させることによって警告を出力する。
【００９０】
つぎに、ＳＳＤ１００Ａ自身によるＳＳＤ１００Ａの寿命判定処理手順について説明する。図１２は、第１の実施の形態に係るＳＳＤの寿命判定処理手順を示すフローチャートである。なお、ここでは消去時ループ回数Ｌｅに基づいてＳＳＤ１００Ａの寿命判定を行なう場合について説明するが、書き込み時ループ回数Ｌｗに基づいてＳＳＤ１００Ａの寿命判定を行なう場合についても同様の処理手順によってＳＳＤ１００Ａの寿命判定を行なうことができる。
【００９１】
ホスト１とＳＳＤ１００Ａとの間の消去処理は、図８に示した消去処理の動作シーケンスに従って行なわれる。具体的には、コントローラ１０ＡからＮＡＮＤメモリ２０に消去指令が送られて、ＮＡＮＤメモリ２０に消去指令が入力される（ステップＳ１１０）。これにより、ＮＡＮＤメモリ２０のブロックのうち、コントローラ１０Ａからの消去指令で指定されたブロックに対してデータの消去処理が行なわれる（ステップＳ１２０）。
【００９２】
消去処理の際、消去時ループ回数モニタ部１２は、消去対象となっているブロックに印加した電圧の回数を消去時ループ回数Ｌｅとして検出し（ステップＳ１３０）、検出した消去時ループ回数Ｌｅをループ回数管理テーブル３１の対応する物理ブロックのエントリに登録する。これにより、ループ回数管理テーブル３１が更新される（ステップＳ１４０）。
【００９３】
この後、寿命管理部１４は、ループ回数管理テーブル３１の登録データに基づいて、ＳＳＤ１００Ａの寿命を判断する。すなわち、ＳＳＤ１００Ａが自らＳＳＤ１００Ａの寿命判定を行なう（ステップＳ１５０）。本実施の形態の寿命管理部１４は、上述した判断方法１〜８の何れかの方法によって、ＳＳＤ１００Ａが所定の劣化状態に到達したか否かを判断する。
【００９４】
ここでは、寿命管理部１４が、上述した判断方法１や判断方法３を用いてＳＳＤ１００Ａが所定の劣化状態に到達したか否かを判断する場合について説明する。寿命管理部１４は、各物理ブロックの状態判定に用いる状態管理用の閾値（後述のブロック用閾値情報３２）を用いて、ＮＡＮＤメモリ２０が所定の劣化状態に到達したか否かを判断する。
【００９５】
図１３は、ブロックの状態判定に用いるブロック用閾値情報を示す図である。ＮＡＮＤメモリ２０へは、予めＳＳＤ１００Ａの劣化状態の判定に用いる閾値（許容範囲）を、ブロック用閾値情報３２に登録しておく。
【００９６】
ブロック用閾値情報３２には、書き込み時ループ回数Ｌｗの許容範囲として、下限値Ｗｍｉｎと上限値Ｗｍａｘが登録される。また、ブロック用閾値情報３２には、消去時ループ回数Ｌｅの許容範囲として、下限値Ｅｍｉｎと上限値Ｅｍａｘが登録される。書き込み時ループ回数Ｌｗの許容範囲や消去時ループ回数Ｌｅの許容範囲は、ＮＡＮＤメモリ２０（メモリ素子）のデバイス特性などを参照して設定しておく。
【００９７】
寿命管理部１４は、例えば、ブロック用閾値情報３２を参照し、判断方法１に従って、ＳＳＤ１００Ａの寿命を判定する。この場合、寿命管理部１４は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、下限値Ｗｍｉｎよりも小さい書き込み時ループ回数Ｌｗの物理ブロック数と、上限値Ｗｍａｘ（例えば初期時の書き込み時ループ回数Ｌｗ）よりも大きい書き込み時ループ回数Ｌｗの物理ブロック数との合計値を算出する。
【００９８】
本実施の形態では、下限値Ｗｍｉｎに加えて、上限値Ｗｍａｘよりも大きい書き込み時ループ回数Ｌｗの物理ブロック数をＳＳＤ１００Ａの寿命判定に用いている。これは、書き込み時ループ回数Ｌｗが、上限値Ｗｍａｘよりも大きいブロックは、何らかの異常がある可能性が高いからである。
【００９９】
寿命管理部１４は、算出した物理ブロック数の合計が許容範囲内であるか否かを判断する（ステップＳ１６０）。具体的には、寿命管理部１４は、算出した物理ブロック数の合計がＳＳＤ寿命判定用許容ブロック数Ｂｎｗ１よりも大きくなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。
【０１００】
寿命管理部１４は、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断した場合に、警告出力部２１などにその旨を示す警告を出力する。換言すると、寿命管理部１４は、算出した物理ブロック数の合計が許容範囲内でない場合（ステップＳ１６０、Ｎｏ）、警告出力部２１などに警告を出力する（ステップＳ１７０）。一方、寿命管理部１４は、算出した物理ブロック数の合計が許容範囲内である場合（ステップＳ１６０、Ｙｅｓ）、警告を出力することなく寿命判定を終了する。
【０１０１】
また、寿命管理部１４は、例えば、ブロック用閾値情報３２を参照し、判断方法３に従って、ＳＳＤ１００Ａの寿命を判定してもよい。この場合、寿命管理部１４は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、下限値Ｅｍｉｎ（例えば初期時の消去時ループ回数Ｌｅ）よりも小さい書き込み時ループ回数Ｌｗの物理ブロック数と、上限値Ｅｍａｘよりも大きい消去時ループ回数Ｌｅの物理ブロック数との合計値を算出する。
【０１０２】
本実施の形態では、上限値Ｅｍａｘに加えて、下限値Ｅｍｉｎよりも小さい消去時ループ回数Ｌｅの物理ブロック数をＳＳＤ１００Ａの寿命判定に用いている。これは、消去時ループ回数Ｌｅが、下限値Ｅｍｉｎよりも小さいブロックは、何らかの異常がある可能性が高いからである。
【０１０３】
寿命管理部１４は、算出した物理ブロック数の合計がＳＳＤ寿命判定用許容ブロック数Ｂｎｅよりも多くなった場合に、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断する。寿命管理部１４は、ＳＳＤ１００Ａが所定の劣化状態に到達したと判断した場合に、警告出力部２１などにその旨を示す警告を出力する。
【０１０４】
なお、判断方法１，２，５，７によってＳＳＤ１００Ａの寿命判定を行なう場合には、消去時ループ回数Ｌｅの下限値Ｅｍｉｎと上限値Ｅｍａｘは不要となる。また、判断方法３，４，６，８によってＳＳＤ１００Ａの寿命判定を行なう場合、書き込み時ループ回数Ｌｗの下限値Ｗｍｉｎと上限値Ｗｍａｘは不要となる。
【０１０５】
また、上限値Ｗｍａｘよりも大きい書き込み時ループ回数Ｌｗの物理ブロック数を用いることなく、下限値Ｗｍｉｎよりも小さい書き込み時ループ回数Ｌｗの物理ブロック数に基づいてＳＳＤ１００Ａの寿命判定を行ってもよい。この場合、書き込み時ループ回数Ｌｗの下限値Ｗｍｉｎは不要となる。
【０１０６】
また、下限値Ｅｍｉｎよりも小さい消去時ループ回数Ｌｅの物理ブロック数を用いることなく、上限値Ｅｍａｘよりも大きい消去時ループ回数Ｌｅの物理ブロック数に基づいてＳＳＤ１００Ａの寿命判定を行ってもよい。この場合、消去時ループ回数Ｌｅの下限値Ｅｍｉｎは不要となる。
【０１０７】
また、本実施の形態では、書き込み時ループ回数Ｌｗを、書き込み時のループ回数の最悪値とする場合について説明したが、予め決めた所定の物理ページのページ書き込み時ループ回数Ｌｗｐを当該物理ブロックの書き込み時ループ回数Ｌｗとしてもよい。
【０１０８】
また、寿命管理部１４は、上述した判断方法１〜８以外の方法によって、ＳＳＤ１００Ａの寿命を判断してもよい。また、ループ回数管理テーブル３１やブロック用閾値情報３２は、ＮＡＮＤメモリ２０に格納しておいてもよいし、ＤＲＡＭ３０に格納しておいてもよい。また、本実施の形態では、ＳＳＤ１００Ａの外部に警告出力部２１を配置する場合について説明したが、ＳＳＤ１００Ａの内部に警告出力部２１を配置してもよい。
【０１０９】
また、図８や図１０などで説明した消去処理時や書き込み処理時に用いるコマンドの種類やコマンドの番号は一例であり、他のコマンドによって消去処理や書き込み処理を行ってもよい。
【０１１０】
このように第１の実施の形態では、実際にモニタした消去時ループ回数Ｌｅおよび／または書き込み時ループ回数Ｌｗに基づいて、ＳＳＤ１００Ａの寿命を判断しているので、ロット・個体・ブロック間などのばらつきに左右されず、正確な寿命判断が可能となる。したがって、複数のブロックで構成された不揮発性半導体メモリ全体の劣化状態を正確に検出することが可能となる。
【０１１１】
また、コントローラ１０Ａが寿命管理部１４を備えているので、ＳＳＤ１００Ａ自身でＳＳＤ１００Ａの寿命を判断することが可能となる。また、ＳＳＤ１００Ａ自身がＳＳＤ１００Ａの寿命に関する警告指示を出力するので、ホスト１への負担を軽減しつつＳＳＤ１００Ａの寿命に関する警告をユーザに知らせることが可能となる。
【０１１２】
（第２の実施の形態）
つぎに、第２の実施の形態に係るメモリシステムについて説明する。第２の実施の形態では、ループ回数管理テーブル３１をＳＳＤ（後述のＳＳＤ１００Ｂ）から外部装置であるホスト１に送り、ホスト１がＳＳＤ１００Ｂの寿命判定を行なう。
【０１１３】
図１４は、本発明の第２の実施の形態に係るＳＳＤの機能構成例を示す機能ブロック図である。なお、図１４の各構成要素のうち図５に示すＳＳＤ１００Ａと同一機能を達成する構成要素については同一番号を付しており、重複する説明は省略する。本実施の形態のホスト１は、寿命管理部１６を備えている。寿命管理部１６は、第１の実施の形態で説明したＳＳＤ１００Ａが備える寿命管理部１４と同様の機能を有している。
【０１１４】
図１４に示すメモリシステムとしてのＳＳＤ１００Ｂは、コントローラ１０Ｂと、ＮＡＮＤメモリ２０と、ＤＲＡＭ３０と、ホストＩ／Ｆ４０などを備えている。コントローラ１０Ｂは、コントローラ１０Ａと略同様の機能を有しており、コントローラ１０Ａと比べて、コントローラ１０Ｂが寿命管理部１４を備えていない点と、コントローラ１０Ｂが寿命通知部１５を備えている点が異なる。具体的には、コントローラ１０Ｂは、読み書き制御部１１、消去時ループ回数モニタ部１２、書き込み時ループ回数モニタ部１３、寿命通知部１５を具えている。
【０１１５】
ＳＳＤ１００Ｂの寿命通知部１５は、ホスト１からループ回数管理テーブル３１の要求があった場合に、ＮＡＮＤメモリ２０からループ回数管理テーブル３１を読み出してホスト１に送る。ホスト１からＳＳＤ１００Ｂへのループ回数管理テーブル３１の要求は、例えばＳＭＡＲＴ（Self-Monitoring  Analysis  and  Reporting  Technology）コマンドなどによって行なわれる。ＳＭＡＲＴコマンドは、ホスト１がＮＡＮＤメモリ２０などの状態を引き出すための要求コマンドである。なお、ホスト１は、ＤＲＡＭ３０を介してＮＡＮＤメモリ２０からループ回数管理テーブル３１を読み出してもよい。
【０１１６】
つぎに、ホスト１によるＳＳＤ１００Ｂの寿命判定処理手順について説明する。図１５は、第２の実施の形態に係るＳＳＤの寿命判定処理手順を示すフローチャートである。なお、図１５の処理手順のうち、図１２に示す処理手順と同様の処理手順については、重複する説明を省略する。
【０１１７】
図１５に示した処理のうち、コントローラ１０ＢからＮＡＮＤメモリ２０への消去命令の入力処理からループ回数管理テーブル３１の更新処理までは、図１２に示した処理と同様の処理である。すなわち、図１５に示したステップＳ２１０〜Ｓ２４０の処理は、図１２に示したステップＳ１１０〜Ｓ１４０の処理と同様の処理である。
【０１１８】
ホスト１は、任意のタイミングでＳＳＤ１００Ｂにループ回数管理テーブル３１の要求を行なう。ホスト１からループ回数管理テーブル３１の要求があると、寿命通知部１５は、ループ回数管理テーブル３１をＮＡＮＤメモリ２０から読み出してホスト１に送信する（ステップＳ２５０）。ホスト１の寿命管理部１６は、第１の実施の形態で説明した寿命管理部１４と同様の処理によって、ＳＳＤ１００Ｂの寿命判定を行なう（ステップＳ２６０）。そして、ＳＳＤ１００Ｂの劣化状態が許容範囲内でない場合（ステップＳ２７０、Ｎｏ）、警告出力部２１などに警告を出力する（ステップＳ２８０）。一方、寿命管理部１４は、ＳＳＤ１００Ｂの劣化状態が許容範囲内である場合（ステップＳ２７０、Ｙｅｓ）、警告を出力することなく寿命判定を終了する。
【０１１９】
なお、ループ回数管理テーブル３１に登録する書き込み時のループ回数に関する情報は、書き込み時のループ回数の最悪値（最小値）である書き込み時ループ回数Ｌｗに限らない。
【０１２０】
図１６は、ループ回数管理テーブルの他の構成例を示す図である。ループ回数管理テーブル３３は、ページ書き込み時ループ回数Ｌｗｐのブロック内の平均値である書き込み時ループ回数平均値Ｌａと、ブロック内で書き込み済みのページ数である書き込み済みページ数Ｐと、消去時ループ回数Ｌｅとを、物理ブロック単位に管理するためのテーブルである。書き込み時ループ回数平均値Ｌａ、書き込み済みページ数Ｐ、消去時ループ回数Ｌｅとしては、実際にモニタされた最新のループ回数、ページ数が登録されている。
【０１２１】
各ブロックへは、ページ単位でデータの書き込みが行なわれる。したがって、書き込み時ループ回数平均値Ｌａと書き込み済みページ数Ｐとをループ回数管理テーブル３３内に記憶させておくことにより、新たなページへの書き込みが行なわれた場合であっても、新たな書き込み時ループ回数平均値Ｌａを容易に算出することが可能となる。
【０１２２】
ここで、ループ回数管理テーブル３３を用いたＳＳＤ１００Ｂの寿命判定処理について説明する。ホスト１は、下記の判断方法９，１０の何れかの方法または判断方法９，１０を組み合わせた方法によって、ＳＳＤ１００Ｂが所定の劣化状態に到達したか（寿命が近づいたか）否かを判断する。
【０１２３】
（判断方法９）
寿命管理部１６は、ループ回数管理テーブル３３に登録された各物理ブロックのうち、各物理ブロックの状態判定に用いる状態管理用の閾値（平均値用閾値Ａｗ）よりも小さい書き込み時ループ回数平均値Ｌａの物理ブロック数を算出する。寿命管理部１６は、算出した物理ブロック数がＳＳＤ１００Ｂの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用許容ブロック数Ｂｎｗ２）よりも多くなった場合に、ＳＳＤ１００Ｂが所定の劣化状態に到達したと判断する。
【０１２４】
（判断方法１０）
寿命管理部１６は、ＮＡＮＤメモリ２０の全ブロック数と、（９）の方法によって算出した物理ブロック数との比率が、ＳＳＤ１００Ｂの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用ブロック比Ｂｒｗ２）よりも多くなった場合に、ＳＳＤ１００Ｂが所定の劣化状態に到達したと判断する。
【０１２５】
なお、寿命管理部１６は、判断方法５、６を用いてＳＳＤ１００Ｂの寿命を判定してもよいし、判断方法１〜１０を組み合わせた方法によって、ＳＳＤ１００Ｂの寿命を判定してもよい。また、ＳＳＤ１００Ａの寿命管理部１４がループ回数管理テーブル３３を用いてＳＳＤ１００Ａの寿命判定を行う場合も、ホスト１によるＳＳＤ１００Ｂの寿命判定と同様の方法によって寿命判定が行われる。
【０１２６】
また、各物理ブロックの状態判定に用いる書き込み時ループ回数Ｌｗの許容範囲や消去時ループ回数Ｌｅの許容範囲は１つずつに限らず複数でもよい。許容範囲をＮ（Ｎは自然数）個とすることによって、Ｎ段階の状態判定を行なうことが可能となる。具体的には、寿命管理部１６は、各物理ブロックの劣化状態が、Ｎ個の何れの許容範囲内かに基づいて、各許容範囲に対応付けられた複数の劣化段階の何れであるかを判定する。ここでは、許容範囲を２つずつ設定した場合について説明する。例えば、書き込み時ループ回数Ｌｗの第１の許容範囲と第２の許容範囲とを予め設定しておく。そして、書き込み時ループ回数Ｌｗが第１の許容範囲を超えた場合に、物理ブロックの状態が少し劣化したと判断する。さらに、書き込み時ループ回数Ｌｗが第２の許容範囲を超えた場合に、物理ブロックの状態がかなり劣化したと判断する。
【０１２７】
図１７は、ブロックの状態判定を２段階で行なう場合のブロック用閾値情報を示す図である。ブロック用閾値情報３４には、書き込み時ループ回数Ｌｗの許容範囲として、第１下限値Ｗｍｉｎ１、第１上限値Ｗｍａｘ１、第２下限値Ｗｍｉｎ２、第２上限値Ｗｍａｘ２が登録される。また、ブロック用閾値情報３２には、消去時ループ回数Ｌｅの許容範囲として、第１下限値Ｅｍｉｎ１、第１上限値Ｅｍａｘ１、第２下限値Ｅｍｉｎ２、第２上限値Ｅｍａｘ２が登録される。
【０１２８】
書き込み時ループ回数Ｌｗの許容範囲において、第２下限値Ｗｍｉｎ２は第１下限値Ｗｍｉｎ１よりも厳しい条件とし、第２上限値Ｗｍａｘ２は第１上限値Ｗｍａｘ１よりも厳しい条件としておく。また、消去時ループ回数Ｌｅの許容範囲において、第２下限値Ｅｍｉｎ２は第１下限値Ｅｍｉｎ１よりも厳しい条件とし、第２上限値Ｅｍａｘ２は第１上限値Ｅｍａｘ１よりも厳しい条件としておく。
【０１２９】
例えば、寿命管理部１６は、ブロック用閾値情報３４を参照し、判断方法１に従ってＳＳＤ１００Ｂの寿命を判定する。この場合、寿命管理部１６は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、書き込み時ループ回数Ｌｗが第１下限値Ｗｍｉｎ１よりも小さい物理ブロックのブロック数と、書き込み時ループ回数Ｌｗが第１上限値Ｗｍａｘ１よりも大きい物理ブロックのブロック数との合計値を算出する。
【０１３０】
寿命管理部１６は、算出した物理ブロック数の合計がＳＳＤ寿命判定用許容ブロック数Ｂｎｗ１よりも大きい場合に、ＳＳＤ１００Ｂの劣化状態が第１段階の劣化状態に到達したと判断する。
【０１３１】
また、寿命管理部１６は、ループ回数管理テーブル３１に登録された各物理ブロックのうち、第２下限値Ｗｍｉｎ２よりも小さい書き込み時ループ回数Ｌｗの物理ブロック数と、第２上限値Ｗｍａｘ２よりも大きい書き込み時ループ回数Ｌｗの物理ブロック数との合計値を算出する。
【０１３２】
寿命管理部１６は、算出した物理ブロック数の合計がＳＳＤ寿命判定用許容ブロック数Ｂｎｗ１よりも大きい場合に、ＳＳＤ１００Ｂの劣化状態が第２段階の劣化状態（第１段階よりも劣化が進んだ状態）に到達したと判断する。
【０１３３】
なお、ここでは、各物理ブロックの状態判定に用いる書き込み時ループ回数Ｌｗの許容範囲や、消去時ループ回数Ｌｅの許容範囲を複数設定する場合について説明したが、ＳＳＤ１００Ｂの寿命判定に用いる寿命管理用の閾値（ＳＳＤ寿命判定用許容ブロック数Ｂｎｗ１など）を複数個設定してもよい。例えば、判断方法１の方法によって算出した物理ブロック数が、ＳＳＤ１００Ｂの寿命判定に用いる寿命管理用の第１の閾値よりも大きい場合に、ＳＳＤ１００Ｂの劣化状態が第１段階に到達したと判断する。また、判断方法１の方法によって算出した物理ブロック数が、ＳＳＤ１００Ｂの寿命判定に用いる寿命管理用の第２の閾値よりも大きい場合に、ＳＳＤ１００Ｂの劣化状態が第２段階（第１段階よりも寿命が短くなった状態）に到達したと判断する。
【０１３４】
なお、本実施の形態では、ホスト１が寿命管理部１６を備える構成としたが、ホスト１以外の外部装置が寿命管理部１６を備える構成としてもよい。また、寿命管理部１４がブロック用閾値情報３４を用いてＳＳＤ１００Ａの寿命判定を行なう場合、寿命管理部１４は、上述したホスト１と同様の処理によって、ＳＳＤ１００Ａの寿命判定を行なう。
【０１３５】
このように第２の実施の形態では、ＳＳＤ１００Ｂが寿命通知部１５を備えているので、ホスト１にループ回数管理テーブル３１を送信することが可能となる。また、ホスト１が寿命管理部１６を備えているので、ホスト１がＳＳＤ１００Ａの寿命を判断することが可能となる。また、各物理ブロックの状態判定に用いる書き込み時ループ回数Ｌｗの許容範囲や、消去時ループ回数Ｌｅの許容範囲を複数設定しているので、ＳＳＤ１００Ｂの劣化状態を詳細に管理することが可能となる。
【符号の説明】
【０１３６】
１  ホスト、１０Ａ，１０Ｂ  コントローラ、１１  読み書き制御部、１２  消去時ループ回数モニタ部、１３  書き込み時ループ回数モニタ部、１４，１６  寿命管理部、１５  寿命通知部、２０  ＮＡＮＤメモリ、２１  警告出力部、３０  ＤＲＡＭ、３１，３３  ループ回数管理テーブル、３２，３４  ブロック用閾値情報。
【図１】
2011164994.tif 000003
【図２】
2011164994.tif 000004
【図３】
2011164994.tif 000005
【図４】
2011164994.tif 000006
【図５】
2011164994.tif 000007
【図６】
2011164994.tif 000008
【図７】
2011164994.tif 000009
【図８】
2011164994.tif 000010
【図９】
2011164994.tif 000011
【図１０】
2011164994.tif 000012
【図１１】
2011164994.tif 000013
【図１２】
2011164994.tif 000014
【図１３】
2011164994.tif 000015
【図１４】
2011164994.tif 000016
【図１５】
2011164994.tif 000017
【図１６】
2011164994.tif 000018
【図１７】
2011164994.tif 000019