(57)【特許請求の範囲】
【請求項１】
入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、
プロセッサ、
主記憶、
前記プロセッサと前記入出力装置との間の通信の制御を行う前記入出力インタフェースの制御を行う制御手段、
前記プロセッサと前記主記憶及び前記制御手段との間で命令及び応答を一時保持する緩衝バッファ、並びに
前記入出力装置に対する障害復旧処理を行う診断手段
を含む情報処理装置とに接続されたインタフェース障害検出装置であって、
前記疎通確認命令を定期的に発行する手段と、
前記緩衝バッファにおける命令の滞留の有無を判定する手段と、
前記滞留が発生し且つ前記入出力インタフェースが疎通しない場合に、前記入出力インタフェースにおける回復不可能な障害の発生を前記診断手段に通知する手段と
を備えることを特徴とするインタフェース障害検出装置。
【請求項２】
前記命令の滞留の有無を判定する手段は、前記緩衝バッファにおける、最古の命令の発行時刻と現在時刻との差が第１の閾値を超えるか否かに基づいて、前記命令の滞留の有無を判定する
ことを特徴とする請求項１に記載のインタフェース障害検出装置。
【請求項３】
前記命令の滞留の有無を判定する手段は、前記緩衝バッファにおける、命令数が第２の閾値を超えるか否かに基づいて、前記命令の滞留の有無を判定する
ことを特徴とする請求項１に記載のインタフェース障害検出装置。
【請求項４】
前記命令の滞留の有無を判定する手段は、前記緩衝バッファにおける、命令数の前記緩衝バッファの命令格納数の上限に対する割合が第３の閾値を超えるか否かに基づいて、前記命令の滞留の有無を判定する
ことを特徴とする請求項１に記載のインタフェース障害検出装置。
【請求項５】
入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、
プロセッサ、
主記憶、
前記プロセッサと前記入出力装置との間の通信の制御を行う前記入出力インタフェースの制御を行う制御手段、
前記プロセッサと前記主記憶及び前記制御手段との間で命令及び応答を一時保持する緩衝バッファ、並びに
前記入出力装置に対する障害復旧処理を行う診断手段
を含む情報処理装置と、
前記入出力装置及び前記情報処理装置に接続され、
前記疎通確認命令を定期的に発行する手段と、
前記緩衝バッファにおける命令の滞留の有無を判定する手段と、
前記滞留が発生し且つ前記入出力インタフェースが疎通しない場合に、前記入出力インタフェースにおける回復不可能な障害の発生を前記診断手段に通知する手段と
を含むインタフェース障害検出装置と
を備えることを特徴とするインタフェース障害検出システム。
【請求項６】
前記情報処理装置は、複数の前記プロセッサを含む
ことを特徴とする請求項５に記載のインタフェース障害検出システム。
【請求項７】
前記情報処理装置は、複数の前記入出力装置に接続され、
前記情報処理装置は、前記入出力装置の台数と同数の前記インタフェース障害検出装置に接続される
ことを特徴とする請求項５又は請求項６に記載のインタフェース障害検出システム。
【請求項８】
入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、
プロセッサ、
主記憶、
前記プロセッサと前記入出力装置との間の通信の制御を行う前記入出力インタフェースの制御を行う制御手段、
前記プロセッサと前記主記憶及び前記制御手段との間で命令及び応答を一時保持する緩衝バッファ、並びに
前記入出力装置に対する障害復旧処理を行う診断手段
を含む情報処理装置とに接続され、
疎通確認命令発行手段と、命令滞留判定手段と、障害通知手段とを備えたインタフェース障害検出装置のインタフェース障害検出方法であって、
前記疎通確認命令発行手段によって、前記疎通確認命令を定期的に発行し、
前記命令滞留判定手段によって、前記緩衝バッファにおける命令の滞留の有無を判定し、
前記障害通知手段によって、前記滞留が発生し且つ前記入出力インタフェースが疎通しない場合に、前記入出力インタフェースにおける回復不可能な障害の発生を前記診断手段に通知する
ことを特徴とするインタフェース障害検出方法。
【請求項９】
入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、
プロセッサ、
主記憶、
前記プロセッサと前記入出力装置との間の通信の制御を行う前記入出力インタフェースの制御を行う制御手段、
前記プロセッサと前記主記憶及び前記制御手段との間で命令及び応答を一時保持する緩衝バッファ、並びに
前記入出力装置に対する障害復旧処理を行う診断手段
を含む情報処理装置とに接続されたインタフェース障害検出装置が備えるコンピュータに、
前記疎通確認命令を定期的に発行する処理と、
前記緩衝バッファにおける命令の滞留の有無を判定する処理と、
前記滞留が発生し且つ前記入出力インタフェースが疎通しない場合に、前記入出力インタフェースにおける回復不可能な障害の発生を前記診断手段に通知する処理と
を実行させることを特徴とするインタフェース障害検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入出力装置とのインタフェースにおける障害を検出するインタフェース障害検出装置、インタフェース障害検出システム、インタフェース障害検出方法、及びインタフェース障害検出プログラムに関する。
【背景技術】
【０００２】
装置間を接続するＰＣＩ−Ｅｘｐｒｅｓｓ（登録商標）等のシリアル転送インタフェースにおける障害は、インタフェース制御部からの通報により認識されることが多い。しかしながら、インタフェース障害が発生してから、インタフェース制御部により障害が通報されるまでに、数十ミリ秒の遅延が発生する。この間、コンピュータ等の情報処理システム内では、インタフェース障害により、インタフェースを通過する命令およびデータ転送が処理されずに滞留する。更に、先行する命令およびデータ転送の滞留に伴い、後続の命令やデータ転送が滞留する。
【０００３】
この滞留による遅延時間は、コンピュータ等の情報処理システムが許容する命令やデータ転送の処理時間に許容される上限より大きいことがある。そのため、本来ならば、インタフェースの縮退または再接続等の障害復旧処理を行って運用を継続できる障害であるにもかかわらず、システム全体の停止に至ることがあるという問題があった。特に、プロセッサによる主記憶に対するアクセスにおいて、アクセス完了までに許容される上限時間（以下、「メモリアクセス上限時間」という）は、通常、十数ミリ秒程度である。
【０００４】
ＰＣＩ（Peripheral Component Interconnect）バスのストール状態に陥ったことを示す応答をさせ、タイムアウトによるシステムダウン動作を抑止する技術の一例が、特許文献１に開示されている。
【０００５】
特許文献１のコンピュータシステムは、プロセッサと、Ｉ／Ｏ（Input and Output）コントローラと、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラとを含む。Ｉ／Ｏコントローラは、エラーリプライ生成部を含む。バスコントローラは、ＰＣＩバス制御部と、ストール検出部と、障害通知制御部とを含む。
【０００６】
特許文献１のコンピュータシステムは、以下のように動作する。
【０００７】
まず、ストール検出部は、タイマを用いてＰＣＩバス制御部から示されるＰＣＩバスのバスビジー状態（非アイドル状態）の継続時間を計数する。なお、このタイマは、バスがアイドル状態に戻るとクリアされる。タイマが規定時間以上に到達した場合には、ストール検出部は、ＰＣＩバスがストール状態であると判断し、ストール検出信号を障害通知制御部に通知する。
【０００８】
障害通知制御部は、ストール検出部からのストール検出信号を受信すると、Ｉ／Ｏコントローラに対してバスコントローラにてストールが発生していることを示す障害通知を送信する。
【０００９】
エラーリプライ生成部は、バスコントローラからの障害通知を受信すると、実行中トランザクション管理テーブルに格納されている、障害通知を受けたバスコントローラ配下のＰＣＩバスに送出済みのトランザクションに関して、発行元のプロセッサに対して異常終了を示すリプライ情報（エラーリプライ）を生成し応答として返却する。
【００１０】
また、エラーリプライ生成部は、未実行トランザクション管理テーブルに格納されている未実行の、障害通知を受けたバスコントローラ配下のＰＣＩバスに送信していないトランザクションについて、ストールが発生しているバスコントローラへの送出を抑止するとともに、実行中トランザクション管理テーブルに格納する。
【００１１】
これにより、実行中トランザクション管理テーブルに格納されたトランザクションについて、バスコントローラ配下のＰＣＩバスに送出済みのトランザクションと同じように、発行元のプロセッサに対してエラーリプライが返される。
【００１２】
上記の動作の結果、特許文献１のコンピュータシステムでは、ＰＣＩバスがストール状態に陥っても、プロセッサが例外処理を実行する。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−１７２２１８
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１の技術では、ＰＣＩバスのバスビジー状態の継続時間に基づいて、ＰＣＩバスがストール状態であるか否かが判断される。ところが、ＰＣＩバスのバスビジー状態が継続しても、ＰＣＩバスにおいて回復不可能な障害の発生していなければ、必ずしもシステムダウンが発生するとは限らない。従って、特許文献１の技術には、ＰＣＩバスにおいて回復不可能な障害が発生していない場合にも、例外処理が実行されるという問題がある。
（発明の目的）
本発明の主たる目的は、入出力装置とのインタフェースにおける回復不可能な障害の発生時にシステムの性能低下を軽減するインタフェース障害検出装置、インタフェース障害検出システム、インタフェース障害検出方法、及びインタフェース障害検出プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明のインタフェース障害検出装置は、入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、プロセッサ、主記憶、プロセッサと入出力装置との間の通信の制御を行う入出力インタフェースの制御を行う制御手段、プロセッサと主記憶及び制御手段との間で命令又は応答を一時保持する緩衝バッファ、並びに入出力装置に対する障害復旧処理を行う診断手段を含む情報処理装置とに接続されたインタフェース障害検出装置であって、疎通確認命令を定期的に発行する手段と、緩衝バッファにおける命令の滞留の有無を判定する手段と、滞留が発生し且つ入出力インタフェースが疎通しない場合に、入出力インタフェースにおける回復不可能な障害の発生を装置診断手段に通知する手段とを備えることを特徴とする。
【００１６】
本発明のインタフェース障害検出システムは、入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、プロセッサ、主記憶、プロセッサと入出力装置との間の通信の制御を行う入出力インタフェースの制御を行う制御手段、プロセッサと主記憶及び制御手段との間で命令又は応答を一時保持する緩衝バッファ、並びに入出力装置に対する障害復旧処理を行う診断手段を含む情報処理装置と、入出力装置及び情報処理装置に接続され、疎通確認命令を定期的に発行する手段と、緩衝バッファにおける命令の滞留の有無を判定する手段と、滞留が発生し且つ入出力インタフェースが疎通しない場合に、入出力インタフェースにおける回復不可能な障害の発生を装置診断手段に通知する手段とを含むインタフェース障害検出装置とを備えることを特徴とする。
【００１７】
本発明のインタフェース障害検出方法は、入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、プロセッサ、主記憶、プロセッサと入出力装置との間の通信の制御を行う入出力インタフェースの制御を行う制御手段、プロセッサと主記憶及び制御手段との間で命令又は応答を一時保持する緩衝バッファ、並びに入出力装置に対する障害復旧処理を行う診断手段を含む情報処理装置とに接続されたインタフェース障害検出装置において、疎通確認命令を定期的に発行し、緩衝バッファにおける命令の滞留の有無を判定し、滞留が発生し且つ入出力インタフェースが疎通しない場合に、入出力インタフェースにおける回復不可能な障害の発生を装置診断手段に通知することを特徴とする。
【００１８】
本発明のインタフェース障害検出プログラムは、入出力インタフェースの疎通を監視するための疎通確認命令に対する疎通確認応答を発行する外部の入出力装置と、プロセッサ、主記憶、プロセッサと入出力装置との間の通信の制御を行う入出力インタフェースの制御を行う制御手段、プロセッサと主記憶及び制御手段との間で命令又は応答を一時保持する緩衝バッファ、並びに入出力装置に対する障害復旧処理を行う診断手段を含む情報処理装置とに接続されたインタフェース障害検出装置であって、疎通確認命令を定期的に発行する処理と、緩衝バッファにおける命令の滞留の有無を判定する処理と、滞留が発生し且つ入出力インタフェースが疎通しない場合に、入出力インタフェースにおける回復不可能な障害の発生を装置診断手段に通知する処理とをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、入出力装置とのインタフェースにおける回復不可能な障害の発生時にシステムの性能低下を軽減するという効果がある。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態におけるインタフェース障害検出装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態におけるインタフェース障害検出装置の動作を示すフローチャートである。
【図３】本発明の第２の実施形態における情報処理装置の構成の一例を示すブロック図である。
【図４】本発明の第２の実施形態における情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について、図面を参照して詳細に説明する。なお、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本実施形態における構成について説明する。
【００２２】
図１は、本発明の第１の実施形態におけるインタフェース障害検出装置１００の構成の一例を示すブロック図である。なお、理解し易いように、情報処理装置側及び入出力装置側の障害検出に関する構成と共に示している。
【００２３】
インタフェース障害検出装置１００は、外部の情報処理装置８００に接続される。情報処理装置８００は、入出力インタフェース９９０を経由して、外部の入出力装置９００に接続される。
【００２４】
インタフェース障害検出装置１００は、命令滞留判定手段１１０と、疎通確認命令発行手段１４０と、調停手段１３０と、障害通知手段１２０とを含む。
【００２５】
情報処理装置８００は、コンピュータ、電子機器、通信機器等の、外部の入出力装置に対するデータの読み書きを行う情報処理装置である。情報処理装置８００は、プロセッサ８１０と、緩衝バッファ８２０と、調停手段８３０と、主記憶８４０と、入出力インタフェース制御手段８５０と、診断手段８６０とを含む。
【００２６】
入出力装置９００は、入出力インタフェースを経由して外部の情報処理装置と通信を行う、記憶装置、通信装置、周辺機器等である。入出力装置９００は、入出力インタフェース制御手段９５０と、調停手段９３０と、緩衝バッファ９２０と、入出力制御手段９１０と、疎通確認応答発行手段９４０とを含む。
【００２７】
命令滞留判定手段１１０は、情報処理装置８００の緩衝バッファ８２０に接続される。命令滞留判定手段１１０は、緩衝バッファ８２０における命令の滞留を検出する。なお、命令滞留判定手段１１０は、緩衝バッファ８２０に存在する最古の命令の発行時刻と現在時刻との時間差を取得し、取得した時間差が所定の閾値を超える場合に、緩衝バッファ８２０において命令の滞留が発生していると判定する。あるいは、命令滞留判定手段１１０は、緩衝バッファ８２０に存在する命令の個数を取得し、取得した個数が所定の閾値を超える場合に、命令の滞留が発生していると判定してもよい。あるいは、命令滞留判定手段１１０は、緩衝バッファ８２０に存在する命令の個数を取得し、緩衝バッファ８２０の命令収容数の上限に対する、取得した個数の割合が所定の閾値を超える場合に、命令の滞留が発生していると判定してもよい。あるいは、命令滞留判定手段１１０は、緩衝バッファ８２０に関する情報を情報処理装置８００側からの通知により取得してもよい。あるいは、命令滞留判定手段１１０は、上述の方法を組み合わせて、命令の滞留の有無を判定してもよい。いずれも方法においても、情報の取得および判定に要する時間は、メモリアクセス上限時間に比べて十分に小さくすることが可能である。
【００２８】
疎通確認命令発行手段１４０は、所定の時間間隔で疎通確認命令を発行し、調停手段１３０および入出力インタフェース制御手段８５０を経由して、入出力装置９００へ、疎通確認命令を送信する。また、疎通確認命令発行手段１４０は、障害通知手段１２０へ疎通確認命令の送信を通知する。疎通確認命令は、各疎通確認命令を識別するために必要な情報（例えば、連番または識別子）を含む。
【００２９】
調停手段１３０は、情報処理装置８００の、調停手段８３０及び入出力インタフェース制御手段８５０に接続される。調停手段１３０は、調停手段８３０及び入出力インタフェース制御手段８５０間において、入出力装置９００に関する命令および応答を中継する。また、調停手段１３０は、疎通確認命令を通常の命令やデータ転送の間に挿入する。また、調停手段１３０は、疎通確認命令に対する応答の受信を障害通知手段１２０に通知する。
【００３０】
障害通知手段１２０は、緩衝バッファ８２０において滞留が発生し、且つ入出力インタフェース９９０が疎通しない場合に、入出力インタフェース９９０における回復不可能な障害の発生を、情報処理装置８００の診断手段８６０に通知する。なお、入出力インタフェース９９０の疎通確認に要する時間は、疎通確認命令発行手段１４０による疎通確認命令の発行間隔（疎通確認命令発行間隔）を短くすることにより、短縮される。従って、入出力インタフェース９９０の疎通確認に要する時間は、メモリアクセス上限時間に比べて十分に小さくすることが可能である。
【００３１】
プロセッサ８１０は、命令を発行し、命令に対する応答を受け取る。
【００３２】
緩衝バッファ８２０は、プロセッサ８１０と調停手段８３０との間で命令および応答を一時的に保持する。
【００３３】
調停手段８３０は、緩衝バッファ８２０と、主記憶８４０またはインタフェース障害検出装置１００の調停手段１３０との間で、命令および応答を転送する。
【００３４】
主記憶８４０は、受信したデータ書き込み命令に従ってデータを保持し、受信したデータ読み出し命令に従ってデータを応答する。
【００３５】
入出力インタフェース制御手段８５０は、インタフェース障害検出装置１００の調停手段１３０から受け取った命令およびデータ転送を転送データ形式に変換し、入出力インタフェース９９０へ送信する。また、入出力インタフェース制御手段８５０は、入出力インタフェース９９０から受信した転送データ形式を元の命令およびデータ転送の形式に復元する。
【００３６】
診断手段８６０は、入出力インタフェース９９０における障害発生時の障害復旧処理を行う。障害復旧処理は、情報処理装置８００から入出力装置９００を切り離すための処理である。障害復旧処理は、例えば、入出力インタフェース制御手段８５０のビジー信号を抑止する処理である。入出力インタフェース制御手段８５０のビジー信号を抑止することにより、緩衝バッファ８２０に滞留していた、入出力インタフェース制御手段８５０に関する、命令および応答に対する処理は直ちに完了する。障害復旧処理に要する時間は、メモリアクセス上限時間に比べて十分に小さくすることが可能である。
【００３７】
入出力インタフェース制御手段９５０は、入出力インタフェース９９０から受信した転送データ形式を元の命令およびデータ転送の形式に復元する。また、入出力インタフェース制御手段９５０は、調停手段９３０から受け取った命令およびデータ転送を転送データ形式に変換し、入出力インタフェース９９０へ送信する。
【００３８】
調停手段９３０は、疎通確認応答を通常の命令およびデータ転送の隙間に挿入し、入出力インタフェース制御手段９５０へ送信する。
【００３９】
緩衝バッファ９２０は、調停手段９３０と入出力制御手段９１０との間で命令および応答を一時的に保持する。
【００４０】
入出力制御手段９１０は、記憶装置、通信装置、周辺機器等としての入出力機能を制御する。
【００４１】
疎通確認応答発行手段９４０は、入出力インタフェース制御手段９５０を経由して疎通確認命令を受信すると、調停手段９３０を経由してインタフェース障害検出装置１００へ疎通確認応答を送信する。疎通確認応答は、対応する疎通確認命令を識別するために必要な情報（例えば、疎通確認命令の連番または識別子）を含む。
【００４２】
次に、本実施形態における動作について説明する。
【００４３】
図２は、本発明の第１の実施形態におけるインタフェース障害検出装置１００の動作を示すフローチャートである。具体的には、図２は、インタフェース障害検出装置１００が入出力インタフェース９９０の障害を検出する動作を示すフローチャートである。なお、図２に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【００４４】
インタフェース障害検出装置１００の疎通確認命令発行手段１４０は、調停手段１３０を経由した入出力装置９００に対する疎通確認命令の定期的な発行を開始する（ステップＳ１１０）。
【００４５】
インタフェース障害検出装置１００の命令滞留判定手段１１０は、情報処理装置８００の緩衝バッファ８２０における命令の滞留監視を開始する（ステップＳ１２０）。
【００４６】
インタフェース障害検出装置１００の命令滞留判定手段１１０は、命令の滞留の有無を判定する（ステップＳ１３０）。
【００４７】
インタフェース障害検出装置１００の障害通知手段１２０は、疎通確認命令に対する疎通確認応答が所定の時間内に受信されるか否かに基づいて、インタフェースの疎通を判定する（ステップＳ１４０）。
【００４８】
命令の滞留が発生しないか（ステップＳ１３０：Ｎｏ）又は命令の滞留が発生してもインタフェースの疎通が確認されれば（ステップＳ１４０：Ｙｅｓ）、インタフェース障害検出装置１００は、ステップＳ１３０の処理へ戻る。
【００４９】
命令の滞留が発生し（ステップＳ１３０：Ｙｅｓ）且つインタフェースの疎通が確認されなければ（ステップＳ１４０：Ｎｏ）、インタフェース障害検出装置１００の障害通知手段１２０は、ステップＳ１５０の処理へ進む。
【００５０】
インタフェース障害検出装置１００の障害通知手段１２０は、入出力インタフェース９９０における回復不可能な障害の発生を情報処理装置８００の診断手段８６０に通知する（ステップＳ１５０）。
【００５１】
以上説明したように、本実施形態のインタフェース障害検出装置１００では、ステップＳ１３０及びステップＳ１４０の処理に要する時間を、メモリアクセス上限時間に比べて小さくすることができる。また、情報処理装置８００からの入出力装置９００の切り離し処理に要する時間は、メモリアクセス上限時間に比べて十分小さい。つまり、本実施形態のインタフェース障害検出装置１００では、命令の滞留開始後、メモリアクセス上限時間に比べて短時間で入出力装置９００の切り離し処理を完了することができる。従って、インタフェース障害検出装置１００では、入出力装置とのインタフェースにおける回復不可能な障害の発生時にシステムの性能低下を軽減するという効果がある。
（第２の実施形態）
次に、上述した第１の実施形態におけるインタフェース障害検出装置の機能を含み、２台の入出力装置に接続され、２つのプロセッサを含む本発明の第２の実施形態における情報処理装置について説明する。以下の説明において、第１の実施形態と同等の構成要素には同じ符号を付し、適宜説明を省略する。
【００５２】
本実施形態における構成について説明する。
【００５３】
図３は、本発明の第２の実施形態における情報処理装置６０１の構成の一例を示すブロック図である。なお、理解し易いように、入出力装置側の障害検出に関する構成と共に示している。本実施形態では２個のプロセッサと２台の入出力装置が接続された情報処理装置６０１について説明する。
【００５４】
情報処理装置６０１は、コンピュータ、電子機器、通信機器等の、外部の入出力装置に対するデータの読み書きを行う情報処理装置である。情報処理装置６０１は、入出力装置７０２および入出力装置７０３に接続される。
【００５５】
情報処理装置６０１は、プロセッサ６１０および６１１、緩衝バッファ６１２および６１３、緩衝バッファ６１６および６１７、調停回路６０５、主記憶６０７、振り分け回路６０６、緩衝バッファ６２０および６２１、シリアルインタフェース制御回路６２６および６２７、装置診断回路６０８、ビジー検出回路２１４および２１５、命令発行経路負荷判定回路２０４、インタフェースパトロール命令発行回路２１８および２１９、調停回路２２２および２２３、インタフェースパトロール応答タイムアウト監視回路２２４および２２５を含む。
【００５６】
プロセッサ６１０およびプロセッサ６１１は、命令を発行し、命令に対する応答を受け取る。
【００５７】
緩衝バッファ６１２は、プロセッサ６１０と調停回路６０５との間で命令および応答を一時的に保持する。
【００５８】
緩衝バッファ６１３は、プロセッサ６１１と調停回路６０５との間で命令および応答を一時的に保持する。
【００５９】
緩衝バッファ６１６は、調停回路６０５と振り分け回路６０６との間で命令および応答を一時的に保持する。
【００６０】
緩衝バッファ６１７は、調停回路６０５と主記憶６０７との間で命令および応答を一時的に保持する。
【００６１】
調停回路６０５は、緩衝バッファ６１２または緩衝バッファ６１３と、緩衝バッファ６１６または緩衝バッファ６１７との間で、命令および応答を転送する。
【００６２】
主記憶６０７は、受信したデータ書き込み命令に従ってデータを保持し、受信したデータ読み出し命令に従ってデータを応答する。
【００６３】
振り分け回路６０６は、緩衝バッファ６１６と、緩衝バッファ６２０または緩衝バッファ６２１との間で、命令および応答を転送する。
【００６４】
緩衝バッファ６２０は、振り分け回路６０６と調停回路２２２との間で命令および応答を一時的に保持する。
【００６５】
緩衝バッファ６２１は、振り分け回路６０６と調停回路２２３との間で命令および応答を一時的に保持する。
【００６６】
シリアルインタフェース制御回路６２６は、調停回路２２２から受け取った命令およびデータ転送をシリアル転送のデータ形態に変換し、シリアルインタフェース７００へ送信する。また、シリアルインタフェース制御回路６２６は、シリアルインタフェース７００から受信したシリアル転送データを元の命令およびデータ転送の形式に復元する。
【００６７】
シリアルインタフェース制御回路６２７は、調停回路２２３から受け取った命令およびデータ転送をシリアル転送のデータ形態に変換し、シリアルインタフェース７０１へ送信する。また、シリアルインタフェース制御回路６２７は、シリアルインタフェース７０１から受信したシリアル転送データを元の命令およびデータ転送の形式に復元する。
【００６８】
装置診断回路６０８は、シリアルインタフェース７００またはシリアルインタフェース７０１における障害発生時の処理を行う。
【００６９】
ビジー検出回路２１４、ビジー検出回路２１５は、それぞれ、緩衝バッファ６１２、緩衝バッファ６１３における命令の滞留を検出する。
【００７０】
命令発行経路負荷判定回路２０４は、ビジー検出回路２１４またはビジー検出回路２１５から緩衝バッファ６１２または緩衝バッファ６１３における命令の滞留を示す通知を受信する。また、命令発行経路負荷判定回路２０４は、インタフェースパトロール応答タイムアウト監視回路２２４およびインタフェースパトロール応答タイムアウト監視回路２２５の両方に命令発行経路が高負荷である事を通知する。
【００７１】
インタフェースパトロール命令発行回路２１８は、情報処理装置６０１と入出力装置７０２との間のシリアルインタフェース７００に、所定の時間間隔でインタフェースパトロール命令を発行する。また、インタフェースパトロール命令発行回路２１８は、インタフェースパトロール命令を発行した事をインタフェースパトロール応答タイムアウト監視回路２２４に通知する。
【００７２】
インタフェースパトロール命令発行回路２１９は、情報処理装置６０１と入出力装置７０３との間のシリアルインタフェース７０１に、所定の時間間隔でインタフェースパトロール命令を発行する。また、インタフェースパトロール命令発行回路２１９は、インタフェースパトロール命令を発行した事をインタフェースパトロール応答タイムアウト監視回路２２５に通知する。
【００７３】
調停回路２２２は、インタフェースパトロール命令を通常の命令やデータ転送の隙間に挿入する。
【００７４】
調停回路２２３は、インタフェースパトロール命令を通常の命令やデータ転送の隙間に挿入する。
【００７５】
インタフェースパトロール応答タイムアウト監視回路２２４は、入出力装置７０２からのインタフェースパトロール応答が返るまでの時間をカウントする。また、インタフェースパトロール応答タイムアウト監視回路２２４は、シリアルインタフェース７００における回復不可能な障害の発生を検出すると、障害の発生を装置診断回路６０８へ通知する。
【００７６】
インタフェースパトロール応答タイムアウト監視回路２２５は、入出力装置７０３からのインタフェースパトロール応答が返るまでの時間をカウントする。また、インタフェースパトロール応答タイムアウト監視回路２２５は、シリアルインタフェース７０１における回復不可能な障害の発生を検出すると、障害の発生を装置診断回路６０８へ通知する。
【００７７】
入出力装置７０２および入出力装置７０３は、シリアルインタフェースを経由して情報処理装置と通信を行う、記憶装置、通信装置、周辺機器等である。入出力装置７０２および入出力装置７０３は、情報処理装置６０１からシリアルインタフェース７００またはシリアルインタフェース７０１を経由して受信する。入出力装置７０２および入出力装置７０３は、受信したインタフェースパトロール命令に対するインタフェースパトロール応答を、通常の命令およびデータ転送の隙間に挿入して情報処理装置６０１に送信する。また、入出力装置７０２および入出力装置７０３は、図示されない、記憶装置、通信装置、周辺機器等としての機能を有する。
【００７８】
入出力装置７０２は、シリアルインタフェース制御回路７３０、緩衝バッファ７３３、入出力制御回路７３４、インタフェースパトロール応答発行回路７３２、調停回路７３１を含む。入出力装置７０３は、シリアルインタフェース制御回路７４０、緩衝バッファ７４３、入出力制御回路７４４、インタフェースパトロール応答発行回路７４２、調停回路７４１を含み、入出力装置７０２と同様な構成を有する。
【００７９】
シリアルインタフェース制御回路７３０は、シリアルインタフェース７００から受信したシリアル転送データを元の命令およびデータ転送の形式に復元する。また、シリアルインタフェース制御回路７３０は、調停回路７３１から受け取った命令およびデータ転送をシリアル転送のデータ形式に変換し、シリアルインタフェース７００へ送信する。
【００８０】
緩衝バッファ７３３は、調停回路７３１と入出力制御回路７３４との間で命令および応答を一時的に保持する。
【００８１】
入出力制御回路７３４は、記憶装置、通信装置、周辺機器等としての入出力機能を制御する。
【００８２】
インタフェースパトロール応答発行回路７３２は、インタフェースパトロール命令を受信すると、インタフェースパトロール応答を発行する。
【００８３】
調停回路７３１は、インタフェースパトロール応答を通常の命令およびデータ転送の隙間に挿入し、シリアルインタフェース制御回路７３０へ送信する。
【００８４】
次に、本発明の第２の実施形態における動作について説明する。
【００８５】
インタフェースパトロール命令発行回路２１８は、インタフェースパトロール命令を、所定の時間間隔（例えば、１〜２ミリ秒）で調停回路２２２に対して送信する。また、インタフェースパトロール命令発行回路２１８は、インタフェースパトロール命令の送信の通知を、インタフェースパトロール応答タイムアウト監視回路２２４に対して送信する。
【００８６】
インタフェースパトロール応答タイムアウト監視回路２２４は、インタフェースパトロール命令の送信の通知を受信すると、入出力装置７０２からインタフェースパトロール応答が返るまでの時間（インタフェースパトロール応答時間）のカウントを開始する。
【００８７】
調停回路２２２は、他の命令または応答の間にインタフェースパトロール命令を挿入して、シリアルインタフェース制御回路６２６に対して送信する。
【００８８】
シリアルインタフェース制御回路６２６は、調停回路２２２から受信した命令または応答をシリアル転送データの形式に変換して、シリアルインタフェース７００に対して送信する。
【００８９】
シリアルインタフェース制御回路７３０は、シリアルインタフェース７００から受信したシリアル転送データを元の命令または応答の形式に復元して、調停回路７３１に対して送信する。ただし、シリアルインタフェース制御回路７３０は、復元した命令または応答に含まれるインタフェースパトロール命令を、インタフェースパトロール応答発行回路７３２に対して送信する。
【００９０】
インタフェースパトロール応答発行回路７３２は、インタフェースパトロール命令を受信すると、インタフェースパトロール応答を、調停回路７３１を経由してシリアルインタフェース制御回路７３０に対して送信する。
【００９１】
調停回路７３１は、インタフェースパトロール応答を他の命令または応答の間に挿入して、シリアルインタフェース制御回路７３０に対して送信する。
【００９２】
シリアルインタフェース制御回路７３０は、調停回路７３１から受信した命令または応答をシリアル転送データの形式に変換して、シリアルインタフェース７００に対して送信する。
【００９３】
シリアルインタフェース制御回路６２６は、シリアルインタフェース７００から受信したシリアル転送データを元の命令または応答の形式に復元する。シリアルインタフェース制御回路６２６は、復元した命令または応答を調停回路２２２に対して送信する。ただし、シリアルインタフェース制御回路６２６は、復元した命令または応答に含まれるインタフェースパトロール応答を、インタフェースパトロール応答タイムアウト監視回路２２４に対して送信する。
【００９４】
インタフェースパトロール応答タイムアウト監視回路２２４は、インタフェースパトロール応答を受信すると、インタフェースパトロール応答時間のカウントを停止する。
【００９５】
シリアルインタフェース７００に異常が無ければ、所定の時間内にインタフェースパトロール応答が返るので、上記の動作を繰り返す。
【００９６】
ここで、シリアルインタフェース７００に回復不可能な障害が発生した場合について説明する。
【００９７】
シリアルインタフェース７００に障害が発生しても、シリアルインタフェース制御回路６２６は所定の時間（例えば、数十ミリ秒）、障害の通知を行わない。これは、シリアルインタフェース制御回路６２６が命令または応答の送信の再試行、シリアルインタフェース７００の再接続等の復旧処理を行うためである。シリアルインタフェース制御回路６２６は、復旧処理中には、別の命令または応答の送信を行わない。インタフェースパトロール命令発行回路２１８により発行されたインタフェースパトロール命令についても、シリアルインタフェース制御回路６２６は、同様に入出力装置７０２に送信しない。そのため、シリアルインタフェース制御回路６２６は、所定の時間が経過してもインタフェースパトロール応答を受信しない。
【００９８】
その後、後続の命令が緩衝バッファ６２０に滞留し、続いて更に後続の命令が緩衝バッファ６１６および、緩衝バッファ６１２または緩衝バッファ６１３に滞留する。そのため、調停回路６０５は命令または応答の送受信の調停処理を停止する。
【００９９】
この時点で、プロセッサ６１０は、入出力装置７０２との間のシリアルインタフェース７００で障害が発生した事を認識しておらず、命令を発行し続ける。ところが、調停回路６０５が調停処理を停止しているので、緩衝バッファ６１２に命令が滞留し続ける。
【０１００】
滞留した命令には、主記憶６０７に対する命令が含まれている。主記憶６０７に対する命令に対する処理は、メモリアクセス上限時間（例えば、十数ミリ秒）内に完了する必要がある。
【０１０１】
ビジー検出回路２１４は、緩衝バッファ６１２に命令が滞留している事を検出する。ビジー検出回路２１４は、命令発行経路負荷判定回路２０４に命令の滞留を通知する。ビジー検出回路２１４は、シリアルインタフェース７００に回復不可能な障害が発生から所定の時間（例えば、１０ミリ秒）が経過する前に、命令の滞留を検出する。
【０１０２】
命令発行経路負荷判定回路２０４は、命令発行経路が高負荷であることを、インタフェースパトロール応答タイムアウト監視回路２２４に通知する。
【０１０３】
インタフェースパトロール応答タイムアウト監視回路２２４は、命令発行経路が高負荷である旨の通知を受信し、かつ、インタフェースパトロール応答を所定のタイムアウト時間（例えば、１〜２ミリ秒）内に受信していない事を検出すると、シリアルインタフェース７００に障害が発生したと判断する。インタフェースパトロール応答タイムアウト監視回路２２４は、シリアルインタフェース７００に障害が発生したと判断すると、装置診断回路６０８に障害を通知する。タイムアウト時間は、インタフェースパトロール命令発行回路２１８による疎通確認命令発行間隔を短くすることにより短縮される。
【０１０４】
装置診断回路６０８は、インタフェース障害が発生した入出力装置７０２を切り離す等の障害復旧処理を実施する。障害復旧処理は、メモリアクセス上限時間に比べて十分短い時間内に完了する。これにより、緩衝バッファ６１６及び緩衝バッファ６１２内の不要な命令および応答が廃棄され、シリアルインタフェース７００に回復不可能な障害が発生してからメモリアクセス上限時間が経過する前に、命令発行経路の負荷が低下する。
【０１０５】
次に、シリアルインタフェース７００に回復可能な障害が発生した場合について説明する。シリアルインタフェース７００に回復可能な障害が発生した場合には、シリアルインタフェース制御回路６２６は、再接続動作を行う事がある。この場合にも、シリアルインタフェース制御回路６２６は、所定の時間が経過してもインタフェースパトロール応答を受信しない事がある。ところが、この場合には、回復可能な障害からの復旧は短時間（例えば、１ミリ秒未満）で完了するので、緩衝バッファ６１２に命令が滞留しない。従って、命令発行経路負荷判定回路２０４は、インタフェースパトロール応答タイムアウト監視回路２２４に命令発行経路が高負荷であることを通知しない。つまり、シリアルインタフェース７００に回復可能な障害が発生した場合には、シリアルインタフェース７００に障害が発生したと判断される事は無い。つまり、障害復旧処理は、シリアルインタフェース制御回路６２６内で完結する。
【０１０６】
上記では、プロセッサ６１０の動作について説明したが、プロセッサ６１１の動作はプロセッサ６１０の動作と同様である。また、上記では、入出力装置７０２の動作について説明したが、入出力装置７０３の動作は入出力装置７０２の動作と同様である。
【０１０７】
図４は、本発明の第２の実施形態における情報処理装置６０１の動作を示すフローチャートである。具体的には、図４は、インタフェースパトロール応答タイムアウト監視回路２２４がシリアルインタフェース７００の障害を検出する動作を示すフローチャートである。なお、図４に示すフローチャート及び以下の説明は一例であり、適宜求める処理に応じて、処理順等を入れ替えたり、処理を戻したり、又は処理を繰り返したりしてもよい。
【０１０８】
インタフェースパトロール応答タイムアウト監視回路２２４は、命令発行経路負荷判定回路２０４からの命令発行経路が高負荷である旨の通知の有無を判定する（ステップＳ２１０）。命令発行経路が高負荷である旨の通知がないと（ステップＳ２１０：Ｎｏ）、インタフェースパトロール応答タイムアウト監視回路２２４は、処理を終了する。命令発行経路が高負荷である旨の通知があると（ステップＳ２１０：Ｙｅｓ）、インタフェースパトロール応答タイムアウト監視回路２２４は、送信済みのインタフェースパトロール命令に対するインタフェースパトロール応答の受信に要した時間が所定の時間を超過したか否かを判定する（ステップＳ２２０）。応答の受信に要した時間が所定の時間を超過していなければ（ステップＳ２２０：Ｎｏ）、インタフェースパトロール応答タイムアウト監視回路２２４は、処理を終了する。応答の受信に要した時間が所定の時間を超過していれば（ステップＳ２２０：Ｙｅｓ）、インタフェースパトロール応答タイムアウト監視回路２２４は、シリアルインタフェース７００に障害が発生したと判断し、その旨を装置診断回路６０８に通知する（ステップＳ２３０）。
【０１０９】
なお、疎通命令発行間隔は、情報処理システムが許容する命令に対する処理時間の上限より短く設定される必要がある。そのため、疎通確認命令発行間隔は、調整可能であることが望ましい。例えば、メモリアクセス上限時間が１０ミリ秒であれば、疎通命令発行間隔は１〜２ミリ秒に設定される。
【０１１０】
以上のように、シリアルインタフェース制御回路６２６がインタフェース７００の障害の検出にかかる時間を待つこと無く、装置診断回路６０８は障害の発生を認識して障害復旧処理を開始する事ができる。つまり、命令発行経路が動作しない状態になることが回避される。
【０１１１】
以上説明したように、本実施形態の情報処理装置６０１では、ステップＳ２１０及びステップＳ２２０の処理に要する時間を、メモリアクセス上限時間に比べて小さくすることができる。また、情報処理装置６０１からの入出力装置７０２又は７０３の切り離し処理に要する時間は、メモリアクセス上限時間に比べて十分小さい。つまり、本実施形態の情報処理装置６０１では、命令の滞留開始後、メモリアクセス上限時間に比べて短時間で入出力装置７０２、７０３の切り離し処理を完了することができる。従って、本実施形態の情報処理装置６０１では、プロセッサ又は入出力装置が複数存在する場合にも、入出力装置とのインタフェースにおける回復不可能な障害の発生時にシステムの性能低下を軽減するという効果がある。
【０１１２】
なお、シリアルインタフェース制御回路６２６内で復旧処理が完結する回復可能なインタフェース障害が発生した場合には、インタフェースパトロール命令に対する応答が所定の時間内に返らなくても、命令発行経路に命令の滞留が発生しなければ装置診断回路６０８にシリアルインタフェース７００の障害が通知されない。従って、本実施形態の情報処理装置６０１では、無駄な障害復旧処理による性能低下が発生しない。
【０１１３】
また、本実施形態の情報処理装置６０１は、２台の入出力装置に接続される。従って、１台の入出力装置又は１つのシリアルインタフェースに障害が発生しても、他方の入出力装置又はシリアルインタフェースを使用して、サービスを継続することができる。つまり、本実施形態の情報処理装置６０１には、１台の入出力装置又は１つのシリアルインタフェースに障害が発生しても、システムダウンが発生しないという効果がある。
【０１１４】
なお、上述した各実施形態におけるインタフェース障害検出装置は、専用の装置又は回路によって実現してもよいが、コンピュータ（情報処理装置）によっても実現可能である。この場合、係るコンピュータは、メモリ（不図示）に格納されたソフトウェア・プログラムをＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ、不図示）に読み出し、読み出したソフトウェア・プログラムをＣＰＵにおいて実行することにより、実行結果を、例えば、ユーザ・インタフェースに出力する。上述した各実施形態の場合、係るソフトウェア・プログラムには、上述したところの、図１に示したインタフェース障害検出装置１００の各手段の機能を実現可能な記述がなされていればよい。あるいは、図３に示した情報処理装置６０１の命令発行経路負荷判定回路２０４、インタフェースパトロール命令発行回路２１８、２１９、インタフェースパトロール応答タイムアウト監視回路２２４、２２５の機能を実現可能な記述がなされていればよい。そして、このような場合、係るソフトウェア・プログラム（コンピュータ・プログラム）は、本発明を構成すると捉えることができる。更に、係るソフトウェア・プログラムを格納した、コンピュータ読み取り可能な記憶媒体も、本発明を構成すると捉えることができる。
【０１１５】
以上、本発明を、上述した各実施形態およびその変形例によって例示的に説明した。しかしながら、本発明の技術的範囲は、上述した各実施形態およびその変形例に記載した範囲には限定されない。当業者には、係る実施形態に対して多様な変更又は改良を加えることが可能であることは明らかである。そのような場合、係る変更又は改良を加えた新たな実施形態も、本発明の技術的範囲に含まれ得る。そしてこのことは、特許請求の範囲に記載した事項から明らかである。
【産業上の利用可能性】
【０１１６】
本発明は、コンピュータ等の情報処理システムにおいて、ＰＣＩ−Ｅｘｐｒｅｓｓ等のシリアル転送インタフェースの障害発生時のシステムダウン、ストール、性能低下等を抑制する用途において利用できる。
【符号の説明】
【０１１７】
１００  インタフェース障害検出装置
１１０  命令滞留判定手段
１２０  障害通知手段
１３０  調停手段
１４０  疎通確認命令発行手段
８００  情報処理装置
８１０  プロセッサ
８２０  緩衝バッファ
８３０  調停手段
８４０  主記憶
８５０  入出力インタフェース制御手段
８６０  診断手段
９００  入出力装置
９１０  入出力制御手段
９２０  緩衝バッファ
９３０  調停手段
９４０  疎通確認応答発行手段
９５０  入出力インタフェース制御手段
９９０  入出力インタフェース
６０１  情報処理装置
６１０、６１１  プロセッサ
６１２、６１３  緩衝バッファ
６０５  調停回路
６１６、６１７  緩衝バッファ
６０７  主記憶
６０６  振分け回路
６２０、６２１  緩衝バッファ
６２６、６２７  シリアルインタフェース制御回路
６０８  装置診断回路
２１４、２１５  ビジー検出回路
２０４  命令発行経路負荷判定回路
２１８、２１９  インタフェースパトロール命令発行回路
２２２、２２３  調停回路
２２４、２２５  インタフェースパトロール応答タイムアウト監視回路
７００、７０１  シリアルインタフェース
７０２、７０３  入出力装置
７３１、７４１  調停回路
７３３、７４３  緩衝バッファ
７３４、７４４  入出力制御回路
７３０、７４０  シリアルインタフェース制御回路
７３２、７４２  インタフェースパトロール応答発行回路
【図１】
0006475056.tif 000002
【図２】
0006475056.tif 000003
【図３】
0006475056.tif 000004
【図４】
0006475056.tif 000005