(57)【要約】      （修正有）【課題】不揮発性メモリの寿命の最適化が可能な不揮発性メモリ保護機能を備えた情報処理装置を提供する。【解決手段】第１のメモリ領域に書き込むファイルの容量は、第１のメモリ領域の空き容量より大きいか否か、一定時間が経過したか否か、の条件を満たす場合には、第２のメモリ領域のデータを基に、第１のメモリ領域に記憶されている書き換え回数、かつ、容量の最も小さいファイルを選択し、第１のメモリからＳＳＤへ選択されたファイルを移動し、第１のメモリ領域から削除し、第２のメモリ領域のデータから選択されたファイルに関連する書き換え回数および容量のデータを削除する（ＳＡ６〜ＳＡ９）。【選択図】図３
2011086181.tif 000002
【特許請求の範囲】
【請求項１】
書き込むファイルを一時的に退避する第１のメモリ領域と該ファイルの該第１のメモリ領域への書き換え回数と容量を記録しておく第２のメモリ領域とを有する揮発性メモリと、
ファイルの書き換え回数に制限のあるＳＳＤと、
書き込むファイルの容量は、第１のメモリ領域の空き容量より大きい、または、基準となる時から一定時間経過した、または、決められた時刻になったことを条件とし、少なくともいずれか１つの前記条件を満たす場合、前記第１のメモリ領域に退避した１つ以上のファイルを前記ＳＳＤに移動させるファイル移動手段と、
前記ファイル移動手段により移動させるファイルは、前記第２のメモリ領域に記録された前記ファイルの書き換え回数が最も少なく、かつ、容量が最も小さい第１のメモリ領域に退避したファイルを前記ファイル移動手段により移動させるファイルとして選択する選択手段と、
を備えたことを特徴とする不揮発性メモリ保護機能を備えた情報処理装置。
【請求項２】
前記選択手段は、前記第２のメモリ領域に記録された前記書き換え回数と容量を基に、前記第１のメモリ領域内のファイルの中で書き換え回数と容量の積が最も小さいファイルを選択することを特徴とする請求項１に記載の不揮発性メモリ保護機能を備えた情報処理装置。
【請求項３】
前記書き換え回数に替えて書き換え頻度を用いることを特徴とする請求項１または２のいずれか１つに記載の不揮発性メモリ保護機能を備えた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に、不揮発性メモリ保護機能を備えた情報処理装置に関する。
【背景技術】
【０００２】
Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（以下、「ＳＳＤ」という。）は、フラッシュメモリを用いた大容量記憶装置であり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）に代わる新たな記憶装置として注目されている。
【０００３】
しかし、ＳＳＤは書き換え回数について寿命がある。このため、ＳＳＤへのファイルの書き込み時に、直接ＳＳＤへ書き込むのではなく、別に確保しておいたファイルを一時的に退避できるメモリの領域に書き込み、この領域での作業が終了した後に動作モードを変更してＳＳＤへファイルを移動する装置（特許文献１）や、同様に、直接ＳＳＤへ書き込むのではなく、別に確保しておいたファイルを一時的に退避できるメモリ領域に書き込み、このメモリ領域への書き込み回数を管理して、書き込み回数が少ないファイルをＳＳＤへ移動する装置（特許文献２）は公知である。また、揮発性メモリ上でファイルの編集を行い、ファイルの編集が完了した時点で、書き換え可能な不揮発性メモリに書き込む装置（特許文献３）も公知である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１０８７２号公報
【特許文献２】特開２００７−１１５２３２号公報
【特許文献３】特開２００４−３４８３４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来公知の技術では、ファイル毎の書き換え回数や書き換え頻度やファイルの容量（サイズ）に着目して不揮発性メモリであるＳＳＤへの移動を決定していなかった。このため、効率的な不揮発性メモリの保護（すなわち、不揮発性メモリの寿命の最適化）とはなっていなかった。
【０００６】
そこで、本発明の目的は、ファイル毎の書き換え回数や書き換え頻度やファイルの容量に着目することにより、効率的な不揮発性メモリの保護（すなわち、不揮発性メモリの寿命の最適化）が可能な不揮発性メモリ保護機能を備えた情報処理装置を提供することである。
【課題を解決するための手段】
【０００７】
本願の請求項１に係る発明は、書き込むファイルを一時的に退避する第１のメモリ領域と該ファイルの該第１のメモリ領域への書き換え回数と容量を記録しておく第２のメモリ領域とを有する揮発性メモリと、ファイルの書き換え回数に制限のあるＳＳＤと、書き込むファイルの容量は、第１のメモリ領域の空き容量より大きい、または、基準となる時から一定時間経過した、または、決められた時刻になったことを条件とし、少なくともいずれか１つの前記条件を満たす場合、前記第１のメモリ領域に退避した１つ以上のファイルを前記ＳＳＤに移動させるファイル移動手段と、前記ファイル移動手段により移動させるファイルは、前記第２のメモリ領域に記録された前記ファイルの書き換え回数が最も少なく、かつ、容量が最も小さい第１のメモリ領域に退避したファイルを前記ファイル移動手段により移動させるファイルとして選択する選択手段と、を備えたことを特徴とする不揮発性メモリ保護機能を備えた情報処理装置である。
【０００８】
請求項２に係る発明は、前記選択手段は、前記第２のメモリ領域に記録された前記書き換え回数と容量を基に、前記第１のメモリ領域内のファイルの中で書き換え回数と容量の積が最も小さいファイルを選択することを特徴とする請求項１に記載の不揮発性メモリ保護機能を備えた情報処理装置である。  
請求項３に係る発明は、前記書き換え回数に替えて書き換え頻度を用いることを特徴とする請求項１または２のいずれか１つに記載の不揮発性メモリ保護機能を備えた情報処理装置である。
【発明の効果】
【０００９】
本発明により、ファイル毎の書き換え回数や書き換え頻度やファイルの容量（サイズ）に着目することにより、効率的な不揮発性メモリの保護（すなわち、不揮発性メモリの寿命の最適化）が可能な不揮発性メモリ保護機能を備えた情報処理装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の情報処理装置の要部ブロック図である。
【図２】第１のメモリ領域と第２のメモリ領域とを説明する図である。
【図３】本発明の情報処理装置で実行されるファイルを記憶する処理のアルゴリズムを説明する図である。
【図４】本発明の情報処理装置で実行されるファイルを記憶する処理で、第１のメモリ領域に記憶されている書き換え回数とファイルの容量の積が最も小さい場合のアルゴリズムを説明する図である。
【図５】第２のメモリ領域に記憶するファイルの書き換え頻度を記憶する場合を説明する図である。
【図６】本発明の情報処理装置で実行されるファイルを記憶する処理で、ファイルの書き換え頻度を用いる場合のアルゴリズムを説明する図である。
【図７】本発明の情報処理装置で実行されるファイルを記憶する処理で、第１のメモリ領域に記憶されている書き換え頻度とファイルの容量の積が最も小さい場合のアルゴリズムを説明する図である。
【図８】書き換え頻度を求める処理のアルゴリズムを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明である情報処理装置の要部ブロック図である。プロセッサ１０は、情報処理装置全体の演算処理手段である。そして、プロセッサ１０は、揮発性メモリであるＲＡＭ１４と不揮発性メモリであるＳＳＤ１６とバス１２を介して接続されている。ＲＡＭ１４からＳＳＤ１６のデータの転送はバス１２を介して行われる。ＲＡＭ１４は、情報処理装置の電源が投入中に使用される揮発性メモリであり、データを一時的に退避できる実質的に書き換え回数制限の無いメモリ（ＤＲＡＭやＳＲＡＭなど）である。
【００１２】
ＲＡＭ１４は高価であることから、その容量を大きくとることは困難であるため、ＲＡＭ１４はデータを一時的に退避するメモリとして用いられる。ＲＡＭ１４は、データであるファイルを一時的に記憶する第１のメモリ領域１４０、該一時的に記憶されるそれぞれのファイルの書き換え回数とファイルの容量（サイズ）とを少なくとも記憶する第２のメモリ領域１４２と、を有する。第２のメモリ領域１４２に記憶されるファイルの書き換え回数および容量のデータを、これ以降、移動管理データと称する。
【００１３】
ＳＳＤ１６は、ＲＡＭ１４から移動されるデータを記憶するメモリとして用いられる。ＳＳＤ１６は不揮発性メモリ（例えば、フラッシュメモリ）である。このようなＳＳＤ１６は書き換え回数に制限があるため、より効率的にＳＳＤ１６の書き換えを行うことが求められる。
【００１４】
前述したようにＲＡＭ１４は、第２のメモリ領域１４２にファイルの書き換え回数とファイルの容量（サイズ）とを移動管理データとして記憶している。ＲＡＭ１４の第１のメモリ領域１４０からＳＳＤ１６へ転送されるファイルは、第２のメモリ領域１４２に記憶されているファイルの書き換え回数と容量とに基づいて選択される。例えば、ファイルの書き換え回数が最も少なく、かつ、ファイルの容量が最も小さい第１のメモリ領域１４０に記憶されているファイルをＳＳＤ１６に書き込む。換言すると、まず、ファイルの書き換え回数の少ない順番に並べ、次に、ファイルの容量の少ない順番に並べ変えることによって、ＳＳＤ１６に移動するファイルを選択するようにしてもよい。または、ファイルの容量の少ない順番に並べ、次に、ファイルの書き換え回数の少ない順番に並べ変えることによって、ＳＳＤ１６に移動するファイルを選択するようにしてもよい。あるいは第１のメモリ領域１４０に記憶されているデータの書き換え回数と容量の積が最も小さいファイルをＳＳＤ１６に書き込むようにしてもよい。なお、後述する書き換え頻度の場合は、前記書き換え回数を前記書き換え頻度に置き換えることによって同様に扱える。
【００１５】
図２は、第１のメモリ領域１４０と第２のメモリ領域１４２とを説明する図である。ＲＡＭ１４には第１のメモリ領域１４０と第２のメモリ領域１４２が設けられている。第１のメモリ領域１４０には、ファイル１、ファイル２、ファイル３、・・・、が記憶されている。記憶されている各ファイルには、ファイル名とファイルの容量データも管理データとして付属している。
【００１６】
本発明の実施形態では、ＲＡＭ１４の第１のメモリ領域１４０に記憶されたファイルをＳＳＤ１６へ移動する。ＳＳＤ１６へ移動するファイルは、ＲＡＭ１４に設けられている第２のメモリ領域１４２に移動管理データとして記憶されているファイルの書き換え回数とファイルの容量（サイズ）に基づいて選択される。
【００１７】
選択されてＳＳＤ１６へ移動したファイルは第１のメモリ領域１４０から削除されると共に、第２のメモリ領域１４２の移動管理ファイルからＳＳＤ１６へ移動したファイルの管理データを削除する。ＲＡＭ１４からＳＳＤ１６へのファイルの移動の可否は、例えば、書き込むファイルの容量は第１のメモリ領域の空き容量より大きいか、または、一定時間経過したか、または、決められた時刻になったかを判断の基準として行われる。
【００１８】
ここで、ＲＡＭ１４の第１のメモリ領域１４０に上書きでファイルを書き込む場合を例として説明する。ファイル２を上書きで書き込むと、第２のメモリ領域１４２に記憶されているファイル２の移動管理データの書き換え回数を表すデータを＋１する。合わせて、ファイル容量も書き込んだファイルの容量を基に更新する。なお、後述するフローチャートで説明するように、上書きする場合には、上書きされるファイルのファイル名を一時的なファイル名に変更する。このようにすることで、書き込みに失敗したとしても元のファイルを復元することができる。
【００１９】
次に、第１のメモリ領域１４０へ上書きではない書き込みを行う場合を説明する。この場合、第１のメモリ領域に書き込むファイルの管理データを第２のメモリ領域１４２の移動管理データに追加する。
【００２０】
図３は、本発明の情報処理装置で実行されるファイルを記憶する処理のアルゴリズムを説明する図である。以下、各ステップに従って説明する。  
●［ステップＳＡ１］書き込むファイルの容量は第１のメモリ領域の容量よりも大きいか否か判断し、大きい場合にはステップＳＡ２へ移行し、大きくない場合にはステップＳＡ３へ移行する。  
●［ステップＳＡ２］ファイルをＳＳＤへ直接書き込む。  
●［ステップＳＡ３］書き込むファイルは、第１のメモリ領域のファイルに上書きして記憶するか否か判断し、上書きの場合にはステップＳＡ４へ移行し、上書きではない場合にはステップＳＡ５へ移行する。  
●［ステップＳＡ４］上書きされるファイルのファイル名を一時的なファイル名に変更する。  
●［ステップＳＡ５］第１のメモリ領域に書き込むファイルの容量のデータを取得する。
●［ステップＳＡ６］第１のメモリ領域に書き込むファイルの容量は、第１のメモリ領域の空き容量より大きいか否か、または、一定時間が経過したか否か、または、決められた時刻になったか否か判断し、前記いずれかの条件を満たす場合にはステップＳＡ７へ移行し、前記条件をいずれも満たさない場合にはステップＳＡ１０へ移行する。  
●［ステップＳＡ７］第２のメモリ領域の移動管理データを基に、第１のメモリ領域に記憶されている書き換え回数、かつ、容量の最も小さいファイルを選択する。  
●［ステップＳＡ８］第１のメモリからＳＳＤへ選択されたファイルを移動し、第１のメモリ領域から削除する。  
●［ステップＳＡ９］第２のメモリ領域のデータから選択されたファイルに関連するファイル名、書き換え回数、および容量のデータを削除する。  
●［ステップＳＡ１０］ファイルを第１のメモリ領域へ書き込む。  
●［ステップＳＡ１１］ファイルの第１のメモリ領域への書き込みが上書きの場合には、第２のメモリ領域の書き換え回数（＝＋１、つまり、書き換え回数を１つ増加する）および容量のデータを更新する。新たなファイルを書き込む場合には、そのファイルのファイル名、書き換え回数（初期値＝１）、および容量のデータを第２のメモリ領域に追加する。  
●［ステップＳＡ１２］一時的なファイル名のファイルを削除し、処理を終了する。
【００２１】
上記フローチャートのステップＳＡ６における条件を補足して説明する。一般にプロセッサ（ＣＰＵ）を備えた情報処理装置は、タイマ機能と時計機能を有する。ステップＳＡ６における「一定時間」は前記タイマ機能を用いて、例えば、最後にＳＳＤにファイルを移動してから一定時間経過したか、または、１分間あるいは２分間のように条件を設定すること、または、時計機能を用いて、午前１０時、あるいは午後４時というように条件を設定する。
【００２２】
図４は、本発明の情報処理装置で実行されるファイルを記憶する処理で、第１のメモリ領域に記憶されている書き換え回数とファイルの容量の積が最も小さい場合のアルゴリズムを説明する図である。以下、各ステップに従って説明する。  
●［ステップＳＢ１］書き込むファイルの容量は第１のメモリ領域の容量よりも大きいか否か判断し、大きい場合にはステップＳＢ２へ移行し、大きくない場合にはステップＳＢ３へ移行する。  
●［ステップＳＢ２］ファイルをＳＳＤへ直接書き込む。  
●［ステップＳＢ３］書き込むファイルは、第１のメモリ領域のファイルに上書きして記憶するか否か判断し、上書きの場合にはステップＳＢ４へ移行し、上書きではない場合にはステップＳＢ５へ移行する。  
●［ステップＳＢ４］上書きされるファイルのファイル名を一時的なファイル名に変更する。  
●［ステップＳＢ５］第１のメモリ領域に書き込むファイルの容量のデータを取得する。
●［ステップＳＢ６］第１のメモリ領域に書き込むファイルの容量は、第１のメモリ領域の空き容量より大きいか否か、または、一定時間が経過したか否か、または、決められた時刻になったか否か判断し、前記いずれかの条件を満たす場合にはステップＳＢ７へ移行し、前記条件をいずれも満たさない場合にはステップＳＢ１０へ移行する。  
●［ステップＳＢ７］第２のメモリ領域の移動管理データを基に、第１のメモリ領域に記憶されている書き換え回数とファイルの容量の積が最も小さいファイルを選択する。  
●［ステップＳＢ８］第１のメモリからＳＳＤへ選択されたファイルを移動し、第１のメモリ領域から削除する。  
●［ステップＳＢ９］第２のメモリ領域のデータから選択されたファイルに関連するファイル名、書き換え回数、および容量のデータを削除する。  
●［ステップＳＢ１０］ファイルを第１のメモリ領域へ書き込む。  
●［ステップＳＢ１１］ファイルの第１のメモリ領域への書き込みが上書きの場合には、第２のメモリ領域の書き換え回数（＝＋１）および容量のデータを更新する。新たなファイルを書き込む場合には、そのファイルのファイル名、書き換え回数（初期値＝１）、および容量のデータを第２のメモリ領域に追加する。  
●［ステップＳＢ１２］一時的なファイル名のファイルを削除し、処理を終了する。
【００２３】
上述した本発明の実施形態では、第２のメモリ領域に記憶されたファイルの書き換え回数を用いてファイルの移動を行うか行わないかの判断を行う。このファイルの書き換え回数に替えて、書き換え頻度を用いてファイルの移動を行うか行わないかの判断を行うようにしてもよい。  
【００２４】
図５は、第２のメモリ領域に記憶するファイルの書き換え頻度を記憶する場合を説明する図である。第１のメモリ領域１４０に書き込まれるある１つのファイル（以下、「ファイルＦＩ」という）を例として説明する。ファイルＦＩの書き換えを時系列で並べたとき、頻繁に上書きされる時とそうでない時がありうる。そこで、書き換え頻度を基にして書き換えが頻繁になされないファイルをＳＳＤ１６に移動することによって、ファイルの移動を効率的に行うことができる。
【００２５】
図６は、本発明の情報処理装置で実行されるファイルを記憶する処理で、ファイルの書き換え頻度を用いる場合のアルゴリズムを説明する図である。
●［ステップＳＣ１］書き込むファイルの容量は第１のメモリ領域の容量よりも大きいか否か判断し、大きい場合にはステップＳＣ２へ移行し、大きくない場合にはステップＳＣ３へ移行する。  
●［ステップＳＣ２］ファイルをＳＳＤへ直接書き込む。  
●［ステップＳＣ３］書き込むファイルは、第１のメモリ領域のファイルに上書きして記憶するか否か判断し、上書きの場合にはステップＳＣ４へ移行し、上書きではない場合にはステップＳＣ５へ移行する。  
●［ステップＳＣ４］上書きされるファイルのファイル名を一時的なファイル名に変更する。  
●［ステップＳＣ５］第１のメモリ領域に書き込むファイルの容量のデータを取得する。
●［ステップＳＣ６］第１のメモリ領域に書き込むファイルの容量は、第１のメモリ領域の空き容量より大きいか否か、または、一定時間が経過したか否か、または、決められた時刻になったか否か判断し、前記いずれかの条件を満たす場合にはステップＳＣ７へ移行し、前記条件をいずれも満たさない場合にはステップＳＣ１０へ移行する。  
●［ステップＳＣ７］第２のメモリ領域の移動管理データを基に、第１のメモリ領域に記憶されている書き換え頻度、かつ、容量の最も小さいファイルを選択する。  
●［ステップＳＣ８］第１のメモリからＳＳＤへ選択されたファイルを移動し、第１のメモリ領域から削除する。  
●［ステップＳＣ９］第２のメモリ領域のデータから選択されたファイルに関連するファイル名、書き換え頻度、および容量のデータを削除する。  
●［ステップＳＣ１０］ファイルを第１のメモリ領域へ書き込む。  
●［ステップＳＣ１１］ファイルの第１のメモリ領域への書き込みが上書きの場合には、第２のメモリ領域の書き換え頻度（＝＋１）および容量のデータを更新する。新たなファイルを書き込む場合には、そのファイルのファイル名、書き換え頻度（初期値＝１）、および容量のデータを第２のメモリ領域に追加する。  
●［ステップＳＣ１２］一時的なファイル名のファイルを削除し、処理を終了する。
【００２６】
図７は、本発明の情報処理装置で実行されるファイルを記憶する処理で、第１のメモリ領域に記憶されている書き換え頻度とファイルの容量の積が最も小さい場合のアルゴリズムを説明する図である。
●［ステップＳＤ１］書き込むファイルの容量は第１のメモリ領域の容量よりも大きいか否か判断し、大きい場合にはステップＳＤ２へ移行し、大きくない場合にはステップＳＤ３へ移行する。  
●［ステップＳＤ２］ファイルをＳＳＤへ直接書き込む。  
●［ステップＳＤ３］書き込むファイルは、第１のメモリ領域のファイルに上書きして記憶するか否か判断し、上書きの場合にはステップＳＤ４へ移行し、上書きではない場合にはステップＳＤ５へ移行する。  
●［ステップＳＤ４］上書きされるファイルのファイル名を一時的なファイル名に変更する。  
●［ステップＳＤ５］第１のメモリ領域に書き込むファイルの容量のデータを取得する。
●［ステップＳＤ６］第１のメモリ領域に書き込むファイルの容量は、第１のメモリ領域の空き容量より大きいか否か、または、一定時間が経過したか否か、または、決められた時刻になったか否か判断し、前記いずれかの条件を満たす場合にはステップＳＤ７へ移行し、前記条件をいずれも満たさない場合にはステップＳＤ１０へ移行する。  
●［ステップＳＤ７］第２のメモリ領域の移動管理データを基に、第１のメモリ領域に記憶されている書き換え頻度とファイルの容量の積が最も小さいファイルを選択する。  
●［ステップＳＤ８］第１のメモリからＳＳＤへ選択されたファイルを移動し、第１のメモリ領域から削除する。  
●［ステップＳＤ９］第２のメモリ領域のデータから選択されたファイルに関連するファイル名、書き換え頻度、および容量のデータを削除する。  
●［ステップＳＤ１０］ファイルを第１のメモリ領域へ書き込む。  
●［ステップＳＤ１１］ファイルの第１のメモリ領域への書き込みが上書きの場合には、第２のメモリ領域のファイル名、書き換え頻度、および容量のデータを更新する。新たなファイルを書き込む場合には、そのファイルのファイル名、書き換え頻度（初期値＝１）、および容量のデータを第２のメモリ領域に追加する。  
●［ステップＳＤ１２］一時的なファイル名のファイルを削除し、処理を終了する。
【００２７】
なお、図８は、書き換え頻度を求める処理のアルゴリズムを示すフローチャートである。各ステップに従って説明する。
●［ステップＳＥ１］タイマスタートする。情報処理装置はタイマ機能を有しており、この機能を用いることができる。
●［ステップＳＥ２］単位時間経過したか否か判断し、単位時間経過したらステップＳＥ３へ移行する。
●［ステップＳＥ３］第２のメモリ領域の書き換え頻度を０にする。
●［ステップＳＥ４］タイマをリセットし、ステップＳＥ１へ戻る。
【００２８】
上述した情報処理装置としては、例えば、工作機械や産業用機械を制御する数値制御装置が例として挙げられる。この数値制御装置では、工作機械や産業用機械を長時間に亘って連続運転する場合があり、このような場合、工作機械や産業用機械を運転するのに必要な指令ファイルや制御ファイルは多数にのぼり、かつ、これらのファイルは頻繁に書き換えられるものや、書き換え回数の少ないものが存在する。あるいは、書き換え頻度が高いものや低いものがある。また、それぞれのファイルの容量も千差万別である。
【００２９】
このような性質を備えた多くのファイルを、ＳＳＤ１６に移動して記憶させる際に、各ファイルの書き換え回数およびファイルの容量、ファイルの書き換え頻度およびファイルの容量に基づいて選択することによって、ＳＳＤ１６の寿命を延ばすことができる。
【符号の説明】
【００３０】
１０  プロセッサ
１２  バス
１４  ＲＡＭ
１４０  第１のメモリ領域
１４２  第２のメモリ領域
１６  ＳＳＤ
【図１】
2011086181.tif 000003
【図２】
2011086181.tif 000004
【図３】
2011086181.tif 000005
【図４】
2011086181.tif 000006
【図５】
2011086181.tif 000007
【図６】
2011086181.tif 000008
【図７】
2011086181.tif 000009
【図８】
2011086181.tif 000010