(57)【要約】  記憶装置上のコンテンツの記憶を制御する方法は、コンテンツをキャッシュするように構成された記憶装置と通信するステップと、記憶装置上で第１のデータオブジェクトのセットをキャッシュするための記憶コストを決定するステップとを含む。この決定するステップは、少なくとも一部は第１のデータオブジェクトのセットの特性と記憶装置の特性とに基づくものである。また、メディアコンテンツをキャッシュすることのできる記憶装置と、記憶装置エージェントと、キャッシュマネージャとを備える記憶システムも提供される。記憶装置エージェントは、記憶装置およびキャッシュマネージャと通信し、キャッシュマネージャに記憶コストを提供するように動作する。記憶装置エージェントは、記憶装置でデータオブジェクトをキャッシュするための記憶コストを、少なくとも一部はデータオブジェクトの特性と記憶装置の特性とに基づいて決定する。
2011530133.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置上のコンテンツの記憶を制御する方法であって、
コンテンツをキャッシュするように構成された記憶装置と通信するステップと、
前記記憶装置上で第１のデータオブジェクトのセットをキャッシュするための記憶コストを、少なくとも一部は前記第１のデータオブジェクトのセットの特性と前記記憶装置の特性とに基づいて決定するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記記憶装置上の第１のデータオブジェクトのセットのキャッシングを、少なくとも一部は前記記憶コストに基づいて制御するステップをさらに含む方法。
【請求項３】
請求項１記載の方法において、
前記記憶コストは、挿入されるべきデータオブジェクトの特性にも基づいて決定される方法。
【請求項４】
請求項１記載の方法において、
前記記憶コストは、削除されるべきデータオブジェクトの特性にも基づいて決定される方法。
【請求項５】
請求項１記載の方法において、
前記記憶コストは、更新されるべきデータオブジェクトの特性にも基づいて決定される方法。
【請求項６】
請求項１記載の方法において、
前記記憶装置の特性は、前記記憶装置の内部構造、前記記憶装置の使用年数、前記記憶装置の管理能力、前記記憶装置の訂正能力、前記記憶装置の履歴、前記記憶装置上にすでに記憶されているコンテンツ、および前記記憶装置の環境条件のうちの少なくとも１つを含む方法。
【請求項７】
請求項１記載の方法において、
前記記憶コストを決定するための基礎とされる特性に付随する情報のデータベースを維持するステップをさらに含む方法。
【請求項８】
請求項１記載の方法において、
前記記憶コストを決定するための基礎とされる特性に変化が生じ次第、前記記憶コストを動的に更新するステップをさらに含む方法。
【請求項９】
請求項１記載の方法において、
前記記憶コストは、前記記憶装置上のデータオブジェクトのキャッシングによる影響を受けるホストのアクティビティの特性にも基づいて決定される方法。
【請求項１０】
ホストと通信するように動作する記憶システムであって、
コンテンツをキャッシュするように構成された記憶装置と、
前記記憶装置上で第１のデータオブジェクトのセットをキャッシュするための記憶コストを、少なくとも一部は前記第１のデータオブジェクトのセットの特性と前記記憶装置の特性とに基づいて決定するように動作する記憶装置エージェントと、
前記記憶装置上の第１のデータオブジェクトのセットのキャッシングを、少なくとも一部は前記記憶コストに基づいて制御するように動作するキャッシュマネージャと、を備え、
前記記憶装置エージェントは、前記記憶装置および前記キャッシュマネージャと通信し、前記キャッシュマネージャに前記記憶コストを提供するように動作する記憶システム。
【請求項１１】
請求項１０記載の記憶システムにおいて、
前記記憶装置の特性は、前記記憶装置の内部構造、前記記憶装置の使用年数、前記記憶装置の管理能力、前記記憶装置の訂正能力、前記記憶装置の履歴、前記記憶装置上にすでに記憶されているコンテンツ、および前記記憶装置の環境条件のうちの少なくとも１つを含む記憶システム。
【請求項１２】
請求項１０記載の記憶システムにおいて、
前記記憶装置は、フラッシュ技術に準拠した構成を有する記憶システム。
【請求項１３】
請求項１０記載の記憶システムにおいて、
前記記憶装置エージェントは、前記記憶装置内に組み込まれている記憶システム。
【請求項１４】
請求項１０記載の記憶システムにおいて、
前記記憶装置エージェントは、前記キャッシュマネージャを収容するホストの一部である記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、記憶システムにおける記憶装置に関する。より詳細には、本発明は、キャッシュコンテンツを記憶するように構成された記憶装置の使用に関する。
【背景技術】
【０００２】
キャッシュメモリ（略して「キャッシュ」）は、通常、別の場所に記憶されている元データを、ローカルで、すなわちキャッシュメモリから読み出すコストと比較して、計算またはフェッチするのに高くつく場合に、その元データを複製するために使用される。
データのコンテキストにおいて、キャッシング「コスト」および「高くつく」とは、通常、１台の装置（記憶装置など）がデータネットワークを介して、別のリモート装置からデータをフェッチするのに必要とする時間、記憶および計算リソースを指している。
【０００３】
データは、例えば、そのデータをフェッチするのに比較的長い時間を要する場合、計算またはフェッチするのに高くつくとみなされる。言い換えると、キャッシュメモリは、頻繁にアクセスされるデータを高速アクセスのために記憶することのできる一時記憶領域である。データがキャッシュに記憶されると、その後の使用は、元データを再フェッチまたは再計算するのではなく、キャッシュしたコピーにアクセスすることにより行うことができる。キャッシュメモリは、データ記憶を管理するためのキャッシュアルゴリズム（当該技術分野で「置換アルゴリズム」や「置換ポリシー」ともいう）を使用する。例えば、キャッシュが満杯のとき、キャッシュによって使用されるアルゴリズムは、新しい（１つまたは複数の）データオブジェクトのための空きを作るのに、どの（１つまたは複数の）データオブジェクトを廃棄すべきかを選択する。
【０００４】
（具体的構成によって、例えば数メガバイトから数十メガバイトまで様々である）キャッシュサイズの限界により、キャッシュは、限られた数のデータオブジェクトまたは限られたサイズのデータオブジェクトしか記憶することができない。限られたキャッシュサイズによって生じる問題は、モバイルネットワーク（セルラーなど）を介したメディアコンテンツ配信が普及してきた、モバイルネットワーク接続技術を使用して簡単にアクセスすることのできるますます多くのデータを、ユーザがより多く消費することにより悪化する。
【０００５】
キャッシング方式の有効性は、使用されるキャッシュ置換ポリシーに大きく左右される。従来のキャッシュポリシーは、通常、データキャッシングに、Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ（「ＬＲＵ」：最近最も使われなかった項目から先に廃棄される）、ＬＲＵしきい値（一定のしきい値サイズより大きい項目は変更されない）、またはＬｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ（「ＬＦＵ」：使用頻度が最も低い項目から先に廃棄される）置換ポリシーと呼ばれる方法を使用する。また、他の置換ポリシーも、記憶されるかまたは廃棄されるべきファイルのサイズ、および／または待ち時間およびネットワークコストを考慮する。従来のキャッシュ置換ポリシーは、主に、使用プロファイルに関するものであり、キャッシング手順と関連付けられる他のパラメータに基づくものではない、したがって、汎用的で最適ではないため問題の多いものであった。
【発明の概要】
【０００６】
以上の知見、および現在の必要性を鑑みると、メディアキャッシングの性能が最適化されるようにキャッシュ値とデータオブジェクトとを関連付ける新しいキャッシュ置換ポリシーを導入することが有利である。先行技術に加えて、またはこれと異なり、記憶装置上のデータオブジェクトの記憶またはキャッシングは、少なくとも２つの要因、すなわち、１）記憶装置の特性と、２）データオブジェクトの特性とに基づいて行われる。
【０００７】
本願明細書で開示するキャッシュ置換ポリシーを使用する記憶装置は、任意の適切な記憶装置、例えば不揮発性記憶装置などであり得る。例として、この不揮発性記憶装置は、フラッシュメモリやＥＥＰＲＯＭベースの記憶装置であり得る。
本願明細書でその様々な例を論じる実施形態は、記憶装置上のコンテンツの記憶を制御する方法を含み、この方法は、コンテンツをキャッシュするように構成された記憶装置と通信するステップと、記憶装置上で第１のデータオブジェクトのセットをキャッシュするための記憶コストを、少なくとも一部は第１のデータオブジェクトのセットの特性と記憶装置の特性とに基づいて決定するステップとを含む。
【０００８】
また、記憶コストは、挿入されるべきデータオブジェクトの特性、削除されるべきデータオブジェクトの特性、および／または更新されるべきデータオブジェクトの特性に基づいて決定されてもよい。また、記憶コストは、記憶装置上のデータオブジェクトのキャッシングによる影響を受けるホストのアクティビティの特性に基づいて決定されてもよい。記憶装置の特性は、記憶装置の内部構造、記憶装置の使用年数、記憶装置の管理能力、記憶装置の訂正能力、記憶装置の履歴、記憶装置上にすでに記憶されているコンテンツ、および記憶装置の環境条件のうちの少なくとも１つを含んでいてもよい。
【０００９】
また、この方法は、記憶装置上の第１のデータオブジェクトのセットのキャッシングを、少なくとも一部は記憶コストに基づいて制御することを含んでいてもよい。また、この方法は、記憶コストの決定の基礎となる特性に付随する情報のデータベースを維持するステップを含んでいてもよい。代替として、またはこれに加えて、この方法は、記憶コストの決定の基礎となる特性に変更が生じ次第、記憶コストを動的に更新するステップを含んでいてもよい。
【００１０】
前述した手法の別の実施形態において、記憶システムは、コンテンツをキャッシュするように構成された記憶装置と、記憶装置上で第１のデータオブジェクトのセットをキャッシュするための記憶コストを決定するように動作する記憶装置エージェントと、記憶装置上の第１のデータオブジェクトのセットのキャッシングを、少なくとも一部は記憶コストに基づいて制御するように動作するキャッシュマネージャとを含むホストと通信するように動作する。記憶装置エージェントは、記憶コストを、少なくとも一部は第１のデータオブジェクトのセットの特性と記憶装置の特性とに基づいて決定する。記憶装置エージェントは、記憶装置とキャッシュマネージャと通信し、キャッシュマネージャに記憶コストを提供するように動作する。
【００１１】
記憶装置の特性は、記憶装置の内部構造、記憶装置の使用年数、記憶装置の管理能力、記憶装置の訂正能力、記憶装置の履歴、記憶装置上にすでに記憶されているコンテンツ、および記憶装置の環境条件のうちの少なくとも１つを含んでいてもよい。
記憶装置は、フラッシュ技術に準拠した構成を有していてもよい。記憶装置エージェントは、記憶装置内に組み込まれていてもよく、キャッシュマネージャを収容するホストの一部とすることもできる。
【００１２】
添付の図面と以下の記述を読めば明らかになるように、説明する実施形態にはさらに別の特徴および利点もあり得る。
様々な実施形態のより十分な理解のために、添付の図面を参照する。図面において、類似の参照符号は、全体を通して対応する部分または要素を指し示したものである。
【図面の簡単な説明】
【００１３】
【図１】一例示的な実施形態による記憶システムを示すブロック図である。
【図２】別の実施形態による記憶システムを示すブロック図である。
【図３】記憶装置エージェントが記憶装置内に組み込まれている図１の記憶装置を示すブロック図である。
【図４】記憶装置エージェントとキャッシュマネージャとが記憶装置内に組み込まれている図１の記憶装置を示すブロック図である。
【図５】一実施形態による、記憶装置上でデータオブジェクトを記憶する方法を示す例示的な流れ図である。
【発明を実施するための形態】
【００１４】
各実施形態およびその様々な態様を以下でさらにより詳細に説明する。この説明は、特許請求の範囲を限定するためのものではなく、そのような実施形態の例を示すためのものである。したがって、以下の考察では、ホストと通信し、記憶装置の動作を管理するための様々な記憶システムを含む例示的な実施形態を提示する。そのようなシステムは、ソフトウェアとして実施されても、ファームウェアとして実施されても、ハードウェアとして実施されても、これらの組み合わせとして実施されてもよい。
【００１５】
例示的な実施形態の記憶装置は、ホスト内に組み込まれた専用の取り外し不能な記憶装置とすることもでき、ホストから取り外すように構成された取り外し可能な記憶装置とすることもできる。
記憶装置として使用するのに適する取り外し可能な記憶装置の一種がメモリカードである。メモリカードは、一般にメモリカードをホストする様々な電子機器のためのデジタルデータを記憶するのに使用される。メモリカードの中には、そのホストから取り外すことができ、よって、記憶されたデジタルデータを携帯可能にすることを意味する、「取り外し可能な」ものがある。メモリカードは、比較的小さいフォームファクタを持つことができる。
【００１６】
デジタルカメラ、携帯電話、メディアプレーヤ／レコーダ（ＭＰ３やＭＰ４など）、ハンドヘルドまたはノート型コンピュータ、個人用携帯情報端末（ＰＤＡ）、ネットワークカード、ネットワーク家電、セットトップボックス、およびハンドヘルド機器などがホストの例である。ＰＤＡは、通常、いくつか具体例を挙げると、アドレス帳、日記帳、電子メモ帳といった様々な個人情報管理アプリケーションを備えた、ユーザ携帯用のコンピュータシステムとして知られている。ホストおよび／または外部機器は、有線または無線の通信路を介して記憶装置と通信出来ることは当該技術分野では周知のことである。
【００１７】
本願明細書に開示された記憶装置、記憶システムおよび／またはコントローラは、当該技術分野で公知の任意の種類のメモリ素子（フラッシュメモリなど）、および今後考案されるメモリ素子と適合することができる。記憶装置は、電源が切られたときでもその記憶を保持し、または記憶された状態を保持する不揮発性メモリであり得る。記憶装置は、それだけに限らないが、電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、ＥＰＲＯＭ、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、強誘電体ＲＡＭ（ＦｅＲＡＭまたはＦＲＡＭ）を含む消去可能でプログラム可能なメモリであり得る。
本願明細書で開示するキャッシング置換ポリシーとこのポリシーを使用する記憶装置とは、メモリの種類に依存するものではなく、フラッシュメモリであれ、フラッシュメモリ以外であれ、任意の種類のメモリを用いて実施されてよい。また、本願明細書で開示するキャッシングポリシーを使用する記憶装置は、３次元メモリチップ技術に準拠したものとすることもできる。
【００１８】
記憶装置は、オーディオ、ビデオ、画像ファイルなどといったデジタルメディアを記憶するのに使用される、セキュアデジタル（ＳＤ）のメモリカード形式に適合していてもよい。また、記憶装置は、マルチメディアカード（ＭＭＣ）のメモリカード形式、コンパクトフラッシュ（ＣＦ）のメモリカード形式、フラッシュＰＣ（ＡＴＡフラッシュなど）のメモリカード形式、スマートメディアのメモリカード形式、ＵＳＢフラッシュデバイス、または他の任意の標準形式に適合していてもよい。これらのメモリカードの供給者の１つが、本願の譲受人であるサンディスク  コーポレイションである。
【００１９】
図１は、一例示的な実施形態による記憶システム１０のブロック図である。記憶システム１０は、通常、記憶装置１２と、キャッシュマネージャ１６と、記憶装置エージェント１８とを含む。
記憶装置１２は、デジタルコンテンツを記憶し、キャッシュするためのメモリ１４と、メモリ１４を管理するための記憶コントローラ１５と、記憶コントローラ１５とキャッシュマネージャ１６と記憶装置エージェント１８との間の通信を容易にするための通信インターフェイス１１とを含む。
メモリ１４は、機能上２つの部分に分けられ、その１つがキャッシュメモリとして機能する（すなわち、キャッシュされたデータオブジェクト専用とされる）。メモリアレイ１４は、揮発性または不揮発性（フラッシュなど）のメモリセルのアレイとして構成することができる。
また、通信インターフェイス１１はメモリアレイ１４にも接続される。通信インターフェイス１１とメモリ１４との間、および通信インターフェイス１１と記憶コントローラ１５との間の接続は、データフローが記憶装置１２を出入りすることを可能にする。通信インターフェイス１１は、キャッシュマネージャ１６の制御または監視の下においてメモリ１４上でデータオブジェクトを記憶するように構成されている。
【００２０】
記憶装置エージェント１８は、記憶装置１２（すなわち、メモリ１４のキャッシュデータ項目専用部分）上でデータオブジェクトをキャッシュした場合の記憶コストを決定する。記憶装置エージェント１８は、記憶装置１２内または記憶コントローラ１５内に組み込まれていてもよく、これらの外部にあってもよい。
キャッシュマネージャ１６は、記憶装置１２と記憶装置エージェント１８とに動作可能に接続されている。キャッシュマネージャ１６は、記憶装置１２上のデータオブジェクトのキャッシングおよび記憶を、少なくとも一部は記憶装置エージェント１８によって提供される記憶コストに基づいて制御する。キャッシュマネージャ１６は、したがって、ネットワークコスト、ユーザエクスペリエンスコスト、電力消費などといった、外部機器からキャッシュマネージャ１６に提供される他の基準に基づいて、キャッシングおよび記憶を制御することに留意するべきである。キャッシュデータオブジェクトは、連続メディアコンテンツ（ストリーミングビデオコンテンツなど）、および／または不連続メディアコンテンツ（例えば、ＨＴＭＬファイルなどの静止画像）であり得て、あるいはこれらを含むものであってもよい。
【００２１】
本願明細書に開示されたコンテキストにおいて、「記憶コスト」とは、１つのデータオブジェクトまたはデータオブジェクトのセットをキャッシュするコストを示す数である。一般に、記憶コストは、正または負とすることができる。正の記憶コストは、（例えば）データオブジェクトを置換した結果としてシステム性能が低下することを示す。負の記憶コストは、（例えば）データオブジェクトを検索し、メモリ上の空間を解放する際により大きな利益が得られることを示す。記憶コストは、通常、記憶装置からの／記憶装置への個々のデータオブジェクトの削除、更新、および／または挿入がシステム全体の消耗および性能にどれほどの影響を及ぼすかの指標を提供する。一般的に記憶装置はキャッシング方程式全体において考慮するための一要素にすぎない場合もある。
【００２２】
本願明細書に開示されたコンテキストにおいて、「データオブジェクト」とは、ある仕様（すなわちデータ形式）に従った、または特定のデータ構造としてのバイナリビットのセットとして編成された情報をいう。データオブジェクトは、ファイル（またはファイルの集合体）、（１つまたは複数の）セクタ、（１つまたは複数の）クラスタ、（１つまたは複数の）データベースレコード、１つ以上の表エントリ、（１つまたは複数の）ファイルヘッダ、他のファイル部分、（１つまたは複数の）オーディオトラック、（１つまたは複数の）音楽レコード、（１つまたは複数の）地図、（１つまたは複数の）ビデオクリップ、ユーザアカウント情報といった保護コンテンツなどとして編成されてもよい。「データオブジェクトのセット」は、１つ以上のデータオブジェクトを含む。
「コンテンツ」は、本願明細書では、データオブジェクトおよび／またはデータオブジェクトに付随する情報を含む情報ビットを意味する。以下において、「コンテンツ」と「データオブジェクト」とは区別なく使用される。
【００２３】
記憶装置エージェント１８は、データオブジェクトと関連付けられる記憶コストを、（１）データオブジェクトが記憶されるべき記憶装置の特性と、（２）データオブジェクトの特性という２つの要因に基づいて決定する。これら２つの要因を、従来から使用されている他の要因に加えて、またはこれらの代替として使用してもよい。これは、様々なやり方で数学的に反映されてもよい。１つのやり方は、各特性に対応する加重指数を与える加重一次関数を伴う。例えば、データオブジェクトのある特性を、他の特性よりも、記憶コスト全体にとってより重要とし、かつ／または記憶コスト全体により多くの影響を及ぼすとすることもできる。その場合、これらの特性は、記憶コスト全体の決定に際して、記憶装置エージェント１８からより多くの重みを受け取ることができる。加重指数は、究極的には、事実上主観的であり、いくつかの局面の間での妥協を反映し、したがって、特定の構成に関連して決定されるものである。
【００２４】
データオブジェクトの特性の例には、特に、データオブジェクトの種類（固定データ、ランダムデータなど）、およびデータオブジェクトのサイズが含まれる。記憶装置エージェント１８は、すでに記憶装置１２上に記憶されているデータの特性に基づいて記憶コストを決定してもよい。例えば、固定データ（テキストファイルなど）の記憶は、ランダムデータ（例えば、圧縮ファイルであるＪＰＥＧ(Joint Photographic Experts Group)ファイルなどを特徴付けるランダムデータなど）と比べて、より低い記憶コストを生じ得る。記憶装置エージェント１８は、例えば、そのデータオブジェクトと関連付けられたメタデータに従って、異なるデータオブジェクトの種類を決定してもよい。
【００２５】
記憶装置（記憶装置１２など）の特性には、少なくとも、記憶装置の内部構造（メモリアレイの物理的構造など）が含まれる。例えば、シングルレベルセル（「ＳＬＣ」）の記憶領域上のデータオブジェクトのキャッシングは、マルチレベルセル（「ＭＬＣ」）の記憶領域上のデータオブジェクトのキャッシングと比較して、挿入（すなわち記憶）コストに対して異なる影響を及ぼす。記憶装置の特性の別の非限定的な例は、記憶装置の条件（消耗や使用年数など）、記憶装置のコントローラの管理能力、記憶装置の誤り訂正能力、トランザクションの履歴（記憶装置によって行われた読み出し／書き込み動作／サイクルの数、読み出し／書き込み動作の頻度など）、記憶装置上にすでに記憶されているコンテンツ、記憶装置の環境条件（温度、電圧変動、電圧安定性など）である。
【００２６】
また、記憶コストを計算するとき、記憶装置エージェント１８は、記憶装置１２の特性に対立するものとしての記憶システム１０全体の特性と、記憶装置１２に付随するプロセスとを考慮に入れてもよい。また、通常、記憶装置エージェント１８は、記憶コストを、これから記憶装置に記憶されるデータオブジェクトの特性、および／または削除および／または更新の候補であるデータオブジェクトの特性にも基づいて決定する。
【００２７】
また、記憶コストは、ホストの、もしくはホスト上で走るプロセス、アプリケーション、ドライバ、記憶装置１２とホストとの間のプロトコルセット、および／または記憶装置１２で記憶されるコンテンツによる影響を受ける他のホストアクティビティにも基づいて決定されてもよい。例えば、記憶装置とホストとの間のデータ転送は、ホスト上で走る他のプロセスに（例えば、サービス品質の点で）影響を及ぼし得る。同様に、ホスト上で走るプロセスも、記憶装置１２上のキャッシングに影響を及ぼし得る。これはさらに記憶コストにも影響を及ぼし得る。
記憶装置エージェント１８は、記憶コストの決定の基礎となる他の特性およびホストプロセスを含む、記憶装置１２の特性と、記憶装置１２上に記憶されているキャッシュコンテンツの特性と、記憶装置１２において挿入／削除／更新されるべきデータオブジェクトの特性とに付随する情報のデータベース２０を維持する。
これらの特性のいずれか１つが変化するたび、記憶装置エージェント１８は、情報のデータベース２０を動的に更新する。さらに、記憶装置１２の特性は、記憶装置１２が受けるあらゆる変化の影響を受けるため、その場合には、記憶コストはしかるべく動的に更新される。
【００２８】
言い換えると、１）データオブジェクト、および／または２）記憶装置と関連付けられたメディアデータを含む、プロパティの任意の挿入、置換、削除、更新、変更、および／または１つ以上のデータオブジェクトの他の任意の改変は、個々の（１つまたは複数の）データオブジェクトの記憶コストの変更をもたらし得る。加えて、所与のデータオブジェクトの記憶コストの更新により、さらに、任意の１つ以上の他のデータオブジェクトの記憶コストの更新が必要になることもある。動的更新は、記憶装置エージェント１４および／または記憶装置１２によって適用され得ることに留意するべきである。
【００２９】
記憶装置エージェント１８は、記憶装置１２に組み込まれていてもよい。あるいは、記憶装置エージェント１８は、キャッシュマネージャ１６を収容するホストの一部であり、または、キャッシュマネージャ１６内の統合構成要素としてホスト上に組み込まれている。記憶装置エージェント１８が記憶装置１２の統合構成要素でない場合、記憶装置エージェント１８は、その特性を獲得するために記憶装置１２と通信するように動作することができる。
キャッシュマネージャ１６によって行われる記憶制御は、記憶装置１２上のデータオブジェクトのプログラミングを含む。記憶部分が満杯でない場合、キャッシュマネージャ１６は、記憶装置１２上で所与のデータオブジェクトをプログラムする。しかし、記憶部分が満杯の場合、キャッシュマネージャ１６は、どのデータオブジェクトを削除すべきかを決定する必要がある。キャッシュマネージャ１６はこれを、キャッシュマネージャ１６に提供されるメトリックのセットに基づいて決定する。
【００３０】
通常、最低の記憶コスト値を有する（と対応するメトリックのセットによって指示される）データオブジェクトは、システム性能全体の低下に及ぼす影響が最小であり、そのため、これが置換されるべきものとして選択される。置換のための既存のデータオブジェクトは、具体的構成に従って記憶装置エージェント１４および／またはキャッシュマネージャ１６によって選択され得ることに留意するべきである。
このような記憶制御は、キャッシュマネージャごとに異なっていてもよく、システム構成ごとに異なっていてもよい。
【００３１】
例えば、第１の構成に従うキャッシュマネージャは、キャッシング方程式全体におけるあるデータオブジェクトの置換／検索および記憶装置１２上のメモリ空間の解放の影響が、システム性能の点から見て有益であると判定する一方で、第２の構成に従うキャッシュマネージャは、そのような置換／検索がシステム性能全体にとって有効ではないと判定することもある。
削除コストおよび挿入コストを決定し次第、キャッシュマネージャ１６は、次に、記憶装置１２のキャッシュ部分１５上でデータオブジェクトをキャッシュし、よって通常はシステム性能全体の低下に及ぼす影響が最小であるデータオブジェクトを置換する。
【００３２】
記憶装置１２が記憶システム１０の一構成要素である場合、キャッシュマネージャ１６は、データオブジェクトのキャッシングを、記憶コストではないキャッシュコストにも基づいて制御してもよい。例えば、キャッシュコストは、ネットワークコスト（すなわち、データオブジェクトの各バイトをネットワークで接続された装置との間と、記憶システム内とで転送するためのコスト）、ユーザエクスペリエンスコスト（すなわち、ＨＴＭＬページ内のデータオブジェクトの配置に起因する、記憶装置上にデータオブジェクト全体をロードするのに要する時間量など）、ＣＰＵ消費、および／または電力消費の指標とすることができる。さらに、キャッシュマネージャ１６は、現在公知の、またはまだ導入されていない任意の置換ポリシーと組み合わせて、またはこれに加えてデータのキャッシングを制御してもよい。
前述したように、メディアキャッシングには複数の目的がある。これらすべての目的が、キャッシング使用に際して相互に競合する。この例示的な実施形態を使用するユーザが、記憶装置の特定の特性に（キャッシュコストに関して）より多く支払おうとする場合、記憶装置エージェント１４はそのような態様に都合の良いように構成することができる。
【００３３】
一実施例によれば、キャッシュマネージャ１６は記憶装置１２に置かれる。そのようなものとして記憶装置においてキャッシュマネージャを実施する一例示的な実施形態が図４に示されている。別の実施例によれば、キャッシュマネージャ１６は、記憶装置１２から見て外部にあり、有線および／または無線の通信リンクにおいて記憶装置１２に接続可能なリモート機器とすることができる。したがって、キャッシュマネージャ１６は、記憶装置１２と共に、物理的には記憶装置１２とは別個にホスト内に置くことができる。
【００３４】
図２は、記憶装置エージェント１８がキャッシュマネージャ１６内に組み込まれている図１の記憶システムのブロック図である。この例示的な実施形態において、記憶装置エージェント１８は、キャッシュマネージャ１６の一構成要素であり、記憶装置エージェント１８は、キャッシュマネージャ１６を介して記憶装置１２と通信する。
【００３５】
図３は、記憶装置エージェント１８ａが記憶装置１２ａ内に組み込まれている記憶装置１２ａのブロック図である。記憶装置１２ａは、例えば、図１のメモリアレイ１４、通信インターフェイス１１、記憶装置エージェント１８とそれぞれ同様に機能する、メモリアレイ１４ａと、通信インターフェイス１１ａと、記憶装置エージェント１８ａとを含む。
【００３６】
図４は、記憶装置エージェント１８ｂとキャッシュマネージャ１６ｂとが記憶装置内に組み込まれ、記憶装置１２ｂのリソースを使用して相互に通信し合う記憶装置１２ｂのブロック図である。記憶装置１２ｂは、例えば、図１のメモリアレイ１４、通信インターフェイス１１、記憶装置エージェント１８とそれぞれ同様に機能する、メモリアレイ１４ｂと、通信インターフェイス１１ｂと、記憶装置エージェント１８ｂとを含む。
【００３７】
図５は、一実施形態による、記憶装置のキャッシング部分上で新しいデータオブジェクトを記憶する方法３０の流れ図である。図５に示す方法は、図１の記憶装置エージェント１８といった記憶装置エージェントによって、記憶装置１２のメモリ１４におけるキャッシングの候補である新しい各データオブジェクトとコスト値を関連付けるために実行される。前述したように、コスト値は、新しいデータオブジェクトについて、記憶装置の特性と新しいデータオブジェクトの特性との少なくとも２つの要因に基づいて計算される。
【００３８】
ステップＳ３１で、記憶装置エージェント１８がキャッシュマネージャ１６から、記憶装置１２上で新しいデータオブジェクトをキャッシュする要求を受け取る。
ステップＳ３２で、記憶装置エージェント１８は、記憶装置１２の特性と新しいデータオブジェクトの特性とに付随する情報を獲得する。記憶コストを計算するのに使用される記憶装置１２の特性は、時間の経過と共に動的に変化してもよく、様々な構造的特性、および前述したような記憶装置１２の他の物理的特性（記憶装置の使用年数、記憶装置の管理能力など）を含んでいてもよい。新しいデータオブジェクトの記憶コストを計算するのに使用されるこれらの特性は、任意選択で、ステップＳ３３において、記憶装置エージェント１８によって動的に更新されるデータベースに記憶されてもよい。
ステップＳ３４で、記憶装置エージェント１８は、すでにキャッシュされたデータ項目を評価し、それらを新しいデータオブジェクトで置換するために、またはそれらを単に新しいデータオブジェクトで更新するために、１つまたは複数のキャッシュデータオブジェクトを選択する。記憶装置エージェント１８および／またはキャッシュマネージャ１６のどちらかが、置換／更新のために指定されるデータオブジェクトを選択し得ることに留意するべきである。
【００３９】
ステップＳ３６における置換のためのデータオブジェクトの選択は、挿入されるべき指定のデータオブジェクトのサイズに基づいて、例えば、指定のデータオブジェクトのための空きを作るのに、何個のキャッシュデータオブジェクトを削除すべきかまたは削除することができるかとして適用されてもよい。記憶装置エージェント１８は、当該技術分野で公知の様々な手段のいずれかにおいて、記憶装置１２からのデータオブジェクトを置換／検索するための置換コストを決定してもよい（またはそのような置換コストにアクセスしてもよい）。一例によれば、記憶装置エージェント１８は、個々のデータオブジェクトが記憶装置１２にキャッシュされるときのこのデータオブジェクトの置換コストを事前に決定する。次いで、装置エージェント１８が、置換のための（１つまたは複数の）データオブジェクトを選択するよう要求されるときに、記憶装置エージェント１８は、最小必要サイズ、および最小置換コストのデータオブジェクト（またはデータオブジェクトのグループ）を決定することができる。
【００４０】
ステップＳ３５で、記憶装置エージェント１８は、記憶装置上で新しいデータオブジェクトをキャッシュするための記憶コストを計算する。前述したように、そのような決定は、記憶装置１２の特性と、これからキャッシュされることになっている新しいデータオブジェクトの特性と、任意選択で、メモリ１４からの削除の候補であるキャッシュデータオブジェクトの特性とに基づくものである。新しいデータオブジェクトのために計算される記憶コストは、メモリ１４上のデータオブジェクトのキャッシングが記憶装置１２をホストするホストのアクティビティに及ぼす影響にも基づいて決定されてもよい。ホストアクティビティに付随する情報が、通信パスを介してホストから記憶装置エージェント１８に伝えられてもよい。
【００４１】
次いで、ステップＳ３６で、記憶装置エージェント１８は、キャッシュマネージャ１６が、（少なくとも一部は）記憶コストに基づいてメモリ１４上のデータオブジェクトのキャッシングを管理／制御することができる（Ｓ３７）ように、キャッシュマネージャ１６に記憶コストを転送する。この場合もやはり、キャッシュマネージャ１６に提供される記憶コストは、キャッシュマネージャによって考慮されるキャッシング方程式全体における一要素にすぎないかもしれず、キャッシュ制御動作のために提供される（記憶コストではない）他のキャッシュコストに加算されてもよい。
【００４２】
例示的な実施形態の記憶装置は、この機能を備えるように事前に構成された専用の装置とすることもでき、前述した機能の少なくとも一部を含むように構成されている装置とすることもできる。
当業者であれば理解できるように、現在の記憶装置では、多種多様なアーキテクチャを用いて、引き続き新しいアーキテクチャが開発されることが期待されている。一般に、例示的な実施形態は、使用される記憶装置が適切な処理能力を有する限り、多種多様なメモリと併用されてもよい。
【００４３】
本願明細書でその様々な例が説明されている各実施形態は、ハードウェアとして実施されても、ソフトウェアとして実施されても、ファームウェアとして実施されても、ハードウェアとソフトウェアの任意の組み合わせとして実施されてもよい。ハードウェアとソフトウェアとの典型的な組み合わせは、ロードされ、実行されると、前述した方法を実行するようにコンピュータシステムを制御するコンピュータプログラムを備える汎用コンピュータシステムであり得る。また、前述した概念は、前述した各実施形態の実施を可能にするすべての特徴を備え、コンピュータシステムにロードされると、これらの実施形態を実行することのできるコンピュータプログラム製品に組み込むこともできる。このコンテキストにおけるコンピュータプログラムまたはアプリケーションとは、情報処理能力を有するシステムに特定の機能を直接、あるいは次の、ａ）別の言語、コードもしくは表記法への変換、ｂ）異なる構成形態での再現・複製、のどちらか一方または両方の後に、達成させるための、任意の言語、コードもしくは表記法での命令セットの任意の表現を意味するものである。
【００４４】
以上、記憶装置および方法の様々な実施形態を説明してきたが、この説明は限定のためのものではなく、当業者であればこの説明を読めばさらに別の改変が想起することができるはずであり、よって、添付の特許請求の範囲内に該当するものとしてそのような改変を包含することが意図されていることを理解すべきである。
【図１】
2011530133.tif 000003
【図２】
2011530133.tif 000004
【図３】
2011530133.tif 000005
【図４】
2011530133.tif 000006
【図５】
2011530133.tif 000007
【国際調査報告】
2011530133.tif 000008
2011530133.tif 000009
2011530133.tif 000010