(57)【要約】【課題】フラッシュメモリに対する書込み／消去回数が多くなる原因を究明することを可能とするデータ保存システムを提供すること。【解決手段】データ保存システム１は、ＣＰＵ１０と、書込み回数に制限のあるフラッシュメモリ２０と、不揮発性メモリ３０とを備え、ＣＰＵ１０が複数のタスクを実行しており、それぞれのタスクがフラッシュメモリ２０に対してデータを書き込む際にＣＰＵ１０は該タスクに係る情報と関連付けて書込み状況情報を作成して不揮発性メモリに保存・管理する。データ保存システム１は、不揮発性メモリに保存された書込み状況情報に基づいて、フラッシュメモリ２０への書き込みを制御し、必要に応じて警告通知をすることにより、フラッシュメモリに対するタスク毎の書込み状況を解析可能とする。【選択図】図１
2016091050.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、書き込み回数に制限のある記録媒体と、不揮発性メモリとを備え、前記プロセッサが複数のタスクを実行するデータ保存システムにおいて、
前記複数のタスクは、前記記録媒体に書き込むデータに関連するデータ関連情報を有し、
前記プロセッサは前記タスクの要求に基づいて前記記録媒体にデータを書き込む際に、前記データ関連情報に基づいて書込み状況情報を作成し、前記データ関連情報と前記書込み状況情報を関連付けて前記不揮発性メモリに保存し、前記不揮発性メモリに保存された前記データ関連情報及び前記書込み状況情報に基づいて、前記記録媒体への書き込みを制御する、
ことを特徴とするデータ保存システム。
【請求項２】
前記タスクはそれぞれ固有のタスクＩＤを有し、前記データ関連情報は前記タスクＩＤを含む、
ことを特徴とする請求項１に記載のデータ保存システム。
【請求項３】
前記データ関連情報は前記記録媒体のアドレス情報を含む、
ことを特徴とする請求項１に記載のデータ保存システム。
【請求項４】
前記書込み状況情報は前記記録媒体への書込み回数を含む、
ことを特徴とする請求項１に記載のデータ保存システム。
【請求項５】
前記書込み状況情報は前記記録媒体への書込みデータ量を含む、
ことを特徴とする請求項１に記載のデータ保存システム。
【請求項６】
前記書き込みを低減させる制御として、前記不揮発性メモリに保存された前記書込み状況情報が、前記データ関連情報毎に予め設定した閾値を超えた場合に、
前記記録媒体に書き込むデータの保存先を前記不揮発性メモリに切り替える、
ことを特徴とする請求項１乃至請求項５のいずれかに記載のデータ保存システム。
【請求項７】
前記データ保存システムは表示装置をさらに備え、
前記不揮発性メモリに保存された前記書込み状況情報が前記データ関連情報毎に予め設定した閾値を超えた場合に、前記データ関連情報を前記表示装置に表示する、
ことを特徴とする請求項１乃至請求項６のいずれかに記載のデータ保存システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保存システムに関し、特にフラッシュメモリに対する書込み／消去回数が多くなる原因を究明することを可能とするデータ保存システムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリはブロック単位での消去が可能な不揮発性メモリである。これを利用した記憶装置はＵＳＢメモリやＳＤカード、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等で広く利用されている。しかしフラッシュメモリは各ブロックの消去回数に制限があり、消去回数が多くなるにつれて、保存したデータの信頼性が落ち、最終的にはメモリとして機能しなくなる。
【０００３】
保存したデータが破損した場合はシステムに深刻な障害を及ぼす可能性がある為、記憶装置を設計する際にはシステムの動作とシステムの想定寿命から、十分な消去回数を担保した設計を行うことが一般的である。しかし、実際のシステムの動作では予想を超えた書き込みが発生する場合も多い為、書込み回数や消去回数を管理し、一定以上の回数に達した場合はそれを通知し交換を促すといった記憶装置が提案されている（例えば、特許文献１，２など）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４０１４８０１号公報
【特許文献２】特開２００９−０５３７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、書込み回数や消去回数を管理するだけでは記憶装置が寿命に達したことを判別して交換を実施することで、未然に障害を防ぐことは可能だが、何故書込み回数が増えたのかを判別することは出来ない。
【０００６】
そこで本発明の目的は、フラッシュメモリに対する書込み／消去回数が多くなる原因を究明することを可能とするデータ保存システムを提供することである。
【課題を解決するための手段】
【０００７】
本願の請求項１に係る発明は、プロセッサと、書き込み回数に制限のある記録媒体と、不揮発性メモリとを備え、前記プロセッサが複数のタスクを実行するデータ保存システムにおいて、前記複数のタスクは、前記記録媒体に書き込むデータに関連するデータ関連情報を有し、前記プロセッサは前記タスクの要求に基づいて前記記録媒体にデータを書き込む際に、前記データ関連情報に基づいて書込み状況情報を作成し、前記データ関連情報と前記書込み状況情報を関連付けて前記不揮発性メモリに保存し、前記不揮発性メモリに保存された前記データ関連情報及び前記書込み状況情報に基づいて、前記記録媒体への書き込みを制御する、ことを特徴とするデータ保存システムである。
【０００８】
本願の請求項２に係る発明は、前記タスクはそれぞれ固有のタスクＩＤを有し、前記データ関連情報は前記タスクＩＤを含む、ことを特徴とする請求項１に記載のデータ保存システムである。
【０００９】
本願の請求項３に係る発明は、前記データ関連情報は前記記録媒体のアドレス情報を含む、ことを特徴とする請求項１に記載のデータ保存システムである。
本願の請求項４に係る発明は、前記書込み状況情報は前記記録媒体への書込み回数を含む、ことを特徴とする請求項１に記載のデータ保存システムである。
本願の請求項５に係る発明は、前記書込み状況情報は前記記録媒体への書込みデータ量を含む、ことを特徴とする請求項１に記載のデータ保存システムである。
【００１０】
本願の請求項６に係る発明は、前記書き込みを低減させる制御として、前記不揮発性メモリに保存された前記書込み状況情報が、前記データ関連情報毎に予め設定した閾値を超えた場合に、前記記録媒体に書き込むデータの保存先を前記不揮発性メモリに切り替える、ことを特徴とする請求項１乃至請求項５のいずれかに記載のデータ保存システムである。
【００１１】
本願の請求項７に係る発明は、前記データ保存システムは表示装置をさらに備え、前記不揮発性メモリに保存された前記書込み状況情報が前記データ関連情報毎に予め設定した閾値を超えた場合に、前記データ関連情報を前記表示装置に表示する、ことを特徴とする請求項１乃至請求項６のいずれかに記載のデータ保存システムである。
【発明の効果】
【００１２】
本発明により、分類毎に消去回数を保存することで、消去回数が多いタスクを特定することが可能となり、そのタスクの動作や、起動周期等を調整することで消去回数を低減することが可能となる。これにより記憶装置の寿命を延ばし、交換の頻度を低減することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態における電子装置の機能ブロック図である。
【図２】本発明の第１の実施の形態における電子装置上で実行される処理のフローチャートである。
【図３】本発明の第２の実施の形態における電子装置の機能ブロック図である。
【図４】本発明の第２の実施の形態における電子装置上で実行される処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面と共に説明する。
図１は本発明の第１の実施の形態におけるデータ保存システムの概略構成を示す要部ブロック図である。本実施の形態におけるデータ保存システムは、ＣＰＵ１０とフラッシュメモリ２０、およびバッテリバックアップされたＳＲＡＭなどにより構成される不揮発性メモリ３０とがバス４０で接続されて成る電子装置として構成される。
【００１５】
ＣＰＵ１０上では、複数のタスクが時分割で実行され、それぞれのタスクはフラッシュメモリ２０に対して、ファイルの書き込みを行う。それぞれのタスクにはＣＰＵ１０上で動作するＯＳによりタスクＩＤが割り当てられており、ファイルの書き込みを制御するドライバ５０から識別可能となっている。また、それぞれのタスクにはフラッシュメモリ２０に対する書込み回数、書込み量等に対して閾値が設けられており、ＯＳのタスク管理用の記憶領域にタスクＩＤと関連付けられてあらかじめ設定され、ドライバ５０から参照可能に管理されている。
【００１６】
不揮発性メモリ３０上には、タスクごとにタスクＩＤとフラッシュメモリに対する書込み状況を示す情報を関連付けて記録する書込み状況管理テーブル６０が設けられている。図１においては、書込み状況管理テーブル６０に記録される書込み状況を示す情報として書込み量（バイト数）の情報を記録する例を示している。該書込み状況管理テーブル６０は、ドライバ５０が各タスクからのフラッシュメモリ２０に対する書込み要求に基づいてフラッシュメモリ２０に対するファイルの書込み処理を行う毎に更新される。
【００１７】
ドライバ５０は、フラッシュメモリ２０へのファイルの書き込み、フラッシュメモリ２０からのファイルの読み出しを制御するドライバであり、フラッシュメモリ２０上のデータを管理する機能を有する。
【００１８】
このような構成を備えたデータ保存システムにおける、ＣＰＵ１０上で動作しているタスクＡ（タスクＩＤ＝０ｘ０００１）がファイルＦ１，Ｆ２，Ｆ３，・・・の書込みを行う場合であって、タスクＩＤ＝０ｘ０００１のタスクについて書込み量の閾値がＴ１に設定されているケースの書込み制御動作を以下に説明する。
【００１９】
タスクＡはファイルＦ１の書き込みを行う際にドライバ５０に対して書込み要求を行う。書き込み要求にはファイルＦ１のデータ、ファイルＦ１のデータサイズｎ１、そして自らのタスクＩＤ＝０ｘ０００１を含むデータ関連情報が含まれている。書込み要求を受けたドライバ５０は、タスクから渡されたデータサイズｎ１に応じて、必要であればブロック毎の消去を行った上でデータをフラッシュメモリ２０に書き込み、ファイルＦ１を作成する。
【００２０】
これに加えて、ドライバ５０は不揮発性メモリ３０上で管理されている書込み状況管理テーブル６０を参照し、ＩＤ＝０ｘ０００１に対応するそれまでの書込み量Ｎ０にｎ１を加え、Ｎ１＝Ｎ０＋ｎ１として保存する。
【００２１】
その後、ドライバ５０はタスクＡに設定されている書込み量の閾値Ｔ１とＮ１とを比較し、Ｔ１＜Ｎ１の状態となったら、それ以降のファイルの書込み動作を変更する。すなわち、次回以降のタスクＡ（タスクＩＤ＝０ｘ０００１）からファイル書込み要求を受けた際に、タスクＡからの書き込みは閾値を越えている為、フラッシュメモリ２０への書込みを行わず、不揮発性メモリ３０へ書込みを行う。例えば、Ｔ１＜Ｎ１の状態においてタスクＡがファイルＦ２の書き込み要求をドライバ５０に対して行うと、ドライバ５０は不揮発性メモリ３０上にファイルＦ２を作成する。
【００２２】
このように、本実施の形態では、書込み頻度が高いタスクＡによるフラッシュメモリ２０に対する書き込みを制限するため、フラッシュメモリ２０の寿命を延ばすことが可能となる。
図２は、本実施の形態におけるデータ保存システム上で実行される処理のフローチャートである。
【００２３】
●［ステップＳＡ０１］タスクから、フラッシュメモリ２０に対するファイルの書込み要求を受け付ける。
●［ステップＳＡ０２］書込み要求に含まれるタスクＩＤに基づいて不揮発性メモリ３０上で管理されている書込み状況管理テーブル６０を参照し、書込み要求したタスクのタスクＩＤに関連付けられている書込み状況を示す情報を取得し、該タスクＩＤに対応する閾値と比較する。書込み状況を示す情報が閾値よりも小さい場合にはステップＳＡ３へ進み、閾値を超えている場合にはステップＳＡ０５へ進む。
●［ステップＳＡ０３］タスクからの書き込み要求に従って、フラッシュメモリ２０上にデータを書き込み、ファイルを作成する。
●［ステップＳＡ０４］タスクからの書き込み要求に従って、該タスクのタスクＩＤに関連付けられた書込み状況管理テーブル６０上の情報を更新する。
●［ステップＳＡ０５］タスクからの書き込み要求に従って、不揮発性メモリ３０上にデータを書き込み、ファイルを作成する。
【００２４】
図３は本発明の第２の実施の形態におけるデータ保存システムの概略構成を示す要部ブロック図である。本実施の形態におけるデータ保存システムは、ＣＰＵ１０とフラッシュメモリ２０がバス４０で接続されており、フラッシュメモリ２０上に書込み状況管理テーブル６０が設けられている。
ＣＰＵ１０上では、複数のタスクが時分割で実行され、それぞれのタスクはフラッシュメモリ２０に対して、ファイルの書込みを行う。
【００２５】
また、フラッシュメモリ２０内の領域は論理アドレスで管理されており、それぞれのタスクは異なる論理アドレスの領域にファイルを書き込むように構成されている。フラッシュメモリ上の論理アドレスＡｄｄｒｅｓｓｘに設けられた書込み状況管理テーブル６０には、各タスクが書き込みを行う論理アドレスと関連付けて、該論理アドレスが示す領域に対する書き込み状況を示す情報が記録されている。図３においては、書込み状況管理テーブル６０に記録される書込み状況を示す情報として書込み回数の情報を記録する例を示している。
【００２６】
このような構成を備えたデータ保存システムにおける、ＣＰＵ１０上で動作しているタスクＡ（タスクＩＤ＝０ｘ０００１）がファイルＦ１，Ｆ２，Ｆ３，・・・の書込みを行う場合であって、タスクＩＤ＝０ｘ０００１のタスクについて書込み回数の閾値がＴ０に設定されているケースの書込み制御動作を以下に説明する。
【００２７】
タスクＡはファイルＦ１の書き込みを行う際にドライバ５０に対して書込み要求を行う。書き込み要求にはファイルＦ１のデータ、ファイルＦ１のデータサイズｎ１、書込み先の論理アドレスＡｄｄｒｅｓｓ０、そして自らのタスクＩＤ＝０ｘ０００１を含むデータ関連情報が含まれている。書込み要求を受けたドライバ５０は、必要であればブロック毎の消去を行った上でデータをフラッシュメモリ２０の論理アドレスＡｄｄｒｅｓｓ０の領域にファイルＦ１を書き込む。
【００２８】
フラッシュメモリ２０上で管理されている書込み状況管理テーブル６０には、論理アドレスＡｄｄｒｅｓｓ０と関連付けて、論理アドレスＡｄｄｒｅｓｓ０が示す領域に何回書き込みが発生したかを示す書込み回数ＣＮＴ０が記録されている。ドライバ５０は、書込み状況管理テーブル６０を参照して、論理アドレスＡｄｄｒｅｓｓ０への書き込み回数をＣＮＴ０に１を加えた数ＣＮＴ１で更新する。
【００２９】
その後、ドライバ５０はタスクＡに設定されている書込み回数の閾値Ｔ０とＣＮＴ１とを比較し、Ｔ０＜ＣＮＴ１の状態となったら、論理アドレスＡｄｄｒｅｓｓ０への書込みが閾値に達したことをＯＳなどのシステムプログラムに対して通知する。該通知を受けたシステムプログラムは画面への警告表示をしたり、管理用のログファイルに記録を取ることができる。そして、オペレータは当該通知を受けてフラッシュメモリ２０の論理アドレスＡｄｄｒｅｓｓ０に対する書き込むタスクを調査し、不要な書込みがあればそれを改善することができる。
図４は、本実施の形態におけるデータ保存システム上で実行される処理のフローチャートである。
【００３０】
●［ステップＳＢ０１］タスクから、フラッシュメモリ２０に対するファイルの書込み要求を受け付ける。
●［ステップＳＢ０２］書込み要求に含まれる論理アドレスに基づいてフラッシュメモリ２０上で管理されている書込み状況管理テーブル６０を参照し、書込み要求したタスクのタスクＩＤに関連付けられている書込み状況を示す情報を取得し、該タスクＩＤに対応する閾値と比較する。書込み状況を示す情報が閾値よりも小さい場合にはステップＳＢ３へ進み、閾値を超えている場合にはステップＳＢ０５へ進む。
●［ステップＳＢ０３］タスクからの書き込み要求に従って、フラッシュメモリ２０上にデータを書き込み、ファイルを作成する。
●［ステップＳＢ０４］タスクからの書き込み要求に従って、書込み先の論理アドレスに関連付けられた書込み状況管理テーブル６０上の情報を更新する。
●［ステップＳＢ０５］書込み先の論理アドレスに対する書込み回数がタスクからの書込み回数の閾値を超えている警告を通知する。
【００３１】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。例えば、書込み状況を示す情報として書込み状況管理テーブル６０で管理する情報として、上記実施の形態では書込み量、書込み回数を用いる例を示したが、単位時間あたりの書込み量や書込み回数を示す書込み頻度を用いるようにしてもよい。また、書込み状況を示す情報として複数の情報を管理し、これを併用してフラッシュメモリ２０への書き込み状況を分析し、フラッシュメモリ２０への書込み制御や通知を行うようにしてもよい。
【００３２】
更に、上記実施の形態では不揮発性メモリ３０上に書込み状況管理テーブル６０を設けた例と、フラッシュメモリ２０上に書き込み状況管理テーブル６０を設けた例を示したが、両方に異なる書込み状況を示す情報を管理するテーブルを設けて併用するようにすることもできる。
【符号の説明】
【００３３】
１  データ保存システム
１０    ＣＰＵ
２０    フラッシュメモリ
３０    不揮発性メモリ
４０    バス
５０    ドライバ
６０    書込み状況管理テーブル
【図１】
2016091050.tif 000003
【図３】
2016091050.tif 000004
【図２】
2016091050.tif 000005
【図４】
2016091050.tif 000006