JP3721338B2 - Storage device control device and control method - Google Patents
Storage device control device and control method Download PDFInfo
- Publication number
- JP3721338B2 JP3721338B2 JP2002082322A JP2002082322A JP3721338B2 JP 3721338 B2 JP3721338 B2 JP 3721338B2 JP 2002082322 A JP2002082322 A JP 2002082322A JP 2002082322 A JP2002082322 A JP 2002082322A JP 3721338 B2 JP3721338 B2 JP 3721338B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- cache memory
- slot number
- allocation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、中央処理装置と、キャッシュメモリを有する制御装置と、記憶装置からなる情報処理システムにおいて、キャッシュメモリ内の領域割当ての制御を行う装置および方法に関する。
【0002】
【従来の技術】
中央処理装置とキャッシュメモリ間で行なうデ−タ転送処理において、更新したキャッシュメモリ内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリからディスク装置に書き出す処理をライトアフタ処理と呼ぶ。ライトアフタ処理を行なう制御装置において、キャッシュメモリの使用方法は、例えば、特公昭59−7986号公報、特開昭62−198946号公報に記載されている。
【0003】
特公昭59−7986号公報では、制御装置は、制御装置内のキャッシュメモリからファ−ストイン/ファ−ストアウト(First-in/First-out)やLRU(Least Recentry Used)制御により、ライトアフタデ−タをディスク装置に書き出す。特開昭62−198946号公報では、制御装置は、中央処理装置からのライト要求に対し、ライトアフタデ−タが所定数より少ない場合、中央処理装置とキャッシュメモリ間のデ−タ転送を行なう。一方、ライトアフタデ−タが所定数以上の場合、中央処理装置とディスク装置間のデ−タ転送を行ない、その後、所定量以上分のライトアフタデ−タをキャッシュメモリからディスク装置に書き出す。中央処理装置からのリ−ド要求に対し、キャッシュメモリ内に要求されたデ−タがなく、かつ、要求されたデ−タをキャッシュメモリに入れるために、キャッシュメモリから捨てなければならないデ−タがライトアフタデ−タの場合、当該ライトアフタデ−タをキャッシュメモリからディスク装置に書き出した後、中央処理装置からリ−ド要求されたデ−タをディスク装置から読みだし、当該デ−タを中央処理装置に転送するとともに、キャッシュメモリに格納する。
【0004】
【発明が解決しようとする課題】
制御装置は、中央処理装置からのライト指示に対し、中央処理装置とキャッシュメモリ間のデ−タ転送処理を行ない、キャッシュメモリにライトアフタデ−タを格納する。ライトアフタデ−タをディスク装置に書き出す処理は、制御装置が前記のライト指示とは、非同期に行なう。ところで、ディスク装置は、デ−タを記録する媒体である複数のディスクと、ディスクのデ−タ記録面に対応して設けられたデ−タを読み書きするためのヘッドから構成されている。前記ディスクが1回転する間に、前記ヘッドが読み書き可能な円状の記録単位をトラックと呼ぶ。前記ディスクには複数のトラックが存在する。ディスク装置に記録されたデ−タを読み書きする時、前記ヘッドを前記デ−タを含むトラックの位置に移動させる。この動作をシ−ク動作と呼ぶ。ライトアフタ制御は、中央処理装置からのライト指示に対し、中央処理装置とキャッシュメモリ間のデ−タ転送処理を行ない、ディスク装置とのデ−タ転送処理を行なわない。このため、シ−ク動作のための時間がかからず、高速な応答が可能となる。キャッシュメモリに存在するデ−タのうち、ライトアフタデ−タ、すなわち、まだディスク装置に書き込まれていないデ−タでないものは、ディスク装置内の内容とそれに対応するキャッシュメモリ内の内容が一致しているため、随時、キャッシュメモリから消去することが可能である。しかし、ライトアフタデ−タは、キャッシュメモリ内の内容とそれに対応するディスク装置内の内容が一致していないため、キャッシュメモリ内の内容をディスク装置に書きだしてからでないと、キャッシュメモリから消去できない。ライトアフタデ−タでキャッシュメモリが一杯になってしまうため、キャッシュメモリ内のライトアフタデ−タをディスク装置に書き出してからでないと新たなライトアフタデ−タを作成できない。キャッシュメモリ内のライトアフタデ−タをディスク装置に書きだすには、当然、シ−ク動作のための時間がかかる。従って、ライトアフタ制御による高速応答は期待できない。ここで、ディスク装置に対する処理要求の内容と処理要求の頻度は、一定ではなく、ディスク装置に格納されたデ−タに依存している。例えば、あるディスク装置に対する処理要求が高頻度に発生し、ライトアフタデ−タを大量に作成すると、他のディスク装置がライトアフタデ−タを作成できる量は著しく制限される。この場合、CPUからの見掛け上のディスク性能は、ライトアフタデ−タを大量に作成したディスク装置の方が、他のディスク装置より良くなる。しかも、真に高速応答を要求されているディスク装置に対して大量のライトアフタデ−タの作成を許容するのではなく、時間的に早くキャッシュメモリを占有したディスク装置が大量のライトアフタデ−タを作成してしまう。従って、ディスク装置毎のキャッシュメモリの割当に関しては、他のディスク装置による割当を阻害しない、適切な配分が重要となる。また、キャッシュメモリがライトアフタデ−タで一杯になると、全てのディスク装置に対するライトアフタ処理ができなくなり、情報処理システム全体の性能が劣化する。この場合も、ディスク装置毎のキャッシュメモリの割当を適切な配分を行うことにより、キャッシュメモリがライトアフタデ−タで一杯になることを抑制することができる。
【0005】
しかし、従来技術において、特公昭59−7986号公報では、ディスク装置ごとのキャッシュメモリの割り当てに関しては、考慮されていなかった。特開昭62−198946号公報では、キャッシュメモリ内のライトアフタデ−タの総量を制限する効果はあるが、ディスク装置ごとのキャッシュメモリの割り当て、および、キャッシュメモリの適切な配分方法に関しては、考慮されていなかった。
【0006】
本発明の目的は、記憶装置に対するキャッシュメモリの割り当てに関し、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置および方法を提供することにある。
【0007】
【課題を解決するための手段】
前記制御装置は、前記記憶装置内のデ−タの一部あるいは前記記憶装置に書き出す前のデ−タを記憶するキャッシュメモリと、前記制御装置の管理情報を記録するディレクトリと、キャッシュメモリ、ディレクトリおよびデ−タ転送を制御するディレクタを有し、前記ディレクタは、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量が閾値以上かを判定する手段と、前記キャッシュメモリ内の前記デ−タ量が閾値以上の場合、記憶装置毎の前記デ−タ量の割当制限を設定する手段と、前記キャッシュメモリ内の前記デ−タ量が閾値未満の場合、前記記憶装置毎の前記デ−タ量の割当制限を解除する手段と、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段と、前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段と、を有する。
【0008】
前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段は、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、デ−タ書きだし処理を待たせている前記記憶装置のグル−プから1つの記憶装置に対応するデ−タを選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タを、前記記憶装置毎の前記デ−タ量の割当制限を設定している前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、前記デ−タを前記キャッシュメモリ有する前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段と、からなる。
【0009】
前記ディレクタは、さらに、前記中央処理装置によりシ−ケンシャルアクセスが指示されて作成されたライトアフタデ−タが規定数以上存在するかを判定する、シ−ケンシャルライトアフタ判定手段と、シ−ケンシャルライトアフタの対象が存在する場合、前記ライトアフタデ−タをキャッシュメモリから記憶装置に書き出すシ−ケンシャルライトアフタ処理を行う手段と、を有する。
【0010】
前記ディレクタは、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を、前記中央処理装置に報告する手段と、前記中央処理装置から指示された、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定する手段と、を有する。
【0011】
【作用】
前記制御装置は、前記記憶装置内のデ−タの一部あるいは前記記憶装置に書き出す前のデ−タを記憶するキャッシュメモリと、前記制御装置の管理情報を記録するディレクトリと、キャッシュメモリ、ディレクトリおよびデ−タ転送を制御するディレクタを有し、前記ディレクタは、キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量が閾値以上かを判定する手段により、キャッシュメモリへの前記デ−タの書き出しを制御できる。前記キャッシュメモリ内の前記デ−タ量が閾値以上の場合、記憶装置毎の前記デ−タの割当量を設定する手段により、記憶装置毎に、前記デ−タの格納領域が保障される。前記キャッシュメモリ内の前記デ−タ量が閾値未満の場合、前記記憶装置毎の前記デ−タ量の割当制限を解除する手段により、デ−タ量の判定に要する処理を低減できる。前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、当該記憶装置に書き出すべき前記デ−タが増加することを防ぐ。前記記憶装置に書き出す前のデ−タを前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの量を減少させることができる。この際、前記割当制限値以上のキャッシュメモリの割り当てを要求する前記中央処理装置からのデ−タ書きだし指示を待たせる手段により、デ−タの書きだし処理を待たせている前記記憶装置のグル−プから1つの記憶装置に対応するデ−タを選択して、前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの割当て制限が原因で待ち状態となったデ−タの書きだし処理を優先して行なうことができる。キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タを、前記記憶装置毎の前記デ−タ量の割当制限を設定している前記記憶装置のグル−プから選択して、前記キャッシュメモリから前記記憶装置に書き出す手段により、前記デ−タの割当て制限が原因で生じた待ち状態が放置された状態とならない。従って、記憶装置に対するキャッシュメモリの割り当てに関し、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【0012】
さらに、前記中央処理装置によりシ−ケンシャルアクセスが指示されて作成されたライトアフタデ−タが規定数以上存在するかを判定する、シ−ケンシャルライトアフタ判定手段により、前記中央処理装置から連続的にライトアフタデ−タを作成できる。連続的にライトアフタデ−タが作成されると、当該記憶装置に対するライトアフタデ−タは、急激に増加する。このため、前記ライトアフタデ−タをキャッシュメモリから記憶装置に書き出すシ−ケンシャルライトアフタ処理を行う手段により、前記中央処理装置から連続的に作成されたライトアフタデ−タをキャッシュメモリから記憶装置に書き出すことができる。これにより、中央処理装置からシ−ケンシャルアクセスが指示された場合でも、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【0013】
前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を、前記中央処理装置に報告する手段により、前記中央処理装置は、記憶装置に対する負荷状況を把握できる。前記中央処理装置から指示された、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定する手段により、前記中央処理装置が要求する記憶装置の応答時間に応じて、前記キャッシュメモリ内にある前記記憶装置に書き出す前のデ−タ量に対する閾値および前記記憶装置に対する前記デ−タの割当制限値を設定することができる。従って、中央処理装置の要求を加味した他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【0014】
【実施例】
以下、本発明の一実施例について説明する。
【0015】
図2は、本発明の一実施例を示す情報処理システムの構成図である。情報処理システムは、中央処理装置(CPU)20とCPU20に接続された制御装置21と制御装置21に接続された少なくとも1台のディスク装置25からなる。制御装置21は、ディレクトリ23、キャッシュメモリ24と少なくも1つのディレクタ22を有する。
【0016】
図3は、ディスク装置25の構成図である。ディスク27は、デ−タを記録する媒体であり、ディスク装置25内に複数存在する。ヘッド28は、デ−タを読み書きする装置であり、ディスク27のデ−タ記録面に対応して複数個存在する。ディスク27が1回転する間に、ヘッド28が読み書き可能な円状のデ−タ記録単位をトラック29と呼ぶ。トラック29は、ディスク27上に複数存在する。トラック29には、デ−タの記録単位の一種であるレコ−ドが格納される。あるデ−タを読み書きするために、ヘッド28を現在位置からそのデ−タを含むトラック29を読み書きできる位置に移動する動作を、シ−ク動作と呼ぶ。また、この動作のための要求を位置付け指示と呼ぶ。シ−ク動作を行なうことなしに、ヘッド28の選択操作のみで、記録あるいは再生が可能なトラック29の集合をシリンダと呼ぶ。ディレクタインタフェ−ス32は、ディスク装置25とディレクタ22とのインタフェ−スであり、ディレクタ22の指示に従ってヘッド28の制御を行なう。インデクス30はディスク27上にある基準位置である。
【0017】
図4は、本実施例におけるトラック内のレコ−ド構成図である。図4(a)に示すように、レコ−ド33は、制御部34とデ−タ部35からなる。図4(b)に示すように、制御部34は、レコ−ド位置341、シリンダ番号342、トラック番号343、レコ−ド番号344、およびデ−タ長345を記録する。レコ−ド位置341は、当該レコ−ド33のトラック29上での位置である。レコ−ド番号344、トラック番号343、シリンダ番号342は、それぞれ、当該レコ−ドの番号、レコ−ド33が記録されたトラックの番号、当該トラック29が含まれるシリンダの番号である。デ−タ長345は、デ−タ部35の長さを示す。デ−タ部35は、デ−タ長345で指示された長さのデ−タを記録する。インデクス30と制御部34との間、レコ−ド33内の制御部34とデ−タ部35との間、および、デ−タ部35と次のレコ−ド33の制御部34との間には、ギャップ36が存在する。
【0018】
図1は、本発明の一実施例における情報処理システムを示す図である。制御装置21に設けられたディレクタ22は、CPU20とディスク装置25との間、CPU20とキャッシュメモリ24との間、および、キャッシュメモリ24とディスク装置25との間で行うデ−タ転送を制御する。CPU起動処理10は、CPU20からの指示によりCPU20とディスク装置25間、および、CPU20とキャッシュメモリ24間のデ−タ転送を実行する。CPU20とキャッシュメモリ24との間のデ−タ転送において、書きかえたキャッシュメモリ24内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出す処理をライトアフタ処理と呼ぶ。キャッシュヒットミス判定処理11では、処理対象のトラック29の内容がキャッシュメモリ24内にあるかを判定する。トラック29の内容がキャッシュメモリ24内にある場合、キャッシュヒットと呼び、トラック29の内容がキャッシュメモリ24内にない場合、キャッシュミスと呼ぶ。キャッシュヒットの場合、キャッシュヒット処理12を行なう。キャッシュヒット処理12では、キャッシュ割り当て制限判定処理13によりライトアフタデ−タに対するキャッシュメモリ24の割り当て状況を判定し、割当て不可能な場合、割り当て待ち処理14により、キャッシュメモリの割り当てが可能となるまで待つ。CPUキャッシュ転送処理15では、CPU20の指示に従い、キャッシュメモリ24内のデ−タを読み書きする。つぎに、シ−ケンシャル判定処理16を行う。シ−ケンシャル判定処理16では、シ−ケンシャルライトアフタ判定処理17により、CPU20からのシ−ケンシャルアクセス指示によりライトアフタデ−タがキャシュメモリ24内にたまっていて、ライトアフタ処理が必要かを判定する。ライトアフタ処理が不要の場合、処理を終了する。ライトアフタ処理が必要な場合、シ−ケンシャルライトアフタ処理18を行なう。シ−ケンシャルライトアフタ処理18では、CPU20が指示したシ−ケンシャルアクセスによるライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出す。キャッシュミスの場合、CPUディスク転送処理19は、CPU20の指示に従い、ディスク装置25内のデ−タを読み書きする。キャッシュ負荷状況判定処理1は、キャッシュメモリ24内のライトアフタデ−タ量により、キャッシュメモリ24の負荷状況を判定する。ライトアフタデ−タ量判定処理2により、ライトアフタデ−タの量が閾値以上かを判定する。閾値以上の場合、割り当て制限設定処理3により、ディスク装置25毎にライトアフタデ−タの量に関する制限値を設定する。閾値未満の場合、割り当て制限解除処理4により、ディスク装置25毎にライトアフタデ−タの量に関する制限値を解除する。ライトアフタ処理5は、ライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出す処理であり、ディレクタ22が空いた時間を利用して行う。割り当て制限ライトアフタ判定処理6により、ライトアフタデ−タの割り当て制限が設定されているディスク装置25のライトアフタ処理が可能かを判定する。ライトアフタ判定処理7により、ライトアフタデ−タの割り当て制限が設定されていないディスク装置25のライトアフタ処理が可能かを判定する。割り当て制限ライトアフタ判定処理6あるいはライトアフタ判定処理7でライトアフタ処理対象を検出した場合、ライトアフタ実行処理8により、ライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出す。
【0019】
以下、ディスク装置25に記憶されたレコ−ド33の読み書き動作について示す。ディレクタ22は、読み書きの対象とするレコ−ド33を記録したディスク装置25が空き状態ならば、当該ディスク装置25と接続し、当該レコ−ド33を読み書きできる位置にヘッド28を位置付けるため、位置付け指示を行なう。ディレクタ22は、ディスク装置25が位置付け動作を行っている間に、別のディスク装置25に対する入出力処理を実行できるように、ディスク装置25との接続を切り離す。位置付け指示されたディスク装置25はシ−ク動作を行ない、レコ−ド33を読み書きできる位置にヘッド28が到達するとディレクタ22に完了報告を行なう。この際、ディレクタ22が空いていると、ディレクタ22が当該ディスク装置25と再接続を行い、ディスク装置25に記憶されたレコ−ド33の読み書きを行なう。ディレクタ22が、例えば、別のディスク装置25とのデ−タ転送中などにより、ビジ−である場合、当該ディスク装置25はディレクタ22とのデ−タ転送は行なえず、ディスク27が回転し、再度、レコ−ド33を読み書きできる位置にヘッド28が到達するまで、待たされる。
【0020】
図5は、ディレクトリ23の構成を示す図である。ディレクトリ23には、スロットコントロ−ルブロック(SCB)40、サ−チテ−ブル41、MRU(Most Recently Used)ポインタ42、LRU(Least Recently Used)ポインタ43、空きSCBポインタ44、タスクコントロ−ルブロック(TCB)45、および、負荷状況管理情報46が存在する。それぞれの内容は、以下で説明する。
【0021】
まず、SCB40の内容とキャッシュメモリ24との関係を図6と図7で説明する。図6は、スロットコントロ−ルブロック(SCB)40の構成図である。図7は、SCB40とキャッシュスロットとの関係図である。キャッシュメモリ24は、キャッシュスロット241と呼ぶ単位に分割する。1キャッシュスロットは、1トラック分のデ−タを格納できるサイズである。SCB40は、キャッシュスロット241を管理する情報である。
【0022】
図6に示すSCB占有フラグ400は、SCBの使用状況を示すフラグであり、処理がSCBを使用中の場合オンにする。前方向ポインタ401と後方向ポインタ402は、SCB40をMRU(Most Recently Used)順にチェインする時に使用する。使用方法に関しては、図8で説明する。ディスク装置番号403、シリンダ番号404、トラック番号405は、それぞれ、SCB40にデ−タを格納したトラック29に対応するディスク装置の番号、シリンダの番号、トラックの番号を記録する。スロットポインタ406は、SCB40が管理しているキャッシュスロット241を示す。ライトアフタフラグ407は、キャッシュスロット241にライトアフタデ−タを格納しているか示すフラグである。当該フラグがオンの場合、当該キャッシュスロット241は、ライトアフタデ−タを格納していることを示す。レコ−ドポインタ408は、キャッシュスロット241におけるレコ−ド33の記録開始位置を示す。更新レコ−ドポインタ409は、キャッシュスロット241におけるライトアフタデ−タを格納しているレコ−ド33記録開始位置を示す。レコ−ドポインタ408と更新レコ−ドポインタ409は、トラック29に記録できる最大のレコ−ド33の数分を用意する。キャッシュスロット241に記録されていないレコ−ド33のレコ−ドポインタ408と、ライトアフタデ−タを格納していないレコ−ド33の更新レコ−ドポインタ409は、nullとする。シ−ケンシャルライトフラグ410は、CPU20からのシ−ケンシャルアクセス指示により、ライトアフタデ−タを作成したことを示す。
【0023】
図8は、サ−チテ−ブル41とSCB40の関係を示す図である。サ−チテ−ブル41は、ディスク装置番号411、シリンダ番号412、トラック番号413およびサ−チポインタ414からなり、どのディスク装置のシリンダ、トラックに属するデ−タがキャッシュメモリ24に格納されているかを検索するためのテ−ブルである。トラック29毎にSCB40へのサ−チポインタ414を有し、トラック29に対応するデ−タがキャッシュメモリ24に格納されているか否かを示す。あるトラック29に対応するサ−チポインタ414がnullの場合、当該トラック29に対応するデ−タはキャッシュメモリ24に格納していないことを示す。サ−チテ−ブル41の内容は、制御装置21に接続可能なディスク装置25に含まれるトラック29の数分を用意する。
【0024】
トラック29に割り当てられたSCB40は、MRUポインタ42、LRUポインタ43、前方向ポインタ401および後方向ポインタ402でチェインする。前方向ポインタ401と後方向ポインタ402は、トラック29に割り当てられたSCB40をMRU順にチェインするためのポインタである。MRUポインタ42は、最も現在時刻に近い時刻に入出力対象となったトラック29に対応するSCB40を示し、LRUポインタ43は、最も長い時間入出力対象となっていないトラック29に対応するSCB40をさす。
【0025】
トラック29に割り当てられていないSCB40は、空きSCBポインタ44、前方向ポインタ401および後方向ポインタ402でチェインする。空きSCBポインタ44は、トラック29に割り当てられていないSCB40をチェインするための先頭ポインタであり、これらSCB40のうち、ひとつをポイントする。トラック29が割り当てられていない残りのSCB40は、前方向ポインタ401および後方向ポインタ402でチェインする。トラック29が割り当てられていないSCB40が存在しない場合、空きSCBポインタ44は、nullとする。
【0026】
図9は、タスクコントロ−ルブロック(TCB)の構成図である。TCB45は、制御装置21で処理中のタスクを管理する情報であり、ディスク装置25毎に存在する。TCB45は、ディスク装置番号50、論理デバイス情報60、および、物理デバイス情報70からなる。まず、論理デバイスと物理デバイスについて説明する。ディレクタ22が行なうデ−タ転送処理には、CPU20とディスク装置25間のデ−タ転送処理、CPU20とキャッシュメモリ24間のデ−タ転送処理、および、キャッシュメモリ24とディスク装置25間のデ−タ転送処理がある。ここで、キャッシュメモリ24とディスク装置25間のデ−タ転送処理は、ディスク装置25を使用して処理を実行するが、CPU20とキャッシュメモリ24間のデ−タ転送処理は、ディスク装置25を使用する必要がない。従って、キャッシュメモリ24とディスク装置25間のデ−タ転送処理と、CPU20とキャッシュメモリ24間のデ−タ転送処理は、独立に実行可能である。CPU20とキャッシュメモリ24間のデ−タ転送処理を行なう時、上記2つの処理同士を互いに排他的に行なうため、論理デバイスを設ける。キャッシュメモリ24とディスク装置25間のデ−タ転送処理を行なう時、上記2つの処理同士を互いに排他的に行なうため、物理デバイスを設ける。従って、CPU20とキャッシュメモリ24間のデ−タ転送処理では、論理デバイスにより排他制御を行ない、キャッシュメモリ24とディスク装置間のデ−タ転送処理では、物理デバイスにより排他制御を行なう。CPU20とディスク装置間のデ−タ転送処理を行なう時、論理デバイスと物理デバイスの両方を使用するものとする。
【0027】
図9に示したTCB45の内容を以下に説明する。ディスク装置番号50は、当該TCB45が制御対象とするディスク装置の番号を示す。論理デバイス情報60は、CPU20とキャッシュメモリ24間で行なうデ−タ転送処理に関する情報であり、以下の内容からなる。占有処理情報600は、論理デバイスを占有している処理の実行状況を示す。実行情報601は、タスクの実行状況を示す。実行状況とは、未使用、実行可能、実行中、あるいは、待ち状態である。未使用状態は、論理デバイスを使用している処理がないことを示す。実行可能状態は、論理デバイスを占有している処理をディレクタが実行できる状態であることを示す。実行中状態は、論理デバイスを占有している処理が実行中であることを示す。待ち状態は、待ち状態情報601に示す理由が解除されるのを待っている状態である。待ち状態が解除されると実行可能状態となり、ディレクタが実行可能状態を検出するとその処理を実行中として処理を継続する。待ち状態情報602は、実行情報601が待ち状態の場合、その理由を示す。待ち状態の理由としては、物理デバイス待ち、SCB待ち、あるいは、キャッシュ割り当て待ちがある。物理デバイス待ちは、論理デバイスを占有している処理がディスク装置25を使用するため、物理デバイスの空きを待っている状態である。SCB待ちは、物理デバイスを占有している処理が占有しているSCB40が空くのを待っている状態である。キャッシュ割当て待ちは、ライトアフタデ−タに関する容量制限のため、ライトアフタデ−タ量が制限値未満になるのを待っている状態である。シリンダ番号603は、処理対象とするトラック29が含まれるシリンダ番号を示す。エントリ数604は、後述するトラックリストに記録したエントリの数を格納する。トラックポインタ605は、処理が実行対象としているトラックリストのエントリを示す。トラックリストは、処理対象とするトラック番号606を1エントリとして記録する。トラック番号606は、処理が動作対象とするトラック29の番号を示す。ビジ−報告フラグ607は、CPU20が指示した処理を行なう時、当該ディスク装置25が使用中のため、CPU20にビジ−を報告したか否かを示す。当該フラグがオンの場合、CPU20にビジ−を報告済みであることを示す。物理デバイス情報70は、CPU20とディスク装置25間で行なうデ−タ転送処理、および、キャッシュメモリ24とディスク装置25間で行なうデ−タ転送処理に関する情報である。その内容は、占有処理情報700、実行情報701、シリンダ番号703、エントリ数704、トラックポインタ705、および、トラック番号706であり、それぞれ、論理デバイス情報60における、占有処理情報600、実行情報601、シリンダ番号603、エントリ数604、トラックポインタ605、および、トラック番号606に対応する情報である。待ち状態情報702は、実行情報701が待ち状態の場合、その理由を示す。待ち状態の理由としては、位置付け待ちがある。
【0028】
図10は、負荷状況管理情報の構成図である。負荷状況管理情報46は、キャッシュメモリ24内のライトアフタデ−タの占有状況を管理する情報である。割り当て可能スロット数460は、ライトアフタデ−タに割り当て可能なキャッシュスロット241の数を示す。占有スロット数461は、キャッシュメモリ24内のライトアフタデ−タを含むキャッシュスロットの数を示す。過負荷設定スロット数462、過負荷解除スロット数463は、ライトアフタデ−タを含むキャッシュスロット241において、それぞれ、キャッシュ過負荷を設定するキャッシュスロット241の数とキャッシュ過負荷を解除するキャッシュスロット241の数を示す。過負荷フラグ464は、ライトアフタデ−タを含むキャッシュスロット241の数が、過負荷設定スロット数462以上となった時から、過負荷解除スロット数463未満になったときまでの状態を示すフラグである。スロット待ちTCBポインタ465は、キャッシュスロット241の割り当て待ちのため、CPU20からの入出力要求を待たせているTCB45を示すポインタである。ディスク割り当て情報470は、ディスク装置25ごとに存在し、カレントスロット数471、制限スロット数472、設定基準スロット数473、解除基準スロット数474、過負荷待ちフラグ475、および、最低割り当てスロット数476からなる。カレントスロット数471は、それぞれのディスク装置25に対して割り当てられたキャッシュスロット241の数であり、かつ、ライトアフタデ−タを含むキャッシュスロット241の数を示す。制限スロット数472は、それぞれのディスク装置25に対して割り当て可能なライトアフタデ−タを含むキャッシュスロット241の数を示す。設定基準スロット数473は、制限スロット数472を決定するための基準とするキャッシュスロット241の数であり、かつ、ライトアフタデ−タを含むキャッシュスロット241の数を示す。解除基準スロット数474は、それぞれのディスク装置25に対してキャッシュスロット241の割り当て制限を解除するための数であって、かつ、ライトアフタデ−タを含むキャッシュスロット241の数を示す。制限スロット数472、設定基準スロット数473、および、解除基準スロット数474が無効の場合、その内容はnullとする。過負荷待ちフラグ475は、カレントスロット数471が制限スロット数472以上になったため、キャッシュスロット241の割り当てを待たせている状態を示す。最低割り当てスロット数476は、ディスク装置25に割り当てるキャッシュスロット241の数の下限値である。
【0029】
以下、ディレクタ−22が実行する処理内容を説明する。
【0030】
図11は、図1に示したキャッシュ負荷状況判定処理1のフロ−チャ−トである。キャッシュ負荷状況判定処理1は、ライトアフタデ−タを含むキャッシュスロット241の占有量からキャッシュメモリ24の負荷状況を判定する処理である。本実施例では、負荷状況管理情報46における、割り当て可能スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、および、最低割り当てスロット数476を、予め定めておく。ただし、過負荷設定スロット数462は、割り当て可能スロット数460以下でないと、ライトアフタデ−タを含むキャッシュスロット241の過負荷状況を設定できない。過負荷解除スロット数463は、過負荷設定スロット数462以下である。ステップ100では、過負荷フラグ464がオンかを判定する。当該フラグがオンの場合、ステップ110に進み、オフの場合、ステップ101に進む。ステップ101では、占有スロット数461が過負荷設定スロット数462以上かを判定する。条件を満足する場合、ステップ108に進み、満足しない場合、ステップ102に進む。ステップ102では、占有スロット数461が過負荷解除スロット数463以上か否かを判定する。この条件を満たす場合、処理を終了し、満たさない場合、ステップ103に進む。ステップ103〜107は、割当て解除処理4であり、制限スロット数472が設定されているディスク装置25に対して、スロットの割当ての解除を試行する。ステップ103では、制限スロット数472が設定されているディスク装置25を検索する。ステップ104では、制限スロット数472が設定されているディスク装置25を検出したか否かを判定する。検出した場合、ステップ105に進み、検出できなかった場合、処理を終了する。ステップ105では、カレントスロット数471が解除基準スロット数474未満かどうかを判定する。この条件を満たす場合、ステップ106に進み、条件を満たさない場合、ステップ107に進む。ステップ106では、スロットの割当ての制限を解除するため、制限スロット数472、設定基準スロット数473、および、解除基準スロット数474をnullとする。ステップ107では、全てのディスク装置25に対して判定が終了したかを判定する。終了していない場合、ステップ103に戻り、終了した場合、処理を終了する。ステップ108〜109では、キャッシュメモリ24の過負荷状況を設定する。ステップ108では、過負荷フラグ464をオンする。ステップ109では、ディスク装置25毎に、カレントスロット数471を設定基準スロット数473に設定する。ステップ110では、占有スロット数461が過負荷解除スロット数463未満かを判定する。条件を満たす場合、ステップ111に進み、満たさない場合、ステップ112に進む。ステップ111では、過負荷フラグ464をオフし、処理を終了する。ステップ112〜115は、割当て設定処理3であり、ディスク装置25に対するキャッシュスロット241の割り当て制限を行なう。ステップ112では、カレントスロット数471が設定基準スロット数473以上かを判定する。条件を満たす場合、ステップ113に進み、条件を満たさない場合、ステップ115進む。ステップ113では、カレントスロット数471が最低割り当てスロット数476以上かを判定する。条件を満たす場合、ステップ114に進み、満たさない場合、ステップ115に進む。ステップ114では、ディスク装置25に対するキャッシュスロット割当制限、および、制限解除基準を設定する。すなわち、制限スロット数472にカレントスロット数471を設定し、解除基準スロット数474に設定基準スロット数473の値を設定する。解除基準スロット数474を設定する時に、カレントスロット数471に対して予め定めた割合を設定してもよい。ステップ115では、全てのディスク装置25に対する判定が終了したかを判定する。終了していない場合、ステップ112に戻り、終了した場合、ステップ116に進む。ステップ116では、設定基準スロット数473を設定していないディスク装置25に対し、設定基準スロット数458にカレントスロット数471を設定する。
【0031】
図12は、図1に示したCPU起動処理10のフロ−チャ−トである。CPU起動処理10は、CPU20から制御装置21に対する指示に従って実行される処理であり、CPU20とディスク装置25間、および、CPU20とキャッシュメモリ24間のデ−タ転送を行なう。ステップ120では、CPU20からデ−タ転送処理を指示されたディスク装置25において、論理デバイスが未使用状態かどうかを実行情報601により判定する。論理デバイスが未使用の場合、ステップ121に進み、それ以外は、ステップ146に進む。ステップ121では、図9に示した占有処理情報600にCPU起動処理の実行状況を設定し、実行情報601にタスクの実行状況を設定する。ステップ122では、CPU20から指示されたトラック29の内容が、キャッシュメモリ24内に存在するかを判定する。即ち、図5に示したサ−チテ−ブル41を参照し、当該トラック29に対応するサ−チポインタ414の内容がnullでない場合、当該トラック29の内容はキャッシュメモリ24内に存在すると判定される。この判定は、図1に示したキャッシュヒットミス判定11に対応する。キャッシュヒットの場合、ステップ123に進み、キャッシュミスの場合、ステップ140に進む。ステップ123〜133はキャッシュヒット処理12に対応する。ステップ123では、当該トラック29に対応するSCB40が、他の処理により使用中か否かをSCB占有フラグ400により判定する。使用中の場合、ステップ124に進み、使用中でない場合、ステップ125に進む。ステップ124では、論理デバイスの実行状態601を待ち状態とし、待ち状態情報602をSCB待ちとして、当該SCB40が解放されるまで待つ。ステップ125では、論理デバイス情報60にSCB40の内容を設定する。すなわち、実行情報601を実行中とし、エントリ数604に1を設定し、トラックポインタ605にはトラックリストの先頭のエントリを示す値を設定し、処理対象トラック29に対応するシリンダ番号603、トラック番号606を設定する。ステップ126では、CPU20からの指示により、当該トラックに対しライトアフタデ−タを新規に作成するのかを判定する。条件を満たす場合、ステップ127に進む、満たさない場合、ステップ130に進む。ステップ127では、制限スロット数472が有効かを判定する。ここで、制限スロット数472がnullでない場合、制限スロット数472は有効とする。有効の場合、ステップ128に進み、有効でない場合、ステップ130進む。ステップ128では、カレントスロット数471が制限スロット数472以上かを判定する。条件を満たす場合、ステップ129に進み、条件を満たさない場合、ステップ130に進む。ステップ129では、実行状態601を待ち状態とし、待ち状態情報602をキャッシュ割当て待ち状態とし、カレントスロット数471が制限スロット数472未満になるまで待つ。ステップ130では、割り当て可能スロット数460と占有スロット461からキャッシュスロット241にライトアフタデ−タを割り当て可能か否かを判定する。割り当て可能な場合、ステップ132に進み、割り当て不可能な場合、ステップ131に進む。ステップ131では、実行状態601を待ち状態とし、待ち状態情報602をキャッシュ割当て待ちとし、占有スロット数461が割り当て可能スロット数460未満になるまで待つ。ステップ132では、占有スロット数461とカレントスロット数471にそれぞれ割り当てたスロット数を加算する。ステップ133では、CPU20からの指示に従い、CPU20とキャッシュメモリ24間のデ−タ転送を行なう。この時、キャッシュメモリ24内のレコ−ド33を更新した場合、ライトアフタフラグ407をオンし、更新レコ−ドポインタ409を設定する。また、CPU20からシ−ケンシャルアクセスを指示され、かつ、ライトアフタデ−タを作成した場合、シ−ケンシャルライトフラグ410をオンする。ステップ16では、シ−ケンシャル判定処理を実行する。シ−ケンシャル判定処理16のフロ−チャ−トを図14に示す。ステップ140〜145は、CPUディスク転送処理19に対応する。ステップ140では、当該ディスク装置25の物理デバイスが未使用か否かを実行情報701により判定する。物理デバイスが未使用の場合、ステップ142に進み、そうでない場合、ステップ141に進む。ステップ141では、実行状態601を待ち状態とし、待ち状態情報602を物理デバイス待ちとして、当該物理デバイスが開放されるまで待つ。ステップ142では、占有処理情報700にCPU起動処理の実行状況を設定し、実行情報701に実行中を設定する。ステップ143では、処理対象のトラック29にキャッシュスロット241を割り当て、TCB45に情報を設定する。すなわち、SCB占有フラグ400をオンし、ディスク装置番号403、シリンダ番号404、トラック番号405に、それぞれ、割り当てたトラック29に対するディスク装置番号、シリンダの番号、トラックの番号を設定し、シリンダ番号703に処理対象とするトラック29に対応するシリンダの番号を設定し、トラック番号706に処理対象とするトラック29の番号を設定し、エントリ数704にトラック番号458を設定したトラック29の数を設定し、トラックポインタ705に最初のエントリを示す値を設定する。ステップ144では、ディスク装置25に対し、CPU20が処理対象として指示したレコ−ド33への位置付け指示を行ない、その完了を待つ。ステップ145では、ディスク転送処理を行なう。この処理のフロ−チャ−トを図13に示す。
【0032】
図13は、ディスク転送処理のフロ−チャ−トである。この処理は、ステップ145に対応する処理である。ステップ151では、CPU20からの指示に従い、CPU20とディスク装置25との間のデ−タ転送を行なう。ステップ152では、当該トラック29にキャッシュスロット241を割当て済みかを判定する。キャッシュスロット241が割り当てられている場合、ステップ153に進み、キャッシュスロット241が割り当てられていない場合、ステップ154に進む。ステップ153では、トラック29の内容を読み出し、割り当てられたキャッシュスロット241にその内容を格納する。この際、レコ−ドポインタ408を設定する。ステップ154では、TCB45の内容を無効化する。すなわち、論理デバイスに対する占有処理情報600をnullとし、実行情報601を未使用とし、さらに、物理デバイスに対する占有処理情報700をnullとし、実行情報701に未使用であることを示す情報を設定する。さらに、SCB40を割り当てている場合、SCB占有フラグ400をオフする。ステップ155では、ビジ−報告フラグ607によりCPU20にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ156に進み、そうでない場合、処理を終了する。ステップ156では、ビジ−報告フラグをオフし、CPU20にビジ−解除の報告を行なう。
【0033】
図14は、図12に示したシ−ケンシャル判定処理16のフロ−チャ−トである。ステップ161では、CPUからの指示がシ−ケンシャルアクセスかを判定する。シ−ケンシャルアクセスの場合、ステップ162に進み、そうでない場合、ステップ167に進む。ステップ162では、CPU起動処理でライトを実行したかを判定する。ライトを実行した場合、ステップ165に進み、実行していない場合、ステップ163に進む。ステップ163では、ロ−ド処理が必要かを判定する。ロ−ド処理が必要な場合、ステップ164に進み、必要ない場合、ステップ167に進む。ステップ164では、ロ−ド処理を実行する。ロ−ド処理のフロ−チャ−トを図15に示す。ステップ165では、シ−ケンシャルライトアフタ処理が必要かを判定する。すなわち、当該トラック29以前にライトアフタデ−タを有するトラックが規定数以上あるかを判定する。規定数以上ある場合、ステップ18に進み、そうでない場合、ステップ167に進む。ステップ18では、シ−ケンシャルライトアフタ処理を行なう。シ−ケンシャルライトアフタ処理18のフロ−チャ−トを図16に示す。ステップ167では、論理デバイスに対する実行情報601に未使用を設定する。ステップ168では、ビジ−報告フラグ607によりCPU20にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ169に進み、そうでない場合、処理を終了する。ステップ169では、ビジ−報告フラグをオフし、CPU20にビジ−解除の報告を行なう。
【0034】
図15は、ロ−ド処理164のフロ−チャ−トである。ロ−ド処理164は、ステップ164に対応する。ステップ170では、物理デバイスの実行情報701により、物理デバイスが未使用かを判定する。未使用の場合、ステップ172に進み、そうでない場合、ステップ171に進む。ステップ171では、論理デバイスの実行情報601に待ち状態を設定し、待ち状態情報602に物理デバイス待ちを設定し、物理デバイスが空くまで待つ。ステップ172では、物理デバイスの占有処理情報700にロ−ド処理の実行状況を設定し、実行情報701に実行中を設定し、論理デバイスの占有処理情報600をnullとし、実行情報601に未使用を設定する。ステップ173では、ビジ−報告フラグ607により、CPU20にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ174に進み、そうでない場合、ステップ175に進む。ステップ174では、ビジ−報告フラグ452をオフし、CPU20に当該ディスク装置25のビジ−状態が解除された報告を行なう。ステップ175では、ロ−ド処理が対象とするトラック29にキャッシュスロット241を割り当て、物理デバイス情報70に所定の値を設定する。すなわち、SCB占有フラグ400をオンし、キャッシュスロット241を割り当てたトラック29に対応するシリンダの番号をシリンダ番号455に設定し、キャッシュスロット241を割り当てたトラック29に対応するトラック29の番号をトラック番号458に設定し、エントリ数456にトラック番号458を設定したトラック29の数を設定し、トラックポインタ457を最初のエントリを示すようにする。ステップ176では、ディスク装置25に位置付け指示を行ない、その完了を待つ。ステップ177では、ロ−ド実行処理を行なう。この処理のフロ−チャトを図17に示す。
【0035】
図16は、シ−ケンシャルライトアフタ処理のフロ−チャ−トである。この処理は、図1のステップ18に対応する。ステップ180では、物理デバイスの実行情報701により物理デバイスが未使用かを判定する。未使用の場合、ステップ182に進み、そうでない場合、ステップ181に進む。ステップ181では、論理デバイスの実行情報601に待ち状態を設定し、待ち状態情報602に物理デバイス待ちを設定し、物理デバイスが空くまで待つ。ステップ182では、物理デバイスの占有処理情報700にシ−ケンシャルライトアフタ処理を設定し、実行情報701に実行中を設定し、論理デバイスの占有処理情報600をnullとし、実行情報601に未使用を設定する。ステップ183では、ビジ−報告フラグ607により、CPU20にビジ−を報告したかを判定する。ビジ−を報告した場合、ステップ184に進み、そうでない場合、ステップ185に進む。ステップ184では、ビジ−報告フラグ607をオフし、CPU20に当該ディスク装置25のビジ−状態が解除されたことを報告する。ステップ185では、検出したディスク装置25に対応する物理デバイス情報70に所定の値を設定する。すなわち、シリンダ番号455に処理対象とするシリンダの番号を記録し、エントリ数456に1を設定し、トラック番号458に処理対象とするトラックの番号を設定し、トラックポインタ457を最初のエントリを示すようにする。ステップ186では、同一のディスク装置25であってかつ同一シリンダ内にある複数のトラック29に対応するそれぞれのSCB40の中から、シ−ケンシャルライトフラグ410がオンのSCB40を捜す。ステップ187では、前記トラック29に対応するSCB40を検出できたかを判定する。検出できた場合、ステップ188に進み、検出できなかった場合、ステップ189に進む。ステップ188では、検出したSCB40を物理デバイス情報70に設定する。すなわち、トラック番号706を設定し、エントリ数704を1加算し、ステップ186に戻る。ステップ189では、ディスク装置25に位置付け指示を行ない、その完了を待つ。ステップ190では、ライトアフタ実行処理を行なう。この処理のフロ−チャ−トを図19に示す。
【0036】
図17は、ロ−ド実行処理のフロ−チャ−トである。ロ−ド実行処理は、図14のステップ169に対応する。ステップ200では、トラックポインタ457が示すトラック番号458について、インデクス30を見つける。ステップ201では、トラック29上のレコ−ド33を見つけてこれを読み込み、キャッシュスロット241に格納する。この際、レコ−ドポインタ408にレコ−ド33を格納したキャッシュスロット241上の位置を記録する。ステップ202では、当該トラック29に記録されたレコ−ド33の読み込みが終了したかを判定する。終了した場合、ステップ203に進み、終了していない場合、ステップ201に戻る。ステップ203では、物理デバイス情報70に示した全てのトラック29に対し、ロ−ド処理が終了したかを判定する。終了していない場合、ステップ204に進み、終了した場合、ステップ205に進む。ステップ204では、次のトラック29を処理対象とする。即ち、トラックポインタ705が次のエントリを示すように更新する。本ステップ204処理後、ステップ200に戻る。ステップ205では、物理デバイス情報70に登録されたSCB40のSCB占有フラグ400をオフし、物理デバイスに対する占有処理情報700をnullとし、実行情報701に未使用を設定する。ステップ206では、論理デバイス情報60の実行情報601により、論理デバイスの処理が待ち状態かを判定する。待ち状態の場合、ステップ207に進み、待ち状態でない場合、処理を終了する。ステップ207では、論理デバイス情報60の実行情報601を実行可能とする。
【0037】
図18は、図1に示したライトアフタ処理5のフロ−チャ−トである。ライトアフタ処理5は、ディレクタ−22が空き状態の場合に実行される。ステップ210では、ライトアフタデ−タを持ち、物理デバイスが空き状態、かつ、論理デバイスがスロット待ち状態のディスク装置25を検索する。すなわち、LRUポインタ43からSCB40をたどり、ライトアフタフラグ407により、ライトアフタデ−タを持ち、SCB占有フラグ400がオフのSCB40を捜す。さらに、物理デバイスの実行情報701により、検出したSCB40に対応するディスク装置25が、未使用かを判定し、論理デバイスの実行情報601と待ち状態情報602により、スロット待ち状態かを判定する。ステップ211では、ステップ210で検索したディスク装置25が検出できたかを判定する。検出できた場合、ステップ216に進み、検出できない場合、ステップ212に進む。ステップ212では、ライトアフタデ−タを持ち、物理デバイスが空き状態、かつ、過負荷状態のディスク装置25を検索する。すなわち、LRUポインタ43からSCB40をたどり、ライトアフタフラグ407により、ライトアフタデ−タを持ち、SCB占有フラグ400がオフのSCB40を捜す。さらに、物理デバイスの実行情報701により、検出したSCB40に対応するディスク装置25が、使用可能かを判定し、制限スロット数472により、過負荷状態かを判定する。ステップ213では、ステップ212で検索したディスク装置25が検出できたかを判定する。検出できた場合、ステップ216に進み、検出できない場合、ステップ214に進む。ステップ214では、ライトアフタデ−タを持ち、かつ、物理デバイスが空き状態のディスク装置25を検索する。すなわち、LRUポインタ43からSCB40をたどり、ライトアフタフラグ407により、ライトアフタデ−タを持ち、SCB占有フラグ400がオフのSCB40を捜す。さらに、物理デバイスの実行情報701により、検出したSCB40に対応するディスク装置25が、使用可能かを判定する。ステップ215では、ステップ214で検索したディスク装置25が検出できたかを判定する。検出できた場合、ステップ216に進み、検出できない場合、処理を終了する。ステップ216では、実行情報701に実行中を設定する。ステップ217では、検出したディスク装置に対応する物理デバイス情報70に所定の値を設定する。すなわち、占有処理情報700にライトアフタ処理を設定し、実行情報701を実行中とし、シリンダ番号703に処理対象とするシリンダの番号を記録し、エントリ数704に1を設定し、トラック番号458に処理対象とするトラックの番号を設定し、トラックポインタ705に最初のエントリを示す値を設定する。検出したSCB40のSCB占有フラグ400をオンする。ステップ218では、同一のディスク装置25であってかつ同一シリンダ内にある複数のトラック29に対応するそれぞれのSCB40の中から、SCB占有フラグ400がオフ、かつ、ライトアフタフラグ407がオンのSCBを捜す。ステップ139では、前記トラック29に対応するSCB40を検出できたかを判定する。検出できた場合、ステップ220に進み、検出できなかった場合、ステップ141に進む。ステップ220では、トラック番号706を設定し、エントリ数704を1加算し、SCB占有フラグをオンとし、ステップ218に戻る。ステップ221では、ディスク装置25に位置付け指示を行ない、その完了を待つ。ステップ190では、ライトアフタ実行処理を行なう。この処理のフロ−チャ−トを図19に示す。
【0038】
図19は、ライトアフタ実行処理190のフロ−チャ−トである。ライトアフタ実行処理は、図16のステップ190に対応する。ステップ230では、レコ−ド33のサ−チを開始し、位置付けたディスク装置25上の物理位置を記憶する。ステップ231では、トラック29上のレコ−ド33を見つけ、制御部34を読みだす。ステップ232では、位置付け指示したレコ−ド番号とステップ231で見つけたレコ−ド番号が一致するかを判定する。一致する場合、ステップ234に進み、一致しない場合、ステップ233に進む。ステップ233では、ステップ230で記憶した物理位置と、ステップ231で読みだしたレコ−ドの物理位置を比較し、ディスクが1回転したかを判定する。1回転していない場合、ステップ231に戻り、1回転している場合、ステップ239に進む。ステップ234では、キャッシュスロット241からレコ−ド33を読み出し、ディスク装置25に書き出す。書きだしたレコ−ド33に対応する更新レコ−ドポインタ409をnullとする。当該トラック29に対する更新レコ−ドポインタ409の全てがnullとなったら、ライトアフタフラグ407とシ−ケンシャルライトフラグ410をオフする。ステップ235では、トラック29内のレコ−ド33に対する処理が終了したかを判定する。処理が終了した場合、ステップ230に戻り、処理が終了していない場合、ステップ236に進む。ステップ236では、占有スロット数460とカレントスロット数466からスロット数を減算し、SCB占有フラグ400をオフする。ステップ237では、ライトアフタ処理の終了判定を行う。終了でない場合、ステップ238に進み、終了の場合、ステップ239に進む。ステップ238は、次のトラック29を処理対象とする。即ち、トラックポインタ457が次のエントリを示すように更新する。本ステップ238の処理が終了した後、ステップ230に戻る。ステップ241では、物理デバイス情報70の内容を無効化する。すなわち、物理デバイス情報70の占有処理情報700をnullとし、実行情報701を未使用とする。ステップ240では、論理デバイス情報60の実行情報601により、論理デバイスの処理が待ち状態かを判定する。待ち状態の場合、ステップ241に進み、待ち状態でない場合、処理を終了する。ステップ241では、論理デバイス情報60の実行情報601を実行可能とする。
【0039】
本発明の実施例によれば、図1のキャッシュ負荷状況判定処理1により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置25毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するCPU20からのデ−タ書き出し指示があった場合、ライトアフタ処理5はライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出し、ライトアフタデ−タの量が割当て制限未満になるまで上記の指示を待たせる。このため、あるディスク装置25への割当て量が過大となり、他のディスク装置25に対する割当て量が過少となることはない。従って、ディスク装置25に対するキャッシュメモリ24の割当てに関し、他のディスク装置25に対するキャッシュメモリ24の割当てを阻害しない適切な配分を行うことができる。
【0040】
さらに、CPU20によりシ−ケンシャルアクセスが指示されて、ライトアフタデ−タが作成されると記憶装置に書き込むべきライトアフタデ−タは、急激に増加する。このため、前記ライトアフタデ−タをただちにキャッシュメモリから記憶装置に書き出す。これにより、中央処理装置からシ−ケンシャルアクセスが指示された場合でも、他の記憶装置に対するキャッシュメモリの割り当てを阻害しない、適切な配分を行う記憶装置の制御装置を提供することができる。
【0041】
以下、第2の実施例について示す。第2の実施例は、装置構成等は、第1の実施例と同様であり、ディレクタ22が実行するCPU起動処理のみが第1の実施例とは異なる。ここでは、第2の実施例が、第1の実施例とは異なっているところのみを説明する。
【0042】
本実施例でのCPU起動処理10は、キャッシュメモリの割当制限以上のライトアフタデ−タが存在する場合、CPUディスク転送処理を行う。
【0043】
図20は、本発明の第2の実施例における情報処理システムを示す図である。ディレクタ22は、CPU20とディスク装置25との間、CPU20とキャッシュメモリ24との間、および、キャッシュメモリ24とディスク装置25との間で行うデ−タ転送を制御する。CPU起動処理10は、CPU20からの指示によりCPU20とディスク装置25間、および、CPU20とキャッシュメモリ24間のデ−タ転送を実行する。CPU20とキャッシュメモリ24との間のデ−タ転送において、書きかえたキャッシュメモリ24内のデ−タをライトアフタデ−タと呼び、このライトアフタデ−タをキャッシュメモリ24からディスク装置25に書きす処理をライトアフタ処理と呼ぶ。ヒットミス判定処理11では、処理対象のトラック29の内容がキャッシュメモリ24内にあるかを判定する。トラック29の内容がキャッシュメモリ24内にある場合、キャッシュヒットと呼び、トラック29の内容がキャッシュメモリ24内にない場合、キャッシュミスと呼ぶ。キャッシュヒットの場合、キャッシュヒット処理12を行なう。キャッシュヒット処理12では、キャッシュ割り当て制限判定処理13によりライトアフタデ−タに対するキャッシュメモリ24の割り当て状況を判定し、割当て不可能な場合、CPUディスク転送処理18を実行する。CPUキャッシュ転送処理15では、CPU20の指示に従い、キャッシュメモリ24内のデ−タを読み書きする。シ−ケンシャル判定処理16、キャッシュ負荷状況判定処理1、および、ライトアフタ処理5は、第1の実施例と同様であるため、ここでは説明しない。
【0044】
図21は、第2の実施例におけるCPU起動処理に関するフロ−チャ−トである。CPU起動処理10は、CPU20から制御装置21に対する指示により実行する処理であり、CPU20とディスク装置25間、および、CPU20とキャッシュメモリ24間のデ−タ転送を行なう。ステップ120〜127は、図12に示した第1の実施例と同様であるため、ここでは説明しない。ステップ128では、カレントスロット数471が制限スロット数472以上かを判定する。条件を満たす場合、ステップ140に進み、条件を満たさない場合、ステップ130に進む。ステップ130〜133、ステップ140〜145、および、ステップ16は、第1の実施例と同様であるため、ここでは説明しない。
【0045】
本発明の実施例によれば、キャッシュ負荷状況判定処理1により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置25毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するCPU20からのデ−タ書き出し指示があった場合、CPUディスク転送処理19により、CPU20とディスク装置25とのデ−タ転送により上記の指示に対する処理を行なう。このため、あるディスク装置25への割当て量が過大となり、他のディスク装置25に対する割当て量が過少となることはない。従って、ディスク装置25に対するキャッシュメモリ24の割当てに関し、他のディスク装置25に対するキャッシュメモリ24の割当てを阻害しない適切な配分を行うことができる。
【0046】
以下、第3の実施例について示す。第3の実施例は、負荷状況管理情報46として、割り当て可能スロット数460、過負荷設定スロット数461、過負荷解除スロット数463、および、最低割り当てスロット数476を外部からの指示により設定することが第1の実施例とは異なる。本実施例では、制御装置21にサ−ビスパネル36を接続し、サ−ビスパネル36により負荷情報管理情報46を指定する。ここでは、第3の実施例が、第1の実施例とは異なっているところのみを説明する。
【0047】
図22は、本発明の第3の実施例を示す情報処理システムの構成図である。情報処理システムは、中央処理装置(CPU)20、CPU20に接続された制御装置21、制御装置21に接続されたサ−ビスパネル36、および、制御装置21に接続された少なくとも1台のディスク装置25からなる。制御装置21は、ディレクトリ23、キャッシュメモリ24、サ−ビスプロセッサ26、および、少なくも1つのディレクタ22を有する。
【0048】
図23は、本発明の第3の実施例における情報処理システムを示す図である。ディレクタ22は、CPU20とディスク装置25との間、CPU20とキャッシュメモリ24との間、および、キャッシュメモリ24とディスク装置25との間で行うデ−タ転送を制御する。CPU起動処理10、キャッシュ負荷状況判定処理1、および、ライトアフタ処理5は、第1の実施例と同様であり、ここでは、説明しない。負荷基準操作処理39は、サ−ビスプロセッサ26の指示により、ディレクトリ23の内容を読みだす、あるいは、更新する。サ−ビスパネル36は、制御装置21内の制御情報をユ−ザに表示するための表示部37と、ユ−ザからの指示を受け付けるための指示受領部38からなる。サ−ビスプロセッサ26は、サ−ビスパネル37とディレクタ22との間にあって、情報の表示と授受を制御する。
【0049】
図24は、サ−ビスパネル36に表示される内容である。表示される内容としては、割当制限スロット数81、過負荷設定スロット数82、過負荷解除スロット数83、ディスク装置番号84、制限スロット数85、および、最低割当スロット数86がある。割当制限スロット数81、過負荷設定スロット数82、過負荷解除スロット数83、制限スロット数85、最低割当スロット数86は、それぞれ、割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、最低割当スロット数476に対応する。それぞれの情報に関し、その内容がnullのものは、空白を表示し、その内容がnullでないものは、その値を表示する。ディスク装置番号84は、ディスク装置の番号であり、この領域は、更新不可能とする。メッセ−ジ表示欄87は、ユ−ザにより指示された情報の内容に誤りがある場合のエラ−表示等を行う。
【0050】
図25は、第3の実施例における負荷管理情報の構成図である。負荷管理情報46は、キャッシュメモリ24内のライトアフタデ−タの占有状況を管理する情報である。図10に示した第1の実施例と異なるのは、ディスク割当情報470内に、新たに、制限スロット数設定フラグ477を設けたことである。ここでは、制限スロット数設定フラグ477について説明する。制限スロット数設定フラグ477は、外部からの指示により制限スロット数472を設定したかを示すフラグである。
【0051】
図26は、サ−ビスプロセッサによる負荷基準操作処理のフロ−チャ−トである。負荷基準操作処理39は、サ−ビスプロセッサ26からの指示により、ディレクタ22が実行する処理である。ステップ250では、サ−ビスプロセッサ26からの指示が情報更新か否かを判定する。情報更新の場合、ステップ252に進み、情報更新でない場合、ステップ251に進む。ステップ251では、割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、および、最低割当スロット数476を読みだし、サ−ビスプロセッサ26に転送する。ステップ252では、サ−ビスプロセッサ26から情報が転送されてくるのを待つ。ステップ253では、サ−ビスプロセッサ26から転送された情報を割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、および、最低割当スロット数476に設定する。この際、制限設定スロット数95の内容がnullでないディスク装置25に対し、制限スロット数設定フラグ477をオンする。
【0052】
図27は、サ−ビスプロセッサでの情報操作処理を示す図である。本処理は、サ−ビスパネル36の指示受領部38により指示を受け、サ−ビスプロセッサ26が実行する。ステップ261では、ユ−ザからの指示が情報更新か否かを判定する。情報更新の場合、ステップ264に進み、情報更新でない場合、ステップ262に進む。ステップ262では、ディレクタ22に情報読みだしを指示し、情報が転送されてくるのを待つ。ステップ263では、サ−ビスパネル36に情報を表示する。表示内容は、図24で既に説明した。ステップ264では、サ−ビスパネル36に設定された値を読みだす。ステップ265では、設定内容が正常かを判定する。すなわち、最低割当てスロット数86以外に値が0のものがない、かつ、設定情報のうち実装スロット数より大きいものがあるかを判定する。ここで、実装スロット数とは、キャッシュメモリ24内のキャッシュスロット241の数である。条件を満たす場合、ステップ266に進み、条件を満たさない場合、ステップ272に進む。ステップ266では、過負荷設定スロット数82が過負荷解除スロット数83以上かを判定する。条件を満たす場合、ステップ267に進み、条件を満たさない場合、スロット272に進む。ステップ267では、制限スロット数85あるいは最低割当スロット数86が設定されたディスク装置を検索する。ステップ268では、ディスク装置を検出したかを判定する。検出した場合、ステップ269に進み、検出できなかった場合、ステップ270に進む。ステップ269では、制限スロット数85が最低割当スロット数86より大きいかを判定する。条件を満たす場合、ステップ270に進み、条件を満たさない場合、ステップ272に進む。ステップ270では、全てのディスク装置25について判定が終了したかを判定する。判定が終了した場合、ステップ271に進み、終了していない場合、ステップ267に戻る。ステップ271では、ディレクタ22に情報更新を指示して、情報を転送する。ステップ272では、図24のメッセ−ジ表示欄87に情報不正を示すエラ−表示を行う。
【0053】
図28は、第3の実施例におけるキャッシュ負荷状況判定処理1のフロ−チャ−トである。本処理は、ライトアフタデ−タを含むキャッシュスロット241の占有量からキャッシュメモリ24の負荷状況を判定する処理である。本実施例において、図11に示した第1の実施例と異なるのは、ステップ104とステップ105の間にステップ256を挿入し、ステップ113とステップ114の間にステップ256を挿入した点である。ステップ100では、過負荷フラグ464がオンかを判定する。当該フラグがオンの場合、ステップ110に進み、オフの場合、ステップ101に進む。ステップ101では、占有スロット数461が過負荷設定スロット数462以上かを判定する。条件を満足する場合、ステップ108に進み、満足しない場合、ステップ102に進む。ステップ102では、占有スロット数461が過負荷解除スロット数463以上かを判定する。条件を満たす場合、処理を終了し、満たさない場合、ステップ103に進む。ステップ103〜107およびステップ255は、図23に示す割当て解除処理4であり、制限スロット数472が設定されているディスク装置25に対するスロットの割当てを解除する。ステップ103では、制限スロット数472が設定されているディスク装置25を検索する。ステップ104では、当該ディスク装置25を検出したかを判定する。検出した場合、ステップ255に進み、検出できなかった場合、処理を終了する。ステップ255では、制限スロット数割当フラグ477がオンかを判定する。当該フラグがオンの場合、ステップ107に進み、オフの場合、ステップ105に進む。ステップ105では、カレントスロット数471が解除基準スロット数474未満かを判定する。条件を満たす場合、ステップ106に進み、条件を満たさない場合、ステップ107に進む。ステップ106では、制限を解除するため、制限スロット数472、設定基準スロット数473、および、解除基準スロット数474をnullとする。ステップ107では、全てのディスク装置25に対して判定が終了したかを判定する。終了していない場合、ステップ103に戻り、終了した場合、処理を終了する。ステップ108〜109では、キャッシュメモリの過負荷状況に所定の値を設定する。すなわち、ステップ108では、過負荷フラグ464をオンする。ステップ109では、ディスク装置25毎に、カレントスロット数471を設定基準スロット数473に設定する。ステップ110では、占有スロット数461が過負荷解除スロット数463未満かを判定する。条件を満たす場合、ステップ111に進み、満たさない場合、ステップ112に進む。ステップ111では、過負荷フラグ464をオフし、処理を終了する。ステップ112〜115およびステップ256は、図23に示す割当て設定処理3であり、ディスク装置25に対するキャッシュスロット241の割り当て制限を行なう。ステップ112では、カレントスロット数471が設定基準スロット数473以上かを判定する。条件を満たす場合、ステップ113に進み、条件を満たさない場合、ステップ115進む。ステップ113では、カレントスロット数471が最低割り当てスロット数476以上かを判定する。条件を満たす場合、ステップ256に進み、満たさない場合、ステップ115に進む。ステップ256では、制限スロット数割当フラグ477がオンかを判定する。当該フラグがオンの場合、ステップ115に進み、オフの場合、ステップ114に進む。ステップ114では、ディスク装置25に対するキャッシュスロット割当制限、および、制限解除基準を設定する。すなわち、制限スロット数472にカレントスロット数471を負荷管理情報46に設定し、解除基準スロット数474に設定基準スロット数473の値を負荷管理情報46に設定する。解除基準スロット数474の設定として、カレントスロット数471の予め定めた割合を設定してもよい。ステップ115では、全てのディスク装置25に対する判定が終了したかを判定する。終了していない場合、ステップ112に戻り、終了した場合、ステップ116に進む。ステップ116では、設定基準スロット数473が設定されていないディスク装置25に対し、カレントスロット数471を設定基準スロット数458として負荷管理情報46に設定する。
【0054】
本実施例では、サ−ビスパネル36からの指示により、割り当て可能スロット数460、過負荷設定スロット数461、過負荷解除スロット数463、および、最低割り当てスロット数476を負荷管理情報46に設定する例を示した。同様のことを、CPU20からの指示により行なうことが可能である。以下、CPU20からの指示により、負荷管理情報46を設定する方法について示す。
【0055】
図29は、中央処理装置と制御装置21との間で転送される情報の内容を示す図である。CPU20から指示される要求としては、負荷情報を読みだす要求である負荷情報センス要求と、負荷情報を設定する要求である負荷情報設定要求がある。負荷情報センスコマンド90は、CPU20からの要求が負荷情報センス要求であることを示す。制御装置21は、CPU20から負荷情報センスコマンド90が指示されると、割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、ディスク装置番号94、制限スロット数95、および、最低割当スロット数96をCPU20に転送する。割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、制限スロット数95、最低割当スロット数96は、それぞれ、割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、最低割当スロット数476に対応する。ディスク装置番号94は、ディスク装置25の番号である。負荷情報設定コマンド97は、CPU20からの要求が負荷情報設定要求であることを示す。制御装置21は、CPU20から負荷情報設定コマンド97が指示されると、CPU20から転送される、割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、ディスク装置番号94、制限スロット数95、および、最低割当スロット数96を、それぞれ対応する、割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、最低割当スロット数476に設定する。
【0056】
図30は、図23に示した負荷基準操作処理39のフロ−チャ−トである。本処理は、CPU20から、負荷情報センスコマンド90、あるいは、負荷情報設定コマンド97が指示された場合、ディレクタ22が実行する。ステップ280では、CPU20からのコマンドが負荷情報設定コマンド97かを判定する。負荷情報設定コマンド97の場合、ステップ282に進み、それ以外では、ステップ281に進む。ステップ281では、割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、最低割当スロット数476をディレクトリ23から読みだし、割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、ディスク装置番号94、制限スロット数95、および、最低割当スロット数96として、CPU20に転送する。ステップ282では、CPU20から、割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、ディスク装置番号94、制限スロット数95、および、最低割当スロット数96が転送されるのを待つ。ステップ283では、割当制限スロット数91、過負荷設定スロット数92、過負荷解除スロット数93、ディスク装置番号94、制限スロット数95、および、最低割当スロット数96を、負荷管理情報46に含まれる割当制限スロット数460、過負荷設定スロット数462、過負荷解除スロット数463、制限スロット数472、最低割当スロット数476に設定する。この時、制限設定スロット数95の内容がnullでないディスク装置25に対して、制限スロット数設定フラグ477をオンする。
【0057】
本発明の実施例によれば、ユ−ザからの指示、あるいは、CPU20からの指示により、ライトアフタデ−タの割当て制限を設定する。ユ−ザあるいはCPU20により、ライトアフタデ−タの制限が設定されなかった場合、キャッシュ負荷状況判定処理1により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置25毎の割当て制限を設定する。割当て制限以上のライトアフタデ−タ量を要求するCPU20からのデ−タ書き出し指示があった場合、ライトアフタ処理5がライトアフタデ−タをキャッシュメモリ24からディスク装置25に書き出し、ライトアフタデ−タが割当て制限未満になるまで上記の指示を待たせる。このため、あるディスク装置25への割当て量が過大となり、他のディスク装置25に対する割当て量が過少となることはない。さらに、ユ−ザあるいはCPU20の指示によりライトアフタデ−タの割当て制限を変更することができる。従って、ディスク装置25に対してキャッシュメモリ24の割当てる時に、他のディスク装置25に対するキャッシュメモリ24の割当てを阻害しない適切な配分を行うことができる。
【0058】
【発明の効果】
本発明の実施例によれば、キャッシュ負荷状況判定処理により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置毎にキャッシュの割当てを制限できる。割当て制限以上のライトアフタデ−タ量を要求するCPUからのデ−タ書き出し指示があった場合、ライトアフタ処理はライトアフタデ−タをキャッシュメモリからディスク装置に書き出し、ライトアフタデ−タが割当て制限未満になるまで上記の指示を待たせる。あるいは、割当て制限以上のライトアフタデ−タ量を要求するCPUからのデ−タ書き出し指示があった場合、CPUディスク転送処理は、CPUとディスク装置とのデ−タ転送により上記の指示に対する処理をただちに実行する。このため、あるディスク装置への割当て量が過大となり、他のディスク装置に対する割当て量が過少となることはない。
【0059】
また、ライトアフタデ−タの割当て制限を、ユ−ザからの指示、あるいは、CPUからの指示によっても設定できる。この時、ユ−ザあるいはCPUからライトアフタデ−タの制限が設定されなかった場合、キャッシュ負荷状況判定処理により、ライトアフタデ−タの量が閾値以上となった場合、ディスク装置毎に割当ての制限を行なう。このため、あるディスク装置への割当て量が過大となり、他のディスク装置に対する割当て量が過少となることはない。さらに、ユ−ザあるいはCPUからライトアフタデ−タの割当て制限の変更を指示できる。
【0060】
従って、それぞれのディスク装置に対してキャッシュメモリを割当てる時、他のディスク装置に対するキャッシュメモリの割当てを阻害しない適切な配分を行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施例における情報処理システムを示す図である。
【図2】本発明の一実施例を示す情報処理システムの構成図である。
【図3】ディスク装置の構成図である。
【図4】本実施例におけるトラック内のレコ−ド構成図である。
【図5】ディレクトリの内容を示す図である。
【図6】スロットコントロ−ルブロック(SCB)の構成図である。
【図7】SCBとキャッシュスロットに関係を示す図である。
【図8】サ−チテ−ブルとSCBの関係を示す図である。
【図9】タスクコントロ−ルブロック(TCB)の構成図である。
【図10】負荷管理情報の構成図である。
【図11】キャッシュ負荷状況判定処理のフロ−チャ−トである。
【図12】CPU起動処理のフロ−チャ−トである。
【図13】ディスク転送処理のフロ−チャ−トである。
【図14】シ−ケンシャル判定処理のフロ−チャ−トである。
【図15】ロ−ド処理のフロ−チャ−トである。
【図16】シ−ケンシャルライトアフタ処理のフロ−チャ−トである。
【図17】ロ−ド実行処理のフロ−チャ−トである。
【図18】ライトアフタ処理のフロ−チャ−トである。
【図19】ライトアフタ実行処理のフロ−チャ−トである。
【図20】本発明の第2の実施例を示す情報処理システムの構成図である。
【図21】第2の実施例のCPU起動処理のフロ−チャ−トである。
【図22】本発明の第3の実施例を示す情報処理システムの構成図である。
【図23】本発明の第3の実施例を示す情報処理システムを示す図である。
【図24】サ−ビスパネルの表示内容を示す図である。
【図25】第3の実施例における負荷管理情報の構成図である。
【図26】サ−ビスプロセッサによる負荷基準操作処理のフロ−チャ−トである。
【図27】サ−ビスプロセッサでの情報操作処理を示す図である。
【図28】第3の実施例におけるキャッシュ負荷状況判定処理のフロ−チャ−トである。
【図29】中央処理装置との転送を行う情報内容を示すである。
【図30】負荷基準操作処理のフロ−チャ−トである。
【符号の説明】
20・・・中央処理装置、21・・・制御装置、22・・・ディレクタ、23・・・ディレクトリ、24・・・キャッシュメモリ、25・・・ディスク装置。[0001]
[Industrial application fields]
The present invention relates to an apparatus and method for controlling area allocation in a cache memory in an information processing system including a central processing unit, a control device having a cache memory, and a storage device.
[0002]
[Prior art]
In the data transfer process between the central processing unit and the cache memory, the updated data in the cache memory is called write after data, and the process of writing this write after data from the cache memory to the disk device is called write after process. Call. In a control apparatus that performs a write after process, a method of using a cache memory is described in, for example, Japanese Patent Publication No. 59-7986 and Japanese Patent Application Laid-Open No. 62-198946.
[0003]
In Japanese Examined Patent Publication No. 59-7986, the control device uses write-in data from the cache memory in the control device by first-in / first-out or LRU (Least Recentry Used) control. Write to disk unit. In Japanese Patent Laid-Open No. 62-198946, the control device performs data transfer between the central processing unit and the cache memory when the write after data is less than a predetermined number in response to a write request from the central processing unit. On the other hand, when the number of write after data is greater than or equal to a predetermined number, data transfer between the central processing unit and the disk device is performed, and then a predetermined amount or more of write after data is written from the cache memory to the disk device. In response to a read request from the central processing unit, there is no requested data in the cache memory, and data that must be discarded from the cache memory in order to put the requested data into the cache memory. If the data is write-after data, the write-after data is written from the cache memory to the disk device, then the data requested to be read from the central processing unit is read from the disk device, and the data is processed centrally. The data is transferred to the device and stored in the cache memory.
[0004]
[Problems to be solved by the invention]
In response to the write instruction from the central processing unit, the control unit performs data transfer processing between the central processing unit and the cache memory, and stores the write after data in the cache memory. The process of writing the write after data to the disk device is performed asynchronously with the write instruction by the control device. Incidentally, the disk device is composed of a plurality of disks which are data recording media and a head for reading and writing data provided corresponding to the data recording surface of the disk. A circular recording unit in which the head can read and write during one rotation of the disk is called a track. There are a plurality of tracks on the disc. When reading / writing data recorded on the disk device, the head is moved to the position of the track including the data. This operation is called a seek operation. The write after control performs data transfer processing between the central processing unit and the cache memory in response to a write instruction from the central processing unit, and does not perform data transfer processing with the disk device. Therefore, it does not take time for the seek operation, and a high-speed response is possible. Among the data existing in the cache memory, the write-after data, that is, the data that has not been written to the disk device, the contents in the disk device and the corresponding contents in the cache memory match. Therefore, it can be erased from the cache memory at any time. However, since the contents in the cache memory and the corresponding contents in the disk device do not match, the write after data cannot be erased from the cache memory until the contents in the cache memory are written to the disk device. Since the cache memory becomes full with the write after data, new write after data cannot be created until the write after data in the cache memory is written to the disk device. Of course, it takes time for the seek operation to write the write-after data in the cache memory to the disk device. Therefore, high-speed response by write after control cannot be expected. Here, the content of the processing request to the disk device and the frequency of the processing request are not constant, but depend on the data stored in the disk device. For example, if processing requests for a certain disk device occur frequently and a large amount of write after data is created, the amount of other disk devices that can create the write after data is significantly limited. In this case, the apparent disk performance from the CPU is better in the disk device in which a large amount of write after data is created than in the other disk devices. Moreover, rather than allowing a large amount of write after data to be created for a disk device that is truly required to respond at high speed, a disk device that occupies cache memory earlier in time creates a large amount of write after data. End up. Accordingly, regarding the allocation of the cache memory for each disk device, an appropriate distribution that does not hinder the allocation by other disk devices is important. When the cache memory is full of write after data, write after processing cannot be performed on all the disk devices, and the performance of the entire information processing system deteriorates. Also in this case, the cache memory can be prevented from being filled with write after data by appropriately allocating the cache memory for each disk device.
[0005]
However, in the prior art, Japanese Patent Publication No. 59-7986 does not consider the allocation of the cache memory for each disk device. In Japanese Patent Laid-Open No. 62-198946, there is an effect of limiting the total amount of write after data in the cache memory. However, the allocation of the cache memory for each disk device and the appropriate distribution method of the cache memory are considered. It wasn't.
[0006]
An object of the present invention relates to allocation of a cache memory to a storage device, and to provide a control device and a method for a storage device that perform appropriate distribution without impeding the allocation of the cache memory to another storage device.
[0007]
[Means for Solving the Problems]
The control device includes a cache memory for storing a part of data in the storage device or data before being written to the storage device, a directory for recording management information of the control device, a cache memory, a directory And a director for controlling data transfer, wherein the director determines whether the amount of data before writing to the storage device in the cache memory is greater than or equal to a threshold value, and the data in the cache memory. A means for setting an allocation limit of the data amount for each storage device if the data amount is greater than or equal to a threshold value; and a data unit for each storage device if the data amount in the cache memory is less than the threshold value. A means for releasing the data amount allocation limit, and a means for waiting for a data write instruction from the central processing unit that requests allocation of cache memory equal to or greater than the allocation limit value. If, prior to the de-writing in the storage device - and means for writing to the storage device data from the cache memory.
[0008]
The means for writing the data before writing to the storage device from the cache memory to the storage device waits for a data write instruction from the central processing unit that requests allocation of the cache memory exceeding the allocation limit value. Means for selecting data corresponding to one storage device from the group of storage devices awaiting data writing processing, and writing the data from the cache memory to the storage device; The cache memory is selected from the group of the storage device in which the allocation limit of the data amount for each storage device is set, before data is written to the storage device in the cache memory. And writing the data to the storage device from the cache memory and selecting the data from the group of the storage device having the cache memory. Means for exporting the device consists.
[0009]
The director further includes a sequential write after determination means for determining whether or not there are a predetermined number or more of write after data created by the sequential access being instructed by the central processing unit. Means for performing a sequential write after process of writing the write after data from the cache memory to the storage device when there is a target of the partial write after.
[0010]
The director includes means for reporting to the central processing unit a threshold for the amount of data before writing to the storage device in the cache memory and an allocation limit value of the data for the storage device, and the central processing unit. Means for setting a threshold value for the amount of data before writing to the storage device in the cache memory and an allocation limit value of the data for the storage device, instructed by a processing device.
[0011]
[Action]
The control device includes a cache memory for storing a part of data in the storage device or data before being written to the storage device, a directory for recording management information of the control device, a cache memory, a directory And a director for controlling data transfer, and the director determines whether the amount of data before writing to the storage device in the cache memory is greater than or equal to a threshold value. Control the export of data. When the amount of data in the cache memory is equal to or greater than a threshold value, the storage area of the data is guaranteed for each storage device by means for setting the data allocation amount for each storage device. When the amount of data in the cache memory is less than a threshold, the processing required for determining the amount of data can be reduced by means for releasing the restriction on the amount of data for each storage device. By means of waiting for a data writing instruction from the central processing unit that requests allocation of a cache memory exceeding the allocation limit value, an increase in the data to be written to the storage device is prevented. The amount of the data can be reduced by means for writing the data before writing to the storage device from the cache memory to the storage device. At this time, the means for waiting for the data writing process from the central processing unit that requests allocation of the cache memory equal to or greater than the allocation limit value of the storage device waiting for the data writing process. By selecting the data corresponding to one storage device from the group and writing the data from the cache memory to the storage device, the data of the data in the waiting state due to the data allocation limitation is displayed. The writing process can be prioritized. The cache memory is selected from the group of the storage device in which the allocation limit of the data amount for each storage device is set, before data is written to the storage device in the cache memory. By the means for writing to the storage device, the waiting state caused by the data allocation limitation is not left unattended. Accordingly, it is possible to provide a storage device control device that performs appropriate distribution with respect to the allocation of the cache memory to the storage device without impeding the allocation of the cache memory to other storage devices.
[0012]
Further, a sequential write after determination means for determining whether or not there are a predetermined number or more of write after data created by the sequential access being instructed by the central processing unit is continuously received from the central processing unit. Write after data can be created. When write after data is continuously created, the write after data for the storage device increases rapidly. Therefore, the write after data continuously created from the central processing unit is written from the cache memory to the storage device by means of sequential write after processing for writing the write after data from the cache memory to the storage device. Can do. Thereby, even when a sequential access is instructed from the central processing unit, it is possible to provide a storage device control device that performs appropriate allocation without hindering the allocation of the cache memory to other storage devices.
[0013]
By means of reporting to the central processing unit the threshold for the amount of data before writing to the storage device in the cache memory and the data allocation limit value for the storage device, the central processing unit The load status on the storage device can be grasped. The central processing unit is configured to set a threshold value for the amount of data before writing to the storage device in the cache memory and a data allocation limit value for the storage device, which are instructed by the central processing unit. According to the response time of the storage device requested by the device, a threshold for the amount of data before writing to the storage device in the cache memory and an allocation limit value of the data for the storage device may be set. it can. Accordingly, it is possible to provide a control device for a storage device that performs appropriate distribution without impeding the allocation of the cache memory to other storage devices that take into account the requirements of the central processing unit.
[0014]
【Example】
Hereinafter, an embodiment of the present invention will be described.
[0015]
FIG. 2 is a configuration diagram of an information processing system showing an embodiment of the present invention. The information processing system includes a central processing unit (CPU) 20, a
[0016]
FIG. 3 is a configuration diagram of the
[0017]
FIG. 4 is a record configuration diagram in a track in this embodiment. As shown in FIG. 4A, the record 33 includes a
[0018]
FIG. 1 is a diagram showing an information processing system in an embodiment of the present invention. The
[0019]
Hereinafter, the read / write operation of the record 33 stored in the
[0020]
FIG. 5 is a diagram showing the configuration of the
[0021]
First, the relationship between the contents of the
[0022]
The
[0023]
FIG. 8 is a diagram showing the relationship between the search table 41 and the
[0024]
The
[0025]
The
[0026]
FIG. 9 is a configuration diagram of a task control block (TCB). The
[0027]
The contents of the
[0028]
FIG. 10 is a configuration diagram of the load status management information. The load
[0029]
Hereinafter, processing contents executed by the
[0030]
FIG. 11 is a flowchart of the cache load
[0031]
FIG. 12 is a flowchart of the
[0032]
FIG. 13 is a flowchart of the disk transfer process. This process corresponds to step 145. In
[0033]
FIG. 14 is a flowchart of the
[0034]
FIG. 15 is a flowchart of the
[0035]
FIG. 16 is a flowchart of sequential write after processing. This process corresponds to step 18 in FIG. In
[0036]
FIG. 17 is a flowchart of the load execution process. The load execution process corresponds to step 169 in FIG. In
[0037]
FIG. 18 is a flowchart of the write after
[0038]
FIG. 19 is a flowchart of the write after
[0039]
According to the embodiment of the present invention, when the amount of write after data becomes equal to or larger than the threshold value by the cache load
[0040]
Further, when sequential access is instructed by the
[0041]
The second embodiment will be described below. In the second embodiment, the apparatus configuration and the like are the same as those in the first embodiment, and only the CPU activation process executed by the
[0042]
The
[0043]
FIG. 20 is a diagram showing an information processing system in the second embodiment of the present invention. The
[0044]
FIG. 21 is a flowchart relating to the CPU activation process in the second embodiment. The
[0045]
According to the embodiment of the present invention, when the amount of write after data is equal to or greater than the threshold value in the cache load
[0046]
The third embodiment will be described below. In the third embodiment, as the load
[0047]
FIG. 22 is a block diagram of an information processing system showing the third embodiment of the present invention. The information processing system includes a central processing unit (CPU) 20, a
[0048]
FIG. 23 is a diagram showing an information processing system in the third embodiment of the present invention. The
[0049]
FIG. 24 shows the contents displayed on the
[0050]
FIG. 25 is a configuration diagram of the load management information in the third embodiment. The
[0051]
FIG. 26 is a flowchart of load standard operation processing by the service processor. The load
[0052]
FIG. 27 is a diagram showing information operation processing in the service processor. This process is executed by the service processor 26 in response to an instruction from the
[0053]
FIG. 28 is a flowchart of the cache load
[0054]
In this embodiment, an example in which the
[0055]
FIG. 29 is a diagram showing the contents of information transferred between the central processing unit and the
[0056]
FIG. 30 is a flowchart of the load
[0057]
According to the embodiment of the present invention, the allocation limit of write after data is set according to an instruction from the user or an instruction from the
[0058]
【The invention's effect】
According to the embodiment of the present invention, it is possible to limit the allocation of cache for each disk device when the amount of write after data exceeds a threshold value by the cache load status determination process. When there is a data write instruction from the CPU requesting the write after data amount exceeding the allocation limit, the write after process writes the write after data from the cache memory to the disk device until the write after data falls below the allocation limit. Wait for the above instructions. Alternatively, when there is a data write instruction from the CPU requesting a write after data amount exceeding the quota, the CPU disk transfer process immediately performs the process for the above instruction by data transfer between the CPU and the disk device. Execute. For this reason, the allocation amount to a certain disk device does not become excessive, and the allocation amount to other disk devices does not become excessive.
[0059]
Also, the write after data allocation limit can be set by an instruction from the user or an instruction from the CPU. At this time, when the limit of write after data is not set by the user or the CPU, when the amount of write after data exceeds a threshold value by the cache load status determination process, allocation is limited for each disk device. . For this reason, the allocation amount to a certain disk device does not become excessive, and the allocation amount to other disk devices does not become excessive. Further, the user or the CPU can instruct change of the write after data allocation limit.
[0060]
Therefore, when allocating cache memory to each disk device, it is possible to perform appropriate distribution without hindering allocation of cache memory to other disk devices.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an information processing system according to an embodiment of the present invention.
FIG. 2 is a configuration diagram of an information processing system showing an embodiment of the present invention.
FIG. 3 is a configuration diagram of a disk device.
FIG. 4 is a record configuration diagram in a track according to the present embodiment.
FIG. 5 is a diagram showing the contents of a directory.
FIG. 6 is a configuration diagram of a slot control block (SCB).
FIG. 7 is a diagram showing a relationship between an SCB and a cache slot.
FIG. 8 is a diagram showing a relationship between a search table and an SCB.
FIG. 9 is a configuration diagram of a task control block (TCB).
FIG. 10 is a configuration diagram of load management information.
FIG. 11 is a flowchart of a cache load status determination process.
FIG. 12 is a flowchart of CPU activation processing.
FIG. 13 is a flowchart of disk transfer processing.
FIG. 14 is a flowchart of sequential determination processing.
FIG. 15 is a flowchart of a load process.
FIG. 16 is a flowchart of sequential write after processing.
FIG. 17 is a flowchart of a load execution process.
FIG. 18 is a flowchart of a write after process.
FIG. 19 is a flowchart of a write after execution process.
FIG. 20 is a configuration diagram of an information processing system according to a second embodiment of this invention.
FIG. 21 is a flowchart of CPU activation processing according to the second embodiment.
FIG. 22 is a block diagram of an information processing system showing a third embodiment of the present invention.
FIG. 23 is a diagram showing an information processing system according to a third embodiment of the present invention.
FIG. 24 is a diagram showing display contents of a service panel.
FIG. 25 is a configuration diagram of load management information in the third embodiment;
FIG. 26 is a flowchart of load standard operation processing by a service processor.
FIG. 27 is a diagram showing information operation processing in a service processor;
FIG. 28 is a flowchart of cache load status determination processing in the third embodiment.
FIG. 29 shows information contents to be transferred to the central processing unit.
FIG. 30 is a flowchart of a load reference operation process.
[Explanation of symbols]
20 ... Central processing unit, 21 ... Control device, 22 ... Director, 23 ... Directory, 24 ... Cache memory, 25 ... Disk device.
Claims (3)
前記中央処理装置に接続されたディレクタと、
前記ディレクタに接続されたキャッシュメモリを備え、
前記ディレクタは、前記キャッシュメモリ内の、前記複数の記憶装置に書き出す前のデータの量が、閾値以上か否かを判定する手段と、
前記データ量が、前記閾値以上であると判定したことに応じて、前記キャッシュメモリの割り当て制限データ量を前記複数の記憶装置毎に設定する手段と、
前記中央処理装置がいずれかの記憶装置について前記割り当て制限データ量以上の前記キャッシュメモリの割り当てを要求したことに応じて、前記中央処理装置から前記キャッシュメモリへの書き出し処理を待たせる手段と、
前記複数の記憶装置に未書き出しのデータを、前記キャッシュメモリから前記複数の記憶装置に書き出す手段を有する装置。In an apparatus connected to a central processing unit and having a plurality of storage devices,
A director connected to the central processing unit;
A cache memory connected to the director;
The director determines whether the amount of data in the cache memory before writing to the plurality of storage devices is greater than or equal to a threshold;
Means for setting an allocation limit data amount of the cache memory for each of the plurality of storage devices in response to determining that the data amount is equal to or greater than the threshold;
Means for waiting for the write processing from the central processing unit to the cache memory in response to the central processing unit requesting allocation of the cache memory greater than the allocation limit data amount for any storage device;
An apparatus comprising means for writing unwritten data from the cache memory to the plurality of storage devices.
前記キャッシュメモリから複数の記憶装置の一つに、シーケンシャルデータを書き込む手段を有する、請求項1記載の装置。Means for determining whether unwritten data generated by a sequential access command from the central processing unit is greater than or equal to a predetermined amount;
The apparatus according to claim 1, further comprising means for writing sequential data from the cache memory to one of a plurality of storage devices.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002082322A JP3721338B2 (en) | 2002-03-25 | 2002-03-25 | Storage device control device and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002082322A JP3721338B2 (en) | 2002-03-25 | 2002-03-25 | Storage device control device and control method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02599491A Division JP3308554B2 (en) | 1991-02-20 | 1991-02-20 | Control device and control method of control device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005043364A Division JP2005166073A (en) | 2005-02-21 | 2005-02-21 | Control device and control method of storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002304327A JP2002304327A (en) | 2002-10-18 |
JP3721338B2 true JP3721338B2 (en) | 2005-11-30 |
Family
ID=19193368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002082322A Expired - Lifetime JP3721338B2 (en) | 2002-03-25 | 2002-03-25 | Storage device control device and control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3721338B2 (en) |
-
2002
- 2002-03-25 JP JP2002082322A patent/JP3721338B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002304327A (en) | 2002-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3308554B2 (en) | Control device and control method of control device | |
EP0150705B1 (en) | Data storage hierarchy and its method of operation | |
EP0301211B1 (en) | Cache management for a peripheral data storage subsystem | |
EP0077453B1 (en) | Storage subsystems with arrangements for limiting data occupancy in caches thereof | |
US4571674A (en) | Peripheral storage system having multiple data transfer rates | |
US4974197A (en) | Batching data objects for recording on optical disks with maximum object count | |
US20030023815A1 (en) | Cache buffer control method for hard disk drives | |
JP4186509B2 (en) | Disk system and its cache control method | |
KR950010944B1 (en) | Buffer memory and method of managing the same | |
US6842824B2 (en) | Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse | |
JP3759048B2 (en) | Disk cache management method for disk array device | |
US5696921A (en) | System and method for allocating a write request on the same cylinder as a most recent read request on a rotating memory | |
JP4612269B2 (en) | Virtual volume management method | |
US6782444B1 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
US6029229A (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stored records | |
JP3721338B2 (en) | Storage device control device and control method | |
JP2005166073A (en) | Control device and control method of storage device | |
JP3882461B2 (en) | Storage device system and backup acquisition method thereof | |
EP0341036B1 (en) | A method of operating an information handling system | |
US6594726B1 (en) | Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation | |
JP3282525B2 (en) | Data management device and network data management system | |
JP3083530B2 (en) | Cache memory data management method and cache control device | |
JPH0573420A (en) | Computer having cache memory | |
JPH06131260A (en) | Controller for storage device | |
CN117311638A (en) | Cache management method, cache management device and processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050912 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080916 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |