(57)【要約】【課題】ヘッドによりアクセスされる記憶領域へのキャッシュメモリを用いた読み出し性能を向上させること。【解決手段】図１の（１）で示すように、情報処理装置１０１は、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のエントリの読み出しコストを、ＨＤＤ１０２における第１の部分領域の位置および現在のヘッドの位置に基づいて算出する。また、情報処理装置１０１は、図１の（２）で示すように、所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のエントリの読み出しコストを、ＨＤＤ１０２における第２の部分領域の位置および現在のヘッドの位置に基づいて算出する。そして、情報処理装置１０１は、図１の（３）で示すように、第１のエントリの読み出しコストより第２のエントリの読み出しコストが小さい場合、第２のエントリを削除する。【選択図】図１
2017138686.tif 000002
【特許請求の範囲】
【請求項１】
ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
制御部を有することを特徴とする情報処理装置。
【請求項２】
前記制御部は、
前記各々のブロックに対してキャッシュミスが発生したことに応じて、前記第１の時間を前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出するとともに、前記第２の時間を前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記キャッシュミスの前のキャッシュミスの発生に応じて前記第１のブロックとは異なる第３のブロックを削除していた場合、前記第３のブロックに対応する第３の部分領域の読み出しにかかる第３の時間と前記第１の時間と前記第２の時間とに基づいて、前記第２のブロックを削除すべきか否かを判定し、
前記第２のブロックを削除すべきと判定した場合、前記第２のブロックを削除する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記記憶領域にシーケンシャルに書き込むことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
コンピュータが、
ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
処理を実行することを特徴とするキャッシュメモリ制御方法。
【請求項５】
コンピュータに、
ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムに関する。
【背景技術】
【０００２】
従来、ある記憶領域より高速にアクセス可能なキャッシュメモリを用いて、ある記憶領域への読み出し性能を向上させる技術がある。また、キャッシュミス時に、キャッシュメモリの複数のブロックから削除対象のブロックを決定する技術がある。
【０００３】
関連する先行技術として、例えば、磁気ディスクからの読み出しのために使用すると決定したバッファの一部の連続領域内において先端と終端の位置が連結したサブバッファを規定し、サブバッファへの書き込みおよび読み出しを並列して実行するものがある。また、データ要求がシーケンシャルリードでないと判断した場合は、キャッシュメモリで複数のメモリ領域を分割設定して、或るメモリ領域に対してデータ格納動作を行うようにする技術がある。また、キャッシュミス時に、記憶領域からの過去の読み出し時間に基づいて、削除対象のブロックを特定する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１８５１６２号公報
【特許文献２】特開平１１−１４３６４３号公報
【非特許文献】
【０００５】
【非特許文献１】Ｊａｅｈｅｏｎ  Ｊｅｏｎｇ、他１名、「Ｃｏｓｔ−Ｓｅｎｓｉｔｉｖｅ  Ｃａｃｈｅ  Ｒｅｐｌａｃｅｍｅｎｔ  Ａｌｇｏｒｉｔｈｍｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｔｈｅ  Ｎｉｎｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ、２００３
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術によれば、ヘッドによりアクセスされる記憶領域へのキャッシュメモリを用いた読み出し性能が低下する場合がある。具体的には、記憶領域におけるヘッドの位置は刻々と変化するため、ヘッドの位置によってデータを記憶領域から読み出す時間は変化する。従って、記憶領域からの過去の読み出し時間に基づいて複数のブロックから削除対象のブロックを決定する場合、過去の読み出し時間が短いブロックを削除対象として決定することになるが、次に読み出す際にかかる時間は長くなる可能性がある。そして、次に読み出す際にかかる時間が長くなると、記憶領域へのキャッシュメモリを用いた読み出し性能が低下する。
【０００７】
１つの側面では、本発明は、ヘッドによりアクセスされる記憶領域へのキャッシュメモリを用いた読み出し性能を向上させることができる情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、記憶領域における第１の部分領域の位置および現在のヘッドの位置に基づいて算出し、各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、記憶領域における第２の部分領域の位置および現在のヘッドの位置に基づいて算出し、第１の時間より第２の時間が短い場合、第２のブロックを削除する情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムが提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、ヘッドによりアクセスされる記憶領域へのキャッシュメモリを用いた読み出し性能を向上させることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。
【図２】図２は、ストレージシステム２００の詳細な例を示す説明図である。
【図３】図３は、情報処理装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント装置２０１のハードウェア構成例を示すブロック図である。
【図５】図５は、情報処理装置１０１の機能構成例を示すブロック図である。
【図６】図６は、書き込みリクエストの一例を示す説明図である。
【図７】図７は、ストリームデータ５１１の一例を示す説明図である。
【図８】図８は、書き込みと読み出し時のサーバのＨＤＤ１０２に対するアクセスの様子を示す説明図である。
【図９】図９は、エントリ置換処理手順の一例を示すフローチャートである。
【図１０】図１０は、本実施の形態によるキャッシュメモリ制御方式を行った際のＲＡＭ１０３およびＨＤＤ１０２の利用状況の一例を示す説明図である。
【図１１】図１１は、ＬＲＵ方式を行った際のＲＡＭおよびＨＤＤの利用状況の一例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、開示の情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラムの実施の形態を詳細に説明する。
【００１２】
図１は、本実施の形態にかかる情報処理装置１０１の動作例を示す説明図である。情報処理装置１０１は、キャッシュメモリを制御するコンピュータである。情報処理装置１０１は、例えば、サーバである。キャッシュメモリとは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の処理装置が取得したり更新したりするデータを記憶する記憶装置よりアクセス性能が高い記憶装置である。キャッシュメモリは、記憶装置のデータを一時的に記憶する。処理装置がキャッシュメモリを用いてデータにアクセスすることにより、記憶装置と処理装置との性能差を埋めることができる。
【００１３】
また、キャッシュメモリは、ＣＰＵとＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）との間に設置され、ＲＡＭの一部のデータを記憶するが、このような使用形態に限られない。例えば、ＲＡＭをキャッシュメモリとしてみなし、ＲＡＭは、ＲＡＭより低速な記憶装置のデータを一時的に記憶してもよい。ＲＡＭより低速な記憶装置としては、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、光ディスクドライブ、磁気テープを有するテープドライブ等である。また、情報処理装置１０１がＨＤＤであって、キャッシュメモリが、ＨＤＤの内部にあってもよい。この場合、ＨＤＤの内部にあるキャッシュコントローラが、ＨＤＤの内部にあるキャッシュメモリを制御する。本実施の形態では、ＲＡＭをキャッシュメモリとしてみなし、ＲＡＭは、ＨＤＤのデータを一時的に記憶するものとする。
【００１４】
また、ＨＤＤが記憶するデータは、どのようなデータでもよい。例えば、ＨＤＤが記憶するデータは、時系列に沿ったデータであるストリームデータであってもよい。本実施の形態では、ＨＤＤはストリームデータを記憶するものとする。ストリームデータは、１以上のイベントデータを含む。ここで、イベントデータとは、何らかの事象が発生したことを示すデータである。例えば、ストリームデータが、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を流れるパケットをキャプチャしたものであり、１つ１つのパケットが、イベントデータである。例えば、あるイベントデータは、ある時刻に、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）パケットが流れたことを示すデータである。
【００１５】
ストリームデータの蓄積にかかる処理は、ＨＤＤへの書き込み性能が要求される書き込み重視のワークロードである。ストリームデータの取りこぼしを起こさないためには、ＨＤＤの稼働時間の大半を書き込みアクセスに割り当てることになり、読み出しアクセスは書き込みアクセスの合間を縫って行われる。従って、読み出し性能は一般に低いものとなる。
【００１６】
また、ＲＡＭは、イベントデータ単位で記憶するものとする。具体的には、ＲＡＭは、ＨＤＤを分割した各々の部分領域に対応付けて各々の部分領域に記憶されたイベントデータを一時的に記憶する。また、ＲＡＭの記憶領域は、ＨＤＤを分割した各々の部分領域に対応付けた各々のブロックに分割される。各々の部分領域と各々のブロックとの対応付けの方法としては、例えば、各々のブロックが、各々の部分領域のアドレス、または各々の部分領域の下位数ビットを記憶すればよい。以下、ブロックを、「エントリ」と呼称する。
【００１７】
また、キャッシュメモリとしてみなすＲＡＭは、ＨＤＤよりもアクセス性能が高い分、ＨＤＤよりも記憶できる容量が少ない。従って、キャッシュミスが発生した際には、所定のキャッシュ置換方式に基づいて削除するエントリを決定し、決定したエントリに、キャッシュミスによりＨＤＤから読み出したイベントデータを上書きする。ここで、キャッシュ置換方式は、複数のエントリのうち削除候補とするエントリを特定するアルゴリズムのことである。キャッシュ置換方式には、例えば、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式や、ＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）方式等がある。
【００１８】
また、キャッシュミス時にデータを記憶領域から読み出す時間を考慮したＬＲＵ方式として、ＢＣＬ（Ｂａｓｉｃ  Ｃｏｓｔ−ｓｅｎｓｉｔｉｖｅ  ＬＲＵ）方式がある。ＢＣＬ方式について説明する。まず、ＢＣＬ方式を行う装置では、キャッシュメモリの各エントリにコストを割り当てる。このコストは、該当のエントリがキャッシュから削除された後、キャッシュメモリに再ロードするのにかかると予測される時間であり、一般には前回記憶領域から読み出すのにかかった時間で近似される。そして、ＢＣＬ方式を行う装置は、あるエントリがＬＲＵエントリの先頭に移動した際に、変数Ａｃｏｓｔを初期化する。
【００１９】
ここで、ＬＲＵエントリの先頭は、最も長い間アクセスされていないエントリのことである。以降、ＬＲＵエントリの先頭を、「ＬＲＵエントリ」と呼称する。これに対し、１番最近にアクセスされたエントリを、「ＭＲＵ（Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）エントリ」と呼称する。
【００２０】
変数Ａｃｏｓｔの初期値は、ＬＲＵエントリに割り当てられたコストである。そして、キャッシュミスが発生した場合、ＢＣＬ方式を行う装置は、置換するエントリを次の方法で決定する。ＢＣＬ方式を行う装置は、ＬＲＵエントリの次の位置にあるエントリ、すなわち、２番目に長い間アクセスされていないエントリから順番にＬＲＵリストをたどり、各エントリのコストを調べる。もし、Ａｃｏｓｔよりも低いコストを持つエントリが見つかれば、ＢＣＬ方式を行う装置は、見つかったエントリを置換し、Ａｃｏｓｔから見つかったエントリのコストの２倍の値を減算する。一方で、Ａｃｏｓｔよりも低いコストを持つエントリが見つからなければ、ＢＣＬ方式を行う装置は、ＬＲＵエントリを置換する。
【００２１】
しかしながら、ＨＤＤ等のヘッドによりアクセスされる記憶領域に対して、ＢＣＬ方式を行っても、読み出し性能が低下する場合がある。具体的には、ヘッドの位置は刻々と変化するため、ヘッドの位置によってデータを記憶領域から読み出す時間は変化する。従って、記憶領域からの過去の読み出し時間に基づいてキャッシュメモリの複数のエントリから削除対象のエントリを決定する場合、読み出し時間が短いエントリを削除対象として決定することになるが、次に読み出す際にかかる時間は長くなる可能性がある。そして、次に読み出す際にかかる時間が長いと、記憶領域へのキャッシュメモリを用いた読み出し性能が低下する。
【００２２】
ここで、ＨＤＤに蓄えたストリームデータにおける読み出しにかかる時間は、大半が、シーク時間が占める。ここで、シーク時間とは、ＨＤＤのヘッドを指定された位置まで移動させるのにかかる時間である。そこで、本実施の形態では、キャッシュミス時、ＬＲＵエントリと次の位置のエントリとに対するＨＤＤからの各読み出し時間を現在のヘッドの位置から求め、次の位置のエントリの読み出し時間が短ければ次の位置のエントリを削除する方法について説明する。
【００２３】
図１を用いて、情報処理装置１０１の動作例について説明する。情報処理装置１０１は、ＨＤＤ１０２と、ＲＡＭ１０３とを有する。ＨＤＤ１０２は、ストリームデータを記憶する。ＨＤＤ１０２のアドレスの表現方法は、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）でもよいし、ＣＨＳ（Ｃｙｌｉｎｄｅｒ  Ｈｅａｄ  Ｓｅｃｔｏｒ）でもよい。図１の例では、説明の簡略化のため、ＨＤＤ１０２は、アドレス０〜７に分割された部分領域を有するものとする。各部分領域には、１つのイベントデータが格納されているものとする。
【００２４】
ＲＡＭ１０３は、ＨＤＤ１０２が記憶するイベントデータを一時的に記憶する。図１の例では、ＲＡＭ１０３は、４つのエントリ１０４−１〜４を有する。図１に示すＲＡＭ１０３では、ＭＲＵエントリとなるエントリ１０４−４からＬＲＵエントリとなるエントリ１０４−１の順にソートされているとする。図１の例では、エントリ１０４−１は、ＨＤＤ１０２のアドレス７で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０４−２は、ＨＤＤ１０２のアドレス５で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０４−３は、ＨＤＤ１０２のアドレス２で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０４−４は、ＨＤＤ１０２のアドレス０で示す部分領域に記憶されたイベントデータを記憶する。そして、現在の書き込み位置として、ヘッドは、アドレス４にアクセスする位置にあり、読み出しリクエストがアドレス３の部分領域に対するものであったとする。
【００２５】
この場合、キャッシュミスが発生するため、情報処理装置１０１は、ＲＡＭ１０３のエントリ１０４−１〜４の中からいずれかのエントリを削除することになる。まず、図１の（１）で示すように、情報処理装置１０１は、第１のエントリに対する第１の部分領域の読み出しにかかる第１の時間を、ＨＤＤ１０２における第１の部分領域の位置および現在のヘッドの位置に基づいて算出する。ここで、第１のエントリは、所定のキャッシュ置換方式に基づいて削除候補として決定されるエントリであり、図１の例では、エントリ１０４−１である。また、第１の部分領域は、アドレス７で示す部分領域である。また、情報処理装置１０１は、所定のキャッシュ置換方式として、ＬＲＵ方式、ＬＦＵ方式といった、どのようなキャッシュ置換方式を採用してもよい。例えば、情報処理装置１０１の管理者により、いずれかのキャッシュ置換方式が指定される。本実施の形態では、ＬＲＵ方式が採用されたものとする。
【００２６】
情報処理装置１０１は、例えば、第１の時間を、第１の部分領域の位置と現在のヘッドの位置との差の絶対値として算出する。例えば、情報処理装置１０１は、第１の部分領域の位置および現在のヘッドの位置の大きい値の方から小さい値を減算することにより第１の時間を求めてもよい。または、情報処理装置１０１は、第１の部分領域の位置と現在のヘッドの位置との差を求め、差が０未満となれば差に−１を掛けることにより第１の時間を求めてもよい。
【００２７】
また、情報処理装置１０１は、図１の（２）で示すように、第２のエントリに対する第２の部分領域の読み出しにかかる第２の時間を、ＨＤＤ１０２における第２の部分領域の位置および現在のヘッドの位置に基づいて算出する。ここで、第２のエントリは、所定のキャッシュ置換方式に基づいて削除候補として決定されないエントリであり、すなわち、ＬＲＵエントリ以外のエントリであればどのエントリでもよいが、ＬＲＵエントリの次の位置にあるエントリが好ましい。図１の例では、第２のエントリは、エントリ１０４−２である。そして、図１の（１）で示した方法と同様に、情報処理装置１０１は、第２の時間を算出する。
【００２８】
ここで、情報処理装置１０１は、上述した順序の通り、第１の時間を算出した後に第２の時間を算出してもよいし、第２の時間を算出した後に第１の時間を算出してもよい。また、情報処理装置１０１は、第１の時間を算出した後に第２の時間を算出する際のヘッドの位置として、第１の時間を算出した際のヘッドの位置をそのまま用いてもよいし、改めて現在のヘッドの位置を取得してもよい。
【００２９】
以下の記載では、エントリに対する部分領域の読み出しにかかる時間を、「読み出しコスト」と称する。読み出しコストは、値が小さいほど読み出しにかかる時間が短いことを示す。図１の例では、第１の時間となる、エントリ１０４−１の読み出しコストは、７−４＝３となり、第２の時間となる、エントリ１０４−２の読み出しコストは、５−４＝１となる。
【００３０】
そして、情報処理装置１０１は、図１の（３）で示すように、第１のエントリの読み出しコストより第２のエントリの読み出しコストが小さい場合、第２のエントリを削除する。図１の例では、エントリ１０４−１の読み出しコストよりエントリ１０４−２の読み出しコストが小さいため、エントリ１０４−２を削除する。図１の右に示したＲＡＭ１０３は、エントリ１０４−２を削除した後の状態となるエントリ１０５−１〜４の様子を示す。エントリ１０５−１は、削除する前と変わらず、ＨＤＤ１０２のアドレス７で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０５−２は、ＨＤＤ１０２のアドレス２で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０５−３は、ＨＤＤ１０２のアドレス０で示す部分領域に記憶されたイベントデータを記憶する。また、エントリ１０５−４は、ＨＤＤ１０２のアドレス３で示す部分領域に記憶されたイベントデータを記憶する。
【００３１】
また、情報処理装置１０１は、第２のエントリの読み出しコストより第１のエントリの読み出しコストが短い場合、第１のエントリを削除してもよいし、第１のエントリの読み出しコストより小さい読み出しコストを有するエントリを探索してもよい。例えば、図１の例であれば、情報処理装置１０１は、エントリ１０４−３の読み出しコストを算出し、算出した読み出しコストと、エントリ１０４−１の読み出しコストとを比較してもよい。
【００３２】
以上により、情報処理装置１０１は、現在のヘッドの位置から遠いエントリ１０４−１を残すことができるため、平均の読み出し性能を向上させることができる。なお、図１では、記憶領域をＨＤＤが有する記憶領域としたが、記憶領域におけるヘッドの位置が刻々と変化するものであれば、どのような記憶装置によってアクセスされる記憶領域でもよい。例えば、ＨＤＤの代わりに、ヘッドが移動する光ディスクドライブを適用し、記憶領域を光ディスクドライブによってアクセスされる光ディスクとしてもよい。また、ヘッドの位置は固定であるが、記憶領域が移動するために記憶領域におけるヘッドの位置が刻々と変化する記憶装置に適用してもよい。例えば、ＨＤＤの代わりに、テープドライブを適用し、記憶領域を磁気テープとしてもよい。次に、情報処理装置１０１を含むストレージシステムについて、図２を用いて説明する。
【００３３】
図２は、ストレージシステム２００の詳細な例を示す説明図である。ストレージシステム２００は、クライアント装置２０１と、情報処理装置１０１とを有する。クライアント装置２０１と、情報処理装置１０１とは、ネットワーク２１１により接続される。
【００３４】
クライアント装置２０１は、ストレージシステム２００の利用者等の操作により、情報処理装置１０１に対して、書き込みリクエスト、読み出しリクエストを送信するコンピュータである。以下に、書き込みリクエスト、読み出しリクエストを送信する際の動作について説明する。
【００３５】
書き込みリクエストについて、クライアント装置２０１は、受信したストリームデータからイベントデータを形成し、イベントデータを一意に識別するイベントデータＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）を付与したイベントデータを含む書き込みリクエストを情報処理装置１０１に送信する。書き込みリクエストの具体例については、図６で説明する。また、書き込みリクエストを受信した情報処理装置１０１は、イベントデータをＨＤＤ１０２に書き込む。ここで、書き込み性能を上げるために、情報処理装置１０１は、ＨＤＤ１０２に対してシーケンシャルに書き込む。書き込みの様子については、図８で説明する。
【００３６】
読み出しリクエストについて、クライアント装置２０１は、イベントデータＩＤを含む読み出しリクエストを、情報処理装置１０１に送信する。読み出しリクエストは、読み出し対象となるイベントデータＩＤを含むだけであるため、特に図示しない。読み出しリクエストを受信した情報処理装置１０１は、指定されたイベントデータをＨＤＤ１０２から読み出し、読み出したイベントデータをクライアント装置２０１に送信する。ＨＤＤ１０２への読み出しアクセスは、一般にはランダムなアクセスとなる。読み出したイベントデータに対して再度アクセスされた場合の読み出し速度を向上させるため、情報処理装置１０１は、読み出したイベントデータをＲＡＭ１０３に保存する。読み出しの様子についても、図８で説明する。
【００３７】
情報処理装置１０１は、クライアント装置２０１からの書き込みや、読み出しリクエストを受け付けて処理するサーバである。次に、図３、４を用いて、情報処理装置１０１、クライアント装置２０１のハードウェア構成について説明する。
【００３８】
図３は、情報処理装置１０１のハードウェア構成例を示すブロック図である。図３において、情報処理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ１０３と、ＨＤＤ１０２およびＨＤ（Ｈａｒｄ  Ｄｉｓｋ）３０３と、通信インターフェース３０４と、を含む。また、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ１０３、ＨＤＤ１０２、通信インターフェース３０４はバス３０５によってそれぞれ接続される。
【００３９】
ＣＰＵ３０１は、情報処理装置１０１の全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ１０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００４０】
ＨＤＤ１０２は、ＨＤ３０３を含む。そして、ＨＤＤ１０２は、ＣＰＵ３０１の制御に従ってＨＤ３０３に対するデータのリードおよびライトを制御する制御装置である。ＨＤ３０３は、ＨＤＤ１０２の制御で書き込まれたデータを記憶する記憶媒体である。ＨＤ３０３は、ストリームデータを記憶する。ストリームデータの一例は、図７で説明する。
【００４１】
通信インターフェース３０４は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０４は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース３０４には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４２】
また、ストレージシステム２００の管理者が、情報処理装置１０１を直接操作する場合、情報処理装置１０１は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
【００４３】
図４は、クライアント装置２０１のハードウェア構成例を示すブロック図である。クライアント装置２０１は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、を含む。また、クライアント装置２０１は、ディスクドライブ４０４と、ディスク４０５と、通信インターフェース４０６と、を含む。また、クライアント装置２０１は、ディスプレイ４０７と、キーボード４０８と、マウス４０９とを含む。また、ＣＰＵ４０１〜ディスクドライブ４０４と、通信インターフェース４０６〜マウス４０９とは、バス４１０によってそれぞれ接続される。
【００４４】
ＣＰＵ４０１は、クライアント装置２０１の全体の制御を司る演算処理装置である。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される揮発性メモリである。
【００４５】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ４０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ４０４が磁気ディスクドライブである場合、ディスク４０５には、磁気ディスクを採用することができる。また、ディスクドライブ４０４が光ディスクドライブである場合、ディスク４０５には、光ディスクを採用することができる。また、ディスクドライブ４０４がソリッドステートドライブである場合、ディスク４０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００４６】
通信インターフェース４０６は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース４０６は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース４０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４７】
ディスプレイ４０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ４０７には、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４８】
キーボード４０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード４０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス４０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。次に、図５を用いて、情報処理装置１０１の機能構成例を説明する。
【００４９】
（情報処理装置１０１の機能構成例）
図５は、情報処理装置１０１の機能構成例を示すブロック図である。情報処理装置１０１は、制御部５００を有する。制御部５００は、アクセス部５０１と、算出部５０２と、判定部５０３と、削除部５０４と、を含む。制御部５００は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ１０３、ＨＤＤ１０２などである。また、各部の処理結果は、ＣＰＵ３０１のレジスタや、ＲＡＭ１０３等に格納される。
【００５０】
また、情報処理装置１０１は、ＨＤＤ１０２、ＲＡＭ１０３にアクセス可能である。ＨＤＤ１０２は、ストリームデータ５１１を記憶する。ストリームデータ５１１は、イベントデータ５１２−１〜３…、を含む。ＲＡＭ１０３は、ストリームデータ５１１の一部のイベントデータ５１２を記憶する。図５の例では、ＲＡＭ１０３は、イベントデータ５１２−１、３…を記憶する。
【００５１】
アクセス部５０１は、読み出しリクエストや書き込みリクエストに応じて、ＨＤＤ１０２にアクセスしたり、ＲＡＭ１０３にアクセスしたりする。
【００５２】
算出部５０２は、各々のエントリのうち、ＬＲＵ方式に基づいて削除候補として決定される第１のエントリの読み出しコストを、ＨＤＤ１０２における第１のエントリに対応する部分領域の位置および現在のヘッドの位置に基づいて算出する。また、算出部５０２は、各々のエントリのうち、ＬＲＵ方式に基づいて削除候補として決定されない第２のエントリの読み出しコストを、ＨＤＤ１０２における第２のエントリに対応する部分領域の位置および現在のヘッドの位置に基づいて算出する。また、算出部５０２は、アクセス部５０１によってキャッシュミスが発生したことに応じて、第１のエントリの読み出しコストと第２のエントリの読み出しコストとを算出する。
【００５３】
判定部５０３は、算出部５０２が算出した第１のエントリの読み出しコストより第２のエントリの読み出しコストが小さいか否かを判定する。また、情報処理装置１０１が、あるキャッシュミスの前のキャッシュミスの発生に応じて、ＬＲＵエントリとは異なる第３のエントリを削除したとする。この場合、判定部５０３は、第３のエントリの読み出しコストと、第１のエントリの読み出しコストと、第２のエントリの読み出しコストとに基づいて、第２のエントリを削除すべきか否かを判定してもよい。
【００５４】
具体的には、判定部５０３は、第１のエントリの読み出しコストから第３のエントリの読み出しコストを減算した値が、第２のエントリの読み出しコストより大きければ、第２のエントリを削除すべきと判定する。また、判定部５０３は、第１のエントリの読み出しコストが、第３のエントリの読み出しコストと第２のエントリの読み出しコストとを加算した値より大きければ、第２のエントリを削除すべきと判定してもよい。
【００５５】
削除部５０４は、第１のエントリの読み出しコストより第２のエントリの読み出しコストが小さい場合、第２のエントリを削除する。または、削除部５０４は、判定部５０３が第２のエントリを削除すべきと判定した場合、第２のエントリを削除する。図５の例では、削除部５０４は、ＲＡＭ１０３内のイベントデータ５１２−３を削除する。次に、クライアント装置２０１から受信する書き込みリクエストの一例について、図６を用いて説明する。
【００５６】
図６は、書き込みリクエストの一例を示す説明図である。書き込みリクエストは、図６に示すように、イベントデータＩＤと、メタデータと、イベントデータと、という３つのデータで形成される。イベントデータＩＤは、クライアント装置２０１が付与したものであり、イベントデータを識別する値である。メタデータは、イベントデータに付随する属性である。イベントデータは、何らかの事象が発生したことを示すデータである。
【００５７】
例えば、図６の例では、書き込みリクエスト６０１は、イベントデータＩＤが１であり、送信元ＩＰアドレスが、「１９２．１６８．０．１」であり、送信先ＩＰアドレスが、「１９２．１６８．０．２」であり、プロトコルが「ＴＣＰ」であることを示す。また、書き込みリクエスト６０１は、イベントデータが、「２０１３／０９／３０／１２：００」に送信開始したことを示す。
【００５８】
図７は、ストリームデータ５１１の一例を示す説明図である。図７では、書き込みリクエストによりＨＤＤ１０２に書き込まれたストリームデータ５１１の一例を示す。ストリームデータ５１１の一部である、あるタイミングを始点として１番目に情報処理装置１０１に到達したイベントデータは、イベントデータＩＤが１であるイベントデータ５１２−１である。イベントデータ５１２−１は、送信元ＩＰアドレスが「１９２．１６８．０．３」であるイベントデータである。以下、ストリームデータ５１１の一部である、あるタイミングを始点として２〜８番目に情報処理装置１０１に到達したイベントデータは、それぞれ、イベントデータＩＤが２〜８であるイベントデータ５１２−２〜８である。
【００５９】
図８は、書き込みと読み出し時のサーバのＨＤＤ１０２に対するアクセスの様子を示す説明図である。書き込みリクエストを受け付けた場合、情報処理装置１０１は、ＨＤＤ１０２のアドレス０からアドレスの最大値に向かってイベントデータを書き込む。図８の例では、網掛けを行った領域が、イベントデータが書き込まれた領域であることを示す。また、情報処理装置１０１は、アドレスの最大値で示す部分領域にイベントデータを書き込んだ場合、アドレス０に戻り、古いイベントデータを上書きする。
【００６０】
また、読み出しリクエストを受け付けた場合、情報処理装置１０１は、指定されたイベントデータをＨＤＤ１０２から読み出して、クライアント装置２０１に返送する。また、情報処理装置１０１は、読み出したイベントデータを、ＲＡＭ１０３に保存する。図８の例では、情報処理装置１０１は、イベントデータＩＤ＝１００のイベントデータをＨＤＤ１０２から読み出してクライアント装置２０１に返送するとともに、イベントデータＩＤ＝１００のイベントデータをＲＡＭ１０３に保存する。次に、エントリ置換処理のフローチャートを、図９を用いて説明する。
【００６１】
図９は、エントリ置換処理手順の一例を示すフローチャートである。エントリ置換処理は、複数のキャッシュエントリから選んだエントリを削除して、新たなエントリを書き込めるようにする処理である。また、図９で用いるＢｃｏｓｔ、Ｎ、Ｃ［ｉ］について説明する。
【００６２】
Ｂｃｏｓｔは、ＬＲＵエントリが残留し続けないようにするために用いる変数である。情報処理装置１０１は、いずれかのキャッシュエントリがＬＲＵエントリに移動した際に、Ｂｃｏｓｔを初期化する。Ｂｃｏｓｔの初期値は、０である。また、Ｂｃｏｓｔは、ＬＲＵエントリ以外のエントリが削除される際に増加される。
【００６３】
Ｎは、ＲＡＭ１０３に載ることができるエントリの数を示す。また、エントリは、ＲＡＭ１０３内でＭＲＵエントリからＬＲＵエントリの順にソートされているものとする。例えば、１番目のエントリがＭＲＵエントリであり、Ｎ番目のエントリがＬＲＵエントリである。
【００６４】
Ｃ［ｉ］は、ｉ番目のエントリに対応するイベントデータの現在の読み出しコストである。例えば、情報処理装置１０１は、現在の読み出しコストを、下記（１）式に従って算出する。
【００６５】
Ｃ［ｉ］＝｜現在の書き込みアドレス−Ｃ［ｉ］のエントリに対応するＨＤＤ１０２上のアドレス｜  …（１）
【００６６】
ここで、｜ｘ｜は、ｘの絶対値を表す。また、情報処理装置１０１は、全イベントデータのＨＤＤ１０２上のアドレスを把握しており、エントリに対応するイベントデータのＨＤＤ１０２上のアドレスを特定できるものとする。
【００６７】
キャッシュミスが発生した場合、情報処理装置１０１は、Ｃ［Ｎ］を算出する（ステップＳ９０１）。次に、情報処理装置１０１は、Ｎ−１をｉに代入する（ステップＳ９０２）。また、情報処理装置１０１は、Ｎをｊに代入する（ステップＳ９０３）。そして、情報処理装置１０１は、ｉが１以上か否かを判断する（ステップＳ９０４）。ｉが１以上である場合（ステップＳ９０４：Ｙｅｓ）、情報処理装置１０１は、Ｃ［ｉ］を算出する（ステップＳ９０５）。
【００６８】
そして、情報処理装置１０１は、Ｃ［Ｎ］−ＢｃｏｓｔがＣ［ｉ］より大きいか否かを判断する（ステップＳ９０６）。ここで、Ｃ［Ｎ］からＢｃｏｓｔを減算した値は、ＬＲＵエントリが残留し続けている期間が長い程、ＬＲＵエントリが削除され易くなる値となる。Ｃ［Ｎ］−ＢｃｏｓｔがＣ［ｉ］以下である場合（ステップＳ９０６：Ｎｏ）、情報処理装置１０１は、ｉ−１をｉに代入する（ステップＳ９０７）。そして、情報処理装置１０１は、ステップＳ９０４の処理に移行する。
【００６９】
一方、Ｃ［Ｎ］−ＢｃｏｓｔがＣ［ｉ］より大きい場合（ステップＳ９０６：Ｙｅｓ）、情報処理装置１０１は、ｉをｊに代入する（ステップＳ９０８）。そして、情報処理装置１０１は、Ｂｃｏｓｔ＋ｋＣ［ｊ］をＢｃｏｓｔに代入する（ステップＳ９０９）。ここで、ｋは正の実数である。ｋの値は、情報処理装置１０１の管理者のチューニング等により決定される値である。
【００７０】
一方、ｉが１未満である場合（ステップＳ９０４：Ｎｏ）、情報処理装置１０１は、０をＢｃｏｓｔに代入する（ステップＳ９１０）。ステップＳ９０９またはステップＳ９１０の処理終了後、情報処理装置１０１は、ｊ番目のエントリを削除する（ステップＳ９１１）。ステップＳ９１１の処理終了後、情報処理装置１０１は、エントリ置換処理を終了する。次に、図１０と図１１を用いて、本実施の形態によるキャッシュメモリ制御方式と、ＬＲＵ方式とを比較して説明する。
【００７１】
図１０は、本実施の形態によるキャッシュメモリ制御方式を行った際のＲＡＭ１０３およびＨＤＤ１０２の利用状況の一例を示す説明図である。ここで、図１０で示した網掛けの領域は、ＲＡＭ１０３のエントリとして載っているイベントデータが格納されている領域であることを示す。図１０で示すように、現在の書き込み位置から遠いイベントデータがＲＡＭ１０３に残り易くなる。そして、情報処理装置１０１は、イベントデータの読み出しにかかる平均時間が減り、単位時間当たりの読み出し性能を向上させることができる。
【００７２】
図１１は、ＬＲＵ方式を行った際のＲＡＭおよびＨＤＤの利用状況の一例を示す説明図である。ここで、図１１で示した網掛けの領域は、ＲＡＭのエントリとして載っているイベントデータが格納されている領域であることを示す。図１１で示すように、現在の書き込み位置に関係なくイベントデータがＲＡＭに残っていることがわかる。そして、読み出しに時間のかかるイベントデータに対して読み出しリクエストがあると、図１０の状態に比べて、ＨＤＤから読み出す場合が多くなるため、図１０の状態より、イベントデータの読み出しにかかる平均時間が長くなる。
【００７３】
以上説明したように、情報処理装置１０１は、ＬＲＵエントリとなる第１のエントリと次の位置の第２のエントリとに対するＨＤＤからの各読み出しコストを現在のヘッドの位置から求め、第２のエントリの読み出しコストが短ければ第２のエントリを削除する。これにより、情報処理装置１０１は、現在のヘッドの位置から遠いエントリを残すことができるため、平均の読み出し性能を向上させることができる。
【００７４】
また、あるキャッシュミスの前のキャッシュミスの発生に応じて、ＬＲＵエントリとは異なる第３のエントリを削除したとする。この場合、情報処理装置１０１は、第３のエントリの読み出しコストと、ＬＲＵエントリの読み出しコストと、第２のエントリの読み出しコストとに基づいて、第２のエントリを削除すべきか否かを判定してもよい。具体的には、情報処理装置１０１は、ＬＲＵエントリを削除しやすくなるように判定する。ＬＲＵエントリを削除しやすくする理由としては、ＬＲＵエントリが現在のヘッドの位置から遠い位置にある分割領域に対応しても、長くアクセスされていない以上、ＬＲＵエントリを残留させるのであれば、他のエントリを残留させた方がよいためである。これにより、情報処理装置１０１は、ＲＡＭ１０３の有効利用ができ、読み出し性能を向上させることができる。
【００７５】
また、情報処理装置１０１は、ＨＤＤ１０２にランダムに書き込むことは行わず、ＨＤＤ１０２にシーケンシャルに書き込むことだけ行ってもよい。これにより、ＨＤＤ１０２はランダムアクセスに比べてシーケンシャルアクセスが高性能であるため、情報処理装置１０１は、書き込み性能を向上させることができる。また、シーケンシャルに書き込むことしか行わないＨＤＤ１０２に対して、ランダムな読み出しを行う場合、読み出し先は、現在の書き込み位置の近傍である方が、読み出しが終わった後の書き込みにかかるシーク時間を短くすることができる。従って、情報処理装置１０１は、読み出しが終わった後の書き込み性能を向上させることができる。
【００７６】
また、情報処理装置１０１は、ＨＤＤ１０２にストリームデータを書き込んでもよい。また、本実施の形態は、ヘッドによりアクセスされる記憶領域を有する記憶装置であればどのようなものでもよく、光ディスクドライブ、磁気テープを有するテープドライブに対しても適用することができる。
【００７７】
なお、本実施の形態で説明したキャッシュメモリ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本キャッシュメモリ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本キャッシュメモリ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００７８】
また、本実施の形態で説明した情報処理装置１０１は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。例えば、情報処理装置１０１がＨＤＤである場合に、アクセス部５０１〜削除部５０４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、本実施の形態にかかるＨＤＤを製造することができる。
【００７９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００８０】
（付記１）ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
制御部を有することを特徴とする情報処理装置。
【００８１】
（付記２）前記制御部は、
前記各々のブロックに対してキャッシュミスが発生したことに応じて、前記第１の時間を前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出するとともに、前記第２の時間を前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記キャッシュミスの前のキャッシュミスの発生に応じて前記第１のブロックとは異なる第３のブロックを削除していた場合、前記第３のブロックに対応する第３の部分領域の読み出しにかかる第３の時間と前記第１の時間と前記第２の時間とに基づいて、前記第２のブロックを削除すべきか否かを判定し、
前記第２のブロックを削除すべきと判定した場合、前記第２のブロックを削除する、
ことを特徴とする付記１に記載の情報処理装置。
【００８２】
（付記３）前記制御部は、
前記記憶領域にシーケンシャルに書き込むことを特徴とする付記１または２に記載の情報処理装置。
【００８３】
（付記４）前記記憶領域は、磁気ディスクドライブにより制御される磁気ディスクであることを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
【００８４】
（付記５）コンピュータが、
ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
処理を実行することを特徴とするキャッシュメモリ制御方法。
【００８５】
（付記６）コンピュータに、
ヘッドによりアクセスされる記憶領域を分割した複数の部分領域の各々の部分領域に対応付けて前記各々の部分領域のデータを一時的に記憶する各々のブロックのうち、所定のキャッシュ置換方式に基づいて削除候補として決定される第１のブロックに対応する第１の部分領域の読み出しにかかる第１の時間を、前記記憶領域における前記第１の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記各々のブロックのうち、前記所定のキャッシュ置換方式に基づいて削除候補として決定されない第２のブロックに対応する第２の部分領域の読み出しにかかる第２の時間を、前記記憶領域における前記第２の部分領域の位置および現在の前記ヘッドの位置に基づいて算出し、
前記第１の時間より前記第２の時間が短い場合、前記第２のブロックを削除する、
処理を実行させることを特徴とするキャッシュメモリ制御プログラム。
【符号の説明】
【００８６】
１０１  情報処理装置
１０２  ＨＤＤ
１０３  ＲＡＭ
５００  制御部
５０１  アクセス部
５０２  算出部
５０３  判定部
５０４  削除部
５１１  ストリームデータ
５１２  イベントデータ
【図１】
2017138686.tif 000003
【図２】
2017138686.tif 000004
【図３】
2017138686.tif 000005
【図４】
2017138686.tif 000006
【図５】
2017138686.tif 000007
【図６】
2017138686.tif 000008
【図７】
2017138686.tif 000009
【図８】
2017138686.tif 000010
【図９】
2017138686.tif 000011
【図１０】
2017138686.tif 000012
【図１１】
2017138686.tif 000013