(57)【要約】【課題】記憶装置とコンピュータ装置との間で送受されるデータをキャッシュするキャッシュメモリが、該記憶装置からの読み出しデータのプリフェッチによって枯渇してしまうことを回避する。【解決手段】本発明は、コンピュータ装置と磁気ディスク装置とがキャッシュメモリを介して接続されている磁気ディスクシステムにおいて、コンピュータ装置からの読み出し要求に対する読み出しデータがシーケンシャル性を有すると判定される場合、一定サイズで一定量のプリフェッチをおこなう。この際、キャッシュメモリの残容量に応じてプリフェッチサイズおよびプリフェッチ量を動的に変更することで、キャッシュメモリの枯渇を防止し、システム全体の性能の低下を回避する。【選択図】        図１
2008225914.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）のアルゴリズムにより古いデータをパージする（追い出す）。
【００４０】
記憶部１０３は、揮発性または不揮発性の記憶手段であって、キャッシュメモリ状態１０３ａと、ｌｕｎ単位キャッシュヒット率１０３ｂとを記憶する。キャッシュメモリ状態１０３ａは、キャッシュメモリ部１０２の残容量およびキャッシュヒット率の最新値とその閾値とを、例えばテーブル形式で記憶する。また、ｌｕｎ単位キャッシュヒット率１０３ｂは、キャッシュメモリ部１０２におけるｌｕｎ単位のキャッシュヒット率を例えばテーブル形式で記憶する。
【００４１】
キャッシュメモリ状態１０３ａのテーブルの例は、例えば図３に示すように、“キャッシュメモリ状態項目”、“最新値”、“閾値”のカラムを有する。“キャッシュメモリ状態項目”には、“キャッシュメモリ残容量”と、“キャッシュヒット率”とがある。“キャッシュメモリ残容量”は、キャッシュメモリの全体容量に対する残りの空き容量の比率で表される。“キャッシュヒット率”は、図示しないホストコンピュータから磁気ディスク装置２００へのすべての入出力要求に対して、対象とする入出力データがキャッシュメモリ部１０２に存在した確率で表される。“最新値”は、キャッシュメモリ状態監視部１０１ｂによる最新の監視結果であり、監視ごとに常時更新される“キャッシュメモリ残容量”および“キャッシュヒット率”である。また、“閾値”は、“キャッシュメモリ残容量”および“キャッシュヒット率”の多寡または高低を判定するための基準値であり、外部から任意に設定可能である。
【００４２】
ｌｕｎ単位キャッシュヒット率１０３ｂのテーブルの例は、例えば図４に示すように、“ｌｕｎ番号”、“キャッシュヒット率最新値”、“閾値”のカラムを有する。“ｌｕｎ番号”は、磁気ディスク装置２００の装置番号である。“キャッシュヒット率最新値”は、図示しないホストコンピュータから磁気ディスク装置２００へのすべての入出力要求に対して、対象とする入出力データがキャッシュメモリ部１０２に存在した確率をｌｕｎ単位で表す。この確率は、キャッシュメモリ状態監視部１０１ｂによる最新の監視結果であり、監視ごとに常時更新される。また、“閾値”は、“キャッシュヒット率最新値”の高低を判定するための基準値であり、外部から任意に設定可能である。
【００４３】
なお、上述の比率で表されるとした“キャッシュメモリ残容量”、“キャッシュヒット率”の“最新値”および“閾値”、ｌｕｎ単位の“キャッシュヒット率最新値”および“閾値”は、実容量（例えばbyte単位）で表されるとしてもよい。
【００４４】
次に、シーケンシャル性の検出とプリフェッチ動作について説明する。図５は、シーケンシャル性の検出とプリフェッチ動作を説明するための図である。なお、図５では、磁気ディスク装置２００からのデータ読み出しの単位を、512byteのデータに8byteのチェックコードが付加されたＬＢＡ（Logical Block Addressing）とし、これを１回のプリフェッチサイズとしている。
【００４５】
同図に示すように、ホストコンピュータからの１回目の読み出し要求（以下、ホストＩＯ（ホストInput Output）と呼ぶ）に応じて１個目のＬＢＡが磁気ディスク装置２００から読み出され、キャッシュメモリ部１０２へキャッシュされる。次に、２回目および３回目のホストＩＯに応じて２個目および３個目のＬＢＡが磁気ディスク装置２００から順次読み出され、キャッシュメモリ部１０２へキャッシュされる。
【００４６】
ここで、１個目〜３個目のＬＢＡがシーケンシャルデータであった場合に、これら１回目〜３回目のホストＩＯはシーケンシャル性があると判定され、このシーケンシャル性検出に応じて、以後８個のＬＢＡをプリフェッチすることとなる。
【００４７】
このように、カウントされた一定個のＬＢＡがシーケンシャルデータであった場合には、以降のホストＩＯによる読み出し対象のＬＢＡも、さらに続くシーケンシャルデータである可能性が高いことから、このように所定個のシーケンシャルなＬＢＡを先読み（プリフェッチ）してキャッシュメモリ部１０２に読み出しでおくと、キャッシュヒット率の向上を図ることができる。
【００４８】
次に、プリフェッチ動作について説明する。図６は、プリフェッチ動作を説明するための図である。同図に示すように、連続したＬＢＡに関するホストＩＯに対しては、図５で示したように、例えば連続したＬＢＡに関するホストＩＯが３回連続した場合に、８個のＬＢＡをプリフェッチする。このように、連続したＬＢＡに関するホストＩＯが３回連続するごとに８個のＬＢＡをプリフェッチしていくが、不連続なＬＢＡのホストＩＯに対しては、シーケンシャル性のあるＬＢＡのカウントを初期化する。このようにして、キャッシュヒット率の向上を図る。
【００４９】
しかし、図５および図６に示したように、カウントされた一定個のＬＢＡがシーケンシャルデータであった場合に、キャッシュメモリ部１０２の有限な容量を考慮せずに、所定個のシーケンシャルなＬＢＡをプリフェッチしてキャッシュメモリ部１０２に読み出すと、キャッシュヒット率が低い場合には、キャッシュメモリの容量を圧迫するというおそれがあった。しかし、本実施例で示される方法によって、キャッシュメモリの残容量およびキャッシュヒット率などに応じて、プリフェッチサイズおよびプリフェッチ量を変化させると、プリフェッチによってキャッシュメモリの容量が圧迫されるというおそれを低減することができる。
【００５０】
次に、プリフェッチ量制御処理について説明する。図７は、プリフェッチ量制御処理手順を示すフローチャートである。なお、プリフェッチ量制御処理の前提として、後述の「最大プリフェッチ量」、「キャッシュメモリ残容量の閾値」、「キャッシュヒット率の閾値」、「ｌｕｎ単位のキャッシュヒット率の閾値」が予め設定されているとする。同図に示すように、先ず、プリフェッチ制御部１０１ａは、ホストコンピュータからホストＩＯを受領する（ステップＳ１０１）。続いて、プリフェッチ制御部１０１ａは、ステップＳ１０１で受領したホストＩＯに基づいて磁気ディスク装置２００から読み出したＬＢＡのシーケンシャル性を解析する（ステップＳ１０２）。
【００５１】
続いて、プリフェッチ制御部１０１ａは、ステップＳ１０２で解析された磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有するか否かを判定する（ステップＳ１０３）。すなわち、先行するホストＩＯのＬＢＡと比較し、連続性があればシーケンシャルアクセスと判定する。磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有すると判定される場合（ステップＳ１０３肯定）にステップＳ１０４へ移り、磁気ディスク装置２００から読み出したＬＢＡがシーケンシャル性を有すると判定されない場合（ステップＳ１０３否定）は、本プリフェッチ量制御処理を終了する。
【００５２】
ステップＳ１０４では、プリフェッチ制御部１０１ａは、キャッシュメモリ状態１０３ａのキャッシュメモリ残容量が閾値を超えたか否かを判定する。キャッシュメモリ残容量が閾値を超えたと判定される場合（ステップＳ１０４肯定）にステップＳ１０５へ移り、キャッシュメモリ残容量が閾値を超えたと判定されない場合（ステップＳ１０４否定）にステップＳ１１２へ移る。
【００５３】
ステップＳ１０５では、プリフェッチ制御部１０１ａは、キャッシュメモリ状態１０３ａのキャッシュヒット率が閾値を超えたか否かを判定する。キャッシュヒット率が閾値を超えたと判定される場合（ステップＳ１０５肯定）にステップＳ１０６へ移り、キャッシュヒット率が閾値を超えたと判定されない場合（ステップＳ１０５否定）にステップＳ１１２へ移る。
【００５４】
ステップＳ１０６では、プリフェッチ制御部１０１ａは、ｌｕｎ単位キャッシュヒット率１０３ｂのｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたか否かを判定する。ｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたと判定される場合（ステップＳ１０６肯定）にステップＳ１０７へ移り、ｌｕｎ単位のキャッシュヒット率がそれぞれの閾値を超えたと判定されない場合（ステップＳ１０６否定）にステップＳ１１２へ移る。
【００５５】
ステップＳ１０７では、プリフェッチ制御部１０１ａは、１つのＬＢＡをプリフェッチする。続いて、所定の記憶領域に記憶されるカウンタ変数である「プリフェッチ量」に“１”を加算する（ステップＳ１０８）。
【００５６】
続いて、プリフェッチ制御部１０１ａは、カウンタ変数である「プリフェッチ量」が、所定の記憶領域に記憶されるカウンタ変数である「最大プリフェッチ量」を下回るか否かを判定する（ステップＳ１０９）。ここで、「最大プリフェッチ量」とは、「プリフェッチ量」がステップＳ１０８で１ずつ加算されていくが、この加算の限界を示す。「プリフェッチ量」が「最大プリフェッチ量」を下回ると判定される場合（ステップＳ１０９肯定）にステップＳ１０４へ移り、「プリフェッチ量」が「最大プリフェッチ量」を下回ると判定されない場合（ステップＳ１０９否定）にステップＳ１１０へ移る。
【００５７】
ステップＳ１１０では、プリフェッチ制御部１０１ａは、「最大プリフェッチ量」が例えば“８”を下回るか否かを判定する。なお、この“８”という数値に限定されるものではなく、記憶装置システムの性能規定する数値として適宜設定変更可能である。「最大プリフェッチ量」が例えば“８”を下回ると判定される場合（ステップＳ１１０肯定）にステップＳ１１１へ移り、「最大プリフェッチ量」が例えば“８”を下回ると判定されない場合（ステップＳ１１０否定）には、本プリフェッチ量制御処理は終了する。そして、ステップＳ１１１で、プリフェッチ制御部１０１ａは、「最大プリフェッチ量」に“１”を加算する。一方、ステップＳ１１２では、プリフェッチ制御部１０１ａは、「最大プリフェッチ量」から“１”を減算する。
【００５８】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【００５９】
上記実施例では、プリフェッチ制御装置は、ＲＡＩＤコントローラの制御回路とした。しかし、これに限らず、プリフェッチ制御装置は、ＲＡＩＤコントローラ自体であってもよい。
【００６０】
上記実施例では、記憶システムをＲＡＩＤとして説明したが、ＲＡＩＤに限られるものではなく、単体の磁気ディスク装置を使用する場合であってもよい。また、磁気ディスク装置は、コンピュータ装置に外部接続されるものであっても、コンピュータ装置に内蔵されるものであってもいずれであってもよい。磁気ディスク装置がコンピュータ装置に内蔵されるものである場合は、プリフェッチ制御装置も当然コンピュータ装置に内蔵される。あるいは、プリフェッチ制御装置がコンピュータ装置の制御装置で実現され、キャッシュメモリは、コンピュータ装置の内部記憶メモリであってもよい。
【００６１】
また、上記実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００６２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００６３】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central Processing Unit）（またはＭＰＵ（Micro Processing Unit）、ＭＣＵ（Micro Controller Unit）などのマイクロ・コンピュータ）および当該ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００６４】
（付記１）記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と、
前記シーケンシャル判定部によって前記読み出しデータがシーケンシャルアクセスデータであると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定部と、
前記プリフェッチ量決定部によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とするプリフェッチ制御装置。
【００６５】
（付記２）前記プリフェッチ量決定部は、前記キャッシュメモリの空き容量が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリの空き容量が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記１に記載のプリフェッチ制御装置。
【００６６】
（付記３）前記プリフェッチ量決定部は、前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記１または２に記載のプリフェッチ制御装置。
【００６７】
（付記４）前記記憶装置は、複数の記憶装置を含み、
前記プリフェッチ量決定部は、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回った場合に該複数の記憶装置ごとの前記プリフェッチ量を減少させ、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に該複数の記憶装置ごとの前記プリフェッチ量を増加させることを特徴とする付記１、２または３に記載のプリフェッチ制御装置。
【００６８】
（付記５）前記プリフェッチ部は、前記プリフェッチ量決定部によって決定されたプリフェッチ量が０となった場合にはプリフェッチを停止し、前記プリフェッチ量決定部によって決定されたプリフェッチ量が０でなくなった場合にはプリフェッチを開始することを特徴とする付記１〜４のいずれか一つに記載のプリフェッチ制御装置。
【００６９】
（付記６）記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御装置とを有する記憶装置システムであって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定部と、
前記シーケンシャル判定部によって前記読み出しデータがシーケンシャルアクセスデータであると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定部と、
前記プリフェッチ量決定部によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうプリフェッチ部と
を有することを特徴とする記憶装置システム。
【００７０】
（付記７）前記プリフェッチ量決定部は、前記キャッシュメモリの空き容量が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリの空き容量が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記６に記載の記憶装置システム。
【００７１】
（付記８）前記プリフェッチ量決定部は、前記キャッシュメモリのヒット率が所定閾値を下回った場合に前記プリフェッチ量を減少させ、前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に前記プリフェッチ量を増加させることを特徴とする付記６または７に記載の記憶装置システム。
【００７２】
（付記９）前記記憶装置は、複数の記憶装置を含み、
前記プリフェッチ量決定部は、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回った場合に該複数の記憶装置ごとの前記プリフェッチ量を減少させ、前記複数の記憶装置ごとの前記キャッシュメモリのヒット率が所定閾値を下回っていない場合に該複数の記憶装置ごとの前記プリフェッチ量を増加させることを特徴とする付記６、７または８に記載の記憶装置システム。
【００７３】
（付記１０）記憶装置とコンピュータ装置との間で送受されるデータをキャッシュして該記憶装置からの読み出しデータの読み出し効率を向上させるキャッシュメモリへの該読み出しデータのプリフェッチを制御するプリフェッチ制御方法であって、
前記記憶装置から前記コンピュータ装置へと読み出される読み出しデータがシーケンシャルアクセスデータであるか否かを判定するシーケンシャル判定工程と、
前記シーケンシャル判定工程によって前記読み出しデータがシーケンシャルアクセスデータであると判定された場合に所定条件に基づいて該読み出しデータのプリフェッチ量を決定するプリフェッチ量決定工程と、
前記プリフェッチ量決定工程によって決定されたプリフェッチ量だけ前記読み出しデータのプリフェッチをおこなうプリフェッチ工程と
を含んだことを特徴とするプリフェッチ制御方法。
【産業上の利用可能性】
【００７４】
本発明は、記憶装置とコンピュータ装置との間で送受されるデータをキャッシュするキャッシュメモリが、該記憶装置からの読み出しデータのプリフェッチによって枯渇してしまうことを回避したい場合に有用である。
【図面の簡単な説明】
【００７５】
【図１】実施例の概要および特徴を説明するための図である。
【図２】実施例にかかるＲＡＩＤ制御装置の構成を示す機能ブロック図である。
【図３】キャッシュメモリ状態テーブルの例を示す図である。
【図４】ｌｕｎ単位キャッシュヒット率テーブルの例を示す図である。
【図５】シーケンシャル性の検出とプリフェッチ動作を説明するための図である。
【図６】プリフェッチ動作を説明するための図である。
【図７】プリフェッチ量制御処理手順を示すフローチャートである。
【符号の説明】
【００７６】
１００    ＲＡＩＤ制御装置
１０１    制御部
１０１ａ    プリフェッチ制御部
１０１ｂ    キャッシュメモリ状態監視部
１０２    キャッシュメモリ部
１０３    記憶部
１０３ａ    キャッシュメモリ状態
１０３ｂ    ｌｕｎ単位キャッシュヒット率
１０４    磁気ディスク装置インターフェース部
１０５    ホストインターフェース部
２００、２００ａ1、・・・、２００ａn    磁気ディスク装置
【図１】
2008225914.tif 000003
【図２】
2008225914.tif 000004
【図３】
2008225914.tif 000005
【図４】
2008225914.tif 000006
【図５】
2008225914.tif 000007
【図６】
2008225914.tif 000008
【図７】
2008225914.tif 000009