(57)【要約】【課題】情報処理装置のキャッシュ制御において、シーケンシャルアクセス性能を向上させる。【解決手段】情報処理装置は、連続するまたは所定の範囲内で断続する第１の記憶部の領域に順次アクセスすることにより第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、シーケンシャルアクセスを検出し、第１の記憶部に連続して記憶されたデータを予め読み出して第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、第１のデータのサイズに基づいて算出し、算出された第２のデータのサイズに基づいて、プリフェッチを行う。【選択図】図４
2014038511.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する第１の記憶部と、
前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部と、
前記第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出する検出部と、
前記第１の記憶部に連続して記憶された前記データを予め読み出して前記第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出する算出部と、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行うプリフェッチ部と、
を備えた情報処理装置。
【請求項２】
前記検出部は、前記シーケンシャルアクセス毎に、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続するかを判定し、
前記算出部は、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続する場合、前記割合に基づいて、前記第２のデータのサイズを算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出部は、前記第１のデータのサイズに所定のデータサイズを付加した値を、前記第２のデータのサイズとして算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらに、
前記シーケンシャルアクセスにより前記第２の記憶部からデータが読み出される読み出し速度を計測する読み出し速度計測部と、
前記プリフェッチ部によりデータが読み出されるプリフェッチ速度を計測するプリフェッチ速度計測部と、
を備え、
前記算出部は、前記読み出し速度と前記プリフェッチ速度とを比較し、該比較の結果に応じて、前記第２のデータのサイズを算出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
プロセッサにより実行される情報処理方法であって、
前記プロセッサは、
データを記憶する第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出し、
前記第１の記憶部に連続して記憶された前記データを予め読み出して、前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出し、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行う
処理を実行することを特徴とする情報処理方法。
【請求項６】
プロセッサに、
データを記憶する第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出し、
前記第１の記憶部に連続して記憶された前記データを予め読み出して、前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出し、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行う
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御に関する。
【背景技術】
【０００２】
データを記憶する複数の論理ボリュームと、論理ボリュームに対するホストからのアクセスの制御を行うストレージコントローラとを含むストレージ装置が知られている。ストレージコントローラは、論理ボリュームに対するリード要求のアクセス領域（アドレス）が連続する場合、後続するアクセスが発生してから論理ボリュームに対して入出力を行うのではなく、予め連続する領域のデータをキャッシュ領域に先読みしておく。このような連続領域の先読み動作をプリフェッチと呼ぶ。
【０００３】
プリフェッチを行うことで、シーケンシャルアクセスに対して、磁気ディスクの回転待ち時間や物理的なシークの時間を短縮できる場合があるため、ストレージ装置に対してアクセスするホストからのリード要求に対するレスポンスを向上させることができる。よって、シーケンシャル性能の向上を図ることができる。
【０００４】
プリフェッチを行うために、ストレージコントローラは、リード要求におけるアクセス領域の連続性を監視する。そして、ストレージコントローラは、所定（ｎ個、固定値）のリード要求のアクセス領域が連続すると、プリフェッチが有効であると判断し、後続のリード要求で読み出すと予測される先のアドレス領域（固定値分）を先読みする。
【０００５】
ここで、ストレージ装置に対するアクセスが、シーケンシャルアクセスではなく、ランダム系のアクセスである場合には、後続するアクセスのアクセス対象ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が予測できない。そのため、プリフェッチ動作は行われない。
【０００６】
尚、ストレージコントローラは、アドレスの連続性の監視について、１つのＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）について、例えば最大８個同時に監視できる。また、プリフェッチの判断ポイントであるｎ個（固定値）は、例えばＭＭＩ（ｍａｎ  ｍａｃｈｉｎｅ  ｉｎｔｅｒｆａｃｅ）を介して設定できる。
【０００７】
ストレージコントローラによるプリフェッチ動作の一例を、図１及び図２を参照して説明する。図１は、アクセスのシーケンシャル性の検出とプリフェッチの開始を説明するための図である。図２は、プリフェッチの継続と停止を説明するための図である。
【０００８】
図１の例の場合、一度にプリフェッチされるデータ量は、ホストからのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）サイズ×８個まで（例えば、最大で２ＭＢ）となっている。プリフェッチが起動される条件（以下、シーケンシャル検出条件と記す）は、ホストからの連続するＩ／Ｏアクセスにおいて指定されたアドレス（ＬＢＡ）が例えば３個（ｎ＝３）連続していた場合等と設定することができる。この例のシーケンシャル検出条件の場合、ホストからの連続するＩ／Ｏアクセスにおいてアクセス対象のＬＢＡが３個連続したら、ストレージコントローラは、その連続するアクセスはシーケンシャル性があると判断し、４個目以降のプリフェッチ動作を開始する。
【０００９】
さらに最大のプリフェッチ量を超えてもホストからアクセスされるＬＢＡが連続している場合は、引き続きプリフェッチ動作が継続される。図２に示す例のように、ｐｒｅ＃１のプリフェッチが行われた後、さらに連続したＬＢＡに対するアクセスが発生している場合には、ｐｒｅ＃２、ｐｒｅ＃３とプリフェッチ動作が継続される。その後、ホストからアクセスされるＬＢＡの連続性がなくなった時点で、このプリフェッチ動作は停止される。
【００１０】
以下では、ホストからアクセスされるブロックのアドレスが連続する回数を、シーケンシャル連続の回数と記す場合がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−２４９４５７号公報
【特許文献２】特開平６−３３２６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、プリフェッチによりキャッシュに先読みされたデータが、ホストからアクセスされない場合は、論理ボリュームに対する不要なアクセスが行われたことになる。そのような論理ボリュームに対する不要なアクセスは、ディスクのビジー率の上昇を招くことになり、ディスクからのリード性能が低下する。
【００１３】
そこで、１つの側面では、本発明は、情報処理装置のキャッシュ制御において、シーケンシャルアクセス性能を向上させることを目的とする。
【課題を解決するための手段】
【００１４】
一態様の情報処理装置は、第１の記憶部、第２の記憶部、検出部、算出部、及びプリフェッチ部を含む。第１の記憶部は、データを記憶する。第２の記憶部は、第１の記憶部から読み出されるデータを記憶する。検出部は、第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、シーケンシャルアクセスを検出する。算出部は、第１の記憶部に連続して記憶されたデータを予め読み出して第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、第１のデータのサイズに基づいて算出する。プリフェッチ部は、算出された第２のデータのサイズに基づいて、プリフェッチを行う。
【発明の効果】
【００１５】
本実施形態に係る情報処理装置によれば、キャッシュ制御において、シーケンシャルアクセス性能を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】アクセスのシーケンシャル性の検出とプリフェッチの開始を説明するための図である。
【図２】プリフェッチの継続と停止を説明するための図である。
【図３】シーケンシャルアクセスのパターンが連続する場合に、プリフェッチ量を調整する動作を説明するための図である。
【図４】本実施形態に係る、情報処理装置の機能ブロック図の一例である。
【図５】本実施形態に係る、情報処理装置の構成の一例を示す図である。
【図６】プリフェッチブロック数最適化のために使用される統計テーブルのデータ構造の一例である。
【図７】サーバ・ホストからリード要求があった場合の情報処理装置の動作フロー図である。
【図８】本実施形態に係る、情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
ホストからのアクセスにおいてシーケンシャルの連続性が短いＩ／Ｏでは、プリフェッチの動作が逆に性能低下の要因となる場合がある。例えば、図１の例では、アクセス対象アドレスが連続する３回目のアクセスがあった時点で、Ｉ／Ｏサイズの８個分のプリフェッチが行われるので、３回＋８回＝１１回分のディスクへのアクセスが行われることになる。このとき、例えばシーケンシャル連続が４回のアクセスでは、実際にホストからアクセスされるのはＩ／Ｏサイズの４回分のデータである。すなわち、１１回分のアクセスのうち、残りの７回分のアクセスは無駄になる。さらに、シーケンシャル連続が４回のアクセスが連続して発生する場合には、７回分のアクセスの無駄が発生し続けることとなり、ディスクのビジー率の無用な上昇を招く。
【００１８】
そこで、本実施形態では、プリフェッチ動作による無駄読みを低減させ、シーケンシャルアクセス性能を向上させる。
また、キャッシュ領域がプリフェッチデータによってフル状態となった場合に、プリフェッチデータが、利用される前にキャッシュからパージされるケースがある。このようなケースは、プリフェッチがキャッシュ容量に対して過度に行われた場合に発生する。この場合は、プリフェッチされたデータは、ホストにより利用されることなくパージされ、その後、ホストからのＩ／Ｏ要求が生じてから再度プリフェッチされることとなる。これはディスクのビジー率を上昇させ、内部帯域の無駄な使用となって装置性能を低下させる要因となる。
【００１９】
そこで、本実施形態では、キャッシュ空き容量を意識したプリフェッチ量の最適化を行う。
プリフェッチ動作による無駄読みを低減させるために、本実施形態に係る情報処理装置は、論理ボリュームに対するホストＩ／Ｏの特性を監視し、その監視結果に基づいてプリフェッチ制御に関連するパラメータを動的に自動チューニングする。具体的には、情報処理装置は、ホストからのＩ／Ｏを分析し、シーケンシャルアクセスの繰り返し現れる同様のパターンを認識する。そして、情報処理装置は、認識したアクセスのパターンのＩ／Ｏ量を、プリフェッチするデータ量として設定する。もしくは、情報処理装置は、プリフェッチしたデータに対しＩ／Ｏのヒット率を監視し、ヒット率が同じシーケンシャルアクセスが連続する場合、そのヒット率に応じてプリフェッチ量を増減し、または、プリフェッチを開始・停止させる。
【００２０】
図１の例では、シーケンシャル検出条件が３個（設定値）に固定されており、また、プリフェッチによる先読みブロック数も８個（設定値）に固定されている。これらの固定されたパラメータが、実際のホストＩ／Ｏ特性に適していない場合は、不要な先読出し、廃棄を繰り返すため、Ｉ／Ｏ性能向上の妨げになる。よって、本実施形態では、プリフェッチによる先読みブロック数を、実際のホストＩ／Ｏの特性に応じて調整することにより、Ｉ／Ｏ性能の向上を図る。
【００２１】
図３は、シーケンシャルアクセスのパターンが連続する場合に、プリフェッチ量を調整する動作を説明するための図である。図３の例では、３回ホストからのリード要求のブロックのアドレスが連続する場合、ストレージコントローラは、シーケンシャルアクセスであると判定し、プリフェッチを行う。図３の例では、プリフェッチ量の初期値はブロック８個分とする。
【００２２】
１回目のシーケンシャルアクセスにおいて、ホストからのリード要求のブロックのアドレスが３回連続した場合、ストレージコントローラは、シーケンシャルアクセスが発生したと判定し、プリフェッチ量の初期値であるブロック８個分のプリフェッチを行う。この例の場合、１回目のシーケンシャルアクセスは、ブロック６個分発生しているので、プリフェッチしたデータのうちブロック３個分は実際にホストにより使用されることになる（プリフェッチヒット）。プリフェッチしたデータのうち残りのブロック５個分は、ホストにより使用されずに、最終的にパージされる（プリフェッチミス）。
【００２３】
２回目、３回目のシーケンシャルアクセスも、１回目と同様のアクセスパターンとなっている。すなわち、ブロック６個分のシーケンシャルアクセスが発生している。よって、１回目と同様に、ブロック８個分のプリフェッチしたデータのうち、３個がプリフェッチヒットとなり、残りの５個がプリフェッチミスとなる。
【００２４】
ここで、１回目から３回目のシーケンシャルアクセスにおけるプリフェッチにおいて、ブロック５個分のプリフェッチしたデータは、ホストから使用されることなく、よって、それらのデータのプリフェッチ動作は、無駄な動作であるといえる。一方、１回目から３回目のシーケンシャルアクセスは、ブロック６個分のアドレスが連続するシーケンシャルアクセスのパターンが繰り返されている。今後、同様のパターンのシーケンシャルアクセスが続く可能性が考えられ、その場合には、一度のプリフェッチあたり、ブロック５個分のプリフェッチ動作が無駄になることになる。
【００２５】
そこで、本実施形態では、直前に発生したシーケンシャルアクセスのパターンから、プリフェッチの最適な量を判定し、判定した値に基づいて、プリフェッチ量を変更する。図３の例では、直前に発生したシーケンシャルアクセスのパターンにおけるプリフェッチヒット数である３に、１を加えた値を、以降のプリフェッチ量として変更している。
【００２６】
従って４回目では、変更されたプリフェッチ量である、ブロック４個分のデータがプリフェッチされている。このようにすると、ホストからのシーケンシャルアクセスが、ブロック６個分のパターンである場合、無駄になるプリフェッチの量は、ブロック１個分のみとなる。従って、無駄なプリフェッチを防ぎ、効率的なプリフェッチが可能となる。
【００２７】
キャッシュ空き容量を意識したプリフェッチ量の最適化を行うために、情報処理装置は、プリフェッチ速度が、ホストからのリード速度と同等となるように制御を行い、プリフェッチ量の最適化を行う。
【００２８】
プリフェッチ速度がホストからのリード速度より早い場合、キャッシュ領域が徐々にプリフェッチデータで満たされ、キャッシュ領域が有効利用できなくなる。一方で、プリフェッチ速度がホストからのリード速度より遅いと、プリフェッチが間に合わなくなり効果が出せない。プリフェッチ速度はホストからのリード速度と同等であることがキャッシュ容量を余分に使うことがなく、最も適切である。
【００２９】
図４は、本実施形態に係る、情報処理装置の機能ブロック図の一例である。情報処理装置１は、第１の記憶部２、第２の記憶部３、検出部４、算出部５、プリフェッチ部６、読み出し速度計測部７、及びプリフェッチ速度計測部８を含む。
【００３０】
第１の記憶部２は、データを記憶する。第２の記憶部３は、第１の記憶部２から読み出されるデータを記憶する。
検出部４は、第１の記憶部２の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、シーケンシャルアクセスを検出する。また、検出部４は、シーケンシャルアクセス毎に、第２のデータのサイズに対する第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続するかを判定する。
【００３１】
算出部５は、第１の記憶部２に連続して記憶されたデータを予め読み出して第２の記憶部３に記憶させるプリフェッチにより読み出される第２のデータのサイズを、第１のデータのサイズに基づいて算出する。また、算出部５は、第２のデータのサイズに対する第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続する場合、第２のデータのサイズに対する第１のデータのサイズの割合に基づいて、第２のデータのサイズを算出する。また、算出部５は、第１のデータのサイズに所定のデータサイズを付加した値を、第２のデータのサイズとして算出する。さらに、算出部５は、読み出し速度計測部７により計測される読み出し速度とプリフェッチ速度計測部８により計測されるプリフェッチ速度とを比較し、比較の結果に応じて、第２のデータのサイズを算出する。
【００３２】
プリフェッチ部６は、算出部５により算出された第２のデータのサイズに基づいて、プリフェッチを行う。読み出し速度計測部７は、シーケンシャルアクセスにより第２の記憶部３からデータが読み出される読み出し速度を計測する。プリフェッチ速度計測部８は、プリフェッチ部６によりデータが読み出されるプリフェッチ速度を計測する。
【００３３】
図５は、本実施形態に係る、情報処理装置の構成の一例を示す図である。
情報処理装置１はサーバ・ホスト３１に接続され、ＩＦ制御部３３、リード速度検出部３５、プリフェッチ速度検出部３６、速度比較制御部３７、プリフェッチ制御部３８、キャッシュメモリ３４、及びディスク３９を含む。
【００３４】
ＩＦ制御部３３は、検出部４、算出部５の一例として挙げられる。リード速度検出部３５は、読み出し速度計測部７の一例として挙げられる。プリフェッチ速度検出部３６は、プリフェッチ速度計測部８の一例として挙げられる。速度比較制御部３７は、算出部５の一例として挙げられる。プリフェッチ制御部３８は、プリフェッチ部６の一例として挙げられる。キャッシュメモリ３４は、第２の記憶部３の一例として挙げられる。ディスク３９は、第１の記憶部２の一例として挙げられる。
【００３５】
サーバ・ホスト３１は、情報処理装置１に対してデータの入出力（Ｉ／Ｏ）を行い、データの書き込み、読み込み等を行う。
ＩＦ制御部３３は、サーバ・ホスト３１からの情報処理装置１に対するＩ／Ｏを制御する。サーバ・ホスト３１からのリード要求を受信した場合、ＩＦ制御部３３は、キャッシュメモリ３４にアクセス対象のデータが存在するか否かを判定する。アクセス対象のデータがキャッシュメモリ３４に存在する場合には、ＩＦ制御部３３は、キャッシュメモリ３４内のデータをサーバ・ホスト３１に対して送信する。アクセス対象のデータがキャッシュメモリ３４内に存在しない場合は、ＩＦ制御部３３は、ディスク３９のアクセス対象領域に対してアクセスを行い、アクセス対象のデータをキャッシュメモリ３４に読み出す。そして、ＩＦ制御部３３は、キャッシュメモリ３４に読み出したデータをサーバ・ホスト３１に対して送信する。
【００３６】
サーバ・ホスト３１からのライト要求を受信した場合、ＩＦ制御部３３は、ライトデータをキャッシュメモリ３４に書き込み、サーバ・ホスト３１に対して書き込み完了を報告する。その後、ＩＦ制御部３３は、適当なタイミングで、キャッシュメモリ３４に記憶されたライトデータをディスク３９に書き込む。あるいは、ＩＦ制御部３３は、ライトデータのディスク３９に対する書き込みが完了した時点で、書き込み完了報告をサーバ・ホスト３１に対して行うこともできる。
【００３７】
また、ＩＦ制御部３３は、プリフェッチ開始判断機能を有する。この機能は、サーバ・ホスト３１からのアクセスが、シーケンシャルアクセスであるか否かを判定し、シーケンシャルアクセスであると判定した場合、プリフェッチ制御部３８に対して、プリフェッチを行うように指示する機能である。
【００３８】
シーケンシャルアクセスか否かの判定は、サーバ・ホスト３１からのリード要求のアクセス対象アドレスの連続性をＩＦ制御部３３が監視することによって行う。具体的には、ＩＦ制御部３３は、サーバ・ホスト３１からのリード要求のブロックのアドレスが設定値（Ｎ）個連続した場合、シーケンシャルアクセスであると判定する。ここで、以下の説明においては、シーケンシャルか否かを判定するために用いられる設定値（Ｎ）を、シーケンシャル検出ブロック数と記す場合がある。
【００３９】
シーケンシャルアクセスであると判定した場合、ＩＦ制御部３３は、アドレスが連続するＮ個目のブロックに続くＬＢＡから、設定値（Ｍ）個のブロックを先読みするプリフェッチを行うよう、プリフェッチ制御部３８に対して指示を送る。以下の説明においては、プリフェッチにおいて先読みするブロックの数の設定値（Ｍ）を、プリフェッチブロック数と記す場合がある。
【００４０】
ここで、サーバ・ホスト３１からのリード要求のブロックのアドレスが連続することは、ブロックのアドレスが完全にシーケンシャルに連続する場合だけではなく、近傍である場合も含むものとする。近傍とは、例えば、アクセスされたブロックのアドレスと、その直前にアクセスされたブロックのアドレスの差が、所定の閾値以内である場合を指す。この所定の閾値は、使用者が設定可能な値である。具体的には、例えば、６４ＫＢ（キロバイト）や５１２ＫＢなどの値として設定可能である。また、この閾値はブロックサイズ（Ｉ／Ｏサイズ）に対応する値としてもよい。
【００４１】
さらに、ＩＦ制御部３３は、パターン検出機能と、プリフェッチ量制御機能を有する。サーバ・ホスト３１からのリード要求において、読み出しブロック数が同量のシーケンシャルアクセスが所定回数以上連続する場合がある。本実施形態では、このような、所定回数以上連続する、読み出しブロック数が同量のシーケンシャルアクセスを、アクセスパターンと呼ぶ。パターン検出機能とプリフェッチ量制御機能は、このようなアクセスパターンを検出し、検出したアクセスパターンの読み出しブロック数を用いて、プリフェッチ量を最適となるように調整する機能である。
【００４２】
パターン検出機能は、アクセスパターンを検出する機能である。具体的には、パターン検出機能は、以下の動作を行う。パターン検出機能は、サーバ・ホスト３１からのリード要求において、シーケンシャルアクセスが発生した場合、そのシーケンシャルアクセスの総読み出しブロック数を、統計データとして保存する。そして、パターン検出機能は、統計データを用いて、所定の閾値（ｐ）以上、読み出しブロック数が等量のシーケンシャルアクセスが連続した場合に、そのようなシーケンシャルアクセスをアクセスパターンとして検出する。
【００４３】
ここで、パターン検出機能が保存する統計データの例を図６に示す。図６は、プリフェッチブロック数最適化のために使用される統計データを記憶する統計テーブルのデータ構造の一例である。統計テーブル５０は、「識別番号」と「プリフェッチヒット数」の項目を含む。
【００４４】
「識別番号」は、シーケンシャルアクセスが発生したとＩＦ制御部３３が判定した場合に、各シーケンシャルアクセスに固有に割り振られる番号である。シーケンシャルアクセスが発生した際には、プリフェッチが行われるので、言い換えると、「識別番号」は、ＩＦ制御部３３がプリフェッチを行う毎に、行ったプリフェッチに対して一意に振られる番号であるといえる。
【００４５】
「プリフェッチヒット数」は、「識別番号」のプリフェッチに対応したプリフェッチヒットの数を示す数値である。ここで、「プリフェッチヒット数」は、アクセスパターンの読み出しブロック数からシーケンシャル検出ブロック数（Ｎ）を引いた値である。よって、統計データとして保存するデータ項目は、「プリフェッチヒット数」の代わりにアクセスパターンの読み出しブロック数としてもよい（一方を記録しておけば、他方は計算により導かれる）。
【００４６】
ここで、パターン検出機能がアクセスパターン検出のために用いる閾値（ｐ）を、本実施形態の以下の説明においては、パターン連続閾値と記す場合がある。パターン連続閾値の値は、情報処理装置１の使用者が設定変更可能な値である。
【００４７】
プリフェッチ量制御機能は、パターン検出機能により検出したアクセスパターンの読み出しブロック数に応じて、プリフェッチブロック数（Ｍ）の変更値を決定する機能である。具体的には、例えば、アクセスパターンの読み出しブロック数に対応するプリフェッチヒットの数を求め、プリフェッチブロック数（Ｍ）を、プリフェッチヒットの数＋１（所定の値）に変更するよう決定する。プリフェッチ制御機能は、決定したプリフェッチブロック数（Ｍ）の変更値をプリフェッチ制御部３８に送信する。
【００４８】
ここで、プリフェッチブロック数（Ｍ）に対するプリフェッチヒット数の割合をプリフェッチヒット率と呼ぶとする。このプリフェッチヒット率が等しくなるような、所定回数以上連続するアクセスをアクセスパターンとして、プリフェッチブロック数の最適化のために利用してもよい。この場合、パターン検出機能は、プリフェッチヒット率が等しくなるようなアクセスが所定回数以上連続する場合、その様なアクセスをアクセスパターンとして検出する。また、統計テーブル５０には、「識別番号」、「プリフェッチヒット数」に加えて、「識別番号」に対応付けられたプリフェッチブロック数（Ｍ）を含む構成とする。
【００４９】
またこの場合、プリフェッチ量制御機能は、パターン検出機能により検出したアクセスパターンのプリフェッチヒット率に応じて、プリフェッチブロック数を決定する。具体的には、例えば、プリフェッチ制御機能は、プリフェッチヒット率の範囲と、変更するプリフェッチブロック数を対応付けておき、検出したアクセスパターンのプリフェッチヒット率が所定の範囲であれば、それに対応したプリフェッチブロック数に決定する。もしくは、プリフェッチヒット率が所定の閾値以下であれば、プリフェッチブロック数を現在の値より減少させ、プリフェッチヒット率が所定の閾値以上であれば、プリフェッチブロック数を現在の値より増加させるよう決定してもよい。
【００５０】
リード速度検出部３５は、ＩＦ制御部３３が、キャッシュメモリ３４から実際にデータを読み出す際にかかる時間（以下、リード速度と記す場合がある）を検出する。リード速度は、例えば、単位時間当たりにＩＦ制御部３３が、キャッシュメモリ３４からデータを読み出して、サーバ・ホスト３１に出力するデータ量である。または、例えば、単位時間当たりにＩＦ制御部３３が、キャッシュメモリ３４から所定のサイズのデータを読み出して、サーバ・ホスト３１に出力するのにかかる時間である。リード速度検出部３５は、検出したリード速度を速度比較制御部３７に対して出力する。
【００５１】
プリフェッチ速度検出部３６は、プリフェッチ制御部３８が、ディスク３９からキャッシュメモリ３４に対してプリフェッチを行う際にかかる時間（以下、プリフェッチ速度と記す場合がある）を検出する。プリフェッチ速度は、例えば、単位時間当たりにプリフェッチ制御部３８が、ディスク３９からデータを読み出して、キャッシュメモリ３４に格納するデータ量である。または、例えば、単位時間当たりにプリフェッチ制御部３８が、ディスク３９から所定のサイズのデータを読み出して、キャッシュメモリ３４に格納するのにかかる時間である。ここで、例えば、リード速度とプリフェッチ速度を定義した際に用いた単位時間、もしくは、単位時間及び所定のサイズは、共通のものである。プリフェッチ速度検出部３６は、検出したプリフェッチ速度を速度比較制御部３７に対して出力する。
【００５２】
速度比較制御部３７は、リード速度検出部３５からリード速度を、プリフェッチ速度検出部３６からプリフェッチ速度を、それぞれ受信する。そして、速度比較制御部３７は、受信したリード速度とプリフェッチ速度とを比較する。比較の結果、リード速度がプリフェッチ速度よりも速い場合は、速度比較制御部３７は、プリフェッチ制御部３８に対して、プリフェッチブロック数（Ｍ）を増加させる（例えばインクリメントする）ように命令を送信する。逆に、プリフェッチ速度がリード速度よりも速い場合、速度比較制御部３７は、プリフェッチ制御部３８に対して、プリフェッチブロック数（Ｍ）を減少させる（例えばデクリメントする）ように命令を送信する。
【００５３】
プリフェッチ制御部３８は、ＩＦ制御部３３からプリフェッチ開始の指示を受信するとプリフェッチを開始する。プリフェッチ制御部３８は、ＩＦ制御部３３からプリフェッチブロック数（Ｍ）の変更値を受信する。さらに、プリフェッチ制御部３８は、速度比較制御部３７からプリフェッチブロック数（Ｍ）の変更命令を受信する。そして、プリフェッチ制御部３８は、プリフェッチブロック数（Ｍ）を、受信した変更値に、または変更命令に応じて、設定する。そして、プリフェッチ制御部３８は、一度のプリフェッチでプリフェッチブロック数（Ｍ）のブロック数をディスク３９から読み出し、キャッシュメモリ３４に格納する。尚、プリフェッチブロック数（Ｍ）の値が０の場合は、プリフェッチは行われない。
【００５４】
キャッシュメモリ３４は、例えば、サーバ・ホスト３１とディスク３９との間でデータを受け渡すために使用される。サーバ・ホスト３１により読み出されるデータ及びサーバ・ホスト３１から書き込まれるデータは、いずれもキャッシュメモリ３４を経由する。
【００５５】
尚、プリフェッチ制御部３８が、ディスク３９からキャッシュメモリ３４にデータを読み出す単位（Ｉ／Ｏサイズ）は、サーバ・ホスト３１がキッシュメモリからデータを読み出す単位と一致している必要はない。例えば、サーバ・ホスト３１がキャッシュメモリ３４からデータを読み出す単位よりも大きい単位で、プリフェッチ制御部３８はデータを読み出すことができる。その場合は、プリフェッチ制御部３８は、サーバ・ホスト３１からのアクセス対象データを含む領域をプリフェッチする。
【００５６】
図７は、サーバ・ホストからリード要求があった場合の情報処理装置の動作フロー図である。フローの開始にあたり、本実施形態では、初期値として、シーケンシャル検出ブロック数（Ｎ）を３、プリフェッチブロック数（Ｍ）を８、パターン連続閾値（ｐ）を３として設定するが、この値に限定されない。また、本実施形態では、シーケンシャル連続をカウントするための変数として、連続カウンタ（ｎ）を使用する。尚、このフローはストレージ制御部が、サーバ・ホスト３１から、一つのブロックに対するリード要求を受信した場合の、ストレージ制御部の処理フローを示したものである。
【００５７】
まず、ＩＦ制御部３３は、当該のフローにおいてリード要求のあったブロックのアドレスと、前回のリード要求のブロックのアドレスとを比較し、今回のアドレスが前回のアドレスに対して連続しているか、または近傍であるかを判定する（Ｓ１０１）。判定の結果、アドレスが連続しておらず、かつ近傍でもない場合（Ｓ１０１でＮｏ）、ＩＦ制御部３３は、直前のシーケンシャルアクセスにおけるプリフェッチヒット数を統計テーブル５０に格納する（Ｓ１０２）。具体的には、ＩＦ制御部３３は、統計テーブル５０の「識別番号」に固有の番号を割り当て、その番号に対応付けて、直前のシーケンシャルアクセスにおけるプリフェッチヒット数を、統計テーブル５０の「プリフェッチヒット数」に格納する。直前のシーケンシャルアクセスにおけるプリフェッチヒット数は、連続カウンタ（ｎ）の現在値から、シーケンシャル検出ブロック数（Ｎ）の値を引くことにより算出できる。ここで、ランダムアクセスの場合等、算出したプリフェッチヒット数が０未満となる場合も考えられるが、その場合は、プリフェッチヒット数は０とする。
【００５８】
次に、ＩＦ制御部３３は、連続カウンタ（ｎ）の値をリセットする（Ｓ１０３）。具体的には、例えば、ＩＦ制御部３３は、連続カウンタ（ｎ）の値を１に設定する。
次に、ＩＦ制御部３３は、プリフェッチブロック数（Ｍ）の再計算のタイミングか否かを判定する（Ｓ１０４）。このプリフェッチブロック数（Ｍ）の再計算は、上述したアクセスパターンが発生した場合に行われる動作である。すなわち、このステップは、ＩＦ制御部３３のパターン検出機能によるアクセスパターンの検出動作を行うことと同義である。具体的には、例えば、ＩＦ制御部３３は、統計テーブル５０の内容を確認し、プリフェッチヒットの数が同等のシーケンシャルアクセスが、パターン連続閾値（ｐ）の数だけ、直近で連続しているか否かを判定する。パターン連続閾値（ｐ）以上連続している場合には、ＩＦ制御部３３は、プリフェッチブロック数の再計算のタイミングであると判定する。図６の例を参照して説明すると、直近のシーケンシャルアクセスは、「識別番号」７、「プリフェッチヒット数」３であり、この「プリフェッチヒット数」は、「識別番号」５から「識別番号」７まで連続している。従って、直近、「プリフェッチヒット数」が同等のシーケンシャルアクセスが、パターン連続閾値（ｐ）の値である３回以上連続しているので、ＩＦ制御部３３は、アクセスパターンを検出し、すなわちプリフェッチブロック数の再計算のタイミングであると判定する。
【００５９】
Ｓ１０４で、ＩＦ制御部３３がプリフェッチブロック数の再計算のタイミングと判定した場合（Ｓ１０４でＹｅｓ）、ＩＦ制御部３３は、プリフェッチブロック数を再計算する（Ｓ１０５）。具体的には、例えば、ＩＦ制御部３３は、統計テーブル５０に格納された直近のプリフェッチブロック数の値に１加えた値を、プリフェッチブロック数の変更値として決定する。そして、ＩＦ制御部３３は、プリフェッチ制御部３８に対して、決定したプリフェッチブロック数の変更値を送信し、プリフェッチ制御部３８は、受信した変更値に、プリフェッチブロック数（Ｍ）の値を変更する。図６の例の場合、直近のプリフェッチヒット数は、統計テーブル５０の「識別番号」７の「プリフェッチヒット数」である３であるので、３に１を加えた４が新たなプリフェッチブロック数（Ｍ）として設定される。
【００６０】
次に、ＩＦ制御部３３は、リード要求の対象アドレスのブロックを、ディスク３９からキャッシュメモリ３４に読み出す（Ｓ１０６）。そして、ＩＦ制御部３３は、サーバ・ホスト３１に対して、Ｓ１０６でキャッシュメモリ３４に読み出したブロックのデータを用いて、リードコマンドの応答を行う（Ｓ１１５）。
【００６１】
Ｓ１０４で、ＩＦ制御部３３がプリフェッチブロック数の再計算のタイミングではないと判定した場合（Ｓ１０４でＮｏ）、ＩＦ制御部３３は、リード要求の対象アドレスのブロックを、ディスク３９からキャッシュメモリ３４に読み出す（Ｓ１０６）。そして、ＩＦ制御部３３は、サーバ・ホスト３１に対して、Ｓ１０６でキャッシュメモリ３４に読み出したブロックのデータを用いて、リードコマンドの応答を行う（Ｓ１１５）。
【００６２】
Ｓ１０１において、当該のフローにおいてリード要求のあったブロックのアドレスが前回のアドレスに対して連続している、または近傍であると判定された場合、ＩＦ制御部３３は、連続カウンタ（ｎ）の値をインクリメントする（Ｓ１０７）。
【００６３】
次に、ＩＦ制御部３３は、サーバ・ホスト３１からのリード要求におけるアクセスが、プリフェッチヒットか否かを判定する（Ｓ１０８）。具体的には、例えば、ＩＦ制御部３３は、サーバ・ホスト３１からのリード要求のあったブロックのデータがキャッシュメモリ３４に存在するか否かを判定する。リード要求のあったブロックのデータがキャッシュメモリ３４に存在する場合、ＩＦ制御部３３は、プリフェッチヒットであると判定し、そうでない場合、プリフェッチヒットではない（プリフェッチミス）と判定する。
【００６４】
Ｓ１０８において、プリフェッチヒットであると判定された場合（Ｓ１０８でＹｅｓ）、ＩＦ制御部３３は、ホスト・サーバに対して、キャッシュメモリ３４に保存されているブロックのデータを用いて、リードコマンドに対する応答を行う（Ｓ１１５）。
【００６５】
Ｓ１０８において、プリフェッチヒットではない（プリフェッチミス）と判定された場合（Ｓ１０８でＮｏ）、ＩＦ制御部３３は、連続カウンタ（ｎ）の値がシーケンシャルブロック検出数（Ｎ）以上か否かを判定する（Ｓ１０９）。このステップでＩＦ制御部３３は、サーバ・ホスト３１からのリード要求がシーケンシャルアクセスであるか否かを判定している。連続カウンタ（ｎ）の値がシーケンシャルブロック検出数（Ｎ）未満の場合（Ｓ１０９でＮｏ）、ＩＦ制御部３３は、リード要求の対象アドレスのブロックを、ディスク３９からキャッシュメモリ３４に読み出す（Ｓ１０６）。そして、ＩＦ制御部３３は、サーバ・ホスト３１に対して、Ｓ１０６でキャッシュメモリ３４に読み出したブロックに基づいて、リードコマンドの応答を行う（Ｓ１１５）。
【００６６】
Ｓ１０９において、連続カウンタ（ｎ）の値がシーケンシャルブロック検出数（Ｎ）以上であると判定された場合（Ｓ１０９でＹｅｓ）、ＩＦ制御部３３は、プリフェッチ制御部３８に対し、プリフェッチを行うよう指示する。そして、プリフェッチ制御部３８は、プリフェッチブロック数（Ｍ）の現在の値のブロック数をプリフェッチする（Ｓ１１０）。すなわち、プリフェッチ制御部３８は、ディスク３９から、アクセス対象のブロックとそのブロックに連続するプリフェッチブロック数（Ｍ）個のブロックを、キャッシュメモリ３４に読み出す。ここで、Ｍ個のブロックの連続読み出しは、バックグラウンドで実行されてもよい。その場合、最初の１ブロックが読み出された時点で、フローは次のステップに進む。
【００６７】
次に、速度比較制御部３７は、リード速度とプリフェッチ速度を比較する（Ｓ１１１）。具体的には、速度比較制御部３７は、リード速度検出部３５からリード速度を、また、プリフェッチ速度検出部３６からプリフェッチ速度を受信し、受信した二つの値を比較する。
【００６８】
リード速度がプリフェッチ速度以上である場合、速度比較制御部３７は、プリフェッチブロック数（Ｍ）の値をインクリメントする（Ｓ１１２）。そして、ＩＦ制御部３３は、プリフェッチブロック数（Ｍ）の値を、統計処理のため保存する（Ｓ１１４）。例えば、ここで保存されるプリフェッチブロック数（Ｍ）の所定の期間における平均値を、情報処理装置１が再起動された後の、本フローのプリフェッチブロック数（Ｍ）の初期値として利用してもよい。次に、ＩＦ制御部３３は、サーバ・ホスト３１に対して、Ｓ１１０でプリフェッチしたブロックのデータを用いて、リードコマンドの応答を行う（Ｓ１１５）。尚、このステップは、Ｓ１１０においてバックグラウンドでプリフェッチが実行されていた場合、プリフェッチが終了してから実施されるものとする。
【００６９】
Ｓ１１１で、リード速度がプリフェッチ速度未満である場合、速度比較制御部３７は、プリフェッチブロック数（Ｍ）の値をデクリメントする（Ｓ１１３）。そして、ＩＦ制御部３３は、プリフェッチブロック数（Ｍ）の値を、統計処理のため保存する（Ｓ１１４）。次に、ＩＦ制御部３３は、サーバ・ホスト３１に対して、Ｓ１１０でプリフェッチしたブロックのデータを用いて、リードコマンドの応答を行う（Ｓ１１５）。尚、このステップは、Ｓ１１０においてバックグラウンドでプリフェッチが実行されていた場合、プリフェッチが終了してから実施されるものとする。
【００７０】
図７に示した動作フローは、情報処理装置１のＬＵＮ毎に行われる。
次に、情報処理装置１のハードウェア構成について説明する。図８は、本実施形態に係る、情報処理装置のハードウェア構成の一例を示す図である。情報処理装置１は、上位装置としてのサーバ・ホスト３１に接続されており、サーバ・ホスト３１から送信されたデータを記憶する複数の記憶装置１０８と、これら記憶装置１０８の制御を行なうコントローラモジュール（ＣＭ）１０２とを有する。
【００７１】
コントローラモジュール１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０３、メモリ１０４、キャッシュ１０５を有する。また、コントローラモジュール１０２は、チャネルアダプタ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）１０６を介してサーバ・ホスト３１と接続される。また、コントローラモジュールは１０２、デバイスアダプタ（Ｄｅｖｉｃｅ  Ａｄａｐｔｅｒ）１０７を介して記憶装置１０８と接続される。尚、ＣＰＵ１０３、メモリ１０４、キャッシュ１０５、チャネルアダプタ１０６、及びデバイスアダプタ１０７は、例えば、バスを介して互いに接続されている。尚、情報処理装置１は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）を構成する多数のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を有する構成としてもよい。
【００７２】
ＣＰＵ１０３は、メモリ１０４を利用して上述のフロー図の手順を記述したプログラムを実行することにより、ＩＦ制御部３３及びプリフェッチ制御部３８の一部または全部の機能を提供する。また、ＣＰＵ１０３は、同様にメモリ１０４を利用して上述のフロー図の手順を記述したプログラムを実行することにより、リード速度検出部３５、プリフェッチ速度検出部３６、及び速度比較制御部３７の一部または全部の機能も提供する。メモリ１０４は、例えば半導体メモリであり、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）領域およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）領域を含んで構成される。キャッシュ１０５は、キャッシュメモリ３４の一部または全部の機能を提供する。記憶装置１０８は、ディスク３９の一部または全部の機能を提供する。
【００７３】
また、コントローラモジュール１０２は、読み取り装置、通信インタフェース、入出力装置を有する構成としてもよい。読取装置は、ＣＰＵ１０３の指示に従って着脱可能記録媒体にアクセスする。着脱可能記録媒体は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。通信インタフェースは、ＣＰＵ１０３の指示に従ってネットワークを介してデータを送受信する。入出力装置は、例えば、ユーザからの指示を受け付けるデバイスに相当する。
【００７４】
実施形態を実現するための情報処理プログラムは、例えば、下記の形態で情報処理装置１に提供される。
（１）メモリ１０４に予めインストールされている。
（２）着脱可能記録媒体により提供される。
（３）通信インタフェースを介してコントローラモジュール１０２に接続されたプログラムサーバから提供される。
【００７５】
なお、実施形態を実現するための情報処理方法は、複数の情報処理装置１を利用して上述のフローチャートの処理を提供してもよい。この場合、ある情報処理装置１が、上述のフローチャートの処理の一部を、ネットワークを介して他の情報処理装置１に依頼し、その処理結果を受け取るようにしてもよい。
【００７６】
さらに、実施形態の情報処理装置１の一部は、ハードウェアで実現してもよい。或いは、実施形態の情報処理装置１は、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
【００７７】
また、情報処理装置１が接続されるホストの数、並びに、情報処理装置１が有するコントローラモジュール１０２の数及び記憶装置１０８の数は限定されるものではない。また、コントローラモジュール１０２が有するチャネルアダプタ１０６の数やデバイスアダプタ１０７の数も限定されない。
【００７８】
また、情報処理装置１は、情報処理装置１と同様もしくは略同様に構成された他の情報処理装置（図示せず）との間でデータの送受信を可能に構成されてもよい。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【００７９】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
データを記憶する第１の記憶部と、
前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部と、
前記第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出する検出部と、
前記第１の記憶部に連続して記憶された前記データを予め読み出して前記第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出する算出部と、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行うプリフェッチ部と、
を備えた情報処理装置。
（付記２）
前記検出部は、前記シーケンシャルアクセス毎に、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続するかを判定し、
前記算出部は、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続する場合、前記割合に基づいて、前記第２のデータのサイズを算出する
ことを特徴とする付記１に記載の情報処理装置。
（付記３）
前記算出部は、前記第１のデータのサイズに所定のデータサイズを付加した値を、前記第２のデータのサイズとして算出する
ことを特徴とする付記１に記載の情報処理装置。
（付記４）
前記情報処理装置は、さらに、
前記シーケンシャルアクセスにより前記第２の記憶部からデータが読み出される読み出し速度を計測する読み出し速度計測部と、
前記プリフェッチ部によりデータが読み出されるプリフェッチ速度を計測するプリフェッチ速度計測部と、
を備え、
前記算出部は、前記読み出し速度と前記プリフェッチ速度とを比較し、該比較の結果に応じて、前記第２のデータのサイズを算出する
ことを特徴とする付記１に記載の情報処理装置。
（付記５）
プロセッサにより実行される情報処理方法であって、
前記プロセッサは、
データを記憶する第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出し、
前記第１の記憶部に連続して記憶された前記データを予め読み出して、前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出し、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行う
処理を実行することを特徴とする情報処理方法。
（付記６）
前記プロセッサは、
前記シーケンシャルアクセス毎に、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続するかを判定し、
前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続する場合、前記割合に基づいて、前記第２のデータのサイズを算出する
処理を実行することを特徴とする付記５に記載の情報処理方法。
（付記７）
前記プロセッサは、
前記第１のデータのサイズに所定のデータサイズを付加した値を、前記第２のデータのサイズとして算出する
処理を実行することを特徴とする付記５に記載の情報処理方法。
（付記８）
前記プロセッサは、
前記シーケンシャルアクセスにより前記第２の記憶部からデータが読み出される読み出し速度を計測し、
前記プリフェッチによりデータが読み出されるプリフェッチ速度を計測し、
前記読み出し速度と前記プリフェッチ速度とを比較し、該比較の結果に応じて、前記第２のデータのサイズを算出する
処理を実行することを特徴とする付記５に記載の情報処理方法。
（付記９）
プロセッサに、
データを記憶する第１の記憶部の連続または所定の範囲内で断続する領域に順次アクセスすることにより所定サイズの第１のデータを読み出すシーケンシャルアクセスが、所定回数連続して発生する場合に、該シーケンシャルアクセスを検出し、
前記第１の記憶部に連続して記憶された前記データを予め読み出して、前記第１の記憶部から読み出される前記データを記憶するための第２の記憶部に記憶させるプリフェッチにより読み出される第２のデータのサイズを、前記第１のデータのサイズに基づいて算出し、
算出された前記第２のデータのサイズに基づいて、前記プリフェッチを行う
処理を実行させることを特徴とする情報処理プログラム。
（付記１０）
前記プロセッサに、
前記シーケンシャルアクセス毎に、前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続するかを判定し、
前記第２のデータのサイズに対する前記第１のデータのサイズの割合が閾値以下であるシーケンシャルアクセスが所定回数連続する場合、前記割合に基づいて、前記第２のデータのサイズを算出する
処理を実行させることを特徴とする付記９に記載の情報処理プログラム。
（付記１１）
前記プロセッサに、
前記第１のデータのサイズに所定のデータサイズを付加した値を、前記第２のデータのサイズとして算出する
処理を実行させることを特徴とする付記９に記載の情報処理プログラム。
（付記１２）
前記プロセッサに、
前記シーケンシャルアクセスにより前記第２の記憶部からデータが読み出される読み出し速度を計測し、
前記プリフェッチによりデータが読み出されるプリフェッチ速度を計測し、
前記読み出し速度と前記プリフェッチ速度とを比較し、該比較の結果に応じて、前記第２のデータのサイズを算出する
処理を実行させることを特徴とする付記９に記載の情報処理プログラム。
【符号の説明】
【００８０】
１      情報処理装置
２      第１の記憶部
３      第２の記憶部
４      検出部
５      算出部
６      プリフェッチ部
７      読み出し速度計測部
８      プリフェッチ速度計測部
【図１】
2014038511.tif 000003
【図２】
2014038511.tif 000004
【図３】
2014038511.tif 000005
【図４】
2014038511.tif 000006
【図５】
2014038511.tif 000007
【図６】
2014038511.tif 000008
【図７】
2014038511.tif 000009
【図８】
2014038511.tif 000010