(57)【要約】【課題】シーケンシャルアクセス性のあるリード要求を適正に判断でき、制御装置１３から記憶装置１２へのアクセス回数を少なくすると共に応答時間やスループット性能も向上させることである。【解決手段】制御装置１３のマイクロプロセッサ１８は、ホスト計算機１１からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、シーケンシャルアクセス性のあるリード要求であると判断し、そのリード要求に対するデータをホスト計算機１１に送信すると共に、そのリード要求と連続した後続の記憶領域のデータを記憶装置１２からキャッシュメモリ２０へ先行して読み込んでおく。【選択図】  図１
2007241927.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機で演算処理するデータを記憶する単一または複数の記録媒体と、前記ホスト計算機と前記記憶装置とに接続され前記ホスト計算機と前記記憶装置との間のデータ転送を処理する制御装置とを備えたデータ記憶装置において、前記制御装置は、前記ホスト計算機から前記記憶装置よりも高速にアクセスが可能なキャッシュメモリと、前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、シーケンシャルアクセス性のあるリード要求であると判断し、そのリード要求に対するデータを前記ホスト計算機に送信すると共に、そのリード要求と連続した後続の記憶領域のデータを前記記憶装置から前記キャッシュメモリへ先行して読み込んでおくマイクロプロセッサとを備えたことを特徴とするデータ記憶装置。
【請求項２】
予め設定された先読み判定サイズとして複数の先読み判定サイズを有し、前記マイクロプロセッサは、前記ホスト計算機からのリード要求の転送サイズが複数の予め設定された先読み判定サイズのいずれかに該当するときは、シーケンシャルアクセス性のあるリード要求であると判断することを特徴とする請求項１記載のデータ記憶装置。
【請求項３】
前記ホスト計算機からの前記キャッシュメモリへ先読みしたデータのヒット率応じて先読みをするか否かを判断することを特徴とする請求項１または２記載のデータ記憶装置。
【請求項４】
前記ホスト計算機からの前記キャッシュメモリへ先読みしたデータのヒット率に応じて前記先読み判定サイズを変更することを特徴とする請求項１ないし３のいずれか一記載のデータ記憶装置。
【請求項５】
前記マイクロプロセッサは、ホスト計算機からのリード要求により記憶装置から対象のデータを読み込む際に、ホスト計算機からリード要求されたデータと先読み分のデータとを合算したサイズのリード要求を記憶装置に対し発行してホスト計算機のリード要求分のデータと先読み分のデータとを一括してキャッシュメモリへ読み込むことを特徴とする請求項１ないし４のいずれか一記載のデータ記憶装置。
【請求項６】
前記マイクロプロセッサは、ホスト計算機からのリード要求により記憶装置から対象のデータを読み込む際に、まず、ホスト計算機からのリード要求により指定されたサイズのリード要求を記憶装置に対し発行してホスト計算機のリード要求分のデータをキャッシュメモリへ読み込み、次に先読み分のサイズのリード要求を新たに記憶装置に対し発行して先読み分のデータをキャッシュメモリへ読み込むことを特徴とする請求項１ないし４のいずれか一記載のデータ記憶装置。
【請求項７】
先読み分のデータは、先読み判定サイズのｎ倍のサイズ分であることを特徴とする請求項１ないし６のいずれか一記載のデータ記憶装置。
【請求項８】
先読み分のデータは、ＲＡＩＤの機能により複数の記憶装置が管理される場合には、これら複数の記憶装置に対するデータの配置構造に応じて、そのサイズを決定することを特徴とする請求項１ないし６のいずれか一記載のデータ記憶装置。
【請求項９】
ホスト計算機で演算処理するデータを単一または複数の記録媒体に記憶し、前記ホスト計算機と前記記憶装置との間のデータ転送をキャッシュメモリを介して処理するデータ記憶方法において、前記ホスト計算機からのリード要求があったときそのリード要求のデータがキャッシュメモリに読み込まれているか否かを判定し、そのリード要求のデータがキャッシュメモリにあるときはそのデータを前記ホスト計算機に送出し、そのリード要求のデータがキャッシュメモリにないときは前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定し、同じでないときはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信し、同じである場合にはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信すると共にそのリード要求と連続した後続の記憶領域のデータを前記記憶装置から前記キャッシュメモリへ先行して読み込むことを特徴とするデータ記憶方法。
【請求項１０】
ホスト計算機で演算処理するデータを単一または複数の記録媒体に記憶し、前記ホスト計算機と前記記憶装置との間のデータ転送をキャッシュメモリを介して処理するデータ記憶方法において、前記ホスト計算機からのリード要求があったときそのリード要求のデータがキャッシュメモリに読み込まれているか否かを判定し、そのリード要求のデータがキャッシュメモリにあるときはそのデータを前記ホスト計算機に送出し、そのリード要求のデータがキャッシュメモリにないときは前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定し、同じでないときはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信し、同じである場合にはそのリード要求に対するデータと先読み分のデータとを合算したサイズのデータを一括してキャッシュメモリへ読み出しリード要求に対するデータを前記ホスト計算機に送信することを特徴とするデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機と記憶装置との間のデータ送受信処理を行う制御機能を有したデータ記憶装置及び方法に関する。
【背景技術】
【０００２】
例えば、記憶装置として複数のＨＤＤを用いたデータ記憶装置としてディスクアレイ装置がある。このようなデータ記憶装置は、単一または複数の記憶装置と、ホスト計算機と記憶装置との間のデータ送受信処理を行う制御装置と有している。特に複数のＨＤＤをＲＡＩＤの機能により管理するディスクアレイ装置の制御装置では、記憶装置よりも高速にアクセスが可能なキャッシュメモリを有し、ホスト計算機からのアクセス性能を向上させるためのリードキャッシュ機能も備えている。
【０００３】
リードキャッシュ機能を備えたデータ記憶装置では、ホスト計算機からのシーケンシャルなリード要求時に、アクセス性能を向上させる手法として、記憶装置からのデータの先読み（またはプリフェッチとも呼ばれる）機能が広く使われている。
【０００４】
データの先読み機能とは、ホスト計算機から発行されるリード要求がシーケンシャル性のある要求であると判断した場合に、次に受信するであろうシーケンシャルな領域（後続の領域）のデータを予め先行して記憶装置からキャッシュメモリへ読み込んでおく機能である。シーケンシャル性とは、後続のデータ領域に対するリード要求が連続して発生することである。ホスト計算機から発行されるリード要求がシーケンシャル性のある要求であるか否かは制御装置で判断し、ホスト計算機からの要求を受信するより以前に予め先行して、次に受信するであろうシーケンシャルな領域（後続の領域）のデータを記憶装置からキャッシュメモリへ読み込んでおく。
【０００５】
データの先読みを行うことにより大きくは２つの効果が得られる。一つはホスト計算機から後続のコマンドを受信するより前に記憶装置からの読み込みを開始しているため、後続のコマンドに対する応答時間を短縮できる。もう一つは、先読みにてある程度まとまったサイズのデータを一括して読み込み、以降発行される複数分のコマンドの応答時間を短縮できると共に、記憶装置に対するアクセス回数が減るため装置全体のスループット性能が向上することである。このようにデータの先読みはアクセス性能向上に対し非常に有用な機能である。
【０００６】
図１０は従来のデータ先読み機能の説明図である。アドレスが連続した領域で、転送サイズの最初のコマンド０がある番地から所定のサイズ（例えば２５６ｋＢ）のデータ要求であったとする。そして、次のコマンド１がその所定のサイズに連続する所定のサイズ（例えば２５６ｋＢ）のデータ要求であり、さらに次のコマンド２がその所定のサイズに連続する所定のサイズ（例えば２５６ｋＢ）のデータ要求であったとする。このように、連続した所定のサイズの３回連続したデータ要求の場合には、シーケンシャルアクセス性のあるリード要求であると判断し、以下のデータ領域の所定のデータ範囲のデータを先読みするようにしている。すなわち、ホスト計算機からのリード要求がシーケンシャルアクセス性のある要求であるかどうかの判定に関して、連続したデータ領域に対するホスト計算機からのリード要求を所定の回数（先読み判定回数）以上連続して受信したときに、シーケンシャルアクセス性のある要求であると判断している。
【０００７】
ここで、ディスクドライブへ書き込むデータに所定ブロック長単位で冗長データを付加する機能を備えたディスク制御装置として、データを記録するディスクのセクタを単位に冗長な情報をもたせる技術を有効に活用して、複数のシーケンシャルデータを効率よく先読みしてホストへの高レスポンスなデータ返却を可能にしたものがある（例えば、特許文献１参照）。
【特許文献１】特開２００４−３５５０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来のデータ先読み機能の場合には、ホスト計算機からのリード要求がシーケンシャルアクセス性のある要求であると判断するまでに、所定の回数（先読み判定回数）以上のホスト計算機からのリード要求の受信が必要である。そのため、記憶装置からの読み出し処理もリード要求の受信の都度発生してしまう。
【０００９】
通常、先読み判定回数は２回または３回程度であるので、ホスト計算機からのリード要求が２回または３回で完結するような回数の少ないシーケンシャルなリード要求では、データの先読みの効果は得られ難い面がある。つまり、２回または３回のリード要求を受信したときは、シーケンシャルアクセス性のあるリード要求であると判断して後続のデータを先読みすることになるが、リード要求が２回または３回で完結する場合には、その先読みしたデータは結局使用されず無駄となり、装置のスループット性能を悪化させる可能性がある。
【００１０】
一般に、ホスト計算機のファイルシステムやインタフェースドライバ（例えばＳＣＳＩやＦｉｂｒｅ  Ｃｈａｎｎｅｌのドライバ）は、アプリケーションなどから要求されたデータ（ファイル）のリード要求に関し、要求されたデータのサイズそのもので制御装置にリード要求を発行し記憶装置から読み込むとは限らない。ファイルシステムやドライバの仕様により、制御装置へ発行するリード要求には一定のサイズ上限を有しており、アプリケーションなどからのリード要求をそのサイズで複数のリード要求に分割して制御装置へ発行するようにしている。
【００１１】
以上のことから従来の先読み機能では、例えば２５６ｋＢ程度のファイルを多く扱うシステムにて、ファイルシステムやインタフェースドライバなどの仕様から、記憶装置へのアクセス要求（具体的にはリードのＳＣＳＩコマンドなど）を１２８ｋＢに分割してコマンド発行するシステムの場合、このファイルの読み出しでは連続した２〜３回のリード要求が発生する。この場合、先読み判定回数を３回以上としていた場合には、先読みが働かないかまたは働いても、その先読みしたデータは使用されず先読みの効果は得られないことになる。実際のシステムでは、このような回数の少ないシーケンシャルアクセス性のあるリード要求は多く発生している。
【００１２】
本発明の目的は、シーケンシャルアクセス性のあるリード要求を適正に判断でき、制御装置から記憶装置へのアクセス回数を少なくすると共に応答時間やスループット性能も向上させることができるデータ記憶装置及び方法を提供することである。
【課題を解決するための手段】
【００１３】
請求項１の発明に係わるデータ記憶装置は、ホスト計算機で演算処理するデータを記憶する単一または複数の記録媒体と、前記ホスト計算機と前記記憶装置とに接続され前記ホスト計算機と前記記憶装置との間のデータ転送を処理する制御装置とを備えたデータ記憶装置において、前記制御装置は、前記ホスト計算機から前記記憶装置よりも高速にアクセスが可能なキャッシュメモリと、前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、シーケンシャルアクセス性のあるリード要求であると判断し、そのリード要求に対するデータを前記ホスト計算機に送信すると共に、そのリード要求と連続した後続の記憶領域のデータを前記記憶装置から前記キャッシュメモリへ先行して読み込んでおくマイクロプロセッサとを備えたことを特徴とする。
【００１４】
請求項２の発明に係わるデータ記憶装置は、請求項１の発明において、予め設定された先読み判定サイズとして複数の先読み判定サイズを有し、前記マイクロプロセッサは、前記ホスト計算機からのリード要求の転送サイズが複数の予め設定された先読み判定サイズのいずれかに該当するときは、シーケンシャルアクセス性のあるリード要求であると判断することを特徴とする。
【００１５】
請求項３の発明に係わるデータ記憶装置は、請求項１または２の発明において、前記ホスト計算機からの前記キャッシュメモリへ先読みしたデータのヒット率に応じて先読みをするか否かを判断することを特徴とする。
【００１６】
請求項４の発明に係わるデータ記憶装置は、請求項１ないし３のいずれか一の発明において、前記ホスト計算機からの前記キャッシュメモリへ先読みしたデータのヒット率に応じて前記先読み判定サイズを変更することを特徴とする。
【００１７】
請求項５の発明に係わるデータ記憶装置は、請求項１ないし４のいずれか一の発明において、前記マイクロプロセッサは、ホスト計算機からのリード要求により記憶装置から対象のデータを読み込む際に、ホスト計算機からリード要求されたデータと先読み分のデータとを合算したサイズのリード要求を記憶装置に対し発行してホスト計算機のリード要求分のデータと先読み分のデータとを一括してキャッシュメモリへ読み込むことを特徴とする。
【００１８】
請求項６の発明に係わるデータ記憶装置は、請求項１ないし４のいずれか一の発明において、前記マイクロプロセッサは、ホスト計算機からのリード要求により記憶装置から対象のデータを読み込む際に、まず、ホスト計算機からのリード要求により指定されたサイズのリード要求を記憶装置に対し発行してホスト計算機のリード要求分のデータをキャッシュメモリへ読み込み、次に先読み分のサイズのリード要求を新たに記憶装置に対し発行して先読み分のデータをキャッシュメモリへ読み込むことを特徴とする。
【００１９】
請求項７の発明に係わるデータ記憶装置は、請求項１ないし６のいずれか一の発明において、先読み分のデータは、先読み判定サイズのｎ倍のサイズ分であることを特徴とする。
【００２０】
請求項８の発明に係わるデータ記憶装置は、請求項１ないし６のいずれか一の発明において、先読み分のデータは、ＲＡＩＤの機能により複数の記憶装置が管理される場合には、これら複数の記憶装置に対するデータの配置構造に応じて、そのサイズを決定することを特徴とする。
【００２１】
請求項９の発明に係わるデータ記憶方法は、ホスト計算機で演算処理するデータを単一または複数の記録媒体に記憶し、前記ホスト計算機と前記記憶装置との間のデータ転送をキャッシュメモリを介して処理するデータ記憶方法において、前記ホスト計算機からのリード要求があったときそのリード要求のデータがキャッシュメモリに読み込まれているか否かを判定し、そのリード要求のデータがキャッシュメモリにあるときはそのデータを前記ホスト計算機に送出し、そのリード要求のデータがキャッシュメモリにないときは前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定し、同じでないときはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信し、同じである場合にはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信すると共にそのリード要求と連続した後続の記憶領域のデータを前記記憶装置から前記キャッシュメモリへ先行して読み込むことを特徴とする。
【００２２】
請求項１０の発明に係わるデータ記憶方法は、ホスト計算機で演算処理するデータを単一または複数の記録媒体に記憶し、前記ホスト計算機と前記記憶装置との間のデータ転送をキャッシュメモリを介して処理するデータ記憶方法において、前記ホスト計算機からのリード要求があったときそのリード要求のデータがキャッシュメモリに読み込まれているか否かを判定し、そのリード要求のデータがキャッシュメモリにあるときはそのデータを前記ホスト計算機に送出し、そのリード要求のデータがキャッシュメモリにないときは前記ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定し、同じでないときはそのリード要求に対するデータをキャッシュメモリに読み出して前記ホスト計算機に送信し、同じである場合にはそのリード要求に対するデータと先読み分のデータとを合算したサイズのデータを一括してキャッシュメモリへ読み出しリード要求に対するデータを前記ホスト計算機に送信することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じである場合には、１回目のリード要求であってもシーケンシャルアクセス性のあるリード要求であると判断するので、ファイルシステムやインタフェースドライバなどの仕様から、記憶装置へのリード要求をそのシステムに固定の転送サイズ単位に分割してコマンド発行する場合であっても、アプリケーションなどからのリード要求が分割して処理されることがなくなる。すなわち、ホスト計算機からの１回目のリード要求で制御装置に対してデータの先読みのリード要求が発行されるため、制御装置から記憶装置へのアクセス回数の増加などの問題が発生しなくなる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態を説明する。図１は本発明の実施の形態に係わるデータ記憶装置のブロック構成図である。データ記憶装置は、ホスト計算機１１で演算処理するデータを記憶する単一または複数の記録媒体１２と、ホスト計算機１１と記憶装置１２との間のデータ転送を処理する制御装置１３とから構成される。記憶装置１２はハードディスク装置ＨＤＤや光ディスク装置などの記憶媒体１４で構成される。
【００２５】
また、制御装置１３は、記憶装置１２の複数の記憶装置２１を制御し、ホスト計算機１１とのデータ送受信を行うものであり、ホスト計算機１１とはインタフェース制御回路１５ａで接続され、記憶装置１２とはインタフェース制御回路１５ｂで接続される。インタフェース制御回路１５ａ、１５ｂはＳＣＳＩやFibre Channelなどで構成される。
【００２６】
不揮発メモリ（ＲＯＭ）１６には制御装置１３のプログラムが格納され、ローカルメモリ１７には、制御装置１３の各種処理動作に関するプログラムが格納される。また、ローカルメモリ１７にはマイクロプロセッサ１８が動作する上で使用するワーク領域が確保される。すなわち、マイクロプロセッサ１８は、ＲＯＭ１６からローカルメモリ１７にコピーされたプログラムコードに従い、制御装置１３の各種処理動作を実行する。また、チップセット１９は、マイクロプロセッサ１８および周辺回路を内部バスに接続するためのものであり、キャッシュメモリ２０はホスト計算機１１との読み書きデータを一時的に保持するＤＲＡＭなどの高速なメモリであり、ホスト計算機１１から記憶装置１２よりも高速にアクセスが可能なメモリである。
【００２７】
マイクロプロセッサ１８は、ホスト計算機１１からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定し、同じである場合には、シーケンシャルアクセス性のあるリード要求であると判断する。そして、そのリード要求に対するデータをホスト計算機１１に送信すると共に、そのリード要求と連続した後続の記憶領域のデータを記憶装置１２からキャッシュメモリ２０へ先行して読み込んでおく。
【００２８】
図２は本発明の実施の形態に係わるデータ記憶装置の基本動作の説明図である。本発明の実施の形態ではホスト計算機１１からの転送サイズが先読み判定サイズに一致するか否かを判定する。図２に示すように、最初のコマンド０が先読み判定サイズに一致するか否かを判定し、一致する場合には、そのリード要求はシーケンシャルアクセス性のある要求であると判定し、所定の範囲のデータを先読みする。
【００２９】
すなわち、システム固有の分割サイズを予め先読み判定サイズとして制御装置１３に予め設定しておき、制御装置１３はホスト計算機１１から受信したリード要求がこの先読み判定サイズと同じか場合によってはそれ以上のとき、そのリード要求はシーケンシャルアクセス性のある要求であり、後続の領域に対するリード要求が発生する可能性が高い点に注目し、その場合に先読み処理を行う。これにより、少ない回数のシーケンシャルなリード要求時にも先読みの効果が得られるようにする。なお、本発明の実施の形態では、図１０に示した先読み機能も併せ持ち共存させる。つまり、図１０に示した先読み機能を補完するものである。
【００３０】
図３は本発明の実施の形態に係わるデータ記憶装置での第１の実施例による演算処理内容を示すフローチャートである。まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、リード要求のコマンドが要求する転送サイズが先読み判定サイズか否かを判定し（Ｓ２）、先読み判定サイズである場合には、転送サイズに先読み分を加えたデータを記憶装置１２からキャッシュメモリ２０に読み込む（Ｓ３）。そして、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００３１】
ステップＳ２の判定で、リード要求のコマンドが要求する転送サイズが先読み判定サイズでない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ５）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。また、ステップＳ１の判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にある場合には、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００３２】
このように、ホスト計算機１１より受信したリード要求の処理にて、要求されたデータがキャッシュメモリ（リードキャッシュ）にエントリされておらず（キャッシュミスヒット）、記憶装置１２からの読み込みが必要である場合に、そのホスト計算機１１より受信したリード要求の転送サイズが予め設定された先読み判定サイズであった場合には、ホスト計算機１１からのリード要求の処理に加え先読みの処理を行う。先読み判定サイズは、そのシステムに固有なコマンドの分割転送サイズと同じサイズに設定する。また、先読みの仕方として、ホスト計算機より受信したリード要求のデータと、その後続の領域である先読み分のデータとを一括して記憶装置１２から読み込む。
【００３３】
ここで、ホスト計算機１１からのリード要求より先読みサイズ分だけ余計に記憶装置１２から読み込む場合のメリットについて検討する。ホスト計算機１１からのリード要求より先読みサイズ分だけ余計に記憶装置１２から読み込むので、記憶装置１２から制御装置１３へのデータ転送時間は長くなるが、一般的にＨＤＤなどの記憶装置は、データ転送時間よりデータ転送を開始するまでのアクセスタイムの方が大きくなる。従って、データ転送サイズを大きくしてでも、アクセス回数を減らした方がトータルな性能は向上する。
【００３４】
より具体的に考察する。最近の一般的なＨＤＤの場合では、２５６ｋＢのリード要求を１２８ｋＢ×２回に分けた場合と、２５６ｋＢ×１回で処理した場合とでその処理時間を比較する。この場合、アクセスタイムは平均シーク時間と平均回転待ち時間との合計であり、転送サイズによらず９ｍｓ程度である。データ転送時間は１２８ｋＢで２ｍｓ程度、２５６ｋＢで４ｍｓ程度である。処理時間はアクセスタイムとデータ転送時間との合計であるから、リード要求を２回に分けると処理時間は２２ｍｓ程度となり、１回で行うと１３ｍｓ程度となる。
【００３５】
従って、１回の転送サイズを大きくしアクセス回数を減らした方が全体的な処理時間は短縮される。なお、１回の転送サイズをあまりにも大きくし過ぎると、その転送が完了するまでホスト計算機１１からのリード要求を完了することができず、リード要求の応答時間が悪化する。従って、双方のバランスを考えてそのシステムに合った先読みサイズに設定することが好ましい。
【００３６】
第１の実施例によれば、ホスト計算機からのリード要求の転送サイズが予め設定された先読み判定サイズと同じであるか否かを判定するので、１回目のリード要求であってもシーケンシャルアクセス性のあるリード要求であると判断でき、連続性のあるデータの読み出し要求コマンドに対するアクセスタイムを短縮できる。また、ホスト計算機１１より受信したリード要求のデータと、その後続の領域である先読み分のデータとを一括して記憶装置１２から読み込むので、制御装置１３から記憶装置１２へのリード要求回数を削減することができる。これにより、トータルとして記憶装置１２のアクセスタイム（シーク時間，回転待ち時間など）を削減できる。
【００３７】
図４は本発明の実施の形態に係わるデータ記憶装置での第２の実施例による演算処理内容を示すフローチャートである。この第２の実施例は、図３に示した第１の実施例に対し、予め設定された先読み判定サイズとして複数の先読み判定サイズを設け、ホスト計算機１１からのリード要求の転送サイズが複数の予め設定された先読み判定サイズのいずれかに該当するときは、シーケンシャルアクセス性のあるリード要求であると判断するようにしたものである。ステップＳ２の処理がステップＳ２’となった点が異なる。
【００３８】
まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当するか否かを判定する（Ｓ２’）。判定の結果、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当する場合には、転送サイズに先読み分を加えたデータを記憶装置１２からキャッシュメモリ２０に読み込む（Ｓ３）。そして、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００３９】
ステップＳ２’の判定で、リード要求のコマンドが要求する転送サイズがいずれの先読み判定サイズでもない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ５）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。また、ステップＳ１の判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にある場合には、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００４０】
第２の実施例によれば、第１の実施例の効果に加え、複数の先読み判定サイズを設け、転送サイズがいずれかに該当したときに先読みを行うので、先読み処理の範囲を広く設定できる。
【００４１】
図５は本発明の実施の形態に係わるデータ記憶装置での第３の実施例による演算処理内容を示すフローチャートである。この第３の実施例は、図４に示した第２の実施例に対し、ステップＳ６を追加し、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率を判定し、そのヒット率がしきい値を超えた場合に先読みをするようにしたものである。
【００４２】
まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当するか否かを判定する（Ｓ２’）。判定の結果、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当する場合には、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率を判定し（Ｓ６）、そのヒット率がしきい値を超えた場合には、転送サイズに先読み分を加えたデータを記憶装置１２からキャッシュメモリ２０に読み込む（Ｓ３）。そして、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００４３】
ステップＳ２’の判定で、リード要求のコマンドが要求する転送サイズがいずれの先読み判定サイズでもない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ５）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。また、ステップＳ６の判定で、ヒット率がしきい値以下の場合には転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ５）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。また、ステップＳ１の判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にある場合には、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ４）。
【００４４】
ここで、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率に応じて先読みをする場合としない場合に区分したが、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率に応じて先読み判定サイズを変更するようにしてもよい。
【００４５】
第３の実施例によれば、第２の実施例の効果に加え、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率がしきい値を超えた場合に先読みをするようにしたので、無駄な先読みをすることを防止できる。また、キャッシュメモリ２０へ先読みしたデータのヒット率に応じて先読み判定サイズを変更した場合には、より効率的に先読みを行うことができる。
【００４６】
図６は本発明の実施の形態に係わるデータ記憶装置での第４の実施例による演算処理内容を示すフローチャートである。この第４の実施例は、図３に示した第１の実施例に対し、ホスト計算機１１からのリード要求により記憶装置１２から対象のデータを読み込む際に、ホスト計算機１１のリード要求分のデータと先読み分のデータとを一括してキャッシュメモリ２０へ読み込むことに代えて、ホスト計算機１１のリード要求分のデータをキャッシュメモリ２０へ読み込み、次に先読み分のサイズのリード要求を新たに記憶装置１２に対し発行して先読み分のデータをキャッシュメモリ２０へ読み込むようにしたものである。
【００４７】
まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ１２）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ１３）。
【００４８】
そして、リード要求のコマンドが要求する転送サイズが先読み判定サイズか否かを判定し（Ｓ１４）、先読み判定サイズである場合には、先読み処理を起動する（Ｓ１５）。これにより、先読み分を記憶装置１２からキャッシュメモリ２０に読み込み、キャッシュメモリ２０のデータをホスト計算機１１へ送出する。一方、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれにも該当しない場合には処理を終了する。
【００４９】
第４の実施例によれば、ホスト計算機１１より受信したリード要求のデータを記憶装置１２から読み込んだ後に、改めてその後続の領域である先読み分のデータを記憶装置１２から読み込むので、最初のリード要求でホスト計算機１１へデータを送出している間に、それに並行して後続の領域の先読みを開始できる。このため、ホスト計算機１１より受信したリード要求の応答時間を劣化させることなく先読みを実行できる。
【００５０】
また、ホスト計算機１１からの要求分のデータを記憶装置１２から読み込みした直後に、他の要求の処理を挟むことなくその記憶装置１２から先読みを行うので、記憶装置１２のアクセスタイムのうち平均シーク時間を抹消できる。また、記憶装置１２自身が先読みの機能を有している場合は、回転待ち時間も抹消することができる。その結果、先読み処理を高速に行うことができる。
【００５１】
図７は本発明の実施の形態に係わるデータ記憶装置での第５の実施例による演算処理内容を示すフローチャートである。この第５の実施例は、図６に示した第４の実施例に対し、予め設定された先読み判定サイズとして複数（ｎ個）の先読み判定サイズを設け、ホスト計算機１１からのリード要求の転送サイズが複数の予め設定された先読み判定サイズのいずれかに該当するときは、シーケンシャルアクセス性のあるリード要求であると判断するようにしたものである。ステップＳ１４の処理がステップＳ１４’となった点が異なる。
【００５２】
まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ１２）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ１３）。
【００５３】
ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当するか否かを判定する（Ｓ１４’）。判定の結果、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当する場合には、先読み処理を起動する（Ｓ１５）。これにより、先読み分を記憶装置１２からキャッシュメモリ２０に読み込み、キャッシュメモリ２０のデータをホスト計算機１１へ送出する。一方、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれにも該当しない場合には処理を終了する。
【００５４】
第５の実施例によれば、第４の実施例の効果に加え、複数の先読み判定サイズを設け、転送サイズがいずれかに該当したときに先読みを行うので、先読み処理の範囲を広く設定できる。
【００５５】
図８は本発明の実施の形態に係わるデータ記憶装置での第６の実施例による演算処理内容を示すフローチャートである。この第６の実施例は、図７に示した第５の実施例に対し、ステップＳ１６を追加し、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率を判定し、そのヒット率がしきい値を超えた場合に先読みをするようにしたものである。
【００５６】
まず、制御装置１３のマイクロプロセッサ１８はホスト計算機１１からリード要求処理を受け取ると、キャッシュヒットしているか否かを判定する（Ｓ１１）。このキャッシュヒットの判定で、リード要求のコマンドが要求するデータがキャッシュメモリ２０にない場合には、転送サイズ分を記憶装置１２からキャッシュメモリに読み込み（Ｓ１２）、キャッシュメモリ２０のデータをホスト計算機１１へ送出する（Ｓ１３）。
【００５７】
ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当するか否かを判定する（Ｓ１４’）。判定の結果、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれかに該当する場合には、
ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率を判定し（Ｓ１６）、そのヒット率がしきい値を超えた場合には、先読み処理を起動する（Ｓ１５）。これにより、先読み分を記憶装置１２からキャッシュメモリ２０に読み込み、キャッシュメモリ２０のデータをホスト計算機１１へ送出する。一方、ホスト計算機１１からのリード要求の転送サイズが予め定めた複数（ｎ個）の先読み判定サイズのいずれにも該当しない場合には処理を終了する。
【００５８】
ここで、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率に応じて先読みをする場合としない場合に区分したが、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率に応じて先読み判定サイズを変更するようにしてもよい。
【００５９】
第６の実施例によれば、第５の実施例の効果に加え、ホスト計算機１１からのキャッシュメモリ２０へ先読みしたデータのヒット率がしきい値を超えた場合に先読みをするようにしたので、無駄な先読みをすることを防止できる。また、キャッシュメモリへ先読みしたデータのヒット率に応じて先読み判定サイズを変更した場合には、より効率的に先読みを行うことができる。
【００６０】
次に、先読みを行うデータのサイズについて説明する。先読み分のデータは、予め定められた先読み判定サイズのｎ倍のサイズ分、あるいはＲＡＩＤの機能により記憶装置１２が複数の記憶媒体１４で構成され管理される場合には、これら複数の記憶媒体１４に対するデータの配置構造に応じてそのサイズを決定する。
【００６１】
図９は本発明の実施の形態に係わるデータ記憶装置での第７の実施例による演算処理内容を示すフローチャートである。この第７の実施例は先読み処理を行うにあたり、先読みを行うデータのサイズモードを決定するようにしたものである。図９では、先読みサイズとして、予め設定された先読みサイズとする場合、予め設定された先読み判定サイズのｎ倍のサイズ分とする場合、ＲＡＩＤ機能に従ったサイズをする場合の３種類から選択する場合を示している。
【００６２】
まず、先読みサイズの決定モードが予め設定された先読みサイズのｎ倍のサイズ分であるか否かを判定する（Ｓ２１）。先読みサイズの決定モードが予め定めた先読みサイズのｎ倍のサイズ分である場合には、設定された先読みサイズのｎ倍に先読みサイズを決定し（Ｓ２２）、決定された先読みサイズ分を記憶装置１２からキャッシュメモリ２０へデータを読み込む（Ｓ２３）。
【００６３】
ステップＳ２１の判定で、先読みサイズの決定モードがｎ倍のサイズ分でない場合には、ＲＡＩＤモードか否かを判定する（Ｓ２４）。先読みサイズの決定モードがＲＡＩＤモードである場合には、ＲＡＩＤの構造に最適な転送サイズに先読みサイズを決定し（Ｓ２５）、決定された先読みサイズ分を記憶装置１２からキャッシュメモリ２０へデータを読み込む（Ｓ２３）。ステップＳ２４の判定で、先読みサイズの決定モードがＲＡＩＤモードでない場合には、予め設定された先読み判定サイズとし（Ｓ２６）、決定された先読みサイズ分を記憶装置１２からキャッシュメモリ２０へデータを読み込む（Ｓ２３）。
【００６４】
ここで、先読みのサイズを先読み判定サイズのｎ倍に設定する場合、ｎの値は、そのシステムに最適な値として別途制御装置１３へ設定された値である。ｎは必ずしも制御装置１３に対し固定である必要はなく、ボリューム単位で変化させたり、用途や時間帯などで変化させてもよい。
【００６５】
先読みのサイズを先読み判定サイズのｎ倍に設定する場合は、ホスト計算機１１からのリード要求のｎ倍のサイズ分の先読みを行うため、ホスト計算機１１からのリード要求がシーケンシャルアクセス性のものである場合、記憶装置１２へのアクセス回数が最大１／ｎに削減することができる。従って、トータルとしてアクセスタイムを改善することができる。
【００６６】
次に、データ記憶装置がＲＡＩＤの機能により実現されたディスクアレイ装置である場合、ユーザのデータは１台の記憶媒体１４へ連続的に格納される以外に、複数の記憶媒体１４に跨ってストライピングして配置するようなこともある。その場合、ホスト計算機１１から見える領域が連続的であっても、必ずしも記憶装置１２の記憶媒体１４として１つの連続領域に格納されるとは限らない。従って、先読みを行うにしても、どれだけのサイズのデータを先読みするのが最適であるかは、データの配置（ストライピング）と大きく関連する。
【００６７】
一般的には、複数の記憶媒体１４が並列動作するようストライピングの単位サイズ分先読みするなどが考えられる。ＲＡＩＤの機能による場合は、その先読みサイズをこのＲＡＩＤのストライピング構造を考慮した値に決定し、最良の効率を追求する。
【００６８】
第７の実施例によれば、先読み分のデータは、予め定められた先読み判定サイズのｎ倍のサイズ分、あるいはＲＡＩＤの機能による記憶装置１２の場合には複数の記憶媒体１４に対するデータの配置構造に応じてそのサイズを決定するので、使用する記憶装置１２に適合して先読み分のデータを予め決定できる。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態に係わるデータ記憶装置のブロック構成図。
【図２】本発明の実施の形態に係わるデータ記憶装置の基本動作の説明図。
【図３】本発明の実施の形態に係わるデータ記憶装置での第１の実施例による演算処理内容を示すフローチャート。
【図４】本発明の実施の形態に係わるデータ記憶装置での第２の実施例による演算処理内容を示すフローチャート。
【図５】本発明の実施の形態に係わるデータ記憶装置での第３の実施例による演算処理内容を示すフローチャート。
【図６】本発明の実施の形態に係わるデータ記憶装置での第４の実施例による演算処理内容を示すフローチャート。
【図７】本発明の実施の形態に係わるデータ記憶装置での第５の実施例による演算処理内容を示すフローチャート。
【図８】本発明の実施の形態に係わるデータ記憶装置での第６の実施例による演算処理内容を示すフローチャート。
【図９】本発明の実施の形態に係わるデータ記憶装置での第７の実施例による演算処理内容を示すフローチャート。
【図１０】従来のデータ先読み機能の説明図。
【符号の説明】
【００７０】
１１…ホスト計算機、１２…記憶装置、１３…制御装置、１４…記憶媒体、１５…インタフェース回路、１６…不揮発メモリ、１７…ローカルメモリ、１８…マイクロプロセッサ、１９…チップセット、２０…キャッシュメモリ
【図１】
2007241927.tif 000003
【図２】
2007241927.tif 000004
【図３】
2007241927.tif 000005
【図４】
2007241927.tif 000006
【図５】
2007241927.tif 000007
【図６】
2007241927.tif 000008
【図７】
2007241927.tif 000009
【図８】
2007241927.tif 000010
【図９】
2007241927.tif 000011
【図１０】
2007241927.tif 000012