(57)【要約】【課題】ホスト計算機からのアクセスが同時期に多種多様に混在して存在する場合におけるアクセスの性能を向上させる。【解決手段】類似コマンド抽出部３２０は、現アクセスコマンドと同一アクセス種別、同一転送サイズの全てのアクセスコマンドのログを類似コマンドのログとしてアクセスコマンドログテーブル１１９から抽出する。アクセス傾向判定部３３０は、抽出された全ての類似コマンドのログに基づき、アクセスの傾向を判定する。データアクセス処理決定部３４０は、判定されたアクセスの傾向に基づき、現アクセスコマンドによって指定される読み出し／書き込みデータを対象とするキャッシュメモリへのアクセスを伴う処理及び現アクセスコマンドの指定する領域の近傍の領域のデータを対象とするキャッシュメモリへのアクセスを伴う処理の少なくとも一方を含むデータアクセス処理を決定する。【選択図】      図３
2008293111.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機及び少なくとも１つの記憶装置と接続され、前記記憶装置の一部または全ての領域を使用して前記ホスト計算機に対して論理記憶装置を提供すると共に、前記ホスト計算機と前記記憶装置との間のデータ転送を処理し、前記ホスト計算機からのアクセスコマンドによって指定された読み出し／書き込みデータを一時的に保持するための前記記憶装置よりも高速なキャッシュメモリと、前記アクセスコマンドの指定するアクセス種別、並びに前記アクセスコマンドの指定する前記論理記憶装置内の領域を示す先頭アドレス及び転送サイズまたは当該転送サイズが属する転送サイズ範囲の情報を当該アクセスコマンドのログとして保持するためのアクセスコマンドログテーブルとを有する記憶制御装置において実行される、前記ホスト計算機からのアクセスコマンドに従うデータアクセスを処理するデータアクセス処理方法であって、
前記ホスト計算機から前記記憶制御装置に与えられる今回処理されるべき現アクセスコマンドに基づき前記アクセスコマンドログテーブルを参照することにより、当該現アクセスコマンドと同一アクセス種別で、且つ当該現アクセスコマンドと同一転送サイズまたは同一転送サイズ範囲の全てのアクセスコマンドのログを、当該現アクセスコマンドと特徴が類似した類似コマンドのログとして抽出するステップと、
前記抽出された全ての類似コマンドのログに基づき、アクセスの傾向を判定するステップと、
前記判定されたアクセスの傾向に基づき、前記現アクセスコマンドに対応するデータアクセス処理であって、前記現アクセスコマンドによって指定される読み出し／書き込みデータを対象とする前記キャッシュメモリへのアクセスを伴う処理及び前記現アクセスコマンドの指定する領域の近傍の領域のデータを対象とする前記キャッシュメモリへのアクセスを伴う処理の少なくとも一方を含むデータアクセス処理を決定するステップと、
前記決定されたデータアクセス処理を実行するステップと、
前記現アクセスコマンドのログを前記アドレスコマンドログテーブルに追加するステップと
を具備することを特徴とするデータアクセス処理方法。
【請求項２】
前記アクセスの傾向を判定するステップは、前記抽出された類似コマンドのログに基づき、当該類似コマンドの指定する同一領域へのアクセスが再度出現する割合である同一領域アクセス再出現率を前記アクセスの傾向を表す指標として算出するステップを含み、
前記データアクセス処理を決定するステップでは、前記算出された同一領域アクセス再出現率が予め定められた閾値以上であるかに基づいて、前記データアクセス処理が決定される
ことを特徴とする請求項１記載のデータアクセス処理方法。
【請求項３】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別と、前記算出された同一領域アクセス再出現率が予め定められた閾値以上であるか否かとに基づいて、前記現アクセスコマンドの指定するデータを前記キャッシュメモリに保持するか否か、または前記現アクセスコマンドの指定するデータを前記キャッシュメモリから前記論理記憶装置へ書き込むデステージングのタイミングを遅延させるか否かが決定される
ことを特徴とする請求項２記載のデータアクセス処理方法。
【請求項４】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別がリードの場合、前記算出された同一領域アクセス再出現率が予め定められた閾値以上であるかに基づいて、前記現アクセスコマンドの指定するデータを前記キャッシュメモリに保持するかが決定される
ことを特徴とする請求項３記載のデータアクセス処理方法。
【請求項５】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別がライトの場合、前記算出された同一領域アクセス再出現率が予め定められた閾値以上であるかに基づいて、前記現アクセスコマンドの指定するデータを前記キャッシュメモリから前記論理記憶装置へ書き込むデステージングのタイミングを遅延させるかが決定されることを特徴とする請求項３記載のデータアクセス処理方法。
【請求項６】
前記アクセスの傾向を判定するステップは、前記抽出された類似コマンドのログに基づき、当該類似コマンドの指定する領域の近傍の領域へのアクセスが出現する割合である近傍領域アクセス出現率を前記アクセスの傾向を表す指標として算出するステップを含み、
前記データアクセス処理を決定するステップでは、前記算出された近傍領域アクセス出現率が予め定められた閾値以上であるかに基づいて、前記データアクセス処理が決定される
ことを特徴とする請求項１記載のデータアクセス処理方法。
【請求項７】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別と、前記算出された近傍領域アクセス出現率が予め定められた閾値以上であるか否かとに基づいて、前記現アクセスコマンドの指定する領域の近傍の領域のデータを前記キャッシュメモリに先読みするか否か、または前記現アクセスコマンドの指定するデータを前記キャッシュメモリから前記論理記憶装置へ書き込むデステージングのタイミングを遅延させるか否かが決定される
ことを特徴とする請求項６記載のデータアクセス処理方法。
【請求項８】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別がリードの場合、前記算出された近傍領域アクセス出現率が予め定められた閾値以上であるかに基づいて、前記現アクセスコマンドの指定する領域の近傍の領域のデータを前記キャッシュメモリに先読みするかが決定される
ことを特徴とする請求項７記載のデータアクセス処理方法。
【請求項９】
前記データアクセス処理を決定するステップでは、前記現アクセスコマンドの指定するアクセス種別がライトの場合、前記算出された近傍領域アクセス出現率が予め定められた閾値以上であるかに基づいて、前記現アクセスコマンドの指定するデータを前記キャッシュメモリから前記論理記憶装置へ書き込むデステージングのタイミングを遅延させるかが決定されることを特徴とする請求項７記載のデータアクセス処理方法。
【請求項１０】
前記論理記憶装置の記憶領域全体は複数のゾーンに分割して管理され、
前記記憶制御装置は前記アクセスコマンドログテーブルを前記ゾーン毎に有し、
前記抽出するステップでは、前記現アクセスコマンドの指定する領域が属するゾーンに対応する前記アクセスコマンドログテーブルが参照され、
前記追加するステップでは、前記現アクセスコマンドのログが当該現アクセスコマンドの指定する領域が属するゾーンに対応する前記アクセスコマンドログテーブルに追加される
ことを特徴とする請求項１乃至９のいずれかに記載のデータアクセス処理方法。
【請求項１１】
ホスト計算機及び少なくとも１つの記憶装置と接続され、前記記憶装置の一部または全ての領域を使用して前記ホスト計算機に対して論理記憶装置を提供すると共に、前記ホスト計算機と前記記憶装置との間のデータ転送を処理する記憶制御装置において、
前記ホスト計算機からのアクセスコマンドによって指定された読み出し／書き込みデータを一時的に保持するための前記記憶装置よりも高速なキャッシュメモリと、
前記アクセスコマンドの指定するアクセス種別、並びに前記アクセスコマンドの指定する前記論理記憶装置内の領域を示す先頭アドレス及び転送サイズまたは当該転送サイズが属する転送サイズ範囲の情報を当該アクセスコマンドのログとして保持するためのアクセスコマンドログテーブルと、
前記ホスト計算機から前記記憶制御装置に与えられる今回処理されるべき現アクセスコマンドに基づき前記アクセスコマンドログテーブルを参照することにより、当該現アクセスコマンドと同一アクセス種別で、且つ当該現アクセスコマンドと同一転送サイズまたは同一転送サイズ範囲の全てのアクセスコマンドのログを、当該現アクセスコマンドと特徴が類似した類似コマンドのログとして抽出する類似コマンド抽出手段と、
前記抽出された全ての類似コマンドのログに基づき、アクセスの傾向を判定するアクセス傾向判定手段と、
前記判定されたアクセスの傾向に基づき、前記現アクセスコマンドに対応するデータアクセス処理であって、前記現アクセスコマンドによって指定される読み出し／書き込みデータを対象とする前記キャッシュメモリへのアクセスを伴う処理及び前記現アクセスコマンドの指定する領域の近傍の領域のデータを対象とする前記キャッシュメモリへのアクセスを伴う処理の少なくとも一方を含むデータアクセス処理を決定するデータアクセス処理決定手段と
前記決定されたデータアクセス処理を実行するデータアクセス手段と、
前記アクセスコマンドログテーブルを管理し、前記現アクセスコマンドのログを前記アドレスコマンドログテーブルに追加するテーブル管理手段と
を具備することを特徴とする記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機と記憶装置との間のデータ転送処理を行う記憶制御装置に係り、特にホスト計算機からのアクセスの性能を向上させるためのキャッシュメモリを有する記憶装置制御装置におけるデータアクセス方法及び記憶制御装置に関する。
【背景技術】
【０００２】
ホスト計算機と記憶装置との間のデータ転送処理を行う記憶制御装置は、ホスト計算機からのアクセスの性能を向上させるためのキャッシュメモリを有しているのが一般的である。近年、この種の記憶制御装置では、キャッシュメモリの効率的な運用のための技術が適用されている。例えば、特許文献１に記載された記憶制御装置は、記憶装置を複数の記憶領域に分割し、分割された記憶領域毎にアクセスに関する統計情報を採取することにより、その統計情報に基づいて記憶領域毎にキャッシュメモリの動作モード（キャッシュメモリーのデータ先読み処理の有無）を切り替える技術を適用している。この特許文献１に記載の技術は、オンライン処理とバッチ処理とで、各々の記憶領域に対するアクセスの傾向が画一的に変化するような場合に有効である。
【０００３】
また、例えば特許文献２にも、キャッシュメモリへのデータ先読みに関する技術が記載されている。この特許文献２に記載の技術では、同一論理記憶装置の連続した領域に対するホスト計算機からのリード要求を一定回数以上受信した場合に、シーケンシャルなリードアクセスと判断し、キャッシュメモリへの先読みが行われる。
【特許文献１】特開平２−５０２３６号公報
【特許文献２】特開平３−１０２４４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記したように特許文献１に記載の技術は、オンライン処理とバッチ処理とで、分割された各々の記憶領域に対するアクセスの傾向が画一的に変化するような場合には有効な方法である、しかし、同一記憶領域に対し同時期に多様な傾向のアクセスが混在するような場合には、特許文献１に記載の技術のように各記憶領域へのアクセスを画一的に評価するのでは、キャッシュメモリの運用の最適化は難しい。例えば、比較的サイズの大きなファイルと、そのファイルを管理するサイズの小さな管理情報、双方へのアクセスの傾向は一般に大きく異なり、これらのアクセスは混在する。
【０００５】
そこで、傾向の異なるアクセスの混在の可能性をより低くするために、例えば記憶装置に対する分割の粒度を極めて小さくすることが考えられる。しかし特許文献１に記載の技術では、分割された記憶領域毎に統計情報を保持する必要があることから、分割の粒度を極めて小さくすると、即ち分割数を極めて多くすると、統計情報を保持するのに必要となるメモリ容量が増大する。メモリ容量の増大は、装置の価格の上昇を招く。最近のハードディスク装置（ＨＤＤ）に代表される記憶装置の大容量化を考慮すると、この方法は現実的ではない。
【０００６】
一方、上記特許文献２に記載の技術では、リード要求がシーケンシャル性のある要求であると判断できるまでに、一定の回数（先読み閾値回数）以上のホスト計算機からのリード要求の受信が必要となる。この先読み閾値回数に達するまでの間は、リード要求の都度、記憶装置からの読み出し処理が発生してしまう。一般に上記先読み閾値回数は２乃至３回以上である。したがって、ホスト計算機からのリード要求が２乃至３回で完結するような、回数の少ないシーケンシャルなリード要求の場合には、特許文献２に記載の技術では先読みの効果は得られ難い。また、特許文献２に記載の技術において、２乃至３回のリード要求を受信した結果、それがシーケンシャルアクセス性のあるリード要求と判断されると、後続のデータのキャッシュメモリへの先読みが行われる。ところが、上述のような回数の少ないシーケンシャルなリード要求の場合には、先読みしたデータは結局使用されず無駄となり、装置のスループット性能を悪化させる可能性もある。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、ホスト計算機からのアクセスが同時期に多種多様に混在して存在する場合におけるアクセスの性能を向上させることができるデータアクセス処理方法及び記憶制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、ホスト計算機及び少なくとも１つの記憶装置と接続され、前記記憶装置の一部または全ての領域を使用して前記ホスト計算機に対して論理記憶装置を提供すると共に、前記ホスト計算機と前記記憶装置との間のデータ転送を処理し、前記ホスト計算機からのアクセスコマンドによって指定された読み出し／書き込みデータを一時的に保持するための前記記憶装置よりも高速なキャッシュメモリと、前記アクセスコマンドの指定するアクセス種別、並びに前記アクセスコマンドの指定する前記論理記憶装置内の領域を示す先頭アドレス及び転送サイズまたは当該転送サイズが属する転送サイズ範囲の情報を当該アクセスコマンドのログとして保持するためのアクセスコマンドログテーブルとを有する記憶制御装置において実行される、前記ホスト計算機からのアクセスコマンドに従うデータアクセスを処理するデータアクセス処理方法が提供される。この方法は、前記ホスト計算機から前記記憶制御装置に与えられる今回処理されるべき現アクセスコマンドに基づき前記アクセスコマンドログテーブルを参照することにより、当該現アクセスコマンドと同一アクセス種別で、且つ当該現アクセスコマンドと同一転送サイズまたは同一転送サイズ範囲の全てのアクセスコマンドのログを、当該現アクセスコマンドと特徴が類似した類似コマンドのログとして抽出するステップと、前記抽出された全ての類似コマンドのログに基づき、アクセスの傾向を判定するステップと、前記判定されたアクセスの傾向に基づき、前記現アクセスコマンドに対応するデータアクセス処理であって、前記現アクセスコマンドによって指定される読み出し／書き込みデータを対象とする前記キャッシュメモリへのアクセスを伴う処理及び前記現アクセスコマンドの指定する領域の近傍の領域のデータを対象とする前記キャッシュメモリへのアクセスを伴う処理の少なくとも一方を含むデータアクセス処理を決定するステップと、前記決定されたデータアクセス処理を実行するステップと、前記現アクセスコマンドのログを前記アドレスコマンドログテーブルに追加するステップとを具備する。
【発明の効果】
【０００９】
本発明によれば、現アクセスコマンドそれ自体を含むコマンド列の指定するアクセスの傾向ではなくて、アクセスコマンドテーブルから抽出された現アクセスコマンドに類似のコマンドのアクセス傾向が判定され、判定されたアクセスの傾向に基づき、現アクセスコマンドによって指定される読み出し／書き込みデータを対象とするキャッシュメモリへのアクセスを伴う処理及び現アクセスコマンドの指定する領域の近傍の領域のデータを対象とするキャッシュメモリへのアクセスを伴う処理の少なくとも一方を含む、現アクセスコマンドに対応するデータアクセス処理が決定される。これにより、ホスト計算機からのアクセスが同時期に多種多様に混在して存在する場合であっても、少ないアクセスコマンド列で完結するようなシーケンシャルアクセスであっても、キャッシュメモリへのアクセスを伴う、現アクセスコマンドに対応する最適なデータアクセス処理を決定することができ、アクセス性能を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る計算機システムの構成を示すブロック図である。この計算機システムは、記憶制御装置１１と、少なくとも１つの記憶装置、例えば複数の磁気ディスク装置（ＨＤＤ）１２と、ホスト計算機１３とから構成される。
【００１１】
記憶制御装置１１は、ＨＤＤ１２へのアクセスを制御して、ホスト計算機１３とＨＤＤ１２との間のデータ転送を行う。
【００１２】
ＨＤＤ１２は、ホスト計算機１３に提供する（ホスト計算機１３からアクセス可能な）少なくとも１つの論理的な記憶装置（論理記憶装置）を構成するのに用いられる。論理記憶装置は、１つまたは複数のＨＤＤ１２の一部の記憶領域または全ての記憶領域を使用して構成される。本実施形態では図１に示されるように、３つのＨＤＤ１２の全ての記憶領域を使用して１つの論理記憶装置１２０が構成されるものとする。
【００１３】
ホスト計算機１３は、論理記憶装置１２０へのアクセスのための要求（アクセスコマンド）を、記憶制御装置１１に対して送出する。通常、アクセスコマンドは、ライト／リードの種別、先頭アドレス（開始アドレス）及びサイズの情報を含む。先頭アドレスは、論理記憶装置１２０内のアクセスされるべき領域の先頭位置（開始位置）を示す。転送サイズは、転送されるデータ（ライト／リードデータ）のサイズ、即ちアクセスされるべき領域のサイズを示す。本実施形態では、先頭アドレスには、アクセスされるべき領域の先頭ブロック位置（先頭論理ブロック位置）を示す先頭ブロックアドレス（先頭論理ブロックアドレス）が用いられ、転送サイズには、転送されるデータ（ライト／リードデータ）のブロック数（アクセスされるべき領域のブロック数）を示す転送ブロックサイズサイズが用いられる。
【００１４】
記憶制御装置１１は、インタフェース制御回路１１１及び１１２と、キャッシュメモリ１１３と、チップセット１１４と、マイクロプロセッサ１１５と、メモリ（ローカルメモリ）１１６と、ＲＯＭ１１７とを含む。
【００１５】
インタフェース制御回路１１１は、記憶制御装置１１をホスト計算機１３と接続するための、ＳＣＳＩ（Small Computer System Interface）或いはファイバチャネル（Fibre Channel）のようなホスト接続インタフェース２１を制御する。
【００１６】
インタフェース制御回路１１２は、記憶制御装置１１を複数のＨＤＤ１２と接続するための、ＳＣＳＩ或いはファイバチャネルのような記憶装置接続インタフェース２２を制御する。
【００１７】
キャッシュメモリ１１３は、ホスト計算機１３によって要求された読み出し／書き込みデータ及び論理記憶装置１２０（を構成するＨＤＤ１２）から先読みされたデータを一時的に保持するための、ＨＤＤ１２よりも高速なバッファメモリである。本実施形態において、キャッシュメモリ１１３はバッテリバックアップされている。
【００１８】
チップセット１１４は、マイクロプロセッサ１１５及び周辺回路（メモリ１１６、ＲＯＭ１１７のような周辺回路）を接続するためのブリッジ回路である。チップセット１１４には、内部バス２３を介して、インタフェース制御回路１１１及び１１２並びにキャッシュメモリ１１３も接続される。内部バス２３は、例えば、ＰＣＩ（Peripheral Component Interconnect）−Ｘ或いはＰＣＩ  Ｅｘｐｒｅｓｓのような、記憶制御装置１１内部で使用されるバスである。
【００１９】
マイクロプロセッサ１１５は、ＲＯＭ１１７からメモリ１１６にコピー（ロード）されたプログラム１１８（に含まれているプログラムコード）を実行することにより、記憶制御装置１１内の他の要素の制御及び各種の処理を行う。
【００２０】
メモリ１１６は、記憶制御装置１１のローカルメモリとして用いられる。メモリ１１６は、ＲＯＭ１１７に格納されているプログラム１１８がマイクロプロセッサ１１５による実行のためにコピーされる領域、及びマイクロプロセッサ１１５の各種処理で使用されるワーク領域を提供する。メモリ１１６はまた、アクセスコマンドログテーブル１１９及び当該テーブル１１９内の次にログが保持されるべきエントリ（次エントリ）を指し示すポインタ（次ポインタ）Ｐが格納される領域も提供する。アクセスコマンドログテーブル１１９は、複数の論理記憶装置がホスト計算機１３に提供される場合、論理記憶装置毎に用意される。本実施形態では、１つの論理記憶装置１２０がホスト計算機１３に提供されるものとする。
【００２１】
アクセスコマンドログテーブル１１９は、当該テーブル１１９に対応する論理記憶装置１２０内の記憶領域へのアクセスを要求するホスト計算機１３からのアクセスコマンドのログを保持するのに用いられる。図２は、アクセスコマンドログテーブル１１９のデータ構造例を次ポインタＰと対応付けて示す。
【００２２】
アクセスコマンドログテーブル１１９は、第０エントリ（エントリ番号が０のエントリ）乃至第Ｎエントリ（エントリ番号がＮのエントリ）のＮ＋１個のエントリを有する。テーブル１１９の各エントリは、フィールド２０１，２０２及び２０３から構成される。フィールド２０１，２０２及び２０３は、それぞれ、ホスト計算機１３からのアクセスコマンド（ライト／リード要求）の指定するアクセス種別であるライト／リードの種別（Ｗ／Ｒ種別）、先頭アドレス（先頭ブロックアドレス）及び転送サイズ（転送ブロックサイズ）の情報を保持するのに用いられる。
【００２３】
アクセスコマンドログテーブル１１９のエントリ数Ｎ＋１、つまりアクセスコマンドログテーブル１１９に保持可能なログの最大個数Ｎ＋１は、準備できるメモリ１１６のメモリ容量やアクセスコマンドの処理頻度などに応じて決定すれば良い。
【００２４】
アクセスコマンドのログは、記憶制御装置１１がホスト計算機１３からアクセスコマンドを受信した際に、その受信コマンドに基づいて、次ポインタＰの指し示す、アクセスコマンドログテーブル１１９内のエントリに保持される。ここでは、受信コマンドのＷ／Ｒ種別、先頭アドレス（先頭ブロックアドレス）及び転送サイズ（転送ブロックサイズ）が、アクセスコマンドログテーブル１１９のエントリ内の、それぞれフィールド２０１，２０２び２０３に保持される。また、アクセスコマンドのログは、アクセスコマンドログテーブル１１９の先頭エントリ（第０エントリ）から順に保持される。ログが最終エントリ（第Ｎエントリ）まで保持されると、先頭エントリに戻り、改めて先頭エントリから保持される。このように本実施形態では、アクセスコマンドのログ情報がラウンドロビン方式でアクセスコマンドログテーブル１１９に保持される。つまりアクセスコマンドログテーブル１１９は、リングバッファとして用いられる。
【００２５】
次ポインタＰは、当該次ポインタＰで指し示されるアクセスコマンドログテーブル１１９内のエントリにアクセスコマンドのログが保持されると、次のエントリを示すように更新される。即ち次ポインタＰは、第０乃至第Ｎ−１エントリの何れかにアクセスコマンドのログが保持された場合には１インクリメントされ、第Ｎエントリにアクセスコマンドのログが保持された場合には０に戻される。
【００２６】
図３は、記憶制御装置１１内に実現されるデータアクセス処理装置３０の構成を示すブロック図である。データアクセス処理装置３０は、キャッシュメモリ１１３へのアクセスを含むデータアクセス処理を行うもので、データアクセス処理ユニット３００及びアクセスコマンドログテーブル１１９から構成される。
【００２７】
データアクセス処理ユニット３００は、図１に示される記憶制御装置１１内のマイクロプロセッサ１１５がＲＯＭ１１７からメモリ（ローカルメモリ）１１６にコピーされたプログラム１１８を読み取って実行することにより実現される。データアクセス処理ユニット３００は、キャッシュヒット判定部３１０、類似コマンド抽出部３２０、アクセス傾向判定部３３０、データアクセス処理決定部３４０、データアクセス部３５０及びテーブル管理部３６０から構成される。
【００２８】
キャッシュヒット判定部３１０は、ホスト計算機１３から送信されたアクセスコマンド（現アクセスコマンド）でデータのリードが要求されている場合に、要求されたデータがキャッシュメモリ１１３に存在しているか否か、つまりキャッシュヒット／ミスヒットを判定する。類似コマンド抽出部３２０は、アクセスコマンドログテーブル１１９から現アクセスコマンドに類似したコマンド（類似コマンド）のログを抽出する。
【００２９】
アクセス傾向判定部３３０は、類似コマンド抽出部３２０によって抽出された類似コマンドのログに基づき、当該類似コマンドに関するホスト計算機１３からのアクセスの傾向を判定する。アクセス傾向判定部３３０は、アクセス再出現率算出部３３１、アクセス出現率算出部３３２及び近傍領域決定部３３３を含む。
【００３０】
アクセス再出現率算出部３３１は、上記類似コマンドのログに基づき、当該類似コマンドの指定する記憶領域（同一領域）へのアクセスが再度出現する割合、つまり同一領域へのアクセスの再出現率（同一領域アクセス再出現率）をアクセスの傾向を表す指標として算出する。同一領域アクセス再出現率が高い場合、現アクセスコマンドで指定される記憶領域（指定領域）へのアクセスの再現率も高いこと、つまり指定領域と同一の領域に対するアクセスが近い将来発生する可能性が高いことが予測される。
【００３１】
アクセス出現率算出部３３２は、上記類似コマンドのログに基づき、当該類似コマンドの指定する記憶領域（指定領域）の近傍の領域（近傍領域）へのアクセスが出現する割合、つまり近傍領域へのアクセスの出現率（近傍領域アクセス出現率）をアクセスの傾向を表す指標として算出する。近傍領域アクセス出現率が高い場合、現アクセスコマンドで指定される記憶領域（指定領域）の近傍領域へのアクセスの出現率も高いこと、つまり指定領域の近傍領域に対するアクセスが近い将来発生する可能性が高いことが予測される。
【００３２】
近傍領域決定部３３３は、上記類似コマンドのログ及び現アクセスコマンドに基づき、当該現アクセスコマンドで指定される記憶領域の近傍領域を決定する。
【００３３】
データアクセス処理決定部３４０は、アクセス傾向判定部３３０によって判定されたアクセスの傾向、即ちアクセス再出現率算出部３３１によって算出された同一領域アクセス再出現率、アクセス出現率算出部３３２によって算出された近傍領域アクセス出現率及び近傍領域決定部３３３によって決定された近傍領域の情報に基づき、現アクセスコマンドに対応するデータアクセス処理を決定する。データアクセス処理は、現アクセスコマンドによって指定される読み出し／書き込みデータを対象とするキャッシュメモリ１１３へのアクセスを伴う処理、及び現アクセスコマンドの指定する領域（指定領域）の近傍領域のデータを対象とするキャッシュメモリ１１３へのアクセスを伴う処理の少なくとも一方の処理を含む。  
データアクセス処理決定部３４０は、キャッシュ実行決定部３４１、先読み決定部３４２及びデステージング遅延決定部３４３を含む。
【００３４】
キャッシュ実行決定部３４１は、現アクセスコマンドの指定するアクセス種別（Ｗ／Ｒ種別）がリード（Ｒ）で、且つアクセス再出現率算出部３３１によって算出された同一領域アクセス再出現率が予め定められた一定値（第１の閾値）以上である場合に、現アクセスコマンドで指定されたデータをキャッシュメモリ１１３に保持することを決定する。先読み決定部３４２は、現アクセスコマンドの指定するＷ／Ｒ種別がリード（Ｒ）で、且つアクセス出現率算出部３３２によって算出された近傍領域アクセス出現率が予め定められた一定値（第２の閾値）以上である場合に、現アクセスコマンドの指定する記憶領域の近傍領域（近傍領域決定部３３３によって決定された近傍領域）のデータをキャッシュメモリ１１３に先読みすることを決定する。デステージング遅延決定部３４３は、現アクセスコマンドの指定するＷ／Ｒ種別がライト（Ｗ）で、且つアクセス再出現率算出部３３１によって算出された同一領域アクセス再出現率またはアクセス出現率算出部３３２によって算出された近傍領域アクセス出現率が閾値（第１の閾値または第２の閾値）以上である場合に、現アクセスコマンドで指定されたデータをキャッシュメモリ１１３から当該現アクセスコマンドの指定する記憶領域に書き込む処理（デステージング）のタイミングを遅延することを決定する。
【００３５】
データアクセス部３５０は、データアクセス処理決定部３４０（内のキャッシュ実行決定部３４１、先読み決定部３４２及びデステージング遅延決定部３４３）によって決定されたデータアクセス処理を実行する。テーブル管理部３６０は、アクセスコマンドログテーブル１１９及び次ポインタＰを管理し、ホスト計算機１３から送信されたアクセスコマンドのログを次ポインタＰの指し示すアクセスコマンドログテーブル１１９内のエントリに追加する。
【００３６】
次に、図３に示されるデータアクセス処理ユニット３００により実行されるデータアクセス処理について、リードアクセス処理とライトアクセス処理とに分けて、順次説明する。  
まず、データアクセス処理ユニット３００において実行されるリードアクセス処理について、図４乃至図７を参照して説明する。図４はリードアクセス処理の手順を示すフローチャート、図５は図４のフローチャートにおける近傍領域決定処理の手順を示すフローチャート、図６は図４のフローチャートにおける第１乃至第４のデータアクセス処理の手順を示すフローチャートである。図７は、近傍領域決定部３３３による近傍領域決定処理を説明するための図である。
【００３７】
今、ホスト計算機３０から記憶制御装置１１にホスト接続インタフェース２１を介してＷ／Ｒ種別がリード（Ｒ）であるアクセスコマンド（リードアクセスコマンド、つまりリード要求）が送信されたものとする。このリードアクセスコマンドが記憶制御装置１１によって受信されると、当該記憶制御装置１１内に実現されるデータアクセス処理ユニット３００では、次のようなリードアクセス処理が行われる。
【００３８】
まずデータアクセス処理ユニット３００内のキャッシュヒット判定部３１０は、記憶制御装置１１によって受信されたリードアクセスコマンド（現リードアクセスコマンド）で要求されたデータがキャッシュメモリ１１３に存在するか、つまりキャッシュヒットであるかを判定する（ステップＳ１）。もし、キャッシュヒットであるならば、データアクセス部３５０は、現リードアクセスコマンドで要求されたデータをキャッシュメモリ１１３から直ちに読み出してホスト計算機１３に転送する（ステップＳ２）。するとテーブル管理部３６０は、現リードアクセスコマンドのログ、即ち現リードアクセスコマンドの指定するＷ／Ｒ種別であるリード（Ｒ）、先頭アドレス（先頭ブロックアドレス）及び転送サイズ（転送ブロックサイズ）の各情報を、次ポインタＰの指し示すアクセスコマンドログテーブル１１９内のエントリに追加する（ステップＳ３）。このステップＳ３において、テーブル管理部３６０は次ポインタＰを１インクリメントする。これにより、現リードアクセスコマンドに対応するリードアクセス処理は終了する。
【００３９】
これに対し、キャッシュヒットでないならば、つまりキャッシュミスヒットならば（ステップＳ１）、データアクセス処理ユニット３００内の類似コマンド抽出部３２０が動作する。類似コマンド抽出部３２０は、アクセスコマンドログテーブル１１９から現リードアクセスコマンドに類似したコマンド（リードアクセスコマンド）のログを抽出する（ステップＳ３）。
【００４０】
本実施形態では、現リードアクセスコマンドに類似したコマンド（類似コマンド）の判定のための評価尺度として転送サイズが用いられる。ここでは、類似コマンドとして、例えば、Ｗ／Ｒ種別が同一（Ｒ）で、且つ転送サイズが同一のコマンド（第１のタイプの類似コマンド）、或いはＷ／Ｒ種別が同一（Ｒ）で、且つ転送サイズが同じ範囲内にあるコマンド（第２のタイプの類似コマンド）を予め定義することが可能である。転送サイズの範囲（転送サイズ範囲）としては、例えば、２ＫＢ（キロバイト）未満、２ＫＢ以上８ＫＢ未満、８ＫＢ以上１６ＫＢ未満、１６ＫＢ以上６４ＫＢ未満及び６４ＫＢ以上等である。また、第１のタイプの類似コマンドの判定のための評価尺度に用いられる転送サイズを、例えば２ＫＢ、８ＫＢ、１６ＫＢ及び６４ＫＢのみとし、第２のタイプの類似コマンドの判定のための評価尺度に用いられる転送サイズ範囲を、例えば２ＫＢ未満、２ＫＢ超８ＫＢ未満、８ＫＢ超１６ＫＢ未満、１６ＫＢ超６４ＫＢ未満及び６４ＫＢ超とすることにより、第１及び第２のタイプの両類似コマンドを定義することも可能である。
【００４１】
類似コマンドの定義は、例えば図１の記憶制御装置１１と直接または（ネットワーク等を介して）間接に接続されている端末から当該記憶制御装置１１（内のデータアクセス処理ユニット３００）に対し、管理者の操作に従って行うことができる。また、ＲＯＭ１１７に格納されているプログラム１１８によって、類似コマンドを定義しても良い。
【００４２】
本実施形態では、類似コマンドの判定のための評価尺度として、Ｗ／Ｒ種別及び転送サイズの一致が定義されているものとする。つまり、本実施形態では類似コマンドとして第１のタイプの類似コマンドが定義されているものとする。
【００４３】
今、現アクセスコマンドのＷ／Ｒ種別がリード（Ｒ）、転送サイズが４ｈ（単位はブロック）であるものとする。この場合、類似コマンド抽出部３２０は、図２に示すアクセスコマンドログテーブル１１９の例では、当該テーブル１１９から、Ｗ／Ｒ種別がリード（Ｒ）で、且つ転送サイズが４ｈの情報を含むコマンドのログ、即ちエントリ番号が「０，３，５，８，１０，１３」のアクセスコマンドログテーブル１１９内のエントリに格納されている各コマンドのログを、類似コマンドのログとして抽出する（ステップＳ４）。以下では、説明の簡略化のために、このようなコマンド（類似コマンド）を、エントリ番号が「０，３，５，８，１０，１３」のアクセスコマンド（またはコマンド）と表現する。他のエントリ番号のアクセスコマンドログテーブル１１９内のエントリに格納されているアクセスコマンドについても同様である。
【００４４】
類似コマンド抽出部３２０によって抽出された類似コマンドのログはアクセス傾向判定部３３０に渡される。するとアクセス傾向判定部３３０内のアクセス再出現率算出部３３１は、抽出された類似コマンドのログに基づき同一領域アクセス再出現率を算出する（ステップＳ５）。即ちアクセス再出現率算出部３３１は、抽出された類似コマンドのログに基づき、当該類似コマンドの指定する記憶領域（同一領域）へのアクセスの再現率を同一領域アクセス再出現率として算出する。この例では、エントリ番号「０」と「８」のアクセスコマンド及びエントリ番号「３」と「１３」のアクセスコマンドが同一領域へのアクセスを指定している。したがって、同一領域へのアクセスの再出現率（同一領域アクセス再出現率）は、２／６＝３３％となる。
【００４５】
一方、アクセス傾向判定部３３０内のアクセス出現率算出部３３２は、抽出された類似コマンドのログに基づき、近傍領域アクセス出現率を算出する（ステップＳ６）。即ちアクセス出現率算出部３３２は、抽出された類似コマンドのログに基づき、当該類似コマンドの指定する記憶領域（同一領域）の近傍の領域（近傍領域）へのアクセスの出現率を近傍領域アクセス出現率として算出する。本実施形態では、近傍領域を、類似コマンドの判定のための評価尺度と同様にして、予め定義することが可能である。ここでは近傍領域として、ある類似コマンドの指定する記憶領域に対して連続している領域が定義されているものとする。このように近傍領域が定義されている場合、図２のアクセスコマンドログテーブル１１９の例では、エントリ番号が「０，３，５，８，１０，１３」の何れのコマンドも、互いに同一領域または大きく離れた領域へのアクセスであるため、近傍領域アクセス出現率は０％となる。
【００４６】
もし、上記の例とは異なり、ホスト計算機１３からのＷ／Ｒ種別がリード（Ｒ）であるアクセスコマンドの転送サイズが１００ｈであったならば、類似コマンド抽出部３２０は図２に示すアクセスコマンドログテーブル１１９から、エントリ番号が「２，９，１２，１４」の各コマンドのログを、類似コマンドのログとして抽出する（ステップＳ４）。この類似コマンドのログの例では、何れのコマンドの指定する記憶領域も一致しないため、同一領域アクセス再出現率は０％となる（ステップＳ５）。一方、近傍領域アクセス出現率は、エントリ番号が「２」，「９」，「１４」のアクセスコマンドが連続した領域へのアクセスであることから、２／４＝５０％となる（ステップＳ６）。なお、ステップＳ５，Ｓ６の処理の順序は本実施形態の逆であっても構わない。
【００４７】
アクセス傾向判定部３３０内の近傍領域決定部３３３は、抽出された類似コマンドのログ及び現アクセスコマンドに基づき、当該現リードアクセスコマンドの指定する記憶領域（指定領域）の近傍領域を決定（推定）するための近傍領域決定処理（ステップＳ７）を実行する。この近傍領域決定部３３３による近傍領域決定処理（ステップＳ７）の手順について、図５のフローチャートを参照して説明する。
【００４８】
まず近傍領域決定部３３３は、抽出された類似コマンドのログに基づき、現リードアクセスコマンドの指定する転送サイズと一致するサイズの記憶領域の群の中から、連続する記憶領域の群（の組）を特定する（ステップＳ７ａ）。このステップＳ７ａの処理では、まず抽出された類似コマンド群の中から、互いに近接した記憶領域（近傍領域）へのアクセスを指定するコマンド群への絞り込みが行われる。そして、絞り込まれたコマンド群によってそれぞれ指定される記憶領域に基づき、連続する記憶領域の群が特定される。
【００４９】
次に近傍領域決定部３３３は、特定された記憶領域の群に対応する類似コマンド群の中で最初に実行された類似コマンド（先頭の類似コマンド）を特定する（ステップＳ７ｂ）。そして近傍領域決定部３３３は、特定された記憶領域の群と、当該記憶領域の群のうちの特定された先頭の類似コマンドに対応する記憶領域と、現リードアクセスコマンドの指定する記憶領域（指定領域）とに基づき、当該指定領域の近傍領域を決定する（ステップＳ７ｃ）。このステップＳ７ｃにおいて近傍領域決定部３３３は、特定された記憶領域の群のうち特定された先頭の類似コマンドに対応する記憶領域（第１の記憶領域）が上記指定領域と対応していることを前提に、当該指定領域の近傍領域を次のように決定する。
【００５０】
まず近傍領域決定部３３３は、特定された記憶領域の群のうちの第１の記憶領域が指定領域と対応するように、当該特定された記憶領域の群からなる領域を論理記憶装置１２０内の記憶領域（第２の記憶領域）に対応させる。そして近傍領域決定部３３３は、第２の記憶領域のうち指定領域を除く領域を当該指定領域の近傍領域（現リードアクセスコマンドの指定する記憶領域の近傍領域）として決定する。
【００５１】
近傍領域決定部３３３によって決定される近傍領域は、特定された記憶領域の群における第１の記憶領域の位置によって３種に分類される。もし、第１の記憶領域が、特定された記憶領域の群の先頭位置の場合、近傍領域は指定領域の後方（アドレスが大きい側）に隣接する記憶領域となる。第１の記憶領域が、特定された記憶領域の群の最終位置の場合、近傍領域は指定領域の前方（アドレスが小さい側）に隣接する記憶領域となる。第１の記憶領域が、特定された記憶領域の群の先頭位置及び最終位置の何れでもない場合、近傍領域は、指定領域の前方に隣接する記憶領域と後方に隣接する記憶領域の２つの領域となる。
【００５２】
ここで、特定された記憶領域の群のうちの上記第１の記憶領域（先頭の類似コマンドに対応する記憶領域）が指定領域と対応していることを前提とする理由について説明する。本実施形態では、指定領域のデータがキャッシュメモリ１１３に保持されていないキャッシュミスヒットの場合で、且つアクセス出現率算出部３３２によって算出された近傍領域アクセス出現率が予め定められた一定値（第２の閾値）以上の場合、後述するように当該指定領域の近傍領域のデータがキャッシュメモリ１１３に先読みされる。このため、もしも特定された記憶領域の群のうちの第１の記憶領域以外の領域（第３の領域）が指定領域と対応しているならば、現リードアクセスコマンドの実行時には、当該指定領域を含む近傍領域のデータが既にキャッシュメモリ１１３に先読みされていることとなって、キャッシュヒットとなるはずである。したがって、現リードアクセスコマンドの実行時にキャッシュミスヒットとなるのは、特定された記憶領域の群のうちの第１の記憶領域が指定領域と対応していることを意味する。
【００５３】
ここで、近傍領域決定部３３３によって決定される近傍領域について、図７を参照して詳細に説明する。図７（ａ）乃至（ｃ）に示される連続する記憶領域７１、記憶領域７２及び記憶領域７３は同一サイズであり、上記特定された記憶領域の群を表す。図７では、記憶領域７１、記憶領域７２及び記憶領域７３の順でアドレスが大きくなるものとする。
【００５４】
図７（ａ），（ｂ）及び（ｃ）において、それぞれハッチングが施されていない記憶領域７１，７２及び７３は、その記憶領域に対応する類似コマンドが、３つの記憶領域７１乃至７３に対応する類似コマンドの群の中で最初に実行されていることを示す。つまり、記憶領域７１，７２及び７３のうちのハッチングが施されていない記憶領域は上記第１の記憶領域を示す。
【００５５】
また、図７（ａ），（ｂ）及び（ｃ）には、記憶領域７１，７２及び７３と対応付けられる記憶領域７１０，７２０及び７３０が示されている。図７（ａ），（ｂ）及び（ｃ）において、それぞれハッチングが施されていない記憶領域７１０，７２０及び７３０は指定領域を示す。図７（ａ），（ｂ）及び（ｃ）では、特定された記憶領域７１乃至７３のうちのハッチングが施されていない記憶領域（第１の記憶領域）が、記憶領域７１０，７２０及び７３０のうちのハッチングが施されていない指定領域と対応するように、記憶領域７１乃至７３からなる記憶領域７４が、記憶領域７１０，７２０及び７３０からなる記憶領域（第２の記憶領域）７４０に対応付けられている。
【００５６】
図７（ａ）では、記憶領域７２０及び７３０が、記憶領域７１乃至７３のうち記憶領域（第１の記憶領域）７１を除く記憶領域７２及び７３に対応する。そこで図７（ａ）の場合、記憶領域７２０及び７３０からなる記憶領域（ハッチングが施された記憶領域）が近傍領域７５０として決定される。図７（ｂ）では、記憶領域７１０及び７３０が、記憶領域７１乃至７３のうち記憶領域（第１の記憶領域）７２を除く記憶領域７１及び７３に対応する。そこで図７（ｂ）の場合、記憶領域（ハッチングが施された記憶領域）７１０及び７３０がそれぞれ近傍領域７６０及び７７０として決定される。図７（ｃ）では、記憶領域７１０及び７２０が、記憶領域７１乃至７３のうち記憶領域（第１の記憶領域）７３を除く記憶領域７１及び７２に対応する。そこで図７（ｃ）の場合、記憶領域７１０及び７２０からなる記憶領域（ハッチングが施された記憶領域）が近傍領域７８０として決定される。
【００５７】
ここで、近傍領域決定部３３３による近傍領域決定処理の具体例について説明する。ここでは、上述のように、エントリ番号が「２，９，１２，１４」の各コマンドのログが類似コマンドのログとして抽出されたものとする。この場合、エントリ番号が「２，９，１４」の各コマンドで指定された連続する３つの記憶領域、即ち先頭アドレスが２８００ｈ、サイズが１００ｈの記憶領域、先頭アドレスが２９００ｈ、サイズが１００ｈの記憶領域、及び先頭アドレスが３Ａ００ｈ、サイズが１００ｈの記憶領域が特定される（ステップＳ７ａ）。また、エントリ番号が「２，９，１４」の各コマンドのうち、エントリ番号が「２」のコマンドが先頭類似コマンドとして特定される（ステップＳ７ｂ）。
【００５８】
そして、特定された３つの記憶領域のうち、先頭類似コマンドに対応する先頭アドレスが２８００ｈ、サイズが１００ｈの記憶領域（第１の記憶領域）が、現リードアクセスコマンドの指定するサイズ１００ｈの領域（指定領域）と対応するように、当該特定された３つの記憶領域からなるサイズ３００ｈの記憶領域（つまり先頭アドレスが２８００ｈ、サイズが３００ｈの記憶領域）が、現リードアクセスコマンドの指定するサイズ１００ｈの領域（指定領域）を含むサイズ３００ｈの記憶領域（第２の記憶領域）に対応させられる。この場合、図７（ｃ）と同様に、指定領域の後方で当該指定領域に隣接するサイズ２００ｈの記憶領域が近傍領域として決定される（ステップＳ７ｃ）。
【００５９】
なお、上記の例では、抽出された類似コマンドのログに基づいて特定される連続する記憶領域の群の組が１つである。しかし、このような連続する記憶領域の群の組が複数特定されることもある。このような場合、これらの複数の組のサイズの平均値を連続する記憶領域の群及び第２の記憶領域のサイズとすれば良い。
【００６０】
また、Ｗ／Ｒ種別が同一で、且つ転送サイズが同じ転送サイズ範囲内にあるコマンドを類似コマンド（第２のタイプの類似コマンド）として抽出する場合には、図７に示される記憶領域７１乃至７３及び７１０乃至７３０に代えて、当該記憶領域７１乃至７３及び７１０乃至７３０がそれぞれ属する転送サイズ範囲に対応する記憶領域を用いれば良い。
【００６１】
さて、近傍領域決定部３３３によって決定された近傍領域の先頭アドレス及びサイズは、それぞれ近傍領域の情報をなす先読み先頭アドレス及び先読みサイズとして、データアクセス処理決定部３４０に通知される。先読み先頭アドレス及び先読みサイズは、後述する第１のデータアクセス処理（ステップＳ１１）または第３のデータアクセス処理（ステップＳ１３）が実行される場合に、当該データアクセス処理で用いられる。
【００６２】
アクセス再出現率算出部３３１及びアクセス出現率算出部３３２によってそれぞれ算出された同一領域アクセス再出現率及び近傍領域アクセス出現率、並びに近傍領域決定部３３３によって決定された近傍領域の情報（先読み先頭アドレス及び先読みサイズの情報）は、データアクセス処理決定部３４０に通知される。するとデータアクセス処理決定部３４０内のキャッシュ実行決定部３４１は、現アクセスコマンドのＷ／Ｒ種別がリード（Ｒ）の場合、同一領域アクセス再出現率が予め定められた第１の閾値以上であるかを判定する（ステップＳ８）。キャッシュ実行決定部３４１は、この判定結果に基づき、現アクセスコマンドで指定されてキャッシュメモリ１１３に格納されたデータを当該キャッシュメモリ１１３に保持するか否か（削除するか）を決定する。
【００６３】
一方、データアクセス処理決定部３４０内の先読み決定部３４２は、同一領域アクセス再出現率が第１の閾値未満である場合または第１の閾値以上である場合のそれぞれにおいて、近傍領域アクセス出現率が予め定められた第２の閾値以上であるかを判定する（ステップＳ９またはＳ１０）。先読み決定部３４２は、この判定結果に基づき、現アクセスコマンドの指定する記憶領域の近傍領域のデータをキャッシュメモリ１１３に先読みするか否かを決定する。
【００６４】
以上のキャッシュ実行決定部３４１及び先読み決定部３４２の決定結果（判定結果）は、データアクセス処理決定部３４０によってデータアクセス部３５０に通知される。するとデータアクセス部３５０は、通知された決定結果に基づき、第１のデータアクセス処理（ステップＳ１１）、第２のデータアクセス処理（ステップＳ１２）、第３のデータアクセス処理（ステップＳ１３）及び第４のデータアクセス処理（ステップＳ１４）の何れか１つを実行する。
【００６５】
まず、同一領域アクセス再現率が第１の閾値未満（ステップＳ８がＮＯ）で、近傍領域アクセス出現率が第２の閾値以上（ステップＳ９がＹＥＳ）であるために、現アクセスコマンドで指定されたデータ（指定データ）のキャッシュメモリ１１３からの削除と近傍領域のデータの先読みとが決定された場合、第１のデータアクセス処理（ステップＳ１１）が実行される。次に、同一領域アクセス再出現率が第１の閾値未満（ステップＳ８がＮＯ）で、近傍領域アクセス出現率が第２の閾値未満（ステップＳ９がＮＯ）であるために、指定データのキャッシュメモリ１１３からの削除と近傍領域のデータの先読み無しとが決定された場合、第２のデータアクセス処理（ステップＳ１２）が実行される。次に、同一領域アクセス再出現率が第１の閾値以上（ステップＳ８がＹＥＳ）で、近傍領域アクセス出現率が第２の閾値以上（ステップＳ１０がＹＥＳ）であるために、指定データのキャッシュメモリ１１３への保持と近傍領域のデータの先読みとが決定された場合、第３のデータアクセス処理（ステップＳ１３）が実行される。そして、同一領域アクセス再出現率が第１の閾値以上（ステップＳ８がＹＥＳ）で、近傍領域アクセス出現率が第２の閾値未満（ステップＳ１０がＮＯ）であるために、指定データのキャッシュメモリ１１３への保持と近傍領域のデータの先読み無しとが決定された場合、第４のデータアクセス処理（ステップＳ１４）が実行される。
【００６６】
ここで、第１及び第２の閾値が何れも３０％であるとすると、前述の転送サイズが４ｈのリードアクセスコマンドの場合、同一領域アクセス再出現率は第１の閾値以上、近傍領域アクセス出現率は第２の閾値未満となる。この場合、第４のデータアクセス処理（ステップＳ１４）が実行される。これに対して、前述の転送サイズが１００ｈのリードアクセスコマンド場合、同一領域アクセス再出現率は第１の閾値未満、近傍領域アクセス出現率は第２の閾値以上となる。この場合、第１のデータアクセス処理（ステップＳ１１）が実行される。
【００６７】
ステップＳ１１〜Ｓ１４のデータアクセス処理の何れか１つが実行されると、テーブル管理部３６０はステップＳ２が実行された場合と同様に、前記ステップＳ３を実行する。
【００６８】
次に上記各データアクセス処理（ステップＳ１１〜Ｓ１４）について順次説明する。  
まず、第１のデータアクセス処理（ステップＳ１１）について、図６（ａ）のフローチャートを参照して説明する。第１のデータアクセス処理は、同一領域アクセス再出現率が低く、近傍領域アクセス出現率が高い場合の処理である。
【００６９】
同一領域アクセス再出現率が低い場合、現リードアクセスコマンドに基づいて論理記憶装置１２０から読み出されたデータが、ホスト計算機１３から新たに送信されるリードアクセスコマンドで再度読み出される可能性は低いと予測される。したがって、現リードアクセスコマンドに基づいて読み出されたデータをキャッシュメモリ１１３に保持しておいたとしても、近い将来当該データにキャッシュヒットすることは期待できない。
【００７０】
一方、近傍領域アクセス出現率が高い場合、現リードアクセスコマンドの指定する記憶領域（指定領域）の近傍領域へのアクセスが発生する可能性が高いと予測される。したがって、指定領域の近傍領域のデータをキャッシュメモリ１１３に先読みして当該キャッシュメモリ１１３に保持するならば、近い将来当該近傍領域のデータにキャッシュヒットすることが期待できる。
【００７１】
そこでデータアクセス部３５０は、第１のデータアクセス処理において、現リードアクセスコマンドによって指定された論理記憶装置１２０内の記憶領域（指定領域）のデータ（ホスト計算機１３から要求されたデータ）をキャッシュメモリ１１３に読み込むと共に、近傍領域決定部３３３によって決定された（先読み先頭アドレス及び先読みサイズで示される）近傍領域のデータ（先読みサイズ分のデータ）をキャッシュメモリ１１３に先読みする（ステップＳ１１ａ）。即ちデータアクセス部３５０は、「ホスト計算機１３からの要求サイズ＋先読みサイズ」分のデータをキャッシュメモリ１１３に読み込む。
【００７２】
次に、データアクセス部３５０は、キャッシュメモリ１１３に読み込まれたデータのうち、ホスト計算機１３から要求されたデータを当該ホスト計算機１３に転送する（ステップＳ１１ｂ）。データアクセス部３５０は、このデータの転送後、直ちに当該データをキャッシュメモリ１１３から削除して、当該データが保持されていたキャッシュメモリ１１３内の領域を解放する（ステップＳ１１ｃ）。これにより第１のデータアクセス処理は終了する。
【００７３】
ステップＳ１１ｃの処理の結果、再度読み出される可能性が低いデータによってキャッシュメモリ１１３内の領域が占有される無駄を無くすことができる。一方、キャッシュメモリ１１３に先読みされた、ホスト計算機１３からのアクセスが発生する可能性が高い近傍領域のデータは当該キャッシュメモリ１１３に保持されているため、当該データがホスト計算機１３から要求された場合に、直ちに当該データをホスト計算機１３に転送することができる。
【００７４】
このように本実施形態においては、キャッシュメモリ１１３の限られた領域（キャッシュメモリリソース）を、より効果の高いアクセスに対し優先的に割り当てることにより、当該キャッシュメモリ１１３の最良の効果を得ることができる。しかも、より効果の高いアクセスである（つまり、同一領域アクセス再出現率、或いは近傍領域アクセス出現率が高い）かの判定には、現アクセスコマンドそれ自体を含むコマンド列の指定するアクセスの傾向ではなくて、アクセスコマンドログテーブル１１９から抽出された現アクセスコマンドに類似のコマンドのアクセス傾向が用いられる。このため、ホスト計算機１３からのアクセスが同時期に多種多様に混在して存在する場合であっても、少ないアクセスコマンド列（特許文献２に記載された先読み閾値より少ない回数）で完結するようなシーケンシャルアクセスであっても、キャッシュメモリ１１３へのアクセスを伴う、現アクセスコマンドに対応する最適なデータアクセス処理を簡単に決定することができる。また、ホスト計算機１３からのアクセスが同時期に多種多様に混在して存在する場合に容易に対応できるため、論理記憶装置が大容量化しても、特許文献１に記載の技術で適用される統計情報に相当するアクセスコマンドのログを保持するアクセスコマンドログテーブルに必要な記憶容量の増加を抑えることができる。
【００７５】
次に、第２のデータアクセス処理（ステップＳ１２）について、図６（ｂ）のフローチャートを参照して説明する。第２のデータアクセス処理は、同一領域アクセス再出現率が低く、且つ近傍領域アクセス出現率も低い場合の処理である。同一領域アクセス再出現率が低い場合、前述したように現リードアクセスコマンドに基づいて読み出されたデータが近い将来再度読み出される可能性は低い。また、近傍領域アクセス出現率が低い場合、指定領域の近傍領域へのアクセスが近い将来発生する可能性も低い。
【００７６】
そこでデータアクセス部３５０は、第２のデータアクセス処理において、現リードアクセスコマンドによって指定された論理記憶装置１２０内の記憶領域（指定領域）のデータ（ホスト計算機１３から要求されたデータ）のみをキャッシュメモリ１１３に読み込む（ステップＳ１２ａ）。
【００７７】
次に、データアクセス部３５０は、キャッシュメモリ１１３に読み込まれたデータ（ホスト計算機１３から要求されたデータ）をホスト計算機１３に転送する（ステップＳ１２ｂ）。データアクセス部３５０は、このデータの転送後、直ちに当該データをキャッシュメモリ１１３から削除して、当該データが保持されていたキャッシュメモリ１１３内の領域を解放する（ステップＳ１２ｃ）。これにより第２のデータアクセス処理は終了する。
【００７８】
次に、第３のデータアクセス処理（ステップＳ１３）について、図６（ｃ）のフローチャートを参照して説明する。第３のデータアクセス処理は、同一領域アクセス再出現率が高く、且つ近傍領域アクセス出現率も高い場合の処理である。同一領域アクセス再出現率が高い場合、現リードアクセスコマンドに基づいて読み出されたデータが近い将来再度読み出される可能性が高い。また、近傍領域アクセス出現率が高い場合、前述したように指定領域の近傍領域へのアクセスが近い将来発生する可能性も高い。
【００７９】
そこでデータアクセス部３５０は、第３のデータアクセス処理において、先の第１のデータアクセス処理と同様に、現リードアクセスコマンドによって指定された論理記憶装置１２０内の記憶領域（指定領域）のデータをキャッシュメモリ１１３に読み込むと共に、近傍領域決定部３３３によって決定された（先読み先頭アドレス及び先読みサイズで示される）近傍領域のデータをキャッシュメモリ１１３に先読みする（ステップＳ１３ａ）。
【００８０】
次に、データアクセス部３５０は、キャッシュメモリ１１３に読み込まれたデータのうち、ホスト計算機１３から要求されたデータを当該ホスト計算機１３に転送する（ステップＳ１３ｂ）。これにより第３のデータアクセス処理は終了する。このように第３のデータアクセス処理では、ホスト計算機１３から要求された指定領域のデータがキャッシュメモリ１１３に保持されると共に、その近傍領域のデータが当該キャッシュメモリ１１３に先読みされる。
【００８１】
次に、第４のデータアクセス処理（ステップＳ１４）について、図６（ｄ）のフローチャートを参照して説明する。第４のデータアクセス処理は、同一領域アクセス再出現率が高く、近傍領域アクセス出現率が低い場合の処理である。このような場合、指定領域から読み出されたデータが近い将来再度読み出される可能性は高いものの、その近傍領域へのアクセスが近い将来発生する可能性は低い。
【００８２】
そこでデータアクセス部３５０は、第４のデータアクセス処理において、現リードアクセスコマンドによって指定された論理記憶装置１２０内の記憶領域（指定領域）のデータ（ホスト計算機１３から要求されたデータ）のみをキャッシュメモリ１１３に読み込む（ステップＳ１４ａ）。
【００８３】
次に、データアクセス部３５０は、キャッシュメモリ１１３に読み込まれたデータ（ホスト計算機１３から要求されたデータ）をホスト計算機１３に転送する（ステップＳ１４ｂ）。これにより第４のデータアクセス処理は終了する。
【００８４】
上述のように本実施形態においては、キャッシュヒットの期待できるデータを優先的にキャッシュメモリ１１３に保持し、また、後にアクセスされることが期待されるデータを先行して論理記憶装置１２０から読み出し、キャッシュメモリ１１３に保持しておくことにより、キャッシュメモリ１１３の限られた記憶領域（キャッシュメモリリソース）を有効活用し、キャッシュヒット率を向上させ、その結果アクセス性能を向上させることができる。
【００８５】
次に、データアクセス処理ユニット３００において実行されるライトアクセス処理について、図８のフローチャートを参照して説明する。  
今、ホスト計算機３０から記憶制御装置１１にホスト接続インタフェース２１を介してＷ／Ｒ種別がライト（Ｗ）であるアクセスコマンド（ライトアクセスコマンド、つまりライト要求）が送信されたものとする。このライトアクセスコマンドが記憶制御装置１１によって受信されると、データアクセス処理ユニット３００では、次のようなライトアクセス処理が行われる。
【００８６】
まず類似コマンド抽出部３２０が、先に述べたリードアクセスコマンドの場合と同様に、アクセスコマンドログテーブル１１９から現ライトアクセスコマンドに類似したコマンド（ライトアクセスコマンド）のログを抽出する（ステップＳ２１）。
【００８７】
するとアクセス傾向判定部３３０内のアクセス再出現率算出部３３１は、抽出された類似コマンドのログに基づき同一領域アクセス再出現率を算出する（ステップＳ２２）。一方、アクセス傾向判定部３３０内のアクセス出現率算出部３３２は、抽出された類似コマンドのログに基づき、近傍領域アクセス出現率を算出する（ステップＳ２３）。これらのステップＳ２２及びＳ２３は、前述のリードアクセス処理におけるステップＳ５及びＳ６と同様に行われる。
【００８８】
データアクセス処理決定部３４０内のデステージング遅延決定部３４３は、現アクセスコマンドのＷ／Ｒ種別がライト（Ｗ）の場合、アクセス再出現率算出部３３１によって算出された同一領域アクセス再出現率またはアクセス出現率算出部３３２によって算出された近傍領域アクセス出現率が、それぞれ第１の閾値または第２の閾値（ここでは、第１の閾値＝第２の閾値）以上であるかを判定する（ステップＳ２４）。
【００８９】
もし、同一領域アクセス再出現率または近傍領域アクセス出現率が閾値（第１の閾値または第２の閾値）以上の場合、現アクセスコマンドで指定される記憶領域（指定領域）と同一の領域または近傍領域に対するアクセスが近い将来発生する可能性が高いことが予測される。
【００９０】
そこでデステージング遅延決定部３４３は、ステップＳ２４での判定結果に基づき、ホスト計算機１３からの現ライトアクセスコマンドで指定されたライトデータをキャッシュメモリ１１３に格納した後に当該ライトデータを論理記憶装置１２０（を構成するＨＤＤ１２）に書き込む処理（デステージング）を、遅延させるか直ちに実行させるかを決定する。具体的には、同一領域アクセス再出現率または近傍領域アクセス出現率が閾値以上の場合（テップＳ２４のＹＥＳ）、デステージング遅延決定部３４３は、デステージングの遅延を決定する。これに対して、同一領域アクセス再出現率または近傍領域アクセス出現率が閾値未満の場合（ステップＳ２４のＮＯ）、デステージング遅延決定部３４３は、デステージングを直ちに実行させることを決定する。
【００９１】
デステージング遅延決定部３４３による決定結果（判定結果）はデータアクセス部３５０に通知される。するとデータアクセス部３５０は、通知された決定結果に基づき、ステップＳ２５及びＳ２６の何れか一方を次のように実行する。
【００９２】
まず、同一領域アクセス再出現率が閾値（第１の閾値）以上であると判定された結果、デステージングの遅延が決定されたものとする。この場合、データアクセス部３５０は、論理記憶装置１２０へのデステージングを遅延するモード（第１のモード）で、ホスト計算機１３からの現ライトアクセスコマンドで指定されたライトデータをキャッシュメモリ１１３に格納する（ステップＳ２５）。これにより、現ライトアクセスコマンドで指定された記憶領域（指定領域）と同一の領域に対するライトアクセスが発生する可能性が高いために、キャッシュメモリ１１３から論理記憶装置１２０内の当該同一の領域へのデータのデステージングの回数（書き込み回数）が増加するのを防止できる。
【００９３】
同様に、近傍領域アクセス出現率が閾値以上であると判定された結果、デステージングの遅延が決定されたものとする。この場合も、データアクセス部３５０は、上記第１のモード（論理記憶装置１２０へのデステージングを遅延するモード）で、ホスト計算機１３からの現ライトアクセスコマンドで指定されたライトデータをキャッシュメモリ１１３に格納する（ステップＳ２５）。これにより、現ライトアクセスコマンドで指定された記憶領域（指定領域）の近傍領域に対するライトアクセスが発生した場合に、キャッシュメモリ１１３から論理記憶装置１２０内の当該指定領域及び近傍領域へ一括してデータを書き込むことが可能となり、デステージングの回数（書き込み回数）を削減することができる。
【００９４】
一般に論理記憶装置１２０（を構成するＨＤＤ１２）はホスト計算機１３やキャッシュメモリ１１３に比べ性能が低いため、アクセスの負荷が高くなると、当該記憶装置１２０へのアクセスがボトルネックとなることが多い。このため、論理記憶装置１２０への書き込み回数を削減することは、アクセス性能の向上に寄与する。また、ライトデータがキャッシュメモリ１１３に保持される期間が長くなるため、当該データのリードを要求するリードアクセスコマンドがホスト計算機１３から送られた場合にはキャッシュヒットとなって、当該ホスト計算機１３に対して高速に応答できる効果もある。
【００９５】
これに対し、同一領域アクセス再出現率及び近傍領域アクセス出現率の何れも閾値以下であると判定された結果、デステージングを直ちに行うことが決定されたものとする。この場合、データアクセス部３５０は、論理記憶装置１２０へのデステージングを直ちに行うモード（第２のモード）で、ホスト計算機１３からの現ライトアクセスコマンドで指定されたライトデータをキャッシュメモリ１１３に格納する（ステップＳ２６）。第２のモードでは、キャッシュメモリ１１３に格納されたライトデータのデステージングが直ちに行われた後に、当該データがキャッシュメモリ１１３から削除されて、当該データが保持されていたキャッシュメモリ１１３内の領域が解放される。
【００９６】
同一領域アクセス再出現率及び近傍領域アクセス出現率の何れも閾値以下の場合、近い将来に同一領域または近傍領域へのアクセスが発生することは期待できない。このような場合に、現ライトアクセスコマンドで指定されたライトデータをキャッシュメモリ１１３に保持しておくことは当該キャッシュメモリ１１３の利用効率を低下させる。しかし本実施形態では、上記第２のモードでライトデータがキャッシュメモリ１１３に格納される（ステップＳ２６）。このため、キャッシュメモリ１１３に格納されたライトデータのデステージングが直ちに行われ、しかる後に当該データがキャッシュメモリ１１３から削除されて、当該キャッシュメモリ１１３内の対応する領域が解放される。これにより、キャッシュメモリ１１３の利用効率の低下を防止できる。
【００９７】
ステップＳ２５及びＳ２６の何れか一方が実行されると、テーブル管理部３６０は、現ライトアクセスコマンドのログ、即ち現ライトアクセスコマンドの指定するＷ／Ｒ種別であるライト（Ｗ）、先頭アドレス及び転送サイズの各情報を、次ポインタＰの指し示すアクセスコマンドログテーブル１１９内のエントリに追加する（ステップＳ２７）。このステップＳ２７において、テーブル管理部３６０は次ポインタＰを１インクリメントする。これにより、現ライトアクセスコマンドに対応するライトアクセス処理は終了する。
【００９８】
なお、アクセス傾向判定部３３０がアクセス再出現率算出部３３１及びアクセス出現率算出部３３２のいずれか一方のみを有していても構わない。もし、アクセス傾向判定部３３０がアクセス再出現率算出部３３１のみを有している場合のリードアクセス処理では、データアクセス処理決定部３４０は、同一領域アクセス再出現率に応じて第２のデータアクセス処理または第４のデータアクセス処理を決定すれば良い。同様に、アクセス傾向判定部３３０がアクセス出現率算出部３３２のみを有している場合のリードアクセス処理では、データアクセス処理決定部３４０は、近傍領域アクセス出現率に応じて第３のデータアクセス処理または第４のデータアクセス処理を決定すれば良い。
【００９９】
［変形例］
次に上記実施形態の変形例について説明する。この変形例の特徴は、論理記憶装置１２０の記憶領域を複数のゾーンに分割し、ゾーン毎に、上記実施形態で適用された、類似コマンドの抽出を含む処理を適用することにある。
【０１００】
図９は、複数のゾーンに分割された論理記憶装置１２０と当該複数のゾーンを管理するためのゾーン管理テーブル９０とを示す。図９の例では、論理記憶装置１２０の記憶領域はＭ＋１個のゾーンＺ0（＃０），Ｚ1（＃１），Ｚ2（＃２），…ＺM（＃Ｍ）に分割して管理される。ここでゾーンＺ0〜ＺMのサイズは均等でも均等でなくても構わない。もし、論理記憶装置１２０内の部分的な領域毎に予め用途が定められているならば、その領域毎にゾーンを定義すると良い。
【０１０１】
ゾーン管理テーブル９０は、論理記憶装置１２０のゾーン数に一致するＭ＋１個のエントリを有する。ゾーン管理テーブル９０のエントリ番号ｉ（ｉ＝０〜Ｍ）のエントリは、当該エントリ番号ｉに一致するゾーン番号ｉのゾーンＺiの情報（ゾーン情報）を保持するのに用いられる。ゾーン管理テーブル９０の各エントリは、フィールド９１及び９２から構成される。テーブル９０のエントリ番号ｉ（ｉ＝０〜Ｍ）のエントリのフィールド９１及び９２は、それぞれゾーン番号ｉのゾーンＺiの先頭アドレス（先頭ブロックアドレス）及びサイズ（ブロックサイズ）の情報を保持するのに用いられる。
【０１０２】
上述のように、ゾーン管理テーブル９０のエントリ番号ｉのエントリは、当該エントリ番号ｉに一致するゾーン番号ｉのゾーンＺiの情報を保持するのに用いられる。したがって、ゾーン管理テーブル９０の各エントリに、対応するゾーンＺiのゾーン番号を保持するフィールドが確保されていなくても、当該エントリのエントリ番号ｉから対応するゾーンＺiを特定できる。勿論、ゾーン管理テーブル９０の各エントリに、対応するゾーンＺiのゾーン番号を保持するフィールドが確保されていても構わない。
【０１０３】
本変形例では、ゾーンＺ0〜ＺM毎に、図２に示される構造のアクセスコマンドログテーブル１１９が用意される。類似コマンド抽出部３２０は、ホスト計算機１３からのアクセスコマンドに基づいて類似コマンドのログを抽出する場合、ゾーン管理テーブル９０を参照して、当該アクセスコマンドで指定されるアクセスコマンドログテーブル１１９内の記憶領域（指定領域）がゾーンＺ0〜ＺMのうちの何れのゾーンに属しているかを判定する。類似コマンド抽出部３２０は、判定されたゾーンに対応するアクセスコマンドログテーブル１１９に基づいて、類似コマンドのログを抽出する。
【０１０４】
このように、ゾーン毎に、上記実施形態で適用された、類似コマンドの抽出を含む処理を適用することにより、アクセスの傾向に局所性のあるような場合は、同一領域アクセス再出現率及び近傍領域アクセス出現率の判定の精度を向上させる効果が期待できる。
【０１０５】
なお、ホスト計算機１３に複数の論理記憶装置が提供される場合には、論理記憶装置毎にゾーン管理テーブル９０を用意して、論理記憶装置毎で且つゾーン毎にアクセスコマンドログテーブル１１９を用意すれば良い。
【０１０６】
本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【０１０７】
【図１】本発明の一実施形態に係る計算機システムの構成を示すブロック図。
【図２】図１に示されるアクセスコマンドログテーブルのデータ構造例を次ポインタと対応付けて示す図。
【図３】図１に示される記憶制御装置内に実現されるデータアクセス処理装置の構成を示すブロック図。
【図４】同実施形態におけるリードアクセス処理の手順を示すフローチャート。
【図５】図４のフローチャートにおける近傍領域決定処理の手順を示すフローチャート。
【図６】図４のフローチャートにおける第１乃至第４のデータアクセス処理の手順を示すフローチャート。
【図７】上記近傍領域決定処理を説明するための図。
【図８】同実施形態におけるライトアクセス処理の手順を示すフローチャート。
【図９】同実施形態の変形例で適用される、複数のゾーンに分割された論理記憶装置と当該複数のゾーンを管理するためのゾーン管理テーブルとを示す図。
【符号の説明】
【０１０８】
１１…記憶制御装置、１２…ＨＤＤ（記憶装置）、１３…ホスト計算機、３０…データアクセス処理装置、９０…ゾーン管理テーブル、１１３…キャッシュメモリ、１１５…マイクロプロセッサ、１１６…メモリ（ローカルメモリ）、１１７…ＲＯＭ、１１８…プログラム、１１９…アクセスコマンドログテーブル、１２０…論理記憶装置、３００…データアクセス処理ユニット、３１０…キャッシュヒット判定部、３２０…類似コマンド抽出部、３３０…アクセス傾向判定部、３３１…アクセス再出現率算出部、３３２…アクセス出現率算出部、３３３…近傍領域決定部、３４０…データアクセス処理決定部、３４１…キャッシュ実行決定部、３４２…先読み決定部、３４３…デステージング遅延決定部、３５０…データアクセス部、３６０…テーブル管理部。
【図１】
2008293111.tif 000003
【図２】
2008293111.tif 000004
【図３】
2008293111.tif 000005
【図４】
2008293111.tif 000006
【図５】
2008293111.tif 000007
【図６】
2008293111.tif 000008
【図７】
2008293111.tif 000009
【図８】
2008293111.tif 000010
【図９】
2008293111.tif 000011