(57)【要約】【課題】シーケンシャルアクセスデータでない場合であってもプリフェッチをおこない、かつプリフェッチの効率性を追求して記憶装置の読み出し性能を向上させる。【解決手段】本発明は、コンピュータ装置と磁気ディスク装置とがキャッシュメモリを介して接続されている磁気ディスクシステムにおいて、コンピュータ装置からの読み出し要求に対する読み出しデータがランダムアクセスデータではない（例えばランダムアクセスデータである）が、磁気ディスク装置の磁気ディスクにおけるデータ配置が局所性を有すると判定される場合に、一定サイズで一定量のプリフェッチをおこなうことによって、ランダムアクセスであってもプリフェッチをおこなうことが可能となり、磁気ディスク装置からのデータの読み出し性能が向上する。【選択図】        図１
2008225915.tif 000002
【特許請求の範囲】
【請求項１】
所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と
前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、
前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とするプリフェッチ制御装置。
【請求項２】
前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定部をさらに有し、
前記プリフェッチ部は、前記プリフェッチ量決定部によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうことを特徴とする請求項１に記載のプリフェッチ制御装置。
【請求項３】
前記プリフェッチ量決定部は、前記キャッシュメモリの空き容量が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリの空き容量が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする請求項２に記載のプリフェッチ制御装置。
【請求項４】
前記プリフェッチ量決定部は、前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする請求項２または３に記載のプリフェッチ制御装置。
【請求項５】
前記記憶装置は、複数の記憶装置を含み、
前記局所性判定部は、前記複数の記憶装置ごとに前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定することを特徴とする請求項１〜４のいずれか一つに記載のプリフェッチ制御装置。
【請求項６】
前記プリフェッチ量決定部は、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする請求項５に記載のプリフェッチ制御装置。
【請求項７】
所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置を有する記憶装置システムであって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と、
前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、
前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とする記憶装置システム。
【請求項８】
所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御方法であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定工程と、
前記シーケンシャル判定工程によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定工程と、
前記局所性判定工程によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ工程と
を含んだことを特徴とするプリフェッチ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法に関し、特に、シーケンシャルアクセスデータでない場合であってもプリフェッチをおこない、かつプリフェッチの効率性を追求して記憶装置の読み出し性能を向上させるプリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法に関する。
【背景技術】
【０００２】
近年のコンピュータの処理能力の向上に伴って、コンピュータが利用するデータは肥大化の一途をたどっており、記憶装置との間で膨大なデータを効率的に読み書きする技術が検討されている。
【０００３】
例えば、複数の記憶装置を制御装置で集中管理し、データ読み書きの高速化、データ記憶領域の大容量化、データ読み書きおよびデータ記憶の高信頼化を実現するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼ばれる記憶システムが知られている。
【０００４】
かかる記憶システムの制御装置は、データを効率的に読み書きするため、コンピュータからの書き込みデータおよびコンピュータへの読み出しデータを一時的に記憶するキャッシュメモリを有していることが一般的である。キャッシュメモリは、記憶装置と比較して、高速アクセス可能である。
【０００５】
キャッシュメモリに使用頻度の高いデータを配置しておき、コンピュータからの記憶装置への書き込みデータおよび記憶装置からコンピュータへの読み出しデータがキャッシュメモリに存在する場合に、記憶装置へアクセスせずキャッシュメモリにアクセスして、当該データ処理をおこなう。このようにすることによって、記憶装置との間でデータを効率的かつ迅速に読み書きすることが可能となる。
【０００６】
かかるキャッシュメモリにおいては、コンピュータへのデータの読み出しを効率よく、高速におこなう制御が課題となってくる。読み出しデータが音声データや動画データなどのシーケンシャルアクセスデータである場合に、シーケンシャルアクセスデータを記憶装置から先読み（プリフェッチ）してキャッシュメモリに一時記憶しておく制御をおこなうことによって、記憶装置の読み出し性能を高めることが可能となる。
【０００７】
この例として、例えば特許文献１には、ディスクキャッシュシステムのメモリ管理方式において、記憶装置からの読み出しデータがシーケンシャルアクセスデータである場合にプリフェッチをおこない、プリフェッチ量を増加させるメモリ管理方式が開示されている。このようにして、キャッシュメモリのヒット率（所望の読み出しデータがキャッシュメモリに存在する確率）をたかめることができる。
【０００８】
また、特許文献２には、階層構造ファイルシステムを有するディスク装置と、ファイルを管理するファイル管理システムと、キャッシュメモリと、読み込もうとするファイルがキャッシュメモリ内に存在するか確認するためのキャッシュヒット確認手段と、プリフェッチするファイルを選出するための学習情報管理テーブルとを備え、キャッシングを行なう際、ユーザのファイル読み込み方法とその方法の利用回数を学習情報管理テーブルに登録する。この情報を利用し、ユーザのファイル運用に合わせてプリフェッチ量を動的に変化させるディスクキャッシュ制御システムおよび制御方法が開示されている。
【０００９】
この従来技術によれば、読み出しデータの物理的連続性よりも、利用率の高い同一ファイルであるか否かを重視して読み出しデータのプリフェッチをおこない、キャッシュメモリのヒット率をたかめることができる。
【００１０】
【特許文献１】特開平２−１８６４５号公報
【特許文献２】特開平５−１８９２８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特許文献１に代表される従来技術では、記憶装置からの読み出しデータがシーケンシャルアクセスデータである場合にプリフェッチをおこなうことを前提としており、読み出しデータがランダムアクセスデータである場合には、予測不可能であるため、プリフェッチ自体をおこなわなかった。
【００１２】
また、上記特許文献２に代表される従来技術では、利用率の高い同一ファイルである場合には、ランダムアクセスデータであってもプリフェッチをおこなう場合がある。しかし、利用率の高い同一ファイルであることのみをプリフェッチをおこなうか否かの基準としているために、同一ファイルのデータがディスク装置のディスク上で物理的に分散して配置されている場合には、プリフェッチの効率性が低くなり、却って記憶装置の読み出し性能を低下させる要因となっていた。
【００１３】
本発明は、上記問題点（課題）を解消するためになされたものであって、シーケンシャルアクセスデータでない場合であってもプリフェッチをおこない、かつプリフェッチの効率性を追求して記憶装置の読み出し性能を向上させることができるプリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した問題を解決し、目的を達成するため、本発明は、所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置であって、前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部とを有することを特徴とする。
【００１５】
また、本発明は、上記発明において、前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定部をさらに有し、前記プリフェッチ部は、前記プリフェッチ量決定部によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうことを特徴とする。
【００１６】
また、本発明は、上記発明において、前記プリフェッチ量決定部は、前記キャッシュメモリの空き容量が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリの空き容量が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする。
【００１７】
また、本発明は、上記発明において、前記プリフェッチ量決定部は、前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする。
【００１８】
また、本発明は、上記発明において、前記記憶装置は、複数の記憶装置を含み、前記局所性判定部は、前記複数の記憶装置ごとに前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定することを特徴とする。
【００１９】
また、本発明は、上記発明において、前記プリフェッチ量決定部は、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする。
【００２０】
また、本発明は、所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置を有する記憶装置システムであって、前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と、前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部とを有することを特徴とする。
【００２１】
また、本発明は、所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御方法であって、前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定工程と、前記シーケンシャル判定工程によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定工程と、前記局所性判定工程によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ工程とを含んだことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、記憶装置から前記コンピュータ装置へと読み出される読み出しデータがランダムアクセスデータである場合であって、該読み出しデータが所定の記憶領域においてデータ配置の局所性を有すると判定されたときに、読み出しデータのプリフェッチをおこなうので、いかなるアクセスデータであってもプリフェッチをおこなって、記憶装置へのアクセス効率を高めることができるという効果を奏する。
【００２３】
また、本発明によれば、読み出しデータがシーケンシャルアクセスデータであると判定されなかった場合に所定条件に基づいて決定された該読み出しデータのプリフェッチ量に基づいて該読み出しデータのプリフェッチをおこなうので、記憶装置へのアクセス効率を高めつつプリフェッチによるキャッシュメモリの枯渇を防止することができるという効果を奏する。
【００２４】
また、本発明によれば、読み出しデータがシーケンシャルアクセスデータであると判定されなかった場合に所定条件に基づいて決定された該読み出しデータのプリフェッチ量に基づいて該読み出しデータのプリフェッチをおこなう際に、キャッシュメモリの空き容量が所定閾値を下回った場合にプリフェッチ量を減少させ、キャッシュメモリの空き容量が所定閾値を下回っていない場合にプリフェッチ量を増加させるので、キャッシュメモリの空き容量に応じてプリフェッチ量を動的に変更し、効率的なプリフェッチをおこなうことができるという効果を奏する。
【００２５】
また、本発明によれば、読み出しデータがシーケンシャルアクセスデータであると判定されなかった場合に所定条件に基づいて決定された該読み出しデータのプリフェッチ量に基づいて該読み出しデータのプリフェッチをおこなう際に、キャッシュメモリのヒット率が所定閾値を下回った場合にプリフェッチ量を減少させ、キャッシュメモリのヒット率が所定閾値を下回っていない場合にプリフェッチ量を増加させるので、キャッシュメモリのヒット率に応じてプリフェッチ量を動的に変更し、効率的なプリフェッチをおこなうことができるとともに、キャッシュメモリのヒット率を向上させるという効果を奏する。
【００２６】
また、本発明によれば、複数の記憶装置を含む場合において、読み出しデータがシーケンシャルアクセスデータであると判定されなかった場合に所定条件に基づいて決定された該読み出しデータのプリフェッチ量に基づいて該読み出しデータのプリフェッチをおこなう際に、複数の記憶装置ごとのキャッシュメモリのヒット率が所定閾値を下回った場合に該複数の記憶装置ごとのプリフェッチ量を減少させ、キャッシュメモリのヒット率が所定閾値を下回っていない場合に該複数の記憶装置ごとのプリフェッチ量を増加させるので、複数の記憶装置ごとのキャッシュメモリのヒット率に応じてプリフェッチ量を動的に変更し、複数の記憶装置ごとに効率的なプリフェッチをおこなうことができるとともに、複数の記憶装置ごとのキャッシュメモリのヒット率を向上させるという効果を奏する。
【００２７】
また、本発明によれば、複数の記憶装置を含む場合において、読み出しデータがシーケンシャルアクセスデータであると判定されなかった場合に所定条件に基づいて決定された該読み出しデータのプリフェッチ量に基づいて該読み出しデータのプリフェッチをおこなう際に、キャッシュメモリの空き容量またはキャッシュメモリのヒット率に応じて、プリフェッチを停止したり再開したりするという制御を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２８】
以下に添付図面を参照し、本発明のプリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法にかかる実施例を詳細に説明する。なお、以下の実施例では本発明を、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼ばれ、複数の磁気ディスク装置を組み合わせることにより、高速・大容量・高信頼性を実現するディスクシステムに適用した場合を示すこととする。
【００２９】
この場合、プリフェッチ制御装置は、複数の磁気ディスク装置を集中的に制御し、該複数の磁気ディスク装置とコンピュータ装置とを接続するＲＡＩＤ制御装置（ＲＡＩＤコントローラ）の制御回路（例えばＬＳＩ（Large Scale Integration））である。
【００３０】
なお、以下に示す実施例では、記憶媒体として磁気ディスク、記憶装置として磁気ディスク装置に本発明を適用した場合を示すこととするが、本発明はこれに限らず、他の記憶媒体およびディスク装置、例えば光ディスクおよび光ディスク装置、もしくは光磁気ディスクまたは光磁気ディスク装置などにも適用可能である。
【実施例】
【００３１】
先ず、実施例の概要および特徴を説明する。図１は、実施例の概要および特徴を説明するための図である。同図に示すように、コンピュータ装置と磁気ディスク装置とがキャッシュメモリを介して接続されている磁気ディスクシステムを想定する。この状態で、（１）コンピュータ装置から磁気ディスク装置へ読み出し要求が出される。
【００３２】
（２）そして、この読み出し要求に対する読み出しデータがランダムアクセスデータであるが、磁気ディスク装置の磁気ディスクにおけるデータ配置が局所性を有すると判定される場合に、一定サイズで一定量のプリフェッチをおこなう。ここで、ランダムアクセスとは、読み書きデータが連続性を有さないファイルアクセスをいい、連続性を有さない読み書きデータをランダムアクセスデータという。また、局所性とは、磁気ディスクにおいて、読み出しデータのデータ配置が予め定められた所定範囲内（例えば一定のアドレス範囲など）にあることをいう。
【００３３】
なお、プリフェッチとは、磁気ディスク装置からキャッシュメモリへのデータの先読みをいう。データの先読みは、通常は、読み出しデータがシーケンシャルアクセスデータである場合に有効である。しかし、ランダムアクセスデータは、シーケンシャルはないが、特定の範囲でアクセスされることが多いため、完全なランダムとなることが少ないという事実に基づく。
【００３４】
（３）そこで、本実施例では、ホストコンピュータからの読み出し要求に対する読み出しデータがランダムアクセスデータではない（例えばランダムアクセスデータである）が、磁気ディスク装置の磁気ディスクにおけるデータ配置が局所性を有すると判定される場合にプリフェッチをおこなうことによって、ランダムアクセスであってもプリフェッチをおこなうことが可能となり、磁気ディスク装置からのデータの読み出し性能が向上する。
【００３５】
次に、実施例にかかるＲＡＩＤ制御装置の構成について説明する。図２は、実施例にかかるＲＡＩＤ制御装置の構成を示す機能ブロック図である。同図に示すように、ＲＡＩＤ制御装置１００は、磁気ディスク装置２００（磁気ディスク装置２００ａ1、・・・、２００ａn）と、図示しないホストコンピュータと接続され、磁気ディスク装置２００とホストコンピュータとの間で読み書きデータを中継する。なお磁気ディスク装置２００ａi（ｉ＝１、・・・、ｎ）をｌｕｎ（logical unit number）という。ここでは、ｌｕｎは、物理的な磁気ディスク装置単位とするが、論理的な磁気ディスク装置単位であってもよい。
【００３６】
ＲＡＩＤ制御装置１００は、制御部１０１と、キャッシュメモリ部１０２と、記憶部１０３と、ＲＡＩＤ制御装置１００とのデータ送受のインターフェースである磁気ディスク装置インターフェース部１０４と、図示しないホストコンピュータとのデータ送受のインターフェースであるホストインターフェース部１０５とを有する。
【００３７】
制御部１０１は、ＲＡＩＤ制御装置１００全体の制御をつかさどる制御部であり、磁気ディスク装置２００からの読み出しデータをキャッシュメモリ部１０２にキャッシュするとともに、ホストコンピュータから磁気ディスク装置２００への書き込みデータをキャッシュメモリ部１０２にキャッシュする。
【００３８】
制御部１０１は、実施例に関係する構成として、プリフェッチ制御部１０１ａと、キャッシュメモリ状態監視部１０１ｂとをさらに有する。プリフェッチ制御部１０１ａは、磁気ディスク装置２００からの読み出しデータのランダム性および局所性を判定し、ランダム性および局所性があると判定される場合は、該読み出しデータをプリフェッチしてキャッシュメモリ部１０２にキャッシュする。
【００３９】
さらに、プリフェッチ制御部１０１ａは、読み出しデータがランダム性および局所性を有する場合に、記憶部１０３に記憶される各種条件（キャッシュメモリ残容量、キャッシュヒット率、ｌｕｎ単位キャッシュヒット率など）に応じてプリフェッチ量を制御する。実施例では、制御されるプリフェッチ量は、プリフェッチされるデータの数を指すものとするが、これに限らず、１回にプリフェッチされるデータ長であってもよい。
【００４０】
キャッシュメモリ状態監視部１０１ｂは、キャッシュメモリ部１０２の残容量、キャッシュメモリのヒット率を監視する。また、ｌｕｎ単位にキャッシュメモリのヒット率を常時監視する。これら監視結果を記憶部１０３の所定領域に記憶する。
【００４１】
キャッシュメモリ部１０２は、高速で読み書き可能なＲＡＭ（Random Access Memory）であり、図示しないホストコンピュータから磁気ディスク装置２００への書き込みデータおよび磁気ディスク装置２００からの読み出しデータを一時記憶（キャッシュ）する。なお、キャッシュメモリ部１０２に一時記憶されるデータは、ＬＲＵ（Least Recently Used）のアルゴリズムにより古いデータをパージする（追い出す）。
【００４２】
記憶部１０３は、揮発性または不揮発性の記憶手段であって、キャッシュメモリ状態１０３ａと、ｌｕｎ単位キャッシュヒット率１０３ｂと、局所性監視範囲１０３ｃとを記憶する。キャッシュメモリ状態１０３ａは、キャッシュメモリ部１０２の残容量およびキャッシュヒット率の最新値とその閾値とを、例えばテーブル形式で記憶する。また、ｌｕｎ単位キャッシュヒット率１０３ｂは、キャッシュメモリ部１０２におけるｌｕｎ単位のキャッシュヒット率を例えばテーブル形式で記憶する。
【００４３】
キャッシュメモリ状態１０３ａのテーブルの例は、例えば図３に示すように、“キャッシュメモリ状態項目”、“最新値”、“閾値”のカラムを有する。“キャッシュメモリ状態項目”には、“キャッシュメモリ残容量”と、“キャッシュヒット率”とがある。“キャッシュメモリ残容量”は、キャッシュメモリの全体容量に対する残りの空き容量の比率で表される。“キャッシュヒット率”は、図示しないホストコンピュータから磁気ディスク装置２００へのすべての入出力要求に対して、対象とする入出力データがキャッシュメモリ部１０２に存在した確率で表される。“最新値”は、キャッシュメモリ状態監視部１０１ｂによる最新の監視結果であり、監視ごとに常時更新される“キャッシュメモリ残容量”および“キャッシュヒット率”である。また、“閾値”は、“キャッシュメモリ残容量”および“キャッシュヒット率”の多寡または高低を判定するための基準値であり、外部から任意に設定可能である。
【００４４】
ｌｕｎ単位キャッシュヒット率１０３ｂのテーブルの例は、例えば図４に示すように、“ｌｕｎ番号”、“キャッシュヒット率最新値”、“閾値”のカラムを有する。“ｌｕｎ番号”は、磁気ディスク装置２００の装置番号である。“キャッシュヒット率最新値”は、図示しないホストコンピュータから磁気ディスク装置２００へのすべての入出力要求に対して、対象とする入出力データがキャッシュメモリ部１０２に存在した確率をｌｕｎ単位で表す。この確率は、キャッシュメモリ状態監視部１０１ｂによる最新の監視結果であり、監視ごとに常時更新される。また、“閾値”は、“キャッシュヒット率最新値”の高低を判定するための基準値であり、外部から任意に設定可能である。
【００４５】
局所性監視範囲１０３ｃのテーブルの例は、例えば図５に示すように、“ｌｕｎ番号”、“最下位アドレス”、“最上位アドレス”のカラムを有する。“ｌｕｎ番号”は、磁気ディスク装置２００の装置番号である。“最下位アドレス”は、磁気ディスク装置２００の磁気ディスクにおいて局所性があると判定される局所性監視範囲の最も小さいアドレスである。“最上位アドレス”は、磁気ディスク装置２００の磁気ディスクにおいて局所性があると判定される局所性監視範囲の最も大きいアドレスである。すなわち、“ｌｕｎ単位”ごとの“最下位アドレス”および“最上位アドレス”で決まるアドレス範囲から連続して読み出しデータが読み出される場合に、これらの読み出しデータおよびその読み出し要求（以下、ホストＩＯ（ホストInput Output）と呼ぶ）が当該ｌｕｎにおいて局所性を有すると判定される。“最下位アドレス”、“最上位アドレス”は、ｌｕｎ単位に外部から任意に設定可能である。
【００４６】
次に、局所性判定の概要について説明する。図６−１は局所性判定の概要を示す図（その１）であり、図６−２は局所性判定の概要を示す図（その２）である。なお、図６−１および図６−２では、磁気ディスク装置２００からのデータ読み出しの単位を、512byteのデータに8byteのチェックコードが付加されたＬＢＡ（Logical Block Addressing）とし、これを１回のプリフェッチサイズとしている。
【００４７】
先ず、図６−１を参照すると、局所性監視範囲１０３ｃにｌｕｎ単位で規定される（局所性）監視範囲において、時間的に連続する３つのランダムアクセスのホストＩＯに基づき、それぞれ対応するＬＢＡ０〜ＬＢＡ２が検出されたとする。よって、プリフェッチ制御部１０１ａは、ランダムアクセスの局所性があると判定する。
【００４８】
すると、図６−２に示すように、プリフェッチ制御部１０１ａは、ＬＢＡ３〜ＬＢＡ１２の１０個のＬＢＡをプリフェッチする。その後、例えばＬＢＡ１１に対してホストＩＯが発行されると、キャッシュメモリ部１０２上にあるＬＢＡ１１が読み出されることとなる。
【００４９】
次に、プリフェッチ制御処理について説明する。図７は、プリフェッチ制御処理手順を示すフローチャートである。なお、プリフェッチ制御処理の前提として、後述の「最大プリフェッチ量」、「キャッシュメモリ残容量の閾値」、「キャッシュヒット率の閾値」、「ｌｕｎ単位のキャッシュヒット率の閾値」、「局所性監視範囲」が予め設定されているとする。同図に示すように、先ず、プリフェッチ制御部１０１ａは、ホストコンピュータからホストＩＯを受領する（ステップＳ１０１）。続いて、プリフェッチ制御部１０１ａは、ステップＳ１０１で受領したホストＩＯに基づいて磁気ディスク装置２００から読み出したＬＢＡのシーケンシャル性を解析する（ステップＳ１０２）。
【００５０】
続いて、プリフェッチ制御部１０１ａは、ステップＳ１０２で解析された磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有するか否かを判定する（ステップＳ１０３）。すなわち、先行するホストＩＯのＬＢＡと比較し、連続性がなければランダムアクセスと判定する。磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有すると判定される場合（ステップＳ１０３肯定）にステップＳ１０４へ移り、磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有すると判定されない場合（ステップＳ１０３否定）に、本プリフェッチ制御処理は終了する。
【００５１】
ステップＳ１０４では、プリフェッチ制御部１０１ａは、ステップＳ１０２で解析された磁気ディスク装置２００から読み出したＬＢＡは予め定められた「局所性監視範囲」内であるか否かを、ｌｕｎ単位に判定する。磁気ディスク装置２００から読み出すＬＢＡは予め定められた「局所性監視範囲」内であると判定される場合（ステップＳ１０４肯定）にステップＳ１０５へ移り、磁気ディスク装置２００から読み出すＬＢＡは予め定められた「局所性監視範囲」内であると判定されない場合（ステップＳ１０４否定）に、本プリフェッチ制御処理は終了する。
【００５２】
ステップＳ１０５では、プリフェッチ制御部１０１ａは、キャッシュメモリ状態１０３ａのキャッシュメモリ残容量が閾値を超えたか否かを判定する。キャッシュメモリ残容量が閾値を超えたと判定される場合（ステップＳ１０５肯定）にステップＳ１０６へ移り、キャッシュメモリ残容量が閾値を超えたと判定されない場合（ステップＳ１０５否定）にステップＳ１１３へ移る。
【００５３】
ステップＳ１０６では、プリフェッチ制御部１０１ａは、キャッシュメモリ状態１０３ａのキャッシュヒット率が閾値を超えたか否かを判定する。キャッシュヒット率が閾値を超えたと判定される場合（ステップＳ１０６肯定）にステップＳ１０７へ移り、キャッシュヒット率が閾値を超えたと判定されない場合（ステップＳ１０６否定）にステップＳ１１３へ移る。
【００５４】
ステップＳ１０７では、プリフェッチ制御部１０１ａは、ｌｕｎ単位キャッシュヒット率１０３ｂのｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたか否かを判定する。ｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたと判定される場合（ステップＳ１０７肯定）にステップＳ１０８へ移り、ｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたと判定されない場合（ステップＳ１０７否定）にステップＳ１１３へ移る。
【００５５】
ステップＳ１０８では、プリフェッチ制御部１０１ａは、１つのＬＢＡをプリフェッチする。このとき、プリフェッチ対象のＬＢＡが「局所性監視範囲」内に存在するか否かをチェックしておく。プリフェッチ対象のＬＢＡが「局所性監視範囲」内に存在しない場合は、プリフェッチはおこなわない。続いて、所定の記憶領域に記憶されるカウンタ変数である「プリフェッチ量」に“１”を加算する（ステップＳ１０９）。
【００５６】
続いて、カウンタ変数である「プリフェッチ量」が、所定の記憶領域に記憶されるカウンタ変数である「最大プリフェッチ量」を下回るか否かを判定する（ステップＳ１１０）。ここで、「最大プリフェッチ量」とは、「プリフェッチ量」がステップＳ１０９で１ずつ加算されていくが、この加算の限界を示す。「プリフェッチ量」が「最大プリフェッチ量」を下回ると判定される場合（ステップＳ１１０肯定）にステップＳ１０５へ移り、「プリフェッチ量」が「最大プリフェッチ量」を下回ると判定されない場合（ステップＳ１１０否定）にステップＳ１１１へ移る。
【００５７】
ステップＳ１１１では、「最大プリフェッチ量」が例えば“８”を下回るか否かを判定する。なお、この“８”という数値に限定されるものではなく、記憶装置システムの性能規定する数値として適宜設定変更可能である。「最大プリフェッチ量」が例えば“８”を下回ると判定される場合（ステップＳ１１１肯定）にステップＳ１１２へ移り、「最大プリフェッチ量」が例えば“８”を下回ると判定されない場合（ステップＳ１１１否定）に、本プリフェッチ制御処理は終了する。そして、ステップＳ１１２で、「最大プリフェッチ量」に“１”を加算する。一方、ステップＳ１１３では、「最大プリフェッチ量」から“１”を減算する。
【００５８】
以上の実施例によれば、ランダムアクセスデータに対してもプリフェッチをおこなうこが可能となるとともに、キャッシュメモリの残容量に応じて該プリフェッチのプリフェッチサイズおよびプリフェッチ量を動的に変更し、キャッシュメモリの枯渇を防止し、システム全体の性能の低下を回避することができる。キャッシュメモリの残容量に応じたプリフェッチサイズおよびプリフェッチ量の動的な変更とは、例えばキャッシュメモリの残容量が閾値以下となった場合に、プリフェッチサイズまたはプリフェッチ量を小さくしたり、キャッシュメモリの残容量が閾値を超えている場合に、プリフェッチサイズまたはプリフェッチ量を大きくしたりすることをいう。特に、キャッシュメモリの残容量が極端に少なくなった場合には、プリフェッチを停止し、キャッシュメモリの残容量がある程度まで回復した場合にプリフェッチを再開するという制御も含む。
【００５９】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【００６０】
上記実施例では、プリフェッチ制御装置は、ＲＡＩＤコントローラの制御回路とした。しかし、これに限らず、プリフェッチ制御装置は、ＲＡＩＤコントローラ自体であってもよい。
【００６１】
上記実施例では、記憶システムをＲＡＩＤとして説明したが、ＲＡＩＤに限られるものではなく、単体の磁気ディスク装置を使用する場合であってもよい。また、磁気ディスク装置は、コンピュータ装置に外部接続されるものであっても、コンピュータ装置に内蔵されるものであってもいずれであってもよい。磁気ディスク装置がコンピュータ装置に内蔵されるものである場合は、プリフェッチ制御装置も当然コンピュータ装置に内蔵される。あるいは、プリフェッチ制御装置がコンピュータ装置の制御装置で実現され、キャッシュメモリは、コンピュータ装置の内部記憶メモリであってもよい。
【００６２】
上記実施例では、局所性監視範囲は、記憶装置システムの運用前に、ホストＩＯが指定する読み出しデータの磁気ディスクにおけるアドレスの最上位と最下位との限度が局所性監視範囲１０３ｃに指定されることによって定められるとした。しかしこれに限らず、一体時間内にホストコンピュータから発行されるホストＩＯに対応する磁気ディスクのアドレスの最上位と最下位とを限度として定められるようにしてもよい。また、局所性監視範囲は、ホストコンピュータから通知されることとしてもよい。
【００６３】
上記実施例によれば、継続してランダムアクセスのホストＩＯが発行された場合に、プリフェッチが継続されるため、キャッシュメモリのヒット率が向上する場合がある。このキャッシュメモリのヒット率を一定時間内で監視することにより、局所性が維持されているか否かを判定することとしてもよい。
【００６４】
上記実施例によれば、連続するホストＩＯが局所性を有すると判定された場合のプリフェッチ対象ＬＢＡが「局所性監視範囲」内に存在しない場合は、プリフェッチをおこなわず、予め定められたプリフェッチ量のうち「局所性監視範囲」内に存在するＬＢＡのみをプリフェッチするとした。しかし、これに限らず、連続するホストＩＯが局所性を有すると判定された場合のプリフェッチ対象ＬＢＡが「局所性監視範囲」内に存在するか否かにかかわらず、予め定められたプリフェッチ量に至るまで「局所性監視範囲」内に存在するＬＢＡをプリフェッチすることとしてもよい。
【００６５】
また、上記実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６６】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００６７】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central Processing Unit）（またはＭＰＵ（Micro Processing Unit）、ＭＣＵ（Micro Controller Unit）などのマイクロ・コンピュータ）および当該ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００６８】
（付記１）所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と
前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、
前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とするプリフェッチ制御装置。
【００６９】
（付記２）前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定部をさらに有し、
前記プリフェッチ部は、前記プリフェッチ量決定部によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうことを特徴とする付記１に記載のプリフェッチ制御装置。
【００７０】
（付記３）前記プリフェッチ量決定部は、前記キャッシュメモリの空き容量が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリの空き容量が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記２に記載のプリフェッチ制御装置。
【００７１】
（付記４）前記プリフェッチ量決定部は、前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記２または３に記載のプリフェッチ制御装置。
【００７２】
（付記５）前記記憶装置は、複数の記憶装置を含み、
前記局所性判定部は、前記複数の記憶装置ごとに前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定することを特徴とする付記１〜４のいずれか一つに記載のプリフェッチ制御装置。
【００７３】
（付記６）前記プリフェッチ量決定部は、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記５に記載のプリフェッチ制御装置。
【００７４】
（付記７）前記プリフェッチ部は、前記プリフェッチ量決定部によって決定されたプリフェッチ量が０となった場合にはプリフェッチを停止し、前記プリフェッチ量決定部によって決定されたプリフェッチ量が０でなくなった場合にはプリフェッチを開始することを特徴とする付記２〜６のいずれか一つに記載のプリフェッチ制御装置。
【００７５】
（付記８）所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置を有する記憶装置システムであって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と、
前記シーケンシャル判定部によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定部と、
前記局所性判定部によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とする記憶装置システム。
【００７６】
（付記９）所定の記憶領域を含んだ記憶媒体を有する記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御方法であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定工程と、
前記シーケンシャル判定工程によって前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータでないと判定された場合に、該読み出しデータが前記所定の記憶領域においてデータ配置の局所性を有するか否かを判定する局所性判定工程と、
前記局所性判定工程によって前記読み出しデータがデータ配置の局所性を有すると判定された場合に前記読み出しデータのプリフェッチをおこなうプリフェッチ工程と
を含んだことを特徴とするプリフェッチ制御方法。
【産業上の利用可能性】
【００７７】
本発明は、シーケンシャルアクセスデータでない場合であってもプリフェッチをおこない、かつプリフェッチの効率性を追求して記憶装置の読み出し性能を向上させたい場合に有用である。
【図面の簡単な説明】
【００７８】
【図１】本発明の概要および特徴を説明するための図である。
【図２】実施例にかかるＲＡＩＤ制御装置の構成を示す機能ブロック図である。
【図３】キャッシュメモリ状態テーブルの例を示す図である。
【図４】ｌｕｎ単位キャッシュヒット率テーブルの例を示す図である。
【図５】局所性監視範囲テーブルの例を示す図である。
【図６−１】局所性判定の概要を示す図（その１）である。
【図６−２】局所性判定の概要を示す図（その２）である。
【図７】プリフェッチ制御処理手順を示すフローチャートである。
【符号の説明】
【００７９】
１００    ＲＡＩＤ制御装置
１０１    制御部
１０１ａ    プリフェッチ制御部
１０１ｂ    キャッシュメモリ状態監視部
１０２    キャッシュメモリ部
１０３    記憶部
１０３ａ    キャッシュメモリ状態
１０３ｂ    ｌｕｎ単位キャッシュヒット率
１０３ｃ    局所性監視範囲
１０４    磁気ディスク装置インターフェース部
１０５    ホストインターフェース部
２００、２００ａ1、・・・、２００ａn    磁気ディスク装置
【図１】
2008225915.tif 000003
【図２】
2008225915.tif 000004
【図３】
2008225915.tif 000005
【図４】
2008225915.tif 000006
【図５】
2008225915.tif 000007
【図６−１】
2008225915.tif 000008
【図６−２】
2008225915.tif 000009
【図７】
2008225915.tif 000010