JP3726931B2 - 入出力装置操作故障を誤って示すことを防止する入出力制御ユニット及び方法 - Google Patents

入出力装置操作故障を誤って示すことを防止する入出力制御ユニット及び方法 Download PDF

Info

Publication number
JP3726931B2
JP3726931B2 JP07390297A JP7390297A JP3726931B2 JP 3726931 B2 JP3726931 B2 JP 3726931B2 JP 07390297 A JP07390297 A JP 07390297A JP 7390297 A JP7390297 A JP 7390297A JP 3726931 B2 JP3726931 B2 JP 3726931B2
Authority
JP
Japan
Prior art keywords
request
timeout
input
control unit
output
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 - Fee Related
Application number
JP07390297A
Other languages
English (en)
Other versions
JPH1031631A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1031631A publication Critical patent/JPH1031631A/ja
Application granted granted Critical
Publication of JP3726931B2 publication Critical patent/JP3726931B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ構成内の複数のオペレーティング・システム(OS)のいずれかにより要求される、I/O装置操作の潜在故障を検出する未着割込みハンドラ(MIH)・タイムアウト機能をサポートするI/O制御ユニット(CU)に関する。本発明は、待機中のI/O要求が同一装置を使用する現I/O要求により不当に遅延されるときに生じ得る、特定タイプの誤った指示を防止する。MIHは要求がOSにより発行されるとき開始するMIHタイムアウト期間のタイムアウトにより潜在I/O装置操作故障を検出する。MIH期間が操作に対してタイムアウトする以前に操作完了割込みがI/O装置から受信されない場合、潜在I/O装置故障指示がOS内で生成される。
【0002】
【従来の技術】
全てのコンピュータ環境では、様々なI/O装置からのその装置による操作を要求する割込みがOSにより認識されずに終り得る。なぜなら、I/O装置からOSに至る経路内に存在する構成要素が割込みを転送し損ない、結果的にI/O装置が割込みを提供し損なうか、或いはOSが割込みが提供されるとき、それを認識し損なうからである。
【0003】
未着割込みの検出の失敗は、データ処理システムにおける操作をスロー・ダウンさせ、割込みが発生するまで重要な資源が解放されなかったり、或いは未着割込みに関連付けられる処理が中止される場合、究極的にはシステムを停止させ得る。こうした検出の失敗は資源を再度使用可能にするために、不定期のシステム再始動(IPL)を要求し得る。特定のキュー上の資源要求を突き止めるための手動による試みは、通常、要求元の利用者が待つことのできない長い時間を費やす。
【0004】
未着割込みがシステムに及ぼす致命的な影響を軽減するために、失われた割込みを検出し、失敗操作を終了させ、配備された回復機構により失敗操作を再開するか、或いはその操作を開始したジョブをエラーにより終了する方法が開発された。この機構は未着割込みハンドラ(MIH)と呼ばれ、進行中のI/O操作を'時間設定(time)'する能力を有する。実際、これは時間測定ではなくI/O装置に対して可能性のある最長のI/O操作に対して、'正常'と見なされる時間長の制限である。これは全ての操作が長時間を費やすべきことを意味するのではなく、この時間を超過する全ての操作が異常と見なされるべきことを意味する。従って未着割込みハンドラは、ホストを失われた割込みの影響から保護するための、システム下の'安全網(safety net)'である。
【0005】
初期には、低速装置(ユニット・レコード)と高速装置(DASD)とを区別するために、2つのタイマ値が確立され、異なるマシンに対してタイマ値を個別に適合化するといった限られた能力を提供した。しかしながら、2つのタイマ値では十分ではなく、従って様々な装置のニーズ及び応答要求に適合するように調整され得る、追加の個々のMIHタイマ値が実現された。
【0006】
時を経て、MIH構成要素の機能が、MIHタイムアウトの動的な変更を可能にするように拡張され、最初に実施された単なる活動時間の代わりに全てのI/O要求処理にわたり、制限時間を定める能力を備えるようになった。これらには、キューイング時間及びエラー回復プロシジャ(ERP)が含まれる。しかしながら、コンピュータ・オペレーティング・システムの今日の未着割込みハンドラ構成要素は欠点を有する。
【0007】
今日のオペレーティング・システムでは、装置クラス(すなわちDASD、テープなど)にもとづく様々なデフォルト指定のMIHインタバルが存在する。しかしながら、各装置クラス内では異なる装置タイプに対する推奨MIH時間の間に多大な不均衡が存在する。例えばテープ装置では、異なるモデルのテープ装置に対する推奨MIH検出インタバルはS/390 3420テープ装置の場合の3分から、S/390 3490Eテープ装置の場合の20分まで変化する。MIH時間のこの変化はテープが含める異なる容量、及び媒体が移動できる最大物理スピードによる。
【0008】
MIH検出インタバルは、装置の最長のコマンド(例えばスペース・ファイル先送り、巻き戻し/アンロードなど)を実行する時間よりも大きくなければならない。別の例はDASD装置の場合である。MVS(多重仮想記憶装置、S/390マシンにおけるIBMの最初のオペレーティング・システム)オペレーティング・システムはDASD装置に対して、15秒のデフォルト指定のMIH時間を有する。これは通常、作業負荷または特定の装置を使用するアプリケーションの特殊な特性により、システム操作者による調整を必要とするだけである。例えばJES2(ジョブ・エントリ・システム2)チェックポイント・データ・セットは初期化の間に長い時間を確保され得るが、高い可用性のアプリケーションはそれらのI/Oが完了したか否かを、数秒の後に通知される必要がある。なぜなら、アプリケーションが別の装置を試行し、その上トランザクション時間要求を生成するからである。しかしながら、新たなDASD特性はMIH検出インタバルを選択する問題を一層複雑にする。IBM3990 DASDは、その完了に30秒を費やし得る内部エラー回復機能を有する。この回復の間にMIH条件が検出される場合、ホスト回復動作が制御ユニットにおいて重大な問題を生じ得る。従って、3990 DASDでは、システム操作者が30秒のMIHインタバルを設定することが推奨される。更に他の装置がシステムに対して、あたかもそれらがDASD装置であるかのように定義され得る。これに相当する例はIBM3995光装置であり、これらの装置上の幾つかの操作は光媒体の取り外し及び装着を要求し、これには数分を費やし得る。事態を一層複雑にするのは新たな装置がコンピュータ・システムに追加されるとき、こうした装置の適正な操作を保証するために既存のMIH個別化情報が更新される必要があり得ることである。
【0009】
オペレーティング・システムMIHハンドラに関する別の問題は、MIHが余りに長いことである。上述のように、MIH時間は各装置タイプに対してその装置の特性にもとづき利用者により設定される必要がある。実行され得る最長のコマンド(すなわち巻き戻し/アンロード)が20分を費やすと思われる場合、たとえほとんどの単純なデータ転送コマンドが数秒で実行されると期待されても、20分のインタバルの後に全てのハング条件が検出される。エラー検出時間の延長はシステムの信頼性及び可用性を低下させる点で、利用者に悪影響を及ぼす。改善された技術を備える新たな装置が旧装置を置換する場合、MIH時間が新たな要求に合致するように手動式に調整されなければならない。
【0010】
更に、今日の装置及びMIH機能では、全てのコマンドが同一のMIHインタバルに設定される。これはオペレーティング・システムにより、回復及び再構成動作の間に使用される特殊な制御及び回復コマンド(すなわち、パス・グループIDのセット、パス・グループIDのセンス、忠誠(allegiance)のリセット、割当て/割当て解除、アクセス制御など)にも当てはまる。これらのコマンドがオペレーティング・システムにより発行されるとき、重要なシステム資源が保持され、他の利用者の通常の作業の実行を遅延させ得る。これらのコマンドの回復のための特殊タイマ・コードの追加は、システムの開発にとって極めて高価であり、製品コストを押し上げる。
【0011】
上述のように、コンピュータ・システムは、利用者が装置の物理特性にもとづき、手動式にMIH時間をセットすることを要求する。例えば利用者はS/390 3995光ライブラリ装置が実際はS/390 DASD3380装置として定義されること、及び光媒体の通常のステージング/デステージングに対してMIH条件が検出されないように、MIHインタバルが十分に高くセットされなければならないことを知らなければならない。更に、テープ・ドライブのセットが追加または更新される場合、テープ・ドライブのスピード及び容量にもとづきMIH時間が調整される必要がある。この手動プロセスはエラーにつながり易い。たまたま省略された誤ったMIH条件が検出されるとジョブは失敗し得る。
【0012】
また、MIH仕様は物理I/O構成定義と同期され、更に動的に及びシステム再始動により実行されるシステム構成変更に伴い、更新される必要がある。MIH時間が正しく更新されないと、システムRAS(信頼性/可用性/保守性)が低下する。利用者が異なる装置に対してMIH検出を承知しなければならない事実はシステム管理のコスト及び計算の全体コストを増加させる。
【0013】
システム環境:
図10は複数のホスト(510)を示す。各ホストは汎用コンピュータ・システムであり、中央プロセッサ命令を含むプログラムを実行する1つ以上の中央処理ユニット(CPU(511))と、I/Oチャネル・サブシステム(512)とを含み、後者はチャネル・プログラムを実行し、1つ以上のチャネル・パス(513)を通じてホスト(510)と1つ以上のI/Oサブシステム(520)との間の情報の転送を管理する。好適な実施例では、ホスト・コンピュータはIBM S/370またはIBM S/390コンピュータ・システムであり、I/O装置にESCONまたはOEMI I/Oチャネル・インタフェースを介して接続される。しかしながら、ホスト・コンピュータは任意のタイプであってよく、実際には複数のタイプであり得る。同様にインタフェースが接続ホスト及びI/Oサブシステムによりサポートされるならば、チャネル・パスも複数のタイプであってよい。チャネル・パスのトポロジは、潜在的にI/Oインタフェースのタイプに固有である。
【0014】
各I/Oサブシステム(520)は制御ユニット(521)を含み、これは1つ以上のホスト(510)に接続される1つ以上のI/O装置(530)を管理する。I/O装置は1つ以上の装置パス(531)を介して、制御ユニットに接続され、これらの装置パスはI/O装置及び制御ユニットにより情報の通信のためにサポートされる。一般に制御ユニットは、I/O装置によりサポートされるI/Oインタフェース(すなわち装置パス(531))を、ホストによりサポートされるI/Oインタフェース(すなわちチャネル・パス(513))に適応させる。
【0015】
各制御ユニット(521)の内部には、複数のホストと複数のI/O装置との間の対話を管理するための機構が存在する。各チャネル・パスは制御ユニット内のチャネル・アダプタ(524)に接続され、これは関連チャネル・パスを通じて通信するために必要な機構を含む。共用メモリ(522)が各I/Oサブシステム(520)内に存在し、I/Oサブシステム内にあってチャネル・アダプタ(524)を制御するI/O処理要素によりアクセスされる。この共用メモリは各装置に関連付けられる情報のブロックを含み、これは"装置nロック・データ"(523)として参照される。
【0016】
各ホスト(510)内では、OSプログラムがその任意のCPU(511)により実行され、CPUはチャネル・サブシステム(512)に対して選択チャネル・パスまたはチャネル・パスのセットに接続される選択装置(530)に、I/O信号を発行するように指示する。OSプログラムは要求がチャネル・サブシステム(512)に提供されてから、I/O操作が完了したことを示す応答がチャネル・サブシステムから受信されるまでのI/O操作の期間をモニタするように設計される。I/O操作の経過時間が特定のしきい値を越える場合、プログラムは本願の出願人に権利譲渡された米国特許第5388254号で述べられるように未着割込みタイムアウトを検出する。このMIHプログラム機能は特定の報告されない条件により完了し損なったI/O操作を検出するように意図され、それによりI/O操作の完了に依存するプロセスの無期限の延期を回避する。
【0017】
チャネル・サブシステム内ではI/O要求が選択装置に対してキューに待機され得る。要求装置がI/O要求を実行するのを待機する間、I/O要求をキューに待機する結果、I/O要求はチャネル・サブシステムと選択制御ユニットとの間のチャネル・パスを通じて通信を開始する。I/O要求がチャネル・サブシステムにより処理されている間、OSプログラムは他の作業の実行の継続を許可される。I/O操作の完了時、チャネル・サブシステムがOSプログラムに割込みを発生し、完了したI/O操作のステータスを提供する。
【0018】
制御ユニットは、自身が制御する各装置への同時要求を管理する。制御ユニットがホストにより生成されたI/O要求を許可すると決定する場合、コマンドがチャネルから受諾され、チャネルにより選択された装置に対して処理される。制御ユニットが同時活動のためにホストにより生成されたI/O要求を許可しないと決定する場合には、コマンドが"ビジー"指示により拒絶され、I/O要求がチャネル・サブシステムにキュー待機される。制御ユニットが以前にビジー指示を提供した後、コマンドを実行できると判断するとき、制御ユニットは"ビジー解除(no-longer busy)"指示を提供し、チャネル・サブシステムにキュー待機されたI/O要求を再発行するように指示する。要求元のOSプログラムはそのI/O要求が完了したようには知らされていない程度にしか、この対話を認識しない。ビジー指示を提供するために、制御ユニットにより通常、使用されるアルゴリズムについて、次に述べることにする。本発明は、1つ以上のOSが同一の制御ユニットに対して同時I/O要求をマークしているとき、未着割込み信号を確実に検出するために、OSプログラムにより使用される制限時間の低減を可能にすることによりシステム効率を向上するものである。
【0019】
同時I/O要求の管理:
制御ユニットは所与の装置に対して、その制御ユニットにおいて進行中の同時I/O要求の数を判断する。しばしば、装置はその装置により処理される媒体上での予測可能な結果を保証するために、I/O要求が直列化されることを要求する。制御ユニット内の他の設計制約もまた、装置に対して同時に実行され得るI/O要求の数に対して制限を課し得る。
【0020】
図11は、受諾される同時I/O要求の数を1に制限するために使用され得るプロセスを示し、これは装置における同時要求の直列実行を指示する。この処理は、チャネル・アダプタにより使用される装置ロック・プロトコルにより実施され、そこではアダプタが要求装置に対応するロック・データ・ブロック523内において、その装置に関連付けられるロックに対してアトミック・"テスト及びセット操作"を実行する。このロック・テスト及びセット・プロトコルは装置がI/O操作を開始する以前に実行される。テスト及びセット操作が成功の場合(装置が使用可能であることが判明する)、I/O操作が受諾され、装置により処理される。テスト及びセット操作が不成功の場合(装置が使用不能)、チャネル・アダプタのI/O要求はビジー指示を提供される。チャネル・アダプタは必要な装置に対するロックを獲得したとき、(装置に関連付けられるロック・ビットをセットすることにより)成功する。装置操作の完了時、ビジー指示を告げられた各チャネル・アダプタは今度"ビジー解除"指示を告げられ、チャネル・サブシステムにキュー待機されたI/O要求が、再びその装置に対して再発行される。このクロス・チャネル・アダプタ通信は、図11で点線により示される。"ビジー解除"指示の提供の実現は、特定のホストが他のホストによる装置のアクセスを頻繁に阻止することの無いように、"公正(fairness)"機構の考慮を要求し得る。この方法の変形が異なるインタフェース・アーキテクチャ(例えばSCSIタグ無し及びタグ付きキューイング)に対して提供され得り、そこでは、チャネル・サブシステム・キューイング機能を使用する代わりに、直列キューが制御ユニット内に構成される。
【0021】
キューイング期間の制限:
同時I/O要求の直列化のための上述のビジー/ビジー解除方法により生じる問題はホストから見て、I/O操作を実行するために要求される時間が制御ユニット(CU)で要求I/O操作の実行に必要とされる時間の関数でないことである。すなわち、ホストのOSから見た実行時間は実際のCU/装置実行時間に、待機時間(この間、CUは他のホストに対する他のインタリーブ式I/O操作を実行している)を加えたものである。実際、OSが装置に対するキュー内の全てのI/O操作を知らなければ、適切な未着割込みタイムアウト値を決定するために要求I/O操作の期間を判断することはできない。同時アクセスの解決におけるある程度の公正さ、及び同時要求の数に対する特定の制限を前提とすると、統計分析によりI/O操作の完了の検出の失敗が、特定の失敗条件に起因するものであって、同時アクセス要求の結果ではないことを保証する高い確率を有する期間を拾い出すことが可能である。
【0022】
例えば、所与のディスク装置が通常、任意のコマンドを10ミリ秒以下で実行すると仮定する。ほとんどのI/O要求が10個程度のコマンド(10個程度のI/Oチャネル命令)を有し、比較的等価なサービスを獲得する10個程度のホストが一般に存在すると仮定すると、10ミリ秒×10個のコマンド×10個のホストの乗算により、I/O要求が約1秒を費やすと期待される。この数字は、例外条件を特定の高度な確率内で処理する特定の要因により、例えば15秒に増加される。
【0023】
所与の装置に対するI/O操作の期待実行時間が広い範囲で変化する場合、問題は複雑化する。なぜなら、同時要求の解決を予測する統計分析が、最悪の場合のI/O操作実行時間を考慮しなければならず、"短い"I/O要求の期間と、未着割込みタイムアウトとの間の相違を一層増大するからである。
【0024】
例えば所与のディスク装置に対して、典型的なコマンドが通常100ミリ秒以下で実行されるのに対して、アウトボード・コピー・コマンド(このディスクの内容を別のディスクにコピーする)は5分以下で実行されると仮定する。統計的に、I/O要求が8つの同時要求よりも長くキュー待機されることがないと判断すると(すなわち、このホストは8つのI/O要求が処理される毎に、少なくとも1度返却を獲得する)、最悪の場合としてキューイング時間を7×5分=35分と予測することができる。このホストが典型的なコマンドを実行している場合、キューイング時間とコマンド実行時間との和として予測される未着割込みタイムアウトは、35分と0.0001秒、すなわち約35分である。7つの異なるホストが7つの同時アウトボード・コピーを発行し、35分未満(例えばn(<35)分)のタイムアウト制限が可能になる確率は全ての共用システムが同時にフル・コピーを開始する確率にもとづくと見なすこともできる。
【0025】
未着割込みが検出されるとき、しばしばプログラムは追加のI/Oを実行しなければならない。これらのI/O要求はキューイング問題に遭遇しがちで、結局同一の未着割込みタイムアウトを適用されなければならない。装置が実際に壊れていて、もはやホストに応答することができない状況ではジョブが失敗し、それ故再実行されなければならないとプログラムが結論するまでに、数10分を費やすことは容易に理解される。
【0026】
特定の環境では、プログラムはこうした統計方法により規定された時間を待機できなくてもよく、その上、リアルタイム処理の要求を満足できなくてもよい。他の場合では、未着割込みタイムアウト及び結果の回復が操作的な難題を生じる期間となる(例えば処理が要求ウィンドウ内に完了しない)。
【0027】
特定の状況が発生するときに、MIHプロセスがエラー指示の出所となり得る単一OSのデータ処理システムでは、従来のMIH検出システムは良好に機能しなかった。例えばロングI/Oコマンド(長い期間のI/O操作を要求するコマンド)が、I/Oプログラムの最後のコマンドとしてI/O制御ユニットに発行され、最後のI/Oコマンドが完了する以前に、同一装置に対するショート・コマンドを有する別のI/OプログラムがOSにより開始されようとする状況において、誤った指示が発生し得る。従来システムでは、ロング・コマンドはそれが制御ユニットにおいて受諾されるとき、部分的な完了を信号で知らせる。それにより、I/O装置が第1の要求に対する操作を完了するまで、そのI/O装置に対する次の要求が待機させられた(従来のS/390 I/Oアーキテクチャに精通する当業者には、これはジョブの迅速な終了、並びにテープ巻き戻し/アンロード・コマンドに続く新たなジョブの開始を可能にする、1次ステータスの再駆動として既知である)。第1の要求が終了する以前に、第2のI/O要求の開始が許可され、オペレーティング・システムが活動状態と想定されるショート・コマンドに対して、MIHタイムアウトを調整しようとするとき、誤った指示が検出され得る。なぜなら、OSが以前のロング・コマンドに対する実行時間を知らないからである。この短いタイムアウトが誤って未着割込みを示し得る。しかしながら、実際にはどの割込みも未着ではない。なぜなら、装置がまだ以前のロング・コマンドを実行しているために、ショート・コマンドがまだ装置により開始されていないからである(そして、これらのいずれのコマンドも完了割込みを提供できていない)。
【0028】
【発明が解決しようとする課題】
本発明の目的は、ロングI/OコマンドがI/O装置により実行されており、その装置が要求装置を共用する1つ以上の他のOSから別のI/O要求を受信するとき、要求I/O装置が複数のホストOSに信号で知らせることを可能にする信号送信プロセスを提供することである。
【0029】
本発明の別の目的は、ほとんどの未着割込みを処理するための、細分的なMIH検出タイムアウトを提供することである。
【0030】
本発明の更に別の目的は、同一のI/O装置を共用する1つ以上のOSにより使用される、細分的なMIHタイムアウトを提供することである。
【0031】
本発明の更に別の目的は、新たな装置の追加、装置のリネーム、装置の移動、または既存の装置に対する新たなサービスの追加により、I/O構成が変更されるとき、以前に手動によりカストマイズされたOS内のMIHタイムアウト値を排除することである。
【0032】
【課題を解決するための手段】
本発明は、要求I/O装置操作の故障を検出するタイムアウト機能を使用する複数のホスト・オペレーティング・システム(OS)をサポートするI/O制御ユニット(CU)機構に関する。これらのCU機構はホストOSが誤ってI/O装置故障を検出することを防止することにより、これらのOSをサポートする。こうしたことは、I/O装置が複数のホストOSにより共用される場合に問題となる。I/O装置の使用を共用する全てのホストOSからの各I/O要求は、所定のMIHタイムアウト期間内に完了すると期待される。I/O装置がMIHタイムアウト期間の終了以前にOSに成功完了割込みを送信しない場合、MIHは要求I/O装置操作の潜在故障の指示を生成する(その時、実際には装置は故障しておらず、単に他のホストOSの要求を処理しているかも知れない。従ってMIH潜在故障指示は誤りとなり得る)。
【0033】
こうしたホストOS MIH検出機能は、一般にOS MIHソフトウェアにより実行され、これは各発行されるI/O要求に対してMIHタイムアウトを開始し、そのI/O装置から所定MIHタイムアウト内に成功完了割込みを受信しない場合、そのI/O装置の故障を示す。
【0034】
本発明は、複数のホスト・インタフェース・アダプタを含むI/O CU内に組み込まれ、アダプタはそれぞれI/O要求を異なるOSを有する異なるホスト・システムから受信する。CUはそのI/O装置の各々に対応するそれぞれのロック・ビットを有する。同一装置に対して同時に受信されるI/O要求は同一のロックを競合するが、同時要求の1つだけがその時ロックを提供される。
【0035】
各ホスト・インタフェース・アダプタはまた、ビジー・ビット及びしきい値タイマを有する。ビジー・ビットは使用不能な装置(ロック済み)に対する要求がアダプタにより受信されるときセットされ、その時しきい値タイマが開始される。拒絶された要求はしきい値タイムアウトが発生する以前に、要求装置が使用可能になるのを待機する。CUに記憶されるしきい値タイムアウト値は、しきい値タイムアウトを決定し、これはOS 1次MIHタイムアウトが発生する以前に発生するようにセットされる。しきい値タイムアウトが発生する以前に装置により現I/O要求が完了されると、待機中の要求が装置ロックを競合し、こうした要求はロックを獲得できたりできなかったりする。
【0036】
しきい値タイムアウトの発生は、アダプタにロング・ビジー割込みを生成し、OS MIHに送信するように指示する。こうした割込みはOS MIHにその初期1次MIHタイムアウト期間を2次(ロング・ビジー・タイムアウト値)に延長するように指示する。後者はOS MIH内で非常に長いタイムアウトを生じる。このロング・ビジー・タイムアウトは、I/O装置故障を誤って示す初期1次タイムアウト期間のタイムアウトを阻止する。
【0037】
ホスト・インタフェース・アダプタがビジーである(ロック済みの)装置に対する別のI/O要求を受信する場合、その要求は装置により拒絶されるが、任意のしきい値タイムアウトが発生するまで、I/Oサブシステム内で待機することが許可される。任意のしきい値タイムアウトの後、要求はOSに戻される。すなわち、アダプタがOSに待機中の要求を取り戻すように信号で知らせる。これはアダプタがロング・ビジー割込みを生成し、OSに送信することにより達成され、OSはその時、待機中の要求に対するそのMIHタイマを停止する(待機中の要求に対する1次タイムアウトの発生を阻止する)。そして、その要求はI/Oサブシステムの代わりに今度はOS内で待機する。OSは後に待機中の要求をI/O CUに再発行するとき、MIHタイマを再始動する。
【0038】
現I/O要求がロング・ビジー期間の間に成功裡に完了するとき、そのCU装置ロックがその使用可能な状態にセットされ、装置終了割込みがOSに送信される。OSは待機中の要求を再発行し、(1次タイムアウト値を用いて、)その要求に対してOS MIHタイマを再始動する。装置操作が1次MIHまたは2次MIHロング・ビジー・タイムアウト期間内に成功裡に完了しない場合、ロング・ビジー・タイムアウトが装置故障を指摘する。
【0039】
本発明はMIH最大タイムアウトの延長を任意の回数可能にする。好適な実施例では、MIHタイムアウト期間が最小1次MIHタイムアウト期間から、最大(且つ非常に長い)2次MIHタイムアウト期間に1度延長可能である。短い1次MIHタイムアウト期間は、その終了以前にほとんどのI/O装置操作が完了するように選択される。
【0040】
本発明は、(従来システムにおいて、所与のタイプの各I/O装置に対して使用された固定MIHタイムアウト期間と比較して、)MIHタイムアウト期間を短縮し、従来のMIHソフトウェアと比較してほとんどのI/O装置故障の素早い検出を提供する。本発明による潜在I/O装置操作故障の素早い判断は、ほとんどのI/O装置操作に対するMIHタイムアウト期間の短縮による。本発明に従う、MIHタイムアウト期間のその最小MIHタイムアウト期間からの延長は、その完了に長時間を要求する数少ないI/O操作に対してのみ必要とされる。従って、システム効率の全体的な改善が本発明の使用により獲得される。
【0041】
本発明では理論的には、MIH最大タイムアウト期間は任意の有限な数の延長を有する。例えば好適な実施例では、MIH最大タイムアウト期間はCUのホスト・インタフェース・アダプタの各々において、1つのCUしきい値タイムアウトを用いて2度延長される。3度の延長を有するMIHタイムアウトをサポートするためには、2つのCUしきい値タイムアウトがCUのホスト・インタフェース・アダプタの各々において使用され得る。好適な実施例では、第1のCUしきい値は、短い1次MIH期間に類似の短い1次MIHタイムアウト期間をサポートする。第1のCUしきい値の終了に達すると、MIHが第2のMIH延長(例えばロング・ビジー延長)を呼び出す。2番目の例では、第2のCUしきい値が、第2のMIH延長期間の終了よりも僅かに先にタイムアウトし、第3の(最後の)MIH延長をトリガする。
【0042】
第2の延長が長い2次MIHタイムアウト期間を終了する場合、第3の延長は超長いMIH延長期間を終了するように指示され得る。後者の例では、第3の超長いMIH延長期間は、過度に長いI/O装置操作に対してのみ必要とされ得る。こうした操作には、人の介入を含むテープ実装コマンドなどがあり、第3の延長期間の終了時には、MIHタイムアウト故障指示が提供される。ほとんどのI/O装置操作は1次MIH延長だけを使用し、数少ない長いI/O装置操作が2次MIH延長を使用する。しかしながら、第1のしきい値割込みの後、待機中の要求の位置が変更されてもよく、その後、要求はI/Oサブシステムの代わりに、OS内で待機し、そこで装置ロックを即時競合することができる。これはコンピュータ・システムのI/Oアーキテクチャにより影響される。
【0043】
前記の例から、本発明が任意の数のOS MIHタイムアウト延長を有し得ること、各OS MIH延長がそのOSに対するCUインタフェース・アダプタにおいて、対応するCUしきい値タイムアウトを有することが明らかである。各CUしきい値タイムアウトは、対応するMIH延長タイムアウトよりも僅かに先にタイムアウトするようにセットされる。任意のしきい値タイムアウトとその対応するMIHタイムアウトとの間の時間は、アダプタが割込み通信をOS(待機中のI/O要求に関連付けられる)に送信し、現期間のMIHタイムアウトの発生以前に、OSがそのMIHタイムアウトを次の時間延長により延長することを可能にしなければならない。潜在I/O操作故障を宣言するMIHタイムアウトは、常に最後に使用される延長の終了時のタイムアウトに相当する。
【0044】
本発明は、ある所定の1次MIHタイムアウト期間を超過するチャネル・プログラム実行時間を要求するコマンドに対してI/O装置またはそのI/O制御ユニットにおいて、ロング・ビジー状態を使用し得る。
【0045】
複数のOSがI/O装置を共用する環境では、要求OSプログラムが同一装置の使用を要求する別のOSに対するチャネル・サブシステムにより実行される処理を認識しない。その結果、あるOSは別のOSのチャネル・サブシステム内または制御ユニット内で発生しているかもしれない任意のI/O要求のキューイング(待機)に気を止めない。
【0046】
類似のコマンド実行時間を有するコマンド(すなわち多大に異なるコマンド実行時間を有するコマンドが存在しない)を使用する装置を考える場合、理想的な状況は、任意の適切なI/O要求の最悪の場合の実行時間を超過しようとしている任意のキューイングを報告することである。この場合、MIHタイムアウトは、OSから見て最長の期待実行時間よりも多少大きくセットされる。OSがI/O操作が完了した、または過度なキューイングが発生しているとの知らせを受信しなかった場合、OSは割込みが失われたものと見なす。実際のMIHタイムアウトは、通常のコマンドを実行するための最悪の場合の時間の数倍のオーダである。
【0047】
本発明は、I/O要求内のロング・コマンドを処理するためのロング・ビジー・プロトコルを含む。例えば過度なキューイング持続期間など、要求OSから見て、多大に長い処理時間を生じ得る(たとえコマンドがまだ要求装置内で実行されていなくても)非エラー条件が存在する。本発明はOSから見て、任意の持続期間のI/Oコマンドを処理するために使用され得る。より詳細には、本発明は要求OSに要求に対して過度なキューイングが存在する時を知らせ、それによりOSは、MIHタイムアウトを発行されたI/O要求の期待持続期間と時間しきい値との和に調整する。I/Oサブシステムはこの時間しきい値にもとづき過度なキューイングを報告する。過度なキューイングが稀であれば、過度なキューイング条件を報告するオーバヘッドはシステム性能にほとんど影響しない。本発明は、OSが通常のショート・コマンド処理のために比較的短いMIHタイムアウトを使用することを可能にする一方、発生し得る長期間のコマンド処理に対しては、より長いMIHタイムアウトの使用を可能にする。
【0048】
本発明の好適な実施例では、装置操作に対する各I/Oコマンドがコマンドの期待実行時間に従い、ショートとロングの2つのクラスのいずれかに分類される。期待実行時間は、コマンドに対するビジー条件により生じる内部インタバル回復処理時間と、キューイング時間とを含み、ビジー条件が共用I/O装置に対してバックアップされる要求の待機(キューイング)時間を延長する。ディスク・シーク・コマンドなどのショート・コマンドは、通常、数ミリ秒で実行されるのに対してテープ巻き戻しコマンドなどのロング・コマンドは、その実行に数秒乃至数10分を費やす。
【0049】
好適な実施例では、I/O要求(すなわちチャネル・プログラム)の実行に関連して、1次MIHタイムアウト及び2次MIHタイムアウトの2つのMIHタイムアウトが割当てられる。各タイムアウトは、例えばプロセッサが"I/O開始"または"サブチャネル開始"命令を実行するときなど、I/O要求がOSによりチャネル・サブシステムに発行されるとき、開始する。短期間コマンドだけを含む各I/O要求は割当てられた1次MIHタイムアウト期間の間に実行されるものと期待されるのに対して、少なくとも1つの長期間コマンドを有する各I/O要求は割当てられた2次MIHタイムアウト期間の間に実行されるものと期待される。これらのMIHタイムアウト期間が、各I/O装置タイプに対して定義され、従って、これらは装置タイプごとに異なり得る。
【0050】
1次MIHタイムアウト期間は、ほとんどのI/O要求の最長期待実行時間の完了後に終了し、このMIHタイムアウト期間は、任意のこうしたコマンドに対するビジー条件により生じる任意の内部回復処理時間と、キューイング時間とを含む。2次MIH時限(インタバル)は、1つ以上のロング・コマンドを含むI/O要求の実行時間の完了後に終了する。ロング・コマンドは1次MIHタイムアウト期間よりも長く、2次MIHタイムアウト期間よりも短い装置実行時間を有する。
【0051】
本発明はI/O装置に対して新たなI/O信号を提供する。この信号は本明細書では"ロング・ビジー"信号と呼ばれる。本明細書では、装置がI/O要求に対してロング・コマンドを実行しているとき、常に装置はロング・ビジー状態であると定義される。I/O要求に対してロング・コマンドが存在しないとき、装置はロング・ビジー状態と見なされない。別のI/O要求がロング・ビジー状態のI/O装置に提供されるとき、常に装置は"ロング・ビジー"・ステータス情報を有する割込みによりI/O要求を拒絶する。好適な実施例であるS/390 I/Oアーキテクチャでは、これはデバイス制御装置がプロセッサI/Oサブシステムに、"センス・データ"情報と一緒に"ユニット・チェック割込み"信号を送信することにより、通知される。
【0052】
I/Oプログラム内の各I/Oコマンド(任意のI/Oコンピュータ・アーキテクチャにおいて、その使用可能な装置タイプに対して定義される)が、本発明により、"短期間I/Oコマンド"または"長期間I/Oコマンド"のいずれかとして分類され、前者は割当てられた1次MIHタイムアウトの限度内で完了し、後者は1次MIHタイムアウトの満了後、且つ2次MIHタイムアウトの満了以前に完了する。そして、これらの両方のタイムアウト期間はOSがI/Oコマンドを有するI/O要求に対して開始命令を発行するとき、開始する。
【0053】
好適な実施例はS/390アーキテクチャを使用し、そこではI/Oコマンドがチャネル・コマンド・ワード(CCW)により定義される。CCWは、1つ以上のCPUを有する中央プロセッサ・コンプレックスのI/Oサブシステム内のI/Oプロセッサにより解釈され、任意のCPUがI/O要求を開始する。
【0054】
各I/O装置は、その装置が接続されるI/O制御ユニット内に"自己記述データ・ブロック"を記憶される。各装置の自己記述データ・ブロックは、本発明により関連装置に対するコマンドに対して、1次MIH値及び2次MIH値の両方を含むように変更される。更に自己記述データ・ブロックはコマンドの2つのリストを含み、第1のリストは短期間コマンド用であり、第2のリストは長期間コマンド用である。任意の装置の自己記述データ・ブロックは、例えばCPUがコマンド・リストまたは2つのMIHインタバルを獲得するために"構成データ読出し"CCWを実行することにより、任意に獲得され得る。
【0055】
OSがそのオンライン装置(OSがI/O要求を送信可能な装置)を初期化するとき、その装置が実際に存在し、OSに正しく定義されているか否かを判断する確認操作が実行される。この初期化プロセスの一部は各装置に対する自己記述データ・ブロックを獲得し、OSにとって使用可能な物理I/O構成を表すソフトウェア・テーブルの生成を可能にする。装置の自己記述データは任意に1次MIHタイムアウト値及び2次MIHタイムアウト値を含み得る。装置の自己記述データ・ブロックが利用者が明示的に優先MIHタイムアウト値を指定しなかった1次MIHタイムアウト値を含む場合、デフォルト指定の1次MIHタイムアウト値が装置に割当てられる。類似の構成処理がシステム初期化後にオンラインに変更される任意のI/O装置に対しても実行される。
【0056】
より詳細には、各I/O要求はCCWから成る関連チャネル・プログラムを有する。チャネル・プログラムは、それがロング・コマンドを含まない場合、1次MIH時限(インタバル)内に実行を完了すべきである。チャネル・プログラムがロング・コマンドを含む場合、それは2次MIH時限(インタバル)内に完了すべきである。I/O要求が1次MIHタイムアウト期間活動状態であると、OSは装置依存のMIHエグジット(exit)を呼び出し、サブプロセスを実行する。そして、このサブプロセスがチャネル・プログラムを走査し、チャネル・プログラムがロング・コマンドを含むか否かを判断する(装置に関連付けられるロング・コマンド・リスト内に表される)。
【0057】
チャネル・プログラムがロング・コマンドを含まない場合、1次MIHインタバルがI/O要求に対して使用される。チャネル・プログラムが少なくとも1つの実行中のロング・コマンドを含む場合には、2次MIHインタバルがI/O要求に対して使用される。
【0058】
I/O要求がOSにより生成されるとき、MIH時限プロセスが開始される。このプロセスはカウンタを増分して、OSがI/O要求をそのI/Oサブシステムに生成して以来、そのI/O要求に対して経過した総時間を測定する。時限プロセスは、周期的に(例えば指定タイマ割込み信号により)、その現在測定された経過時間と、選択MIHインタバル値(1次または2次MIHタイムアウト期間)とを比較し、選択MIHタイムアウト期間の満了を検出する。タイムアウトとが検出されると、MIH時限プロセスはOSがI/O要求のチャネル・プログラムを終了し、通常の回復プロセスを呼び出すように要求する。
【0059】
従来技術では、ある装置がロング・コマンドを含むI/O要求を実行しているときに第2のOSが同一の装置にI/O要求を生成する場合(これはI/Oキュー上で保留となる)、第2のOSの要求は、未着装置操作完了割込みにより、1次MIHタイムアウト期間の満了が誤って潜在MIHエラー条件を示すまで、待機するように要求される。しかしながら、実際には割込みはまだ提供されていないので未着ではない。
【0060】
しかしながら、本発明によれば、全ての関連OSに送信される"ロング・ビジー"信号により誤ったエラー条件は検出されない。"ロング・ビジー"信号は各OSに、そのOSが装置における適切な操作により停止させられており、I/O割込みが実際には未着でないことを知らせる。従って、OSはハングアップすることなくそのI/O要求の完了を待機する。S/390では、装置が次のコマンドをユニット・チェック割込み及びセンス・データにより拒絶し、"ロング・ビジー"条件が装置において存在することを知らせる。ロング・ビジー条件を確認すると、OSソフトウェアはその内部MIHインタバルを再調整する制御を有し、それにより試行されたI/O要求は別のI/O要求が装置に対して実行可能であることを示すビジー解除ステータスが確認されるまで、OS内にキュー待機される。従って、I/O要求が2次MIH時間よりも長くキューに待機され続け、MIHインタバルが満了する場合、時限制御プロセスがMIHインタバルを再度開始し得る。これは例えば割込みをシミュレートして、I/O要求に対する現MIHタイムアウト測定を終了し、I/O要求の再試行を信号で知らせることにより、そのI/O要求に対してタイムアウト測定を最初から開始することによる。これらの再試行は、システム内における装置エラー回復プロシジャからのカウント制御による。
【0061】
従って、装置はI/O要求に対してチャネル・プログラムの実行を開始するとき、ビジー状態に置かれ、ロング・コマンドに対しては、ロング・ビジー状態に置かれる。ロング・ビジー状態は要求が完了するまで継続する。装置におけるビジー/ロング・ビジー状態は関連するI/O要求が成功裡に完了するとき、終了する。
【0062】
1次及び2次MIHインタバルは、I/O要求が装置おいて実行されるとき、要求元OSにより使用される。ロング・ビジー信号はMIHタイムアウト期間(インタバル)の延長(以前に使用されていない)を可能にする。
【0063】
本発明の別の目的は、システムを単一のOSの下で操作することであり、このOSは、まだ完了していない現要求と次の要求とのオーバラップを可能にし、未着割込み信号の誤ったMIHエラー指示を回避する。
【0064】
ロング・コマンドは続く連鎖コマンドを有さず、時に"非同期即時コマンド"として参照される。そのビジー状態は、要求装置が要求操作を完了するまで、要求装置またはその制御ユニットにおいて、非常に長い時間維持される。
【0065】
本発明は、たとえコマンドが関連装置において実際に操作を完了していない場合でも(また、その完了割込みが要求元OSに送信されるとき、装置操作でさえ開始していないかもしれない)、ロング・ビジー信号がI/O制御ユニットにより提供されるとき、即時完了割込みを提供することにより、I/O制御ユニット内における要求オーバラップ問題を解決する。これはI/O要求を処理する責任をそのOSにシフトし、I/Oサブシステムをその要求の処理から解放する。これはI/O制御ユニット(CU)が"非同期即時コマンド"のCU受諾に応答して、"即時"割込み信号をOSの中央プロセッサ・コンプレックスに送信することにより達成され得る。ここで"即時"とは、コマンドが制御ユニットにおいて受諾されるときに、"完了割込み"が中央プロセッサ・コンプレックスに送信されることを意味する。その時、装置がそのコマンドの実行を開始している必要はない。後に装置が実際にコマンドを完了するときには割込み信号は提供されない。"ロング・ビジー"状態は、ロング・コマンドに対する全ての操作が要求装置により完了されるまでCUにおいて継続する。OSは即時割込みを受信すると、即時ロング・コマンドに対する責任を請け負う。
【0066】
装置のロング・ビジー状態は、OSが任意の時点にテスト命令をCUに発行することによりテストされ、OSは装置に対してロング・ビジー状態が存在する場合、その装置への別の要求の発行を遅延したいか否かなどを判断する。従って、本発明に従う、装置に対する"ロング・ビジー"信号と、OSへの"即時"割込み信号との組み合わせは、装置完了割込みがCUからOSに送信されるのを待機する間に、MIHタイムアウトを有した従来のMIHシステムで遭遇したような、ロング・ビジー・コマンドに対する誤ったMIH指示の発生を防止する。従って、制御ユニットが任意の既存のOSによりテストされ、関連装置を操作するための別のI/O要求を発行する以前にその装置の可用性が判断される。
【0067】
【発明の実施の形態】
好適な実施例の環境は、IBMのMVS/ESA(エンタプライズ・システム・アーキテクチャ)及びIBM3590テープ記憶装置を含むものとして述べられる。当業者には、好適な実施例としてここで述べられる方法が、本発明の範囲から逸脱すること無しに、他のオペレーティング・システム及びコンピュータ・アーキテクチャ・プラットフォームにも適用され得ることが理解されよう。
【0068】
装置自己記述拡張:
好適な実施例をサポートする装置は、前述の構成データ読出しコマンドを使用するとき、次のように自己記述データに含まれる2つの新たなフィールドを返却する。
【0069】
未着割込みハンドラ1次タイムアウト(MIHPTO):
ワード1のバイト2(603)は、制御ユニットの推奨"1次MIHタイムアウト・インタバル"を指定する値を含み、この値は装置に対して未着割込みハンドラ・タイムアウトをセットするために使用される。このタイムアウトは未着割込みハンドラ2次タイムアウトに対する値がセットされない場合、ビジーまたはチャネル・コマンド再試行ステータスの提示の結果として、チャネル・プログラムが継続すると期待される最長時間であり、任意の装置回復プロセス及び任意のキューイング時間を考慮する。2次MIHタイムアウトが指定される場合には、この時間はビジーまたはチャネル・コマンド再試行ステータスの提示の結果として、チャネル・プログラム(モデル依存型のロング・コマンドを含まない)が費やすと期待される最長時間であり、任意の装置回復プロセス及び任意のキューイング時間を考慮する。
【0070】
1次MIHタイムアウト・インタバル値は、1次MIHタイムアウト・インタバル・フィールド内で指定される仮数及び指数から獲得される、底10の値である。この値を含む1次MIHタイムアウト・フィールドは、図16に示される形式(604)を有する。
【0071】
仮数が0よりも大きい場合、ワード1のバイト2のビット0乃至1(指数)は、符号無し2進整数を含み、これは0よりも大きい1次MIHタイムアウト値の指数に相当する。仮数が0の場合、1次MIHタイムアウト値として何も値が指定されず、ワード1のバイト2のビット0乃至1(指数)は意味を有さない。
【0072】
ワード1のバイト2のビット2乃至7は符号無し2進整数を含み、これは1次MIHタイムアウト値の仮数に相当する。このフィールドが0を含む場合、1次MIHタイムアウト・インタバルとして何も値が指定されない。
【0073】
指数フィールドは、図17に示されるように復号される。
【0074】
2次MIHタイムアウト(MIHSTO):
ワード1のバイト3(602)は、装置に対するプログラムの2次MIHタイムアウト・インタバルに対する、制御ユニットの推奨値を指定する値を含む。MIHSTO値は、
装置依存のロング・コマンドに対して形成される、任意の長い暗黙の忠誠の最大期待持続期間、または
装置依存のロング・ビジー条件の最大期待持続期間
の大きい方に相当する。
【0075】
MIHSTO値は、ロング・ビジー条件の最大期待持続期間、またはモデル依存のロング・コマンドを含むチャネル・プログラムの最長期待実行時間であり、、ビジーまたはチャネル・コマンド再試行ステータスの結果生じる、あらゆる装置回復機構及び任意のキューイング時間を考慮する。
【0076】
2次MIHタイムアウト値は、2次MIHタイムアウト・フィールド内で指定される仮数及び指数にもとづく、底10の値である。
【0077】
2次MIHタイムアウト・フィールドは、図16に示される形式を有する。
【0078】
仮数が0より大きい場合、ワード1のバイト3のビット0乃至1(指数)は、符号無し2進整数を含み、これは0よりも大きい2次MIHタイムアウト値の指数に相当する。仮数が0の場合、2次MIHタイムアウト・インタバルとして何も値が指定されず、ワード1のバイト3のビット0乃至1(指数)は意味を有さない。
【0079】
ワード1のバイト3のビット2乃至7は符号無し2進整数を含み、これは2次MIHタイムアウト値の仮数に相当する。このフィールドが0を含む場合、2次MIHタイムアウト・インタバルとして何も値が指定されない。
【0080】
指数フィールドは、図17に示されるように復号される。
【0081】
ロング・ビジー・プロトコル:
"キューイング期間の制限"の項目で述べたプロセスは、次のようである。
【0082】
ここで使用される方法が図12乃至図13に示され、その変形が図11に示される。本方法は各チャネル・アダプタに対してCU内に組み込まれるCUタイマを使用する。各CUタイマはそれぞれのチャネル・アダプタにより受信されるI/O要求のキューイング時間、すなわちI/O要求が最初にチャネル・アダプタにより受信されてから、要求装置が要求の処理を開始するまでの時間を測定する。CUタイマは初期には0にセットされ、始動されると経過時間を測定し始める。制御ユニット・タイマの経過時間が"しきい値"を超過する場合、CUタイムアウトが制御ユニットにより検出される。このしきい値はI/O要求をモニタしているOSソフトウェアにより現在使用されているMIHタイムアウト値よりも、幾分小さく定義される。ここでの概念は、制御ユニットが活動状態からロング・ビジー(LB)状態に遷移できるように時間設定することである。
【0083】
各チャネル・アダプタは、要求装置が要求に対するI/O操作の開始を許可される以前に要求装置に関連付けられるロックに対して、アトミック・"テスト及びセット"操作を実行する。テスト及びセット操作が成功の場合(すなわち要求が装置のロックを獲得する)、I/O要求が装置により受諾され処理される。この要求は装置に対する1つ以上のI/Oコマンドを含み得る。テスト及びセット操作が不成功の場合にはI/O要求はビジー指示を提供され、CUタイマが始動される。
【0084】
CUタイマは、要求チャネル・アダプタが成功裡に要求装置に対してロックを獲得するときリセットされる。なぜなら、I/O要求の受諾は要求のキューイング時間の終了を示すからである。装置によるI/O要求の完了時、他のチャネル・アダプタは、ロックがリセットされ、装置が再度使用可能であることを信号で知らされる。ビジー指示を提供され、タイムアウトを経験していない他のチャネル・アダプタにとって、この信号は"ビジー解除"指示を提供し、これがチャネル・サブシステムに、再度I/O要求をこれらのチャネル・アダプタの各々に発行するように指示する。CUタイマは各チャネル・アダプタに対して走行し続ける。なぜなら、I/O要求の再発行が再度装置ロックを獲得し損ね、別のビジー指示及びキューイング時間の継続を生じ得るからである。
【0085】
万一CUアダプタしきい値タイムアウトが発生する場合、チャネル・アダプタはI/O要求が次に受信されるとき、ユニット・チェック指示をチャネルに知らせるように条件付けられる。タイムアウトが"ビジー"指示と"ビジー解除"指示との間に発生する場合には、"ビジー解除"指示がチャネル・サブシステムに信号で知らされ、チャネル・サブシステムは自身のキューに待機されているI/O要求を再発行する。"ユニット・チェック"指示はOSソフトウェアに提供され、"センス"・データを伴う。センス・データはOSソフトウェアに制御ユニットがまだ機能状態であるが、装置が"ロング・ビジー状態"である(すなわち、装置が他のホストからのI/O操作を処理するのに多忙であるため、このI/O要求に応答せず、これらの操作がこのI/O要求に対する最大キューイング時間を超過した)ことを通知する。この指示に対する通常のOSソフトウェア応答は、次に装置ロックが解除されるときにチャネル・パスにより提供される"ロング・ビジー解除(no longer long busy)"指示を待機することである。
【0086】
議論を正当化する幾つかの実施の複雑性が存在する。サブ項目"システム環境"で述べたマルチパス・システムはビジー指示が受信されるとき、使用可能なチャネル・パスのセットを通じてI/O要求を再試行する傾向がある(少なくとも所与のホストに関連付けられるチャネル・パスのセットが、グループとして調整されない特定の操作モードにおいて)。2つ以上のチャネル・アダプタがビジー指示を送信して終了し、ビジー解除指示を提供するように準備され得る。結果のビジー解除指示が提供されるとき、チャネル・サブシステムは使用可能なパスの1つを選択し、I/O要求を再駆動する。I/Oがチャネル・サブシステムにおいて終了され、再発行されない場合も存在する。
【0087】
ソフトウェア・タイムアウト値:
前述したように、本発明では受信ビジー指示により、ロング・ビジー・タイムアウトの期間キューに待機される所与のI/O要求が再駆動され、続いてソフトウェアにとって認識可能な"ユニット・チェック"指示を提供される。ソフトウェアは次に、所与のI/O要求がその実行時間とロング・ビジー・タイムアウトとの和により提供される時限内に、またはロング・ビジー指示が受信されるまでに完了することを期待する。
【0088】
更に、装置のロング・ビジー・タイムアウトがその制限時間に達せずに解放されるとき、"ロング・ビジー解除"指示が信号で知らされるので、"ロング・ビジー"指示の受信と"ロング・ビジー解除"指示の受信の間の時限が、任意の所与のI/O要求の最悪の場合の実行時間により制限される。所与の装置に対して決定されるように、このタイムアウト値は"ロング・ビジー解除"指示が喪失されないことを保証するために使用される。I/O要求をキュー待機したチャネル・パスと、ロング・コマンドを実行しているチャネル・パスとの関係が図14に示される。
【0089】
MIHタイムアウトに対するコマンド実行時間の影響を考慮するために、I/O要求に対したチャネル・プログラムを構成するコマンドがロングとショートの2つのクラスに分けられる(理論的には、コマンド分類は、3つ以上の実行時間クラス(例えばショート、中間及びロングなど)を提供することにより、実行され得るが、好適な実施例では2つのクラスが使用される)。OSソフトウェアは現I/O要求におけるコマンドを分析し、そのチャネル・プログラムがロング・コマンドを含むか否かを判断し、I/O要求に対してロング・コマンドが見い出されない場合には、短いMIHタイムアウト値である1次MIHタイムアウト(MIHPTO)値を使用する。I/O要求に対して1つ以上のロング・コマンドがチャネル・プログラム内に見い出される場合には、長いMIHタイムアウト値である2次MIHタイムアウト(MIHSTO)が使用される。
【0090】
このように、I/O要求がショート要求(ロング・コマンドを含まないチャネル・プログラムを有するI/O要求)、またはロング要求(少なくとも1つのロング・コマンドを含むチャネル・プログラムを有するI/O要求)のいずれかに分類され得る。
【0091】
1次MIHタイムアウト(MIHPTO)値は、ロング・コマンドを含まない通常のI/O要求に対して期待される実行時間として決定され得る。2次MIHタイムアウト(MIHSTO)値は、最長のコマンドの実行時間と、ロング・コマンドを含むI/O要求の名目チャネル・プログラムにおける最悪の場合の実行時間との和として決定され得る。
【0092】
OSソフトウェアは、1)ショートI/O要求の完了指示、または2)装置が別の要求のロング・コマンドを実行するのに多忙になったことを示すロング・ビジー指示のいずれかを示す割込みを受信する以前にMIHPTOが経過する場合、ショートI/O要求に対する未着割込みを検出する。ロング・ビジー指示が受信される場合、OSソフトウェアはI/O要求をキューに待機し、装置から"ロング・ビジー解除"指示を知らせる割込みの受信を待機する。その後、OSソフトウェアはその装置にI/O要求を再発行する。
【0093】
ロングI/O要求に対してOSソフトウェアは、MIHSTOがそのロングI/O要求の完了を示す任意の割込みが受信される以前に経過する場合、装置からの未着割込みを検出する。
【0094】
OSソフトウェアによるロング・ビジー指示の受信の後、OSソフトウェアは、MIHSTOが任意の"ロング・ビジー解除"指示を受信する以前に経過する場合、未着割込みを検出する。
【0095】
システム装置初期化:
図1のステップ104は、装置初期化プロセスを表し、これは図2に詳細に示される。このプロセスはオペレーティング・システムにオンライン接続されるように定義される各装置に対してシステム初期化プロセスを実行する。装置初期化プロセスが図2のステップ201で呼び出され、ステップ211で、無害なI/Oコマンドにより、装置への各使用可能なパスをテストすることにより装置(図1に示される)が動作状態であることを確認する(ステップ202)。テープ・ドライブの場合には、ノーオペレーション(NOP)・チャネル・コマンドが発行される。作動可能なパスがステップ203で見い出されない場合、装置はオフラインとマークされ(ステップ208)、処理は次の装置へと継続する(ステップ104)。装置に対して少なくとも1つの作動状態のパスが見い出される場合(ステップ203)、(現ESA/390コンピュータ・アーキテクチャでは、)センスidI/Oコマンドが発行され(ステップ212)、装置に対するコマンド情報ワード(CIW)が検索される(ステップ204)。コマンド情報ワードはプログラムが装置の自己記述データを検索することを可能にするチャネル・コマンドを識別する。装置への各作動状態のパスに対して(ステップ205)、構成データ読出しコマンド(RCD)が発行され(ステップ213)、それにより装置構成データ記録(CDR)が検索されて、OS構成データ・テーブル(CDT)に追加される(ステップ215)。
【0096】
図15は、CDRに含まれる装置1次MIHタイムアウト値(603)及び装置2次MIHタイムアウト値(602)を示す。
【0097】
図2において、装置の自己記述データがOS内のCDTに配置されると、装置依存の初期化プロシジャがステップ206で呼び出され、システム制御ブロックを装置が使用され得る方法に関する情報により初期化する。装置初期化プロセスの間にステップ207によりエラーが見い出されない場合、装置はステップ209でオンライン且つ使用可能とマークされる。ステップ207でエラーが見い出される場合には、装置初期化プロセスはステップ208で装置をオフラインとマークし、装置はエラーが修理されるまでアプリケーションにより使用され得ない。
【0098】
図1において、ステップ104で全ての装置が確認され、装置初期化プロセスが完了すると、ステップ105でMIH初期化が開始する。MIH初期化は最初、システム・プログラマによりSYS1.PARMLIBデータセット内に指定されるカストマイズ・データ(メンバIECIOSxx)の読出しを含む(102)。このカストマイズ・データは、利用者が特定のI/O装置に課せられるように望むMIHタイムアウト値を含む。しかしながら、このカストマイズ・データは任意選択である。なぜなら、システムによりサポートされる全ての装置タイプに対して固定のMIHPTO及びMIHSTOタイムアウト・デフォルト指定値が存在するからである。ステップ106で、IECIOSxxメンバからのテキスト・レコードが、DEVブロックと呼ばれる内部テキスト・レコードに変換される。このステップはIECIOSxx内に作成された各装置MIH値に対して1DEVブロックを生成し、これらが連鎖されて、MIH処理作業領域からアンカ(anchored)される(ステップ113)。システム初期化が進み、全てのシステム・サービスが使用可能になるとき、MIH初期化はステップ107において継続し、ステップ114で各DEVブロックを処理して、利用者により指定されるMIHタイムアウトを推奨するために必要な内部データ構造を生成する。
【0099】
利用者の全ての指定時間インタバルが、システム初期化ステップ107において処理された後、MIHタイムアウト値が利用者により変更されなかった装置は、ステップ108で、デフォルト指定の1次MIHタイムアウト値により処理される。この処理は、装置を表すDEVブロックを生成するステップ115、及びそれらをステップ114に入力するステップを含み、ステップ114がDEVブロックを利用者入力により処理する。
【0100】
MIHタイムアウト値を有するこれらのDEVブロックを生成するプロセスの詳細が図3乃至図4に示される。システム初期化の間、または後述の装置変更プロセスからステップ301で装置のMIHインタバル処理に入力する。ステップ302は装置ブロックをキューに待機し、そのアクセスを装置に対するMIH処理を変更する他のMVSコマンドから生じる他のMIH処理に対して直列化する。こうしたコマンドには、例えばSET IOS=xx及びSETIOS MIHなどが含まれる。システム・エンキューが獲得されると、システム内の各装置が調査され(ステップ303)、既に導入がIECIOSxx102内にMIHインタバルを指定したか否かを判断する。利用者が既にインタバルを指定している場合(ステップ311)、処理は次の装置に移行する(ステップ304)。しかしながら、利用者がMIHインタバルを指定していない場合には、その装置に対して、構成データ・テーブル(112)からMIH1次タイムアウト値が検索される(ステップ313)。MIH1次タイムアウト値が0でない場合、装置を表すDEVブロックが生成される(ステップ315)。次にDEVブロックがDEVブロックの大域キュー上にアンカされ(ステップ316)、処理はシステム内の次の装置に移行する(ステップ304)。システム内の全ての装置が処理されると、DEVブロックが生成されたか否かがチェックされる(ステップ305)。DEVブロックが生成されていない場合、処理はMIHエンキューをデキューすることにより解放し(ステップ309)、制御を呼び出し元に戻して終了する。
【0101】
しかしながら、ステップ302でDEVブロックがキュー待機されるとき、それらは最初に全てのメッセージ処理をスキップするためのフラグをセットすることにより処理される(ステップ306)。メッセージ処理は、これらのMIH変更が明示的な利用者コマンドに由来しないのでスキップされる。次に、MIH初期化プロセス(IOSRMIHI)がステップ312で呼び出され、利用者が指定したMIHインタバルが処理されるのと同様にキュー待機されるDEVブロックを処理する(ステップ318)。IOSRMIHIが処理を完了すると、メッセージ処理が再度イネーブルされ(ステップ308)、MIHエンキューが解放され(ステップ309)、制御が呼び出し側に戻される(ステップ310)。
【0102】
本発明によれば、MIHタイムアウト値(MIHPTO及びMIHSTO)が一意的に各装置に割当てられる。OSのデフォルト値以外の値が一般に使用されるものと期待される。OSがサポートできるより多い固有MIHタイムアウト値が、装置に対して使用される場合(MVSは256の固有MIHタイムアウト値をサポートできる)、装置を処理するための特殊処理が必要となる。MVSでは、もはやこれ以上の固有MIH走査インタバルが使用可能でない場合(ステップ321)、MVSは装置により要求される値よりも大きな最小の有効インタバルを割当てる(ステップ322)。このことは、ほとんどの応答時間を装置故障の検出に当てる一方でI/O操作が早まって終了されないように保証する。DEVブロックに含まれる1次MIHタイムアウト値よりも大きなインタバルが使用可能でない場合、装置クラスに対するデフォルト指定のMIH時間が使用される。
【0103】
システム初期化が完了すると(ステップ109)、新たな装置を追加することにより、または単にオフライン装置をオンラインにするMVS装置変更コマンドを発行することにより(ステップ117)、システムは構成テーブルを変更する。オフライン装置がオンラインにされるとき、常にそれらはシステム初期化の間に実行された図2と同一の装置初期化プロセス(図1の201及び図2の全て)を実行する。装置初期化プロセスの実行の後、DEVブロックが生成され、それらがシステム初期化の間に処理されたのと同様に処理される(図1)。
【0104】
オペレーティング・システムが初期化され、ジョブがシステム上で実行を開始すると、I/O要求がその実行のために、OSによりそのI/Oスーパバイザに発行され、前記米国特許第5388254号で述べられるタイプの未着割込みハンドラ・サブコンポーネントにより時間設定される。
【0105】
本発明を実現する各装置に対して3つの新たなフィールドが、オペレーティング・システムの内部表現に追加される。
【0106】
ロング・ビジー標識:
これは装置に対する最後のI/O要求が、ロング・ビジー指示(センス・データを伴うユニット・チェック)に遭遇したことを示すビットである。ロング・ビジーは装置からの信号であり、装置がロング・コマンドを含むコマンド連鎖を実行しているとき、またはサブシステムが長い時間を費やす処理状態に入り、その状態がサブシステムがビジーの間、あらゆるコマンドを受諾するのを阻害するとき、発行される。
【0107】
LBREDRIVE標識:
これはロング・ビジー状態において、経過時間がMIHSTO値を超過した後、I/O要求がOSにより装置に再発行されたことを示すビットである。
【0108】
累積MIH時間:
これは装置がロング・ビジー状態にある総時間を表す32ビット・フィールドである(この経過時間は、ロング・ビジー標識が装置に対してセットされるとき、開始する)。
【0109】
OS内では、1次MIHインタバルが活動状態のまたはキュー待機中のI/O要求に対して満了するとき(累積時間>MIHPTO)、OSは装置がMIH回復の資格があると見なし、図5に示される装置依存のMIHエグジット処理にエグジットする。このMIHエグジットには1次インタバルが満了した後、ステップ401で入る。ステップ402は、I/O要求が装置において保留になる総経過時間を累算する。ステップ403は、装置がロング・ビジー状態(I/O要求がキュー待機状態であり、活動状態でない)で示されているか否かをテストし、次に総累積時間が装置のMIHSTO時間と比較される(ステップ409)。MIHSTO時間を超過すると、ステップ410はLBREDRIVEビットをオンし、MIHが要求を再駆動する処理に入ったことを示す。ステップ410はMIHに復帰し、MIHはステップ411で要求に対する総時間を、エラー記録としてシステム・エラー・ログに記録した後、キューに待機中の要求を再始動する。
【0110】
総累積時間がMIHSTOタイムアウト・インタバルを超過しなかった場合、ステップ415が実行され、エラー回復動作をリセットし、I/O要求を再発行のために再度キューに待機し、MIHプロセスに復帰する。
【0111】
ステップ403が、装置がロング・ビジー状態でないことを見い出し、ステップ404が、活動状態のチャネル・プログラムを見い出す場合、ステップ405がチャネル・プログラムを走査し、それが任意のロング・コマンドを含むか否かを判断する。次にIBM3590テープ装置を制御するロング・コマンドの例を示す。
REWIND(巻き戻し)、FORWARD SPACE FILE(スペース・ファイル先送り)、BACKWARD SPACE FILE(スペース・ファイル逆送り)、LOCATE BLOCK(ブロック捜索)、FORMAT(フォーマット)、ERASE(消去)、DATA SECURITY ERASE(データ・セキュリティ消去)、UNLOAD(アンロード)、LOAD(ロード)、MOVE(転送)
【0112】
ロング・コマンドがI/O要求のプログラム内で見い出されない場合、ステップ412は通常のMIH回復を要求する。しかしながら、ロング・コマンドがステップ406で見い出される場合には、総累積時間がMIHSTO値と比較される。ステップ407は、累積時間がMIHSTO値を超過するか否かを判断する。超過しない場合、ステップ413は、MIHプロセッサがMIH装置依存エグジットに復帰する以前に、別のMIHインタバル(MIHPTO)を待機すべきことを示す。MIHプロセッサが別のMIHインタバルの経過を待機している間にチャネル・プログラムが完了する場合、このI/Oのために、MIH装置依存エグジットに再入力することはない。しかしながら、ステップ407が総累積時間がMIHSTOを超過しないことを見い出すと、ステップ414は総累積時間を0にリセットし、ロング・ビジー・フラグをリセットし、総累積時間をエラー回復記録に保管する。そして、MIHプロセスに再入力する。
【0113】
活動状態のI/O要求が完了するとき、図6または図7に示されるプロセスが、総累積時間を0にリセットし、装置に対する任意のロング・ビジー指示をリセットし、更にLBREDRIVEフラグをリセットするために使用される。図6は装置依存のセンス終了(EOS:End-of-Sence)エグジットを表し、これはI/O要求を完了する装置に対してユニット・チェックも存在するとき、装置終了信号を処理する。このプロセスではセンス・データが読出された後、要求に対する総累積時間を0にリセットするためにステップ421が呼び出される。ステップ422は、センス信号に関連付けられる"ロング・ビジー"指示の存在をテストする。ステップ422がロング・ビジー・センス・データを見い出さない場合、ステップ423が装置に対するロング・ビジー指示をリセットし、LBREDRIVEフラグをリセットする。ステップ422がロング・ビジー・センス・データを見い出した場合、またはステップ423の後、OS内のMIH操作を制御するMIHルーチンを含むOS内のIOS(I/Oシステム)ソフトウェアへの復帰が実行される。
【0114】
MIHプロセス内の装置依存トラップ・エグジット・ルーチン(430)が、図7に示される。このトラップ制御プロセスは装置が完了し、ユニット・チェック無しに装置終了信号を提供するとき(ステップ434)、制御を獲得する。次にステップ431が、要求に対する総累積時間を0にリセットし、ステップ423が装置に対する任意のロング・ビジー指示をリセットし、LBREDRIVEフラグをリセットし、ステップ433でIOSに復帰する。
【0115】
装置に対して非送信請求割込み(その送信が要求されたものでないことをいう)が発生するとき、図8に示されるステップ440で、装置依存非送信請求割込みエグジット・コードに入る。次にステップ441で、割込みのステータスが装置状態の変化が発生したことを示す場合、ステップ422がロング・ビジー標識をリセットする。
【0116】
I/O要求がエラーに遭遇するとき、図9に示される装置依存エラー回復プロシジャ(装置ERP)450が呼び出される。ステップ451は、I/Oエラーがロング・ビジー条件により生じたか否かを判断し、そうでない場合、ステップ452がI/O操作の再試行を含み得る従来のエラー回復プロセスを実行し、ステップ470でIOSに復帰する。しかしながら、ステップ451がエラーがロング・ビジー条件によることを見い出すと、ステップ453でたとえ装置が準備完了状態でなくても、I/O要求が実行される必要があるか否かがチェックされる(IOSIONRD)。ERPを満足するために、I/O要求が実行される必要がない場合、ステップ454がI/O要求が永久エラーとマークし、ジョブがステップ470で通知される。装置が準備完了状態でないときにI/O要求が実行を要求しない場合、ステップ455でLBREDRIVEビットがチェックされ、要求がMIHから再駆動されたか否かを確認する。要求がMIHから再駆動され、まだロング・ビジー状態の場合、装置は永久エラーと見なされる。ステップ458及び459で、ロング・ビジー標識及びLBREDRIVEフラグ、更に総累積時間がリセットされる。次にステップ460で、装置が強制的にオフラインにされ、全ての新たなI/O要求が永久I/Oエラーにより拒絶されることを示すようにマークされる。最後にステップ461で、現I/O要求に永久エラーがマークされ、ジョブがステップ470で通知される。ステップ455でLBREDRIVEフラグがオンでなかった場合、ステップ456が装置をロング・ビジー状態であるものとしてマークする。従って、ステップ457による失敗チャネル・プログラムの再試行がIOSの内部にキュー待機されて、ロング・ビジーが取り下げられるのを待機し(図8)、上述のように、総ロング・ビジー時間がMIHによりモニタされる。
【0117】
以上から、本発明の趣旨から逸脱すること無しに、様々な変更が可能であることが理解されよう。従って、本明細書の記述は本発明の一実施例として取り上げられただけであり、本発明の範囲を制限するものではない。
【0118】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0119】
(1) 入出力制御ユニットをホスト・システム接続するために入出力制御ユニット内に配置され複数のホスト・システム・インタフェース・アダプタと協動する入出力制御ユニット内のサポート制御であって、前記ホスト・システムが入出力要求を前記制御ユニットに送信し、そしてタイムアウトの検出により、前記制御ユニットに接続され要求入出力装置が要求入出力操作の実行に失敗したを判断するものにおいて、前記制御ユニットが、
入出力操作のために前記入出力装置のいずれかの前記インタフェース・アダプタへの接続を制御するために、前記制御ユニットに接続され入出力装置に夫々関連付けられ複数の装置ロック・ビットと、
ビジー・ビット、前記インタフェース・アダプタの各々に関連付けられしきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するため記憶されたしきい値タイムアウト値と、
前記インタフェース・アダプタにより受信され現入出力要求により要求され前記入出力装置に関連付けられ使前記ロック・ビットのうち使用可能な1つをロック状態にセットしようとする、前記インタフェース・アダプタの各々のためのビット・テスト制御であって、前記現入出力要求が同時に前記関連付けられた入出力装置の使用を獲得しようとしている、前記インタフェース・アダプタのうちの任意の他のものにより受信され現入出力要求と前記ロック状態を競合し得る、前記ビット・テスト制御と、
前記関連付けられた入出力装置を使用する現入出力要求のために前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の入出力要求が前記インタフェース・アダプタにより受信されとき、前記関連付けられたビジー・ビットをビジー状態にセットする、前記インタフェース・アダプタに関連付けられビジー・ビット制御と、
前記関連付けられたロック・ビットが前記ロック状態にセットされとき、前記インタフェース・アダプタに関連付けられ前記タイマをリセットし、及び開始するタイマ開始制御と、
前記ロック状態が前記ロック・ビットに対して存在する間に関連付けられたタイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに関連付けられ前記制御ユニット内において、前記インタフェース・アダプタへのロング・ビジー信号を生成するロング・ビジー制御であって、前記ロング・ビジー制御が前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記ロング・ビジー制御と、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ロング・ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記操作完了制御と、
を含む、入出力制御ユニット。
(2) 前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記インタフェース・アダプタへの正規ビジー信号を生成するための、各前記インタフェース・アダプタに関連付けられ前記制御ユニット内の正規ビジー制御と、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、前記装置ロックがアンロック状態にリセットされるとき、正規ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられ操作完了制御であって、前記操作完了制御が、前記ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示す、前記操作完了制御と、
を含む、(1)記載の入出力制御ユニット。
(3) 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す信号及びステータス情報生成し、前記ロング・ビジー信号に応答して前記インタフェース・アダプタが、前記入出力装置が使用不能であることを外部ソフトウェアに伝達し、前記外部ソフトウェアに未着割込みハンドラ・タイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに、前記入出力装置による前記現入出力要求の処理における操作故障を示し得る誤ったタイムアウト検出を防止するようにし、
前記しきい値タイムアウトの超過後、前記ロック・ビットが前記ロック状態に維持され、前記入出力装置が前記現入出力要求に対する操作を継続する、
(1)記載の入出力制御ユニット。
(4) 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号表す割込み信号及びステータス情報生成し、前記インタフェース・アダプタが前記待機中の入出力要求を前記インタフェース・アダプタに送信した外部ソフトウェアに、ロング・ビジー割込み信号を伝達することを可能にし、前記外部ソフトウェアに前記制御ユニットがもはや前記待機中の入出力要求を処理する責任を負わないことを知らせ、前記外部ソフトウェアが前記待機中の入出力要求に対して任意の未着割込みハンドラ・タイムアウト操作を停止することを可能にし、前記要求入出力装置が将来使用可能になるとき、前記入出力要求が再度前記制御ユニットに提供されるようにし、
前記ロック・ビット及び前記関連付けられた入出力装置が前記インタフェース・アダプタにおいて、前記現入出力要求に対して操作を継続する、
(1)記載の入出力制御ユニット。
(5) 前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせ、
前記制御ユニットが装置終了割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を外部ソフトウェアに伝達することを可能にし、次の前記入出力要求が前記制御ユニットに提供されて、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、
(2)記載の入出力制御ユニット。
(6) 前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を不成功裡に完了し、外部ソフトウェアに完了割込みを送信することに失敗し、前記外部ソフトウェアが前記未着割込みハンドラ内で前記延長されたタイムアウトを超過し、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示す、
(2)記載の入出力制御ユニット。
(7) 前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
(4)記載の入出力制御ユニット。
(8) 前記インタフェース・アダプタ制御の各々が、前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第2のしきい値タイムアウト値により置換することにより、前記制御ユニット内で前記関連付けられたタイマによる時限操作を継続し、前記第2のしきい値タイムアウトが外部ソフトウェアに、該ソフトウェア内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避し、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第2のしきい値タイムアウトを超過する時、前記インタフェース・アダプタ制御が割込み信号及びステータス情報を生成し、前記外部ソフトウェアに前記ロング・ビジー信号を延長する必要性を伝達する、
(1)記載の入出力制御ユニット。
(9) 複数のホスト・システムによる入出力装置故障検出をサポートする入出力制御ユニット内の方法であって、前記複数のホスト・システムが前記制御ユニット内の入出力インタフェース・アダプタに接続され、前記制御ユニットが前記ホスト・システムから入出力要求を受信するものにおいて、前記方法が前記制御ユニットから前記ホスト・システムに前記ホスト・システム内で未着割込みタイムアウト検出をサポートする情報を伝達し、前記ホスト・システムが前記制御ユニットに接続される要求入出力装置による操作故障を誤って示すことを防止するものにおいて、
複数のロック・ビットを前記制御ユニットに接続されるそれぞれの前記入出力装置に関連付けるステップであって、前記ロック・ビットが入出力操作に対応して、前記入出力装置の前記インタフェース・アダプタへの接続を制御する、前記関連付けステップと、
各前記インタフェース・アダプタにビジー・ビット、しきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するため記憶されたしきい値タイムアウト値を構成するステップと、
前記複数のインタフェース・アダプタが、前記入出力装置の使用を同時に獲得しようとする現入出力要求に対して前記ロック・ビットの状態をロック状態にセットしようとする競合状態において、前記インタフェース・アダプタにより受信される前記現入出力要求により要求される前記入出力装置に関連付けられ前記ロック・ビットの状態を条件付きでテストするステップと、
前記関連付けられた入出力装置を使用する前記現入出力要求に対して前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記関連付けられたビジー・ビットをビジー状態にセットするステップと、
前記テストされたロック・ビットが前記ロック状態にセットされているとき、前記インタフェース・アダプタに関連付けられ前記タイマをリセットし、及び開始するステップと、
前記ロック状態が前記ロック・ビットに対して存在する間に、前記タイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに対してロング・ビジー信号を生成し、及び前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が前記ロック状態を獲得している現入出力要求に対してビジー状態であることを伝達するステップと、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を前記インタフェース・アダプタから出力し、前記入出力装置が要求入出力操作を完了したことを示すステップと、
を含む、方法。
(10) 前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、正規ビジー信号を前記インタフェース・アダプタに提供するステップと、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、正規ビジー解除信号を生成し、前記ロック・ビットをアンロック状態にリセットし、前記ビジー解除信号を前記インタフェース・アダプタから外部システムに転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示すステップと、
を含む、(9)記載の方法。
(11) 前記ロック状態が存在する間に前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタにより、前記ロング・ビジー信号を表すロング・ビジー信号及びステータス情報を生成するステップであって、前記ロング・ビジー信号に応答して、前記インタフェース・アダプタが前記入出力装置が使用不能であることを前記ホスト・システムに伝達し、前記ホスト・システムに未着割込みハンドラにおけるタイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに前記入出力装置による前記現入出力要求の処理における操作故障を誤って示し得る、前記ホスト・システムによる誤ったタイムアウト検出を防止するステップと、
前記しきい値タイムアウトの超過後、前記ロック状態及び前記現入出力要求に対する前記入出力装置操作を継続するステップと、
を含む、(9)記載の方法。
(12) 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタに対して前記ロング・ビジー割込み信号及びステータス情報を生成するステップであって、前記インタフェース・アダプタが前記ロング・ビジー割込み信号を前記待機中の入出力要求を前記インタフェース・アダプタに送信した前記制御ユニットの外部の前記ホスト・システムに伝達することを可能にし、前記ホスト・システムに前記制御ユニットがもはや前記待機中の入出力要求を処理せず、前記ホスト・システムが前記待機中の入出力要求に対して未着割込みハンドラ・タイムアウト操作を停止すべきであり、前記要求入出力装置が将来使用可能になるとき、前記入出力要求を再度前記制御ユニットに提供すべきことを助言する、前記生成ステップと、
前記ロック・ビットに対する前記ロック状態、及び前記インタフェース・アダプタに関連付けられ前記現入出力要求に対する前記関連付けられた入出力装置の操作を継続するステップと、
を含む、(9)記載の方法。
(13) 前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせるステップと、
装置終了割込み信号及びステータス情報を提供するステップであって、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を前記ホスト・システムに伝達することを可能にし、前記入出力装置に対する次の前記入出力要求が再度前記制御ユニットに提供され、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、前記提供ステップと、
を含む、(10)記載の方法。
(14) 前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を不成功裡に完了するステップであって、
2次タイムアウト操作が2次タイムアウト値を超過し、前記未着割込みハンドラ内において、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示すまで、前記ホスト・システムが前記2次タイムアウト操作を継続する、前記不成功の完了ステップを含む、
(10)記載の方法。
(15) 前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
(12)記載の方法。
(16) 前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第2のしきい値タイムアウト値により置換することにより、前記関連付けられたタイマにより前記インタフェース・アダプタに対して時限操作を継続するステップであって、
前記第2のしきい値タイムアウトにより前記インタフェース・アダプタが前記ホスト・システムに、前記ホスト・システム内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避する、前記継続ステップと、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第2のしきい値タイムアウトを超過する時、割込み信号及びステータス情報を生成し、前記インタフェース・アダプタから前記ホスト・システムに前記ロング・ビジー信号の延長の必要性を伝達する、前記生成ステップと、
を含む、(9)記載の方法。
(17) 1つ以上のホスト・オペレーティング・システム(OS)と協動する入出力制御ユニット内のサポート制御であって、前記オペレーション・システムが前記制御ユニットに接続される入出力装置による操作を要求する入出力要求を前記制御ユニットに送信するものにおいて、前記制御ユニットが、
前記オペレーション・システムからの前記入出力要求に関連付けられ入出力プログラムに対して現在前記入出力装置により実行されている入出力コマンドを示す命令コード信号と、
前記命令コード信号をテストし、前記コマンドがロング・コマンドか否かを判断するコマンド検出器であって、と、
前記コマンド検出器前記コマンドが前記ロング・コマンドと判断するとき、ロング・ビジー割込み信号を生成する割込み発生器と、
を含み、
前記ロング・ビジー割込み信号をプロセッサに送信して、前記ロング・ビジー割込み信号を前記入出力要求を発行した前記オペレーション・システムに伝達し、前記オペレーション・システムがロング・コマンドが見出されない場合に使用される1次未着割込みハンドラ(MIHタイムアウト期間の終了以前に、前記1次MIHタイムアウト期間をロング・コマンドが見出された場合に使用される2次MIHタイムアウト期間に延長することを可能にし、前記1次MIHタイムアウト期間がタイムアウトにより終了し、潜在入出力装置操作故障を誤って示すことを防止する、入出力制御ユニット。
【図面の簡単な説明】
【図1】各装置に対する初期未着割込みインタバルを確立する、システム初期化及び可変コマンド装置処理の制御フローを示す流れ図である。
【図2】装置依存MIHインタバルの検索を含む、装置確認及び初期化の制御フローを示す流れ図である。
【図3】MIH初期化処理の制御フローを示す流れ図である。
【図4】MIH初期化処理の制御フローを示す流れ図である。
【図5】MIHタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存MIH処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図6】MIHタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存MIH処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図7】MIHタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存MIH処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図8】MIHタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存MIH処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図9】MIHタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存MIH処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図10】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図11】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図12】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図13】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図14】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図15】オペレーティング・システムが、装置の1次MIHタイムアウト・インタバル及び2次MIHタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【図16】オペレーティング・システムが、装置の1次MIHタイムアウト・インタバル及び2次MIHタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【図17】オペレーティング・システムが、装置の1次MIHタイムアウト・インタバル及び2次MIHタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【符号の説明】
112 構成データ・テーブル
430 装置依存トラップ・エグジット・ルーチン510 ホスト
450 装置依存エラー回復プロシジャ(装置ERP)511 中央処理ユニット(CPU)
512 チャネル・サブシステム
513 チャネル・パス
520 I/Oサブシステム
521 制御ユニット
522 共用メモリ
523 "装置nロック・データ"
524 チャネル・アダプタ
530 I/O装置
531 装置パス
530 選択装置
602 装置2次MIHタイムアウト値
603 装置1次MIHタイムアウト値

Claims (17)

  1. 入出力制御ユニットをホスト・システム接続するために入出力制御ユニット内に配置され複数のホスト・システム・インタフェース・アダプタと協動する入出力制御ユニット内のサポート制御であって、前記ホスト・システムが入出力要求を前記制御ユニットに送信し、そしてタイムアウトの検出により、前記制御ユニットに接続され要求入出力装置が要求入出力操作の実行に失敗したを判断するものにおいて、前記制御ユニットが、
    入出力操作のために前記入出力装置のいずれかの前記インタフェース・アダプタへの接続を制御するために、前記制御ユニットに接続され入出力装置に夫々関連付けられ複数の装置ロック・ビットと、
    ビジー・ビット、前記インタフェース・アダプタの各々に関連付けられしきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するため記憶されたしきい値タイムアウト値と、
    前記インタフェース・アダプタにより受信され現入出力要求により要求され前記入出力装置に関連付けられ使前記ロック・ビットのうち使用可能な1つをロック状態にセットしようとする、前記インタフェース・アダプタの各々のためのビット・テスト制御であって、前記現入出力要求が同時に前記関連付けられた入出力装置の使用を獲得しようとしている、前記インタフェース・アダプタのうちの任意の他のものにより受信され現入出力要求と前記ロック状態を競合し得る、前記ビット・テスト制御と、
    前記関連付けられた入出力装置を使用する現入出力要求のために前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の入出力要求が前記インタフェース・アダプタにより受信されとき、前記関連付けられたビジー・ビットをビジー状態にセットする、前記インタフェース・アダプタに関連付けられビジー・ビット制御と、
    前記関連付けられたロック・ビットが前記ロック状態にセットされとき、前記インタフェース・アダプタに関連付けられ前記タイマをリセットし、及び開始するタイマ開始制御と、
    前記ロック状態が前記ロック・ビットに対して存在する間に関連付けられたタイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに関連付けられ前記制御ユニット内において、前記インタフェース・アダプタへのロング・ビジー信号を生成するロング・ビジー制御であって、前記ロング・ビジー制御が前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記ロング・ビジー制御と、
    前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ロング・ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記操作完了制御と、
    を含む、入出力制御ユニット。
  2. 前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記インタフェース・アダプタへの正規ビジー信号を生成するための、各前記インタフェース・アダプタに関連付けられ前記制御ユニット内の正規ビジー制御と、
    前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、前記装置ロックがアンロック状態にリセットされるとき、正規ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられ操作完了制御であって、前記操作完了制御が、前記ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示す、前記操作完了制御と、
    を含む、請求項1記載の入出力制御ユニット。
  3. 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す信号及びステータス情報生成し、前記ロング・ビジー信号に応答して前記インタフェース・アダプタが、前記入出力装置が使用不能であることを外部ソフトウェアに伝達し、前記外部ソフトウェアに未着割込みハンドラ・タイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに、前記入出力装置による前記現入出力要求の処理における操作故障を示し得る誤ったタイムアウト検出を防止するようにし、
    前記しきい値タイムアウトの超過後、前記ロック・ビットが前記ロック状態に維持され、前記入出力装置が前記現入出力要求に対する操作を継続する、
    請求項1記載の入出力制御ユニット。
  4. 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号表す割込み信号及びステータス情報生成し、前記インタフェース・アダプタが前記待機中の入出力要求を前記インタフェース・アダプタに送信した外部ソフトウェアに、ロング・ビジー割込み信号を伝達することを可能にし、前記外部ソフトウェアに前記制御ユニットがもはや前記待機中の入出力要求を処理する責任を負わないことを知らせ、前記外部ソフトウェアが前記待機中の入出力要求に対して任意の未着割込みハンドラ・タイムアウト操作を停止することを可能にし、前記要求入出力装置が将来使用可能になるとき、前記入出力要求が再度前記制御ユニットに提供されるようにし、
    前記ロック・ビット及び前記関連付けられた入出力装置が前記インタフェース・アダプタにおいて、前記現入出力要求に対して操作を継続する、
    請求項1記載の入出力制御ユニット。
  5. 前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせ、
    前記制御ユニットが装置終了割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を外部ソフトウェアに伝達することを可能にし、次の前記入出力要求が前記制御ユニットに提供されて、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、
    請求項2記載の入出力制御ユニット。
  6. 前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を不成功裡に完了し、外部ソフトウェアに完了割込みを送信することに失敗し、前記外部ソフトウェアが前記未着割込みハンドラ内で前記延長されたタイムアウトを超過し、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示す、
    請求項2記載の入出力制御ユニット。
  7. 前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
    請求項4記載の入出力制御ユニット。
  8. 前記インタフェース・アダプタ制御の各々が、前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第2のしきい値タイムアウト値により置換することにより、前記制御ユニット内で前記関連付けられたタイマによる時限操作を継続し、前記第2のしきい値タイムアウトが外部ソフトウェアに、該ソフトウェア内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避し、
    前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第2のしきい値タイムアウトを超過する時、前記インタフェース・アダプタ制御が割込み信号及びステータス情報を生成し、前記外部ソフトウェアに前記ロング・ビジー信号を延長する必要性を伝達する、
    請求項1記載の入出力制御ユニット。
  9. 複数のホスト・システムによる入出力装置故障検出をサポートする入出力制御ユニット内の方法であって、前記複数のホスト・システムが前記制御ユニット内の入出力インタフェース・アダプタに接続され、前記制御ユニットが前記ホスト・システムから入出力要求を受信するものにおいて、前記方法が前記制御ユニットから前記ホスト・システムに前記ホスト・システム内で未着割込みタイムアウト検出をサポートする情報を伝達し、前記ホスト・システムが前記制御ユニットに接続される要求入出力装置による操作故障を誤って示すことを防止するものにおいて、
    複数のロック・ビットを前記制御ユニットに接続されるそれぞれの前記入出力装置に関連付けるステップであって、前記ロック・ビットが入出力操作に対応して、前記入出力装置の前記インタフェース・アダプタへの接続を制御する、前記関連付けステップと、
    各前記インタフェース・アダプタにビジー・ビット、しきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するため記憶されたしきい値タイムアウト値を構成するステップと、
    前記複数のインタフェース・アダプタが、前記入出力装置の使用を同時に獲得しようとする現入出力要求に対して前記ロック・ビットの状態をロック状態にセットしようとする競合状態において、前記インタフェース・アダプタにより受信される前記現入出力要求により要求される前記入出力装置に関連付けられ前記ロック・ビットの状態を条件付きでテストするステップと、
    前記関連付けられた入出力装置を使用する前記現入出力要求に対して前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記関連付けられたビジー・ビットをビジー状態にセットするステップと、
    前記テストされたロック・ビットが前記ロック状態にセットされているとき、前記インタフェース・アダプタに関連付けられ前記タイマをリセットし、及び開始するステップと、
    前記ロック状態が前記ロック・ビットに対して存在する間に、前記タイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに対してロング・ビジー信号を生成し、及び前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が前記ロック状態を獲得している現入出力要求に対してビジー状態であることを伝達するステップと、
    前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を前記インタフェース・アダプタから出力し、前記入出力装置が要求入出力操作を完了したことを示すステップと、
    を含む、方法。
  10. 前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、正規ビジー信号を前記インタフェース・アダプタに提供するステップと、
    前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、正規ビジー解除信号を生成し、前記ロック・ビットをアンロック状態にリセットし、前記ビジー解除信号を前記インタフェース・アダプタから外部システムに転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示すステップと、
    を含む、請求項9記載の方法。
  11. 前記ロック状態が存在する間に前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタにより、前記ロング・ビジー信号を表すロング・ビジー信号及びステータス情報を生成するステップであって、前記ロング・ビジー信号に応答して、前記インタフェース・アダプタが前記入出力装置が使用不能であることを前記ホスト・システムに伝達し、前記ホスト・システムに未着割込みハンドラにおけるタイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに前記入出力装置による前記現入出力要求の処理における操作故障を誤って示し得る、前記ホスト・システムによる誤ったタイムアウト検出を防止するステップと、
    前記しきい値タイムアウトの超過後、前記ロック状態及び前記現入出力要求に対する前記入出力装置操作を継続するステップと、
    を含む、請求項9記載の方法。
  12. 前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタに対して前記ロング・ビジー割込み信号及びステータス情報を生成するステップであって、前記インタフェース・アダプタが前記ロング・ビジー割込み信号を前記待機中の入出力要求を前記インタフェース・アダプタに送信した前記制御ユニットの外部の前記ホスト・システムに伝達することを可能にし、前記ホスト・システムに前記制御ユニットがもはや前記待機中の入出力要求を処理せず、前記ホスト・システムが前記待機中の入出力要求に対して未着割込みハンドラ・タイムアウト操作を停止すべきであり、前記要求入出力装置が将来使用可能になるとき、前記入出力要求を再度前記制御ユニットに提供すべきことを助言する、前記生成ステップと、
    前記ロック・ビットに対する前記ロック状態、及び前記インタフェース・アダプタに関連付けられ前記現入出力要求に対する前記関連付けられた入出力装置の操作を継続するステップと、
    を含む、請求項9記載の方法。
  13. 前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせるステップと、
    装置終了割込み信号及びステータス情報を提供するステップであって、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を前記ホスト・システムに伝達することを可能にし、前記入出力装置に対する次の前記入出力要求が再度前記制御ユニットに提供され、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、前記提供ステップと、
    を含む、請求項10記載の方法。
  14. 前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を不成功裡に完了するステップであって、
    2次タイムアウト操作が2次タイムアウト値を超過し、前記未着割込みハンドラ内において、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示すまで、前記ホスト・システムが前記2次タイムアウト操作を継続する、前記不成功の完了ステップを含む、
    請求項10記載の方法。
  15. 前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
    請求項12記載の方法。
  16. 前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第2のしきい値タイムアウト値により置換することにより、前記関連付けられたタイマにより前記インタフェース・アダプタに対して時限操作を継続するステップであって、
    前記第2のしきい値タイムアウトにより前記インタフェース・アダプタが前記ホスト・システムに、前記ホスト・システム内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避する、前記継続ステップと、
    前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第2のしきい値タイムアウトを超過する時、割込み信号及びステータス情報を生成し、前記インタフェース・アダプタから前記ホスト・システムに前記ロング・ビジー信号の延長の必要性を伝達する、前記生成ステップと、
    を含む、請求項9記載の方法。
  17. 1つ以上のホスト・オペレーティング・システム(OS)と協動する入出力制御ユニット内のサポート制御であって、前記オペレーション・システムが前記制御ユニットに接続される入出力装置による操作を要求する入出力要求を前記制御ユニットに送信するものにおいて、前記制御ユニットが、
    前記オペレーション・システムからの前記入出力要求に関連付けられ入出力プログラムに対して現在前記入出力装置により実行されている入出力コマンドを示す命令コード信号と、
    前記命令コード信号をテストし、前記コマンドがロング・コマンドか否かを判断するコマンド検出器であって、と、
    前記コマンド検出器前記コマンドが前記ロング・コマンドと判断するとき、ロング・ビジー割込み信号を生成する割込み発生器と、
    を含み、
    前記ロング・ビジー割込み信号をプロセッサに送信して、前記ロング・ビジー割込み信号を前記入出力要求を発行した前記オペレーション・システムに伝達し、前記オペレーション・システムがロング・コマンドが見出されない場合に使用される1次未着割込みハンドラ(MIHタイムアウト期間の終了以前に、前記1次MIHタイムアウト期間をロング・コマンドが見出された場合に使用される2次MIHタイムアウト期間に延長することを可能にし、前記1次MIHタイムアウト期間がタイムアウトにより終了し、潜在入出力装置操作故障を誤って示すことを防止する、入出力制御ユニット。
JP07390297A 1996-04-09 1997-03-26 入出力装置操作故障を誤って示すことを防止する入出力制御ユニット及び方法 Expired - Fee Related JP3726931B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/629,702 US5758190A (en) 1996-04-09 1996-04-09 Control unit threshold timeout controls for software missing interrupt handlers in operating systems
US08/629702 1996-04-09

Publications (2)

Publication Number Publication Date
JPH1031631A JPH1031631A (ja) 1998-02-03
JP3726931B2 true JP3726931B2 (ja) 2005-12-14

Family

ID=24524139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07390297A Expired - Fee Related JP3726931B2 (ja) 1996-04-09 1997-03-26 入出力装置操作故障を誤って示すことを防止する入出力制御ユニット及び方法

Country Status (2)

Country Link
US (1) US5758190A (ja)
JP (1) JP3726931B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW459197B (en) * 1997-10-13 2001-10-11 Mustek Systems Inc Print port control device that is able to connect multiple devices and the control method
JP3437083B2 (ja) * 1998-02-23 2003-08-18 富士通株式会社 入出力制御装置およびそのファームウェア更新方法
US6327668B1 (en) * 1998-06-30 2001-12-04 Sun Microsystems, Inc. Determinism in a multiprocessor computer system and monitor and processor therefor
US6484217B1 (en) * 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US6453323B1 (en) 1999-07-12 2002-09-17 International Business Machines Corporation Resolving long-busy conditions for synchronized data sets
US20020178312A1 (en) * 2001-05-24 2002-11-28 Frank Chen Calculator capable of displaying processing status and stopping processing and method of the same
DE102004005621A1 (de) * 2004-02-04 2005-08-25 Behr Gmbh & Co. Kg Vorrichtung zum Austausch von Wärme und Verfahren zur Herstellung einer derartigen Vorrichtung
DE102004024536A1 (de) * 2004-05-18 2005-12-15 Robert Bosch Gmbh Verfahren zum Betrieb eines Systems
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US10311427B2 (en) * 2006-12-29 2019-06-04 Google Technology Holdings LLC Method and system for monitoring secure application execution events during contactless RFID/NFC communication
US8082481B2 (en) * 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US7908403B2 (en) * 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7917813B2 (en) * 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US7840718B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US8176222B2 (en) * 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8196149B2 (en) * 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8312189B2 (en) * 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8095847B2 (en) * 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8108570B2 (en) * 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US7937507B2 (en) * 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7899944B2 (en) * 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US7904605B2 (en) * 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8166206B2 (en) * 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8001298B2 (en) * 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8214562B2 (en) * 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8483095B2 (en) * 2010-11-11 2013-07-09 International Business Machines Corporation Configurable network socket retransmission timeout parameters
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US9697152B1 (en) 2016-01-06 2017-07-04 International Business Machines Corporation I/O processing system including dynamic missing interrupt and input/output detection
GB2573497B (en) * 2018-03-12 2022-03-30 Idex Biometrics Asa Device process scheduling

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4771403A (en) * 1984-11-16 1988-09-13 Allen-Bradley Company, Inc. I/O module with multi-function integrated circuits and an isolation interface for multiplexing data between a main processor and I/O devices
US5003462A (en) * 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
US4974147A (en) * 1988-12-21 1990-11-27 International Business Machines Corporation Programmable quiesce apparatus for retry, recovery and debug
US5257368A (en) * 1991-03-28 1993-10-26 International Business Machines Corp. System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US5257379A (en) * 1991-09-04 1993-10-26 International Business Machines Corporation Establishing synchronization of hardware and software I/O configuration definitions
US5333274A (en) * 1991-10-15 1994-07-26 International Business Machines Corp. Error detection and recovery in a DMA controller
US5307482A (en) * 1992-01-28 1994-04-26 International Business Machines Corp. Computer, non-maskable interrupt trace routine override
US5388254A (en) * 1992-03-27 1995-02-07 International Business Machines Corporation Method and means for limiting duration of input/output (I/O) requests

Also Published As

Publication number Publication date
US5758190A (en) 1998-05-26
JPH1031631A (ja) 1998-02-03

Similar Documents

Publication Publication Date Title
JP3726931B2 (ja) 入出力装置操作故障を誤って示すことを防止する入出力制御ユニット及び方法
JPH1031632A (ja) 未着入出力割込み信号の誤った検出を回避する方法
US5894583A (en) Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
US4975829A (en) Communication interface protocol
US6343335B1 (en) System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
US6742139B1 (en) Service processor reset/reload
WO1993009494A1 (en) Fault-tolerant computer processing using a shadow virtual processor
US6754853B1 (en) Testing components of a computerized storage network system having a storage unit with multiple controllers
WO2001040946A1 (en) Automated recovery of computer appliances
US5664219A (en) Method and system for controlling servicability of adapters connected by an I/O channel interface to a computer system
EP1470492B1 (en) Method and system for monitoring dma status in a computer system
US5983359A (en) Processor fault recovering method for information processing system
JPS61163447A (ja) 非作動状態検出装置
EP3748496A1 (en) Parallel processing apparatus
GB2401694A (en) Detecting a malfunctioning host coupled to a communications bus
US6336194B1 (en) Program products for repositioning an input/output device without knowledge of current positioning of the device
JP4487756B2 (ja) コンピュータシステム及びシステム監視プログラム
EP2096550B1 (en) Information processing apparatus and control method thereof
EP0010609B1 (en) Data processing system with channel error logging
EP0378398B1 (en) Data processing system with means for detecting status of data processing device receiving commands
KR100444092B1 (ko) 데이터 처리 시스템 내의 채널들의 복구를 위한 체크포인팅 방법, 장치 및 기록 매체
JP2830592B2 (ja) 情報処理システムにおける外部記憶装置の経路障害処理方式
US6339799B1 (en) Method of repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
JP4103141B2 (ja) コンピュータシステム、入出力制御部及び入出力制御プログラム
JP2628561B2 (ja) 異常通知方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050124

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050124

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050125

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: 20050831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050831

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050921

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: 20081007

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees