(57)【特許請求の範囲】
【請求項１】
ホスト装置に接続される不揮発性半導体メモリ装置であって、
データを書き換え可能に保持するメモリセルを複数有するメモリ部と、
該メモリ部に対する前記ホスト装置からのデータの書き込みを禁止するか否かを切り替えるためのライトプロテクトスイッチと、
該ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルへのアクセスが無くても前記メモリセルの保持データの状態をチェックし、前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込むデータ管理手段と、を備えた不揮発性半導体メモリ装置。
【請求項２】
前記データ管理手段は、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルにデータを書き込んでからの期間、前記メモリセルに対して最後にアクセスしてからの期間、及び、前記メモリセルの書き換え回数、から選ばれる一以上が設定を超えたか否かを判断し、超えたと判断したときに前記メモリセルの保持データの状態をチェックする、請求項１に記載の不揮発性半導体メモリ装置。
【請求項３】
前記データ管理手段は、前記メモリセルの保持データに誤りがあるか否かを検出する誤り検出手段を有し、誤りが検出され訂正された保持データを前記メモリ部へ書き込む、請求項１又は請求項２に記載の不揮発性半導体メモリ装置。
【請求項４】
前記データ管理手段は、前記メモリ部の保持データのうち書き込んでからの期間の長い保持データから順に状態をチェックする、請求項１〜請求項３のいずれか一項に記載の不揮発性半導体メモリ装置。
【請求項５】
前記データ管理手段は、本不揮発性半導体メモリ装置への通電が開始されたとき、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定であれば前記保持データの状態のチェックを開始する、請求項１〜請求項４のいずれか一項に記載の不揮発性半導体メモリ装置。
【請求項６】
前記データ管理手段は、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、本不揮発性半導体メモリ装置への通電が継続して前記メモリセルの保持データの状態チェックの行われていない期間が設定を超えたか否かを判断し、超えたと判断したときに再び前記保持データの状態のチェックを開始する、請求項５に記載の不揮発性半導体メモリ装置。
【請求項７】
前記データ管理手段は、前記メモリ部への書き込みが必要である状態の保持データを元の場所とは異なる場所の前記メモリ部に書き込む、請求項１〜請求項６のいずれか一項に記載の不揮発性半導体メモリ装置。
【請求項８】
前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込んでいる状態を知らせる表示手段を備えた、請求項１〜請求項７のいずれか一項に記載の不揮発性半導体メモリ装置。
【請求項９】
データを書き換え可能に保持するメモリセルを複数有するメモリ部を備えホスト装置に接続される不揮発性半導体メモリ装置の制御方法であって、
前記不揮発性半導体メモリ装置に設けられたライトプロテクトスイッチであって前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止するか否かを切り替えるためのライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルへのアクセスが無くても前記メモリセルの保持データの状態をチェックし、前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置に接続される不揮発性半導体メモリ装置、及び、その制御方法に関する。
【背景技術】
【０００２】
近年、ＳＤ（Secure Digital）カードやメモリスティックといった小型メモリカード等の不揮発性半導体メモリ装置が安価で大容量化している。このため、デジタルカメラ等の撮影装置で撮影した画像データ等の撮影データをフラッシュメモリ装置等にそのまま残し、空き容量が少なくなると新しいフラッシュメモリ装置等に交換することが行われるようになっている。フラッシュメモリ装置等に物理的なライトプロテクトスイッチが設けられている場合、ライトプロテクトスイッチをオンにしてフラッシュメモリ装置等を長期間保管し、時々ライトプロテクトスイッチをオンにしたまま記憶データを読み出すことが行われている。
【０００３】
一方、不揮発性半導体メモリは、エンデュランス（データ書き換え回数）に制限があるとともに、データリテンション（データ保持期間）に制限がある。すなわち、データを書き込んでから時間が経過すると、フローティング・ゲートから電荷が徐々に抜け、ビットデータが変わってしまうことがある。特に、ＮＡＮＤ型フラッシュメモリは、データの読み書きをページ単位で行う必要があり、データを上書きするためにはページよりも大きいブロック全体を消去したうえでデータを書き込む必要があり、データの消去をブロック単位で行う必要がある。このため、ＮＡＮＤ型フラッシュメモリは、ＮＯＲ型フラッシュメモリもよりもメモリセルの劣化が進み易い。
【０００４】
以上のことから、特に、ＮＡＮＤ型フラッシュメモリ装置の場合、メモリ領域に誤り訂正用のデータ領域を設けておき、メモリセルからデータを読み出すときにＥＣＣ（Error Check and Correct）回路でエラーの有無を検出し、エラー時に記憶データを自動的に訂正することが行われている。この記憶データの訂正は、外部に出力する際に行われ、メモリセルに保持されているデータに対しては行われない。
【０００５】
特許文献１に記載の不揮発性半導体メモリ装置は、状態検知回路と検知周期制御回路とデータ保持制御回路とを備えている。前記状態検知回路は、メモリセルの状態検知を当該メモリセルに保持されているデータを読み出す際に「０」か「１」かを区別する閾値電圧を測定することにより一定周期で実施する。メモリセルに保持されているデータを読み出す際の閾値電圧値が所定の電圧値Ｖｂより大きい「正常」状態と判定されたメモリセルには、何もされない。前記閾値電圧値が所定の電圧値Ｖａ以上であり且つ所定の電圧値Ｖｂ以下の「注意」状態と判定されたメモリセルには、データの再書き込みが行われる。前記閾値電圧値が所定の電圧値Ｖａより小さい「危険」状態と判定されたメモリセルには、別のメモリセルへデータが書き込まれる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１６５４３４号公報
【特許文献２】特開２００３−１０００９９号公報
【特許文献３】特開２０００−１１６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した閾値電圧の測定には、そのための回路をメモリ外に設ける必要がある。
また、不揮発性半導体メモリ装置は、上述したように長期間のデータ保存用とされることもあれば、頻繁にデータを読み書きするために用いられることもある。上述した技術のように一定周期でメモリセルの状態検知を実施すると、頻繁にデータが読み書きされる不揮発性半導体メモリ装置の場合、状態検知処理のためにホスト装置からのアクセスが遅くなることがある。
なお、特許文献２に記載の技術は、ワンチップマイコンの技術であるが、動作電源の電位レベルを変更するレギュレータを不揮発性半導体メモリ外に設ける必要がある。また、特許文献３の技術は、フラッシュメモリ近傍の温度を測定する温度センサをフラッシュメモリ外に設ける必要がある。
【０００８】
以上を鑑み、本発明は、長期間アクセスされないメモリセルのデータの保持期間をより効果的に延長することが可能な技術を提供する目的を有している。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、ホスト装置に接続される不揮発性半導体メモリ装置であって、
データを書き換え可能に保持するメモリセルを複数有するメモリ部と、
該メモリ部に対する前記ホスト装置からのデータの書き込みを禁止するか否かを切り替えるためのライトプロテクトスイッチと、
該ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルへのアクセスが無くても前記メモリセルの保持データの状態をチェックし、前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込むデータ管理手段と、を備えた態様を有する。
【００１０】
また、本発明は、データを書き換え可能に保持するメモリセルを複数有するメモリ部を備えホスト装置に接続される不揮発性半導体メモリ装置の制御方法であって、
前記不揮発性半導体メモリ装置に設けられたライトプロテクトスイッチであって前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止するか否かを切り替えるためのライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルへのアクセスが無くても前記メモリセルの保持データの状態をチェックし、前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込む、態様を有する。
【００１１】
すなわち、ライトプロテクトスイッチの設定がメモリ部に対するホスト装置からのデータの書き込みを禁止する設定である場合、メモリセルへのアクセスが無くてもメモリセルの保持データの状態がチェックされ、メモリ部への書き込みが必要である状態の保持データがメモリ部へ書き込まれる。従って、長期間アクセスされないメモリセルの保持データが維持される。また、ライトプロテクトスイッチの設定がメモリ部に対するホスト装置からのデータの書き込みを禁止する設定でない場合、保持データの状態チェックが行われない。
【００１２】
不揮発性半導体メモリ装置が長期間のデータ保存用とされる場合、ライトプロテクトスイッチの設定がメモリ部に対するホスト装置からのデータの書き込みを禁止する設定にされる可能性が比較的大きい。一方、不揮発性半導体メモリ装置が頻繁にデータを読み書きするために用いられる場合、ライトプロテクトスイッチの設定がメモリ部に対するホスト装置からのデータの書き込みを禁止する設定にされない可能性が比較的大きい。従って、本態様は、長期間アクセスされないメモリセルのデータの保持期間をより効果的に延長することが可能になる。また、メモリセルの保持データの状態チェックを行う設定であるか否かを切り替える専用のスイッチを不要にすることができる。
【００１３】
ここで、上記不揮発性半導体メモリ装置は、ＮＡＮＤ型フラッシュメモリ装置が好適であるものの、ＮＯＲ型フラッシュメモリ等にも適用可能である。
上記状態チェックには、ＥＣＣ（Error Check and Correct）による保持データの誤りチェック、メモリセルにデータを書き込んでからの経過時間が設定を超えたか否かのチェック、メモリセルのページにデータを書き込んだ回数が設定を超えたか否かのチェック、これらの組合せ、等が含まれる。
上記保持データをメモリ部へ書き込むことには、メモリセルの保持データに誤りがあるか否かを検出する誤り検出手段により訂正された保持データをメモリ部に書き込むことが含まれる。
上記メモリ部への保持データの書き込みは、同じ場所への書き込みでもよいし、メモリ部内の異なる場所への書き込みでもよい。
【００１５】
上記状態チェックの一例として、前記データ管理手段は、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、前記メモリセルにデータを書き込んでからの期間、前記メモリセルに対して最後にアクセスしてからの期間、及び、前記メモリセルの書き換え回数、から選ばれる一以上が設定を超えたか否かを判断し、超えたと判断したときに前記メモリセルの保持データの状態をチェックしてもよい。メモリセルにデータを書き込んでからの期間やメモリセルに対して最後にアクセスしてからの期間が短いとき、及び、メモリセルの書き換え回数が少ないとき、保持データをメモリ部へ書き込む必要性は小さい。従って、本態様は、保持データの維持処理を効率良く行うことができる。
ここで、上記メモリセルの書き換え回数には、メモリセルのブロック又はページの書き換え回数が含まれる。上記設定には、所定期間、メモリセルの書き換え回数、これらの組合せ、等が含まれる。
【００１６】
前記データ管理手段は、前記メモリセルの保持データに誤りがあるか否かを検出する誤り検出手段を有し、誤りが検出され訂正された保持データを前記メモリ部へ書き込んでもよい。本態様は、不揮発性半導体メモリ装置の誤り検出手段を利用して保持データの維持処理を行うことができる。
【００１７】
前記データ管理手段は、前記メモリ部の保持データのうち書き込んでからの期間の長い保持データから順に状態をチェックしてもよい。すると、保持データの維持処理を効率良く行うことができる。
【００１８】
前記データ管理手段は、本不揮発性半導体メモリ装置への通電が開始されたとき、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定であれば前記保持データの状態のチェックを開始してもよい。これにより、保持データをより確実に維持することができる。
【００１９】
前記データ管理手段は、前記ライトプロテクトスイッチの設定が前記メモリ部に対する前記ホスト装置からのデータの書き込みを禁止する設定である場合、本不揮発性半導体メモリ装置への通電が継続して前記メモリセルの保持データの状態チェックの行われていない期間が設定を超えたか否かを判断し、超えたと判断したときに再び前記保持データの状態のチェックを開始してもよい。本態様は、不揮発性半導体メモリ装置への通電が継続する場合に保持データをより確実に維持することができる。
【００２０】
前記データ管理手段は、前記メモリ部への書き込みが必要である状態の保持データを元の場所とは異なる場所の前記メモリ部に書き込んでもよい。本態様は、保持データの書き込みの途中で不揮発性半導体メモリ装置への電力供給が遮断されても元の保持データが残されるので、保持データの維持処理をより確実に行うことができる。
【００２１】
前記メモリ部への書き込みが必要である状態の保持データを前記メモリ部へ書き込んでいる状態を知らせる表示手段があると、保持データが書き込まれていることを知ることができるので、不用意な電源遮断を抑制することができる。
【発明の効果】
【００２２】
本発明によれば、長期間アクセスされないメモリセルのデータの保持期間をより効果的に延長することが可能な技術を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】ホスト装置１０とともに不揮発性半導体メモリ装置２０の構成の概略を例示するブロック図である。
【図２】（ａ）はＮＡＮＤ型フラッシュメモリ３０の構造を模式的に例示する図、（ｂ）は各ページ３４の構造を模式的に例示する図、（ｃ）は管理領域Ｒ１に記録されたブロック３２毎の書き換え回数を模式的に例示する図、である。
【図３】不揮発性半導体メモリ装置２０のコントローラ５０が行うデータ管理処理を模式的に例示するフローチャートである。
【図４】（ａ）は代替ブロック処理を模式的に例示する図、（ｂ）はリライト処理を模式的に例示する図、である。
【図５】コントローラ５０が行うリードコマンド処理を模式的に例示するフローチャートである。
【図６】（ａ），（ｂ）はコントローラ５０が行うライトコマンド処理を模式的に例示するフローチャートである。
【図７】変形例においてホスト装置１０とともに不揮発性半導体メモリ装置２０の構成の概略を例示するブロック図である。
【図８】リライト処理できないブロック３２に代替ブロック処理を適用するデータ管理処理を模式的に例示するフローチャートである。
【図９】データを書き込んでからの期間が設定期間を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的に例示するフローチャートである。
【図１０】データに対して最後にアクセスしてからの期間が設定期間を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的に例示するフローチャートである。
【図１１】設定書き換え回数を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的に例示するフローチャートである。
【図１２】書き込んでからの期間の長い保持データＤ１から順に状態チェックを行うデータ管理処理を模式的に例示するフローチャートである。
【図１３】電源オン継続時に設定期間を超過したら状態チェックを行うデータ管理処理を模式的に例示するフローチャートである。
【図１４】保持データＤ１の書き込み状態を知らせる表示を行うデータ管理処理を模式的に例示するフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態を説明する。むろん、以下に説明する実施形態は、本発明を例示するものに過ぎない。
【００２５】
（１）不揮発性半導体メモリ装置を有するコンピュータシステムの例：
図１〜６は、不揮発性半導体メモリ装置２０を有するコンピュータシステム１の一例を示している。図１に示すコンピュータシステム１は、外付けの不揮発性半導体メモリ装置２０がホスト装置１０に対して着脱可能に接続されている。コンピュータシステム１の概略は、以下の通りである。
【００２６】
不揮発性半導体メモリ装置２０は、フラッシュメモリ（メモリ部）３０、ライトプロテクトスイッチ４２（物理的スイッチ４０）、コントローラ５０、を備えるフラッシュメモリ装置である。不揮発性半導体メモリ装置２０は、内部に電源が無く、ホスト装置１０の電源１９から電源端子２９に供給される電力により動作する。図１に示す不揮発性半導体メモリ装置２０の例として、ＳＤカードやメモリスティックといったメモリカードが挙げられる。この場合、例えば、ホスト装置１０に設けたメモリカード用のスロット（ホスト側接続部）１８に不揮発性半導体メモリ装置２０の挿入端（メモリ側接続部）２８を挿入することにより、不揮発性半導体メモリ装置２０がホスト装置１０に対して電気的に接続される。むろん、不揮発性半導体メモリ装置２０は、ＵＳＢ（Universal Serial Bus）メモリ等でもよい。この場合、ホスト装置１０のＵＳＢ接続口（ホスト側接続部）に不揮発性半導体メモリ装置２０のＵＳＢ挿入端（メモリ側接続部）を挿入することにより、不揮発性半導体メモリ装置２０がホスト装置１０に対して電気的に接続される。
【００２７】
コントローラ５０のフラッシュインターフェイス（Ｉ／Ｆ）５４に接続されたフラッシュメモリ（メモリ部）３０は、データを書き換え可能に保持するメモリセル３６を多数有している。図１に示すフラッシュメモリ３０は、複数のメモリセル３６がユーザに開放されない管理領域Ｒ１とユーザに開放された開放領域Ｒ２とに区分されている。管理領域Ｒ１には、開放領域Ｒ２に書き込まれたデータ（例えばファイル）の格納場所等が記録される。図１に示すフラッシュメモリ３０の例として、ＮＡＮＤ型フラッシュメモリが挙げられる。フラッシュメモリのメモリセルは、ＳＬＣ（Single Level Cell）でもよいし、ＭＬＣ（Multi Level Cell）でもよい。
【００２８】
図２（ａ）はＮＡＮＤ型フラッシュメモリ３０の構造を模式的に例示し、図２（ｂ）は各ページ３４の構造を模式的に例示し、図２（ｃ）は管理領域Ｒ１に記録されたブロック３２毎の書き換え回数を模式的に例示している。フラッシュメモリ３０のメモリ領域は、ブロック３２毎に区分されている。図２（ａ）では、メモリ領域がＢｉ（ｉは１からｎまでの整数、ｎは２以上の整数）で表されている。各ブロック３２はページ３４毎に区分され、各ページ３４は複数のメモリセル３６を有している。各ページ３４は、データ領域Ｒ３とスペア領域Ｒ４とを有している。データ領域Ｒ３は、ユーザが直接扱うデータを記憶する領域であり、特に限定されないが、例えば２〜８キロバイト程度のデータ容量を有する。スペア領域Ｒ４は、データの誤りを訂正するための誤り訂正符号（Error Correcting Code）を記憶する領域であり、特に限定されないが、例えば６４〜６４０バイト程度のデータ容量を有する。すなわち、図２（ｂ）に示す例では、ページ３４毎に誤り訂正符号が記憶される。各ブロック３２は、特に限定されないが、例えば６４〜１２８ページ程度（データ領域が例えば１２８キロバイト〜１メガバイト程度、スペア領域が例えば４〜８０キロバイト程度）を有している。
【００２９】
フラッシュメモリへは、トンネル電流を流してフローティング・ゲート内に電荷を注入することによりデータが書き込まれる。フローティング・ゲート内の電荷は、フローティング・ゲートを覆う絶縁膜により保持される。これにより、電力を供給しなくてもフラッシュメモリにデータが保持される。フローティング・ゲートに対応したＰ型半導体層に電圧をかけてフローティング・ゲートから電荷を抜くと、データが消去される。
【００３０】
ＮＡＮＤ型フラッシュメモリの場合、データの読み出し及び書き込みをページ単位で行う必要がある。また、データの消去は、ページ単位よりも大きいブロック単位で行う必要がある。データを上書きするためには、一旦、ブロック全体を消去したうえでデータを書き込む必要がある。ＮＡＮＤ型フラッシュメモリは、ＮＯＲ型フラッシュメモリよりもデータの読み書き動作が多くなり、メモリセルの劣化が進み易い。このため、ＮＡＮＤ型フラッシュメモリは、誤り訂正符号を記憶するスペア領域が内部に設けられるとともに、メモリセルの保持データに誤りがあるか否かを検出するＥＣＣ（Error Check and Correct）回路（誤り検出手段）が外部に設けられる。
【００３１】
また、メモリセルの劣化が進み易いため、特定のブロックにデータの書き込みや消去が集中すると、そのブロックのみ早く劣化してしまう。使用可能期間を延ばすため、ブロック毎のデータの書き換え回数をなるべく均等に分散させるウエアレベリング（Wear Levelling）が行われる。このウエアレベリングのために、図２（ｃ）に示すように、ブロック３２毎のデータの書き換え回数が管理領域Ｒ１に記録される。
【００３２】
コントローラ５０のＧＰＩＯ（General Purpose Input/Output）５６に接続されたライトプロテクトスイッチ４２は、フラッシュメモリ３０に対するデータの書き込みを禁止するか否かを切り替えるための機械式スイッチである。図１に示すライトプロテクトスイッチ４２は、つまみ４１をオン位置Ｌ１又はオフ位置Ｌ２に切り替え操作可能な２ポジションのスライドスイッチとされている。このライトプロテクトスイッチ４２は、メモリセル３６のアクセス対象でない保持データＤ１の状態チェックを行う設定（オン位置Ｌ１）であるか否かを切り替える物理的スイッチ４０を兼ねている。すなわち、この物理的スイッチ４０のつまみ４１のオン位置Ｌ１はメモリセル３６のアクセス対象でない保持データＤ１の状態チェックを行う設定を意味し、該つまみ４１のオフ位置Ｌ２はメモリセル３６のアクセス対象でない保持データＤ１の状態チェックを行わない設定を意味する。むろん、物理的スイッチ４０は、３ポジション以上のスイッチでもよいし、スライドスイッチ以外にも、ディップスイッチ、トグルスイッチ、レバースイッチ、ロータリスイッチ、ロッカスイッチ、オルタネイト動作型押しボタン、等でもよい。
【００３３】
なお、ホスト装置１０がフラッシュメモリ３０からデータを読み出す場合、データを読み出すページ３４についてはＥＣＣ回路５５が保持データＤ１の状態をチェックし、誤りのある保持データは訂正されてホスト装置１０へ出力される。従って、ページ３４がデータ読み出しの対象となれば、保持データのＥＣＣチェックが行われる。しかし、ページ３４がアクセス対象とならなければ、従来はＥＣＣチェックが行われない。
【００３４】
図１に示すコントローラ５０は、ＣＰＵ（Central Processing Unit）５１、内部メモリ５２、ホストインターフェイス（Ｉ／Ｆ）５３、フラッシュインターフェイス（Ｉ／Ｆ）５４、ＥＣＣ回路５５（誤り検出手段Ｕ２）、ＧＰＩＯ５６、が少なくとも内部バス５０ａに接続されて互いにデータを入出力可能とされている。コントローラ５０の主要部分は、ＩＣ（集積回路）で構成される。このコントローラ５０は、データ管理手段Ｕ１を少なくとも備える。データ管理手段Ｕ１は、物理的スイッチ４０の設定が状態チェックを行う設定（オン位置Ｌ１）である場合、メモリセル３６へのアクセスが無くてもメモリセル３６の保持データＤ１の状態をチェックし、メモリ部（３０）への書き込みが必要である状態の保持データ、好ましくは正しい保持データをメモリ部（３０）へ書き込む。
【００３５】
不揮発性半導体メモリ装置２０が長期間のデータ保存用とされる場合、物理的スイッチ４０の設定が保持データＤ１の状態チェックを行う設定（オン位置Ｌ１）にされる可能性が比較的大きい。この場合、メモリセル３６へのアクセスが無くてもメモリセル３６の保持データＤ１の状態がチェックされ、メモリ部（３０）への書き込みが必要である状態の保持データがメモリ部（３０）へ書き込まれる。一方、不揮発性半導体メモリ装置２０が頻繁にデータを読み書きするために用いられる場合、物理的スイッチ４０の設定が保持データＤ１の状態チェックを行わない設定（オフ位置Ｌ２）にされる可能性が比較的大きい。従って、長期間アクセスされないメモリセル３６のデータの保持期間をより効果的に延長することが可能になる。
【００３６】
コントローラ５０に設けられた内部メモリ５２は、例えばＲＯＭ（Read Only Memory）とＲＡＭ（Random Access Memory）等で構成することができる。このＲＯＭには、フラッシュメモリ３０に対してデータを読み書きしたり消去したりする機能、データ管理手段Ｕ１の機能、等をコントローラ５０に実現させるためのプログラムを含む情報が書き込まれている。ＣＰＵ５１は、前記情報に従って不揮発性半導体メモリ装置２０全体の動作を制御する。ホスト装置１０のホストコントローラ１４に接続されるホストＩ／Ｆ５３は、シリアル通信規格といった所定の通信規格に従ってホスト装置１０と通信を行うための通信Ｉ／Ｆである。むろん、コントローラ５０とホスト装置１０との通信は、パラレル通信等でもよい。ＵＳＢメモリの場合、ホストＩ／Ｆは、ＵＳＢ規格に従ってホスト装置とシリアル通信を行うＵＳＢ  Ｉ／Ｆとすることができる。フラッシュメモリ３０に接続されたフラッシュＩ／Ｆ５４は、所定の仕様に従ってフラッシュメモリ３０にアクセスするためのＩ／Ｆである。同じくフラッシュメモリ３０に接続されたＥＣＣ回路５５（誤り検出手段Ｕ２）は、ページ３４単位でデータ領域Ｒ３の保持データＤ１とスペア領域の誤り訂正符号とを比較することによりメモリセル３６の保持データＤ１に誤りがあるか否かを検出する。フラッシュメモリ３０からデータを読み出す場合、ＥＣＣ回路５５は、誤りが無いと検出した保持データはそのまま内部バス５０ａへ出力し、誤りがあると検出した保持データは訂正後に内部バス５０ａへ出力する。ライトプロテクトスイッチ４２に接続されたＧＰＩＯ５６は、つまみ４１がオン位置Ｌ１にあるかオフ位置Ｌ２にあるかを読み取る。
【００３７】
ホスト装置１０は、パーソナルコンピュータといったコンピュータ、デジタルカメラやデジタルビデオカメラといった撮像装置、スマートフォンを含む携帯電話、テレビジョンや記録再生装置といった放送受信装置、ＵＳＢ充電器といった充電器、等が考えられる。図１に示すホスト装置１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ホストコントローラ１４、等がバス１０ａに接続されて互いに情報を入出力可能とされている。ホストコントローラ１４は、シリアル通信規格といった所定の通信規格に従って不揮発性半導体メモリ装置２０と通信を行う。この通信は、パラレル通信等でもよい。ホスト装置１０は、不揮発性半導体メモリ装置２０を着脱可能に装着するためのスロット１８、電源１９、等も備えている。スロット１８に不揮発性半導体メモリ装置２０の挿入端２８が挿入されると、ホスト装置１０と不揮発性半導体メモリ装置２０とが電気的に接続され、電源１９から不揮発性半導体メモリ装置２０の電源端子２９に電力が供給され、コントローラ５０が動作を開始する。
【００３８】
図３は、本技術に係る不揮発性半導体メモリ装置２０のコントローラ５０が行うデータ管理処理を模式的なフローチャートにより例示している。この処理は、不揮発性半導体メモリ装置２０がホスト装置１０に接続されたりホスト装置１０に電源が投入されたりして不揮発性半導体メモリ装置２０への通電が開始された電源投入時に開始し、他の処理と並列して行われる。このデータ管理処理を行うコントローラ５０は、上述したデータ管理手段Ｕ１を構成する。
【００３９】
データ管理処理が開始すると、コントローラ５０は、ライトプロテクトスイッチ４２のつまみ４１の位置に応じて処理を分岐させる（ステップＳ１０２。以下、「ステップ」の記載を省略。）。コントローラ５０は、ＧＰＩＯ５６を介してつまみ４１の位置を読み取り、この位置がオン位置Ｌ１である場合にＳ１０４へ処理を進めて保持データＤ１の状態のチェックを開始し、読み取った位置がオフ位置Ｌ２である場合にはデータ管理処理を終了させる。ここで、つまみ４１の位置は物理的スイッチ４０の設定であり、オン位置Ｌ１は保持データＤ１の状態チェックを行う設定であり、オフ位置Ｌ２は保持データＤ１の状態チェックを行わない設定である。図３に示す状態チェックは、ＥＣＣ（Error Check and Correct）による保持データの誤りチェックである。
【００４０】
ライトプロテクトスイッチ４２がオン（Ｌ１）である場合、コントローラ５０は、図２（ａ）に示す全ブロックＢ１〜Ｂｎの中から順次、状態チェックとしてＥＣＣチェックを行う対象ブロックＢｉを設定する（Ｓ１０４）。この設定処理は、対象ブロックＢｉを特定する変数ｉに数値を入れる処理等とすることができる。ＥＣＣチェックは、メモリセル３６の保持データＤ１に誤りがあるか否かのチェックであり、ＥＣＣ回路５５によりページ単位で行われる。Ｓ１０６では、ホスト装置１０からのアクセスの有無に関係無く、対象ブロックＢｉに含まれる全メモリセル３６の保持データＤ１の状態チェックをＥＣＣ回路５５で行い、ＥＣＣエラーを検出したか否かを判断する。例えば、対象ブロックＢｉに含まれる全ページ３４のうち１以上のページに保持データＤ１の誤りがあったときにＥＣＣエラーと判断する。図３に示す処理は、このＥＣＣエラーを検出したときに対象ブロックＢｉの保持データＤ１がフラッシュメモリ３０への書き込みが必要である状態と判断し、ＥＣＣエラーを検出しないときに対象ブロックＢｉの保持データＤ１はフラッシュメモリ３０への書き込みが不要であると判断している。対象ブロックＢｉにＥＣＣエラーを検出しなかった場合、コントローラ５０は、処理をＳ１１２に進める。このように、本技術は、不揮発性半導体メモリ装置２０の誤り検出手段Ｕ２を利用して保持データＤ１の維持処理を行うことができる。
【００４１】
対象ブロックＢｉにＥＣＣエラーを検出した場合、コントローラ５０は、対象ブロックＢｉの保持データＤ１を元の場所（Ｂｉ）とは異なる場所のフラッシュメモリ３０に書き込む代替ブロック処理を行う（Ｓ１０８）。
【００４２】
図４（ａ）は、代替ブロック処理を模式的に例示している。図４（ａ）の上段は、対象ブロックＢｉのページＰｋ（ｋは１からｍまでの整数、ｍは２以上の整数）にエラービットのメモリセルＭｂが生じている例を示している。従って、ページＰｋの保持データは、フラッシュメモリ３０への書き込みが必要である状態の保持データＤ２である。この場合、ＥＣＣ回路５５は、ページＰｋの保持データＤ１に誤りがあることを検出し、スペア領域Ｒ４の誤り訂正符号に基づいて保持データＤ１の誤りを訂正する。図４（ａ）の中段は、誤りが訂正された保持データＤ３がＥＣＣ回路５５により生成されることが示されている。訂正後の保持データＤ３は、一旦、ＲＡＭ（内部メモリ５２）に格納されてもよい。ページＰｋの訂正後の保持データは、フラッシュメモリ３０への書き込みが必要である状態の正しい保持データＤ２である。代替ブロック処理は、この保持データＤ２を含む対象ブロックＢｉの訂正後の保持データＤ３を対象ブロックＢｉ以外のブロックに書き込む処理である。図４（ａ）の下段は、代替ブロックＢｊ（ｊはｉを除く１以上ｎ以下の整数）に訂正後の保持データＤ３が書き込まれることが示されている。代替ブロックＢｊの全メモリセル３６を消去してから訂正後の保持データＤ３を代替ブロックＢｊに書き込んでもよい。訂正後の保持データＤ３が一旦ＲＡＭに格納される場合、コントローラ５０は、この格納された保持データＤ３を代替ブロックＢｊに書き込んでもよい。
【００４３】
上記代替ブロック処理が終了すると、コントローラ５０は、対象ブロックＢｉから代替ブロックＢｊへ移動したデータの新たな格納場所を管理領域Ｒ１に記録し、管理領域Ｒ１の代替ブロックＢｊの書き換え回数を１増やす（Ｓ１１０）。代替ブロック処理の後に管理領域Ｒ１を更新することにより、万一、訂正された保持データＤ３の書き込みの途中で不揮発性半導体メモリ装置２０への電力供給が遮断されても元の保持データＤ１が残されているので、電源再投入後に再び保持データＤ１を訂正して代替ブロックに書き込むことができる。従って、本データ管理処理は、保持データの確実性の高い維持処理を行うことができる。
【００４４】
むろん、訂正された保持データＤ３の書き込み途中で不揮発性半導体メモリ装置２０への電力供給が遮断されない対策をとることを前提にすれば、図４（ｂ）に示すように、フラッシュメモリ３０への書き込みが必要である状態の保持データＤ２を元の場所に書き込むリライト処理が代替ブロック処理の代わりに行われてもよい。前記対策には、不揮発性半導体メモリ装置の包装等にホスト装置で安全な取り外し操作が完了するまでホスト装置から不揮発性半導体メモリ装置を取り外さない旨の注意書きを入れること等が考えられる。図４（ｂ）に示す場合も、ＥＣＣ回路５５は、ページＰｋの保持データＤ１に誤りがあることを検出し、スペア領域Ｒ４の誤り訂正符号に基づいて保持データＤ１の誤りを訂正する。訂正後の保持データＤ３は、一旦、ＲＡＭ（内部メモリ５２）に格納すればよい。リライト処理は、図４（ｂ）の下段に示すように、元の場所である対象ブロックＢｉに訂正後の保持データＤ３を書き込む処理である。例えば、コントローラ５０は、対象ブロックＢｉの全メモリセル３６を消去し、ＲＡＭに格納した訂正後の保持データＤ３を対象ブロックＢｉに書き込み、管理領域Ｒ１の対象ブロックＢｉの書き換え回数を１増やせばよい。
【００４５】
Ｓ１１２では、全ブロックＢ１〜Ｂｎについて保持データＤ１の状態チェックを行ったか否かを判断する。状態チェックを行っていないブロックが残っていれば、コントローラ５０は、処理をＳ１０４に戻す。全ブロックについて状態チェックを行った場合、コントローラ５０は、データ管理処理を終了させる。
以上の処理により、コントローラ５０は、不揮発性半導体メモリ装置２０への通電が開始されたとき、ライトプロテクトスイッチ４２がオン（Ｌ１）であればメモリセル３６へのアクセスが無くてもメモリセル３６の保持データＤ１の状態チェックを開始し、フラッシュメモリ３０への書き込みが必要である状態の正しい保持データＤ２をフラッシュメモリ３０へ書き込む。従って、本技術は、保持データをより確実に維持することができる。
【００４６】
不揮発性半導体メモリ装置が低価格化及び大容量化していることから、データを蓄積した不揮発性半導体メモリ装置を長期間保管し、時々、不揮発性半導体メモリ装置から記憶データを読み出すことが行われている。従来であれば、読み出されないデータについては読み出し時のＥＣＣチェックが行われない。
不揮発性半導体メモリ装置が長期間のデータ保存用とされる場合、ライトプロテクトスイッチ４２がオン（Ｌ１）にされる可能性が比較的大きい。この場合、メモリセル３６へのアクセスが無くてもメモリセル３６の保持データＤ１の状態がチェックされ、フラッシュメモリ３０への書き込みが必要である状態の保持データＤ２がフラッシュメモリ３０へ書き込まれる。従って、長期間アクセスされないメモリセル３６の保持データＤ１が維持される。一方、不揮発性半導体メモリ装置２０が頻繁にデータを読み書きするために用いられる場合、ライトプロテクトスイッチ４２がオフ（Ｌ２）にされる可能性が比較的大きい。この場合、保持データＤ１の状態チェックが行われない。このように、本技術は、長期間アクセスされずに保管されている可能性の高いライトプロテクトスイッチオン時に限定してアクセスが無くてもメモリセル３６の保持データＤ１の状態がチェックされるので、長期間アクセスされないメモリセルのデータの保持期間をより効果的に延長することが可能となる。
【００４７】
また、本技術は、メモリセルのアクセス対象でない保持データの状態チェックを行う設定であるか否かをライトプロテクトスイッチで切り替えることができるので、状態チェックを行う設定であるか否かを切り替える専用の物理的スイッチが不要である。
【００４８】
なお、上述したデータ管理処理を行っている最中にホスト装置からアクセスの要求がある可能性がある。そこで、データ管理処理の途中でアクセス要求に応じた処理を行うことができると、好都合である。
図５は、コントローラ５０が行うリードコマンド処理をフローチャートにより模式的に例示している。
【００４９】
コントローラ５０は、ホスト装置１０からリードコマンドを受信すると、リードコマンド処理を開始させる。まず、Ｓ２０２では、データ管理処理の途中であるか否かを判断する。データ管理処理の途中である場合、コントローラ５０は、データ管理処理を途中で停止させる（Ｓ２０４）。例えば、図３のＳ１０４の対象ブロック設定処理の直前は保持データＤ１の書き込み処理の切れ間となるため、リードコマンドを受信したときにはＳ１０４の直前でデータ管理処理を停止させることができる。また、コントローラ５０は、データ管理処理が途中停止するまで一旦ＢＵＳＹやＮＹＥＴなどデータ管理処理中であることを表す偽装的な返信をホスト装置１０へ行ってもよい。
【００５０】
データ管理処理が途中停止すると、コントローラ５０は、リードコマンドに従ってフラッシュメモリ３０からデータを読み出してホスト装置１０へ送出するデータ読み出し処理を行う（Ｓ２０６）。その後、コントローラ５０は、データ管理処理を再開し（Ｓ２０８）、リードコマンド処理を終了させる。
一方、Ｓ２０２でデータ管理処理の途中でないと判断した場合、コントローラ５０は、Ｓ２０６と同様のデータ読み出し処理を行い（Ｓ２１０）、リードコマンド処理を終了させる。
【００５１】
以上説明したリードコマンド処理によると、データ管理処理の途中でもメモリ部からデータを読み出すことができるので、データ読み出しの待ち時間を少なくすることができる。
【００５２】
一方、図６（ａ）は、コントローラ５０が行うライトコマンド処理を模式的なフローチャートにより例示している。メモリセルの保持データの状態チェックを行う設定であるか否かを切り替える物理的スイッチ４０がライトプロテクトスイッチ４２である場合、データ管理処理が行われるのはライトプロテクトスイッチ４２がオンであるときだけであり、ライトプロテクトスイッチ４２がオフであるときにはデータ管理処理が行われない。そこで、コントローラ５０は、ホスト装置１０からライトコマンドを受信してライトコマンド処理を開始すると、ライトプロテクトスイッチ４２のつまみ４１の位置に応じて処理を分岐させる（Ｓ３０２）。ライトプロテクトスイッチ４２がオン（Ｌ１）であると判断した場合、コントローラ５０は、書き込み禁止を表す返信をホスト装置１０へ行い（Ｓ３０４）、ライトコマンド処理を終了させる。ライトプロテクトスイッチ４２がオフ（Ｌ２）であると判断した場合、コントローラ５０は、ライトコマンドに従ってホスト装置１０からデータを受け取ってフラッシュメモリ３０へ書き込むデータ書き込み処理を行い（Ｓ３０６）、ライトコマンド処理を終了させる。
【００５３】
なお、フラッシュメモリ３０の記憶データを削除するコマンドを受信したときも、ライトコマンド処理と同様の判断処理を行えばよい。例えば、コントローラ５０は、ホスト装置１０から削除コマンドを受信して削除コマンド処理を開始すると、ライトプロテクトスイッチ４２のつまみ４１の位置に応じて処理を分岐させるとよい。ライトプロテクトスイッチ４２がオン（Ｌ１）であると判断した場合、コントローラ５０は、削除禁止を表す返信をホスト装置１０へ行えばよい。ライトプロテクトスイッチ４２がオフ（Ｌ２）であると判断した場合、コントローラ５０は、削除コマンドに従ってフラッシュメモリ３０からデータを削除する処理を行えばよい。
【００５４】
なお、本発明は、種々の変形例が考えられる。
例えば、上記メモリ部は、ＮＡＮＤ型フラッシュメモリ以外にも、ＮＯＲ型フラッシュメモリ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、等でもよい。
【００５５】
図７に例示するコンピュータシステム１のように、ライトプロテクトスイッチ４２とは別に専用の物理的スイッチ４０を設けてもよい。むろん、不揮発性半導体メモリ装置に対してライトプロテクトスイッチを設けずに物理的スイッチ４０を設けてもよい。物理的スイッチ４０がライトプロテクトスイッチでない場合、図３のＳ１０２の判断処理は、例えば、物理的スイッチ４０のつまみ４１がオン位置Ｌ１であるかオフ位置Ｌ２であるかを判断して処理を分岐させる判断処理とすることができる。
また、ライトコマンド処理については、図６（ｂ）に例示するように、データ管理処理の途中でデータ書き込み要求に応じた処理を行えばよい。すなわち、コントローラ５０は、ホスト装置１０からライトコマンドを受信してライトコマンド処理を開始すると、データ管理処理の途中であるか否かを判断し（Ｓ３２２）、データ管理処理の途中であればデータ管理処理を途中で停止させ（Ｓ３２４）、ライトプロテクトスイッチオフであればデータ書き込み処理を行い、ライトプロテクトスイッチオンであれば書き込み禁止を返信する（Ｓ３２６）。その後、コントローラ５０は、データ管理処理を再開し（Ｓ３２８）、ライトコマンド処理を終了させる。一方、データ管理処理の途中でなければ、コントローラ５０は、ライトプロテクトスイッチオフであればデータ書き込み処理を行い、ライトプロテクトスイッチオンであれば書き込み禁止を返信し（Ｓ３３０）、ライトコマンド処理を終了させる。
【００５６】
（２）リライト処理できないブロックに代替ブロック処理を適用する例：
図８は、リライト処理できないブロック３２に代替ブロック処理を適用するデータ管理処理を模式的なフローチャートにより例示している。この処理は、例えば、不揮発性半導体メモリ装置２０への通電が開始された電源投入時に開始し、他の処理と並列して行われる。
【００５７】
ライトプロテクトスイッチ４２など物理的スイッチ４０がオン（Ｌ１）である場合（Ｓ１０２）、コントローラ５０は、ＥＣＣチェックを行う対象ブロックＢｉを設定し（Ｓ１０４）、対象ブロックＢｉについてＥＣＣエラーを検出すると（Ｓ１０６）、図４（ｂ）で示したようなリライト処理を行う（Ｓ１２２）。対象ブロックＢｉの訂正後の保持データＤ３をＲＡＭ（内部メモリ５２）に格納したうえで同じ対象ブロックＢｉに書き込んだ後、コントローラ５０は、この対象ブロックＢｉのデータを読み出し（Ｓ１２４）、書き込んだ保持データＤ３から変化したか否かを判断する（Ｓ１２６）。この判断処理は、対象ブロックＢｉにＥＣＣエラーが検出されたか否かを判断する処理でもよい。データが変化した場合、対象ブロックＢｉのメモリセルのいずれかが正しいビットデータを保持することができないことを意味する。そこで、コントローラ５０は、対象ブロックＢｉについて図４（ａ）で示したような代替ブロック処理を行い（Ｓ１０８）、管理領域Ｒ１を更新する（Ｓ１１０）。データが変化していなければ、コントローラ５０は、処理をＳ１１０に進める。
本データ管理処理は、代替ブロック処理の不要なブロックをリライト処理で済ませることができるので、メモリ部のデータ容量の残量が少ないときにデータの保持期間をより効果的に延長することが可能となる。
【００５８】
（３）設定期間又は設定書き換え回数の超過時にＥＣＣチェックを行う例：
図９は、データを書き込んでからの期間が設定期間を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的なフローチャートにより例示している。この処理における状態チェックは、メモリセルにデータを書き込んでからの期間が設定を超えたか否かのチェックと、メモリセルの保持データに誤りがあるか否かのＥＣＣチェックと、の組合せである。このデータ管理処理を行うため、図７に示すコントローラ５０は、メモリセル３６にデータを書き込んでからの期間と比較するための設定データＤ４がＲＯＭ（内部メモリ５２）に書き込まれているものとする。図９のデータ管理処理は、例えば、不揮発性半導体メモリ装置２０への通電が開始された電源投入時に開始し、他の処理と並列して行われる。
【００５９】
ライトプロテクトスイッチ４２など物理的スイッチ４０がオン（Ｌ１）である場合（Ｓ１０２）、コントローラ５０は、ＥＣＣチェックを行う対象ブロックＢｉを設定し（Ｓ１０４）、対象ブロックＢｉについてデータを最後に書き込んだ日時（t1とする。）を取得する（Ｓ１４２）。ＮＴＦＳ（NT File System）といったファイルシステムの場合、フラッシュメモリ３０に保持されているファイルには最後に更新された日時を表す「更新日時」が添付されている。そこで、対象ブロックＢｉに保持されているデータに添付されている更新日時を取得し、更新日時が複数ある場合には最も古い更新日時を取得すればよい。
【００６０】
Ｓ１４４では、対象ブロックＢｉについてデータを最後に書き込んでからの期間（ΔT21とする。）が設定を超えたか否かを判断する。不揮発性半導体メモリ装置２０への通電が開始された日時をホスト装置１０から受信する場合、この通電の開始日時（t2とする）と最後に書き込んだ日時t1との差t2−t1が最後に書き込んでからの期間ΔT21となる。そこで、この期間ΔT21が設定データＤ４で表される設定期間ΔTth1を超えたか否か、例えば、ΔT21＞ΔTth1であるか否かを判断すればよい。期間ΔT21が設定期間ΔTth1を超過していない場合、ＥＣＣチェックを行う必要が無いとして、コントローラ５０は処理をＳ１１２へ進める。期間ΔT21が設定期間ΔTth1を超過している場合、コントローラ５０は、ホスト装置１０からのアクセスの有無に関係無く、対象ブロックＢｉに含まれる全メモリセル３６の保持データＤ１の状態チェックをＥＣＣ回路５５で行い、ＥＣＣエラーを検出したか否かを判断する（Ｓ１０６）。ＥＣＣエラーを検出すると、コントローラ５０は、図４（ａ）で示したような代替ブロック処理を行い（Ｓ１０８）、管理領域Ｒ１を更新する（Ｓ１１０）。ＥＣＣエラーを検出しなかった場合、コントローラ５０は、処理をＳ１１２へ進める。
【００６１】
図１０は、データに対して最後にアクセスしてからの期間が設定期間を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的なフローチャートにより例示している。Ｓ１５２，Ｓ１５４以外は、図９で示したデータ管理処理と同様である。
ＮＴＦＳといったファイルシステムの場合、フラッシュメモリ３０に保持されているファイルには最後にアクセスした日時を表す「アクセス日時」が添付されている。そこで、Ｓ１５２では、対象ブロックＢｉについてデータに対して最後にアクセスした「アクセス日時」（t3とする。）を取得する。Ｓ１５４では、対象ブロックＢｉについてデータに対して最後にアクセスしてからの期間（ΔT23とする。）が設定（ΔTth2）を超えたか否かを判断し、期間ΔT23が設定期間ΔTth2を超過した場合にＥＣＣチェックを行えばよい。
【００６２】
図１１は、設定書き換え回数を超えたブロック３２を選んで状態チェックを行うデータ管理処理を模式的なフローチャートにより例示している。Ｓ１６２，Ｓ１６４以外は、図９で示したデータ管理処理と同様である。
図２（ｃ）で示したように、管理領域Ｒ１にはブロック３２毎のデータの書き換え回数が記録されている。そこで、Ｓ１６２では、管理領域Ｒ１から対象ブロックＢｉの書き換え回数（n1とする。）を読み出す。Ｓ１６４では、対象ブロックＢｉについて書き換え回数n1が設定（ΔTth3）を超えたか否かを判断し、書き換え回数n1が設定回数ΔTth3を超過した場合にＥＣＣチェックを行えばよい。
【００６３】
メモリセル３６にデータを書き込んでからの期間やデータに対して最後にアクセスしてからの期間が短いとき、及び、メモリセル３６のデータの書き換え回数が少ないとき、保持データＤ１をフラッシュメモリ３０へ書き込む必要性は小さい。従って、図９〜１１に示すデータ管理処理は、保持データの維持処理を効率良く行うことができる。
【００６４】
なお、図９〜１１の処理は、任意の２以上を組み合わせることも可能である。例えば、データを書き込んでからの期間が設定期間を超えるか、又は、データに対して最後にアクセスしてからの期間が設定期間を超えたとき、ＥＣＣチェックを行ってもよい。データを書き込んでからの期間が設定期間を超えるか、又は、データの書き換え回数が設定回数を超えたとき、ＥＣＣチェックを行ってもよい。データに対して最後にアクセスしてからの期間が設定期間を超えるか、又は、データの書き換え回数が設定回数を超えたとき、ＥＣＣチェックを行ってもよい。データを書き込んでからの期間が設定期間を超えるか、データに対して最後にアクセスしてからの期間が設定期間を超えるか、又は、データの書き換え回数が設定回数を超えたとき、ＥＣＣチェックを行ってもよい。
【００６５】
（４）古いデータから順に状態チェックを行う例：
図１２は、書き込んでからの期間の長い保持データＤ１から順に状態チェックを行うデータ管理処理を模式的なフローチャートにより例示している。Ｓ１８２，Ｓ１８４以外は、図９で示したデータ管理処理と同様である。
【００６６】
ライトプロテクトスイッチ４２など物理的スイッチ４０がオン（Ｌ１）である場合（Ｓ１０２）、コントローラ５０は、ブロック毎にデータを最後に書き込んだ日時（TIMEiとする。）を取得する（Ｓ１８２）。Ｓ１８４では、最後に書き込んだ日時TIMEiに基づいて、古いデータを有するブロックからＥＣＣチェック対象のブロックＢｉを設定する。ブロック毎の日時TIME1，TIME2，…，TIMEi，…，TIMEnを最も古い日時から順に新しくなるように並べ替えると、この順に対象ブロックＢｉを設定すればよい。Ｓ１４４では、対象ブロックＢｉについてデータを最後に書き込んでからの期間ΔT21が設定（Δth1）を超えたか否かを判断する。期間ΔT21が設定期間ΔTth1を超過していない場合、状態チェックを行っていないブロックの日時TIMEiは対象ブロックＢｉの日時であるか又は該日時よりも新しいので、コントローラ５０は、データ管理処理を終了させる。期間ΔT21が設定期間ΔTth1を超過している場合、コントローラ５０は、ホスト装置１０からのアクセスの有無に関係無く、対象ブロックＢｉに含まれる全メモリセル３６の保持データＤ１の状態チェックをＥＣＣ回路５５で行い、ＥＣＣエラーを検出したか否かを判断する（Ｓ１０６）。
【００６７】
以上より、本データ管理処理は、保持データの維持処理を効率良く行うことができる。
なお、図１２で示したデータ管理処理についても、「更新日時」を「アクセス日時」に置き換え可能である。
【００６８】
（５）電源オン継続時のデータ管理処理の例：
図１３は、電源オン継続時に設定期間を超過したら状態チェックを行うデータ管理処理を模式的なフローチャートにより例示している。例えば、スマートフォンを含む携帯電話に不揮発性半導体メモリ装置を接続するとき、携帯電話から常時、電力が供給されることが想定される。従って、不揮発性半導体メモリ装置への通電が継続しても、ある間隔でデータ管理処理が行われると、好都合である。図１３に示すデータ管理処理を行うため、図７に示すコントローラ５０は、通電継続時に状態チェックの行われていない期間と比較するための設定データＤ５がＲＯＭ（内部メモリ５２）に書き込まれているものとする。図１３のデータ管理処理は、例えば、不揮発性半導体メモリ装置２０への通電が開始された電源投入時に開始し、他の処理と並列して行われる。
【００６９】
ライトプロテクトスイッチ４２など物理的スイッチ４０がオン（Ｌ１）である場合（Ｓ４０２）、コントローラ５０は、図３，８〜１２で示したようなデータ管理処理を行う（Ｓ４０４）。この処理は、電源投入時のデータ管理処理である。その後、コントローラ５０は、Ｓ４０４の処理が終了してからの期間（ΔT1）を計測する（Ｓ４０６）。この計測は、ＲＯＭ（内部メモリ５２）に書き込まれたプログラムによるソフトウェアタイマで行ってもよいし、ハードウェアとして設けられるタイマ回路で行ってもよい。計測期間ΔT1は、不揮発性半導体メモリ装置２０への通電が継続して状態チェックの行われていない期間である。Ｓ４０８では、計測期間ΔT1が設定データＤ５で表される設定期間（ΔTth4とする。）を超えたか否か、例えば、ΔT1＞ΔTth4であるか否かを判断する。計測期間ΔT1が設定期間ΔTth4を超過していない場合、コントローラ５０は処理をＳ４０６に戻す。計測期間ΔT1が設定期間ΔTth4を超過した場合、コントローラ５０は、図３，８〜１２で示したようなデータ管理処理を行い（Ｓ４１０）、処理をＳ４０６に戻す。このデータ管理処理は、設定期間超過時のデータ管理処理である。
【００７０】
以上より、図１３に示すデータ管理処理は、不揮発性半導体メモリ装置２０への通電が継続する場合に保持データＤ１をより確実に維持することができる。
【００７１】
（６）保持データの書き込み状態を知らせる表示を行うデータ管理処理の例：
図１４は、保持データＤ１の書き込み状態を知らせる表示を行うデータ管理処理を模式的なフローチャートにより例示している。この処理を行うため、図７に示す不揮発性半導体メモリ装置２０は、コントローラ５０のＧＰＩＯ５６に接続された発光ダイオード（ＬＥＤ）６０を備えているものとする。ＬＥＤ６０は、メモリ部（３０）への書き込みが必要である状態の保持データＤ２をメモリ部（３０）へ書き込んでいる状態を知らせる表示手段Ｕ３を構成する。むろん、表示手段Ｕ３は、ＬＥＤ以外の光源でもよいし、液晶等の表示手段でもよい。図１４のデータ管理処理は、例えば、不揮発性半導体メモリ装置２０への通電が開始された電源投入時に開始し、他の処理と並列して行われる。
【００７２】
ライトプロテクトスイッチ４２など物理的スイッチ４０がオン（Ｌ１）である場合（Ｓ１０２）、コントローラ５０は、ＥＣＣチェックを行う対象ブロックＢｉを設定し（Ｓ１０４）、ＥＣＣエラーを検出すると（Ｓ１０６）、ＬＥＤ６０を点灯させる表示処理を行う（Ｓ５０２）。その後、コントローラ５０は、図４（ａ）で示したような代替ブロック処理を行い（Ｓ１０８）、管理領域Ｒ１を更新し（Ｓ１１０）、ＬＥＤ６０を消灯させる（Ｓ５０４）。ＥＣＣエラーを検出しなかった場合、コントローラ５０は、処理をＳ１１２へ進める。代替ブロック処理及び管理領域更新処理を行っているときは特に不揮発性半導体メモリ装置への通電が遮断されないほうがよいため、本データ管理処理は、メモリ部への書き込みが必要である状態の保持データをメモリ部へ書き込んでいる状態の表示が効率良く行われる。
【００７３】
図１４に示すデータ管理処理は、保持データＤ１が書き込まれていることをユーザが知ることができるので、不用意な電源遮断を抑制することができる。
【００７４】
（７）結び：
なお、上述した処理の各ステップの順番は、適宜、変更可能である。例えば、図１４のデータ管理処理において、Ｓ１０２，Ｓ１０４の間でＳ５０２のＬＥＤ表示処理を行い、Ｓ１１２の後でＳ５０４のＬＥＤ消灯処理を行ってもよい。すると、データ管理処理が行われている間、常時、表示が行われる。従って、メモリ部への書き込みが必要である状態の保持データをメモリ部へ書き込んでいる状態の表示が目立つ。
図９〜１４のデータ管理処理も、代替ブロック処理の代わりにリライト処理を行ってもよいし、リライト処理と代替ブロック処理とを組み合わせて行ってもよい。
【００７５】
上述したデータ管理処理の実行開始は、電源投入時でなくてもよい。
上述した状態チェックは、ＥＣＣ回路５５を使用せずに行われてもよい。
むろん、従属請求項に係る構成要件を有しておらず独立請求項に係る構成要件のみからなる不揮発性半導体メモリ装置、不揮発性半導体メモリ装置の制御方法、等でも、上述した基本的な作用、効果が得られる。
【００７６】
以上説明したように、本発明によると、種々の態様により、長期間アクセスされないメモリセルのデータの保持期間をより効果的に延長することが可能な技術等を提供することができる。
また、上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態及び変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も実施可能である。本発明は、これらの構成等も含まれる。
【符号の説明】
【００７７】
１…コンピュータシステム、
１０…ホスト装置、１８…スロット（ホスト側接続部）、１９…電源、
２０…不揮発性半導体メモリ装置、２８…挿入端（メモリ側接続部）、２９…電源端子、
３０…フラッシュメモリ（メモリ部）、
３２…ブロック、３４…ページ、３６…メモリセル、
４０…物理的スイッチ、４１…つまみ、４２…ライトプロテクトスイッチ、
５０…コントローラ、５５…ＥＣＣ回路（誤り検出手段）、
６０…発光ダイオード（光源、表示手段）、
Ｄ１…保持データ、Ｄ２…書き込みが必要である状態の保持データ、
Ｄ３…訂正された保持データ、Ｄ４，Ｄ５…設定データ、
Ｌ１…オン位置（状態チェックを行う設定）、
Ｌ２…オフ位置（状態チェックを行わない設定）、
Ｒ１…管理領域、Ｒ２…開放領域、Ｒ３…データ領域、Ｒ４…スペア領域、
Ｕ１…データ管理手段、Ｕ２…誤り検出手段、Ｕ３…表示手段。
【図１】
0005929398.tif 000002
【図２】
0005929398.tif 000003
【図３】
0005929398.tif 000004
【図４】
0005929398.tif 000005
【図５】
0005929398.tif 000006
【図６】
0005929398.tif 000007
【図７】
0005929398.tif 000008
【図８】
0005929398.tif 000009
【図９】
0005929398.tif 000010
【図１０】
0005929398.tif 000011
【図１１】
0005929398.tif 000012
【図１２】
0005929398.tif 000013
【図１３】
0005929398.tif 000014
【図１４】
0005929398.tif 000015