(57)【要約】【課題】データを記憶するための物理的記憶位置を選択する方法を提供すること。【解決手段】本発明による方法は，物理的記憶位置の属性とデータの利用統計とを対照することによって，データを記憶する物理的記憶位置を選択するステップを伴う。【選択図】図２
2014501997.tif 000002
【特許請求の範囲】
【請求項１】
計算機で実現される方法であって，
ファイルシステム内の論理ブロックと関係する利用統計を測定するステップと，
前記論理ブロックに指定するために，複数の物理的記憶位置のうち，第１の物理的記憶位置を選択するステップであって，（ａ）前記第一の物理的記憶位置と関係する少なくとも一つの属性と，（ｂ）前記論理ブロックに関係する前記利用統計とに基づいて選択するステップと，
前記論理ブロックが前記第１の物理的記憶位置に指定されるようにするステップと，
を有する方法。
【請求項２】
前記論理ブロックに論理的に記憶されたデータを読み出す要求を受信するステップであって，該データは前記第１の物理的記憶位置と，第２の物理的記憶位置とに記憶される，ステップと，
前記第１の物理的記憶位置に関係する特定の属性に少なくとも基づいて，前記第１の物理的記憶位置から前記データを読み出すステップと，
を更に有する請求項１に記載の方法。
【請求項３】
第２の物理的記憶位置に記憶されたデータを読み出す要求を受信するステップと，
前記データが前記第１の物理的記憶位置にも記憶されていることを判定するステップと，
前記第１の物理的記憶位置に関係する特定の属性に少なくとも基づいて，前記第１の物理的記憶位置から前記データを読み出すステップと，
を更に有する請求項１に記載の方法。
【請求項４】
前記特定の属性は前記第１の物理的記憶位置の現在の利用率である，請求項３に記載の方法。
【請求項５】
前記利用統計を測定するステップは，前記論理ブロックに論理的に記憶された任意のデータの利用を監視するステップを含む，請求項１に記載の方法。
【請求項６】
前記利用統計を測定するステップは，監視の実行中に前記論理ブロックに指定された１又は複数の物理的記憶位置の利用を監視するステップを含む，請求項１に記載の方法。
【請求項７】
前記利用統計を測定するステップは，前記論理ブロックを参照する，オペレーティングシステムからのデータ利用要求を監視するステップを含む，請求項１に記載の方法。
【請求項８】
前記利用統計は，
前記論理ブロックに論理的に記憶された任意のデータと関係する読出し頻度と，
前記論理ブロックに論理的に記憶された任意のデータと関係する書込み頻度と，
前記論理ブロックに論理的に記憶された任意のデータと関係する利用タイミングと，
のうち１又は複数を含む，請求項１に記載の方法。
【請求項９】
前記論理ブロックに論理的に記憶されたデータは，２次記憶装置から個別に要求できるメモリの最小単位である，請求項１に記載の方法。
【請求項１０】
前記第１の物理的記憶位置を選択するステップは，前記論理メモリブロックに論理的に記憶されたデータを記憶する連続した物理メモリ空間を選択するステップを含む，請求項１に記載の方法。
【請求項１１】
前記少なくとも一つの属性は，前記第１の物理的記憶位置の読出し速度及び前記第１の物理的記憶位置の書込み速度のうち１又は複数を含む，請求項１に記載の方法。
【請求項１２】
前記少なくとも一つの属性は，前記第１の物理的記憶位置の推定故障前書込み回数及び前記第１の物理的記憶位置の推定故障前読出し回数のうち１又は複数を含む，請求項１に記載の方法。
【請求項１３】
前記少なくとも一つの属性は，前記第１の物理的記憶位置が選択される前に，前記第１の物理的記憶位置に記憶されていたデータを含む，請求項１に記載の方法。
【請求項１４】
前記論理ブロックが前記第１の物理的記憶位置に指定されるようにするステップは，
複数の論理ブロックを前記複数の物理的記憶位置に対応付ける際に，前記論理ブロックを前記第１の物理的記憶位置に対応付けるステップを含む，請求項１に記載の方法。
【請求項１５】
１又は複数のプロセッサで実行したとき，請求項１〜１４のいずれか一項に記載のステップを実行する命令を含む，非一時的計算機可読記憶媒体。
【請求項１６】
１又は複数のプロセッサを備え，
請求項１〜１４のいずれか一項に記載のステップを実行するように構成された装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，物理的記憶位置を選択することに関する。より詳細に言えば，本発明は，記憶位置属性及びデータ利用統計に基づいて，データ記憶のための物理的記憶位置を選択することに関する。
【背景技術】
【０００２】
データは，物理的記憶媒体内の物理的記憶位置に物理的に記憶される。物理的記憶媒体の例には，磁気ディスク，光ディスク，磁気光ディスク，半導体ドライブ（ＳＳＤ），等が含まれる。物理的記憶媒体はまた，２又はそれ以上の異なる種類の物理的記憶媒体の組合せであるハイブリッドを含む。例えば，物理的記憶媒体は，ＳＳＤ及び回転プラッタドライブの組合せで実現してもよい。
【０００３】
物理的記憶媒体に物理的に記憶されたデータは，オペレーティングシステム（ＯＳ）によって維持されるディスクファイル内に整理される。ディスクファイルは複数の論理ブロックに区分され，各論理ブロックは物理的記憶媒体内の物理的記憶位置に対応付け又は指定される。特定の論理ブロック内に整理されたデータは，特定の論理ブロックに指定された物理的記憶位置で読み書きすることによって利用できる。ここでは，特定の論理ブロック内に整理されたデータは，特定の論理ブロック上に論理的に記憶されたデータを指してもよい。
【０００４】
本項目で説明する方法は，遂行できる方法であるが，必ずしも以前に想起され又は遂行された方法である必要はない。したがって，この項目で説明する方法はどれも，単にこの項目に含められたことを理由に先行技術と認定されると推定することは望ましくない。
【０００５】
添付の図面に本発明の例が示されているが，それは本発明を制限するものではない。各図において，類似の参照符号は類似の要素を指す。
【図面の簡単な説明】
【０００６】
【図１】１又は複数の実施例による，記憶位置を選択する例示システムを示す図である。
【図２】１又は複数の実施例による，データ配置のフローチャートである。
【図３】１又は複数の実施例を実現する際に用いることができる計算機システムのブロック図である。
【発明を実施するための形態】
【０００７】
以降の説明においては，説明のために，本発明を完全に理解できるように多くの特定の詳細が述べられる。しかし，本発明はこれら特定の詳細によらず実施してもよいことは明白である。別の例では，本発明を不必要に不明瞭にしないように，周知の構造及び装置はブロック図で示される。
【０００８】
後で説明するいくつかの特徴は，それぞれを互いに独立に使用してもよいし，残りの特徴との任意の組合せで使用してもよい。しかし，どの個別の特徴が，上述のどの課題も解決できる訳ではなく，上述の課題のうち一つを解決できるに過ぎないこともある。上述の課題のうちいくつかは，ここで説明する特徴のどれによっても十分に解決できないかも知れない。表題が示されているが，特定の表題に関係するが当該表題を掲げた項目に見当たらない情報は，本明細書の別の場所にあるかも知れない。
【０００９】
概要
データ配置（ｐｏｓｉｔｉｏｎｉｎｇ）の方法が提供される。１又は複数の実施例において，この方法は，ファイルシステムの論理ブロックに論理的に記憶されたデータを記憶するために，物理的記憶位置を選択するステップを伴う。物理的記憶位置の選択は，（ａ）データの利用統計及び（ｂ）記憶位置属性に基づく。
【００１０】
一実施例においては，頻繁に利用されるデータは，アクセス速度が速く，故障までの寿命が長く，及び／又は関連データを記憶する物理的記憶位置に記憶される。
【００１１】
本方法のステップを実行する際に，ここでは特定の構成要素を列挙しているが，別の実施例においては，当該特定の構成要素の代わりに機能するエージェント又は機構が本方法のステップを実行してもよい。さらに，単一のシステム上の構成要素に関して実施例を説明しているが，この実施例は複数のシステムに分散する構成要素で実現してもよい。さらに，特定の記憶装置又は特定の種類の物理的記憶に関して実施例を説明しているが，実施例は任意の物理的記憶装置又は物理的記憶種別（例えば，回転ディスクドライブ，半導体ドライブ（ＳＳＤ），ネットワーク接続記憶装置（ＮＡＳ），記憶域ネットワーク（ＳＡＮ），ハイブリッドドライブ，等）に適用可能である。
【００１２】
実施例はまた，ここで説明する方法ステップを実行する手段を有する任意のシステム又は装置も含む。実施例はまた，プロセッサによって実行したとき，ここで説明する方法を実行させる命令を含む計算機可読媒体も含む。
【００１３】
システム構成
ここでは特定のシステム構成を説明するが，ほかの実施例は，データ配置に用いることができる任意の構成に適用できる。図１は，１又は複数の実施例による，データ配置のための例示システム１００を示す。図１に示すように，システム１００は，データ配置エンジン１０８と，記憶装置ドライバ１１２と，１又は複数のデータリポジトリ１１４とを含む。システム１００はまた，別のハードウェア及び／又はソフトウェアを含んでもよく，これらは図示されていないが，１又は複数の実施例の実現に用いてもよい。例えば，ディスクファイルを維持するＯＳは，データ配置エンジン１０８又は記憶装置ドライバ１１２と通信で接続されていてもよい。これら構成要素はそれぞれ，同一の装置に配置されていてもよいし，有線区間及び／又は無線区間を有するネットワーク（例えば，インターネット，イントラネット，エクストラネット，構内網（ＬＡＮ），広域網（ＷＡＮ），等）によって結合された別個の装置又は別の手段で結合された別個の装置に配置されてもよい。一つの実施例においては，システム１００は別様に構成してもよい。例えば，データ配置エンジン１０８は，記憶装置ドライバ１１２とデータリポジトリ１１４との間に論理的に配置されてもよい。別の例では，データ配置エンジン１０８を記憶装置ドライバ１１２の構成要素として実現してもよい。
【００１４】
１又は複数の実施例において，システム１００はクライアントサーバ形態を用いて実現される。さらに，システムは，１又は複数のインタフェースを用いてほかの機械から利用することができる。１又は複数の実施例において，システムは，インターネットのようなネットワーク接続を介して，１又は複数の利用者が利用可能であってもよい。システムが提供する情報及び／又はサービスはまた，ネットワーク接続を介して記憶し，利用してもよい。
【００１５】
データリポジトリ
データリポジトリ１１４は一般に，データ１０４を記憶できる物理的記憶位置を含む１又は複数の記憶装置を備えた物理的記憶媒体を表す。データリポジトリ１１４の部分は，システム１００に直接接続されていてもよいし，ネットワーク１１６又は別の適切なインタフェースを介して接続されていてもよい。データリポジトリ１１４は，当業において既知の任意の種類の記憶装置を含んでもよい。例えば，データリポジトリ１１４は，キャッシュ，ＲＡＭ，２次記憶装置，従来の回転プラッタドライブ，ＳＳＤ，従来の回転プラッタドライブとＳＳＤとのハイブリッド組合せ，ＳＡＮ又はＮＡＳのような別の記憶システムを含んでもよい。
【００１６】
一つの実施例においては，データリポジトリ１１４内の各記憶装置は，別種類の記憶位置を含んでもよい。例えば，データリポジトリ１１４内のＳＳＤは，単一レベルセル（ＳＬＣ），多レベルセル（ＭＬＣ）又はその組合せのような種々のセルを含んでもよい。このように，システム１００が利用可能なデータリポジトリ１１４内の物理記憶位置は，単一の記憶装置又は種々の記憶装置にわたる，若しくは単一記憶装置内の種々の構成を有する複数の記憶装置にあってもよい。
【００１７】
物理的記憶位置属性
一つの実施例において，データリポジトリ１１４内の物理的記憶位置及び／又はデータ記憶装置は物理的記憶位置属性１１０が異なってもよい。物理的記憶位置属性の例には，連続書込み速度，連続読出し速度，ランダム書込み速度，ランダム読出し速度，寿命，１秒当たり入出力操作回数（ＩＯＰＳ），等が含まれる。物理的記憶位置又はデータ記憶装置の寿命は，一般に，物理的記憶位置又はデータ記憶装置の故障までの推定寿命を表す。例えば，物理的記憶位置又はデータ記憶装置の寿命は，故障までに実行できる推定書込み回数（以降，「故障前書込み数」と呼ぶ），又は故障までに実行できる推定読出し回数（以降，「故障前読出し数」と呼ぶ）に依存してもよい。故障前書込み数及び／又は故障前読出し数は，例えば類似の装置の使用に基づく統計に基づいて推定してもよい。推定の故障前書込み数及び／又は推定の故障前読出し数は，製造メーカ又はほかの情報源から受領してもよい。推定の故障前書込み数及び／又は推定の故障前読出し数は，正確な情報を含むことがある。例えば，物理的記憶位置，物理的記憶位置の領域又は装置は，特定の読出し及び／又は書込み回数後に故障するようにプログラムしてもよい。この推定値は，特定の回数であってもよいし，仮想的に無制限であってもよい。例えば，記憶装置は，故障なしの，仮想的に無制限の読出し回数を見込んでもよい。物理的記憶位置の寿命は，推定の故障前書込み数及び推定の故障前読出し数の組合せに基づいて計算された値であってもよい。
【００１８】
一つの実施例においては，物理的記憶位置又はデータ記憶装置の推定寿命は，物理的記憶位置又はデータ記憶装置の利用時間の長さであってもよい。物理的記憶位置又はデータ記憶装置の寿命は，任意の要因（例えば，製造メーカ，年代，運用環境，等）に基づいて異なることがある。さらに，物理的記憶位置属性１１０は，特定の物理的記憶位置又は特定の記憶装置の使用履歴を含んでもよい。物理的記憶位置の実際の利用は，一般に，物理的記憶位置が利用された回数（例えば，物理的記憶位置が書き込まれ，又は読み出された回数），データ記憶装置が使用された時間，等を表す。
【００１９】
一つの実施例において，物理的記憶位置の物理的記憶位置属性は，当該物理的記憶位置に既に記憶されているデータを含んでもよい。例えば，２次記憶装置（例えば，回転プラッタドライブ）からＲＡＭにロードされた，特定の物理メモリブロック内に記憶されたデータは，関係する論理ブロック内に論理的に記憶されたデータを含んでもよい。一つの実施例において，データの物理的記憶位置を選択する選択手続は，当該物理的記憶位置に既に記憶されているほかのデータを考慮に入れてもよい。
【００２０】
一つの実施例において，関係するデータを同一の物理的記憶位置（例えば，同一の物理メモリブロック内又は同一の物理メモリブロックの集合内）に記憶することが，性能を改善することがある。例えば，単一の物理メモリブロック内の関係するデータを読み出すことは，２次記憶装置から単一の物理メモリブロックをＲＡＭにロードすることを伴うことがある。複数の物理メモリブロック内の関係するデータを読み出すことは，２次記憶装置から複数の物理メモリブロックをＲＡＭにロードすることを伴うことがある。
【００２１】
論理ブロック
一つの実施例において，論理ブロックはデータ１０４の整理に用いられるディスクファイル内の区画である。論理ブロックは，任意の量のデータを含むことができる。一つの実施例において，論理ブロックは，個別に参照し，２次記憶装置からロードできるページである。
【００２２】
一つの実施例において，特定の論理ブロック内に整理されたデータは，ここでは，当該特定の論理ブロックに論理的に記憶されたデータを指してもよい。ここで指す論理ブロックの利用は，当該論理ブロック内に論理的に記憶された任意のデータの利用を含む。論理ブロック内に論理的に記憶されたデータは，当該論理ブロックに指定された物理的記憶位置に物理的に記憶される。
【００２３】
一つの実施例においては，ＯＳは，データ１０４を論理的に記憶する論理ブロックを参照して，データリポジトリ１１４内に記憶されたデータ１０４を利用することができる。データファイルから物理的記憶媒体への対応付けに基づいて，論理ブロックに指定された物理的記憶位置を特定することができる。例えば，テーブルが論理ブロックの物理的記憶位置のアドレスを示してもよい。別の例では，当該論理ブロックに対応付けされた物理的メモリ位置のアドレスを取得するために，論理ブロックのアドレスにオフセットを加えてもよい。物理的メモリ位置のアドレスが決定されると，物理的メモリ位置からデータを読出し，書き込むことができる。
【００２４】
利用統計
一つの実施例においては，論理ブロックに利用統計１０２が関係付けられる。特定の論理ブロックに関係付けられた利用統計１０２は，当該特定論理ブロック内に論理的に記憶された任意のデータに関係する統計を含む。
【００２５】
一つの実施例においては，特定論理ブロックの利用統計は当該特定論理ブロックの利用頻度を含む。例えば，利用統計は，特定論理ブロックと関係付けられた書込み頻度を含んでもよい。特定論理ブロックと関係付けられた書込み頻度は，当該特定論理ブロック内に論理的に記憶された任意のデータへのすべての書込みを勘定することによって計算してもよい。特定論理ブロックと関係付けられた書込み頻度は，当該特定論理ブロック内に論理的に記憶された任意のデータへの時間当たりの書込み回数を平均することによって計算してもよい。特定論理ブロックと関係付けられた書込み頻度は，当該特定論理ブロック内に論理的に記憶された任意のデータへの，書き込み総数に対する書込み数に基づいて計算してもよい。
【００２６】
読出し頻度もまた，類似の計算技法例を用いて計算することができる。一つの実施例においては，利用頻度は，書込み頻度及び読出し頻度の組合せに基づいてもよい。
【００２７】
一つの実施例においては，特定論理ブロックの利用統計は，当該特定論理ブロック内に論理的に記憶された任意のデータの利用タイミングを含む。例えば，当該特定論理ブロック内に論理的に記憶された任意のデータの利用は，ある事象（例えば，システム起動，システムシャットダウン，システム一時停止，システムハイバネート，システム再開）の前であってもよいし，後であってもよいし，毎日，毎週，データ生成の直後，等であってもよい。
【００２８】
データ配置エンジン
一つの実施例においては，システム内のデータ配置エンジン１０８は概略，データを記憶するための物理的記憶位置を選択する論理を含むソフトウェア及び／又はハードウェアを表す。
【００２９】
一つの実施例においては，ここで指すところの物理的記憶位置の選択は，物理的記憶位置タイプ又は物理的記憶位置属性の選択を含んでもよい。選択された物理的記憶位置は，物理的記憶位置タイプの任意の物理的記憶位置，又は物理的記憶位置属性を有する任意の物理的記憶位置を含む。例えば，物理的記憶位置の選択は，ＳＳＤ及び回転プラッタドライブを含むハイブリッドドライブのＳＳＤ部の選択を含んでもよい。別の例は，回転プラッタドライブの複数の領域から，回転プラッタドライブの特定領域を選択することを伴う。別の例は，最小書込み速度の選択及び少なくとも最小書込み速度を有する任意の物理的記憶位置（例えば，領域又は装置）の選択を伴う。
【００３０】
一つの実施例においては，ここで指すところの物理的記憶位置の選択は，特定の論理ブロックに論理的に記憶されたデータを記憶するための物理的記憶位置の物理アドレスの選択を含む。
【００３１】
一つの実施例においては，データ配置エンジン１０８は１又は複数のサーバ上で動作する応用プログラムであってよく，いくつかの実施例においては，対等（ｐｅｅｒ−ｔｏ−ｐｅｅｒ）応用プログラムであってもよいし，単一計算システム（例えば，パソコン，携帯型装置，キオスク，車載計算機又は記憶装置を含む任意のほかのシステム）上の常駐プログラム（ｒｅｓｉｄｅｎｔ）であってもよい。
【００３２】
一つの実施例においては，データ配置エンジン１０８はシステム１００内の記憶装置ドライバ１１２の構成要素として実現してもよい。一つの実施例においては，データ配置エンジン１０８は，システム１００内のＯＳ（図示していない）と記憶装置ドライバ１１２との間に実現してもよい。一つの実施例においては，データ配置エンジン１０８は，システム１００内の記憶装置ドライバ１１２とデータリポジトリ１１４との間に配置してもよい。
【００３３】
一つの実施例においては，データ配置エンジン１０８は，記憶装置ドライバ１１２によって行われる物理的記憶位置の選択を上書きしてもよい。例えば，データ配置エンジン１０８は，特定の論理ブロック内に論理的に記憶されたデータを記憶するために，記憶装置ドライバから物理的記憶位置を受信してもよい。データ配置エンジン１０８は，１又は複数の実施例によれば代替物理的記憶位置を選択し，代替物理的記憶位置にデータを記憶してもよい。
【００３４】
一つの実施例においては，データ配置エンジン１０８は，特定の論理ブロックに論理的に記憶されたデータを記憶するために，連続する物理的記憶位置の集合を特定してもよい。データ配置エンジン１０８は，物理的記憶位置の開始アドレス及び／又は物理的記憶位置の終了アドレスを特定することによって，物理的記憶位置の集合を特定してもよい。
【００３５】
一つの実施例においては，データ配置エンジン１０８は，データ１０４を記憶するためにデータリポジトリ１１４内の物理的記憶位置を特定してもよい（例えば，１より多い記憶装置が利用できるとき）。データ配置エンジン１０８はまた，データ１０４を記憶するために，データリポジトリ内の領域又は特定の記憶位置アドレスを選択するように構成してもよい。
【００３６】
記憶装置ドライバ
一つの実施例においては，記憶装置ドライバ１１２はデータ配置エンジン１０８から直接又は間接に受信した命令集合に基づいて，データリポジトリ１１４からデータ１０４を取得して記憶する。
【００３７】
一つの実施例においては，記憶装置ドライバ１１２はデータ配置エンジン１０８によって特定された物理的記憶位置タイプ又は物理的記憶位置属性を受信する。そして記憶装置ドライバ１１２はデータ配置エンジン，データ１０４を記憶するために物理的記憶位置タイプ又は物理的記憶位置属性と一致する物理的記憶位置のアドレスを選択する。
【００３８】
一つの実施例においては，データ配置エンジン１０８は，データ１０４を提供し，物理記憶媒体にデータを記憶するための物理的記憶位置を指定してもよい。記憶装置ドライバ１１２が受信した物理的記憶位置は，記憶装置，記憶装置の領域，論理的記憶位置アドレス，又は物理的記憶位置アドレスを含んでもよい。一つの実施例においては，記憶装置ドライバ１１２は，指定された領域又は指定された装置内の利用可能な物理的記憶位置に基づいて，物理的記憶位置アドレスを決定してもよい。
【００３９】
一つの実施例においては，データ記憶装置ドライバ１１２は，データと，物理的記憶位置を特定する情報とを，データ配置エンジン１０８によってデータを記憶するために，データ配置エンジン１０８に送信する。
【００４０】
論理ブロック及び記憶位置属性と関係する利用統計に基づく記憶位置の選択
図２は，１又は複数の実施例によるデータ配置のフローチャートを示す。１又は複数の実施例において，以降説明するステップのうち１又は複数は，省略し，反復し，及び／又は異なる順序で実行してもよい。したがって，図２に示す特定のステップの配置は，本発明の範囲を制限するものと解釈することは望ましくない。
【００４１】
一つの実施例においては，特定の論理ブロックに論理的に記憶されたデータの利用が，当該特定の論理ブロックの利用統計を測定するために監視される（ステップ２０２）。特定の論理ブロックに論理的に記憶されたデータの利用は，１又は複数の種々のシステムレベルで監視してもよい。例えば，データの利用は，応用レベル，ＯＳレベル，記憶装置ドライバレベル又はハードウェアレベルで監視してもよい。
【００４２】
一つの実施例においては，ファイル要求をＯＳレベルで監視してもよい。例えば，ＯＳが受信したファイル要求ごとに，ディスクファイルの対応する論理ブロックが特定される。利用の種類，利用時刻及び論理ブロックを示す情報を記録してもよい。
【００４３】
一つの実施例においては，データの利用を記憶装置ドライバレベルで監視してもよい。例えば，論理ブロックに基づいて物理的記憶位置アドレスを（例えば，ポインタ，対応付け，計算，等によって）決定する要求を監視してもよい。要求内の論理ブロックを記録してもよい。
【００４４】
一つの実施例においては，データの利用をハードウェアレベルで監視してもよい。例えば，読出し又は書込みについて，物理メモリ位置を監視してもよい。時刻データがそれぞれ物理記憶アドレスから読み出され，又は物理記憶アドレスに書き込まれ，物理記憶アドレスが指定されている対応の論理ブロックを判定し，記録してもよい。
【００４５】
論理ブロックに論理的に記憶されているデータの利用は，ほかのレベル（例えば，ＯＳレベルと記憶装置ドライバとの間のレベル，又は記憶装置ドライバと物理メモリとの間のレベル）で監視してもよい。
【００４６】
一つの実施例においては，任意の記録された情報を利用統計（例えば，利用頻度，利用種別，利用時刻，等）として収集してもよい。利用統計は，記録された情報内で特定されるパターンを含んでもよい。例えば，パターンは，特定の論理ブロックに論理的に記憶されたデータが毎日午前９時に読み出されることを示してもよい。
【００４７】
一つの実施例においては，データの利用時刻は事象（例えば，システムシャットダウン，システム起動，システムハイバネート，システム一時停止，システム再開，等）と関係してもよい。例えば，利用統計は，システム起動の際に特定の論理ブロック内に論理的に記憶されたデータを読み出すパターン，及びシステムシャットダウンの際に特定の論理ブロック内に論理的に記憶されたデータを書き込むパターンを含んでもよい。パターンは，事象の前，事象の後又は事象の最中のデータ利用に関係してもよい。例えば，事象は特定のシステム状態を含んでもよい。システムが特定のシステム状態にある時間に，ある論理ブロックに論理的に記憶されたデータを連続的に読み出してもよい。
【００４８】
一つの実施例においては，利用可能な物理的記憶位置に関する物理的記憶位置属性と関係する情報が取得される（ステップ２０４），物理的記憶位置属性と関係する情報は，記憶装置の製造メーカ（又はほかのエンティティ）が提供してもよい。例えば，物理的記憶位置属性は，記憶措置と共に売られるＳＳＤ上で提供してもよい。記憶装置の物理的記憶位置属性はまた，記憶装置を利用するシステムが記憶装置から物理的記憶位置属性を読むことができるように，記憶装置自体に記憶されていてもよい。
【００４９】
一つの実施例においては，記憶装置内の種々の物理的記憶位置の属性を決定するために，記憶装置について試験を行ってもよい。例えば，従来の回転プラッタドライブの別個の領域に一連の読出し及び／又は書込みを実行して，当該回転プラッタドライブ内の別個の領域の読出し及び／又は書込み速度を測定してもよい。別の例は，ＳＳＤ内の単一レベルセル，又は同一ＳＳＤ内の複数レベルのセルの読出し及び書込み速度の試験を伴う。この試験は単一レベルのセルの方が速いことを示すことがある。別の例は物理的記憶位置又は記憶装置全体に明確に関係する寿命を決定するために，物理的記憶位置又は物理的記憶位置の集合が故障までに利用される回数を追跡することを伴ってもよい。
【００５０】
一つの実施例においては，物理的記憶位置が，（ａ）特定の論理ブロックの利用統計と，（ｂ）物理的記憶位置の属性とに基づいて，特定の論理ブロック内に論理的に記憶されたデータを記憶するために選択される（ステップ２０６）。
【００５１】
一つの実施例においては，高読出し速度及び／又は高書込み速度を有する物理的記憶位置が，高利用頻度と関係する論理ブロックに論理的に記憶されたデータを記憶するために選択される。さらに，低読出し速度及び／又は低書込み速度を有する物理的記憶位置が，低利用頻度と関係する論理ブロックに論理的に記憶されたデータを記憶するために選択される。
【００５２】
一つの実施例においては，長寿命の物理的記憶位置が，高利用頻度と関係する論理ブロックに論理的に記憶されたデータを記憶するために選択される。さらに，短寿命の物理的記憶位置が，低利用頻度と関係する論理ブロックに論理的に記憶されたデータを記憶するために選択される。
【００５３】
一つの実施例においては，論理ブロックに論理的に記憶されたデータは，当該データが，当該データを記憶してから特定の時間窓内で読み出されることが予測されると判定されたとき，高速記憶位置に記憶してもよい。物理的記憶位置は，データが記憶された時刻又は事象に基づいて，論理ブロックに論理的に記憶されたデータを記憶するために選択してもよい。例えば，利用統計が，特定の論理ブロックに論理的に記憶されたデータが毎日午前９時に読み出され，当該データは午前７時から午前９時の間に記憶されることを示すとき，当該データは高読出し速度を有する物理的記憶位置に記憶してもよい。
【００５４】
一つの実施例においては，特定の論理ブロックに論理的に記憶されたデータを記憶するための物理的記憶位置を決定するために，種々の種類の利用統計（例えば，利用頻度，利用種別，利用時刻，等）及び／又は種々の種別の記憶位置属性（例えば，速度，寿命，等）を組み合わせて評価してもよい。例えば，特定の論理ブロックに論理的に記憶された特定のデータは，頻繁に読み出されるが，頻繁には書き込まれないことがある。高読出し速度及び高推定故障前読出し回数を有する物理的記憶位置を，特定のデータを記憶するために選択してもよい。たとえこの物理的記憶位置が低書込み速度又は低推定故障前書込み回数を有していても，この物理的記憶位置を選択してもよい。
【００５５】
一つの実施例においては，物理的記憶位置の選択は，すべての利用可能な記憶位置の比較に基づく。例えば，利用可能な記憶位置のうち，最高速又は最長寿命の記憶位置の上位四分位を，最頻利用データの上位四分位と対照する。
【００５６】
別の例は，従来のプラッタドライブとＳＳＤとの同時使用を伴う。従来のプラッタドライブは一般に，非常に長い寿命又は推定寿命を有する傾向にある。しかし，従来のプラッタドライブは低速の傾向がある。これに比べてＳＳＤは一般に短寿命であるが，従来のプラッタドライブよりも高速な読出し／書込みを提供する。例として，バックグラウンドプロセスは，特定の論理ブロックに論理的に記憶されたデータ集合（例えばログファイル）に継続的に書込みを行うことがあるが，データを読み出すことはめったにない。この場合，書込みを要求しているのは低優先度のバックグラウンドプロセスであることから，特定の論理ブロックに論理的に記憶されたデータの書き込み速度は重要ではないと判断してもよい。たとえ書込みが頻繁に要求されても，読出しはめったに要求されないことから，この判断をしてもよい。従来のプラッタドライブは無故障書込み回数が非常に多く，書込み速度は重要でないため，低書込み速度を有する従来のプラッタドライブが適当なことがある。ＳＳＤは継続的書込みで故障する可能性が高く，ＳＳＤの高書込み速度は不必要であるため，この例では，ＳＳＤは適切ではないことがある。
【００５７】
データを記憶する適切な物理的記憶位置が選択されると，データが選択された物理的記憶位置に記憶される（ステップ２０８）。物理的記憶位置へデータを記憶するステップは，特定の記憶位置属性（例えば，最短寿命）に一致する任意の物理的記憶位置にデータを記憶するように記憶装置ドライバに指示するステップを伴ってもよい。
【００５８】
一つの実施例においては，物理的記憶位置にデータを記憶するステップは，特定のメモリ領域内の任意の物理的記憶位置にデータを記憶するように記憶装置ドライバに指示するステップを伴ってもよい。例えば，特定の記憶装置又は記憶装置内の特定の領域を選択してもよい。そして記憶装置ドライバはデータを記憶するために物理的記憶位置の特定のアドレスを選択してもよい。
【００５９】
一つの実施例においては，物理的記憶位置にデータを記憶するステップは，物理的記憶位置の特定のアドレスにデータを記憶させるように記憶装置ドライバに指示するステップを伴ってもよい。
【００６０】
データ記憶の複製
一つの実施例においては，データの複製を複数の物理的記憶位置（例えば，複数の異なる装置及び／又は単一の装置の複数の領域）に記憶してもよい。例えば，ディスクファイルの論理ブロックに論理的に記憶されたデータを，回転プラッタドライブ及びＳＳＤに同時に記憶してもよい。
【００６１】
一つの実施例においては，データは，回転プラッタドライブのような第１データ源に要求してもよい。要求に応答して，要求されたデータもまたＳＳＤに記憶されていることが判定される。データは回転プラッタドライブの代わりにＳＳＤから読み出してもよい。１又は複数の要因によって，要求されたデータ源の代わりに新規データ源を選択してもよい。例えば，ＳＳＤからのデータ読出しは回転プラッタドライブからのデータ読出しより高速なことがある。連続的な読出し要求を伴うほかの例では，回転プラッタドライブの長寿命性のため，要求されたＳＳＤの代わりに回転プラッタドライブをデータ源として選択してもよい。
【００６２】
一つの実施例においては，システムの現在の利用率に基づいて，特定の物理的記憶位置を選択してもよい。例えば，現在の利用率又は現在の入出力要求キューを判定するために，要求されたデータを記憶する複数の記憶装置を評価してもよい。最低の現在利用率又は最大の現在可用性を有する記憶装置を，データを取得するためのデータ源として選択してもよい。例えば，データを有する記憶装置の一つは近々の計算機ジョブのために既に予定されており，一方ほかの記憶装置は利用可能なことがある。
【００６３】
一つの実施例によれば，ここで説明した技法は１又は複数の特定用途計算装置によって実現される。特定用途計算装置は，この技法を実行するために布線されていてもよいし，１又は複数の特定用途集積回路（ＡＳＩＣ）のようなデジタル電子装置若しくは本技法を実行するように永続的にプログラムされているフィールドプログラム可能ゲートアレイを含んでもよいし，又はファームウェア，メモリ，ほかの記憶装置若しくはその組合せに記憶されたプログラム命令に従って本技法を実行するようにプログラムされた１又は複数のはん用ハードウェアプロセッサを含んでもよい。このような特定用途計算装置はまた，専用布線論理，ＡＳＩＣ又は本技法を遂行するための専用プログラムを有するＦＰＧＡを組合せてもよい。特定用途計算装置は，デスクトップ計算機システム，可搬型計算機システム，携帯型装置，ネットワーク装置又は本技法を実現するための布線論理及び／又はプログラム論理を組み込んだ任意のほかの装置であってよい。
【００６４】
例えば，図３は，本発明の実施例が実現される計算機システム３００を示すブロック図である。計算機システム３００は，バス３０２又は情報を伝送するほかの通信機構と，情報を処理するためのバス３０２と接続されたハードウェアプロセッサ３０４とを含む。ハードウェアプロセッサ３０４は，例えば，はん用マイクロプロセッサであってよい。
【００６５】
計算機システム３００はまた，情報及びプロセッサ３０４で実行する命令を記憶するための，バス３０２と接続されたＲＡＭ又はほかの動的記憶装置のような主メモリ３０６も含む。主メモリ３０６はまた，プロセッサ３０４で実行する命令の実行中に一時変数又はほかの中間情報を記憶するためにも用いてよい。このような命令は，プロセッサ３０４を利用できる非一時的記憶媒体に記憶されたとき，計算機システム３００を，命令によって指定された操作を実行するようにカスタマイズされた特定用途機械にする。
【００６６】
計算機システム３００は，静的情報及びプロセッサ３０４用の命令を記憶する，ＲＯＭ３０８又はバス３０２に接続されたほかの静止記憶装置を更に含む。磁気ディスク又は光ディスクのような記憶装置３１０は，情報及び命令を記憶するために提供され，バス３０２に接続される。
【００６７】
計算機システム３００は，計算機利用者に情報を表示するための，ＣＲＴのような表示装置３１２１にバス３０２を介して接続されていてもよい。英数字キー又はほかのキーを含む入力装置３１４は，情報及びコマンド選択をプロセッサ３０４に伝送するために，バス３０２に接続されている。ほかの種類の利用者入力装置は，方向情報及びコマンド選択をプロセッサ３０４に伝送し，表示装置３１２上のカーソルの動きを制御するための，マウス，トラックボール又はカーソル方向キーのようなカーソル制御３１６である。この入力装置は，平面内の位置を指定できるように，通常２軸，すなわち第１軸（例えば，ｘ）及び第２軸（例えば，ｙ）に自由度２を有する。
【００６８】
計算機システム３００は，専用の布線論理，１又は複数のＡＳＩＣ若しくはＦＰＧＡ，ファームウェア及び／又は計算機システムと組み合わせて計算機システム３００を特定用途機械にする，又はプログラムするプログラム論理を用いてここで説明した技法を実現することができる。一つの実施例によれば，ここで説明した技法は，主メモリ３０６に含まれる１又は複数の命令の１又は複数のシーケンスを実行するプロセッサ３０４に応答して，計算機システム３００によって実行される。このような命令は，記憶装置３１０のようなほかの記憶媒体から主メモリ３０６に読み込まれてもよい。主メモリ３０６に含まれる一連の命令を実行することによって，プロセッサ３０４にここで説明したステップを実行させる。代替実施例においては，ソフトウェア命令の代わりに，又はソフトウェア命令と組み合わせて，布線回路を用いてもよい。
【００６９】
ここで用いた「記憶媒体」という用語は，機械が特定の方法で動作するようにするデータ及び／又は命令を記憶する任意の非一時的媒体を指す。このような記憶媒体は，不揮発性媒体及び／又は揮発性媒体を含んでもよい。不揮発性媒体は，例えば，記憶装置３１０のような光ディスク又は磁気ディスクを含む。揮発性媒体は，主メモリ３０６のようなダイナミックメモリを含む。記憶媒体のよくある形態は，例えば，フロッピー（登録商標）ディスク，フレキシブルディスク，ハードディスク，ＳＳＤ，磁気テープ若しくは任意のほかの磁気データ記憶媒体，ＣＤ−ＲＯＭ，任意のほかの光データ記憶媒体，穴パターンを有する任意の物理媒体，ＲＡＭ，ＰＲＯＭ，ＥＰＲＯＭ，フラッシュＥＰＲＯＭ，ＮＶＲＡＭ，任意のほかのメモリチップ又はカートリッジ，を含む。
【００７０】
記憶媒体は，伝送媒体とは区別されるが，一緒に用いてもよい。伝送媒体は，記憶媒体間の情報転送に用いられる。例えば，伝送媒体は，同軸ケーブル，銅線及び光ファイバを含み，バス３０２を成す電線も含む。伝送媒体はまた，無線波及び赤外データ通信の際に発生されるような音波又は光波の形態を取ってもよい。
【００７１】
１又は複数の命令の１又は複数のシーケンスを，実行するためにプロセッサ３０４へ搬送する際に，種々の形態の媒体が関与してもよい。例えば，最初は，命令は遠隔計算機の磁気ディスク又はＳＳＤに担持される。遠隔計算機は命令をダイナミックメモリにロードし，モデムを用いて電話線を介して命令を送信する。計算機システム３００のモデムは電話線上のデータを受信し，赤外線送信器を用いてデータを赤外線信号に変換することができる。赤外線検知器は赤外線信号で搬送されるデータを受信することができ，そして適切な回路がバス３０２にデータを置くことができる。バス３０２はデータを主メモリ３０６へ搬送し，プロセッサ３０４は主メモリからデータを取得して命令を実行する。主メモリ３０６が受信した命令は任意選択で，プロセッサ３０４による実行の前又は後のいずれかに，記憶装置３１０に記憶してもよい。
【００７２】
計算機システム３００はまた，バス３０２に接続された通信インタフェース３１８も含む。通信インタフェース３１８は局所網３２２に接続されたネットワークリンク３０２に双方向データ通信接続を提供する。例えば，通信インタフェース３２０は，統合サービスデジタル網（ＩＳＤＮ）カード，ケーブルモデム，衛星モデム，又は対応する種類の電話線にデータ通信接続を提供するモデムであってよい。別の例として，通信インタフェース３１８は，両立性のある構内網（ＬＡＮ）にデータ通信接続を提供するＬＡＮカードであってよい。無線リンクもまた実現できる。このような任意の実現形態において，通信インタフェース３１８は種々の情報を表すデジタルデータストリームを搬送する電気信号，電磁気信号又は光信号を送受信する。
【００７３】
ネットワークリンク３２０は通常１又は複数のネットワークを介してほかのデータ装置にデータ通信を提供する。例えば，ネットワークリンク３２０は局所網３２２を介してホスト計算機３２４又はインターネットサービスプロバイダ（ＩＳＰ）３２６が運用するデータ装置にコネクションを提供してもよい。ＩＳＰ３２６は次いで，今日よく「インターネット」３２８と呼ばれる世界規模のパケットデータ通信網を介して，データ通信サービスを提供する。局所網３２２及びインターネット３２８は双方とも，デジタルデータストリームを搬送する電気信号，電磁気信号又は光信号を用いる。種々のネットワークを介した信号と，ネットワークリンク３２０上の信号及び通信インタフェース３１８を介した信号とは，計算機システム３００との間でデジタルデータを搬送する伝送媒体の例示形態である。
【００７４】
計算機システム３００は，ネットワーク，ネットワークリンク３２０及び通信インタフェース３１８を介してメッセージを送信し，プログラムコードを含むデータを受信することができる。インターネットの例では，サーバ３３０は，インターネット３２８，ＩＳＰ３２６，局所網３２２及び通信インタフェース３１８を介して，応用プログラム用に要求されたコードを送信してもよい。
【００７５】
受信したコードは，プロセッサ３０４によって受信したとき実行してもよいし，及び／又は後で実行するために記憶装置３１０若しくはほかの不揮発性記憶装置に記憶してもよい。
【００７６】
本明細書においては，本発明の実施例を多くの特定の詳細について説明したが，それらは実現形態ごとに異なってもよい。したがって，本明細書及び図面は制限的な意味ではなく例示としてみなすことが望ましい。本発明の範囲の唯一かつ排他的な指標と，本発明の範囲として出願人が意図するところとは，任意の後の補正を含む本願の請求項に由来する特定の形態において，本願の一組の請求項に由来する文字通りの範囲及び均等な範囲である。
【図１】
2014501997.tif 000003
【図２】
2014501997.tif 000004
【図３】
2014501997.tif 000005
【国際調査報告】
2014501997.tif 000006
2014501997.tif 000007
2014501997.tif 000008