JP3721338B2 - Storage device control device and control method - Google Patents

Storage device control device and control method Download PDF

Info

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
Application number
JP2002082322A
Other languages
Japanese (ja)
Other versions
JP2002304327A (en
Inventor
俊明 坪井
山本  彰
繁雄 本間
義弘 安積
匡二 小澤
弘行 北島
道生 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP2002082322A priority Critical patent/JP3721338B2/en
Publication of JP2002304327A publication Critical patent/JP2002304327A/en
Application granted granted Critical
Publication of JP3721338B2 publication Critical patent/JP3721338B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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 control device 21 connected to the CPU 20, and at least one disk device 25 connected to the control device 21. The control device 21 has a directory 23, a cache memory 24, and at least one director 22.
[0016]
FIG. 3 is a configuration diagram of the disk device 25. The disk 27 is a medium for recording data, and a plurality of disks 27 exist in the disk device 25. The head 28 is a device for reading and writing data, and there are a plurality of heads 28 corresponding to the data recording surface of the disk 27. A circular data recording unit in which the head 28 can read and write during one rotation of the disk 27 is called a track 29. There are a plurality of tracks 29 on the disk 27. The track 29 stores a record which is a kind of data recording unit. The operation of moving the head 28 from the current position to a position where the track 29 including the data can be read and written in order to read and write certain data is called a seek operation. A request for this operation is called a positioning instruction. A set of tracks 29 that can be recorded or reproduced by only selecting the head 28 without performing a seek operation is called a cylinder. The director interface 32 is an interface between the disk device 25 and the director 22, and controls the head 28 in accordance with instructions from the director 22. The index 30 is a reference position on the disk 27.
[0017]
FIG. 4 is a record configuration diagram in a track in this embodiment. As shown in FIG. 4A, the record 33 includes a control unit 34 and a data unit 35. As shown in FIG. 4B, the control unit 34 records a record position 341, a cylinder number 342, a track number 343, a record number 344, and a data length 345. The record position 341 is a position of the record 33 on the track 29. The record number 344, the track number 343, and the cylinder number 342 are the number of the record, the number of the track on which the record 33 is recorded, and the number of the cylinder that includes the track 29, respectively. The data length 345 indicates the length of the data portion 35. The data unit 35 records data having a length designated by the data length 345. Between the index 30 and the control unit 34, between the control unit 34 and the data unit 35 in the record 33, and between the data unit 35 and the control unit 34 of the next record 33. There is a gap 36.
[0018]
FIG. 1 is a diagram showing an information processing system in an embodiment of the present invention. The director 22 provided in the control device 21 controls data transfer performed between the CPU 20 and the disk device 25, between the CPU 20 and the cache memory 24, and between the cache memory 24 and the disk device 25. . The CPU activation processing 10 executes data transfer between the CPU 20 and the disk device 25 and between the CPU 20 and the cache memory 24 according to an instruction from the CPU 20. In the data transfer between the CPU 20 and the cache memory 24, the rewritten data in the cache memory 24 is referred to as write after data, and the process of writing this write after data from the cache memory 24 to the disk device 25 is written. This is called after-treatment. In the cache hit / miss determination process 11, it is determined whether or not the contents of the track 29 to be processed are in the cache memory 24. When the content of the track 29 is in the cache memory 24, it is called a cache hit, and when the content of the track 29 is not in the cache memory 24, it is called a cache miss. In the case of a cache hit, a cache hit process 12 is performed. In the cache hit processing 12, the allocation status of the cache memory 24 to the write after data is determined by the cache allocation limit determination processing 13. If allocation is impossible, the allocation wait processing 14 waits until the cache memory can be allocated. In the CPU cache transfer process 15, data in the cache memory 24 is read and written according to instructions from the CPU 20. Next, a sequential determination process 16 is performed. In the sequential determination process 16, it is determined in the sequential write after determination process 17 whether the write after data is accumulated in the cache memory 24 according to the sequential access instruction from the CPU 20 and the write after process is necessary. To do. If the write after process is unnecessary, the process ends. If write after processing is required, sequential write after processing 18 is performed. In the sequential write after processing 18, write after data by sequential access instructed by the CPU 20 is written from the cache memory 24 to the disk device 25. In the case of a cache miss, the CPU disk transfer process 19 reads / writes data in the disk device 25 in accordance with instructions from the CPU 20. The cache load status determination process 1 determines the load status of the cache memory 24 based on the amount of write after data in the cache memory 24. A write after data amount determination process 2 determines whether the amount of write after data is equal to or greater than a threshold value. If it is equal to or greater than the threshold, a limit value related to the amount of write after data is set for each disk device 25 by the allocation limit setting process 3. If it is less than the threshold value, the limit value related to the amount of write after data is canceled for each disk device 25 by the allocation limit cancellation process 4. The write-after process 5 is a process for writing the write-after data from the cache memory 24 to the disk device 25, and is performed using the time when the director 22 is free. The allocation limit write-after determination process 6 determines whether or not the write-after process of the disk device 25 for which the write after-data allocation limit is set is possible. In the write after determination process 7, it is determined whether or not the write after process of the disk device 25 for which the write after data allocation limit is not set is possible. When the allocation restriction write-after determination process 6 or the write-after determination process 7 detects the write after process target, the write after execution process 8 writes the write after data from the cache memory 24 to the disk device 25.
[0019]
Hereinafter, the read / write operation of the record 33 stored in the disk device 25 will be described. If the disk device 25 that records the record 33 to be read / written is empty, the director 22 connects to the disk device 25 and positions the head 28 at a position where the record 33 can be read / written. Give instructions. The director 22 disconnects the connection with the disk device 25 so that input / output processing for another disk device 25 can be executed while the disk device 25 is performing the positioning operation. The disk device 25 instructed to perform positioning performs a seek operation, and reports the completion to the director 22 when the head 28 reaches a position where the record 33 can be read and written. At this time, if the director 22 is free, the director 22 reconnects with the disk device 25 and reads / writes the record 33 stored in the disk device 25. When the director 22 is busy, for example, during data transfer with another disk device 25, the disk device 25 cannot perform data transfer with the director 22, and the disk 27 rotates. The process waits again until the head 28 reaches a position where the record 33 can be read and written.
[0020]
FIG. 5 is a diagram showing the configuration of the directory 23. The directory 23 includes a slot control block (SCB) 40, a search table 41, an MRU (Most Recently Used) pointer 42, an LRU (Least Recently Used) pointer 43, an empty SCB pointer 44, a task control block. (TCB) 45 and load status management information 46 exist. Each content is described below.
[0021]
First, the relationship between the contents of the SCB 40 and the cache memory 24 will be described with reference to FIGS. FIG. 6 is a block diagram of the slot control block (SCB) 40. FIG. 7 is a diagram showing the relationship between the SCB 40 and the cache slot. The cache memory 24 is divided into units called cache slots 241. One cache slot has a size capable of storing data for one track. The SCB 40 is information for managing the cache slot 241.
[0022]
The SCB occupation flag 400 shown in FIG. 6 is a flag indicating the use status of the SCB, and is turned on when the process is using the SCB. The forward pointer 401 and the backward pointer 402 are used when the SCB 40 is chained in the MRU (Most Recently Used) order. The usage method will be described with reference to FIG. The disk device number 403, cylinder number 404, and track number 405 record the disk device number, cylinder number, and track number corresponding to the track 29 in which data is stored in the SCB 40, respectively. A slot pointer 406 indicates a cache slot 241 managed by the SCB 40. The write after flag 407 is a flag indicating whether or not write after data is stored in the cache slot 241. When the flag is on, it indicates that the cache slot 241 stores write after data. The record pointer 408 indicates the recording start position of the record 33 in the cache slot 241. The update record pointer 409 indicates the record 33 recording start position in which the write after data in the cache slot 241 is stored. As many record pointers 408 and update record pointers 409 as the maximum number of records 33 that can be recorded on the track 29 are prepared. The record pointer 408 of the record 33 that is not recorded in the cache slot 241 and the update record pointer 409 of the record 33 that does not store the write after data are null. A sequential write flag 410 indicates that write after data has been created in accordance with a sequential access instruction from the CPU 20.
[0023]
FIG. 8 is a diagram showing the relationship between the search table 41 and the SCB 40. The search table 41 includes a disk device number 411, a cylinder number 412, a track number 413, and a search pointer 414, and indicates which disk device cylinder and track data is stored in the cache memory 24. It is a table for searching. Each track 29 has a search pointer 414 to the SCB 40 and indicates whether or not the data corresponding to the track 29 is stored in the cache memory 24. If the search pointer 414 corresponding to a certain track 29 is null, it indicates that the data corresponding to the track 29 is not stored in the cache memory 24. The contents of the search table 41 are prepared for the number of tracks 29 included in the disk device 25 that can be connected to the control device 21.
[0024]
The SCB 40 assigned to the track 29 is chained by the MRU pointer 42, the LRU pointer 43, the forward pointer 401, and the backward pointer 402. The forward pointer 401 and the backward pointer 402 are pointers for chaining the SCBs 40 allocated to the track 29 in the MRU order. The MRU pointer 42 indicates the SCB 40 corresponding to the track 29 that has been the input / output target at the time closest to the current time, and the LRU pointer 43 indicates the SCB 40 that corresponds to the track 29 that has not been the input / output target for the longest time. .
[0025]
The SCB 40 that is not assigned to the track 29 is chained by the free SCB pointer 44, the forward pointer 401, and the backward pointer 402. The free SCB pointer 44 is a head pointer for chaining the SCB 40 that is not assigned to the track 29, and points to one of these SCBs 40. The remaining SCBs 40 to which the track 29 is not allocated are chained by the forward pointer 401 and the backward pointer 402. If there is no SCB 40 to which the track 29 is not allocated, the free SCB pointer 44 is null.
[0026]
FIG. 9 is a configuration diagram of a task control block (TCB). The TCB 45 is information for managing a task being processed by the control device 21, and exists for each disk device 25. The TCB 45 includes a disk device number 50, logical device information 60, and physical device information 70. First, logical devices and physical devices will be described. Data transfer processing performed by the director 22 includes data transfer processing between the CPU 20 and the disk device 25, data transfer processing between the CPU 20 and the cache memory 24, and data between the cache memory 24 and the disk device 25. -There is a data transfer process. Here, the data transfer process between the cache memory 24 and the disk device 25 is executed using the disk device 25, but the data transfer process between the CPU 20 and the cache memory 24 is performed using the disk device 25. There is no need to use it. Therefore, the data transfer process between the cache memory 24 and the disk device 25 and the data transfer process between the CPU 20 and the cache memory 24 can be executed independently. When data transfer processing between the CPU 20 and the cache memory 24 is performed, a logical device is provided in order to perform the above two processes exclusively. When data transfer processing between the cache memory 24 and the disk device 25 is performed, a physical device is provided in order to perform the two processes exclusively. Therefore, in the data transfer process between the CPU 20 and the cache memory 24, exclusive control is performed by the logical device, and in the data transfer process between the cache memory 24 and the disk device, exclusive control is performed by the physical device. It is assumed that both a logical device and a physical device are used when performing data transfer processing between the CPU 20 and the disk device.
[0027]
The contents of the TCB 45 shown in FIG. 9 will be described below. The disk device number 50 indicates the number of a disk device to be controlled by the TCB 45. The logical device information 60 is information relating to data transfer processing performed between the CPU 20 and the cache memory 24, and includes the following contents. The occupation processing information 600 indicates the execution status of the processing that occupies the logical device. The execution information 601 indicates the task execution status. The execution status is unused, executable, executing, or waiting. The unused state indicates that there is no process using the logical device. The executable state indicates that the director can execute the process that occupies the logical device. The in-execution state indicates that a process that occupies the logical device is being executed. The waiting state is a state waiting for the reason indicated in the waiting state information 601 to be canceled. When the waiting state is released, the executable state is entered. When the director detects the executable state, the processing is continued as being executed. The wait state information 602 indicates the reason why the execution information 601 is in a wait state. Reasons for the wait state include physical device wait, SCB wait, or cache allocation wait. The physical device wait state is a state in which the physical device is waiting for an empty physical device because the process occupying the logical device uses the disk device 25. The SCB wait state is a state in which the SCB 40 occupied by the process that occupies the physical device is waiting for it to become free. Waiting for cache allocation is a state in which the amount of write after data is waiting to become less than the limit value due to a capacity limitation related to write after data. A cylinder number 603 indicates a cylinder number including the track 29 to be processed. The number of entries 604 stores the number of entries recorded in a track list described later. A track pointer 605 indicates a track list entry to be executed by the process. The track list records the track number 606 to be processed as one entry. The track number 606 indicates the number of the track 29 to be processed. The busy report flag 607 indicates whether or not a busy has been reported to the CPU 20 when the processing instructed by the CPU 20 is being performed because the disk device 25 is in use. When the flag is on, it indicates that a busy has been reported to the CPU 20. The physical device information 70 is information relating to data transfer processing performed between the CPU 20 and the disk device 25 and data transfer processing performed between the cache memory 24 and the disk device 25. The contents are exclusive processing information 700, execution information 701, cylinder number 703, number of entries 704, track pointer 705, and track number 706, respectively, in the logical device information 60, exclusive processing information 600, execution information 601, This is information corresponding to the cylinder number 603, the number of entries 604, the track pointer 605, and the track number 606. The waiting state information 702 indicates the reason when the execution information 701 is in a waiting state. The reason for the waiting state is waiting for positioning.
[0028]
FIG. 10 is a configuration diagram of the load status management information. The load status management information 46 is information for managing the occupation status of the write after data in the cache memory 24. The assignable slot number 460 indicates the number of cache slots 241 that can be assigned to the write after data. The occupied slot number 461 indicates the number of cache slots including the write after data in the cache memory 24. The number of overload setting slots 462 and the number of overload release slots 463 are the number of cache slots 241 for setting the cache overload and the number of cache slots 241 for releasing the cache overload, respectively, in the cache slot 241 including the write after data. Indicates. The overload flag 464 is a flag indicating a state from the time when the number of cache slots 241 including the write after data becomes equal to or greater than the number of overload setting slots 462 to the time when the number of overload release slots becomes less than 463. . The slot wait TCB pointer 465 is a pointer indicating the TCB 45 waiting for an input / output request from the CPU 20 in order to wait for the allocation of the cache slot 241. The disk allocation information 470 exists for each disk device 25, and includes the current slot number 471, the limit slot number 472, the setting reference slot number 473, the release reference slot number 474, the overload wait flag 475, and the minimum allocation slot number 476. Become. The current slot number 471 is the number of cache slots 241 assigned to each disk device 25 and indicates the number of cache slots 241 including write after data. The limited slot number 472 indicates the number of cache slots 241 including write after data that can be allocated to each disk device 25. The setting reference slot number 473 is the number of cache slots 241 used as a reference for determining the limit slot number 472, and indicates the number of cache slots 241 including write after data. The cancellation reference slot number 474 is a number for canceling the allocation restriction of the cache slot 241 for each disk device 25 and indicates the number of the cache slots 241 including the write after data. When the limit slot number 472, the setting reference slot number 473, and the release reference slot number 474 are invalid, the content is null. The overload wait flag 475 indicates a state in which the allocation of the cache slot 241 is waited because the current slot number 471 is equal to or greater than the limit slot number 472. The minimum allocation slot number 476 is a lower limit value of the number of cache slots 241 allocated to the disk device 25.
[0029]
Hereinafter, processing contents executed by the director 22 will be described.
[0030]
FIG. 11 is a flowchart of the cache load status determination process 1 shown in FIG. The cache load status determination process 1 is a process for determining the load status of the cache memory 24 from the occupation amount of the cache slot 241 including the write after data. In the present embodiment, the allocatable slot number 460, the overload setting slot number 462, the overload release slot number 463, and the minimum allocation slot number 476 in the load status management information 46 are determined in advance. However, unless the number of overload setting slots 462 is less than or equal to the number of assignable slots 460, the overload status of the cache slot 241 including the write after data cannot be set. The overload release slot number 463 is equal to or less than the overload setting slot number 462. In step 100, it is determined whether the overload flag 464 is on. If the flag is on, the process proceeds to step 110. If the flag is off, the process proceeds to step 101. In step 101, it is determined whether the occupied slot number 461 is the overload setting slot number 462 or more. If the condition is satisfied, the process proceeds to step 108; otherwise, the process proceeds to step 102. In step 102, it is determined whether the occupied slot number 461 is equal to or greater than the overload release slot number 463. If this condition is satisfied, the process ends. If not, the process proceeds to step 103. Steps 103 to 107 are the deallocation process 4 and an attempt is made to deallocate the slot to the disk device 25 in which the limited slot number 472 is set. In step 103, the disk device 25 in which the limited slot number 472 is set is searched. In step 104, it is determined whether or not the disk device 25 in which the limited slot number 472 is set is detected. If detected, the process proceeds to step 105. If not detected, the process ends. In step 105, it is determined whether the current slot number 471 is less than the release reference slot number 474. If this condition is satisfied, the process proceeds to step 106. If the condition is not satisfied, the process proceeds to step 107. In step 106, the restriction slot number 472, the setting reference slot number 473, and the release reference slot number 474 are set to null in order to release the restriction on slot allocation. In step 107, it is determined whether or not the determination has been completed for all the disk devices 25. If not completed, the process returns to step 103, and if completed, the process is terminated. In steps 108 to 109, an overload situation of the cache memory 24 is set. In step 108, the overload flag 464 is turned on. In step 109, the current slot number 471 is set to the setting reference slot number 473 for each disk device 25. In step 110, it is determined whether the occupied slot number 461 is less than the overload release slot number 463. If the condition is satisfied, the process proceeds to step 111; otherwise, the process proceeds to step 112. In step 111, the overload flag 464 is turned off and the process is terminated. Steps 112 to 115 are allocation setting processing 3 for limiting the allocation of the cache slot 241 to the disk device 25. In step 112, it is determined whether the current slot number 471 is greater than or equal to the set reference slot number 473. If the condition is satisfied, the process proceeds to step 113. If the condition is not satisfied, the process proceeds to step 115. In step 113, it is determined whether the current slot number 471 is equal to or greater than the minimum allocation slot number 476. If the condition is satisfied, the process proceeds to step 114; otherwise, the process proceeds to step 115. In step 114, cache slot allocation restrictions and restriction cancellation criteria for the disk device 25 are set. That is, the current slot number 471 is set as the limit slot number 472, and the set reference slot number 473 is set as the release reference slot number 474. When the cancellation reference slot number 474 is set, a predetermined ratio may be set for the current slot number 471. In step 115, it is determined whether the determination for all the disk devices 25 is completed. If not completed, the process returns to step 112. If completed, the process proceeds to step 116. In step 116, the current slot number 471 is set as the setting reference slot number 458 for the disk device 25 in which the setting reference slot number 473 is not set.
[0031]
FIG. 12 is a flowchart of the CPU activation process 10 shown in FIG. The CPU activation process 10 is a process executed in accordance with an instruction from the CPU 20 to the control device 21 and performs data transfer between the CPU 20 and the disk device 25 and between the CPU 20 and the cache memory 24. In step 120, the execution information 601 determines whether or not the logical device is in an unused state in the disk device 25 instructed by the CPU 20 for data transfer processing. If the logical device is not used, the process proceeds to step 121. Otherwise, the process proceeds to step 146. In step 121, the execution status of the CPU activation process is set in the exclusive processing information 600 shown in FIG. 9, and the execution status of the task is set in the execution information 601. In step 122, it is determined whether the content of the track 29 instructed by the CPU 20 exists in the cache memory 24. That is, referring to the search table 41 shown in FIG. 5, if the content of the search pointer 414 corresponding to the track 29 is not null, it is determined that the content of the track 29 exists in the cache memory 24. . This determination corresponds to the cache hit miss determination 11 shown in FIG. If it is a cache hit, the process proceeds to step 123. If it is a cache miss, the process proceeds to step 140. Steps 123 to 133 correspond to the cache hit processing 12. In step 123, it is determined by the SCB occupation flag 400 whether or not the SCB 40 corresponding to the track 29 is being used by another process. If it is in use, the process proceeds to step 124. If it is not in use, the process proceeds to step 125. In step 124, the logical device execution state 601 is set to the wait state, the wait state information 602 is set to the SCB wait, and the process waits until the SCB 40 is released. In step 125, the contents of the SCB 40 are set in the logical device information 60. That is, the execution information 601 is being executed, the entry number 604 is set to 1, the track pointer 605 is set to a value indicating the first entry in the track list, and the cylinder number 603 and track number corresponding to the track 29 to be processed are set. 606 is set. In step 126, it is determined whether to newly create write after data for the track in accordance with an instruction from the CPU 20. If the condition is satisfied, the process proceeds to step 127. Otherwise, the process proceeds to step 130. In step 127, it is determined whether the limited slot number 472 is valid. If the limited slot number 472 is not null, the limited slot number 472 is valid. If it is valid, the process proceeds to step 128; otherwise, the process proceeds to step 130. In step 128, it is determined whether the current slot number 471 is greater than or equal to the limit slot number 472. If the condition is satisfied, the process proceeds to step 129. If the condition is not satisfied, the process proceeds to step 130. In step 129, the execution state 601 is set to the wait state, the wait state information 602 is set to the cache allocation wait state, and the process waits until the current slot number 471 becomes less than the limit slot number 472. In step 130, it is determined whether or not write after data can be allocated to the cache slot 241 from the allocatable slot number 460 and the occupied slot 461. If allocation is possible, the process proceeds to step 132, and if allocation is not possible, the process proceeds to step 131. In step 131, the execution state 601 is set to the wait state, the wait state information 602 is set to the cache allocation wait, and the process waits until the occupied slot number 461 becomes less than the assignable slot number 460. In step 132, the assigned slot numbers are added to the occupied slot number 461 and the current slot number 471, respectively. In step 133, data transfer between the CPU 20 and the cache memory 24 is performed in accordance with an instruction from the CPU 20. At this time, when the record 33 in the cache memory 24 is updated, the write after flag 407 is turned on and the update record pointer 409 is set. Further, when the sequential access is instructed from the CPU 20 and the write after data is created, the sequential write flag 410 is turned on. In step 16, a sequential determination process is executed. A flow chart of the sequential determination process 16 is shown in FIG. Steps 140 to 145 correspond to the CPU disk transfer process 19. In step 140, it is determined from the execution information 701 whether the physical device of the disk device 25 is unused. If the physical device is unused, the process proceeds to step 142; otherwise, the process proceeds to step 141. In step 141, the execution state 601 is set to the wait state, the wait state information 602 is set to the physical device wait, and the process waits until the physical device is released. In step 142, the execution status of the CPU activation process is set in the occupation process information 700, and the execution status is set in the execution information 701. In step 143, the cache slot 241 is allocated to the track 29 to be processed, and information is set in the TCB 45. That is, the SCB occupation flag 400 is turned on, and the disk device number, cylinder number, and track number for the allocated track 29 are set in the disk device number 403, cylinder number 404, and track number 405, respectively, and the cylinder number 703 is set. The cylinder number corresponding to the track 29 to be processed is set, the track 29 number to be processed is set to the track number 706, the number of the track 29 in which the track number 458 is set to the entry number 704, A value indicating the first entry is set in the track pointer 705. In step 144, the disk device 25 is instructed to position the record 33 that the CPU 20 has instructed to be processed, and waits for its completion. In step 145, disk transfer processing is performed. A flowchart of this processing is shown in FIG.
[0032]
FIG. 13 is a flowchart of the disk transfer process. This process corresponds to step 145. In step 151, data transfer is performed between the CPU 20 and the disk device 25 in accordance with an instruction from the CPU 20. In step 152, it is determined whether or not the cache slot 241 has been allocated to the track 29. If the cache slot 241 is allocated, the process proceeds to step 153. If the cache slot 241 is not allocated, the process proceeds to step 154. In step 153, the contents of the track 29 are read and the contents are stored in the allocated cache slot 241. At this time, the record pointer 408 is set. In step 154, the contents of the TCB 45 are invalidated. That is, the occupation processing information 600 for the logical device is set to null, the execution information 601 is unused, the occupation processing information 700 for the physical device is set to null, and information indicating that the execution information 701 is unused is set. Further, when the SCB 40 is allocated, the SCB occupation flag 400 is turned off. In step 155, the busy report flag 607 determines whether a busy has been reported to the CPU 20. If busy is reported, the process proceeds to step 156; otherwise, the process is terminated. In step 156, the busy report flag is turned off, and a busy release report is sent to the CPU 20.
[0033]
FIG. 14 is a flowchart of the sequential determination process 16 shown in FIG. In step 161, it is determined whether the instruction from the CPU is a sequential access. In the case of sequential access, the process proceeds to step 162; otherwise, the process proceeds to step 167. In step 162, it is determined whether writing has been executed in the CPU activation process. If the write has been executed, the process proceeds to step 165. If not, the process proceeds to step 163. In step 163, it is determined whether load processing is necessary. If load processing is necessary, the process proceeds to step 164. If not, the process proceeds to step 167. In step 164, load processing is executed. A flow chart of the load process is shown in FIG. In step 165, it is determined whether sequential write after processing is necessary. That is, it is determined whether there are more than a predetermined number of tracks having write after data before the track 29. If there are more than the prescribed number, the process proceeds to step 18; otherwise, the process proceeds to step 167. In step 18, a sequential write after process is performed. A flow chart of the sequential write after process 18 is shown in FIG. In step 167, unused is set in the execution information 601 for the logical device. In step 168, the busy report flag 607 determines whether a busy has been reported to the CPU 20. If a busy is reported, the process proceeds to step 169; otherwise, the process ends. In step 169, the busy report flag is turned off, and a busy release report is sent to the CPU 20.
[0034]
FIG. 15 is a flowchart of the load process 164. The load process 164 corresponds to step 164. In step 170, it is determined from the physical device execution information 701 whether the physical device is unused. If it is not used, the process proceeds to step 172. If not, the process proceeds to step 171. In step 171, a wait state is set in the execution information 601 of the logical device, a physical device wait is set in the wait state information 602, and the process waits until the physical device becomes free. In step 172, the execution status of the load process is set in the occupation processing information 700 of the physical device, the execution status is set in the execution information 701, the occupation processing information 600 of the logical device is set to null, and is not used in the execution information 601. Set. In step 173, the busy report flag 607 determines whether a busy has been reported to the CPU 20. If a busy is reported, go to step 174; otherwise, go to step 175. In step 174, the busy report flag 452 is turned off, and the CPU 20 is notified that the busy state of the disk device 25 has been released. In step 175, the cache slot 241 is allocated to the track 29 targeted for the load process, and a predetermined value is set in the physical device information 70. That is, the SCB occupation flag 400 is turned on, the cylinder number corresponding to the track 29 to which the cache slot 241 is allocated is set to the cylinder number 455, and the track 29 number corresponding to the track 29 to which the cache slot 241 is allocated is set to the track number. The number of tracks 29 set with the track number 458 is set in the entry number 456, and the track pointer 457 indicates the first entry. In step 176, a positioning instruction is given to the disk device 25, and the completion is awaited. In step 177, load execution processing is performed. The flowchart of this process is shown in FIG.
[0035]
FIG. 16 is a flowchart of sequential write after processing. This process corresponds to step 18 in FIG. In step 180, it is determined whether the physical device is unused based on the physical device execution information 701. If it is not used, the process proceeds to step 182; otherwise, the process proceeds to step 181. In step 181, a waiting state is set in the execution information 601 of the logical device, a physical device waiting is set in the waiting state information 602, and the processing waits until the physical device becomes free. In step 182, sequential write after processing is set in the physical device occupation processing information 700, “execution in progress” is set in the execution information 701, the logical device occupation processing information 600 is null, and the execution information 601 is not used. Set. In step 183, the busy report flag 607 determines whether a busy has been reported to the CPU 20. If a busy is reported, go to step 184; otherwise, go to step 185. In step 184, the busy report flag 607 is turned off, and the CPU 20 is notified that the busy state of the disk device 25 has been released. In step 185, a predetermined value is set in the physical device information 70 corresponding to the detected disk device 25. That is, the cylinder number to be processed is recorded in the cylinder number 455, 1 is set in the entry number 456, the track number to be processed is set in the track number 458, and the track pointer 457 indicates the first entry. Like that. In step 186, the SCB 40 having the sequential write flag 410 turned on is searched from among the SCBs 40 corresponding to the plurality of tracks 29 in the same disk device 25 and in the same cylinder. In step 187, it is determined whether the SCB 40 corresponding to the track 29 has been detected. If it can be detected, the process proceeds to step 188, and if it cannot be detected, the process proceeds to step 189. In step 188, the detected SCB 40 is set in the physical device information 70. That is, the track number 706 is set, the entry number 704 is incremented by 1, and the process returns to step 186. In step 189, a positioning instruction is given to the disk device 25, and the completion is awaited. In step 190, write-after execution processing is performed. FIG. 19 shows a flowchart of this process.
[0036]
FIG. 17 is a flowchart of the load execution process. The load execution process corresponds to step 169 in FIG. In step 200, the index 30 is found for the track number 458 indicated by the track pointer 457. In step 201, the record 33 on the track 29 is found, read, and stored in the cache slot 241. At this time, the position on the cache slot 241 where the record 33 is stored is recorded in the record pointer 408. In step 202, it is determined whether or not the reading of the record 33 recorded on the track 29 has been completed. If completed, go to step 203; otherwise, return to step 201. In step 203, it is determined whether or not the load processing has been completed for all the tracks 29 indicated in the physical device information 70. If not completed, the process proceeds to step 204. If completed, the process proceeds to step 205. In step 204, the next track 29 is set as a processing target. That is, the track pointer 705 is updated to indicate the next entry. After the processing of step 204, the process returns to step 200. In step 205, the SCB occupation flag 400 of the SCB 40 registered in the physical device information 70 is turned off, the occupation processing information 700 for the physical device is set to null, and unused is set in the execution information 701. In step 206, it is determined from the execution information 601 of the logical device information 60 whether the logical device processing is in a waiting state. If it is in the waiting state, the process proceeds to step 207. If it is not in the waiting state, the process is terminated. In step 207, the execution information 601 of the logical device information 60 is made executable.
[0037]
FIG. 18 is a flowchart of the write after process 5 shown in FIG. The write after process 5 is executed when the director 22 is empty. In step 210, the disk device 25 having the write after data, the physical device being free, and the logical device waiting for the slot is searched. That is, the SCB 40 is traced from the LRU pointer 43, and the SCB 40 having the write after data and the SCB occupation flag 400 turned off is searched by the write after flag 407. Further, it is determined from the physical device execution information 701 whether the disk device 25 corresponding to the detected SCB 40 is unused, and from the logical device execution information 601 and wait state information 602, it is determined whether the slot is waiting. In step 211, it is determined whether or not the disk device 25 searched in step 210 has been detected. If it can be detected, the process proceeds to step 216. If it cannot be detected, the process proceeds to step 212. In step 212, the disk device 25 having the write after data, the physical device being free and overloaded is searched. That is, the SCB 40 is traced from the LRU pointer 43, and the SCB 40 having the write after data and the SCB occupation flag 400 turned off is searched by the write after flag 407. Further, it is determined from the physical device execution information 701 whether the disk device 25 corresponding to the detected SCB 40 is usable, and from the limit slot number 472, it is determined whether it is in an overload state. In step 213, it is determined whether or not the disk device 25 searched in step 212 has been detected. If it can be detected, the process proceeds to step 216. If it cannot be detected, the process proceeds to step 214. In step 214, the disk device 25 having write after data and having a physical device in an empty state is searched. That is, the SCB 40 is traced from the LRU pointer 43, and the SCB 40 having the write after data and the SCB occupation flag 400 turned off is searched by the write after flag 407. Further, it is determined from the physical device execution information 701 whether the disk device 25 corresponding to the detected SCB 40 is usable. In step 215, it is determined whether the disk device 25 searched in step 214 has been detected. If it can be detected, the process proceeds to step 216. If it cannot be detected, the process ends. In step 216, “execution in progress” is set in the execution information 701. In step 217, a predetermined value is set in the physical device information 70 corresponding to the detected disk device. That is, write after processing is set in the occupation processing information 700, the execution information 701 is being executed, the cylinder number to be processed is recorded in the cylinder number 703, the entry number 704 is set to 1, and the track number 458 is set. A track number to be processed is set, and a value indicating the first entry is set in the track pointer 705. The SCB occupation flag 400 of the detected SCB 40 is turned on. In step 218, among the SCBs 40 corresponding to the plurality of tracks 29 in the same disk device 25 and in the same cylinder, SCBs with the SCB occupation flag 400 off and the write after flag 407 on are selected. Search. In step 139, it is determined whether the SCB 40 corresponding to the track 29 has been detected. If it can be detected, the process proceeds to step 220. If it cannot be detected, the process proceeds to step 141. In step 220, the track number 706 is set, the entry number 704 is incremented by 1, the SCB occupation flag is turned on, and the process returns to step 218. In step 221, a positioning instruction is given to the disk device 25, and the completion is awaited. In step 190, write-after execution processing is performed. FIG. 19 shows a flowchart of this process.
[0038]
FIG. 19 is a flowchart of the write after execution process 190. The write after execution process corresponds to step 190 in FIG. In step 230, the record 33 is started and the physical position on the disk device 25 is stored. In step 231, the record 33 on the track 29 is found and the control unit 34 is read out. In step 232, it is determined whether the record number instructed to be positioned matches the record number found in step 231. If they match, the process proceeds to step 234, and if they do not match, the process proceeds to step 233. In step 233, the physical position stored in step 230 and the physical position of the record read in step 231 are compared to determine whether the disk has made one revolution. If it has not made one revolution, the process returns to step 231, and if it has made one revolution, the process proceeds to step 239. In step 234, the record 33 is read from the cache slot 241 and written to the disk device 25. An update record pointer 409 corresponding to the written record 33 is set to null. When all of the update record pointers 409 for the track 29 are null, the write after flag 407 and the sequential write flag 410 are turned off. In step 235, it is determined whether or not the processing for the record 33 in the track 29 has been completed. If the process is completed, the process returns to step 230. If the process is not completed, the process proceeds to step 236. In step 236, the number of slots is subtracted from the number of occupied slots 460 and the number of current slots 466, and the SCB occupation flag 400 is turned off. In step 237, the end of the write after process is determined. If not completed, the process proceeds to step 238, and if completed, the process proceeds to step 239. Step 238 sets the next track 29 as a processing target. That is, the track pointer 457 is updated to indicate the next entry. After the processing of step 238 is completed, the process returns to step 230. In step 241, the contents of the physical device information 70 are invalidated. That is, the occupation processing information 700 of the physical device information 70 is null, and the execution information 701 is unused. In step 240, it is determined from the execution information 601 of the logical device information 60 whether the logical device process is waiting. If it is in the wait state, the process proceeds to step 241; otherwise, the process is terminated. In step 241, the execution information 601 of the logical device information 60 is made executable.
[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 status determination processing 1 of FIG. 1, the allocation limit for each disk device 25 is set. When there is a data write instruction from the CPU 20 that requests a write after data amount exceeding the allocation limit, the write after processing 5 writes the write after data from the cache memory 24 to the disk device 25, and the amount of write after data is allocated. Let the above instructions wait until you are less than the limit. For this reason, the allocation amount to a certain disk device 25 does not become excessive, and the allocation amount to other disk devices 25 does not become excessive. Therefore, with respect to the allocation of the cache memory 24 to the disk device 25, it is possible to perform an appropriate distribution that does not hinder the allocation of the cache memory 24 to other disk devices 25.
[0040]
Further, when sequential access is instructed by the CPU 20 and write after data is created, the number of write after data to be written to the storage device increases rapidly. Therefore, the write after data is immediately written from the cache memory to the storage device. 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.
[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 director 22 is different from the first embodiment. Here, only the difference between the second embodiment and the first embodiment will be described.
[0042]
The CPU activation processing 10 in this embodiment performs CPU disk transfer processing when there is write after data exceeding the allocation limit of the cache memory.
[0043]
FIG. 20 is a diagram showing an information processing system in the second embodiment of the present invention. The director 22 controls data transfer performed between the CPU 20 and the disk device 25, between the CPU 20 and the cache memory 24, and between the cache memory 24 and the disk device 25. The CPU activation processing 10 executes data transfer between the CPU 20 and the disk device 25 and between the CPU 20 and the cache memory 24 according to an instruction from the CPU 20. In the data transfer between the CPU 20 and the cache memory 24, the rewritten data in the cache memory 24 is referred to as write after data, and a process of writing the write after data from the cache memory 24 to the disk device 25 is performed. This is called write after processing. In the hit / miss determination process 11, it is determined whether or not the contents of the track 29 to be processed are in the cache memory 24. When the content of the track 29 is in the cache memory 24, it is called a cache hit, and when the content of the track 29 is not in the cache memory 24, it is called a cache miss. In the case of a cache hit, a cache hit process 12 is performed. In the cache hit process 12, the allocation status of the cache memory 24 to the write after data is determined by the cache allocation limit determination process 13. If the allocation is impossible, the CPU disk transfer process 18 is executed. In the CPU cache transfer process 15, data in the cache memory 24 is read and written according to instructions from the CPU 20. Since the sequential determination process 16, the cache load status determination process 1, and the write after process 5 are the same as those in the first embodiment, they will not be described here.
[0044]
FIG. 21 is a flowchart relating to the CPU activation process in the second embodiment. The CPU activation process 10 is a process executed by an instruction from the CPU 20 to the control device 21 and performs data transfer between the CPU 20 and the disk device 25 and between the CPU 20 and the cache memory 24. Steps 120 to 127 are the same as those in the first embodiment shown in FIG. 12, and will not be described here. In step 128, it is determined whether the current slot number 471 is greater than or equal to the limit slot number 472. If the condition is satisfied, the process proceeds to step 140. If the condition is not satisfied, the process proceeds to step 130. Since Steps 130 to 133, Steps 140 to 145, and Step 16 are the same as those in the first embodiment, they will not be described here.
[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 status determination process 1, the allocation limit for each disk device 25 is set. When there is a data write instruction from the CPU 20 that requests a write after data amount exceeding the allocation limit, the CPU disk transfer processing 19 performs processing for the above instruction by data transfer between the CPU 20 and the disk device 25. . For this reason, the allocation amount to a certain disk device 25 does not become excessive, and the allocation amount to other disk devices 25 does not become excessive. Therefore, with respect to the allocation of the cache memory 24 to the disk device 25, it is possible to perform an appropriate distribution that does not hinder the allocation of the cache memory 24 to other disk devices 25.
[0046]
The third embodiment will be described below. In the third embodiment, as the load status management information 46, an allocatable slot number 460, an overload setting slot number 461, an overload release slot number 463, and a minimum allocation slot number 476 are set by an instruction from the outside. Is different from the first embodiment. In the present embodiment, a service panel 36 is connected to the control device 21, and load information management information 46 is designated by the service panel 36. Here, only the difference between the third embodiment and the first embodiment will be described.
[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 control device 21 connected to the CPU 20, a service panel 36 connected to the control device 21, and at least one disk device 25 connected to the control device 21. Consists of. The control device 21 includes a directory 23, a cache memory 24, a service processor 26, and at least one director 22.
[0048]
FIG. 23 is a diagram showing an information processing system in the third embodiment of the present invention. The director 22 controls data transfer performed between the CPU 20 and the disk device 25, between the CPU 20 and the cache memory 24, and between the cache memory 24 and the disk device 25. The CPU activation process 10, the cache load status determination process 1, and the write after process 5 are the same as those in the first embodiment, and will not be described here. The load reference operation process 39 reads or updates the contents of the directory 23 according to an instruction from the service processor 26. The service panel 36 includes a display unit 37 for displaying control information in the control device 21 to the user, and an instruction receiving unit 38 for receiving an instruction from the user. The service processor 26 is located between the service panel 37 and the director 22 and controls display and exchange of information.
[0049]
FIG. 24 shows the contents displayed on the service panel 36. The displayed contents include an allocation limit slot number 81, an overload setting slot number 82, an overload release slot number 83, a disk device number 84, a limit slot number 85, and a minimum allocation slot number 86. Allocation limit slot number 81, overload setting slot number 82, overload release slot number 83, limit slot number 85, minimum allocation slot number 86 are allocation limit slot number 460, overload setting slot number 462, overload release, respectively. This corresponds to the slot number 463, the limited slot number 472, and the minimum allocation slot number 476. For each piece of information, if the content is null, a blank is displayed, and if the content is not null, the value is displayed. The disk device number 84 is a disk device number, and this area cannot be updated. The message display field 87 performs error display or the like when there is an error in the content of information instructed by the user.
[0050]
FIG. 25 is a configuration diagram of the load management information in the third embodiment. The load management information 46 is information for managing the occupation state of the write after data in the cache memory 24. The difference from the first embodiment shown in FIG. 10 is that a limited slot number setting flag 477 is newly provided in the disk allocation information 470. Here, the limited slot number setting flag 477 will be described. The limited slot number setting flag 477 is a flag indicating whether or not the limited slot number 472 is set by an instruction from the outside.
[0051]
FIG. 26 is a flowchart of load standard operation processing by the service processor. The load reference operation process 39 is a process executed by the director 22 in accordance with an instruction from the service processor 26. In step 250, it is determined whether the instruction from the service processor 26 is information update. If the information is to be updated, the process proceeds to step 252. If not, the process proceeds to step 251. In step 251, the allocation limit slot number 460, the overload setting slot number 462, the overload release slot number 463, the limit slot number 472, and the minimum allocation slot number 476 are read and transferred to the service processor 26. In step 252, it waits for information to be transferred from the service processor 26. In step 253, the information transferred from the service processor 26 is set in the allocation limit slot number 460, the overload setting slot number 462, the overload release slot number 463, the limit slot number 472, and the minimum allocation slot number 476. . At this time, the restriction slot number setting flag 477 is turned on for the disk device 25 whose content of the restriction setting slot number 95 is not null.
[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 instruction receiving unit 38 of the service panel 36. In step 261, it is determined whether or not the instruction from the user is information update. If the information is to be updated, the process proceeds to step 264. If not, the process proceeds to step 262. In step 262, the director 22 is instructed to read information and waits for information to be transferred. In step 263, information is displayed on the service panel 36. The display contents have already been described with reference to FIG. In step 264, the value set in the service panel 36 is read out. In step 265, it is determined whether the setting contents are normal. In other words, it is determined whether there is no value other than the minimum allocation slot number 86 and that the setting information includes a larger number of mounting slots. Here, the number of mounting slots is the number of cache slots 241 in the cache memory 24. If the condition is satisfied, the process proceeds to step 266. If the condition is not satisfied, the process proceeds to step 272. In step 266, it is determined whether the overload setting slot number 82 is equal to or greater than the overload release slot number 83. If the condition is satisfied, the process proceeds to step 267. If the condition is not satisfied, the process proceeds to slot 272. In step 267, a disk device in which the limit slot number 85 or the minimum allocation slot number 86 is set is searched. In step 268, it is determined whether a disk device has been detected. If detected, the process proceeds to step 269. If not detected, the process proceeds to step 270. In step 269, it is determined whether the limited slot number 85 is larger than the minimum allocation slot number 86. If the condition is satisfied, the process proceeds to step 270. If the condition is not satisfied, the process proceeds to step 272. In step 270, it is determined whether the determination has been completed for all the disk devices 25. If the determination is completed, the process proceeds to step 271; otherwise, the process returns to step 267. In step 271, the director 22 is instructed to update information, and the information is transferred. In step 272, an error display indicating information fraud is performed in the message display field 87 of FIG.
[0053]
FIG. 28 is a flowchart of the cache load status determination process 1 in the third embodiment. This process is a process for determining the load status of the cache memory 24 from the occupied amount of the cache slot 241 including the write after data. In this embodiment, the difference from the first embodiment shown in FIG. 11 is that step 256 is inserted between step 104 and step 105 and step 256 is inserted between step 113 and step 114. . In step 100, it is determined whether the overload flag 464 is on. If the flag is on, the process proceeds to step 110. If the flag is off, the process proceeds to step 101. In step 101, it is determined whether the occupied slot number 461 is the overload setting slot number 462 or more. If the condition is satisfied, the process proceeds to step 108; otherwise, the process proceeds to step 102. In step 102, it is determined whether the occupied slot number 461 is equal to or greater than the overload release slot number 463. If the condition is satisfied, the process ends. If not satisfied, the process proceeds to step 103. Steps 103 to 107 and step 255 are the deallocation process 4 shown in FIG. 23, in which the slot allocation to the disk device 25 in which the limited slot number 472 is set is released. In step 103, the disk device 25 in which the limited slot number 472 is set is searched. In step 104, it is determined whether the disk device 25 is detected. If detected, the process proceeds to step 255, and if not detected, the process is terminated. In step 255, it is determined whether the limited slot number allocation flag 477 is ON. If the flag is on, the process proceeds to step 107. If the flag is off, the process proceeds to step 105. In step 105, it is determined whether the current slot number 471 is less than the release reference slot number 474. If the condition is satisfied, the process proceeds to step 106, and if the condition is not satisfied, the process proceeds to step 107. In step 106, the restriction slot number 472, the setting reference slot number 473, and the release reference slot number 474 are set to null in order to release the restriction. In step 107, it is determined whether or not the determination has been completed for all the disk devices 25. If not completed, the process returns to step 103, and if completed, the process is terminated. In steps 108 to 109, a predetermined value is set for the overload state of the cache memory. That is, in step 108, the overload flag 464 is turned on. In step 109, the current slot number 471 is set to the setting reference slot number 473 for each disk device 25. In step 110, it is determined whether the occupied slot number 461 is less than the overload release slot number 463. If the condition is satisfied, the process proceeds to step 111; otherwise, the process proceeds to step 112. In step 111, the overload flag 464 is turned off and the process is terminated. Steps 112 to 115 and step 256 are the allocation setting process 3 shown in FIG. 23, and limit allocation of the cache slot 241 to the disk device 25 is performed. In step 112, it is determined whether the current slot number 471 is greater than or equal to the set reference slot number 473. If the condition is satisfied, the process proceeds to step 113. If the condition is not satisfied, the process proceeds to step 115. In step 113, it is determined whether the current slot number 471 is equal to or greater than the minimum allocation slot number 476. If the condition is satisfied, the process proceeds to step 256; otherwise, the process proceeds to step 115. In step 256, it is determined whether the limited slot number allocation flag 477 is ON. If the flag is on, the process proceeds to step 115. If the flag is off, the process proceeds to step 114. In step 114, cache slot allocation restrictions and restriction cancellation criteria for the disk device 25 are set. That is, the current slot number 471 is set in the load management information 46 for the limit slot number 472, and the value of the set reference slot number 473 is set in the load management information 46 for the release reference slot number 474. As the setting of the release reference slot number 474, a predetermined ratio of the current slot number 471 may be set. In step 115, it is determined whether the determination for all the disk devices 25 is completed. If not completed, the process returns to step 112. If completed, the process proceeds to step 116. In step 116, the current slot number 471 is set as the set reference slot number 458 in the load management information 46 for the disk device 25 in which the set reference slot number 473 is not set.
[0054]
In this embodiment, an example in which the allocatable slot number 460, the overload setting slot number 461, the overload release slot number 463, and the minimum allocation slot number 476 are set in the load management information 46 according to an instruction from the service panel 36. showed that. The same thing can be performed by an instruction from the CPU 20. Hereinafter, a method for setting the load management information 46 according to an instruction from the CPU 20 will be described.
[0055]
FIG. 29 is a diagram showing the contents of information transferred between the central processing unit and the control device 21. The requests instructed by the CPU 20 include a load information sense request that is a request for reading load information and a load information setting request that is a request for setting load information. The load information sense command 90 indicates that the request from the CPU 20 is a load information sense request. When the load information sense command 90 is instructed from the CPU 20, the control device 21 has an allocation restriction slot number 91, an overload setting slot number 92, an overload release slot number 93, a disk device number 94, a restriction slot number 95, and The minimum allocation slot number 96 is transferred to the CPU 20. The number of allocation limit slots 91, the number of overload setting slots 92, the number of overload release slots 93, the number of limit slots 95, and the minimum number of allocation slots 96 are the number of allocation limit slots 460, the number of overload setting slots 462, and the overload release, respectively. This corresponds to the slot number 463, the limited slot number 472, and the minimum allocation slot number 476. The disk device number 94 is the number of the disk device 25. The load information setting command 97 indicates that the request from the CPU 20 is a load information setting request. When the load information setting command 97 is instructed from the CPU 20, the control device 21 is transferred from the CPU 20, the allocation limit slot number 91, overload setting slot number 92, overload release slot number 93, disk device number 94, limit The number of slots 95 and the minimum number of assigned slots 96 are set to the corresponding number of restricted slots 460, overload setting slot number 462, overload release slot number 463, restricted slot number 472, and minimum assigned slot number 476, respectively. .
[0056]
FIG. 30 is a flowchart of the load reference operation process 39 shown in FIG. This processing is executed by the director 22 when the load information sense command 90 or the load information setting command 97 is instructed from the CPU 20. In step 280, it is determined whether the command from the CPU 20 is the load information setting command 97. In the case of the load information setting command 97, the process proceeds to step 282. Otherwise, the process proceeds to step 281. In step 281, the allocation limit slot number 460, overload setting slot number 462, overload release slot number 463, limit slot number 472, and minimum allocation slot number 476 are read from the directory 23, allocation limit slot number 91, overload setting The data is transferred to the CPU 20 as a slot number 92, an overload release slot number 93, a disk device number 94, a limit slot number 95, and a minimum allocation slot number 96. In step 282, the CPU 20 transfers the allocation limit slot number 91, the overload setting slot number 92, the overload release slot number 93, the disk device number 94, the limit slot number 95, and the minimum allocation slot number 96. wait. In step 283, the load management information 46 includes the allocation limit slot number 91, the overload setting slot number 92, the overload release slot number 93, the disk device number 94, the limit slot number 95, and the minimum allocation slot number 96. The allocation limit slot number 460, the overload setting slot number 462, the overload release slot number 463, the limit slot number 472, and the minimum allocation slot number 476 are set. At this time, the restriction slot number setting flag 477 is turned on for the disk device 25 whose content of the restriction setting slot number 95 is not null.
[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 CPU 20. When the write after data limit is not set by the user or the CPU 20, the allocation limit for each disk device 25 is set when the amount of write after data exceeds the threshold value by the cache load status determination processing 1. . When there is a data write instruction from the CPU 20 requesting a write after data amount exceeding the allocation limit, the write after process 5 writes the write after data from the cache memory 24 to the disk device 25, and the write after data is less than the allocation limit. Let the above instructions wait until For this reason, the allocation amount to a certain disk device 25 does not become excessive, and the allocation amount to other disk devices 25 does not become excessive. Furthermore, the allocation limit of the write after data can be changed by an instruction from the user or the CPU 20. Therefore, when allocating the cache memory 24 to the disk device 25, it is possible to perform an appropriate distribution that does not hinder the allocation of the cache memory 24 to other disk devices 25.
[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.
前記記憶装置に未書き出しのデータを、前記キャッシュメモリから前記複数の記憶装置に書き出す手段は、前記複数の記憶装置のうち、前記中央処理装置が書き出し処理を待たされているデータが記憶されるべき記憶装置の未書き出しデータを優先的に、当該記憶装置へ前記キャッシュメモリから書き出すことを特徴とする請求項1に記載の装置。 The means for writing unwritten data to the storage device from the cache memory to the plurality of storage devices should store data for which the central processing unit is waiting for the write processing among the plurality of storage devices. 2. The apparatus according to claim 1, wherein unwritten data in the storage device is preferentially written from the cache memory to the storage device.
JP2002082322A 2002-03-25 2002-03-25 Storage device control device and control method Expired - Lifetime JP3721338B2 (en)

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)

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