(57)【特許請求の範囲】
【請求項１】
中央処理装置に接続され、複数の記憶装置を有する装置において、
前記中央処理装置に接続されたディレクタと、
前記ディレクタに接続されたキャッシュメモリを備え、
前記ディレクタは、前記キャッシュメモリ内の、前記複数の記憶装置に書き出す前のデータの量が、閾値以上か否かを判定する手段と、
前記データ量が、前記閾値以上であると判定したことに応じて、前記キャッシュメモリの割り当て制限データ量を前記複数の記憶装置毎に設定する手段と、
前記中央処理装置がいずれかの記憶装置について前記割り当て制限データ量以上の前記キャッシュメモリの割り当てを要求したことに応じて、前記中央処理装置から前記キャッシュメモリへの書き出し処理を待たせる手段と、
前記複数の記憶装置に未書き出しのデータを、前記キャッシュメモリから前記複数の記憶装置に書き出す手段を有する装置。
【請求項２】
前記中央処理装置からのシーケンシャルアクセス命令により生成された未書き出しのデータが、予め決められた量以上か否かを判定する手段と、
前記キャッシュメモリから複数の記憶装置の一つに、シーケンシャルデータを書き込む手段を有する、請求項１記載の装置。
【請求項３】
前記記憶装置に未書き出しのデータを、前記キャッシュメモリから前記複数の記憶装置に書き出す手段は、前記複数の記憶装置のうち、前記中央処理装置が書き出し処理を待たされているデータが記憶されるべき記憶装置の未書き出しデータを優先的に、当該記憶装置へ前記キャッシュメモリから書き出すことを特徴とする請求項１に記載の装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、中央処理装置と、キャッシュメモリを有する制御装置と、記憶装置からなる情報処理システムにおいて、キャッシュメモリ内の領域割当ての制御を行う装置および方法に関する。
【０００２】
【従来の技術】
中央処理装置とキャッシュメモリ間で行なうデ−タ転送処理において、更新したキャッシュメモリ内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリからディスク装置に書き出す処理をライトアフタ処理と呼ぶ。ライトアフタ処理を行なう制御装置において、キャッシュメモリの使用方法は、例えば、特公昭５９−７９８６号公報、特開昭６２−１９８９４６号公報に記載されている。
【０００３】
特公昭５９−７９８６号公報では、制御装置は、制御装置内のキャッシュメモリからファ−ストイン／ファ−ストアウト(First-in/First-out)やＬＲＵ(Least Recentry Used)制御により、ライトアフタデ−タをディスク装置に書き出す。特開昭６２−１９８９４６号公報では、制御装置は、中央処理装置からのライト要求に対し、ライトアフタデ−タが所定数より少ない場合、中央処理装置とキャッシュメモリ間のデ−タ転送を行なう。一方、ライトアフタデ−タが所定数以上の場合、中央処理装置とディスク装置間のデ−タ転送を行ない、その後、所定量以上分のライトアフタデ−タをキャッシュメモリからディスク装置に書き出す。中央処理装置からのリ−ド要求に対し、キャッシュメモリ内に要求されたデ−タがなく、かつ、要求されたデ−タをキャッシュメモリに入れるために、キャッシュメモリから捨てなければならないデ−タがライトアフタデ−タの場合、当該ライトアフタデ−タをキャッシュメモリからディスク装置に書き出した後、中央処理装置からリ−ド要求されたデ−タをディスク装置から読みだし、当該デ−タを中央処理装置に転送するとともに、キャッシュメモリに格納する。
【０００４】
【発明が解決しようとする課題】
制御装置は、中央処理装置からのライト指示に対し、中央処理装置とキャッシュメモリ間のデ−タ転送処理を行ない、キャッシュメモリにライトアフタデ−タを格納する。ライトアフタデ−タをディスク装置に書き出す処理は、制御装置が前記のライト指示とは、非同期に行なう。ところで、ディスク装置は、デ−タを記録する媒体である複数のディスクと、ディスクのデ−タ記録面に対応して設けられたデ−タを読み書きするためのヘッドから構成されている。前記ディスクが１回転する間に、前記ヘッドが読み書き可能な円状の記録単位をトラックと呼ぶ。前記ディスクには複数のトラックが存在する。ディスク装置に記録されたデ−タを読み書きする時、前記ヘッドを前記デ−タを含むトラックの位置に移動させる。この動作をシ−ク動作と呼ぶ。ライトアフタ制御は、中央処理装置からのライト指示に対し、中央処理装置とキャッシュメモリ間のデ−タ転送処理を行ない、ディスク装置とのデ−タ転送処理を行なわない。このため、シ−ク動作のための時間がかからず、高速な応答が可能となる。キャッシュメモリに存在するデ−タのうち、ライトアフタデ−タ、すなわち、まだディスク装置に書き込まれていないデ−タでないものは、ディスク装置内の内容とそれに対応するキャッシュメモリ内の内容が一致しているため、随時、キャッシュメモリから消去することが可能である。しかし、ライトアフタデ−タは、キャッシュメモリ内の内容とそれに対応するディスク装置内の内容が一致していないため、キャッシュメモリ内の内容をディスク装置に書きだしてからでないと、キャッシュメモリから消去できない。ライトアフタデ−タでキャッシュメモリが一杯になってしまうため、キャッシュメモリ内のライトアフタデ−タをディスク装置に書き出してからでないと新たなライトアフタデ−タを作成できない。キャッシュメモリ内のライトアフタデ−タをディスク装置に書きだすには、当然、シ−ク動作のための時間がかかる。従って、ライトアフタ制御による高速応答は期待できない。ここで、ディスク装置に対する処理要求の内容と処理要求の頻度は、一定ではなく、ディスク装置に格納されたデ−タに依存している。例えば、あるディスク装置に対する処理要求が高頻度に発生し、ライトアフタデ−タを大量に作成すると、他のディスク装置がライトアフタデ−タを作成できる量は著しく制限される。この場合、ＣＰＵからの見掛け上のディスク性能は、ライトアフタデ−タを大量に作成したディスク装置の方が、他のディスク装置より良くなる。しかも、真に高速応答を要求されているディスク装置に対して大量のライトアフタデ−タの作成を許容するのではなく、時間的に早くキャッシュメモリを占有したディスク装置が大量のライトアフタデ−タを作成してしまう。従って、ディスク装置毎のキャッシュメモリの割当に関しては、他のディスク装置による割当を阻害しない、適切な配分が重要となる。また、キャッシュメモリがライトアフタデ−タで一杯になると、全てのディスク装置に対するライトアフタ処理ができなくなり、情報処理システム全体の性能が劣化する。この場合も、ディスク装置毎のキャッシュメモリの割当を適切な配分を行うことにより、キャッシュメモリがライトアフタデ−タで一杯になることを抑制することができる。
【０００５】
しかし、従来技術において、特公昭５９−７９８６号公報では、ディスク装置ごとのキャッシュメモリの割り当てに関しては、考慮されていなかった。特開昭６２−１９８９４６号公報では、キャッシュメモリ内のライトアフタデ−タの総量を制限する効果はあるが、ディスク装置ごとのキャッシュメモリの割り当て、および、キャッシュメモリの適切な配分方法に関しては、考慮されていなかった。
【０００６】
本発明の目的は、記憶装置に対するキャッシュメモリの割り当てに関し、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置および方法を提供することにある。
【０００７】
【課題を解決するための手段】
前記制御装置は、前記記憶装置内のデ−タの一部あるいは前記記憶装置に書き出す前のデ−タを記憶するキャッシュメモリと、前記制御装置の管理情報を記録するディレクトリと、キャッシュメモリ、ディレクトリおよびデ−タ転送を制御するディレクタを有し、前記ディレクタは、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量が閾値以上かを判定する手段と、前記キャッシュメモリ内の前記デ−タ量が閾値以上の場合、記憶装置毎の前記デ−タ量の割当制限を設定する手段と、前記キャッシュメモリ内の前記デ−タ量が閾値未満の場合、前記記憶装置毎の前記デ−タ量の割当制限を解除する手段と、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段と、前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段と、を有する。
【０００８】
前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段は、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、デ−タ書きだし処理を待たせている前記記憶装置のグル−プから１つの記憶装置に対応するデ−タを選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タを、前記記憶装置毎の前記デ−タ量の割当制限を設定している前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、前記デ−タを前記キャッシュメモリ有する前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、からなる。
【０００９】
前記ディレクタは、さらに、前記中央処理装置によりシ−ケンシャルアクセスが指示されて作成されたライトアフタデ−タが規定数以上存在するかを判定する、シ−ケンシャルライトアフタ判定手段と、シ−ケンシャルライトアフタの対象が存在する場合、前記ライトアフタデ−タをキャッシュメモリから記憶装置に書き出すシ−ケンシャルライトアフタ処理を行う手段と、を有する。
【００１０】
前記ディレクタは、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を、前記中央処理装置に報告する手段と、前記中央処理装置から指示された、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定する手段と、を有する。
【００１１】
【作用】
前記制御装置は、前記記憶装置内のデ−タの一部あるいは前記記憶装置に書き出す前のデ−タを記憶するキャッシュメモリと、前記制御装置の管理情報を記録するディレクトリと、キャッシュメモリ、ディレクトリおよびデ−タ転送を制御するディレクタを有し、前記ディレクタは、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量が閾値以上かを判定する手段により、キャッシュメモリへの前記デ−タの書き出しを制御できる。前記キャッシュメモリ内の前記デ−タ量が閾値以上の場合、記憶装置毎の前記デ−タの割当量を設定する手段により、記憶装置毎に、前記デ−タの格納領域が保障される。前記キャッシュメモリ内の前記デ−タ量が閾値未満の場合、前記記憶装置毎の前記デ−タ量の割当制限を解除する手段により、デ−タ量の判定に要する処理を低減できる。前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、当該記憶装置に書き出すべき前記デ−タが増加することを防ぐ。前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの量を減少させることができる。この際、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、デ−タの書きだし処理を待たせている前記記憶装置のグル−プから１つの記憶装置に対応するデ−タを選択して、前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの割当て制限が原因で待ち状態となったデ−タの書きだし処理を優先して行なうことができる。キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タを、前記記憶装置毎の前記デ−タ量の割当制限を設定している前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの割当て制限が原因で生じた待ち状態が放置された状態とならない。従って、記憶装置に対するキャッシュメモリの割り当てに関し、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【００１２】
さらに、前記中央処理装置によりシ−ケンシャルアクセスが指示されて作成されたライトアフタデ−タが規定数以上存在するかを判定する、シ−ケンシャルライトアフタ判定手段により、前記中央処理装置から連続的にライトアフタデ−タを作成できる。連続的にライトアフタデ−タが作成されると、当該記憶装置に対するライトアフタデ−タは、急激に増加する。このため、前記ライトアフタデ−タをキャッシュメモリから記憶装置に書き出すシ−ケンシャルライトアフタ処理を行う手段により、前記中央処理装置から連続的に作成されたライトアフタデ−タをキャッシュメモリから記憶装置に書き出すことができる。これにより、中央処理装置からシ−ケンシャルアクセスが指示された場合でも、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【００１３】
前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を、前記中央処理装置に報告する手段により、前記中央処理装置は、記憶装置に対する負荷状況を把握できる。前記中央処理装置から指示された、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定する手段により、前記中央処理装置が要求する記憶装置の応答時間に応じて、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定することができる。従って、中央処理装置の要求を加味した他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【００１４】
【実施例】
以下、本発明の一実施例について説明する。
【００１５】
図２は、本発明の一実施例を示す情報処理システムの構成図である。情報処理システムは、中央処理装置(ＣＰＵ)２０とＣＰＵ２０に接続された制御装置２１と制御装置２１に接続された少なくとも１台のディスク装置２５からなる。制御装置２１は、ディレクトリ２３、キャッシュメモリ２４と少なくも１つのディレクタ２２を有する。
【００１６】
図３は、ディスク装置２５の構成図である。ディスク２７は、デ−タを記録する媒体であり、ディスク装置２５内に複数存在する。ヘッド２８は、デ−タを読み書きする装置であり、ディスク２７のデ−タ記録面に対応して複数個存在する。ディスク２７が１回転する間に、ヘッド２８が読み書き可能な円状のデ−タ記録単位をトラック２９と呼ぶ。トラック２９は、ディスク２７上に複数存在する。トラック２９には、デ−タの記録単位の一種であるレコ−ドが格納される。あるデ−タを読み書きするために、ヘッド２８を現在位置からそのデ−タを含むトラック２９を読み書きできる位置に移動する動作を、シ−ク動作と呼ぶ。また、この動作のための要求を位置付け指示と呼ぶ。シ−ク動作を行なうことなしに、ヘッド２８の選択操作のみで、記録あるいは再生が可能なトラック２９の集合をシリンダと呼ぶ。ディレクタインタフェ−ス３２は、ディスク装置２５とディレクタ２２とのインタフェ−スであり、ディレクタ２２の指示に従ってヘッド２８の制御を行なう。インデクス３０はディスク２７上にある基準位置である。
【００１７】
図４は、本実施例におけるトラック内のレコ−ド構成図である。図４（ａ）に示すように、レコ−ド３３は、制御部３４とデ−タ部３５からなる。図４（ｂ）に示すように、制御部３４は、レコ−ド位置３４１、シリンダ番号３４２、トラック番号３４３、レコ−ド番号３４４、およびデ−タ長３４５を記録する。レコ−ド位置３４１は、当該レコ−ド３３のトラック２９上での位置である。レコ−ド番号３４４、トラック番号３４３、シリンダ番号３４２は、それぞれ、当該レコ−ドの番号、レコ−ド３３が記録されたトラックの番号、当該トラック２９が含まれるシリンダの番号である。デ−タ長３４５は、デ−タ部３５の長さを示す。デ−タ部３５は、デ−タ長３４５で指示された長さのデ−タを記録する。インデクス３０と制御部３４との間、レコ−ド３３内の制御部３４とデ−タ部３５との間、および、デ−タ部３５と次のレコ−ド３３の制御部３４との間には、ギャップ３６が存在する。
【００１８】
図１は、本発明の一実施例における情報処理システムを示す図である。制御装置２１に設けられたディレクタ２２は、ＣＰＵ２０とディスク装置２５との間、ＣＰＵ２０とキャッシュメモリ２４との間、および、キャッシュメモリ２４とディスク装置２５との間で行うデ−タ転送を制御する。ＣＰＵ起動処理１０は、ＣＰＵ２０からの指示によりＣＰＵ２０とディスク装置２５間、および、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送を実行する。ＣＰＵ２０とキャッシュメモリ２４との間のデ−タ転送において、書きかえたキャッシュメモリ２４内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出す処理をライトアフタ処理と呼ぶ。キャッシュヒットミス判定処理１１では、処理対象のトラック２９の内容がキャッシュメモリ２４内にあるかを判定する。トラック２９の内容がキャッシュメモリ２４内にある場合、キャッシュヒットと呼び、トラック２９の内容がキャッシュメモリ２４内にない場合、キャッシュミスと呼ぶ。キャッシュヒットの場合、キャッシュヒット処理１２を行なう。キャッシュヒット処理１２では、キャッシュ割り当て制限判定処理１３によりライトアフタデ−タに対するキャッシュメモリ２４の割り当て状況を判定し、割当て不可能な場合、割り当て待ち処理１４により、キャッシュメモリの割り当てが可能となるまで待つ。ＣＰＵキャッシュ転送処理１５では、ＣＰＵ２０の指示に従い、キャッシュメモリ２４内のデ−タを読み書きする。つぎに、シ−ケンシャル判定処理１６を行う。シ−ケンシャル判定処理１６では、シ−ケンシャルライトアフタ判定処理１７により、ＣＰＵ２０からのシ−ケンシャルアクセス指示によりライトアフタデ−タがキャシュメモリ２４内にたまっていて、ライトアフタ処理が必要かを判定する。ライトアフタ処理が不要の場合、処理を終了する。ライトアフタ処理が必要な場合、シ−ケンシャルライトアフタ処理１８を行なう。シ−ケンシャルライトアフタ処理１８では、ＣＰＵ２０が指示したシ−ケンシャルアクセスによるライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出す。キャッシュミスの場合、ＣＰＵディスク転送処理１９は、ＣＰＵ２０の指示に従い、ディスク装置２５内のデ−タを読み書きする。キャッシュ負荷状況判定処理１は、キャッシュメモリ２４内のライトアフタデ−タ量により、キャッシュメモリ２４の負荷状況を判定する。ライトアフタデ−タ量判定処理２により、ライトアフタデ−タの量が閾値以上かを判定する。閾値以上の場合、割り当て制限設定処理３により、ディスク装置２５毎にライトアフタデ−タの量に関する制限値を設定する。閾値未満の場合、割り当て制限解除処理４により、ディスク装置２５毎にライトアフタデ−タの量に関する制限値を解除する。ライトアフタ処理５は、ライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出す処理であり、ディレクタ２２が空いた時間を利用して行う。割り当て制限ライトアフタ判定処理６により、ライトアフタデ−タの割り当て制限が設定されているディスク装置２５のライトアフタ処理が可能かを判定する。ライトアフタ判定処理７により、ライトアフタデ−タの割り当て制限が設定されていないディスク装置２５のライトアフタ処理が可能かを判定する。割り当て制限ライトアフタ判定処理６あるいはライトアフタ判定処理７でライトアフタ処理対象を検出した場合、ライトアフタ実行処理８により、ライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出す。
【００１９】
以下、ディスク装置２５に記憶されたレコ−ド３３の読み書き動作について示す。ディレクタ２２は、読み書きの対象とするレコ−ド３３を記録したディスク装置２５が空き状態ならば、当該ディスク装置２５と接続し、当該レコ−ド３３を読み書きできる位置にヘッド２８を位置付けるため、位置付け指示を行なう。ディレクタ２２は、ディスク装置２５が位置付け動作を行っている間に、別のディスク装置２５に対する入出力処理を実行できるように、ディスク装置２５との接続を切り離す。位置付け指示されたディスク装置２５はシ−ク動作を行ない、レコ−ド３３を読み書きできる位置にヘッド２８が到達するとディレクタ２２に完了報告を行なう。この際、ディレクタ２２が空いていると、ディレクタ２２が当該ディスク装置２５と再接続を行い、ディスク装置２５に記憶されたレコ−ド３３の読み書きを行なう。ディレクタ２２が、例えば、別のディスク装置２５とのデ−タ転送中などにより、ビジ−である場合、当該ディスク装置２５はディレクタ２２とのデ−タ転送は行なえず、ディスク２７が回転し、再度、レコ−ド３３を読み書きできる位置にヘッド２８が到達するまで、待たされる。
【００２０】
図５は、ディレクトリ２３の構成を示す図である。ディレクトリ２３には、スロットコントロ−ルブロック(ＳＣＢ)４０、サ−チテ−ブル４１、ＭＲＵ(Most Recently Used)ポインタ４２、ＬＲＵ(Least Recently Used)ポインタ４３、空きＳＣＢポインタ４４、タスクコントロ−ルブロック(ＴＣＢ)４５、および、負荷状況管理情報４６が存在する。それぞれの内容は、以下で説明する。
【００２１】
まず、ＳＣＢ４０の内容とキャッシュメモリ２４との関係を図６と図７で説明する。図６は、スロットコントロ−ルブロック(ＳＣＢ)４０の構成図である。図７は、ＳＣＢ４０とキャッシュスロットとの関係図である。キャッシュメモリ２４は、キャッシュスロット２４１と呼ぶ単位に分割する。１キャッシュスロットは、１トラック分のデ−タを格納できるサイズである。ＳＣＢ４０は、キャッシュスロット２４１を管理する情報である。
【００２２】
図６に示すＳＣＢ占有フラグ４００は、ＳＣＢの使用状況を示すフラグであり、処理がＳＣＢを使用中の場合オンにする。前方向ポインタ４０１と後方向ポインタ４０２は、ＳＣＢ４０をＭＲＵ(Most Recently Used)順にチェインする時に使用する。使用方法に関しては、図８で説明する。ディスク装置番号４０３、シリンダ番号４０４、トラック番号４０５は、それぞれ、ＳＣＢ４０にデ−タを格納したトラック２９に対応するディスク装置の番号、シリンダの番号、トラックの番号を記録する。スロットポインタ４０６は、ＳＣＢ４０が管理しているキャッシュスロット２４１を示す。ライトアフタフラグ４０７は、キャッシュスロット２４１にライトアフタデ−タを格納しているか示すフラグである。当該フラグがオンの場合、当該キャッシュスロット２４１は、ライトアフタデ−タを格納していることを示す。レコ−ドポインタ４０８は、キャッシュスロット２４１におけるレコ−ド３３の記録開始位置を示す。更新レコ−ドポインタ４０９は、キャッシュスロット２４１におけるライトアフタデ−タを格納しているレコ−ド３３記録開始位置を示す。レコ−ドポインタ４０８と更新レコ−ドポインタ４０９は、トラック２９に記録できる最大のレコ−ド３３の数分を用意する。キャッシュスロット２４１に記録されていないレコ−ド３３のレコ−ドポインタ４０８と、ライトアフタデ−タを格納していないレコ−ド３３の更新レコ−ドポインタ４０９は、nullとする。シ−ケンシャルライトフラグ４１０は、ＣＰＵ２０からのシ−ケンシャルアクセス指示により、ライトアフタデ−タを作成したことを示す。
【００２３】
図８は、サ−チテ−ブル４１とＳＣＢ４０の関係を示す図である。サ−チテ−ブル４１は、ディスク装置番号４１１、シリンダ番号４１２、トラック番号４１３およびサ−チポインタ４１４からなり、どのディスク装置のシリンダ、トラックに属するデ−タがキャッシュメモリ２４に格納されているかを検索するためのテ−ブルである。トラック２９毎にＳＣＢ４０へのサ−チポインタ４１４を有し、トラック２９に対応するデ−タがキャッシュメモリ２４に格納されているか否かを示す。あるトラック２９に対応するサ−チポインタ４１４がnullの場合、当該トラック２９に対応するデ−タはキャッシュメモリ２４に格納していないことを示す。サ−チテ−ブル４１の内容は、制御装置２１に接続可能なディスク装置２５に含まれるトラック２９の数分を用意する。
【００２４】
トラック２９に割り当てられたＳＣＢ４０は、ＭＲＵポインタ４２、ＬＲＵポインタ４３、前方向ポインタ４０１および後方向ポインタ４０２でチェインする。前方向ポインタ４０１と後方向ポインタ４０２は、トラック２９に割り当てられたＳＣＢ４０をＭＲＵ順にチェインするためのポインタである。ＭＲＵポインタ４２は、最も現在時刻に近い時刻に入出力対象となったトラック２９に対応するＳＣＢ４０を示し、ＬＲＵポインタ４３は、最も長い時間入出力対象となっていないトラック２９に対応するＳＣＢ４０をさす。
【００２５】
トラック２９に割り当てられていないＳＣＢ４０は、空きＳＣＢポインタ４４、前方向ポインタ４０１および後方向ポインタ４０２でチェインする。空きＳＣＢポインタ４４は、トラック２９に割り当てられていないＳＣＢ４０をチェインするための先頭ポインタであり、これらＳＣＢ４０のうち、ひとつをポイントする。トラック２９が割り当てられていない残りのＳＣＢ４０は、前方向ポインタ４０１および後方向ポインタ４０２でチェインする。トラック２９が割り当てられていないＳＣＢ４０が存在しない場合、空きＳＣＢポインタ４４は、nullとする。
【００２６】
図９は、タスクコントロ−ルブロック(ＴＣＢ)の構成図である。ＴＣＢ４５は、制御装置２１で処理中のタスクを管理する情報であり、ディスク装置２５毎に存在する。ＴＣＢ４５は、ディスク装置番号５０、論理デバイス情報６０、および、物理デバイス情報７０からなる。まず、論理デバイスと物理デバイスについて説明する。ディレクタ２２が行なうデ−タ転送処理には、ＣＰＵ２０とディスク装置２５間のデ−タ転送処理、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送処理、および、キャッシュメモリ２４とディスク装置２５間のデ−タ転送処理がある。ここで、キャッシュメモリ２４とディスク装置２５間のデ−タ転送処理は、ディスク装置２５を使用して処理を実行するが、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送処理は、ディスク装置２５を使用する必要がない。従って、キャッシュメモリ２４とディスク装置２５間のデ−タ転送処理と、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送処理は、独立に実行可能である。ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送処理を行なう時、上記２つの処理同士を互いに排他的に行なうため、論理デバイスを設ける。キャッシュメモリ２４とディスク装置２５間のデ−タ転送処理を行なう時、上記２つの処理同士を互いに排他的に行なうため、物理デバイスを設ける。従って、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送処理では、論理デバイスにより排他制御を行ない、キャッシュメモリ２４とディスク装置間のデ−タ転送処理では、物理デバイスにより排他制御を行なう。ＣＰＵ２０とディスク装置間のデ−タ転送処理を行なう時、論理デバイスと物理デバイスの両方を使用するものとする。
【００２７】
図９に示したＴＣＢ４５の内容を以下に説明する。ディスク装置番号５０は、当該ＴＣＢ４５が制御対象とするディスク装置の番号を示す。論理デバイス情報６０は、ＣＰＵ２０とキャッシュメモリ２４間で行なうデ−タ転送処理に関する情報であり、以下の内容からなる。占有処理情報６００は、論理デバイスを占有している処理の実行状況を示す。実行情報６０１は、タスクの実行状況を示す。実行状況とは、未使用、実行可能、実行中、あるいは、待ち状態である。未使用状態は、論理デバイスを使用している処理がないことを示す。実行可能状態は、論理デバイスを占有している処理をディレクタが実行できる状態であることを示す。実行中状態は、論理デバイスを占有している処理が実行中であることを示す。待ち状態は、待ち状態情報６０１に示す理由が解除されるのを待っている状態である。待ち状態が解除されると実行可能状態となり、ディレクタが実行可能状態を検出するとその処理を実行中として処理を継続する。待ち状態情報６０２は、実行情報６０１が待ち状態の場合、その理由を示す。待ち状態の理由としては、物理デバイス待ち、ＳＣＢ待ち、あるいは、キャッシュ割り当て待ちがある。物理デバイス待ちは、論理デバイスを占有している処理がディスク装置２５を使用するため、物理デバイスの空きを待っている状態である。ＳＣＢ待ちは、物理デバイスを占有している処理が占有しているＳＣＢ４０が空くのを待っている状態である。キャッシュ割当て待ちは、ライトアフタデ−タに関する容量制限のため、ライトアフタデ−タ量が制限値未満になるのを待っている状態である。シリンダ番号６０３は、処理対象とするトラック２９が含まれるシリンダ番号を示す。エントリ数６０４は、後述するトラックリストに記録したエントリの数を格納する。トラックポインタ６０５は、処理が実行対象としているトラックリストのエントリを示す。トラックリストは、処理対象とするトラック番号６０６を１エントリとして記録する。トラック番号６０６は、処理が動作対象とするトラック２９の番号を示す。ビジ−報告フラグ６０７は、ＣＰＵ２０が指示した処理を行なう時、当該ディスク装置２５が使用中のため、ＣＰＵ２０にビジ−を報告したか否かを示す。当該フラグがオンの場合、ＣＰＵ２０にビジ−を報告済みであることを示す。物理デバイス情報７０は、ＣＰＵ２０とディスク装置２５間で行なうデ−タ転送処理、および、キャッシュメモリ２４とディスク装置２５間で行なうデ−タ転送処理に関する情報である。その内容は、占有処理情報７００、実行情報７０１、シリンダ番号７０３、エントリ数７０４、トラックポインタ７０５、および、トラック番号７０６であり、それぞれ、論理デバイス情報６０における、占有処理情報６００、実行情報６０１、シリンダ番号６０３、エントリ数６０４、トラックポインタ６０５、および、トラック番号６０６に対応する情報である。待ち状態情報７０２は、実行情報７０１が待ち状態の場合、その理由を示す。待ち状態の理由としては、位置付け待ちがある。
【００２８】
図１０は、負荷状況管理情報の構成図である。負荷状況管理情報４６は、キャッシュメモリ２４内のライトアフタデ−タの占有状況を管理する情報である。割り当て可能スロット数４６０は、ライトアフタデ−タに割り当て可能なキャッシュスロット２４１の数を示す。占有スロット数４６１は、キャッシュメモリ２４内のライトアフタデ−タを含むキャッシュスロットの数を示す。過負荷設定スロット数４６２、過負荷解除スロット数４６３は、ライトアフタデ−タを含むキャッシュスロット２４１において、それぞれ、キャッシュ過負荷を設定するキャッシュスロット２４１の数とキャッシュ過負荷を解除するキャッシュスロット２４１の数を示す。過負荷フラグ４６４は、ライトアフタデ−タを含むキャッシュスロット２４１の数が、過負荷設定スロット数４６２以上となった時から、過負荷解除スロット数４６３未満になったときまでの状態を示すフラグである。スロット待ちＴＣＢポインタ４６５は、キャッシュスロット２４１の割り当て待ちのため、ＣＰＵ２０からの入出力要求を待たせているＴＣＢ４５を示すポインタである。ディスク割り当て情報４７０は、ディスク装置２５ごとに存在し、カレントスロット数４７１、制限スロット数４７２、設定基準スロット数４７３、解除基準スロット数４７４、過負荷待ちフラグ４７５、および、最低割り当てスロット数４７６からなる。カレントスロット数４７１は、それぞれのディスク装置２５に対して割り当てられたキャッシュスロット２４１の数であり、かつ、ライトアフタデ−タを含むキャッシュスロット２４１の数を示す。制限スロット数４７２は、それぞれのディスク装置２５に対して割り当て可能なライトアフタデ−タを含むキャッシュスロット２４１の数を示す。設定基準スロット数４７３は、制限スロット数４７２を決定するための基準とするキャッシュスロット２４１の数であり、かつ、ライトアフタデ−タを含むキャッシュスロット２４１の数を示す。解除基準スロット数４７４は、それぞれのディスク装置２５に対してキャッシュスロット２４１の割り当て制限を解除するための数であって、かつ、ライトアフタデ−タを含むキャッシュスロット２４１の数を示す。制限スロット数４７２、設定基準スロット数４７３、および、解除基準スロット数４７４が無効の場合、その内容はnullとする。過負荷待ちフラグ４７５は、カレントスロット数４７１が制限スロット数４７２以上になったため、キャッシュスロット２４１の割り当てを待たせている状態を示す。最低割り当てスロット数４７６は、ディスク装置２５に割り当てるキャッシュスロット２４１の数の下限値である。
【００２９】
以下、ディレクタ−２２が実行する処理内容を説明する。
【００３０】
図１１は、図１に示したキャッシュ負荷状況判定処理１のフロ−チャ−トである。キャッシュ負荷状況判定処理１は、ライトアフタデ−タを含むキャッシュスロット２４１の占有量からキャッシュメモリ２４の負荷状況を判定する処理である。本実施例では、負荷状況管理情報４６における、割り当て可能スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、および、最低割り当てスロット数４７６を、予め定めておく。ただし、過負荷設定スロット数４６２は、割り当て可能スロット数４６０以下でないと、ライトアフタデ−タを含むキャッシュスロット２４１の過負荷状況を設定できない。過負荷解除スロット数４６３は、過負荷設定スロット数４６２以下である。ステップ１００では、過負荷フラグ４６４がオンかを判定する。当該フラグがオンの場合、ステップ１１０に進み、オフの場合、ステップ１０１に進む。ステップ１０１では、占有スロット数４６１が過負荷設定スロット数４６２以上かを判定する。条件を満足する場合、ステップ１０８に進み、満足しない場合、ステップ１０２に進む。ステップ１０２では、占有スロット数４６１が過負荷解除スロット数４６３以上か否かを判定する。この条件を満たす場合、処理を終了し、満たさない場合、ステップ１０３に進む。ステップ１０３〜１０７は、割当て解除処理４であり、制限スロット数４７２が設定されているディスク装置２５に対して、スロットの割当ての解除を試行する。ステップ１０３では、制限スロット数４７２が設定されているディスク装置２５を検索する。ステップ１０４では、制限スロット数４７２が設定されているディスク装置２５を検出したか否かを判定する。検出した場合、ステップ１０５に進み、検出できなかった場合、処理を終了する。ステップ１０５では、カレントスロット数４７１が解除基準スロット数４７４未満かどうかを判定する。この条件を満たす場合、ステップ１０６に進み、条件を満たさない場合、ステップ１０７に進む。ステップ１０６では、スロットの割当ての制限を解除するため、制限スロット数４７２、設定基準スロット数４７３、および、解除基準スロット数４７４をnullとする。ステップ１０７では、全てのディスク装置２５に対して判定が終了したかを判定する。終了していない場合、ステップ１０３に戻り、終了した場合、処理を終了する。ステップ１０８〜１０９では、キャッシュメモリ２４の過負荷状況を設定する。ステップ１０８では、過負荷フラグ４６４をオンする。ステップ１０９では、ディスク装置２５毎に、カレントスロット数４７１を設定基準スロット数４７３に設定する。ステップ１１０では、占有スロット数４６１が過負荷解除スロット数４６３未満かを判定する。条件を満たす場合、ステップ１１１に進み、満たさない場合、ステップ１１２に進む。ステップ１１１では、過負荷フラグ４６４をオフし、処理を終了する。ステップ１１２〜１１５は、割当て設定処理３であり、ディスク装置２５に対するキャッシュスロット２４１の割り当て制限を行なう。ステップ１１２では、カレントスロット数４７１が設定基準スロット数４７３以上かを判定する。条件を満たす場合、ステップ１１３に進み、条件を満たさない場合、ステップ１１５進む。��テップ１１３では、カレントスロット数４７１が最低割り当てスロット数４７６以上かを判定する。条件を満たす場合、ステップ１１４に進み、満たさない場合、ステップ１１５に進む。ステップ１１４では、ディスク装置２５に対するキャッシュスロット割当制限、および、制限解除基準を設定する。すなわち、制限スロット数４７２にカレントスロット数４７１を設定し、解除基準スロット数４７４に設定基準スロット数４７３の値を設定する。解除基準スロット数４７４を設定する時に、カレントスロット数４７１に対して予め定めた割合を設定してもよい。ステップ１１５では、全てのディスク装置２５に対する判定が終了したかを判定する。終了していない場合、ステップ１１２に戻り、終了した場合、ステップ１１６に進む。ステップ１１６では、設定基準スロット数４７３を設定していないディスク装置２５に対し、設定基準スロット数４５８にカレントスロット数４７１を設定する。
【００３１】
図１２は、図１に示したＣＰＵ起動処理１０のフロ−チャ−トである。ＣＰＵ起動処理１０は、ＣＰＵ２０から制御装置２１に対する指示に従って実行される処理であり、ＣＰＵ２０とディスク装置２５間、および、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送を行なう。ステップ１２０では、ＣＰＵ２０からデ−タ転送処理を指示されたディスク装置２５において、論理デバイスが未使用状態かどうかを実行情報６０１により判定する。論理デバイスが未使用の場合、ステップ１２１に進み、それ以外は、ステップ１４６に進む。ステップ１２１では、図９に示した占有処理情報６００にＣＰＵ起動処理の実行状況を設定し、実行情報６０１にタスクの実行状況を設定する。ステップ１２２では、ＣＰＵ２０から指示されたトラック２９の内容が、キャッシュメモリ２４内に存在するかを判定する。即ち、図５に示したサ−チテ−ブル４１を参照し、当該トラック２９に対応するサ−チポインタ４１４の内容がnullでない場合、当該トラック２９の内容はキャッシュメモリ２４内に存在すると判定される。この判定は、図１に示したキャッシュヒットミス判定１１に対応する。キャッシュヒットの場合、ステップ１２３に進み、キャッシュミスの場合、ステップ１４０に進む。ステップ１２３〜１３３はキャッシュヒット処理１２に対応する。ステップ１２３では、当該トラック２９に対応するＳＣＢ４０が、他の処理により使用中か否かをＳＣＢ占有フラグ４００により判定する。使用中の場合、ステップ１２４に進み、使用中でない場合、ステップ１２５に進む。ステップ１２４では、論理デバイスの実行状態６０１を待ち状態とし、待ち状態情報６０２をＳＣＢ待ちとして、当該ＳＣＢ４０が解放されるまで待つ。ステップ１２５では、論理デバイス情報６０にＳＣＢ４０の内容を設定する。すなわち、実行情報６０１を実行中とし、エントリ数６０４に１を設定し、トラックポインタ６０５にはトラックリストの先頭のエントリを示す値を設定し、処理対象トラック２９に対応するシリンダ番号６０３、トラック番号６０６を設定する。ステップ１２６では、ＣＰＵ２０からの指示により、当該トラックに対しライトアフタデ−タを新規に作成するのかを判定する。条件を満たす場合、ステップ１２７に進む、満たさない場合、ステップ１３０に進む。ステップ１２７では、制限スロット数４７２が有効かを判定する。ここで、制限スロット数４７２がnullでない場合、制限スロット数４７２は有効とする。有効の場合、ステップ１２８に進み、有効でない場合、ステップ１３０進む。ステップ１２８では、カレントスロット数４７１が制限スロット数４７２以上かを判定する。条件を満たす場合、ステップ１２９に進み、条件を満たさない場合、ステップ１３０に進む。ステップ１２９では、実行状態６０１を待ち状態とし、待ち状態情報６０２をキャッシュ割当て待ち状態とし、カレントスロット数４７１が制限スロット数４７２未満になるまで待つ。ステップ１３０では、割り当て可能スロット数４６０と占有スロット４６１からキャッシュスロット２４１にライトアフタデ−タを割り当て可能か否かを判定する。割り当て可能な場合、ステップ１３２に進み、割り当て不可能な場合、ステップ１３１に進む。ス���ップ１３１では、実行状態６０１を待ち状態とし、待ち状態情報６０２をキャッシュ割当て待ちとし、占有スロット数４６１が割り当て可能スロット数４６０未満になるまで待つ。ステップ１３２では、占有スロット数４６１とカレントスロット数４７１にそれぞれ割り当てたスロット数を加算する。ステップ１３３では、ＣＰＵ２０からの指示に従い、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送を行なう。この時、キャッシュメモリ２４内のレコ−ド３３を更新した場合、ライトアフタフラグ４０７をオンし、更新レコ−ドポインタ４０９を設定する。また、ＣＰＵ２０からシ−ケンシャルアクセスを指示され、かつ、ライトアフタデ−タを作成した場合、シ−ケンシャルライトフラグ４１０をオンする。ステップ１６では、シ−ケンシャル判定処理を実行する。シ−ケンシャル判定処理１６のフロ−チャ−トを図１４に示す。ステップ１４０〜１４５は、ＣＰＵディスク転送処理１９に対応する。ステップ１４０では、当該ディスク装置２５の物理デバイスが未使用か否かを実行情報７０１により判定する。物理デバイスが未使用の場合、ステップ１４２に進み、そうでない場合、ステップ１４１に進む。ステップ１４１では、実行状態６０１を待ち状態とし、待ち状態情報６０２を物理デバイス待ちとして、当該物理デバイスが開放されるまで待つ。ステップ１４２では、占有処理情報７００にＣＰＵ起動処理の実行状況を設定し、実行情報７０１に実行中を設定する。ステップ１４３では、処理対象のトラック２９にキャッシュスロット２４１を割り当て、ＴＣＢ４５に情報を設定する。すなわち、ＳＣＢ占有フラグ４００をオンし、ディスク装置番号４０３、シリンダ番号４０４、トラック番号４０５に、それぞれ、割り当てたトラック２９に対するディスク装置番号、シリンダの番号、トラックの番号を設定し、シリンダ番号７０３に処理対象とするトラック２９に対応するシリンダの番号を設定し、トラック番号７０６に処理対象とするトラック２９の番号を設定し、エントリ数７０４にトラック番号４５８を設定したトラック２９の数を設定し、トラックポインタ７０５に最初のエントリを示す値を設定する。ステップ１４４では、ディスク装置２５に対し、ＣＰＵ２０が処理対象として指示したレコ−ド３３への位置付け指示を行ない、その完了を待つ。ステップ１４５では、ディスク転送処理を行なう。この処理のフロ−チャ−トを図１３に示す。
【００３２】
図１３は、ディスク転送処理のフロ−チャ−トである。この処理は、ステップ１４５に対応する処理である。ステップ１５１では、ＣＰＵ２０からの指示に従い、ＣＰＵ２０とディスク装置２５との間のデ−タ転送を行なう。ステップ１５２では、当該トラック２９にキャッシュスロット２４１を割当て済みかを判定する。キャッシュスロット２４１が割り当てられている場合、ステップ１５３に進み、キャッシュスロット２４１が割り当てられていない場合、ステップ１５４に進む。ステップ１５３では、トラック２９の内容を読み出し、割り当てられたキャッシュスロット２４１にその内容を格納する。この際、レコ−ドポインタ４０８を設定する。ステップ１５４では、ＴＣＢ４５の内容を無効化する。すなわち、論理デバイスに対する占有処理情報６００をｎｕｌｌとし、実行情報６０１を未使用とし、さらに、物理デバイスに対する占有処理情報７００をｎｕｌｌとし、実行情報７０１に未使用であることを示す情報を設定する。さらに、ＳＣＢ４０を割り当てている場合、ＳＣＢ占有フラグ４００をオフする。ステップ１５５では、ビジ−報告フラグ６０７によりＣＰＵ２０にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ１５６に進み、そうでない場合、処理を終了する。ステップ１５６では、ビジ−報告フラグをオフし、ＣＰＵ２０にビジ−解除の報告を行なう。
【００３３】
図１４は、図１２に示したシ−ケンシャル判定処理１６のフロ−チャ−トである。ステップ１６１では、ＣＰＵからの指示がシ−ケンシャルアクセスかを判定する。シ−ケンシャルアクセスの場合、ステップ１６２に進み、そうでない場合、ステップ１６７に進む。ステップ１６２では、ＣＰＵ起動処理でライトを実行したかを判定する。ライトを実行した場合、ステップ１６５に進み、実行していない場合、ステップ１６３に進む。ステップ１６３では、ロ−ド処理が必要かを判定する。ロ−ド処理が必要な場合、ステップ１６４に進み、必要ない場合、ステップ１６７に進む。ステップ１６４では、ロ−ド処理を実行する。ロ−ド処理のフロ−チャ−トを図１５に示す。ステップ１６５では、シ−ケンシャルライトアフタ処理が必要かを判定する。すなわち、当該トラック２９以前にライトアフタデ−タを有するトラックが規定数以上あるかを判定する。規定数以上ある場合、ステップ１８に進み、そうでない場合、ステップ１６７に進む。ステップ１８では、シ−ケンシャルライトアフタ処理を行なう。シ−ケンシャルライトアフタ処理１８のフロ−チャ−トを図１６に示す。ステップ１６７では、論理デバイスに対する実行情報６０１に未使用を設定する。ステップ１６８では、ビジ−報告フラグ６０７によりＣＰＵ２０にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ１６９に進み、そうでない場合、処理を終了する。ステップ１６９では、ビジ−報告フラグをオフし、ＣＰＵ２０にビジ−解除の報告を行なう。
【００３４】
図１５は、ロ−ド処理１６４のフロ−チャ−トである。ロ−ド処理１６４は、ステップ１６４に対応する。ステップ１７０では、物理デバイスの実行情報７０１により、物理デバイスが未使用かを判定する。未使用の場合、ステップ１７２に進み、そうでない場合、ステップ１７１に進む。ステップ１７１では、論理デバイスの実行情報６０１に待ち状態を設定し、待ち状態情報６０２に物理デバイス待ちを設定し、物理デバイスが空くまで待つ。ステップ１７２では、物理デバイスの占有処理情報７００にロ−ド処理の実行状況を設定し、実行情報７０１に実行中を設定し、論理デバイスの占有処理情報６００をｎｕｌｌとし、実行情報６０１に未使用を設定する。ステップ１７３では、ビジ−報告フラグ６０７により、ＣＰＵ２０にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ１７４に進み、そうでない場合、ステップ１７５に進む。ステップ１７４では、ビジ−報告フラグ４５２をオフし、ＣＰＵ２０に当該ディスク装置２５のビジ−状態が解除された報告を行なう。ステップ１７５では、ロ−ド処理が対象とするトラック２９にキャッシュスロット２４１を割り当て、物理デバイス情報７０に所定の値を設定する。すなわち、ＳＣＢ占有フラグ４００をオンし、キャッシュスロット２４１を割り当てたトラック２９に対応するシリンダの番号をシリンダ番号４５５に設定し、キャッシュスロット２４１を割り当てたトラック２９に対応するトラック２９の番号をトラック番号４５８に設定し、エントリ数４５６にトラック番号４５８を設定したトラック２９の数を設定し、トラックポインタ４５７を最初のエントリを示すようにする。ステップ１７６では、ディスク装置２５に位置付け指示を行ない、その完了を待つ。ステップ１７７では、ロ−ド実行処理を行なう。この処理のフロ−チャトを図１７に示す。
【００３５】
図１６は、シ−ケンシャルライトアフタ処理のフロ−チャ−トである。この処理は、図１のステップ１８に対応する。ステップ１８０では、物理デバイスの実行情報７０１により物理デバイスが未使用かを判定する。未使用の場合、ステップ１８２に進み、そうでない場合、ステップ１８１に進む。ステップ１８１では、論理デバイスの実行情報６０１に待ち状態を設定し、待ち状態情報６０２に物理デバイス待ちを設定し、物理デバイスが空くまで待つ。ステップ１８２では、物理デバイスの占有処理情報７００にシ−ケンシャルライトアフタ処理を設定し、実行情報７０１に実行中を設定し、論理デバイスの占有処理情報６００をnullとし、実行情報６０１に未使用を設定する。ステップ１８３では、ビジ−報告フラグ６０７により、ＣＰＵ２０にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ１８４に進み、そうでない場合、ステップ１８５に進む。ステップ１８４では、ビジ−報告フラグ６０７をオフし、ＣＰＵ２０に当該ディスク装置２５のビジ−状態が解除されたことを報告する。ステップ１８５では、検出したディスク装置２５に対応する物理デバイス情報７０に所定の値を設定する。すなわち、シリンダ番号４５５に処理対象とするシリンダの番号を記録し、エントリ数４５６に１を設定し、トラック番号４５８に処理対象とするトラックの番号を設定し、トラックポインタ４５７を最初のエントリを示すようにする。ステップ１８６では、同一のディスク装置２５であってかつ同一シリンダ内にある複数のトラック２９に対応するそれぞれのＳＣＢ４０の中から、シ−ケンシャルライトフラグ４１０がオンのＳＣＢ４０を捜す。ステップ１８７では、前記トラック２９に対応するＳＣＢ４０を検出できたかを判定する。検出できた場合、ステップ１８８に進み、検出できなかった場合、ステップ１８９に進む。ステップ１８８では、検出したＳＣＢ４０を物理デバイス情報７０に設定する。すなわち、トラック番号７０６を設定し、エントリ数７０４を１加算し、ステップ１８６に戻る。ステップ１８９では、ディスク装置２５に位置付け指示を行ない、その完了を待つ。ステップ１９０では、ライトアフタ実行処理を行なう。この処理のフロ−チャ−トを図１９に示す。
【００３６】
図１７は、ロ−ド実行処理のフロ−チャ−トである。ロ−ド実行処理は、図１４のステップ１６９に対応する。ステップ２００では、トラックポインタ４５７が示すトラック番号４５８について、インデクス３０を見つける。ステップ２０１では、トラック２９上のレコ−ド３３を見つけてこれを読み込み、キャッシュスロット２４１に格納する。この際、レコ−ドポインタ４０８にレコ−ド３３を格納したキャッシュスロット２４１上の位置を記録する。ステップ２０２では、当該トラック２９に記録されたレコ−ド３３の読み込みが終了したかを判定する。終了した場合、ステップ２０３に進み、終了していない場合、ステップ２０１に戻る。ステップ２０３では、物理デバイス情報７０に示した全てのトラック２９に対し、ロ−ド処理が終了したかを判定する。終了していない場合、ステップ２０４に進み、終了した場合、ステップ２０５に進む。ステップ２０４では、次のトラック２９を処理対象とする。即ち、トラックポインタ７０５が次のエントリを示すように更新する。本ステップ２０４処理後、ステップ２００に戻る。ステップ２０５では、物理デバイス情報７０に登録されたＳＣＢ４０のＳＣＢ占有フラグ４００をオフし、物理デバイスに対する占有処理情報７００をnullとし、実行情報７０１に未使用を設定する。ステップ２０６では、論理デバイス情報６０の実行情報６０１により、論理デバイスの処理が待ち状態かを判定する。待ち状態の場合、ステップ２０７に進み、待ち状態でない場合、処理を終了する。ステップ２０７では、論理デバイス情報６０の実行情報６０１を実行可能とする。
【００３７】
図１８は、図１に示したライトアフタ処理５のフロ−チャ−トである。ライトアフタ処理５は、ディレクタ−２２が空き状態の場合に実行される。ステップ２１０では、ライトアフタデ−タを持ち、物理デバイスが空き状態、かつ、論理デバイスがスロット待ち状態のディスク装置２５を検索する。すなわち、ＬＲＵポインタ４３からＳＣＢ４０をたどり、ライトアフタフラグ４０７により、ライトアフタデ−タを持ち、ＳＣＢ占有フラグ４００がオフのＳＣＢ４０を捜す。さらに、物理デバイスの実行情報７０１により、検出したＳＣＢ４０に対応するディスク装置２５が、未使用かを判定し、論理デバイスの実行情報６０１と待ち状態情報６０２により、スロット待ち状態かを判定する。ステップ２１１では、ステップ２１０で検索したディスク装置２５が検出できたかを判定する。検出できた場合、ステップ２１６に進み、検出できない場合、ステップ２１２に進む。ステップ２１２では、ライトアフタデ−タを持ち、物理デバイスが空き状態、かつ、過負荷状態のディスク装置２５を検索する。すなわち、ＬＲＵポインタ４３からＳＣＢ４０をたどり、ライトアフタフラグ４０７により、ライトアフタデ−タを持ち、ＳＣＢ占有フラグ４００がオフのＳＣＢ４０を捜す。さらに、物理デバイスの実行情報７０１により、検出したＳＣＢ４０に対応するディスク装置２５が、使用可能かを判定し、制限スロット数４７２により、過負荷状態かを判定する。ステップ２１３では、ステップ２１２で検索したディスク装置２５が検出できたかを判定する。検出できた場合、ステップ２１６に進み、検出できない場合、ステップ２１４に進む。ステップ２１４では、ライトアフタデ−タを持ち、かつ、物理デバイスが空き状態のディスク装置２５を検索する。すなわち、ＬＲＵポインタ４３からＳＣＢ４０をたどり、ライトアフタフラグ４０７により、ライトアフタデ−タを持ち、ＳＣＢ占有フラグ４００がオフのＳＣＢ４０を捜す。さらに、物理デバイスの実行情報７０１により、検出したＳＣＢ４０に対応するディスク装置２５が、使用可能かを判定する。ステップ２１５では、ステップ２１４で検索したディスク装置２５が検出できたかを判定する。検出できた場合、ステップ２１６に進み、検出できない場合、処理を終了する。ステップ２１６では、実行情報７０１に実行中を設定する。ステップ２１７では、検出したディスク装置に対応する物理デバイス情報７０に所定の値を設定する。すなわち、占有処理情報７００にライトアフタ処理を設定し、実行情報７０１を実行中とし、シリンダ番号７０３に処理対象とするシリンダの番号を記録し、エントリ数７０４に１を設定し、トラック番号４５８に処理対象とするトラックの番号を設定し、トラックポインタ７０５に最初のエントリを示す値を設定する。検出したＳＣＢ４０のＳＣＢ占有フラグ４００をオンする。ステップ２１８では、同一のディスク装置２５であってかつ同一シリンダ内にある複数のトラック２９に対応するそれぞれのＳＣＢ４０の中から、ＳＣＢ占有フラグ４００がオフ、かつ、ライトアフタフラグ４０７がオンのＳＣＢを捜す。ステップ１３９では、前記トラック２９に対応するＳＣＢ４０を検出できたかを判定する。検出できた場合、ステップ２２０に進み、検出できなかった場合、ステップ１４１に進む。ステップ２２０では、トラック番号７０６を設定し、エントリ数７０４を１加算し、ＳＣＢ占有フラグをオンとし、ステップ２１８に戻る。ステップ２２１では、ディスク装置２５に位置付け指示を行ない、その完了を待つ。ステップ１９０では、ライトアフタ実行処理を行なう。この処理のフロ−チャ−トを図１９に示す。
【００３８】
図１９は、ライトアフタ実行処理１９０のフロ−チャ−トである。ライトアフタ実行処理は、図１６のステップ１９０に対応する。ステップ２３０では、レコ−ド３３のサ−チを開始し、位置付けたディスク装置２５上の物理位置を記憶する。ステップ２３１では、トラック２９上のレコ−ド３３を見つけ、制御部３４を読みだす。ステップ２３２では、位置付け指示したレコ−ド番号とステップ２３１で見つけたレコ−ド番号が一致するかを判定する。一致する場合、ステップ２３４に進み、一致しない場合、ステップ２３３に進む。ステップ２３３では、ステップ２３０で記憶した物理位置と、ステップ２３１で読みだしたレコ−ドの物理位置を比較し、ディスクが１回転したかを判定する。１回転していない場合、ステップ２３１に戻り、１回転している場合、ステップ２３９に進む。ステップ２３４では、キャッシュスロット２４１からレコ−ド３３を読み出し、ディスク装置２５に書き出す。書きだしたレコ−ド３３に対応する更新レコ−ドポインタ４０９をnullとする。当該トラック２９に対する更新レコ−ドポインタ４０９の全てがnullとなったら、ライトアフタフラグ４０７とシ−ケンシャルライトフラグ４１０をオフする。ステップ２３５では、トラック２９内のレコ−ド３３に対する処理が終了したかを判定する。処理が終了した場合、ステップ２３０に戻り、処理が終了していない場合、ステップ２３６に進む。ステップ２３６では、占有スロット数４６０とカレントスロット数４６６からスロット数を減算し、ＳＣＢ占有フラグ４００をオフする。ステップ２３７では、ライトアフタ処理の終了判定を行う。終了でない場合、ステップ２３８に進み、終了の場合、ステップ２３９に進む。ステップ２３８は、次のトラック２９を処理対象とする。即ち、トラックポインタ４５７が次のエントリを示すように更新する。本ステップ２３８の処理が終了した後、ステップ２３０に戻る。ステップ２４１では、物理デバイス情報７０の内容を無効化する。すなわち、物理デバイス情報７０の占有処理情報７００をnullとし、実行情報７０１を未使用とする。ステップ２４０では、論理デバイス情報６０の実行情報６０１により、論理デバイスの処理が待ち状態かを判定する。待ち状態の場合、ステップ２４１に進み、待ち状態でない場合、処理を終了する。ステップ２４１では、論理デバイス情報６０の実行情報６０１を実行可能とする。
【００３９】
本発明の実施例によれば、図１のキャッシュ負荷状況判定処理１により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置２５毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するＣＰＵ２０からのデ−タ書き出し指示があった場合、ライトアフタ処理５はライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出し、ライトアフタデ−タの量が割当て制限未満になるまで上記の指示を待たせる。このため、あるディスク装置２５への割当て量が過大となり、他のディスク装置２５に対する割当て量が過少となることはない。従って、ディスク装置２５に対するキャッシュメモリ２４の割当てに関し、他のディスク装置２５に対するキャッシュメモリ２４の割当てを阻害しない適切な配分を行うことができる。
【００４０】
さらに、ＣＰＵ２０によりシ−ケンシャルアクセスが指示されて、ライトアフタデ−タが作成されると記憶装置に書き込むべきライトアフタデ−タは、急激に増加する。このため、前記ライトアフタデ−タをただちにキャッシュメモリから記憶装置に書き出す。これにより、中央処理装置からシ−ケンシャルアクセスが指示された場合でも、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【００４１】
以下、第２の実施例について示す。第２の実施例は、装置構成等は、第１の実施例と同様であり、ディレクタ２２が実行するＣＰＵ起動処理のみが第１の実施例とは異なる。ここでは、第２の実施例が、第１の実施例とは異なっているところのみを説明する。
【００４２】
本実施例でのＣＰＵ起動処理１０は、キャッシュメモリの割当制限以上のライトアフタデ−タが存在する場合、ＣＰＵディスク転送処理を行う。
【００４３】
図２０は、本発明の第２の実施例における情報処理システムを示す図である。ディレクタ２２は、ＣＰＵ２０とディスク装置２５との間、ＣＰＵ２０とキャッシュメモリ２４との間、および、キャッシュメモリ２４とディスク装置２５との間で行うデ−タ転送を制御する。ＣＰＵ起動処理１０は、ＣＰＵ２０からの指示によりＣＰＵ２０とディスク装置２５間、および、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送を実行する。ＣＰＵ２０とキャッシュメモリ２４との間のデ−タ転送において、書きかえたキャッシュメモリ２４内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書きす処理をライトアフタ処理と呼ぶ。ヒットミス判定処理１１では、処理対象のトラック２９の内容がキャッシュメモリ２４内にあるかを判定する。トラック２９の内容がキャッシュメモリ２４内にある場合、キャッシュヒットと呼び、トラック２９の内容がキャッシュメモリ２４内にない場合、キャッシュミスと呼ぶ。キャッシュヒットの場合、キャッシュヒット処理１２を行なう。キャッシュヒット処理１２では、キャッシュ割り当て制限判定処理１３によりライトアフタデ−タに対するキャッシュメモリ２４の割り当て状況を判定し、割当て不可能な場合、ＣＰＵディスク転送処理１８を実行する。ＣＰＵキャッシュ転送処理１５では、ＣＰＵ２０の指示に従い、キャッシュメモリ２４内のデ−タを読み書きする。シ−ケンシャル判定処理１６、キャッシュ負荷状況判定処理１、および、ライトアフタ処理５は、第１の実施例と同様であるため、ここでは説明しない。
【００４４】
図２１は、第２の実施例におけるＣＰＵ起動処理に関するフロ−チャ−トである。ＣＰＵ起動処理１０は、ＣＰＵ２０から制御装置２１に対する指示により実行する処理であり、ＣＰＵ２０とディスク装置２５間、および、ＣＰＵ２０とキャッシュメモリ２４間のデ−タ転送を行なう。ステップ１２０〜１２７は、図１２に示した第１の実施例と同様であるため、ここでは説明しない。ステップ１２８では、カレントスロット数４７１が制限スロット数４７２以上かを判定する。条件を満たす場合、ステップ１４０に進み、条件を満たさない場合、ステップ１３０に進む。ステップ１３０〜１３３、ステップ１４０〜１４５、および、ステップ１６は、第１の実施例と同様であるため、ここでは説明しない。
【００４５】
本発明の実施例によれば、キャッシュ負荷状況判定処理１により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置２５毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するＣＰＵ２０からのデ−タ書き出し指示があった場合、ＣＰＵディスク転送処理１９により、ＣＰＵ２０とディスク装置２５とのデ−タ転送により上記の指示に対する処理を行なう。このため、あるディスク装置２５への割当て量が過大となり、他のディスク装置２５に対する割当て量が過少となることはない。従って、ディスク装置２５に対するキャッシュメモリ２４の割当てに関し、他のディスク装置２５に対するキャッシュメモリ２４の割当てを阻害しない適切な配分を行うことができる。
【００４６】
以下、第３の実施例について示す。第３の実施例は、負荷状況管理情報４６として、割り当て可能スロット数４６０、過負荷設定スロット数４６１、過負荷解除スロット数４６３、および、最低割り当てスロット数４７６を外部からの指示により設定することが第１の実施例とは異なる。本実施例では、制御装置２１にサ−ビスパネル３６を接続し、サ−ビスパネル３６により負荷情報管理情報４６を指定する。ここでは、第３の実施例が、第１の実施例とは異なっているところのみを説明する。
【００４７】
図２２は、本発明の第３の実施例を示す情報処理システムの構成図である。情報処理システムは、中央処理装置(ＣＰＵ)２０、ＣＰＵ２０に接続された制御装置２１、制御装置２１に接続されたサ−ビスパネル３６、および、制御装置２１に接続された少なくとも１台のディスク装置２５からなる。制御装置２１は、ディレクトリ２３、キャッシュメモリ２４、サ−ビスプロセッサ２６、および、少なくも１つのディレクタ２２を有する。
【００４８】
図２３は、本発明の第３の実施例における情報処理システムを示す図である。ディレクタ２２は、ＣＰＵ２０とディスク装置２５との間、ＣＰＵ２０とキャッシュメモリ２４との間、および、キャッシュメモリ２４とディスク装置２５との間で行うデ−タ転送を制御する。ＣＰＵ起動処理１０、キャッシュ負荷状況判定処理１、および、ライトアフタ処理５は、第１の実施例と同様であり、ここでは、説明しない。負荷基準操作処理３９は、サ−ビスプロセッサ２６の指示により、ディレクトリ２３の内容を読みだす、あるいは、更新する。サ−ビスパネル３６は、制御装置２１内の制御情報をユ−ザに表示するための表示部３７と、ユ−ザからの指示を受け付けるための指示受領部３８からなる。サ−ビスプロセッサ２６は、サ−ビスパネル３７とディレクタ２２との間にあって、情報の表示と授受を制御する。
【００４９】
図２４は、サ−ビスパネル３６に表示される内容である。表示される内容としては、割当制限スロット数８１、過負荷設定スロット数８２、過負荷解除スロット数８３、ディスク装置番号８４、制限スロット数８５、および、最低割当スロット数８６がある。割当制限スロット数８１、過負荷設定スロット数８２、過負荷解除スロット数８３、制限スロット数８５、最低割当スロット数８６は、それぞれ、割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、最低割当スロット数４７６に対応する。それぞれの情報に関し、その内容がnullのものは、空白を表示し、その内容がnullでないものは、その値を表示する。ディスク装置番号８４は、ディスク装置の番号であり、この領域は、更新不可能とする。メッセ−ジ表示欄８７は、ユ−ザにより指示された情報の内容に誤りがある場合のエラ−表示等を行う。
【００５０】
図２５は、第３の実施例における負荷管理情報の構成図である。負荷管理情報４６は、キャッシュメモリ２４内のライトアフタデ−タの占有状況を管理する情報である。図１０に示した第１の実施例と異なるのは、ディスク割当情報４７０内に、新たに、制限スロット数設定フラグ４７７を設けたことである。ここでは、制限スロット数設定フラグ４７７について説明する。制限スロット数設定フラグ４７７は、外部からの指示により制限スロット数４７２を設定したかを示すフラグである。
【００５１】
図２６は、サ−ビスプロセッサによる負荷基準操作処理のフロ−チャ−トである。負荷基準操作処理３９は、サ−ビスプロセッサ２６からの指示により、ディレクタ２２が実行する処理である。ステップ２５０では、サ−ビスプロセッサ２６からの指示が情報更新か否かを判定する。情報更新の場合、ステップ２５２に進み、情報更新でない場合、ステップ２５１に進む。ステップ２５１では、割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、および、最低割当スロット数４７６を読みだし、サ−ビスプロセッサ２６に転送する。ステップ２５２では、サ−ビスプロセッサ２６から情報が転送されてくるのを待つ。ステップ２５３では、サ−ビスプロセッサ２６から転送された情報を割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、および、最低割当スロット数４７６に設定する。この際、制限設定スロット数９５の内容がnullでないディスク装置２５に対し、制限スロット数設定フラグ４７７をオンする。
【００５２】
図２７は、サ−ビスプロセッサでの情報操作処理を示す図である。本処理は、サ−ビスパネル３６の指示受領部３８により指示を受け、サ−ビスプロセッサ２６が実行する。ステップ２６１では、ユ−ザからの指示が情報更新か否かを判定する。情報更新の場合、ステップ２６４に進み、情報更新でない場合、ステップ２６２に進む。ステップ２６２では、ディレクタ２２に情報読みだしを指示し、情報が転送されてくるのを待つ。ステップ２６３では、サ−ビスパネル３６に情報を表示する。表示内容は、図２４で既に説明した。ステップ２６４では、サ−ビスパネル３６に設定された値を読みだす。ステップ２６５では、設定内容が正常かを判定する。すなわち、最低割当てスロット数８６以外に値が０のものがない、かつ、設定情報のうち実装スロット数より大きいものがあるかを判定する。ここで、実装スロット数とは、キャッシュメモリ２４内のキャッシュスロット２４１の数である。条件を満たす場合、ステップ２６６に進み、条件を満たさない場合、ステップ２７２に進む。ステップ２６６では、過負荷設定スロット数８２が過負荷解除スロット数８３以上かを判定する。条件を満たす場合、ステップ２６７に進み、条件を満たさない場合、スロット２７２に進む。ステップ２６７では、制限スロット数８５あるいは最低割当スロット数８６が設定されたディスク装置を検索する。ステップ２６８では、ディスク装置を検出したかを判定する。検出した場合、ステップ２６９に進み、検出できなかった場合、ステップ２７０に進む。ステップ２６９では、制限スロット数８５が最低割当スロット数８６より大きいかを判定する。条件を満たす場合、ステップ２７０に進み、条件を満たさない場合、ステップ２７２に進む。ステップ２７０では、全てのディスク装置２５について判定が終了したかを判定する。判定が終了した場合、ステップ２７１に進み、終了していない場合、ステップ２６７に戻る。ステップ２７１では、ディレクタ２２に情報更新を指示して、情報を転送する。ステップ２７２では、図２４のメッセ−ジ表示欄８７に情報不正を示すエラ−表示を行う。
【００５３】
図２８は、第３の実施例におけるキャッシュ負荷状況判定処理１のフロ−チャ−トである。本処理は、ライトアフタデ−タを含むキャッシュスロット２４１の占有量からキャッシュメモリ２４の負荷状況を判定する処理である。本実施例において、図１１に示した第１の実施例と異なるのは、ステップ１０４とステップ１０５の間にステップ２５６を挿入し、ステップ１１３とステップ１１４の間にステップ２５６を挿入した点である。ステップ１００では、過負荷フラグ４６４がオンかを判定する。当該フラグがオンの場合、ステップ１１０に進み、オフの場合、ステップ１０１に進む。ステップ１０１では、占有スロット数４６１が過負荷設定スロット数４６２以上かを判定する。条件を満足する場合、ステップ１０８に進み、満足しない場合、ステップ１０２に進む。ステップ１０２では、占有スロット数４６１が過負荷解除スロット数４６３以上かを判定する。条件を満たす場合、処理を終了し、満たさない場合、ステップ１０３に進む。ステップ１０３〜１０７およびステップ２５５は、図２３に示す割当て解除処理４であり、制限スロット数４７２が設定されているディスク装置２５に対するスロットの割当てを解除する。ステップ１０３では、制限スロット数４７２が設定されているディスク装置２５を検索する。ステップ１０４では、当該ディスク装置２５を検出したかを判定する。検出した場合、ステップ２５５に進み、検出できなかった場合、処理を終了する。ステップ２５５では、制限スロット数割当フラグ４７７がオンかを判定する。当該フラグがオンの場合、ステップ１０７に進み、オフの場合、ステップ１０５に進む。ステップ１０５では、カレントスロット数４７１が解除基準スロット数４７４未満かを判定する。条件を満たす場合、ステップ１０６に進み、条件を満たさない場合、ステップ１０７に進む。ステップ１０６では、制限を解除するため、制限スロット数４７２、設定基準スロット数４７３、および、解除基準スロット数４７４をnullとする。ステップ１０７では、全てのディスク装置２５に対して判定が終了したかを判定する。終了していない場合、ステップ１０３に戻り、終了した場合、処理を終了する。ステップ１０８〜１０９では、キャッシュメモリの過負荷状況に所定の値を設定する。すなわち、ステップ１０８では、過負荷フラグ４６４をオンする。ステップ１０９では、ディスク装置２５毎に、カレントスロット数４７１を設定基準スロット数４７３に設定する。ステップ１１０では、占有スロット数４６１が過負荷解除スロット数４６３未満かを判定する。条件を満たす場合、ステップ１１１に進み、満たさない場合、ステップ１１２に進む。ステップ１１１では、過負荷フラグ４６４をオフし、処理を終了する。ステップ１１２〜１１５およびステップ２５６は、図２３に示す割当て設定処理３であり、ディスク装置２５に対するキャッシュスロット２４１の割り当て制限を行なう。ステップ１１２では、カレントスロット数４７１が設定基準スロット数４７３以上かを判定する。条件を満たす場合、ステップ１１３に進み、条件を満たさない場合、ステップ１１５進む。ステップ１１３では、カレントスロット数４７１が最低割り当てスロット数４７６以上かを判定��る。条件を満たす場合、ステップ２５６に進み、満たさない場合、ステップ１１５に進む。ステップ２５６では、制限スロット数割当フラグ４７７がオンかを判定する。当該フラグがオンの場合、ステップ１１５に進み、オフの場合、ステップ１１４に進む。ステップ１１４では、ディスク装置２５に対するキャッシュスロット割当制限、および、制限解除基準を設定する。すなわち、制限スロット数４７２にカレントスロット数４７１を負荷管理情報４６に設定し、解除基準スロット数４７４に設定基準スロット数４７３の値を負荷管理情報４６に設定する。解除基準スロット数４７４の設定として、カレントスロット数４７１の予め定めた割合を設定してもよい。ステップ１１５では、全てのディスク装置２５に対する判定が終了したかを判定する。終了していない場合、ステップ１１２に戻り、終了した場合、ステップ１１６に進む。ステップ１１６では、設定基準スロット数４７３が設定されていないディスク装置２５に対し、カレントスロット数４７１を設定基準スロット数４５８として負荷管理情報４６に設定する。
【００５４】
本実施例では、サ−ビスパネル３６からの指示により、割り当て可能スロット数４６０、過負荷設定スロット数４６１、過負荷解除スロット数４６３、および、最低割り当てスロット数４７６を負荷管理情報４６に設定する例を示した。同様のことを、ＣＰＵ２０からの指示により行なうことが可能である。以下、ＣＰＵ２０からの指示により、負荷管理情報４６を設定する方法について示す。
【００５５】
図２９は、中央処理装置と制御装置２１との間で転送される情報の内容を示す図である。ＣＰＵ２０から指示される要求としては、負荷情報を読みだす要求である負荷情報センス要求と、負荷情報を設定する要求である負荷情報設定要求がある。負荷情報センスコマンド９０は、ＣＰＵ２０からの要求が負荷情報センス要求であることを示す。制御装置２１は、ＣＰＵ２０から負荷情報センスコマンド９０が指示されると、割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、ディスク装置番号９４、制限スロット数９５、および、最低割当スロット数９６をＣＰＵ２０に転送する。割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、制限スロット数９５、最低割当スロット数９６は、それぞれ、割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、最低割当スロット数４７６に対応する。ディスク装置番号９４は、ディスク装置２５の番号である。負荷情報設定コマンド９７は、ＣＰＵ２０からの要求が負荷情報設定要求であることを示す。制御装置２１は、ＣＰＵ２０から負荷情報設定コマンド９７が指示されると、ＣＰＵ２０から転送される、割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、ディスク装置番号９４、制限スロット数９５、および、最低割当スロット数９６を、それぞれ対応する、割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、最低割当スロット数４７６に設定する。
【００５６】
図３０は、図２３に示した負荷基準操作処理３９のフロ−チャ−トである。本処理は、ＣＰＵ２０から、負荷情報センスコマンド９０、あるいは、負荷情報設定コマンド９７が指示された場合、ディレクタ２２が実行する。ステップ２８０では、ＣＰＵ２０からのコマンドが負荷情報設定コマンド９７かを判定する。負荷情報設定コマンド９７の場合、ステップ２８２に進み、それ以外では、ステップ２８１に進む。ステップ２８１では、割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、最低割当スロット数４７６をディレクトリ２３から読みだし、割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、ディスク装置番号９４、制限スロット数９５、および、最低割当スロット数９６として、ＣＰＵ２０に転送する。ステップ２８２では、ＣＰＵ２０から、割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、ディスク装置番号９４、制限スロット数９５、および、最低割当スロット数９６が転送されるのを待つ。ステップ２８３では、割当制限スロット数９１、過負荷設定スロット数９２、過負荷解除スロット数９３、ディスク装置番号９４、制限スロット数９５、および、最低割当スロット数９６を、負荷管理情報４６に含まれる割当制限スロット数４６０、過負荷設定スロット数４６２、過負荷解除スロット数４６３、制限スロット数４７２、最低割当スロット数４７６に設定する。この時、制限設定スロット数９５の内容がnullでないディスク装置２５に対して、制限スロット数設定フラグ４７７をオンする。
【００５７】
本発明の実施例によれば、ユ−ザからの指示、あるいは、ＣＰＵ２０からの指示により、ライトアフタデ−タの割当て制限を設定する。ユ−ザあるいはＣＰＵ２０により、ライトアフタデ−タの制限が設定されなかった場合、キャッシュ負荷状況判定処理１により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置２５毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するＣＰＵ２０からのデ−タ書き出し指示があった場合、ライトアフタ処理５がライトアフタデ−タをキャッシュメモリ２４からディスク装置２５に書き出し、ライトアフタデ−タが割当て制限未満になるまで上記の指示を待たせる。このため、あるディスク装置２５への割当て量が過大となり、他のディスク装置２５に対する割当て量が過少となることはない。さらに、ユ−ザあるいはＣＰＵ２０の指示によりライトアフタデ−タの割当て制限を変更することができる。従って、ディスク装置２５に対してキャッシュメモリ２４の割当てる時に、他のディスク装置２５に対するキャッシュメモリ２４の割当てを阻害しない適切な配分を行うことができる。
【００５８】
【発明の効果】
本発明の実施例によれば、キャッシュ負荷状況判定処理により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置毎にキャッシュの割当てを制限できる。割当て制限以上のライトアフタデ−タ量を要求するＣＰＵからのデ−タ書き出し指示があった場合、ライトアフタ処理はライトアフタデ−タをキャッシュメモリからディスク装置に書き出し、ライトアフタデ−タが割当て制限未満になるまで上記の指示を待たせる。あるいは、割当て制限以上のライトアフタデ−タ量を要求するＣＰＵからのデ−タ書き出し指示があった場合、ＣＰＵディスク転送処理は、ＣＰＵとディスク装置とのデ−タ転送により上記の指示に対する処理をただちに実行する。このため、あるディスク装置への割当て量が過大となり、他のディスク装置に対する割当て量が過少となることはない。
【００５９】
また、ライトアフタデ−タの割当て制限を、ユ−ザからの指示、あるいは、ＣＰＵからの指示によっても設定できる。この時、ユ−ザあるいはＣＰＵからライトアフタデ−タの制限が設定されなかった場合、キャッシュ負荷状況判定処理により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置毎に割当ての制限を行なう。このため、あるディスク装置への割当て量が過大となり、他のディスク装置に対する割当て量が過少となることはない。さらに、ユ−ザあるいはＣＰＵからライトアフタデ−タの割当て制限の変更を指示できる。
【００６０】
従って、それぞれのディスク装置に対してキャッシュメモリを割当てる時、他のディスク装置に対するキャッシュメモリの割当てを阻害しない適切な配分を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施例における情報処理システムを示す図である。
【図２】本発明の一実施例を示す情報処理システムの構成図である。
【図３】ディスク装置の構成図である。
【図４】本実施例におけるトラック内のレコ−ド構成図である。
【図５】ディレクトリの内容を示す図である。
【図６】スロットコントロ−ルブロック(ＳＣＢ)の構成図である。
【図７】ＳＣＢとキャッシュスロットに関係を示す図である。
【図８】サ−チテ−ブルとＳＣＢの関係を示す図である。
【図９】タスクコントロ−ルブロック(ＴＣＢ)の構成図である。
【図１０】負荷管理情報の構成図である。
【図１１】キャッシュ負荷状況判定処理のフロ−チャ−トである。
【図１２】ＣＰＵ起動処理のフロ−チャ−トである。
【図１３】ディスク転送処理のフロ−チャ−トである。
【図１４】シ−ケンシャル判定処理のフロ−チャ−トである。
【図１５】ロ−ド処理のフロ−チャ−トである。
【図１６】シ−ケンシャルライトアフタ処理のフロ−チャ−トである。
【図１７】ロ−ド実行処理のフロ−チャ−トである。
【図１８】ライトアフタ処理のフロ−チャ−トである。
【図１９】ライトアフタ実行処理のフロ−チャ−トである。
【図２０】本発明の第２の実施例を示す情報処理システムの構成図である。
【図２１】第２の実施例のＣＰＵ起動処理のフロ−チャ−トである。
【図２２】本発明の第３の実施例を示す情報処理システムの構成図である。
【図２３】本発明の第３の実施例を示す情報処理システムを示す図である。
【図２４】サ−ビスパネルの表示内容を示す図である。
【図２５】第３の実施例における負荷管理情報の構成図である。
【図２６】サ−ビスプロセッサによる負荷基準操作処理のフロ−チャ−トである。
【図２７】サ−ビスプロセッサでの情報操作処理を示す図である。
【図２８】第３の実施例におけるキャッシュ負荷状況判定処理のフロ−チャ−トである。
【図２９】中央処理装置との転送を行う情報内容を示すである。
【図３０】負荷基準操作処理のフロ−チャ−トである。
【符号の説明】
２０・・・中央処理装置、２１・・・制御装置、２２・・・ディレクタ、２３・・・ディレクトリ、２４・・・キャッシュメモリ、２５・・・ディスク装置。
【図１】
0003721338.tif 000002
【図２】
0003721338.tif 000003
【図３】
0003721338.tif 000004
【図４】
0003721338.tif 000005
【図５】
0003721338.tif 000006
【図６】
0003721338.tif 000007
【図７】
0003721338.tif 000008
【図８】
0003721338.tif 000009
【図９】
0003721338.tif 000010
【図１０】
0003721338.tif 000011
【図１１】
0003721338.tif 000012
【図１２】
0003721338.tif 000013
【図１３】
0003721338.tif 000014
【図１４】
0003721338.tif 000015
【図１５】
0003721338.tif 000016
【図１６】
0003721338.tif 000017
【図１７】
0003721338.tif 000018
【図１８】
0003721338.tif 000019
【図１９】
0003721338.tif 000020
【図２０】
0003721338.tif 000021
【図２１】
0003721338.tif 000022
【図２２】
0003721338.tif 000023
【図２３】
0003721338.tif 000024
【図２４】
0003721338.tif 000025
【図２５】
0003721338.tif 000026
【図２６】
0003721338.tif 000027
【図２７】
0003721338.tif 000028
【図２８】
0003721338.tif 000029
【図２９】
0003721338.tif 000030
【図３０】
0003721338.tif 000031