(57)【特許請求の範囲】
【請求項１】
複数のデータを記憶する記憶装置と、
前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストと、前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストとを記憶するキャッシュメモリと、
前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第２のリストに追加する制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
複数のデータを記憶する記憶装置と、
前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストと、前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストとを記憶するキャッシュメモリと、
前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記第１のリストに含まれるデータが更新されているエントリ情報の割合と比較される閾値であって前記閾値の方が小さければ前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを削除する前記閾値を、現在の値より小さく設定し、前記第１の合計が前記第２の合計よりも多い場合、前記閾値を現在の値より大きく設定し、前記割合よりも前記閾値の方が小さい場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第２のリストに追加する制御部と、
を有することを特徴とする情報処理装置。
【請求項３】
コンピュータが、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストおよび前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストを記憶するキャッシュメモリの前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第２のリストに追加する、
処理を実行することを特徴とするキャッシュメモリ制御方法。
【請求項４】
コンピュータに、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストおよび前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストを記憶するキャッシュメモリの前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除することにより前記削除対象のエントリ情報のデータの前記記憶装置上における位置を示す情報を含むエントリ情報を前記第２のリストに追加する、
処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムに関する。
【背景技術】
【０００２】
従来、記憶装置より高速にアクセス可能なキャッシュメモリを用いて、記憶装置へのアクセス性能を向上させる技術がある。また、記憶装置への書き込み要求を受け付けた場合、キャッシュメモリにデータを書き込んでおき記憶装置には書き込まず、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の空き時間等に、キャッシュメモリ上の更新されたデータを記憶装置に書き込む、いわゆるライトバックと呼ばれる動作がある。また、キャッシュメモリに新たなデータを追加できない場合、今後最も必要とされないデータを予測し、予測したデータを削除して、代わりに新たなデータを追加する、キャッシュ置換方式と呼ばれる技術がある。
【０００３】
関連する先行技術として、例えば、二次データストレージキャッシュの現在の状態のキャッシング効率に従ってヒートメトリック閾値を調整し、そのヒートメトリックが閾値を下回る、二次データストレージキャッシュに提供された候補データを拒否するものがある。また、ディスク上の連続する複数のブロックを１つのグループとし、キャッシュメモリ上でのみ更新されているブロックを含むグループがあるときは、そのグループ内の連続する複数のブロックを１回のアクセスによりディスク上に書き戻す技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５３５１０６号公報
【特許文献２】特開平０５−３０３５２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、キャッシュメモリ上の更新されたデータを、いつライトバックすればよいのか決定することが困難である。例えば、ライトバックを行う間隔を長くすると、キャッシュ置換方式によって最も必要とされないと予測された更新されたデータの代わりに、更新されていないデータが削除されていき、キャッシュメモリのヒット率が低下する可能性がある。
【０００６】
１つの側面では、本発明は、キャッシュメモリ上の更新されたデータをライトバックする適切なタイミングを決定することができる情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、記憶装置が記憶する複数のデータのうちのいずれかのデータといずれかのデータの記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストと、第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストとを記憶するキャッシュメモリの第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、優先度に従った順序における削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、削除対象のエントリ情報から数分のエントリ情報へのアクセス回数の第１の合計よりも優先度に従った順序における第２のリストに最も後に追加されたエントリ情報から数分のエントリ情報へのアクセス回数の第２の合計が多い場合、削除対象のエントリ情報のデータを記憶装置に書き出して削除対象のエントリ情報のデータをキャッシュメモリから削除する情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、キャッシュメモリ上の更新されたデータをライトバックする適切なタイミングを決定することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。
【図２】図２は、ＡＲＣの動作例を示す説明図である。
【図３】図３は、ディスクアレイ装置３００のハードウェア構成例を示す説明図である。
【図４】図４は、ＣＭ３１１のハードウェア構成例を示す説明図である。
【図５】図５は、ＣＭ３１１の機能構成例を示す説明図である。
【図６】図６は、読み出し時の動作例を示す説明図である。
【図７】図７は、書き込み時の動作例を示す説明図である。
【図８】図８は、ディスク３１３への書き込みの動作例を示す説明図である。
【図９】図９は、読み出し処理手順の一例を示すフローチャートである。
【図１０】図１０は、Ｗａｔｅｒｍａｒｋ調整部５０５の処理手順の一例を示すフローチャートである。
【図１１】図１１は、キャッシュデータ管理部５０３の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示の情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。情報処理装置１０１は、キャッシュメモリを制御するコンピュータである。情報処理装置１０１は、複数のデータを記憶する記憶装置１０２と、キャッシュメモリ１０３とにアクセス可能である。情報処理装置１０１は、例えば、ディスクアレイ装置、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、タブレット端末、携帯端末、携帯電話等である。キャッシュメモリ１０３は、記憶装置１０２よりアクセス性能が高い記憶装置である。キャッシュメモリ１０３は、記憶装置１０２のデータを一時的に記憶する。情報処理装置１０１内のＣＰＵがキャッシュメモリを用いてデータにアクセスすることにより、記憶装置１０２とＣＰＵとの性能差を埋めることができる。
【００１２】
また、キャッシュメモリは、ＣＰＵとＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）との間に設置され、ＲＡＭの一部のデータを記憶するが、このような使用形態に限られない。例えば、ＲＡＭをキャッシュメモリとみなし、ＲＡＭは、ＲＡＭより低速な記憶装置のデータを一時的に記憶してもよい。ＲＡＭより低速な記憶装置としては、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、光ディスクドライブ、磁気テープを有するテープドライブ等である。
【００１３】
また、キャッシュメモリは、記憶装置をページと呼ばれる一定のサイズのデータに分割して管理を行う。そして、キャッシュメモリには、複数のエントリ情報があり、複数のエントリ情報の各エントリ情報は、複数のページのいずれかのページと、いずれかのページのメタデータとを記憶する。メタデータには、いずれかのページの記憶装置上における位置を示す情報が含まれる。いずれかのページの記憶装置上における位置を示す情報は、例えば、いずれかのページが格納されるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）といった情報である。
【００１４】
また、キャッシュメモリのエントリ情報が新たに追加できない場合、キャッシュ置換方式による優先度に基づいて、削除対象のエントリ情報を決定する。具体的には、キャッシュ置換方式は、今後最も必要とされないエントリ情報を予測し、予測したエントリ情報を、削除対象のエントリ情報として決定する方式である。キャッシュ置換方式としては、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式、ＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）方式、ＡＲＣ（Ａｄａｐｔｉｖｅ  Ｒｅｐｌａｃｅｍｅｎｔ  Ｃａｃｈｅ）方式等がある。
【００１５】
また、キャッシュメモリの動作方式の一つとして、ライトバックと呼ばれる動作がある。ライトバックは、記憶装置への書き込み要求を受け付けた場合、キャッシュメモリにデータを書き込んでおき記憶装置には書き込まず、ＣＰＵの空き時間等に、キャッシュメモリ上の更新されたページを記憶装置に書き込む方法である。以下、記憶装置にまだ書き込んでいない、キャッシュメモリ上の更新されたページを、「Ｄｉｒｔｙページ」と呼称する。これに対し、キャッシュメモリ上のＤｉｒｔｙページ以外のページを、「Ｃｌｅａｎページ」と呼称する。データの整合性を保つため、Ｄｉｒｔｙページを削除する場合には、ライトバックを行ってからＤｉｒｔｙページを削除する。
【００１６】
ライトバックを採用することにより、キャッシュメモリが記憶装置よりも高速に記憶することができるという特性を活かすことができ、書き込み性能を高速化することができる。
【００１７】
しかしながら、ライトバックを採用すると、キャッシュメモリ上のＤｉｒｔｙページを、いつライトバックすればよいのか決定することが困難である。Ｄｉｒｔｙページはライトバックしないと削除することができないため、キャッシュ置換方式によってＤｉｒｔｙページが最も必要とされないと予測された場合、そのＤｉｒｔｙページよりも必要とされると予測されたＣｌｅａｎページが削除されることになる。従って、例えば、ライトバックを行う間隔を長くすると、最も必要とされないと予測されたＤｉｒｔｙページの代わりにＣｌｅａｎページが削除されていき、キャッシュメモリのヒット率が低下する可能性がある。一方で、ライトバックを行う間隔を短くすると、ライトバックで得られる高速化の効果が低減することになる。具体的には、キャッシュメモリ上で上書きできれば、記憶装置への書き込み量を減らすことができるが、ライトバックを行う間隔を短くすると、キャッシュメモリ上で上書きできる機会を減らすことになる。また、記憶装置がＳＳＤである場合、ＳＳＤには書き込み可能な最大回数がある。従って、頻繁にライトバックが行われると、ＳＳＤの寿命が短くなるため、ライトバックの回数を低減することが好ましい。
【００１８】
そこで、本実施の形態では、ＡＲＣで採用されているゴースト（Ｇｈｏｓｔ）リストを活用する。具体的には、ＡＲＣでは、データとメタデータとを有するエントリ情報を有する通常のリストと、通常のリストにかつては入っていたが、データが削除され、削除済みデータのメタデータだけを含むエントリ情報を有するゴーストリストとを用いる。ＡＲＣの動作例については、図２で説明する。
【００１９】
本実施の形態では、通常のリストの本来の削除対象からＤｉｒｔｙページが連続する数分のエントリ情報よりも、ゴーストリストの先頭から前述の数分のエントリ情報が多くアクセスされていれば、本来の削除対象のページをライトバックする方法について説明する。以下の説明では、ＡＲＣを採用しているものとする。そして、採用するキャッシュ置換方式としてはどのようなものでもよいが、所定のキャッシュ置換方式としてＬＲＵを採用し、削除対象は、ＬＲＵの優先度によって決められるものとする。また、通常のリストと、ゴーストリストとのアクセスの比較は、読み出しの回数で比較するものとする。
【００２０】
図１を用いて、情報処理装置１０１の動作例について説明する。キャッシュメモリ１０３は、通常のリストとなる第１のリストとしてリストＴ１と、ゴーストリストとなる第２のリストとしてリストＢ１とを記憶する。さらに、図１の例では、ＡＲＣを採用しているため、キャッシュメモリ１０３は、リストＴ２、Ｂ２を記憶する。図１、図２の例では、通常のリストを実線で示し、ゴーストリストを破線で示す。また、図１、図２の例では、リストＴ１、Ｂ１内のエントリ情報は、ＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）からＬＲＵの順に並んでいるものとする。
【００２１】
リストＴ１、Ｂ１は、１回もヒットしていないエントリ情報を有する。また、リストＴ２、Ｂ２は、１回以上ヒットしたエントリ情報を有する。リストＴ１、Ｂ１に対して本実施の形態を実施することもできるし、リストＴ２、Ｂ２に対して本実施の形態を実施することもできるし、リストＴ１、Ｂ１と、リストＴ２、Ｂ２との両方に本実施の形態を実施することもできる。図１の例では、リストＴ１、Ｂ１を用いて説明する。
【００２２】
リストＴ１は、データとメタデータとを含むエントリ情報１１１＿１〜Ｍを有する。また、リストＢ１は、メタデータを含むエントリ情報１１２＿１〜Ｌを有する。また、エントリ情報１１１＿１〜Ｎ、Ｍは、Ｄｉｒｔｙページを有する。図１の例では、Ｄｉｒｔｙページを有するエントリ情報１１１には、網掛けを付与する。
【００２３】
また、リストＴ１、Ｂ１は、ＭＲＵからＬＲＵの順に並んでいるため、リストＴ１のＭＲＵは、エントリ情報１１１＿Ｍとなり、リストＴ１のＬＲＵは、エントリ情報１１１＿１となる。同様に、リストＢ１のＭＲＵは、エントリ情報１１２＿１となり、リストＢ１のＬＲＵは、エントリ情報１１２＿Ｌとなる。エントリ情報１１２＿１は、エントリ情報１１２＿１〜Ｌの中で最も後にリストＢ１に追加されたエントリ情報である。
【００２４】
情報処理装置１０１は、図１の（１）で示すように、リストＴ１の削除対象となるエントリ情報１１１＿１がＤｉｒｔｙページである場合、ＬＲＵに従った順序におけるエントリ情報１１１＿１からＤｉｒｔｙページが連続する数を計数する。図１の例では、Ｄｉｒｔｙページが、エントリ情報１１１＿１〜Ｎまで連続するため、情報処理装置１０１は、Ｎと計数する。
【００２５】
ここで、エントリ情報１１１＿１〜Ｎは、本来ならばリストＢ１にあるべきものであるが、Ｄｉｒｔｙページを有するため、リストＴ１に留まっている。そして、エントリ情報１１１＿１〜Ｎと同数となるエントリ情報１１２＿１〜Ｎは、本来ならばリストＴ１にあるべきものであるが、エントリ情報１１１＿１〜ＮがリストＴ１に留まったため、代わりにリストＴ１を追い出されたものとなる。なお、エントリ情報１１１＿Ｎ＋１〜Ｍと、エントリ情報１１２＿Ｎ＋１〜Ｌとは、ＡＲＣの想定通りのリストに含まれている。
【００２６】
次に、情報処理装置１０１は、図１の（２）で示すように、第１の合計として、エントリ情報１１１＿１からＮ分のエントリ情報への読み出し回数の合計と、第２の合計として、エントリ情報１１２＿１からＮ分のエントリ情報への読み出し回数の合計とを比較する。例えば、情報処理装置１０１は、エントリ情報１１１＿１〜Ｍ、１１２＿１〜Ｌのそれぞれの読み出し回数をキャッシュメモリ１０３に記憶し、それぞれの読み出し回数から、第１の合計や第２の合計を算出してもよい。または、情報処理装置１０１は、第１の合計と第２の合計とをキャッシュメモリ１０３に記憶し、エントリ情報１１１＿１〜Ｎに読み出した際に第１の合計を１増加させ、エントリ情報１１２＿１〜Ｎに読み出した際に第２の合計を１増加させてもよい。
【００２７】
第１の合計が第２の合計以上である場合には、実はＲｅａｄヒットが増えているケースであるため、ライトバックをすべきタイミングでなく、このままの状態とする。一方で、第１の合計よりも第２の合計が多い場合には、実はＲｅａｄヒットが減っているケースであるため、Ｒｅａｄヒット率を向上させるべく、Ｄｉｒｔｙページをライトバックすべきタイミングとなる。
【００２８】
図１の例では、第１の合計よりも第２の合計が多い場合であるとする。この場合、情報処理装置１０１は、図１の（３）で示すように、エントリ情報１１１＿１のＤｉｒｔｙページをライトバックする。そして、情報処理装置１０１は、図１の（４）で示すように、エントリ情報１１１＿１のページをキャッシュメモリ１０３から削除する。エントリ情報１１１＿１のページを削除することにより、エントリ情報１１１＿１は、リストＢ１に追加されることになる。Ｄｉｒｔｙページが減ることにより、Ｒｅａｄヒット率が改善することになる。
【００２９】
また、Ｄｉｒｔｙページの書き込みを、Ｗａｔｅｒｍａｒｋモデルで管理しているのであれば、第１の合計よりも第２の合計が多い場合に、情報処理装置１０１は、Ｗａｔｅｒｍａｒｋ値を変動し、Ｄｉｒｔｙページの書き込みが行われるようにしてもよい。Ｗａｔｅｒｍａｒｋモデルについては、図５で説明する。
【００３０】
以上により、情報処理装置１０１は、Ｒｅａｄヒット率を向上できるライトバックの適切なタイミングが判る。次に、ＡＲＣの動作例について、図２を用いて説明する。
【００３１】
図２は、ＡＲＣの動作例を示す説明図である。ＡＲＣは、ゴーストリストを利用することにより、エントリを含むリストのサイズを調整し、ヒット率を最大化する方法である。また、ＡＲＣは、ストレージ製品でよく使用される。
【００３２】
ＡＲＣでは、図２に示すように、４つのＬＲＵリストを管理する。１つ目のリストＴ１には、データと、メタデータとを記憶しており、一度アクセスされたエントリ情報が格納される。２つ目のリストＢ１には、リストＴ１から追い出されたエントリ情報であって、メタデータを記憶するエントリ情報が格納される。３つ目のリストＴ２には、リストＴ１にあるデータがヒットしたエントリ情報が格納される。リストＴ２に格納されるエントリ情報は、データと、メタデータとを記憶する。４つ目のリストＢ２には、リストＴ２から追い出されたエントリ情報であって、メタデータを記憶するエントリ情報が格納される。
【００３３】
以上により、リストＴ１、Ｂ１は、１回もヒットしていないデータのエントリ情報を有する。また、リストＴ２、Ｂ２は、１回以上ヒットしたデータのエントリ情報を有する。また、リストＴ１にあるエントリ情報が１回ヒットした場合、ヒットしたエントリ情報は、リストＴ２に移動する。また、リストＢ１のエントリ情報がヒットした場合には、リストＴ１のサイズを大きくする。一方で、リストＢ２のエントリ情報がヒットした場合には、リストＴ２のサイズを大きくする。
【００３４】
図２の例では、リストＴ１、Ｂ１には、エントリ情報１〜３が格納されており、リストＴ２、Ｂ２には、エントリ情報４〜６が格納されている。そして、エントリ情報１〜３のうち、エントリ情報３がＭＲＵとなり、エントリ情報１がＬＲＵとなる。また、エントリ情報１には、メタデータだけが格納されており、エントリ情報２、３は、データとメタデータとが格納される。また、エントリ情報４〜６のうち、エントリ情報６がＭＲＵとなり、エントリ情報４がＬＲＵとなる。また、エントリ情報４、５には、メタデータだけが格納されており、エントリ情報６は、データとメタデータとが格納される。
【００３５】
次に、情報処理装置１０１を、ディスクアレイ装置に適用した例を、図３を用いて説明する。
【００３６】
（ディスクアレイ装置３００のハードウェア構成例）
図３は、ディスクアレイ装置３００のハードウェア構成例を示す説明図である。ディスクアレイ装置３００は、ＣＥ（Ｃｏｎｔｒｏｌｌｅｒ  Ｅｎｃｌｏｓｕｒｅ）３０１と、ＤＥ（Ｄｒｉｖｅ  Ｅｎｃｌｏｓｕｒｅ）３０２とを含む。また、ディスクアレイ装置３００は、ホスト装置３３１に接続する。ホスト装置３３１は、例えば、サーバである。
【００３７】
そして、ＣＥ３０１は、ＣＭ（Ｃｏｎｔｒｏｌｌｅｒ  Ｍｏｄｕｌｅ）３１１と、ＣＰＳＵ（ＣＥ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ）３１２と、ディスク３１３とを有する。また、ＤＥ３０２は、ＩＯＭ（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）  Ｍｏｄｕｌｅ）３２１と、ＤＰＳＵ（ＤＥ  Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ）３２２と、ディスク３２３とを含む。ＩＯＭ３２１は、ＥＸＰ（ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）  Ｅｘｐａｎｄｅｒ）３２４を含む。
【００３８】
ＣＥ３０１は、ＣＭ３１１〜ディスク３１３を含む筐体である。ＣＭ３１１は、ディスクアレイ装置３００を制御する装置である。また、ＣＭ３１１は、ＣＭ間通信を行う。また、ＣＭ３１１は、ホスト装置３３１と接続する。ＣＭ３１１の内部のハードウェア構成は、図５で説明する。ＣＰＳＵ３１２は、ＣＥ３０１内部の装置に電源を供給するユニットである。ディスク３１３は、ＣＭ３１１が使用する記憶装置である。例えば、ディスク３１３は、ＳＳＤやＨＤＤを採用することができる。
【００３９】
ＤＥ３０２は、ＩＯＭ３２１〜ディスク３２３を含む筐体である。ＩＯＭ３２１は、ＣＭ３１１とドライブ間とを制御するユニットである。ＤＰＳＵ３２２は、ＤＥ３０２内部の装置に電源を供給するユニットである。ＥＸＰ３２４は、ＳＡＳ接続用のｅｘｐａｎｄｅｒチップである。図３に示すＥＸＰ３２４は、ディスク３２３のそれぞれと接続する。ディスク３２３は、ＣＭ３１１が使用する記憶装置である。例えば、ディスク３２３は、ＳＳＤやＨＤＤを採用することができる。
【００４０】
図４は、ＣＭ３１１のハードウェア構成例を示す説明図である。ＣＭ３１１は、ＣＰＵ４０１と、メモリ４０２と、不揮発性メモリ４０３と、ＩＯＣ（Ｉ／Ｏ  Ｃｏｎｔｒｏｌｌｅｒ）４０４と、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）４０５と、ＥＸＰ４０６と、ＳＣＵ（Ｓｙｓｔｅｍ  Ｃａｐａｃｉｔｏｒ  Ｕｎｉｔ）４０７とを含む。
【００４１】
ここで、ＣＭ３１１が、図１に示した情報処理装置１０１に相当する。また、メモリ４０２が、図１で示したキャッシュメモリ１０３に相当する。また、ディスク３１３、３２３が、図１に示した記憶装置１０２に相当する。以下では、説明の簡略化のため、メモリ４０２が一時的に記憶するデータは、ディスク３１３のデータであるとする。
【００４２】
ＣＰＵ４０１は、ＣＭ３１１の全体の制御を司る演算処理装置である。また、ＣＰＵ４０１は、他のＣＭ３１１のＣＰＵ４０１と接続する。メモリ４０２は、ＣＰＵ４０１のワークエリアとして使用される揮発性メモリである。例えば、メモリ４０２は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を採用することができる。不揮発性メモリ４０３は、本実施の形態におけるキャッシュメモリ制御プログラムを記憶する不揮発性メモリである。不揮発性メモリ４０３の記憶媒体としては、例えば、ＮＯＲフラッシュメモリ、ＮＡＮＤフラッシュメモリを採用することができる。
【００４３】
ＩＯＣ４０４は、ＣＰＵ４０１からのＩ／Ｏを制御する。図４の例では、ＩＯＣ４０４は、ＥＸＰ４０６や、他のＣＭ３１１のＥＸＰ４０６と接続し、ＣＰＵ４０１からのディスク３１３、３２３へのＩ／Ｏを制御する。ＣＡ４０５は、ホスト装置３３１と通信する通信インターフェースである。ＥＸＰ４０６は、ＳＡＳ接続用のｅｘｐａｎｄｅｒチップである。図４に示すＥＸＰ４０６は、ディスク３１３のそれぞれと、ＥＸＰ３２４と接続する。ＳＣＵ４０７は、停電時に、メモリ４０２のデータを、不揮発性メモリ４０３にバックアップするための電源を供給するユニットである。
【００４４】
（ＣＭ３１１の機能構成例）
図５は、ＣＭ３１１の機能構成例を示す説明図である。情報処理装置１０１は、制御部５００を有する。制御部５００は、Ｉ／Ｏ受け付け部５０１と、読み出し／書き込み判定部５０２と、キャッシュデータ管理部５０３と、読み出し監視部５０４と、Ｗａｔｅｒｍａｒｋ調整部５０５とを含む。制御部５００は、記憶装置に記憶されたプログラムをＣＰＵ４０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図４に示したメモリ４０２、不揮発性メモリ４０３や、図３に示したディスク３１３、３２３などである。また、各部の処理結果は、メモリ４０２、ＣＰＵ４０１のレジスタ等に格納される。
【００４５】
Ｉ／Ｏ受け付け部５０１は、ホスト装置３３１からのアクセス要求を受け付ける。読み出し／書き込み判定部５０２は、Ｉ／Ｏ受け付け部５０１が受け付けたアクセス要求が、読み出し要求なのか書き込み要求なのかを判定する。
【００４６】
キャッシュデータ管理部５０３は、リストＴ１、Ｂ１、Ｔ２、Ｂ２を管理する。読み出し監視部５０４は、本来ならばリストＴ１、Ｔ２にあるべきページへのＲｅａｄミスと、本来ならばリストＢ１、Ｂ２にあるべきＤｉｒｔｙページへのＲｅａｄヒットとを監視する。Ｗａｔｅｒｍａｒｋ調整部５０５は、読み出し監視部５０４からの情報をもとに、Ｗａｔｅｒｍａｒｋ値を変更する。
【００４７】
より具体的なキャッシュデータ管理部５０３〜Ｗａｔｅｒｍａｒｋ調整部５０５の機能について説明する。ここで、キャッシュデータ管理部５０３〜Ｗａｔｅｒｍａｒｋ調整部５０５が行うリストＴ１、Ｂ１に対しての処理と、リストＴ２、Ｂ２に対しての処理とは同一であるため、説明の簡略化のため、リストＴ１、Ｂ１に対しての処理を用いて説明する。
【００４８】
読み出し監視部５０４は、リストＴ１のＬＲＵエントリ情報がＤｉｒｔｙページを有する場合、ＬＲＵエントリ情報からＤｉｒｔｙページを有するエントリ情報が連続する数を計数する。これにより、本来ならばリストＢ１、Ｂ２にあるべきＤｉｒｔｙページを特定することができる。
【００４９】
そして、読み出し監視部５０４は、本来ならばリストＢ１、Ｂ２にあるべきＤｉｒｔｙページへのＲｅａｄヒットの回数の第１の合計と、本来ならばリストＴ１、Ｔ２にあるべきページへのＲｅａｄミスの回数の第２の合計とを比較する。ここで、ＲｅａｄヒットやＲｅａｄミスの回数を計数する期間は、どのような長さでもよく、例えば、ディスクアレイ装置３００の管理者によって決められた期間である。読み出し監視部５０４は、第１の合計と第２の合計とを、メモリ４０２に記憶する。または、リストＴ１、Ｂ１の各エントリ情報が、各エントリ情報の読み出し回数を記憶していてもよい。
【００５０】
そして、第１の合計よりも第２の合計が多い場合、キャッシュデータ管理部５０３は、リストＴ１のＬＲＵエントリ情報のＤｉｒｔｙページをライトバックし、リストＴ１のＬＲＵエントリ情報のＤｉｒｔｙページを削除する。また、読み出し監視部５０４は、第１の合計と第２の合計とを管理するためのカウンタをメモリ４０２に記憶していてもよい。例えば、読み出し監視部５０４は、本来ならばリストＢ１、Ｂ２にあるべきＤｉｒｔｙページへのＲｅａｄヒットがあればカウンタをデクリメントし、本来ならばリストＴ１、Ｔ２にあるべきページへのＲｅａｄミスがあればカウンタをインクリメントする。そして、カウンタの正負により、キャッシュデータ管理部５０３は、第１の合計と第２の合計との比較結果を判断する。
【００５１】
また、Ｗａｔｅｒｍａｒｋ調整部５０５が、閾値となるＷａｔｅｒｍａｒｋ値を変更し、キャッシュデータ管理部５０３は、変更したＷａｔｅｒｍａｒｋ値に基づいて、リストＴ１のＬＲＵエントリ情報のＤｉｒｔｙページをライトバックしてもよい。ここで、Ｗａｔｅｒｍａｒｋモデルについて説明する。
【００５２】
Ｗａｔｅｒｍａｒｋモデルでは、Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値と、Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値という２つのパラメータを使用する。そして、Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値≦Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値という関係を有する。Ｗａｔｅｒｍａｒｋモデルでのライトバックを行うタイミングは、リストＴ１内のＤｉｒｔｙページの割合と、Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値、Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値との関係により、以下の３つのうちのいずれかに分類される。
【００５３】
１つ目の場合として、リストＴ１内のＤｉｒｔｙページの割合＜Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値となる場合、Ｗａｔｅｒｍａｒｋモデルでは、何も行わない。場合によっては、ｉｄｌｅ時にライトバックを行ってもよい。
【００５４】
２つ目の場合として、Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値≦リストＴ１内のＤｉｒｔｙページの割合≦Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値となる場合、Ｗａｔｅｒｍａｒｋモデルでは、処理を行うＣＰＵ等の判断に応じて、ライトバックを行ってもよいし行わなくてもよい。
【００５５】
３つ目の場合として、Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値＜リストＴ１内のＤｉｒｔｙページの割合となる場合、Ｗａｔｅｒｍａｒｋモデルでは、ライトバックを行う。
【００５６】
本実施の形態では、説明の簡略化のため、Ｌｏｗ  Ｗａｔｅｒｍａｒｋ値＝Ｈｉｇｈ  Ｗａｔｅｒｍａｒｋ値とし、単純に、「Ｗａｔｅｒｍａｒｋ値」と呼称する。従って、Ｗａｔｅｒｍａｒｋ値は、リストＴ１内のＤｉｒｔｙページの割合と比較される閾値であって、閾値の方が小さければリストＴ１内のＬＲＵエントリのＤｉｒｔｙページをライトバックして削除する閾値となる。また、Ｗａｔｅｒｍａｒｋ値は、ページを有するエントリ情報を有するリストと、そのリストのページが削除されたエントリ情報を有するゴーストリストとの組ごとに存在する。従って、本実施の形態では、リストＴ１、Ｂ１との組に対応するＷａｔｅｒｍａｒｋ値と、リストＴ２、Ｂ２との組に対応するＷａｔｅｒｍａｒｋ値とが存在する。また、読み出し監視部５０４内のカウンタも、リストＴ１、Ｂ１との組に対応するものと、リストＴ２、Ｂ２との組に対応するものとが存在する。
【００５７】
Ｗａｔｅｒｍａｒｋ調整部５０５は、第１の合計よりも第２の合計が多い場合、Ｗａｔｅｒｍａｒｋ値を、現在の値より小さく設定する。また、Ｗａｔｅｒｍａｒｋ調整部５０５は、第１の合計が第２の合計よりも多い場合、Ｗａｔｅｒｍａｒｋ値を、現在の値より大きく設定する。Ｗａｔｅｒｍａｒｋ値を小さくすると、Ｄｉｒｔｙページのライトバックがされやすくなり、Ｗａｔｅｒｍａｒｋ値を大きくすると、Ｄｉｒｔｙページのライトバックがされにくくなる。
【００５８】
図６は、読み出し時の動作例を示す説明図である。ホスト装置３３１から読み出し要求が発行された場合、Ｉ／Ｏ受け付け部５０１、読み出し／書き込み判定部５０２、キャッシュデータ管理部５０３は、読み出し要求を処理して、ホスト装置３３１に、読み出したデータを送信する。また、読み出し監視部５０４は、読み出しの結果を監視する。
【００５９】
図７は、書き込み時の動作例を示す説明図である。ホスト装置３３１から書き込み要求が発行された場合、Ｉ／Ｏ受け付け部５０１、読み出し／書き込み判定部５０２、キャッシュデータ管理部５０３は、書き込み要求を処理する。このとき、キャッシュデータ管理部５０３は、データを、メモリ４０２といったキャッシュに書き込んで、ホスト装置３３１に書き込み完了通知を行う。キャッシュデータ管理部５０３は、ディスク３１３への書き込みを後で行う。
【００６０】
図８は、ディスク３１３への書き込みの動作例を示す説明図である。ディスク３１３への書き込み時に、Ｗａｔｅｒｍａｒｋ調整部５０５は、Ｗａｔｅｒｍａｒｋ値に基づいて、デステージ（ｄｅｓｔａｇｅ）を決定する。ここで、デステージとは、キャッシュメモリとして使用されるメモリ４０２の内容を、ディスク３１３に書き込むことである。
【００６１】
次に、ＣＭ３１１が実行する処理を示すフローチャートを、図９〜図１１を用いて説明する。ここで、本実施の形態におけるキャッシュメモリ制御方法は、リストＴ１、Ｂ１の組に対して行うこともできるし、リストＴ２、Ｂ２の組に対して行うこともできるし、リストＴ１、Ｂ１の組、リストＴ２、Ｂ２の組の両方に対して行うこともできる。図９〜図１１では、本実施の形態にキャッシュメモリ制御方法を、リストＴ１、Ｂ１の組に対して行う例を用いて説明する。
【００６２】
図９は、読み出し処理手順の一例を示すフローチャートである。ＣＭ３１１は、ホスト装置からの読み出し要求を受け付ける（ステップＳ９０１）。次に、ＣＭ３１１は、リストＴ１におけるＬＲＵ側から数えたＤｉｒｔｙの連続数Ｎを計数する（ステップＳ９０２）。そして、ＣＭ３１１は、Ｒｅａｄヒットしたか否かを判断する（ステップＳ９０３）。ここで、Ｒｅａｄヒットとなる場合とは、読み出し要求の読み出し先のアドレスが、リストＴ１のいずれかのエントリ情報のアドレスに一致する場合である。以下、リストＴ１内のアドレスが一致したエントリ情報を、「Ｒｅａｄヒットしたエントリ情報」と呼ぶ。
【００６３】
Ｒｅａｄヒットした場合（ステップＳ９０３：Ｙｅｓ）、ＣＭ３１１は、続けて、Ｒｅａｄヒットしたエントリ情報が、ＬＲＵからみてＮ以内か否かを判断する（ステップＳ９０４）。Ｒｅａｄヒットしたエントリ情報がＬＲＵからみてＮ以内である場合（ステップＳ９０４：Ｙｅｓ）、ＣＭ３１１は、読み出し監視部５０４内のカウンタをデクリメントする（ステップＳ９０５）。
【００６４】
ステップＳ９０５の処理終了後、または、Ｒｅａｄヒットしたエントリ情報がＬＲＵからみてＮ以内でない場合（ステップＳ９０４：Ｎｏ）、ＣＭ３１１は、通常のＲｅａｄヒット処理を実行する（ステップＳ９０６）。通常のＲｅａｄヒット処理としては、例えば、ＣＭ３１１は、リストＴ１内のＲｅａｄヒットしたエントリ情報のページを読み出して、ホスト装置３３１に送信する。また、ＡＲＣの処理に従って、ＣＭ３１１は、リストＴ１内のＲｅａｄヒットしたエントリ情報を、リストＴ２に移動させる。
【００６５】
一方、読み出し要求がＲｅａｄヒットしていない場合（ステップＳ９０３：Ｎｏ）、ＣＭ３１１は、Ｇｈｏｓｔヒットしたか否かを判断する（ステップＳ９０７）。ここで、Ｇｈｏｓｔヒットとなる場合とは、読み出し要求の読み出し先のアドレスが、リストＢ１のいずれかのエントリ情報のアドレスに一致する場合である。リストＢ１内のアドレスが一致したエントリ情報を、「Ｇｈｏｓｔヒットしたエントリ情報」と呼ぶ。
【００６６】
Ｇｈｏｓｔヒットした場合（ステップＳ９０７：Ｙｅｓ）、ＣＭ３１１は、続けて、Ｇｈｏｓｔヒットしたエントリ情報が、ＧｈｏｓｔのＭＲＵからみてＮ以内か否かを判断する（ステップＳ９０８）。Ｇｈｏｓｔヒットしたエントリ情報がＧｈｏｓｔのＭＲＵからみてＮ以内である場合（ステップＳ９０８：Ｙｅｓ）、ＣＭ３１１は、読み出し監視部５０４内のカウンタをインクリメントする（ステップＳ９０９）。
【００６７】
ステップＳ９０９の処理終了後、または、Ｇｈｏｓｔヒットしていない場合（ステップＳ９０７：Ｎｏ）、または、Ｇｈｏｓｔヒットしたエントリ情報がＧｈｏｓｔのＭＲＵからみてＮ以内でない場合（ステップＳ９０８：Ｎｏ）、ＣＭ３１１は、通常のｒｅａｄミス処理を実行する（ステップＳ９１０）。通常のｒｅａｄミス処理として、ＣＭ３１１は、ディスク３１３からデータを読み出して、ホスト装置３３１に送信する。また、ＡＲＣの処理に従って、ＣＭ３１１は、削除対象となったエントリ情報を削除し、読み出したデータをリストＴ１に追加する。
【００６８】
ステップＳ９０６、または、ステップＳ９１０の処理終了後、ＣＭ３１１は、読み出し処理を終了する。
【００６９】
図１０は、Ｗａｔｅｒｍａｒｋ調整部５０５の処理手順の一例を示すフローチャートである。Ｗａｔｅｒｍａｒｋ調整部５０５は、読み出し監視部のカウンタが０以上か否かを判断する（ステップＳ１００１）。読み出し監視部のカウンタが０以上である場合（ステップＳ１００１：Ｙｅｓ）、Ｗａｔｅｒｍａｒｋ調整部５０５は、Ｗａｔｅｒｍａｒｋ値を、現在の値より小さく設定する（ステップＳ１００２）。
【００７０】
一方、読み出し監視部のカウンタが０未満である場合（ステップＳ１００１：Ｎｏ）、Ｗａｔｅｒｍａｒｋ調整部５０５は、Ｗａｔｅｒｍａｒｋ値を、現在の値より大きく設定する（ステップＳ１００３）。
【００７１】
ステップＳ１００２、または、ステップＳ１００３の処理終了後、Ｗａｔｅｒｍａｒｋ調整部５０５は、一定時間後にＷａｔｅｒｍａｒｋ調整部５０５を再起動するように設定する（ステップＳ１００４）。ステップＳ１００４の処理終了後、Ｗａｔｅｒｍａｒｋ調整部５０５は、一連の処理を終了する。
【００７２】
図１１は、キャッシュデータ管理部５０３の処理手順の一例を示すフローチャートである。図１１で示す一連の処理は、図１０で示したステップＳ１００２、Ｓ１００３の処理終了後に行ってもよいし、定期的に行ってもよい。
【００７３】
キャッシュデータ管理部５０３は、Ｗａｔａｒｍａｒｋ値がリストＴ１におけるＤｉｒｔｙページの割合以下かを判断する（ステップＳ１１０１）。Ｗａｔａｒｍａｒｋ値がＤｉｒｔｙページの割合以下である場合（ステップＳ１１０１：Ｙｅｓ）、キャッシュデータ管理部５０３は、Ｄｉｒｔｙページをディスク３１３に書き込む（ステップＳ１１０２）。具体的には、キャッシュデータ管理部５０３は、リストＴ１のＬＲＵとなるエントリのＤｉｒｔｙページを、ディスク３１３に書き込む。また、書き込むＤｉｒｔｙページの数は、１つでもよいし、Ｗａｔａｒｍａｒｋ値がＤｉｒｔｙページの割合以下となるまでの数でもよい。書き込むＤｉｒｔｙページの数が複数である場合、キャッシュデータ管理部５０３は、リストＴ１のＬＲＵの方から順に、Ｄｉｒｔｙページをディスク３１３に書き込む。
【００７４】
次に、キャッシュデータ管理部５０３は、書き込んだＤｉｒｔｙページを削除する（ステップＳ１１０３）。Ｄｉｒｔｙページを削除したエントリ情報は、メタデータだけとなるため、リストＢ１に移動することになる。ステップＳ１１０３の処理終了後、または、Ｗａｔａｒｍａｒｋ値がＤｉｒｔｙページの割合より大きい場合（ステップＳ１１０１：Ｎｏ）、キャッシュデータ管理部５０３は、一連の処理を終了する。
【００７５】
以上説明したように、ＣＭ３１１は、リストＴ１のＬＲＵからＤｉｒｔｙページが連続する数分のエントリ情報よりも、リストＢ１の先頭から前述する数分のエントリ情報への読み出しが多ければ、リストＴ１のＬＲＵのＤｉｒｔｙページをライトバックし削除する。これにより、ＣＭ３１１は、Ｒｅａｄヒット率を向上できるライトバックの適切なタイミングが判る。また、上述した実施の形態では、リストＴ１、Ｂ１における読み出しの回数を比較していたが、書き込みの回数を比較してもよいし、読み出しの回数と書き込みの回数とを合わせたアクセス回数を比較してもよい。例えば、リストＴ１、Ｂ１の各エントリ情報が、各エントリ情報自身のアクセス回数を記憶していてもよい。
【００７６】
また、ＣＭ３１１は、Ｗａｔｅｒｍａｒｋ値を調整することにより、Ｄｉｒｔｙページのライトバックを調整してもよい。これにより、本実施の形態は、Ｗａｔｅｒｍａｒｋモデルを採用している装置に対しても、容易に採用することができる。
【００７７】
また、本実施の形態では、通常のリストとなる第１のリストは、ディスク３１３のデータのうちの１回のアクセスがあったデータと、そのメタデータを有するエントリ情報としてもよい。また、第１のリストは、ディスク３１３のデータのうちの２回以上のアクセスがあったデータと、そのメタデータを有するエントリ情報としてもよい。これにより、本実施の形態は、ＡＲＣを採用する装置に対しても、容易に採用することができる。
【００７８】
また、本実施の形態は、ＡＲＣを採用していない、通常のリストだけしか有さない装置に対しても適用することができる。ここで、通常のリストは、所定のキャッシュ置換方式として、どのようなキャッシュ置換方式によるリストでもよく、例えば、ＬＲＵによるリストでもよいし、ＬＦＵによるリストでもよい。そして、通常のリストに対応するゴーストリストを用意することにより、ライトバックの適切なタイミングが判るようにすることができる。
【００７９】
なお、本実施の形態で説明したキャッシュメモリ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本キャッシュメモリ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本キャッシュメモリ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００８０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００８１】
（付記１）複数のデータを記憶する記憶装置と、
前記複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストと、前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストとを記憶するキャッシュメモリと、
前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する制御部と、
を有することを特徴とする情報処理装置。
【００８２】
（付記２）前記制御部は、
前記第１の合計よりも前記第２の合計が多い場合、前記第１のリストに含まれるデータが更新されているエントリ情報の割合と比較される閾値であって前記閾値の方が小さければ前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを削除する前記閾値を、現在の値より小さく設定し、
前記第１の合計が前記第２の合計よりも多い場合、前記閾値を現在の値より大きく設定する、
ことを特徴とする付記１に記載の情報処理装置。
【００８３】
（付記３）前記第１のリストは、前記複数のデータのうちの１回のアクセスがあったデータと前記データの前記記憶装置上における位置を示す情報とを有するエントリ情報を有するリストである、
ことを特徴とする付記１または２に記載の情報処理装置。
【００８４】
（付記４）前記第１のリストは、前記複数のデータのうちの２回以上のアクセスがあったデータと前記データの前記記憶装置上における位置を示す情報とを有するエントリ情報を有するリストである、
ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【００８５】
（付記５）コンピュータが、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストおよび前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストを記憶するキャッシュメモリの前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する、
処理を実行することを特徴とするキャッシュメモリ制御方法。
【００８６】
（付記６）コンピュータに、
記憶装置が記憶する複数のデータのうちのいずれかのデータと前記いずれかのデータの前記記憶装置上における位置を示す情報とを含むエントリ情報を有する第１のリストおよび前記第１のリストから追い出されたエントリ情報に含まれた削除済みのデータの前記記憶装置上における位置を示す情報を含むエントリ情報を有する第２のリストを記憶するキャッシュメモリの前記第１のリストにおける所定のキャッシュ置換方式による優先度に基づいて決定される削除対象のエントリ情報のデータが更新されている場合、前記優先度に従った順序における前記削除対象のエントリ情報からデータが更新されているエントリ情報が連続する数を計数し、
前記削除対象のエントリ情報から前記数分のエントリ情報へのアクセス回数の第１の合計よりも前記優先度に従った順序における前記第２のリストに最も後に追加されたエントリ情報から前記数分のエントリ情報へのアクセス回数の第２の合計が多い場合、前記削除対象のエントリ情報のデータを前記記憶装置に書き出して前記削除対象のエントリ情報のデータを前記キャッシュメモリから削除する、
処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
【符号の説明】
【００８７】
Ｔ１、Ｔ２、Ｂ１、Ｂ２  リスト
１０１  情報処理装置
１０２  記憶装置
１０３  キャッシュメモリ
１１１、１１２  エントリ情報
３１１  ＣＭ
５００  制御部
５０１  Ｉ／Ｏ受け付け部
５０２  読み出し／書き込み判定部
５０３  キャッシュデータ管理部
５０４  読み出し監視部
５０５  Ｗａｔｅｒｍａｒｋ調整部
【図１】
0006711121.tif 000002
【図２】
0006711121.tif 000003
【図３】
0006711121.tif 000004
【図４】
0006711121.tif 000005
【図５】
0006711121.tif 000006
【図６】
0006711121.tif 000007
【図７】
0006711121.tif 000008
【図８】
0006711121.tif 000009
【図９】
0006711121.tif 000010
【図１０】
0006711121.tif 000011
【図１１】
0006711121.tif 000012