(57)【要約】  保存場所を選択するための方法が提供される。この方法は、ファイル保存のための保存場所を、保存場所の速度および／または耐用年数をファイルのファイル形式のアクセス頻度またはファイル自身のアクセス頻度と組合わせることによって、選択することを含む。この方法によって、アクセス頻度の高いファイルをより高性能の保存場所、記憶装置または記憶システムと組合わせることにより、保存場所を最適に使用することができる。
2011513805.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実現される方法であって、
複数の保存場所各々に関する属性を取得するステップと、
ファイルおよび前記ファイルのファイル形式を取得するステップと、
前記ファイル形式に関連付けられた少なくとも１つの使用統計を取得するステップとを含み、前記少なくとも１つの使用統計は、前記ファイル形式を有するファイルの使用をモニタすることによって生成されたものであり、
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を、前記第１の保存場所の属性と前記ファイルの前記ファイル形式に関連付けられた前記少なくとも１つの使用統計とに基づいて、選択するステップと、
前記ファイルを前記第１の保存場所に保存させるステップとを含む、コンピュータで実現される方法。
【請求項２】
所定期間の終了に応じて、前記ファイルを前記第１の保存場所から第２の保存場所に転送するステップをさらに含み、
前記第２の保存場所は前記第１の保存場所よりも性能が低い、請求項１に記載の方法。
【請求項３】
一時充填ファイルを前記複数の保存場所各々に保存するステップをさらに含み、
前記ファイルを前記第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項１に記載の方法。
【請求項４】
前記ファイルを前記第１の保存場所に保存させるステップは、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップとを含む、請求項１に記載の方法。
【請求項５】
前記第２の保存場所に保存されることが意図されていたファイルが前記第１の保存場所に保存されていることを記録するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記ファイルシステムから、前記ファイルを前記第２の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの要求に応答して、前記ファイルを前記第１の保存場所から取出すステップとをさらに含む、請求項５に記載の方法。
【請求項７】
前記ファイルはファイルシステムから取得され、
前記ファイルの前記ファイル形式はファイルシステムフィルタドライバから取得される、請求項１に記載の方法。
【請求項８】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた書込頻度である、請求項１に記載の方法。
【請求項９】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた読出頻度である、請求項１に記載の方法。
【請求項１０】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた書込速度に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１１】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた読出速度に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１２】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの書込回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１３】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの読出回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１４】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所において１秒当り実行可能な入出力処理（ＩＯＰＳ）回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１５】
前記複数の保存場所は、中央処理装置とは別の１つ以上の補助記憶装置に含まれる、請求項１に記載の方法。
【請求項１６】
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を選択するステップはさらに、前記複数の保存場所各々の相対的な使用割合に基づく、請求項１に記載の方法。
【請求項１７】
前記ファイルを前記第１の保存場所に保存させるステップは、前記ファイルを、前記ファイルが最初に保存されていた第２の保存場所から転送するステップを含む、請求項１に記載の方法。
【請求項１８】
コンピュータで実現される方法であって、
複数の保存場所各々に関する耐用年数情報を取得するステップと、
ファイルおよび前記ファイルのアクセスの頻度を取得するステップと、
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を、前記第１の保存場所の耐用年数および前記ファイルのアクセスの頻度に基づいて選択するステップと、
前記ファイルを前記第１の保存場所に保存させるステップとを含む、コンピュータで実現される方法。
【請求項１９】
前記第１の保存場所は、第２の保存場所よりも相対的に耐用年数が長い、請求項１８に記載の方法。
【請求項２０】
前記ファイルを前記第１の保存場所に保存させるステップは、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップとを含む、請求項１８に記載の方法。
【請求項２１】
一時充填ファイルを前記複数の保存場所各々に保存するステップをさらに含み、
前記ファイルを前記第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項１８に記載の方法。
【請求項２２】
コンピュータで実現される方法であって、
一時充填ファイルを複数の保存場所各々に保存するステップと、
ファイルを保存するための前記複数の保存場所のうちの１つの保存場所を選択するステップと、
前記ファイルを前記複数の保存場所のうちの前記保存場所に保存させるステップとを含み、この保存させるステップは、
前記一時充填ファイルを前記複数の保存場所のうちの前記保存場所から削除しまたはその大きさを変更し、
その後前記ファイルの保存を要求することによって、行われる、コンピュータで実現される方法。
【請求項２３】
コンピュータで実現される方法であって、
ファイルシステムから、ファイルを第１の保存場所に保存するための命令を受けるステップと、
第２の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第１の保存場所ではなく前記第２の保存場所に保存するよう命令するステップと、
前記第１の保存場所に保存されることが意図されていたファイルが前記第２の保存場所に保存されていることを記録するステップと、
前記ファイルシステムから、前記ファイルを前記第１の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの前記ファイルを前記第１の保存場所から取出すための要求に応答して、前記ファイルを前記第２の保存場所から取出すステップとを含む、コンピュータで実現される方法。
【請求項２４】
１つ以上の命令シーケンスを含むコンピュータ可読記憶媒体であって、前記１つ以上の命令シーケンスは１つ以上のプロセッサによって実行されると、
複数の保存場所各々に関する属性を取得するステップと、
ファイルおよび前記ファイルのファイル形式を取得するステップと、
前記ファイル形式に関連付けられた少なくとも１つの使用統計を取得するステップとを行なわせ、前記少なくとも１つの使用統計は、前記ファイル形式を有するファイルの使用をモニタすることによって生成されたものであり、
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を、前記第１の保存場所の属性と前記ファイルの前記ファイル形式に関連付けられた前記少なくとも１つの使用統計とに基づいて、選択するステップと、
前記ファイルを前記第１の保存場所に保存させるステップとを行なわせる、コンピュータ可読記憶媒体。
【請求項２５】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、  所定の期間の終了に応じて、前記ファイルを前記第１の保存場所から第２の保存場所に転送するステップを行なわせ、
前記第２の保存場所は前記第１の保存場所よりも性能が低い、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、
一時充填ファイルを前記複数の保存場所各々に保存するステップを行なわせ、
前記ファイルを第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記ファイルを前記第１の保存場所に保存させるステップは、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップとを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、
前記第２の保存場所に保存されることが意図されていたファイルが前記第１の保存場所に保存されていることを記録するステップを行なわせる、請求項２７に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、
前記ファイルシステムから、前記ファイルを前記第２の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの要求に応答して、前記ファイルを前記第１の保存場所から取出すステップとを行なわせる、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、
前記ファイルはファイルシステムから取得され、
前記ファイルの前記ファイル形式はファイルシステムフィルタドライバから取得される、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた書込頻度である、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた読出頻度である、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた書込速度に基づいて選択するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた読出速度に基づいて選択するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの書込回数に基づいて選択するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの読出回数に基づいて選択するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３７】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所において１秒当り実行可能な入出力処理（ＩＯＰＳ）回数に基づいて選択するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記複数の保存場所は、中央処理装置とは別の１つ以上の補助記憶装置に含まれる、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を選択するステップはさらに、前記複数の保存場所各々の相対的な使用割合に基づく、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記ファイルを前記第１の保存場所に保存させるステップは、前記ファイルを、前記ファイルが最初に保存されていた第２の保存場所から転送するステップを含む、請求項２４に記載のコンピュータ可読記憶媒体。
【請求項４１】
１つ以上の命令シーケンスを含むコンピュータ可読記憶媒体であって、前記１つ以上の命令シーケンスは１つ以上のプロセッサによって実行されると、
複数の記憶場所各々に関する耐用年数情報を取得するステップと、
ファイルおよび前記ファイルのアクセスの頻度を取得するステップと、
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を、前記第１の保存場所の耐用年数および前記ファイルのアクセスの頻度に基づいて選択するステップと、
前記ファイルを前記第１の保存場所に保存させるステップとを行なわせる、コンピュータ可読記憶媒体。
【請求項４２】
前記第１の保存場所は回転プラッタドライブ内にあり、ファイルの保存のために選択されなかった第２の保存場所はソリッドステートドライブ内にあり、前記回転プラッタドライブは前記ソリッドステートドライブよりも相対的に耐用年数が長い、請求項４１に記載のコンピュータ可読記憶媒体。
【請求項４３】
前記ファイルを前記第１の保存場所に保存させるステップは、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップとを含む、請求項４１に記載のコンピュータ可読記憶媒体。
【請求項４４】
前記１つ以上のシーケンスは前記１つ以上のプロセッサによって実行されるとさらに、
一時充填ファイルを前記複数の保存場所各々に保存するステップを行なわせ、
前記ファイルを前記第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項４１に記載のコンピュータ可読記憶媒体。
【請求項４５】
１つ以上の命令シーケンスを含むコンピュータ可読記憶媒体であって、前記１つ以上の命令シーケンスは１つ以上のプロセッサによって実行されると、
一時充填ファイルを複数の保存場所各々に保存するステップと、
ファイルを保存するための前記複数の保存場所のうちの１つの保存場所を選択するステップと、
前記ファイルを前記複数の保存場所のうちの前記保存場所に保存させるステップとを行なわせ、前記保存させるステップは、
前記一時充填ファイルを前記複数の保存場所のうちの前記保存場所から削除しまたはその大きさを変更し、
その後前記ファイルの保存を要求することによって、行なわれる、コンピュータ可読記憶媒体。
【請求項４６】
１つ以上の命令シーケンスを含むコンピュータ可読記憶媒体であって、前記１つ以上の命令シーケンスは１つ以上のプロセッサによって実行されると、
ファイルシステムから、ファイルを第１の保存場所に保存するための命令を受けるステップと、
第２の保存場所が前記第１の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第１の保存場所ではなく前記第２の保存場所に保存するよう命令するステップと、
前記第１の保存場所に保存されることが意図されていたファイルが前記第２の保存場所に保存されていることを記録するステップと、
前記ファイルシステムから、前記ファイルを前記第１の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの前記ファイルを前記第１の保存場所から取出すための要求に応答して、前記ファイルを前記第２の保存場所から取出すステップとを行なわせる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本願は、２００８年１月１０日に提出された米国仮出願第６１／０２０，３６１号および２００９年１月６日に提出された米国非仮出願第１２／３４９，４５７号の優先権を主張する。
【０００２】
引用による援用
本願は、２００６年７月２８日に提出された米国出願第１１／４９５，１８４号、２００９年１月６日に提出された米国非仮出願第１２／３４９，４５７号、および２００８年１月１０日に提出された米国仮出願第６１／０２０，３６１号を、本明細書に引用により援用する。
【０００３】
発明の分野
本発明は、保存場所の選択に関する。より具体的には、本発明は、保存耐用年数および速度に基づいたファイル保存のための保存場所の選択に関する。
【背景技術】
【０００４】
背景
現代の計算システムは、多数の異なる種類の記憶媒体装置を利用している。記憶媒体装置は、速度（たとえば読出速度または書込速度）および耐用年数（たとえば故障までの推定書込回数または故障までの推定読出回数）に違いがあることが多い。１つの記憶システムの中でさえ、異なる種類の記憶媒体または装置は、速度および耐用年数が異なる場合がある。
【０００５】
ファイルシステムは、ファイルの保存を要求されると、一般的には、その要求がなされた時点でそのときに利用可能なまたは空いている保存場所を使用する。典型的には、ファイルシステムは、保存されているファイルの種類に拘らず、利用可能な保存場所から選択を行なう。したがって、さまざまな種類のファイル（たとえば実行可能、共有バイナリ、静的データファイル、ログファイル、構成ファイル、レジストリファイルなど、オペレーティングシステムまたはソフトウェアアプリケーションによって使用されるもの）が、単純に、そのときに利用可能な保存場所に保存される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このファイル割当方法の場合、結果として、たとえば、計算システム内において利用可能な保存場所の一部が、この利用可能な保存場所の他の部分よりもかなり前に故障することになる。さらに、アクセスされる頻度の低いファイルが最速のまたは最も応答性の高い保存場所に保存される一方で、アクセスされる頻度の高いファイルが低速の保存場所に保存されることもある。
【０００７】
このセクションで述べる手法は、追求可能な手法であるが、必ずしも以前に考案または追求された手法ではない。したがって、特に明記しない限り、このセクションで述べる手法のいずれも、当セクションに含まれているだけで先行技術とみなされてはならない。
【０００８】
本発明の説明は、例示を目的としており、限定を目的とするものではない。添付の図面において同様の参照番号は同様の構成要素を示す。
【図面の簡単な説明】
【０００９】
【図１】図１は、１つ以上の実施例に従う、保存場所を選択するための代表的なシステムを示す。
【図２】図２は、１つ以上の実施例に従う、ファイルのファイル形式および記憶装置属性に基づいて保存場所を選択するためのフロー図を示す。
【図３】図３は、１つ以上の実施例に従う、ファイルのファイル形式および記憶装置属性に基づき、一時ファイルを用いて、保存場所を選択するためのフロー図を示す。
【図４】図４は、ファイルのファイル形式および記憶装置属性に基づき、保存場所マッピングを用いて、保存場所を選択するためのフロー図を示す。
【図５】図５は、１つ以上の実施例を実現する際に使用し得るコンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【００１０】
詳細な説明
以下の記載では、説明のために、数多くの具体的な詳細事項について述べることで本発明の十分な理解を目指している。しかしながら、こういった具体的な詳細事項がなくとも本発明を実施し得ることは明白であろう。他の例では、周知の構造および装置をブロック図形式で示すことで本発明が不必要に曖昧にならないようにしている。
【００１１】
以下、いくつかの特徴について説明するが、これらの特徴は各々、互いに独立してまたは他の特徴と組合わせて使用することができる。しかしながら、個々の特徴は、上記課題のうちいずれかに対応していないかもしれず、または、上記の課題のうち１つのみに対応しているかもしれない。上記の課題のうちいくつかは、ここで説明する特徴のうちいずれも完全に対応できないかもしれない。見出しが設けられているが、特定の見出しに関連するがその見出しが設けられたセクションには見当たらない情報は、本明細書の他の部分で見出されるであろう。
【００１２】
概要
ファイル位置付けのための方法が提供される。この方法は、保存場所の速度および／または耐用年数を、ファイルの一部のアクセスの頻度、ファイルの種類、またはファイル自身のアクセスの頻度と組合わせることによって、ファイル保存のための保存場所を選択することを含む。
【００１３】
ある実施例において、ファイル位置付けは、一時ファイルを用いて、利用可能な保存場所を埋めることと、一時ファイルを選択的に削除またはその大きさを変更して、一時ファイルが削除されたまたはその大きさが変更された保存場所に、ファイルを強制的に保存することとを含む。
【００１４】
ある実施例において、ファイル位置付けは、ファイルと、そのファイルの保存のための、ファイルシステムによって識別された保存場所とを受取ることと、そのファイルを、ファイルの保存により適した代わりの保存場所に保存することとを含む。
【００１５】
ここでは、特定の構成要素を、方法のステップを実行するものとして記載しているが、他の実施例では特定の構成要素の代わりに機能するエージェントまたはメカニズムが方法のステップを実行することもある。さらに、本発明は１つのシステム上の構成要素に関して説明しているが、本発明は複数システムに分布する構成要素を用いて実現してもよい。加えて、本発明はソリッドステートドライブ（ＳＳＤ）に関して説明しているが、本発明の実施例は、任意の保存場所、記憶装置（たとえば回転ディスクドライブ、ＳＳＤ、ネットワークアタッチトストレージ（ＮＡＳ）、ストレージエリアネットワーク（ＳＡＮ）など）に応用可能である。
【００１６】
本発明の実施例は、本明細書に記載の方法ステップを実行するための手段を含むシステムも含む。本発明の実施例はまた、実行されると本明細書に記載の方法ステップを実行させる命令を備えたコンピュータ可読媒体を含む。
【００１７】
システムアーキテクチャ
ここでは特定のシステムアーキテクチャについて述べるが、本発明の他の実施例は、ファイル位置付けに使用できる任意のアーキテクチャに応用可能である。図１は、１つ以上の実施例に従う、ファイル位置付けのための代表的なシステム（１００）を示す。図１に示すように、システム（１００）は、ファイル位置付けエンジン（１０８）と、保存ドライバ（１１２）と、１つ以上のファイルリポジトリ（１１４）とを含む。このシステム（１００）はまた、図示されていないが、１つ以上の実施例の実現化に使用し得る他の構成要素を含んでもよい。これらの構成要素は各々、同一装置上にあってもよく、または、ネットワーク（たとえばインターネット、イントラネット、エクストラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）など）によって有線および／または無線セグメント用いて結合された別々の装置上にあってもよく、または他の手段で結合された別々の装置上にあってもよい。本発明の１つ以上の実施例において、システム（１００）はクライアントサーバトポロジを用いて実現される。加えて、このシステムは、１つ以上のインターフェイスを用いる他のマシンからアクセス可能でもよい。本発明の１つ以上の実施例において、このシステムは、インターネットなどのネットワーク接続を通して、１人以上のユーザからアクセス可能でもよい。このシステムが提供する情報および／またはサービスは、ネットワーク接続を通して保存されまたはアクセスされてもよい。
【００１８】
保存リポジトリ
保存リポジトリ（１１４）は一般的に、ファイルを保存することができる保存場所を有する１つ以上の記憶装置を表わす。保存リポジトリ（１１４）の一部は、システム（１００）に直接接続されてもよく、ネットワーク（１１６）または他の適切なインターフェイスを通して接続されてもよい。保存リポジトリ（１１４）は、当該技術では周知の任意の種類の記憶装置を含んでもよい。たとえば、保存リポジトリ（１１４）は、従来の回転プラッタドライブ、ソリッドステートドライブ（ＳＳＤ）、従来の回転プラッタドライブとＳＳＤとの異種の組合せ、ストレージエリアネットワーク（ＳＡＮ）またはネットワークアタッチトストレージ（ＮＡＳ）装置のような独立した記憶システムを含んでもよい。さらに、保存リポジトリ（１１４）内の各記憶装置は、種類の異なる保存場所を含んでいてもよい。たとえば、保存リポジトリ（１１４）内のＳＳＤは、シングルレベルセル（ＳＬＣ）、マルチレベルセル（ＭＬＣ）またはその組合せといった異なるセルを含んでいてもよい。したがって、システム（１００）への保存に利用可能な保存リポジトリ（１１４）内の保存場所は、１つの記憶装置上にあってもよく、または複数の記憶装置上にあってもよく、構成は、異なる記憶装置間で異なるまたは単一の記憶装置内でさえ異なる。
【００１９】
保存場所属性
ある実施例において、保存リポジトリ（１１４）内の保存場所またはデータ記憶装置は、シーケンシャル書込速度、シーケンシャル読出速度、ランダム書込速度、ランダム読出速度、耐用年数、毎秒入出力処理（ＩＯＰＳ）などといった、保存場所属性（１１０）が異なる可能性がある。保存場所またはデータ記憶装置の耐用年数は一般的に、故障するまでの保存場所またはデータ記憶装置の推定寿命を表わす。たとえば、保存場所またはデータ記憶装置の耐用年数は、故障までに実行できる書込の推定回数（以下「故障前書込回数」と呼ぶ）、または故障までに実行できる読出の推定回数（以下「故障前読出回数」と呼ぶ）に依存する可能性がある。この推定値は、特定の数値でもよく、または、事実上無限でもよい。たとえば、ある記憶装置が、故障なしで事実上無限回数の読出を行なえるものでもよい。また、保存場所、記憶装置または記憶システムの耐用年数は、他の適切な要素（たとえば製造業者、年数、動作環境など）に基づくものであってもよい。このように、耐用年数は、保存場所、記憶装置または記憶システムの特定の属性に限定されない。さらに、保存場所属性（１１０）は、保存場所または記憶装置の実際の使用も含み得る。保存場所の実際の使用は一般的に、保存場所がアクセスされた回数（たとえば保存場所に書込が行なわれたまたは保存場所から読出が行なわれた回数）、データ記憶装置が使用された時間量などを表わす。
【００２０】
保存場所属性（１１０）に関する情報は、製造業者から与えられてもよい。たとえば、保存場所属性（１１０）は記憶装置と共に販売されるコンパクトディスク（ＣＤ）上に与えられていてもよい。記憶装置の保存場所属性（１１０）は、記憶装置自体の上に保存され、記憶装置にアクセスしたシステム（１００）によって保存場所属性（１１０）が記憶装置から読出されてもよい。
【００２１】
別の実施例では、記憶装置または記憶システムに対してテストを行なって記憶装置または記憶システムの属性を求めてもよい。たとえば、一連の読出および／または書込を、従来の回転プラットドライブの異なる領域に対して行ない、この回転プラットドライブ内の異なる領域の読出または書込速度を求めてもよい。別の例は、ＳＳＤ内のシングルレベルセルおよび同一のＳＳＤ内のマルチレベルセルの、読出および書込速度をテストすることを含む。このテストは、シングルレベルセルの方が速いことを示すかもしれない。別の例は、１つの保存場所または１組の保存場所が、この保存場所が故障するまでにアクセスされる回数を追跡し、その保存場所または１つの記憶装置全体に具体的に関連する耐用年数を求めることを含んでもよい。
【００２２】
ファイル形式情報
ある実施例において、保存リポジトリ（１１４）に保存されたファイル（１０４）は、ファイル形式（１０６）を有する。ファイル（１０４）のファイル形式（１０６）は、アプリケーション、ユーザ、またはシステムによって定めることができるファイル（１０４）のカテゴリ分類である。たとえば、ワード処理ソフトウェアによって作成されたファイル（１０４）は、「.doc」というファイル形式でもよく、画像に関連するファイル（１０４）は「.jpg」というファイル形式でもよい。ある実施例において、ファイル（１０４）およびファイル（１０４）のファイル形式（１０６）は、異なるエンティティから、ファイル位置付けエンジン（１０８）によって受取られる。
【００２３】
たとえば、あるアプリケーションは最初にファイル（１０４）をファイルシステムフィルタドライバ（図示せず）に与えてもよい。ファイルシステムフィルタドライバは一般的に、アプリケーションとファイルシステムとの間で論理的に実現されるソフトウェアおよび／またはハードウェアを表わす。ファイルシステムフィルタドライバは、ファイル位置付けエンジン（１０８）を用いて、ファイルシステムに対し、どこにファイルを保存するか命令してもよい。一方、ファイルシステムフィルタドライバは、ファイル（１０４）とファイル（１０４）の保存場所についての命令とを直接ファイルシステム（１０４）に与えてもよい（以下で図４に関連して説明する保存場所マッピング参照）。
【００２４】
使用統計
使用統計（１０２）は一般的に、保存されている特定のファイル（１０４）の使用に基づく、またはファイル（１０４）のファイル形式（１０６）が保存されている複数のファイルの使用に基づく、何らかの統計を表わす。
【００２５】
１つの実施例において、ファイル位置付けエンジン（１０８）が受けるファイル形式（１０６）に関する使用統計（１０２）は、以下のような使用パターンを含み得る。
【００２６】
・アクセス頻度（たとえば書込アクセス頻度または読出アクセス頻度）。
・使用のタイミング（たとえばスタートアップ時、シャットダウン時、毎日、毎週、ファイル作成直後など）。
【００２７】
・ファイル形式（１０６）に関する平均寿命（たとえば短寿命、長寿命、永久など）。
・ファイル形式（１０６）を使用するプロセスの優先順位（たとえばユーザ規定優先順位、管理者規定優先順位、システムの重要プロセスに対して与えられた優先順位など）。
【００２８】
使用パターンはファイル形式ごとに異なることがある。たとえば、実行可能、共有バイナリおよび静的ファイルといったファイルは変更されることがほとんどないかもしれない。なぜなら、これらはオペレーティングシステムまたはアプリケーションパッチがインストールされたときに変わるからである。したがって、使用統計（１０２）は、低い書込頻度を示すかもしれない。これに対して、ログファイルおよび構成ファイルといったファイル（たとえばオペレーティングシステムレジストリファイル）は変更されることが非常に多い。したがって、使用統計（１０２）は高い書込頻度を示すかもしれない。
【００２９】
別の例は、読出頻度は高いかもしれないが一般的には上書きされないであろうメディアファイルを含む。加えて、使用統計（１０２）はまた、システムの種類に基づいて変化し得る。たとえば、システムブートファイルは再起動または電源のオンオフが頻繁に行なわれるパーソナルコンピュータでは読出される頻度が高いかもしれないが、システムブートファイルは再起動されることが滅多にないサーバ上ではほとんど読出されないであろう。
【００３０】
ファイル形式（１０６）に関する使用統計（１０２）は、いずれかの構成要素からファイル位置付けエンジン（１０８）によって取得されるか、またはファイル位置付けエンジン（１０８）そのものによって生成されてもよい。使用統計（１０２）は、ファイルシステムによって収集されてもよく、または別のエンティティによって収集されてファイル位置付けエンジン（１０８）に与えられてもよい。
【００３１】
ファイル位置付けエンジン
１つの実施例において、システム（１００）内のファイル位置付けエンジン（１０８）は一般的に、ファイル（１０４）のファイル形式（１０６）および／または保存場所属性（１１０）に基づいて、ファイル（１０４）（またはファイルの一部）を保存する場所を決定する論理を含む、ソフトウェアおよび／またはハードウェアを表わす。ファイル位置付けエンジン（１０８）は、（２つ以上の記憶装置を使用する場合）保存リポジトリ（１１４）内のどの記憶装置にファイル（１０４）を保存するのか決定するように構成されてもよい。また、ファイル位置付けエンジン（１０８）は、ファイル（１０４）を保存する、保存リポジトリ（１１４）内の領域または特定の保存場所を選択するように構成されてもよい。ファイル位置付けエンジン（１０８）は、１つ以上のサーバ上で実行するアプリケーションでもよく、実施例によってはピアトゥーピアアプリケーションである可能性があり、または、１つの計算システム（たとえばパーソナルコンピュータ、手持型装置、キオスク、車両に搭載されたコンピュータ、または記憶装置を有する任意の他のシステム）上にあってもよい。
【００３２】
１つの実施例において、ファイル位置付けエンジン（１０８）が受取ったファイル（１０４）は一般的に、保存リポジトリ（１１４）上に保存されるべき何らかのファイルを表わす。このファイル（１０４）は、即時のアクセスに備えて、将来のアクセスに備えて、または再びアクセスされる可能性があるまたはないバックアップのためにだけ、保存リポジトリ（１１４）上に保存されてもよい。
【００３３】
保存ドライバ
１つの実施例において、保存ドライバ（１１２）は、ファイル位置付けエンジン（１０８）から直接的または間接的に受けた１組の命令に基づいて、ファイルを保存し、保存リポジトリ（１１４）から取出す。たとえば、ファイル位置付けエンジン（１０８）は、ファイル（１０４）と、このファイルをファイルシステムに保存するための保存場所とを与えてもよく、その後、命令を保存ドライバ（１１２）に転送する。保存ドライバ（１１２）が受けた命令は単に記憶装置を特定するものでもよく、この場合、保存ドライバ（１１２）が、記憶装置の中のどこにファイルを保存するかを決定する。この命令は、記憶装置の領域、記憶装置上の特定の保存場所、保存リポジトリ、または保存リポジトリ内の場所も特定してもよい。
【００３４】
ファイル形式および保存場所属性に基づいた保存場所の選択
図２〜図４は、本発明の１つ以上の実施例に従う、ファイル位置付けに関するフローチャートを示す。１つ以上の実施例において、以下で説明するステップのうち１つ以上が、省略され、繰返され、および／または異なる順序で実行されてもよい。したがって、図２〜図４に示されたステップの特定の配列は、本発明の範囲を限定するものとして理解されるべきではない。
【００３５】
図２は、ファイルのファイル形式および保存場所属性に基づいた保存場所の選択に関するフローチャートを示す。保存場所は、まだ保存されていない新たに受取ったファイルに対して選択されることもあり、または既に保存されているファイルに対して選択されることもある。たとえば、以前に保存されたファイルに対して新たな保存場所を選択し、次にそのファイルを新たに選択した保存場所に移動させることがある。まず、ファイルおよびそのファイルのファイル形式が取得される（ステップ２０２）。ファイルおよびそのファイルのファイル形式は、同一のソース（たとえばソフトウェアアプリケーション、ファイルシステムなど）から取得されてもよく、または、異なるソースから取得されてもよい。ファイルのファイル形式は、このファイルに関連するメタファイルに含まれファイルと共に受取られてもよい。未知のファイル形式が受取られた場合は、このファイルは一般的なキャッチオールカテゴリに分類されてもよい。
【００３６】
１つの実施例において、ファイルのファイル形式に関連付けられた使用統計が取得される（ステップ２０４）。この使用統計は、ファイルがファイル形式と共に受取られる度に自動的に取得されてもよい。これに代えて、使用統計は、ファイル形式に基づいて、ローカルシステム内でまたはネットワークを通して検索されてもよい。たとえば、異なるファイル形式および対応する使用統計を含むテーブルが管理され定期的に更新されてもよい。１つの実施例において、使用統計の取得は、タイムスタンプの使用を含んでもよい。たとえば、ファイルがアクセスされる度に、タイムスタンプを記録してアクセスの時間およびアクセスの種類を示してもよい。次に、タイムスタンプを使用してアクセスの各種類についてアクセス頻度を計算してもよい。その後、同一種類の複数のファイルについてのアクセス頻度を何らかの方法で組合せ（たとえばアクセス頻度の平均値、最頻値、中央値など）、ファイル形式に関連付けられた使用統計を取得してもよい。
【００３７】
１つの実施例において、割当に利用できる保存場所が、ファイル形式に関する使用統計および保存場所の属性に基づいてファイル保存に適した保存場所が発見されるまで(ステップ２０８）、識別される（ステップ２０６）。適切な保存場所を発見するために、ファイル形式に関する使用統計が、保存場所の属性と組合わされる。たとえば、高レベルの使用は、高速読出／書込アクセスが可能なおよび／または故障までの読出／書込回数が多い保存場所と組合わされる。低レベルの使用は、より低速の読出／書込アクセスが可能なおよび／または故障までの読出／書込回数が少ない保存場所と組合わされる。１つの実施例において、この組合せは、すべての利用可能な保存場所と、多くの異なるファイル形式についての使用統計との比較に基づく。たとえば、利用可能な保存場所のうち、上位４分の１の最速または最長持続保存場所が、上位４分の１の最高使用頻度のファイルと組合わされる。
【００３８】
別の例は、従来のプラッタドライブおよびソリッドステードドライブの使用を含む。従来のプラッタドライブは一般的に、故障までの読出または書込回数が多いものとして定義される、非常に長い耐用年数または推定寿命を有する傾向がある。しかしながら、従来のプラッタドライブは低速である傾向がある。これと比較して、ソリッドステードドライブは一般的に、耐用年数は短い（一般的には故障までの読出／書込サイクルが５，０００〜１００，０００回）が、読出／書込速度は速い。したがって、たとえば、オペレーティングシステムが、書込速度が重要ではないバックグラウンドプロセスを用いてユーザのアクティビティを連続的に（たとえば１秒毎に）記録する場合、従来のプラットドライブがより適している可能性がある。なぜなら従来のプラットドライブは、故障なしで非常に多数の書込が可能であるからである。この例ではソリッドステードドライブは適切でないかも知れない。なぜなら、ソリッドステートドライブは書込が連続すると故障することが多いからである。
【００３９】
第３の例は、多数のランダムアクセス読出を必要とするアプリケーションを含む。従来のプラッタドライブは、ソリッドステートドライブと比較して、ランダムアクセス読出時間が遅い。なぜなら、従来のプラッタドライブは、プラッタの回転速度（一般的には５，４００ｒｐｍと１５，０００ｒｐｍの間）、および、プラッタ上のヘッドの動きに制限されるからである。これに対し、ソリッドステートドライブには、ランダムアクセス読出の速度に大きな影響を与え得る、プラッタ、ヘッドまたはその他の移動部品がない。この場合、ソリッドステートドライブは、ランダムアクセス読出速度が重要な場合、ファイルの保存にはより適しているであろう。
【００４０】
１つの実施例において、ファイルアクセスのタイミングを利用して適切な保存場所を決定してもよい。たとえば、ブラウザアプリケーションによって作成された一時インターネットファイル、またはユーザがダウンロードした実行可能ファイルが、ファイル作成直後に使用されその後滅多に使用されない場合がある。さらに、同一のユーザは、メディアファイルを、滅多に使用されないメディアファイルの大きなライブラリにダウンロードする傾向があるかもしれない。この例では、ブラウザアプリケーションによって作成された一時インターネットファイルまたはユーザがダウンロードした実行可能ファイルを、ユーザの習慣に基づいて予想される使用に鑑み、高速保存場所と組合わせてもよい。加えて、滅多に使用されないメディアファイルの大きなライブラリにダウンロードされたメディアファイルは、より速度の遅い保存場所と組合わせてもよい。１つの実施例では、ファイルは高速実行保存場所から低速実行保存場所へと定期的に転送されることがある。この例では、ブラウザによって作成された一時インターネットファイルは、使用レベルが時間の経過に伴って低くなると予想されるため、作成から１日または１週間後に、より低速実行の保存場所に移動させてもよい。このような高速実行保存場所から低速実行保存場所への自動化された転送に関する所定時間は、ユーザ、管理者、製造業者によって設定されてもよく、またはユーザの特定の使用習慣に基づいて決定されてもよい。
【００４１】
１つの実施例において、ファイル形式の使用統計と保存場所の属性との組合せは、動作環境またはシステムを考慮する。たとえば、異なるファイル形式に対するアクセスは、ラップトップ装置、サーバ、手持型装置、空港のキオスクなどで異なる可能性がある。空港のキオスクの起動ファイルは低速実行保存場所に保存されることがある。なぜなら、空港のキオスクは再起動されることが滅多にないからである。一方、ラップトップ装置の起動ファイルは、頻繁にアクセスされるので、高速実行保存場所に保存されることがある。さらに、空港のキオスクの起動速度はユーザにとって重要ではないかもしれないが、ラップトップ装置の起動速度はユーザにとって非常に重要である場合がある。
【００４２】
上で挙げた例はファイルのファイル形式の使用統計に関して説明してきたが、上記の例は各々、特定のファイルの使用統計に基づいた保存場所の組合せにも応用可能である。たとえば、建物内のエレベータの音楽を制御するコンピュータシステムは、滅多に使用されない多数の音楽ファイルを含むことがあり、１分の長さの音楽クリップが連続的に読出されて建物のエレベータの中で再生される。この場合、コンピュータシステムは、音楽ファイルを受けると、この音楽ファイルをどこにでも保存できるが、コンピュータシステムは、１分の長さの音楽クリップを耐用年数の長い保存場所において維持して故障なしで連続的に読出アクセスが行なえるようにしてもよい。さらに、ユーザが、エレベータ内で再生されている音楽ファイルを切換えると、システムは、連続的に再生されている新たな音楽ファイルを、読出耐用年数が長い保存場所に転送してもよい。したがって、１つの実施例では，ファイル位置付けは、実際のファイルのアクセス頻度および保存場所の耐用年数に基づく。
【００４３】
ファイルの保存に適した保存場所が識別されると、１つ以上の実施例に従い、ファイルシステムは、識別された保存場所にファイルを保存するよう命令される（ステップ２１０）。この命令に対し、ファイルシステムは、ファイルとその命令をファイルの保存のために対応する保存ドライバに与える。
【００４４】
一時ファイルを用いた保存場所の選択
図３は、１つ以上の実施例に従う、ファイルのファイル形式および記憶装置属性に基づき一時ファイルを用いて保存場所を選択することに関するフローチャートを示す。この保存場所選択のための方法は、一時ファイルを用いて、利用可能な保存場所を埋めることと、一時ファイルを選択的に削除して、一時ファイルが削除された保存場所にファイルを強制的に保存することとを含む。
【００４５】
最初に、１つ以上の実施例に従い、一時充填ファイルが、利用可能な保存場所に保存される（ステップ３０２）。利用可能な保存場所は、任意の大きさの複数の領域に分割されてもよい。一時充填ファイルはこれらの領域各々に保存される。この領域の大きさは、たとえば記憶装置に保存されるファイルの大きさの平均またはその変量でもよい。さらに、領域各々の大きさが異なっていてもよい。１つの実施例において、保存場所は、同一領域内の保存場所の速度および／または耐用年数が同一となるように、領域に分割される。
【００４６】
１つの実施例において、ステップ２０２に関して先に述べたのと本質的に同一のやり方で、ファイルおよびファイルのファイル形式が取得される（ステップ３０４）。さらに、ステップ２０４に関して先に述べたのと本質的に同一のやり方で、このファイル形式に関する使用統計が取得される（ステップ３０６）。１つの実施例において、ファイル形式に関する使用統計および保存場所の属性に基づいてファイル保存に適した保存場所が発見されるまで（ステップ３１０）、一時充填ファイルを有する保存場所が識別される（ステップ３０８）。保存場所がファイル保存に適しているか否か判断するための代表的なステップは、ステップ２０６およびステップ２０８に関して先に述べた通りである。
【００４７】
保存場所が識別されると、１つ以上の実施例に従い、ファイルシステムに対し、識別された保存場所の一時充填ファイルを削除またはその大きさを変更せよという命令が与えられる（ステップ３１２）。たとえば、ある領域内の保存場所がファイル保存のための保存場所として識別された場合、識別された保存場所を含むその領域内のすべての一時ファイルが削除されるかまたはより小さな大きさに変更され、または、識別された保存場所の一時ファイルのみが削除されるかまたはより小さな大きさに変更されてもよい。一時充填ファイルを削除またはその大きさを変更すると、ファイルシステムは、識別された保存場所が実際割当に利用できることを認識する。さらに、利用できる保存場所の残りの部分が一時充填ファイルで充填されると、ファイルシステムは、識別された保存場所が、割当のために空いている唯一の保存場所であると判断する。したがって、ファイルシステムがその後ファイルを保存せよという命令を受けると（ステップ３１４）、ファイルシステムはそのファイルを識別された保存場所に保存する（ステップ３１６）。
【００４８】
保存場所マッピングを用いた保存場所の選択
図４は、ファイルのファイル形式および記憶装置属性に基づき保存場所マッピングを用いて保存場所を選択することに関するフロー図を示す。１つの実施例において、保存場所の選択は、ファイルシステムから保存ドライバへの命令を傍受し、この命令を修正し、修正した命令を保存ドライバに与えることによって実施される。これに代えて、以下で説明するステップが保存ドライバによって実行されてもよい。データ（たとえばファイル）と、ファイルシステムによって選択されたファイルを保存するための第１の保存場所とを含む、ファイルシステムからの命令は、論理的にファイルシステムと保存ドライバとの間にあるエンティティ（たとえばソフトウェアおよび／またはハードウェアモジュール）によって受取られる（ステップ４０２）。１つの実施例において、このエンティティは保存ドライバ自身の一部でもよい。ファイルのファイル形式は、ファイルシステム自身とは異なる代わりのソース（たとえばファイルシステムフィルタドライバなど）から受けてもよい（ステップ４０４）。次に、ファイルのファイル形式に関連付けられた使用統計が取得される（ステップ４０６）。その後、図２に関して先に述べたように（ステップ２０８）、ファイルシステムによって選択された第１の保存場所よりも適したファイル保存のための第２の保存場所が、ファイル形式に関連付けられた使用統計および第２の保存場所の属性に基づいて、識別される。次に、保存ドライバに対して、第２の保存場所にファイルを保存せよという命令が送られる（ステップ４１０）。したがって、１つ以上の実施例では、ファイルシステムによって選択された保存場所が、ファイルの保存のための別の保存場所と置換えられる。さらに、第２の保存場所への第１の保存場所のマッピングが記録され、第１の保存場所にあるとされていたファイルが実際には第２のファイル保存場所にあることを示す（ステップ４１２）。その後、ファイルシステムがファイルへのアクセス（読出または書込）を要求する度に、ファイルシステムは実際、ファイルを第１の保存場所から読出すまたは第１の保存場所に書込むことを要求する。しかしながら、このアクセス命令も傍受され、以前に記録されたマッピングに基づき、ファイルは第２の保存場所に書込まれまたは第２の保存場所から読出される（ステップ４１４）。したがって、ある実施例では、ファイルシステムはファイルの実際の位置付けを知らない。実際の位置付けは、ファイルシステムレベルの下で扱われる。
【００４９】
保存場所の推定寿命の使用に基づいた保存場所の選択
１つ以上の実施例において、保存場所の選択は、異なる保存場所またはデータ記憶装置の推定寿命の相対的な使用に基づく。「保存場所属性」のセクションで先に述べたように、耐用年数または推定寿命は、データ記憶装置ごとに異なる可能性がある。耐用年数または推定寿命は、同一のデータ記憶装置内でも異なる保存領域間では異なることがある。たとえば、故障前書込回数または故障前読出回数は、ソリッドステートドライブおよび従来の回転プラッタドライブで異なることがある。使用とは、実際の使用を推定寿命で割ることによって求められる百分率の割合である。たとえば、書込の使用割合は、保存場所への実際の書込回数を故障前書込回数で割ることによって求めてもよい。保存場所の相対使用割合は、他の保存場所の使用割合と比較した保存場所の使用割合である。
【００５０】
１つの実施例において、割当てられる保存場所が、異なる保存領域間で使用割合がほぼ均衡するように選択される。たとえば、第１の保存領域の故障前書込回数が１００，０００書込であり、実際の使用が５０，０００書込の場合、第１の保存領域の使用割合は５０％である。さらに、第２の保存領域の故障前書込回数が５，０００書込であり実際の使用が２，０００書込の場合、第２の保存領域の使用割合は４０％である。第１の保存領域および第２の保存領域を含むこの例において、第２の保存領域の相対使用割合が最も低い。したがって、第２の保存領域は、第２の保存領域の使用割合が５０％に達するときである、故障前推定書込回数５，０００のうち少なくとも２，５００書込が完了するまで、ファイル保存要求に対して割当てられるであろう。このようにして、異なる保存領域の使用割合は、特定の１つの保存領域が他の保存領域よりも遥かに前に故障しないよう、ほぼ等しく保たれる。
【００５１】
ハードウェア概要
図５は、本発明の実施例を実現できるコンピュータシステム５００を示すブロック図である。コンピュータシステム５００は、情報を伝達するためのバス５０２または他の通信機構と、バス５０２に結合され情報を処理するためのプロセッサ５０４とを含む。コンピュータシステム５００はまた、ランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置といった、バス５０２に結合され情報およびプロセッサ５０４が実行する命令を保存するためのメインメモリ５０６を含む。メインメモリ５０６は、プロセッサ５０４が実行する命令の実行中に一時変数または他の中間情報を保存するためにも使用されてもよい。コンピュータシステム５００はさらに、バス５０２に結合され静的情報およびプロセッサ５０４に対する命令を保存するための読出専用メモリ（ＲＯＭ）５０８またはその他の静的記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置５１０が与えられ、バス５０２に結合されて情報および命令を保存する。
【００５２】
コンピュータシステム５００は、コンピュータユーザに対して情報を表示するための、陰極線管（ＣＲＴ）といったディスプレイ５１２に、バス５０２を介して結合されてもよい。英数字およびその他のキーを含む入力装置５１４が、バス５０２に結合され情報およびコマンド選択をプロセッサ５０４に伝える。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ５０４に伝えるためならびにディスプレイ５１２上のカーソル移動を制御するための、マウス、トラッグボールまたはカーソル方向キーといったカーソル制御５１６である。この入力装置は典型的に２本の軸における２つの自由度を有し、これら２つの軸とは第１の軸（たとえばｘ）および第２の軸（たとえばｙ）であり、これによって装置は平面内の位置を指定することができる。
【００５３】
本発明は、本明細書に記載の技術を実現するためのコンピュータシステム５００の使用に関する。本発明の１つの実施例に従うと、これらの技術は、プロセッサ５０４がメインメモリ５０６に含まれる１つ以上の命令の１つ以上のシーケンスを実行することに応じて、コンピュータシステム５００によって実施される。このような命令は、メインメモリ５０６に、記憶装置５１０といった別の機械可読媒体から読出されてもよい。メインメモリ５０６に含まれる命令のシーケンスの実行によって、プロセッサ５０４に、本明細書に記載のプロセスステップを実行させる。これに代わる実施例では、ソフトウェア命令の代わりにまたはソフトウェア命令と組合わせてハードワイヤード回路を用いて本発明を実現してもよい。このように、本発明の実施例は、ハードウェア回路およびソフトウェアの特定の組合せに限定されない。
【００５４】
本明細書で使用される「機械可読媒体」という用語は、機械に特定の態様で動作を行なわせるデータを与えることに関与する何らかの媒体のことを言う。コンピュータシステム５００を用いて実現されるある実施例には、さまざまな機械可読媒体が、たとえば、実行のために命令をプロセッサ５０４に与えることに関係する。このような媒体は、記憶媒体および送信媒体を含むがこれらに限定されない多くの形式を取ることができる。記憶媒体は、不揮発性媒体および揮発性媒体双方を含む。不揮発性媒体は、たとえば、記憶装置５１０といった光または磁気ディスクを含む。揮発性媒体は、メインメモリ５０６などの動的記憶装置を含む。送信媒体は、バス５０２を含むワイヤを含め、同軸ケーブル、銅線および光ファイバを含む。送信媒体は、電波および赤外線ファイル通信中に生成されるような音波または光波の形を取ることもできる。このような媒体はすべて、明らかに、媒体が搬送する命令を機械に読出す物理的機構によって、命令を検出できるようなものでなければならない。
【００５５】
機械可読媒体の一般的な形式は、たとえば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または他の磁気媒体、ＣＤ−ＲＯＭ、他の光媒体、パンチカード、紙テープ、その他の物理媒体であり穴のパターンを有するもの、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、フラッシュＥＰＲＯＭ、他のメモリチップまたはカートリッジ、以下で説明する搬送波、またはこれ以外の媒体でありコンピュータが読出可能なものを含む。
【００５６】
さまざまな形態の機械可読媒体が、プロセッサ５０４に対する実行のための１つ以上の命令の１つ以上のシーケンスの保持に関わってもよい。たとえば、命令は最初に遠隔コンピュータの磁気ディスク上で保持されてもよい。遠隔コンピュータは、命令を動的メモリにロードし、この命令を電話線でモデムを用いて送信する。コンピュータシステム５００にとってローカルなモデムは、電話線上のファイルを受信し、赤外線送信機を用いてファイルを赤外線信号に変換することができる。赤外線検出器は、赤外線信号が有するファイルを受信することができ、適切な回路がこのファイルをバス５０２上に置くことができる。バス５０２はファイルをメインメモリ５０６へと運び、ここからプロセッサ５０４は命令を取出して実行する。メインメモリ５０６が受けた命令は任意的に、プロセッサ５０４による実行前または実行後のいずれかに記憶装置５１０に保存してもよい。
【００５７】
コンピュータシステム５００はまた、バス５０２に結合された通信インターフェイス５１８を含む。通信インターフェイス５１８は、ローカルネットワーク５２２に接続されたネットワークリンク５２０に結合する双方向ファイル通信を提供する。たとえば、通信インターフェイス５１８は、統合サービスデジタル通信網（ＩＳＤＮ）カードまたはファイル通信接続を対応する種類の電話線に提供するモデムでもよい。別の例として、通信インターフェイス５１８は、ファイル通信接続を互換性のあるＬＡＮに提供するローカルエリアネットワーク（ＬＡＮ）カードでもよい。ワイヤレスリンクを実現してもよい。このような実現化例では、通信インターフェイス５１８は、さまざまな種類の情報を表わすデジタルファイルストリームを搬送する電気、電磁または光信号を送信および受信する。
【００５８】
ネットワークリンク５２０は典型的に、１つ以上のネットワークを通して他のファイル装置にファイル通信を提供する。たとえば、ネットワークリンク５２０は、ローカルネットワーク５２２を通して、ホストコンピュータ５２４への接続またはインターネットサービスプロバイダ（ＩＳＰ）５２６によって操作されるファイル機器への接続を、提供してもよい。ＩＳＰ５２６は、ファイル通信サービスを、現在一般的に「インターネット」５２８と呼ばれているワールドワイドパケットファイル通信ネットワークを通して提供する。ローカルネットワーク５２２およびインターネット５２８はともに、デジタルファイルストリームを搬送する電気、電磁または光信号を用いる。デジタルファイルをコンピュータシステム５００に搬送しコンピュータシステム５００から搬送する、さまざまなネットワークを通した信号およびネットワークリンク５２０上の信号であって通信インターフェイス５１８を通した信号は、情報を搬送する搬送波の代表的な形態である。
【００５９】
コンピュータシステム５００は、ネットワーク、ネットワークリンク５２０および通信インターフェイス５１８を通して、プログラムコードを含め、メッセージを送信しファイルを受信することができる。インターネットの例では、サーバ５３０は、アプリケーションプログラムに対する要求されたコードを、インターネット５２８、ＩＳＰ５２６、ローカルネットワーク５２２および通信インターフェイス５１８を通して送信してもよい。
【００６０】
受信したコードは、受信したときにプロセッサ５０４によって実行されてもよく、および／または記憶装置５１０に保存されてもよく、または後に実行するために他の不揮発性記憶装置に保存されてもよい。このようにして、コンピュータシステム５００は、搬送波の形でアプリケーションコードを取得することができる。
【００６１】
拡張および代替例
以上明細書では、本発明の実施例について、実現化例によって異なり得る数多くの具体的な詳細事項を参照しながら説明してきた。したがって、この発明とは何かを唯一かつ排他的に示すものであり、出願人が発明であると意図するものは、本願から提供される１組の請求項であり、このような請求項が提供される特定の形態にはその後の訂正が含まれる。本明細書においてこのような請求項に含まれる用語について明記した何らかの定義は、こうした請求項において使用される用語の意味の基準とならなければならない。したがって、ある請求項に明記されていない限定、構成要素、性質、特徴、利点または属性は、このような請求項の範囲をいかなる形でも限定してはならない。明細書および図面はしたがって、限定的な意味ではなく例示的な意味で捉えられるべきものである。
【図１】
2011513805.tif 000003
【図２】
2011513805.tif 000004
【図３】
2011513805.tif 000005
【図４】
2011513805.tif 000006
【図５】
2011513805.tif 000007
【手続補正書】
【提出日】平成22年12月6日(2010.12.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実現される方法であって、
複数の保存場所各々に関する属性を取得するステップと、
ファイルおよび前記ファイルのファイル形式を取得するステップと、
前記ファイル形式に関連付けられた少なくとも１つの使用統計を取得するステップとを含み、前記少なくとも１つの使用統計は、前記ファイル形式を有するファイルの使用をモニタすることによって生成されたものであり、
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を、前記第１の保存場所の属性と前記ファイルの前記ファイル形式に関連付けられた前記少なくとも１つの使用統計とに基づいて、選択するステップと、
前記ファイルを前記第１の保存場所に保存させるステップとを含む、コンピュータで実現される方法。
【請求項２】
所定期間の終了に応じて、前記ファイルを前記第１の保存場所から第２の保存場所に転送するステップをさらに含み、
前記第２の保存場所は前記第１の保存場所よりも性能が低い、請求項１に記載の方法。
【請求項３】
一時充填ファイルを前記複数の保存場所各々に保存するステップをさらに含み、
前記ファイルを前記第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項１に記載の方法。
【請求項４】
前記ファイルを前記第１の保存場所に保存させるステップは、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップとを含む、請求項１に記載の方法。
【請求項５】
前記第２の保存場所に保存されることが意図されていたファイルが前記第１の保存場所に保存されていることを記録するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記ファイルシステムから、前記ファイルを前記第２の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの要求に応答して、前記ファイルを前記第１の保存場所から取出すステップとをさらに含む、請求項５に記載の方法。
【請求項７】
前記ファイルはファイルシステムから取得され、
前記ファイルの前記ファイル形式はファイルシステムフィルタドライバから取得される、請求項１に記載の方法。
【請求項８】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた書込頻度である、請求項１に記載の方法。
【請求項９】
前記少なくとも１つの使用統計は、前記ファイル形式に関連付けられた読出頻度である、請求項１に記載の方法。
【請求項１０】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた書込速度に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１１】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた読出速度に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１２】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの書込回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１３】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所に関連付けられた故障までの読出回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１４】
前記第１の保存場所を前記第１の保存場所の属性に基づいて選択するステップは、前記第１の保存場所を、前記第１の保存場所において１秒当り実行可能な入出力処理（ＩＯＰＳ）回数に基づいて選択するステップを含む、請求項１に記載の方法。
【請求項１５】
前記複数の保存場所は、中央処理装置とは別の１つ以上の補助記憶装置に含まれる、請求項１に記載の方法。
【請求項１６】
前記ファイルを保存するための前記複数の保存場所のうちの第１の保存場所を選択するステップはさらに、前記複数の保存場所各々の相対的な使用割合に基づく、請求項１に記載の方法。
【請求項１７】
前記ファイルを前記第１の保存場所に保存させるステップは、前記ファイルを、前記ファイルが最初に保存されていた第２の保存場所から転送するステップを含む、請求項１に記載の方法。
【請求項１８】
コンピュータで実現される方法であって、
複数の保存場所のうちの第１の保存場所に関する耐用年数情報および第２の保存場所に関する耐用年数情報を取得するステップと、
ファイルおよび前記ファイルのアクセスの頻度を取得するステップと、
ファイルシステムから、前記ファイルを第２の保存場所に保存するための命令を受けるステップと、
前記第１の保存場所に関する耐用年数情報、前記第２の保存場所に関する耐用年数情報、および前記ファイルのアクセスの頻度に基づいて、前記第１の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
前記ファイルを前記第２の保存場所ではなく前記第１の保存場所に保存させるステップとを含む、コンピュータで実現される方法。
【請求項１９】
前記ファイルを前記第１の保存場所に保存させるステップは、
保存ドライバに、前記ファイルを、前記第２の保存場所ではなく前記第１の保存場所に保存するよう命令するステップを含む、請求項１８に記載の方法。
【請求項２０】
一時充填ファイルを前記複数の保存場所各々に保存するステップをさらに含み、
前記ファイルを前記第１の保存場所に保存させるステップは、前記第１の保存場所の前記一時充填ファイルを削除しまたはその大きさを変更して前記第１の保存場所を前記ファイルの保存のために空けるステップを含む、請求項１８に記載の方法。
【請求項２１】
コンピュータで実現される方法であって、
一時充填ファイルを複数の保存場所各々に保存するステップと、
ファイルを保存するための前記複数の保存場所のうちの１つの保存場所を選択するステップと、
前記ファイルを前記複数の保存場所のうちの前記保存場所に保存させるステップとを含み、この保存させるステップは、
前記一時充填ファイルを前記複数の保存場所のうちの前記保存場所から削除しまたはその大きさを変更し、
その後前記ファイルの保存を要求することによって、行われる、コンピュータで実現される方法。
【請求項２２】
コンピュータで実現される方法であって、
ファイルシステムから、ファイルを第１の保存場所に保存するための命令を受けるステップと、
第２の保存場所が前記第２の保存場所よりも前記ファイルの保存により適した場所であると判断するステップと、
保存ドライバに、前記ファイルを、前記第１の保存場所ではなく前記第２の保存場所に保存するよう命令するステップと、
前記第１の保存場所に保存されることが意図されていたファイルが前記第２の保存場所に保存されていることを記録するステップと、
前記ファイルシステムから、前記ファイルを前記第１の保存場所から取出すための要求を受けるステップと、
前記ファイルシステムからの前記ファイルを前記第１の保存場所から取出すための要求に応答して、前記ファイルを前記第２の保存場所から取出すステップとを含む、コンピュータで実現される方法。
【請求項２３】
１つ以上の命令シーケンスを含むコンピュータ可読記憶媒体であって、前記１つ以上の命令シーケンスは１つ以上のプロセッサによって実行されると、請求項１から１８および１９から２３のうち１つ以上に記載の方法ステップを行なわせる、コンピュータ可読記憶媒体。
【国際調査報告】
2011513805.tif 000008
2011513805.tif 000009
2011513805.tif 000010