(57)【特許請求の範囲】
【請求項１】
内容アドレス記憶装置と、持続型キャッシュとを有し、
前記持続型キャッシュは、
前記持続型キャッシュに格納されるデータに対応付けられた一時的アドレスを生成するように構成された一時的アドレス発生器と、
前記一時的アドレスを用いて、データを前記持続型キャッシュに格納し、かつ、前記持続型キャッシュ内のデータを検索するように構成された非内容アドレス記憶装置と、
前記非内容アドレス記憶装置内のデータに対応付けられた一時的アドレスを、前記内容アドレス記憶装置内のデータに対応付けられた内容アドレスにマッピングするように構成されたアドレス変換器と、を有し、前記持続型キャッシュは、データが前記非内容アドレス記憶装置に格納された後に、アプリケーションへ前記データに対応付けられた一時的アドレスを送信するようさらに構成されている、記憶システム。
【請求項２】
前記非内容アドレス記憶装置に格納されたデータを前記内容アドレス記憶装置に書き込むように構成されているキャッシュ・マネージャーをさらに有する、請求項１に記載の記憶システム。
【請求項３】
前記キャッシュ・マネージャーは、読み出しリクエストに付随したアドレスが一時的アドレスか内容アドレスかを判定するようにさらに構成されている、請求項２に記載の記憶システム。
【請求項４】
データは、該データが前記内容アドレス記憶装置に書き込まれた後に前記持続型キャッシュから削除されるが、前記一時的アドレスと前記内容アドレスの間のマッピングは維持される、請求項１に記載のシステム。
【請求項５】
一時的アドレスと内容アドレスの間のマッピングが周期的に削除される、請求項１に記載の記憶システム。
【請求項６】
前記マッピングは、アプリケーションが、それに戻された全て一時的アドレスを廃棄した後に削除される、請求項５に記載の記憶システム。
【請求項７】
前記非内容アドレス記憶装置は、ソリッド・ステート・ドライブまたはハード・ディスク・ドライブを含む、請求項１に記載の記憶システム。
【請求項８】
データを記憶システムに格納する方法であって、
書き込み要求に対応するデータを非内容アドレス記憶装置に格納するか、または内容アドレス記憶装置に直接書き込むかを判定し、
前記データを前記非内容アドレス記憶装置に格納すると判定された場合、
前記データが前記非内容アドレス記憶装置に格納される一時的アドレスを生成し、
データが、該データが前記内容アドレス記憶装置に書き込まれる前に、前記非内容アドレス記憶装置に持続的に格納されたことを確認し、
アプリケーションへ前記データに対応付けられた一時的アドレスを送信し、
前記データが前記内容アドレス記憶装置に書き込まれた後に、前記非内容アドレス記憶装置内の前記データに対応付けられた少なくとも１つの一時的アドレスを前記内容アドレス記憶装置内の前記データの内容アドレスにマッピングする、記憶システムにデータを格納する方法。
【請求項９】
前記非内容アドレス記憶装置に格納された前記データを前記内容アドレス記憶装置に書き込むことをさらに有する、請求項８に記載の方法。
【請求項１０】
前記記憶システムは、読出しリクエストに対応付けられたアドレスが一時的アドレスか内容アドレスかを判定するように構成されている、請求項８に記載の方法。
【請求項１１】
データを、該データが前記内容アドレス記憶装置に書き込まれた後に前記非内容アドレス記憶装置から削除するが、前記一時的アドレスと前記内容アドレスの間のマッピングは維持する、請求項８に記載の方法。
【請求項１２】
一時的アドレスと内容アドレスの間のマッピングを周期的に削除する、請求項８に記載の方法。
【請求項１３】
前記マッピングを、アプリケーションが、それに戻ったすべての一時的アドレスを廃棄した後に削除する、請求項１２に記載の方法。
【請求項１４】
前記非内容アドレス記憶装置がソリッド・ステート・ドライブまたはハード・ディスク・ドライブを含む、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを内容アドレス記憶装置に格納することに関し、特に、データを内容アドレス記憶装置に格納することに伴うレイテンシ（待ち時間）を短くするためにアプリケーションと内容アドレス記憶装置の間にストレージ層を配置することに関する。
【背景技術】
【０００２】
内容アドレス記憶（ＣＡＳ）装置は、データを書き込むこと関して、伝統的な記憶装置よりも複雑である。同期書き込み動作を確認する前に、ＣＡＳ装置は、ブロックの内容に基づいてハッシュキーを計算し、（現在書き込まれている内容と）同一の内容を有するブロックがＣＡＳ装置に既に書き込まれたかを（例えば、ハッシュテーブル内の値を調べることによって）判定するチェックを行い、そのブロックが固有のものであると判定すると、そのブロックを書き込む。肯定応答では、ハッシュキーと等しいか、またはハッシュキーから導きだされる内容アドレスも返される。内容アドレスは、ブロックを検索するために、読出し動作中に使用される。
【０００３】
同一の内容を有するブロックが以前に格納されたかどうか判定するためのチェックだけでなく、ハッシュキーの計算が、データをＣＡＳ装置に書き込むことに伴うレイテンシの重大な要因となっている。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の原理にしたがって、データを記憶装置に格納するシステムが提供される。本システムは、内容アドレス記憶装置と持続型キャッシュを含む。持続型キャッシュは、持続型キャッシュに格納されるデータに対応する一時的アドレスを生成する一時的アドレス生成器と、データを持続型キャッシュに格納し、また持続型キャッシュ内のデータを、一時的アドレスを用いて検索するように構成された非内容アドレス記憶装置を含む。持続型キャッシュは非内容アドレス記憶装置内にあるデータに対応する一時的アドレスを、内容アドレス記憶装置内にあるデータに対応する内容アドレスにマッピングするように構成されたアドレス変換器をさらに有する。
【０００５】
本発明の原理にしたがって、データを記憶装置に格納する方法は、書き込み要求に対応するデータが非内容アドレス記憶装置に格納されるべきか、または内容アドレス記憶装置に直接、書き込まれるべきかを判定することを含む。データが非内容アドレス記憶装置に格納されるべきと判定されると、非内容アドレス記憶装置に格納されるべきデータの一時的アドレスが生成され、データが非内容アドレス記憶装置に持続的に格納されたとの肯定応答が、データが内容アドレス記憶装置に書き込まれる前に送られてもよい。さらに、非内容アドレス記憶装置内にあるデータに対応する少なくとも１つの一時的アドレスが、該データが内容アドレス記憶装置に書き込まれた後に、データの内容アドレス記憶装置内の内容アドレスとマッピングされる。
【０００６】
これらおよび他の特徴ならびに利点は、添付の図面と関連して読まれるべき実施形態の下記の詳細な記述から明らかになろう。
【図面の簡単な説明】
【０００７】
【図１】データを本発明の原理にしたがって内容アドレス記憶装置に格納するシステムのブロック／フロー図である。
【図２】データを内容アドレス記憶装置に格納する、図１のシステムをさらに詳細に示すブロック／フロー図である。
【図３】データを本発明の原理にしたがって内容アドレス記憶装置に格納する方法のブロック／フロー図である。
【発明を実施するための形態】
【０００８】
本開示は、好適な実施形態の以下の記述において図を参照して詳細な説明をもたらす。
【０００９】
内容アドレス記憶装置へのアクセスに伴うレイテンシを減らすことができる記憶システムを、本発明の原理にしたがって説明する。本システムは、ロー・レイテンシ・ブロック記憶装置（ＬＬＢＳ）からなる記憶層を、内容アドレス記憶装置（ＣＡＢＳ）と、内容参照可能なＡＰＩにしたがってＩ/Ｏ動作を出しているアプリケーションの間に配置している。ＣＡＢＳにブロックを直接書き込むだけでなく、先ず、ブロックはＬＬＢＳに書き込まれ、肯定応答し、続いてＣＡＢＳに転送されてもよい。その後のある時点で、これらブロックはＬＬＢＳから除かれてもよい。その際、内容アドレス記憶装置を使用することの利点（例えば、冗長な重複データの削除）は維持されつつ、内容アドレス記憶装置への書き込みに伴う欠点（例えば、ハイ・レイテンシ）は除かれるか、軽減される。
【００１０】
ＬＬＢＳには、持続型記憶装置用のソリッド・ステート・ドライブ装置またはハード・ディスク・ドライブ装置が用いられてもよい。これらの装置は、I／Ｏ動作に伴うレイテンシを減らすように最適化されている。ここに記載した原理にしたがって、アプリケーションに、該アプリケーションが、ハッシュを計算すること、またはハッシュテーブル内の値を検索することに伴う遅れを経験しないように、ＬＬＢＳは、データを一時的に格納し、肯定応答を返すことができる。ＬＬＢＳは、そのＬＬＢＳに書き込まれた同じデータを含むＣＡＢＳへの書き込みを開始することもできる。ＣＡＢＳへの書き込みは、ハッシュを計算することや、ハッシュテーブル内の値を検索することに伴う遅れのためにハイ・レイテンシに遭遇する。しかしながら、ＬＬＢＳがデータを速やかに格納し、肯定応答を返すことができるので、レイテンシはアプリケーション（またはアプリケーションを利用するエンドユーザー）によって受けることはない。
【００１１】
ここに記載された実施形態は、完全にハードウェア、または完全にソフトウェア、またはハードウェアの要素とソフトウェアの要素の両方を含むものであってよい。好適な実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むが、これに限定されないソフトウェアで実施される。
【００１２】
実施形態は、コンピュータで使用可能な、またはコンピュータ読出し可能な媒体からアクセス可能で、コンピュータまたは命令実行システムによって使用される、あるいはコンピュータまたは命令実行システムに関連して使用されるプログラムコードを有するコンピュータプログラム製品を含んでもよい。コンピュータで使用可能な、またはコンピュータ読出し可能な媒体は、命令実行システム、装置、または機器によって、またはこれらに関連して使用される、プログラムを格納し、通信し、伝播し、搬送する装置を含んでよい。該媒体は、磁気的、光学的、電子的、電磁的、赤外線の、または半導体のシステム（または装置またはシステム）あるいは伝播媒体であってよい。該媒体は、半導体またはソリッド・ステートのメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、剛な磁気ディスク、光ディスクなどの、コンピュータ読出し可能な記憶媒体を含んでよい。
【００１３】
プログラムコードを格納および／または実行するのに適したデータ処理システムは、メモリ要素に直接、またはシステムバスを介して間接的に接続された少なくとも１つのプロセッサを含んでよい。該メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、大容量記憶装置、プログラムコードが、実行中に大容量記憶装置から検索される回数を減らすために少なくともいくらかのプログラムを一時的に記憶するキャッシュメモリを含み得る。入力／出力、すなわちＩ／Ｏ装置およびシステム（キーボード、ディスプレイ、ポインティングシステム等を含むが、これらに限定されない）がデータ処理システムに直接または介在するＩ／Ｏコントローラを介して接続されてもよい。
【００１４】
データ処理システムが他のデータ処理システム、またはリモートプリンタ、または記憶装置、または記憶システムに、介在するプライベート・ネットワークまたは公衆ネットワークを介して接続されるようになるのを可能にするネットワーク・アダプタがデータ処理システムに接続されてもよい。モデム、ケーブル・モデム、イーサネット（登録商標）・カードはネットワーク・アダプタの現在、入手可能な数種類に過ぎない。
【００１５】
ここで、同じ番号が同じまたは類似の要素を表す図面のうち最初に図１を参照すると、ブロック／フロー図が、データを本発明の原理にしたがって内容アドレス記憶装置に格納するシステム１００を例示的に示している。図１に示されているように、アプリケーション１３０がデータを記憶システム１１０に格納する。アプリケーション１３０は、記憶システム１１０を有するコンピュータ上でローカルに実行するものであっても、または記憶システム１１０を有するサーバまたは他のシステムに（例えば、ネットワークを介して）接続されたクライアント・マシン上で実行するものであってもよい。
【００１６】
記憶システム１１０はロー・レイテンシ・ブロック記憶装置（ＬＬＳＢ）１５０と、内容アドレスブロック記憶装置（ＣＡＢＳ）１６０とを有する。ＣＡＢＳ１６０は、任意の種類の内容アドレス記憶装置を表している。一方、ＬＬＢＳ１５０は、Ｉ／Ｏ動作に伴うレイテンシを軽減するように最適化されたソリッド・ステート・ドライブ（ＳＳＤ）またはハード・ディスク・ドライブ（ＨＤＤ）を含んでよい。しかしながら、ＬＬＢＳ１６０はこれらの種類の記憶装置に限定されるものではなく、一般に、入力／出力（I／Ｏ）動作に関してＣＡＢＳ１６０よりも短いレイテンシを有する非内容アドレス記憶媒体を使用してもよい。
【００１７】
アプリケーション１３０は、データをＣＡＢＳ１６０に直接、格納しないで、最初にデータをＬＬＢＳ１５０に格納してもよい。ＬＬＢＳ１５０へのデータの格納に成功すると、肯定応答がアプリケーション１３０に返される。ＬＬＢＳ１５０はロー・レイテンシに備えたものであるので、肯定応答は比較的早く、または少なくとも、ＣＡＢＳ１６０が肯定応答を返すことができる時間よりも早く返される。
【００１８】
理解されるように、内容アドレス記憶装置・アプリケーション・プログラミング・インタフェース（ＡＰＩ）は、アプリケーション１３０とＬＬＢＳ５０の間、ＬＬＢＳ１５０とＣＡＢＳ１６０の間の通信を可能にする。
【００１９】
図２に移ると、データを内容アドレス記憶装置に格納するシステム２００のより詳細な図が説明的に描かれている。アプリケーション１３０はＬＬＢＳ１５０に書き込み要求を送信する。アプリケーション１３０から書き込み要求を受信すると、キャッシュ・マネージャー２１０は、記憶装置２４０を用いてデータを持続的に格納するキー‐値格納部２３０として構成された非内容アドレス記憶装置２３５に書き込み要求を送ることがある。書き込み要求によるデータを非内容アドレス記憶装置２３５に格納するために、キャッシュ・マネージャー２１０は一時的アドレス（「ＴＡ」）発生器２５０から一時的アドレスを取得する。このアドレスは、データを後で検索するためのキーとして使用される。
【００２０】
キー‐値格納部２３０は、データを記憶装置２４０に格納する仕組みの制御を担っている。キー‐値格納部２３０は、データとその一時的アドレスの両方を記憶装置２４０に格納する。データは、一時的アドレスを用いて後で検索すること、または読み出すことができる。記憶装置２４０は、ソリッド・ステート・ドライブ（ＳＳＤ）、ハード・ディスク・ドライブ（ＨＤＤ）、または、I／Ｏ動作を実行することに関してＣＡＢＳ１６０よりも短いレイテンシを有する他の装置のような、短レイテンシシステムであることが好ましい。
【００２１】
データをＬＬＢＳ１５０に書き込むと、キャッシュ・マネージャー２１０は肯定応答を、データを検索するために使用することができる一時的アドレスと共にアプリケーション１３０に送信する。キャッシュ・マネージャー２１０は、記憶装置２４０に既に書き込まれたデータをＣＡＢＳ１６０にも書き込む。データを格納する際には、ＣＡＢＳ１６０はデータの内容に基づいてハッシュ値を計算し、重複除外動作（例えば、ハッシュテーブル内の値を検索することを含む）を行う。２つの同一のブロックがＬＬＢＳ１５０に書き込まれ、各々に個別の一時的アドレスが割り当てられていたとしても、これらブロックの両方は、ＬＬＢＳ１５０がデータをＣＡＢＳ１６０に転送したとき、最終的に同じ内容アドレスにマッピングされる。ＬＬＢＳ１５０は、書き込み動作が成功したことを以前に確認しているので、アプリケーション１３０は、データをＣＡＢＳ１６０に格納することに伴う、重複除外の利点を保持しつつ、これらのハッシング動作およびハッシュテーブル検索動作に伴うレイテンシを避けることができる。
【００２２】
データの格納に成功した後、ＣＡＢＳ１６０は、データがＣＡＢＳ１６０内のどこに格納されたかを反映した内容アドレスを、ＬＬＢＳ１５０にあるキャッシュ・マネージャー２１０に返す。内容アドレスはアドレス変換器２２０に送信され、アドレス変換器２２０は（データのＬＬＢＳ１５０内の場所を反映する）一時的アドレスを（データのＣＡＢＳ１６０内の場所を反映する）内容アドレスにマッピングし、このマッピングの情報を記憶装置２４０に格納する。ブロックが埋め込みアドレスを有する場合には、各埋め込みアドレスに対応付けられたデータが、親ブロックがＣＡＢＳ１６０に書き込まれる前に、まずＣＡＢＳ１６０に書き込まれ、対応する内容アドレスにマッピングされなければならない。これによって、一時的アドレスがＣＡＢＳ１６０に書き込まれるのが避けられる。
【００２３】
アドレスのマッピングが一旦記憶装置２４０に持続的に書き込まれると、ＬＬＢＳ１５０は、記憶装置２４０内の対応するデータを削除することができる。アプリケーション１３０が一時的アドレスを用いて後続の読出しリクエストを発行した場合、該一時的アドレスに対応付けられた内容アドレスをアドレス変換器２２０によってまず検索することができ、この情報はデータをＣＡＢＳ１６０から検索するのに使用することができる。
【００２４】
上記で説明した方法でデータブロックをＬＬＢＳ１５０から除くことができるが、一時的アドレスの内容アドレスへのマッピングを除くことはアプリケーション１３０の協働を必要とすることがある。アプリケーション１３０の協働は、アプリケーション１３０がその一時的アドレスを用いてブロックを要求する状況を避けるために必要であるが、該ブロックも、一時的アドレスから内容アドレスへのマッピングもＬＬＢＳ１５０では利用できない。この状況を避ける１つの方法は、アプリケーション１３０にそのアドレス全てを周期的に廃棄させることである。これが一旦なされると、ＬＬＢＳ１５０はそのマッピングの全てを削除することができる。アプリケーション１３０がそのアドレスの全てを廃棄し、ＬＬＢＳ１５０がそのマッピングの全てを削除した後、アプリケーション１３０は、有向非巡回グラフの根を表すラベル付きブロックの読出しを、ここにその全体が参照によって取り込まれる米国特許出願２０１０／００７０６９８号で説明された方法で発行することによってブロックをアクセスすることができる。
【００２５】
データは通常、ＣＡＢＳ１６０に転送される前にＬＬＢＳ１５０に格納されるが、データがＣＡＢＳ１６０に直接、格納されるのが好ましい特定の状況が存在することがある。例えば、アプリケーション１３０がＬＬＢＳ１５０に書き込み要求を発行するが、ＬＬＢＳ１５０はデータを格納するために利用できる十分なスペースを持たない場合が考えられる。ＬＬＢＳ１５０が、データをＣＡＢＳ１６０に転送することによって、スペースを空けること待つよりも、入力するデータブロックを直接、ＣＡＢＳ１６０に書き込むことが有利かもしれない。これは、データをＣＡＢＳ１６０に直接、格納することが好ましいかもしれないたった１つの例示的状況であること、そしてデータをＣＡＢＳ１６０に直接、書き込むことができるであろう様々な他の状況が存在するかもしれないことに留意すべきである。
【００２６】
データがＣＡＢＳ１６０に直接、格納されることがときおりあるので、ＬＬＢＳ１５０が一時的アドレスではなく、内容アドレスをアプリケーション１３０に返す状況が存在することがある。これは、アプリケーション１３０によってユーザに意識させないで処理することができる。しかしながら、ＬＬＢＳ１５０は、一時的アドレスと内容アドレスを区別できる必要がある。これは、アドレスが内容アドレスか、または一時的アドレスであるかを示すビットをアドレス内に確保することによって達成できる。
【００２７】
ここで、図３を参照すると、ブロック／フロー図が、データを、本発明の原理にしたがって、内容アドレス記憶システムに格納する方法を示している。ブロック３１０において、アプリケーション１３０は、データを記憶システム１１０に格納するために書き込み要求を発行する。記憶システム１１０は、図１と図２に示すように、非内容アドレス記憶装置（例えば、ＬＬＢＳ１５０）とＣＡＢＳ１６０を含んでよい。
【００２８】
ブロック３２０において、書き込み要求を受信すると、ＬＬＢＳ１５０は、データに一時的アドレスを割り当てる。その一時的アドレスは、データを非内容アドレス記憶装置２３５に格納し、かつ、非内容アドレス記憶装置２３５内のデータを検索するために使用される。ＣＡＢＳ１６０によって後で割り当てられる内容アドレスとは異なり、データを格納するための一時的アドレスを決定することは、ハッシュを計算することを伴わない。一実施形態では、一時的アドレスは、図２における一時的アドレス生成器２５０によって生成され、データを格納するためにキー‐値格納部２３０によって使用されてよい。
【００２９】
次に、ブロック３３０において、書き込み要求の対象であるデータが、データブロックに割り当てられた一時的アドレスと共にＬＬＢＳ１５０に格納される。この情報が格納される仕方は種々ある。例えば、一実施形態では、非内容アドレス記憶装置はキー-値格納部として構成され、ここでは、キーは一時的アドレスであり、値は書き込み要求のデータ内容である。さらに、図２は、一時的アドレスから内容アドレスへのマッピングと、一時的アドレスによって検索可能なデータの両方を格納する単一の記憶装置２４０を開示しているが、他の実施形態では、一時的アドレスと内容アドレスの間のマッピングと、一時的アドレスによって検索可能なデータは別々の記憶装置に格納してもよい。
【００３０】
アプリケーション１３０からのデータがＬＬＢＳ１５０に格納された後、ＬＬＢＳ１５０は、データの格納に成功したことを示す肯定応答をアプリケーション１３０に送信する（ブロック３４０）。ＬＬＢＳ１５０からアプリケーション１３０に送信された肯定応答は、アプリケーション１３０が後でデータを検索することを可能にする、そのデータに対応付けられた一時的アドレスも含んでいる。上記で説明したように、ＬＬＢＳ１５０内の記憶装置２４０は、ＣＡＢＳ１６０と比較した場合、情報を格納することに関して、比較的短いレイテンシを有している。ＬＬＢＳ１５０は、データを記憶装置２４０に格納して、ＣＡＢＳ１６０ができると考えられるよりも早く、肯定応答をアプリケーション１３０に返すことができるので、アプリケーション１３０が遭遇するレイテンシは短くなる。
【００３１】
肯定応答をアプリケーション１３０に送ると、その後、ブロック３５０において、ＬＬＢＳ１５０はデータをＣＡＢＳ１６０に書き込む。ＬＬＢＳ１５０に格納されたデータが一旦、成功裏にＣＡＢＳ１６０にコピーされると、ＣＡＢＳ１６０は内容アドレスをＬＬＢＳ１５０に返す。ＣＡＢＳ１５０に書き込まれるデータブロックの内容に基づく内容アドレスは、データがＣＡＢＳ１６０内のどこに書き込まれたかを示している。
【００３２】
上記で説明したように、データを内容アドレス記憶装置（例えば、ＣＡＢＳ１６０）に格納することは、ハッシュを計算すること、および、重複除外動作を実行することのような、レイテンシが長い動作を伴う。しかしながら、データをＣＡＢＳ１６０に転送する前に、そのデータを最初にＬＬＢＳ１５０に格納することによって、アプリケーション１３０は、これらの、レイテンシが長い動作が行われるのを待つ必要がない。それにもかかわらず、データは最終的にＣＡＢＳ１５０に転送されるので、プリケーション１３０は、ＣＡＢＳ１６０によって行われる、重複除外動作の利益を享受することができる。したがって、本願による記憶システム１１０は、データをこのようなシステムに格納することの欠点を除去しつつ（または、少なくとも軽減しつつ）、アプリケーション１３０が内容アドレス記憶装置の利点を得ることを可能にする。
【００３３】
データがＣＡＢＳ１６０に格納され、その内容アドレスがＬＬＢＳ１５０に戻された後、内容アドレスは、一時的アドレスを内容アドレスにマッピングし、この情報を記憶装置２４０に格納するように構成されたアドレス変換器２２０に送信される（ブロック３６０）。マッピング情報を格納すると、（現在、ＬＬＢＳ１５０とＣＡＢＳ１６０の両方に格納されている）データは、ブロック３７０において、ＬＬＢＳ１５０から削除されてもよい。アプリケーション１３０がデータをいくらか後の時点で読み出すことを望んだ場合、読出しリクエストは該データの一時的アドレスを含んでもよい。以前にＬＬＢＳ１５０に格納されたデータがＬＬＢＳ１５０から削除されたにもかかわらず、一時的アドレスは、該データのＣＡＢＳ１６０内の対応する内容アドレスを特定するためにアドレス変換器２２０によって使用されてもよい。該データは次に、内容アドレスを用いてＣＡＢＳ１６０から読み出されてもよい。
【００３４】
ブロック３８０において、ＬＬＢＳ１５０上でのアドレス・マッピング（すなわち、一時的アドレスと内容アドレスの間のマッピング）は周期的に削除される。これは利点であり、その理由は、ＬＬＢＳ１５０に格納されたマッピングのサイズが非常に大きくなることがあり、その結果、削除が行われなければ、データを格納するのに使用することができる記憶装置２４０内にスペースをとることになるからである。しかしながら、マッピング情報をＬＬＢＳ１５０から削除することができる前に、アプリケーション１３０は、アプリケーション１３０によって格納されているアドレス（または少なくとも一時的アドレス）を廃棄しなければならない。このことは、データ自身も、データのマッピングもＬＬＢＳ１５０に格納されていないときに、アプリケーション１３０が、ＬＬＢＳ１５０にあるデータのためのリクエストを（該データの一時的アドレスを用いて）発行しないことを保証する。
【００３５】
アプリケーション１３０がアドレスを廃棄するように命じられる仕方は様々である。例えば、一実施形態では、ＬＬＢＳ１５０は、格納されつつあるマッピング情報の量をモニターしてもよい。マッピング情報の大きさが一旦ある閾値を越えると、ＬＬＢＳ１５０は、アプリケーション１３０によって格納されつつあるアドレス情報が廃棄されるべきであることをアプリケーション１３０に告げる「アドレス廃棄信号」をアプリケーション１３０に送信してもよい。アプリケーション１３０がアドレスを廃棄した後、そのことを示す肯定応答がＬＬＢＳ１５０に送られてもよい。アドレスがアプリケーション１３０によって廃棄されたことを確認すると、ＬＬＢＳ１５０は、記憶装置２４０に格納されているマッピンク情報を削除することができる。アドレスがアプリケーション１３０によって廃棄されるべきことを示す他の方法も考えられる。
【００３６】
データを内容アドレス記憶装置に格納するシステムと方法の好適な実施形態（これらは、例示であることを意図し、限定することを意図したものではない）を説明したが、種々の修正や変形が、上記の教示に鑑みて当業者によってなされうることに留意すべきである。したがって、変更が、添付の特許請求の範囲によって略述された本発明の範囲内にある、開示された特定の実施形態においてなされてもよいことが理解されるべきである。特許法によって要求された詳細さをもって、本発明の態様をこのように記載したので、特許証によって請求され、保護が望まれるものは添付の特許請求の範囲に記載されている。
【図１】
0005591406.tif 000002
【図２】
0005591406.tif 000003
【図３】
0005591406.tif 000004