(57)【特許請求の範囲】
【請求項１】
データを一時格納するキャッシュを備えた外部記憶装置であって、
前記キャッシュに常駐化するユーザデータが定義されたデータセット名を含むユーザ定義情報、或いは前記外部記憶装置のデータセット名を含む稼動情報に基づきユーザデータをデータセット領域単位で前記キャッシュ上に常駐化或いは前記キャッシュ上からの常駐化解除を行う外部記憶装置。
【請求項２】
キャッシュを具備した外部記憶装置と、この外部記憶装置に接続されこの外部記憶装置に対するデータの書き込み及び読み出しを行う上位装置と備えた情報処理システムであって、
前記上位装置は、前記キャッシュ上のデータを管理するホストユーティリティプログラムと、このホストユーティリティプログラムが動作するために必要なデータセット名を含むユーザ定義情報或いは前記外部記憶装置のデータセット名を含む稼動情報とを備え、前記外部記憶装置は、前記ユーザ定義情報或いは前記稼動情報に基づいたコマンドを受領し、ユーザデータをデータセット領域単位で前記キャッシュ上に常駐化或いは前記キャッシュ上からの常駐化解除を行う情報処理システム。
【請求項３】
キャッシュを具備した外部記憶装置と、この外部記憶装置に接続されこの外部記憶装置に対するデータの書き込み及び読み出しを行う上位装置と備えた情報処理システムであって、
前記上位装置は、前記キャッシュ上のデータを管理するホストユーティリティプログラムと、このホストユーティリティプログラムが動作するために必要なデータセット名を含むユーザ定義情報を備え、
前記上位装置は、前記ユーザ定義情報に基づいて、前記キャッシュ上への常駐化に関する複数のユーザデータを指定するコマンドを送信し、
前記外部記憶装置は、前記コマンドに基づいて、前記複数のユーザデータをデータセット領域単位で管理し、
前記複数のユーザデータのそれぞれについて、アクセスの有無を判別し、前記判別によりアクセスがあったと判断されたユーザデータについて前記キャッシュ上に常駐化を行う情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュを具備した外部記憶装置のキャッシュ制御技術に関し、特に複数の上位装置によって共有される外部記憶装置或いは上位装置を含めた情報記憶システムにおけるキャッシュの制御技術に関する。
【０００２】
【従来の技術】
近年、情報処理システムの高性能・大規模化に伴い、外部記憶装置においても、より一層の高性能化が求められている。特に外部記憶装置においては、制御装置に大容量キャッシュメモリを搭載したアレイ形式の外部記憶装置が主流となってきており、高性能化を図るには、大容量キャッシュメモリの効率の良い制御方法が重要となってきている。このため、大容量キャッシュメモリの制御に関する方式が、以下のように種々考案されている。
【０００３】
例えば、特開平６−１２４２３９号公報には、ファイルシステムにおけるデータ管理情報のアクセス頻度を計算して保持し、所定時間内のアクセス頻度が高いデータ管理情報は、キャッシュメモリ上に常駐化し、一方所定時間内のアクセス頻度が低いデータ管理情報は、キャッシュメモリの常駐状態から解除する方法が開示されている。
【０００４】
また、特開平５−１８９３０７号公報では、キャッシング方法自体は一般にリースト・リーセント・ユーズド（LRU）法と呼ばれている方法を基本とするが、一般のLRU法に加えてプログラム毎にキャッシュのミスヒット率を調べ、一定以上のミスヒット率であれば、以降のプログラムの実行には、キャッシングを実施しない事により、その分のキャッシング頻度を低下させるとともに、プログラムの実行で消費されるはずであったキャッシュメモリ上の領域をある一定以上のキャッシュヒット率を有するであろう他のプログラム用に使用することにより、システム全体のＣＰＵの性能を向上する方法が開示されている。
【０００５】
また、特開平７−２８７６６９号公報には、キャッシュメモリ上に配置すべき主記憶上のデータをプログラムが明示的に指定可能な命令と、指定に従って主記憶上のデータをキャッシュメモリに転送する制御回路と、転送されたデータをキャッシュメモリ上に常駐化させる回路と、常駐化されたデータの常駐化を無効にする回路とを設け、処理を優先したい特定のプログラムが、その処理手順の特性に合わせてキャッシングを制御する方法が開示されている。
【０００６】
【発明が解決しようとする課題】
特開平６−１２４２３９号公報の技術では、ファイルシステムにおけるデータ管理情報を所定時間内のアクセス頻度に応じてキャッシュメモリ上に常駐化させるデータを決定する。そのため、アクセス頻度の低いデータ管理情報にアクセスした場合には、キャッシュメモリ上に該当するユーザデータがなく、目的のユーザデータにアクセスするまでに多大な時間を有してしまう。
【０００７】
また、特開平５−１８９３０７号公報の技術では、キャッシュミス率の所定値によって平均アクセス時間が左右されてしまう。そして、最適な所定値を決めるのは非常に困難であった。
【０００８】
また、特開平７−２８７６６９号公報の技術では、キャッシュメモリの常駐化のためにユーザプログラムがキャッシュ常駐／常駐解除命令を実行するための種々のハードウェアが必要であった。また、ユーザプログラムがキャッシュメモリ上のデータの常駐を常に意識しなければならなかった。
【０００９】
また、従来のキャッシュメモリ上への常駐化／常駐化解除の機能は、サービスプロセッサ或いはリモートコンソールにより行われていたため、常駐化／常駐化解除の設定が可能な場合であってもオペレータが行うしかなく、ユーザが簡単には行う事が出来なかった。また、常駐化／常駐化解除するデータのアドレスを入力する事が必要であった。
【００１０】
さらに、記憶制御装置におけるキャッシング方法は、トラック単位で行われるのが一般的である。そして通常LRUアルゴリズムによってトラック単位のキャッシュ常駐化が行われるため、複数トラックにわたるデータの場合にまとめてランダムアクセスを行うとデータの中抜け等の理由からスラッシング（キャッシュミス状態）が生じてしまい、情報処理システムの性能劣化が生じてしまう。
【００１１】
本発明の目的は、ユーザが常駐化／常駐化解除の設定を行うキャッシュ制御技術を提供することにある。
【００１２】
本発明の他の目的は、データセット名の入力によるユーティリティプログラムを用いて、キャッシュメモリ上に常駐化／常駐化解除を行うキャッシュ制御技術を提供することにある。
【００１３】
また、本発明の他の目的は、外部記憶装置が稼動情報を採取することにより、上位装置の稼動状況に応じて、キャッシュメモリ上に常駐化／常駐化解除を行い、情報処理システムの性能向上を行うキャッシュ制御技術を提供することにある。
【００１４】
更に本発明の目的は、複数トラックのユーザデータをまとめてキャッシュメモリ上に常駐化／常駐化解除するキャッシュ制御技術を提供することにある。
【００１６】
【課題を解決するための手段】
前記課題を解決するために、データを一時格納するキャッシュを備えた外部記憶装置であって、前記キャッシュに常駐化するデータセット名を含むユーザデータが定義されたユーザ定義情報、或いは前記外部記憶装置のデータセット名を含む稼動情報に基づきユーザデータをデータセット領域単位で前記キャッシュ上に常駐化或いは前記キャッシュ上からの常駐化解除を行うものとする。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
【００１９】
図１は、本発明の一実施の形態である動的キャッシュ常駐化外部記憶装置を含む情報処理システムのハードウェア構成の一例を示すブロック図である。
【００２０】
本実施の形態における外部記憶装置の一例として、ディスクアレイサブシステムを用いた場合を示したが、本発明に適する外部記憶装置として、キャッシュ付き磁気ディスクサブシステム、キャッシュあるいはデータバッファを備えた光ディスク装置サブシステム等がある。
【００２１】
本実施の形態のディスクアレイサブシステム20は、ケーブル10〜13を通じて、中央処理装置（上位装置、ホストとも言う）１，２のチャネル６〜９に接続されている。
【００２２】
ディスクアレイサブシステム20に設けられたサービスプロセッサ21は、外部記憶装置の制御部であるディスクアレイサブシステム20の構成情報の設定及びバス41を通じて当該情報を共用メモリ50に書き込む機能、ディスクアレイサブシステム20の稼動情報、障害情報採取機能及び保守機能を持つ。ディスクアレイサブシステム20の稼動情報の具体例としては、時刻、物理シリンダ及びヘッドアドレス、アクセス頻度、デバイスアドレス、リード／サーチバイト数、データオーバランの発生回数、ＣＲＣエラー等のエラー発生回数等々がある。
【００２３】
チャネルインタフェース制御部31〜35は、ケーブル10〜13を通じ、中央処理装置１，２のチャネル６〜９からのコマンド処理、バス42を使用した中央処理装置１，２のチャネル６〜９とキャッシュ60との間のデータ転送処理、ディスクアレイサブシステム20の稼動情報採取を行う機能を持っている。また、これらの機能を実現するため、チャネルインタフェース制御部31〜35はバス41を通じて、共用メモリ50上の情報を参照／更新、ドライブインタフェース制御部71〜74及びサービスプロセッサ21との通信を行う。
【００２４】
バス41は、チャネルインタフェース制御部31〜35、共用メモリ50、ドライブインタフェース制御部71〜74及びサービスプロセッサ21を結ぶ通信制御線である。つまり、チャネルインタフェース制御部31〜35、ドライブインタフェース制御部71〜74及びサービスプロセッサ21との間の通信、チャネルインタフェース制御部31〜35、ドライブインタフェース制御部71〜74及びサービスプロセッサ21と共用メモリ50との間の参照／更新を行うためにバス41は使用される。
【００２５】
バス42は、中央処理装置１，２からチャネル６〜９、ケーブル10〜13、チャネルインタフェース制御部31〜35を介して行われるキャッシュ60へのデータ転送、キャッシュ60からチャネルインタフェース制御部31〜35、ケーブル10〜13、チャネル６〜９を介して行われる中央処理装置１，２へのデータ転送、キャッシュ60からドライブインタフェース制御部71〜74を介して行われる複数の磁気ディスク装置からなるディスク群81〜82へのデータ転送、ディスク群81〜82からドライブインタフェース制御部71〜74を介して行われるキャッシュ60へのデータ転送に使用される。
【００２６】
共用メモリ50は、チャネルインタフェース制御部31〜35及びドライブインタフェース制御部71〜74等が動作するのに必要な情報及び本実施の形態の動作を行うための情報（後述）、サービスプロセッサ21からの構成情報、ディスクアレイサブシステム20の稼動情報等々が入っている不揮発性のメモリである。
【００２７】
キャッシュ60は、中央処理装置１，２からのライトデータ及びディスク群31〜35からのリードデータを一時格納しておくメモリである。
【００２８】
ドライブインタフェース制御部71〜74はチャネルインタフェース制御部31〜35の要求によりバス41を使用して共用メモリ50上の情報を参照／更新することにより、ディスク群81〜82からキャッシュ60へのデータの読み込み及びキャッシュ60からディスク群81〜82へのデータ書き込みを行う。
【００２９】
ディスク群81〜82は、アレイディスクであり、中央処理装置１，２からキャッシュ60上へ書かれたデータを保持するものである。
【００３０】
ホストユーティリティプログラム４は、ユーザが端末装置３を使用して入力・作成したユーザ定義情報91に基づいて、中央処理装置１上で動作する。ホストユーティリティプログラム５は、中央処理装置２のオペレーティングシステム等が作成、使用している稼動情報92に基づいて、中央処理装置２上で動作する。具体的には、ユーザ定義情報91或いは稼動情報92に基づいて、ホストユーティリティプログラム４またはホストユーティリティプログラム５は、チャネル６〜９、ケーブル10〜13を通じて、ディスクアレイサブシステム20に対して、コマンド及びコマンドパラメータを発行し、ディスクアレイサブシステム20内のキャッシュ60上のユーザデータの常駐化及び常駐化解除の指示を行う。
【００３１】
ユーザ定義情報91に入力する詳細情報の具体例としては、時刻、常駐化／常駐化解除の指示、データセット名、物理シリンダ及びヘッドアドレス、後述するボリューム目録、ボリューム名等々がある。但し、これら全ての情報が必要な訳ではなく、例えば、常駐化／常駐化解除するデータセット名のみを端末装置３から入力する様な設定としておくこと等が考えられる。
【００３２】
ユーザ定義情報91は、中央処理装置１の主記憶装置（図示せず）上に存在しても良いし、一時的データセットあるいは外部記憶装置上の恒久データセットに格納されていても良い。
【００３３】
また、稼動情報92の詳細情報の具体例としては、時刻、データセット名、物理シリンダ及びヘッドアドレス、ボリューム名、アクセス頻度、デバイスアドレス、平均応答時間、平均切り離し時間、平均接続時間等々がある。
【００３４】
稼動情報92は、オペレーティングシステム等が作成、使用しており、主として中央処理装置２の外部記憶装置上の恒久データセットに格納されている。尚、チャネルインタフェース制御部31〜35が過去の履歴情報を見てその情報をサービスプロセッサ21に送る事により、常駐させるデータを選択することにより稼動情報92の代わりとしても良いし、サービスプロセッサ21の稼動情報の詳細情報を格納する容量が稼動情報92と同程度ある場合は、こちらの稼動情報を使用しても良い。
【００３５】
次に図２について説明する。図２は、本実施の形態の動的キャッシュ常駐化を実現するための手段であるホストユーティリティプログラム４，５からチャネル６〜９経由でディスクアレイサブシステム20が受領するコマンドパラメータの一例を示す概念図である。具体的には、ホストユーティリティプログラム４或いは５から受領する常駐化エクステントパラメータ200の構造の一例を示す概念図である。受領した常駐化エクステントパラメータ200は、チャネルインタフェース制御部31〜35内で保持する。本実施の形態において、動的キャッシュ常駐化及び常駐化解除を行うコマンドは、中央処理装置１，２、チャネル６〜９、ディスクアレイサブシステム20間で動作が規定されている定義コマンドであってもよいし、未定義コマンドであってもよい。
【００３６】
次に常駐化エクステントパラメータ200の構造の一例についてさらに詳細に説明する。常駐化エクステントパラメータ200は、常駐化モード指定201、常駐化先頭位置情報202、常駐化最終位置情報203から構成される。常駐化モード指定201は、ユーザデータをディスクアレイサブシステム20内のキャッシュ60上に常駐化及び常駐化解除を指示するパラメータである。常駐化先頭位置情報202は、ディスクアレイサブシステム20内のキャッシュ60に常駐させるディスク上の物理的な先頭位置、すなわちディスクアレイサブシステム20上のキャッシュ60に常駐させるディスク上の先頭シリンダ番号、ヘッド番号の位置を示す。常駐化最終位置情報203は、ディスクアレイサブシステム20内のキャッシュ60に常駐させるディスク上の物理的な最終位置、すなわち、ディスクアレイサブシステム20上のキャッシュ60に常駐させるディスク上の最終シリンダ番号、ヘッド番号の位置を示す。
【００３７】
通常、ユーザデータは、オペレーティングシステム下においてデータセットに格納されており、オペレーティングシステムでは、これらのデータセットをボリューム目録（Volume table of contents：VTOC）で管理している。ボリューム目録（VTOC）内に書かれている情報のうち、データセットの領域に関するものにBOE（begin of extent）、EOE（end of extent）がある。BOEはエクステント（領域）の始まりを直接アクセスボリュームのシリンダ番号、トラック番号、セクタ番号などで表す。EOEはエクステントの終わりをBOEと同じ形式で記録する。BOEとEOEとで囲まれた領域が１つのデータセット領域である。ホストユーティリティプログラム４はユーザ定義情報91より、ホストユーティリティプログラム５は稼動情報92よりディスクアレイサブシステム20内のキャッシュ60上に常駐化または常駐化解除させるデータセット名を読み取りボリューム目録（VTOC）内に書かれている情報から該当するデータセットのBOE、EOEを求め、BOEを常駐化エクステントパラメータ200の常駐化先頭位置情報202として、EOEを常駐化エクステントパラメータ200の常駐化最終位置情報203として、ホストユーティリティプログラム４，５は常駐化エクステントパラメータ200をディスクアレイサブシステム20に指示する。
【００３８】
次に図３について説明する。図３は、本実施の形態の動的キャッシュ常駐化を実現するための制御情報の１つである常駐化エクステントテーブル300の構造の一例を示す概念図である。常駐化エクステントテーブル300は、各チャネルインタフェース制御部31〜35内または共用メモリ50上に存在する。常駐化エクステントテーブル300は、先頭ポインタ301、最終ポインタ302、常駐化エリア各エクステント情報303より構成される。常駐化エリア各エクステント情報303は、フロントポインタ１（304）、バックポインタ１（305）、常駐化先頭位置情報１（306）、常駐化最終位置情報１（307）を１エントリとし、常駐化エリア分だけ存在する。
【００３９】
すなわち、図３に示すように、フロントポインタ１（304）、バックポインタ１（305）、常駐化先頭位置情報１（306）、常駐化最終位置情報１（307）を１つのかたまりとし、フロントポインタ２（308）、バックポインタ２（309）、常駐化先頭位置情報２（310）、常駐化最終位置情報２（311）、・・・、フロントポインタｎ（312）、バックポインタｎ（313）、常駐化先頭位置情報ｎ（314）、常駐化最終位置情報ｎ（315）というように常駐化エリアのｎ個分のエントリが存在する。また、常駐化エリア各エクステント情報303は、ホストユーティリティプログラム４，５から常駐化エリアを指示されると１エントリを固まりとしたキュー構造の形をとることになる。
【００４０】
以下、説明を簡単にするために、ホストユーティリティプログラム４または５より、１つ目のユーザデータセットの常駐化を指示された場合と２つ目のユーザデータセットの常駐化を指示された場合の常駐化エクステントテーブル300の先頭ポインタ301、最終ポインタ302、常駐化エリア各エクステント情報303の内容がどのように推移するかについて説明する。先頭ポインタ301、最終ポインタ302、常駐化エリア各エクステント303中のフロントポインタ１（304）、フロントポインタ２（308）、・・・、フロントポインタｎ（312）及び常駐化エリア各エクステント情報303中のバックポインタ１（305）、バックポインタ２（309）、・・・、バックポインタｎ（313）の各ポインタの具体的な値は、メモリアドレス、先頭と起点とした変位アドレス、先頭からのエントリ数の何れであってもよい。また、前記各ポインタの初期値は、すべてありえない値（たとえば、ｘ’ＦＦＦＦ’）となっている。
【００４１】
まず、１つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５より指示された場合の常駐化エクステントテーブル300の先頭ポインタ301、最終ポインタ302、常駐化エリア各エクステント情報303の内容がどのように推移するかについて説明する。１つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５から指示されると常駐化エクステントテーブル300中の先頭ポインタ301と最終ポインタ302をフロントポインタ１（304）を示すように値を更新する。この時、フロントポインタ１（304）とバックポインタ１（305）は、初期値のままとする。
【００４２】
また、常駐化先頭位置情報１（306）を常駐化エクステントパラメータ200の常駐化先頭位置情報202とし、常駐化最終位置情報１（307）を常駐化パラメータ200の常駐化最終位置情報203とする。
【００４３】
次に、２つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５より指示された場合の常駐化エクステントテーブル300の先頭ポインタ301、最終ポインタ302、常駐化エリア各エクステント情報303の内容がどのように推移するかについて説明する。前提条件として、前記１つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５から指示された後に２つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５から指示されるものとする。
【００４４】
すなわち、常駐化エクステントテーブル300の内容が前述のような状態のまま、２つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５より指示されたものとする。２つ目のユーザデータセットの常駐化がホストユーティリティプログラム４または５より指示されると常駐化エリア各エクステント情報303中の空きエントリをサーチを行い、空きエントリを確保する。
【００４５】
本ケースの場合、フロントポインタ２（308）、バックポインタ２（309）、常駐化先頭位置情報２（310）、常駐化最終位置情報２（311）が空きエントリになっているとすると、現在の常駐化エクステントテーブル300の最終ポインタ302が示しているエントリのフロントポインタの値をフロントポインタ２（308）を示すように値を更新する。すなわち、フロントポインタ１（304）の値をフロントポインタ２（308）を示すように値を更新する。
【００４６】
この後、確保した空きエントリのバックポインタを現在の常駐化エクステントテーブル300の最終ポインタ302の値とする。すなわち、バックポインタ２（309）の値をフロントポインタ１（304）を示す値に更新する。また、常駐化先頭位置情報２（310）を常駐化エクステントパラメータ200の常駐化先頭位置情報202とし、常駐化最終位置情報２（311）を常駐化エクステントパラメータ200の常駐化最終位置情報203とする。
【００４７】
この後、常駐化エクステントテーブル300の最終ポインタ302の値を確保した空きエントリのフロントポインタを示す値とする。すなわち、常駐化エクステントテーブル300の最終ポインタ302の値をフロントポインタ２（308）を示す値に更新する。この時、バックポインタ１（305）とフロントポインタ２（308）の値は、初期値のままとなっている。
【００４８】
次に図４について説明する。図４は、本実施の形態の動的キャッシュ常駐化を実施するための制御情報の１つであるデバイス固有テーブル400の構造の一例を示す概念図である。デバイス固有テーブル400は、各チャネルインタフェース制御部31〜35内または共用メモリ50内に存在する。
【００４９】
デバイス固有情報テーブル400は、アドレス＃０用常駐化エクステント数（401）、アドレス＃０用常駐化先頭エクステントポインタ（402）、アドレス＃０用常駐化最終エクステントポインタ（403）を１エントリとし、ディスクアレイサブシステム２０で制御するボリュームアドレス分だけ存在する。すなわち、図４に示すようにアドレス＃０用常駐化エクステント数（401）、アドレス＃０用常駐化先頭エクステントポインタ（402）、アドレス＃０用常駐化最終エクステントポインタ（403）を１つのかたまりとし、アドレス＃１用常駐化エクステント数（404）、アドレス＃１用常駐化先頭エクステントポインタ（405）、アドレス＃１用常駐化最終エクステントポインタ（406）、・・・、アドレス＃ｎ用常駐化エクステント数（407）、アドレス＃ｎ用常駐化先頭エクステントポインタ（408）、アドレス＃ｎ用常駐化最終エクステントポインタ（409）というようにディスクアレイサブシステム20で制御するボリュームアドレスｎ個分だけ存在する。
【００５０】
アドレス＃ｍ（ｍ＝０、１、・・、ｎ）用常駐化エクステント数は、当該ボリュームアドレスの常駐化エクステントテーブル300内の常駐化エリア各エクステント情報303のエントリ数を示す。アドレスｍ（ｍ＝０、１、・・・、ｎ）用常駐化先頭エクステントポインタは、当該ボリュームアドレスの常駐化エクステントテーブル300内の常駐化エリア各エクステント情報303の最初のエントリを示すポインタである。また、アドレスｍ（ｍ＝０、１、・・・、ｎ）用常駐化最終エクステントポインタは、当該ボリュームアドレスの常駐化エクステントテーブル３００内の常駐化エリア各エクステント情報３０３の最終エントリを示すポインタである。
【００５１】
アドレスｍ（ｍ＝０、１、・・・、ｎ）用常駐化先頭エクステントポインタ及びアドレスｍ（ｍ＝０、１、・・・、ｎ）用常駐化最終エクステントポインタの具体的な値は、メモリアドレス、先頭を基点とした変位アドレス、先頭からのエントリ数のいずれであってもよい。また、前記各ポインタの初期値はすべてありえない値（たとえば、ｘ’ＦＦＦＦ’）となっている。
【００５２】
具体的に前述の２つのユーザデータセットの常駐化を行った例でデバイス固有情報テーブル400の内容の推移について説明する。ここでは、説明を簡単にするためにボリュームアドレス＃０で、２つのデータセットの常駐化を行った場合について説明する。常駐化エクステントテーブル300の推移については、すでに記述済みのため、あえて説明をしない。この場合のデバイス固有テーブル400の内容は、アドレス＃０用常駐化エクステント数（401）は２となり、アドレス＃０用常駐化先頭エクステントポインタ（402）は常駐化エクステントテーブル300の常駐化エリア各エクステント情報303中のフロントポインタ１（304）を指し示す値となり、アドレス＃０用常駐化最終エクステントポインタ（403）は常駐化エクステントテーブル300の常駐化エリア各エクステント情報303中のフロントポインタ２（308）を指し示す値となる。
【００５３】
次に、図１〜図４を用いて、図５〜図11のフローチャートに示されるチャネルインタフェース制御部31〜35の処理の一例について説明する。
【００５４】
チャネルインタフェース制御部31〜35は、前述したような３つの処理機能を持っているが、ここでは本実施の形態に関係する動的キャッシュ常駐化処理に絞り込んで説明する。
【００５５】
まず、図５のフローチャートについて説明する。ステップ501で、常駐化エクステントテーブル300に登録された位置情報内にアクセスが有るか否かのチェックを行う。すなわち、デバイス固有テーブル400の該当アドレスの常駐化エクステント数及び該当アドレスの常駐化先頭エクステントポインタより、常駐化エクステントテーブル300の常駐化エリア各エクステント情報303内の常駐化先頭位置情報１（306）から常駐化最終位置情報１（307）の範囲、常駐化先頭位置情報２（310）から常駐化最終位置情報２（311）の範囲、・・・、常駐化先頭位置情報ｎ（314）から常駐化最終位置情報ｎ（315）の範囲のいずれかにアクセスが有るかチェックを行う。ステップ501で常駐化エクステントテーブル300に登録された位置情報内にアクセスがあれば、ステップ601（図６）へ進む。常駐化エクステントテーブル300に登録された位置情報内にアクセスがなければ、ステップ502へ進む。
【００５６】
ステップ502で、ホストユーティリティプログラム４または５からの常駐化設定命令か否かのチェックを行う。すなわち、常駐化エクステントパラメータ200の常駐化モード指定201をチェックする。常駐化エクステントパラメータ200の常駐化モード指定201が常駐化設定であればステップ507へ進み、常駐化エクステントパラメータ200の常駐化モード指定201が常駐化設定でなければ、ステップ503へ進む。
【００５７】
ステップ503でホストユーティリティプログラム４または５からの常駐化解除命令か否かのチェックを行う。すなわち、ステップ502と同様に常駐化エクステントパラメータ200の常駐化モード指定201をチェックする。常駐化エクステントパラメータ200の常駐化モード201が常駐化解除設定でなければステップ501へ戻り、常駐化エクステントパラメータ200の常駐化モード201が常駐化解除設定であれば、ステップ504へ進む。
【００５８】
ステップ504でホストユーティリティプログラム４または５より受け取った常駐化エクステントパラメータ200のチェックを行う。具体的には、常駐化エクステントパラメータ200中の常駐化モード指定201、常駐化先頭位置情報202、常駐化最終位置情報203の妥当性チェックを行う。
【００５９】
ステップ505で、ステップ504でチェックを行った常駐化エクステントパラメータのチェック結果がＯＫか否かのチェックを行う。チェックＯＫであれば、ステップ901（図９）へ進む。チェックＮＧであれば、ステップ506へ進む。
【００６０】
ステップ506でチャネル６〜９に対し、エラー報告を行う。
【００６１】
ステップ507では、ステップ504と同様のチェックを行う。
【００６２】
ステップ508で、ステップ505と同様の処理を行う。チェックＯＫであれば、ステップ701（図７）へ進む。チェックＮＧであれば、ステップ506へ進む。
【００６３】
次に図６のフローチャートについて、説明する。図６は、常駐化エクステントテーブル300に登録された位置情報内にアクセスがあった場合の処理フローの一例である。
【００６４】
ステップ601で、データはキャッシュ60に常駐化済か否かのチェックをする。具体的にはユーザデータセットがキャッシュ60上に常駐化されているかをチェックする。データがキャッシュ60に常駐化されていれば、ステップ501（図５）に戻る。データがキャッシュ60に常駐化されていなければ、ステップ602へ進む。
【００６５】
ステップ602で、常駐化エクステントテーブル300の常駐化エリア各エクステント情報303により指定された常駐化情報の範囲（常駐化先頭位置情報１（306）から常駐化最終位置情報１（307）の範囲、常駐化先頭位置情報２（310）から常駐化最終位置情報２（311）の範囲、・・・、常駐化先頭位置情報ｎ（314）から常駐化最終位置情報ｎ（315）の範囲のいずれか）をキャッシュ60に常駐化する。この後、ステップ501（図５）に戻る。
【００６６】
次に図７のフローチャートについて、説明する。図７は、ホストユーティリティプログラム４または５から常駐化設定命令が発行された時の処理を行う処理フローの一例である。
【００６７】
ステップ701で、常駐化エクステントテーブル300の先頭ポインタ301は有効か否かをチェックする。すなわち、常駐化エクステントテーブル300の先頭ポインタ301が初期値か否かをチェックする。つまり、このステップは、常駐化エクステントテーブル300に登録されているエントリがあるかということである。常駐化エクステントテーブル300の先頭ポインタ301が有効（初期値ではない）であれば、ステップ705へ進む。常駐化エクステントテーブル300の先頭ポインタ301が有効（初期値である）でなければ、ステップ702へ進む。
【００６８】
ステップ702で、常駐化エクステントテーブル300の先頭ポインタ301と最終ポインタ302とをフロントポインタ１（304）を示す値とし、ステップ703へ進む。
【００６９】
ステップ703で、デバイス固有テーブル400の当該アドレス用常駐化エクステント数を更新し（１とする）、ステップ704へ進む。
【００７０】
ステップ704で、デバイス固有テーブル400の当該アドレス用常駐化先頭エクステントポインタと当該アドレス用常駐化最終エクステントポインタを常駐化エクステントテーブル300の常駐化エリア各エクステント情報303のフロントポインタ１（304）を示す値とする。この後、ステップ802（図８）へ進む。
【００７１】
ステップ705で、常駐化エクステントテーブル300の常駐化エリア各エクステント情報303内の空きエントリをサーチし、ステップ706へ進む。
【００７２】
ステップ706で、ステップ705でサーチした空きエントリの位置（ポインタ）の値を記憶し、ステップ707へ進む。
【００７３】
ステップ707で、常駐化エクステントテーブル300の現在の最終ポインタ302が指している該当エントリのフロントポインタの値をステップ706で記憶したエントリの位置（ポインタ）の値とし、ステップ708へ進む。
【００７４】
ステップ708で、ステップ705でサーチした空きエントリのバックポインタの値を常駐化エクステントテーブル300の現在の最終ポインタ302の値とし、ステップ801（図８）へ進む。
【００７５】
次に図８について、説明する。図８は、ホストユーティリティプログラム４または５からの常駐化設定命令が発行された時の処理を行う処理フローの一例である。
【００７６】
ステップ801で、常駐化エクステントテーブル300の最終ポインタ302の値をステップ706で記憶したエントリの位置（ポインタ）の値とし、ステップ802へ進む。
【００７７】
ステップ802で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数は０か否かのチェックを行う。つまり、該当アドレスの常駐エクステントが存在するか否かのチェックである。デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数が０であれば、ステップ803へ進む。デバイス固有テーブル400中の該当アドレスの常駐化エクステント数が０でなければ、ステップ806へ進む。
【００７８】
ステップ803で、デバイス固有情報テーブル400中の該当アドレスの常駐化先頭エクステントポインタの値と常駐化最終エクステントポインタの値をステップ706で記憶したエントリの位置（ポインタ）の値とし、ステップ804へ進む。
【００７９】
ステップ804で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数を更新し、ステップ805へ進む。
【００８０】
ステップ805で、チャネル６〜９に対し、正常終了報告を行い、ステップ501（図５）へ戻る。
【００８１】
ステップ806で、デバイス固有情報テーブル400中の該当アドレスの常駐化最終エクステントポインタの値をステップ706で記憶したエントリの位置（ポインタ）の値とし、ステップ804へ進む。
【００８２】
次に図９について、説明する。図９は、ホストユーティリティプログラム４または５から常駐化解除命令が発行された時の処理を行う処理フローの一例である。
【００８３】
ステップ901で、デバイス固有情報テーブル400中の該当アドレスの常駐化先頭エクステントポインタを利用し、常駐化エクステントテーブル300の常駐化エリア各エクステント情報303中で常駐化エクステントパラメータ200の常駐化先頭位置情報202と常駐化最終位置情報203が一致するエントリをサーチし、ステップ902へ進む。
【００８４】
ステップ902で、ステップ901でサーチしたエントリの位置（ポインタ）の値を記憶し、ステップ903へ進む。
【００８５】
ステップ903で、ステップ901でサーチしたエントリのフロントポインタとバックポインタを記憶し、ステップ904へ進む。
【００８６】
ステップ904で、ステップ902で記憶した位置（ポインタ）の値は、常駐化エクステントテーブル300の先頭ポインタ301の値と一致するか否かのチェックをする。ステップ904で、ステップ902で記憶した位置（ポインタ）の値が常駐化エクステントテーブル300の先頭ポインタ301の値と一致しないならば、ステップ1001（図10）へ進む。ステップ904で、ステップ902で記憶した位置（ポインタ）の値が常駐化エクステントテーブル300の先頭ポインタ301の値と一致すれば、ステップ905へ進む。
【００８７】
ステップ905で、常駐化エクステントテーブル300の先頭ポインタ301の値をステップ903で記憶したエントリのフロントポインタの値とし、ステップ1003（図10）へ進む。
【００８８】
次に図10について、説明する。図10は、ホストユーティリティプログラム４または５から常駐化解除命令の処理を行う処理フローの一例である。
【００８９】
ステップ1001で、ステップ902で記憶した位置（ポインタ）の値は、常駐化エクステントテーブル300の最終ポインタ302の値と一致するか否かのチェックをする。ステップ1001で、ステップ902で記憶した位置（ポインタ）の値が常駐化エクステントテーブル300の最終ポインタ302の値と一致しなければ、ステップ1005へ進む。ステップ1001で、ステップ902で記憶した位置（ポインタ）の値が常駐化エクステントテーブル300の最終ポインタ302の値と一致すれば、ステップ1002へ進む。
【００９０】
ステップ1002で、常駐化エクステントテーブル300の最終ポインタ302の値をステップ903で記憶したバックポインタの値とし、ステップ1003へ進む。
【００９１】
ステップ1003で、ステップ901でサーチしたエントリの常駐化先頭位置情報、常駐化最終位置情報の範囲をキャッシュ６０から常駐化解除し、ステップ1004へ進む。
【００９２】
ステップ1004、ステップ901でサーチした常駐化エリア各エクステント情報303中のエントリのフロントポインタ、バックポインタ、常駐化先頭位置情報、常駐化最終位置情報を初期化し、ステップ1101（図11）へ進む。
【００９３】
ステップ1005で、ステップ903で記憶したバックポインタで示されるエントリのフロントポインタの値をステップ901でサーチした常駐化エリア各エクステント情報303中のエントリのフロントポインタの値とし、ステップ1006へ進む。
【００９４】
ステップ1006で、ステップ903で記憶したフロントポインタで示されるエントリのバックポインタの値をステップ901でサーチした常駐化エリア各エクステント情報303中のエントリのバックポインタの値とする。
【００９５】
次に図11について、説明する。図11は、ホストユーティリティプログラム４または５からの常駐化解除命令の処理を行う処理フローの一例である。
【００９６】
ステップ1101で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数が１か否かのチェックをする。ステップ1101で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数が１であれば、ステップ1105へ進む。ステップ1101で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数が１でなければ、ステップ1102へ進む。
【００９７】
ステップ1102で、ステップ902で記憶したエントリの位置（ポインタ）の値は、該当アドレスの常駐化先頭エクステントポインタの値と一致するか否かのチェックを行う。ステップ1102で、ステップ902で記憶したエントリの位置（ポインタ）の値が該当アドレスの常駐化先頭エクステントポインタの値と一致すれば、ステップ1106へ進む。ステップ1102で、ステップ902で記憶したエントリの位置（ポインタ）の値が該当アドレスの常駐化先頭エクステントポインタの値と一致しなければ、ステップ1103へ進む。
【００９８】
ステップ1103で、ステップ902で記憶したエントリの位置（ポインタ）の値は、該当アドレスの常駐化最終エクステントポインタの値と一致するか否かのチェックを行う。ステップ1103で、ステップ902で記憶したエントリの位置（ポインタ）の値が、該当アドレスの常駐化最終エクステントポインタの値と一致すれば、ステップ1107へ進む。ステップ1103で、ステップ902で記憶したエントリの位置（ポインタ）の値が該当アドレスの常駐化最終エクステントポインタの値と一致しなければ、ステップ1104へ進む。
【００９９】
ステップ1104で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数を更新し、ステップ805（図８）へ進む。
【０１００】
ステップ1105で、デバイス固有情報テーブル400中の該当アドレスの常駐化エクステント数を０に、常駐化先頭エクステントポインタ、常駐化最終エクステントポインタを初期化し、ステップ805（図８）へ進む。
【０１０１】
ステップ1106で、デバイス固有情報テーブル400中の該当アドレスの常駐化先頭エクステントポインタの値をステップ903で記憶したフロントポインタの値とし、ステップ1104へ進む。
【０１０２】
ステップ1107で、デバイス固有情報テーブル400中の該当アドレスの常駐化最終エクステントポインタの値をステップ903で記憶したバックポインタの値とし、ステップ1104へ進む。
【０１０３】
本実施の形態によれば、ホストユーティリティプログラム４または５を用いて、複数トラックのユーザデータをまとめて、ディスクアレイサブシステム20のキャッシュ60に常駐化できるので、キャッシュヒット率が向上し、上位装置を含めた情報処理システムの性能向上を図ることができる。
【０１０４】
本実施の形態においては、常駐化エクステントテーブル300の常駐化エリア各エクステント情報303中の空きエントリのサーチを行っていたが、前記空きエントリを、空きエントリポインタ、空きエントリ数等の情報を用いて管理する方法を用いても、本発明が適用可能であることはいうまでもない。
【０１０５】
また、本実施の形態において、中央処理装置１，２上でホストユーティリティプログラム４または５を常時起動しておき、ユーザが端末装置３を使用して作成したユーザ情報91及びオペレーティングシステム等が作成、使用している稼動情報92に基づいてディスクアレイサブシステム20のキャッシュ60上に任意のデータセットの常駐化及び常駐化解除を行うことができるので、情報処理システムの稼動状況に応じたきめこまやかな動的キャッシュ常駐化を行うことができることはいうまでもない。
【０１０６】
本実施の形態においては、中央処理装置１，２上のホストユーティリティ４または５より、キャッシュ常駐化及びキャッシュ常駐化解除のコマンド等を受領し、ユーザデータをディスクアレイサブシステム20のキャッシュ60上に任意のデータセットの常駐化及び常駐化解除を行うケースであったが、後述する方法でもキャッシュ常駐化及びキャッシュ常駐化解除を行うことが可能である。
【０１０７】
具体的には、サービスプロセッサ21はディスクアレイサブシステム20の稼動情報の格納ファイルを持っており、ディスクアレイサブシステム20の稼動情報をチャネルインタフェース制御部31〜35で採取し、チャネルインタフェース制御部31〜35が共有メモリ50に一旦格納した後、一定時間毎にチャネルインタフェース制御部31〜35がバス41を通じて、共有メモリ50上に存在するディスクアレイサブシステム20の稼動情報をサービスプロセッサ21に報告する。
【０１０８】
サービスプロセッサ21は、チャネルインタフェース制御部31〜35から報告されたディスクアレイサブシステム20の稼動情報を格納ファイルに格納する。そしてサービスプロセッサ21は、一定時間毎にディスクアレイサブシステム20の稼動情報の格納ファイルを解析して、常駐化及び常駐化解除の指示、物理シリンダ及びヘッドアドレス、デバイスアドレス等々の情報をチャネルインタフェース制御部31〜35に対し、バス41を通じて指示する。チャネルインタフェース制御部31〜35は、サービスプロセッサ21からの前記情報の指示に基づき、ユーザデータをディスクアレイサブシステム20のキャッシュ50上に任意のデータセットの常駐化及び常駐化解除を行う。
【０１０９】
本実施の形態においては、中央処理装置が２台のケースであったが、中央処理装置が１台或いは３台以上であっても本発明が適用可能である。また、本実施の形態においては、処理装置は中央処理装置のみ接続構成であったが、パソコンと外部記憶装置とを用いた接続構成あるいは中央処理装置とパソコンのシェア接続構成でも本発明が適用可能である。つまり、パソコンのインタフェースは、現在SCSIインタフェース主流であるが、パソコンとディスクアレイサブシステム20間のインタフェースプロトコルを問わず、パソコンとディスクアレイサブシステム20間のインタフェースで本実施の形態の様にキャッシュ常駐化あるいはキャッシュ常駐化解除のコマンド等が定義でき、パソコン上でホストユーティリティ４または５を実行させて、パソコン上のホストユーティリティ４または５からディスクアレイサブシステム20に対し、キャッシュ常駐化あるいはキャッシュ常駐化解除指示が可能であれば、本発明が適用可能である。
【０１１０】
また、上位装置とディスクアレイサブシステム20間のインタフェースプロトコルを問わず、上位装置とディスクアレイサブシステム20間のインタフェースで本実施形態の様にキャッシュ常駐化あるいはキャッシュ常駐化解除のコマンド等が定義でき、上位装置上でホストユーティリティ４または５を実行させて、上位装置上のホストユーティリティ４または５からディスクアレイサブシステム20に対し、キャッシュ常駐化あるいはキャッシュ常駐化解除指示が可能であれば、本発明が適用可能であることはいうまでもない。
【０１１１】
本実施の形態では、外部記憶装置の例であったが、本発明が外部記憶制御装置にも適用可能であることはいうまでない。
【０１１２】
【発明の効果】
本発明の動的キャッシュ常駐化方法によれば、複数トラックのユーザデータをキャッシュに常駐化させることにより、キャッシュヒット率が向上するため、情報処理システム全体の性能向上を図ることができる。
【０１１３】
また、本発明の動的キャッシュ常駐化方法によれば、複数トラックのユーザデータをきめこまかくキャッシュに常駐化及び常駐化解除を行うことにより、キャッシュヒット率が向上するため、情報処理システム全体の性能向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の一実施例である情報処理システムの概要を示すブロック図である。
【図２】本発明の一実施例である動的キャッシュ常駐化を適用するのに必要な常駐化エクステントパラメータの構造の一例を示す説明図である。
【図３】本発明の一実施例である動的キャッシュ常駐化を適用するのに必要な常駐化エクステントテーブルの構造の一例を示す説明図である。
【図４】本発明の一実施例である動的キャッシュ常駐化を適用するのに必要なデバイス固有情報テーブルの構造の一例を示す説明図である。
【図５】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図６】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図７】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図８】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図９】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図１０】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【図１１】本発明の一実施例である動的キャッシュ常駐化の作用の一例を示す流れ図である。
【符号の説明】
１，２…中央処理装置、３…端末装置、４，５…ホストユーティリティプログラム、６〜９…チャネル、10〜13…ケーブル、20…ディスクアレイサブシステム、21…サービスプロセッサ、31〜35…チャネルインタフェース制御部、41，42…バス、50…共用メモリ、60…キャッシュ、71〜74…ドライブインタフェース制御部、81，82…ディスク群、200…常駐化エクステントパラメータ、201…常駐化モード指定、202…常駐化先頭位置情報、203…常駐化最終位置情報、300…常駐化エクステントテーブル、301…先頭ポインタ、302…最終ポインタ、303…常駐化エリア各エクステント情報、304，308，312…フロントポインタ、305，309，313…バックポインタ、306，310，314…常駐化先頭位置情報、307，311，315…常駐化最終位置情報、400…デバイス固有情報テーブル、401，404，407…常駐化エクステント数、402，405，408…常駐化先頭エクステントポインタ、403，406，409…常駐化最終エクステントポインタ。
【図１】
0003812928.tif 000002
【図２】
0003812928.tif 000003
【図３】
0003812928.tif 000004
【図４】
0003812928.tif 000005
【図５】
0003812928.tif 000006
【図６】
0003812928.tif 000007
【図７】
0003812928.tif 000008
【図８】
0003812928.tif 000009
【図９】
0003812928.tif 000010
【図１０】
0003812928.tif 000011
【図１１】
0003812928.tif 000012